From 54d921ce42cf80bcede4e7b86e8f2debf112f987 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 24 Jul 2024 01:21:18 +0000 Subject: [PATCH] Version Packages (alpha) --- .changeset/pre.json | 6 +++++- .npmrc | 1 + .../build-info/1cbba6c15a61563ec29940b9dceff64f.json | 1 + packages/sdk/CHANGELOG.md | 7 +++++++ packages/sdk/package.json | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 .npmrc create mode 100644 packages/evm/artifacts/build-info/1cbba6c15a61563ec29940b9dceff64f.json diff --git a/.changeset/pre.json b/.changeset/pre.json index 940db9ef..89a346f7 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -5,5 +5,9 @@ "@boostxyz/evm": "0.0.0-alpha.0", "@boostxyz/sdk": "0.0.0-alpha.0" }, - "changesets": ["polite-jars-lie"] + "changesets": [ + "mighty-pans-provide", + "polite-jars-lie", + "silent-ants-impress" + ] } diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..527f00ec --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +//registry.npmjs.org/:_authToken=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 diff --git a/packages/evm/artifacts/build-info/1cbba6c15a61563ec29940b9dceff64f.json b/packages/evm/artifacts/build-info/1cbba6c15a61563ec29940b9dceff64f.json new file mode 100644 index 00000000..bfa0e704 --- /dev/null +++ b/packages/evm/artifacts/build-info/1cbba6c15a61563ec29940b9dceff64f.json @@ -0,0 +1 @@ +{"id":"1cbba6c15a61563ec29940b9dceff64f","_format":"hh-sol-build-info-1","solcVersion":"0.8.26","solcLongVersion":"0.8.26+commit.8a97fa7a","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/ERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"./IERC1155.sol\";\nimport {IERC1155MetadataURI} from \"./extensions/IERC1155MetadataURI.sol\";\nimport {ERC1155Utils} from \"./utils/ERC1155Utils.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC165, ERC165} from \"../../utils/introspection/ERC165.sol\";\nimport {Arrays} from \"../../utils/Arrays.sol\";\nimport {IERC1155Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the basic standard multi-token.\n * See https://eips.ethereum.org/EIPS/eip-1155\n * Originally based on code by Enjin: https://github.com/enjin/erc-1155\n */\nabstract contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI, IERC1155Errors {\n using Arrays for uint256[];\n using Arrays for address[];\n\n mapping(uint256 id => mapping(address account => uint256)) private _balances;\n\n mapping(address account => mapping(address operator => bool)) private _operatorApprovals;\n\n // Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json\n string private _uri;\n\n /**\n * @dev See {_setURI}.\n */\n constructor(string memory uri_) {\n _setURI(uri_);\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(IERC1155).interfaceId ||\n interfaceId == type(IERC1155MetadataURI).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC1155MetadataURI-uri}.\n *\n * This implementation returns the same URI for *all* token types. It relies\n * on the token type ID substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n *\n * Clients calling this function must replace the `\\{id\\}` substring with the\n * actual token type ID.\n */\n function uri(uint256 /* id */) public view virtual returns (string memory) {\n return _uri;\n }\n\n /**\n * @dev See {IERC1155-balanceOf}.\n */\n function balanceOf(address account, uint256 id) public view virtual returns (uint256) {\n return _balances[id][account];\n }\n\n /**\n * @dev See {IERC1155-balanceOfBatch}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] memory accounts,\n uint256[] memory ids\n ) public view virtual returns (uint256[] memory) {\n if (accounts.length != ids.length) {\n revert ERC1155InvalidArrayLength(ids.length, accounts.length);\n }\n\n uint256[] memory batchBalances = new uint256[](accounts.length);\n\n for (uint256 i = 0; i < accounts.length; ++i) {\n batchBalances[i] = balanceOf(accounts.unsafeMemoryAccess(i), ids.unsafeMemoryAccess(i));\n }\n\n return batchBalances;\n }\n\n /**\n * @dev See {IERC1155-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC1155-isApprovedForAll}.\n */\n function isApprovedForAll(address account, address operator) public view virtual returns (bool) {\n return _operatorApprovals[account][operator];\n }\n\n /**\n * @dev See {IERC1155-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeTransferFrom(from, to, id, value, data);\n }\n\n /**\n * @dev See {IERC1155-safeBatchTransferFrom}.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) public virtual {\n address sender = _msgSender();\n if (from != sender && !isApprovedForAll(from, sender)) {\n revert ERC1155MissingApprovalForAll(sender, from);\n }\n _safeBatchTransferFrom(from, to, ids, values, data);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n * (or `to`) is the zero address.\n *\n * Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n * or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n * - `ids` and `values` must have the same length.\n *\n * NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead.\n */\n function _update(address from, address to, uint256[] memory ids, uint256[] memory values) internal virtual {\n if (ids.length != values.length) {\n revert ERC1155InvalidArrayLength(ids.length, values.length);\n }\n\n address operator = _msgSender();\n\n for (uint256 i = 0; i < ids.length; ++i) {\n uint256 id = ids.unsafeMemoryAccess(i);\n uint256 value = values.unsafeMemoryAccess(i);\n\n if (from != address(0)) {\n uint256 fromBalance = _balances[id][from];\n if (fromBalance < value) {\n revert ERC1155InsufficientBalance(from, fromBalance, value, id);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance\n _balances[id][from] = fromBalance - value;\n }\n }\n\n if (to != address(0)) {\n _balances[id][to] += value;\n }\n }\n\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n emit TransferSingle(operator, from, to, id, value);\n } else {\n emit TransferBatch(operator, from, to, ids, values);\n }\n }\n\n /**\n * @dev Version of {_update} that performs the token acceptance check by calling\n * {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n * contains code (eg. is a smart contract at the moment of execution).\n *\n * IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n * update to the contract state after this function would break the check-effect-interaction pattern. Consider\n * overriding {_update} instead.\n */\n function _updateWithAcceptanceCheck(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal virtual {\n _update(from, to, ids, values);\n if (to != address(0)) {\n address operator = _msgSender();\n if (ids.length == 1) {\n uint256 id = ids.unsafeMemoryAccess(0);\n uint256 value = values.unsafeMemoryAccess(0);\n ERC1155Utils.checkOnERC1155Received(operator, from, to, id, value, data);\n } else {\n ERC1155Utils.checkOnERC1155BatchReceived(operator, from, to, ids, values, data);\n }\n }\n }\n\n /**\n * @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n * - `ids` and `values` must have the same length.\n */\n function _safeBatchTransferFrom(\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, to, ids, values, data);\n }\n\n /**\n * @dev Sets a new URI for all token types, by relying on the token type ID\n * substitution mechanism\n * https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n *\n * By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n * URI or any of the values in the JSON file at said URI will be replaced by\n * clients with the token type ID.\n *\n * For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n * interpreted by clients as\n * `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n * for token type ID 0x4cce0.\n *\n * See {uri}.\n *\n * Because these URIs cannot be meaningfully represented by the {URI} event,\n * this function emits no events.\n */\n function _setURI(string memory newuri) internal virtual {\n _uri = newuri;\n }\n\n /**\n * @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function _mint(address to, uint256 id, uint256 value, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - `to` cannot be the zero address.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function _mintBatch(address to, uint256[] memory ids, uint256[] memory values, bytes memory data) internal {\n if (to == address(0)) {\n revert ERC1155InvalidReceiver(address(0));\n }\n _updateWithAcceptanceCheck(address(0), to, ids, values, data);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens of type `id` from `from`\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n */\n function _burn(address from, uint256 id, uint256 value) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n (uint256[] memory ids, uint256[] memory values) = _asSingletonArrays(id, value);\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n *\n * Emits a {TransferBatch} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `from` must have at least `value` amount of tokens of type `id`.\n * - `ids` and `values` must have the same length.\n */\n function _burnBatch(address from, uint256[] memory ids, uint256[] memory values) internal {\n if (from == address(0)) {\n revert ERC1155InvalidSender(address(0));\n }\n _updateWithAcceptanceCheck(from, address(0), ids, values, \"\");\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function _setApprovalForAll(address owner, address operator, bool approved) internal virtual {\n if (operator == address(0)) {\n revert ERC1155InvalidOperator(address(0));\n }\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Creates an array in memory with only one value for each of the elements provided.\n */\n function _asSingletonArrays(\n uint256 element1,\n uint256 element2\n ) private pure returns (uint256[] memory array1, uint256[] memory array2) {\n /// @solidity memory-safe-assembly\n assembly {\n // Load the free memory pointer\n array1 := mload(0x40)\n // Set array length to 1\n mstore(array1, 1)\n // Store the single element at the next word after the length (where content starts)\n mstore(add(array1, 0x20), element1)\n\n // Repeat for next array locating it right after the first array\n array2 := add(array1, 0x40)\n mstore(array2, 1)\n mstore(add(array2, 0x20), element2)\n\n // Update the free memory pointer by pointing after the second array\n mstore(0x40, add(array2, 0x40))\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/extensions/IERC1155MetadataURI.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC1155} from \"../IERC1155.sol\";\n\n/**\n * @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[ERC].\n */\ninterface IERC1155MetadataURI is IERC1155 {\n /**\n * @dev Returns the URI for token type `id`.\n *\n * If the `\\{id\\}` substring is present in the URI, it must be replaced by\n * clients with the actual token type ID.\n */\n function uri(uint256 id) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (token/ERC1155/IERC1155.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC-1155 compliant contract, as defined in the\n * https://eips.ethereum.org/EIPS/eip-1155[ERC].\n */\ninterface IERC1155 is IERC165 {\n /**\n * @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\n */\n event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);\n\n /**\n * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n * transfers.\n */\n event TransferBatch(\n address indexed operator,\n address indexed from,\n address indexed to,\n uint256[] ids,\n uint256[] values\n );\n\n /**\n * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n * `approved`.\n */\n event ApprovalForAll(address indexed account, address indexed operator, bool approved);\n\n /**\n * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n *\n * If an {URI} event was emitted for `id`, the standard\n * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n * returned by {IERC1155MetadataURI-uri}.\n */\n event URI(string value, uint256 indexed id);\n\n /**\n * @dev Returns the value of tokens of token type `id` owned by `account`.\n */\n function balanceOf(address account, uint256 id) external view returns (uint256);\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n *\n * Requirements:\n *\n * - `accounts` and `ids` must have the same length.\n */\n function balanceOfBatch(\n address[] calldata accounts,\n uint256[] calldata ids\n ) external view returns (uint256[] memory);\n\n /**\n * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n *\n * Emits an {ApprovalForAll} event.\n *\n * Requirements:\n *\n * - `operator` cannot be the zero address.\n */\n function setApprovalForAll(address operator, bool approved) external;\n\n /**\n * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n *\n * See {setApprovalForAll}.\n */\n function isApprovedForAll(address account, address operator) external view returns (bool);\n\n /**\n * @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits a {TransferSingle} event.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n * - `from` must have a balance of tokens of type `id` of at least `value` amount.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n * acceptance magic value.\n */\n function safeTransferFrom(address from, address to, uint256 id, uint256 value, bytes calldata data) external;\n\n /**\n * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n *\n * WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n * to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n * Ensure to follow the checks-effects-interactions pattern and consider employing\n * reentrancy guards when interacting with untrusted contracts.\n *\n * Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n *\n * Requirements:\n *\n * - `ids` and `values` must have the same length.\n * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n * acceptance magic value.\n */\n function safeBatchTransferFrom(\n address from,\n address to,\n uint256[] calldata ids,\n uint256[] calldata values,\n bytes calldata data\n ) external;\n}\n"},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC1155/IERC1155Receiver.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Interface that must be implemented by smart contracts in order to receive\n * ERC-1155 token transfers.\n */\ninterface IERC1155Receiver is IERC165 {\n /**\n * @dev Handles the receipt of a single ERC-1155 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 ERC-1155 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/ERC1155/utils/ERC1155Utils.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\nimport {IERC1155Receiver} from \"../IERC1155Receiver.sol\";\nimport {IERC1155Errors} from \"../../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Library that provide common ERC-1155 utility functions.\n *\n * See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155].\n */\nlibrary ERC1155Utils {\n /**\n * @dev Performs an acceptance check for the provided `operator` by calling {IERC1155-onERC1155Received}\n * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n *\n * The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n * Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n * the transfer.\n */\n function checkOnERC1155Received(\n address operator,\n address from,\n address to,\n uint256 id,\n uint256 value,\n bytes memory data\n ) internal {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155Received(operator, from, id, value, data) returns (bytes4 response) {\n if (response != IERC1155Receiver.onERC1155Received.selector) {\n // Tokens rejected\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-IERC1155Receiver implementer\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n\n /**\n * @dev Performs a batch acceptance check for the provided `operator` by calling {IERC1155-onERC1155BatchReceived}\n * on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n *\n * The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n * Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n * the transfer.\n */\n function checkOnERC1155BatchReceived(\n address operator,\n address from,\n address to,\n uint256[] memory ids,\n uint256[] memory values,\n bytes memory data\n ) internal {\n if (to.code.length > 0) {\n try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, values, data) returns (\n bytes4 response\n ) {\n if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {\n // Tokens rejected\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n }\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n // non-IERC1155Receiver implementer\n revert IERC1155Errors.ERC1155InvalidReceiver(to);\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Arrays.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Arrays.sol)\n// This file was procedurally generated from scripts/generate/templates/Arrays.js.\n\npragma solidity ^0.8.20;\n\nimport {SlotDerivation} from \"./SlotDerivation.sol\";\nimport {StorageSlot} from \"./StorageSlot.sol\";\nimport {Math} from \"./math/Math.sol\";\n\n/**\n * @dev Collection of functions related to array types.\n */\nlibrary Arrays {\n using SlotDerivation for bytes32;\n using StorageSlot for bytes32;\n\n /**\n * @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n bytes32[] memory array,\n function(bytes32, bytes32) pure returns (bool) comp\n ) internal pure returns (bytes32[] memory) {\n _quickSort(_begin(array), _end(array), comp);\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of bytes32 in increasing order.\n */\n function sort(bytes32[] memory array) internal pure returns (bytes32[] memory) {\n sort(array, _defaultComp);\n return array;\n }\n\n /**\n * @dev Sort an array of address (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n address[] memory array,\n function(address, address) pure returns (bool) comp\n ) internal pure returns (address[] memory) {\n sort(_castToBytes32Array(array), _castToBytes32Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of address in increasing order.\n */\n function sort(address[] memory array) internal pure returns (address[] memory) {\n sort(_castToBytes32Array(array), _defaultComp);\n return array;\n }\n\n /**\n * @dev Sort an array of uint256 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n */\n function sort(\n uint256[] memory array,\n function(uint256, uint256) pure returns (bool) comp\n ) internal pure returns (uint256[] memory) {\n sort(_castToBytes32Array(array), _castToBytes32Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of uint256 in increasing order.\n */\n function sort(uint256[] memory array) internal pure returns (uint256[] memory) {\n sort(_castToBytes32Array(array), _defaultComp);\n return array;\n }\n\n /**\n * @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n * at end (exclusive). Sorting follows the `comp` comparator.\n *\n * Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n *\n * IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n * be used only if the limits are within a memory array.\n */\n function _quickSort(uint256 begin, uint256 end, function(bytes32, bytes32) pure returns (bool) comp) private pure {\n unchecked {\n if (end - begin < 0x40) return;\n\n // Use first element as pivot\n bytes32 pivot = _mload(begin);\n // Position where the pivot should be at the end of the loop\n uint256 pos = begin;\n\n for (uint256 it = begin + 0x20; it < end; it += 0x20) {\n if (comp(_mload(it), pivot)) {\n // If the value stored at the iterator's position comes before the pivot, we increment the\n // position of the pivot and move the value there.\n pos += 0x20;\n _swap(pos, it);\n }\n }\n\n _swap(begin, pos); // Swap pivot into place\n _quickSort(begin, pos, comp); // Sort the left side of the pivot\n _quickSort(pos + 0x20, end, comp); // Sort the right side of the pivot\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first element of `array`.\n */\n function _begin(bytes32[] memory array) private pure returns (uint256 ptr) {\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(array, 0x20)\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n * that comes just after the last element of the array.\n */\n function _end(bytes32[] memory array) private pure returns (uint256 ptr) {\n unchecked {\n return _begin(array) + array.length * 0x20;\n }\n }\n\n /**\n * @dev Load memory word (as a bytes32) at location `ptr`.\n */\n function _mload(uint256 ptr) private pure returns (bytes32 value) {\n assembly {\n value := mload(ptr)\n }\n }\n\n /**\n * @dev Swaps the elements memory location `ptr1` and `ptr2`.\n */\n function _swap(uint256 ptr1, uint256 ptr2) private pure {\n assembly {\n let value1 := mload(ptr1)\n let value2 := mload(ptr2)\n mstore(ptr1, value2)\n mstore(ptr2, value1)\n }\n }\n\n /// @dev Comparator for sorting arrays in increasing order.\n function _defaultComp(bytes32 a, bytes32 b) private pure returns (bool) {\n return a < b;\n }\n\n /// @dev Helper: low level cast address memory array to uint256 memory array\n function _castToBytes32Array(address[] memory input) private pure returns (bytes32[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast uint256 memory array to uint256 memory array\n function _castToBytes32Array(uint256[] memory input) private pure returns (bytes32[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast address comp function to bytes32 comp function\n function _castToBytes32Comp(\n function(address, address) pure returns (bool) input\n ) private pure returns (function(bytes32, bytes32) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast uint256 comp function to bytes32 comp function\n function _castToBytes32Comp(\n function(uint256, uint256) pure returns (bool) input\n ) private pure returns (function(bytes32, bytes32) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /**\n * @dev Searches a sorted `array` and returns the first index that contains\n * a value greater or equal to `element`. If no such index exists (i.e. all\n * values in the array are strictly less than `element`), the array length is\n * returned. Time complexity O(log n).\n *\n * NOTE: The `array` is expected to be sorted in ascending order, and to\n * contain no repeated elements.\n *\n * IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n * support for repeated elements in the array. The {lowerBound} function should\n * be used instead.\n */\n function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n low = mid + 1;\n }\n }\n\n // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound.\n if (low > 0 && unsafeAccess(array, low - 1).value == element) {\n return low - 1;\n } else {\n return low;\n }\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value greater or equal than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound].\n */\n function lowerBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value strictly greater than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound].\n */\n function upperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {lowerBound}, but with an array in memory.\n */\n function lowerBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {upperBound}, but with an array in memory.\n */\n function upperBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getAddressSlot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getBytes32Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) {\n bytes32 slot;\n /// @solidity memory-safe-assembly\n assembly {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getUint256Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(address[] memory arr, uint256 pos) internal pure returns (address res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(bytes32[] memory arr, uint256 pos) internal pure returns (bytes32 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(uint256[] memory arr, uint256 pos) internal pure returns (uint256 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(address[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(bytes32[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(uint256[] storage array, uint256 len) internal {\n /// @solidity memory-safe-assembly\n assembly {\n sstore(array.slot, len)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC-165 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 */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual 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 (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\n }\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 ternary(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 ternary(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 towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2²⁵⁶ and mod 2²⁵⁶ - 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²⁵⁶ + prod0.\n uint256 prod0 = x * y; // 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 prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2²⁵⁶. Also prevents denominator == 0.\n if (denominator <= prod1) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\n }\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.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\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²⁵⁶ / 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²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\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\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\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²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, 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 * @dev Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, expect 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Ferma's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked has failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n /// @solidity memory-safe-assembly\n assembly {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev 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 + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n uint256 exp;\n unchecked {\n exp = 128 * SafeCast.toUint(value > (1 << 128) - 1);\n value >>= exp;\n result += exp;\n\n exp = 64 * SafeCast.toUint(value > (1 << 64) - 1);\n value >>= exp;\n result += exp;\n\n exp = 32 * SafeCast.toUint(value > (1 << 32) - 1);\n value >>= exp;\n result += exp;\n\n exp = 16 * SafeCast.toUint(value > (1 << 16) - 1);\n value >>= exp;\n result += exp;\n\n exp = 8 * SafeCast.toUint(value > (1 << 8) - 1);\n value >>= exp;\n result += exp;\n\n exp = 4 * SafeCast.toUint(value > (1 << 4) - 1);\n value >>= exp;\n result += exp;\n\n exp = 2 * SafeCast.toUint(value > (1 << 2) - 1);\n value >>= exp;\n result += exp;\n\n result += SafeCast.toUint(value > 1);\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\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 uint256 isGt;\n unchecked {\n isGt = SafeCast.toUint(value > (1 << 128) - 1);\n value >>= isGt * 128;\n result += isGt * 16;\n\n isGt = SafeCast.toUint(value > (1 << 64) - 1);\n value >>= isGt * 64;\n result += isGt * 8;\n\n isGt = SafeCast.toUint(value > (1 << 32) - 1);\n value >>= isGt * 32;\n result += isGt * 4;\n\n isGt = SafeCast.toUint(value > (1 << 16) - 1);\n value >>= isGt * 16;\n result += isGt * 2;\n\n result += SafeCast.toUint(value > (1 << 8) - 1);\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, 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 + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n"},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool 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 */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\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 function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\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 function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\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 function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\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 function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\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 function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\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 function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\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 function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\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 function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\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 function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\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 function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\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 function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\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 function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\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 function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\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 function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\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 function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\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 function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\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 function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\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 function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\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 function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\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 function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\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 function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\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 function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\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 function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\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 function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\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 function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\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 function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\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 function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\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 function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\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 function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\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 function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\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 function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\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 function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\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 function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\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 function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\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 function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\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 function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\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 function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\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 function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\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 function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\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 function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\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 function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\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 function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\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 function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\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 function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\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 function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\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 function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\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 function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\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 function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\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 function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\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 function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\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 function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\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 function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\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 function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\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 function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\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 function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\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 function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\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 function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\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 function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\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 function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\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 function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\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 function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\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 function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\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 function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\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 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 if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n\n /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n /// @solidity memory-safe-assembly\n assembly {\n u := iszero(iszero(b))\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Panic.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"content":"// SPDX-License-Identifier: MIT\n// This file was procedurally generated from scripts/generate/templates/SlotDerivation.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n * corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n * the solidity language / compiler.\n *\n * See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n *\n * Example usage:\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using StorageSlot for bytes32;\n * using SlotDerivation for bytes32;\n *\n * // Declare a namespace\n * string private constant _NAMESPACE = \"\" // eg. OpenZeppelin.Slot\n *\n * function setValueInNamespace(uint256 key, address newValue) internal {\n * _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n * }\n *\n * function getValueInNamespace(uint256 key) internal view returns (address) {\n * return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {StorageSlot}.\n *\n * NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n * upgrade safety will ignore the slots accessed through this library.\n */\nlibrary SlotDerivation {\n /**\n * @dev Derive an ERC-7201 slot from a string (namespace).\n */\n function erc7201Slot(string memory namespace) internal pure returns (bytes32 slot) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, sub(keccak256(add(namespace, 0x20), mload(namespace)), 1))\n slot := and(keccak256(0x00, 0x20), not(0xff))\n }\n }\n\n /**\n * @dev Add an offset to a slot to get the n-th element of a structure or an array.\n */\n function offset(bytes32 slot, uint256 pos) internal pure returns (bytes32 result) {\n unchecked {\n return bytes32(uint256(slot) + pos);\n }\n }\n\n /**\n * @dev Derive the location of the first element in an array from the slot where the length is stored.\n */\n function deriveArray(bytes32 slot) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, slot)\n result := keccak256(0x00, 0x20)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, address key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bool key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes32 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, uint256 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, int256 key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, string memory key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes memory key) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.24;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * Since version 5.1, this library also support writing and reading value types to and from transient storage.\n *\n * * Example using transient storage:\n * ```solidity\n * contract Lock {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;\n *\n * modifier locked() {\n * require(!_LOCK_SLOT.asBoolean().tload());\n *\n * _LOCK_SLOT.asBoolean().tstore(true);\n * _;\n * _LOCK_SLOT.asBoolean().tstore(false);\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct Int256Slot {\n int256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev UDVT that represent a slot holding a address.\n */\n type AddressSlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a AddressSlotType.\n */\n function asAddress(bytes32 slot) internal pure returns (AddressSlotType) {\n return AddressSlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a bool.\n */\n type BooleanSlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a BooleanSlotType.\n */\n function asBoolean(bytes32 slot) internal pure returns (BooleanSlotType) {\n return BooleanSlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a bytes32.\n */\n type Bytes32SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Bytes32SlotType.\n */\n function asBytes32(bytes32 slot) internal pure returns (Bytes32SlotType) {\n return Bytes32SlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a uint256.\n */\n type Uint256SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Uint256SlotType.\n */\n function asUint256(bytes32 slot) internal pure returns (Uint256SlotType) {\n return Uint256SlotType.wrap(slot);\n }\n\n /**\n * @dev UDVT that represent a slot holding a int256.\n */\n type Int256SlotType is bytes32;\n\n /**\n * @dev Cast an arbitrary slot to a Int256SlotType.\n */\n function asInt256(bytes32 slot) internal pure returns (Int256SlotType) {\n return Int256SlotType.wrap(slot);\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(AddressSlotType slot) internal view returns (address value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(AddressSlotType slot, address value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(BooleanSlotType slot) internal view returns (bool value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(BooleanSlotType slot, bool value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Bytes32SlotType slot) internal view returns (bytes32 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Bytes32SlotType slot, bytes32 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Uint256SlotType slot) internal view returns (uint256 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Uint256SlotType slot, uint256 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n\n /**\n * @dev Load the value held at location `slot` in transient storage.\n */\n function tload(Int256SlotType slot) internal view returns (int256 value) {\n /// @solidity memory-safe-assembly\n assembly {\n value := tload(slot)\n }\n }\n\n /**\n * @dev Store `value` at location `slot` in transient storage.\n */\n function tstore(Int256SlotType slot, int256 value) internal {\n /// @solidity memory-safe-assembly\n assembly {\n tstore(slot, value)\n }\n }\n}\n"},"@solady/accounts/Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\n/// @author Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\n///\n/// @dev Note:\n/// - Handles all ERC721 and ERC1155 token safety callbacks.\n/// - Collapses function table gas overhead and code size.\n/// - Utilizes fallback so unknown calldata will pass on.\nabstract contract Receiver {\n /// @dev For receiving ETH.\n receive() external payable virtual {}\n\n /// @dev Fallback function with the `receiverFallback` modifier.\n fallback() external payable virtual receiverFallback {}\n\n /// @dev Modifier for the fallback function to handle token callbacks.\n modifier receiverFallback() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n let s := shr(224, calldataload(0))\n // 0x150b7a02: `onERC721Received(address,address,uint256,bytes)`.\n // 0xf23a6e61: `onERC1155Received(address,address,uint256,uint256,bytes)`.\n // 0xbc197c81: `onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)`.\n if or(eq(s, 0x150b7a02), or(eq(s, 0xf23a6e61), eq(s, 0xbc197c81))) {\n mstore(0x20, s) // Store `msg.sig`.\n return(0x3c, 0x20) // Return `msg.sig`.\n }\n }\n _;\n }\n}\n"},"@solady/auth/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple single owner authorization mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n///\n/// @dev Note:\n/// This implementation does NOT auto-initialize the owner to `msg.sender`.\n/// You MUST call the `_initializeOwner` in the constructor / initializer.\n///\n/// While the ownable portion follows\n/// [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,\n/// the nomenclature for the 2-step ownership handover may be unique to this codebase.\nabstract contract Ownable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The caller is not authorized to call the function.\n error Unauthorized();\n\n /// @dev The `newOwner` cannot be the zero address.\n error NewOwnerIsZeroAddress();\n\n /// @dev The `pendingOwner` does not have a valid handover request.\n error NoHandoverRequest();\n\n /// @dev Cannot double-initialize.\n error AlreadyInitialized();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ownership is transferred from `oldOwner` to `newOwner`.\n /// This event is intentionally kept the same as OpenZeppelin's Ownable to be\n /// compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173),\n /// despite it not being as lightweight as a single argument event.\n event OwnershipTransferred(address indexed oldOwner, address indexed newOwner);\n\n /// @dev An ownership handover to `pendingOwner` has been requested.\n event OwnershipHandoverRequested(address indexed pendingOwner);\n\n /// @dev The ownership handover to `pendingOwner` has been canceled.\n event OwnershipHandoverCanceled(address indexed pendingOwner);\n\n /// @dev `keccak256(bytes(\"OwnershipTransferred(address,address)\"))`.\n uint256 private constant _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE =\n 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0;\n\n /// @dev `keccak256(bytes(\"OwnershipHandoverRequested(address)\"))`.\n uint256 private constant _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE =\n 0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d;\n\n /// @dev `keccak256(bytes(\"OwnershipHandoverCanceled(address)\"))`.\n uint256 private constant _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE =\n 0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The owner slot is given by:\n /// `bytes32(~uint256(uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))))`.\n /// It is intentionally chosen to be a high value\n /// to avoid collision with lower slots.\n /// The choice of manual storage layout is to enable compatibility\n /// with both regular and upgradeable contracts.\n bytes32 internal constant _OWNER_SLOT =\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927;\n\n /// The ownership handover slot of `newOwner` is given by:\n /// ```\n /// mstore(0x00, or(shl(96, user), _HANDOVER_SLOT_SEED))\n /// let handoverSlot := keccak256(0x00, 0x20)\n /// ```\n /// It stores the expiry timestamp of the two-step ownership handover.\n uint256 private constant _HANDOVER_SLOT_SEED = 0x389a75e1;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Override to return true to make `_initializeOwner` prevent double-initialization.\n function _guardInitializeOwner() internal pure virtual returns (bool guard) {}\n\n /// @dev Initializes the owner directly without authorization guard.\n /// This function must be called upon initialization,\n /// regardless of whether the contract is upgradeable or not.\n /// This is to enable generalization to both regular and upgradeable contracts,\n /// and to save gas in case the initial owner is not the caller.\n /// For performance reasons, this function will not check if there\n /// is an existing owner.\n function _initializeOwner(address newOwner) internal virtual {\n if (_guardInitializeOwner()) {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n if sload(ownerSlot) {\n mstore(0x00, 0x0dc149f0) // `AlreadyInitialized()`.\n revert(0x1c, 0x04)\n }\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Store the new value.\n sstore(ownerSlot, or(newOwner, shl(255, iszero(newOwner))))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, 0, newOwner)\n }\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Store the new value.\n sstore(_OWNER_SLOT, newOwner)\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, 0, newOwner)\n }\n }\n }\n\n /// @dev Sets the owner directly without authorization guard.\n function _setOwner(address newOwner) internal virtual {\n if (_guardInitializeOwner()) {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, sload(ownerSlot), newOwner)\n // Store the new value.\n sstore(ownerSlot, or(newOwner, shl(255, iszero(newOwner))))\n }\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n let ownerSlot := _OWNER_SLOT\n // Clean the upper 96 bits.\n newOwner := shr(96, shl(96, newOwner))\n // Emit the {OwnershipTransferred} event.\n log3(0, 0, _OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE, sload(ownerSlot), newOwner)\n // Store the new value.\n sstore(ownerSlot, newOwner)\n }\n }\n }\n\n /// @dev Throws if the sender is not the owner.\n function _checkOwner() internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // If the caller is not the stored owner, revert.\n if iszero(eq(caller(), sload(_OWNER_SLOT))) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Returns how long a two-step ownership handover is valid for in seconds.\n /// Override to return a different value if needed.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _ownershipHandoverValidFor() internal view virtual returns (uint64) {\n return 48 * 3600;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC UPDATE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Allows the owner to transfer the ownership to `newOwner`.\n function transferOwnership(address newOwner) public payable virtual onlyOwner {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(shl(96, newOwner)) {\n mstore(0x00, 0x7448fbae) // `NewOwnerIsZeroAddress()`.\n revert(0x1c, 0x04)\n }\n }\n _setOwner(newOwner);\n }\n\n /// @dev Allows the owner to renounce their ownership.\n function renounceOwnership() public payable virtual onlyOwner {\n _setOwner(address(0));\n }\n\n /// @dev Request a two-step ownership handover to the caller.\n /// The request will automatically expire in 48 hours (172800 seconds) by default.\n function requestOwnershipHandover() public payable virtual {\n unchecked {\n uint256 expires = block.timestamp + _ownershipHandoverValidFor();\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to `expires`.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x20), expires)\n // Emit the {OwnershipHandoverRequested} event.\n log2(0, 0, _OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE, caller())\n }\n }\n }\n\n /// @dev Cancels the two-step ownership handover to the caller, if any.\n function cancelOwnershipHandover() public payable virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to 0.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x20), 0)\n // Emit the {OwnershipHandoverCanceled} event.\n log2(0, 0, _OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE, caller())\n }\n }\n\n /// @dev Allows the owner to complete the two-step ownership handover to `pendingOwner`.\n /// Reverts if there is no existing ownership handover requested by `pendingOwner`.\n function completeOwnershipHandover(address pendingOwner) public payable virtual onlyOwner {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and set the handover slot to 0.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, pendingOwner)\n let handoverSlot := keccak256(0x0c, 0x20)\n // If the handover does not exist, or has expired.\n if gt(timestamp(), sload(handoverSlot)) {\n mstore(0x00, 0x6f5e8818) // `NoHandoverRequest()`.\n revert(0x1c, 0x04)\n }\n // Set the handover slot to 0.\n sstore(handoverSlot, 0)\n }\n _setOwner(pendingOwner);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC READ FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the owner of the contract.\n function owner() public view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := sload(_OWNER_SLOT)\n }\n }\n\n /// @dev Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\n function ownershipHandoverExpiresAt(address pendingOwner)\n public\n view\n virtual\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the handover slot.\n mstore(0x0c, _HANDOVER_SLOT_SEED)\n mstore(0x00, pendingOwner)\n // Load the handover slot.\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MODIFIERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Marks a function as only callable by the owner.\n modifier onlyOwner() virtual {\n _checkOwner();\n _;\n }\n}\n"},"@solady/auth/OwnableRoles.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\nimport {Ownable} from \"./Ownable.sol\";\n\n/// @notice Simple single owner and multiroles authorization mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n/// @dev While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173)\n/// for compatibility, the nomenclature for the 2-step ownership handover and roles\n/// may be unique to this codebase.\nabstract contract OwnableRoles is Ownable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The `user`'s roles is updated to `roles`.\n /// Each bit of `roles` represents whether the role is set.\n event RolesUpdated(address indexed user, uint256 indexed roles);\n\n /// @dev `keccak256(bytes(\"RolesUpdated(address,uint256)\"))`.\n uint256 private constant _ROLES_UPDATED_EVENT_SIGNATURE =\n 0x715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The role slot of `user` is given by:\n /// ```\n /// mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED))\n /// let roleSlot := keccak256(0x00, 0x20)\n /// ```\n /// This automatically ignores the upper bits of the `user` in case\n /// they are not clean, as well as keep the `keccak256` under 32-bytes.\n ///\n /// Note: This is equivalent to `uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))`.\n uint256 private constant _ROLE_SLOT_SEED = 0x8b78c6d8;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Overwrite the roles directly without authorization guard.\n function _setRoles(address user, uint256 roles) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n // Store the new value.\n sstore(keccak256(0x0c, 0x20), roles)\n // Emit the {RolesUpdated} event.\n log3(0, 0, _ROLES_UPDATED_EVENT_SIGNATURE, shr(96, mload(0x0c)), roles)\n }\n }\n\n /// @dev Updates the roles directly without authorization guard.\n /// If `on` is true, each set bit of `roles` will be turned on,\n /// otherwise, each set bit of `roles` will be turned off.\n function _updateRoles(address user, uint256 roles, bool on) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n let roleSlot := keccak256(0x0c, 0x20)\n // Load the current value.\n let current := sload(roleSlot)\n // Compute the updated roles if `on` is true.\n let updated := or(current, roles)\n // Compute the updated roles if `on` is false.\n // Use `and` to compute the intersection of `current` and `roles`,\n // `xor` it with `current` to flip the bits in the intersection.\n if iszero(on) { updated := xor(current, and(current, roles)) }\n // Then, store the new value.\n sstore(roleSlot, updated)\n // Emit the {RolesUpdated} event.\n log3(0, 0, _ROLES_UPDATED_EVENT_SIGNATURE, shr(96, mload(0x0c)), updated)\n }\n }\n\n /// @dev Grants the roles directly without authorization guard.\n /// Each bit of `roles` represents the role to turn on.\n function _grantRoles(address user, uint256 roles) internal virtual {\n _updateRoles(user, roles, true);\n }\n\n /// @dev Removes the roles directly without authorization guard.\n /// Each bit of `roles` represents the role to turn off.\n function _removeRoles(address user, uint256 roles) internal virtual {\n _updateRoles(user, roles, false);\n }\n\n /// @dev Throws if the sender does not have any of the `roles`.\n function _checkRoles(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Throws if the sender is not the owner,\n /// and does not have any of the `roles`.\n /// Checks for ownership first, then lazily checks for roles.\n function _checkOwnerOrRoles(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // If the caller is not the stored owner.\n // Note: `_ROLE_SLOT_SEED` is equal to `_OWNER_SLOT_NOT`.\n if iszero(eq(caller(), sload(not(_ROLE_SLOT_SEED)))) {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Throws if the sender does not have any of the `roles`,\n /// and is not the owner.\n /// Checks for roles first, then lazily checks for ownership.\n function _checkRolesOrOwner(uint256 roles) internal view virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, caller())\n // Load the stored value, and if the `and` intersection\n // of the value and `roles` is zero, revert.\n if iszero(and(sload(keccak256(0x0c, 0x20)), roles)) {\n // If the caller is not the stored owner.\n // Note: `_ROLE_SLOT_SEED` is equal to `_OWNER_SLOT_NOT`.\n if iszero(eq(caller(), sload(not(_ROLE_SLOT_SEED)))) {\n mstore(0x00, 0x82b42900) // `Unauthorized()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Convenience function to return a `roles` bitmap from an array of `ordinals`.\n /// This is meant for frontends like Etherscan, and is therefore not fully optimized.\n /// Not recommended to be called on-chain.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _rolesFromOrdinals(uint8[] memory ordinals) internal pure returns (uint256 roles) {\n /// @solidity memory-safe-assembly\n assembly {\n for { let i := shl(5, mload(ordinals)) } i { i := sub(i, 0x20) } {\n // We don't need to mask the values of `ordinals`, as Solidity\n // cleans dirty upper bits when storing variables into memory.\n roles := or(shl(mload(add(ordinals, i)), 1), roles)\n }\n }\n }\n\n /// @dev Convenience function to return an array of `ordinals` from the `roles` bitmap.\n /// This is meant for frontends like Etherscan, and is therefore not fully optimized.\n /// Not recommended to be called on-chain.\n /// Made internal to conserve bytecode. Wrap it in a public function if needed.\n function _ordinalsFromRoles(uint256 roles) internal pure returns (uint8[] memory ordinals) {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the pointer to the free memory.\n ordinals := mload(0x40)\n let ptr := add(ordinals, 0x20)\n let o := 0\n // The absence of lookup tables, De Bruijn, etc., here is intentional for\n // smaller bytecode, as this function is not meant to be called on-chain.\n for { let t := roles } 1 {} {\n mstore(ptr, o)\n // `shr` 5 is equivalent to multiplying by 0x20.\n // Push back into the ordinals array if the bit is set.\n ptr := add(ptr, shl(5, and(t, 1)))\n o := add(o, 1)\n t := shr(o, roles)\n if iszero(t) { break }\n }\n // Store the length of `ordinals`.\n mstore(ordinals, shr(5, sub(ptr, add(ordinals, 0x20))))\n // Allocate the memory.\n mstore(0x40, ptr)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC UPDATE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Allows the owner to grant `user` `roles`.\n /// If the `user` already has a role, then it will be an no-op for the role.\n function grantRoles(address user, uint256 roles) public payable virtual onlyOwner {\n _grantRoles(user, roles);\n }\n\n /// @dev Allows the owner to remove `user` `roles`.\n /// If the `user` does not have a role, then it will be an no-op for the role.\n function revokeRoles(address user, uint256 roles) public payable virtual onlyOwner {\n _removeRoles(user, roles);\n }\n\n /// @dev Allow the caller to remove their own roles.\n /// If the caller does not have a role, then it will be an no-op for the role.\n function renounceRoles(uint256 roles) public payable virtual {\n _removeRoles(msg.sender, roles);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PUBLIC READ FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the roles of `user`.\n function rolesOf(address user) public view virtual returns (uint256 roles) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the role slot.\n mstore(0x0c, _ROLE_SLOT_SEED)\n mstore(0x00, user)\n // Load the stored value.\n roles := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Returns whether `user` has any of `roles`.\n function hasAnyRole(address user, uint256 roles) public view virtual returns (bool) {\n return rolesOf(user) & roles != 0;\n }\n\n /// @dev Returns whether `user` has all of `roles`.\n function hasAllRoles(address user, uint256 roles) public view virtual returns (bool) {\n return rolesOf(user) & roles == roles;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MODIFIERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Marks a function as only callable by an account with `roles`.\n modifier onlyRoles(uint256 roles) virtual {\n _checkRoles(roles);\n _;\n }\n\n /// @dev Marks a function as only callable by the owner or by an account\n /// with `roles`. Checks for ownership first, then lazily checks for roles.\n modifier onlyOwnerOrRoles(uint256 roles) virtual {\n _checkOwnerOrRoles(roles);\n _;\n }\n\n /// @dev Marks a function as only callable by an account with `roles`\n /// or the owner. Checks for roles first, then lazily checks for ownership.\n modifier onlyRolesOrOwner(uint256 roles) virtual {\n _checkRolesOrOwner(roles);\n _;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ROLE CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // IYKYK\n\n uint256 internal constant _ROLE_0 = 1 << 0;\n uint256 internal constant _ROLE_1 = 1 << 1;\n uint256 internal constant _ROLE_2 = 1 << 2;\n uint256 internal constant _ROLE_3 = 1 << 3;\n uint256 internal constant _ROLE_4 = 1 << 4;\n uint256 internal constant _ROLE_5 = 1 << 5;\n uint256 internal constant _ROLE_6 = 1 << 6;\n uint256 internal constant _ROLE_7 = 1 << 7;\n uint256 internal constant _ROLE_8 = 1 << 8;\n uint256 internal constant _ROLE_9 = 1 << 9;\n uint256 internal constant _ROLE_10 = 1 << 10;\n uint256 internal constant _ROLE_11 = 1 << 11;\n uint256 internal constant _ROLE_12 = 1 << 12;\n uint256 internal constant _ROLE_13 = 1 << 13;\n uint256 internal constant _ROLE_14 = 1 << 14;\n uint256 internal constant _ROLE_15 = 1 << 15;\n uint256 internal constant _ROLE_16 = 1 << 16;\n uint256 internal constant _ROLE_17 = 1 << 17;\n uint256 internal constant _ROLE_18 = 1 << 18;\n uint256 internal constant _ROLE_19 = 1 << 19;\n uint256 internal constant _ROLE_20 = 1 << 20;\n uint256 internal constant _ROLE_21 = 1 << 21;\n uint256 internal constant _ROLE_22 = 1 << 22;\n uint256 internal constant _ROLE_23 = 1 << 23;\n uint256 internal constant _ROLE_24 = 1 << 24;\n uint256 internal constant _ROLE_25 = 1 << 25;\n uint256 internal constant _ROLE_26 = 1 << 26;\n uint256 internal constant _ROLE_27 = 1 << 27;\n uint256 internal constant _ROLE_28 = 1 << 28;\n uint256 internal constant _ROLE_29 = 1 << 29;\n uint256 internal constant _ROLE_30 = 1 << 30;\n uint256 internal constant _ROLE_31 = 1 << 31;\n uint256 internal constant _ROLE_32 = 1 << 32;\n uint256 internal constant _ROLE_33 = 1 << 33;\n uint256 internal constant _ROLE_34 = 1 << 34;\n uint256 internal constant _ROLE_35 = 1 << 35;\n uint256 internal constant _ROLE_36 = 1 << 36;\n uint256 internal constant _ROLE_37 = 1 << 37;\n uint256 internal constant _ROLE_38 = 1 << 38;\n uint256 internal constant _ROLE_39 = 1 << 39;\n uint256 internal constant _ROLE_40 = 1 << 40;\n uint256 internal constant _ROLE_41 = 1 << 41;\n uint256 internal constant _ROLE_42 = 1 << 42;\n uint256 internal constant _ROLE_43 = 1 << 43;\n uint256 internal constant _ROLE_44 = 1 << 44;\n uint256 internal constant _ROLE_45 = 1 << 45;\n uint256 internal constant _ROLE_46 = 1 << 46;\n uint256 internal constant _ROLE_47 = 1 << 47;\n uint256 internal constant _ROLE_48 = 1 << 48;\n uint256 internal constant _ROLE_49 = 1 << 49;\n uint256 internal constant _ROLE_50 = 1 << 50;\n uint256 internal constant _ROLE_51 = 1 << 51;\n uint256 internal constant _ROLE_52 = 1 << 52;\n uint256 internal constant _ROLE_53 = 1 << 53;\n uint256 internal constant _ROLE_54 = 1 << 54;\n uint256 internal constant _ROLE_55 = 1 << 55;\n uint256 internal constant _ROLE_56 = 1 << 56;\n uint256 internal constant _ROLE_57 = 1 << 57;\n uint256 internal constant _ROLE_58 = 1 << 58;\n uint256 internal constant _ROLE_59 = 1 << 59;\n uint256 internal constant _ROLE_60 = 1 << 60;\n uint256 internal constant _ROLE_61 = 1 << 61;\n uint256 internal constant _ROLE_62 = 1 << 62;\n uint256 internal constant _ROLE_63 = 1 << 63;\n uint256 internal constant _ROLE_64 = 1 << 64;\n uint256 internal constant _ROLE_65 = 1 << 65;\n uint256 internal constant _ROLE_66 = 1 << 66;\n uint256 internal constant _ROLE_67 = 1 << 67;\n uint256 internal constant _ROLE_68 = 1 << 68;\n uint256 internal constant _ROLE_69 = 1 << 69;\n uint256 internal constant _ROLE_70 = 1 << 70;\n uint256 internal constant _ROLE_71 = 1 << 71;\n uint256 internal constant _ROLE_72 = 1 << 72;\n uint256 internal constant _ROLE_73 = 1 << 73;\n uint256 internal constant _ROLE_74 = 1 << 74;\n uint256 internal constant _ROLE_75 = 1 << 75;\n uint256 internal constant _ROLE_76 = 1 << 76;\n uint256 internal constant _ROLE_77 = 1 << 77;\n uint256 internal constant _ROLE_78 = 1 << 78;\n uint256 internal constant _ROLE_79 = 1 << 79;\n uint256 internal constant _ROLE_80 = 1 << 80;\n uint256 internal constant _ROLE_81 = 1 << 81;\n uint256 internal constant _ROLE_82 = 1 << 82;\n uint256 internal constant _ROLE_83 = 1 << 83;\n uint256 internal constant _ROLE_84 = 1 << 84;\n uint256 internal constant _ROLE_85 = 1 << 85;\n uint256 internal constant _ROLE_86 = 1 << 86;\n uint256 internal constant _ROLE_87 = 1 << 87;\n uint256 internal constant _ROLE_88 = 1 << 88;\n uint256 internal constant _ROLE_89 = 1 << 89;\n uint256 internal constant _ROLE_90 = 1 << 90;\n uint256 internal constant _ROLE_91 = 1 << 91;\n uint256 internal constant _ROLE_92 = 1 << 92;\n uint256 internal constant _ROLE_93 = 1 << 93;\n uint256 internal constant _ROLE_94 = 1 << 94;\n uint256 internal constant _ROLE_95 = 1 << 95;\n uint256 internal constant _ROLE_96 = 1 << 96;\n uint256 internal constant _ROLE_97 = 1 << 97;\n uint256 internal constant _ROLE_98 = 1 << 98;\n uint256 internal constant _ROLE_99 = 1 << 99;\n uint256 internal constant _ROLE_100 = 1 << 100;\n uint256 internal constant _ROLE_101 = 1 << 101;\n uint256 internal constant _ROLE_102 = 1 << 102;\n uint256 internal constant _ROLE_103 = 1 << 103;\n uint256 internal constant _ROLE_104 = 1 << 104;\n uint256 internal constant _ROLE_105 = 1 << 105;\n uint256 internal constant _ROLE_106 = 1 << 106;\n uint256 internal constant _ROLE_107 = 1 << 107;\n uint256 internal constant _ROLE_108 = 1 << 108;\n uint256 internal constant _ROLE_109 = 1 << 109;\n uint256 internal constant _ROLE_110 = 1 << 110;\n uint256 internal constant _ROLE_111 = 1 << 111;\n uint256 internal constant _ROLE_112 = 1 << 112;\n uint256 internal constant _ROLE_113 = 1 << 113;\n uint256 internal constant _ROLE_114 = 1 << 114;\n uint256 internal constant _ROLE_115 = 1 << 115;\n uint256 internal constant _ROLE_116 = 1 << 116;\n uint256 internal constant _ROLE_117 = 1 << 117;\n uint256 internal constant _ROLE_118 = 1 << 118;\n uint256 internal constant _ROLE_119 = 1 << 119;\n uint256 internal constant _ROLE_120 = 1 << 120;\n uint256 internal constant _ROLE_121 = 1 << 121;\n uint256 internal constant _ROLE_122 = 1 << 122;\n uint256 internal constant _ROLE_123 = 1 << 123;\n uint256 internal constant _ROLE_124 = 1 << 124;\n uint256 internal constant _ROLE_125 = 1 << 125;\n uint256 internal constant _ROLE_126 = 1 << 126;\n uint256 internal constant _ROLE_127 = 1 << 127;\n uint256 internal constant _ROLE_128 = 1 << 128;\n uint256 internal constant _ROLE_129 = 1 << 129;\n uint256 internal constant _ROLE_130 = 1 << 130;\n uint256 internal constant _ROLE_131 = 1 << 131;\n uint256 internal constant _ROLE_132 = 1 << 132;\n uint256 internal constant _ROLE_133 = 1 << 133;\n uint256 internal constant _ROLE_134 = 1 << 134;\n uint256 internal constant _ROLE_135 = 1 << 135;\n uint256 internal constant _ROLE_136 = 1 << 136;\n uint256 internal constant _ROLE_137 = 1 << 137;\n uint256 internal constant _ROLE_138 = 1 << 138;\n uint256 internal constant _ROLE_139 = 1 << 139;\n uint256 internal constant _ROLE_140 = 1 << 140;\n uint256 internal constant _ROLE_141 = 1 << 141;\n uint256 internal constant _ROLE_142 = 1 << 142;\n uint256 internal constant _ROLE_143 = 1 << 143;\n uint256 internal constant _ROLE_144 = 1 << 144;\n uint256 internal constant _ROLE_145 = 1 << 145;\n uint256 internal constant _ROLE_146 = 1 << 146;\n uint256 internal constant _ROLE_147 = 1 << 147;\n uint256 internal constant _ROLE_148 = 1 << 148;\n uint256 internal constant _ROLE_149 = 1 << 149;\n uint256 internal constant _ROLE_150 = 1 << 150;\n uint256 internal constant _ROLE_151 = 1 << 151;\n uint256 internal constant _ROLE_152 = 1 << 152;\n uint256 internal constant _ROLE_153 = 1 << 153;\n uint256 internal constant _ROLE_154 = 1 << 154;\n uint256 internal constant _ROLE_155 = 1 << 155;\n uint256 internal constant _ROLE_156 = 1 << 156;\n uint256 internal constant _ROLE_157 = 1 << 157;\n uint256 internal constant _ROLE_158 = 1 << 158;\n uint256 internal constant _ROLE_159 = 1 << 159;\n uint256 internal constant _ROLE_160 = 1 << 160;\n uint256 internal constant _ROLE_161 = 1 << 161;\n uint256 internal constant _ROLE_162 = 1 << 162;\n uint256 internal constant _ROLE_163 = 1 << 163;\n uint256 internal constant _ROLE_164 = 1 << 164;\n uint256 internal constant _ROLE_165 = 1 << 165;\n uint256 internal constant _ROLE_166 = 1 << 166;\n uint256 internal constant _ROLE_167 = 1 << 167;\n uint256 internal constant _ROLE_168 = 1 << 168;\n uint256 internal constant _ROLE_169 = 1 << 169;\n uint256 internal constant _ROLE_170 = 1 << 170;\n uint256 internal constant _ROLE_171 = 1 << 171;\n uint256 internal constant _ROLE_172 = 1 << 172;\n uint256 internal constant _ROLE_173 = 1 << 173;\n uint256 internal constant _ROLE_174 = 1 << 174;\n uint256 internal constant _ROLE_175 = 1 << 175;\n uint256 internal constant _ROLE_176 = 1 << 176;\n uint256 internal constant _ROLE_177 = 1 << 177;\n uint256 internal constant _ROLE_178 = 1 << 178;\n uint256 internal constant _ROLE_179 = 1 << 179;\n uint256 internal constant _ROLE_180 = 1 << 180;\n uint256 internal constant _ROLE_181 = 1 << 181;\n uint256 internal constant _ROLE_182 = 1 << 182;\n uint256 internal constant _ROLE_183 = 1 << 183;\n uint256 internal constant _ROLE_184 = 1 << 184;\n uint256 internal constant _ROLE_185 = 1 << 185;\n uint256 internal constant _ROLE_186 = 1 << 186;\n uint256 internal constant _ROLE_187 = 1 << 187;\n uint256 internal constant _ROLE_188 = 1 << 188;\n uint256 internal constant _ROLE_189 = 1 << 189;\n uint256 internal constant _ROLE_190 = 1 << 190;\n uint256 internal constant _ROLE_191 = 1 << 191;\n uint256 internal constant _ROLE_192 = 1 << 192;\n uint256 internal constant _ROLE_193 = 1 << 193;\n uint256 internal constant _ROLE_194 = 1 << 194;\n uint256 internal constant _ROLE_195 = 1 << 195;\n uint256 internal constant _ROLE_196 = 1 << 196;\n uint256 internal constant _ROLE_197 = 1 << 197;\n uint256 internal constant _ROLE_198 = 1 << 198;\n uint256 internal constant _ROLE_199 = 1 << 199;\n uint256 internal constant _ROLE_200 = 1 << 200;\n uint256 internal constant _ROLE_201 = 1 << 201;\n uint256 internal constant _ROLE_202 = 1 << 202;\n uint256 internal constant _ROLE_203 = 1 << 203;\n uint256 internal constant _ROLE_204 = 1 << 204;\n uint256 internal constant _ROLE_205 = 1 << 205;\n uint256 internal constant _ROLE_206 = 1 << 206;\n uint256 internal constant _ROLE_207 = 1 << 207;\n uint256 internal constant _ROLE_208 = 1 << 208;\n uint256 internal constant _ROLE_209 = 1 << 209;\n uint256 internal constant _ROLE_210 = 1 << 210;\n uint256 internal constant _ROLE_211 = 1 << 211;\n uint256 internal constant _ROLE_212 = 1 << 212;\n uint256 internal constant _ROLE_213 = 1 << 213;\n uint256 internal constant _ROLE_214 = 1 << 214;\n uint256 internal constant _ROLE_215 = 1 << 215;\n uint256 internal constant _ROLE_216 = 1 << 216;\n uint256 internal constant _ROLE_217 = 1 << 217;\n uint256 internal constant _ROLE_218 = 1 << 218;\n uint256 internal constant _ROLE_219 = 1 << 219;\n uint256 internal constant _ROLE_220 = 1 << 220;\n uint256 internal constant _ROLE_221 = 1 << 221;\n uint256 internal constant _ROLE_222 = 1 << 222;\n uint256 internal constant _ROLE_223 = 1 << 223;\n uint256 internal constant _ROLE_224 = 1 << 224;\n uint256 internal constant _ROLE_225 = 1 << 225;\n uint256 internal constant _ROLE_226 = 1 << 226;\n uint256 internal constant _ROLE_227 = 1 << 227;\n uint256 internal constant _ROLE_228 = 1 << 228;\n uint256 internal constant _ROLE_229 = 1 << 229;\n uint256 internal constant _ROLE_230 = 1 << 230;\n uint256 internal constant _ROLE_231 = 1 << 231;\n uint256 internal constant _ROLE_232 = 1 << 232;\n uint256 internal constant _ROLE_233 = 1 << 233;\n uint256 internal constant _ROLE_234 = 1 << 234;\n uint256 internal constant _ROLE_235 = 1 << 235;\n uint256 internal constant _ROLE_236 = 1 << 236;\n uint256 internal constant _ROLE_237 = 1 << 237;\n uint256 internal constant _ROLE_238 = 1 << 238;\n uint256 internal constant _ROLE_239 = 1 << 239;\n uint256 internal constant _ROLE_240 = 1 << 240;\n uint256 internal constant _ROLE_241 = 1 << 241;\n uint256 internal constant _ROLE_242 = 1 << 242;\n uint256 internal constant _ROLE_243 = 1 << 243;\n uint256 internal constant _ROLE_244 = 1 << 244;\n uint256 internal constant _ROLE_245 = 1 << 245;\n uint256 internal constant _ROLE_246 = 1 << 246;\n uint256 internal constant _ROLE_247 = 1 << 247;\n uint256 internal constant _ROLE_248 = 1 << 248;\n uint256 internal constant _ROLE_249 = 1 << 249;\n uint256 internal constant _ROLE_250 = 1 << 250;\n uint256 internal constant _ROLE_251 = 1 << 251;\n uint256 internal constant _ROLE_252 = 1 << 252;\n uint256 internal constant _ROLE_253 = 1 << 253;\n uint256 internal constant _ROLE_254 = 1 << 254;\n uint256 internal constant _ROLE_255 = 1 << 255;\n}\n"},"@solady/tokens/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple ERC20 + EIP-2612 implementation.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\n///\n/// @dev Note:\n/// - The ERC20 standard allows minting and transferring to and from the zero address,\n/// minting and transferring zero tokens, as well as self-approvals.\n/// For performance, this implementation WILL NOT revert for such actions.\n/// Please add any checks with overrides if desired.\n/// - The `permit` function uses the ecrecover precompile (0x1).\n///\n/// If you are overriding:\n/// - NEVER violate the ERC20 invariant:\n/// the total sum of all balances must be equal to `totalSupply()`.\n/// - Check that the overridden function is actually used in the function you want to\n/// change the behavior of. Much of the code has been manually inlined for performance.\nabstract contract ERC20 {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The total supply has overflowed.\n error TotalSupplyOverflow();\n\n /// @dev The allowance has overflowed.\n error AllowanceOverflow();\n\n /// @dev The allowance has underflowed.\n error AllowanceUnderflow();\n\n /// @dev Insufficient balance.\n error InsufficientBalance();\n\n /// @dev Insufficient allowance.\n error InsufficientAllowance();\n\n /// @dev The permit is invalid.\n error InvalidPermit();\n\n /// @dev The permit has expired.\n error PermitExpired();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Emitted when `amount` tokens is transferred from `from` to `to`.\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n /// @dev Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n /// @dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`.\n uint256 private constant _TRANSFER_EVENT_SIGNATURE =\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;\n\n /// @dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`.\n uint256 private constant _APPROVAL_EVENT_SIGNATURE =\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The storage slot for the total supply.\n uint256 private constant _TOTAL_SUPPLY_SLOT = 0x05345cdf77eb68f44c;\n\n /// @dev The balance slot of `owner` is given by:\n /// ```\n /// mstore(0x0c, _BALANCE_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let balanceSlot := keccak256(0x0c, 0x20)\n /// ```\n uint256 private constant _BALANCE_SLOT_SEED = 0x87a211a2;\n\n /// @dev The allowance slot of (`owner`, `spender`) is given by:\n /// ```\n /// mstore(0x20, spender)\n /// mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let allowanceSlot := keccak256(0x0c, 0x34)\n /// ```\n uint256 private constant _ALLOWANCE_SLOT_SEED = 0x7f5e9f20;\n\n /// @dev The nonce slot of `owner` is given by:\n /// ```\n /// mstore(0x0c, _NONCES_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let nonceSlot := keccak256(0x0c, 0x20)\n /// ```\n uint256 private constant _NONCES_SLOT_SEED = 0x38377508;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev `(_NONCES_SLOT_SEED << 16) | 0x1901`.\n uint256 private constant _NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX = 0x383775081901;\n\n /// @dev `keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")`.\n bytes32 private constant _DOMAIN_TYPEHASH =\n 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;\n\n /// @dev `keccak256(\"1\")`.\n bytes32 private constant _VERSION_HASH =\n 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6;\n\n /// @dev `keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\")`.\n bytes32 private constant _PERMIT_TYPEHASH =\n 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 METADATA */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the name of the token.\n function name() public view virtual returns (string memory);\n\n /// @dev Returns the symbol of the token.\n function symbol() public view virtual returns (string memory);\n\n /// @dev Returns the decimals places of the token.\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the amount of tokens in existence.\n function totalSupply() public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := sload(_TOTAL_SUPPLY_SLOT)\n }\n }\n\n /// @dev Returns the amount of tokens owned by `owner`.\n function balanceOf(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Returns the amount of tokens that `spender` can spend on behalf of `owner`.\n function allowance(address owner, address spender)\n public\n view\n virtual\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x34))\n }\n }\n\n /// @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n ///\n /// Emits a {Approval} event.\n function approve(address spender, uint256 amount) public virtual returns (bool) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the allowance slot and store the amount.\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x34), amount)\n // Emit the {Approval} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, caller(), shr(96, mload(0x2c)))\n }\n return true;\n }\n\n /// @dev Transfer `amount` tokens from the caller to `to`.\n ///\n /// Requirements:\n /// - `from` must at least have `amount`.\n ///\n /// Emits a {Transfer} event.\n function transfer(address to, uint256 amount) public virtual returns (bool) {\n _beforeTokenTransfer(msg.sender, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, caller())\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, caller(), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(msg.sender, to, amount);\n return true;\n }\n\n /// @dev Transfers `amount` tokens from `from` to `to`.\n ///\n /// Note: Does not update the allowance if it is the maximum uint256 value.\n ///\n /// Requirements:\n /// - `from` must at least have `amount`.\n /// - The caller must have at least `amount` of allowance to transfer the tokens of `from`.\n ///\n /// Emits a {Transfer} event.\n function transferFrom(address from, address to, uint256 amount) public virtual returns (bool) {\n _beforeTokenTransfer(from, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let from_ := shl(96, from)\n // Compute the allowance slot and load its value.\n mstore(0x20, caller())\n mstore(0x0c, or(from_, _ALLOWANCE_SLOT_SEED))\n let allowanceSlot := keccak256(0x0c, 0x34)\n let allowance_ := sload(allowanceSlot)\n // If the allowance is not the maximum uint256 value.\n if add(allowance_, 1) {\n // Revert if the amount to be transferred exceeds the allowance.\n if gt(amount, allowance_) {\n mstore(0x00, 0x13be252b) // `InsufficientAllowance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated allowance.\n sstore(allowanceSlot, sub(allowance_, amount))\n }\n // Compute the balance slot and load its value.\n mstore(0x0c, or(from_, _BALANCE_SLOT_SEED))\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(from, to, amount);\n return true;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EIP-2612 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev For more performance, override to return the constant value\n /// of `keccak256(bytes(name()))` if `name()` will never change.\n function _constantNameHash() internal view virtual returns (bytes32 result) {}\n\n /// @dev Returns the current nonce for `owner`.\n /// This value is used to compute the signature for EIP-2612 permit.\n function nonces(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the nonce slot and load its value.\n mstore(0x0c, _NONCES_SLOT_SEED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x20))\n }\n }\n\n /// @dev Sets `value` as the allowance of `spender` over the tokens of `owner`,\n /// authorized by a signed approval by `owner`.\n ///\n /// Emits a {Approval} event.\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) public virtual {\n bytes32 nameHash = _constantNameHash();\n // We simply calculate it on-the-fly to allow for cases where the `name` may change.\n if (nameHash == bytes32(0)) nameHash = keccak256(bytes(name()));\n /// @solidity memory-safe-assembly\n assembly {\n // Revert if the block timestamp is greater than `deadline`.\n if gt(timestamp(), deadline) {\n mstore(0x00, 0x1a15a3cc) // `PermitExpired()`.\n revert(0x1c, 0x04)\n }\n let m := mload(0x40) // Grab the free memory pointer.\n // Clean the upper 96 bits.\n owner := shr(96, shl(96, owner))\n spender := shr(96, shl(96, spender))\n // Compute the nonce slot and load its value.\n mstore(0x0e, _NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX)\n mstore(0x00, owner)\n let nonceSlot := keccak256(0x0c, 0x20)\n let nonceValue := sload(nonceSlot)\n // Prepare the domain separator.\n mstore(m, _DOMAIN_TYPEHASH)\n mstore(add(m, 0x20), nameHash)\n mstore(add(m, 0x40), _VERSION_HASH)\n mstore(add(m, 0x60), chainid())\n mstore(add(m, 0x80), address())\n mstore(0x2e, keccak256(m, 0xa0))\n // Prepare the struct hash.\n mstore(m, _PERMIT_TYPEHASH)\n mstore(add(m, 0x20), owner)\n mstore(add(m, 0x40), spender)\n mstore(add(m, 0x60), value)\n mstore(add(m, 0x80), nonceValue)\n mstore(add(m, 0xa0), deadline)\n mstore(0x4e, keccak256(m, 0xc0))\n // Prepare the ecrecover calldata.\n mstore(0x00, keccak256(0x2c, 0x42))\n mstore(0x20, and(0xff, v))\n mstore(0x40, r)\n mstore(0x60, s)\n let t := staticcall(gas(), 1, 0, 0x80, 0x20, 0x20)\n // If the ecrecover fails, the returndatasize will be 0x00,\n // `owner` will be checked if it equals the hash at 0x00,\n // which evaluates to false (i.e. 0), and we will revert.\n // If the ecrecover succeeds, the returndatasize will be 0x20,\n // `owner` will be compared against the returned address at 0x20.\n if iszero(eq(mload(returndatasize()), owner)) {\n mstore(0x00, 0xddafbaef) // `InvalidPermit()`.\n revert(0x1c, 0x04)\n }\n // Increment and store the updated nonce.\n sstore(nonceSlot, add(nonceValue, t)) // `t` is 1 if ecrecover succeeds.\n // Compute the allowance slot and store the value.\n // The `owner` is already at slot 0x20.\n mstore(0x40, or(shl(160, _ALLOWANCE_SLOT_SEED), spender))\n sstore(keccak256(0x2c, 0x34), value)\n // Emit the {Approval} event.\n log3(add(m, 0x60), 0x20, _APPROVAL_EVENT_SIGNATURE, owner, spender)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero pointer.\n }\n }\n\n /// @dev Returns the EIP-712 domain separator for the EIP-2612 permit.\n function DOMAIN_SEPARATOR() public view virtual returns (bytes32 result) {\n bytes32 nameHash = _constantNameHash();\n // We simply calculate it on-the-fly to allow for cases where the `name` may change.\n if (nameHash == bytes32(0)) nameHash = keccak256(bytes(name()));\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Grab the free memory pointer.\n mstore(m, _DOMAIN_TYPEHASH)\n mstore(add(m, 0x20), nameHash)\n mstore(add(m, 0x40), _VERSION_HASH)\n mstore(add(m, 0x60), chainid())\n mstore(add(m, 0x80), address())\n result := keccak256(m, 0xa0)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL MINT FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Mints `amount` tokens to `to`, increasing the total supply.\n ///\n /// Emits a {Transfer} event.\n function _mint(address to, uint256 amount) internal virtual {\n _beforeTokenTransfer(address(0), to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let totalSupplyBefore := sload(_TOTAL_SUPPLY_SLOT)\n let totalSupplyAfter := add(totalSupplyBefore, amount)\n // Revert if the total supply overflows.\n if lt(totalSupplyAfter, totalSupplyBefore) {\n mstore(0x00, 0xe5cfe957) // `TotalSupplyOverflow()`.\n revert(0x1c, 0x04)\n }\n // Store the updated total supply.\n sstore(_TOTAL_SUPPLY_SLOT, totalSupplyAfter)\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, 0, shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(address(0), to, amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL BURN FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Burns `amount` tokens from `from`, reducing the total supply.\n ///\n /// Emits a {Transfer} event.\n function _burn(address from, uint256 amount) internal virtual {\n _beforeTokenTransfer(from, address(0), amount);\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the balance slot and load its value.\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, from)\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Subtract and store the updated total supply.\n sstore(_TOTAL_SUPPLY_SLOT, sub(sload(_TOTAL_SUPPLY_SLOT), amount))\n // Emit the {Transfer} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, shl(96, from)), 0)\n }\n _afterTokenTransfer(from, address(0), amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL TRANSFER FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Moves `amount` of tokens from `from` to `to`.\n function _transfer(address from, address to, uint256 amount) internal virtual {\n _beforeTokenTransfer(from, to, amount);\n /// @solidity memory-safe-assembly\n assembly {\n let from_ := shl(96, from)\n // Compute the balance slot and load its value.\n mstore(0x0c, or(from_, _BALANCE_SLOT_SEED))\n let fromBalanceSlot := keccak256(0x0c, 0x20)\n let fromBalance := sload(fromBalanceSlot)\n // Revert if insufficient balance.\n if gt(amount, fromBalance) {\n mstore(0x00, 0xf4d678b8) // `InsufficientBalance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated balance.\n sstore(fromBalanceSlot, sub(fromBalance, amount))\n // Compute the balance slot of `to`.\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x20)\n // Add and store the updated balance of `to`.\n // Will not overflow because the sum of all user balances\n // cannot exceed the maximum uint256 value.\n sstore(toBalanceSlot, add(sload(toBalanceSlot), amount))\n // Emit the {Transfer} event.\n mstore(0x20, amount)\n log3(0x20, 0x20, _TRANSFER_EVENT_SIGNATURE, shr(96, from_), shr(96, mload(0x0c)))\n }\n _afterTokenTransfer(from, to, amount);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL ALLOWANCE FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Updates the allowance of `owner` for `spender` based on spent `amount`.\n function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute the allowance slot and load its value.\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n let allowanceSlot := keccak256(0x0c, 0x34)\n let allowance_ := sload(allowanceSlot)\n // If the allowance is not the maximum uint256 value.\n if add(allowance_, 1) {\n // Revert if the amount to be transferred exceeds the allowance.\n if gt(amount, allowance_) {\n mstore(0x00, 0x13be252b) // `InsufficientAllowance()`.\n revert(0x1c, 0x04)\n }\n // Subtract and store the updated allowance.\n sstore(allowanceSlot, sub(allowance_, amount))\n }\n }\n }\n\n /// @dev Sets `amount` as the allowance of `spender` over the tokens of `owner`.\n ///\n /// Emits a {Approval} event.\n function _approve(address owner, address spender, uint256 amount) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n let owner_ := shl(96, owner)\n // Compute the allowance slot and store the amount.\n mstore(0x20, spender)\n mstore(0x0c, or(owner_, _ALLOWANCE_SLOT_SEED))\n sstore(keccak256(0x0c, 0x34), amount)\n // Emit the {Approval} event.\n mstore(0x00, amount)\n log3(0x00, 0x20, _APPROVAL_EVENT_SIGNATURE, shr(96, owner_), shr(96, mload(0x2c)))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HOOKS TO OVERRIDE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Hook that is called before any transfer of tokens.\n /// This includes minting and burning.\n function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n\n /// @dev Hook that is called after any transfer of tokens.\n /// This includes minting and burning.\n function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}\n}\n"},"@solady/tokens/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Simple ERC721 implementation with storage hitchhiking.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC721.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/token/ERC721/ERC721.sol)\n///\n/// @dev Note:\n/// - The ERC721 standard allows for self-approvals.\n/// For performance, this implementation WILL NOT revert for such actions.\n/// Please add any checks with overrides if desired.\n/// - For performance, methods are made payable where permitted by the ERC721 standard.\n/// - The `safeTransfer` functions use the identity precompile (0x4)\n/// to copy memory internally.\n///\n/// If you are overriding:\n/// - NEVER violate the ERC721 invariant:\n/// the balance of an owner MUST always be equal to their number of ownership slots.\n/// The transfer functions do not have an underflow guard for user token balances.\n/// - Make sure all variables written to storage are properly cleaned\n// (e.g. the bool value for `isApprovedForAll` MUST be either 1 or 0 under the hood).\n/// - Check that the overridden function is actually used in the function you want to\n/// change the behavior of. Much of the code has been manually inlined for performance.\nabstract contract ERC721 {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev An account can hold up to 4294967295 tokens.\n uint256 internal constant _MAX_ACCOUNT_BALANCE = 0xffffffff;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Only the token owner or an approved account can manage the token.\n error NotOwnerNorApproved();\n\n /// @dev The token does not exist.\n error TokenDoesNotExist();\n\n /// @dev The token already exists.\n error TokenAlreadyExists();\n\n /// @dev Cannot query the balance for the zero address.\n error BalanceQueryForZeroAddress();\n\n /// @dev Cannot mint or transfer to the zero address.\n error TransferToZeroAddress();\n\n /// @dev The token must be owned by `from`.\n error TransferFromIncorrectOwner();\n\n /// @dev The recipient's balance has overflowed.\n error AccountBalanceOverflow();\n\n /// @dev Cannot safely transfer to a contract that does not implement\n /// the ERC721Receiver interface.\n error TransferToNonERC721ReceiverImplementer();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Emitted when token `id` is transferred from `from` to `to`.\n event Transfer(address indexed from, address indexed to, uint256 indexed id);\n\n /// @dev Emitted when `owner` enables `account` to manage the `id` token.\n event Approval(address indexed owner, address indexed account, uint256 indexed id);\n\n /// @dev Emitted when `owner` enables or disables `operator` to manage all of their tokens.\n event ApprovalForAll(address indexed owner, address indexed operator, bool isApproved);\n\n /// @dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`.\n uint256 private constant _TRANSFER_EVENT_SIGNATURE =\n 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;\n\n /// @dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`.\n uint256 private constant _APPROVAL_EVENT_SIGNATURE =\n 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925;\n\n /// @dev `keccak256(bytes(\"ApprovalForAll(address,address,bool)\"))`.\n uint256 private constant _APPROVAL_FOR_ALL_EVENT_SIGNATURE =\n 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ownership data slot of `id` is given by:\n /// ```\n /// mstore(0x00, id)\n /// mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n /// let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n /// ```\n /// Bits Layout:\n /// - [0..159] `addr`\n /// - [160..255] `extraData`\n ///\n /// The approved address slot is given by: `add(1, ownershipSlot)`.\n ///\n /// See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip\n ///\n /// The balance slot of `owner` is given by:\n /// ```\n /// mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n /// mstore(0x00, owner)\n /// let balanceSlot := keccak256(0x0c, 0x1c)\n /// ```\n /// Bits Layout:\n /// - [0..31] `balance`\n /// - [32..255] `aux`\n ///\n /// The `operator` approval slot of `owner` is given by:\n /// ```\n /// mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n /// mstore(0x00, owner)\n /// let operatorApprovalSlot := keccak256(0x0c, 0x30)\n /// ```\n uint256 private constant _ERC721_MASTER_SLOT_SEED = 0x7d8825530a5a2e7a << 192;\n\n /// @dev Pre-shifted and pre-masked constant.\n uint256 private constant _ERC721_MASTER_SLOT_SEED_MASKED = 0x0a5a2e7a00000000;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC721 METADATA */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the token collection name.\n function name() public view virtual returns (string memory);\n\n /// @dev Returns the token collection symbol.\n function symbol() public view virtual returns (string memory);\n\n /// @dev Returns the Uniform Resource Identifier (URI) for token `id`.\n function tokenURI(uint256 id) public view virtual returns (string memory);\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC721 */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the owner of token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function ownerOf(uint256 id) public view virtual returns (address result) {\n result = _ownerOf(id);\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(result) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Returns the number of tokens owned by `owner`.\n ///\n /// Requirements:\n /// - `owner` must not be the zero address.\n function balanceOf(address owner) public view virtual returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Revert if the `owner` is the zero address.\n if iszero(owner) {\n mstore(0x00, 0x8f4eb604) // `BalanceQueryForZeroAddress()`.\n revert(0x1c, 0x04)\n }\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n result := and(sload(keccak256(0x0c, 0x1c)), _MAX_ACCOUNT_BALANCE)\n }\n }\n\n /// @dev Returns the account approved to manage token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function getApproved(uint256 id) public view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n if iszero(shl(96, sload(ownershipSlot))) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n result := sload(add(1, ownershipSlot))\n }\n }\n\n /// @dev Sets `account` as the approved account to manage token `id`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n /// - The caller must be the owner of the token,\n /// or an approved operator for the token owner.\n ///\n /// Emits an {Approval} event.\n function approve(address account, uint256 id) public payable virtual {\n _approve(msg.sender, account, id);\n }\n\n /// @dev Returns whether `operator` is approved to manage the tokens of `owner`.\n function isApprovedForAll(address owner, address operator)\n public\n view\n virtual\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, operator)\n mstore(0x08, _ERC721_MASTER_SLOT_SEED_MASKED)\n mstore(0x00, owner)\n result := sload(keccak256(0x0c, 0x30))\n }\n }\n\n /// @dev Sets whether `operator` is approved to manage the tokens of the caller.\n ///\n /// Emits an {ApprovalForAll} event.\n function setApprovalForAll(address operator, bool isApproved) public virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Convert to 0 or 1.\n isApproved := iszero(iszero(isApproved))\n // Update the `isApproved` for (`msg.sender`, `operator`).\n mstore(0x1c, operator)\n mstore(0x08, _ERC721_MASTER_SLOT_SEED_MASKED)\n mstore(0x00, caller())\n sstore(keccak256(0x0c, 0x30), isApproved)\n // Emit the {ApprovalForAll} event.\n mstore(0x00, isApproved)\n // forgefmt: disable-next-item\n log3(0x00, 0x20, _APPROVAL_FOR_ALL_EVENT_SIGNATURE, caller(), shr(96, shl(96, operator)))\n }\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function transferFrom(address from, address to, uint256 id) public payable virtual {\n _beforeTokenTransfer(from, to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n from := and(bitmaskAddress, from)\n to := and(bitmaskAddress, to)\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, caller()))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n let owner := and(bitmaskAddress, ownershipPacked)\n // Revert if the token does not exist, or if `from` is not the owner.\n if iszero(mul(owner, eq(owner, from))) {\n // `TokenDoesNotExist()`, `TransferFromIncorrectOwner()`.\n mstore(shl(2, iszero(owner)), 0xceea21b6a1148100)\n revert(0x1c, 0x04)\n }\n // Load, check, and update the token approval.\n {\n mstore(0x00, from)\n let approvedAddress := sload(add(1, ownershipSlot))\n // Revert if the caller is not the owner, nor approved.\n if iszero(or(eq(caller(), from), eq(caller(), approvedAddress))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Update with the new owner.\n sstore(ownershipSlot, xor(ownershipPacked, xor(from, to)))\n // Decrement the balance of `from`.\n {\n let fromBalanceSlot := keccak256(0x0c, 0x1c)\n sstore(fromBalanceSlot, sub(sload(fromBalanceSlot), 1))\n }\n // Increment the balance of `to`.\n {\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x1c)\n let toBalanceSlotPacked := add(sload(toBalanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(toBalanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(toBalanceSlot, toBalanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, from, to, id)\n }\n _afterTokenTransfer(from, to, id);\n }\n\n /// @dev Equivalent to `safeTransferFrom(from, to, id, \"\")`.\n function safeTransferFrom(address from, address to, uint256 id) public payable virtual {\n transferFrom(from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function safeTransferFrom(address from, address to, uint256 id, bytes calldata data)\n public\n payable\n virtual\n {\n transferFrom(from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /// @dev Returns true if this contract implements the interface defined by `interfaceId`.\n /// See: https://eips.ethereum.org/EIPS/eip-165\n /// This function call must use less than 30000 gas.\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let s := shr(224, interfaceId)\n // ERC165: 0x01ffc9a7, ERC721: 0x80ac58cd, ERC721Metadata: 0x5b5e139f.\n result := or(or(eq(s, 0x01ffc9a7), eq(s, 0x80ac58cd)), eq(s, 0x5b5e139f))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL QUERY FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns if token `id` exists.\n function _exists(uint256 id) internal view virtual returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := iszero(iszero(shl(96, sload(add(id, add(id, keccak256(0x00, 0x20)))))))\n }\n }\n\n /// @dev Returns the owner of token `id`.\n /// Returns the zero address instead of reverting if the token does not exist.\n function _ownerOf(uint256 id) internal view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := shr(96, shl(96, sload(add(id, add(id, keccak256(0x00, 0x20))))))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL DATA HITCHHIKING FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // For performance, no events are emitted for the hitchhiking setters.\n // Please emit your own events if required.\n\n /// @dev Returns the auxiliary data for `owner`.\n /// Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n /// Auxiliary data can be set for any address, even if it does not have any tokens.\n function _getAux(address owner) internal view virtual returns (uint224 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n result := shr(32, sload(keccak256(0x0c, 0x1c)))\n }\n }\n\n /// @dev Set the auxiliary data for `owner` to `value`.\n /// Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n /// Auxiliary data can be set for any address, even if it does not have any tokens.\n function _setAux(address owner, uint224 value) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let packed := sload(balanceSlot)\n sstore(balanceSlot, xor(packed, shl(32, xor(value, shr(32, packed)))))\n }\n }\n\n /// @dev Returns the extra data for token `id`.\n /// Minting, transferring, burning a token will not change the extra data.\n /// The extra data can be set on a non-existent token.\n function _getExtraData(uint256 id) internal view virtual returns (uint96 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := shr(160, sload(add(id, add(id, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Sets the extra data for token `id` to `value`.\n /// Minting, transferring, burning a token will not change the extra data.\n /// The extra data can be set on a non-existent token.\n function _setExtraData(uint256 id, uint96 value) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let packed := sload(ownershipSlot)\n sstore(ownershipSlot, xor(packed, shl(160, xor(value, shr(160, packed)))))\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL MINT FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Mints token `id` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must not exist.\n /// - `to` cannot be the zero address.\n ///\n /// Emits a {Transfer} event.\n function _mint(address to, uint256 id) internal virtual {\n _beforeTokenTransfer(address(0), to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n to := shr(96, shl(96, to))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n // Revert if the token already exists.\n if shl(96, ownershipPacked) {\n mstore(0x00, 0xc991cbb1) // `TokenAlreadyExists()`.\n revert(0x1c, 0x04)\n }\n // Update with the owner.\n sstore(ownershipSlot, or(ownershipPacked, to))\n // Increment the balance of the owner.\n {\n mstore(0x00, to)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let balanceSlotPacked := add(sload(balanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(balanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(balanceSlot, balanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, 0, to, id)\n }\n _afterTokenTransfer(address(0), to, id);\n }\n\n /// @dev Mints token `id` to `to`, and updates the extra data for token `id` to `value`.\n /// Does NOT check if token `id` already exists (assumes `id` is auto-incrementing).\n ///\n /// Requirements:\n ///\n /// - `to` cannot be the zero address.\n ///\n /// Emits a {Transfer} event.\n function _mintAndSetExtraDataUnchecked(address to, uint256 id, uint96 value) internal virtual {\n _beforeTokenTransfer(address(0), to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n to := shr(96, shl(96, to))\n // Update with the owner and extra data.\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n sstore(add(id, add(id, keccak256(0x00, 0x20))), or(shl(160, value), to))\n // Increment the balance of the owner.\n {\n mstore(0x00, to)\n let balanceSlot := keccak256(0x0c, 0x1c)\n let balanceSlotPacked := add(sload(balanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(balanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(balanceSlot, balanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, 0, to, id)\n }\n _afterTokenTransfer(address(0), to, id);\n }\n\n /// @dev Equivalent to `_safeMint(to, id, \"\")`.\n function _safeMint(address to, uint256 id) internal virtual {\n _safeMint(to, id, \"\");\n }\n\n /// @dev Mints token `id` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must not exist.\n /// - `to` cannot be the zero address.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeMint(address to, uint256 id, bytes memory data) internal virtual {\n _mint(to, id);\n if (_hasCode(to)) _checkOnERC721Received(address(0), to, id, data);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL BURN FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to `_burn(address(0), id)`.\n function _burn(uint256 id) internal virtual {\n _burn(address(0), id);\n }\n\n /// @dev Destroys token `id`, using `by`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function _burn(address by, uint256 id) internal virtual {\n address owner = ownerOf(id);\n _beforeTokenTransfer(owner, address(0), id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n by := shr(96, shl(96, by))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n // Reload the owner in case it is changed in `_beforeTokenTransfer`.\n owner := shr(96, shl(96, ownershipPacked))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // Load and check the token approval.\n {\n mstore(0x00, owner)\n let approvedAddress := sload(add(1, ownershipSlot))\n // If `by` is not the zero address, do the authorization check.\n // Revert if the `by` is not the owner, nor approved.\n if iszero(or(iszero(by), or(eq(by, owner), eq(by, approvedAddress)))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Clear the owner.\n sstore(ownershipSlot, xor(ownershipPacked, owner))\n // Decrement the balance of `owner`.\n {\n let balanceSlot := keccak256(0x0c, 0x1c)\n sstore(balanceSlot, sub(sload(balanceSlot), 1))\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, owner, 0, id)\n }\n _afterTokenTransfer(owner, address(0), id);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL APPROVAL FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `account` is the owner of token `id`, or is approved to manage it.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n function _isApprovedOrOwner(address account, uint256 id)\n internal\n view\n virtual\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := 1\n // Clear the upper 96 bits.\n account := shr(96, shl(96, account))\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, account))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let owner := shr(96, shl(96, sload(ownershipSlot)))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // Check if `account` is the `owner`.\n if iszero(eq(account, owner)) {\n mstore(0x00, owner)\n // Check if `account` is approved to manage the token.\n if iszero(sload(keccak256(0x0c, 0x30))) {\n result := eq(account, sload(add(1, ownershipSlot)))\n }\n }\n }\n }\n\n /// @dev Returns the account approved to manage token `id`.\n /// Returns the zero address instead of reverting if the token does not exist.\n function _getApproved(uint256 id) internal view virtual returns (address result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n result := sload(add(1, add(id, add(id, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Equivalent to `_approve(address(0), account, id)`.\n function _approve(address account, uint256 id) internal virtual {\n _approve(address(0), account, id);\n }\n\n /// @dev Sets `account` as the approved account to manage token `id`, using `by`.\n ///\n /// Requirements:\n /// - Token `id` must exist.\n /// - If `by` is not the zero address, `by` must be the owner\n /// or an approved operator for the token owner.\n ///\n /// Emits a {Approval} event.\n function _approve(address by, address account, uint256 id) internal virtual {\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n account := and(bitmaskAddress, account)\n by := and(bitmaskAddress, by)\n // Load the owner of the token.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let owner := and(bitmaskAddress, sload(ownershipSlot))\n // Revert if the token does not exist.\n if iszero(owner) {\n mstore(0x00, 0xceea21b6) // `TokenDoesNotExist()`.\n revert(0x1c, 0x04)\n }\n // If `by` is not the zero address, do the authorization check.\n // Revert if `by` is not the owner, nor approved.\n if iszero(or(iszero(by), eq(by, owner))) {\n mstore(0x00, owner)\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Sets `account` as the approved account to manage `id`.\n sstore(add(1, ownershipSlot), account)\n // Emit the {Approval} event.\n log4(codesize(), 0x00, _APPROVAL_EVENT_SIGNATURE, owner, account, id)\n }\n }\n\n /// @dev Approve or remove the `operator` as an operator for `by`,\n /// without authorization checks.\n ///\n /// Emits an {ApprovalForAll} event.\n function _setApprovalForAll(address by, address operator, bool isApproved) internal virtual {\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n by := shr(96, shl(96, by))\n operator := shr(96, shl(96, operator))\n // Convert to 0 or 1.\n isApproved := iszero(iszero(isApproved))\n // Update the `isApproved` for (`by`, `operator`).\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n mstore(0x00, by)\n sstore(keccak256(0x0c, 0x30), isApproved)\n // Emit the {ApprovalForAll} event.\n mstore(0x00, isApproved)\n log3(0x00, 0x20, _APPROVAL_FOR_ALL_EVENT_SIGNATURE, by, operator)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* INTERNAL TRANSFER FUNCTIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to `_transfer(address(0), from, to, id)`.\n function _transfer(address from, address to, uint256 id) internal virtual {\n _transfer(address(0), from, to, id);\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n ///\n /// Emits a {Transfer} event.\n function _transfer(address by, address from, address to, uint256 id) internal virtual {\n _beforeTokenTransfer(from, to, id);\n /// @solidity memory-safe-assembly\n assembly {\n // Clear the upper 96 bits.\n let bitmaskAddress := shr(96, not(0))\n from := and(bitmaskAddress, from)\n to := and(bitmaskAddress, to)\n by := and(bitmaskAddress, by)\n // Load the ownership data.\n mstore(0x00, id)\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, by))\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n let ownershipPacked := sload(ownershipSlot)\n let owner := and(bitmaskAddress, ownershipPacked)\n // Revert if the token does not exist, or if `from` is not the owner.\n if iszero(mul(owner, eq(owner, from))) {\n // `TokenDoesNotExist()`, `TransferFromIncorrectOwner()`.\n mstore(shl(2, iszero(owner)), 0xceea21b6a1148100)\n revert(0x1c, 0x04)\n }\n // Load, check, and update the token approval.\n {\n mstore(0x00, from)\n let approvedAddress := sload(add(1, ownershipSlot))\n // If `by` is not the zero address, do the authorization check.\n // Revert if the `by` is not the owner, nor approved.\n if iszero(or(iszero(by), or(eq(by, from), eq(by, approvedAddress)))) {\n if iszero(sload(keccak256(0x0c, 0x30))) {\n mstore(0x00, 0x4b6e7f18) // `NotOwnerNorApproved()`.\n revert(0x1c, 0x04)\n }\n }\n // Delete the approved address if any.\n if approvedAddress { sstore(add(1, ownershipSlot), 0) }\n }\n // Update with the new owner.\n sstore(ownershipSlot, xor(ownershipPacked, xor(from, to)))\n // Decrement the balance of `from`.\n {\n let fromBalanceSlot := keccak256(0x0c, 0x1c)\n sstore(fromBalanceSlot, sub(sload(fromBalanceSlot), 1))\n }\n // Increment the balance of `to`.\n {\n mstore(0x00, to)\n let toBalanceSlot := keccak256(0x0c, 0x1c)\n let toBalanceSlotPacked := add(sload(toBalanceSlot), 1)\n // Revert if `to` is the zero address, or if the account balance overflows.\n if iszero(mul(to, and(toBalanceSlotPacked, _MAX_ACCOUNT_BALANCE))) {\n // `TransferToZeroAddress()`, `AccountBalanceOverflow()`.\n mstore(shl(2, iszero(to)), 0xea553b3401336cea)\n revert(0x1c, 0x04)\n }\n sstore(toBalanceSlot, toBalanceSlotPacked)\n }\n // Emit the {Transfer} event.\n log4(codesize(), 0x00, _TRANSFER_EVENT_SIGNATURE, from, to, id)\n }\n _afterTokenTransfer(from, to, id);\n }\n\n /// @dev Equivalent to `_safeTransfer(from, to, id, \"\")`.\n function _safeTransfer(address from, address to, uint256 id) internal virtual {\n _safeTransfer(from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - The caller must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeTransfer(address from, address to, uint256 id, bytes memory data)\n internal\n virtual\n {\n _transfer(address(0), from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /// @dev Equivalent to `_safeTransfer(by, from, to, id, \"\")`.\n function _safeTransfer(address by, address from, address to, uint256 id) internal virtual {\n _safeTransfer(by, from, to, id, \"\");\n }\n\n /// @dev Transfers token `id` from `from` to `to`.\n ///\n /// Requirements:\n ///\n /// - Token `id` must exist.\n /// - `from` must be the owner of the token.\n /// - `to` cannot be the zero address.\n /// - If `by` is not the zero address,\n /// it must be the owner of the token, or be approved to manage the token.\n /// - If `to` refers to a smart contract, it must implement\n /// {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n ///\n /// Emits a {Transfer} event.\n function _safeTransfer(address by, address from, address to, uint256 id, bytes memory data)\n internal\n virtual\n {\n _transfer(by, from, to, id);\n if (_hasCode(to)) _checkOnERC721Received(from, to, id, data);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HOOKS FOR OVERRIDING */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Hook that is called before any token transfers, including minting and burning.\n function _beforeTokenTransfer(address from, address to, uint256 id) internal virtual {}\n\n /// @dev Hook that is called after any token transfers, including minting and burning.\n function _afterTokenTransfer(address from, address to, uint256 id) internal virtual {}\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* PRIVATE HELPERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns if `a` has bytecode of non-zero length.\n function _hasCode(address a) private view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := extcodesize(a) // Can handle dirty upper bits.\n }\n }\n\n /// @dev Perform a call to invoke {IERC721Receiver-onERC721Received} on `to`.\n /// Reverts if the target does not support the function correctly.\n function _checkOnERC721Received(address from, address to, uint256 id, bytes memory data)\n private\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Prepare the calldata.\n let m := mload(0x40)\n let onERC721ReceivedSelector := 0x150b7a02\n mstore(m, onERC721ReceivedSelector)\n mstore(add(m, 0x20), caller()) // The `operator`, which is always `msg.sender`.\n mstore(add(m, 0x40), shr(96, shl(96, from)))\n mstore(add(m, 0x60), id)\n mstore(add(m, 0x80), 0x80)\n let n := mload(data)\n mstore(add(m, 0xa0), n)\n if n { pop(staticcall(gas(), 4, add(data, 0x20), n, add(m, 0xc0), n)) }\n // Revert if the call reverts.\n if iszero(call(gas(), to, 0, add(m, 0x1c), add(n, 0xa4), m, 0x20)) {\n if returndatasize() {\n // Bubble up the revert if the call reverts.\n returndatacopy(m, 0x00, returndatasize())\n revert(m, returndatasize())\n }\n }\n // Load the returndata and compare it.\n if iszero(eq(mload(m), shl(224, onERC721ReceivedSelector))) {\n mstore(0x00, 0xd1a57ed6) // `TransferToNonERC721ReceiverImplementer()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Initializable mixin for the upgradeable contracts.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)\nabstract contract Initializable {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The contract is already initialized.\n error InvalidInitialization();\n\n /// @dev The contract is not initializing.\n error NotInitializing();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EVENTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Triggered when the contract has been initialized.\n event Initialized(uint64 version);\n\n /// @dev `keccak256(bytes(\"Initialized(uint64)\"))`.\n bytes32 private constant _INTIALIZED_EVENT_SIGNATURE =\n 0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The default initializable slot is given by:\n /// `bytes32(~uint256(uint32(bytes4(keccak256(\"_INITIALIZABLE_SLOT\")))))`.\n ///\n /// Bits Layout:\n /// - [0] `initializing`\n /// - [1..64] `initializedVersion`\n bytes32 private constant _INITIALIZABLE_SLOT =\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Override to return a custom storage slot if required.\n function _initializableSlot() internal pure virtual returns (bytes32) {\n return _INITIALIZABLE_SLOT;\n }\n\n /// @dev Guards an initializer function so that it can be invoked at most once.\n ///\n /// You can guard a function with `onlyInitializing` such that it can be called\n /// through a function guarded with `initializer`.\n ///\n /// This is similar to `reinitializer(1)`, except that in the context of a constructor,\n /// an `initializer` guarded function can be invoked multiple times.\n /// This can be useful during testing and is not expected to be used in production.\n ///\n /// Emits an {Initialized} event.\n modifier initializer() virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n let i := sload(s)\n // Set `initializing` to 1, `initializedVersion` to 1.\n sstore(s, 3)\n // If `!(initializing == 0 && initializedVersion == 0)`.\n if i {\n // If `!(address(this).code.length == 0 && initializedVersion == 1)`.\n if iszero(lt(extcodesize(address()), eq(shr(1, i), 1))) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n s := shl(shl(255, i), s) // Skip initializing if `initializing == 1`.\n }\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n if s {\n // Set `initializing` to 0, `initializedVersion` to 1.\n sstore(s, 2)\n // Emit the {Initialized} event.\n mstore(0x20, 1)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n }\n\n /// @dev Guards an reinitialzer function so that it can be invoked at most once.\n ///\n /// You can guard a function with `onlyInitializing` such that it can be called\n /// through a function guarded with `reinitializer`.\n ///\n /// Emits an {Initialized} event.\n modifier reinitializer(uint64 version) virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n version := and(version, 0xffffffffffffffff) // Clean upper bits.\n let i := sload(s)\n // If `initializing == 1 || initializedVersion >= version`.\n if iszero(lt(and(i, 1), lt(shr(1, i), version))) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n // Set `initializing` to 1, `initializedVersion` to `version`.\n sstore(s, or(1, shl(1, version)))\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n // Set `initializing` to 0, `initializedVersion` to `version`.\n sstore(s, shl(1, version))\n // Emit the {Initialized} event.\n mstore(0x20, version)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n\n /// @dev Guards a function such that it can only be called in the scope\n /// of a function guarded with `initializer` or `reinitializer`.\n modifier onlyInitializing() virtual {\n _checkInitializing();\n _;\n }\n\n /// @dev Reverts if the contract is not initializing.\n function _checkInitializing() internal view virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(and(1, sload(s))) {\n mstore(0x00, 0xd7e6bcf8) // `NotInitializing()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Locks any future initializations by setting the initialized version to `2**64 - 1`.\n ///\n /// Calling this in the constructor will prevent the contract from being initialized\n /// or reinitialized. It is recommended to use this to lock implementation contracts\n /// that are designed to be called through proxies.\n ///\n /// Emits an {Initialized} event the first time it is successfully called.\n function _disableInitializers() internal virtual {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n let i := sload(s)\n if and(i, 1) {\n mstore(0x00, 0xf92ee8a9) // `InvalidInitialization()`.\n revert(0x1c, 0x04)\n }\n let uint64max := shr(192, s) // Computed to save bytecode.\n if iszero(eq(shr(1, i), uint64max)) {\n // Set `initializing` to 0, `initializedVersion` to `2**64 - 1`.\n sstore(s, shl(1, uint64max))\n // Emit the {Initialized} event.\n mstore(0x20, uint64max)\n log1(0x20, 0x20, _INTIALIZED_EVENT_SIGNATURE)\n }\n }\n }\n\n /// @dev Returns the highest version that has been initialized.\n function _getInitializedVersion() internal view virtual returns (uint64 version) {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n version := shr(1, sload(s))\n }\n }\n\n /// @dev Returns whether the contract is currently initializing.\n function _isInitializing() internal view virtual returns (bool result) {\n bytes32 s = _initializableSlot();\n /// @solidity memory-safe-assembly\n assembly {\n result := and(1, sload(s))\n }\n }\n}\n"},"@solady/utils/LibClone.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Minimal proxy library.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)\n/// @author Minimal proxy by 0age (https://github.com/0age)\n/// @author Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie\n/// (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)\n/// @author Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\n///\n/// @dev Minimal proxy:\n/// Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime,\n/// it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern,\n/// which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.\n///\n/// @dev Minimal proxy (PUSH0 variant):\n/// This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai.\n/// It is optimized first for minimal runtime gas, then for minimal bytecode.\n/// The PUSH0 clone functions are intentionally postfixed with a jarring \"_PUSH0\" as\n/// many EVM chains may not support the PUSH0 opcode in the early months after Shanghai.\n/// Please use with caution.\n///\n/// @dev Clones with immutable args (CWIA):\n/// The implementation of CWIA here implements a `receive()` method that emits the\n/// `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata,\n/// enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards\n/// composability. The minimal proxy implementation does not offer this feature.\n///\n/// @dev Minimal ERC1967 proxy:\n/// An minimal ERC1967 proxy, intended to be upgraded with UUPS.\n/// This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n/// This proxy is automatically verified on Etherscan.\n///\n/// @dev ERC1967I proxy:\n/// An variant of the minimal ERC1967 proxy, with a special code path that activates\n/// if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the\n/// `implementation` address. The returned implementation is guaranteed to be valid if the\n/// keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.\nlibrary LibClone {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The keccak256 of the deployed code for the ERC1967 proxy.\n bytes32 internal constant ERC1967_CODE_HASH =\n 0xaaa52c8cc8a0e3fd27ce756cc6b4e70c51423e9b597b11f32d3e49f8b1fc890d;\n\n /// @dev The keccak256 of the deployed code for the ERC1967I proxy.\n bytes32 internal constant ERC1967I_CODE_HASH =\n 0xce700223c0d4cea4583409accfc45adac4a093b3519998a9cbbe1504dadba6f7;\n\n /// @dev The keccak256 of the deployed code for the ERC1967 beacon proxy.\n bytes32 internal constant ERC1967_BEACON_PROXY_CODE_HASH =\n 0x14044459af17bc4f0f5aa2f658cb692add77d1302c29fe2aebab005eea9d1162;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Unable to deploy the clone.\n error DeploymentFailed();\n\n /// @dev The salt must start with either the zero address or `by`.\n error SaltDoesNotStartWith();\n\n /// @dev The ETH transfer has failed.\n error ETHTransferFailed();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Deploys a clone of `implementation`.\n function clone(address implementation) internal returns (address instance) {\n instance = clone(0, implementation);\n }\n\n /// @dev Deploys a clone of `implementation`.\n /// Deposits `value` ETH during deployment.\n function clone(uint256 value, address implementation) internal returns (address instance) {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * --------------------------------------------------------------------------+\n * CREATION (9 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * --------------------------------------------------------------------------|\n * RUNTIME (44 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * |\n * ::: keep some values in stack ::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 0 0 | |\n * |\n * ::: copy calldata to memory ::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 cds 0 0 0 0 | |\n * 3d | RETURNDATASIZE | 0 0 cds 0 0 0 0 | |\n * 37 | CALLDATACOPY | 0 0 0 0 | [0..cds): calldata |\n * |\n * ::: delegate call to the implementation contract :::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 0 0 | [0..cds): calldata |\n * 73 addr | PUSH20 addr | addr 0 cds 0 0 0 0 | [0..cds): calldata |\n * 5a | GAS | gas addr 0 cds 0 0 0 0 | [0..cds): calldata |\n * f4 | DELEGATECALL | success 0 0 | [0..cds): calldata |\n * |\n * ::: copy return data to memory :::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | rds rds success 0 0 | [0..cds): calldata |\n * 93 | SWAP4 | 0 rds success 0 rds | [0..cds): calldata |\n * 80 | DUP1 | 0 0 rds success 0 rds | [0..cds): calldata |\n * 3e | RETURNDATACOPY | success 0 rds | [0..rds): returndata |\n * |\n * 60 0x2a | PUSH1 0x2a | 0x2a success 0 rds | [0..rds): returndata |\n * 57 | JUMPI | 0 rds | [0..rds): returndata |\n * |\n * ::: revert :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * --------------------------------------------------------------------------+\n */\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n instance := create(value, 0x0c, 0x35)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Deploys a deterministic clone of `implementation` with `salt`.\n function cloneDeterministic(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic clone of `implementation` with `salt`.\n /// Deposits `value` ETH during deployment.\n function cloneDeterministic(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n instance := create2(value, 0x0c, 0x35, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the initialization code of the clone of `implementation`.\n function initCode(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(add(result, 0x40), 0x5af43d3d93803e602a57fd5bf30000000000000000000000)\n mstore(add(result, 0x28), implementation)\n mstore(add(result, 0x14), 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n mstore(result, 0x35) // Store the length.\n mstore(0x40, add(result, 0x60)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x21, 0x5af43d3d93803e602a57fd5bf3)\n mstore(0x14, implementation)\n mstore(0x00, 0x602c3d8160093d39f33d3d3d3d363d3d37363d73)\n hash := keccak256(0x0c, 0x35)\n mstore(0x21, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the address of the deterministic clone of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(address implementation, bytes32 salt, address deployer)\n internal\n pure\n returns (address predicted)\n {\n bytes32 hash = initCodeHash(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL PROXY OPERATIONS (PUSH0 VARIANT) */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Deploys a PUSH0 clone of `implementation`.\n function clone_PUSH0(address implementation) internal returns (address instance) {\n instance = clone_PUSH0(0, implementation);\n }\n\n /// @dev Deploys a PUSH0 clone of `implementation`.\n /// Deposits `value` ETH during deployment.\n function clone_PUSH0(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * --------------------------------------------------------------------------+\n * CREATION (9 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 5f | PUSH0 | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 5f | PUSH0 | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * --------------------------------------------------------------------------|\n * RUNTIME (45 bytes) |\n * --------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * --------------------------------------------------------------------------|\n * |\n * ::: keep some values in stack ::::::::::::::::::::::::::::::::::::::::::: |\n * 5f | PUSH0 | 0 | |\n * 5f | PUSH0 | 0 0 | |\n * |\n * ::: copy calldata to memory ::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 | |\n * 5f | PUSH0 | 0 cds 0 0 | |\n * 5f | PUSH0 | 0 0 cds 0 0 | |\n * 37 | CALLDATACOPY | 0 0 | [0..cds): calldata |\n * |\n * ::: delegate call to the implementation contract :::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds 0 0 | [0..cds): calldata |\n * 5f | PUSH0 | 0 cds 0 0 | [0..cds): calldata |\n * 73 addr | PUSH20 addr | addr 0 cds 0 0 | [0..cds): calldata |\n * 5a | GAS | gas addr 0 cds 0 0 | [0..cds): calldata |\n * f4 | DELEGATECALL | success | [0..cds): calldata |\n * |\n * ::: copy return data to memory :::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success | [0..cds): calldata |\n * 5f | PUSH0 | 0 rds success | [0..cds): calldata |\n * 5f | PUSH0 | 0 0 rds success | [0..cds): calldata |\n * 3e | RETURNDATACOPY | success | [0..rds): returndata |\n * |\n * 60 0x29 | PUSH1 0x29 | 0x29 success | [0..rds): returndata |\n * 57 | JUMPI | | [0..rds): returndata |\n * |\n * ::: revert :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..rds): returndata |\n * 5f | PUSH0 | 0 rds | [0..rds): returndata |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..rds): returndata |\n * 3d | RETURNDATASIZE | rds | [0..rds): returndata |\n * 5f | PUSH0 | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * --------------------------------------------------------------------------+\n */\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n instance := create(value, 0x0e, 0x36)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n function cloneDeterministic_PUSH0(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic_PUSH0(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n /// Deposits `value` ETH during deployment.\n function cloneDeterministic_PUSH0(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n instance := create2(value, 0x0e, 0x36, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the initialization code of the PUSH0 clone of `implementation`.\n function initCode_PUSH0(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(add(result, 0x40), 0x5af43d5f5f3e6029573d5ffd5b3d5ff300000000000000000000) // 16\n mstore(add(result, 0x26), implementation) // 20\n mstore(add(result, 0x12), 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n mstore(result, 0x36) // Store the length.\n mstore(0x40, add(result, 0x60)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the PUSH0 clone of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash_PUSH0(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x24, 0x5af43d5f5f3e6029573d5ffd5b3d5ff3) // 16\n mstore(0x14, implementation) // 20\n mstore(0x00, 0x602d5f8160095f39f35f5f365f5f37365f73) // 9 + 9\n hash := keccak256(0x0e, 0x36)\n mstore(0x24, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Returns the address of the deterministic PUSH0 clone of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress_PUSH0(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHash_PUSH0(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CLONES WITH IMMUTABLE ARGS OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This implementation of CWIA differs from the original implementation.\n // If the calldata is empty, it will emit a `ReceiveETH(uint256)` event and skip the `DELEGATECALL`.\n\n /// @dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n function clone(address implementation, bytes memory data) internal returns (address instance) {\n instance = clone(0, implementation, data);\n }\n\n /// @dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n /// Deposits `value` ETH during deployment.\n function clone(uint256 value, address implementation, bytes memory data)\n internal\n returns (address instance)\n {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n // The `creationSize` is `extraLength + 108`\n // The `runSize` is `creationSize - 10`.\n\n /**\n * ---------------------------------------------------------------------------------------------------+\n * CREATION (10 bytes) |\n * ---------------------------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------------------------|\n * 61 runSize | PUSH2 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------------------------|\n * RUNTIME (98 bytes + extraLength) |\n * ---------------------------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------------------------|\n * |\n * ::: if no calldata, emit event & return w/o `DELEGATECALL` ::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 60 0x2c | PUSH1 0x2c | 0x2c cds | |\n * 57 | JUMPI | | |\n * 34 | CALLVALUE | cv | |\n * 3d | RETURNDATASIZE | 0 cv | |\n * 52 | MSTORE | | [0..0x20): callvalue |\n * 7f sig | PUSH32 0x9e.. | sig | [0..0x20): callvalue |\n * 59 | MSIZE | 0x20 sig | [0..0x20): callvalue |\n * 3d | RETURNDATASIZE | 0 0x20 sig | [0..0x20): callvalue |\n * a1 | LOG1 | | [0..0x20): callvalue |\n * 00 | STOP | | [0..0x20): callvalue |\n * 5b | JUMPDEST | | |\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..cds): calldata |\n * |\n * ::: keep some values in stack :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 0 | [0..cds): calldata |\n * 3d | RETURNDATASIZE | 0 0 0 0 | [0..cds): calldata |\n * 61 extra | PUSH2 extra | e 0 0 0 0 | [0..cds): calldata |\n * |\n * ::: copy extra data to memory :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 80 | DUP1 | e e 0 0 0 0 | [0..cds): calldata |\n * 60 0x62 | PUSH1 0x62 | 0x62 e e 0 0 0 0 | [0..cds): calldata |\n * 36 | CALLDATASIZE | cds 0x62 e e 0 0 0 0 | [0..cds): calldata |\n * 39 | CODECOPY | e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * |\n * ::: delegate call to the implementation contract ::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 01 | ADD | cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 3d | RETURNDATASIZE | 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 73 addr | PUSH20 addr | addr 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 5a | GAS | gas addr 0 cds+e 0 0 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * f4 | DELEGATECALL | success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * |\n * ::: copy return data to memory ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 3d | RETURNDATASIZE | rds rds success 0 0 | [0..cds): calldata, [cds..cds+e): extraData |\n * 93 | SWAP4 | 0 rds success 0 rds | [0..cds): calldata, [cds..cds+e): extraData |\n * 80 | DUP1 | 0 0 rds success 0 rds | [0..cds): calldata, [cds..cds+e): extraData |\n * 3e | RETURNDATACOPY | success 0 rds | [0..rds): returndata |\n * |\n * 60 0x60 | PUSH1 0x60 | 0x60 success 0 rds | [0..rds): returndata |\n * 57 | JUMPI | 0 rds | [0..rds): returndata |\n * |\n * ::: revert ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * fd | REVERT | | [0..rds): returndata |\n * |\n * ::: return ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | 0 rds | [0..rds): returndata |\n * f3 | RETURN | | [0..rds): returndata |\n * ---------------------------------------------------------------------------------------------------+\n */\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n // Do a out-of-gas revert if `extraLength` is too big. 0xffff - 0x62 + 0x01 = 0xff9e.\n // The actual EVM limit may be smaller and may change over time.\n sub(data, add(0x59, lt(extraLength, 0xff9e))),\n or(shl(0x78, add(extraLength, 0x62)), 0xfd6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n instance := create(value, sub(data, 0x4c), add(extraLength, 0x6c))\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Deploys a deterministic clone of `implementation`\n /// with immutable arguments encoded in `data` and `salt`.\n function cloneDeterministic(address implementation, bytes memory data, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = cloneDeterministic(0, implementation, data, salt);\n }\n\n /// @dev Deploys a deterministic clone of `implementation`\n /// with immutable arguments encoded in `data` and `salt`.\n function cloneDeterministic(\n uint256 value,\n address implementation,\n bytes memory data,\n bytes32 salt\n ) internal returns (address instance) {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n // Do a out-of-gas revert if `extraLength` is too big. 0xffff - 0x62 + 0x01 = 0xff9e.\n // The actual EVM limit may be smaller and may change over time.\n sub(data, add(0x59, lt(extraLength, 0xff9e))),\n or(shl(0x78, add(extraLength, 0x62)), 0xfd6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n instance := create2(value, sub(data, 0x4c), add(extraLength, 0x6c), salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`\n /// using immutable arguments encoded in `data`.\n function initCode(address implementation, bytes memory data)\n internal\n pure\n returns (bytes memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let dataLength := mload(data)\n\n // Do a out-of-gas revert if `dataLength` is too big. 0xffff - 0x02 - 0x62 = 0xff9b.\n // The actual EVM limit may be smaller and may change over time.\n returndatacopy(returndatasize(), returndatasize(), gt(dataLength, 0xff9b))\n\n let o := add(result, 0x8c)\n let end := add(o, dataLength)\n\n // Copy the `data` into `result`.\n for { let d := sub(add(data, 0x20), o) } 1 {} {\n mstore(o, mload(add(o, d)))\n o := add(o, 0x20)\n if iszero(lt(o, end)) { break }\n }\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(add(result, 0x6c), 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(add(result, 0x5f), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n add(result, 0x4b),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n add(result, 0x32),\n 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n add(result, 0x12),\n or(shl(0x78, add(extraLength, 0x62)), 0x6100003d81600a3d39f336602c57343d527f)\n )\n mstore(end, shl(0xf0, extraLength))\n mstore(add(end, 0x02), 0) // Zeroize the slot after the result.\n mstore(result, add(extraLength, 0x6c)) // Store the length.\n mstore(0x40, add(0x22, end)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the clone of `implementation`\n /// using immutable arguments encoded in `data`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHash(address implementation, bytes memory data)\n internal\n pure\n returns (bytes32 hash)\n {\n assembly {\n // Compute the boundaries of the data and cache the memory slots around it.\n let mBefore3 := mload(sub(data, 0x60))\n let mBefore2 := mload(sub(data, 0x40))\n let mBefore1 := mload(sub(data, 0x20))\n let dataLength := mload(data)\n let dataEnd := add(add(data, 0x20), dataLength)\n let mAfter1 := mload(dataEnd)\n\n // Do a out-of-gas revert if `dataLength` is too big. 0xffff - 0x02 - 0x62 = 0xff9b.\n // The actual EVM limit may be smaller and may change over time.\n returndatacopy(returndatasize(), returndatasize(), gt(dataLength, 0xff9b))\n\n // +2 bytes for telling how much data there is appended to the call.\n let extraLength := add(dataLength, 2)\n\n mstore(data, 0x5af43d3d93803e606057fd5bf3) // Write the bytecode before the data.\n mstore(sub(data, 0x0d), implementation) // Write the address of the implementation.\n // Write the rest of the bytecode.\n mstore(\n sub(data, 0x21),\n or(shl(0x48, extraLength), 0x593da1005b363d3d373d3d3d3d610000806062363936013d73)\n )\n // `keccak256(\"ReceiveETH(uint256)\")`\n mstore(\n sub(data, 0x3a), 0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff\n )\n mstore(\n sub(data, 0x5a),\n or(shl(0x78, add(extraLength, 0x62)), 0x6100003d81600a3d39f336602c57343d527f)\n )\n mstore(dataEnd, shl(0xf0, extraLength))\n\n hash := keccak256(sub(data, 0x4c), add(extraLength, 0x6c))\n\n // Restore the overwritten memory surrounding `data`.\n mstore(dataEnd, mAfter1)\n mstore(data, dataLength)\n mstore(sub(data, 0x20), mBefore1)\n mstore(sub(data, 0x40), mBefore2)\n mstore(sub(data, 0x60), mBefore3)\n }\n }\n\n /// @dev Returns the address of the deterministic clone of\n /// `implementation` using immutable arguments encoded in `data`, with `salt`, by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(\n address implementation,\n bytes memory data,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHash(implementation, data);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL ERC1967 PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: The ERC1967 proxy here is intended to be upgraded with UUPS.\n // This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n\n /// @dev Deploys a minimal ERC1967 proxy with `implementation`.\n function deployERC1967(address implementation) internal returns (address instance) {\n instance = deployERC1967(0, implementation);\n }\n\n /// @dev Deploys a minimal ERC1967 proxy with `implementation`.\n /// Deposits `value` ETH during deployment.\n function deployERC1967(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 impl | PUSH20 impl | impl 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos impl 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot impl 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (61 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * 7f slot | PUSH32 slot | s 0 cds 0 0 | [0..calldatasize): calldata |\n * 54 | SLOAD | i 0 cds 0 0 | [0..calldatasize): calldata |\n * 5a | GAS | g i 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x38 | PUSH1 0x38 | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n instance := create(value, 0x21, 0x5f)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n function deployDeterministicERC1967(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n instance := create2(value, 0x21, 0x5f, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967(address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967(0, implementation, salt);\n }\n\n /// @dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967(uint256 value, address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x21, 0x5f))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x21, 0x5f, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`.\n function initCodeERC1967(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x60),\n 0x3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f300\n )\n mstore(\n add(result, 0x40),\n 0x55f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc\n )\n mstore(add(result, 0x20), or(shl(24, implementation), 0x600951))\n mstore(add(result, 0x09), 0x603d3d8160223d3973)\n mstore(result, 0x5f) // Store the length.\n mstore(0x40, add(result, 0x80)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3)\n mstore(0x40, 0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076)\n mstore(0x20, 0x6009)\n mstore(0x1e, implementation)\n mstore(0x0a, 0x603d3d8160223d3973)\n hash := keccak256(0x21, 0x5f)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967 proxy of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC1967I PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This proxy has a special code path that activates if `calldatasize() == 1`.\n // This code path skips the delegatecall and directly returns the `implementation` address.\n // The returned implementation is guaranteed to be valid if the keccak256 of the\n // proxy's code is equal to `ERC1967I_CODE_HASH`.\n\n /// @dev Deploys a minimal ERC1967I proxy with `implementation`.\n function deployERC1967I(address implementation) internal returns (address instance) {\n instance = deployERC1967I(0, implementation);\n }\n\n /// @dev Deploys a ERC1967I proxy with `implementation`.\n /// Deposits `value` ETH during deployment.\n function deployERC1967I(uint256 value, address implementation)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 impl | PUSH20 impl | impl 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos impl 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot impl 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (82 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: check calldatasize ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 58 | PC | 1 cds | |\n * 14 | EQ | eqs | |\n * 60 0x43 | PUSH1 0x43 | dest eqs | |\n * 57 | JUMPI | | |\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * 7f slot | PUSH32 slot | s 0 cds 0 0 | [0..calldatasize): calldata |\n * 54 | SLOAD | i 0 cds 0 0 | [0..calldatasize): calldata |\n * 5a | GAS | g i 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x3E | PUSH1 0x3E | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * |\n * ::: implementation , return :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | |\n * 60 0x20 | PUSH1 0x20 | 32 | |\n * 60 0x0F | PUSH1 0x0F | o 32 | |\n * 3d | RETURNDATASIZE | 0 o 32 | |\n * 39 | CODECOPY | | [0..32): implementation slot |\n * 3d | RETURNDATASIZE | 0 | [0..32): implementation slot |\n * 51 | MLOAD | slot | [0..32): implementation slot |\n * 54 | SLOAD | impl | [0..32): implementation slot |\n * 3d | RETURNDATASIZE | 0 impl | [0..32): implementation slot |\n * 52 | MSTORE | | [0..32): implementation address |\n * 59 | MSIZE | 32 | [0..32): implementation address |\n * 3d | RETURNDATASIZE | 0 32 | [0..32): implementation address |\n * f3 | RETURN | | [0..32): implementation address |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n instance := create(value, 0x0c, 0x74)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n function deployDeterministicERC1967I(address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967I(0, implementation, salt);\n }\n\n /// @dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967I(uint256 value, address implementation, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967I(address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967I(0, implementation, salt);\n }\n\n /// @dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967I(uint256 value, address implementation, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x0c, 0x74))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`.\n function initCodeERC1967I(address implementation) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x74),\n 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3\n )\n mstore(\n add(result, 0x54),\n 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4\n )\n mstore(add(result, 0x34), 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(add(result, 0x1d), implementation)\n mstore(add(result, 0x09), 0x60523d8160223d3973)\n mstore(add(result, 0x94), 0)\n mstore(result, 0x74) // Store the length.\n mstore(0x40, add(result, 0xa0)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967I(address implementation) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3)\n mstore(0x40, 0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4)\n mstore(0x20, 0x600f5155f3365814604357363d3d373d3d363d7f360894)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, implementation))))\n hash := keccak256(0x0c, 0x74)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967I proxy of `implementation`,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967I(\n address implementation,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967I(implementation);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANT ERC1967 BOOTSTRAP OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: This enables an ERC1967 proxy to be deployed at a deterministic address\n // independent of the implementation:\n // ```\n // address bootstrap = LibClone.constantERC1967Bootstrap();\n // address instance = LibClone.deployDeterministicERC1967(0, bootstrap, salt);\n // LibClone.bootstrapConstantERC1967(bootstrap, implementation);\n // ```\n\n /// @dev Deploys the constant ERC1967 bootstrap if it has not been deployed.\n function constantERC1967Bootstrap() internal returns (address bootstrap) {\n bootstrap = constantERC1967BootstrapAddress();\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(extcodesize(bootstrap)) {\n mstore(0x20, 0x0894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55)\n mstore(0x00, 0x60258060093d393df358357f36)\n if iszero(create2(0, 0x13, 0x2e, 0)) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n }\n\n /// @dev Returns the implementation address of the ERC1967 bootstrap for this contract.\n function constantERC1967BootstrapAddress() internal view returns (address bootstrap) {\n bytes32 hash = 0xfe1a42b9c571a6a8c083c94ac67b9cfd74e2582923426aa3b762e3431d717cd1;\n bootstrap = predictDeterministicAddress(hash, bytes32(0), address(this));\n }\n\n /// @dev Replaces the implementation at `instance`.\n function bootstrapERC1967(address instance, address implementation) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, shr(96, shl(96, implementation)))\n if iszero(call(gas(), instance, 0, 0x00, 0x20, codesize(), 0x00)) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* MINIMAL ERC1967 BEACON PROXY OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Note: If you use this proxy, you MUST make sure that the beacon is a\n // valid ERC1967 beacon. This means that the beacon must always return a valid\n // address upon a staticcall to `implementation()`, given sufficient gas.\n // For performance, the deployment operations and the proxy assumes that the\n // beacon is always valid and will NOT validate it.\n\n /// @dev Deploys a minimal ERC1967 beacon proxy.\n function deployERC1967BeaconProxy(address beacon) internal returns (address instance) {\n instance = deployERC1967BeaconProxy(0, beacon);\n }\n\n /// @dev Deploys a minimal ERC1967 beacon proxy.\n /// Deposits `value` ETH during deployment.\n function deployERC1967BeaconProxy(uint256 value, address beacon)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n /**\n * ---------------------------------------------------------------------------------+\n * CREATION (34 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * 60 runSize | PUSH1 runSize | r | |\n * 3d | RETURNDATASIZE | 0 r | |\n * 81 | DUP2 | r 0 r | |\n * 60 offset | PUSH1 offset | o r 0 r | |\n * 3d | RETURNDATASIZE | 0 o r 0 r | |\n * 39 | CODECOPY | 0 r | [0..runSize): runtime code |\n * 73 beac | PUSH20 beac | beac 0 r | [0..runSize): runtime code |\n * 60 slotPos | PUSH1 slotPos | slotPos beac 0 r | [0..runSize): runtime code |\n * 51 | MLOAD | slot beac 0 r | [0..runSize): runtime code |\n * 55 | SSTORE | 0 r | [0..runSize): runtime code |\n * f3 | RETURN | | [0..runSize): runtime code |\n * ---------------------------------------------------------------------------------|\n * RUNTIME (82 bytes) |\n * ---------------------------------------------------------------------------------|\n * Opcode | Mnemonic | Stack | Memory |\n * ---------------------------------------------------------------------------------|\n * |\n * ::: copy calldata to memory :::::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 36 | CALLDATASIZE | cds | |\n * 3d | RETURNDATASIZE | 0 cds | |\n * 3d | RETURNDATASIZE | 0 0 cds | |\n * 37 | CALLDATACOPY | | [0..calldatasize): calldata |\n * |\n * ::: delegatecall to implementation ::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | 0 | |\n * 3d | RETURNDATASIZE | 0 0 | |\n * 36 | CALLDATASIZE | cds 0 0 | [0..calldatasize): calldata |\n * 3d | RETURNDATASIZE | 0 cds 0 0 | [0..calldatasize): calldata |\n * |\n * ~~~~~~~ beacon staticcall sub procedure ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |\n * 60 0x20 | PUSH1 0x20 | 32 | |\n * 36 | CALLDATASIZE | cds 32 | |\n * 60 0x04 | PUSH1 0x04 | 4 cds 32 | |\n * 36 | CALLDATASIZE | cds 4 cds 32 | |\n * 63 0x5c60da1b | PUSH4 0x5c60da1b | 0x5c60da1b cds 4 cds 32 | |\n * 60 0xe0 | PUSH1 0xe0 | 224 0x5c60da1b cds 4 cds 32 | |\n * 1b | SHL | sel cds 4 cds 32 | |\n * 36 | CALLDATASIZE | cds sel cds 4 cds 32 | |\n * 52 | MSTORE | cds 4 cds 32 | sel |\n * 7f slot | PUSH32 slot | s cds 4 cds 32 | sel |\n * 54 | SLOAD | beac cds 4 cds 32 | sel |\n * 5a | GAS | g beac cds 4 cds 32 | sel |\n * fa | STATICCALL | succ | impl |\n * 50 | POP | | impl |\n * 36 | CALLDATASIZE | cds | impl |\n * 51 | MLOAD | impl | impl |\n * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |\n * 5a | GAS | g impl 0 cds 0 0 | [0..calldatasize): calldata |\n * f4 | DELEGATECALL | succ | [0..calldatasize): calldata |\n * |\n * ::: copy returndata to memory :::::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds succ | [0..calldatasize): calldata |\n * 60 0x00 | PUSH1 0x00 | 0 rds succ | [0..calldatasize): calldata |\n * 80 | DUP1 | 0 0 rds succ | [0..calldatasize): calldata |\n * 3e | RETURNDATACOPY | succ | [0..returndatasize): returndata |\n * |\n * ::: branch on delegatecall status :::::::::::::::::::::::::::::::::::::::::::::: |\n * 60 0x4d | PUSH1 0x4d | dest succ | [0..returndatasize): returndata |\n * 57 | JUMPI | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall failed, revert :::::::::::::::::::::::::::::::::::::::::::::::: |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * fd | REVERT | | [0..returndatasize): returndata |\n * |\n * ::: delegatecall succeeded, return ::::::::::::::::::::::::::::::::::::::::::::: |\n * 5b | JUMPDEST | | [0..returndatasize): returndata |\n * 3d | RETURNDATASIZE | rds | [0..returndatasize): returndata |\n * 60 0x00 | PUSH1 0x00 | 0 rds | [0..returndatasize): returndata |\n * f3 | RETURN | | [0..returndatasize): returndata |\n * ---------------------------------------------------------------------------------+\n */\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n instance := create(value, 0x0c, 0x74)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n function deployDeterministicERC1967BeaconProxy(address beacon, bytes32 salt)\n internal\n returns (address instance)\n {\n instance = deployDeterministicERC1967BeaconProxy(0, beacon, salt);\n }\n\n /// @dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Deposits `value` ETH during deployment.\n function deployDeterministicERC1967BeaconProxy(uint256 value, address beacon, bytes32 salt)\n internal\n returns (address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967BeaconProxy(address beacon, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n return createDeterministicERC1967BeaconProxy(0, beacon, salt);\n }\n\n /// @dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n /// Deposits `value` ETH during deployment.\n /// Note: This method is intended for use in ERC4337 factories,\n /// which are expected to NOT revert if the proxy is already deployed.\n function createDeterministicERC1967BeaconProxy(uint256 value, address beacon, bytes32 salt)\n internal\n returns (bool alreadyDeployed, address instance)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n // Compute and store the bytecode hash.\n mstore(add(m, 0x35), keccak256(0x0c, 0x74))\n mstore(m, shl(88, address()))\n mstore8(m, 0xff) // Write the prefix.\n mstore(add(m, 0x15), salt)\n instance := keccak256(m, 0x55)\n for {} 1 {} {\n if iszero(extcodesize(instance)) {\n instance := create2(value, 0x0c, 0x74, salt)\n if iszero(instance) {\n mstore(0x00, 0x30116425) // `DeploymentFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n alreadyDeployed := 1\n if iszero(value) { break }\n if iszero(call(gas(), instance, value, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n break\n }\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the initialization code of the minimal ERC1967 beacon proxy.\n function initCodeERC1967BeaconProxy(address beacon)\n internal\n pure\n returns (bytes memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n mstore(\n add(result, 0x74),\n 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3\n )\n mstore(\n add(result, 0x54),\n 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c\n )\n mstore(add(result, 0x34), 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(add(result, 0x1d), beacon)\n mstore(add(result, 0x09), 0x60523d8160223d3973)\n mstore(add(result, 0x94), 0)\n mstore(result, 0x74) // Store the length.\n mstore(0x40, add(result, 0xa0)) // Allocate memory.\n }\n }\n\n /// @dev Returns the initialization code hash of the minimal ERC1967 beacon proxy.\n /// Used for mining vanity addresses with create2crunch.\n function initCodeHashERC1967BeaconProxy(address beacon) internal pure returns (bytes32 hash) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, 0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3)\n mstore(0x40, 0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c)\n mstore(0x20, 0x60195155f3363d3d373d3d363d602036600436635c60da)\n mstore(0x09, or(shl(160, 0x60523d8160223d3973), shr(96, shl(96, beacon))))\n hash := keccak256(0x0c, 0x74)\n mstore(0x40, m) // Restore the free memory pointer.\n mstore(0x60, 0) // Restore the zero slot.\n }\n }\n\n /// @dev Returns the address of the deterministic ERC1967 beacon proxy,\n /// with `salt` by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddressERC1967BeaconProxy(\n address beacon,\n bytes32 salt,\n address deployer\n ) internal pure returns (address predicted) {\n bytes32 hash = initCodeHashERC1967BeaconProxy(beacon);\n predicted = predictDeterministicAddress(hash, salt, deployer);\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OTHER OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the address when a contract with initialization code hash,\n /// `hash`, is deployed with `salt`, by `deployer`.\n /// Note: The returned result has dirty upper 96 bits. Please clean if used in assembly.\n function predictDeterministicAddress(bytes32 hash, bytes32 salt, address deployer)\n internal\n pure\n returns (address predicted)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Compute and store the bytecode hash.\n mstore8(0x00, 0xff) // Write the prefix.\n mstore(0x35, hash)\n mstore(0x01, shl(96, deployer))\n mstore(0x15, salt)\n predicted := keccak256(0x00, 0x55)\n mstore(0x35, 0) // Restore the overwritten part of the free memory pointer.\n }\n }\n\n /// @dev Requires that `salt` starts with either the zero address or `by`.\n function checkStartsWith(bytes32 salt, address by) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n // If the salt does not start with the zero address or `by`.\n if iszero(or(iszero(shr(96, salt)), eq(shr(96, shl(96, by)), shr(96, salt)))) {\n mstore(0x00, 0x0c4549ef) // `SaltDoesNotStartWith()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/LibPRNG.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for generating pseudorandom numbers.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)\n/// @author LazyShuffler based on NextShuffler by aschlosberg (divergencearran)\n/// (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)\nlibrary LibPRNG {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The initial length must be greater than zero and less than `2**32 - 1`.\n error InvalidInitialLazyShufflerLength();\n\n /// @dev The new length must not be less than the current length.\n error InvalidNewLazyShufflerLength();\n\n /// @dev The lazy shuffler has not been initialized.\n error LazyShufflerNotInitialized();\n\n /// @dev Cannot double initialize the lazy shuffler.\n error LazyShufflerAlreadyInitialized();\n\n /// @dev The lazy shuffle has finished.\n error LazyShuffleFinished();\n\n /// @dev The queried index is out of bounds.\n error LazyShufflerGetOutOfBounds();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The scalar of ETH and most ERC20s.\n uint256 internal constant WAD = 1e18;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STRUCTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev A pseudorandom number state in memory.\n struct PRNG {\n uint256 state;\n }\n\n /// @dev A lazy Fisher-Yates shuffler for a range `[0..n)` in storage.\n struct LazyShuffler {\n // Bits Layout:\n // - [0..31] `numShuffled`\n // - [32..223] `permutationSlot`\n // - [224..255] `length`\n uint256 _state;\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Seeds the `prng` with `state`.\n function seed(PRNG memory prng, uint256 state) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(prng, state)\n }\n }\n\n /// @dev Returns the next pseudorandom uint256.\n /// All bits of the returned uint256 pass the NIST Statistical Test Suite.\n function next(PRNG memory prng) internal pure returns (uint256 result) {\n // We simply use `keccak256` for a great balance between\n // runtime gas costs, bytecode size, and statistical properties.\n //\n // A high-quality LCG with a 32-byte state\n // is only about 30% more gas efficient during runtime,\n // but requires a 32-byte multiplier, which can cause bytecode bloat\n // when this function is inlined.\n //\n // Using this method is about 2x more efficient than\n // `nextRandomness = uint256(keccak256(abi.encode(randomness)))`.\n /// @solidity memory-safe-assembly\n assembly {\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n }\n }\n\n /// @dev Returns a pseudorandom uint256, uniformly distributed\n /// between 0 (inclusive) and `upper` (exclusive).\n /// If your modulus is big, this method is recommended\n /// for uniform sampling to avoid modulo bias.\n /// For uniform sampling across all uint256 values,\n /// or for small enough moduli such that the bias is neligible,\n /// use {next} instead.\n function uniform(PRNG memory prng, uint256 upper) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n for {} 1 {} {\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n if iszero(lt(result, mod(sub(0, upper), upper))) { break }\n }\n result := mod(result, upper)\n }\n }\n\n /// @dev Shuffles the array in-place with Fisher-Yates shuffle.\n function shuffle(PRNG memory prng, uint256[] memory a) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n let n := mload(a)\n let w := not(0)\n let mask := shr(128, w)\n if n {\n for { a := add(a, 0x20) } 1 {} {\n // We can just directly use `keccak256`, cuz\n // the other approaches don't save much.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n\n // Note that there will be a very tiny modulo bias\n // if the length of the array is not a power of 2.\n // For all practical purposes, it is negligible\n // and will not be a fairness or security concern.\n {\n let j := add(a, shl(5, mod(shr(128, r), n)))\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let i := add(a, shl(5, n))\n let t := mload(i)\n mstore(i, mload(j))\n mstore(j, t)\n }\n\n {\n let j := add(a, shl(5, mod(and(r, mask), n)))\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let i := add(a, shl(5, n))\n let t := mload(i)\n mstore(i, mload(j))\n mstore(j, t)\n }\n }\n }\n }\n }\n\n /// @dev Shuffles the bytes in-place with Fisher-Yates shuffle.\n function shuffle(PRNG memory prng, bytes memory a) internal pure {\n /// @solidity memory-safe-assembly\n assembly {\n let n := mload(a)\n let w := not(0)\n let mask := shr(128, w)\n if n {\n let b := add(a, 0x01)\n for { a := add(a, 0x20) } 1 {} {\n // We can just directly use `keccak256`, cuz\n // the other approaches don't save much.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n\n // Note that there will be a very tiny modulo bias\n // if the length of the array is not a power of 2.\n // For all practical purposes, it is negligible\n // and will not be a fairness or security concern.\n {\n let o := mod(shr(128, r), n)\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let t := mload(add(b, n))\n mstore8(add(a, n), mload(add(b, o)))\n mstore8(add(a, o), t)\n }\n\n {\n let o := mod(and(r, mask), n)\n n := add(n, w) // `sub(n, 1)`.\n if iszero(n) { break }\n\n let t := mload(add(b, n))\n mstore8(add(a, n), mload(add(b, o)))\n mstore8(add(a, o), t)\n }\n }\n }\n }\n }\n\n /// @dev Returns a sample from the standard normal distribution denominated in `WAD`.\n function standardNormalWad(PRNG memory prng) internal pure returns (int256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Technically, this is the Irwin-Hall distribution with 20 samples.\n // The chance of drawing a sample outside 10 σ from the standard normal distribution\n // is ≈ 0.000000000000000000000015, which is insignificant for most practical purposes.\n // Passes the Kolmogorov-Smirnov test for 200k samples. Uses about 322 gas.\n result := keccak256(prng, 0x20)\n mstore(prng, result)\n let n := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43 // Prime.\n let a := 0x100000000000000000000000000000051 // Prime and a primitive root of `n`.\n let m := 0x1fffffffffffffff1fffffffffffffff1fffffffffffffff1fffffffffffffff\n let s := 0x1000000000000000100000000000000010000000000000001\n let r1 := mulmod(result, a, n)\n let r2 := mulmod(r1, a, n)\n let r3 := mulmod(r2, a, n)\n // forgefmt: disable-next-item\n result := sub(sar(96, mul(26614938895861601847173011183,\n add(add(shr(192, mul(s, add(and(m, result), and(m, r1)))),\n shr(192, mul(s, add(and(m, r2), and(m, r3))))),\n shr(192, mul(s, and(m, mulmod(r3, a, n))))))), 7745966692414833770)\n }\n }\n\n /// @dev Returns a sample from the unit exponential distribution denominated in `WAD`.\n function exponentialWad(PRNG memory prng) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Passes the Kolmogorov-Smirnov test for 200k samples.\n // Gas usage varies, starting from about 172+ gas.\n let r := keccak256(prng, 0x20)\n mstore(prng, r)\n let p := shl(129, r)\n let w := shl(1, r)\n if iszero(gt(w, p)) {\n let n := 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43 // Prime.\n let a := 0x100000000000000000000000000000051 // Prime and a primitive root of `n`.\n for {} 1 {} {\n r := mulmod(r, a, n)\n if iszero(lt(shl(129, r), w)) {\n r := mulmod(r, a, n)\n result := add(1000000000000000000, result)\n w := shl(1, r)\n p := shl(129, r)\n if iszero(lt(w, p)) { break }\n continue\n }\n w := shl(1, r)\n if iszero(lt(w, shl(129, r))) { break }\n }\n }\n result := add(div(p, shl(129, 170141183460469231732)), result)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE-BASED RANGE LAZY SHUFFLING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Initializes the state for lazy-shuffling the range `[0..n)`.\n /// Reverts if `n == 0 || n >= 2**32 - 1`.\n /// Reverts if `$` has already been initialized.\n /// If you need to reduce the length after initialization, just use a fresh new `$`.\n function initialize(LazyShuffler storage $, uint256 n) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(lt(sub(n, 1), 0xfffffffe)) {\n mstore(0x00, 0x83b53941) // `InvalidInitialLazyShufflerLength()`.\n revert(0x1c, 0x04)\n }\n if sload($.slot) {\n mstore(0x00, 0x0c9f11f2) // `LazyShufflerAlreadyInitialized()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, $.slot)\n sstore($.slot, or(shl(224, n), shl(32, shr(64, keccak256(0x00, 0x20)))))\n }\n }\n\n /// @dev Increases the length of `$`.\n /// Reverts if `$` has not been initialized.\n function grow(LazyShuffler storage $, uint256 n) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n // If the new length is smaller than the old length, revert.\n if lt(n, shr(224, state)) {\n mstore(0x00, 0xbed37c6e) // `InvalidNewLazyShufflerLength()`.\n revert(0x1c, 0x04)\n }\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n sstore($.slot, or(shl(224, n), shr(32, shl(32, state))))\n }\n }\n\n /// @dev Restarts the shuffler by setting `numShuffled` to zero,\n /// such that all elements can be drawn again.\n /// Restarting does NOT clear the internal permutation, nor changes the length.\n /// Even with the same sequence of randomness, reshuffling can yield different results.\n function restart(LazyShuffler storage $) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot)\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n sstore($.slot, shl(32, shr(32, state)))\n }\n }\n\n /// @dev Returns the number of elements that have been shuffled.\n function numShuffled(LazyShuffler storage $) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := and(0xffffffff, sload($.slot))\n }\n }\n\n /// @dev Returns the length of `$`.\n /// Returns zero if `$` is not initialized, else a non-zero value less than `2**32 - 1`.\n function length(LazyShuffler storage $) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := shr(224, sload($.slot))\n }\n }\n\n /// @dev Returns if `$` has been initialized.\n function initialized(LazyShuffler storage $) internal view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := iszero(iszero(sload($.slot)))\n }\n }\n\n /// @dev Returns if there are any more elements left to shuffle.\n /// Reverts if `$` is not initialized.\n function finished(LazyShuffler storage $) internal view returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n if iszero(state) {\n mstore(0x00, 0x1ead2566) // `LazyShufflerNotInitialized()`.\n revert(0x1c, 0x04)\n }\n result := eq(shr(224, state), and(0xffffffff, state))\n }\n }\n\n /// @dev Returns the current value stored at `index`, accounting for all historical shuffling.\n /// Reverts if `index` is greater than or equal to the `length` of `$`.\n function get(LazyShuffler storage $, uint256 index) internal view returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let state := sload($.slot) // The packed value at `$`.\n let n := shr(224, state) // Length of `$`.\n if iszero(lt(index, n)) {\n mstore(0x00, 0x61367cc4) // `LazyShufflerGetOutOfBounds()`.\n revert(0x1c, 0x04)\n }\n let u32 := gt(n, 0xfffe)\n let s := add(shr(sub(4, u32), index), shr(64, shl(32, state))) // Bucket slot.\n let o := shl(add(4, u32), and(index, shr(u32, 15))) // Bucket slot offset (bits).\n let m := sub(shl(shl(u32, 16), 1), 1) // Value mask.\n result := and(m, shr(o, sload(s)))\n result := xor(index, mul(xor(index, sub(result, 1)), iszero(iszero(result))))\n }\n }\n\n /// @dev Does a single Fisher-Yates shuffle step, increments the `numShuffled` in `$`,\n /// and returns the next value in the shuffled range.\n /// `randomness` can be taken from a good-enough source, or a higher quality source like VRF.\n /// Reverts if there are no more values to shuffle, which includes the case if `$` is not initialized.\n function next(LazyShuffler storage $, uint256 randomness) internal returns (uint256 chosen) {\n /// @solidity memory-safe-assembly\n assembly {\n function _get(u32_, state_, i_) -> _value {\n let s_ := add(shr(sub(4, u32_), i_), shr(64, shl(32, state_))) // Bucket slot.\n let o_ := shl(add(4, u32_), and(i_, shr(u32_, 15))) // Bucket slot offset (bits).\n let m_ := sub(shl(shl(u32_, 16), 1), 1) // Value mask.\n _value := and(m_, shr(o_, sload(s_)))\n _value := xor(i_, mul(xor(i_, sub(_value, 1)), iszero(iszero(_value))))\n }\n function _set(u32_, state_, i_, value_) {\n let s_ := add(shr(sub(4, u32_), i_), shr(64, shl(32, state_))) // Bucket slot.\n let o_ := shl(add(4, u32_), and(i_, shr(u32_, 15))) // Bucket slot offset (bits).\n let m_ := sub(shl(shl(u32_, 16), 1), 1) // Value mask.\n let v_ := sload(s_) // Bucket slot value.\n value_ := mul(iszero(eq(i_, value_)), add(value_, 1))\n sstore(s_, xor(v_, shl(o_, and(m_, xor(shr(o_, v_), value_)))))\n }\n let state := sload($.slot) // The packed value at `$`.\n let shuffled := and(0xffffffff, state) // Number of elements shuffled.\n let n := shr(224, state) // Length of `$`.\n let remainder := sub(n, shuffled) // Number of elements left to shuffle.\n if iszero(remainder) {\n mstore(0x00, 0x51065f79) // `LazyShuffleFinished()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, randomness) // (Re)hash the randomness so that we don't\n mstore(0x20, shuffled) // need to expect guarantees on its distribution.\n let index := add(mod(keccak256(0x00, 0x40), remainder), shuffled)\n chosen := _get(gt(n, 0xfffe), state, index)\n _set(gt(n, 0xfffe), state, index, _get(gt(n, 0xfffe), state, shuffled))\n _set(gt(n, 0xfffe), state, shuffled, chosen)\n sstore($.slot, add(1, state)) // Increment the `numShuffled` by 1, and store it.\n }\n }\n}\n"},"@solady/utils/LibString.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for converting numbers into strings and other string operations.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\n///\n/// @dev Note:\n/// For performance and bytecode compactness, most of the string operations are restricted to\n/// byte strings (7-bit ASCII), except where otherwise specified.\n/// Usage of byte string operations on charsets with runes spanning two or more bytes\n/// can lead to undefined behavior.\nlibrary LibString {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The length of the output is too small to contain all the hex digits.\n error HexLengthInsufficient();\n\n /// @dev The length of the string is more than 32 bytes.\n error TooBigForSmallString();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The constant returned when the `search` is not found in the string.\n uint256 internal constant NOT_FOUND = type(uint256).max;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* DECIMAL OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the base 10 decimal representation of `value`.\n function toString(uint256 value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n // The maximum value of a uint256 contains 78 digits (1 byte per digit), but\n // we allocate 0xa0 bytes to keep the free memory pointer 32-byte word aligned.\n // We will need 1 word for the trailing zeros padding, 1 word for the length,\n // and 3 words for a maximum of 78 digits.\n str := add(mload(0x40), 0x80)\n // Update the free memory pointer to allocate.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end of the memory to calculate the length later.\n let end := str\n\n let w := not(0) // Tsk.\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let temp := value } 1 {} {\n str := add(str, w) // `sub(str, 1)`.\n // Write the character to the pointer.\n // The ASCII index of the '0' character is 48.\n mstore8(str, add(48, mod(temp, 10)))\n // Keep dividing `temp` until zero.\n temp := div(temp, 10)\n if iszero(temp) { break }\n }\n\n let length := sub(end, str)\n // Move the pointer 32 bytes leftwards to make room for the length.\n str := sub(str, 0x20)\n // Store the length.\n mstore(str, length)\n }\n }\n\n /// @dev Returns the base 10 decimal representation of `value`.\n function toString(int256 value) internal pure returns (string memory str) {\n if (value >= 0) {\n return toString(uint256(value));\n }\n unchecked {\n str = toString(~uint256(value) + 1);\n }\n /// @solidity memory-safe-assembly\n assembly {\n // We still have some spare memory space on the left,\n // as we have allocated 3 words (96 bytes) for up to 78 digits.\n let length := mload(str) // Load the string length.\n mstore(str, 0x2d) // Store the '-' character.\n str := sub(str, 1) // Move back the string pointer by a byte.\n mstore(str, add(length, 1)) // Update the string length.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HEXADECIMAL OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the hexadecimal representation of `value`,\n /// left-padded to an input length of `length` bytes.\n /// The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n /// giving a total length of `length * 2 + 2` bytes.\n /// Reverts if `length` is too small for the output to contain all the digits.\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value, length);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`,\n /// left-padded to an input length of `length` bytes.\n /// The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n /// giving a total length of `length * 2` bytes.\n /// Reverts if `length` is too small for the output to contain all the digits.\n function toHexStringNoPrefix(uint256 value, uint256 length)\n internal\n pure\n returns (string memory str)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // We need 0x20 bytes for the trailing zeros padding, `length * 2` bytes\n // for the digits, 0x02 bytes for the prefix, and 0x20 bytes for the length.\n // We add 0x20 to the total and round down to a multiple of 0x20.\n // (0x20 + 0x20 + 0x02 + 0x20) = 0x62.\n str := add(mload(0x40), and(add(shl(1, length), 0x42), not(0x1f)))\n // Allocate the memory.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end to calculate the length later.\n let end := str\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let start := sub(str, add(length, length))\n let w := not(1) // Tsk.\n let temp := value\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for {} 1 {} {\n str := add(str, w) // `sub(str, 2)`.\n mstore8(add(str, 1), mload(and(temp, 15)))\n mstore8(str, mload(and(shr(4, temp), 15)))\n temp := shr(8, temp)\n if iszero(xor(str, start)) { break }\n }\n\n if temp {\n mstore(0x00, 0x2194895a) // `HexLengthInsufficient()`.\n revert(0x1c, 0x04)\n }\n\n // Compute the string's length.\n let strLength := sub(end, str)\n // Move the pointer and write the length.\n str := sub(str, 0x20)\n mstore(str, strLength)\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n /// As address are 20 bytes long, the output will left-padded to have\n /// a length of `20 * 2 + 2` bytes.\n function toHexString(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\".\n /// The output excludes leading \"0\" from the `toHexString` output.\n /// `0x00: \"0x0\", 0x01: \"0x1\", 0x12: \"0x12\", 0x123: \"0x123\"`.\n function toMinimalHexString(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let o := eq(byte(0, mload(add(str, 0x20))), 0x30) // Whether leading zero is present.\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(add(str, o), 0x3078) // Write the \"0x\" prefix, accounting for leading zero.\n str := sub(add(str, o), 2) // Move the pointer, accounting for leading zero.\n mstore(str, sub(strLength, o)) // Write the length, accounting for leading zero.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output excludes leading \"0\" from the `toHexStringNoPrefix` output.\n /// `0x00: \"0\", 0x01: \"1\", 0x12: \"12\", 0x123: \"123\"`.\n function toMinimalHexStringNoPrefix(uint256 value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let o := eq(byte(0, mload(add(str, 0x20))), 0x30) // Whether leading zero is present.\n let strLength := mload(str) // Get the length.\n str := add(str, o) // Move the pointer, accounting for leading zero.\n mstore(str, sub(strLength, o)) // Write the length, accounting for leading zero.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is encoded using 2 hexadecimal digits per byte.\n /// As address are 20 bytes long, the output will left-padded to have\n /// a length of `20 * 2` bytes.\n function toHexStringNoPrefix(uint256 value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n // We need 0x20 bytes for the trailing zeros padding, 0x20 bytes for the length,\n // 0x02 bytes for the prefix, and 0x40 bytes for the digits.\n // The next multiple of 0x20 above (0x20 + 0x20 + 0x02 + 0x40) is 0xa0.\n str := add(mload(0x40), 0x80)\n // Allocate the memory.\n mstore(0x40, add(str, 0x20))\n // Zeroize the slot after the string.\n mstore(str, 0)\n\n // Cache the end to calculate the length later.\n let end := str\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let w := not(1) // Tsk.\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let temp := value } 1 {} {\n str := add(str, w) // `sub(str, 2)`.\n mstore8(add(str, 1), mload(and(temp, 15)))\n mstore8(str, mload(and(shr(4, temp), 15)))\n temp := shr(8, temp)\n if iszero(temp) { break }\n }\n\n // Compute the string's length.\n let strLength := sub(end, str)\n // Move the pointer and write the length.\n str := sub(str, 0x20)\n mstore(str, strLength)\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\", encoded using 2 hexadecimal digits per byte,\n /// and the alphabets are capitalized conditionally according to\n /// https://eips.ethereum.org/EIPS/eip-55\n function toHexStringChecksummed(address value) internal pure returns (string memory str) {\n str = toHexString(value);\n /// @solidity memory-safe-assembly\n assembly {\n let mask := shl(6, div(not(0), 255)) // `0b010000000100000000 ...`\n let o := add(str, 0x22)\n let hashed := and(keccak256(o, 40), mul(34, mask)) // `0b10001000 ... `\n let t := shl(240, 136) // `0b10001000 << 240`\n for { let i := 0 } 1 {} {\n mstore(add(i, i), mul(t, byte(i, hashed)))\n i := add(i, 1)\n if eq(i, 20) { break }\n }\n mstore(o, xor(mload(o), shr(1, and(mload(0x00), and(mload(o), mask)))))\n o := add(o, 0x20)\n mstore(o, xor(mload(o), shr(1, and(mload(0x20), and(mload(o), mask)))))\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n function toHexString(address value) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(value);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hexadecimal representation of `value`.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexStringNoPrefix(address value) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n str := mload(0x40)\n\n // Allocate the memory.\n // We need 0x20 bytes for the trailing zeros padding, 0x20 bytes for the length,\n // 0x02 bytes for the prefix, and 0x28 bytes for the digits.\n // The next multiple of 0x20 above (0x20 + 0x20 + 0x02 + 0x28) is 0x80.\n mstore(0x40, add(str, 0x80))\n\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n str := add(str, 2)\n mstore(str, 40)\n\n let o := add(str, 0x20)\n mstore(add(o, 40), 0)\n\n value := shl(96, value)\n\n // We write the string from rightmost digit to leftmost digit.\n // The following is essentially a do-while loop that also handles the zero case.\n for { let i := 0 } 1 {} {\n let p := add(o, add(i, i))\n let temp := byte(i, value)\n mstore8(add(p, 1), mload(and(temp, 15)))\n mstore8(p, mload(shr(4, temp)))\n i := add(i, 1)\n if eq(i, 20) { break }\n }\n }\n }\n\n /// @dev Returns the hex encoded string from the raw bytes.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexString(bytes memory raw) internal pure returns (string memory str) {\n str = toHexStringNoPrefix(raw);\n /// @solidity memory-safe-assembly\n assembly {\n let strLength := add(mload(str), 2) // Compute the length.\n mstore(str, 0x3078) // Write the \"0x\" prefix.\n str := sub(str, 2) // Move the pointer.\n mstore(str, strLength) // Write the length.\n }\n }\n\n /// @dev Returns the hex encoded string from the raw bytes.\n /// The output is encoded using 2 hexadecimal digits per byte.\n function toHexStringNoPrefix(bytes memory raw) internal pure returns (string memory str) {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(raw)\n str := add(mload(0x40), 2) // Skip 2 bytes for the optional prefix.\n mstore(str, add(length, length)) // Store the length of the output.\n\n // Store \"0123456789abcdef\" in scratch space.\n mstore(0x0f, 0x30313233343536373839616263646566)\n\n let o := add(str, 0x20)\n let end := add(raw, length)\n\n for {} iszero(eq(raw, end)) {} {\n raw := add(raw, 1)\n mstore8(add(o, 1), mload(and(mload(raw), 15)))\n mstore8(o, mload(and(shr(4, mload(raw)), 15)))\n o := add(o, 2)\n }\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* RUNE STRING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns the number of UTF characters in the string.\n function runeCount(string memory s) internal pure returns (uint256 result) {\n /// @solidity memory-safe-assembly\n assembly {\n if mload(s) {\n mstore(0x00, div(not(0), 255))\n mstore(0x20, 0x0202020202020202020202020202020202020202020202020303030304040506)\n let o := add(s, 0x20)\n let end := add(o, mload(s))\n for { result := 1 } 1 { result := add(result, 1) } {\n o := add(o, byte(0, mload(shr(250, mload(o)))))\n if iszero(lt(o, end)) { break }\n }\n }\n }\n }\n\n /// @dev Returns if this string is a 7-bit ASCII string.\n /// (i.e. all characters codes are in [0..127])\n function is7BitASCII(string memory s) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n let mask := shl(7, div(not(0), 255))\n result := 1\n let n := mload(s)\n if n {\n let o := add(s, 0x20)\n let end := add(o, n)\n let last := mload(end)\n mstore(end, 0)\n for {} 1 {} {\n if and(mask, mload(o)) {\n result := 0\n break\n }\n o := add(o, 0x20)\n if iszero(lt(o, end)) { break }\n }\n mstore(end, last)\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* BYTE STRING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // For performance and bytecode compactness, byte string operations are restricted\n // to 7-bit ASCII strings. All offsets are byte offsets, not UTF character offsets.\n // Usage of byte string operations on charsets with runes spanning two or more bytes\n // can lead to undefined behavior.\n\n /// @dev Returns `subject` all occurrences of `search` replaced with `replacement`.\n function replace(string memory subject, string memory search, string memory replacement)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n let searchLength := mload(search)\n let replacementLength := mload(replacement)\n\n subject := add(subject, 0x20)\n search := add(search, 0x20)\n replacement := add(replacement, 0x20)\n result := add(mload(0x40), 0x20)\n\n let subjectEnd := add(subject, subjectLength)\n if iszero(gt(searchLength, subjectLength)) {\n let subjectSearchEnd := add(sub(subjectEnd, searchLength), 1)\n let h := 0\n if iszero(lt(searchLength, 0x20)) { h := keccak256(search, searchLength) }\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(search)\n for {} 1 {} {\n let t := mload(subject)\n // Whether the first `searchLength % 32` bytes of\n // `subject` and `search` matches.\n if iszero(shr(m, xor(t, s))) {\n if h {\n if iszero(eq(keccak256(subject, searchLength), h)) {\n mstore(result, t)\n result := add(result, 1)\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n // Copy the `replacement` one word at a time.\n for { let o := 0 } 1 {} {\n mstore(add(result, o), mload(add(replacement, o)))\n o := add(o, 0x20)\n if iszero(lt(o, replacementLength)) { break }\n }\n result := add(result, replacementLength)\n subject := add(subject, searchLength)\n if searchLength {\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n mstore(result, t)\n result := add(result, 1)\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n }\n }\n\n let resultRemainder := result\n result := add(mload(0x40), 0x20)\n let k := add(sub(resultRemainder, result), sub(subjectEnd, subject))\n // Copy the rest of the string one word at a time.\n for {} lt(subject, subjectEnd) {} {\n mstore(resultRemainder, mload(subject))\n resultRemainder := add(resultRemainder, 0x20)\n subject := add(subject, 0x20)\n }\n result := sub(result, 0x20)\n let last := add(add(result, 0x20), k) // Zeroize the slot after the string.\n mstore(last, 0)\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n mstore(result, k) // Store the length.\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from left to right, starting from `from`.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function indexOf(string memory subject, string memory search, uint256 from)\n internal\n pure\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n for { let subjectLength := mload(subject) } 1 {} {\n if iszero(mload(search)) {\n if iszero(gt(from, subjectLength)) {\n result := from\n break\n }\n result := subjectLength\n break\n }\n let searchLength := mload(search)\n let subjectStart := add(subject, 0x20)\n\n result := not(0) // Initialize to `NOT_FOUND`.\n\n subject := add(subjectStart, from)\n let end := add(sub(add(subjectStart, subjectLength), searchLength), 1)\n\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(add(search, 0x20))\n\n if iszero(and(lt(subject, end), lt(from, subjectLength))) { break }\n\n if iszero(lt(searchLength, 0x20)) {\n for { let h := keccak256(add(search, 0x20), searchLength) } 1 {} {\n if iszero(shr(m, xor(mload(subject), s))) {\n if eq(keccak256(subject, searchLength), h) {\n result := sub(subject, subjectStart)\n break\n }\n }\n subject := add(subject, 1)\n if iszero(lt(subject, end)) { break }\n }\n break\n }\n for {} 1 {} {\n if iszero(shr(m, xor(mload(subject), s))) {\n result := sub(subject, subjectStart)\n break\n }\n subject := add(subject, 1)\n if iszero(lt(subject, end)) { break }\n }\n break\n }\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from left to right.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function indexOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256 result)\n {\n result = indexOf(subject, search, 0);\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from right to left, starting from `from`.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function lastIndexOf(string memory subject, string memory search, uint256 from)\n internal\n pure\n returns (uint256 result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n for {} 1 {} {\n result := not(0) // Initialize to `NOT_FOUND`.\n let searchLength := mload(search)\n if gt(searchLength, mload(subject)) { break }\n let w := result\n\n let fromMax := sub(mload(subject), searchLength)\n if iszero(gt(fromMax, from)) { from := fromMax }\n\n let end := add(add(subject, 0x20), w)\n subject := add(add(subject, 0x20), from)\n if iszero(gt(subject, end)) { break }\n // As this function is not too often used,\n // we shall simply use keccak256 for smaller bytecode size.\n for { let h := keccak256(add(search, 0x20), searchLength) } 1 {} {\n if eq(keccak256(subject, searchLength), h) {\n result := sub(subject, add(end, 1))\n break\n }\n subject := add(subject, w) // `sub(subject, 1)`.\n if iszero(gt(subject, end)) { break }\n }\n break\n }\n }\n }\n\n /// @dev Returns the byte index of the first location of `search` in `subject`,\n /// searching from right to left.\n /// Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found.\n function lastIndexOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256 result)\n {\n result = lastIndexOf(subject, search, uint256(int256(-1)));\n }\n\n /// @dev Returns true if `search` is found in `subject`, false otherwise.\n function contains(string memory subject, string memory search) internal pure returns (bool) {\n return indexOf(subject, search) != NOT_FOUND;\n }\n\n /// @dev Returns whether `subject` starts with `search`.\n function startsWith(string memory subject, string memory search)\n internal\n pure\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let searchLength := mload(search)\n // Just using keccak256 directly is actually cheaper.\n // forgefmt: disable-next-item\n result := and(\n iszero(gt(searchLength, mload(subject))),\n eq(\n keccak256(add(subject, 0x20), searchLength),\n keccak256(add(search, 0x20), searchLength)\n )\n )\n }\n }\n\n /// @dev Returns whether `subject` ends with `search`.\n function endsWith(string memory subject, string memory search)\n internal\n pure\n returns (bool result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let searchLength := mload(search)\n let subjectLength := mload(subject)\n // Whether `search` is not longer than `subject`.\n let withinRange := iszero(gt(searchLength, subjectLength))\n // Just using keccak256 directly is actually cheaper.\n // forgefmt: disable-next-item\n result := and(\n withinRange,\n eq(\n keccak256(\n // `subject + 0x20 + max(subjectLength - searchLength, 0)`.\n add(add(subject, 0x20), mul(withinRange, sub(subjectLength, searchLength))),\n searchLength\n ),\n keccak256(add(search, 0x20), searchLength)\n )\n )\n }\n }\n\n /// @dev Returns `subject` repeated `times`.\n function repeat(string memory subject, uint256 times)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n if iszero(or(iszero(times), iszero(subjectLength))) {\n subject := add(subject, 0x20)\n result := mload(0x40)\n let output := add(result, 0x20)\n for {} 1 {} {\n // Copy the `subject` one word at a time.\n for { let o := 0 } 1 {} {\n mstore(add(output, o), mload(add(subject, o)))\n o := add(o, 0x20)\n if iszero(lt(o, subjectLength)) { break }\n }\n output := add(output, subjectLength)\n times := sub(times, 1)\n if iszero(times) { break }\n }\n mstore(output, 0) // Zeroize the slot after the string.\n let resultLength := sub(output, add(result, 0x20))\n mstore(result, resultLength) // Store the length.\n // Allocate the memory.\n mstore(0x40, add(result, add(resultLength, 0x20)))\n }\n }\n }\n\n /// @dev Returns a copy of `subject` sliced from `start` to `end` (exclusive).\n /// `start` and `end` are byte offsets.\n function slice(string memory subject, uint256 start, uint256 end)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n if iszero(gt(subjectLength, end)) { end := subjectLength }\n if iszero(gt(subjectLength, start)) { start := subjectLength }\n if lt(start, end) {\n result := mload(0x40)\n let resultLength := sub(end, start)\n mstore(result, resultLength)\n subject := add(subject, start)\n let w := not(0x1f)\n // Copy the `subject` one word at a time, backwards.\n for { let o := and(add(resultLength, 0x1f), w) } 1 {} {\n mstore(add(result, o), mload(add(subject, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n // Zeroize the slot after the string.\n mstore(add(add(result, 0x20), resultLength), 0)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, add(result, and(add(resultLength, 0x3f), w)))\n }\n }\n }\n\n /// @dev Returns a copy of `subject` sliced from `start` to the end of the string.\n /// `start` is a byte offset.\n function slice(string memory subject, uint256 start)\n internal\n pure\n returns (string memory result)\n {\n result = slice(subject, start, uint256(int256(-1)));\n }\n\n /// @dev Returns all the indices of `search` in `subject`.\n /// The indices are byte offsets.\n function indicesOf(string memory subject, string memory search)\n internal\n pure\n returns (uint256[] memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let subjectLength := mload(subject)\n let searchLength := mload(search)\n\n if iszero(gt(searchLength, subjectLength)) {\n subject := add(subject, 0x20)\n search := add(search, 0x20)\n result := add(mload(0x40), 0x20)\n\n let subjectStart := subject\n let subjectSearchEnd := add(sub(add(subject, subjectLength), searchLength), 1)\n let h := 0\n if iszero(lt(searchLength, 0x20)) { h := keccak256(search, searchLength) }\n let m := shl(3, sub(0x20, and(searchLength, 0x1f)))\n let s := mload(search)\n for {} 1 {} {\n let t := mload(subject)\n // Whether the first `searchLength % 32` bytes of\n // `subject` and `search` matches.\n if iszero(shr(m, xor(t, s))) {\n if h {\n if iszero(eq(keccak256(subject, searchLength), h)) {\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n // Append to `result`.\n mstore(result, sub(subject, subjectStart))\n result := add(result, 0x20)\n // Advance `subject` by `searchLength`.\n subject := add(subject, searchLength)\n if searchLength {\n if iszero(lt(subject, subjectSearchEnd)) { break }\n continue\n }\n }\n subject := add(subject, 1)\n if iszero(lt(subject, subjectSearchEnd)) { break }\n }\n let resultEnd := result\n // Assign `result` to the free memory pointer.\n result := mload(0x40)\n // Store the length of `result`.\n mstore(result, shr(5, sub(resultEnd, add(result, 0x20))))\n // Allocate memory for result.\n // We allocate one more word, so this array can be recycled for {split}.\n mstore(0x40, add(resultEnd, 0x20))\n }\n }\n }\n\n /// @dev Returns a arrays of strings based on the `delimiter` inside of the `subject` string.\n function split(string memory subject, string memory delimiter)\n internal\n pure\n returns (string[] memory result)\n {\n uint256[] memory indices = indicesOf(subject, delimiter);\n /// @solidity memory-safe-assembly\n assembly {\n let w := not(0x1f)\n let indexPtr := add(indices, 0x20)\n let indicesEnd := add(indexPtr, shl(5, add(mload(indices), 1)))\n mstore(add(indicesEnd, w), mload(subject))\n mstore(indices, add(mload(indices), 1))\n let prevIndex := 0\n for {} 1 {} {\n let index := mload(indexPtr)\n mstore(indexPtr, 0x60)\n if iszero(eq(index, prevIndex)) {\n let element := mload(0x40)\n let elementLength := sub(index, prevIndex)\n mstore(element, elementLength)\n // Copy the `subject` one word at a time, backwards.\n for { let o := and(add(elementLength, 0x1f), w) } 1 {} {\n mstore(add(element, o), mload(add(add(subject, prevIndex), o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n // Zeroize the slot after the string.\n mstore(add(add(element, 0x20), elementLength), 0)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, add(element, and(add(elementLength, 0x3f), w)))\n // Store the `element` into the array.\n mstore(indexPtr, element)\n }\n prevIndex := add(index, mload(delimiter))\n indexPtr := add(indexPtr, 0x20)\n if iszero(lt(indexPtr, indicesEnd)) { break }\n }\n result := indices\n if iszero(mload(delimiter)) {\n result := add(indices, 0x20)\n mstore(result, sub(mload(indices), 2))\n }\n }\n }\n\n /// @dev Returns a concatenated string of `a` and `b`.\n /// Cheaper than `string.concat()` and does not de-align the free memory pointer.\n function concat(string memory a, string memory b)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let w := not(0x1f)\n result := mload(0x40)\n let aLength := mload(a)\n // Copy `a` one word at a time, backwards.\n for { let o := and(add(aLength, 0x20), w) } 1 {} {\n mstore(add(result, o), mload(add(a, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n let bLength := mload(b)\n let output := add(result, aLength)\n // Copy `b` one word at a time, backwards.\n for { let o := and(add(bLength, 0x20), w) } 1 {} {\n mstore(add(output, o), mload(add(b, o)))\n o := add(o, w) // `sub(o, 0x20)`.\n if iszero(o) { break }\n }\n let totalLength := add(aLength, bLength)\n let last := add(add(result, 0x20), totalLength)\n // Zeroize the slot after the string.\n mstore(last, 0)\n // Stores the length.\n mstore(result, totalLength)\n // Allocate memory for the length and the bytes,\n // rounded up to a multiple of 32.\n mstore(0x40, and(add(last, 0x1f), w))\n }\n }\n\n /// @dev Returns a copy of the string in either lowercase or UPPERCASE.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function toCase(string memory subject, bool toUpper)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let length := mload(subject)\n if length {\n result := add(mload(0x40), 0x20)\n subject := add(subject, 1)\n let flags := shl(add(70, shl(5, toUpper)), 0x3ffffff)\n let w := not(0)\n for { let o := length } 1 {} {\n o := add(o, w)\n let b := and(0xff, mload(add(subject, o)))\n mstore8(add(result, o), xor(b, and(shr(b, flags), 0x20)))\n if iszero(o) { break }\n }\n result := mload(0x40)\n mstore(result, length) // Store the length.\n let last := add(add(result, 0x20), length)\n mstore(last, 0) // Zeroize the slot after the string.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n }\n\n /// @dev Returns a string from a small bytes32 string.\n /// `s` must be null-terminated, or behavior will be undefined.\n function fromSmallString(bytes32 s) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let n := 0\n for {} byte(n, s) { n := add(n, 1) } {} // Scan for '\\0'.\n mstore(result, n)\n let o := add(result, 0x20)\n mstore(o, s)\n mstore(add(o, n), 0)\n mstore(0x40, add(result, 0x40))\n }\n }\n\n /// @dev Returns the small string, with all bytes after the first null byte zeroized.\n function normalizeSmallString(bytes32 s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n for {} byte(result, s) { result := add(result, 1) } {} // Scan for '\\0'.\n mstore(0x00, s)\n mstore(result, 0x00)\n result := mload(0x00)\n }\n }\n\n /// @dev Returns the string as a normalized null-terminated small string.\n function toSmallString(string memory s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(s)\n if iszero(lt(result, 33)) {\n mstore(0x00, 0xec92f9a3) // `TooBigForSmallString()`.\n revert(0x1c, 0x04)\n }\n result := shl(shl(3, sub(32, result)), mload(add(s, result)))\n }\n }\n\n /// @dev Returns a lowercased copy of the string.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function lower(string memory subject) internal pure returns (string memory result) {\n result = toCase(subject, false);\n }\n\n /// @dev Returns an UPPERCASED copy of the string.\n /// WARNING! This function is only compatible with 7-bit ASCII strings.\n function upper(string memory subject) internal pure returns (string memory result) {\n result = toCase(subject, true);\n }\n\n /// @dev Escapes the string to be used within HTML tags.\n function escapeHTML(string memory s) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n let end := add(s, mload(s))\n result := add(mload(0x40), 0x20)\n // Store the bytes of the packed offsets and strides into the scratch space.\n // `packed = (stride << 5) | offset`. Max offset is 20. Max stride is 6.\n mstore(0x1f, 0x900094)\n mstore(0x08, 0xc0000000a6ab)\n // Store \""&'<>\" into the scratch space.\n mstore(0x00, shl(64, 0x2671756f743b26616d703b262333393b266c743b2667743b))\n for {} iszero(eq(s, end)) {} {\n s := add(s, 1)\n let c := and(mload(s), 0xff)\n // Not in `[\"\\\"\",\"'\",\"&\",\"<\",\">\"]`.\n if iszero(and(shl(c, 1), 0x500000c400000000)) {\n mstore8(result, c)\n result := add(result, 1)\n continue\n }\n let t := shr(248, mload(c))\n mstore(result, mload(and(t, 0x1f)))\n result := add(result, shr(5, t))\n }\n let last := result\n mstore(last, 0) // Zeroize the slot after the string.\n result := mload(0x40)\n mstore(result, sub(last, add(result, 0x20))) // Store the length.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Escapes the string to be used within double-quotes in a JSON.\n /// If `addDoubleQuotes` is true, the result will be enclosed in double-quotes.\n function escapeJSON(string memory s, bool addDoubleQuotes)\n internal\n pure\n returns (string memory result)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let end := add(s, mload(s))\n result := add(mload(0x40), 0x20)\n if addDoubleQuotes {\n mstore8(result, 34)\n result := add(1, result)\n }\n // Store \"\\\\u0000\" in scratch space.\n // Store \"0123456789abcdef\" in scratch space.\n // Also, store `{0x08:\"b\", 0x09:\"t\", 0x0a:\"n\", 0x0c:\"f\", 0x0d:\"r\"}`.\n // into the scratch space.\n mstore(0x15, 0x5c75303030303031323334353637383961626364656662746e006672)\n // Bitmask for detecting `[\"\\\"\",\"\\\\\"]`.\n let e := or(shl(0x22, 1), shl(0x5c, 1))\n for {} iszero(eq(s, end)) {} {\n s := add(s, 1)\n let c := and(mload(s), 0xff)\n if iszero(lt(c, 0x20)) {\n if iszero(and(shl(c, 1), e)) {\n // Not in `[\"\\\"\",\"\\\\\"]`.\n mstore8(result, c)\n result := add(result, 1)\n continue\n }\n mstore8(result, 0x5c) // \"\\\\\".\n mstore8(add(result, 1), c)\n result := add(result, 2)\n continue\n }\n if iszero(and(shl(c, 1), 0x3700)) {\n // Not in `[\"\\b\",\"\\t\",\"\\n\",\"\\f\",\"\\d\"]`.\n mstore8(0x1d, mload(shr(4, c))) // Hex value.\n mstore8(0x1e, mload(and(c, 15))) // Hex value.\n mstore(result, mload(0x19)) // \"\\\\u00XX\".\n result := add(result, 6)\n continue\n }\n mstore8(result, 0x5c) // \"\\\\\".\n mstore8(add(result, 1), mload(add(c, 8)))\n result := add(result, 2)\n }\n if addDoubleQuotes {\n mstore8(result, 34)\n result := add(1, result)\n }\n let last := result\n mstore(last, 0) // Zeroize the slot after the string.\n result := mload(0x40)\n mstore(result, sub(last, add(result, 0x20))) // Store the length.\n mstore(0x40, add(last, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Escapes the string to be used within double-quotes in a JSON.\n function escapeJSON(string memory s) internal pure returns (string memory result) {\n result = escapeJSON(s, false);\n }\n\n /// @dev Returns whether `a` equals `b`.\n function eq(string memory a, string memory b) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := eq(keccak256(add(a, 0x20), mload(a)), keccak256(add(b, 0x20), mload(b)))\n }\n }\n\n /// @dev Returns whether `a` equals `b`, where `b` is a null-terminated small string.\n function eqs(string memory a, bytes32 b) internal pure returns (bool result) {\n /// @solidity memory-safe-assembly\n assembly {\n // These should be evaluated on compile time, as far as possible.\n let m := not(shl(7, div(not(iszero(b)), 255))) // `0x7f7f ...`.\n let x := not(or(m, or(b, add(m, and(b, m)))))\n let r := shl(7, iszero(iszero(shr(128, x))))\n r := or(r, shl(6, iszero(iszero(shr(64, shr(r, x))))))\n r := or(r, shl(5, lt(0xffffffff, shr(r, x))))\n r := or(r, shl(4, lt(0xffff, shr(r, x))))\n r := or(r, shl(3, lt(0xff, shr(r, x))))\n // forgefmt: disable-next-item\n result := gt(eq(mload(a), add(iszero(x), xor(31, shr(3, r)))),\n xor(shr(add(8, r), b), shr(add(8, r), mload(add(a, 0x20)))))\n }\n }\n\n /// @dev Packs a single string with its length into a single word.\n /// Returns `bytes32(0)` if the length is zero or greater than 31.\n function packOne(string memory a) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n // We don't need to zero right pad the string,\n // since this is our own custom non-standard packing scheme.\n result :=\n mul(\n // Load the length and the bytes.\n mload(add(a, 0x1f)),\n // `length != 0 && length < 32`. Abuses underflow.\n // Assumes that the length is valid and within the block gas limit.\n lt(sub(mload(a), 1), 0x1f)\n )\n }\n }\n\n /// @dev Unpacks a string packed using {packOne}.\n /// Returns the empty string if `packed` is `bytes32(0)`.\n /// If `packed` is not an output of {packOne}, the output behavior is undefined.\n function unpackOne(bytes32 packed) internal pure returns (string memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the free memory pointer.\n result := mload(0x40)\n // Allocate 2 words (1 for the length, 1 for the bytes).\n mstore(0x40, add(result, 0x40))\n // Zeroize the length slot.\n mstore(result, 0)\n // Store the length and bytes.\n mstore(add(result, 0x1f), packed)\n // Right pad with zeroes.\n mstore(add(add(result, 0x20), mload(result)), 0)\n }\n }\n\n /// @dev Packs two strings with their lengths into a single word.\n /// Returns `bytes32(0)` if combined length is zero or greater than 30.\n function packTwo(string memory a, string memory b) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let aLength := mload(a)\n // We don't need to zero right pad the strings,\n // since this is our own custom non-standard packing scheme.\n result :=\n mul(\n // Load the length and the bytes of `a` and `b`.\n or(\n shl(shl(3, sub(0x1f, aLength)), mload(add(a, aLength))),\n mload(sub(add(b, 0x1e), aLength))\n ),\n // `totalLength != 0 && totalLength < 31`. Abuses underflow.\n // Assumes that the lengths are valid and within the block gas limit.\n lt(sub(add(aLength, mload(b)), 1), 0x1e)\n )\n }\n }\n\n /// @dev Unpacks strings packed using {packTwo}.\n /// Returns the empty strings if `packed` is `bytes32(0)`.\n /// If `packed` is not an output of {packTwo}, the output behavior is undefined.\n function unpackTwo(bytes32 packed)\n internal\n pure\n returns (string memory resultA, string memory resultB)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Grab the free memory pointer.\n resultA := mload(0x40)\n resultB := add(resultA, 0x40)\n // Allocate 2 words for each string (1 for the length, 1 for the byte). Total 4 words.\n mstore(0x40, add(resultB, 0x40))\n // Zeroize the length slots.\n mstore(resultA, 0)\n mstore(resultB, 0)\n // Store the lengths and bytes.\n mstore(add(resultA, 0x1f), packed)\n mstore(add(resultB, 0x1f), mload(add(add(resultA, 0x20), mload(resultA))))\n // Right pad with zeroes.\n mstore(add(add(resultA, 0x20), mload(resultA)), 0)\n mstore(add(add(resultB, 0x20), mload(resultB)), 0)\n }\n }\n\n /// @dev Directly returns `a` without copying.\n function directReturn(string memory a) internal pure {\n assembly {\n // Assumes that the string does not start from the scratch space.\n let retStart := sub(a, 0x20)\n let retUnpaddedSize := add(mload(a), 0x40)\n // Right pad with zeroes. Just in case the string is produced\n // by a method that doesn't zero right pad.\n mstore(add(retStart, retUnpaddedSize), 0)\n // Store the return offset.\n mstore(retStart, 0x20)\n // End the transaction, returning the string.\n return(retStart, and(not(0x1f), add(0x1f, retUnpaddedSize)))\n }\n }\n}\n"},"@solady/utils/LibZip.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Library for compressing and decompressing bytes.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)\n/// @author Calldata compression by clabby (https://github.com/clabby/op-kompressor)\n/// @author FastLZ by ariya (https://github.com/ariya/FastLZ)\n///\n/// @dev Note:\n/// The accompanying solady.js library includes implementations of\n/// FastLZ and calldata operations for convenience.\nlibrary LibZip {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* FAST LZ OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // LZ77 implementation based on FastLZ.\n // Equivalent to level 1 compression and decompression at the following commit:\n // https://github.com/ariya/FastLZ/commit/344eb4025f9ae866ebf7a2ec48850f7113a97a42\n // Decompression is backwards compatible.\n\n /// @dev Returns the compressed `data`.\n function flzCompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n function ms8(d_, v_) -> _d {\n mstore8(d_, v_)\n _d := add(d_, 1)\n }\n function u24(p_) -> _u {\n _u := mload(p_)\n _u := or(shl(16, byte(2, _u)), or(shl(8, byte(1, _u)), byte(0, _u)))\n }\n function cmp(p_, q_, e_) -> _l {\n for { e_ := sub(e_, q_) } lt(_l, e_) { _l := add(_l, 1) } {\n e_ := mul(iszero(byte(0, xor(mload(add(p_, _l)), mload(add(q_, _l))))), e_)\n }\n }\n function literals(runs_, src_, dest_) -> _o {\n for { _o := dest_ } iszero(lt(runs_, 0x20)) { runs_ := sub(runs_, 0x20) } {\n mstore(ms8(_o, 31), mload(src_))\n _o := add(_o, 0x21)\n src_ := add(src_, 0x20)\n }\n if iszero(runs_) { leave }\n mstore(ms8(_o, sub(runs_, 1)), mload(src_))\n _o := add(1, add(_o, runs_))\n }\n function mt(l_, d_, o_) -> _o {\n for { d_ := sub(d_, 1) } iszero(lt(l_, 263)) { l_ := sub(l_, 262) } {\n o_ := ms8(ms8(ms8(o_, add(224, shr(8, d_))), 253), and(0xff, d_))\n }\n if iszero(lt(l_, 7)) {\n _o := ms8(ms8(ms8(o_, add(224, shr(8, d_))), sub(l_, 7)), and(0xff, d_))\n leave\n }\n _o := ms8(ms8(o_, add(shl(5, l_), shr(8, d_))), and(0xff, d_))\n }\n function setHash(i_, v_) {\n let p_ := add(mload(0x40), shl(2, i_))\n mstore(p_, xor(mload(p_), shl(224, xor(shr(224, mload(p_)), v_))))\n }\n function getHash(i_) -> _h {\n _h := shr(224, mload(add(mload(0x40), shl(2, i_))))\n }\n function hash(v_) -> _r {\n _r := and(shr(19, mul(2654435769, v_)), 0x1fff)\n }\n function setNextHash(ip_, ipStart_) -> _ip {\n setHash(hash(u24(ip_)), sub(ip_, ipStart_))\n _ip := add(ip_, 1)\n }\n result := mload(0x40)\n codecopy(result, codesize(), 0x8000) // Zeroize the hashmap.\n let op := add(result, 0x8000)\n let a := add(data, 0x20)\n let ipStart := a\n let ipLimit := sub(add(ipStart, mload(data)), 13)\n for { let ip := add(2, a) } lt(ip, ipLimit) {} {\n let r := 0\n let d := 0\n for {} 1 {} {\n let s := u24(ip)\n let h := hash(s)\n r := add(ipStart, getHash(h))\n setHash(h, sub(ip, ipStart))\n d := sub(ip, r)\n if iszero(lt(ip, ipLimit)) { break }\n ip := add(ip, 1)\n if iszero(gt(d, 0x1fff)) { if eq(s, u24(r)) { break } }\n }\n if iszero(lt(ip, ipLimit)) { break }\n ip := sub(ip, 1)\n if gt(ip, a) { op := literals(sub(ip, a), a, op) }\n let l := cmp(add(r, 3), add(ip, 3), add(ipLimit, 9))\n op := mt(l, d, op)\n ip := setNextHash(setNextHash(add(ip, l), ipStart), ipStart)\n a := ip\n }\n // Copy the result to compact the memory, overwriting the hashmap.\n let end := sub(literals(sub(add(ipStart, mload(data)), a), a, op), 0x7fe0)\n let o := add(result, 0x20)\n mstore(result, sub(end, o)) // Store the length.\n for {} iszero(gt(o, end)) { o := add(o, 0x20) } { mstore(o, mload(add(o, 0x7fe0))) }\n mstore(end, 0) // Zeroize the slot after the string.\n mstore(0x40, add(end, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Returns the decompressed `data`.\n function flzDecompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n result := mload(0x40)\n let op := add(result, 0x20)\n let end := add(add(data, 0x20), mload(data))\n for { data := add(data, 0x20) } lt(data, end) {} {\n let w := mload(data)\n let c := byte(0, w)\n let t := shr(5, c)\n if iszero(t) {\n mstore(op, mload(add(data, 1)))\n data := add(data, add(2, c))\n op := add(op, add(1, c))\n continue\n }\n for {\n let g := eq(t, 7)\n let l := add(2, xor(t, mul(g, xor(t, add(7, byte(1, w)))))) // M\n let s := add(add(shl(8, and(0x1f, c)), byte(add(1, g), w)), 1) // R\n let r := sub(op, s)\n let f := xor(s, mul(gt(s, 0x20), xor(s, 0x20)))\n let j := 0\n } 1 {} {\n mstore(add(op, j), mload(add(r, j)))\n j := add(j, f)\n if lt(j, l) { continue }\n data := add(data, add(2, g))\n op := add(op, l)\n break\n }\n }\n mstore(result, sub(op, add(result, 0x20))) // Store the length.\n mstore(op, 0) // Zeroize the slot after the string.\n mstore(0x40, add(op, 0x20)) // Allocate the memory.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CALLDATA OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // Calldata compression and decompression using selective run length encoding:\n // - Sequences of 0x00 (up to 128 consecutive).\n // - Sequences of 0xff (up to 32 consecutive).\n //\n // A run length encoded block consists of two bytes:\n // (0) 0x00\n // (1) A control byte with the following bit layout:\n // - [7] `0: 0x00, 1: 0xff`.\n // - [0..6] `runLength - 1`.\n //\n // The first 4 bytes are bitwise negated so that the compressed calldata\n // can be dispatched into the `fallback` and `receive` functions.\n\n /// @dev Returns the compressed `data`.\n function cdCompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n function rle(v_, o_, d_) -> _o, _d {\n mstore(o_, shl(240, or(and(0xff, add(d_, 0xff)), and(0x80, v_))))\n _o := add(o_, 2)\n }\n result := mload(0x40)\n let o := add(result, 0x20)\n let z := 0 // Number of consecutive 0x00.\n let y := 0 // Number of consecutive 0xff.\n for { let end := add(data, mload(data)) } iszero(eq(data, end)) {} {\n data := add(data, 1)\n let c := byte(31, mload(data))\n if iszero(c) {\n if y { o, y := rle(0xff, o, y) }\n z := add(z, 1)\n if eq(z, 0x80) { o, z := rle(0x00, o, 0x80) }\n continue\n }\n if eq(c, 0xff) {\n if z { o, z := rle(0x00, o, z) }\n y := add(y, 1)\n if eq(y, 0x20) { o, y := rle(0xff, o, 0x20) }\n continue\n }\n if y { o, y := rle(0xff, o, y) }\n if z { o, z := rle(0x00, o, z) }\n mstore8(o, c)\n o := add(o, 1)\n }\n if y { o, y := rle(0xff, o, y) }\n if z { o, z := rle(0x00, o, z) }\n // Bitwise negate the first 4 bytes.\n mstore(add(result, 4), not(mload(add(result, 4))))\n mstore(result, sub(o, add(result, 0x20))) // Store the length.\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n\n /// @dev Returns the decompressed `data`.\n function cdDecompress(bytes memory data) internal pure returns (bytes memory result) {\n /// @solidity memory-safe-assembly\n assembly {\n if mload(data) {\n result := mload(0x40)\n let o := add(result, 0x20)\n let s := add(data, 4)\n let v := mload(s)\n let end := add(data, mload(data))\n mstore(s, not(v)) // Bitwise negate the first 4 bytes.\n for {} lt(data, end) {} {\n data := add(data, 1)\n let c := byte(31, mload(data))\n if iszero(c) {\n data := add(data, 1)\n let d := byte(31, mload(data))\n // Fill with either 0xff or 0x00.\n mstore(o, not(0))\n if iszero(gt(d, 0x7f)) { codecopy(o, codesize(), add(d, 1)) }\n o := add(o, add(and(d, 0x7f), 1))\n continue\n }\n mstore8(o, c)\n o := add(o, 1)\n }\n mstore(s, v) // Restore the first 4 bytes.\n mstore(result, sub(o, add(result, 0x20))) // Store the length.\n mstore(o, 0) // Zeroize the slot after the string.\n mstore(0x40, add(o, 0x20)) // Allocate the memory.\n }\n }\n }\n\n /// @dev To be called in the `fallback` function.\n /// ```\n /// fallback() external payable { LibZip.cdFallback(); }\n /// receive() external payable {} // Silence compiler warning to add a `receive` function.\n /// ```\n /// For efficiency, this function will directly return the results, terminating the context.\n /// If called internally, it must be called at the end of the function.\n function cdFallback() internal {\n assembly {\n if iszero(calldatasize()) { return(calldatasize(), calldatasize()) }\n let o := 0\n let f := not(3) // For negating the first 4 bytes.\n for { let i := 0 } lt(i, calldatasize()) {} {\n let c := byte(0, xor(add(i, f), calldataload(i)))\n i := add(i, 1)\n if iszero(c) {\n let d := byte(0, xor(add(i, f), calldataload(i)))\n i := add(i, 1)\n // Fill with either 0xff or 0x00.\n mstore(o, not(0))\n if iszero(gt(d, 0x7f)) { codecopy(o, codesize(), add(d, 1)) }\n o := add(o, add(and(d, 0x7f), 1))\n continue\n }\n mstore8(o, c)\n o := add(o, 1)\n }\n let success := delegatecall(gas(), address(), 0x00, o, codesize(), 0x00)\n returndatacopy(0x00, 0x00, returndatasize())\n if iszero(success) { revert(0x00, returndatasize()) }\n return(0x00, returndatasize())\n }\n }\n}\n"},"@solady/utils/ReentrancyGuard.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Reentrancy guard mixin.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)\nabstract contract ReentrancyGuard {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Unauthorized reentrant call.\n error Reentrancy();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* STORAGE */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Equivalent to: `uint72(bytes9(keccak256(\"_REENTRANCY_GUARD_SLOT\")))`.\n /// 9 bytes is large enough to avoid collisions with lower slots,\n /// but not too large to result in excessive bytecode bloat.\n uint256 private constant _REENTRANCY_GUARD_SLOT = 0x929eee149b4bd21268;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* REENTRANCY GUARD */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Guards a function from reentrancy.\n modifier nonReentrant() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n if eq(sload(_REENTRANCY_GUARD_SLOT), address()) {\n mstore(0x00, 0xab143c06) // `Reentrancy()`.\n revert(0x1c, 0x04)\n }\n sstore(_REENTRANCY_GUARD_SLOT, address())\n }\n _;\n /// @solidity memory-safe-assembly\n assembly {\n sstore(_REENTRANCY_GUARD_SLOT, codesize())\n }\n }\n\n /// @dev Guards a view function from read-only reentrancy.\n modifier nonReadReentrant() virtual {\n /// @solidity memory-safe-assembly\n assembly {\n if eq(sload(_REENTRANCY_GUARD_SLOT), address()) {\n mstore(0x00, 0xab143c06) // `Reentrancy()`.\n revert(0x1c, 0x04)\n }\n }\n _;\n }\n}\n"},"@solady/utils/SafeTransferLib.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)\n/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)\n/// @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\n///\n/// @dev Note:\n/// - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.\n/// - For ERC20s, this implementation won't check that a token has code,\n/// responsibility is delegated to the caller.\nlibrary SafeTransferLib {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CUSTOM ERRORS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev The ETH transfer has failed.\n error ETHTransferFailed();\n\n /// @dev The ERC20 `transferFrom` has failed.\n error TransferFromFailed();\n\n /// @dev The ERC20 `transfer` has failed.\n error TransferFailed();\n\n /// @dev The ERC20 `approve` has failed.\n error ApproveFailed();\n\n /// @dev The Permit2 operation has failed.\n error Permit2Failed();\n\n /// @dev The Permit2 amount must be less than `2**160 - 1`.\n error Permit2AmountOverflow();\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* CONSTANTS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Suggested gas stipend for contract receiving ETH that disallows any storage writes.\n uint256 internal constant GAS_STIPEND_NO_STORAGE_WRITES = 2300;\n\n /// @dev Suggested gas stipend for contract receiving ETH to perform a few\n /// storage reads and writes, but low enough to prevent griefing.\n uint256 internal constant GAS_STIPEND_NO_GRIEF = 100000;\n\n /// @dev The unique EIP-712 domain domain separator for the DAI token contract.\n bytes32 internal constant DAI_DOMAIN_SEPARATOR =\n 0xdbb8cf42e1ecb028be3f3dbc922e1d878b963f411dc388ced501601c60f7c6f7;\n\n /// @dev The address for the WETH9 contract on Ethereum mainnet.\n address internal constant WETH9 = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n /// @dev The canonical Permit2 address.\n /// [Github](https://github.com/Uniswap/permit2)\n /// [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\n address internal constant PERMIT2 = 0x000000000022D473030F116dDEE9F6B43aC78BA3;\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ETH OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n // If the ETH transfer MUST succeed with a reasonable gas budget, use the force variants.\n //\n // The regular variants:\n // - Forwards all remaining gas to the target.\n // - Reverts if the target reverts.\n // - Reverts if the current contract has insufficient balance.\n //\n // The force variants:\n // - Forwards with an optional gas stipend\n // (defaults to `GAS_STIPEND_NO_GRIEF`, which is sufficient for most cases).\n // - If the target reverts, or if the gas stipend is exhausted,\n // creates a temporary contract to force send the ETH via `SELFDESTRUCT`.\n // Future compatible with `SENDALL`: https://eips.ethereum.org/EIPS/eip-4758.\n // - Reverts if the current contract has insufficient balance.\n //\n // The try variants:\n // - Forwards with a mandatory gas stipend.\n // - Instead of reverting, returns whether the transfer succeeded.\n\n /// @dev Sends `amount` (in wei) ETH to `to`.\n function safeTransferETH(address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(call(gas(), to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Sends all the ETH in the current contract to `to`.\n function safeTransferAllETH(address to) internal {\n /// @solidity memory-safe-assembly\n assembly {\n // Transfer all the ETH and check if it succeeded or not.\n if iszero(call(gas(), to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n\n /// @dev Force sends `amount` (in wei) ETH to `to`, with a `gasStipend`.\n function forceSafeTransferETH(address to, uint256 amount, uint256 gasStipend) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if lt(selfbalance(), amount) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n if iszero(call(gasStipend, to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(amount, 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends all the ETH in the current contract to `to`, with a `gasStipend`.\n function forceSafeTransferAllETH(address to, uint256 gasStipend) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if iszero(call(gasStipend, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(selfbalance(), 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends `amount` (in wei) ETH to `to`, with `GAS_STIPEND_NO_GRIEF`.\n function forceSafeTransferETH(address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n if lt(selfbalance(), amount) {\n mstore(0x00, 0xb12d13eb) // `ETHTransferFailed()`.\n revert(0x1c, 0x04)\n }\n if iszero(call(GAS_STIPEND_NO_GRIEF, to, amount, codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(amount, 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Force sends all the ETH in the current contract to `to`, with `GAS_STIPEND_NO_GRIEF`.\n function forceSafeTransferAllETH(address to) internal {\n /// @solidity memory-safe-assembly\n assembly {\n // forgefmt: disable-next-item\n if iszero(call(GAS_STIPEND_NO_GRIEF, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)) {\n mstore(0x00, to) // Store the address in scratch space.\n mstore8(0x0b, 0x73) // Opcode `PUSH20`.\n mstore8(0x20, 0xff) // Opcode `SELFDESTRUCT`.\n if iszero(create(selfbalance(), 0x0b, 0x16)) { revert(codesize(), codesize()) } // For gas estimation.\n }\n }\n }\n\n /// @dev Sends `amount` (in wei) ETH to `to`, with a `gasStipend`.\n function trySafeTransferETH(address to, uint256 amount, uint256 gasStipend)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n success := call(gasStipend, to, amount, codesize(), 0x00, codesize(), 0x00)\n }\n }\n\n /// @dev Sends all the ETH in the current contract to `to`, with a `gasStipend`.\n function trySafeTransferAllETH(address to, uint256 gasStipend)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n success := call(gasStipend, to, selfbalance(), codesize(), 0x00, codesize(), 0x00)\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC20 OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n /// Reverts upon failure.\n ///\n /// The `from` account must have at least `amount` approved for\n /// the current contract to manage.\n function safeTransferFrom(address token, address from, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, amount) // Store the `amount` argument.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x23b872dd000000000000000000000000) // `transferFrom(address,address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n ///\n /// The `from` account must have at least `amount` approved for the current contract to manage.\n function trySafeTransferFrom(address token, address from, address to, uint256 amount)\n internal\n returns (bool success)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x60, amount) // Store the `amount` argument.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x23b872dd000000000000000000000000) // `transferFrom(address,address,uint256)`.\n success :=\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends all of ERC20 `token` from `from` to `to`.\n /// Reverts upon failure.\n ///\n /// The `from` account must have their entire balance approved for the current contract to manage.\n function safeTransferAllFrom(address token, address from, address to)\n internal\n returns (uint256 amount)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40) // Cache the free memory pointer.\n mstore(0x40, to) // Store the `to` argument.\n mstore(0x2c, shl(96, from)) // Store the `from` argument.\n mstore(0x0c, 0x70a08231000000000000000000000000) // `balanceOf(address)`.\n // Read the balance, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x1c, 0x24, 0x60, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x00, 0x23b872dd) // `transferFrom(address,address,uint256)`.\n amount := mload(0x60) // The `amount` is already at 0x60. We'll need to return it.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x1c, 0x64, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x7939f424) // `TransferFromFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x60, 0) // Restore the zero slot to zero.\n mstore(0x40, m) // Restore the free memory pointer.\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from the current contract to `to`.\n /// Reverts upon failure.\n function safeTransfer(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0xa9059cbb000000000000000000000000) // `transfer(address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sends all of ERC20 `token` from the current contract to `to`.\n /// Reverts upon failure.\n function safeTransferAll(address token, address to) internal returns (uint256 amount) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, 0x70a08231) // Store the function selector of `balanceOf(address)`.\n mstore(0x20, address()) // Store the address of the current contract.\n // Read the balance, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x1c, 0x24, 0x34, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x14, to) // Store the `to` argument.\n amount := mload(0x34) // The `amount` is already at 0x34. We'll need to return it.\n mstore(0x00, 0xa9059cbb000000000000000000000000) // `transfer(address,uint256)`.\n // Perform the transfer, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x90b8ec18) // `TransferFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n /// Reverts upon failure.\n function safeApprove(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n // Perform the approval, reverting upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x3e3f8f73) // `ApproveFailed()`.\n revert(0x1c, 0x04)\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n /// If the initial attempt to approve fails, attempts to reset the approved amount to zero,\n /// then retries the approval again (some tokens, e.g. USDT, requires this).\n /// Reverts upon failure.\n function safeApproveWithRetry(address token, address to, uint256 amount) internal {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, to) // Store the `to` argument.\n mstore(0x34, amount) // Store the `amount` argument.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n // Perform the approval, retrying upon failure.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x34, 0) // Store 0 for the `amount`.\n mstore(0x00, 0x095ea7b3000000000000000000000000) // `approve(address,uint256)`.\n pop(call(gas(), token, 0, 0x10, 0x44, codesize(), 0x00)) // Reset the approval.\n mstore(0x34, amount) // Store back the original `amount`.\n // Retry the approval, reverting upon failure.\n if iszero(\n and(\n or(eq(mload(0x00), 1), iszero(returndatasize())), // Returned 1 or nothing.\n call(gas(), token, 0, 0x10, 0x44, 0x00, 0x20)\n )\n ) {\n mstore(0x00, 0x3e3f8f73) // `ApproveFailed()`.\n revert(0x1c, 0x04)\n }\n }\n mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.\n }\n }\n\n /// @dev Returns the amount of ERC20 `token` owned by `account`.\n /// Returns zero if the `token` does not exist.\n function balanceOf(address token, address account) internal view returns (uint256 amount) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x14, account) // Store the `account` argument.\n mstore(0x00, 0x70a08231000000000000000000000000) // `balanceOf(address)`.\n amount :=\n mul( // The arguments of `mul` are evaluated from right to left.\n mload(0x20),\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x1f), // At least 32 bytes returned.\n staticcall(gas(), token, 0x10, 0x24, 0x20, 0x20)\n )\n )\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to`.\n /// If the initial attempt fails, try to use Permit2 to transfer the token.\n /// Reverts upon failure.\n ///\n /// The `from` account must have at least `amount` approved for the current contract to manage.\n function safeTransferFrom2(address token, address from, address to, uint256 amount) internal {\n if (!trySafeTransferFrom(token, from, to, amount)) {\n permit2TransferFrom(token, from, to, amount);\n }\n }\n\n /// @dev Sends `amount` of ERC20 `token` from `from` to `to` via Permit2.\n /// Reverts upon failure.\n function permit2TransferFrom(address token, address from, address to, uint256 amount)\n internal\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n mstore(add(m, 0x74), shr(96, shl(96, token)))\n mstore(add(m, 0x54), amount)\n mstore(add(m, 0x34), to)\n mstore(add(m, 0x20), shl(96, from))\n // `transferFrom(address,address,uint160,address)`.\n mstore(m, 0x36c78516000000000000000000000000)\n let p := PERMIT2\n let exists := eq(chainid(), 1)\n if iszero(exists) { exists := iszero(iszero(extcodesize(p))) }\n if iszero(and(call(gas(), p, 0, add(m, 0x10), 0x84, codesize(), 0x00), exists)) {\n mstore(0x00, 0x7939f4248757f0fd) // `TransferFromFailed()` or `Permit2AmountOverflow()`.\n revert(add(0x18, shl(2, iszero(iszero(shr(160, amount))))), 0x04)\n }\n }\n }\n\n /// @dev Permit a user to spend a given amount of\n /// another user's tokens via native EIP-2612 permit if possible, falling\n /// back to Permit2 if native permit fails or is not implemented on the token.\n function permit2(\n address token,\n address owner,\n address spender,\n uint256 amount,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n bool success;\n /// @solidity memory-safe-assembly\n assembly {\n for {} shl(96, xor(token, WETH9)) {} {\n mstore(0x00, 0x3644e515) // `DOMAIN_SEPARATOR()`.\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n lt(iszero(mload(0x00)), eq(returndatasize(), 0x20)), // Returns 1 non-zero word.\n // Gas stipend to limit gas burn for tokens that don't refund gas when\n // an non-existing function is called. 5K should be enough for a SLOAD.\n staticcall(5000, token, 0x1c, 0x04, 0x00, 0x20)\n )\n ) { break }\n // After here, we can be sure that token is a contract.\n let m := mload(0x40)\n mstore(add(m, 0x34), spender)\n mstore(add(m, 0x20), shl(96, owner))\n mstore(add(m, 0x74), deadline)\n if eq(mload(0x00), DAI_DOMAIN_SEPARATOR) {\n mstore(0x14, owner)\n mstore(0x00, 0x7ecebe00000000000000000000000000) // `nonces(address)`.\n mstore(add(m, 0x94), staticcall(gas(), token, 0x10, 0x24, add(m, 0x54), 0x20))\n mstore(m, 0x8fcbaf0c000000000000000000000000) // `IDAIPermit.permit`.\n // `nonces` is already at `add(m, 0x54)`.\n // `1` is already stored at `add(m, 0x94)`.\n mstore(add(m, 0xb4), and(0xff, v))\n mstore(add(m, 0xd4), r)\n mstore(add(m, 0xf4), s)\n success := call(gas(), token, 0, add(m, 0x10), 0x104, codesize(), 0x00)\n break\n }\n mstore(m, 0xd505accf000000000000000000000000) // `IERC20Permit.permit`.\n mstore(add(m, 0x54), amount)\n mstore(add(m, 0x94), and(0xff, v))\n mstore(add(m, 0xb4), r)\n mstore(add(m, 0xd4), s)\n success := call(gas(), token, 0, add(m, 0x10), 0xe4, codesize(), 0x00)\n break\n }\n }\n if (!success) simplePermit2(token, owner, spender, amount, deadline, v, r, s);\n }\n\n /// @dev Simple permit on the Permit2 contract.\n function simplePermit2(\n address token,\n address owner,\n address spender,\n uint256 amount,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n mstore(m, 0x927da105) // `allowance(address,address,address)`.\n {\n let addressMask := shr(96, not(0))\n mstore(add(m, 0x20), and(addressMask, owner))\n mstore(add(m, 0x40), and(addressMask, token))\n mstore(add(m, 0x60), and(addressMask, spender))\n mstore(add(m, 0xc0), and(addressMask, spender))\n }\n let p := mul(PERMIT2, iszero(shr(160, amount)))\n if iszero(\n and( // The arguments of `and` are evaluated from right to left.\n gt(returndatasize(), 0x5f), // Returns 3 words: `amount`, `expiration`, `nonce`.\n staticcall(gas(), p, add(m, 0x1c), 0x64, add(m, 0x60), 0x60)\n )\n ) {\n mstore(0x00, 0x6b836e6b8757f0fd) // `Permit2Failed()` or `Permit2AmountOverflow()`.\n revert(add(0x18, shl(2, iszero(p))), 0x04)\n }\n mstore(m, 0x2b67b570) // `Permit2.permit` (PermitSingle variant).\n // `owner` is already `add(m, 0x20)`.\n // `token` is already at `add(m, 0x40)`.\n mstore(add(m, 0x60), amount)\n mstore(add(m, 0x80), 0xffffffffffff) // `expiration = type(uint48).max`.\n // `nonce` is already at `add(m, 0xa0)`.\n // `spender` is already at `add(m, 0xc0)`.\n mstore(add(m, 0xe0), deadline)\n mstore(add(m, 0x100), 0x100) // `signature` offset.\n mstore(add(m, 0x120), 0x41) // `signature` length.\n mstore(add(m, 0x140), r)\n mstore(add(m, 0x160), s)\n mstore(add(m, 0x180), shl(248, v))\n if iszero(call(gas(), p, 0, add(m, 0x1c), 0x184, codesize(), 0x00)) {\n mstore(0x00, 0x6b836e6b) // `Permit2Failed()`.\n revert(0x1c, 0x04)\n }\n }\n }\n}\n"},"@solady/utils/SignatureCheckerLib.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.4;\n\n/// @notice Signature verification helper that supports both ECDSA signatures from EOAs\n/// and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\n/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)\n/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\n///\n/// @dev Note:\n/// - The signature checking functions use the ecrecover precompile (0x1).\n/// - The `bytes memory signature` variants use the identity precompile (0x4)\n/// to copy memory internally.\n/// - Unlike ECDSA signatures, contract signatures are revocable.\n/// - As of Solady version 0.0.134, all `bytes signature` variants accept both\n/// regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.\n/// See: https://eips.ethereum.org/EIPS/eip-2098\n/// This is for calldata efficiency on smart accounts prevalent on L2s.\n///\n/// WARNING! Do NOT use signatures as unique identifiers:\n/// - Use a nonce in the digest to prevent replay attacks on the same contract.\n/// - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.\n/// EIP-712 also enables readable signing of typed data for better user safety.\n/// This implementation does NOT check if a signature is non-malleable.\nlibrary SignatureCheckerLib {\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* SIGNATURE CHECKING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `signature` is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x40, mload(add(signature, 0x20))) // `r`.\n if eq(mload(signature), 64) {\n let vs := mload(add(signature, 0x40))\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n if eq(mload(signature), 65) {\n mstore(0x20, byte(0, mload(add(signature, 0x60)))) // `v`.\n mstore(0x60, mload(add(signature, 0x40))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n // Copy the `signature` over.\n let n := add(0x20, mload(signature))\n pop(staticcall(gas(), 4, signature, n, add(m, 0x44), n))\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(returndatasize(), 0x44), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n break\n }\n }\n }\n\n /// @dev Returns whether `signature` is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNowCalldata(address signer, bytes32 hash, bytes calldata signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n if eq(signature.length, 64) {\n let vs := calldataload(add(signature.offset, 0x20))\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x40, calldataload(signature.offset)) // `r`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n if eq(signature.length, 65) {\n mstore(0x20, byte(0, calldataload(add(signature.offset, 0x40)))) // `v`.\n calldatacopy(0x40, signature.offset, 0x40) // `r`, `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), signature.length)\n // Copy the `signature` over.\n calldatacopy(add(m, 0x64), signature.offset, signature.length)\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(signature.length, 0x64), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n break\n }\n }\n }\n\n /// @dev Returns whether the signature (`r`, `vs`) is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, bytes32 r, bytes32 vs)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x20, add(shr(255, vs), 27)) // `v`.\n mstore(0x40, r) // `r`.\n mstore(0x60, shr(1, shl(1, vs))) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), mload(0x60)) // `s`.\n mstore8(add(m, 0xa4), mload(0x20)) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n }\n\n /// @dev Returns whether the signature (`v`, `r`, `s`) is valid for `signer` and `hash`.\n /// If `signer` is a smart contract, the signature is validated with ERC1271.\n /// Otherwise, the signature is validated with `ECDSA.recover`.\n function isValidSignatureNow(address signer, bytes32 hash, uint8 v, bytes32 r, bytes32 s)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n // Clean the upper 96 bits of `signer` in case they are dirty.\n for { signer := shr(96, shl(96, signer)) } signer {} {\n let m := mload(0x40)\n mstore(0x00, hash)\n mstore(0x20, and(v, 0xff)) // `v`.\n mstore(0x40, r) // `r`.\n mstore(0x60, s) // `s`.\n let t :=\n staticcall(\n gas(), // Amount of gas left for the transaction.\n 1, // Address of `ecrecover`.\n 0x00, // Start of input.\n 0x80, // Size of input.\n 0x01, // Start of output.\n 0x20 // Size of output.\n )\n // `returndatasize()` will be `0x20` upon success, and `0x00` otherwise.\n if iszero(or(iszero(returndatasize()), xor(signer, mload(t)))) {\n isValid := 1\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), s) // `s`.\n mstore8(add(m, 0xa4), v) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n mstore(0x60, 0) // Restore the zero slot.\n mstore(0x40, m) // Restore the free memory pointer.\n break\n }\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* ERC1271 OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, bytes memory signature)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n // Copy the `signature` over.\n let n := add(0x20, mload(signature))\n pop(staticcall(gas(), 4, signature, n, add(m, 0x44), n))\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(returndatasize(), 0x44), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNowCalldata(\n address signer,\n bytes32 hash,\n bytes calldata signature\n ) internal view returns (bool isValid) {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), signature.length)\n // Copy the `signature` over.\n calldatacopy(add(m, 0x64), signature.offset, signature.length)\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n add(signature.length, 0x64), // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether the signature (`r`, `vs`) is valid for `hash`\n /// for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, bytes32 r, bytes32 vs)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), shr(1, shl(1, vs))) // `s`.\n mstore8(add(m, 0xa4), add(shr(255, vs), 27)) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /// @dev Returns whether the signature (`v`, `r`, `s`) is valid for `hash`\n /// for an ERC1271 `signer` contract.\n function isValidERC1271SignatureNow(address signer, bytes32 hash, uint8 v, bytes32 r, bytes32 s)\n internal\n view\n returns (bool isValid)\n {\n /// @solidity memory-safe-assembly\n assembly {\n let m := mload(0x40)\n let f := shl(224, 0x1626ba7e)\n mstore(m, f) // `bytes4(keccak256(\"isValidSignature(bytes32,bytes)\"))`.\n mstore(add(m, 0x04), hash)\n let d := add(m, 0x24)\n mstore(d, 0x40) // The offset of the `signature` in the calldata.\n mstore(add(m, 0x44), 65) // Length of the signature.\n mstore(add(m, 0x64), r) // `r`.\n mstore(add(m, 0x84), s) // `s`.\n mstore8(add(m, 0xa4), v) // `v`.\n // forgefmt: disable-next-item\n isValid := and(\n // Whether the returndata is the magic value `0x1626ba7e` (left-aligned).\n eq(mload(d), f),\n // Whether the staticcall does not revert.\n // This must be placed at the end of the `and` clause,\n // as the arguments are evaluated from right to left.\n staticcall(\n gas(), // Remaining gas.\n signer, // The `signer` address.\n m, // Offset of calldata in memory.\n 0xa5, // Length of calldata in memory.\n d, // Offset of returndata.\n 0x20 // Length of returndata to write.\n )\n )\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* HASHING OPERATIONS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns an Ethereum Signed Message, created from a `hash`.\n /// This produces a hash corresponding to the one signed with the\n /// [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n /// JSON-RPC method as part of EIP-191.\n function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x20, hash) // Store into scratch space for keccak256.\n mstore(0x00, \"\\x00\\x00\\x00\\x00\\x19Ethereum Signed Message:\\n32\") // 28 bytes.\n result := keccak256(0x04, 0x3c) // `32 * 2 - (32 - 28) = 60 = 0x3c`.\n }\n }\n\n /// @dev Returns an Ethereum Signed Message, created from `s`.\n /// This produces a hash corresponding to the one signed with the\n /// [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n /// JSON-RPC method as part of EIP-191.\n /// Note: Supports lengths of `s` up to 999999 bytes.\n function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32 result) {\n /// @solidity memory-safe-assembly\n assembly {\n let sLength := mload(s)\n let o := 0x20\n mstore(o, \"\\x19Ethereum Signed Message:\\n\") // 26 bytes, zero-right-padded.\n mstore(0x00, 0x00)\n // Convert the `s.length` to ASCII decimal representation: `base10(s.length)`.\n for { let temp := sLength } 1 {} {\n o := sub(o, 1)\n mstore8(o, add(48, mod(temp, 10)))\n temp := div(temp, 10)\n if iszero(temp) { break }\n }\n let n := sub(0x3a, o) // Header length: `26 + 32 - o`.\n // Throw an out-of-offset error (consumes all gas) if the header exceeds 32 bytes.\n returndatacopy(returndatasize(), returndatasize(), gt(n, 0x20))\n mstore(s, or(mload(0x00), mload(n))) // Temporarily store the header.\n result := keccak256(add(s, sub(0x20, n)), add(n, sLength))\n mstore(s, sLength) // Restore the length.\n }\n }\n\n /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/\n /* EMPTY CALLDATA HELPERS */\n /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/\n\n /// @dev Returns an empty calldata bytes.\n function emptySignature() internal pure returns (bytes calldata signature) {\n /// @solidity memory-safe-assembly\n assembly {\n signature.length := 0\n }\n }\n}\n"},"contracts/actions/AContractAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\n\nabstract contract AContractAction is Action {\n /// @notice Thrown when execution on a given chain is not supported\n error TargetChainUnsupported(uint256 targetChainId);\n\n /// @notice The target chain ID\n uint256 public chainId;\n\n /// @notice The target contract\n address public target;\n\n /// @notice The selector for the function to be called\n bytes4 public selector;\n\n /// @notice The native token value to send with the function call\n uint256 public value;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n function execute(bytes calldata data_) external payable virtual override returns (bool, bytes memory) {\n if (chainId != block.chainid) revert TargetChainUnsupported(chainId);\n (bool success, bytes memory returnData) = target.call{value: value}(_buildPayload(selector, data_));\n return (success, returnData);\n }\n\n function prepare(bytes calldata data_) public view virtual override returns (bytes memory bytes_) {\n return _buildPayload(selector, data_);\n }\n\n function _buildPayload(bytes4 selector_, bytes calldata calldata_) internal pure returns (bytes memory payload) {\n assembly {\n // Allocate space for the payload\n let size := add(4, calldata_.length)\n payload := mload(0x40)\n mstore(payload, size)\n mstore(0x40, add(payload, add(size, 0x20)))\n\n // Place the selector and calldata in the payload buffer\n mstore(add(payload, 0x20), selector_)\n calldatacopy(add(payload, 0x24), calldata_.offset, calldata_.length)\n }\n }\n\n /// @inheritdoc Action\n function getComponentInterface() public pure virtual override(Action) returns (bytes4) {\n return type(AContractAction).interfaceId;\n }\n\n /// @inheritdoc Action\n function supportsInterface(bytes4 interfaceId) public view virtual override(Action) returns (bool) {\n return interfaceId == type(AContractAction).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/actions/Action.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Boost Action\n/// @notice Abstract contract for a generic Action within the Boost protocol\n/// @dev Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Action is Cloneable {\n /// @notice Emitted when the action is executed by a proxy.\n /// @dev The `data` field should contain the return data from the action, if any.\n event ActionExecuted(address indexed executor, address caller, bool success, bytes data);\n\n /// @notice Emitted when the action is validated\n /// @dev The `data` field should contain implementation-specific context, if applicable.\n event ActionValidated(address indexed user, bool isValidated, bytes data);\n\n /// @notice The validator for the action (which may be the action itself where appropriate)\n Validator public immutable VALIDATOR;\n\n /// @notice Execute the action\n /// @param data_ The data payload for the action\n /// @return (success, data) A tuple of the success status and the returned data\n function execute(bytes calldata data_) external payable virtual returns (bool, bytes memory);\n\n /// @notice Prepare the action for execution and return the expected payload\n /// @param data_ The data payload for the action\n /// @return The prepared payload\n function prepare(bytes calldata data_) external virtual returns (bytes memory);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Action).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Cloneable) returns (bytes4) {\n return type(Action).interfaceId;\n }\n}\n"},"contracts/actions/AERC721MintAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {ContractAction} from \"contracts/actions/ContractAction.sol\";\nimport {AContractAction} from \"contracts/actions/AContractAction.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title ERC721 Mint Action\n/// @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n/// @dev The action is expected to be prepared with the data payload for the minting of the token\n/// @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n/// @dev It is expected that the target contract has an externally accessible mint function whose selector\nabstract contract AERC721MintAction is ContractAction, Validator {\n /// @notice The set of validated tokens\n /// @dev This is intended to prevent multiple validations against the same token ID\n mapping(uint256 => bool) public validated;\n\n /// @inheritdoc Cloneable\n function initialize(bytes calldata data_) public virtual override(Cloneable, ContractAction) {\n revert NotInitializing();\n }\n\n /// @notice Execute the action (not yet implemented)\n /// @param data_ The data payload for the call (not used in this implementation)\n /// @return success The success status of the call\n /// @return returnData The return data from the call\n function execute(bytes calldata data_) external payable override returns (bool success, bytes memory returnData) {\n (data_, success, returnData);\n revert BoostError.NotImplemented();\n }\n\n /// @notice Prepare the action for execution and return the expected payload\n /// @param data_ The ABI-encoded payload for the target contract call\n /// @return The encoded payload to be sent to the target contract\n /// @dev Note that the mint value is NOT included in the prepared payload but must be sent with the call\n function prepare(bytes calldata data_) public view override returns (bytes memory) {\n return super.prepare(data_);\n }\n\n /// @inheritdoc Validator\n /// @notice Validate that the action has been completed successfully\n /// @param data_ The data payload for the action `(address holder, (uint256 tokenId))`\n /// @return success True if the action has been validated for the user\n /// @dev The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)\n /// @dev Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`\n function validate(bytes calldata data_) external virtual override(Validator) returns (bool success) {\n (address holder, bytes memory payload) = abi.decode(data_, (address, bytes));\n uint256 tokenId = uint256(bytes32(payload));\n\n if (ERC721(target).ownerOf(tokenId) == holder && !validated[tokenId]) {\n validated[tokenId] = true;\n return true;\n } else {\n return false;\n }\n }\n\n /// @inheritdoc AContractAction\n function getComponentInterface() public pure virtual override(AContractAction, Validator) returns (bytes4) {\n return type(AERC721MintAction).interfaceId;\n }\n\n /// @inheritdoc AContractAction\n function supportsInterface(bytes4 interfaceId)\n public\n view\n virtual\n override(AContractAction, Validator)\n returns (bool)\n {\n return interfaceId == type(AERC721MintAction).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/actions/ContractAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {AContractAction} from \"contracts/actions/AContractAction.sol\";\n\ncontract ContractAction is AContractAction {\n /// @notice The payload for initializing a ContractAction\n /// @param target The target contract address\n /// @param selector The selector for the function to be called\n /// @param value The native token value to send with the function call\n struct InitPayload {\n uint256 chainId;\n address target;\n bytes4 selector;\n uint256 value;\n }\n\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @notice Initialize the contract with the owner and the required data\n function initialize(bytes calldata data_) public virtual override initializer {\n _initialize(abi.decode(data_, (InitPayload)));\n }\n\n function _initialize(InitPayload memory init_) internal virtual onlyInitializing {\n chainId = init_.chainId;\n target = init_.target;\n selector = init_.selector;\n value = init_.value;\n }\n}\n"},"contracts/actions/ERC721MintAction.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {AERC721MintAction} from \"contracts/actions/AERC721MintAction.sol\";\n\n/// @title ERC721 Mint Action\n/// @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n/// @dev The action is expected to be prepared with the data payload for the minting of the token\n/// @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n/// @dev It is expected that the target contract has an externally accessible mint function whose selector\ncontract ERC721MintAction is AERC721MintAction {\n /// @notice Construct the ERC721 Mint Action\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc Cloneable\n /// @notice Initialize the contract with the owner and the required mint data\n /// @param data_ The data payload for the mint action `(address target, bytes4 selector, uint256 value)`\n function initialize(bytes calldata data_) public virtual override initializer {\n _initialize(abi.decode(data_, (InitPayload)));\n }\n\n function _initialize(InitPayload memory init_) internal override onlyInitializing {\n super._initialize(init_);\n _initializeOwner(msg.sender);\n }\n}\n"},"contracts/allowlists/AllowList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost AllowList\n/// @notice Abstract contract for a generic Allow List within the Boost protocol\n/// @dev Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty.\nabstract contract AllowList is Ownable, Cloneable {\n /// @notice Constructor to initialize the owner\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Check if a user is authorized\n /// @param user_ The address of the user\n /// @param data_ The data payload for the authorization check, if applicable\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata data_) external view virtual returns (bool);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(AllowList).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Cloneable) returns (bytes4) {\n return type(AllowList).interfaceId;\n }\n}\n"},"contracts/allowlists/ASimpleAllowList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {OwnableRoles} from \"@solady/auth/OwnableRoles.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\n\n/// @title Simple AllowList\n/// @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\nabstract contract ASimpleAllowList is AllowList, OwnableRoles {\n /// @notice The role for managing the allow list\n uint256 public constant LIST_MANAGER_ROLE = 1 << 1;\n\n /// @dev An internal mapping of allowed statuses\n mapping(address => bool) internal _allowed;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @notice Check if a user is authorized\n /// @param user_ The address of the user\n /// @param - The data payload for the authorization check, not used in this implementation\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata /* data_ - unused */ ) external view override returns (bool) {\n return _allowed[user_];\n }\n\n /// @notice Set the allowed status of a user\n /// @param users_ The list of users to update\n /// @param allowed_ The allowed status of each user\n /// @dev The length of the `users_` and `allowed_` arrays must be the same\n /// @dev This function can only be called by the owner\n function setAllowed(address[] calldata users_, bool[] calldata allowed_) external onlyRoles(LIST_MANAGER_ROLE) {\n if (users_.length != allowed_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < users_.length; i++) {\n _allowed[users_[i]] = allowed_[i];\n }\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(AllowList) returns (bytes4) {\n return type(ASimpleAllowList).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(AllowList) returns (bool) {\n return interfaceId == type(ASimpleAllowList).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/allowlists/ASimpleDenyList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\n\n/// @title SimpleDenyList\n/// @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\nabstract contract ASimpleDenyList is AllowList {\n /// @dev An internal mapping of denied statuses\n mapping(address => bool) internal _denied;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @notice Check if a user is authorized (i.e. not denied)\n /// @param user_ The address of the user\n /// @param - The data payload for the authorization check, not used in this implementation\n /// @return True if the user is authorized\n function isAllowed(address user_, bytes calldata /* data_ - unused */ ) external view override returns (bool) {\n return !_denied[user_];\n }\n\n /// @notice Set the denied status of a user\n /// @param users_ The list of users to update\n /// @param denied_ The denied status of each user\n /// @dev The length of the `users_` and `denied_` arrays must be the same\n /// @dev This function can only be called by the owner\n function setDenied(address[] calldata users_, bool[] calldata denied_) external onlyOwner {\n if (users_.length != denied_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < users_.length; i++) {\n _denied[users_[i]] = denied_[i];\n }\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(AllowList) returns (bytes4) {\n return type(ASimpleDenyList).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(AllowList) returns (bool) {\n return interfaceId == type(ASimpleDenyList).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/allowlists/SimpleAllowList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {OwnableRoles} from \"@solady/auth/OwnableRoles.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {ASimpleAllowList} from \"contracts/allowlists/ASimpleAllowList.sol\";\n\n/// @title Simple AllowList\n/// @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\ncontract SimpleAllowList is ASimpleAllowList {\n /// @notice Construct a new SimpleAllowList\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the list of allowed addresses\n /// @param data_ The compressed initialization data `(address owner, address[] allowList)`\n function initialize(bytes calldata data_) public virtual override initializer {\n (address owner_, address[] memory allowList_) = abi.decode(data_, (address, address[]));\n _initializeOwner(owner_);\n _grantRoles(owner_, LIST_MANAGER_ROLE);\n for (uint256 i = 0; i < allowList_.length; i++) {\n _allowed[allowList_[i]] = true;\n }\n }\n}\n"},"contracts/allowlists/SimpleDenyList.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ASimpleDenyList} from \"contracts/allowlists/ASimpleDenyList.sol\";\n\n/// @title SimpleDenyList\n/// @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\ncontract SimpleDenyList is ASimpleDenyList {\n /// @notice Construct a new SimpleDenyList\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the initial list of denied addresses\n /// @param data_ The compressed initialization data `(address owner, address[] denyList)`\n function initialize(bytes calldata data_) public virtual override initializer {\n (address owner_, address[] memory denyList_) = abi.decode(data_, (address, address[]));\n\n _initializeOwner(owner_);\n for (uint256 i = 0; i < denyList_.length; i++) {\n _denied[denyList_[i]] = true;\n }\n }\n}\n"},"contracts/BoostCore.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {LibZip} from \"@solady/utils/LibZip.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {BoostLib} from \"contracts/shared/BoostLib.sol\";\nimport {BoostRegistry} from \"contracts/BoostRegistry.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Boost Core\n/// @notice The core contract for the Boost protocol\n/// @dev This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA\ncontract BoostCore is Ownable, ReentrancyGuard {\n using LibClone for address;\n using LibZip for bytes;\n using SafeTransferLib for address;\n\n struct InitPayload {\n Budget budget;\n BoostLib.Target action;\n BoostLib.Target validator;\n BoostLib.Target allowList;\n BoostLib.Target[] incentives;\n uint64 protocolFee;\n uint64 referralFee;\n uint256 maxParticipants;\n address owner;\n }\n\n event BoostCreated(\n uint256 indexed boostIndex,\n address indexed owner,\n address indexed action,\n address validator,\n address allowList,\n address budget\n );\n\n /// @notice The list of boosts\n BoostLib.Boost[] private _boosts;\n\n /// @notice The BoostRegistry contract\n BoostRegistry public registry;\n\n /// @notice The protocol fee receiver\n address public protocolFeeReceiver;\n\n /// @notice The claim fee (in wei)\n uint256 public claimFee = 0.000075 ether;\n\n /// @notice The base protocol fee (in bps)\n uint64 public protocolFee = 1_000; // 10%\n\n /// @notice The base referral fee (in bps)\n uint64 public referralFee = 1_000; // 10%\n\n /// @notice The fee denominator (basis points, i.e. 10000 == 100%)\n uint64 public constant FEE_DENOMINATOR = 10_000;\n\n /// @notice Constructor to initialize the owner\n constructor(BoostRegistry registry_, address protocolFeeReceiver_) {\n _initializeOwner(msg.sender);\n registry = registry_;\n protocolFeeReceiver = protocolFeeReceiver_;\n }\n\n /// @notice Create a new Boost\n /// @param data_ The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\n /// @dev The data is expected to:\n /// - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol)\n /// - properly decode to the following types (in order):\n /// - `Budget` to be used for the Boost\n /// - `Target` for the action\n /// - `Target` for the validator which is expected to be one of the following:\n /// - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\"SignerValidator\")`), along with the parameters for its initializer;\n /// - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size);\n /// - The zero address along with no parameter data if validation is implemented by the action;\n /// - `Target` for the allowList\n /// - `Target[]` for the incentives\n /// - `uint256` for the protocolFee (added to the base protocol fee)\n /// - `uint256` for the referralFee (added to the base referral fee)\n /// - `uint256` for the maxParticipants\n /// - `address` for the owner of the Boost\n function createBoost(bytes calldata data_) external onlyOwner nonReentrant returns (BoostLib.Boost memory) {\n InitPayload memory payload_ = abi.decode(data_.cdDecompress(), (InitPayload));\n\n // Validate the Budget\n _checkBudget(payload_.budget);\n\n // Initialize the Boost\n BoostLib.Boost storage boost = _boosts.push();\n boost.owner = payload_.owner;\n boost.budget = payload_.budget;\n boost.protocolFee = protocolFee + payload_.protocolFee;\n boost.referralFee = referralFee + payload_.referralFee;\n boost.maxParticipants = payload_.maxParticipants;\n\n // Setup the Boost components\n boost.action = Action(_makeTarget(type(Action).interfaceId, payload_.action, true));\n boost.allowList = AllowList(_makeTarget(type(AllowList).interfaceId, payload_.allowList, true));\n boost.incentives = _makeIncentives(payload_.incentives, payload_.budget);\n boost.validator = Validator(\n payload_.validator.instance == address(0)\n ? boost.action.supportsInterface(type(Validator).interfaceId) ? address(boost.action) : address(0)\n : _makeTarget(type(Validator).interfaceId, payload_.validator, true)\n );\n emit BoostCreated(\n _boosts.length - 1,\n boost.owner,\n address(boost.action),\n address(boost.validator),\n address(boost.allowList),\n address(boost.budget)\n );\n return boost;\n }\n\n /// @notice Claim an incentive for a Boost\n /// @param boostId_ The ID of the Boost\n /// @param incentiveId_ The ID of the Incentive\n /// @param referrer_ The address of the referrer (if any)\n /// @param data_ The data for the claim\n function claimIncentive(uint256 boostId_, uint256 incentiveId_, address referrer_, bytes calldata data_)\n external\n payable\n nonReentrant\n {\n BoostLib.Boost storage boost = _boosts[boostId_];\n if (msg.value < claimFee) revert BoostError.InsufficientFunds(address(0), msg.value, claimFee);\n _routeClaimFee(boost, referrer_);\n\n // wake-disable-next-line reentrancy (false positive, function is nonReentrant)\n if (!boost.validator.validate(data_)) revert BoostError.Unauthorized();\n if (\n !boost.incentives[incentiveId_].claim(abi.encode(Incentive.ClaimPayload({target: msg.sender, data: data_})))\n ) revert BoostError.ClaimFailed(msg.sender, data_);\n }\n\n /// @notice Get a Boost by index\n /// @param index The index of the Boost\n /// @return The Boost at the specified index\n function getBoost(uint256 index) external view returns (BoostLib.Boost memory) {\n return _boosts[index];\n }\n\n /// @notice Get the number of Boosts\n /// @return The number of Boosts\n function getBoostCount() external view returns (uint256) {\n return _boosts.length;\n }\n\n /// @notice Set the protocol fee receiver address\n /// @param protocolFeeReceiver_ The new protocol fee receiver address\n /// @dev This function is only callable by the owner\n function setProtocolFeeReceiver(address protocolFeeReceiver_) external onlyOwner {\n protocolFeeReceiver = protocolFeeReceiver_;\n }\n\n /// @notice Set the claim fee\n /// @param claimFee_ The new claim fee (in wei)\n /// @dev This function is only callable by the owner\n function setClaimFee(uint256 claimFee_) external onlyOwner {\n claimFee = claimFee_;\n }\n\n /// @notice Check that the provided Budget is valid and that the caller is authorized to use it\n /// @param budget_ The Budget to check\n /// @dev This function will revert if the Budget is invalid or the caller is unauthorized\n function _checkBudget(Budget budget_) internal view {\n _checkTarget(type(Budget).interfaceId, address(budget_));\n if (!budget_.isAuthorized(msg.sender)) revert BoostError.Unauthorized();\n }\n\n /// @notice Check that the provided Target is valid for the specified interface\n /// @param interfaceId The interface ID for the target\n /// @param instance The instance to check\n /// @dev This function will revert if the Target does not implement the expected interface\n /// @dev This check costs ~376 gas, which is worth it to validate the target\n function _checkTarget(bytes4 interfaceId, address instance) internal view {\n if (instance == address(0) || !Cloneable(instance).supportsInterface(interfaceId)) {\n revert BoostError.InvalidInstance(interfaceId, instance);\n }\n }\n\n /// @notice Create a target instance and optionally initialize it\n /// @param interfaceId The interface ID for the target\n /// @param target The target to create\n /// @param shouldInitialize Whether or not to initialize the target\n /// @return instance The target instance\n /// @dev This function will revert if the target does not implement the expected interface\n function _makeTarget(bytes4 interfaceId, BoostLib.Target memory target, bool shouldInitialize)\n internal\n returns (address instance)\n {\n _checkTarget(interfaceId, target.instance);\n instance = _maybeClone(target, shouldInitialize);\n }\n\n /// @notice Configure a set of incentives for a Boost using the given Budget\n /// @param targets_ The set of incentives {Target[]}\n /// @param budget_ The Budget from which to allocate the incentives\n /// @return incentives The set of initialized incentives {Incentive[]}\n function _makeIncentives(BoostLib.Target[] memory targets_, Budget budget_)\n internal\n returns (Incentive[] memory incentives)\n {\n incentives = new Incentive[](targets_.length);\n for (uint256 i = 0; i < targets_.length; i++) {\n // Deploy the clone, but don't initialize until it we've preflighted\n _checkTarget(type(Incentive).interfaceId, targets_[i].instance);\n\n // Ensure the target is a base implementation (incentive clones are not reusable)\n if (!targets_[i].isBase) {\n revert BoostError.InvalidInstance(type(Incentive).interfaceId, targets_[i].instance);\n }\n\n incentives[i] = Incentive(_makeTarget(type(Incentive).interfaceId, targets_[i], false));\n\n bytes memory preflight = incentives[i].preflight(targets_[i].parameters);\n if (preflight.length != 0) {\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n assert(budget_.disburse(preflight));\n }\n\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n incentives[i].initialize(targets_[i].parameters);\n }\n }\n\n /// @notice Get the target instance, optionally cloning and initializing from a base implementation\n function _maybeClone(BoostLib.Target memory target_, bool shouldInitialize_) internal returns (address instance) {\n instance = target_.isBase ? target_.instance.clone() : target_.instance;\n if (target_.isBase && shouldInitialize_) {\n // wake-disable-next-line reentrancy (false positive, entrypoint is nonReentrant)\n Cloneable(instance).initialize(target_.parameters);\n }\n }\n\n /// @notice Route the claim fee to the creator, referrer, and protocol fee receiver\n /// @param boost The Boost for which to route the claim fee\n /// @param referrer_ The address of the referrer (if any)\n function _routeClaimFee(BoostLib.Boost storage boost, address referrer_) internal {\n if (claimFee == 0) return;\n uint256 netFee = claimFee;\n\n // If a referrer is provided, transfer the revshare and reduce the net fee\n if (referrer_ != address(0)) {\n uint256 referralShare = claimFee * boost.referralFee / FEE_DENOMINATOR;\n netFee -= referralShare;\n referrer_.safeTransferETH(referralShare);\n }\n\n // The remaining fee is split between the owner and the protocol\n boost.owner.safeTransferETH(netFee / 2);\n protocolFeeReceiver.safeTransferETH(address(this).balance);\n }\n}\n"},"contracts/BoostRegistry.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {BoostLib} from \"contracts/shared/BoostLib.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\n\n/// @title Boost Registry\n/// @notice A registry for base implementations and cloned instances\n/// @dev This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol\ncontract BoostRegistry is ERC165, ReentrancyGuard {\n using BoostLib for address;\n\n /// @notice The types of bases that can be registered\n enum RegistryType {\n ACTION,\n ALLOW_LIST,\n BUDGET,\n INCENTIVE,\n VALIDATOR\n }\n\n /// @notice The data structure for a deployed clone\n /// @param baseType The type of base implementation\n /// @param name The display name for the clone\n /// @param instance The address of the clone\n /// @param deployer The address of the deployer\n struct Clone {\n RegistryType baseType;\n Cloneable instance;\n address deployer;\n string name;\n }\n\n /// @notice Emitted when a new base implementation is registered\n event Registered(RegistryType indexed registryType, bytes32 indexed identifier, address implementation);\n\n /// @notice Emitted when a new instance of a base implementation is deployed\n event Deployed(\n RegistryType indexed registryType,\n bytes32 indexed identifier,\n address baseImplementation,\n Cloneable deployedInstance\n );\n\n /// @notice Thrown when a base implementation is already registered\n error AlreadyRegistered(RegistryType registryType, bytes32 identifier);\n\n /// @notice Thrown when no match is found for the given identifier\n error NotRegistered(bytes32 identifier);\n\n /// @notice Thrown when the implementation is not a valid {Cloneable} base\n error NotCloneable(address implementation);\n\n /// @notice The registry of base implementations\n mapping(bytes32 => Cloneable) private _bases;\n\n /// @notice The registry of deployed clones\n mapping(bytes32 => Clone) private _clones;\n\n /// @notice The registry of clones created by a given deployer\n mapping(address => bytes32[]) private _deployedClones;\n\n /// @notice A modifier to ensure the given address holds a valid {Cloneable} base\n /// @param implementation_ The address of the implementation to check\n modifier onlyCloneables(address implementation_) {\n if (!Cloneable(implementation_).supportsInterface(type(Cloneable).interfaceId)) {\n revert NotCloneable(implementation_);\n }\n _;\n }\n\n /// @notice Register a new base implementation of a given type\n /// @param type_ The base type for the implementation\n /// @param name_ A name for the implementation (must be unique within the given type)\n /// @param implementation_ The address of the implementation contract\n /// @dev This function will either emit a `Registered` event or revert if the identifier has already been registered\n /// @dev The given address must implement the given type interface (See {ERC165-supportsInterface})\n function register(RegistryType type_, string calldata name_, address implementation_)\n external\n onlyCloneables(implementation_)\n {\n bytes32 identifier = getIdentifier(type_, name_);\n\n if (address(_bases[identifier]) != address(0)) revert AlreadyRegistered(type_, identifier);\n _bases[identifier] = Cloneable(implementation_);\n\n emit Registered(type_, identifier, implementation_);\n }\n\n /// @notice Deploy a new instance of a registered base implementation\n /// @param type_ The type of base implementation to be cloned\n /// @param base_ The address of the base implementation to clone\n /// @param name_ The display name for the clone\n /// @param data_ The data payload for the cloned instance's initializer\n /// @return instance The address of the deployed instance\n /// @dev This function will either emit a `Deployed` event and return the clone or revert\n function deployClone(RegistryType type_, address base_, string calldata name_, bytes calldata data_)\n external\n nonReentrant\n returns (Cloneable instance)\n {\n // Deploy and initialize the clone\n instance =\n Cloneable(base_.cloneAndInitialize(keccak256(abi.encodePacked(type_, base_, name_, msg.sender)), data_));\n\n // Ensure the clone's identifier is unique\n bytes32 identifier = getCloneIdentifier(type_, base_, msg.sender, name_);\n if (address(_clones[identifier].instance) != address(0)) revert AlreadyRegistered(type_, identifier);\n\n // Register and report the newly deployed clone\n _deployedClones[msg.sender].push(identifier);\n _clones[identifier] = Clone({baseType: type_, instance: instance, deployer: msg.sender, name: name_});\n\n emit Deployed(type_, identifier, base_, instance);\n }\n\n /// @notice Get the address of a registered base implementation\n /// @param identifier_ The unique identifier for the implementation (see {getIdentifier})\n /// @return implementation The address of the implementation\n /// @dev This function will revert if the implementation is not registered\n function getBaseImplementation(bytes32 identifier_) public view returns (Cloneable implementation) {\n implementation = _bases[identifier_];\n if (address(implementation) == address(0)) revert NotRegistered(identifier_);\n }\n\n /// @notice Get the address of a deployed clone by its identifier\n /// @param identifier_ The unique identifier for the deployed clone (see {getCloneIdentifier})\n /// @return clone The address of the deployed clone\n function getClone(bytes32 identifier_) external view returns (Clone memory clone) {\n clone = _clones[identifier_];\n if (address(clone.instance) == address(0)) revert NotRegistered(identifier_);\n }\n\n /// @notice Get the list of identifiers of deployed clones for a given deployer\n /// @param deployer_ The address of the deployer\n /// @return clones The list of deployed clones for the given deployer\n /// @dev WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic.\n function getClones(address deployer_) external view returns (bytes32[] memory) {\n return _deployedClones[deployer_];\n }\n\n /// @notice Build the identifier for a clone of a base implementation\n /// @param type_ The base type for the implementation\n /// @param base_ The address of the base implementation\n /// @param deployer_ The address of the deployer\n /// @param name_ The display name of the clone\n /// @return identifier The unique identifier for the clone\n function getCloneIdentifier(RegistryType type_, address base_, address deployer_, string calldata name_)\n public\n pure\n returns (bytes32 identifier)\n {\n return _getIdentifier(type_, keccak256(abi.encodePacked(base_, deployer_, name_)));\n }\n\n /// @notice Build the identifier for a base implementation\n /// @param type_ The base type for the implementation\n /// @param name_ The name of the implementation\n /// @return identifier The unique identifier for the implementation\n function getIdentifier(RegistryType type_, string calldata name_) public pure returns (bytes32 identifier) {\n return _getIdentifier(type_, keccak256(abi.encodePacked(name_)));\n }\n\n /// @notice Build a unique identifier for a given type and hash\n /// @param type_ The base type for the implementation\n /// @param hash_ The unique hash for the implementation\n /// @return identifier The unique identifier for the implementation\n function _getIdentifier(RegistryType type_, bytes32 hash_) internal pure returns (bytes32 identifier) {\n return keccak256(abi.encodePacked(type_, hash_));\n }\n}\n"},"contracts/budgets/ASimpleBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Abstract Simple Budget\n/// @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n/// @dev This type of budget supports ETH, ERC20, and ERC1155 assets only\nabstract contract ASimpleBudget is Budget, IERC1155Receiver, ReentrancyGuard {\n using SafeTransferLib for address;\n\n /// @dev The total amount of each fungible asset distributed from the budget\n mapping(address => uint256) private _distributedFungible;\n\n /// @dev The total amount of each ERC1155 asset and token ID distributed from the budget\n mapping(address => mapping(uint256 => uint256)) private _distributedERC1155;\n\n /// @dev The mapping of authorized addresses\n mapping(address => bool) internal _isAuthorized;\n\n /// @notice A modifier that allows only authorized addresses to call the function\n modifier onlyAuthorized() {\n if (!isAuthorized(msg.sender)) revert Unauthorized();\n _;\n }\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @inheritdoc Budget\n /// @notice Allocates assets to the budget\n /// @param data_ The packed data for the {Transfer} request\n /// @return True if the allocation was successful\n /// @dev The caller must have already approved the contract to transfer the asset\n /// @dev If the asset transfer fails, the allocation will revert\n function allocate(bytes calldata data_) external payable virtual override returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Ensure the value received is equal to the `payload.amount`\n if (msg.value != payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Transfer `payload.amount` of the token to this contract\n request.asset.safeTransferFrom(request.target, address(this), payload.amount);\n if (request.asset.balanceOf(address(this)) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n\n // Transfer `payload.amount` of `payload.tokenId` to this contract\n IERC1155(request.asset).safeTransferFrom(\n request.target, address(this), payload.tokenId, payload.amount, payload.data\n );\n if (IERC1155(request.asset).balanceOf(address(this), payload.tokenId) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else {\n // Unsupported asset type\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Reclaims assets from the budget\n /// @param data_ The packed {Transfer} request\n /// @return True if the request was successful\n /// @dev Only the owner can directly reclaim assets from the budget\n /// @dev If the amount is zero, the entire balance of the asset will be transferred to the receiver\n /// @dev If the asset transfer fails, the reclamation will revert\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH || request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(\n request.asset, request.target, payload.amount == 0 ? available(request.asset) : payload.amount\n );\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n _transferERC1155(\n request.asset,\n request.target,\n payload.tokenId,\n payload.amount == 0 ? IERC1155(request.asset).balanceOf(address(this), payload.tokenId) : payload.amount,\n payload.data\n );\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to a single recipient\n /// @param data_ The packed {Transfer} request\n /// @return True if the disbursement was successful\n /// @dev If the asset transfer fails, the disbursement will revert\n function disburse(bytes calldata data_) public virtual override onlyAuthorized returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ERC20 || request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n uint256 avail = available(request.asset);\n if (payload.amount > avail) {\n revert InsufficientFunds(request.asset, avail, payload.amount);\n }\n\n _transferFungible(request.asset, request.target, payload.amount);\n } else if (request.assetType == AssetType.ERC1155) {\n ERC1155Payload memory payload = abi.decode(request.data, (ERC1155Payload));\n\n uint256 avail = IERC1155(request.asset).balanceOf(address(this), payload.tokenId);\n if (payload.amount > avail) {\n revert InsufficientFunds(request.asset, avail, payload.amount);\n }\n\n _transferERC1155(request.asset, request.target, payload.tokenId, payload.amount, payload.data);\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to multiple recipients\n /// @param data_ The packed array of {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual override returns (bool) {\n for (uint256 i = 0; i < data_.length; i++) {\n if (!disburse(data_[i])) return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n function setAuthorized(address[] calldata account_, bool[] calldata authorized_)\n external\n virtual\n override\n onlyOwner\n {\n if (account_.length != authorized_.length) revert BoostError.LengthMismatch();\n for (uint256 i = 0; i < account_.length; i++) {\n _isAuthorized[account_[i]] = authorized_[i];\n }\n }\n\n /// @inheritdoc Budget\n function isAuthorized(address account_) public view virtual override returns (bool) {\n return _isAuthorized[account_] || account_ == owner();\n }\n\n /// @inheritdoc Budget\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n /// @dev This is simply the sum of the current balance and the distributed amount\n function total(address asset_) external view virtual override returns (uint256) {\n return available(asset_) + _distributedFungible[asset_];\n }\n\n /// @notice Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The total amount of assets\n function total(address asset_, uint256 tokenId_) external view virtual returns (uint256) {\n return IERC1155(asset_).balanceOf(address(this), tokenId_) + _distributedERC1155[asset_][tokenId_];\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets available for distribution from the budget\n /// @param asset_ The address of the asset (or the zero address for native assets)\n /// @return The amount of assets available\n /// @dev This is simply the current balance held by the budget\n /// @dev If the zero address is passed, this function will return the native balance\n function available(address asset_) public view virtual override returns (uint256) {\n return asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n }\n\n /// @notice Get the amount of ERC1155 assets available for distribution from the budget\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The amount of assets available\n function available(address asset_, uint256 tokenId_) public view virtual returns (uint256) {\n return IERC1155(asset_).balanceOf(address(this), tokenId_);\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual override returns (uint256) {\n return _distributedFungible[asset_];\n }\n\n /// @notice Get the amount of ERC1155 assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @param tokenId_ The ID of the token\n /// @return The amount of assets distributed\n function distributed(address asset_, uint256 tokenId_) external view virtual returns (uint256) {\n return _distributedERC1155[asset_][tokenId_];\n }\n\n /// @inheritdoc Budget\n /// @dev This is a no-op as there is no local balance to reconcile\n function reconcile(bytes calldata) external virtual override returns (uint256) {\n return 0;\n }\n\n /// @notice Transfer assets to the recipient\n /// @param asset_ The address of the asset\n /// @param to_ The address of the recipient\n /// @param amount_ The amount of the asset to transfer\n /// @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n /// @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert\n function _transferFungible(address asset_, address to_, uint256 amount_) internal virtual nonReentrant {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_)) {\n revert InsufficientFunds(asset_, available(asset_), amount_);\n }\n\n _distributedFungible[asset_] += amount_;\n\n // Transfer the asset to the recipient\n if (asset_ == address(0)) {\n SafeTransferLib.safeTransferETH(to_, amount_);\n } else {\n asset_.safeTransfer(to_, amount_);\n }\n\n emit Distributed(asset_, to_, amount_);\n }\n\n function _transferERC1155(address asset_, address to_, uint256 tokenId_, uint256 amount_, bytes memory data_)\n internal\n virtual\n nonReentrant\n {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_, tokenId_)) {\n revert InsufficientFunds(asset_, available(asset_, tokenId_), amount_);\n }\n\n _distributedERC1155[asset_][tokenId_] += amount_;\n\n // Transfer the asset to the recipient\n // wake-disable-next-line reentrancy (`nonReentrant` modifier is applied to the function)\n IERC1155(asset_).safeTransferFrom(address(this), to_, tokenId_, amount_, data_);\n\n emit Distributed(asset_, to_, amount_);\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\n function onERC1155Received(address, address, uint256, uint256, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n // We don't need to do anything here\n return IERC1155Receiver.onERC1155Received.selector;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\n function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n // We don't need to do anything here\n return IERC1155Receiver.onERC1155BatchReceived.selector;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Budget, IERC165) returns (bool) {\n return interfaceId == type(ASimpleBudget).interfaceId || interfaceId == type(IERC1155Receiver).interfaceId\n || interfaceId == type(IERC165).interfaceId || Budget.supportsInterface(interfaceId);\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override returns (bytes4) {\n return type(ASimpleBudget).interfaceId;\n }\n}\n"},"contracts/budgets/AVestingBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Vesting Budget\n/// @notice A vesting-based budget implementation that allows for the distribution of assets over time\n/// @dev Take note of the following when making use of this budget type:\n/// - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n/// - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n/// - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n/// - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\nabstract contract AVestingBudget is Budget, ReentrancyGuard {\n using SafeTransferLib for address;\n\n /// @dev The total amount of each fungible asset distributed from the budget\n mapping(address => uint256) private _distributedFungible;\n\n /// @dev The mapping of authorized addresses\n mapping(address => bool) internal _isAuthorized;\n\n /// @notice The timestamp at which the vesting schedule begins\n uint64 public start;\n\n /// @notice The duration of the vesting schedule (in seconds)\n uint64 public duration;\n\n /// @notice The duration of the cliff period (in seconds)\n uint64 public cliff;\n\n /// @notice A modifier that allows only authorized addresses to call the function\n modifier onlyAuthorized() {\n if (!isAuthorized(msg.sender)) revert Unauthorized();\n _;\n }\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @inheritdoc Budget\n /// @notice Allocates assets to the budget\n /// @param data_ The packed data for the {Transfer} request\n /// @return True if the allocation was successful\n /// @dev The caller must have already approved the contract to transfer the asset\n /// @dev If the asset transfer fails, the allocation will revert\n function allocate(bytes calldata data_) external payable virtual override returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Ensure the value received is equal to the `payload.amount`\n if (msg.value != payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else if (request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n\n // Transfer `payload.amount` of the token to this contract\n request.asset.safeTransferFrom(request.target, address(this), payload.amount);\n if (request.asset.balanceOf(address(this)) < payload.amount) {\n revert InvalidAllocation(request.asset, payload.amount);\n }\n } else {\n // Unsupported asset type\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Reclaims assets from the budget\n /// @param data_ The packed {Transfer} request\n /// @return True if the request was successful\n /// @dev Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting schedule\n /// @dev If the amount is zero, the entire available balance of the asset will be transferred to the receiver\n /// @dev If the asset transfer fails for any reason, the function will revert\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ETH || request.assetType == AssetType.ERC20) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(\n request.asset, request.target, payload.amount == 0 ? available(request.asset) : payload.amount\n );\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to a single recipient\n /// @param data_ The packed {Transfer} request\n /// @return True if the disbursement was successful\n /// @dev The maximum amount that can be disbursed is the {available} amount\n function disburse(bytes calldata data_) public virtual override onlyAuthorized returns (bool) {\n Transfer memory request = abi.decode(data_, (Transfer));\n if (request.assetType == AssetType.ERC20 || request.assetType == AssetType.ETH) {\n FungiblePayload memory payload = abi.decode(request.data, (FungiblePayload));\n _transferFungible(request.asset, request.target, payload.amount);\n } else {\n return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n /// @notice Disburses assets from the budget to multiple recipients\n /// @param data_ The packed array of {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual override returns (bool) {\n for (uint256 i = 0; i < data_.length; i++) {\n if (!disburse(data_[i])) return false;\n }\n\n return true;\n }\n\n /// @inheritdoc Budget\n function setAuthorized(address[] calldata account_, bool[] calldata authorized_)\n external\n virtual\n override\n onlyOwner\n {\n if (account_.length != authorized_.length) revert BoostError.LengthMismatch();\n for (uint256 i = 0; i < account_.length; i++) {\n _isAuthorized[account_[i]] = authorized_[i];\n }\n }\n\n /// @inheritdoc Budget\n function isAuthorized(address account_) public view virtual override returns (bool) {\n return _isAuthorized[account_] || account_ == owner();\n }\n\n /// @notice Get the end time of the vesting schedule\n /// @return The end time of the vesting schedule\n function end() external view virtual returns (uint256) {\n return start + duration;\n }\n\n /// @inheritdoc Budget\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n /// @dev This is equal to the sum of the total current balance and the total distributed amount\n function total(address asset_) external view virtual override returns (uint256) {\n uint256 balance = asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n return _distributedFungible[asset_] + balance;\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets available for distribution from the budget as of the current block timestamp\n /// @param asset_ The address of the asset (or the zero address for native assets)\n /// @return The amount of assets currently available for distribution\n /// @dev This is equal to the total vested amount minus any already distributed\n function available(address asset_) public view virtual override returns (uint256) {\n return _vestedAllocation(asset_, uint64(block.timestamp)) - _distributedFungible[asset_];\n }\n\n /// @inheritdoc Budget\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual override returns (uint256) {\n return _distributedFungible[asset_];\n }\n\n /// @inheritdoc Budget\n /// @dev This is a no-op as there is no local balance to reconcile\n function reconcile(bytes calldata) external virtual override returns (uint256) {\n return 0;\n }\n\n /// @notice Transfer assets to the recipient\n /// @param asset_ The address of the asset\n /// @param to_ The address of the recipient\n /// @param amount_ The amount of the asset to transfer\n /// @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n /// @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert\n function _transferFungible(address asset_, address to_, uint256 amount_) internal virtual nonReentrant {\n // Increment the total amount of the asset distributed from the budget\n if (to_ == address(0)) revert TransferFailed(asset_, to_, amount_);\n if (amount_ > available(asset_)) {\n revert InsufficientFunds(asset_, available(asset_), amount_);\n }\n\n _distributedFungible[asset_] += amount_;\n\n // Transfer the asset to the recipient\n if (asset_ == address(0)) {\n SafeTransferLib.safeTransferETH(to_, amount_);\n } else {\n asset_.safeTransfer(to_, amount_);\n }\n\n emit Distributed(asset_, to_, amount_);\n }\n\n /// @notice Calculate the portion of allocated assets vested at a given timestamp\n /// @param asset_ The address of the asset\n /// @param timestamp_ The timestamp used to calculate the vested amount\n /// @return The amount of assets vested at that point in time\n function _vestedAllocation(address asset_, uint64 timestamp_) internal view virtual returns (uint256) {\n uint256 balance = asset_ == address(0) ? address(this).balance : asset_.balanceOf(address(this));\n return _linearVestedAmount(balance + _distributedFungible[asset_], timestamp_);\n }\n\n /// @notice Calculate the amount of assets vested at a given timestamp using a linear vesting schedule\n /// @param totalAllocation The total amount of the asset allocated to the budget (including prior distributions)\n /// @param timestamp The timestamp used to calculate the vested amount\n /// @return The amount of assets vested at that point in time\n function _linearVestedAmount(uint256 totalAllocation, uint64 timestamp) internal view virtual returns (uint256) {\n if (timestamp < start + cliff) {\n return 0;\n } else if (timestamp >= start + duration) {\n return totalAllocation;\n } else {\n return totalAllocation * (timestamp - start) / duration;\n }\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(AVestingBudget).interfaceId || Budget.supportsInterface(interfaceId);\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override returns (bytes4) {\n return type(AVestingBudget).interfaceId;\n }\n}\n"},"contracts/budgets/Budget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {Receiver} from \"@solady/accounts/Receiver.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Budget\n/// @notice Abstract contract for a generic Budget within the Boost protocol\n/// @dev Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.\n/// @dev WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future.\nabstract contract Budget is Ownable, Cloneable, Receiver {\n using SafeTransferLib for address;\n\n enum AssetType {\n ETH,\n ERC20,\n ERC1155\n }\n\n /// @notice A struct representing the inputs for an allocation\n /// @param assetType The type of asset to allocate\n /// @param asset The address of the asset to allocate\n /// @param target The address of the payee or payer (from or to, depending on the operation)\n /// @param data The implementation-specific data for the allocation (amount, token ID, etc.)\n struct Transfer {\n AssetType assetType;\n address asset;\n address target;\n bytes data;\n }\n\n /// @notice The payload for an ETH or ERC20 transfer\n /// @param amount The amount of the asset to transfer\n struct FungiblePayload {\n uint256 amount;\n }\n\n /// @notice The payload for an ERC1155 transfer\n /// @param tokenId The ID of the token to transfer\n /// @param amount The amount of the token to transfer\n /// @param data Any additional data to forward to the ERC1155 contract\n struct ERC1155Payload {\n uint256 tokenId;\n uint256 amount;\n bytes data;\n }\n\n /// @notice Emitted when an address's authorization status changes\n event Authorized(address indexed account, bool isAuthorized);\n\n /// @notice Emitted when assets are distributed from the budget\n event Distributed(address indexed asset, address to, uint256 amount);\n\n /// @notice Thrown when the allocation is invalid\n error InvalidAllocation(address asset, uint256 amount);\n\n /// @notice Thrown when there are insufficient funds for an operation\n error InsufficientFunds(address asset, uint256 available, uint256 required);\n\n /// @notice Thrown when a transfer fails for an unknown reason\n error TransferFailed(address asset, address to, uint256 amount);\n\n /// @notice Initialize the budget and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Allocate assets to the budget\n /// @param data_ The compressed data for the allocation (amount, token address, token ID, etc.)\n /// @return True if the allocation was successful\n function allocate(bytes calldata data_) external payable virtual returns (bool);\n\n /// @notice Reclaim assets from the budget\n /// @param data_ The compressed data for the reclamation (amount, token address, token ID, etc.)\n /// @return True if the reclamation was successful\n function reclaim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Disburse assets from the budget to a single recipient\n /// @param data_ The compressed {Transfer} request\n /// @return True if the disbursement was successful\n function disburse(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Disburse assets from the budget to multiple recipients\n /// @param data_ The array of compressed {Transfer} requests\n /// @return True if all disbursements were successful\n function disburseBatch(bytes[] calldata data_) external virtual returns (bool);\n\n /// @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n /// @param asset_ The address of the asset\n /// @return The total amount of assets\n function total(address asset_) external view virtual returns (uint256);\n\n /// @notice Get the amount of assets available for distribution from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets available\n function available(address asset_) external view virtual returns (uint256);\n\n /// @notice Get the amount of assets that have been distributed from the budget\n /// @param asset_ The address of the asset\n /// @return The amount of assets distributed\n function distributed(address asset_) external view virtual returns (uint256);\n\n /// @notice Reconcile the budget to ensure the known state matches the actual state\n /// @param data_ The compressed data for the reconciliation (amount, token address, token ID, etc.)\n /// @return The amount of assets reconciled\n function reconcile(bytes calldata data_) external virtual returns (uint256);\n\n /// @notice Set the authorized status of the given accounts\n /// @param accounts_ The accounts to authorize or deauthorize\n /// @param authorized_ The authorization status for the given accounts\n /// @dev The mechanism for managing authorization is left to the implementing contract\n function setAuthorized(address[] calldata accounts_, bool[] calldata authorized_) external virtual;\n\n /// @notice Check if the given account is authorized to use the budget\n /// @param account_ The account to check\n /// @return True if the account is authorized\n /// @dev The mechanism for checking authorization is left to the implementing contract\n function isAuthorized(address account_) external view virtual returns (bool);\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Cloneable) returns (bytes4) {\n return type(Budget).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Budget).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @inheritdoc Receiver\n receive() external payable virtual override {\n return;\n }\n\n /// @inheritdoc Receiver\n fallback() external payable virtual override {\n return;\n }\n}\n"},"contracts/budgets/SimpleBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ASimpleBudget} from \"contracts/budgets/ASimpleBudget.sol\";\n\n/// @title Simple Budget\n/// @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n/// @dev This type of budget supports ETH, ERC20, and ERC1155 assets only\ncontract SimpleBudget is ASimpleBudget {\n /// @notice The payload for initializing a SimpleBudget\n struct InitPayload {\n address owner;\n address[] authorized;\n }\n\n /// @notice Construct a new SimpleBudget\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc ASimpleBudget\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n _initializeOwner(init_.owner);\n for (uint256 i = 0; i < init_.authorized.length; i++) {\n _isAuthorized[init_.authorized[i]] = true;\n }\n }\n}\n"},"contracts/budgets/VestingBudget.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {AVestingBudget} from \"contracts/budgets/AVestingBudget.sol\";\n\n/// @title Vesting Budget\n/// @notice A vesting-based budget implementation that allows for the distribution of assets over time\n/// @dev Take note of the following when making use of this budget type:\n/// - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n/// - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n/// - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n/// - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\ncontract VestingBudget is AVestingBudget {\n /// @notice The payload for initializing a VestingBudget\n struct InitPayload {\n address owner;\n address[] authorized;\n uint64 start;\n uint64 duration;\n uint64 cliff;\n }\n\n /// @notice Construct a new SimpleBudget\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @inheritdoc AVestingBudget\n /// @param data_ The packed init data for the budget (see {InitPayload})\n function initialize(bytes calldata data_) public virtual override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n start = init_.start;\n duration = init_.duration;\n cliff = init_.cliff;\n\n _initializeOwner(init_.owner);\n for (uint256 i = 0; i < init_.authorized.length; i++) {\n _isAuthorized[init_.authorized[i]] = true;\n }\n }\n}\n"},"contracts/incentives/AAllowListIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {SimpleAllowList} from \"contracts/allowlists/SimpleAllowList.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title SimpleAllowList Incentive\n/// @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n/// @dev In order for any claim to be successful:\n/// - The claimer must not already be on the allow list; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to modify the allow list\nabstract contract AAllowListIncentive is Incentive {\n /// @notice The SimpleAllowList contract\n SimpleAllowList public allowList;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the allowlist\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @inheritdoc Incentive\n /// @notice Claim a slot on the {SimpleAllowList}\n /// @param data_ The claim data\n function claim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (claims++ >= limit || claimed[claim_.target]) revert NotClaimable();\n claimed[claim_.target] = true;\n\n (address[] memory users, bool[] memory allowed) = _makeAllowListPayload(claim_.target);\n\n allowList.setAllowed(users, allowed);\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @dev Not a valid operation for this type of incentive\n function reclaim(bytes calldata) external pure override returns (bool) {\n revert BoostError.NotImplemented();\n }\n\n /// @inheritdoc Incentive\n function isClaimable(bytes calldata data_) external view virtual override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return claims < limit && !claimed[claim_.target] && !allowList.isAllowed(claim_.target, \"\");\n }\n\n /// @inheritdoc Incentive\n /// @dev No preflight approval is required for this incentive (no tokens are handled)\n function preflight(bytes calldata) external pure override returns (bytes memory) {\n return new bytes(0);\n }\n\n /// @notice Create the payload for the SimpleAllowList\n /// @param target_ The target address to add to the allow list\n /// @return A tuple of users and allowed statuses\n function _makeAllowListPayload(address target_) internal pure returns (address[] memory, bool[] memory) {\n address[] memory users = new address[](1);\n bool[] memory allowed = new bool[](1);\n users[0] = target_;\n allowed[0] = true;\n return (users, allowed);\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Incentive) returns (bytes4) {\n return type(AAllowListIncentive).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Incentive) returns (bool) {\n return interfaceId == type(AAllowListIncentive).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/incentives/ACGDAIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\n\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title Continuous Gradual Dutch Auction Incentive\n/// @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\nabstract contract ACGDAIncentive is Incentive {\n using SafeTransferLib for address;\n\n /// @notice The ERC20-like token used for the incentive\n address public asset;\n\n /// @notice The configuration parameters for the CGDAIncentive\n /// @param rewardDecay The amount to subtract from the current reward after each claim\n /// @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n /// @param lastClaimTime The timestamp of the last claim\n /// @param currentReward The current reward amount\n struct CGDAParameters {\n uint256 rewardDecay;\n uint256 rewardBoost;\n uint256 lastClaimTime;\n uint256 currentReward;\n }\n\n CGDAParameters public cgdaParams;\n uint256 public totalBudget;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the incentive\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @inheritdoc Incentive\n /// @notice Claim the incentive\n function claim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n claims++;\n\n // Calculate the current reward and update the state\n uint256 reward = currentReward();\n cgdaParams.lastClaimTime = block.timestamp;\n cgdaParams.currentReward =\n reward > cgdaParams.rewardDecay ? reward - cgdaParams.rewardDecay : cgdaParams.rewardDecay;\n\n // Transfer the reward to the recipient\n asset.safeTransfer(claim_.target, reward);\n\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, reward));\n return true;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external virtual override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n // Transfer the tokens back to the intended recipient\n asset.safeTransfer(claim_.target, amount);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, amount));\n\n return true;\n }\n\n /// @inheritdoc Incentive\n function isClaimable(bytes calldata data_) external view virtual override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Calculates the current reward based on the time since the last claim.\n /// @return The current reward\n /// @dev The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.\n /// @dev For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\n function currentReward() public view override returns (uint256) {\n uint256 timeSinceLastClaim = block.timestamp - cgdaParams.lastClaimTime;\n uint256 available = asset.balanceOf(address(this));\n\n // Calculate the current reward based on the time elapsed since the last claim\n // on a linear scale, with `1 * rewardBoost` added for each hour without a claim\n uint256 projectedReward = cgdaParams.currentReward + (timeSinceLastClaim * cgdaParams.rewardBoost) / 3600;\n return projectedReward > available ? available : projectedReward;\n }\n\n function _isClaimable(address recipient_) internal view returns (bool) {\n uint256 reward = currentReward();\n return reward > 0 && asset.balanceOf(address(this)) >= reward && !claimed[recipient_];\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Incentive) returns (bytes4) {\n return type(ACGDAIncentive).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Incentive) returns (bool) {\n return interfaceId == type(ACGDAIncentive).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/incentives/AERC1155Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155Receiver} from \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\nimport {IERC165} from \"@openzeppelin/contracts/utils/introspection/IERC165.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title ERC1155Incentive\n/// @notice A simple ERC1155 incentive implementation that allows claiming of tokens\nabstract contract AERC1155Incentive is Incentive, IERC1155Receiver {\n /// @notice The strategy for the incentive\n /// @dev The strategy determines how the incentive is disbursed:\n /// - POOL: Transfer tokens from the pool to the recipient\n /// - MINT: Mint tokens to the recipient directly (not yet implemented)\n enum Strategy {\n POOL,\n MINT\n }\n\n /// @notice The address of the ERC1155-compliant contract\n IERC1155 public asset;\n\n /// @notice The strategy for the incentive (MINT or POOL)\n Strategy public strategy;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice The ERC1155 token ID for the incentive\n uint256 public tokenId;\n\n /// @notice Extra data to be passed to the ERC1155 contract\n bytes public extraData;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the incentive\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n // Disburse the incentive based on the strategy (POOL only for now)\n if (strategy == Strategy.POOL) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n claims++;\n claimed[claim_.target] = true;\n\n // wake-disable-next-line reentrancy (not a risk here)\n asset.safeTransferFrom(address(this), claim_.target, tokenId, 1, claim_.data);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, tokenId, uint256(1), claim_.data));\n\n return true;\n }\n\n return false;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n // Ensure the amount is valid and reduce the max claims accordingly\n if (amount > limit) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit -= amount;\n\n // Reclaim the incentive to the intended recipient\n // wake-disable-next-line reentrancy (not a risk here)\n asset.safeTransferFrom(address(this), claim_.target, tokenId, amount, claim_.data);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, tokenId, amount, claim_.data));\n\n return true;\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not check the token ID and will accept all tokens\n function onERC1155Received(address, address, uint256, uint256, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n return this.onERC1155Received.selector;\n }\n\n /// @inheritdoc IERC1155Receiver\n /// @dev This contract does not check the token ID and will accept all batches\n function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata)\n external\n pure\n override\n returns (bytes4)\n {\n return this.onERC1155BatchReceived.selector;\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Incentive) returns (bytes4) {\n return type(AERC1155Incentive).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Incentive, IERC165) returns (bool) {\n return interfaceId == type(AERC1155Incentive).interfaceId || interfaceId == type(IERC1155Receiver).interfaceId\n || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/incentives/AERC20Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibPRNG} from \"@solady/utils/LibPRNG.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title ERC20 Incentive\n/// @notice A simple ERC20 incentive implementation that allows claiming of tokens\nabstract contract AERC20Incentive is Incentive {\n using LibPRNG for LibPRNG.PRNG;\n using SafeTransferLib for address;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the budget `(address owner, address[] authorized)`\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @notice Emitted when an entry is added to the raffle\n event Entry(address indexed entry);\n\n /// @notice The strategy for the incentive\n /// @dev The strategy determines how the incentive is disbursed:\n /// - POOL: Users claim from a pool of rewards until the limit is reached, with each claim receiving an equal share of the total;\n /// - MINT: New tokens are minted and distributed to the recipient, with each claim receiving an equal amount of newly issued tokens;\n /// - RAFFLE: Users claim a slot in a raffle, and a single winner is randomly drawn to receive the entire reward amount;\n enum Strategy {\n POOL,\n MINT,\n RAFFLE\n }\n\n /// @notice The address of the ERC20-like token\n address public asset;\n\n /// @notice The strategy for the incentive (MINT or POOL)\n Strategy public strategy;\n\n /// @notice The limit (max claims, or max entries for raffles)\n uint256 public limit;\n\n /// @notice The set of addresses that have claimed a slot in the incentive raffle\n address[] public entries;\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n if (strategy == Strategy.POOL) {\n claims++;\n claimed[claim_.target] = true;\n\n asset.safeTransfer(claim_.target, reward);\n\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, reward));\n return true;\n } else if (strategy == Strategy.RAFFLE) {\n claims++;\n claimed[claim_.target] = true;\n entries.push(claim_.target);\n\n emit Entry(claim_.target);\n return true;\n }\n\n return false;\n }\n\n /// @inheritdoc Incentive\n function reclaim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n (uint256 amount) = abi.decode(claim_.data, (uint256));\n\n if (strategy == Strategy.RAFFLE) {\n // Ensure the amount is the full reward and there are no raffle entries, then reset the limit\n if (amount != reward || claims > 0) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit = 0;\n } else {\n // Ensure the amount is a multiple of the reward and reduce the max claims accordingly\n if (amount % reward != 0) revert BoostError.ClaimFailed(msg.sender, abi.encode(claim_));\n limit -= amount / reward;\n }\n\n // Transfer the tokens back to the intended recipient\n asset.safeTransfer(claim_.target, amount);\n emit Claimed(claim_.target, abi.encodePacked(asset, claim_.target, amount));\n\n return true;\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n\n /// @notice Draw a winner from the raffle\n /// @dev Only valid when the strategy is set to `Strategy.RAFFLE`\n function drawRaffle() external onlyOwner {\n if (strategy != Strategy.RAFFLE) revert BoostError.Unauthorized();\n\n LibPRNG.PRNG memory _prng = LibPRNG.PRNG({state: block.prevrandao + block.timestamp});\n\n address winnerAddress = entries[_prng.next() % entries.length];\n\n asset.safeTransfer(winnerAddress, reward);\n emit Claimed(winnerAddress, abi.encodePacked(asset, winnerAddress, reward));\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Incentive) returns (bytes4) {\n return type(AERC20Incentive).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Incentive) returns (bool) {\n return interfaceId == type(AERC20Incentive).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/incentives/AllowListIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {SimpleAllowList} from \"contracts/allowlists/SimpleAllowList.sol\";\nimport {AAllowListIncentive} from \"contracts/incentives/AAllowListIncentive.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title SimpleAllowList Incentive\n/// @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n/// @dev In order for any claim to be successful:\n/// - The claimer must not already be on the allow list; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to modify the allow list\ncontract AllowListIncentive is AAllowListIncentive {\n /// @notice The payload for initializing an AllowListIncentive\n struct InitPayload {\n SimpleAllowList allowList;\n uint256 limit;\n }\n\n /// @notice Construct a new AllowListIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The packed initialization data `(SimpleAllowList allowList, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n _initializeOwner(msg.sender);\n allowList = init_.allowList;\n limit = init_.limit;\n }\n}\n"},"contracts/incentives/APointsIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Incentive} from \"./Incentive.sol\";\n\n/// @title Points Incentive\n/// @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n/// @dev In order for any claim to be successful:\n/// - The claimer must not have already claimed the incentive; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to operate the points contract's issuance function\nabstract contract APointsIncentive is Incentive {\n /// @notice The address of the points contract\n address public venue;\n\n /// @notice The maximum number of claims that can be made (one per address)\n uint256 public limit;\n\n /// @notice The selector for the issuance function on the points contract\n bytes4 public selector;\n\n /// @inheritdoc Cloneable\n /// @param data_ The packed init data for the incentive\n function initialize(bytes calldata data_) public virtual override {\n revert NotInitializing();\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external override onlyOwner returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n if (!_isClaimable(claim_.target)) revert NotClaimable();\n\n claims++;\n claimed[claim_.target] = true;\n\n (bool success,) = venue.call(abi.encodeWithSelector(selector, claim_.target, reward));\n if (!success) revert ClaimFailed();\n\n emit Claimed(claim_.target, abi.encodePacked(venue, claim_.target, reward));\n return true;\n }\n\n /// @inheritdoc Incentive\n /// @dev Not a valid operation for this type of incentive\n function reclaim(bytes calldata) external pure override returns (bool) {\n revert BoostError.NotImplemented();\n }\n\n /// @inheritdoc Incentive\n /// @notice No token approvals are required for this incentive\n function preflight(bytes calldata) external pure override returns (bytes memory budgetData) {\n return new bytes(0);\n }\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check `(address recipient, bytes data)`\n /// @return True if the incentive is claimable based on the data payload\n /// @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n /// @dev The recipient must not have already claimed the incentive\n function isClaimable(bytes calldata data_) public view override returns (bool) {\n ClaimPayload memory claim_ = abi.decode(data_, (ClaimPayload));\n return _isClaimable(claim_.target);\n }\n\n /// @notice Check if an incentive is claimable for a specific recipient\n /// @param recipient_ The address of the recipient\n /// @return True if the incentive is claimable for the recipient\n function _isClaimable(address recipient_) internal view returns (bool) {\n return !claimed[recipient_] && claims < limit;\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Incentive) returns (bytes4) {\n return type(APointsIncentive).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Incentive) returns (bool) {\n return interfaceId == type(APointsIncentive).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/incentives/CGDAIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {ACGDAIncentive} from \"contracts/incentives/ACGDAIncentive.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title Continuous Gradual Dutch Auction Incentive\n/// @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\ncontract CGDAIncentive is ACGDAIncentive {\n using SafeTransferLib for address;\n\n /// @notice The payload for initializing a CGDAIncentive\n /// @param asset The address of the ERC20-like token\n /// @param initialReward The initial reward amount\n /// @param rewardDecay The amount to subtract from the current reward after each claim\n /// @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n /// @param totalBudget The total budget for the incentive\n struct InitPayload {\n address asset;\n uint256 initialReward;\n uint256 rewardDecay;\n uint256 rewardBoost;\n uint256 totalBudget;\n }\n\n /// @notice Construct a new CGDAIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the CGDA Incentive\n /// @param data_ Initialization parameters.\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n uint256 available = init_.asset.balanceOf(address(this));\n if (available < init_.totalBudget) {\n revert BoostError.InsufficientFunds(init_.asset, available, init_.totalBudget);\n }\n\n if (\n init_.initialReward == 0 || init_.rewardDecay == 0 || init_.rewardBoost == 0\n || init_.totalBudget < init_.initialReward\n ) revert BoostError.InvalidInitialization();\n\n asset = init_.asset;\n cgdaParams = CGDAParameters({\n rewardDecay: init_.rewardDecay,\n rewardBoost: init_.rewardBoost,\n lastClaimTime: block.timestamp,\n currentReward: init_.initialReward\n });\n\n totalBudget = init_.totalBudget;\n _initializeOwner(msg.sender);\n }\n\n /// @inheritdoc Incentive\n /// @notice Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\n /// @param data_ The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\n /// @return The amount of tokens required\n function preflight(bytes calldata data_) external view virtual override returns (bytes memory) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC20,\n asset: init_.asset,\n target: address(this),\n data: abi.encode(Budget.FungiblePayload({amount: init_.totalBudget}))\n })\n );\n }\n}\n"},"contracts/incentives/ERC1155Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {IERC1155} from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {AERC1155Incentive} from \"contracts/incentives/AERC1155Incentive.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\n\n/// @title ERC1155Incentive\n/// @notice A simple ERC1155 incentive implementation that allows claiming of tokens\ncontract ERC1155Incentive is AERC1155Incentive {\n /// @notice The payload for initializing an ERC1155Incentive\n struct InitPayload {\n IERC1155 asset;\n Strategy strategy;\n uint256 tokenId;\n uint256 limit;\n bytes extraData;\n }\n\n /// @notice Construct a new ERC1155Incentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n reward = 1;\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed initialization payload\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n // Ensure the strategy is valid (MINT is not yet supported)\n if (init_.strategy == Strategy.MINT) revert BoostError.NotImplemented();\n if (init_.limit == 0) revert BoostError.InvalidInitialization();\n\n // Ensure the maximum reward amount has been allocated\n uint256 available = init_.asset.balanceOf(address(this), init_.tokenId);\n if (available < init_.limit) {\n revert BoostError.InsufficientFunds(address(init_.asset), available, init_.limit);\n }\n\n asset = init_.asset;\n strategy = init_.strategy;\n tokenId = init_.tokenId;\n limit = init_.limit;\n extraData = init_.extraData;\n\n _initializeOwner(msg.sender);\n }\n\n /// @inheritdoc Incentive\n /// @notice Get the required allowance for the incentive\n /// @param data_ The initialization payload for the incentive\n /// @return budgetData The data payload to be passed to the Budget for interpretation\n function preflight(bytes calldata data_) external view override returns (bytes memory budgetData) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC1155,\n asset: address(init_.asset),\n target: address(this),\n data: abi.encode(\n Budget.ERC1155Payload({tokenId: init_.tokenId, amount: init_.limit, data: init_.extraData})\n )\n })\n );\n }\n}\n"},"contracts/incentives/ERC20Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibPRNG} from \"@solady/utils/LibPRNG.sol\";\nimport {SafeTransferLib} from \"@solady/utils/SafeTransferLib.sol\";\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {AERC20Incentive} from \"contracts/incentives/AERC20Incentive.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\n\n/// @title ERC20 Incentive\n/// @notice A simple ERC20 incentive implementation that allows claiming of tokens\ncontract ERC20Incentive is AERC20Incentive {\n using LibPRNG for LibPRNG.PRNG;\n using SafeTransferLib for address;\n\n /// @notice The payload for initializing the incentive\n struct InitPayload {\n address asset;\n Strategy strategy;\n uint256 reward;\n uint256 limit;\n }\n\n /// @notice Construct a new ERC20Incentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n\n // Ensure the strategy is valid (MINT is not yet supported)\n if (init_.strategy == Strategy.MINT) revert BoostError.NotImplemented();\n if (init_.reward == 0 || init_.limit == 0) revert BoostError.InvalidInitialization();\n\n // Ensure the maximum reward amount has been allocated\n uint256 maxTotalReward = init_.strategy != Strategy.RAFFLE ? init_.reward * init_.limit : init_.reward;\n uint256 available = init_.asset.balanceOf(address(this));\n if (available < maxTotalReward) {\n revert BoostError.InsufficientFunds(init_.asset, available, maxTotalReward);\n }\n\n asset = init_.asset;\n strategy = init_.strategy;\n reward = init_.reward;\n limit = init_.limit;\n _initializeOwner(msg.sender);\n }\n\n /// @inheritdoc Incentive\n /// @notice Preflight the incentive to determine the required budget action\n /// @param data_ The {InitPayload} for the incentive\n /// @return budgetData The {Transfer} payload to be passed to the {Budget} for interpretation\n function preflight(bytes calldata data_) external view override returns (bytes memory budgetData) {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n uint256 amount = init_.strategy != Strategy.RAFFLE ? init_.reward * init_.limit : init_.reward;\n\n return abi.encode(\n Budget.Transfer({\n assetType: Budget.AssetType.ERC20,\n asset: init_.asset,\n target: address(this),\n data: abi.encode(Budget.FungiblePayload({amount: amount}))\n })\n );\n }\n}\n"},"contracts/incentives/Incentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\nimport {ReentrancyGuard} from \"@solady/utils/ReentrancyGuard.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Incentive\n/// @notice Abstract contract for a generic Incentive within the Boost protocol\n/// @dev Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Incentive is Ownable, Cloneable, ReentrancyGuard {\n /// @notice Emitted when an incentive is claimed\n /// @dev The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\n event Claimed(address indexed recipient, bytes data);\n\n /// @notice Thrown when a claim fails\n error ClaimFailed();\n\n /// @notice Thrown when the incentive is not claimable\n error NotClaimable();\n\n /// @notice A struct representing the payload for an incentive claim\n /// @param target The address of the recipient\n /// @param data The implementation-specific data for the claim, if needed\n struct ClaimPayload {\n address target;\n bytes data;\n }\n\n /// @notice The number of claims that have been made\n uint256 public claims;\n\n /// @notice The reward amount issued for each claim\n uint256 public reward;\n\n /// @notice A mapping of address to claim status\n mapping(address => bool) public claimed;\n\n /// @notice Initialize the contract and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Claim the incentive\n /// @param data_ The data payload for the incentive claim\n /// @return True if the incentive was successfully claimed\n function claim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Reclaim assets from the incentive\n /// @param data_ The data payload for the reclaim\n /// @return True if the assets were successfully reclaimed\n function reclaim(bytes calldata data_) external virtual returns (bool);\n\n /// @notice Check if an incentive is claimable\n /// @param data_ The data payload for the claim check (data, signature, etc.)\n /// @return True if the incentive is claimable based on the data payload\n function isClaimable(bytes calldata data_) external view virtual returns (bool);\n\n /// @notice Get the required allowance for the incentive\n /// @param data_ The initialization payload for the incentive\n /// @return The data payload to be passed to the {Budget} for interpretation\n /// @dev This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\n function preflight(bytes calldata data_) external view virtual returns (bytes memory);\n\n /// @return The current reward\n function currentReward() public view virtual returns (uint256) {\n return reward;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Incentive).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Cloneable) returns (bytes4) {\n return type(Incentive).interfaceId;\n }\n}\n"},"contracts/incentives/PointsIncentive.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\nimport {APointsIncentive} from \"contracts/incentives/APointsIncentive.sol\";\n\n/// @title Points Incentive\n/// @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n/// @dev In order for any claim to be successful:\n/// - The claimer must not have already claimed the incentive; and\n/// - The maximum number of claims must not have been reached; and\n/// - This contract must be authorized to operate the points contract's issuance function\ncontract PointsIncentive is APointsIncentive {\n /// @notice The payload for initializing a PointsIncentive\n struct InitPayload {\n address venue;\n bytes4 selector;\n uint256 reward;\n uint256 limit;\n }\n\n /// @notice Construct a new PointsIncentive\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the incentive parameters\n /// @param data_ The compressed incentive parameters `(address points, uint256 reward, uint256 limit)`\n function initialize(bytes calldata data_) public override initializer {\n InitPayload memory init_ = abi.decode(data_, (InitPayload));\n if (init_.reward == 0 || init_.limit == 0) revert BoostError.InvalidInitialization();\n\n venue = init_.venue;\n selector = init_.selector;\n reward = init_.reward;\n limit = init_.limit;\n _initializeOwner(msg.sender);\n }\n}\n"},"contracts/shared/BoostError.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\n/// @title BoostError\n/// @notice Standardized errors for the Boost protocol\n/// @dev Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing.\nlibrary BoostError {\n /// @notice Thrown when a claim attempt fails\n error ClaimFailed(address caller, bytes data);\n\n /// @notice Thrown when there are insufficient funds for an operation\n error InsufficientFunds(address asset, uint256 available, uint256 required);\n\n /// @notice Thrown when a non-conforming instance for a given type is encountered\n error InvalidInstance(bytes4 expectedInterface, address instance);\n\n /// @notice Thrown when an invalid initialization is attempted\n error InvalidInitialization();\n\n /// @notice Thrown when the length of two arrays are not equal\n error LengthMismatch();\n\n /// @notice Thrown when a method is not implemented\n error NotImplemented();\n\n /// @notice Thrown when a previously used signature is replayed\n error Replayed(address signer, bytes32 hash, bytes signature);\n\n /// @notice Thrown when a transfer fails for an unknown reason\n error TransferFailed(address asset, address to, uint256 amount);\n\n /// @notice Thrown when the requested action is unauthorized\n error Unauthorized();\n}\n"},"contracts/shared/BoostLib.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibClone} from \"@solady/utils/LibClone.sol\";\nimport {LibZip} from \"@solady/utils/LibZip.sol\";\n\nimport {Action} from \"contracts/actions/Action.sol\";\nimport {AllowList} from \"contracts/allowlists/AllowList.sol\";\nimport {Budget} from \"contracts/budgets/Budget.sol\";\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {Incentive} from \"contracts/incentives/Incentive.sol\";\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\nlibrary BoostLib {\n using LibClone for address;\n using LibZip for bytes;\n\n /// @notice A struct representing a single Boost\n struct Boost {\n Action action;\n Validator validator;\n AllowList allowList;\n Budget budget;\n Incentive[] incentives;\n uint64 protocolFee;\n uint64 referralFee;\n uint256 maxParticipants;\n address owner;\n }\n\n /// @notice A base struct for a contract and its initialization parameters\n /// @dev This is used to pass the base contract and its initialization parameters in an efficient manner\n struct Target {\n bool isBase;\n address instance;\n bytes parameters;\n }\n\n /// @notice Clone and initialize a contract with a deterministic salt\n /// @param $ The contract to clone and initialize\n /// @param salt_ The salt for the deterministic clone\n /// @param initData_ The initialization data for the contract\n /// @return _clone The cloned and initialized contract\n function cloneAndInitialize(address $, bytes32 salt_, bytes memory initData_) internal returns (address _clone) {\n _clone = $.cloneDeterministic(salt_);\n // wake-disable-next-line reentrancy (false positive)\n Cloneable(_clone).initialize(initData_);\n }\n}\n"},"contracts/shared/Cloneable.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Initializable} from \"@solady/utils/Initializable.sol\";\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\n\n/// @title Cloneable\n/// @notice A contract that can be cloned and initialized only once\nabstract contract Cloneable is Initializable, ERC165 {\n /// @notice Thrown when an inheriting contract does not implement the initializer function\n error InitializerNotImplemented();\n\n /// @notice Thrown when the provided initialization data is invalid\n /// @dev This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\n error InvalidInitializationData();\n\n /// @notice Thrown when the contract has already been initialized\n error CloneAlreadyInitialized();\n\n /// @notice A modifier to restrict a function to only be called before initialization\n /// @dev This is intended to enforce that a function can only be called before the contract has been initialized\n modifier onlyBeforeInitialization() {\n if (_getInitializedVersion() != 0) revert CloneAlreadyInitialized();\n _;\n }\n\n /// @notice Initialize the clone with the given arbitrary data\n /// @param - The compressed initialization data (if required)\n /// @dev The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}\n /// @dev All implementations must override this function to initialize the contract\n function initialize(bytes calldata) public virtual initializer {\n revert InitializerNotImplemented();\n }\n\n /// @notice\n /// @param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\n /// @dev All implementations must override this function\n function getComponentInterface() public pure virtual returns (bytes4) {\n return type(Cloneable).interfaceId;\n }\n\n /// @inheritdoc ERC165\n /// @notice Check if the contract supports the given interface\n /// @param interfaceId The interface identifier\n /// @return True if the contract supports the interface\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(Cloneable).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/shared/Mocks.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {LibString} from \"@solady/utils/LibString.sol\";\nimport {ERC20} from \"@solady/tokens/ERC20.sol\";\nimport {ERC721} from \"@solady/tokens/ERC721.sol\";\nimport {ERC1155} from \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\n\n/**\n * 🚨 WARNING: The mocks in this file are for testing purposes only. DO NOT use\n * ANY of this code in production, ever, or you will lose all of your money,\n * friends, and credibility. Also, your cat might run away for fear of being\n * associated with someone who makes such poor life choices.\n */\n\n/// @title MockERC721\n/// @notice A mock ERC721 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC721 is ERC721 {\n uint256 public totalSupply;\n uint256 public mintPrice = 0.1 ether;\n\n function name() public pure override returns (string memory) {\n return \"Mock ERC721\";\n }\n\n function symbol() public pure override returns (string memory) {\n return \"MOCK\";\n }\n\n function mint(address to) public payable {\n require(msg.value >= mintPrice, \"MockERC721: gimme more money!\");\n // pre-increment so IDs start at 1\n _mint(to, ++totalSupply);\n }\n\n function tokenURI(uint256 id) public view virtual override returns (string memory) {\n return string(abi.encodePacked(\"https://example.com/token/\", LibString.toString(id)));\n }\n}\n\n/// @title MockERC20\n/// @notice A mock ERC20 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC20 is ERC20 {\n function name() public pure override returns (string memory) {\n return \"Mock ERC20\";\n }\n\n function symbol() public pure override returns (string memory) {\n return \"MOCK\";\n }\n\n function mint(address to, uint256 amount) public {\n _mint(to, amount);\n }\n\n function mintPayable(address to, uint256 amount) public payable {\n require(msg.value >= amount / 100, \"MockERC20: gimme more money!\");\n _mint(to, amount);\n }\n}\n\n/// @title MockERC1155\n/// @notice A mock ERC1155 token (FOR TESTING PURPOSES ONLY)\ncontract MockERC1155 is ERC1155 {\n constructor() ERC1155(\"https://example.com/token/{id}\") {}\n\n function mint(address to, uint256 id, uint256 amount) public {\n _mint(to, id, amount, \"\");\n }\n\n function burn(address from, uint256 id, uint256 amount) public {\n _burn(from, id, amount);\n }\n}\n"},"contracts/tokens/Points.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.24;\n\nimport {ERC20} from \"@solady/tokens/ERC20.sol\";\nimport {Initializable} from \"@solady/utils/Initializable.sol\";\nimport {OwnableRoles} from \"@solady/auth/OwnableRoles.sol\";\n\n/// @title Points\n/// @notice A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred.\ncontract Points is ERC20, Initializable, OwnableRoles {\n string private _name;\n string private _symbol;\n\n /// @notice The role for issuing points\n uint256 public constant ISSUER_ROLE = 1 << 1;\n\n /// @notice Thrown when an attempt is made to transfer points\n error NonTransferable();\n\n /// @notice Initialize the Points contract\n /// @param name_ The name of the token\n /// @param symbol_ The symbol of the token\n /// @param minter_ The initial holder of the minter role\n function initialize(string memory name_, string memory symbol_, address minter_) external initializer {\n _initializeOwner(msg.sender);\n\n _name = name_;\n _symbol = symbol_;\n\n _grantRoles(minter_, ISSUER_ROLE);\n }\n\n /// @notice Issue `amount` points and assign them to `to`\n /// @param to The address to assign the points to\n /// @param amount The amount of points to issue\n function issue(address to, uint256 amount) external onlyOwnerOrRoles(ISSUER_ROLE) {\n _mint(to, amount);\n }\n\n /// @inheritdoc ERC20\n /// @return The name of the token\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /// @inheritdoc ERC20\n /// @return The symbol of the token\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /// @inheritdoc ERC20\n /// @notice A hook that is called before any transfer of points\n /// @dev Reverts if the transfer is not a mint or burn (i.e. if neither `from` nor `to` are the zero address)\n function _beforeTokenTransfer(address from, address to, uint256) internal virtual override {\n if (from != address(0) && to != address(0)) revert NonTransferable();\n }\n}\n"},"contracts/validators/ASignerValidator.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {SignatureCheckerLib} from \"@solady/utils/SignatureCheckerLib.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\nimport {BoostError} from \"contracts/shared/BoostError.sol\";\n\nimport {Validator} from \"contracts/validators/Validator.sol\";\n\n/// @title Signer Validator\n/// @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\nabstract contract ASignerValidator is Validator {\n using SignatureCheckerLib for address;\n\n /// @dev The set of authorized signers\n mapping(address => bool) public signers;\n\n /// @dev The set of used hashes (for replay protection)\n mapping(bytes32 => bool) internal _used;\n\n /// @notice Validate that the action has been completed successfully\n /// @param data_ The data payload for the validation check\n /// @return True if the action has been validated based on the data payload\n /// @dev The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)\n /// @dev The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer\n function validate(bytes calldata data_) external override returns (bool) {\n (address signer_, bytes32 hash_, bytes memory signature_) = abi.decode(data_, (address, bytes32, bytes));\n\n if (!signers[signer_]) revert BoostError.Unauthorized();\n if (_used[hash_]) revert BoostError.Replayed(signer_, hash_, signature_);\n\n // Mark the hash as used to prevent replays\n _used[hash_] = true;\n\n // Return the result of the signature check\n return signer_.isValidSignatureNow(SignatureCheckerLib.toEthSignedMessageHash(hash_), signature_);\n }\n\n /// @notice Set the authorized status of a signer\n /// @param signers_ The list of signers to update\n /// @param authorized_ The authorized status of each signer\n function setAuthorized(address[] calldata signers_, bool[] calldata authorized_) external onlyOwner {\n if (signers_.length != authorized_.length) revert BoostError.LengthMismatch();\n\n for (uint256 i = 0; i < signers_.length; i++) {\n signers[signers_[i]] = authorized_[i];\n }\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Validator) returns (bytes4) {\n return type(ASignerValidator).interfaceId;\n }\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Validator) returns (bool) {\n return interfaceId == type(ASignerValidator).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n"},"contracts/validators/SignerValidator.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {ASignerValidator} from \"contracts/validators/ASignerValidator.sol\";\n\n/// @title Signer Validator\n/// @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\ncontract SignerValidator is ASignerValidator {\n /// @notice Construct a new SignerValidator\n /// @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\n constructor() {\n _disableInitializers();\n }\n\n /// @notice Initialize the contract with the list of authorized signers\n /// @param data_ The compressed list of authorized signers\n /// @dev The first address in the list will be the initial owner of the contract\n function initialize(bytes calldata data_) public virtual override initializer {\n (address[] memory signers_) = abi.decode(data_, (address[]));\n _initializeOwner(signers_[0]);\n for (uint256 i = 0; i < signers_.length; i++) {\n signers[signers_[i]] = true;\n }\n }\n}\n"},"contracts/validators/Validator.sol":{"content":"// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.24;\n\nimport {Ownable} from \"@solady/auth/Ownable.sol\";\n\nimport {Cloneable} from \"contracts/shared/Cloneable.sol\";\n\n/// @title Boost Validator\n/// @notice Abstract contract for a generic Validator within the Boost protocol\n/// @dev Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\nabstract contract Validator is Ownable, Cloneable {\n struct ValidatePayload {\n address target;\n bytes data;\n }\n\n /// @notice Initialize the contract and set the owner\n /// @dev The owner is set to the contract deployer\n constructor() {\n _initializeOwner(msg.sender);\n }\n\n /// @notice Validate that a given user has completed an acction successfully\n /// @param data_ The compressed {ValidatePayload} to be validated\n /// @return True if the action has been validated based on the data payload\n /// @dev The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specific\n /// @dev For example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}\n function validate(bytes calldata data_) external virtual returns (bool);\n\n /// @inheritdoc Cloneable\n function supportsInterface(bytes4 interfaceId) public view virtual override(Cloneable) returns (bool) {\n return interfaceId == type(Validator).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /// @inheritdoc Cloneable\n function getComponentInterface() public pure virtual override(Cloneable) returns (bytes4) {\n return type(Validator).interfaceId;\n }\n}\n"}},"settings":{"evmVersion":"cancun","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"2394","formattedMessage":"Warning: Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.\n --> @openzeppelin/contracts/utils/StorageSlot.sol:247:13:\n |\n247 | tstore(slot, value)\n | ^^^^^^\n\n","message":"Transient storage as defined by EIP-1153 can break the composability of smart contracts: Since transient storage is cleared only at the end of the transaction and not at the end of the outermost call frame to the contract within a transaction, your contract may unintentionally misbehave when invoked multiple times in a complex transaction. To avoid this, be sure to clear all transient storage at the end of any call to your contract. The use of transient storage for reentrancy guards that are cleared at the end of the call is safe.","severity":"warning","sourceLocation":{"end":7119,"file":"@openzeppelin/contracts/utils/StorageSlot.sol","start":7113},"type":"Warning"},{"component":"general","errorCode":"5740","formattedMessage":"Warning: Unreachable code.\n --> @solady/utils/Initializable.sol:81:13:\n |\n81 | if s {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Unreachable code.","severity":"warning","sourceLocation":{"end":4178,"file":"@solady/utils/Initializable.sol","start":3915},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/actions/AContractAction.sol:28:25:\n |\n28 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":887,"file":"contracts/actions/AContractAction.sol","start":867},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/actions/AERC721MintAction.sol:25:25:\n |\n25 | function initialize(bytes calldata data_) public virtual override(Cloneable, ContractAction) {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1266,"file":"contracts/actions/AERC721MintAction.sol","start":1246},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/allowlists/ASimpleAllowList.sol:22:25:\n |\n22 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":905,"file":"contracts/allowlists/ASimpleAllowList.sol","start":885},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/allowlists/ASimpleDenyList.sol:17:25:\n |\n17 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":726,"file":"contracts/allowlists/ASimpleDenyList.sol","start":706},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/budgets/ASimpleBudget.sol:38:25:\n |\n38 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1748,"file":"contracts/budgets/ASimpleBudget.sol","start":1728},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/budgets/AVestingBudget.sol:48:25:\n |\n48 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":2787,"file":"contracts/budgets/AVestingBudget.sol","start":2767},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/incentives/AAllowListIncentive.sol:25:25:\n |\n25 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1082,"file":"contracts/incentives/AAllowListIncentive.sol","start":1062},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/incentives/ACGDAIncentive.sol:38:25:\n |\n38 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1448,"file":"contracts/incentives/ACGDAIncentive.sol","start":1428},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/incentives/AERC1155Incentive.sol:43:25:\n |\n43 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1649,"file":"contracts/incentives/AERC1155Incentive.sol","start":1629},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/incentives/AERC20Incentive.sol:21:25:\n |\n21 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":803,"file":"contracts/incentives/AERC20Incentive.sol","start":783},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/incentives/APointsIncentive.sol:28:25:\n |\n28 | function initialize(bytes calldata data_) public virtual override {\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1171,"file":"contracts/incentives/APointsIncentive.sol","start":1151},"type":"Warning"}],"sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[136],"IERC20Errors":[41],"IERC721Errors":[89]},"id":137,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"138:141:0","text":" @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."},"fullyImplemented":true,"id":41,"linearizedBaseContracts":[41],"name":"IERC20Errors","nameLocation":"290:12:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"309:309:0","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":11,"name":"ERC20InsufficientBalance","nameLocation":"629:24:0","nodeType":"ErrorDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5,"mutability":"mutable","name":"sender","nameLocation":"662:6:0","nodeType":"VariableDeclaration","scope":11,"src":"654:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4,"name":"address","nodeType":"ElementaryTypeName","src":"654:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"balance","nameLocation":"678:7:0","nodeType":"VariableDeclaration","scope":11,"src":"670:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9,"mutability":"mutable","name":"needed","nameLocation":"695:6:0","nodeType":"VariableDeclaration","scope":11,"src":"687:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8,"name":"uint256","nodeType":"ElementaryTypeName","src":"687:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"653:49:0"},"src":"623:80:0"},{"documentation":{"id":12,"nodeType":"StructuredDocumentation","src":"709:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":16,"name":"ERC20InvalidSender","nameLocation":"872:18:0","nodeType":"ErrorDefinition","parameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"mutability":"mutable","name":"sender","nameLocation":"899:6:0","nodeType":"VariableDeclaration","scope":16,"src":"891:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"891:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"890:16:0"},"src":"866:41:0"},{"documentation":{"id":17,"nodeType":"StructuredDocumentation","src":"913:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":21,"name":"ERC20InvalidReceiver","nameLocation":"1083:20:0","nodeType":"ErrorDefinition","parameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"mutability":"mutable","name":"receiver","nameLocation":"1112:8:0","nodeType":"VariableDeclaration","scope":21,"src":"1104:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1103:18:0"},"src":"1077:45:0"},{"documentation":{"id":22,"nodeType":"StructuredDocumentation","src":"1128:345:0","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":30,"name":"ERC20InsufficientAllowance","nameLocation":"1484:26:0","nodeType":"ErrorDefinition","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"mutability":"mutable","name":"spender","nameLocation":"1519:7:0","nodeType":"VariableDeclaration","scope":30,"src":"1511:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26,"mutability":"mutable","name":"allowance","nameLocation":"1536:9:0","nodeType":"VariableDeclaration","scope":30,"src":"1528:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28,"mutability":"mutable","name":"needed","nameLocation":"1555:6:0","nodeType":"VariableDeclaration","scope":30,"src":"1547:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27,"name":"uint256","nodeType":"ElementaryTypeName","src":"1547:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1510:52:0"},"src":"1478:85:0"},{"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"1569:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":35,"name":"ERC20InvalidApprover","nameLocation":"1754:20:0","nodeType":"ErrorDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"approver","nameLocation":"1783:8:0","nodeType":"VariableDeclaration","scope":35,"src":"1775:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1775:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1774:18:0"},"src":"1748:45:0"},{"documentation":{"id":36,"nodeType":"StructuredDocumentation","src":"1799:195:0","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":40,"name":"ERC20InvalidSpender","nameLocation":"2005:19:0","nodeType":"ErrorDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"spender","nameLocation":"2033:7:0","nodeType":"VariableDeclaration","scope":40,"src":"2025:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2024:17:0"},"src":"1999:43:0"}],"scope":137,"src":"280:1764:0","usedErrors":[11,16,21,30,35,40],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":42,"nodeType":"StructuredDocumentation","src":"2046:143:0","text":" @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."},"fullyImplemented":true,"id":89,"linearizedBaseContracts":[89],"name":"IERC721Errors","nameLocation":"2200:13:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":43,"nodeType":"StructuredDocumentation","src":"2220:219:0","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":47,"name":"ERC721InvalidOwner","nameLocation":"2450:18:0","nodeType":"ErrorDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"owner","nameLocation":"2477:5:0","nodeType":"VariableDeclaration","scope":47,"src":"2469:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"2469:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2468:15:0"},"src":"2444:40:0"},{"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"2490:132:0","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":52,"name":"ERC721NonexistentToken","nameLocation":"2633:22:0","nodeType":"ErrorDefinition","parameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"tokenId","nameLocation":"2664:7:0","nodeType":"VariableDeclaration","scope":52,"src":"2656:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49,"name":"uint256","nodeType":"ElementaryTypeName","src":"2656:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2655:17:0"},"src":"2627:46:0"},{"documentation":{"id":53,"nodeType":"StructuredDocumentation","src":"2679:289:0","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":61,"name":"ERC721IncorrectOwner","nameLocation":"2979:20:0","nodeType":"ErrorDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55,"mutability":"mutable","name":"sender","nameLocation":"3008:6:0","nodeType":"VariableDeclaration","scope":61,"src":"3000:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54,"name":"address","nodeType":"ElementaryTypeName","src":"3000:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57,"mutability":"mutable","name":"tokenId","nameLocation":"3024:7:0","nodeType":"VariableDeclaration","scope":61,"src":"3016:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56,"name":"uint256","nodeType":"ElementaryTypeName","src":"3016:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59,"mutability":"mutable","name":"owner","nameLocation":"3041:5:0","nodeType":"VariableDeclaration","scope":61,"src":"3033:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58,"name":"address","nodeType":"ElementaryTypeName","src":"3033:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2999:48:0"},"src":"2973:75:0"},{"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"3054:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":66,"name":"ERC721InvalidSender","nameLocation":"3217:19:0","nodeType":"ErrorDefinition","parameters":{"id":65,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64,"mutability":"mutable","name":"sender","nameLocation":"3245:6:0","nodeType":"VariableDeclaration","scope":66,"src":"3237:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":63,"name":"address","nodeType":"ElementaryTypeName","src":"3237:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3236:16:0"},"src":"3211:42:0"},{"documentation":{"id":67,"nodeType":"StructuredDocumentation","src":"3259:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":71,"name":"ERC721InvalidReceiver","nameLocation":"3429:21:0","nodeType":"ErrorDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"receiver","nameLocation":"3459:8:0","nodeType":"VariableDeclaration","scope":71,"src":"3451:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"3451:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3450:18:0"},"src":"3423:46:0"},{"documentation":{"id":72,"nodeType":"StructuredDocumentation","src":"3475:247:0","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":78,"name":"ERC721InsufficientApproval","nameLocation":"3733:26:0","nodeType":"ErrorDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"operator","nameLocation":"3768:8:0","nodeType":"VariableDeclaration","scope":78,"src":"3760:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"3760:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"tokenId","nameLocation":"3786:7:0","nodeType":"VariableDeclaration","scope":78,"src":"3778:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75,"name":"uint256","nodeType":"ElementaryTypeName","src":"3778:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3759:35:0"},"src":"3727:68:0"},{"documentation":{"id":79,"nodeType":"StructuredDocumentation","src":"3801:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":83,"name":"ERC721InvalidApprover","nameLocation":"3986:21:0","nodeType":"ErrorDefinition","parameters":{"id":82,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81,"mutability":"mutable","name":"approver","nameLocation":"4016:8:0","nodeType":"VariableDeclaration","scope":83,"src":"4008:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80,"name":"address","nodeType":"ElementaryTypeName","src":"4008:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4007:18:0"},"src":"3980:46:0"},{"documentation":{"id":84,"nodeType":"StructuredDocumentation","src":"4032:197:0","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":88,"name":"ERC721InvalidOperator","nameLocation":"4240:21:0","nodeType":"ErrorDefinition","parameters":{"id":87,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86,"mutability":"mutable","name":"operator","nameLocation":"4270:8:0","nodeType":"VariableDeclaration","scope":88,"src":"4262:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85,"name":"address","nodeType":"ElementaryTypeName","src":"4262:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4261:18:0"},"src":"4234:46:0"}],"scope":137,"src":"2190:2092:0","usedErrors":[47,52,61,66,71,78,83,88],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":90,"nodeType":"StructuredDocumentation","src":"4284:145:0","text":" @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."},"fullyImplemented":true,"id":136,"linearizedBaseContracts":[136],"name":"IERC1155Errors","nameLocation":"4440:14:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":91,"nodeType":"StructuredDocumentation","src":"4461:361:0","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":101,"name":"ERC1155InsufficientBalance","nameLocation":"4833:26:0","nodeType":"ErrorDefinition","parameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"sender","nameLocation":"4868:6:0","nodeType":"VariableDeclaration","scope":101,"src":"4860:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"4860:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"balance","nameLocation":"4884:7:0","nodeType":"VariableDeclaration","scope":101,"src":"4876:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94,"name":"uint256","nodeType":"ElementaryTypeName","src":"4876:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"needed","nameLocation":"4901:6:0","nodeType":"VariableDeclaration","scope":101,"src":"4893:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96,"name":"uint256","nodeType":"ElementaryTypeName","src":"4893:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99,"mutability":"mutable","name":"tokenId","nameLocation":"4917:7:0","nodeType":"VariableDeclaration","scope":101,"src":"4909:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98,"name":"uint256","nodeType":"ElementaryTypeName","src":"4909:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4859:66:0"},"src":"4827:99:0"},{"documentation":{"id":102,"nodeType":"StructuredDocumentation","src":"4932:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":106,"name":"ERC1155InvalidSender","nameLocation":"5095:20:0","nodeType":"ErrorDefinition","parameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"sender","nameLocation":"5124:6:0","nodeType":"VariableDeclaration","scope":106,"src":"5116:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":103,"name":"address","nodeType":"ElementaryTypeName","src":"5116:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5115:16:0"},"src":"5089:43:0"},{"documentation":{"id":107,"nodeType":"StructuredDocumentation","src":"5138:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":111,"name":"ERC1155InvalidReceiver","nameLocation":"5308:22:0","nodeType":"ErrorDefinition","parameters":{"id":110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109,"mutability":"mutable","name":"receiver","nameLocation":"5339:8:0","nodeType":"VariableDeclaration","scope":111,"src":"5331:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108,"name":"address","nodeType":"ElementaryTypeName","src":"5331:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5330:18:0"},"src":"5302:47:0"},{"documentation":{"id":112,"nodeType":"StructuredDocumentation","src":"5355:256:0","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":118,"name":"ERC1155MissingApprovalForAll","nameLocation":"5622:28:0","nodeType":"ErrorDefinition","parameters":{"id":117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"operator","nameLocation":"5659:8:0","nodeType":"VariableDeclaration","scope":118,"src":"5651:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"5651:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":116,"mutability":"mutable","name":"owner","nameLocation":"5677:5:0","nodeType":"VariableDeclaration","scope":118,"src":"5669:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":115,"name":"address","nodeType":"ElementaryTypeName","src":"5669:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5650:33:0"},"src":"5616:68:0"},{"documentation":{"id":119,"nodeType":"StructuredDocumentation","src":"5690:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":123,"name":"ERC1155InvalidApprover","nameLocation":"5875:22:0","nodeType":"ErrorDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"approver","nameLocation":"5906:8:0","nodeType":"VariableDeclaration","scope":123,"src":"5898:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5897:18:0"},"src":"5869:47:0"},{"documentation":{"id":124,"nodeType":"StructuredDocumentation","src":"5922:197:0","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":128,"name":"ERC1155InvalidOperator","nameLocation":"6130:22:0","nodeType":"ErrorDefinition","parameters":{"id":127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"operator","nameLocation":"6161:8:0","nodeType":"VariableDeclaration","scope":128,"src":"6153:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125,"name":"address","nodeType":"ElementaryTypeName","src":"6153:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6152:18:0"},"src":"6124:47:0"},{"documentation":{"id":129,"nodeType":"StructuredDocumentation","src":"6177:280:0","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":135,"name":"ERC1155InvalidArrayLength","nameLocation":"6468:25:0","nodeType":"ErrorDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"idsLength","nameLocation":"6502:9:0","nodeType":"VariableDeclaration","scope":135,"src":"6494:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":130,"name":"uint256","nodeType":"ElementaryTypeName","src":"6494:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"valuesLength","nameLocation":"6521:12:0","nodeType":"VariableDeclaration","scope":135,"src":"6513:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":132,"name":"uint256","nodeType":"ElementaryTypeName","src":"6513:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6493:41:0"},"src":"6462:73:0"}],"scope":137,"src":"4430:2107:0","usedErrors":[101,106,111,118,123,128,135],"usedEvents":[]}],"src":"112:6426:0"},"id":0},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","exportedSymbols":{"Arrays":[2276],"Context":[2306],"ERC1155":[1053],"ERC1155Utils":[1388],"ERC165":[2831],"IERC1155":[1176],"IERC1155Errors":[136],"IERC1155MetadataURI":[1234],"IERC165":[2843]},"id":1054,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":138,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:1"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"./IERC1155.sol","id":140,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1054,"sourceUnit":1177,"src":"135:40:1","symbolAliases":[{"foreign":{"id":139,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"143:8:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol","file":"./extensions/IERC1155MetadataURI.sol","id":142,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1054,"sourceUnit":1235,"src":"176:73:1","symbolAliases":[{"foreign":{"id":141,"name":"IERC1155MetadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"184:19:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol","file":"./utils/ERC1155Utils.sol","id":144,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1054,"sourceUnit":1389,"src":"250:54:1","symbolAliases":[{"foreign":{"id":143,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"258:12:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":146,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1054,"sourceUnit":2307,"src":"305:48:1","symbolAliases":[{"foreign":{"id":145,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2306,"src":"313:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":149,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1054,"sourceUnit":2832,"src":"354:69:1","symbolAliases":[{"foreign":{"id":147,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"362:7:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":148,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"371:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Arrays.sol","file":"../../utils/Arrays.sol","id":151,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1054,"sourceUnit":2277,"src":"424:46:1","symbolAliases":[{"foreign":{"id":150,"name":"Arrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2276,"src":"432:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":153,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1054,"sourceUnit":137,"src":"471:67:1","symbolAliases":[{"foreign":{"id":152,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"479:14:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":155,"name":"Context","nameLocations":["754:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":2306,"src":"754:7:1"},"id":156,"nodeType":"InheritanceSpecifier","src":"754:7:1"},{"baseName":{"id":157,"name":"ERC165","nameLocations":["763:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":2831,"src":"763:6:1"},"id":158,"nodeType":"InheritanceSpecifier","src":"763:6:1"},{"baseName":{"id":159,"name":"IERC1155","nameLocations":["771:8:1"],"nodeType":"IdentifierPath","referencedDeclaration":1176,"src":"771:8:1"},"id":160,"nodeType":"InheritanceSpecifier","src":"771:8:1"},{"baseName":{"id":161,"name":"IERC1155MetadataURI","nameLocations":["781:19:1"],"nodeType":"IdentifierPath","referencedDeclaration":1234,"src":"781:19:1"},"id":162,"nodeType":"InheritanceSpecifier","src":"781:19:1"},{"baseName":{"id":163,"name":"IERC1155Errors","nameLocations":["802:14:1"],"nodeType":"IdentifierPath","referencedDeclaration":136,"src":"802:14:1"},"id":164,"nodeType":"InheritanceSpecifier","src":"802:14:1"}],"canonicalName":"ERC1155","contractDependencies":[],"contractKind":"contract","documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"540:184:1","text":" @dev Implementation of the basic standard multi-token.\n See https://eips.ethereum.org/EIPS/eip-1155\n Originally based on code by Enjin: https://github.com/enjin/erc-1155"},"fullyImplemented":true,"id":1053,"linearizedBaseContracts":[1053,136,1234,1176,2831,2843,2306],"name":"ERC1155","nameLocation":"743:7:1","nodeType":"ContractDefinition","nodes":[{"global":false,"id":168,"libraryName":{"id":165,"name":"Arrays","nameLocations":["829:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":2276,"src":"829:6:1"},"nodeType":"UsingForDirective","src":"823:27:1","typeName":{"baseType":{"id":166,"name":"uint256","nodeType":"ElementaryTypeName","src":"840:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":167,"nodeType":"ArrayTypeName","src":"840:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},{"global":false,"id":172,"libraryName":{"id":169,"name":"Arrays","nameLocations":["861:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":2276,"src":"861:6:1"},"nodeType":"UsingForDirective","src":"855:27:1","typeName":{"baseType":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":171,"nodeType":"ArrayTypeName","src":"872:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},{"constant":false,"id":178,"mutability":"mutable","name":"_balances","nameLocation":"955:9:1","nodeType":"VariableDeclaration","scope":1053,"src":"888:76:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"},"typeName":{"id":177,"keyName":"id","keyNameLocation":"904:2:1","keyType":{"id":173,"name":"uint256","nodeType":"ElementaryTypeName","src":"896:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"888:58:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":176,"keyName":"account","keyNameLocation":"926:7:1","keyType":{"id":174,"name":"address","nodeType":"ElementaryTypeName","src":"918:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"910:35:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":175,"name":"uint256","nodeType":"ElementaryTypeName","src":"937:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":184,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1041:18:1","nodeType":"VariableDeclaration","scope":1053,"src":"971:88:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":183,"keyName":"account","keyNameLocation":"987:7:1","keyType":{"id":179,"name":"address","nodeType":"ElementaryTypeName","src":"979:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"971:61:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":182,"keyName":"operator","keyNameLocation":"1014:8:1","keyType":{"id":180,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"998:33:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":181,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"constant":false,"id":186,"mutability":"mutable","name":"_uri","nameLocation":"1195:4:1","nodeType":"VariableDeclaration","scope":1053,"src":"1180:19:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":185,"name":"string","nodeType":"ElementaryTypeName","src":"1180:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":196,"nodeType":"Block","src":"1281:30:1","statements":[{"expression":{"arguments":[{"id":193,"name":"uri_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"1299:4:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":192,"name":"_setURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":814,"src":"1291:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1291:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":195,"nodeType":"ExpressionStatement","src":"1291:13:1"}]},"documentation":{"id":187,"nodeType":"StructuredDocumentation","src":"1206:38:1","text":" @dev See {_setURI}."},"id":197,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":189,"mutability":"mutable","name":"uri_","nameLocation":"1275:4:1","nodeType":"VariableDeclaration","scope":197,"src":"1261:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":188,"name":"string","nodeType":"ElementaryTypeName","src":"1261:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1260:20:1"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"1281:0:1"},"scope":1053,"src":"1249:62:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2830,2842],"body":{"id":227,"nodeType":"Block","src":"1486:197:1","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":208,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"1515:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":210,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"1535:8:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}],"id":209,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1530:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155_$1176","typeString":"type(contract IERC1155)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1545:11:1","memberName":"interfaceId","nodeType":"MemberAccess","src":"1530:26:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1515:41:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":214,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"1572:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":216,"name":"IERC1155MetadataURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1234,"src":"1592:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155MetadataURI_$1234_$","typeString":"type(contract IERC1155MetadataURI)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155MetadataURI_$1234_$","typeString":"type(contract IERC1155MetadataURI)"}],"id":215,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1587:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1587:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155MetadataURI_$1234","typeString":"type(contract IERC1155MetadataURI)"}},"id":218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1613:11:1","memberName":"interfaceId","nodeType":"MemberAccess","src":"1587:37:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1572:52:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1515:109:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":223,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":200,"src":"1664:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":221,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1640:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC1155_$1053_$","typeString":"type(contract super ERC1155)"}},"id":222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1646:17:1","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2830,"src":"1640:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1640:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1515:161:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":207,"id":226,"nodeType":"Return","src":"1496:180:1"}]},"documentation":{"id":198,"nodeType":"StructuredDocumentation","src":"1317:56:1","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":228,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1387:17:1","nodeType":"FunctionDefinition","overrides":{"id":204,"nodeType":"OverrideSpecifier","overrides":[{"id":202,"name":"ERC165","nameLocations":["1454:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":2831,"src":"1454:6:1"},{"id":203,"name":"IERC165","nameLocations":["1462:7:1"],"nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"1462:7:1"}],"src":"1445:25:1"},"parameters":{"id":201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":200,"mutability":"mutable","name":"interfaceId","nameLocation":"1412:11:1","nodeType":"VariableDeclaration","scope":228,"src":"1405:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":199,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1405:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1404:20:1"},"returnParameters":{"id":207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":228,"src":"1480:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":205,"name":"bool","nodeType":"ElementaryTypeName","src":"1480:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1479:6:1"},"scope":1053,"src":"1378:305:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1233],"body":{"id":238,"nodeType":"Block","src":"2157:28:1","statements":[{"expression":{"id":236,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"2174:4:1","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":235,"id":237,"nodeType":"Return","src":"2167:11:1"}]},"documentation":{"id":229,"nodeType":"StructuredDocumentation","src":"1689:388:1","text":" @dev See {IERC1155MetadataURI-uri}.\n This implementation returns the same URI for *all* token types. It relies\n on the token type ID substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n Clients calling this function must replace the `\\{id\\}` substring with the\n actual token type ID."},"functionSelector":"0e89341c","id":239,"implemented":true,"kind":"function","modifiers":[],"name":"uri","nameLocation":"2091:3:1","nodeType":"FunctionDefinition","parameters":{"id":232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":239,"src":"2095:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":230,"name":"uint256","nodeType":"ElementaryTypeName","src":"2095:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2094:18:1"},"returnParameters":{"id":235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":239,"src":"2142:13:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":233,"name":"string","nodeType":"ElementaryTypeName","src":"2142:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2141:15:1"},"scope":1053,"src":"2082:103:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1114],"body":{"id":255,"nodeType":"Block","src":"2331:46:1","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":249,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"2348:9:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":251,"indexExpression":{"id":250,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"2358:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:13:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":253,"indexExpression":{"id":252,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":242,"src":"2362:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2348:22:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":248,"id":254,"nodeType":"Return","src":"2341:29:1"}]},"documentation":{"id":240,"nodeType":"StructuredDocumentation","src":"2191:49:1","text":" @dev See {IERC1155-balanceOf}."},"functionSelector":"00fdd58e","id":256,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"2254:9:1","nodeType":"FunctionDefinition","parameters":{"id":245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":242,"mutability":"mutable","name":"account","nameLocation":"2272:7:1","nodeType":"VariableDeclaration","scope":256,"src":"2264:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":241,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":244,"mutability":"mutable","name":"id","nameLocation":"2289:2:1","nodeType":"VariableDeclaration","scope":256,"src":"2281:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":243,"name":"uint256","nodeType":"ElementaryTypeName","src":"2281:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2263:29:1"},"returnParameters":{"id":248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":256,"src":"2322:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":246,"name":"uint256","nodeType":"ElementaryTypeName","src":"2322:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2321:9:1"},"scope":1053,"src":"2245:132:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1127],"body":{"id":325,"nodeType":"Block","src":"2676:410:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":269,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2690:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2699:6:1","memberName":"length","nodeType":"MemberAccess","src":"2690:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":271,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"2709:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2713:6:1","memberName":"length","nodeType":"MemberAccess","src":"2709:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2690:29:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":282,"nodeType":"IfStatement","src":"2686:121:1","trueBody":{"id":281,"nodeType":"Block","src":"2721:86:1","statements":[{"errorCall":{"arguments":[{"expression":{"id":275,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"2768:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2772:6:1","memberName":"length","nodeType":"MemberAccess","src":"2768:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":277,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2780:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2789:6:1","memberName":"length","nodeType":"MemberAccess","src":"2780:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":274,"name":"ERC1155InvalidArrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":135,"src":"2742:25:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2742:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":280,"nodeType":"RevertStatement","src":"2735:61:1"}]}},{"assignments":[287],"declarations":[{"constant":false,"id":287,"mutability":"mutable","name":"batchBalances","nameLocation":"2834:13:1","nodeType":"VariableDeclaration","scope":325,"src":"2817:30:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":285,"name":"uint256","nodeType":"ElementaryTypeName","src":"2817:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":286,"nodeType":"ArrayTypeName","src":"2817:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":294,"initialValue":{"arguments":[{"expression":{"id":291,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2864:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2873:6:1","memberName":"length","nodeType":"MemberAccess","src":"2864:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2850:13:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":288,"name":"uint256","nodeType":"ElementaryTypeName","src":"2854:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":289,"nodeType":"ArrayTypeName","src":"2854:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2817:63:1"},{"body":{"id":321,"nodeType":"Block","src":"2937:112:1","statements":[{"expression":{"id":319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":306,"name":"batchBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2951:13:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":308,"indexExpression":{"id":307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"2965:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2951:16:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"3008:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":310,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2980:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2989:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2216,"src":"2980:27:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$attached_to$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address[] memory,uint256) pure returns (address)"}},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2980:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":316,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"3035:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":314,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"3012:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3016:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2242,"src":"3012:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3012:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":309,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"2970:9:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2970:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2951:87:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":320,"nodeType":"ExpressionStatement","src":"2951:87:1"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":299,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"2911:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":300,"name":"accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"2915:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2924:6:1","memberName":"length","nodeType":"MemberAccess","src":"2915:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2911:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":322,"initializationExpression":{"assignments":[296],"declarations":[{"constant":false,"id":296,"mutability":"mutable","name":"i","nameLocation":"2904:1:1","nodeType":"VariableDeclaration","scope":322,"src":"2896:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":295,"name":"uint256","nodeType":"ElementaryTypeName","src":"2896:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":298,"initialValue":{"hexValue":"30","id":297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2908:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2896:13:1"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"2932:3:1","subExpression":{"id":303,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"2934:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":305,"nodeType":"ExpressionStatement","src":"2932:3:1"},"nodeType":"ForStatement","src":"2891:158:1"},{"expression":{"id":323,"name":"batchBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"3066:13:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":268,"id":324,"nodeType":"Return","src":"3059:20:1"}]},"documentation":{"id":257,"nodeType":"StructuredDocumentation","src":"2383:146:1","text":" @dev See {IERC1155-balanceOfBatch}.\n Requirements:\n - `accounts` and `ids` must have the same length."},"functionSelector":"4e1273f4","id":326,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfBatch","nameLocation":"2543:14:1","nodeType":"FunctionDefinition","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"accounts","nameLocation":"2584:8:1","nodeType":"VariableDeclaration","scope":326,"src":"2567:25:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":258,"name":"address","nodeType":"ElementaryTypeName","src":"2567:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":259,"nodeType":"ArrayTypeName","src":"2567:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":263,"mutability":"mutable","name":"ids","nameLocation":"2619:3:1","nodeType":"VariableDeclaration","scope":326,"src":"2602:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":261,"name":"uint256","nodeType":"ElementaryTypeName","src":"2602:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":262,"nodeType":"ArrayTypeName","src":"2602:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2557:71:1"},"returnParameters":{"id":268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":326,"src":"2658:16:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":265,"name":"uint256","nodeType":"ElementaryTypeName","src":"2658:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":266,"nodeType":"ArrayTypeName","src":"2658:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2657:18:1"},"scope":1053,"src":"2534:552:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1135],"body":{"id":341,"nodeType":"Block","src":"3229:69:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":335,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"3258:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3258:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":337,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":329,"src":"3272:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":338,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":331,"src":"3282:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":334,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1036,"src":"3239:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3239:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":340,"nodeType":"ExpressionStatement","src":"3239:52:1"}]},"documentation":{"id":327,"nodeType":"StructuredDocumentation","src":"3092:57:1","text":" @dev See {IERC1155-setApprovalForAll}."},"functionSelector":"a22cb465","id":342,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3163:17:1","nodeType":"FunctionDefinition","parameters":{"id":332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":329,"mutability":"mutable","name":"operator","nameLocation":"3189:8:1","nodeType":"VariableDeclaration","scope":342,"src":"3181:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":328,"name":"address","nodeType":"ElementaryTypeName","src":"3181:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":331,"mutability":"mutable","name":"approved","nameLocation":"3204:8:1","nodeType":"VariableDeclaration","scope":342,"src":"3199:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":330,"name":"bool","nodeType":"ElementaryTypeName","src":"3199:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3180:33:1"},"returnParameters":{"id":333,"nodeType":"ParameterList","parameters":[],"src":"3229:0:1"},"scope":1053,"src":"3154:144:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1145],"body":{"id":358,"nodeType":"Block","src":"3461:61:1","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":352,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":184,"src":"3478:18:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":354,"indexExpression":{"id":353,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"3497:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3478:27:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":356,"indexExpression":{"id":355,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":347,"src":"3506:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3478:37:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":351,"id":357,"nodeType":"Return","src":"3471:44:1"}]},"documentation":{"id":343,"nodeType":"StructuredDocumentation","src":"3304:56:1","text":" @dev See {IERC1155-isApprovedForAll}."},"functionSelector":"e985e9c5","id":359,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"3374:16:1","nodeType":"FunctionDefinition","parameters":{"id":348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":345,"mutability":"mutable","name":"account","nameLocation":"3399:7:1","nodeType":"VariableDeclaration","scope":359,"src":"3391:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":344,"name":"address","nodeType":"ElementaryTypeName","src":"3391:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":347,"mutability":"mutable","name":"operator","nameLocation":"3416:8:1","nodeType":"VariableDeclaration","scope":359,"src":"3408:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":346,"name":"address","nodeType":"ElementaryTypeName","src":"3408:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3390:35:1"},"returnParameters":{"id":351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":359,"src":"3455:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":349,"name":"bool","nodeType":"ElementaryTypeName","src":"3455:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3454:6:1"},"scope":1053,"src":"3365:157:1","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1159],"body":{"id":402,"nodeType":"Block","src":"3702:238:1","statements":[{"assignments":[374],"declarations":[{"constant":false,"id":374,"mutability":"mutable","name":"sender","nameLocation":"3720:6:1","nodeType":"VariableDeclaration","scope":402,"src":"3712:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":373,"name":"address","nodeType":"ElementaryTypeName","src":"3712:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":375,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"3729:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3729:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3712:29:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":378,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3755:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":379,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"3763:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3755:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3773:31:1","subExpression":{"arguments":[{"id":382,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3791:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":383,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"3797:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":381,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":359,"src":"3774:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3774:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3755:49:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":393,"nodeType":"IfStatement","src":"3751:129:1","trueBody":{"id":392,"nodeType":"Block","src":"3806:74:1","statements":[{"errorCall":{"arguments":[{"id":388,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"3856:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":389,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3864:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":387,"name":"ERC1155MissingApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"3827:28:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:42:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":391,"nodeType":"RevertStatement","src":"3820:49:1"}]}},{"expression":{"arguments":[{"id":395,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3907:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":396,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"3913:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"3917:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":398,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"3921:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":399,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":370,"src":"3928:4:1","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_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":394,"name":"_safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"3889:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":401,"nodeType":"ExpressionStatement","src":"3889:44:1"}]},"documentation":{"id":360,"nodeType":"StructuredDocumentation","src":"3528:56:1","text":" @dev See {IERC1155-safeTransferFrom}."},"functionSelector":"f242432a","id":403,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3598:16:1","nodeType":"FunctionDefinition","parameters":{"id":371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":362,"mutability":"mutable","name":"from","nameLocation":"3623:4:1","nodeType":"VariableDeclaration","scope":403,"src":"3615:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":361,"name":"address","nodeType":"ElementaryTypeName","src":"3615:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":364,"mutability":"mutable","name":"to","nameLocation":"3637:2:1","nodeType":"VariableDeclaration","scope":403,"src":"3629:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":363,"name":"address","nodeType":"ElementaryTypeName","src":"3629:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":366,"mutability":"mutable","name":"id","nameLocation":"3649:2:1","nodeType":"VariableDeclaration","scope":403,"src":"3641:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":365,"name":"uint256","nodeType":"ElementaryTypeName","src":"3641:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":368,"mutability":"mutable","name":"value","nameLocation":"3661:5:1","nodeType":"VariableDeclaration","scope":403,"src":"3653:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":367,"name":"uint256","nodeType":"ElementaryTypeName","src":"3653:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":370,"mutability":"mutable","name":"data","nameLocation":"3681:4:1","nodeType":"VariableDeclaration","scope":403,"src":"3668:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":369,"name":"bytes","nodeType":"ElementaryTypeName","src":"3668:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3614:72:1"},"returnParameters":{"id":372,"nodeType":"ParameterList","parameters":[],"src":"3702:0:1"},"scope":1053,"src":"3589:351:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[1175],"body":{"id":448,"nodeType":"Block","src":"4196:245:1","statements":[{"assignments":[420],"declarations":[{"constant":false,"id":420,"mutability":"mutable","name":"sender","nameLocation":"4214:6:1","nodeType":"VariableDeclaration","scope":448,"src":"4206:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"4206:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":423,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":421,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"4223:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4223:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4206:29:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":424,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"4249:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":425,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4257:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4249:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4267:31:1","subExpression":{"arguments":[{"id":428,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"4285:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":429,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4291:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":427,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":359,"src":"4268:16:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4268:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4249:49:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":439,"nodeType":"IfStatement","src":"4245:129:1","trueBody":{"id":438,"nodeType":"Block","src":"4300:74:1","statements":[{"errorCall":{"arguments":[{"id":434,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"4350:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":435,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"4358:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":433,"name":"ERC1155MissingApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"4321:28:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:42:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":437,"nodeType":"RevertStatement","src":"4314:49:1"}]}},{"expression":{"arguments":[{"id":441,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"4406:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":442,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":408,"src":"4412:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":443,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"4416:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":444,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":414,"src":"4421:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":445,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":416,"src":"4429:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":440,"name":"_safeBatchTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"4383:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4383:51:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":447,"nodeType":"ExpressionStatement","src":"4383:51:1"}]},"documentation":{"id":404,"nodeType":"StructuredDocumentation","src":"3946:61:1","text":" @dev See {IERC1155-safeBatchTransferFrom}."},"functionSelector":"2eb2c2d6","id":449,"implemented":true,"kind":"function","modifiers":[],"name":"safeBatchTransferFrom","nameLocation":"4021:21:1","nodeType":"FunctionDefinition","parameters":{"id":417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":406,"mutability":"mutable","name":"from","nameLocation":"4060:4:1","nodeType":"VariableDeclaration","scope":449,"src":"4052:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":405,"name":"address","nodeType":"ElementaryTypeName","src":"4052:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":408,"mutability":"mutable","name":"to","nameLocation":"4082:2:1","nodeType":"VariableDeclaration","scope":449,"src":"4074:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":407,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":411,"mutability":"mutable","name":"ids","nameLocation":"4111:3:1","nodeType":"VariableDeclaration","scope":449,"src":"4094:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":409,"name":"uint256","nodeType":"ElementaryTypeName","src":"4094:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":410,"nodeType":"ArrayTypeName","src":"4094:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":414,"mutability":"mutable","name":"values","nameLocation":"4141:6:1","nodeType":"VariableDeclaration","scope":449,"src":"4124:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":412,"name":"uint256","nodeType":"ElementaryTypeName","src":"4124:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":413,"nodeType":"ArrayTypeName","src":"4124:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":416,"mutability":"mutable","name":"data","nameLocation":"4170:4:1","nodeType":"VariableDeclaration","scope":449,"src":"4157:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":415,"name":"bytes","nodeType":"ElementaryTypeName","src":"4157:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4042:138:1"},"returnParameters":{"id":418,"nodeType":"ParameterList","parameters":[],"src":"4196:0:1"},"scope":1053,"src":"4012:429:1","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":601,"nodeType":"Block","src":"5249:1174:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":463,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"5263:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5267:6:1","memberName":"length","nodeType":"MemberAccess","src":"5263:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":465,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"5277:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5284:6:1","memberName":"length","nodeType":"MemberAccess","src":"5277:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5263:27:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":476,"nodeType":"IfStatement","src":"5259:117:1","trueBody":{"id":475,"nodeType":"Block","src":"5292:84:1","statements":[{"errorCall":{"arguments":[{"expression":{"id":469,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"5339:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5343:6:1","memberName":"length","nodeType":"MemberAccess","src":"5339:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":471,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"5351:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5358:6:1","memberName":"length","nodeType":"MemberAccess","src":"5351:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":468,"name":"ERC1155InvalidArrayLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":135,"src":"5313:25:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5313:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":474,"nodeType":"RevertStatement","src":"5306:59:1"}]}},{"assignments":[478],"declarations":[{"constant":false,"id":478,"mutability":"mutable","name":"operator","nameLocation":"5394:8:1","nodeType":"VariableDeclaration","scope":601,"src":"5386:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":477,"name":"address","nodeType":"ElementaryTypeName","src":"5386:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":481,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":479,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"5405:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5405:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5386:31:1"},{"body":{"id":562,"nodeType":"Block","src":"5469:650:1","statements":[{"assignments":[494],"declarations":[{"constant":false,"id":494,"mutability":"mutable","name":"id","nameLocation":"5491:2:1","nodeType":"VariableDeclaration","scope":562,"src":"5483:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":493,"name":"uint256","nodeType":"ElementaryTypeName","src":"5483:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":499,"initialValue":{"arguments":[{"id":497,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"5519:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":495,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"5496:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5500:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2242,"src":"5496:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5496:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5483:38:1"},{"assignments":[501],"declarations":[{"constant":false,"id":501,"mutability":"mutable","name":"value","nameLocation":"5543:5:1","nodeType":"VariableDeclaration","scope":562,"src":"5535:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":500,"name":"uint256","nodeType":"ElementaryTypeName","src":"5535:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":506,"initialValue":{"arguments":[{"id":504,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"5577:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":502,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"5551:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5558:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2242,"src":"5551:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5551:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5535:44:1"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":507,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"5598:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5614:1:1","typeDescriptions":{"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":509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5606:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":508,"name":"address","nodeType":"ElementaryTypeName","src":"5606:7:1","typeDescriptions":{}}},"id":511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5606:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5598:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":545,"nodeType":"IfStatement","src":"5594:420:1","trueBody":{"id":544,"nodeType":"Block","src":"5618:396:1","statements":[{"assignments":[514],"declarations":[{"constant":false,"id":514,"mutability":"mutable","name":"fromBalance","nameLocation":"5644:11:1","nodeType":"VariableDeclaration","scope":544,"src":"5636:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":513,"name":"uint256","nodeType":"ElementaryTypeName","src":"5636:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":520,"initialValue":{"baseExpression":{"baseExpression":{"id":515,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"5658:9:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":517,"indexExpression":{"id":516,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":494,"src":"5668:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:13:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":519,"indexExpression":{"id":518,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"5672:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5636:41:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":521,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"5699:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"5713:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5699:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":532,"nodeType":"IfStatement","src":"5695:129:1","trueBody":{"id":531,"nodeType":"Block","src":"5720:104:1","statements":[{"errorCall":{"arguments":[{"id":525,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"5776:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":526,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"5782:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"5795:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":528,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":494,"src":"5802:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":524,"name":"ERC1155InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"5749:26:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256,uint256) pure returns (error)"}},"id":529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5749:56:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":530,"nodeType":"RevertStatement","src":"5742:63:1"}]}},{"id":543,"nodeType":"UncheckedBlock","src":"5841:159:1","statements":[{"expression":{"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":533,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"5940:9:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":536,"indexExpression":{"id":534,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":494,"src":"5950:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5940:13:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":537,"indexExpression":{"id":535,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"5954:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5940:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":538,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":514,"src":"5962:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":539,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"5976:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5962:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5940:41:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":542,"nodeType":"ExpressionStatement","src":"5940:41:1"}]}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":546,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":454,"src":"6032:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6046:1:1","typeDescriptions":{"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":548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6038:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":547,"name":"address","nodeType":"ElementaryTypeName","src":"6038:7:1","typeDescriptions":{}}},"id":550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6038:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6032:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":561,"nodeType":"IfStatement","src":"6028:81:1","trueBody":{"id":560,"nodeType":"Block","src":"6050:59:1","statements":[{"expression":{"id":558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":552,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"6068:9:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(address => uint256))"}},"id":555,"indexExpression":{"id":553,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":494,"src":"6078:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6068:13:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":556,"indexExpression":{"id":554,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":454,"src":"6082:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6068:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"6089:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6068:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":559,"nodeType":"ExpressionStatement","src":"6068:26:1"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":486,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"5448:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":487,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"5452:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5456:6:1","memberName":"length","nodeType":"MemberAccess","src":"5452:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5448:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":563,"initializationExpression":{"assignments":[483],"declarations":[{"constant":false,"id":483,"mutability":"mutable","name":"i","nameLocation":"5441:1:1","nodeType":"VariableDeclaration","scope":563,"src":"5433:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":482,"name":"uint256","nodeType":"ElementaryTypeName","src":"5433:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":485,"initialValue":{"hexValue":"30","id":484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5445:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5433:13:1"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5464:3:1","subExpression":{"id":490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"5466:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":492,"nodeType":"ExpressionStatement","src":"5464:3:1"},"nodeType":"ForStatement","src":"5428:691:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":564,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"6133:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6137:6:1","memberName":"length","nodeType":"MemberAccess","src":"6133:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6147:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6133:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":599,"nodeType":"Block","src":"6341:76:1","statements":[{"eventCall":{"arguments":[{"id":592,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"6374:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":593,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"6384:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":594,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":454,"src":"6390:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":595,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"6394:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":596,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"6399:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":591,"name":"TransferBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1088,"src":"6360:13:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256[] memory,uint256[] memory)"}},"id":597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6360:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":598,"nodeType":"EmitStatement","src":"6355:51:1"}]},"id":600,"nodeType":"IfStatement","src":"6129:288:1","trueBody":{"id":590,"nodeType":"Block","src":"6150:185:1","statements":[{"assignments":[569],"declarations":[{"constant":false,"id":569,"mutability":"mutable","name":"id","nameLocation":"6172:2:1","nodeType":"VariableDeclaration","scope":590,"src":"6164:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":568,"name":"uint256","nodeType":"ElementaryTypeName","src":"6164:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":574,"initialValue":{"arguments":[{"hexValue":"30","id":572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6200:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":570,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":457,"src":"6177:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6181:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2242,"src":"6177:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6177:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6164:38:1"},{"assignments":[576],"declarations":[{"constant":false,"id":576,"mutability":"mutable","name":"value","nameLocation":"6224:5:1","nodeType":"VariableDeclaration","scope":590,"src":"6216:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":575,"name":"uint256","nodeType":"ElementaryTypeName","src":"6216:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":581,"initialValue":{"arguments":[{"hexValue":"30","id":579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6258:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":577,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"6232:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6239:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2242,"src":"6232:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6232:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6216:44:1"},{"eventCall":{"arguments":[{"id":583,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"6294:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":584,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":452,"src":"6304:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":585,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":454,"src":"6310:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":586,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"6314:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":587,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"6318:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":582,"name":"TransferSingle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1073,"src":"6279:14:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256,uint256)"}},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6279:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":589,"nodeType":"EmitStatement","src":"6274:50:1"}]}}]},"documentation":{"id":450,"nodeType":"StructuredDocumentation","src":"4447:690:1","text":" @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`. Will mint (or burn) if `from`\n (or `to`) is the zero address.\n Emits a {TransferSingle} event if the arrays contain one element, and {TransferBatch} otherwise.\n Requirements:\n - If `to` refers to a smart contract, it must implement either {IERC1155Receiver-onERC1155Received}\n or {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\n - `ids` and `values` must have the same length.\n NOTE: The ERC-1155 acceptance check is not performed in this function. See {_updateWithAcceptanceCheck} instead."},"id":602,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"5151:7:1","nodeType":"FunctionDefinition","parameters":{"id":461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":452,"mutability":"mutable","name":"from","nameLocation":"5167:4:1","nodeType":"VariableDeclaration","scope":602,"src":"5159:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":451,"name":"address","nodeType":"ElementaryTypeName","src":"5159:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":454,"mutability":"mutable","name":"to","nameLocation":"5181:2:1","nodeType":"VariableDeclaration","scope":602,"src":"5173:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":453,"name":"address","nodeType":"ElementaryTypeName","src":"5173:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":457,"mutability":"mutable","name":"ids","nameLocation":"5202:3:1","nodeType":"VariableDeclaration","scope":602,"src":"5185:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":455,"name":"uint256","nodeType":"ElementaryTypeName","src":"5185:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":456,"nodeType":"ArrayTypeName","src":"5185:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":460,"mutability":"mutable","name":"values","nameLocation":"5224:6:1","nodeType":"VariableDeclaration","scope":602,"src":"5207:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":458,"name":"uint256","nodeType":"ElementaryTypeName","src":"5207:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":459,"nodeType":"ArrayTypeName","src":"5207:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5158:73:1"},"returnParameters":{"id":462,"nodeType":"ParameterList","parameters":[],"src":"5249:0:1"},"scope":1053,"src":"5142:1281:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":681,"nodeType":"Block","src":"7193:509:1","statements":[{"expression":{"arguments":[{"id":619,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"7211:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":620,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"7217:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":621,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"7221:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":622,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"7226:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":618,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":602,"src":"7203:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory)"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7203:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":624,"nodeType":"ExpressionStatement","src":"7203:30:1"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":625,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"7247:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7261:1:1","typeDescriptions":{"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":627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7253:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":626,"name":"address","nodeType":"ElementaryTypeName","src":"7253:7:1","typeDescriptions":{}}},"id":629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7253:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7247:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":680,"nodeType":"IfStatement","src":"7243:453:1","trueBody":{"id":679,"nodeType":"Block","src":"7265:431:1","statements":[{"assignments":[632],"declarations":[{"constant":false,"id":632,"mutability":"mutable","name":"operator","nameLocation":"7287:8:1","nodeType":"VariableDeclaration","scope":679,"src":"7279:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":631,"name":"address","nodeType":"ElementaryTypeName","src":"7279:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":635,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":633,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"7298:10:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7298:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7279:31:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":636,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"7328:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7332:6:1","memberName":"length","nodeType":"MemberAccess","src":"7328:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7342:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7328:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":677,"nodeType":"Block","src":"7574:112:1","statements":[{"expression":{"arguments":[{"id":669,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"7633:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":670,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"7643:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":671,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"7649:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":672,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"7653:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":673,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"7658:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":674,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"7666:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":666,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"7592:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1155Utils_$1388_$","typeString":"type(library ERC1155Utils)"}},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7605:27:1","memberName":"checkOnERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1387,"src":"7592:40:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7592:79:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":676,"nodeType":"ExpressionStatement","src":"7592:79:1"}]},"id":678,"nodeType":"IfStatement","src":"7324:362:1","trueBody":{"id":665,"nodeType":"Block","src":"7345:223:1","statements":[{"assignments":[641],"declarations":[{"constant":false,"id":641,"mutability":"mutable","name":"id","nameLocation":"7371:2:1","nodeType":"VariableDeclaration","scope":665,"src":"7363:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":640,"name":"uint256","nodeType":"ElementaryTypeName","src":"7363:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":646,"initialValue":{"arguments":[{"hexValue":"30","id":644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7399:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":642,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"7376:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7380:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2242,"src":"7376:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7376:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7363:38:1"},{"assignments":[648],"declarations":[{"constant":false,"id":648,"mutability":"mutable","name":"value","nameLocation":"7427:5:1","nodeType":"VariableDeclaration","scope":665,"src":"7419:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":647,"name":"uint256","nodeType":"ElementaryTypeName","src":"7419:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":653,"initialValue":{"arguments":[{"hexValue":"30","id":651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7461:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":649,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":613,"src":"7435:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7442:18:1","memberName":"unsafeMemoryAccess","nodeType":"MemberAccess","referencedDeclaration":2242,"src":"7435:25:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$attached_to$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7435:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7419:44:1"},{"expression":{"arguments":[{"id":657,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":632,"src":"7517:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":658,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"7527:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":659,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":607,"src":"7533:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":660,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":641,"src":"7537:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":648,"src":"7541:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":662,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"7548:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":654,"name":"ERC1155Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"7481:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1155Utils_$1388_$","typeString":"type(library ERC1155Utils)"}},"id":656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7494:22:1","memberName":"checkOnERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1313,"src":"7481:35:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,uint256,bytes memory)"}},"id":663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7481:72:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":664,"nodeType":"ExpressionStatement","src":"7481:72:1"}]}}]}}]},"documentation":{"id":603,"nodeType":"StructuredDocumentation","src":"6429:568:1","text":" @dev Version of {_update} that performs the token acceptance check by calling\n {IERC1155Receiver-onERC1155Received} or {IERC1155Receiver-onERC1155BatchReceived} on the receiver address if it\n contains code (eg. is a smart contract at the moment of execution).\n IMPORTANT: Overriding this function is discouraged because it poses a reentrancy risk from the receiver. So any\n update to the contract state after this function would break the check-effect-interaction pattern. Consider\n overriding {_update} instead."},"id":682,"implemented":true,"kind":"function","modifiers":[],"name":"_updateWithAcceptanceCheck","nameLocation":"7011:26:1","nodeType":"FunctionDefinition","parameters":{"id":616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":605,"mutability":"mutable","name":"from","nameLocation":"7055:4:1","nodeType":"VariableDeclaration","scope":682,"src":"7047:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":604,"name":"address","nodeType":"ElementaryTypeName","src":"7047:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":607,"mutability":"mutable","name":"to","nameLocation":"7077:2:1","nodeType":"VariableDeclaration","scope":682,"src":"7069:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":606,"name":"address","nodeType":"ElementaryTypeName","src":"7069:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":610,"mutability":"mutable","name":"ids","nameLocation":"7106:3:1","nodeType":"VariableDeclaration","scope":682,"src":"7089:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7089:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":609,"nodeType":"ArrayTypeName","src":"7089:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":613,"mutability":"mutable","name":"values","nameLocation":"7136:6:1","nodeType":"VariableDeclaration","scope":682,"src":"7119:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":611,"name":"uint256","nodeType":"ElementaryTypeName","src":"7119:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":612,"nodeType":"ArrayTypeName","src":"7119:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":615,"mutability":"mutable","name":"data","nameLocation":"7165:4:1","nodeType":"VariableDeclaration","scope":682,"src":"7152:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":614,"name":"bytes","nodeType":"ElementaryTypeName","src":"7152:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7037:138:1"},"returnParameters":{"id":617,"nodeType":"ParameterList","parameters":[],"src":"7193:0:1"},"scope":1053,"src":"7002:700:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":747,"nodeType":"Block","src":"8267:355:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":696,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"8281:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8295:1:1","typeDescriptions":{"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":698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8287:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":697,"name":"address","nodeType":"ElementaryTypeName","src":"8287:7:1","typeDescriptions":{}}},"id":700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8287:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8281:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":710,"nodeType":"IfStatement","src":"8277:88:1","trueBody":{"id":709,"nodeType":"Block","src":"8299:66:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8351:1:1","typeDescriptions":{"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":704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8343:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":703,"name":"address","nodeType":"ElementaryTypeName","src":"8343:7:1","typeDescriptions":{}}},"id":706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8343:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":702,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"8320:22:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8320:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":708,"nodeType":"RevertStatement","src":"8313:41:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":711,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":685,"src":"8378:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8394:1:1","typeDescriptions":{"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":713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8386:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":712,"name":"address","nodeType":"ElementaryTypeName","src":"8386:7:1","typeDescriptions":{}}},"id":715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8386:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8378:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":725,"nodeType":"IfStatement","src":"8374:88:1","trueBody":{"id":724,"nodeType":"Block","src":"8398:64:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8448:1:1","typeDescriptions":{"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":719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8440:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":718,"name":"address","nodeType":"ElementaryTypeName","src":"8440:7:1","typeDescriptions":{}}},"id":721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8440:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":717,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"8419:20:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8419:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":723,"nodeType":"RevertStatement","src":"8412:39:1"}]}},{"assignments":[730,733],"declarations":[{"constant":false,"id":730,"mutability":"mutable","name":"ids","nameLocation":"8489:3:1","nodeType":"VariableDeclaration","scope":747,"src":"8472:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":728,"name":"uint256","nodeType":"ElementaryTypeName","src":"8472:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":729,"nodeType":"ArrayTypeName","src":"8472:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":733,"mutability":"mutable","name":"values","nameLocation":"8511:6:1","nodeType":"VariableDeclaration","scope":747,"src":"8494:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":731,"name":"uint256","nodeType":"ElementaryTypeName","src":"8494:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":732,"nodeType":"ArrayTypeName","src":"8494:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":738,"initialValue":{"arguments":[{"id":735,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":689,"src":"8540:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":736,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"8544:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":734,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1052,"src":"8521:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8521:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"8471:79:1"},{"expression":{"arguments":[{"id":740,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":685,"src":"8587:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":741,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"8593:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":742,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":730,"src":"8597:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":743,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":733,"src":"8602:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":744,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"8610:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":739,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"8560:26:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":746,"nodeType":"ExpressionStatement","src":"8560:55:1"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"7708:446:1","text":" @dev Transfers a `value` tokens of token type `id` from `from` to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"id":748,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransferFrom","nameLocation":"8168:17:1","nodeType":"FunctionDefinition","parameters":{"id":694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":685,"mutability":"mutable","name":"from","nameLocation":"8194:4:1","nodeType":"VariableDeclaration","scope":748,"src":"8186:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":684,"name":"address","nodeType":"ElementaryTypeName","src":"8186:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":687,"mutability":"mutable","name":"to","nameLocation":"8208:2:1","nodeType":"VariableDeclaration","scope":748,"src":"8200:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":686,"name":"address","nodeType":"ElementaryTypeName","src":"8200:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":689,"mutability":"mutable","name":"id","nameLocation":"8220:2:1","nodeType":"VariableDeclaration","scope":748,"src":"8212:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":688,"name":"uint256","nodeType":"ElementaryTypeName","src":"8212:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":691,"mutability":"mutable","name":"value","nameLocation":"8232:5:1","nodeType":"VariableDeclaration","scope":748,"src":"8224:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":690,"name":"uint256","nodeType":"ElementaryTypeName","src":"8224:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":693,"mutability":"mutable","name":"data","nameLocation":"8252:4:1","nodeType":"VariableDeclaration","scope":748,"src":"8239:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":692,"name":"bytes","nodeType":"ElementaryTypeName","src":"8239:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8185:72:1"},"returnParameters":{"id":695,"nodeType":"ParameterList","parameters":[],"src":"8267:0:1"},"scope":1053,"src":"8159:463:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":802,"nodeType":"Block","src":"9202:266:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":764,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":753,"src":"9216:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9230:1:1","typeDescriptions":{"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":766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9222:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":765,"name":"address","nodeType":"ElementaryTypeName","src":"9222:7:1","typeDescriptions":{}}},"id":768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9222:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9216:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":778,"nodeType":"IfStatement","src":"9212:88:1","trueBody":{"id":777,"nodeType":"Block","src":"9234:66:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9286:1:1","typeDescriptions":{"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":772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9278:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":771,"name":"address","nodeType":"ElementaryTypeName","src":"9278:7:1","typeDescriptions":{}}},"id":774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9278:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":770,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"9255:22:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":776,"nodeType":"RevertStatement","src":"9248:41:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":779,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":751,"src":"9313:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9329:1:1","typeDescriptions":{"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":781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9321:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":780,"name":"address","nodeType":"ElementaryTypeName","src":"9321:7:1","typeDescriptions":{}}},"id":783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9321:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9313:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":793,"nodeType":"IfStatement","src":"9309:88:1","trueBody":{"id":792,"nodeType":"Block","src":"9333:64:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9383:1:1","typeDescriptions":{"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":787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9375:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":786,"name":"address","nodeType":"ElementaryTypeName","src":"9375:7:1","typeDescriptions":{}}},"id":789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9375:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":785,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"9354:20:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9354:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":791,"nodeType":"RevertStatement","src":"9347:39:1"}]}},{"expression":{"arguments":[{"id":795,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":751,"src":"9433:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":796,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":753,"src":"9439:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":797,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":756,"src":"9443:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":798,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":759,"src":"9448:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":799,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":761,"src":"9456:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":794,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"9406:26:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9406:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":801,"nodeType":"ExpressionStatement","src":"9406:55:1"}]},"documentation":{"id":749,"nodeType":"StructuredDocumentation","src":"8628:390:1","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.\n Emits a {TransferBatch} event.\n Requirements:\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value.\n - `ids` and `values` must have the same length."},"id":803,"implemented":true,"kind":"function","modifiers":[],"name":"_safeBatchTransferFrom","nameLocation":"9032:22:1","nodeType":"FunctionDefinition","parameters":{"id":762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":751,"mutability":"mutable","name":"from","nameLocation":"9072:4:1","nodeType":"VariableDeclaration","scope":803,"src":"9064:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":750,"name":"address","nodeType":"ElementaryTypeName","src":"9064:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":753,"mutability":"mutable","name":"to","nameLocation":"9094:2:1","nodeType":"VariableDeclaration","scope":803,"src":"9086:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":752,"name":"address","nodeType":"ElementaryTypeName","src":"9086:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":756,"mutability":"mutable","name":"ids","nameLocation":"9123:3:1","nodeType":"VariableDeclaration","scope":803,"src":"9106:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":754,"name":"uint256","nodeType":"ElementaryTypeName","src":"9106:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":755,"nodeType":"ArrayTypeName","src":"9106:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":759,"mutability":"mutable","name":"values","nameLocation":"9153:6:1","nodeType":"VariableDeclaration","scope":803,"src":"9136:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":757,"name":"uint256","nodeType":"ElementaryTypeName","src":"9136:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":758,"nodeType":"ArrayTypeName","src":"9136:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":761,"mutability":"mutable","name":"data","nameLocation":"9182:4:1","nodeType":"VariableDeclaration","scope":803,"src":"9169:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":760,"name":"bytes","nodeType":"ElementaryTypeName","src":"9169:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9054:138:1"},"returnParameters":{"id":763,"nodeType":"ParameterList","parameters":[],"src":"9202:0:1"},"scope":1053,"src":"9023:445:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":813,"nodeType":"Block","src":"10346:30:1","statements":[{"expression":{"id":811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":809,"name":"_uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"10356:4:1","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":810,"name":"newuri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":806,"src":"10363:6:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"10356:13:1","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":812,"nodeType":"ExpressionStatement","src":"10356:13:1"}]},"documentation":{"id":804,"nodeType":"StructuredDocumentation","src":"9474:811:1","text":" @dev Sets a new URI for all token types, by relying on the token type ID\n substitution mechanism\n https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC].\n By this mechanism, any occurrence of the `\\{id\\}` substring in either the\n URI or any of the values in the JSON file at said URI will be replaced by\n clients with the token type ID.\n For example, the `https://token-cdn-domain/\\{id\\}.json` URI would be\n interpreted by clients as\n `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`\n for token type ID 0x4cce0.\n See {uri}.\n Because these URIs cannot be meaningfully represented by the {URI} event,\n this function emits no events."},"id":814,"implemented":true,"kind":"function","modifiers":[],"name":"_setURI","nameLocation":"10299:7:1","nodeType":"FunctionDefinition","parameters":{"id":807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":806,"mutability":"mutable","name":"newuri","nameLocation":"10321:6:1","nodeType":"VariableDeclaration","scope":814,"src":"10307:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":805,"name":"string","nodeType":"ElementaryTypeName","src":"10307:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10306:22:1"},"returnParameters":{"id":808,"nodeType":"ParameterList","parameters":[],"src":"10346:0:1"},"scope":1053,"src":"10290:86:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":865,"nodeType":"Block","src":"10836:264:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":826,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"10850:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10864:1:1","typeDescriptions":{"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":828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10856:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":827,"name":"address","nodeType":"ElementaryTypeName","src":"10856:7:1","typeDescriptions":{}}},"id":830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10856:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10850:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":840,"nodeType":"IfStatement","src":"10846:88:1","trueBody":{"id":839,"nodeType":"Block","src":"10868:66:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10920:1:1","typeDescriptions":{"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":834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10912:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":833,"name":"address","nodeType":"ElementaryTypeName","src":"10912:7:1","typeDescriptions":{}}},"id":836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10912:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":832,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"10889:22:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10889:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":838,"nodeType":"RevertStatement","src":"10882:41:1"}]}},{"assignments":[845,848],"declarations":[{"constant":false,"id":845,"mutability":"mutable","name":"ids","nameLocation":"10961:3:1","nodeType":"VariableDeclaration","scope":865,"src":"10944:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":843,"name":"uint256","nodeType":"ElementaryTypeName","src":"10944:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":844,"nodeType":"ArrayTypeName","src":"10944:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":848,"mutability":"mutable","name":"values","nameLocation":"10983:6:1","nodeType":"VariableDeclaration","scope":865,"src":"10966:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":846,"name":"uint256","nodeType":"ElementaryTypeName","src":"10966:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":847,"nodeType":"ArrayTypeName","src":"10966:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":853,"initialValue":{"arguments":[{"id":850,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"11012:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":851,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"11016:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":849,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1052,"src":"10993:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10993:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"10943:79:1"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11067:1:1","typeDescriptions":{"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":856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11059:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":855,"name":"address","nodeType":"ElementaryTypeName","src":"11059:7:1","typeDescriptions":{}}},"id":858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11059:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":859,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":817,"src":"11071:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":860,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"11075:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":861,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":848,"src":"11080:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":862,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":823,"src":"11088:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":854,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"11032:26:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11032:61:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":864,"nodeType":"ExpressionStatement","src":"11032:61:1"}]},"documentation":{"id":815,"nodeType":"StructuredDocumentation","src":"10382:367:1","text":" @dev Creates a `value` amount of tokens of type `id`, and assigns them to `to`.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"id":866,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"10763:5:1","nodeType":"FunctionDefinition","parameters":{"id":824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":817,"mutability":"mutable","name":"to","nameLocation":"10777:2:1","nodeType":"VariableDeclaration","scope":866,"src":"10769:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":816,"name":"address","nodeType":"ElementaryTypeName","src":"10769:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":819,"mutability":"mutable","name":"id","nameLocation":"10789:2:1","nodeType":"VariableDeclaration","scope":866,"src":"10781:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":818,"name":"uint256","nodeType":"ElementaryTypeName","src":"10781:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":821,"mutability":"mutable","name":"value","nameLocation":"10801:5:1","nodeType":"VariableDeclaration","scope":866,"src":"10793:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":820,"name":"uint256","nodeType":"ElementaryTypeName","src":"10793:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":823,"mutability":"mutable","name":"data","nameLocation":"10821:4:1","nodeType":"VariableDeclaration","scope":866,"src":"10808:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":822,"name":"bytes","nodeType":"ElementaryTypeName","src":"10808:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10768:58:1"},"returnParameters":{"id":825,"nodeType":"ParameterList","parameters":[],"src":"10836:0:1"},"scope":1053,"src":"10754:346:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":906,"nodeType":"Block","src":"11638:175:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":880,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"11652:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11666:1:1","typeDescriptions":{"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":882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11658:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":881,"name":"address","nodeType":"ElementaryTypeName","src":"11658:7:1","typeDescriptions":{}}},"id":884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11658:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11652:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":894,"nodeType":"IfStatement","src":"11648:88:1","trueBody":{"id":893,"nodeType":"Block","src":"11670:66:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11722:1:1","typeDescriptions":{"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":888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11714:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":887,"name":"address","nodeType":"ElementaryTypeName","src":"11714:7:1","typeDescriptions":{}}},"id":890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11714:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":886,"name":"ERC1155InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":111,"src":"11691:22:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11691:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":892,"nodeType":"RevertStatement","src":"11684:41:1"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11780:1:1","typeDescriptions":{"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":897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11772:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":896,"name":"address","nodeType":"ElementaryTypeName","src":"11772:7:1","typeDescriptions":{}}},"id":899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11772:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":900,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":869,"src":"11784:2:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":901,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":872,"src":"11788:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":902,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"11793:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":903,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"11801:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":895,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"11745:26:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11745:61:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":905,"nodeType":"ExpressionStatement","src":"11745:61:1"}]},"documentation":{"id":867,"nodeType":"StructuredDocumentation","src":"11106:420:1","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.\n Emits a {TransferBatch} event.\n Requirements:\n - `ids` and `values` must have the same length.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value."},"id":907,"implemented":true,"kind":"function","modifiers":[],"name":"_mintBatch","nameLocation":"11540:10:1","nodeType":"FunctionDefinition","parameters":{"id":878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":869,"mutability":"mutable","name":"to","nameLocation":"11559:2:1","nodeType":"VariableDeclaration","scope":907,"src":"11551:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":868,"name":"address","nodeType":"ElementaryTypeName","src":"11551:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":872,"mutability":"mutable","name":"ids","nameLocation":"11580:3:1","nodeType":"VariableDeclaration","scope":907,"src":"11563:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":870,"name":"uint256","nodeType":"ElementaryTypeName","src":"11563:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":871,"nodeType":"ArrayTypeName","src":"11563:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":875,"mutability":"mutable","name":"values","nameLocation":"11602:6:1","nodeType":"VariableDeclaration","scope":907,"src":"11585:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":873,"name":"uint256","nodeType":"ElementaryTypeName","src":"11585:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":874,"nodeType":"ArrayTypeName","src":"11585:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":877,"mutability":"mutable","name":"data","nameLocation":"11623:4:1","nodeType":"VariableDeclaration","scope":907,"src":"11610:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":876,"name":"bytes","nodeType":"ElementaryTypeName","src":"11610:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11550:78:1"},"returnParameters":{"id":879,"nodeType":"ParameterList","parameters":[],"src":"11638:0:1"},"scope":1053,"src":"11531:282:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":956,"nodeType":"Block","src":"12172:264:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":917,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"12186:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12202:1:1","typeDescriptions":{"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":919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12194:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":918,"name":"address","nodeType":"ElementaryTypeName","src":"12194:7:1","typeDescriptions":{}}},"id":921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12194:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12186:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":931,"nodeType":"IfStatement","src":"12182:88:1","trueBody":{"id":930,"nodeType":"Block","src":"12206:64:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12256:1:1","typeDescriptions":{"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":925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12248:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":924,"name":"address","nodeType":"ElementaryTypeName","src":"12248:7:1","typeDescriptions":{}}},"id":927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12248:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":923,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"12227:20:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12227:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":929,"nodeType":"RevertStatement","src":"12220:39:1"}]}},{"assignments":[936,939],"declarations":[{"constant":false,"id":936,"mutability":"mutable","name":"ids","nameLocation":"12297:3:1","nodeType":"VariableDeclaration","scope":956,"src":"12280:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":934,"name":"uint256","nodeType":"ElementaryTypeName","src":"12280:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":935,"nodeType":"ArrayTypeName","src":"12280:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":939,"mutability":"mutable","name":"values","nameLocation":"12319:6:1","nodeType":"VariableDeclaration","scope":956,"src":"12302:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":937,"name":"uint256","nodeType":"ElementaryTypeName","src":"12302:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":938,"nodeType":"ArrayTypeName","src":"12302:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":944,"initialValue":{"arguments":[{"id":941,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"12348:2:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":942,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":914,"src":"12352:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":940,"name":"_asSingletonArrays","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1052,"src":"12329:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (uint256[] memory,uint256[] memory)"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12329:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(uint256[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12279:79:1"},{"expression":{"arguments":[{"id":946,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":910,"src":"12395:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12409:1:1","typeDescriptions":{"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":948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12401:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":947,"name":"address","nodeType":"ElementaryTypeName","src":"12401:7:1","typeDescriptions":{}}},"id":950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":951,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":936,"src":"12413:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":952,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":939,"src":"12418:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"hexValue":"","id":953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12426:2:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":945,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"12368:26:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12368:61:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":955,"nodeType":"ExpressionStatement","src":"12368:61:1"}]},"documentation":{"id":908,"nodeType":"StructuredDocumentation","src":"11819:283:1","text":" @dev Destroys a `value` amount of tokens of type `id` from `from`\n Emits a {TransferSingle} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`."},"id":957,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"12116:5:1","nodeType":"FunctionDefinition","parameters":{"id":915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":910,"mutability":"mutable","name":"from","nameLocation":"12130:4:1","nodeType":"VariableDeclaration","scope":957,"src":"12122:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":909,"name":"address","nodeType":"ElementaryTypeName","src":"12122:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":912,"mutability":"mutable","name":"id","nameLocation":"12144:2:1","nodeType":"VariableDeclaration","scope":957,"src":"12136:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":911,"name":"uint256","nodeType":"ElementaryTypeName","src":"12136:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":914,"mutability":"mutable","name":"value","nameLocation":"12156:5:1","nodeType":"VariableDeclaration","scope":957,"src":"12148:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":913,"name":"uint256","nodeType":"ElementaryTypeName","src":"12148:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12121:41:1"},"returnParameters":{"id":916,"nodeType":"ParameterList","parameters":[],"src":"12172:0:1"},"scope":1053,"src":"12107:329:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":995,"nodeType":"Block","src":"12882:175:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":969,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"12896:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12912:1:1","typeDescriptions":{"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":"12904:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":970,"name":"address","nodeType":"ElementaryTypeName","src":"12904:7:1","typeDescriptions":{}}},"id":973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12904:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12896:18:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":983,"nodeType":"IfStatement","src":"12892:88:1","trueBody":{"id":982,"nodeType":"Block","src":"12916:64:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12966:1:1","typeDescriptions":{"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":977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12958:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":976,"name":"address","nodeType":"ElementaryTypeName","src":"12958:7:1","typeDescriptions":{}}},"id":979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12958:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":975,"name":"ERC1155InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"12937:20:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12937:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":981,"nodeType":"RevertStatement","src":"12930:39:1"}]}},{"expression":{"arguments":[{"id":985,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"13016:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13030:1:1","typeDescriptions":{"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":987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13022:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":986,"name":"address","nodeType":"ElementaryTypeName","src":"13022:7:1","typeDescriptions":{}}},"id":989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13022:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":990,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":963,"src":"13034:3:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":991,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":966,"src":"13039:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"hexValue":"","id":992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13047:2:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":984,"name":"_updateWithAcceptanceCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":682,"src":"12989:26:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory)"}},"id":993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:61:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":994,"nodeType":"ExpressionStatement","src":"12989:61:1"}]},"documentation":{"id":958,"nodeType":"StructuredDocumentation","src":"12442:345:1","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.\n Emits a {TransferBatch} event.\n Requirements:\n - `from` cannot be the zero address.\n - `from` must have at least `value` amount of tokens of type `id`.\n - `ids` and `values` must have the same length."},"id":996,"implemented":true,"kind":"function","modifiers":[],"name":"_burnBatch","nameLocation":"12801:10:1","nodeType":"FunctionDefinition","parameters":{"id":967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":960,"mutability":"mutable","name":"from","nameLocation":"12820:4:1","nodeType":"VariableDeclaration","scope":996,"src":"12812:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":959,"name":"address","nodeType":"ElementaryTypeName","src":"12812:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":963,"mutability":"mutable","name":"ids","nameLocation":"12843:3:1","nodeType":"VariableDeclaration","scope":996,"src":"12826:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":961,"name":"uint256","nodeType":"ElementaryTypeName","src":"12826:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":962,"nodeType":"ArrayTypeName","src":"12826:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":966,"mutability":"mutable","name":"values","nameLocation":"12865:6:1","nodeType":"VariableDeclaration","scope":996,"src":"12848:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":964,"name":"uint256","nodeType":"ElementaryTypeName","src":"12848:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":965,"nodeType":"ArrayTypeName","src":"12848:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12811:61:1"},"returnParameters":{"id":968,"nodeType":"ParameterList","parameters":[],"src":"12882:0:1"},"scope":1053,"src":"12792:265:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1035,"nodeType":"Block","src":"13369:222:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1006,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"13383:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13403:1:1","typeDescriptions":{"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":1008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13395:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1007,"name":"address","nodeType":"ElementaryTypeName","src":"13395:7:1","typeDescriptions":{}}},"id":1010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13395:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13383:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1020,"nodeType":"IfStatement","src":"13379:94:1","trueBody":{"id":1019,"nodeType":"Block","src":"13407:66:1","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":1015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13459:1:1","typeDescriptions":{"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":1014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13451:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1013,"name":"address","nodeType":"ElementaryTypeName","src":"13451:7:1","typeDescriptions":{}}},"id":1016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13451:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1012,"name":"ERC1155InvalidOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"13428:22:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13428:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1018,"nodeType":"RevertStatement","src":"13421:41:1"}]}},{"expression":{"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":1021,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":184,"src":"13482:18:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":1024,"indexExpression":{"id":1022,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":999,"src":"13501:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13482:25:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1025,"indexExpression":{"id":1023,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"13508:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13482:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1026,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"13520:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13482:46:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1028,"nodeType":"ExpressionStatement","src":"13482:46:1"},{"eventCall":{"arguments":[{"id":1030,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":999,"src":"13558:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1031,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1001,"src":"13565:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1032,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1003,"src":"13575:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1029,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"13543:14:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13543:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1034,"nodeType":"EmitStatement","src":"13538:46:1"}]},"documentation":{"id":997,"nodeType":"StructuredDocumentation","src":"13063:208:1","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address."},"id":1036,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"13285:18:1","nodeType":"FunctionDefinition","parameters":{"id":1004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":999,"mutability":"mutable","name":"owner","nameLocation":"13312:5:1","nodeType":"VariableDeclaration","scope":1036,"src":"13304:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":998,"name":"address","nodeType":"ElementaryTypeName","src":"13304:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1001,"mutability":"mutable","name":"operator","nameLocation":"13327:8:1","nodeType":"VariableDeclaration","scope":1036,"src":"13319:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1000,"name":"address","nodeType":"ElementaryTypeName","src":"13319:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1003,"mutability":"mutable","name":"approved","nameLocation":"13342:8:1","nodeType":"VariableDeclaration","scope":1036,"src":"13337:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1002,"name":"bool","nodeType":"ElementaryTypeName","src":"13337:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13303:48:1"},"returnParameters":{"id":1005,"nodeType":"ParameterList","parameters":[],"src":"13369:0:1"},"scope":1053,"src":"13276:315:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":1051,"nodeType":"Block","src":"13865:691:1","statements":[{"AST":{"nativeSrc":"13927:623:1","nodeType":"YulBlock","src":"13927:623:1","statements":[{"nativeSrc":"13985:21:1","nodeType":"YulAssignment","src":"13985:21:1","value":{"arguments":[{"kind":"number","nativeSrc":"14001:4:1","nodeType":"YulLiteral","src":"14001:4:1","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13995:5:1","nodeType":"YulIdentifier","src":"13995:5:1"},"nativeSrc":"13995:11:1","nodeType":"YulFunctionCall","src":"13995:11:1"},"variableNames":[{"name":"array1","nativeSrc":"13985:6:1","nodeType":"YulIdentifier","src":"13985:6:1"}]},{"expression":{"arguments":[{"name":"array1","nativeSrc":"14063:6:1","nodeType":"YulIdentifier","src":"14063:6:1"},{"kind":"number","nativeSrc":"14071:1:1","nodeType":"YulLiteral","src":"14071:1:1","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"14056:6:1","nodeType":"YulIdentifier","src":"14056:6:1"},"nativeSrc":"14056:17:1","nodeType":"YulFunctionCall","src":"14056:17:1"},"nativeSrc":"14056:17:1","nodeType":"YulExpressionStatement","src":"14056:17:1"},{"expression":{"arguments":[{"arguments":[{"name":"array1","nativeSrc":"14194:6:1","nodeType":"YulIdentifier","src":"14194:6:1"},{"kind":"number","nativeSrc":"14202:4:1","nodeType":"YulLiteral","src":"14202:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14190:3:1","nodeType":"YulIdentifier","src":"14190:3:1"},"nativeSrc":"14190:17:1","nodeType":"YulFunctionCall","src":"14190:17:1"},{"name":"element1","nativeSrc":"14209:8:1","nodeType":"YulIdentifier","src":"14209:8:1"}],"functionName":{"name":"mstore","nativeSrc":"14183:6:1","nodeType":"YulIdentifier","src":"14183:6:1"},"nativeSrc":"14183:35:1","nodeType":"YulFunctionCall","src":"14183:35:1"},"nativeSrc":"14183:35:1","nodeType":"YulExpressionStatement","src":"14183:35:1"},{"nativeSrc":"14309:27:1","nodeType":"YulAssignment","src":"14309:27:1","value":{"arguments":[{"name":"array1","nativeSrc":"14323:6:1","nodeType":"YulIdentifier","src":"14323:6:1"},{"kind":"number","nativeSrc":"14331:4:1","nodeType":"YulLiteral","src":"14331:4:1","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14319:3:1","nodeType":"YulIdentifier","src":"14319:3:1"},"nativeSrc":"14319:17:1","nodeType":"YulFunctionCall","src":"14319:17:1"},"variableNames":[{"name":"array2","nativeSrc":"14309:6:1","nodeType":"YulIdentifier","src":"14309:6:1"}]},{"expression":{"arguments":[{"name":"array2","nativeSrc":"14356:6:1","nodeType":"YulIdentifier","src":"14356:6:1"},{"kind":"number","nativeSrc":"14364:1:1","nodeType":"YulLiteral","src":"14364:1:1","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"14349:6:1","nodeType":"YulIdentifier","src":"14349:6:1"},"nativeSrc":"14349:17:1","nodeType":"YulFunctionCall","src":"14349:17:1"},"nativeSrc":"14349:17:1","nodeType":"YulExpressionStatement","src":"14349:17:1"},{"expression":{"arguments":[{"arguments":[{"name":"array2","nativeSrc":"14390:6:1","nodeType":"YulIdentifier","src":"14390:6:1"},{"kind":"number","nativeSrc":"14398:4:1","nodeType":"YulLiteral","src":"14398:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14386:3:1","nodeType":"YulIdentifier","src":"14386:3:1"},"nativeSrc":"14386:17:1","nodeType":"YulFunctionCall","src":"14386:17:1"},{"name":"element2","nativeSrc":"14405:8:1","nodeType":"YulIdentifier","src":"14405:8:1"}],"functionName":{"name":"mstore","nativeSrc":"14379:6:1","nodeType":"YulIdentifier","src":"14379:6:1"},"nativeSrc":"14379:35:1","nodeType":"YulFunctionCall","src":"14379:35:1"},"nativeSrc":"14379:35:1","nodeType":"YulExpressionStatement","src":"14379:35:1"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14516:4:1","nodeType":"YulLiteral","src":"14516:4:1","type":"","value":"0x40"},{"arguments":[{"name":"array2","nativeSrc":"14526:6:1","nodeType":"YulIdentifier","src":"14526:6:1"},{"kind":"number","nativeSrc":"14534:4:1","nodeType":"YulLiteral","src":"14534:4:1","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14522:3:1","nodeType":"YulIdentifier","src":"14522:3:1"},"nativeSrc":"14522:17:1","nodeType":"YulFunctionCall","src":"14522:17:1"}],"functionName":{"name":"mstore","nativeSrc":"14509:6:1","nodeType":"YulIdentifier","src":"14509:6:1"},"nativeSrc":"14509:31:1","nodeType":"YulFunctionCall","src":"14509:31:1"},"nativeSrc":"14509:31:1","nodeType":"YulExpressionStatement","src":"14509:31:1"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1045,"isOffset":false,"isSlot":false,"src":"13985:6:1","valueSize":1},{"declaration":1045,"isOffset":false,"isSlot":false,"src":"14063:6:1","valueSize":1},{"declaration":1045,"isOffset":false,"isSlot":false,"src":"14194:6:1","valueSize":1},{"declaration":1045,"isOffset":false,"isSlot":false,"src":"14323:6:1","valueSize":1},{"declaration":1048,"isOffset":false,"isSlot":false,"src":"14309:6:1","valueSize":1},{"declaration":1048,"isOffset":false,"isSlot":false,"src":"14356:6:1","valueSize":1},{"declaration":1048,"isOffset":false,"isSlot":false,"src":"14390:6:1","valueSize":1},{"declaration":1048,"isOffset":false,"isSlot":false,"src":"14526:6:1","valueSize":1},{"declaration":1039,"isOffset":false,"isSlot":false,"src":"14209:8:1","valueSize":1},{"declaration":1041,"isOffset":false,"isSlot":false,"src":"14405:8:1","valueSize":1}],"id":1050,"nodeType":"InlineAssembly","src":"13918:632:1"}]},"documentation":{"id":1037,"nodeType":"StructuredDocumentation","src":"13597:105:1","text":" @dev Creates an array in memory with only one value for each of the elements provided."},"id":1052,"implemented":true,"kind":"function","modifiers":[],"name":"_asSingletonArrays","nameLocation":"13716:18:1","nodeType":"FunctionDefinition","parameters":{"id":1042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1039,"mutability":"mutable","name":"element1","nameLocation":"13752:8:1","nodeType":"VariableDeclaration","scope":1052,"src":"13744:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1038,"name":"uint256","nodeType":"ElementaryTypeName","src":"13744:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1041,"mutability":"mutable","name":"element2","nameLocation":"13778:8:1","nodeType":"VariableDeclaration","scope":1052,"src":"13770:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1040,"name":"uint256","nodeType":"ElementaryTypeName","src":"13770:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13734:58:1"},"returnParameters":{"id":1049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1045,"mutability":"mutable","name":"array1","nameLocation":"13832:6:1","nodeType":"VariableDeclaration","scope":1052,"src":"13815:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1043,"name":"uint256","nodeType":"ElementaryTypeName","src":"13815:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1044,"nodeType":"ArrayTypeName","src":"13815:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1048,"mutability":"mutable","name":"array2","nameLocation":"13857:6:1","nodeType":"VariableDeclaration","scope":1052,"src":"13840:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1046,"name":"uint256","nodeType":"ElementaryTypeName","src":"13840:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1047,"nodeType":"ArrayTypeName","src":"13840:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"13814:50:1"},"scope":1053,"src":"13707:849:1","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1054,"src":"725:13833:1","usedErrors":[101,106,111,118,123,128,135],"usedEvents":[1073,1088,1097,1104]}],"src":"109:14450:1"},"id":1},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","exportedSymbols":{"IERC1155":[1176],"IERC165":[2843]},"id":1177,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1055,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"110:24:2"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1057,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1177,"sourceUnit":2844,"src":"136:62:2","symbolAliases":[{"foreign":{"id":1056,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"144:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1059,"name":"IERC165","nameLocations":["359:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"359:7:2"},"id":1060,"nodeType":"InheritanceSpecifier","src":"359:7:2"}],"canonicalName":"IERC1155","contractDependencies":[],"contractKind":"interface","documentation":{"id":1058,"nodeType":"StructuredDocumentation","src":"200:136:2","text":" @dev Required interface of an ERC-1155 compliant contract, as defined in the\n https://eips.ethereum.org/EIPS/eip-1155[ERC]."},"fullyImplemented":false,"id":1176,"linearizedBaseContracts":[1176,2843],"name":"IERC1155","nameLocation":"347:8:2","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":1061,"nodeType":"StructuredDocumentation","src":"373:125:2","text":" @dev Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`."},"eventSelector":"c3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62","id":1073,"name":"TransferSingle","nameLocation":"509:14:2","nodeType":"EventDefinition","parameters":{"id":1072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1063,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"540:8:2","nodeType":"VariableDeclaration","scope":1073,"src":"524:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1062,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1065,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"566:4:2","nodeType":"VariableDeclaration","scope":1073,"src":"550:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1064,"name":"address","nodeType":"ElementaryTypeName","src":"550:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1067,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"588:2:2","nodeType":"VariableDeclaration","scope":1073,"src":"572:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1066,"name":"address","nodeType":"ElementaryTypeName","src":"572:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1069,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"600:2:2","nodeType":"VariableDeclaration","scope":1073,"src":"592:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1068,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1071,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"612:5:2","nodeType":"VariableDeclaration","scope":1073,"src":"604:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1070,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:95:2"},"src":"503:116:2"},{"anonymous":false,"documentation":{"id":1074,"nodeType":"StructuredDocumentation","src":"625:144:2","text":" @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all\n transfers."},"eventSelector":"4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb","id":1088,"name":"TransferBatch","nameLocation":"780:13:2","nodeType":"EventDefinition","parameters":{"id":1087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1076,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"819:8:2","nodeType":"VariableDeclaration","scope":1088,"src":"803:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1075,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1078,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"853:4:2","nodeType":"VariableDeclaration","scope":1088,"src":"837:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1077,"name":"address","nodeType":"ElementaryTypeName","src":"837:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1080,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"883:2:2","nodeType":"VariableDeclaration","scope":1088,"src":"867:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1079,"name":"address","nodeType":"ElementaryTypeName","src":"867:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1083,"indexed":false,"mutability":"mutable","name":"ids","nameLocation":"905:3:2","nodeType":"VariableDeclaration","scope":1088,"src":"895:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1081,"name":"uint256","nodeType":"ElementaryTypeName","src":"895:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1082,"nodeType":"ArrayTypeName","src":"895:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1086,"indexed":false,"mutability":"mutable","name":"values","nameLocation":"928:6:2","nodeType":"VariableDeclaration","scope":1088,"src":"918:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1084,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1085,"nodeType":"ArrayTypeName","src":"918:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"793:147:2"},"src":"774:167:2"},{"anonymous":false,"documentation":{"id":1089,"nodeType":"StructuredDocumentation","src":"947:147:2","text":" @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to\n `approved`."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":1097,"name":"ApprovalForAll","nameLocation":"1105:14:2","nodeType":"EventDefinition","parameters":{"id":1096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1091,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1136:7:2","nodeType":"VariableDeclaration","scope":1097,"src":"1120:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1090,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1093,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"1161:8:2","nodeType":"VariableDeclaration","scope":1097,"src":"1145:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1092,"name":"address","nodeType":"ElementaryTypeName","src":"1145:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1095,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"1176:8:2","nodeType":"VariableDeclaration","scope":1097,"src":"1171:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1094,"name":"bool","nodeType":"ElementaryTypeName","src":"1171:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1119:66:2"},"src":"1099:87:2"},{"anonymous":false,"documentation":{"id":1098,"nodeType":"StructuredDocumentation","src":"1192:343:2","text":" @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.\n If an {URI} event was emitted for `id`, the standard\n https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value\n returned by {IERC1155MetadataURI-uri}."},"eventSelector":"6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b","id":1104,"name":"URI","nameLocation":"1546:3:2","nodeType":"EventDefinition","parameters":{"id":1103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1100,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"1557:5:2","nodeType":"VariableDeclaration","scope":1104,"src":"1550:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1099,"name":"string","nodeType":"ElementaryTypeName","src":"1550:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1102,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1580:2:2","nodeType":"VariableDeclaration","scope":1104,"src":"1564:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1564:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1549:34:2"},"src":"1540:44:2"},{"documentation":{"id":1105,"nodeType":"StructuredDocumentation","src":"1590:90:2","text":" @dev Returns the value of tokens of token type `id` owned by `account`."},"functionSelector":"00fdd58e","id":1114,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1694:9:2","nodeType":"FunctionDefinition","parameters":{"id":1110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1107,"mutability":"mutable","name":"account","nameLocation":"1712:7:2","nodeType":"VariableDeclaration","scope":1114,"src":"1704:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1106,"name":"address","nodeType":"ElementaryTypeName","src":"1704:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1109,"mutability":"mutable","name":"id","nameLocation":"1729:2:2","nodeType":"VariableDeclaration","scope":1114,"src":"1721:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1108,"name":"uint256","nodeType":"ElementaryTypeName","src":"1721:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1703:29:2"},"returnParameters":{"id":1113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1114,"src":"1756:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1111,"name":"uint256","nodeType":"ElementaryTypeName","src":"1756:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1755:9:2"},"scope":1176,"src":"1685:80:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1115,"nodeType":"StructuredDocumentation","src":"1771:188:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.\n Requirements:\n - `accounts` and `ids` must have the same length."},"functionSelector":"4e1273f4","id":1127,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfBatch","nameLocation":"1973:14:2","nodeType":"FunctionDefinition","parameters":{"id":1122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1118,"mutability":"mutable","name":"accounts","nameLocation":"2016:8:2","nodeType":"VariableDeclaration","scope":1127,"src":"1997:27:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1116,"name":"address","nodeType":"ElementaryTypeName","src":"1997:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1117,"nodeType":"ArrayTypeName","src":"1997:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1121,"mutability":"mutable","name":"ids","nameLocation":"2053:3:2","nodeType":"VariableDeclaration","scope":1127,"src":"2034:22:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1119,"name":"uint256","nodeType":"ElementaryTypeName","src":"2034:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1120,"nodeType":"ArrayTypeName","src":"2034:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1987:75:2"},"returnParameters":{"id":1126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1127,"src":"2086:16:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1123,"name":"uint256","nodeType":"ElementaryTypeName","src":"2086:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1124,"nodeType":"ArrayTypeName","src":"2086:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2085:18:2"},"scope":1176,"src":"1964:140:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1128,"nodeType":"StructuredDocumentation","src":"2110:254:2","text":" @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,\n Emits an {ApprovalForAll} event.\n Requirements:\n - `operator` cannot be the zero address."},"functionSelector":"a22cb465","id":1135,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"2378:17:2","nodeType":"FunctionDefinition","parameters":{"id":1133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1130,"mutability":"mutable","name":"operator","nameLocation":"2404:8:2","nodeType":"VariableDeclaration","scope":1135,"src":"2396:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1129,"name":"address","nodeType":"ElementaryTypeName","src":"2396:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1132,"mutability":"mutable","name":"approved","nameLocation":"2419:8:2","nodeType":"VariableDeclaration","scope":1135,"src":"2414:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1131,"name":"bool","nodeType":"ElementaryTypeName","src":"2414:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2395:33:2"},"returnParameters":{"id":1134,"nodeType":"ParameterList","parameters":[],"src":"2437:0:2"},"scope":1176,"src":"2369:69:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1136,"nodeType":"StructuredDocumentation","src":"2444:135:2","text":" @dev Returns true if `operator` is approved to transfer ``account``'s tokens.\n See {setApprovalForAll}."},"functionSelector":"e985e9c5","id":1145,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2593:16:2","nodeType":"FunctionDefinition","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1138,"mutability":"mutable","name":"account","nameLocation":"2618:7:2","nodeType":"VariableDeclaration","scope":1145,"src":"2610:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1137,"name":"address","nodeType":"ElementaryTypeName","src":"2610:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1140,"mutability":"mutable","name":"operator","nameLocation":"2635:8:2","nodeType":"VariableDeclaration","scope":1145,"src":"2627:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1139,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2609:35:2"},"returnParameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1145,"src":"2668:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1142,"name":"bool","nodeType":"ElementaryTypeName","src":"2668:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2667:6:2"},"scope":1176,"src":"2584:90:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1146,"nodeType":"StructuredDocumentation","src":"2680:910:2","text":" @dev Transfers a `value` amount of tokens of type `id` from `from` to `to`.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155Received} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits a {TransferSingle} event.\n Requirements:\n - `to` cannot be the zero address.\n - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.\n - `from` must have a balance of tokens of type `id` of at least `value` amount.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the\n acceptance magic value."},"functionSelector":"f242432a","id":1159,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3604:16:2","nodeType":"FunctionDefinition","parameters":{"id":1157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1148,"mutability":"mutable","name":"from","nameLocation":"3629:4:2","nodeType":"VariableDeclaration","scope":1159,"src":"3621:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1147,"name":"address","nodeType":"ElementaryTypeName","src":"3621:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1150,"mutability":"mutable","name":"to","nameLocation":"3643:2:2","nodeType":"VariableDeclaration","scope":1159,"src":"3635:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1149,"name":"address","nodeType":"ElementaryTypeName","src":"3635:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1152,"mutability":"mutable","name":"id","nameLocation":"3655:2:2","nodeType":"VariableDeclaration","scope":1159,"src":"3647:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1154,"mutability":"mutable","name":"value","nameLocation":"3667:5:2","nodeType":"VariableDeclaration","scope":1159,"src":"3659:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1153,"name":"uint256","nodeType":"ElementaryTypeName","src":"3659:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1156,"mutability":"mutable","name":"data","nameLocation":"3689:4:2","nodeType":"VariableDeclaration","scope":1159,"src":"3674:19:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1155,"name":"bytes","nodeType":"ElementaryTypeName","src":"3674:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3620:74:2"},"returnParameters":{"id":1158,"nodeType":"ParameterList","parameters":[],"src":"3703:0:2"},"scope":1176,"src":"3595:109:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1160,"nodeType":"StructuredDocumentation","src":"3710:814:2","text":" @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.\n WARNING: This function can potentially allow a reentrancy attack when transferring tokens\n to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver.\n Ensure to follow the checks-effects-interactions pattern and consider employing\n reentrancy guards when interacting with untrusted contracts.\n Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments.\n Requirements:\n - `ids` and `values` must have the same length.\n - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the\n acceptance magic value."},"functionSelector":"2eb2c2d6","id":1175,"implemented":false,"kind":"function","modifiers":[],"name":"safeBatchTransferFrom","nameLocation":"4538:21:2","nodeType":"FunctionDefinition","parameters":{"id":1173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1162,"mutability":"mutable","name":"from","nameLocation":"4577:4:2","nodeType":"VariableDeclaration","scope":1175,"src":"4569:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1161,"name":"address","nodeType":"ElementaryTypeName","src":"4569:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1164,"mutability":"mutable","name":"to","nameLocation":"4599:2:2","nodeType":"VariableDeclaration","scope":1175,"src":"4591:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1163,"name":"address","nodeType":"ElementaryTypeName","src":"4591:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1167,"mutability":"mutable","name":"ids","nameLocation":"4630:3:2","nodeType":"VariableDeclaration","scope":1175,"src":"4611:22:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1165,"name":"uint256","nodeType":"ElementaryTypeName","src":"4611:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1166,"nodeType":"ArrayTypeName","src":"4611:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"values","nameLocation":"4662:6:2","nodeType":"VariableDeclaration","scope":1175,"src":"4643:25:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1168,"name":"uint256","nodeType":"ElementaryTypeName","src":"4643:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1169,"nodeType":"ArrayTypeName","src":"4643:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1172,"mutability":"mutable","name":"data","nameLocation":"4693:4:2","nodeType":"VariableDeclaration","scope":1175,"src":"4678:19:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1171,"name":"bytes","nodeType":"ElementaryTypeName","src":"4678:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4559:144:2"},"returnParameters":{"id":1174,"nodeType":"ParameterList","parameters":[],"src":"4712:0:2"},"scope":1176,"src":"4529:184:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1177,"src":"337:4378:2","usedErrors":[],"usedEvents":[1073,1088,1097,1104]}],"src":"110:4606:2"},"id":2},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","exportedSymbols":{"IERC1155Receiver":[1218],"IERC165":[2843]},"id":1219,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1178,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"118:24:3"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":1180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1219,"sourceUnit":2844,"src":"144:62:3","symbolAliases":[{"foreign":{"id":1179,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"152:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1182,"name":"IERC165","nameLocations":["357:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"357:7:3"},"id":1183,"nodeType":"InheritanceSpecifier","src":"357:7:3"}],"canonicalName":"IERC1155Receiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":1181,"nodeType":"StructuredDocumentation","src":"208:118:3","text":" @dev Interface that must be implemented by smart contracts in order to receive\n ERC-1155 token transfers."},"fullyImplemented":false,"id":1218,"linearizedBaseContracts":[1218,2843],"name":"IERC1155Receiver","nameLocation":"337:16:3","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1184,"nodeType":"StructuredDocumentation","src":"371:827:3","text":" @dev Handles the receipt of a single ERC-1155 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":1199,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"1212:17:3","nodeType":"FunctionDefinition","parameters":{"id":1195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"mutability":"mutable","name":"operator","nameLocation":"1247:8:3","nodeType":"VariableDeclaration","scope":1199,"src":"1239:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1185,"name":"address","nodeType":"ElementaryTypeName","src":"1239:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1188,"mutability":"mutable","name":"from","nameLocation":"1273:4:3","nodeType":"VariableDeclaration","scope":1199,"src":"1265:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1187,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1190,"mutability":"mutable","name":"id","nameLocation":"1295:2:3","nodeType":"VariableDeclaration","scope":1199,"src":"1287:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1189,"name":"uint256","nodeType":"ElementaryTypeName","src":"1287:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1192,"mutability":"mutable","name":"value","nameLocation":"1315:5:3","nodeType":"VariableDeclaration","scope":1199,"src":"1307:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1191,"name":"uint256","nodeType":"ElementaryTypeName","src":"1307:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1194,"mutability":"mutable","name":"data","nameLocation":"1345:4:3","nodeType":"VariableDeclaration","scope":1199,"src":"1330:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1193,"name":"bytes","nodeType":"ElementaryTypeName","src":"1330:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1229:126:3"},"returnParameters":{"id":1198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1197,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1199,"src":"1374:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1196,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1374:6:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1373:8:3"},"scope":1218,"src":"1203:179:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":1200,"nodeType":"StructuredDocumentation","src":"1388:995:3","text":" @dev Handles the receipt of a multiple ERC-1155 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":1217,"implemented":false,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"2397:22:3","nodeType":"FunctionDefinition","parameters":{"id":1213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1202,"mutability":"mutable","name":"operator","nameLocation":"2437:8:3","nodeType":"VariableDeclaration","scope":1217,"src":"2429:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1201,"name":"address","nodeType":"ElementaryTypeName","src":"2429:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1204,"mutability":"mutable","name":"from","nameLocation":"2463:4:3","nodeType":"VariableDeclaration","scope":1217,"src":"2455:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1203,"name":"address","nodeType":"ElementaryTypeName","src":"2455:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1207,"mutability":"mutable","name":"ids","nameLocation":"2496:3:3","nodeType":"VariableDeclaration","scope":1217,"src":"2477:22:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1205,"name":"uint256","nodeType":"ElementaryTypeName","src":"2477:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1206,"nodeType":"ArrayTypeName","src":"2477:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"values","nameLocation":"2528:6:3","nodeType":"VariableDeclaration","scope":1217,"src":"2509:25:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1208,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1209,"nodeType":"ArrayTypeName","src":"2509:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1212,"mutability":"mutable","name":"data","nameLocation":"2559:4:3","nodeType":"VariableDeclaration","scope":1217,"src":"2544:19:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1211,"name":"bytes","nodeType":"ElementaryTypeName","src":"2544:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2419:150:3"},"returnParameters":{"id":1216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1217,"src":"2588:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1214,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2588:6:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2587:8:3"},"scope":1218,"src":"2388:208:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1219,"src":"327:2271:3","usedErrors":[],"usedEvents":[]}],"src":"118:2481:3"},"id":3},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol","exportedSymbols":{"IERC1155":[1176],"IERC1155MetadataURI":[1234]},"id":1235,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1220,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"132:24:4"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"../IERC1155.sol","id":1222,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1235,"sourceUnit":1177,"src":"158:41:4","symbolAliases":[{"foreign":{"id":1221,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"166:8:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1224,"name":"IERC1155","nameLocations":["399:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":1176,"src":"399:8:4"},"id":1225,"nodeType":"InheritanceSpecifier","src":"399:8:4"}],"canonicalName":"IERC1155MetadataURI","contractDependencies":[],"contractKind":"interface","documentation":{"id":1223,"nodeType":"StructuredDocumentation","src":"201:164:4","text":" @dev Interface of the optional ERC1155MetadataExtension interface, as defined\n in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[ERC]."},"fullyImplemented":false,"id":1234,"linearizedBaseContracts":[1234,1176,2843],"name":"IERC1155MetadataURI","nameLocation":"376:19:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1226,"nodeType":"StructuredDocumentation","src":"414:192:4","text":" @dev Returns the URI for token type `id`.\n If the `\\{id\\}` substring is present in the URI, it must be replaced by\n clients with the actual token type ID."},"functionSelector":"0e89341c","id":1233,"implemented":false,"kind":"function","modifiers":[],"name":"uri","nameLocation":"620:3:4","nodeType":"FunctionDefinition","parameters":{"id":1229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1228,"mutability":"mutable","name":"id","nameLocation":"632:2:4","nodeType":"VariableDeclaration","scope":1233,"src":"624:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1227,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:12:4"},"returnParameters":{"id":1232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1231,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1233,"src":"659:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1230,"name":"string","nodeType":"ElementaryTypeName","src":"659:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"658:15:4"},"scope":1234,"src":"611:63:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1235,"src":"366:310:4","usedErrors":[],"usedEvents":[1073,1088,1097,1104]}],"src":"132:545:4"},"id":4},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol","exportedSymbols":{"ERC1155Utils":[1388],"IERC1155Errors":[136],"IERC1155Receiver":[1218]},"id":1389,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1236,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"../IERC1155Receiver.sol","id":1238,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1389,"sourceUnit":1219,"src":"59:57:5","symbolAliases":[{"foreign":{"id":1237,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"67:16:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../../interfaces/draft-IERC6093.sol","id":1240,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1389,"sourceUnit":137,"src":"117:70:5","symbolAliases":[{"foreign":{"id":1239,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"125:14:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ERC1155Utils","contractDependencies":[],"contractKind":"library","documentation":{"id":1241,"nodeType":"StructuredDocumentation","src":"189:132:5","text":" @dev Library that provide common ERC-1155 utility functions.\n See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155]."},"fullyImplemented":true,"id":1388,"linearizedBaseContracts":[1388],"name":"ERC1155Utils","nameLocation":"330:12:5","nodeType":"ContractDefinition","nodes":[{"body":{"id":1312,"nodeType":"Block","src":"1069:813:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1257,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1083:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1086:4:5","memberName":"code","nodeType":"MemberAccess","src":"1083:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1091:6:5","memberName":"length","nodeType":"MemberAccess","src":"1083:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1100:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1083:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1311,"nodeType":"IfStatement","src":"1079:797:5","trueBody":{"id":1310,"nodeType":"Block","src":"1103:773:5","statements":[{"clauses":[{"block":{"id":1288,"nodeType":"Block","src":"1219:221:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1275,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1273,"src":"1241:8:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1276,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"1253:16:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}},"id":1277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1270:17:5","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1199,"src":"1253:34:5","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)"}},"id":1278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1288:8:5","memberName":"selector","nodeType":"MemberAccess","src":"1253:43:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1241:55:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1287,"nodeType":"IfStatement","src":"1237:189:5","trueBody":{"id":1286,"nodeType":"Block","src":"1298:128:5","statements":[{"errorCall":{"arguments":[{"id":1283,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1404:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1280,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"1366:14:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$136_$","typeString":"type(contract IERC1155Errors)"}},"id":1282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1381:22:5","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":111,"src":"1366:37:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1285,"nodeType":"RevertStatement","src":"1359:48:5"}]}}]},"errorName":"","id":1289,"nodeType":"TryCatchClause","parameters":{"id":1274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1273,"mutability":"mutable","name":"response","nameLocation":"1209:8:5","nodeType":"VariableDeclaration","scope":1289,"src":"1202:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1272,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1202:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1201:17:5"},"src":"1193:247:5"},{"block":{"id":1307,"nodeType":"Block","src":"1469:397:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1293,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1291,"src":"1491:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1498:6:5","memberName":"length","nodeType":"MemberAccess","src":"1491:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1508:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1491:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1305,"nodeType":"Block","src":"1662:190:5","statements":[{"AST":{"nativeSrc":"1748:86:5","nodeType":"YulBlock","src":"1748:86:5","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1785:2:5","nodeType":"YulLiteral","src":"1785:2:5","type":"","value":"32"},{"name":"reason","nativeSrc":"1789:6:5","nodeType":"YulIdentifier","src":"1789:6:5"}],"functionName":{"name":"add","nativeSrc":"1781:3:5","nodeType":"YulIdentifier","src":"1781:3:5"},"nativeSrc":"1781:15:5","nodeType":"YulFunctionCall","src":"1781:15:5"},{"arguments":[{"name":"reason","nativeSrc":"1804:6:5","nodeType":"YulIdentifier","src":"1804:6:5"}],"functionName":{"name":"mload","nativeSrc":"1798:5:5","nodeType":"YulIdentifier","src":"1798:5:5"},"nativeSrc":"1798:13:5","nodeType":"YulFunctionCall","src":"1798:13:5"}],"functionName":{"name":"revert","nativeSrc":"1774:6:5","nodeType":"YulIdentifier","src":"1774:6:5"},"nativeSrc":"1774:38:5","nodeType":"YulFunctionCall","src":"1774:38:5"},"nativeSrc":"1774:38:5","nodeType":"YulExpressionStatement","src":"1774:38:5"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1291,"isOffset":false,"isSlot":false,"src":"1789:6:5","valueSize":1},{"declaration":1291,"isOffset":false,"isSlot":false,"src":"1804:6:5","valueSize":1}],"id":1304,"nodeType":"InlineAssembly","src":"1739:95:5"}]},"id":1306,"nodeType":"IfStatement","src":"1487:365:5","trueBody":{"id":1303,"nodeType":"Block","src":"1511:145:5","statements":[{"errorCall":{"arguments":[{"id":1300,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1634:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1297,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"1596:14:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$136_$","typeString":"type(contract IERC1155Errors)"}},"id":1299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1611:22:5","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":111,"src":"1596:37:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1302,"nodeType":"RevertStatement","src":"1589:48:5"}]}}]},"errorName":"","id":1308,"nodeType":"TryCatchClause","parameters":{"id":1292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1291,"mutability":"mutable","name":"reason","nameLocation":"1461:6:5","nodeType":"VariableDeclaration","scope":1308,"src":"1448:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1290,"name":"bytes","nodeType":"ElementaryTypeName","src":"1448:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1447:21:5"},"src":"1441:425:5"}],"externalCall":{"arguments":[{"id":1266,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1244,"src":"1160:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1267,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"1170:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1268,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1250,"src":"1176:2:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1269,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"1180:5:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1270,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1254,"src":"1187:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1263,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1138:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1262,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"1121:16:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155Receiver_$1218","typeString":"contract IERC1155Receiver"}},"id":1265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1142:17:5","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1199,"src":"1121:38:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"}},"id":1271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:71:5","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1309,"nodeType":"TryStatement","src":"1117:749:5"}]}}]},"documentation":{"id":1242,"nodeType":"StructuredDocumentation","src":"349:530:5","text":" @dev Performs an acceptance check for the provided `operator` by calling {IERC1155-onERC1155Received}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n the transfer."},"id":1313,"implemented":true,"kind":"function","modifiers":[],"name":"checkOnERC1155Received","nameLocation":"893:22:5","nodeType":"FunctionDefinition","parameters":{"id":1255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1244,"mutability":"mutable","name":"operator","nameLocation":"933:8:5","nodeType":"VariableDeclaration","scope":1313,"src":"925:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1243,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1246,"mutability":"mutable","name":"from","nameLocation":"959:4:5","nodeType":"VariableDeclaration","scope":1313,"src":"951:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1245,"name":"address","nodeType":"ElementaryTypeName","src":"951:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1248,"mutability":"mutable","name":"to","nameLocation":"981:2:5","nodeType":"VariableDeclaration","scope":1313,"src":"973:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1247,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1250,"mutability":"mutable","name":"id","nameLocation":"1001:2:5","nodeType":"VariableDeclaration","scope":1313,"src":"993:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1249,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1252,"mutability":"mutable","name":"value","nameLocation":"1021:5:5","nodeType":"VariableDeclaration","scope":1313,"src":"1013:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1251,"name":"uint256","nodeType":"ElementaryTypeName","src":"1013:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1254,"mutability":"mutable","name":"data","nameLocation":"1049:4:5","nodeType":"VariableDeclaration","scope":1313,"src":"1036:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1253,"name":"bytes","nodeType":"ElementaryTypeName","src":"1036:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"915:144:5"},"returnParameters":{"id":1256,"nodeType":"ParameterList","parameters":[],"src":"1069:0:5"},"scope":1388,"src":"884:998:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1386,"nodeType":"Block","src":"2643:855:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":1331,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"2657:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2660:4:5","memberName":"code","nodeType":"MemberAccess","src":"2657:7:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2665:6:5","memberName":"length","nodeType":"MemberAccess","src":"2657:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2674:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1385,"nodeType":"IfStatement","src":"2653:839:5","trueBody":{"id":1384,"nodeType":"Block","src":"2677:815:5","statements":[{"clauses":[{"block":{"id":1362,"nodeType":"Block","src":"2830:226:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1349,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1347,"src":"2852:8:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":1350,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"2864:16:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}},"id":1351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2881:22:5","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1217,"src":"2864:39:5","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2904:8:5","memberName":"selector","nodeType":"MemberAccess","src":"2864:48:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2852:60:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1361,"nodeType":"IfStatement","src":"2848:194:5","trueBody":{"id":1360,"nodeType":"Block","src":"2914:128:5","statements":[{"errorCall":{"arguments":[{"id":1357,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"3020:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1354,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"2982:14:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$136_$","typeString":"type(contract IERC1155Errors)"}},"id":1356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2997:22:5","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":111,"src":"2982:37:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2982:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1359,"nodeType":"RevertStatement","src":"2975:48:5"}]}}]},"errorName":"","id":1363,"nodeType":"TryCatchClause","parameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1347,"mutability":"mutable","name":"response","nameLocation":"2807:8:5","nodeType":"VariableDeclaration","scope":1363,"src":"2800:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1346,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2800:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2782:47:5"},"src":"2774:282:5"},{"block":{"id":1381,"nodeType":"Block","src":"3085:397:5","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1367,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"3107:6:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3114:6:5","memberName":"length","nodeType":"MemberAccess","src":"3107:13:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3124:1:5","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3107:18:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1379,"nodeType":"Block","src":"3278:190:5","statements":[{"AST":{"nativeSrc":"3364:86:5","nodeType":"YulBlock","src":"3364:86:5","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3401:2:5","nodeType":"YulLiteral","src":"3401:2:5","type":"","value":"32"},{"name":"reason","nativeSrc":"3405:6:5","nodeType":"YulIdentifier","src":"3405:6:5"}],"functionName":{"name":"add","nativeSrc":"3397:3:5","nodeType":"YulIdentifier","src":"3397:3:5"},"nativeSrc":"3397:15:5","nodeType":"YulFunctionCall","src":"3397:15:5"},{"arguments":[{"name":"reason","nativeSrc":"3420:6:5","nodeType":"YulIdentifier","src":"3420:6:5"}],"functionName":{"name":"mload","nativeSrc":"3414:5:5","nodeType":"YulIdentifier","src":"3414:5:5"},"nativeSrc":"3414:13:5","nodeType":"YulFunctionCall","src":"3414:13:5"}],"functionName":{"name":"revert","nativeSrc":"3390:6:5","nodeType":"YulIdentifier","src":"3390:6:5"},"nativeSrc":"3390:38:5","nodeType":"YulFunctionCall","src":"3390:38:5"},"nativeSrc":"3390:38:5","nodeType":"YulExpressionStatement","src":"3390:38:5"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1365,"isOffset":false,"isSlot":false,"src":"3405:6:5","valueSize":1},{"declaration":1365,"isOffset":false,"isSlot":false,"src":"3420:6:5","valueSize":1}],"id":1378,"nodeType":"InlineAssembly","src":"3355:95:5"}]},"id":1380,"nodeType":"IfStatement","src":"3103:365:5","trueBody":{"id":1377,"nodeType":"Block","src":"3127:145:5","statements":[{"errorCall":{"arguments":[{"id":1374,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"3250:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1371,"name":"IERC1155Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"3212:14:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Errors_$136_$","typeString":"type(contract IERC1155Errors)"}},"id":1373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3227:22:5","memberName":"ERC1155InvalidReceiver","nodeType":"MemberAccess","referencedDeclaration":111,"src":"3212:37:5","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1376,"nodeType":"RevertStatement","src":"3205:48:5"}]}}]},"errorName":"","id":1382,"nodeType":"TryCatchClause","parameters":{"id":1366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1365,"mutability":"mutable","name":"reason","nameLocation":"3077:6:5","nodeType":"VariableDeclaration","scope":1382,"src":"3064:19:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1364,"name":"bytes","nodeType":"ElementaryTypeName","src":"3064:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3063:21:5"},"src":"3057:425:5"}],"externalCall":{"arguments":[{"id":1340,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1316,"src":"2739:8:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1341,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"2749:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1342,"name":"ids","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1323,"src":"2755:3:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1343,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1326,"src":"2760:6:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1344,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"2768:4:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":1337,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"2712:2:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1336,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"2695:16:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}},"id":1338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:20:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155Receiver_$1218","typeString":"contract IERC1155Receiver"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2716:22:5","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1217,"src":"2695:43:5","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"}},"id":1345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:78:5","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":1383,"nodeType":"TryStatement","src":"2691:791:5"}]}}]},"documentation":{"id":1314,"nodeType":"StructuredDocumentation","src":"1888:540:5","text":" @dev Performs a batch acceptance check for the provided `operator` by calling {IERC1155-onERC1155BatchReceived}\n on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).\n The acceptance call is not executed and treated as a no-op if the target address is doesn't contain code (i.e. an EOA).\n Otherwise, the recipient must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value to accept\n the transfer."},"id":1387,"implemented":true,"kind":"function","modifiers":[],"name":"checkOnERC1155BatchReceived","nameLocation":"2442:27:5","nodeType":"FunctionDefinition","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1316,"mutability":"mutable","name":"operator","nameLocation":"2487:8:5","nodeType":"VariableDeclaration","scope":1387,"src":"2479:16:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1315,"name":"address","nodeType":"ElementaryTypeName","src":"2479:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1318,"mutability":"mutable","name":"from","nameLocation":"2513:4:5","nodeType":"VariableDeclaration","scope":1387,"src":"2505:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1317,"name":"address","nodeType":"ElementaryTypeName","src":"2505:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1320,"mutability":"mutable","name":"to","nameLocation":"2535:2:5","nodeType":"VariableDeclaration","scope":1387,"src":"2527:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1319,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1323,"mutability":"mutable","name":"ids","nameLocation":"2564:3:5","nodeType":"VariableDeclaration","scope":1387,"src":"2547:20:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1321,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1322,"nodeType":"ArrayTypeName","src":"2547:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1326,"mutability":"mutable","name":"values","nameLocation":"2594:6:5","nodeType":"VariableDeclaration","scope":1387,"src":"2577:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1324,"name":"uint256","nodeType":"ElementaryTypeName","src":"2577:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1325,"nodeType":"ArrayTypeName","src":"2577:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1328,"mutability":"mutable","name":"data","nameLocation":"2623:4:5","nodeType":"VariableDeclaration","scope":1387,"src":"2610:17:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1327,"name":"bytes","nodeType":"ElementaryTypeName","src":"2610:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2469:164:5"},"returnParameters":{"id":1330,"nodeType":"ParameterList","parameters":[],"src":"2643:0:5"},"scope":1388,"src":"2433:1065:5","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":1389,"src":"322:3178:5","usedErrors":[],"usedEvents":[]}],"src":"33:3468:5"},"id":5},"@openzeppelin/contracts/utils/Arrays.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Arrays.sol","exportedSymbols":{"Arrays":[2276],"Math":[4428],"SlotDerivation":[2488],"StorageSlot":[2807]},"id":2277,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1390,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"183:24:6"},{"absolutePath":"@openzeppelin/contracts/utils/SlotDerivation.sol","file":"./SlotDerivation.sol","id":1392,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2277,"sourceUnit":2489,"src":"209:52:6","symbolAliases":[{"foreign":{"id":1391,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2488,"src":"217:14:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"./StorageSlot.sol","id":1394,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2277,"sourceUnit":2808,"src":"262:46:6","symbolAliases":[{"foreign":{"id":1393,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2807,"src":"270:11:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1396,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2277,"sourceUnit":4429,"src":"309:37:6","symbolAliases":[{"foreign":{"id":1395,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"317:4:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Arrays","contractDependencies":[],"contractKind":"library","documentation":{"id":1397,"nodeType":"StructuredDocumentation","src":"348:63:6","text":" @dev Collection of functions related to array types."},"fullyImplemented":true,"id":2276,"linearizedBaseContracts":[2276],"name":"Arrays","nameLocation":"420:6:6","nodeType":"ContractDefinition","nodes":[{"global":false,"id":1400,"libraryName":{"id":1398,"name":"SlotDerivation","nameLocations":["439:14:6"],"nodeType":"IdentifierPath","referencedDeclaration":2488,"src":"439:14:6"},"nodeType":"UsingForDirective","src":"433:33:6","typeName":{"id":1399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"458:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":1403,"libraryName":{"id":1401,"name":"StorageSlot","nameLocations":["477:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":2807,"src":"477:11:6"},"nodeType":"UsingForDirective","src":"471:30:6","typeName":{"id":1402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":1435,"nodeType":"Block","src":"1451:83:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":1425,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1407,"src":"1479:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1424,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"1472:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1472:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1428,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1407,"src":"1492:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1427,"name":"_end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1677,"src":"1487:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1487:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1430,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"1500:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1423,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"1461:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1432,"nodeType":"ExpressionStatement","src":"1461:44:6"},{"expression":{"id":1433,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1407,"src":"1522:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":1422,"id":1434,"nodeType":"Return","src":"1515:12:6"}]},"documentation":{"id":1404,"nodeType":"StructuredDocumentation","src":"507:785:6","text":" @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1436,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1306:4:6","nodeType":"FunctionDefinition","parameters":{"id":1418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1407,"mutability":"mutable","name":"array","nameLocation":"1337:5:6","nodeType":"VariableDeclaration","scope":1436,"src":"1320:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1320:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1406,"nodeType":"ArrayTypeName","src":"1320:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":1417,"mutability":"mutable","name":"comp","nameLocation":"1399:4:6","nodeType":"VariableDeclaration","scope":1436,"src":"1352:51:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1416,"nodeType":"FunctionTypeName","parameterTypes":{"id":1412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1416,"src":"1361:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1361:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1416,"src":"1370:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1370:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1360:18:6"},"returnParameterTypes":{"id":1415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1416,"src":"1393:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1413,"name":"bool","nodeType":"ElementaryTypeName","src":"1393:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1392:6:6"},"src":"1352:51:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"1310:99:6"},"returnParameters":{"id":1422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1436,"src":"1433:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1433:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1420,"nodeType":"ArrayTypeName","src":"1433:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1432:18:6"},"scope":2276,"src":"1297:237:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1453,"nodeType":"Block","src":"1717:64:6","statements":[{"expression":{"arguments":[{"id":1447,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"1732:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1448,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1712,"src":"1739:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1446,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1436,1454,1486,1506,1538,1558],"referencedDeclaration":1436,"src":"1727:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1727:25:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1450,"nodeType":"ExpressionStatement","src":"1727:25:6"},{"expression":{"id":1451,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"1769:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":1445,"id":1452,"nodeType":"Return","src":"1762:12:6"}]},"documentation":{"id":1437,"nodeType":"StructuredDocumentation","src":"1540:93:6","text":" @dev Variant of {sort} that sorts an array of bytes32 in increasing order."},"id":1454,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"1647:4:6","nodeType":"FunctionDefinition","parameters":{"id":1441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1440,"mutability":"mutable","name":"array","nameLocation":"1669:5:6","nodeType":"VariableDeclaration","scope":1454,"src":"1652:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1652:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1439,"nodeType":"ArrayTypeName","src":"1652:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1651:24:6"},"returnParameters":{"id":1445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1454,"src":"1699:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1699:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1443,"nodeType":"ArrayTypeName","src":"1699:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1698:18:6"},"scope":2276,"src":"1638:143:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1485,"nodeType":"Block","src":"2731:97:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":1476,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1458,"src":"2766:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":1475,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1724,1736],"referencedDeclaration":1724,"src":"2746:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (bytes32[] memory)"}},"id":1477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2746:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"arguments":[{"id":1479,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1468,"src":"2793:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"}],"id":1478,"name":"_castToBytes32Comp","nodeType":"Identifier","overloadedDeclarations":[1762,1788],"referencedDeclaration":1762,"src":"2774:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$","typeString":"function (function (address,address) pure returns (bool)) pure returns (function (bytes32,bytes32) pure returns (bool))"}},"id":1480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2774:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1474,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1436,1454,1486,1506,1538,1558],"referencedDeclaration":1436,"src":"2741:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:58:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1482,"nodeType":"ExpressionStatement","src":"2741:58:6"},{"expression":{"id":1483,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1458,"src":"2816:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":1473,"id":1484,"nodeType":"Return","src":"2809:12:6"}]},"documentation":{"id":1455,"nodeType":"StructuredDocumentation","src":"1787:785:6","text":" @dev Sort an array of address (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1486,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"2586:4:6","nodeType":"FunctionDefinition","parameters":{"id":1469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1458,"mutability":"mutable","name":"array","nameLocation":"2617:5:6","nodeType":"VariableDeclaration","scope":1486,"src":"2600:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1456,"name":"address","nodeType":"ElementaryTypeName","src":"2600:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1457,"nodeType":"ArrayTypeName","src":"2600:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1468,"mutability":"mutable","name":"comp","nameLocation":"2679:4:6","nodeType":"VariableDeclaration","scope":1486,"src":"2632:51:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":1467,"nodeType":"FunctionTypeName","parameterTypes":{"id":1463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1467,"src":"2641:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1459,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1467,"src":"2650:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1461,"name":"address","nodeType":"ElementaryTypeName","src":"2650:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2640:18:6"},"returnParameterTypes":{"id":1466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1467,"src":"2673:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1464,"name":"bool","nodeType":"ElementaryTypeName","src":"2673:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2672:6:6"},"src":"2632:51:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"2590:99:6"},"returnParameters":{"id":1473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1486,"src":"2713:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1471,"nodeType":"ArrayTypeName","src":"2713:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2712:18:6"},"scope":2276,"src":"2577:251:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1505,"nodeType":"Block","src":"3011:85:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":1498,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"3046:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":1497,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1724,1736],"referencedDeclaration":1724,"src":"3026:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address[] memory) pure returns (bytes32[] memory)"}},"id":1499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3026:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1500,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1712,"src":"3054:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1496,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1436,1454,1486,1506,1538,1558],"referencedDeclaration":1436,"src":"3021:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:46:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1502,"nodeType":"ExpressionStatement","src":"3021:46:6"},{"expression":{"id":1503,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1490,"src":"3084:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":1495,"id":1504,"nodeType":"Return","src":"3077:12:6"}]},"documentation":{"id":1487,"nodeType":"StructuredDocumentation","src":"2834:93:6","text":" @dev Variant of {sort} that sorts an array of address in increasing order."},"id":1506,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"2941:4:6","nodeType":"FunctionDefinition","parameters":{"id":1491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1490,"mutability":"mutable","name":"array","nameLocation":"2963:5:6","nodeType":"VariableDeclaration","scope":1506,"src":"2946:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1488,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1489,"nodeType":"ArrayTypeName","src":"2946:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2945:24:6"},"returnParameters":{"id":1495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1506,"src":"2993:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1492,"name":"address","nodeType":"ElementaryTypeName","src":"2993:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1493,"nodeType":"ArrayTypeName","src":"2993:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2992:18:6"},"scope":2276,"src":"2932:164:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1537,"nodeType":"Block","src":"4046:97:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":1528,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1510,"src":"4081:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":1527,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1724,1736],"referencedDeclaration":1736,"src":"4061:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256[] memory) pure returns (bytes32[] memory)"}},"id":1529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4061:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"arguments":[{"id":1531,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"4108:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}],"id":1530,"name":"_castToBytes32Comp","nodeType":"Identifier","overloadedDeclarations":[1762,1788],"referencedDeclaration":1788,"src":"4089:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$","typeString":"function (function (uint256,uint256) pure returns (bool)) pure returns (function (bytes32,bytes32) pure returns (bool))"}},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4089:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1526,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1436,1454,1486,1506,1538,1558],"referencedDeclaration":1436,"src":"4056:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:58:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1534,"nodeType":"ExpressionStatement","src":"4056:58:6"},{"expression":{"id":1535,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1510,"src":"4131:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1525,"id":1536,"nodeType":"Return","src":"4124:12:6"}]},"documentation":{"id":1507,"nodeType":"StructuredDocumentation","src":"3102:785:6","text":" @dev Sort an array of uint256 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS."},"id":1538,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"3901:4:6","nodeType":"FunctionDefinition","parameters":{"id":1521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1510,"mutability":"mutable","name":"array","nameLocation":"3932:5:6","nodeType":"VariableDeclaration","scope":1538,"src":"3915:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1508,"name":"uint256","nodeType":"ElementaryTypeName","src":"3915:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1509,"nodeType":"ArrayTypeName","src":"3915:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1520,"mutability":"mutable","name":"comp","nameLocation":"3994:4:6","nodeType":"VariableDeclaration","scope":1538,"src":"3947:51:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":1519,"nodeType":"FunctionTypeName","parameterTypes":{"id":1515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1519,"src":"3956:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1511,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1519,"src":"3965:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1513,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:18:6"},"returnParameterTypes":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1519,"src":"3988:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1516,"name":"bool","nodeType":"ElementaryTypeName","src":"3988:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3987:6:6"},"src":"3947:51:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"3905:99:6"},"returnParameters":{"id":1525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1538,"src":"4028:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4028:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1523,"nodeType":"ArrayTypeName","src":"4028:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4027:18:6"},"scope":2276,"src":"3892:251:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1557,"nodeType":"Block","src":"4326:85:6","statements":[{"expression":{"arguments":[{"arguments":[{"id":1550,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"4361:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":1549,"name":"_castToBytes32Array","nodeType":"Identifier","overloadedDeclarations":[1724,1736],"referencedDeclaration":1736,"src":"4341:19:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256[] memory) pure returns (bytes32[] memory)"}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4341:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1552,"name":"_defaultComp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1712,"src":"4369:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1548,"name":"sort","nodeType":"Identifier","overloadedDeclarations":[1436,1454,1486,1506,1538,1558],"referencedDeclaration":1436,"src":"4336:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (bytes32[] memory,function (bytes32,bytes32) pure returns (bool)) pure returns (bytes32[] memory)"}},"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:46:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1554,"nodeType":"ExpressionStatement","src":"4336:46:6"},{"expression":{"id":1555,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"4399:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1547,"id":1556,"nodeType":"Return","src":"4392:12:6"}]},"documentation":{"id":1539,"nodeType":"StructuredDocumentation","src":"4149:93:6","text":" @dev Variant of {sort} that sorts an array of uint256 in increasing order."},"id":1558,"implemented":true,"kind":"function","modifiers":[],"name":"sort","nameLocation":"4256:4:6","nodeType":"FunctionDefinition","parameters":{"id":1543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1542,"mutability":"mutable","name":"array","nameLocation":"4278:5:6","nodeType":"VariableDeclaration","scope":1558,"src":"4261:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1540,"name":"uint256","nodeType":"ElementaryTypeName","src":"4261:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1541,"nodeType":"ArrayTypeName","src":"4261:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4260:24:6"},"returnParameters":{"id":1547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1546,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1558,"src":"4308:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1544,"name":"uint256","nodeType":"ElementaryTypeName","src":"4308:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1545,"nodeType":"ArrayTypeName","src":"4308:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4307:18:6"},"scope":2276,"src":"4247:164:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1645,"nodeType":"Block","src":"5027:889:6","statements":[{"id":1644,"nodeType":"UncheckedBlock","src":"5037:873:6","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1576,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"5065:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1577,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"5071:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30783430","id":1579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5079:4:6","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"0x40"},"src":"5065:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1582,"nodeType":"IfStatement","src":"5061:31:6","trueBody":{"functionReturnParameters":1575,"id":1581,"nodeType":"Return","src":"5085:7:6"}},{"assignments":[1584],"declarations":[{"constant":false,"id":1584,"mutability":"mutable","name":"pivot","nameLocation":"5156:5:6","nodeType":"VariableDeclaration","scope":1644,"src":"5148:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5148:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1588,"initialValue":{"arguments":[{"id":1586,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"5171:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1585,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1687,"src":"5164:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5164:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5148:29:6"},{"assignments":[1590],"declarations":[{"constant":false,"id":1590,"mutability":"mutable","name":"pos","nameLocation":"5272:3:6","nodeType":"VariableDeclaration","scope":1644,"src":"5264:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1589,"name":"uint256","nodeType":"ElementaryTypeName","src":"5264:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1592,"initialValue":{"id":1591,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"5278:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5264:19:6"},{"body":{"id":1623,"nodeType":"Block","src":"5352:331:6","statements":[{"condition":{"arguments":[{"arguments":[{"id":1608,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"5386:2:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1607,"name":"_mload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1687,"src":"5379:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) pure returns (bytes32)"}},"id":1609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5379:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1610,"name":"pivot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1584,"src":"5391:5:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1606,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"5374:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5374:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1622,"nodeType":"IfStatement","src":"5370:299:6","trueBody":{"id":1621,"nodeType":"Block","src":"5399:270:6","statements":[{"expression":{"id":1614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1612,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"5603:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":1613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5610:4:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5603:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1615,"nodeType":"ExpressionStatement","src":"5603:11:6"},{"expression":{"arguments":[{"id":1617,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"5642:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1618,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"5647:2:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1616,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"5636:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5636:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1620,"nodeType":"ExpressionStatement","src":"5636:14:6"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1599,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"5330:2:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1600,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"5335:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5330:8:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1624,"initializationExpression":{"assignments":[1594],"declarations":[{"constant":false,"id":1594,"mutability":"mutable","name":"it","nameLocation":"5311:2:6","nodeType":"VariableDeclaration","scope":1624,"src":"5303:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1593,"name":"uint256","nodeType":"ElementaryTypeName","src":"5303:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1598,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1595,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"5316:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":1596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5324:4:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5316:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5303:25:6"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1602,"name":"it","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"5340:2:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"30783230","id":1603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5346:4:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5340:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1605,"nodeType":"ExpressionStatement","src":"5340:10:6"},"nodeType":"ForStatement","src":"5298:385:6"},{"expression":{"arguments":[{"id":1626,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"5703:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1627,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"5710:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1625,"name":"_swap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"5697:5:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5697:17:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1629,"nodeType":"ExpressionStatement","src":"5697:17:6"},{"expression":{"arguments":[{"id":1631,"name":"begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1561,"src":"5764:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1632,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"5771:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1633,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"5776:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1630,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"5753:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1635,"nodeType":"ExpressionStatement","src":"5753:28:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1637,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1590,"src":"5841:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783230","id":1638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5847:4:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5841:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1640,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1563,"src":"5853:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1641,"name":"comp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"5858:4:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"}],"id":1636,"name":"_quickSort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"5830:10:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$__$","typeString":"function (uint256,uint256,function (bytes32,bytes32) pure returns (bool)) pure"}},"id":1642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5830:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1643,"nodeType":"ExpressionStatement","src":"5830:33:6"}]}]},"documentation":{"id":1559,"nodeType":"StructuredDocumentation","src":"4417:491:6","text":" @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n at end (exclusive). Sorting follows the `comp` comparator.\n Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n be used only if the limits are within a memory array."},"id":1646,"implemented":true,"kind":"function","modifiers":[],"name":"_quickSort","nameLocation":"4922:10:6","nodeType":"FunctionDefinition","parameters":{"id":1574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1561,"mutability":"mutable","name":"begin","nameLocation":"4941:5:6","nodeType":"VariableDeclaration","scope":1646,"src":"4933:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1560,"name":"uint256","nodeType":"ElementaryTypeName","src":"4933:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1563,"mutability":"mutable","name":"end","nameLocation":"4956:3:6","nodeType":"VariableDeclaration","scope":1646,"src":"4948:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1562,"name":"uint256","nodeType":"ElementaryTypeName","src":"4948:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1573,"mutability":"mutable","name":"comp","nameLocation":"5008:4:6","nodeType":"VariableDeclaration","scope":1646,"src":"4961:51:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1572,"nodeType":"FunctionTypeName","parameterTypes":{"id":1568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1572,"src":"4970:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4970:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1572,"src":"4979:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4979:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4969:18:6"},"returnParameterTypes":{"id":1571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1572,"src":"5002:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1569,"name":"bool","nodeType":"ElementaryTypeName","src":"5002:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5001:6:6"},"src":"4961:51:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"4932:81:6"},"returnParameters":{"id":1575,"nodeType":"ParameterList","parameters":[],"src":"5027:0:6"},"scope":2276,"src":"4913:1003:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1656,"nodeType":"Block","src":"6089:115:6","statements":[{"AST":{"nativeSrc":"6151:47:6","nodeType":"YulBlock","src":"6151:47:6","statements":[{"nativeSrc":"6165:23:6","nodeType":"YulAssignment","src":"6165:23:6","value":{"arguments":[{"name":"array","nativeSrc":"6176:5:6","nodeType":"YulIdentifier","src":"6176:5:6"},{"kind":"number","nativeSrc":"6183:4:6","nodeType":"YulLiteral","src":"6183:4:6","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6172:3:6","nodeType":"YulIdentifier","src":"6172:3:6"},"nativeSrc":"6172:16:6","nodeType":"YulFunctionCall","src":"6172:16:6"},"variableNames":[{"name":"ptr","nativeSrc":"6165:3:6","nodeType":"YulIdentifier","src":"6165:3:6"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":1650,"isOffset":false,"isSlot":false,"src":"6176:5:6","valueSize":1},{"declaration":1653,"isOffset":false,"isSlot":false,"src":"6165:3:6","valueSize":1}],"id":1655,"nodeType":"InlineAssembly","src":"6142:56:6"}]},"documentation":{"id":1647,"nodeType":"StructuredDocumentation","src":"5922:87:6","text":" @dev Pointer to the memory location of the first element of `array`."},"id":1657,"implemented":true,"kind":"function","modifiers":[],"name":"_begin","nameLocation":"6023:6:6","nodeType":"FunctionDefinition","parameters":{"id":1651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"array","nameLocation":"6047:5:6","nodeType":"VariableDeclaration","scope":1657,"src":"6030:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6030:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1649,"nodeType":"ArrayTypeName","src":"6030:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6029:24:6"},"returnParameters":{"id":1654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1653,"mutability":"mutable","name":"ptr","nameLocation":"6084:3:6","nodeType":"VariableDeclaration","scope":1657,"src":"6076:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1652,"name":"uint256","nodeType":"ElementaryTypeName","src":"6076:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6075:13:6"},"scope":2276,"src":"6014:190:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1676,"nodeType":"Block","src":"6476:93:6","statements":[{"id":1675,"nodeType":"UncheckedBlock","src":"6486:77:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1667,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"6524:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":1666,"name":"_begin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"6517:6:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32[] memory) pure returns (uint256)"}},"id":1668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6517:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1669,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"6533:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6539:6:6","memberName":"length","nodeType":"MemberAccess","src":"6533:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30783230","id":1671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6548:4:6","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"6533:19:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6517:35:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1665,"id":1674,"nodeType":"Return","src":"6510:42:6"}]}]},"documentation":{"id":1658,"nodeType":"StructuredDocumentation","src":"6210:188:6","text":" @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n that comes just after the last element of the array."},"id":1677,"implemented":true,"kind":"function","modifiers":[],"name":"_end","nameLocation":"6412:4:6","nodeType":"FunctionDefinition","parameters":{"id":1662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1661,"mutability":"mutable","name":"array","nameLocation":"6434:5:6","nodeType":"VariableDeclaration","scope":1677,"src":"6417:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1659,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6417:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1660,"nodeType":"ArrayTypeName","src":"6417:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6416:24:6"},"returnParameters":{"id":1665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1664,"mutability":"mutable","name":"ptr","nameLocation":"6471:3:6","nodeType":"VariableDeclaration","scope":1677,"src":"6463:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1663,"name":"uint256","nodeType":"ElementaryTypeName","src":"6463:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6462:13:6"},"scope":2276,"src":"6403:166:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1686,"nodeType":"Block","src":"6720:68:6","statements":[{"AST":{"nativeSrc":"6739:43:6","nodeType":"YulBlock","src":"6739:43:6","statements":[{"nativeSrc":"6753:19:6","nodeType":"YulAssignment","src":"6753:19:6","value":{"arguments":[{"name":"ptr","nativeSrc":"6768:3:6","nodeType":"YulIdentifier","src":"6768:3:6"}],"functionName":{"name":"mload","nativeSrc":"6762:5:6","nodeType":"YulIdentifier","src":"6762:5:6"},"nativeSrc":"6762:10:6","nodeType":"YulFunctionCall","src":"6762:10:6"},"variableNames":[{"name":"value","nativeSrc":"6753:5:6","nodeType":"YulIdentifier","src":"6753:5:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1680,"isOffset":false,"isSlot":false,"src":"6768:3:6","valueSize":1},{"declaration":1683,"isOffset":false,"isSlot":false,"src":"6753:5:6","valueSize":1}],"id":1685,"nodeType":"InlineAssembly","src":"6730:52:6"}]},"documentation":{"id":1678,"nodeType":"StructuredDocumentation","src":"6575:74:6","text":" @dev Load memory word (as a bytes32) at location `ptr`."},"id":1687,"implemented":true,"kind":"function","modifiers":[],"name":"_mload","nameLocation":"6663:6:6","nodeType":"FunctionDefinition","parameters":{"id":1681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1680,"mutability":"mutable","name":"ptr","nameLocation":"6678:3:6","nodeType":"VariableDeclaration","scope":1687,"src":"6670:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1679,"name":"uint256","nodeType":"ElementaryTypeName","src":"6670:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6669:13:6"},"returnParameters":{"id":1684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1683,"mutability":"mutable","name":"value","nameLocation":"6713:5:6","nodeType":"VariableDeclaration","scope":1687,"src":"6705:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6705:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6704:15:6"},"scope":2276,"src":"6654:134:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1696,"nodeType":"Block","src":"6932:178:6","statements":[{"AST":{"nativeSrc":"6951:153:6","nodeType":"YulBlock","src":"6951:153:6","statements":[{"nativeSrc":"6965:25:6","nodeType":"YulVariableDeclaration","src":"6965:25:6","value":{"arguments":[{"name":"ptr1","nativeSrc":"6985:4:6","nodeType":"YulIdentifier","src":"6985:4:6"}],"functionName":{"name":"mload","nativeSrc":"6979:5:6","nodeType":"YulIdentifier","src":"6979:5:6"},"nativeSrc":"6979:11:6","nodeType":"YulFunctionCall","src":"6979:11:6"},"variables":[{"name":"value1","nativeSrc":"6969:6:6","nodeType":"YulTypedName","src":"6969:6:6","type":""}]},{"nativeSrc":"7003:25:6","nodeType":"YulVariableDeclaration","src":"7003:25:6","value":{"arguments":[{"name":"ptr2","nativeSrc":"7023:4:6","nodeType":"YulIdentifier","src":"7023:4:6"}],"functionName":{"name":"mload","nativeSrc":"7017:5:6","nodeType":"YulIdentifier","src":"7017:5:6"},"nativeSrc":"7017:11:6","nodeType":"YulFunctionCall","src":"7017:11:6"},"variables":[{"name":"value2","nativeSrc":"7007:6:6","nodeType":"YulTypedName","src":"7007:6:6","type":""}]},{"expression":{"arguments":[{"name":"ptr1","nativeSrc":"7048:4:6","nodeType":"YulIdentifier","src":"7048:4:6"},{"name":"value2","nativeSrc":"7054:6:6","nodeType":"YulIdentifier","src":"7054:6:6"}],"functionName":{"name":"mstore","nativeSrc":"7041:6:6","nodeType":"YulIdentifier","src":"7041:6:6"},"nativeSrc":"7041:20:6","nodeType":"YulFunctionCall","src":"7041:20:6"},"nativeSrc":"7041:20:6","nodeType":"YulExpressionStatement","src":"7041:20:6"},{"expression":{"arguments":[{"name":"ptr2","nativeSrc":"7081:4:6","nodeType":"YulIdentifier","src":"7081:4:6"},{"name":"value1","nativeSrc":"7087:6:6","nodeType":"YulIdentifier","src":"7087:6:6"}],"functionName":{"name":"mstore","nativeSrc":"7074:6:6","nodeType":"YulIdentifier","src":"7074:6:6"},"nativeSrc":"7074:20:6","nodeType":"YulFunctionCall","src":"7074:20:6"},"nativeSrc":"7074:20:6","nodeType":"YulExpressionStatement","src":"7074:20:6"}]},"evmVersion":"cancun","externalReferences":[{"declaration":1690,"isOffset":false,"isSlot":false,"src":"6985:4:6","valueSize":1},{"declaration":1690,"isOffset":false,"isSlot":false,"src":"7048:4:6","valueSize":1},{"declaration":1692,"isOffset":false,"isSlot":false,"src":"7023:4:6","valueSize":1},{"declaration":1692,"isOffset":false,"isSlot":false,"src":"7081:4:6","valueSize":1}],"id":1695,"nodeType":"InlineAssembly","src":"6942:162:6"}]},"documentation":{"id":1688,"nodeType":"StructuredDocumentation","src":"6794:77:6","text":" @dev Swaps the elements memory location `ptr1` and `ptr2`."},"id":1697,"implemented":true,"kind":"function","modifiers":[],"name":"_swap","nameLocation":"6885:5:6","nodeType":"FunctionDefinition","parameters":{"id":1693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1690,"mutability":"mutable","name":"ptr1","nameLocation":"6899:4:6","nodeType":"VariableDeclaration","scope":1697,"src":"6891:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1689,"name":"uint256","nodeType":"ElementaryTypeName","src":"6891:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1692,"mutability":"mutable","name":"ptr2","nameLocation":"6913:4:6","nodeType":"VariableDeclaration","scope":1697,"src":"6905:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1691,"name":"uint256","nodeType":"ElementaryTypeName","src":"6905:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6890:28:6"},"returnParameters":{"id":1694,"nodeType":"ParameterList","parameters":[],"src":"6932:0:6"},"scope":2276,"src":"6876:234:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1711,"nodeType":"Block","src":"7252:29:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1707,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1700,"src":"7269:1:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1708,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"7273:1:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7269:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1706,"id":1710,"nodeType":"Return","src":"7262:12:6"}]},"documentation":{"id":1698,"nodeType":"StructuredDocumentation","src":"7116:59:6","text":"@dev Comparator for sorting arrays in increasing order."},"id":1712,"implemented":true,"kind":"function","modifiers":[],"name":"_defaultComp","nameLocation":"7189:12:6","nodeType":"FunctionDefinition","parameters":{"id":1703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1700,"mutability":"mutable","name":"a","nameLocation":"7210:1:6","nodeType":"VariableDeclaration","scope":1712,"src":"7202:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7202:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1702,"mutability":"mutable","name":"b","nameLocation":"7221:1:6","nodeType":"VariableDeclaration","scope":1712,"src":"7213:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7213:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7201:22:6"},"returnParameters":{"id":1706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1712,"src":"7246:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1704,"name":"bool","nodeType":"ElementaryTypeName","src":"7246:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7245:6:6"},"scope":2276,"src":"7180:101:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1723,"nodeType":"Block","src":"7468:64:6","statements":[{"AST":{"nativeSrc":"7487:39:6","nodeType":"YulBlock","src":"7487:39:6","statements":[{"nativeSrc":"7501:15:6","nodeType":"YulAssignment","src":"7501:15:6","value":{"name":"input","nativeSrc":"7511:5:6","nodeType":"YulIdentifier","src":"7511:5:6"},"variableNames":[{"name":"output","nativeSrc":"7501:6:6","nodeType":"YulIdentifier","src":"7501:6:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1716,"isOffset":false,"isSlot":false,"src":"7511:5:6","valueSize":1},{"declaration":1720,"isOffset":false,"isSlot":false,"src":"7501:6:6","valueSize":1}],"id":1722,"nodeType":"InlineAssembly","src":"7478:48:6"}]},"documentation":{"id":1713,"nodeType":"StructuredDocumentation","src":"7287:76:6","text":"@dev Helper: low level cast address memory array to uint256 memory array"},"id":1724,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Array","nameLocation":"7377:19:6","nodeType":"FunctionDefinition","parameters":{"id":1717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1716,"mutability":"mutable","name":"input","nameLocation":"7414:5:6","nodeType":"VariableDeclaration","scope":1724,"src":"7397:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1714,"name":"address","nodeType":"ElementaryTypeName","src":"7397:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1715,"nodeType":"ArrayTypeName","src":"7397:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7396:24:6"},"returnParameters":{"id":1721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1720,"mutability":"mutable","name":"output","nameLocation":"7460:6:6","nodeType":"VariableDeclaration","scope":1724,"src":"7443:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7443:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1719,"nodeType":"ArrayTypeName","src":"7443:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7442:25:6"},"scope":2276,"src":"7368:164:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1735,"nodeType":"Block","src":"7719:64:6","statements":[{"AST":{"nativeSrc":"7738:39:6","nodeType":"YulBlock","src":"7738:39:6","statements":[{"nativeSrc":"7752:15:6","nodeType":"YulAssignment","src":"7752:15:6","value":{"name":"input","nativeSrc":"7762:5:6","nodeType":"YulIdentifier","src":"7762:5:6"},"variableNames":[{"name":"output","nativeSrc":"7752:6:6","nodeType":"YulIdentifier","src":"7752:6:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1728,"isOffset":false,"isSlot":false,"src":"7762:5:6","valueSize":1},{"declaration":1732,"isOffset":false,"isSlot":false,"src":"7752:6:6","valueSize":1}],"id":1734,"nodeType":"InlineAssembly","src":"7729:48:6"}]},"documentation":{"id":1725,"nodeType":"StructuredDocumentation","src":"7538:76:6","text":"@dev Helper: low level cast uint256 memory array to uint256 memory array"},"id":1736,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Array","nameLocation":"7628:19:6","nodeType":"FunctionDefinition","parameters":{"id":1729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"input","nameLocation":"7665:5:6","nodeType":"VariableDeclaration","scope":1736,"src":"7648:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1726,"name":"uint256","nodeType":"ElementaryTypeName","src":"7648:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1727,"nodeType":"ArrayTypeName","src":"7648:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7647:24:6"},"returnParameters":{"id":1733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1732,"mutability":"mutable","name":"output","nameLocation":"7711:6:6","nodeType":"VariableDeclaration","scope":1736,"src":"7694:23:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7694:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1731,"nodeType":"ArrayTypeName","src":"7694:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7693:25:6"},"scope":2276,"src":"7619:164:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1761,"nodeType":"Block","src":"8045:64:6","statements":[{"AST":{"nativeSrc":"8064:39:6","nodeType":"YulBlock","src":"8064:39:6","statements":[{"nativeSrc":"8078:15:6","nodeType":"YulAssignment","src":"8078:15:6","value":{"name":"input","nativeSrc":"8088:5:6","nodeType":"YulIdentifier","src":"8088:5:6"},"variableNames":[{"name":"output","nativeSrc":"8078:6:6","nodeType":"YulIdentifier","src":"8078:6:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1747,"isOffset":false,"isSlot":false,"src":"8088:5:6","valueSize":1},{"declaration":1758,"isOffset":false,"isSlot":false,"src":"8078:6:6","valueSize":1}],"id":1760,"nodeType":"InlineAssembly","src":"8055:48:6"}]},"documentation":{"id":1737,"nodeType":"StructuredDocumentation","src":"7789:78:6","text":"@dev Helper: low level cast address comp function to bytes32 comp function"},"id":1762,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Comp","nameLocation":"7881:18:6","nodeType":"FunctionDefinition","parameters":{"id":1748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1747,"mutability":"mutable","name":"input","nameLocation":"7956:5:6","nodeType":"VariableDeclaration","scope":1762,"src":"7909:52:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"typeName":{"id":1746,"nodeType":"FunctionTypeName","parameterTypes":{"id":1742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1739,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1746,"src":"7918:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1738,"name":"address","nodeType":"ElementaryTypeName","src":"7918:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1746,"src":"7927:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1740,"name":"address","nodeType":"ElementaryTypeName","src":"7927:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7917:18:6"},"returnParameterTypes":{"id":1745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1746,"src":"7950:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1743,"name":"bool","nodeType":"ElementaryTypeName","src":"7950:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7949:6:6"},"src":"7909:52:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"7899:68:6"},"returnParameters":{"id":1759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1758,"mutability":"mutable","name":"output","nameLocation":"8037:6:6","nodeType":"VariableDeclaration","scope":1762,"src":"7990:53:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1757,"nodeType":"FunctionTypeName","parameterTypes":{"id":1753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1757,"src":"7999:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7999:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1757,"src":"8008:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8008:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7998:18:6"},"returnParameterTypes":{"id":1756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1757,"src":"8031:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1754,"name":"bool","nodeType":"ElementaryTypeName","src":"8031:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8030:6:6"},"src":"7990:53:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"7989:55:6"},"scope":2276,"src":"7872:237:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1787,"nodeType":"Block","src":"8371:64:6","statements":[{"AST":{"nativeSrc":"8390:39:6","nodeType":"YulBlock","src":"8390:39:6","statements":[{"nativeSrc":"8404:15:6","nodeType":"YulAssignment","src":"8404:15:6","value":{"name":"input","nativeSrc":"8414:5:6","nodeType":"YulIdentifier","src":"8414:5:6"},"variableNames":[{"name":"output","nativeSrc":"8404:6:6","nodeType":"YulIdentifier","src":"8404:6:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":1773,"isOffset":false,"isSlot":false,"src":"8414:5:6","valueSize":1},{"declaration":1784,"isOffset":false,"isSlot":false,"src":"8404:6:6","valueSize":1}],"id":1786,"nodeType":"InlineAssembly","src":"8381:48:6"}]},"documentation":{"id":1763,"nodeType":"StructuredDocumentation","src":"8115:78:6","text":"@dev Helper: low level cast uint256 comp function to bytes32 comp function"},"id":1788,"implemented":true,"kind":"function","modifiers":[],"name":"_castToBytes32Comp","nameLocation":"8207:18:6","nodeType":"FunctionDefinition","parameters":{"id":1774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1773,"mutability":"mutable","name":"input","nameLocation":"8282:5:6","nodeType":"VariableDeclaration","scope":1788,"src":"8235:52:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"typeName":{"id":1772,"nodeType":"FunctionTypeName","parameterTypes":{"id":1768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1765,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1772,"src":"8244:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1764,"name":"uint256","nodeType":"ElementaryTypeName","src":"8244:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1772,"src":"8253:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1766,"name":"uint256","nodeType":"ElementaryTypeName","src":"8253:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8243:18:6"},"returnParameterTypes":{"id":1771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1772,"src":"8276:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1769,"name":"bool","nodeType":"ElementaryTypeName","src":"8276:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8275:6:6"},"src":"8235:52:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8225:68:6"},"returnParameters":{"id":1785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1784,"mutability":"mutable","name":"output","nameLocation":"8363:6:6","nodeType":"VariableDeclaration","scope":1788,"src":"8316:53:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"typeName":{"id":1783,"nodeType":"FunctionTypeName","parameterTypes":{"id":1779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1783,"src":"8325:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8325:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1783,"src":"8334:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8334:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8324:18:6"},"returnParameterTypes":{"id":1782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1783,"src":"8357:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1780,"name":"bool","nodeType":"ElementaryTypeName","src":"8357:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8356:6:6"},"src":"8316:53:6","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32,bytes32) pure returns (bool)"},"visibility":"internal"},"visibility":"internal"}],"src":"8315:55:6"},"scope":2276,"src":"8198:237:6","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1870,"nodeType":"Block","src":"9160:834:6","statements":[{"assignments":[1800],"declarations":[{"constant":false,"id":1800,"mutability":"mutable","name":"low","nameLocation":"9178:3:6","nodeType":"VariableDeclaration","scope":1870,"src":"9170:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1799,"name":"uint256","nodeType":"ElementaryTypeName","src":"9170:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1802,"initialValue":{"hexValue":"30","id":1801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9184:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9170:15:6"},{"assignments":[1804],"declarations":[{"constant":false,"id":1804,"mutability":"mutable","name":"high","nameLocation":"9203:4:6","nodeType":"VariableDeclaration","scope":1870,"src":"9195:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1803,"name":"uint256","nodeType":"ElementaryTypeName","src":"9195:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1807,"initialValue":{"expression":{"id":1805,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9210:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9216:6:6","memberName":"length","nodeType":"MemberAccess","src":"9210:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9195:27:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1808,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1804,"src":"9237:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9245:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9237:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1814,"nodeType":"IfStatement","src":"9233:48:6","trueBody":{"id":1813,"nodeType":"Block","src":"9248:33:6","statements":[{"expression":{"hexValue":"30","id":1811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9269:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1798,"id":1812,"nodeType":"Return","src":"9262:8:6"}]}},{"body":{"id":1846,"nodeType":"Block","src":"9310:423:6","statements":[{"assignments":[1819],"declarations":[{"constant":false,"id":1819,"mutability":"mutable","name":"mid","nameLocation":"9332:3:6","nodeType":"VariableDeclaration","scope":1846,"src":"9324:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1818,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1825,"initialValue":{"arguments":[{"id":1822,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9351:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1823,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1804,"src":"9356:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1820,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"9338:4:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4428_$","typeString":"type(library Math)"}},"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9343:7:6","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3101,"src":"9338:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9338:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:37:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1827,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9599:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1828,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"9606:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1826,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2151,2177,2203],"referencedDeclaration":2203,"src":"9586:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2503_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9586:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9611:5:6","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2502,"src":"9586:30:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1831,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9619:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9586:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1844,"nodeType":"Block","src":"9677:46:6","statements":[{"expression":{"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1838,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9695:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1839,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"9701:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9707:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9701:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9695:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1843,"nodeType":"ExpressionStatement","src":"9695:13:6"}]},"id":1845,"nodeType":"IfStatement","src":"9582:141:6","trueBody":{"id":1837,"nodeType":"Block","src":"9628:43:6","statements":[{"expression":{"id":1835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1833,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1804,"src":"9646:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1834,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"9653:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9646:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1836,"nodeType":"ExpressionStatement","src":"9646:10:6"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1815,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9298:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1816,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1804,"src":"9304:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9298:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1847,"nodeType":"WhileStatement","src":"9291:442:6"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1848,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9850:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9856:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9850:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1852,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1792,"src":"9874:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1853,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9881:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9887:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9881:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1851,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2151,2177,2203],"referencedDeclaration":2203,"src":"9861:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2503_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9890:5:6","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2502,"src":"9861:34:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1858,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1794,"src":"9899:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9861:45:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9850:56:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1868,"nodeType":"Block","src":"9953:35:6","statements":[{"expression":{"id":1866,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9974:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1798,"id":1867,"nodeType":"Return","src":"9967:10:6"}]},"id":1869,"nodeType":"IfStatement","src":"9846:142:6","trueBody":{"id":1865,"nodeType":"Block","src":"9908:39:6","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1861,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1800,"src":"9929:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9935:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9929:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1798,"id":1864,"nodeType":"Return","src":"9922:14:6"}]}}]},"documentation":{"id":1789,"nodeType":"StructuredDocumentation","src":"8441:616:6","text":" @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n NOTE: The `array` is expected to be sorted in ascending order, and to\n contain no repeated elements.\n IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n support for repeated elements in the array. The {lowerBound} function should\n be used instead."},"id":1871,"implemented":true,"kind":"function","modifiers":[],"name":"findUpperBound","nameLocation":"9071:14:6","nodeType":"FunctionDefinition","parameters":{"id":1795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1792,"mutability":"mutable","name":"array","nameLocation":"9104:5:6","nodeType":"VariableDeclaration","scope":1871,"src":"9086:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1790,"name":"uint256","nodeType":"ElementaryTypeName","src":"9086:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1791,"nodeType":"ArrayTypeName","src":"9086:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1794,"mutability":"mutable","name":"element","nameLocation":"9119:7:6","nodeType":"VariableDeclaration","scope":1871,"src":"9111:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1793,"name":"uint256","nodeType":"ElementaryTypeName","src":"9111:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9085:42:6"},"returnParameters":{"id":1798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1871,"src":"9151:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1796,"name":"uint256","nodeType":"ElementaryTypeName","src":"9151:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9150:9:6"},"scope":2276,"src":"9062:932:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1934,"nodeType":"Block","src":"10511:709:6","statements":[{"assignments":[1883],"declarations":[{"constant":false,"id":1883,"mutability":"mutable","name":"low","nameLocation":"10529:3:6","nodeType":"VariableDeclaration","scope":1934,"src":"10521:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1882,"name":"uint256","nodeType":"ElementaryTypeName","src":"10521:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1885,"initialValue":{"hexValue":"30","id":1884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10535:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10521:15:6"},{"assignments":[1887],"declarations":[{"constant":false,"id":1887,"mutability":"mutable","name":"high","nameLocation":"10554:4:6","nodeType":"VariableDeclaration","scope":1934,"src":"10546:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1886,"name":"uint256","nodeType":"ElementaryTypeName","src":"10546:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1890,"initialValue":{"expression":{"id":1888,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"10561:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10567:6:6","memberName":"length","nodeType":"MemberAccess","src":"10561:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10546:27:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1891,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"10588:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10596:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10588:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1897,"nodeType":"IfStatement","src":"10584:48:6","trueBody":{"id":1896,"nodeType":"Block","src":"10599:33:6","statements":[{"expression":{"hexValue":"30","id":1894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10620:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1881,"id":1895,"nodeType":"Return","src":"10613:8:6"}]}},{"body":{"id":1930,"nodeType":"Block","src":"10661:532:6","statements":[{"assignments":[1902],"declarations":[{"constant":false,"id":1902,"mutability":"mutable","name":"mid","nameLocation":"10683:3:6","nodeType":"VariableDeclaration","scope":1930,"src":"10675:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1901,"name":"uint256","nodeType":"ElementaryTypeName","src":"10675:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1908,"initialValue":{"arguments":[{"id":1905,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1883,"src":"10702:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1906,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"10707:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1903,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"10689:4:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4428_$","typeString":"type(library Math)"}},"id":1904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10694:7:6","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3101,"src":"10689:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10689:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10675:37:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1910,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1875,"src":"10950:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1911,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"10957:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1909,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2151,2177,2203],"referencedDeclaration":2203,"src":"10937:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2503_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10937:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10962:5:6","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2502,"src":"10937:30:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1914,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1877,"src":"10970:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10937:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1928,"nodeType":"Block","src":"11140:43:6","statements":[{"expression":{"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1924,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"11158:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1925,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"11165:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11158:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1927,"nodeType":"ExpressionStatement","src":"11158:10:6"}]},"id":1929,"nodeType":"IfStatement","src":"10933:250:6","trueBody":{"id":1923,"nodeType":"Block","src":"10979:155:6","statements":[{"id":1922,"nodeType":"UncheckedBlock","src":"11056:64:6","statements":[{"expression":{"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1916,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1883,"src":"11088:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1917,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1902,"src":"11094:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11100:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11094:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11088:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1921,"nodeType":"ExpressionStatement","src":"11088:13:6"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1898,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1883,"src":"10649:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1899,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"10655:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10649:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1931,"nodeType":"WhileStatement","src":"10642:551:6"},{"expression":{"id":1932,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1883,"src":"11210:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1881,"id":1933,"nodeType":"Return","src":"11203:10:6"}]},"documentation":{"id":1872,"nodeType":"StructuredDocumentation","src":"10000:412:6","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value greater or equal than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound]."},"id":1935,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBound","nameLocation":"10426:10:6","nodeType":"FunctionDefinition","parameters":{"id":1878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1875,"mutability":"mutable","name":"array","nameLocation":"10455:5:6","nodeType":"VariableDeclaration","scope":1935,"src":"10437:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1873,"name":"uint256","nodeType":"ElementaryTypeName","src":"10437:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1874,"nodeType":"ArrayTypeName","src":"10437:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1877,"mutability":"mutable","name":"element","nameLocation":"10470:7:6","nodeType":"VariableDeclaration","scope":1935,"src":"10462:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1876,"name":"uint256","nodeType":"ElementaryTypeName","src":"10462:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10436:42:6"},"returnParameters":{"id":1881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1935,"src":"10502:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1879,"name":"uint256","nodeType":"ElementaryTypeName","src":"10502:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10501:9:6"},"scope":2276,"src":"10417:803:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1998,"nodeType":"Block","src":"11737:709:6","statements":[{"assignments":[1947],"declarations":[{"constant":false,"id":1947,"mutability":"mutable","name":"low","nameLocation":"11755:3:6","nodeType":"VariableDeclaration","scope":1998,"src":"11747:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1946,"name":"uint256","nodeType":"ElementaryTypeName","src":"11747:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1949,"initialValue":{"hexValue":"30","id":1948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11761:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11747:15:6"},{"assignments":[1951],"declarations":[{"constant":false,"id":1951,"mutability":"mutable","name":"high","nameLocation":"11780:4:6","nodeType":"VariableDeclaration","scope":1998,"src":"11772:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1950,"name":"uint256","nodeType":"ElementaryTypeName","src":"11772:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1954,"initialValue":{"expression":{"id":1952,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"11787:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":1953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11793:6:6","memberName":"length","nodeType":"MemberAccess","src":"11787:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11772:27:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1955,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"11814:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11822:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11814:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1961,"nodeType":"IfStatement","src":"11810:48:6","trueBody":{"id":1960,"nodeType":"Block","src":"11825:33:6","statements":[{"expression":{"hexValue":"30","id":1958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11846:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1945,"id":1959,"nodeType":"Return","src":"11839:8:6"}]}},{"body":{"id":1994,"nodeType":"Block","src":"11887:532:6","statements":[{"assignments":[1966],"declarations":[{"constant":false,"id":1966,"mutability":"mutable","name":"mid","nameLocation":"11909:3:6","nodeType":"VariableDeclaration","scope":1994,"src":"11901:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1965,"name":"uint256","nodeType":"ElementaryTypeName","src":"11901:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1972,"initialValue":{"arguments":[{"id":1969,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1947,"src":"11928:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1970,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"11933:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1967,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"11915:4:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4428_$","typeString":"type(library Math)"}},"id":1968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11920:7:6","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3101,"src":"11915:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11915:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11901:37:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1974,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1939,"src":"12176:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},{"id":1975,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1966,"src":"12183:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1973,"name":"unsafeAccess","nodeType":"Identifier","overloadedDeclarations":[2151,2177,2203],"referencedDeclaration":2203,"src":"12163:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$2503_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":1976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12163:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"id":1977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12188:5:6","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":2502,"src":"12163:30:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1978,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"12196:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12163:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1992,"nodeType":"Block","src":"12254:155:6","statements":[{"id":1991,"nodeType":"UncheckedBlock","src":"12331:64:6","statements":[{"expression":{"id":1989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1985,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1947,"src":"12363:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1986,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1966,"src":"12369:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12375:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12369:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12363:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1990,"nodeType":"ExpressionStatement","src":"12363:13:6"}]}]},"id":1993,"nodeType":"IfStatement","src":"12159:250:6","trueBody":{"id":1984,"nodeType":"Block","src":"12205:43:6","statements":[{"expression":{"id":1982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1980,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"12223:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1981,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1966,"src":"12230:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12223:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1983,"nodeType":"ExpressionStatement","src":"12223:10:6"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1962,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1947,"src":"11875:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1963,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"11881:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11875:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1995,"nodeType":"WhileStatement","src":"11868:551:6"},{"expression":{"id":1996,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1947,"src":"12436:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1945,"id":1997,"nodeType":"Return","src":"12429:10:6"}]},"documentation":{"id":1936,"nodeType":"StructuredDocumentation","src":"11226:412:6","text":" @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value strictly greater than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound]."},"id":1999,"implemented":true,"kind":"function","modifiers":[],"name":"upperBound","nameLocation":"11652:10:6","nodeType":"FunctionDefinition","parameters":{"id":1942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1939,"mutability":"mutable","name":"array","nameLocation":"11681:5:6","nodeType":"VariableDeclaration","scope":1999,"src":"11663:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1937,"name":"uint256","nodeType":"ElementaryTypeName","src":"11663:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1938,"nodeType":"ArrayTypeName","src":"11663:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1941,"mutability":"mutable","name":"element","nameLocation":"11696:7:6","nodeType":"VariableDeclaration","scope":1999,"src":"11688:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1940,"name":"uint256","nodeType":"ElementaryTypeName","src":"11688:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11662:42:6"},"returnParameters":{"id":1945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1999,"src":"11728:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1943,"name":"uint256","nodeType":"ElementaryTypeName","src":"11728:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11727:9:6"},"scope":2276,"src":"11643:803:6","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2061,"nodeType":"Block","src":"12630:709:6","statements":[{"assignments":[2011],"declarations":[{"constant":false,"id":2011,"mutability":"mutable","name":"low","nameLocation":"12648:3:6","nodeType":"VariableDeclaration","scope":2061,"src":"12640:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2010,"name":"uint256","nodeType":"ElementaryTypeName","src":"12640:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2013,"initialValue":{"hexValue":"30","id":2012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12654:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12640:15:6"},{"assignments":[2015],"declarations":[{"constant":false,"id":2015,"mutability":"mutable","name":"high","nameLocation":"12673:4:6","nodeType":"VariableDeclaration","scope":2061,"src":"12665:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2014,"name":"uint256","nodeType":"ElementaryTypeName","src":"12665:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2018,"initialValue":{"expression":{"id":2016,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"12680:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12686:6:6","memberName":"length","nodeType":"MemberAccess","src":"12680:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12665:27:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2019,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2015,"src":"12707:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12715:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12707:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2025,"nodeType":"IfStatement","src":"12703:48:6","trueBody":{"id":2024,"nodeType":"Block","src":"12718:33:6","statements":[{"expression":{"hexValue":"30","id":2022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12739:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2009,"id":2023,"nodeType":"Return","src":"12732:8:6"}]}},{"body":{"id":2057,"nodeType":"Block","src":"12780:532:6","statements":[{"assignments":[2030],"declarations":[{"constant":false,"id":2030,"mutability":"mutable","name":"mid","nameLocation":"12802:3:6","nodeType":"VariableDeclaration","scope":2057,"src":"12794:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2029,"name":"uint256","nodeType":"ElementaryTypeName","src":"12794:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2036,"initialValue":{"arguments":[{"id":2033,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"12821:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2034,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2015,"src":"12826:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2031,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"12808:4:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4428_$","typeString":"type(library Math)"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12813:7:6","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3101,"src":"12808:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12808:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12794:37:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2038,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"13075:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":2039,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"13082:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2037,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[2216,2229,2242],"referencedDeclaration":2242,"src":"13056:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":2040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13056:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2041,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2005,"src":"13089:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13056:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2055,"nodeType":"Block","src":"13259:43:6","statements":[{"expression":{"id":2053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2051,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2015,"src":"13277:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2052,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"13284:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13277:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2054,"nodeType":"ExpressionStatement","src":"13277:10:6"}]},"id":2056,"nodeType":"IfStatement","src":"13052:250:6","trueBody":{"id":2050,"nodeType":"Block","src":"13098:155:6","statements":[{"id":2049,"nodeType":"UncheckedBlock","src":"13175:64:6","statements":[{"expression":{"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2043,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"13207:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2044,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"13213:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13219:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13213:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13207:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2048,"nodeType":"ExpressionStatement","src":"13207:13:6"}]}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2026,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"12768:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2027,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2015,"src":"12774:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12768:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2058,"nodeType":"WhileStatement","src":"12761:551:6"},{"expression":{"id":2059,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2011,"src":"13329:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2009,"id":2060,"nodeType":"Return","src":"13322:10:6"}]},"documentation":{"id":2000,"nodeType":"StructuredDocumentation","src":"12452:74:6","text":" @dev Same as {lowerBound}, but with an array in memory."},"id":2062,"implemented":true,"kind":"function","modifiers":[],"name":"lowerBoundMemory","nameLocation":"12540:16:6","nodeType":"FunctionDefinition","parameters":{"id":2006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2003,"mutability":"mutable","name":"array","nameLocation":"12574:5:6","nodeType":"VariableDeclaration","scope":2062,"src":"12557:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2001,"name":"uint256","nodeType":"ElementaryTypeName","src":"12557:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2002,"nodeType":"ArrayTypeName","src":"12557:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2005,"mutability":"mutable","name":"element","nameLocation":"12589:7:6","nodeType":"VariableDeclaration","scope":2062,"src":"12581:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2004,"name":"uint256","nodeType":"ElementaryTypeName","src":"12581:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12556:41:6"},"returnParameters":{"id":2009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2062,"src":"12621:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2007,"name":"uint256","nodeType":"ElementaryTypeName","src":"12621:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12620:9:6"},"scope":2276,"src":"12531:808:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2124,"nodeType":"Block","src":"13523:709:6","statements":[{"assignments":[2074],"declarations":[{"constant":false,"id":2074,"mutability":"mutable","name":"low","nameLocation":"13541:3:6","nodeType":"VariableDeclaration","scope":2124,"src":"13533:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2073,"name":"uint256","nodeType":"ElementaryTypeName","src":"13533:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2076,"initialValue":{"hexValue":"30","id":2075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13547:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13533:15:6"},{"assignments":[2078],"declarations":[{"constant":false,"id":2078,"mutability":"mutable","name":"high","nameLocation":"13566:4:6","nodeType":"VariableDeclaration","scope":2124,"src":"13558:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2077,"name":"uint256","nodeType":"ElementaryTypeName","src":"13558:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2081,"initialValue":{"expression":{"id":2079,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2066,"src":"13573:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":2080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13579:6:6","memberName":"length","nodeType":"MemberAccess","src":"13573:12:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13558:27:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2082,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2078,"src":"13600:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13608:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13600:9:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2088,"nodeType":"IfStatement","src":"13596:48:6","trueBody":{"id":2087,"nodeType":"Block","src":"13611:33:6","statements":[{"expression":{"hexValue":"30","id":2085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13632:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2072,"id":2086,"nodeType":"Return","src":"13625:8:6"}]}},{"body":{"id":2120,"nodeType":"Block","src":"13673:532:6","statements":[{"assignments":[2093],"declarations":[{"constant":false,"id":2093,"mutability":"mutable","name":"mid","nameLocation":"13695:3:6","nodeType":"VariableDeclaration","scope":2120,"src":"13687:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2092,"name":"uint256","nodeType":"ElementaryTypeName","src":"13687:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2099,"initialValue":{"arguments":[{"id":2096,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"13714:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2097,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2078,"src":"13719:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2094,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4428,"src":"13701:4:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$4428_$","typeString":"type(library Math)"}},"id":2095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13706:7:6","memberName":"average","nodeType":"MemberAccess","referencedDeclaration":3101,"src":"13701:12:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13701:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13687:37:6"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2101,"name":"array","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2066,"src":"13968:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":2102,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2093,"src":"13975:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2100,"name":"unsafeMemoryAccess","nodeType":"Identifier","overloadedDeclarations":[2216,2229,2242],"referencedDeclaration":2242,"src":"13949:18:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256[] memory,uint256) pure returns (uint256)"}},"id":2103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13949:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2104,"name":"element","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2068,"src":"13982:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13949:40:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2118,"nodeType":"Block","src":"14040:155:6","statements":[{"id":2117,"nodeType":"UncheckedBlock","src":"14117:64:6","statements":[{"expression":{"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2111,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"14149:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2112,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2093,"src":"14155:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14161:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14155:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14149:13:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2116,"nodeType":"ExpressionStatement","src":"14149:13:6"}]}]},"id":2119,"nodeType":"IfStatement","src":"13945:250:6","trueBody":{"id":2110,"nodeType":"Block","src":"13991:43:6","statements":[{"expression":{"id":2108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2106,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2078,"src":"14009:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2107,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2093,"src":"14016:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14009:10:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2109,"nodeType":"ExpressionStatement","src":"14009:10:6"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2089,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"13661:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2090,"name":"high","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2078,"src":"13667:4:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13661:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2121,"nodeType":"WhileStatement","src":"13654:551:6"},{"expression":{"id":2122,"name":"low","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"14222:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2072,"id":2123,"nodeType":"Return","src":"14215:10:6"}]},"documentation":{"id":2063,"nodeType":"StructuredDocumentation","src":"13345:74:6","text":" @dev Same as {upperBound}, but with an array in memory."},"id":2125,"implemented":true,"kind":"function","modifiers":[],"name":"upperBoundMemory","nameLocation":"13433:16:6","nodeType":"FunctionDefinition","parameters":{"id":2069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2066,"mutability":"mutable","name":"array","nameLocation":"13467:5:6","nodeType":"VariableDeclaration","scope":2125,"src":"13450:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2064,"name":"uint256","nodeType":"ElementaryTypeName","src":"13450:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2065,"nodeType":"ArrayTypeName","src":"13450:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2068,"mutability":"mutable","name":"element","nameLocation":"13482:7:6","nodeType":"VariableDeclaration","scope":2125,"src":"13474:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2067,"name":"uint256","nodeType":"ElementaryTypeName","src":"13474:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13449:41:6"},"returnParameters":{"id":2072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2125,"src":"13514:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2070,"name":"uint256","nodeType":"ElementaryTypeName","src":"13514:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13513:9:6"},"scope":2276,"src":"13424:808:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2150,"nodeType":"Block","src":"14548:194:6","statements":[{"assignments":[2138],"declarations":[{"constant":false,"id":2138,"mutability":"mutable","name":"slot","nameLocation":"14566:4:6","nodeType":"VariableDeclaration","scope":2150,"src":"14558:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14558:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2139,"nodeType":"VariableDeclarationStatement","src":"14558:12:6"},{"AST":{"nativeSrc":"14632:40:6","nodeType":"YulBlock","src":"14632:40:6","statements":[{"nativeSrc":"14646:16:6","nodeType":"YulAssignment","src":"14646:16:6","value":{"name":"arr.slot","nativeSrc":"14654:8:6","nodeType":"YulIdentifier","src":"14654:8:6"},"variableNames":[{"name":"slot","nativeSrc":"14646:4:6","nodeType":"YulIdentifier","src":"14646:4:6"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2129,"isOffset":false,"isSlot":true,"src":"14654:8:6","suffix":"slot","valueSize":1},{"declaration":2138,"isOffset":false,"isSlot":false,"src":"14646:4:6","valueSize":1}],"id":2140,"nodeType":"InlineAssembly","src":"14623:49:6"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2145,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"14714:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2141,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"14688:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14693:11:6","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2403,"src":"14688:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14707:6:6","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2393,"src":"14688:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14719:14:6","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":2523,"src":"14688:45:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$2494_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14688:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2494_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"functionReturnParameters":2136,"id":2149,"nodeType":"Return","src":"14681:54:6"}]},"documentation":{"id":2126,"nodeType":"StructuredDocumentation","src":"14238:191:6","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2151,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"14443:12:6","nodeType":"FunctionDefinition","parameters":{"id":2132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2129,"mutability":"mutable","name":"arr","nameLocation":"14474:3:6","nodeType":"VariableDeclaration","scope":2151,"src":"14456:21:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2127,"name":"address","nodeType":"ElementaryTypeName","src":"14456:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2128,"nodeType":"ArrayTypeName","src":"14456:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2131,"mutability":"mutable","name":"pos","nameLocation":"14487:3:6","nodeType":"VariableDeclaration","scope":2151,"src":"14479:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2130,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14455:36:6"},"returnParameters":{"id":2136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2151,"src":"14515:31:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2494_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":2134,"nodeType":"UserDefinedTypeName","pathNode":{"id":2133,"name":"StorageSlot.AddressSlot","nameLocations":["14515:11:6","14527:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":2494,"src":"14515:23:6"},"referencedDeclaration":2494,"src":"14515:23:6","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2494_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"14514:33:6"},"scope":2276,"src":"14434:308:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2176,"nodeType":"Block","src":"15058:194:6","statements":[{"assignments":[2164],"declarations":[{"constant":false,"id":2164,"mutability":"mutable","name":"slot","nameLocation":"15076:4:6","nodeType":"VariableDeclaration","scope":2176,"src":"15068:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2163,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15068:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2165,"nodeType":"VariableDeclarationStatement","src":"15068:12:6"},{"AST":{"nativeSrc":"15142:40:6","nodeType":"YulBlock","src":"15142:40:6","statements":[{"nativeSrc":"15156:16:6","nodeType":"YulAssignment","src":"15156:16:6","value":{"name":"arr.slot","nativeSrc":"15164:8:6","nodeType":"YulIdentifier","src":"15164:8:6"},"variableNames":[{"name":"slot","nativeSrc":"15156:4:6","nodeType":"YulIdentifier","src":"15156:4:6"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2155,"isOffset":false,"isSlot":true,"src":"15164:8:6","suffix":"slot","valueSize":1},{"declaration":2164,"isOffset":false,"isSlot":false,"src":"15156:4:6","valueSize":1}],"id":2166,"nodeType":"InlineAssembly","src":"15133:49:6"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2171,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2157,"src":"15224:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2167,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2164,"src":"15198:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15203:11:6","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2403,"src":"15198:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15217:6:6","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2393,"src":"15198:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15229:14:6","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":2545,"src":"15198:45:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$2500_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15198:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2500_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"functionReturnParameters":2162,"id":2175,"nodeType":"Return","src":"15191:54:6"}]},"documentation":{"id":2152,"nodeType":"StructuredDocumentation","src":"14748:191:6","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2177,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"14953:12:6","nodeType":"FunctionDefinition","parameters":{"id":2158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2155,"mutability":"mutable","name":"arr","nameLocation":"14984:3:6","nodeType":"VariableDeclaration","scope":2177,"src":"14966:21:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14966:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2154,"nodeType":"ArrayTypeName","src":"14966:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2157,"mutability":"mutable","name":"pos","nameLocation":"14997:3:6","nodeType":"VariableDeclaration","scope":2177,"src":"14989:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2156,"name":"uint256","nodeType":"ElementaryTypeName","src":"14989:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14965:36:6"},"returnParameters":{"id":2162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2177,"src":"15025:31:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2500_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":2160,"nodeType":"UserDefinedTypeName","pathNode":{"id":2159,"name":"StorageSlot.Bytes32Slot","nameLocations":["15025:11:6","15037:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":2500,"src":"15025:23:6"},"referencedDeclaration":2500,"src":"15025:23:6","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2500_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"15024:33:6"},"scope":2276,"src":"14944:308:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2202,"nodeType":"Block","src":"15568:194:6","statements":[{"assignments":[2190],"declarations":[{"constant":false,"id":2190,"mutability":"mutable","name":"slot","nameLocation":"15586:4:6","nodeType":"VariableDeclaration","scope":2202,"src":"15578:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15578:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2191,"nodeType":"VariableDeclarationStatement","src":"15578:12:6"},{"AST":{"nativeSrc":"15652:40:6","nodeType":"YulBlock","src":"15652:40:6","statements":[{"nativeSrc":"15666:16:6","nodeType":"YulAssignment","src":"15666:16:6","value":{"name":"arr.slot","nativeSrc":"15674:8:6","nodeType":"YulIdentifier","src":"15674:8:6"},"variableNames":[{"name":"slot","nativeSrc":"15666:4:6","nodeType":"YulIdentifier","src":"15666:4:6"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2181,"isOffset":false,"isSlot":true,"src":"15674:8:6","suffix":"slot","valueSize":1},{"declaration":2190,"isOffset":false,"isSlot":false,"src":"15666:4:6","valueSize":1}],"id":2192,"nodeType":"InlineAssembly","src":"15643:49:6"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":2197,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2183,"src":"15734:3:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2193,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2190,"src":"15708:4:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15713:11:6","memberName":"deriveArray","nodeType":"MemberAccess","referencedDeclaration":2403,"src":"15708:16:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:18:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15727:6:6","memberName":"offset","nodeType":"MemberAccess","referencedDeclaration":2393,"src":"15708:25:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,uint256) pure returns (bytes32)"}},"id":2198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15739:14:6","memberName":"getUint256Slot","nodeType":"MemberAccess","referencedDeclaration":2556,"src":"15708:45:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$2503_storage_ptr_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)"}},"id":2200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:47:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot storage pointer"}},"functionReturnParameters":2188,"id":2201,"nodeType":"Return","src":"15701:54:6"}]},"documentation":{"id":2178,"nodeType":"StructuredDocumentation","src":"15258:191:6","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2203,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeAccess","nameLocation":"15463:12:6","nodeType":"FunctionDefinition","parameters":{"id":2184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2181,"mutability":"mutable","name":"arr","nameLocation":"15494:3:6","nodeType":"VariableDeclaration","scope":2203,"src":"15476:21:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2179,"name":"uint256","nodeType":"ElementaryTypeName","src":"15476:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2180,"nodeType":"ArrayTypeName","src":"15476:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2183,"mutability":"mutable","name":"pos","nameLocation":"15507:3:6","nodeType":"VariableDeclaration","scope":2203,"src":"15499:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2182,"name":"uint256","nodeType":"ElementaryTypeName","src":"15499:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15475:36:6"},"returnParameters":{"id":2188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2203,"src":"15535:31:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":2186,"nodeType":"UserDefinedTypeName","pathNode":{"id":2185,"name":"StorageSlot.Uint256Slot","nameLocations":["15535:11:6","15547:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":2503,"src":"15535:23:6"},"referencedDeclaration":2503,"src":"15535:23:6","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"15534:33:6"},"scope":2276,"src":"15454:308:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2215,"nodeType":"Block","src":"16063:98:6","statements":[{"AST":{"nativeSrc":"16082:73:6","nodeType":"YulBlock","src":"16082:73:6","statements":[{"nativeSrc":"16096:49:6","nodeType":"YulAssignment","src":"16096:49:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16117:3:6","nodeType":"YulIdentifier","src":"16117:3:6"},{"kind":"number","nativeSrc":"16122:4:6","nodeType":"YulLiteral","src":"16122:4:6","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16113:3:6","nodeType":"YulIdentifier","src":"16113:3:6"},"nativeSrc":"16113:14:6","nodeType":"YulFunctionCall","src":"16113:14:6"},{"arguments":[{"name":"pos","nativeSrc":"16133:3:6","nodeType":"YulIdentifier","src":"16133:3:6"},{"kind":"number","nativeSrc":"16138:4:6","nodeType":"YulLiteral","src":"16138:4:6","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16129:3:6","nodeType":"YulIdentifier","src":"16129:3:6"},"nativeSrc":"16129:14:6","nodeType":"YulFunctionCall","src":"16129:14:6"}],"functionName":{"name":"add","nativeSrc":"16109:3:6","nodeType":"YulIdentifier","src":"16109:3:6"},"nativeSrc":"16109:35:6","nodeType":"YulFunctionCall","src":"16109:35:6"}],"functionName":{"name":"mload","nativeSrc":"16103:5:6","nodeType":"YulIdentifier","src":"16103:5:6"},"nativeSrc":"16103:42:6","nodeType":"YulFunctionCall","src":"16103:42:6"},"variableNames":[{"name":"res","nativeSrc":"16096:3:6","nodeType":"YulIdentifier","src":"16096:3:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2207,"isOffset":false,"isSlot":false,"src":"16117:3:6","valueSize":1},{"declaration":2209,"isOffset":false,"isSlot":false,"src":"16133:3:6","valueSize":1},{"declaration":2212,"isOffset":false,"isSlot":false,"src":"16096:3:6","valueSize":1}],"id":2214,"nodeType":"InlineAssembly","src":"16073:82:6"}]},"documentation":{"id":2204,"nodeType":"StructuredDocumentation","src":"15768:191:6","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2216,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"15973:18:6","nodeType":"FunctionDefinition","parameters":{"id":2210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2207,"mutability":"mutable","name":"arr","nameLocation":"16009:3:6","nodeType":"VariableDeclaration","scope":2216,"src":"15992:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2205,"name":"address","nodeType":"ElementaryTypeName","src":"15992:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2206,"nodeType":"ArrayTypeName","src":"15992:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2209,"mutability":"mutable","name":"pos","nameLocation":"16022:3:6","nodeType":"VariableDeclaration","scope":2216,"src":"16014:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2208,"name":"uint256","nodeType":"ElementaryTypeName","src":"16014:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15991:35:6"},"returnParameters":{"id":2213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2212,"mutability":"mutable","name":"res","nameLocation":"16058:3:6","nodeType":"VariableDeclaration","scope":2216,"src":"16050:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2211,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16049:13:6"},"scope":2276,"src":"15964:197:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2228,"nodeType":"Block","src":"16462:98:6","statements":[{"AST":{"nativeSrc":"16481:73:6","nodeType":"YulBlock","src":"16481:73:6","statements":[{"nativeSrc":"16495:49:6","nodeType":"YulAssignment","src":"16495:49:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16516:3:6","nodeType":"YulIdentifier","src":"16516:3:6"},{"kind":"number","nativeSrc":"16521:4:6","nodeType":"YulLiteral","src":"16521:4:6","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16512:3:6","nodeType":"YulIdentifier","src":"16512:3:6"},"nativeSrc":"16512:14:6","nodeType":"YulFunctionCall","src":"16512:14:6"},{"arguments":[{"name":"pos","nativeSrc":"16532:3:6","nodeType":"YulIdentifier","src":"16532:3:6"},{"kind":"number","nativeSrc":"16537:4:6","nodeType":"YulLiteral","src":"16537:4:6","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16528:3:6","nodeType":"YulIdentifier","src":"16528:3:6"},"nativeSrc":"16528:14:6","nodeType":"YulFunctionCall","src":"16528:14:6"}],"functionName":{"name":"add","nativeSrc":"16508:3:6","nodeType":"YulIdentifier","src":"16508:3:6"},"nativeSrc":"16508:35:6","nodeType":"YulFunctionCall","src":"16508:35:6"}],"functionName":{"name":"mload","nativeSrc":"16502:5:6","nodeType":"YulIdentifier","src":"16502:5:6"},"nativeSrc":"16502:42:6","nodeType":"YulFunctionCall","src":"16502:42:6"},"variableNames":[{"name":"res","nativeSrc":"16495:3:6","nodeType":"YulIdentifier","src":"16495:3:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2220,"isOffset":false,"isSlot":false,"src":"16516:3:6","valueSize":1},{"declaration":2222,"isOffset":false,"isSlot":false,"src":"16532:3:6","valueSize":1},{"declaration":2225,"isOffset":false,"isSlot":false,"src":"16495:3:6","valueSize":1}],"id":2227,"nodeType":"InlineAssembly","src":"16472:82:6"}]},"documentation":{"id":2217,"nodeType":"StructuredDocumentation","src":"16167:191:6","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2229,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"16372:18:6","nodeType":"FunctionDefinition","parameters":{"id":2223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2220,"mutability":"mutable","name":"arr","nameLocation":"16408:3:6","nodeType":"VariableDeclaration","scope":2229,"src":"16391:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16391:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2219,"nodeType":"ArrayTypeName","src":"16391:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2222,"mutability":"mutable","name":"pos","nameLocation":"16421:3:6","nodeType":"VariableDeclaration","scope":2229,"src":"16413:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2221,"name":"uint256","nodeType":"ElementaryTypeName","src":"16413:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16390:35:6"},"returnParameters":{"id":2226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2225,"mutability":"mutable","name":"res","nameLocation":"16457:3:6","nodeType":"VariableDeclaration","scope":2229,"src":"16449:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16449:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16448:13:6"},"scope":2276,"src":"16363:197:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2241,"nodeType":"Block","src":"16861:98:6","statements":[{"AST":{"nativeSrc":"16880:73:6","nodeType":"YulBlock","src":"16880:73:6","statements":[{"nativeSrc":"16894:49:6","nodeType":"YulAssignment","src":"16894:49:6","value":{"arguments":[{"arguments":[{"arguments":[{"name":"arr","nativeSrc":"16915:3:6","nodeType":"YulIdentifier","src":"16915:3:6"},{"kind":"number","nativeSrc":"16920:4:6","nodeType":"YulLiteral","src":"16920:4:6","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16911:3:6","nodeType":"YulIdentifier","src":"16911:3:6"},"nativeSrc":"16911:14:6","nodeType":"YulFunctionCall","src":"16911:14:6"},{"arguments":[{"name":"pos","nativeSrc":"16931:3:6","nodeType":"YulIdentifier","src":"16931:3:6"},{"kind":"number","nativeSrc":"16936:4:6","nodeType":"YulLiteral","src":"16936:4:6","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"16927:3:6","nodeType":"YulIdentifier","src":"16927:3:6"},"nativeSrc":"16927:14:6","nodeType":"YulFunctionCall","src":"16927:14:6"}],"functionName":{"name":"add","nativeSrc":"16907:3:6","nodeType":"YulIdentifier","src":"16907:3:6"},"nativeSrc":"16907:35:6","nodeType":"YulFunctionCall","src":"16907:35:6"}],"functionName":{"name":"mload","nativeSrc":"16901:5:6","nodeType":"YulIdentifier","src":"16901:5:6"},"nativeSrc":"16901:42:6","nodeType":"YulFunctionCall","src":"16901:42:6"},"variableNames":[{"name":"res","nativeSrc":"16894:3:6","nodeType":"YulIdentifier","src":"16894:3:6"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":2233,"isOffset":false,"isSlot":false,"src":"16915:3:6","valueSize":1},{"declaration":2235,"isOffset":false,"isSlot":false,"src":"16931:3:6","valueSize":1},{"declaration":2238,"isOffset":false,"isSlot":false,"src":"16894:3:6","valueSize":1}],"id":2240,"nodeType":"InlineAssembly","src":"16871:82:6"}]},"documentation":{"id":2230,"nodeType":"StructuredDocumentation","src":"16566:191:6","text":" @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length."},"id":2242,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeMemoryAccess","nameLocation":"16771:18:6","nodeType":"FunctionDefinition","parameters":{"id":2236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2233,"mutability":"mutable","name":"arr","nameLocation":"16807:3:6","nodeType":"VariableDeclaration","scope":2242,"src":"16790:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2231,"name":"uint256","nodeType":"ElementaryTypeName","src":"16790:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2232,"nodeType":"ArrayTypeName","src":"16790:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2235,"mutability":"mutable","name":"pos","nameLocation":"16820:3:6","nodeType":"VariableDeclaration","scope":2242,"src":"16812:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2234,"name":"uint256","nodeType":"ElementaryTypeName","src":"16812:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16789:35:6"},"returnParameters":{"id":2239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2238,"mutability":"mutable","name":"res","nameLocation":"16856:3:6","nodeType":"VariableDeclaration","scope":2242,"src":"16848:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2237,"name":"uint256","nodeType":"ElementaryTypeName","src":"16848:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16847:13:6"},"scope":2276,"src":"16762:197:6","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2252,"nodeType":"Block","src":"17276:115:6","statements":[{"AST":{"nativeSrc":"17338:47:6","nodeType":"YulBlock","src":"17338:47:6","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"17359:10:6","nodeType":"YulIdentifier","src":"17359:10:6"},{"name":"len","nativeSrc":"17371:3:6","nodeType":"YulIdentifier","src":"17371:3:6"}],"functionName":{"name":"sstore","nativeSrc":"17352:6:6","nodeType":"YulIdentifier","src":"17352:6:6"},"nativeSrc":"17352:23:6","nodeType":"YulFunctionCall","src":"17352:23:6"},"nativeSrc":"17352:23:6","nodeType":"YulExpressionStatement","src":"17352:23:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2246,"isOffset":false,"isSlot":true,"src":"17359:10:6","suffix":"slot","valueSize":1},{"declaration":2248,"isOffset":false,"isSlot":false,"src":"17371:3:6","valueSize":1}],"id":2251,"nodeType":"InlineAssembly","src":"17329:56:6"}]},"documentation":{"id":2243,"nodeType":"StructuredDocumentation","src":"16965:234:6","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2253,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"17213:15:6","nodeType":"FunctionDefinition","parameters":{"id":2249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2246,"mutability":"mutable","name":"array","nameLocation":"17247:5:6","nodeType":"VariableDeclaration","scope":2253,"src":"17229:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2244,"name":"address","nodeType":"ElementaryTypeName","src":"17229:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2245,"nodeType":"ArrayTypeName","src":"17229:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2248,"mutability":"mutable","name":"len","nameLocation":"17262:3:6","nodeType":"VariableDeclaration","scope":2253,"src":"17254:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2247,"name":"uint256","nodeType":"ElementaryTypeName","src":"17254:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17228:38:6"},"returnParameters":{"id":2250,"nodeType":"ParameterList","parameters":[],"src":"17276:0:6"},"scope":2276,"src":"17204:187:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2263,"nodeType":"Block","src":"17708:115:6","statements":[{"AST":{"nativeSrc":"17770:47:6","nodeType":"YulBlock","src":"17770:47:6","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"17791:10:6","nodeType":"YulIdentifier","src":"17791:10:6"},{"name":"len","nativeSrc":"17803:3:6","nodeType":"YulIdentifier","src":"17803:3:6"}],"functionName":{"name":"sstore","nativeSrc":"17784:6:6","nodeType":"YulIdentifier","src":"17784:6:6"},"nativeSrc":"17784:23:6","nodeType":"YulFunctionCall","src":"17784:23:6"},"nativeSrc":"17784:23:6","nodeType":"YulExpressionStatement","src":"17784:23:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2257,"isOffset":false,"isSlot":true,"src":"17791:10:6","suffix":"slot","valueSize":1},{"declaration":2259,"isOffset":false,"isSlot":false,"src":"17803:3:6","valueSize":1}],"id":2262,"nodeType":"InlineAssembly","src":"17761:56:6"}]},"documentation":{"id":2254,"nodeType":"StructuredDocumentation","src":"17397:234:6","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2264,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"17645:15:6","nodeType":"FunctionDefinition","parameters":{"id":2260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2257,"mutability":"mutable","name":"array","nameLocation":"17679:5:6","nodeType":"VariableDeclaration","scope":2264,"src":"17661:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17661:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2256,"nodeType":"ArrayTypeName","src":"17661:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":2259,"mutability":"mutable","name":"len","nameLocation":"17694:3:6","nodeType":"VariableDeclaration","scope":2264,"src":"17686:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2258,"name":"uint256","nodeType":"ElementaryTypeName","src":"17686:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17660:38:6"},"returnParameters":{"id":2261,"nodeType":"ParameterList","parameters":[],"src":"17708:0:6"},"scope":2276,"src":"17636:187:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2274,"nodeType":"Block","src":"18140:115:6","statements":[{"AST":{"nativeSrc":"18202:47:6","nodeType":"YulBlock","src":"18202:47:6","statements":[{"expression":{"arguments":[{"name":"array.slot","nativeSrc":"18223:10:6","nodeType":"YulIdentifier","src":"18223:10:6"},{"name":"len","nativeSrc":"18235:3:6","nodeType":"YulIdentifier","src":"18235:3:6"}],"functionName":{"name":"sstore","nativeSrc":"18216:6:6","nodeType":"YulIdentifier","src":"18216:6:6"},"nativeSrc":"18216:23:6","nodeType":"YulFunctionCall","src":"18216:23:6"},"nativeSrc":"18216:23:6","nodeType":"YulExpressionStatement","src":"18216:23:6"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2268,"isOffset":false,"isSlot":true,"src":"18223:10:6","suffix":"slot","valueSize":1},{"declaration":2270,"isOffset":false,"isSlot":false,"src":"18235:3:6","valueSize":1}],"id":2273,"nodeType":"InlineAssembly","src":"18193:56:6"}]},"documentation":{"id":2265,"nodeType":"StructuredDocumentation","src":"17829:234:6","text":" @dev Helper to set the length of an dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased."},"id":2275,"implemented":true,"kind":"function","modifiers":[],"name":"unsafeSetLength","nameLocation":"18077:15:6","nodeType":"FunctionDefinition","parameters":{"id":2271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2268,"mutability":"mutable","name":"array","nameLocation":"18111:5:6","nodeType":"VariableDeclaration","scope":2275,"src":"18093:23:6","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2266,"name":"uint256","nodeType":"ElementaryTypeName","src":"18093:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2267,"nodeType":"ArrayTypeName","src":"18093:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2270,"mutability":"mutable","name":"len","nameLocation":"18126:3:6","nodeType":"VariableDeclaration","scope":2275,"src":"18118:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2269,"name":"uint256","nodeType":"ElementaryTypeName","src":"18118:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18092:38:6"},"returnParameters":{"id":2272,"nodeType":"ParameterList","parameters":[],"src":"18140:0:6"},"scope":2276,"src":"18068:187:6","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2277,"src":"412:17845:6","usedErrors":[],"usedEvents":[]}],"src":"183:18075:6"},"id":6},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[2306]},"id":2307,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2278,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:7"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":2279,"nodeType":"StructuredDocumentation","src":"127:496:7","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":2306,"linearizedBaseContracts":[2306],"name":"Context","nameLocation":"642:7:7","nodeType":"ContractDefinition","nodes":[{"body":{"id":2287,"nodeType":"Block","src":"718:34:7","statements":[{"expression":{"expression":{"id":2284,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:7","memberName":"sender","nodeType":"MemberAccess","src":"735:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2283,"id":2286,"nodeType":"Return","src":"728:17:7"}]},"id":2288,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:7","nodeType":"FunctionDefinition","parameters":{"id":2280,"nodeType":"ParameterList","parameters":[],"src":"675:2:7"},"returnParameters":{"id":2283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2288,"src":"709:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2281,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:7"},"scope":2306,"src":"656:96:7","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2296,"nodeType":"Block","src":"825:32:7","statements":[{"expression":{"expression":{"id":2293,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:7","memberName":"data","nodeType":"MemberAccess","src":"842:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":2292,"id":2295,"nodeType":"Return","src":"835:15:7"}]},"id":2297,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:7","nodeType":"FunctionDefinition","parameters":{"id":2289,"nodeType":"ParameterList","parameters":[],"src":"775:2:7"},"returnParameters":{"id":2292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2297,"src":"809:14:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":2290,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:7"},"scope":2306,"src":"758:99:7","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2304,"nodeType":"Block","src":"935:25:7","statements":[{"expression":{"hexValue":"30","id":2302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2301,"id":2303,"nodeType":"Return","src":"945:8:7"}]},"id":2305,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:7","nodeType":"FunctionDefinition","parameters":{"id":2298,"nodeType":"ParameterList","parameters":[],"src":"892:2:7"},"returnParameters":{"id":2301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2305,"src":"926:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2299,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:7"},"scope":2306,"src":"863:97:7","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":2307,"src":"624:338:7","usedErrors":[],"usedEvents":[]}],"src":"101:862:7"},"id":7},"@openzeppelin/contracts/utils/Panic.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","exportedSymbols":{"Panic":[2358]},"id":2359,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2308,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"33:24:8"},{"abstract":false,"baseContracts":[],"canonicalName":"Panic","contractDependencies":[],"contractKind":"library","documentation":{"id":2309,"nodeType":"StructuredDocumentation","src":"59:459:8","text":" @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]."},"fullyImplemented":true,"id":2358,"linearizedBaseContracts":[2358],"name":"Panic","nameLocation":"569:5:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":2310,"nodeType":"StructuredDocumentation","src":"581:36:8","text":"@dev generic / unspecified error"},"id":2313,"mutability":"constant","name":"GENERIC","nameLocation":"648:7:8","nodeType":"VariableDeclaration","scope":2358,"src":"622:40:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2311,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783030","id":2312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"658:4:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"internal"},{"constant":true,"documentation":{"id":2314,"nodeType":"StructuredDocumentation","src":"668:37:8","text":"@dev used by the assert() builtin"},"id":2317,"mutability":"constant","name":"ASSERT","nameLocation":"736:6:8","nodeType":"VariableDeclaration","scope":2358,"src":"710:39:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2315,"name":"uint256","nodeType":"ElementaryTypeName","src":"710:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783031","id":2316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"745:4:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"internal"},{"constant":true,"documentation":{"id":2318,"nodeType":"StructuredDocumentation","src":"755:41:8","text":"@dev arithmetic underflow or overflow"},"id":2321,"mutability":"constant","name":"UNDER_OVERFLOW","nameLocation":"827:14:8","nodeType":"VariableDeclaration","scope":2358,"src":"801:47:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2319,"name":"uint256","nodeType":"ElementaryTypeName","src":"801:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783131","id":2320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"844:4:8","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"},"visibility":"internal"},{"constant":true,"documentation":{"id":2322,"nodeType":"StructuredDocumentation","src":"854:35:8","text":"@dev division or modulo by zero"},"id":2325,"mutability":"constant","name":"DIVISION_BY_ZERO","nameLocation":"920:16:8","nodeType":"VariableDeclaration","scope":2358,"src":"894:49:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2323,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783132","id":2324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"939:4:8","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"},"visibility":"internal"},{"constant":true,"documentation":{"id":2326,"nodeType":"StructuredDocumentation","src":"949:30:8","text":"@dev enum conversion error"},"id":2329,"mutability":"constant","name":"ENUM_CONVERSION_ERROR","nameLocation":"1010:21:8","nodeType":"VariableDeclaration","scope":2358,"src":"984:54:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2327,"name":"uint256","nodeType":"ElementaryTypeName","src":"984:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783231","id":2328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1034:4:8","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"},"visibility":"internal"},{"constant":true,"documentation":{"id":2330,"nodeType":"StructuredDocumentation","src":"1044:36:8","text":"@dev invalid encoding in storage"},"id":2333,"mutability":"constant","name":"STORAGE_ENCODING_ERROR","nameLocation":"1111:22:8","nodeType":"VariableDeclaration","scope":2358,"src":"1085:55:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2331,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783232","id":2332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1136:4:8","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"},"visibility":"internal"},{"constant":true,"documentation":{"id":2334,"nodeType":"StructuredDocumentation","src":"1146:24:8","text":"@dev empty array pop"},"id":2337,"mutability":"constant","name":"EMPTY_ARRAY_POP","nameLocation":"1201:15:8","nodeType":"VariableDeclaration","scope":2358,"src":"1175:48:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2335,"name":"uint256","nodeType":"ElementaryTypeName","src":"1175:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783331","id":2336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1219:4:8","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"},"visibility":"internal"},{"constant":true,"documentation":{"id":2338,"nodeType":"StructuredDocumentation","src":"1229:35:8","text":"@dev array out of bounds access"},"id":2341,"mutability":"constant","name":"ARRAY_OUT_OF_BOUNDS","nameLocation":"1295:19:8","nodeType":"VariableDeclaration","scope":2358,"src":"1269:52:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1269:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783332","id":2340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1317:4:8","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"},"visibility":"internal"},{"constant":true,"documentation":{"id":2342,"nodeType":"StructuredDocumentation","src":"1327:65:8","text":"@dev resource error (too large allocation or too large array)"},"id":2345,"mutability":"constant","name":"RESOURCE_ERROR","nameLocation":"1423:14:8","nodeType":"VariableDeclaration","scope":2358,"src":"1397:47:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2343,"name":"uint256","nodeType":"ElementaryTypeName","src":"1397:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783431","id":2344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1440:4:8","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"},"visibility":"internal"},{"constant":true,"documentation":{"id":2346,"nodeType":"StructuredDocumentation","src":"1450:42:8","text":"@dev calling invalid internal function"},"id":2349,"mutability":"constant","name":"INVALID_INTERNAL_FUNCTION","nameLocation":"1523:25:8","nodeType":"VariableDeclaration","scope":2358,"src":"1497:58:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2347,"name":"uint256","nodeType":"ElementaryTypeName","src":"1497:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783531","id":2348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1551:4:8","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"},"visibility":"internal"},{"body":{"id":2356,"nodeType":"Block","src":"1723:178:8","statements":[{"AST":{"nativeSrc":"1785:110:8","nodeType":"YulBlock","src":"1785:110:8","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1806:4:8","nodeType":"YulLiteral","src":"1806:4:8","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1812:10:8","nodeType":"YulLiteral","src":"1812:10:8","type":"","value":"0x4e487b71"}],"functionName":{"name":"mstore","nativeSrc":"1799:6:8","nodeType":"YulIdentifier","src":"1799:6:8"},"nativeSrc":"1799:24:8","nodeType":"YulFunctionCall","src":"1799:24:8"},"nativeSrc":"1799:24:8","nodeType":"YulExpressionStatement","src":"1799:24:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1843:4:8","nodeType":"YulLiteral","src":"1843:4:8","type":"","value":"0x20"},{"name":"code","nativeSrc":"1849:4:8","nodeType":"YulIdentifier","src":"1849:4:8"}],"functionName":{"name":"mstore","nativeSrc":"1836:6:8","nodeType":"YulIdentifier","src":"1836:6:8"},"nativeSrc":"1836:18:8","nodeType":"YulFunctionCall","src":"1836:18:8"},"nativeSrc":"1836:18:8","nodeType":"YulExpressionStatement","src":"1836:18:8"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1874:4:8","nodeType":"YulLiteral","src":"1874:4:8","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1880:4:8","nodeType":"YulLiteral","src":"1880:4:8","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1867:6:8","nodeType":"YulIdentifier","src":"1867:6:8"},"nativeSrc":"1867:18:8","nodeType":"YulFunctionCall","src":"1867:18:8"},"nativeSrc":"1867:18:8","nodeType":"YulExpressionStatement","src":"1867:18:8"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2352,"isOffset":false,"isSlot":false,"src":"1849:4:8","valueSize":1}],"id":2355,"nodeType":"InlineAssembly","src":"1776:119:8"}]},"documentation":{"id":2350,"nodeType":"StructuredDocumentation","src":"1562:113:8","text":"@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes."},"id":2357,"implemented":true,"kind":"function","modifiers":[],"name":"panic","nameLocation":"1689:5:8","nodeType":"FunctionDefinition","parameters":{"id":2353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2352,"mutability":"mutable","name":"code","nameLocation":"1703:4:8","nodeType":"VariableDeclaration","scope":2357,"src":"1695:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2351,"name":"uint256","nodeType":"ElementaryTypeName","src":"1695:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1694:14:8"},"returnParameters":{"id":2354,"nodeType":"ParameterList","parameters":[],"src":"1723:0:8"},"scope":2358,"src":"1680:221:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2359,"src":"561:1342:8","usedErrors":[],"usedEvents":[]}],"src":"33:1871:8"},"id":8},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/SlotDerivation.sol","exportedSymbols":{"SlotDerivation":[2488]},"id":2489,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2360,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"124:24:9"},{"abstract":false,"baseContracts":[],"canonicalName":"SlotDerivation","contractDependencies":[],"contractKind":"library","documentation":{"id":2361,"nodeType":"StructuredDocumentation","src":"150:1342:9","text":" @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n the solidity language / compiler.\n See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n Example usage:\n ```solidity\n contract Example {\n // Add the library methods\n using StorageSlot for bytes32;\n using SlotDerivation for bytes32;\n // Declare a namespace\n string private constant _NAMESPACE = \"\" // eg. OpenZeppelin.Slot\n function setValueInNamespace(uint256 key, address newValue) internal {\n _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n }\n function getValueInNamespace(uint256 key) internal view returns (address) {\n return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n }\n }\n ```\n TIP: Consider using this library along with {StorageSlot}.\n NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n upgrade safety will ignore the slots accessed through this library."},"fullyImplemented":true,"id":2488,"linearizedBaseContracts":[2488],"name":"SlotDerivation","nameLocation":"1501:14:9","nodeType":"ContractDefinition","nodes":[{"body":{"id":2370,"nodeType":"Block","src":"1684:221:9","statements":[{"AST":{"nativeSrc":"1746:153:9","nodeType":"YulBlock","src":"1746:153:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1767:4:9","nodeType":"YulLiteral","src":"1767:4:9","type":"","value":"0x00"},{"arguments":[{"arguments":[{"arguments":[{"name":"namespace","nativeSrc":"1791:9:9","nodeType":"YulIdentifier","src":"1791:9:9"},{"kind":"number","nativeSrc":"1802:4:9","nodeType":"YulLiteral","src":"1802:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1787:3:9","nodeType":"YulIdentifier","src":"1787:3:9"},"nativeSrc":"1787:20:9","nodeType":"YulFunctionCall","src":"1787:20:9"},{"arguments":[{"name":"namespace","nativeSrc":"1815:9:9","nodeType":"YulIdentifier","src":"1815:9:9"}],"functionName":{"name":"mload","nativeSrc":"1809:5:9","nodeType":"YulIdentifier","src":"1809:5:9"},"nativeSrc":"1809:16:9","nodeType":"YulFunctionCall","src":"1809:16:9"}],"functionName":{"name":"keccak256","nativeSrc":"1777:9:9","nodeType":"YulIdentifier","src":"1777:9:9"},"nativeSrc":"1777:49:9","nodeType":"YulFunctionCall","src":"1777:49:9"},{"kind":"number","nativeSrc":"1828:1:9","nodeType":"YulLiteral","src":"1828:1:9","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"1773:3:9","nodeType":"YulIdentifier","src":"1773:3:9"},"nativeSrc":"1773:57:9","nodeType":"YulFunctionCall","src":"1773:57:9"}],"functionName":{"name":"mstore","nativeSrc":"1760:6:9","nodeType":"YulIdentifier","src":"1760:6:9"},"nativeSrc":"1760:71:9","nodeType":"YulFunctionCall","src":"1760:71:9"},"nativeSrc":"1760:71:9","nodeType":"YulExpressionStatement","src":"1760:71:9"},{"nativeSrc":"1844:45:9","nodeType":"YulAssignment","src":"1844:45:9","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1866:4:9","nodeType":"YulLiteral","src":"1866:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1872:4:9","nodeType":"YulLiteral","src":"1872:4:9","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"1856:9:9","nodeType":"YulIdentifier","src":"1856:9:9"},"nativeSrc":"1856:21:9","nodeType":"YulFunctionCall","src":"1856:21:9"},{"arguments":[{"kind":"number","nativeSrc":"1883:4:9","nodeType":"YulLiteral","src":"1883:4:9","type":"","value":"0xff"}],"functionName":{"name":"not","nativeSrc":"1879:3:9","nodeType":"YulIdentifier","src":"1879:3:9"},"nativeSrc":"1879:9:9","nodeType":"YulFunctionCall","src":"1879:9:9"}],"functionName":{"name":"and","nativeSrc":"1852:3:9","nodeType":"YulIdentifier","src":"1852:3:9"},"nativeSrc":"1852:37:9","nodeType":"YulFunctionCall","src":"1852:37:9"},"variableNames":[{"name":"slot","nativeSrc":"1844:4:9","nodeType":"YulIdentifier","src":"1844:4:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2364,"isOffset":false,"isSlot":false,"src":"1791:9:9","valueSize":1},{"declaration":2364,"isOffset":false,"isSlot":false,"src":"1815:9:9","valueSize":1},{"declaration":2367,"isOffset":false,"isSlot":false,"src":"1844:4:9","valueSize":1}],"id":2369,"nodeType":"InlineAssembly","src":"1737:162:9"}]},"documentation":{"id":2362,"nodeType":"StructuredDocumentation","src":"1522:74:9","text":" @dev Derive an ERC-7201 slot from a string (namespace)."},"id":2371,"implemented":true,"kind":"function","modifiers":[],"name":"erc7201Slot","nameLocation":"1610:11:9","nodeType":"FunctionDefinition","parameters":{"id":2365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2364,"mutability":"mutable","name":"namespace","nameLocation":"1636:9:9","nodeType":"VariableDeclaration","scope":2371,"src":"1622:23:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2363,"name":"string","nodeType":"ElementaryTypeName","src":"1622:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1621:25:9"},"returnParameters":{"id":2368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2367,"mutability":"mutable","name":"slot","nameLocation":"1678:4:9","nodeType":"VariableDeclaration","scope":2371,"src":"1670:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1670:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1669:14:9"},"scope":2488,"src":"1601:304:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2392,"nodeType":"Block","src":"2097:86:9","statements":[{"id":2391,"nodeType":"UncheckedBlock","src":"2107:70:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2385,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2374,"src":"2154:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2146:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2383,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:9","typeDescriptions":{}}},"id":2386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2146:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2387,"name":"pos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2376,"src":"2162:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2146:19:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2138:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2138:7:9","typeDescriptions":{}}},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2380,"id":2390,"nodeType":"Return","src":"2131:35:9"}]}]},"documentation":{"id":2372,"nodeType":"StructuredDocumentation","src":"1911:99:9","text":" @dev Add an offset to a slot to get the n-th element of a structure or an array."},"id":2393,"implemented":true,"kind":"function","modifiers":[],"name":"offset","nameLocation":"2024:6:9","nodeType":"FunctionDefinition","parameters":{"id":2377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2374,"mutability":"mutable","name":"slot","nameLocation":"2039:4:9","nodeType":"VariableDeclaration","scope":2393,"src":"2031:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2031:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2376,"mutability":"mutable","name":"pos","nameLocation":"2053:3:9","nodeType":"VariableDeclaration","scope":2393,"src":"2045:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2375,"name":"uint256","nodeType":"ElementaryTypeName","src":"2045:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2030:27:9"},"returnParameters":{"id":2380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2379,"mutability":"mutable","name":"result","nameLocation":"2089:6:9","nodeType":"VariableDeclaration","scope":2393,"src":"2081:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2081:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2080:16:9"},"scope":2488,"src":"2015:168:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2402,"nodeType":"Block","src":"2386:154:9","statements":[{"AST":{"nativeSrc":"2448:86:9","nodeType":"YulBlock","src":"2448:86:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2469:4:9","nodeType":"YulLiteral","src":"2469:4:9","type":"","value":"0x00"},{"name":"slot","nativeSrc":"2475:4:9","nodeType":"YulIdentifier","src":"2475:4:9"}],"functionName":{"name":"mstore","nativeSrc":"2462:6:9","nodeType":"YulIdentifier","src":"2462:6:9"},"nativeSrc":"2462:18:9","nodeType":"YulFunctionCall","src":"2462:18:9"},"nativeSrc":"2462:18:9","nodeType":"YulExpressionStatement","src":"2462:18:9"},{"nativeSrc":"2493:31:9","nodeType":"YulAssignment","src":"2493:31:9","value":{"arguments":[{"kind":"number","nativeSrc":"2513:4:9","nodeType":"YulLiteral","src":"2513:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2519:4:9","nodeType":"YulLiteral","src":"2519:4:9","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2503:9:9","nodeType":"YulIdentifier","src":"2503:9:9"},"nativeSrc":"2503:21:9","nodeType":"YulFunctionCall","src":"2503:21:9"},"variableNames":[{"name":"result","nativeSrc":"2493:6:9","nodeType":"YulIdentifier","src":"2493:6:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2399,"isOffset":false,"isSlot":false,"src":"2493:6:9","valueSize":1},{"declaration":2396,"isOffset":false,"isSlot":false,"src":"2475:4:9","valueSize":1}],"id":2401,"nodeType":"InlineAssembly","src":"2439:95:9"}]},"documentation":{"id":2394,"nodeType":"StructuredDocumentation","src":"2189:118:9","text":" @dev Derive the location of the first element in an array from the slot where the length is stored."},"id":2403,"implemented":true,"kind":"function","modifiers":[],"name":"deriveArray","nameLocation":"2321:11:9","nodeType":"FunctionDefinition","parameters":{"id":2397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2396,"mutability":"mutable","name":"slot","nameLocation":"2341:4:9","nodeType":"VariableDeclaration","scope":2403,"src":"2333:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2333:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2332:14:9"},"returnParameters":{"id":2400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2399,"mutability":"mutable","name":"result","nameLocation":"2378:6:9","nodeType":"VariableDeclaration","scope":2403,"src":"2370:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2370:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2369:16:9"},"scope":2488,"src":"2312:228:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2414,"nodeType":"Block","src":"2718:184:9","statements":[{"AST":{"nativeSrc":"2780:116:9","nodeType":"YulBlock","src":"2780:116:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2801:4:9","nodeType":"YulLiteral","src":"2801:4:9","type":"","value":"0x00"},{"name":"key","nativeSrc":"2807:3:9","nodeType":"YulIdentifier","src":"2807:3:9"}],"functionName":{"name":"mstore","nativeSrc":"2794:6:9","nodeType":"YulIdentifier","src":"2794:6:9"},"nativeSrc":"2794:17:9","nodeType":"YulFunctionCall","src":"2794:17:9"},"nativeSrc":"2794:17:9","nodeType":"YulExpressionStatement","src":"2794:17:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2831:4:9","nodeType":"YulLiteral","src":"2831:4:9","type":"","value":"0x20"},{"name":"slot","nativeSrc":"2837:4:9","nodeType":"YulIdentifier","src":"2837:4:9"}],"functionName":{"name":"mstore","nativeSrc":"2824:6:9","nodeType":"YulIdentifier","src":"2824:6:9"},"nativeSrc":"2824:18:9","nodeType":"YulFunctionCall","src":"2824:18:9"},"nativeSrc":"2824:18:9","nodeType":"YulExpressionStatement","src":"2824:18:9"},{"nativeSrc":"2855:31:9","nodeType":"YulAssignment","src":"2855:31:9","value":{"arguments":[{"kind":"number","nativeSrc":"2875:4:9","nodeType":"YulLiteral","src":"2875:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2881:4:9","nodeType":"YulLiteral","src":"2881:4:9","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"2865:9:9","nodeType":"YulIdentifier","src":"2865:9:9"},"nativeSrc":"2865:21:9","nodeType":"YulFunctionCall","src":"2865:21:9"},"variableNames":[{"name":"result","nativeSrc":"2855:6:9","nodeType":"YulIdentifier","src":"2855:6:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2408,"isOffset":false,"isSlot":false,"src":"2807:3:9","valueSize":1},{"declaration":2411,"isOffset":false,"isSlot":false,"src":"2855:6:9","valueSize":1},{"declaration":2406,"isOffset":false,"isSlot":false,"src":"2837:4:9","valueSize":1}],"id":2413,"nodeType":"InlineAssembly","src":"2771:125:9"}]},"documentation":{"id":2404,"nodeType":"StructuredDocumentation","src":"2546:78:9","text":" @dev Derive the location of a mapping element from the key."},"id":2415,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"2638:13:9","nodeType":"FunctionDefinition","parameters":{"id":2409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2406,"mutability":"mutable","name":"slot","nameLocation":"2660:4:9","nodeType":"VariableDeclaration","scope":2415,"src":"2652:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2652:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2408,"mutability":"mutable","name":"key","nameLocation":"2674:3:9","nodeType":"VariableDeclaration","scope":2415,"src":"2666:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2407,"name":"address","nodeType":"ElementaryTypeName","src":"2666:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2651:27:9"},"returnParameters":{"id":2412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2411,"mutability":"mutable","name":"result","nameLocation":"2710:6:9","nodeType":"VariableDeclaration","scope":2415,"src":"2702:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2702:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2701:16:9"},"scope":2488,"src":"2629:273:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2426,"nodeType":"Block","src":"3077:184:9","statements":[{"AST":{"nativeSrc":"3139:116:9","nodeType":"YulBlock","src":"3139:116:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3160:4:9","nodeType":"YulLiteral","src":"3160:4:9","type":"","value":"0x00"},{"name":"key","nativeSrc":"3166:3:9","nodeType":"YulIdentifier","src":"3166:3:9"}],"functionName":{"name":"mstore","nativeSrc":"3153:6:9","nodeType":"YulIdentifier","src":"3153:6:9"},"nativeSrc":"3153:17:9","nodeType":"YulFunctionCall","src":"3153:17:9"},"nativeSrc":"3153:17:9","nodeType":"YulExpressionStatement","src":"3153:17:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3190:4:9","nodeType":"YulLiteral","src":"3190:4:9","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3196:4:9","nodeType":"YulIdentifier","src":"3196:4:9"}],"functionName":{"name":"mstore","nativeSrc":"3183:6:9","nodeType":"YulIdentifier","src":"3183:6:9"},"nativeSrc":"3183:18:9","nodeType":"YulFunctionCall","src":"3183:18:9"},"nativeSrc":"3183:18:9","nodeType":"YulExpressionStatement","src":"3183:18:9"},{"nativeSrc":"3214:31:9","nodeType":"YulAssignment","src":"3214:31:9","value":{"arguments":[{"kind":"number","nativeSrc":"3234:4:9","nodeType":"YulLiteral","src":"3234:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3240:4:9","nodeType":"YulLiteral","src":"3240:4:9","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3224:9:9","nodeType":"YulIdentifier","src":"3224:9:9"},"nativeSrc":"3224:21:9","nodeType":"YulFunctionCall","src":"3224:21:9"},"variableNames":[{"name":"result","nativeSrc":"3214:6:9","nodeType":"YulIdentifier","src":"3214:6:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2420,"isOffset":false,"isSlot":false,"src":"3166:3:9","valueSize":1},{"declaration":2423,"isOffset":false,"isSlot":false,"src":"3214:6:9","valueSize":1},{"declaration":2418,"isOffset":false,"isSlot":false,"src":"3196:4:9","valueSize":1}],"id":2425,"nodeType":"InlineAssembly","src":"3130:125:9"}]},"documentation":{"id":2416,"nodeType":"StructuredDocumentation","src":"2908:78:9","text":" @dev Derive the location of a mapping element from the key."},"id":2427,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3000:13:9","nodeType":"FunctionDefinition","parameters":{"id":2421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2418,"mutability":"mutable","name":"slot","nameLocation":"3022:4:9","nodeType":"VariableDeclaration","scope":2427,"src":"3014:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3014:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2420,"mutability":"mutable","name":"key","nameLocation":"3033:3:9","nodeType":"VariableDeclaration","scope":2427,"src":"3028:8:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2419,"name":"bool","nodeType":"ElementaryTypeName","src":"3028:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3013:24:9"},"returnParameters":{"id":2424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2423,"mutability":"mutable","name":"result","nameLocation":"3069:6:9","nodeType":"VariableDeclaration","scope":2427,"src":"3061:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3061:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3060:16:9"},"scope":2488,"src":"2991:270:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2438,"nodeType":"Block","src":"3439:184:9","statements":[{"AST":{"nativeSrc":"3501:116:9","nodeType":"YulBlock","src":"3501:116:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3522:4:9","nodeType":"YulLiteral","src":"3522:4:9","type":"","value":"0x00"},{"name":"key","nativeSrc":"3528:3:9","nodeType":"YulIdentifier","src":"3528:3:9"}],"functionName":{"name":"mstore","nativeSrc":"3515:6:9","nodeType":"YulIdentifier","src":"3515:6:9"},"nativeSrc":"3515:17:9","nodeType":"YulFunctionCall","src":"3515:17:9"},"nativeSrc":"3515:17:9","nodeType":"YulExpressionStatement","src":"3515:17:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3552:4:9","nodeType":"YulLiteral","src":"3552:4:9","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3558:4:9","nodeType":"YulIdentifier","src":"3558:4:9"}],"functionName":{"name":"mstore","nativeSrc":"3545:6:9","nodeType":"YulIdentifier","src":"3545:6:9"},"nativeSrc":"3545:18:9","nodeType":"YulFunctionCall","src":"3545:18:9"},"nativeSrc":"3545:18:9","nodeType":"YulExpressionStatement","src":"3545:18:9"},{"nativeSrc":"3576:31:9","nodeType":"YulAssignment","src":"3576:31:9","value":{"arguments":[{"kind":"number","nativeSrc":"3596:4:9","nodeType":"YulLiteral","src":"3596:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3602:4:9","nodeType":"YulLiteral","src":"3602:4:9","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3586:9:9","nodeType":"YulIdentifier","src":"3586:9:9"},"nativeSrc":"3586:21:9","nodeType":"YulFunctionCall","src":"3586:21:9"},"variableNames":[{"name":"result","nativeSrc":"3576:6:9","nodeType":"YulIdentifier","src":"3576:6:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2432,"isOffset":false,"isSlot":false,"src":"3528:3:9","valueSize":1},{"declaration":2435,"isOffset":false,"isSlot":false,"src":"3576:6:9","valueSize":1},{"declaration":2430,"isOffset":false,"isSlot":false,"src":"3558:4:9","valueSize":1}],"id":2437,"nodeType":"InlineAssembly","src":"3492:125:9"}]},"documentation":{"id":2428,"nodeType":"StructuredDocumentation","src":"3267:78:9","text":" @dev Derive the location of a mapping element from the key."},"id":2439,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3359:13:9","nodeType":"FunctionDefinition","parameters":{"id":2433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2430,"mutability":"mutable","name":"slot","nameLocation":"3381:4:9","nodeType":"VariableDeclaration","scope":2439,"src":"3373:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3373:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2432,"mutability":"mutable","name":"key","nameLocation":"3395:3:9","nodeType":"VariableDeclaration","scope":2439,"src":"3387:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3387:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3372:27:9"},"returnParameters":{"id":2436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2435,"mutability":"mutable","name":"result","nameLocation":"3431:6:9","nodeType":"VariableDeclaration","scope":2439,"src":"3423:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3423:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3422:16:9"},"scope":2488,"src":"3350:273:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2450,"nodeType":"Block","src":"3801:184:9","statements":[{"AST":{"nativeSrc":"3863:116:9","nodeType":"YulBlock","src":"3863:116:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3884:4:9","nodeType":"YulLiteral","src":"3884:4:9","type":"","value":"0x00"},{"name":"key","nativeSrc":"3890:3:9","nodeType":"YulIdentifier","src":"3890:3:9"}],"functionName":{"name":"mstore","nativeSrc":"3877:6:9","nodeType":"YulIdentifier","src":"3877:6:9"},"nativeSrc":"3877:17:9","nodeType":"YulFunctionCall","src":"3877:17:9"},"nativeSrc":"3877:17:9","nodeType":"YulExpressionStatement","src":"3877:17:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3914:4:9","nodeType":"YulLiteral","src":"3914:4:9","type":"","value":"0x20"},{"name":"slot","nativeSrc":"3920:4:9","nodeType":"YulIdentifier","src":"3920:4:9"}],"functionName":{"name":"mstore","nativeSrc":"3907:6:9","nodeType":"YulIdentifier","src":"3907:6:9"},"nativeSrc":"3907:18:9","nodeType":"YulFunctionCall","src":"3907:18:9"},"nativeSrc":"3907:18:9","nodeType":"YulExpressionStatement","src":"3907:18:9"},{"nativeSrc":"3938:31:9","nodeType":"YulAssignment","src":"3938:31:9","value":{"arguments":[{"kind":"number","nativeSrc":"3958:4:9","nodeType":"YulLiteral","src":"3958:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3964:4:9","nodeType":"YulLiteral","src":"3964:4:9","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"3948:9:9","nodeType":"YulIdentifier","src":"3948:9:9"},"nativeSrc":"3948:21:9","nodeType":"YulFunctionCall","src":"3948:21:9"},"variableNames":[{"name":"result","nativeSrc":"3938:6:9","nodeType":"YulIdentifier","src":"3938:6:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2444,"isOffset":false,"isSlot":false,"src":"3890:3:9","valueSize":1},{"declaration":2447,"isOffset":false,"isSlot":false,"src":"3938:6:9","valueSize":1},{"declaration":2442,"isOffset":false,"isSlot":false,"src":"3920:4:9","valueSize":1}],"id":2449,"nodeType":"InlineAssembly","src":"3854:125:9"}]},"documentation":{"id":2440,"nodeType":"StructuredDocumentation","src":"3629:78:9","text":" @dev Derive the location of a mapping element from the key."},"id":2451,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"3721:13:9","nodeType":"FunctionDefinition","parameters":{"id":2445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2442,"mutability":"mutable","name":"slot","nameLocation":"3743:4:9","nodeType":"VariableDeclaration","scope":2451,"src":"3735:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3735:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2444,"mutability":"mutable","name":"key","nameLocation":"3757:3:9","nodeType":"VariableDeclaration","scope":2451,"src":"3749:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2443,"name":"uint256","nodeType":"ElementaryTypeName","src":"3749:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3734:27:9"},"returnParameters":{"id":2448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2447,"mutability":"mutable","name":"result","nameLocation":"3793:6:9","nodeType":"VariableDeclaration","scope":2451,"src":"3785:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3785:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3784:16:9"},"scope":2488,"src":"3712:273:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2462,"nodeType":"Block","src":"4162:184:9","statements":[{"AST":{"nativeSrc":"4224:116:9","nodeType":"YulBlock","src":"4224:116:9","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4245:4:9","nodeType":"YulLiteral","src":"4245:4:9","type":"","value":"0x00"},{"name":"key","nativeSrc":"4251:3:9","nodeType":"YulIdentifier","src":"4251:3:9"}],"functionName":{"name":"mstore","nativeSrc":"4238:6:9","nodeType":"YulIdentifier","src":"4238:6:9"},"nativeSrc":"4238:17:9","nodeType":"YulFunctionCall","src":"4238:17:9"},"nativeSrc":"4238:17:9","nodeType":"YulExpressionStatement","src":"4238:17:9"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4275:4:9","nodeType":"YulLiteral","src":"4275:4:9","type":"","value":"0x20"},{"name":"slot","nativeSrc":"4281:4:9","nodeType":"YulIdentifier","src":"4281:4:9"}],"functionName":{"name":"mstore","nativeSrc":"4268:6:9","nodeType":"YulIdentifier","src":"4268:6:9"},"nativeSrc":"4268:18:9","nodeType":"YulFunctionCall","src":"4268:18:9"},"nativeSrc":"4268:18:9","nodeType":"YulExpressionStatement","src":"4268:18:9"},{"nativeSrc":"4299:31:9","nodeType":"YulAssignment","src":"4299:31:9","value":{"arguments":[{"kind":"number","nativeSrc":"4319:4:9","nodeType":"YulLiteral","src":"4319:4:9","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4325:4:9","nodeType":"YulLiteral","src":"4325:4:9","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"4309:9:9","nodeType":"YulIdentifier","src":"4309:9:9"},"nativeSrc":"4309:21:9","nodeType":"YulFunctionCall","src":"4309:21:9"},"variableNames":[{"name":"result","nativeSrc":"4299:6:9","nodeType":"YulIdentifier","src":"4299:6:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2456,"isOffset":false,"isSlot":false,"src":"4251:3:9","valueSize":1},{"declaration":2459,"isOffset":false,"isSlot":false,"src":"4299:6:9","valueSize":1},{"declaration":2454,"isOffset":false,"isSlot":false,"src":"4281:4:9","valueSize":1}],"id":2461,"nodeType":"InlineAssembly","src":"4215:125:9"}]},"documentation":{"id":2452,"nodeType":"StructuredDocumentation","src":"3991:78:9","text":" @dev Derive the location of a mapping element from the key."},"id":2463,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4083:13:9","nodeType":"FunctionDefinition","parameters":{"id":2457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2454,"mutability":"mutable","name":"slot","nameLocation":"4105:4:9","nodeType":"VariableDeclaration","scope":2463,"src":"4097:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4097:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2456,"mutability":"mutable","name":"key","nameLocation":"4118:3:9","nodeType":"VariableDeclaration","scope":2463,"src":"4111:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2455,"name":"int256","nodeType":"ElementaryTypeName","src":"4111:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4096:26:9"},"returnParameters":{"id":2460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2459,"mutability":"mutable","name":"result","nameLocation":"4154:6:9","nodeType":"VariableDeclaration","scope":2463,"src":"4146:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4146:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4145:16:9"},"scope":2488,"src":"4074:272:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2474,"nodeType":"Block","src":"4530:353:9","statements":[{"AST":{"nativeSrc":"4592:285:9","nodeType":"YulBlock","src":"4592:285:9","statements":[{"nativeSrc":"4606:24:9","nodeType":"YulVariableDeclaration","src":"4606:24:9","value":{"arguments":[{"name":"key","nativeSrc":"4626:3:9","nodeType":"YulIdentifier","src":"4626:3:9"}],"functionName":{"name":"mload","nativeSrc":"4620:5:9","nodeType":"YulIdentifier","src":"4620:5:9"},"nativeSrc":"4620:10:9","nodeType":"YulFunctionCall","src":"4620:10:9"},"variables":[{"name":"length","nativeSrc":"4610:6:9","nodeType":"YulTypedName","src":"4610:6:9","type":""}]},{"nativeSrc":"4643:27:9","nodeType":"YulVariableDeclaration","src":"4643:27:9","value":{"arguments":[{"name":"key","nativeSrc":"4660:3:9","nodeType":"YulIdentifier","src":"4660:3:9"},{"kind":"number","nativeSrc":"4665:4:9","nodeType":"YulLiteral","src":"4665:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4656:3:9","nodeType":"YulIdentifier","src":"4656:3:9"},"nativeSrc":"4656:14:9","nodeType":"YulFunctionCall","src":"4656:14:9"},"variables":[{"name":"begin","nativeSrc":"4647:5:9","nodeType":"YulTypedName","src":"4647:5:9","type":""}]},{"nativeSrc":"4683:29:9","nodeType":"YulVariableDeclaration","src":"4683:29:9","value":{"arguments":[{"name":"begin","nativeSrc":"4698:5:9","nodeType":"YulIdentifier","src":"4698:5:9"},{"name":"length","nativeSrc":"4705:6:9","nodeType":"YulIdentifier","src":"4705:6:9"}],"functionName":{"name":"add","nativeSrc":"4694:3:9","nodeType":"YulIdentifier","src":"4694:3:9"},"nativeSrc":"4694:18:9","nodeType":"YulFunctionCall","src":"4694:18:9"},"variables":[{"name":"end","nativeSrc":"4687:3:9","nodeType":"YulTypedName","src":"4687:3:9","type":""}]},{"nativeSrc":"4725:23:9","nodeType":"YulVariableDeclaration","src":"4725:23:9","value":{"arguments":[{"name":"end","nativeSrc":"4744:3:9","nodeType":"YulIdentifier","src":"4744:3:9"}],"functionName":{"name":"mload","nativeSrc":"4738:5:9","nodeType":"YulIdentifier","src":"4738:5:9"},"nativeSrc":"4738:10:9","nodeType":"YulFunctionCall","src":"4738:10:9"},"variables":[{"name":"cache","nativeSrc":"4729:5:9","nodeType":"YulTypedName","src":"4729:5:9","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4768:3:9","nodeType":"YulIdentifier","src":"4768:3:9"},{"name":"slot","nativeSrc":"4773:4:9","nodeType":"YulIdentifier","src":"4773:4:9"}],"functionName":{"name":"mstore","nativeSrc":"4761:6:9","nodeType":"YulIdentifier","src":"4761:6:9"},"nativeSrc":"4761:17:9","nodeType":"YulFunctionCall","src":"4761:17:9"},"nativeSrc":"4761:17:9","nodeType":"YulExpressionStatement","src":"4761:17:9"},{"nativeSrc":"4791:45:9","nodeType":"YulAssignment","src":"4791:45:9","value":{"arguments":[{"name":"begin","nativeSrc":"4811:5:9","nodeType":"YulIdentifier","src":"4811:5:9"},{"arguments":[{"name":"length","nativeSrc":"4822:6:9","nodeType":"YulIdentifier","src":"4822:6:9"},{"kind":"number","nativeSrc":"4830:4:9","nodeType":"YulLiteral","src":"4830:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4818:3:9","nodeType":"YulIdentifier","src":"4818:3:9"},"nativeSrc":"4818:17:9","nodeType":"YulFunctionCall","src":"4818:17:9"}],"functionName":{"name":"keccak256","nativeSrc":"4801:9:9","nodeType":"YulIdentifier","src":"4801:9:9"},"nativeSrc":"4801:35:9","nodeType":"YulFunctionCall","src":"4801:35:9"},"variableNames":[{"name":"result","nativeSrc":"4791:6:9","nodeType":"YulIdentifier","src":"4791:6:9"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"4856:3:9","nodeType":"YulIdentifier","src":"4856:3:9"},{"name":"cache","nativeSrc":"4861:5:9","nodeType":"YulIdentifier","src":"4861:5:9"}],"functionName":{"name":"mstore","nativeSrc":"4849:6:9","nodeType":"YulIdentifier","src":"4849:6:9"},"nativeSrc":"4849:18:9","nodeType":"YulFunctionCall","src":"4849:18:9"},"nativeSrc":"4849:18:9","nodeType":"YulExpressionStatement","src":"4849:18:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2468,"isOffset":false,"isSlot":false,"src":"4626:3:9","valueSize":1},{"declaration":2468,"isOffset":false,"isSlot":false,"src":"4660:3:9","valueSize":1},{"declaration":2471,"isOffset":false,"isSlot":false,"src":"4791:6:9","valueSize":1},{"declaration":2466,"isOffset":false,"isSlot":false,"src":"4773:4:9","valueSize":1}],"id":2473,"nodeType":"InlineAssembly","src":"4583:294:9"}]},"documentation":{"id":2464,"nodeType":"StructuredDocumentation","src":"4352:78:9","text":" @dev Derive the location of a mapping element from the key."},"id":2475,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4444:13:9","nodeType":"FunctionDefinition","parameters":{"id":2469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2466,"mutability":"mutable","name":"slot","nameLocation":"4466:4:9","nodeType":"VariableDeclaration","scope":2475,"src":"4458:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4458:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2468,"mutability":"mutable","name":"key","nameLocation":"4486:3:9","nodeType":"VariableDeclaration","scope":2475,"src":"4472:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2467,"name":"string","nodeType":"ElementaryTypeName","src":"4472:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4457:33:9"},"returnParameters":{"id":2472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2471,"mutability":"mutable","name":"result","nameLocation":"4522:6:9","nodeType":"VariableDeclaration","scope":2475,"src":"4514:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4514:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4513:16:9"},"scope":2488,"src":"4435:448:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2486,"nodeType":"Block","src":"5066:353:9","statements":[{"AST":{"nativeSrc":"5128:285:9","nodeType":"YulBlock","src":"5128:285:9","statements":[{"nativeSrc":"5142:24:9","nodeType":"YulVariableDeclaration","src":"5142:24:9","value":{"arguments":[{"name":"key","nativeSrc":"5162:3:9","nodeType":"YulIdentifier","src":"5162:3:9"}],"functionName":{"name":"mload","nativeSrc":"5156:5:9","nodeType":"YulIdentifier","src":"5156:5:9"},"nativeSrc":"5156:10:9","nodeType":"YulFunctionCall","src":"5156:10:9"},"variables":[{"name":"length","nativeSrc":"5146:6:9","nodeType":"YulTypedName","src":"5146:6:9","type":""}]},{"nativeSrc":"5179:27:9","nodeType":"YulVariableDeclaration","src":"5179:27:9","value":{"arguments":[{"name":"key","nativeSrc":"5196:3:9","nodeType":"YulIdentifier","src":"5196:3:9"},{"kind":"number","nativeSrc":"5201:4:9","nodeType":"YulLiteral","src":"5201:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5192:3:9","nodeType":"YulIdentifier","src":"5192:3:9"},"nativeSrc":"5192:14:9","nodeType":"YulFunctionCall","src":"5192:14:9"},"variables":[{"name":"begin","nativeSrc":"5183:5:9","nodeType":"YulTypedName","src":"5183:5:9","type":""}]},{"nativeSrc":"5219:29:9","nodeType":"YulVariableDeclaration","src":"5219:29:9","value":{"arguments":[{"name":"begin","nativeSrc":"5234:5:9","nodeType":"YulIdentifier","src":"5234:5:9"},{"name":"length","nativeSrc":"5241:6:9","nodeType":"YulIdentifier","src":"5241:6:9"}],"functionName":{"name":"add","nativeSrc":"5230:3:9","nodeType":"YulIdentifier","src":"5230:3:9"},"nativeSrc":"5230:18:9","nodeType":"YulFunctionCall","src":"5230:18:9"},"variables":[{"name":"end","nativeSrc":"5223:3:9","nodeType":"YulTypedName","src":"5223:3:9","type":""}]},{"nativeSrc":"5261:23:9","nodeType":"YulVariableDeclaration","src":"5261:23:9","value":{"arguments":[{"name":"end","nativeSrc":"5280:3:9","nodeType":"YulIdentifier","src":"5280:3:9"}],"functionName":{"name":"mload","nativeSrc":"5274:5:9","nodeType":"YulIdentifier","src":"5274:5:9"},"nativeSrc":"5274:10:9","nodeType":"YulFunctionCall","src":"5274:10:9"},"variables":[{"name":"cache","nativeSrc":"5265:5:9","nodeType":"YulTypedName","src":"5265:5:9","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5304:3:9","nodeType":"YulIdentifier","src":"5304:3:9"},{"name":"slot","nativeSrc":"5309:4:9","nodeType":"YulIdentifier","src":"5309:4:9"}],"functionName":{"name":"mstore","nativeSrc":"5297:6:9","nodeType":"YulIdentifier","src":"5297:6:9"},"nativeSrc":"5297:17:9","nodeType":"YulFunctionCall","src":"5297:17:9"},"nativeSrc":"5297:17:9","nodeType":"YulExpressionStatement","src":"5297:17:9"},{"nativeSrc":"5327:45:9","nodeType":"YulAssignment","src":"5327:45:9","value":{"arguments":[{"name":"begin","nativeSrc":"5347:5:9","nodeType":"YulIdentifier","src":"5347:5:9"},{"arguments":[{"name":"length","nativeSrc":"5358:6:9","nodeType":"YulIdentifier","src":"5358:6:9"},{"kind":"number","nativeSrc":"5366:4:9","nodeType":"YulLiteral","src":"5366:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5354:3:9","nodeType":"YulIdentifier","src":"5354:3:9"},"nativeSrc":"5354:17:9","nodeType":"YulFunctionCall","src":"5354:17:9"}],"functionName":{"name":"keccak256","nativeSrc":"5337:9:9","nodeType":"YulIdentifier","src":"5337:9:9"},"nativeSrc":"5337:35:9","nodeType":"YulFunctionCall","src":"5337:35:9"},"variableNames":[{"name":"result","nativeSrc":"5327:6:9","nodeType":"YulIdentifier","src":"5327:6:9"}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"5392:3:9","nodeType":"YulIdentifier","src":"5392:3:9"},{"name":"cache","nativeSrc":"5397:5:9","nodeType":"YulIdentifier","src":"5397:5:9"}],"functionName":{"name":"mstore","nativeSrc":"5385:6:9","nodeType":"YulIdentifier","src":"5385:6:9"},"nativeSrc":"5385:18:9","nodeType":"YulFunctionCall","src":"5385:18:9"},"nativeSrc":"5385:18:9","nodeType":"YulExpressionStatement","src":"5385:18:9"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2480,"isOffset":false,"isSlot":false,"src":"5162:3:9","valueSize":1},{"declaration":2480,"isOffset":false,"isSlot":false,"src":"5196:3:9","valueSize":1},{"declaration":2483,"isOffset":false,"isSlot":false,"src":"5327:6:9","valueSize":1},{"declaration":2478,"isOffset":false,"isSlot":false,"src":"5309:4:9","valueSize":1}],"id":2485,"nodeType":"InlineAssembly","src":"5119:294:9"}]},"documentation":{"id":2476,"nodeType":"StructuredDocumentation","src":"4889:78:9","text":" @dev Derive the location of a mapping element from the key."},"id":2487,"implemented":true,"kind":"function","modifiers":[],"name":"deriveMapping","nameLocation":"4981:13:9","nodeType":"FunctionDefinition","parameters":{"id":2481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2478,"mutability":"mutable","name":"slot","nameLocation":"5003:4:9","nodeType":"VariableDeclaration","scope":2487,"src":"4995:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4995:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2480,"mutability":"mutable","name":"key","nameLocation":"5022:3:9","nodeType":"VariableDeclaration","scope":2487,"src":"5009:16:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2479,"name":"bytes","nodeType":"ElementaryTypeName","src":"5009:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4994:32:9"},"returnParameters":{"id":2484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2483,"mutability":"mutable","name":"result","nameLocation":"5058:6:9","nodeType":"VariableDeclaration","scope":2487,"src":"5050:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5050:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5049:16:9"},"scope":2488,"src":"4972:447:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2489,"src":"1493:3928:9","usedErrors":[],"usedEvents":[]}],"src":"124:5298:9"},"id":9},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[2807]},"id":2808,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2490,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"193:24:10"},{"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":2491,"nodeType":"StructuredDocumentation","src":"219:1802:10","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n Since version 5.1, this library also support writing and reading value types to and from transient storage.\n * Example using transient storage:\n ```solidity\n contract Lock {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542;\n modifier locked() {\n require(!_LOCK_SLOT.asBoolean().tload());\n _LOCK_SLOT.asBoolean().tstore(true);\n _;\n _LOCK_SLOT.asBoolean().tstore(false);\n }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}."},"fullyImplemented":true,"id":2807,"linearizedBaseContracts":[2807],"name":"StorageSlot","nameLocation":"2030:11:10","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":2494,"members":[{"constant":false,"id":2493,"mutability":"mutable","name":"value","nameLocation":"2085:5:10","nodeType":"VariableDeclaration","scope":2494,"src":"2077:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2492,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"2055:11:10","nodeType":"StructDefinition","scope":2807,"src":"2048:49:10","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":2497,"members":[{"constant":false,"id":2496,"mutability":"mutable","name":"value","nameLocation":"2137:5:10","nodeType":"VariableDeclaration","scope":2497,"src":"2132:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2495,"name":"bool","nodeType":"ElementaryTypeName","src":"2132:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"2110:11:10","nodeType":"StructDefinition","scope":2807,"src":"2103:46:10","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":2500,"members":[{"constant":false,"id":2499,"mutability":"mutable","name":"value","nameLocation":"2192:5:10","nodeType":"VariableDeclaration","scope":2500,"src":"2184:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2184:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"2162:11:10","nodeType":"StructDefinition","scope":2807,"src":"2155:49:10","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":2503,"members":[{"constant":false,"id":2502,"mutability":"mutable","name":"value","nameLocation":"2247:5:10","nodeType":"VariableDeclaration","scope":2503,"src":"2239:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2501,"name":"uint256","nodeType":"ElementaryTypeName","src":"2239:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"2217:11:10","nodeType":"StructDefinition","scope":2807,"src":"2210:49:10","visibility":"public"},{"canonicalName":"StorageSlot.Int256Slot","id":2506,"members":[{"constant":false,"id":2505,"mutability":"mutable","name":"value","nameLocation":"2300:5:10","nodeType":"VariableDeclaration","scope":2506,"src":"2293:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2504,"name":"int256","nodeType":"ElementaryTypeName","src":"2293:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"Int256Slot","nameLocation":"2272:10:10","nodeType":"StructDefinition","scope":2807,"src":"2265:47:10","visibility":"public"},{"canonicalName":"StorageSlot.StringSlot","id":2509,"members":[{"constant":false,"id":2508,"mutability":"mutable","name":"value","nameLocation":"2353:5:10","nodeType":"VariableDeclaration","scope":2509,"src":"2346:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2507,"name":"string","nodeType":"ElementaryTypeName","src":"2346:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"StringSlot","nameLocation":"2325:10:10","nodeType":"StructDefinition","scope":2807,"src":"2318:47:10","visibility":"public"},{"canonicalName":"StorageSlot.BytesSlot","id":2512,"members":[{"constant":false,"id":2511,"mutability":"mutable","name":"value","nameLocation":"2404:5:10","nodeType":"VariableDeclaration","scope":2512,"src":"2398:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2510,"name":"bytes","nodeType":"ElementaryTypeName","src":"2398:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"BytesSlot","nameLocation":"2378:9:10","nodeType":"StructDefinition","scope":2807,"src":"2371:45:10","visibility":"public"},{"body":{"id":2522,"nodeType":"Block","src":"2598:106:10","statements":[{"AST":{"nativeSrc":"2660:38:10","nodeType":"YulBlock","src":"2660:38:10","statements":[{"nativeSrc":"2674:14:10","nodeType":"YulAssignment","src":"2674:14:10","value":{"name":"slot","nativeSrc":"2684:4:10","nodeType":"YulIdentifier","src":"2684:4:10"},"variableNames":[{"name":"r.slot","nativeSrc":"2674:6:10","nodeType":"YulIdentifier","src":"2674:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2519,"isOffset":false,"isSlot":true,"src":"2674:6:10","suffix":"slot","valueSize":1},{"declaration":2515,"isOffset":false,"isSlot":false,"src":"2684:4:10","valueSize":1}],"id":2521,"nodeType":"InlineAssembly","src":"2651:47:10"}]},"documentation":{"id":2513,"nodeType":"StructuredDocumentation","src":"2422:87:10","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":2523,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"2523:14:10","nodeType":"FunctionDefinition","parameters":{"id":2516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2515,"mutability":"mutable","name":"slot","nameLocation":"2546:4:10","nodeType":"VariableDeclaration","scope":2523,"src":"2538:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2538:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2537:14:10"},"returnParameters":{"id":2520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2519,"mutability":"mutable","name":"r","nameLocation":"2595:1:10","nodeType":"VariableDeclaration","scope":2523,"src":"2575:21:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2494_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":2518,"nodeType":"UserDefinedTypeName","pathNode":{"id":2517,"name":"AddressSlot","nameLocations":["2575:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":2494,"src":"2575:11:10"},"referencedDeclaration":2494,"src":"2575:11:10","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$2494_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"2574:23:10"},"scope":2807,"src":"2514:190:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2533,"nodeType":"Block","src":"2886:106:10","statements":[{"AST":{"nativeSrc":"2948:38:10","nodeType":"YulBlock","src":"2948:38:10","statements":[{"nativeSrc":"2962:14:10","nodeType":"YulAssignment","src":"2962:14:10","value":{"name":"slot","nativeSrc":"2972:4:10","nodeType":"YulIdentifier","src":"2972:4:10"},"variableNames":[{"name":"r.slot","nativeSrc":"2962:6:10","nodeType":"YulIdentifier","src":"2962:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2530,"isOffset":false,"isSlot":true,"src":"2962:6:10","suffix":"slot","valueSize":1},{"declaration":2526,"isOffset":false,"isSlot":false,"src":"2972:4:10","valueSize":1}],"id":2532,"nodeType":"InlineAssembly","src":"2939:47:10"}]},"documentation":{"id":2524,"nodeType":"StructuredDocumentation","src":"2710:87:10","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":2534,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"2811:14:10","nodeType":"FunctionDefinition","parameters":{"id":2527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2526,"mutability":"mutable","name":"slot","nameLocation":"2834:4:10","nodeType":"VariableDeclaration","scope":2534,"src":"2826:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2826:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2825:14:10"},"returnParameters":{"id":2531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2530,"mutability":"mutable","name":"r","nameLocation":"2883:1:10","nodeType":"VariableDeclaration","scope":2534,"src":"2863:21:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2497_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":2529,"nodeType":"UserDefinedTypeName","pathNode":{"id":2528,"name":"BooleanSlot","nameLocations":["2863:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":2497,"src":"2863:11:10"},"referencedDeclaration":2497,"src":"2863:11:10","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$2497_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"2862:23:10"},"scope":2807,"src":"2802:190:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2544,"nodeType":"Block","src":"3174:106:10","statements":[{"AST":{"nativeSrc":"3236:38:10","nodeType":"YulBlock","src":"3236:38:10","statements":[{"nativeSrc":"3250:14:10","nodeType":"YulAssignment","src":"3250:14:10","value":{"name":"slot","nativeSrc":"3260:4:10","nodeType":"YulIdentifier","src":"3260:4:10"},"variableNames":[{"name":"r.slot","nativeSrc":"3250:6:10","nodeType":"YulIdentifier","src":"3250:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2541,"isOffset":false,"isSlot":true,"src":"3250:6:10","suffix":"slot","valueSize":1},{"declaration":2537,"isOffset":false,"isSlot":false,"src":"3260:4:10","valueSize":1}],"id":2543,"nodeType":"InlineAssembly","src":"3227:47:10"}]},"documentation":{"id":2535,"nodeType":"StructuredDocumentation","src":"2998:87:10","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":2545,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"3099:14:10","nodeType":"FunctionDefinition","parameters":{"id":2538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2537,"mutability":"mutable","name":"slot","nameLocation":"3122:4:10","nodeType":"VariableDeclaration","scope":2545,"src":"3114:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3114:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3113:14:10"},"returnParameters":{"id":2542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2541,"mutability":"mutable","name":"r","nameLocation":"3171:1:10","nodeType":"VariableDeclaration","scope":2545,"src":"3151:21:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2500_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":2540,"nodeType":"UserDefinedTypeName","pathNode":{"id":2539,"name":"Bytes32Slot","nameLocations":["3151:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":2500,"src":"3151:11:10"},"referencedDeclaration":2500,"src":"3151:11:10","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$2500_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"3150:23:10"},"scope":2807,"src":"3090:190:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2555,"nodeType":"Block","src":"3462:106:10","statements":[{"AST":{"nativeSrc":"3524:38:10","nodeType":"YulBlock","src":"3524:38:10","statements":[{"nativeSrc":"3538:14:10","nodeType":"YulAssignment","src":"3538:14:10","value":{"name":"slot","nativeSrc":"3548:4:10","nodeType":"YulIdentifier","src":"3548:4:10"},"variableNames":[{"name":"r.slot","nativeSrc":"3538:6:10","nodeType":"YulIdentifier","src":"3538:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2552,"isOffset":false,"isSlot":true,"src":"3538:6:10","suffix":"slot","valueSize":1},{"declaration":2548,"isOffset":false,"isSlot":false,"src":"3548:4:10","valueSize":1}],"id":2554,"nodeType":"InlineAssembly","src":"3515:47:10"}]},"documentation":{"id":2546,"nodeType":"StructuredDocumentation","src":"3286:87:10","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":2556,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"3387:14:10","nodeType":"FunctionDefinition","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2548,"mutability":"mutable","name":"slot","nameLocation":"3410:4:10","nodeType":"VariableDeclaration","scope":2556,"src":"3402:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3402:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3401:14:10"},"returnParameters":{"id":2553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2552,"mutability":"mutable","name":"r","nameLocation":"3459:1:10","nodeType":"VariableDeclaration","scope":2556,"src":"3439:21:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":2551,"nodeType":"UserDefinedTypeName","pathNode":{"id":2550,"name":"Uint256Slot","nameLocations":["3439:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":2503,"src":"3439:11:10"},"referencedDeclaration":2503,"src":"3439:11:10","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$2503_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"3438:23:10"},"scope":2807,"src":"3378:190:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2566,"nodeType":"Block","src":"3747:106:10","statements":[{"AST":{"nativeSrc":"3809:38:10","nodeType":"YulBlock","src":"3809:38:10","statements":[{"nativeSrc":"3823:14:10","nodeType":"YulAssignment","src":"3823:14:10","value":{"name":"slot","nativeSrc":"3833:4:10","nodeType":"YulIdentifier","src":"3833:4:10"},"variableNames":[{"name":"r.slot","nativeSrc":"3823:6:10","nodeType":"YulIdentifier","src":"3823:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2563,"isOffset":false,"isSlot":true,"src":"3823:6:10","suffix":"slot","valueSize":1},{"declaration":2559,"isOffset":false,"isSlot":false,"src":"3833:4:10","valueSize":1}],"id":2565,"nodeType":"InlineAssembly","src":"3800:47:10"}]},"documentation":{"id":2557,"nodeType":"StructuredDocumentation","src":"3574:86:10","text":" @dev Returns an `Int256Slot` with member `value` located at `slot`."},"id":2567,"implemented":true,"kind":"function","modifiers":[],"name":"getInt256Slot","nameLocation":"3674:13:10","nodeType":"FunctionDefinition","parameters":{"id":2560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2559,"mutability":"mutable","name":"slot","nameLocation":"3696:4:10","nodeType":"VariableDeclaration","scope":2567,"src":"3688:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3688:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3687:14:10"},"returnParameters":{"id":2564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2563,"mutability":"mutable","name":"r","nameLocation":"3744:1:10","nodeType":"VariableDeclaration","scope":2567,"src":"3725:20:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$2506_storage_ptr","typeString":"struct StorageSlot.Int256Slot"},"typeName":{"id":2562,"nodeType":"UserDefinedTypeName","pathNode":{"id":2561,"name":"Int256Slot","nameLocations":["3725:10:10"],"nodeType":"IdentifierPath","referencedDeclaration":2506,"src":"3725:10:10"},"referencedDeclaration":2506,"src":"3725:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_Int256Slot_$2506_storage_ptr","typeString":"struct StorageSlot.Int256Slot"}},"visibility":"internal"}],"src":"3724:22:10"},"scope":2807,"src":"3665:188:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2577,"nodeType":"Block","src":"4032:106:10","statements":[{"AST":{"nativeSrc":"4094:38:10","nodeType":"YulBlock","src":"4094:38:10","statements":[{"nativeSrc":"4108:14:10","nodeType":"YulAssignment","src":"4108:14:10","value":{"name":"slot","nativeSrc":"4118:4:10","nodeType":"YulIdentifier","src":"4118:4:10"},"variableNames":[{"name":"r.slot","nativeSrc":"4108:6:10","nodeType":"YulIdentifier","src":"4108:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2574,"isOffset":false,"isSlot":true,"src":"4108:6:10","suffix":"slot","valueSize":1},{"declaration":2570,"isOffset":false,"isSlot":false,"src":"4118:4:10","valueSize":1}],"id":2576,"nodeType":"InlineAssembly","src":"4085:47:10"}]},"documentation":{"id":2568,"nodeType":"StructuredDocumentation","src":"3859:86:10","text":" @dev Returns an `StringSlot` with member `value` located at `slot`."},"id":2578,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"3959:13:10","nodeType":"FunctionDefinition","parameters":{"id":2571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2570,"mutability":"mutable","name":"slot","nameLocation":"3981:4:10","nodeType":"VariableDeclaration","scope":2578,"src":"3973:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3973:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3972:14:10"},"returnParameters":{"id":2575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2574,"mutability":"mutable","name":"r","nameLocation":"4029:1:10","nodeType":"VariableDeclaration","scope":2578,"src":"4010:20:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2509_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2573,"nodeType":"UserDefinedTypeName","pathNode":{"id":2572,"name":"StringSlot","nameLocations":["4010:10:10"],"nodeType":"IdentifierPath","referencedDeclaration":2509,"src":"4010:10:10"},"referencedDeclaration":2509,"src":"4010:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2509_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"4009:22:10"},"scope":2807,"src":"3950:188:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2588,"nodeType":"Block","src":"4340:112:10","statements":[{"AST":{"nativeSrc":"4402:44:10","nodeType":"YulBlock","src":"4402:44:10","statements":[{"nativeSrc":"4416:20:10","nodeType":"YulAssignment","src":"4416:20:10","value":{"name":"store.slot","nativeSrc":"4426:10:10","nodeType":"YulIdentifier","src":"4426:10:10"},"variableNames":[{"name":"r.slot","nativeSrc":"4416:6:10","nodeType":"YulIdentifier","src":"4416:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2585,"isOffset":false,"isSlot":true,"src":"4416:6:10","suffix":"slot","valueSize":1},{"declaration":2581,"isOffset":false,"isSlot":true,"src":"4426:10:10","suffix":"slot","valueSize":1}],"id":2587,"nodeType":"InlineAssembly","src":"4393:53:10"}]},"documentation":{"id":2579,"nodeType":"StructuredDocumentation","src":"4144:101:10","text":" @dev Returns an `StringSlot` representation of the string storage pointer `store`."},"id":2589,"implemented":true,"kind":"function","modifiers":[],"name":"getStringSlot","nameLocation":"4259:13:10","nodeType":"FunctionDefinition","parameters":{"id":2582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2581,"mutability":"mutable","name":"store","nameLocation":"4288:5:10","nodeType":"VariableDeclaration","scope":2589,"src":"4273:20:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2580,"name":"string","nodeType":"ElementaryTypeName","src":"4273:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4272:22:10"},"returnParameters":{"id":2586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2585,"mutability":"mutable","name":"r","nameLocation":"4337:1:10","nodeType":"VariableDeclaration","scope":2589,"src":"4318:20:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2509_storage_ptr","typeString":"struct StorageSlot.StringSlot"},"typeName":{"id":2584,"nodeType":"UserDefinedTypeName","pathNode":{"id":2583,"name":"StringSlot","nameLocations":["4318:10:10"],"nodeType":"IdentifierPath","referencedDeclaration":2509,"src":"4318:10:10"},"referencedDeclaration":2509,"src":"4318:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_StringSlot_$2509_storage_ptr","typeString":"struct StorageSlot.StringSlot"}},"visibility":"internal"}],"src":"4317:22:10"},"scope":2807,"src":"4250:202:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2599,"nodeType":"Block","src":"4628:106:10","statements":[{"AST":{"nativeSrc":"4690:38:10","nodeType":"YulBlock","src":"4690:38:10","statements":[{"nativeSrc":"4704:14:10","nodeType":"YulAssignment","src":"4704:14:10","value":{"name":"slot","nativeSrc":"4714:4:10","nodeType":"YulIdentifier","src":"4714:4:10"},"variableNames":[{"name":"r.slot","nativeSrc":"4704:6:10","nodeType":"YulIdentifier","src":"4704:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2596,"isOffset":false,"isSlot":true,"src":"4704:6:10","suffix":"slot","valueSize":1},{"declaration":2592,"isOffset":false,"isSlot":false,"src":"4714:4:10","valueSize":1}],"id":2598,"nodeType":"InlineAssembly","src":"4681:47:10"}]},"documentation":{"id":2590,"nodeType":"StructuredDocumentation","src":"4458:85:10","text":" @dev Returns an `BytesSlot` with member `value` located at `slot`."},"id":2600,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4557:12:10","nodeType":"FunctionDefinition","parameters":{"id":2593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2592,"mutability":"mutable","name":"slot","nameLocation":"4578:4:10","nodeType":"VariableDeclaration","scope":2600,"src":"4570:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4570:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4569:14:10"},"returnParameters":{"id":2597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2596,"mutability":"mutable","name":"r","nameLocation":"4625:1:10","nodeType":"VariableDeclaration","scope":2600,"src":"4607:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2512_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2595,"nodeType":"UserDefinedTypeName","pathNode":{"id":2594,"name":"BytesSlot","nameLocations":["4607:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":2512,"src":"4607:9:10"},"referencedDeclaration":2512,"src":"4607:9:10","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2512_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4606:21:10"},"scope":2807,"src":"4548:186:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2610,"nodeType":"Block","src":"4931:112:10","statements":[{"AST":{"nativeSrc":"4993:44:10","nodeType":"YulBlock","src":"4993:44:10","statements":[{"nativeSrc":"5007:20:10","nodeType":"YulAssignment","src":"5007:20:10","value":{"name":"store.slot","nativeSrc":"5017:10:10","nodeType":"YulIdentifier","src":"5017:10:10"},"variableNames":[{"name":"r.slot","nativeSrc":"5007:6:10","nodeType":"YulIdentifier","src":"5007:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2607,"isOffset":false,"isSlot":true,"src":"5007:6:10","suffix":"slot","valueSize":1},{"declaration":2603,"isOffset":false,"isSlot":true,"src":"5017:10:10","suffix":"slot","valueSize":1}],"id":2609,"nodeType":"InlineAssembly","src":"4984:53:10"}]},"documentation":{"id":2601,"nodeType":"StructuredDocumentation","src":"4740:99:10","text":" @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`."},"id":2611,"implemented":true,"kind":"function","modifiers":[],"name":"getBytesSlot","nameLocation":"4853:12:10","nodeType":"FunctionDefinition","parameters":{"id":2604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2603,"mutability":"mutable","name":"store","nameLocation":"4880:5:10","nodeType":"VariableDeclaration","scope":2611,"src":"4866:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":2602,"name":"bytes","nodeType":"ElementaryTypeName","src":"4866:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4865:21:10"},"returnParameters":{"id":2608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2607,"mutability":"mutable","name":"r","nameLocation":"4928:1:10","nodeType":"VariableDeclaration","scope":2611,"src":"4910:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2512_storage_ptr","typeString":"struct StorageSlot.BytesSlot"},"typeName":{"id":2606,"nodeType":"UserDefinedTypeName","pathNode":{"id":2605,"name":"BytesSlot","nameLocations":["4910:9:10"],"nodeType":"IdentifierPath","referencedDeclaration":2512,"src":"4910:9:10"},"referencedDeclaration":2512,"src":"4910:9:10","typeDescriptions":{"typeIdentifier":"t_struct$_BytesSlot_$2512_storage_ptr","typeString":"struct StorageSlot.BytesSlot"}},"visibility":"internal"}],"src":"4909:21:10"},"scope":2807,"src":"4844:199:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.AddressSlotType","id":2613,"name":"AddressSlotType","nameLocation":"5128:15:10","nodeType":"UserDefinedValueTypeDefinition","src":"5123:32:10","underlyingType":{"id":2612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5147:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2627,"nodeType":"Block","src":"5307:50:10","statements":[{"expression":{"arguments":[{"id":2624,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2616,"src":"5345:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2622,"name":"AddressSlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2613,"src":"5324:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_AddressSlotType_$2613_$","typeString":"type(StorageSlot.AddressSlotType)"}},"id":2623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5340:4:10","memberName":"wrap","nodeType":"MemberAccess","src":"5324:20:10","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_AddressSlotType_$2613_$","typeString":"function (bytes32) pure returns (StorageSlot.AddressSlotType)"}},"id":2625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5324:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2613","typeString":"StorageSlot.AddressSlotType"}},"functionReturnParameters":2621,"id":2626,"nodeType":"Return","src":"5317:33:10"}]},"documentation":{"id":2614,"nodeType":"StructuredDocumentation","src":"5161:68:10","text":" @dev Cast an arbitrary slot to a AddressSlotType."},"id":2628,"implemented":true,"kind":"function","modifiers":[],"name":"asAddress","nameLocation":"5243:9:10","nodeType":"FunctionDefinition","parameters":{"id":2617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2616,"mutability":"mutable","name":"slot","nameLocation":"5261:4:10","nodeType":"VariableDeclaration","scope":2628,"src":"5253:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5253:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5252:14:10"},"returnParameters":{"id":2621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2628,"src":"5290:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2613","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2619,"nodeType":"UserDefinedTypeName","pathNode":{"id":2618,"name":"AddressSlotType","nameLocations":["5290:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2613,"src":"5290:15:10"},"referencedDeclaration":2613,"src":"5290:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2613","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"}],"src":"5289:17:10"},"scope":2807,"src":"5234:123:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.BooleanSlotType","id":2630,"name":"BooleanSlotType","nameLocation":"5439:15:10","nodeType":"UserDefinedValueTypeDefinition","src":"5434:32:10","underlyingType":{"id":2629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5458:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2644,"nodeType":"Block","src":"5618:50:10","statements":[{"expression":{"arguments":[{"id":2641,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2633,"src":"5656:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2639,"name":"BooleanSlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2630,"src":"5635:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_BooleanSlotType_$2630_$","typeString":"type(StorageSlot.BooleanSlotType)"}},"id":2640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5651:4:10","memberName":"wrap","nodeType":"MemberAccess","src":"5635:20:10","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlotType_$2630_$","typeString":"function (bytes32) pure returns (StorageSlot.BooleanSlotType)"}},"id":2642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5635:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2630","typeString":"StorageSlot.BooleanSlotType"}},"functionReturnParameters":2638,"id":2643,"nodeType":"Return","src":"5628:33:10"}]},"documentation":{"id":2631,"nodeType":"StructuredDocumentation","src":"5472:68:10","text":" @dev Cast an arbitrary slot to a BooleanSlotType."},"id":2645,"implemented":true,"kind":"function","modifiers":[],"name":"asBoolean","nameLocation":"5554:9:10","nodeType":"FunctionDefinition","parameters":{"id":2634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2633,"mutability":"mutable","name":"slot","nameLocation":"5572:4:10","nodeType":"VariableDeclaration","scope":2645,"src":"5564:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5564:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5563:14:10"},"returnParameters":{"id":2638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2645,"src":"5601:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2630","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2636,"nodeType":"UserDefinedTypeName","pathNode":{"id":2635,"name":"BooleanSlotType","nameLocations":["5601:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2630,"src":"5601:15:10"},"referencedDeclaration":2630,"src":"5601:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2630","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"}],"src":"5600:17:10"},"scope":2807,"src":"5545:123:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Bytes32SlotType","id":2647,"name":"Bytes32SlotType","nameLocation":"5753:15:10","nodeType":"UserDefinedValueTypeDefinition","src":"5748:32:10","underlyingType":{"id":2646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5772:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2661,"nodeType":"Block","src":"5932:50:10","statements":[{"expression":{"arguments":[{"id":2658,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2650,"src":"5970:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2656,"name":"Bytes32SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2647,"src":"5949:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Bytes32SlotType_$2647_$","typeString":"type(StorageSlot.Bytes32SlotType)"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5965:4:10","memberName":"wrap","nodeType":"MemberAccess","src":"5949:20:10","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Bytes32SlotType_$2647_$","typeString":"function (bytes32) pure returns (StorageSlot.Bytes32SlotType)"}},"id":2659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5949:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2647","typeString":"StorageSlot.Bytes32SlotType"}},"functionReturnParameters":2655,"id":2660,"nodeType":"Return","src":"5942:33:10"}]},"documentation":{"id":2648,"nodeType":"StructuredDocumentation","src":"5786:68:10","text":" @dev Cast an arbitrary slot to a Bytes32SlotType."},"id":2662,"implemented":true,"kind":"function","modifiers":[],"name":"asBytes32","nameLocation":"5868:9:10","nodeType":"FunctionDefinition","parameters":{"id":2651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2650,"mutability":"mutable","name":"slot","nameLocation":"5886:4:10","nodeType":"VariableDeclaration","scope":2662,"src":"5878:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5878:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5877:14:10"},"returnParameters":{"id":2655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2662,"src":"5915:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2647","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2653,"nodeType":"UserDefinedTypeName","pathNode":{"id":2652,"name":"Bytes32SlotType","nameLocations":["5915:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2647,"src":"5915:15:10"},"referencedDeclaration":2647,"src":"5915:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2647","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"}],"src":"5914:17:10"},"scope":2807,"src":"5859:123:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Uint256SlotType","id":2664,"name":"Uint256SlotType","nameLocation":"6067:15:10","nodeType":"UserDefinedValueTypeDefinition","src":"6062:32:10","underlyingType":{"id":2663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6086:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2678,"nodeType":"Block","src":"6246:50:10","statements":[{"expression":{"arguments":[{"id":2675,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2667,"src":"6284:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2673,"name":"Uint256SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"6263:15:10","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Uint256SlotType_$2664_$","typeString":"type(StorageSlot.Uint256SlotType)"}},"id":2674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6279:4:10","memberName":"wrap","nodeType":"MemberAccess","src":"6263:20:10","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Uint256SlotType_$2664_$","typeString":"function (bytes32) pure returns (StorageSlot.Uint256SlotType)"}},"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6263:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2664","typeString":"StorageSlot.Uint256SlotType"}},"functionReturnParameters":2672,"id":2677,"nodeType":"Return","src":"6256:33:10"}]},"documentation":{"id":2665,"nodeType":"StructuredDocumentation","src":"6100:68:10","text":" @dev Cast an arbitrary slot to a Uint256SlotType."},"id":2679,"implemented":true,"kind":"function","modifiers":[],"name":"asUint256","nameLocation":"6182:9:10","nodeType":"FunctionDefinition","parameters":{"id":2668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2667,"mutability":"mutable","name":"slot","nameLocation":"6200:4:10","nodeType":"VariableDeclaration","scope":2679,"src":"6192:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6192:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6191:14:10"},"returnParameters":{"id":2672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2679,"src":"6229:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2664","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2670,"nodeType":"UserDefinedTypeName","pathNode":{"id":2669,"name":"Uint256SlotType","nameLocations":["6229:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2664,"src":"6229:15:10"},"referencedDeclaration":2664,"src":"6229:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2664","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"}],"src":"6228:17:10"},"scope":2807,"src":"6173:123:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"StorageSlot.Int256SlotType","id":2681,"name":"Int256SlotType","nameLocation":"6380:14:10","nodeType":"UserDefinedValueTypeDefinition","src":"6375:31:10","underlyingType":{"id":2680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6398:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"body":{"id":2695,"nodeType":"Block","src":"6555:49:10","statements":[{"expression":{"arguments":[{"id":2692,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2684,"src":"6592:4:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2690,"name":"Int256SlotType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6572:14:10","typeDescriptions":{"typeIdentifier":"t_type$_t_userDefinedValueType$_Int256SlotType_$2681_$","typeString":"type(StorageSlot.Int256SlotType)"}},"id":2691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6587:4:10","memberName":"wrap","nodeType":"MemberAccess","src":"6572:19:10","typeDescriptions":{"typeIdentifier":"t_function_wrap_pure$_t_bytes32_$returns$_t_userDefinedValueType$_Int256SlotType_$2681_$","typeString":"function (bytes32) pure returns (StorageSlot.Int256SlotType)"}},"id":2693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6572:25:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2681","typeString":"StorageSlot.Int256SlotType"}},"functionReturnParameters":2689,"id":2694,"nodeType":"Return","src":"6565:32:10"}]},"documentation":{"id":2682,"nodeType":"StructuredDocumentation","src":"6412:67:10","text":" @dev Cast an arbitrary slot to a Int256SlotType."},"id":2696,"implemented":true,"kind":"function","modifiers":[],"name":"asInt256","nameLocation":"6493:8:10","nodeType":"FunctionDefinition","parameters":{"id":2685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2684,"mutability":"mutable","name":"slot","nameLocation":"6510:4:10","nodeType":"VariableDeclaration","scope":2696,"src":"6502:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6502:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6501:14:10"},"returnParameters":{"id":2689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2696,"src":"6539:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2681","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2687,"nodeType":"UserDefinedTypeName","pathNode":{"id":2686,"name":"Int256SlotType","nameLocations":["6539:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":2681,"src":"6539:14:10"},"referencedDeclaration":2681,"src":"6539:14:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2681","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"}],"src":"6538:16:10"},"scope":2807,"src":"6484:120:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2706,"nodeType":"Block","src":"6774:112:10","statements":[{"AST":{"nativeSrc":"6836:44:10","nodeType":"YulBlock","src":"6836:44:10","statements":[{"nativeSrc":"6850:20:10","nodeType":"YulAssignment","src":"6850:20:10","value":{"arguments":[{"name":"slot","nativeSrc":"6865:4:10","nodeType":"YulIdentifier","src":"6865:4:10"}],"functionName":{"name":"tload","nativeSrc":"6859:5:10","nodeType":"YulIdentifier","src":"6859:5:10"},"nativeSrc":"6859:11:10","nodeType":"YulFunctionCall","src":"6859:11:10"},"variableNames":[{"name":"value","nativeSrc":"6850:5:10","nodeType":"YulIdentifier","src":"6850:5:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2700,"isOffset":false,"isSlot":false,"src":"6865:4:10","valueSize":1},{"declaration":2703,"isOffset":false,"isSlot":false,"src":"6850:5:10","valueSize":1}],"id":2705,"nodeType":"InlineAssembly","src":"6827:53:10"}]},"documentation":{"id":2697,"nodeType":"StructuredDocumentation","src":"6610:84:10","text":" @dev Load the value held at location `slot` in transient storage."},"id":2707,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"6708:5:10","nodeType":"FunctionDefinition","parameters":{"id":2701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"mutability":"mutable","name":"slot","nameLocation":"6730:4:10","nodeType":"VariableDeclaration","scope":2707,"src":"6714:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2613","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2699,"nodeType":"UserDefinedTypeName","pathNode":{"id":2698,"name":"AddressSlotType","nameLocations":["6714:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2613,"src":"6714:15:10"},"referencedDeclaration":2613,"src":"6714:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2613","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"}],"src":"6713:22:10"},"returnParameters":{"id":2704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2703,"mutability":"mutable","name":"value","nameLocation":"6767:5:10","nodeType":"VariableDeclaration","scope":2707,"src":"6759:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2702,"name":"address","nodeType":"ElementaryTypeName","src":"6759:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6758:15:10"},"scope":2807,"src":"6699:187:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2717,"nodeType":"Block","src":"7037:111:10","statements":[{"AST":{"nativeSrc":"7099:43:10","nodeType":"YulBlock","src":"7099:43:10","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"7120:4:10","nodeType":"YulIdentifier","src":"7120:4:10"},{"name":"value","nativeSrc":"7126:5:10","nodeType":"YulIdentifier","src":"7126:5:10"}],"functionName":{"name":"tstore","nativeSrc":"7113:6:10","nodeType":"YulIdentifier","src":"7113:6:10"},"nativeSrc":"7113:19:10","nodeType":"YulFunctionCall","src":"7113:19:10"},"nativeSrc":"7113:19:10","nodeType":"YulExpressionStatement","src":"7113:19:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2711,"isOffset":false,"isSlot":false,"src":"7120:4:10","valueSize":1},{"declaration":2713,"isOffset":false,"isSlot":false,"src":"7126:5:10","valueSize":1}],"id":2716,"nodeType":"InlineAssembly","src":"7090:52:10"}]},"documentation":{"id":2708,"nodeType":"StructuredDocumentation","src":"6892:78:10","text":" @dev Store `value` at location `slot` in transient storage."},"id":2718,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"6984:6:10","nodeType":"FunctionDefinition","parameters":{"id":2714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2711,"mutability":"mutable","name":"slot","nameLocation":"7007:4:10","nodeType":"VariableDeclaration","scope":2718,"src":"6991:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2613","typeString":"StorageSlot.AddressSlotType"},"typeName":{"id":2710,"nodeType":"UserDefinedTypeName","pathNode":{"id":2709,"name":"AddressSlotType","nameLocations":["6991:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2613,"src":"6991:15:10"},"referencedDeclaration":2613,"src":"6991:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_AddressSlotType_$2613","typeString":"StorageSlot.AddressSlotType"}},"visibility":"internal"},{"constant":false,"id":2713,"mutability":"mutable","name":"value","nameLocation":"7021:5:10","nodeType":"VariableDeclaration","scope":2718,"src":"7013:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2712,"name":"address","nodeType":"ElementaryTypeName","src":"7013:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6990:37:10"},"returnParameters":{"id":2715,"nodeType":"ParameterList","parameters":[],"src":"7037:0:10"},"scope":2807,"src":"6975:173:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2728,"nodeType":"Block","src":"7315:112:10","statements":[{"AST":{"nativeSrc":"7377:44:10","nodeType":"YulBlock","src":"7377:44:10","statements":[{"nativeSrc":"7391:20:10","nodeType":"YulAssignment","src":"7391:20:10","value":{"arguments":[{"name":"slot","nativeSrc":"7406:4:10","nodeType":"YulIdentifier","src":"7406:4:10"}],"functionName":{"name":"tload","nativeSrc":"7400:5:10","nodeType":"YulIdentifier","src":"7400:5:10"},"nativeSrc":"7400:11:10","nodeType":"YulFunctionCall","src":"7400:11:10"},"variableNames":[{"name":"value","nativeSrc":"7391:5:10","nodeType":"YulIdentifier","src":"7391:5:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2722,"isOffset":false,"isSlot":false,"src":"7406:4:10","valueSize":1},{"declaration":2725,"isOffset":false,"isSlot":false,"src":"7391:5:10","valueSize":1}],"id":2727,"nodeType":"InlineAssembly","src":"7368:53:10"}]},"documentation":{"id":2719,"nodeType":"StructuredDocumentation","src":"7154:84:10","text":" @dev Load the value held at location `slot` in transient storage."},"id":2729,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"7252:5:10","nodeType":"FunctionDefinition","parameters":{"id":2723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2722,"mutability":"mutable","name":"slot","nameLocation":"7274:4:10","nodeType":"VariableDeclaration","scope":2729,"src":"7258:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2630","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2721,"nodeType":"UserDefinedTypeName","pathNode":{"id":2720,"name":"BooleanSlotType","nameLocations":["7258:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2630,"src":"7258:15:10"},"referencedDeclaration":2630,"src":"7258:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2630","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"}],"src":"7257:22:10"},"returnParameters":{"id":2726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2725,"mutability":"mutable","name":"value","nameLocation":"7308:5:10","nodeType":"VariableDeclaration","scope":2729,"src":"7303:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2724,"name":"bool","nodeType":"ElementaryTypeName","src":"7303:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7302:12:10"},"scope":2807,"src":"7243:184:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2739,"nodeType":"Block","src":"7575:111:10","statements":[{"AST":{"nativeSrc":"7637:43:10","nodeType":"YulBlock","src":"7637:43:10","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"7658:4:10","nodeType":"YulIdentifier","src":"7658:4:10"},{"name":"value","nativeSrc":"7664:5:10","nodeType":"YulIdentifier","src":"7664:5:10"}],"functionName":{"name":"tstore","nativeSrc":"7651:6:10","nodeType":"YulIdentifier","src":"7651:6:10"},"nativeSrc":"7651:19:10","nodeType":"YulFunctionCall","src":"7651:19:10"},"nativeSrc":"7651:19:10","nodeType":"YulExpressionStatement","src":"7651:19:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2733,"isOffset":false,"isSlot":false,"src":"7658:4:10","valueSize":1},{"declaration":2735,"isOffset":false,"isSlot":false,"src":"7664:5:10","valueSize":1}],"id":2738,"nodeType":"InlineAssembly","src":"7628:52:10"}]},"documentation":{"id":2730,"nodeType":"StructuredDocumentation","src":"7433:78:10","text":" @dev Store `value` at location `slot` in transient storage."},"id":2740,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"7525:6:10","nodeType":"FunctionDefinition","parameters":{"id":2736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2733,"mutability":"mutable","name":"slot","nameLocation":"7548:4:10","nodeType":"VariableDeclaration","scope":2740,"src":"7532:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2630","typeString":"StorageSlot.BooleanSlotType"},"typeName":{"id":2732,"nodeType":"UserDefinedTypeName","pathNode":{"id":2731,"name":"BooleanSlotType","nameLocations":["7532:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2630,"src":"7532:15:10"},"referencedDeclaration":2630,"src":"7532:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlotType_$2630","typeString":"StorageSlot.BooleanSlotType"}},"visibility":"internal"},{"constant":false,"id":2735,"mutability":"mutable","name":"value","nameLocation":"7559:5:10","nodeType":"VariableDeclaration","scope":2740,"src":"7554:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2734,"name":"bool","nodeType":"ElementaryTypeName","src":"7554:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7531:34:10"},"returnParameters":{"id":2737,"nodeType":"ParameterList","parameters":[],"src":"7575:0:10"},"scope":2807,"src":"7516:170:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2750,"nodeType":"Block","src":"7856:112:10","statements":[{"AST":{"nativeSrc":"7918:44:10","nodeType":"YulBlock","src":"7918:44:10","statements":[{"nativeSrc":"7932:20:10","nodeType":"YulAssignment","src":"7932:20:10","value":{"arguments":[{"name":"slot","nativeSrc":"7947:4:10","nodeType":"YulIdentifier","src":"7947:4:10"}],"functionName":{"name":"tload","nativeSrc":"7941:5:10","nodeType":"YulIdentifier","src":"7941:5:10"},"nativeSrc":"7941:11:10","nodeType":"YulFunctionCall","src":"7941:11:10"},"variableNames":[{"name":"value","nativeSrc":"7932:5:10","nodeType":"YulIdentifier","src":"7932:5:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2744,"isOffset":false,"isSlot":false,"src":"7947:4:10","valueSize":1},{"declaration":2747,"isOffset":false,"isSlot":false,"src":"7932:5:10","valueSize":1}],"id":2749,"nodeType":"InlineAssembly","src":"7909:53:10"}]},"documentation":{"id":2741,"nodeType":"StructuredDocumentation","src":"7692:84:10","text":" @dev Load the value held at location `slot` in transient storage."},"id":2751,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"7790:5:10","nodeType":"FunctionDefinition","parameters":{"id":2745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2744,"mutability":"mutable","name":"slot","nameLocation":"7812:4:10","nodeType":"VariableDeclaration","scope":2751,"src":"7796:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2647","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2743,"nodeType":"UserDefinedTypeName","pathNode":{"id":2742,"name":"Bytes32SlotType","nameLocations":["7796:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2647,"src":"7796:15:10"},"referencedDeclaration":2647,"src":"7796:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2647","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"}],"src":"7795:22:10"},"returnParameters":{"id":2748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2747,"mutability":"mutable","name":"value","nameLocation":"7849:5:10","nodeType":"VariableDeclaration","scope":2751,"src":"7841:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7841:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7840:15:10"},"scope":2807,"src":"7781:187:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2761,"nodeType":"Block","src":"8119:111:10","statements":[{"AST":{"nativeSrc":"8181:43:10","nodeType":"YulBlock","src":"8181:43:10","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"8202:4:10","nodeType":"YulIdentifier","src":"8202:4:10"},{"name":"value","nativeSrc":"8208:5:10","nodeType":"YulIdentifier","src":"8208:5:10"}],"functionName":{"name":"tstore","nativeSrc":"8195:6:10","nodeType":"YulIdentifier","src":"8195:6:10"},"nativeSrc":"8195:19:10","nodeType":"YulFunctionCall","src":"8195:19:10"},"nativeSrc":"8195:19:10","nodeType":"YulExpressionStatement","src":"8195:19:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2755,"isOffset":false,"isSlot":false,"src":"8202:4:10","valueSize":1},{"declaration":2757,"isOffset":false,"isSlot":false,"src":"8208:5:10","valueSize":1}],"id":2760,"nodeType":"InlineAssembly","src":"8172:52:10"}]},"documentation":{"id":2752,"nodeType":"StructuredDocumentation","src":"7974:78:10","text":" @dev Store `value` at location `slot` in transient storage."},"id":2762,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"8066:6:10","nodeType":"FunctionDefinition","parameters":{"id":2758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2755,"mutability":"mutable","name":"slot","nameLocation":"8089:4:10","nodeType":"VariableDeclaration","scope":2762,"src":"8073:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2647","typeString":"StorageSlot.Bytes32SlotType"},"typeName":{"id":2754,"nodeType":"UserDefinedTypeName","pathNode":{"id":2753,"name":"Bytes32SlotType","nameLocations":["8073:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2647,"src":"8073:15:10"},"referencedDeclaration":2647,"src":"8073:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Bytes32SlotType_$2647","typeString":"StorageSlot.Bytes32SlotType"}},"visibility":"internal"},{"constant":false,"id":2757,"mutability":"mutable","name":"value","nameLocation":"8103:5:10","nodeType":"VariableDeclaration","scope":2762,"src":"8095:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8095:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8072:37:10"},"returnParameters":{"id":2759,"nodeType":"ParameterList","parameters":[],"src":"8119:0:10"},"scope":2807,"src":"8057:173:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2772,"nodeType":"Block","src":"8400:112:10","statements":[{"AST":{"nativeSrc":"8462:44:10","nodeType":"YulBlock","src":"8462:44:10","statements":[{"nativeSrc":"8476:20:10","nodeType":"YulAssignment","src":"8476:20:10","value":{"arguments":[{"name":"slot","nativeSrc":"8491:4:10","nodeType":"YulIdentifier","src":"8491:4:10"}],"functionName":{"name":"tload","nativeSrc":"8485:5:10","nodeType":"YulIdentifier","src":"8485:5:10"},"nativeSrc":"8485:11:10","nodeType":"YulFunctionCall","src":"8485:11:10"},"variableNames":[{"name":"value","nativeSrc":"8476:5:10","nodeType":"YulIdentifier","src":"8476:5:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2766,"isOffset":false,"isSlot":false,"src":"8491:4:10","valueSize":1},{"declaration":2769,"isOffset":false,"isSlot":false,"src":"8476:5:10","valueSize":1}],"id":2771,"nodeType":"InlineAssembly","src":"8453:53:10"}]},"documentation":{"id":2763,"nodeType":"StructuredDocumentation","src":"8236:84:10","text":" @dev Load the value held at location `slot` in transient storage."},"id":2773,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"8334:5:10","nodeType":"FunctionDefinition","parameters":{"id":2767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2766,"mutability":"mutable","name":"slot","nameLocation":"8356:4:10","nodeType":"VariableDeclaration","scope":2773,"src":"8340:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2664","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2765,"nodeType":"UserDefinedTypeName","pathNode":{"id":2764,"name":"Uint256SlotType","nameLocations":["8340:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2664,"src":"8340:15:10"},"referencedDeclaration":2664,"src":"8340:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2664","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"}],"src":"8339:22:10"},"returnParameters":{"id":2770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2769,"mutability":"mutable","name":"value","nameLocation":"8393:5:10","nodeType":"VariableDeclaration","scope":2773,"src":"8385:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2768,"name":"uint256","nodeType":"ElementaryTypeName","src":"8385:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8384:15:10"},"scope":2807,"src":"8325:187:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2783,"nodeType":"Block","src":"8663:111:10","statements":[{"AST":{"nativeSrc":"8725:43:10","nodeType":"YulBlock","src":"8725:43:10","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"8746:4:10","nodeType":"YulIdentifier","src":"8746:4:10"},{"name":"value","nativeSrc":"8752:5:10","nodeType":"YulIdentifier","src":"8752:5:10"}],"functionName":{"name":"tstore","nativeSrc":"8739:6:10","nodeType":"YulIdentifier","src":"8739:6:10"},"nativeSrc":"8739:19:10","nodeType":"YulFunctionCall","src":"8739:19:10"},"nativeSrc":"8739:19:10","nodeType":"YulExpressionStatement","src":"8739:19:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2777,"isOffset":false,"isSlot":false,"src":"8746:4:10","valueSize":1},{"declaration":2779,"isOffset":false,"isSlot":false,"src":"8752:5:10","valueSize":1}],"id":2782,"nodeType":"InlineAssembly","src":"8716:52:10"}]},"documentation":{"id":2774,"nodeType":"StructuredDocumentation","src":"8518:78:10","text":" @dev Store `value` at location `slot` in transient storage."},"id":2784,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"8610:6:10","nodeType":"FunctionDefinition","parameters":{"id":2780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2777,"mutability":"mutable","name":"slot","nameLocation":"8633:4:10","nodeType":"VariableDeclaration","scope":2784,"src":"8617:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2664","typeString":"StorageSlot.Uint256SlotType"},"typeName":{"id":2776,"nodeType":"UserDefinedTypeName","pathNode":{"id":2775,"name":"Uint256SlotType","nameLocations":["8617:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":2664,"src":"8617:15:10"},"referencedDeclaration":2664,"src":"8617:15:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Uint256SlotType_$2664","typeString":"StorageSlot.Uint256SlotType"}},"visibility":"internal"},{"constant":false,"id":2779,"mutability":"mutable","name":"value","nameLocation":"8647:5:10","nodeType":"VariableDeclaration","scope":2784,"src":"8639:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2778,"name":"uint256","nodeType":"ElementaryTypeName","src":"8639:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8616:37:10"},"returnParameters":{"id":2781,"nodeType":"ParameterList","parameters":[],"src":"8663:0:10"},"scope":2807,"src":"8601:173:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":2794,"nodeType":"Block","src":"8942:112:10","statements":[{"AST":{"nativeSrc":"9004:44:10","nodeType":"YulBlock","src":"9004:44:10","statements":[{"nativeSrc":"9018:20:10","nodeType":"YulAssignment","src":"9018:20:10","value":{"arguments":[{"name":"slot","nativeSrc":"9033:4:10","nodeType":"YulIdentifier","src":"9033:4:10"}],"functionName":{"name":"tload","nativeSrc":"9027:5:10","nodeType":"YulIdentifier","src":"9027:5:10"},"nativeSrc":"9027:11:10","nodeType":"YulFunctionCall","src":"9027:11:10"},"variableNames":[{"name":"value","nativeSrc":"9018:5:10","nodeType":"YulIdentifier","src":"9018:5:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2788,"isOffset":false,"isSlot":false,"src":"9033:4:10","valueSize":1},{"declaration":2791,"isOffset":false,"isSlot":false,"src":"9018:5:10","valueSize":1}],"id":2793,"nodeType":"InlineAssembly","src":"8995:53:10"}]},"documentation":{"id":2785,"nodeType":"StructuredDocumentation","src":"8780:84:10","text":" @dev Load the value held at location `slot` in transient storage."},"id":2795,"implemented":true,"kind":"function","modifiers":[],"name":"tload","nameLocation":"8878:5:10","nodeType":"FunctionDefinition","parameters":{"id":2789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2788,"mutability":"mutable","name":"slot","nameLocation":"8899:4:10","nodeType":"VariableDeclaration","scope":2795,"src":"8884:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2681","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2787,"nodeType":"UserDefinedTypeName","pathNode":{"id":2786,"name":"Int256SlotType","nameLocations":["8884:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":2681,"src":"8884:14:10"},"referencedDeclaration":2681,"src":"8884:14:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2681","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"}],"src":"8883:21:10"},"returnParameters":{"id":2792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2791,"mutability":"mutable","name":"value","nameLocation":"8935:5:10","nodeType":"VariableDeclaration","scope":2795,"src":"8928:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2790,"name":"int256","nodeType":"ElementaryTypeName","src":"8928:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8927:14:10"},"scope":2807,"src":"8869:185:10","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2805,"nodeType":"Block","src":"9203:111:10","statements":[{"AST":{"nativeSrc":"9265:43:10","nodeType":"YulBlock","src":"9265:43:10","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"9286:4:10","nodeType":"YulIdentifier","src":"9286:4:10"},{"name":"value","nativeSrc":"9292:5:10","nodeType":"YulIdentifier","src":"9292:5:10"}],"functionName":{"name":"tstore","nativeSrc":"9279:6:10","nodeType":"YulIdentifier","src":"9279:6:10"},"nativeSrc":"9279:19:10","nodeType":"YulFunctionCall","src":"9279:19:10"},"nativeSrc":"9279:19:10","nodeType":"YulExpressionStatement","src":"9279:19:10"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":2799,"isOffset":false,"isSlot":false,"src":"9286:4:10","valueSize":1},{"declaration":2801,"isOffset":false,"isSlot":false,"src":"9292:5:10","valueSize":1}],"id":2804,"nodeType":"InlineAssembly","src":"9256:52:10"}]},"documentation":{"id":2796,"nodeType":"StructuredDocumentation","src":"9060:78:10","text":" @dev Store `value` at location `slot` in transient storage."},"id":2806,"implemented":true,"kind":"function","modifiers":[],"name":"tstore","nameLocation":"9152:6:10","nodeType":"FunctionDefinition","parameters":{"id":2802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2799,"mutability":"mutable","name":"slot","nameLocation":"9174:4:10","nodeType":"VariableDeclaration","scope":2806,"src":"9159:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2681","typeString":"StorageSlot.Int256SlotType"},"typeName":{"id":2798,"nodeType":"UserDefinedTypeName","pathNode":{"id":2797,"name":"Int256SlotType","nameLocations":["9159:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":2681,"src":"9159:14:10"},"referencedDeclaration":2681,"src":"9159:14:10","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_Int256SlotType_$2681","typeString":"StorageSlot.Int256SlotType"}},"visibility":"internal"},{"constant":false,"id":2801,"mutability":"mutable","name":"value","nameLocation":"9187:5:10","nodeType":"VariableDeclaration","scope":2806,"src":"9180:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2800,"name":"int256","nodeType":"ElementaryTypeName","src":"9180:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9158:35:10"},"returnParameters":{"id":2803,"nodeType":"ParameterList","parameters":[],"src":"9203:0:10"},"scope":2807,"src":"9143:171:10","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2808,"src":"2022:7294:10","usedErrors":[],"usedEvents":[]}],"src":"193:9124:10"},"id":10},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[2831],"IERC165":[2843]},"id":2832,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2809,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:11"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":2811,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2832,"sourceUnit":2844,"src":"140:38:11","symbolAliases":[{"foreign":{"id":2810,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"148:7:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2813,"name":"IERC165","nameLocations":["688:7:11"],"nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"688:7:11"},"id":2814,"nodeType":"InheritanceSpecifier","src":"688:7:11"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":2812,"nodeType":"StructuredDocumentation","src":"180:479:11","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 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 ```"},"fullyImplemented":true,"id":2831,"linearizedBaseContracts":[2831,2843],"name":"ERC165","nameLocation":"678:6:11","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[2842],"body":{"id":2829,"nodeType":"Block","src":"845:64:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2822,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2817,"src":"862:11:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":2824,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"882:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$2843_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$2843_$","typeString":"type(contract IERC165)"}],"id":2823,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"877:4:11","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"877:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$2843","typeString":"type(contract IERC165)"}},"id":2826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"891:11:11","memberName":"interfaceId","nodeType":"MemberAccess","src":"877:25:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"862:40:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2821,"id":2828,"nodeType":"Return","src":"855:47:11"}]},"documentation":{"id":2815,"nodeType":"StructuredDocumentation","src":"702:56:11","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":2830,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"772:17:11","nodeType":"FunctionDefinition","parameters":{"id":2818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2817,"mutability":"mutable","name":"interfaceId","nameLocation":"797:11:11","nodeType":"VariableDeclaration","scope":2830,"src":"790:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2816,"name":"bytes4","nodeType":"ElementaryTypeName","src":"790:6:11","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"789:20:11"},"returnParameters":{"id":2821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2830,"src":"839:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2819,"name":"bool","nodeType":"ElementaryTypeName","src":"839:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"838:6:11"},"scope":2831,"src":"763:146:11","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2832,"src":"660:251:11","usedErrors":[],"usedEvents":[]}],"src":"114:798:11"},"id":11},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[2843]},"id":2844,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2833,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"115:24:12"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":2834,"nodeType":"StructuredDocumentation","src":"141:280:12","text":" @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":2843,"linearizedBaseContracts":[2843],"name":"IERC165","nameLocation":"432:7:12","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":2835,"nodeType":"StructuredDocumentation","src":"446:340:12","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":2842,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"800:17:12","nodeType":"FunctionDefinition","parameters":{"id":2838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2837,"mutability":"mutable","name":"interfaceId","nameLocation":"825:11:12","nodeType":"VariableDeclaration","scope":2842,"src":"818:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2836,"name":"bytes4","nodeType":"ElementaryTypeName","src":"818:6:12","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"817:20:12"},"returnParameters":{"id":2841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2842,"src":"861:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2839,"name":"bool","nodeType":"ElementaryTypeName","src":"861:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"860:6:12"},"scope":2843,"src":"791:76:12","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":2844,"src":"422:447:12","usedErrors":[],"usedEvents":[]}],"src":"115:755:12"},"id":12},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[4428],"Panic":[2358],"SafeCast":[6193]},"id":4429,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2845,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:13"},{"absolutePath":"@openzeppelin/contracts/utils/Panic.sol","file":"../Panic.sol","id":2847,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":2359,"src":"129:35:13","symbolAliases":[{"foreign":{"id":2846,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"137:5:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","file":"./SafeCast.sol","id":2849,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4429,"sourceUnit":6194,"src":"165:40:13","symbolAliases":[{"foreign":{"id":2848,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"173:8:13","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":2850,"nodeType":"StructuredDocumentation","src":"207:73:13","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":4428,"linearizedBaseContracts":[4428],"name":"Math","nameLocation":"289:4:13","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Math.Rounding","id":2855,"members":[{"id":2851,"name":"Floor","nameLocation":"324:5:13","nodeType":"EnumValue","src":"324:5:13"},{"id":2852,"name":"Ceil","nameLocation":"367:4:13","nodeType":"EnumValue","src":"367:4:13"},{"id":2853,"name":"Trunc","nameLocation":"409:5:13","nodeType":"EnumValue","src":"409:5:13"},{"id":2854,"name":"Expand","nameLocation":"439:6:13","nodeType":"EnumValue","src":"439:6:13"}],"name":"Rounding","nameLocation":"305:8:13","nodeType":"EnumDefinition","src":"300:169:13"},{"body":{"id":2886,"nodeType":"Block","src":"677:140:13","statements":[{"id":2885,"nodeType":"UncheckedBlock","src":"687:124:13","statements":[{"assignments":[2868],"declarations":[{"constant":false,"id":2868,"mutability":"mutable","name":"c","nameLocation":"719:1:13","nodeType":"VariableDeclaration","scope":2885,"src":"711:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2867,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2872,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2869,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"723:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2870,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2860,"src":"727:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"723:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"711:17:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2873,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"746:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2874,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2858,"src":"750:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"746:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2880,"nodeType":"IfStatement","src":"742:28:13","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"761:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"768:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"760:10:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2866,"id":2879,"nodeType":"Return","src":"753:17:13"}},{"expression":{"components":[{"hexValue":"74727565","id":2881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"792:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2882,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2868,"src":"798:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2883,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"791:9:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2866,"id":2884,"nodeType":"Return","src":"784:16:13"}]}]},"documentation":{"id":2856,"nodeType":"StructuredDocumentation","src":"475:106:13","text":" @dev Returns the addition of two unsigned integers, with an success flag (no overflow)."},"id":2887,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"595:6:13","nodeType":"FunctionDefinition","parameters":{"id":2861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2858,"mutability":"mutable","name":"a","nameLocation":"610:1:13","nodeType":"VariableDeclaration","scope":2887,"src":"602:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2857,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2860,"mutability":"mutable","name":"b","nameLocation":"621:1:13","nodeType":"VariableDeclaration","scope":2887,"src":"613:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2859,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"601:22:13"},"returnParameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2863,"mutability":"mutable","name":"success","nameLocation":"652:7:13","nodeType":"VariableDeclaration","scope":2887,"src":"647:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2862,"name":"bool","nodeType":"ElementaryTypeName","src":"647:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2865,"mutability":"mutable","name":"result","nameLocation":"669:6:13","nodeType":"VariableDeclaration","scope":2887,"src":"661:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2864,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"646:30:13"},"scope":4428,"src":"586:231:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2914,"nodeType":"Block","src":"1028:113:13","statements":[{"id":2913,"nodeType":"UncheckedBlock","src":"1038:97:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2899,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"1066:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2900,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2890,"src":"1070:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1066:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2906,"nodeType":"IfStatement","src":"1062:28:13","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1081:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1088:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2904,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1080:10:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2898,"id":2905,"nodeType":"Return","src":"1073:17:13"}},{"expression":{"components":[{"hexValue":"74727565","id":2907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1112:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2908,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2890,"src":"1118:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2909,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2892,"src":"1122:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1118:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1111:13:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2898,"id":2912,"nodeType":"Return","src":"1104:20:13"}]}]},"documentation":{"id":2888,"nodeType":"StructuredDocumentation","src":"823:109:13","text":" @dev Returns the subtraction of two unsigned integers, with an success flag (no overflow)."},"id":2915,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"946:6:13","nodeType":"FunctionDefinition","parameters":{"id":2893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2890,"mutability":"mutable","name":"a","nameLocation":"961:1:13","nodeType":"VariableDeclaration","scope":2915,"src":"953:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2889,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2892,"mutability":"mutable","name":"b","nameLocation":"972:1:13","nodeType":"VariableDeclaration","scope":2915,"src":"964:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2891,"name":"uint256","nodeType":"ElementaryTypeName","src":"964:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:22:13"},"returnParameters":{"id":2898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2895,"mutability":"mutable","name":"success","nameLocation":"1003:7:13","nodeType":"VariableDeclaration","scope":2915,"src":"998:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2894,"name":"bool","nodeType":"ElementaryTypeName","src":"998:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2897,"mutability":"mutable","name":"result","nameLocation":"1020:6:13","nodeType":"VariableDeclaration","scope":2915,"src":"1012:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2896,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:30:13"},"scope":4428,"src":"937:204:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2956,"nodeType":"Block","src":"1355:417:13","statements":[{"id":2955,"nodeType":"UncheckedBlock","src":"1365:401:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2927,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2918,"src":"1623:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1623:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2934,"nodeType":"IfStatement","src":"1619:28:13","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":2930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1639:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":2931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1645:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2932,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1638:9:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2926,"id":2933,"nodeType":"Return","src":"1631:16:13"}},{"assignments":[2936],"declarations":[{"constant":false,"id":2936,"mutability":"mutable","name":"c","nameLocation":"1669:1:13","nodeType":"VariableDeclaration","scope":2955,"src":"1661:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2935,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2940,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2937,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2918,"src":"1673:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2938,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2920,"src":"1677:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1673:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1661:17:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2941,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"1696:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2942,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2918,"src":"1700:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2944,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2920,"src":"1705:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:10:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2950,"nodeType":"IfStatement","src":"1692:33:13","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1716:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1723:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2948,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1715:10:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2926,"id":2949,"nodeType":"Return","src":"1708:17:13"}},{"expression":{"components":[{"hexValue":"74727565","id":2951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1747:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":2952,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"1753:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2953,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1746:9:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2926,"id":2954,"nodeType":"Return","src":"1739:16:13"}]}]},"documentation":{"id":2916,"nodeType":"StructuredDocumentation","src":"1147:112:13","text":" @dev Returns the multiplication of two unsigned integers, with an success flag (no overflow)."},"id":2957,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1273:6:13","nodeType":"FunctionDefinition","parameters":{"id":2921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2918,"mutability":"mutable","name":"a","nameLocation":"1288:1:13","nodeType":"VariableDeclaration","scope":2957,"src":"1280:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2917,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2920,"mutability":"mutable","name":"b","nameLocation":"1299:1:13","nodeType":"VariableDeclaration","scope":2957,"src":"1291:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2919,"name":"uint256","nodeType":"ElementaryTypeName","src":"1291:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1279:22:13"},"returnParameters":{"id":2926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2923,"mutability":"mutable","name":"success","nameLocation":"1330:7:13","nodeType":"VariableDeclaration","scope":2957,"src":"1325:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2922,"name":"bool","nodeType":"ElementaryTypeName","src":"1325:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2925,"mutability":"mutable","name":"result","nameLocation":"1347:6:13","nodeType":"VariableDeclaration","scope":2957,"src":"1339:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2924,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1324:30:13"},"scope":4428,"src":"1264:508:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2984,"nodeType":"Block","src":"1987:114:13","statements":[{"id":2983,"nodeType":"UncheckedBlock","src":"1997:98:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2969,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2962,"src":"2025:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2030:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2025:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2976,"nodeType":"IfStatement","src":"2021:29:13","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2041:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2048:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2974,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2040:10:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2968,"id":2975,"nodeType":"Return","src":"2033:17:13"}},{"expression":{"components":[{"hexValue":"74727565","id":2977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2072:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2978,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2960,"src":"2078:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2979,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2962,"src":"2082:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2078:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2981,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2071:13:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2968,"id":2982,"nodeType":"Return","src":"2064:20:13"}]}]},"documentation":{"id":2958,"nodeType":"StructuredDocumentation","src":"1778:113:13","text":" @dev Returns the division of two unsigned integers, with a success flag (no division by zero)."},"id":2985,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1905:6:13","nodeType":"FunctionDefinition","parameters":{"id":2963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2960,"mutability":"mutable","name":"a","nameLocation":"1920:1:13","nodeType":"VariableDeclaration","scope":2985,"src":"1912:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2962,"mutability":"mutable","name":"b","nameLocation":"1931:1:13","nodeType":"VariableDeclaration","scope":2985,"src":"1923:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1911:22:13"},"returnParameters":{"id":2968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2965,"mutability":"mutable","name":"success","nameLocation":"1962:7:13","nodeType":"VariableDeclaration","scope":2985,"src":"1957:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2964,"name":"bool","nodeType":"ElementaryTypeName","src":"1957:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2967,"mutability":"mutable","name":"result","nameLocation":"1979:6:13","nodeType":"VariableDeclaration","scope":2985,"src":"1971:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2966,"name":"uint256","nodeType":"ElementaryTypeName","src":"1971:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1956:30:13"},"scope":4428,"src":"1896:205:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3012,"nodeType":"Block","src":"2326:114:13","statements":[{"id":3011,"nodeType":"UncheckedBlock","src":"2336:98:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2997,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2990,"src":"2364:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2369:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3004,"nodeType":"IfStatement","src":"2360:29:13","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2380:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2387:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3002,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2379:10:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2996,"id":3003,"nodeType":"Return","src":"2372:17:13"}},{"expression":{"components":[{"hexValue":"74727565","id":3005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2411:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3006,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2417:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3007,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2990,"src":"2421:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2417:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3009,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2410:13:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2996,"id":3010,"nodeType":"Return","src":"2403:20:13"}]}]},"documentation":{"id":2986,"nodeType":"StructuredDocumentation","src":"2107:123:13","text":" @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)."},"id":3013,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2244:6:13","nodeType":"FunctionDefinition","parameters":{"id":2991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2988,"mutability":"mutable","name":"a","nameLocation":"2259:1:13","nodeType":"VariableDeclaration","scope":3013,"src":"2251:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2987,"name":"uint256","nodeType":"ElementaryTypeName","src":"2251:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2990,"mutability":"mutable","name":"b","nameLocation":"2270:1:13","nodeType":"VariableDeclaration","scope":3013,"src":"2262:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2262:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2250:22:13"},"returnParameters":{"id":2996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2993,"mutability":"mutable","name":"success","nameLocation":"2301:7:13","nodeType":"VariableDeclaration","scope":3013,"src":"2296:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2992,"name":"bool","nodeType":"ElementaryTypeName","src":"2296:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2995,"mutability":"mutable","name":"result","nameLocation":"2318:6:13","nodeType":"VariableDeclaration","scope":3013,"src":"2310:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2295:30:13"},"scope":4428,"src":"2235:205:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3039,"nodeType":"Block","src":"2912:207:13","statements":[{"id":3038,"nodeType":"UncheckedBlock","src":"2922:191:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3025,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"3060:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3026,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"3066:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3027,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"3070:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3066:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3029,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3065:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":3032,"name":"condition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3016,"src":"3091:9:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3030,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"3075:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3084:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"3075:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3075:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3065:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3035,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3064:38:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:42:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3024,"id":3037,"nodeType":"Return","src":"3053:49:13"}]}]},"documentation":{"id":3014,"nodeType":"StructuredDocumentation","src":"2446:374:13","text":" @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive."},"id":3040,"implemented":true,"kind":"function","modifiers":[],"name":"ternary","nameLocation":"2834:7:13","nodeType":"FunctionDefinition","parameters":{"id":3021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3016,"mutability":"mutable","name":"condition","nameLocation":"2847:9:13","nodeType":"VariableDeclaration","scope":3040,"src":"2842:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3015,"name":"bool","nodeType":"ElementaryTypeName","src":"2842:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3018,"mutability":"mutable","name":"a","nameLocation":"2866:1:13","nodeType":"VariableDeclaration","scope":3040,"src":"2858:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3017,"name":"uint256","nodeType":"ElementaryTypeName","src":"2858:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3020,"mutability":"mutable","name":"b","nameLocation":"2877:1:13","nodeType":"VariableDeclaration","scope":3040,"src":"2869:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3019,"name":"uint256","nodeType":"ElementaryTypeName","src":"2869:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2841:38:13"},"returnParameters":{"id":3024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3040,"src":"2903:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3022,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2902:9:13"},"scope":4428,"src":"2825:294:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3058,"nodeType":"Block","src":"3256:44:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3051,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"3281:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3052,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"3285:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3281:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3054,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"3288:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3055,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3045,"src":"3291:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3050,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3040,"src":"3273:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3273:20:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3049,"id":3057,"nodeType":"Return","src":"3266:27:13"}]},"documentation":{"id":3041,"nodeType":"StructuredDocumentation","src":"3125:59:13","text":" @dev Returns the largest of two numbers."},"id":3059,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"3198:3:13","nodeType":"FunctionDefinition","parameters":{"id":3046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3043,"mutability":"mutable","name":"a","nameLocation":"3210:1:13","nodeType":"VariableDeclaration","scope":3059,"src":"3202:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3042,"name":"uint256","nodeType":"ElementaryTypeName","src":"3202:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3045,"mutability":"mutable","name":"b","nameLocation":"3221:1:13","nodeType":"VariableDeclaration","scope":3059,"src":"3213:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3044,"name":"uint256","nodeType":"ElementaryTypeName","src":"3213:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3201:22:13"},"returnParameters":{"id":3049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3059,"src":"3247:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3047,"name":"uint256","nodeType":"ElementaryTypeName","src":"3247:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3246:9:13"},"scope":4428,"src":"3189:111:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3077,"nodeType":"Block","src":"3438:44:13","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3070,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3062,"src":"3463:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3071,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"3467:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3463:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3073,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3062,"src":"3470:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3074,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3064,"src":"3473:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3069,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3040,"src":"3455:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3455:20:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3068,"id":3076,"nodeType":"Return","src":"3448:27:13"}]},"documentation":{"id":3060,"nodeType":"StructuredDocumentation","src":"3306:60:13","text":" @dev Returns the smallest of two numbers."},"id":3078,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"3380:3:13","nodeType":"FunctionDefinition","parameters":{"id":3065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3062,"mutability":"mutable","name":"a","nameLocation":"3392:1:13","nodeType":"VariableDeclaration","scope":3078,"src":"3384:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3061,"name":"uint256","nodeType":"ElementaryTypeName","src":"3384:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3064,"mutability":"mutable","name":"b","nameLocation":"3403:1:13","nodeType":"VariableDeclaration","scope":3078,"src":"3395:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3395:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3383:22:13"},"returnParameters":{"id":3068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3078,"src":"3429:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3066,"name":"uint256","nodeType":"ElementaryTypeName","src":"3429:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3428:9:13"},"scope":4428,"src":"3371:111:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3100,"nodeType":"Block","src":"3666:82:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3088,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3721:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":3089,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"3725:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3721:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3720:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3092,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3731:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":3093,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"3735:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3731:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3730:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":3096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3740:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3730:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3720:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3087,"id":3099,"nodeType":"Return","src":"3713:28:13"}]},"documentation":{"id":3079,"nodeType":"StructuredDocumentation","src":"3488:102:13","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":3101,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"3604:7:13","nodeType":"FunctionDefinition","parameters":{"id":3084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3081,"mutability":"mutable","name":"a","nameLocation":"3620:1:13","nodeType":"VariableDeclaration","scope":3101,"src":"3612:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3080,"name":"uint256","nodeType":"ElementaryTypeName","src":"3612:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3083,"mutability":"mutable","name":"b","nameLocation":"3631:1:13","nodeType":"VariableDeclaration","scope":3101,"src":"3623:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3082,"name":"uint256","nodeType":"ElementaryTypeName","src":"3623:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3611:22:13"},"returnParameters":{"id":3087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3101,"src":"3657:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3085,"name":"uint256","nodeType":"ElementaryTypeName","src":"3657:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3656:9:13"},"scope":4428,"src":"3595:153:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3141,"nodeType":"Block","src":"4040:633:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3111,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"4054:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4059:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4054:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3122,"nodeType":"IfStatement","src":"4050:150:13","trueBody":{"id":3121,"nodeType":"Block","src":"4062:138:13","statements":[{"expression":{"arguments":[{"expression":{"id":3117,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"4166:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4172:16:13","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2325,"src":"4166:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3114,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"4154:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4160:5:13","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2357,"src":"4154:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3120,"nodeType":"ExpressionStatement","src":"4154:35:13"}]}},{"id":3140,"nodeType":"UncheckedBlock","src":"4583:84:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3125,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3104,"src":"4630:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4634:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4630:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3123,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"4614:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"4614:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4614:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3129,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3104,"src":"4641:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4645:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4641:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4640:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3133,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"4650:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4640:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4654:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4640:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3137,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4639:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4614:42:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3110,"id":3139,"nodeType":"Return","src":"4607:49:13"}]}]},"documentation":{"id":3102,"nodeType":"StructuredDocumentation","src":"3754:210:13","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."},"id":3142,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3978:7:13","nodeType":"FunctionDefinition","parameters":{"id":3107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3104,"mutability":"mutable","name":"a","nameLocation":"3994:1:13","nodeType":"VariableDeclaration","scope":3142,"src":"3986:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3103,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3106,"mutability":"mutable","name":"b","nameLocation":"4005:1:13","nodeType":"VariableDeclaration","scope":3142,"src":"3997:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3105,"name":"uint256","nodeType":"ElementaryTypeName","src":"3997:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3985:22:13"},"returnParameters":{"id":3110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3142,"src":"4031:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3108,"name":"uint256","nodeType":"ElementaryTypeName","src":"4031:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4030:9:13"},"scope":4428,"src":"3969:704:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3278,"nodeType":"Block","src":"5094:4132:13","statements":[{"id":3277,"nodeType":"UncheckedBlock","src":"5104:4116:13","statements":[{"assignments":[3155],"declarations":[{"constant":false,"id":3155,"mutability":"mutable","name":"prod0","nameLocation":"5445:5:13","nodeType":"VariableDeclaration","scope":3277,"src":"5437:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3154,"name":"uint256","nodeType":"ElementaryTypeName","src":"5437:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3159,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3156,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3145,"src":"5453:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3157,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3147,"src":"5457:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5453:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5437:21:13"},{"assignments":[3161],"declarations":[{"constant":false,"id":3161,"mutability":"mutable","name":"prod1","nameLocation":"5525:5:13","nodeType":"VariableDeclaration","scope":3277,"src":"5517:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3160,"name":"uint256","nodeType":"ElementaryTypeName","src":"5517:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3162,"nodeType":"VariableDeclarationStatement","src":"5517:13:13"},{"AST":{"nativeSrc":"5597:122:13","nodeType":"YulBlock","src":"5597:122:13","statements":[{"nativeSrc":"5615:30:13","nodeType":"YulVariableDeclaration","src":"5615:30:13","value":{"arguments":[{"name":"x","nativeSrc":"5632:1:13","nodeType":"YulIdentifier","src":"5632:1:13"},{"name":"y","nativeSrc":"5635:1:13","nodeType":"YulIdentifier","src":"5635:1:13"},{"arguments":[{"kind":"number","nativeSrc":"5642:1:13","nodeType":"YulLiteral","src":"5642:1:13","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"5638:3:13","nodeType":"YulIdentifier","src":"5638:3:13"},"nativeSrc":"5638:6:13","nodeType":"YulFunctionCall","src":"5638:6:13"}],"functionName":{"name":"mulmod","nativeSrc":"5625:6:13","nodeType":"YulIdentifier","src":"5625:6:13"},"nativeSrc":"5625:20:13","nodeType":"YulFunctionCall","src":"5625:20:13"},"variables":[{"name":"mm","nativeSrc":"5619:2:13","nodeType":"YulTypedName","src":"5619:2:13","type":""}]},{"nativeSrc":"5662:43:13","nodeType":"YulAssignment","src":"5662:43:13","value":{"arguments":[{"arguments":[{"name":"mm","nativeSrc":"5679:2:13","nodeType":"YulIdentifier","src":"5679:2:13"},{"name":"prod0","nativeSrc":"5683:5:13","nodeType":"YulIdentifier","src":"5683:5:13"}],"functionName":{"name":"sub","nativeSrc":"5675:3:13","nodeType":"YulIdentifier","src":"5675:3:13"},"nativeSrc":"5675:14:13","nodeType":"YulFunctionCall","src":"5675:14:13"},{"arguments":[{"name":"mm","nativeSrc":"5694:2:13","nodeType":"YulIdentifier","src":"5694:2:13"},{"name":"prod0","nativeSrc":"5698:5:13","nodeType":"YulIdentifier","src":"5698:5:13"}],"functionName":{"name":"lt","nativeSrc":"5691:2:13","nodeType":"YulIdentifier","src":"5691:2:13"},"nativeSrc":"5691:13:13","nodeType":"YulFunctionCall","src":"5691:13:13"}],"functionName":{"name":"sub","nativeSrc":"5671:3:13","nodeType":"YulIdentifier","src":"5671:3:13"},"nativeSrc":"5671:34:13","nodeType":"YulFunctionCall","src":"5671:34:13"},"variableNames":[{"name":"prod1","nativeSrc":"5662:5:13","nodeType":"YulIdentifier","src":"5662:5:13"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3155,"isOffset":false,"isSlot":false,"src":"5683:5:13","valueSize":1},{"declaration":3155,"isOffset":false,"isSlot":false,"src":"5698:5:13","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"5662:5:13","valueSize":1},{"declaration":3145,"isOffset":false,"isSlot":false,"src":"5632:1:13","valueSize":1},{"declaration":3147,"isOffset":false,"isSlot":false,"src":"5635:1:13","valueSize":1}],"id":3163,"nodeType":"InlineAssembly","src":"5588:131:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3164,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"5800:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5809:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5800:10:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3172,"nodeType":"IfStatement","src":"5796:368:13","trueBody":{"id":3171,"nodeType":"Block","src":"5812:352:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3167,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3155,"src":"6130:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3168,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"6138:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6130:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3153,"id":3170,"nodeType":"Return","src":"6123:26:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3173,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"6274:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":3174,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"6289:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6274:20:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3191,"nodeType":"IfStatement","src":"6270:143:13","trueBody":{"id":3190,"nodeType":"Block","src":"6296:117:13","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3180,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"6334:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6349:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6334:16:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":3183,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"6352:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6358:16:13","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2325,"src":"6352:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3185,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"6376:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6382:14:13","memberName":"UNDER_OVERFLOW","nodeType":"MemberAccess","referencedDeclaration":2321,"src":"6376:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3179,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3040,"src":"6326:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6326:71:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3176,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"6314:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6320:5:13","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2357,"src":"6314:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6314:84:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3189,"nodeType":"ExpressionStatement","src":"6314:84:13"}]}},{"assignments":[3193],"declarations":[{"constant":false,"id":3193,"mutability":"mutable","name":"remainder","nameLocation":"6676:9:13","nodeType":"VariableDeclaration","scope":3277,"src":"6668:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3192,"name":"uint256","nodeType":"ElementaryTypeName","src":"6668:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3194,"nodeType":"VariableDeclarationStatement","src":"6668:17:13"},{"AST":{"nativeSrc":"6708:291:13","nodeType":"YulBlock","src":"6708:291:13","statements":[{"nativeSrc":"6777:38:13","nodeType":"YulAssignment","src":"6777:38:13","value":{"arguments":[{"name":"x","nativeSrc":"6797:1:13","nodeType":"YulIdentifier","src":"6797:1:13"},{"name":"y","nativeSrc":"6800:1:13","nodeType":"YulIdentifier","src":"6800:1:13"},{"name":"denominator","nativeSrc":"6803:11:13","nodeType":"YulIdentifier","src":"6803:11:13"}],"functionName":{"name":"mulmod","nativeSrc":"6790:6:13","nodeType":"YulIdentifier","src":"6790:6:13"},"nativeSrc":"6790:25:13","nodeType":"YulFunctionCall","src":"6790:25:13"},"variableNames":[{"name":"remainder","nativeSrc":"6777:9:13","nodeType":"YulIdentifier","src":"6777:9:13"}]},{"nativeSrc":"6897:41:13","nodeType":"YulAssignment","src":"6897:41:13","value":{"arguments":[{"name":"prod1","nativeSrc":"6910:5:13","nodeType":"YulIdentifier","src":"6910:5:13"},{"arguments":[{"name":"remainder","nativeSrc":"6920:9:13","nodeType":"YulIdentifier","src":"6920:9:13"},{"name":"prod0","nativeSrc":"6931:5:13","nodeType":"YulIdentifier","src":"6931:5:13"}],"functionName":{"name":"gt","nativeSrc":"6917:2:13","nodeType":"YulIdentifier","src":"6917:2:13"},"nativeSrc":"6917:20:13","nodeType":"YulFunctionCall","src":"6917:20:13"}],"functionName":{"name":"sub","nativeSrc":"6906:3:13","nodeType":"YulIdentifier","src":"6906:3:13"},"nativeSrc":"6906:32:13","nodeType":"YulFunctionCall","src":"6906:32:13"},"variableNames":[{"name":"prod1","nativeSrc":"6897:5:13","nodeType":"YulIdentifier","src":"6897:5:13"}]},{"nativeSrc":"6955:30:13","nodeType":"YulAssignment","src":"6955:30:13","value":{"arguments":[{"name":"prod0","nativeSrc":"6968:5:13","nodeType":"YulIdentifier","src":"6968:5:13"},{"name":"remainder","nativeSrc":"6975:9:13","nodeType":"YulIdentifier","src":"6975:9:13"}],"functionName":{"name":"sub","nativeSrc":"6964:3:13","nodeType":"YulIdentifier","src":"6964:3:13"},"nativeSrc":"6964:21:13","nodeType":"YulFunctionCall","src":"6964:21:13"},"variableNames":[{"name":"prod0","nativeSrc":"6955:5:13","nodeType":"YulIdentifier","src":"6955:5:13"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3149,"isOffset":false,"isSlot":false,"src":"6803:11:13","valueSize":1},{"declaration":3155,"isOffset":false,"isSlot":false,"src":"6931:5:13","valueSize":1},{"declaration":3155,"isOffset":false,"isSlot":false,"src":"6955:5:13","valueSize":1},{"declaration":3155,"isOffset":false,"isSlot":false,"src":"6968:5:13","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"6897:5:13","valueSize":1},{"declaration":3161,"isOffset":false,"isSlot":false,"src":"6910:5:13","valueSize":1},{"declaration":3193,"isOffset":false,"isSlot":false,"src":"6777:9:13","valueSize":1},{"declaration":3193,"isOffset":false,"isSlot":false,"src":"6920:9:13","valueSize":1},{"declaration":3193,"isOffset":false,"isSlot":false,"src":"6975:9:13","valueSize":1},{"declaration":3145,"isOffset":false,"isSlot":false,"src":"6797:1:13","valueSize":1},{"declaration":3147,"isOffset":false,"isSlot":false,"src":"6800:1:13","valueSize":1}],"id":3195,"nodeType":"InlineAssembly","src":"6699:300:13"},{"assignments":[3197],"declarations":[{"constant":false,"id":3197,"mutability":"mutable","name":"twos","nameLocation":"7211:4:13","nodeType":"VariableDeclaration","scope":3277,"src":"7203:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3196,"name":"uint256","nodeType":"ElementaryTypeName","src":"7203:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3204,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3198,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"7218:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":3199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7233:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3200,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"7237:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7233:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3202,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7232:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7218:31:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7203:46:13"},{"AST":{"nativeSrc":"7272:366:13","nodeType":"YulBlock","src":"7272:366:13","statements":[{"nativeSrc":"7337:37:13","nodeType":"YulAssignment","src":"7337:37:13","value":{"arguments":[{"name":"denominator","nativeSrc":"7356:11:13","nodeType":"YulIdentifier","src":"7356:11:13"},{"name":"twos","nativeSrc":"7369:4:13","nodeType":"YulIdentifier","src":"7369:4:13"}],"functionName":{"name":"div","nativeSrc":"7352:3:13","nodeType":"YulIdentifier","src":"7352:3:13"},"nativeSrc":"7352:22:13","nodeType":"YulFunctionCall","src":"7352:22:13"},"variableNames":[{"name":"denominator","nativeSrc":"7337:11:13","nodeType":"YulIdentifier","src":"7337:11:13"}]},{"nativeSrc":"7441:25:13","nodeType":"YulAssignment","src":"7441:25:13","value":{"arguments":[{"name":"prod0","nativeSrc":"7454:5:13","nodeType":"YulIdentifier","src":"7454:5:13"},{"name":"twos","nativeSrc":"7461:4:13","nodeType":"YulIdentifier","src":"7461:4:13"}],"functionName":{"name":"div","nativeSrc":"7450:3:13","nodeType":"YulIdentifier","src":"7450:3:13"},"nativeSrc":"7450:16:13","nodeType":"YulFunctionCall","src":"7450:16:13"},"variableNames":[{"name":"prod0","nativeSrc":"7441:5:13","nodeType":"YulIdentifier","src":"7441:5:13"}]},{"nativeSrc":"7585:39:13","nodeType":"YulAssignment","src":"7585:39:13","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7605:1:13","nodeType":"YulLiteral","src":"7605:1:13","type":"","value":"0"},{"name":"twos","nativeSrc":"7608:4:13","nodeType":"YulIdentifier","src":"7608:4:13"}],"functionName":{"name":"sub","nativeSrc":"7601:3:13","nodeType":"YulIdentifier","src":"7601:3:13"},"nativeSrc":"7601:12:13","nodeType":"YulFunctionCall","src":"7601:12:13"},{"name":"twos","nativeSrc":"7615:4:13","nodeType":"YulIdentifier","src":"7615:4:13"}],"functionName":{"name":"div","nativeSrc":"7597:3:13","nodeType":"YulIdentifier","src":"7597:3:13"},"nativeSrc":"7597:23:13","nodeType":"YulFunctionCall","src":"7597:23:13"},{"kind":"number","nativeSrc":"7622:1:13","nodeType":"YulLiteral","src":"7622:1:13","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7593:3:13","nodeType":"YulIdentifier","src":"7593:3:13"},"nativeSrc":"7593:31:13","nodeType":"YulFunctionCall","src":"7593:31:13"},"variableNames":[{"name":"twos","nativeSrc":"7585:4:13","nodeType":"YulIdentifier","src":"7585:4:13"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":3149,"isOffset":false,"isSlot":false,"src":"7337:11:13","valueSize":1},{"declaration":3149,"isOffset":false,"isSlot":false,"src":"7356:11:13","valueSize":1},{"declaration":3155,"isOffset":false,"isSlot":false,"src":"7441:5:13","valueSize":1},{"declaration":3155,"isOffset":false,"isSlot":false,"src":"7454:5:13","valueSize":1},{"declaration":3197,"isOffset":false,"isSlot":false,"src":"7369:4:13","valueSize":1},{"declaration":3197,"isOffset":false,"isSlot":false,"src":"7461:4:13","valueSize":1},{"declaration":3197,"isOffset":false,"isSlot":false,"src":"7585:4:13","valueSize":1},{"declaration":3197,"isOffset":false,"isSlot":false,"src":"7608:4:13","valueSize":1},{"declaration":3197,"isOffset":false,"isSlot":false,"src":"7615:4:13","valueSize":1}],"id":3205,"nodeType":"InlineAssembly","src":"7263:375:13"},{"expression":{"id":3210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3206,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3155,"src":"7704:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3207,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3161,"src":"7713:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3208,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"7721:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7713:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7704:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3211,"nodeType":"ExpressionStatement","src":"7704:21:13"},{"assignments":[3213],"declarations":[{"constant":false,"id":3213,"mutability":"mutable","name":"inverse","nameLocation":"8068:7:13","nodeType":"VariableDeclaration","scope":3277,"src":"8060:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3212,"name":"uint256","nodeType":"ElementaryTypeName","src":"8060:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3220,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8079:1:13","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3215,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"8083:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8079:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3217,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8078:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":3218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8098:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"8078:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8060:39:13"},{"expression":{"id":3227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3221,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8316:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8327:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3223,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"8331:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3224,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8345:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8331:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8327:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8316:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3228,"nodeType":"ExpressionStatement","src":"8316:36:13"},{"expression":{"id":3235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3229,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8386:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8397:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3231,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"8401:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3232,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8415:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8401:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8397:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8386:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3236,"nodeType":"ExpressionStatement","src":"8386:36:13"},{"expression":{"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3237,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8458:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8469:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3239,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"8473:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3240,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8487:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8473:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8469:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8458:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3244,"nodeType":"ExpressionStatement","src":"8458:36:13"},{"expression":{"id":3251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3245,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8529:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8540:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3247,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"8544:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3248,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8558:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8544:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8540:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8529:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3252,"nodeType":"ExpressionStatement","src":"8529:36:13"},{"expression":{"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3253,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8602:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8613:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3255,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"8617:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3256,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8631:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8617:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8602:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3260,"nodeType":"ExpressionStatement","src":"8602:36:13"},{"expression":{"id":3267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3261,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8676:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3263,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3149,"src":"8691:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3264,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8705:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8691:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8687:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8676:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3268,"nodeType":"ExpressionStatement","src":"8676:36:13"},{"expression":{"id":3273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3269,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"9158:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3270,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3155,"src":"9167:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3271,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"9175:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9167:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9158:24:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3274,"nodeType":"ExpressionStatement","src":"9158:24:13"},{"expression":{"id":3275,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"9203:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3153,"id":3276,"nodeType":"Return","src":"9196:13:13"}]}]},"documentation":{"id":3143,"nodeType":"StructuredDocumentation","src":"4679:312:13","text":" @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":3279,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"5005:6:13","nodeType":"FunctionDefinition","parameters":{"id":3150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3145,"mutability":"mutable","name":"x","nameLocation":"5020:1:13","nodeType":"VariableDeclaration","scope":3279,"src":"5012:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3144,"name":"uint256","nodeType":"ElementaryTypeName","src":"5012:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3147,"mutability":"mutable","name":"y","nameLocation":"5031:1:13","nodeType":"VariableDeclaration","scope":3279,"src":"5023:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3146,"name":"uint256","nodeType":"ElementaryTypeName","src":"5023:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3149,"mutability":"mutable","name":"denominator","nameLocation":"5042:11:13","nodeType":"VariableDeclaration","scope":3279,"src":"5034:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3148,"name":"uint256","nodeType":"ElementaryTypeName","src":"5034:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:43:13"},"returnParameters":{"id":3153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3152,"mutability":"mutable","name":"result","nameLocation":"5086:6:13","nodeType":"VariableDeclaration","scope":3279,"src":"5078:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3151,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5077:16:13"},"scope":4428,"src":"4996:4230:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3315,"nodeType":"Block","src":"9465:128:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3295,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"9489:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3296,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3284,"src":"9492:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3297,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3286,"src":"9495:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3294,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[3279,3316],"referencedDeclaration":3279,"src":"9482:6:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9482:25:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3302,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3289,"src":"9543:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}],"id":3301,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"9526:16:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2855_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9526:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3305,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3282,"src":"9563:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3306,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3284,"src":"9566:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3307,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3286,"src":"9569:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3304,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"9556:6:13","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9556:25:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9584:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9556:29:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9526:59:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3299,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"9510:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9519:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"9510:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9510:76:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9482:104:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3293,"id":3314,"nodeType":"Return","src":"9475:111:13"}]},"documentation":{"id":3280,"nodeType":"StructuredDocumentation","src":"9232:118:13","text":" @dev Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":3316,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"9364:6:13","nodeType":"FunctionDefinition","parameters":{"id":3290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"x","nameLocation":"9379:1:13","nodeType":"VariableDeclaration","scope":3316,"src":"9371:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3281,"name":"uint256","nodeType":"ElementaryTypeName","src":"9371:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3284,"mutability":"mutable","name":"y","nameLocation":"9390:1:13","nodeType":"VariableDeclaration","scope":3316,"src":"9382:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3283,"name":"uint256","nodeType":"ElementaryTypeName","src":"9382:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3286,"mutability":"mutable","name":"denominator","nameLocation":"9401:11:13","nodeType":"VariableDeclaration","scope":3316,"src":"9393:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3285,"name":"uint256","nodeType":"ElementaryTypeName","src":"9393:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3289,"mutability":"mutable","name":"rounding","nameLocation":"9423:8:13","nodeType":"VariableDeclaration","scope":3316,"src":"9414:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"},"typeName":{"id":3288,"nodeType":"UserDefinedTypeName","pathNode":{"id":3287,"name":"Rounding","nameLocations":["9414:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":2855,"src":"9414:8:13"},"referencedDeclaration":2855,"src":"9414:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"9370:62:13"},"returnParameters":{"id":3293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3316,"src":"9456:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3291,"name":"uint256","nodeType":"ElementaryTypeName","src":"9456:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9455:9:13"},"scope":4428,"src":"9355:238:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3412,"nodeType":"Block","src":"10207:1849:13","statements":[{"id":3411,"nodeType":"UncheckedBlock","src":"10217:1833:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3326,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"10245:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10250:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10245:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3331,"nodeType":"IfStatement","src":"10241:20:13","trueBody":{"expression":{"hexValue":"30","id":3329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10260:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3325,"id":3330,"nodeType":"Return","src":"10253:8:13"}},{"assignments":[3333],"declarations":[{"constant":false,"id":3333,"mutability":"mutable","name":"remainder","nameLocation":"10740:9:13","nodeType":"VariableDeclaration","scope":3411,"src":"10732:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3332,"name":"uint256","nodeType":"ElementaryTypeName","src":"10732:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3337,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3334,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3319,"src":"10752:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":3335,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"10756:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10752:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10732:25:13"},{"assignments":[3339],"declarations":[{"constant":false,"id":3339,"mutability":"mutable","name":"gcd","nameLocation":"10779:3:13","nodeType":"VariableDeclaration","scope":3411,"src":"10771:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3338,"name":"uint256","nodeType":"ElementaryTypeName","src":"10771:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3341,"initialValue":{"id":3340,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"10785:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10771:15:13"},{"assignments":[3343],"declarations":[{"constant":false,"id":3343,"mutability":"mutable","name":"x","nameLocation":"10929:1:13","nodeType":"VariableDeclaration","scope":3411,"src":"10922:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3342,"name":"int256","nodeType":"ElementaryTypeName","src":"10922:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3345,"initialValue":{"hexValue":"30","id":3344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10933:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10922:12:13"},{"assignments":[3347],"declarations":[{"constant":false,"id":3347,"mutability":"mutable","name":"y","nameLocation":"10955:1:13","nodeType":"VariableDeclaration","scope":3411,"src":"10948:8:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3346,"name":"int256","nodeType":"ElementaryTypeName","src":"10948:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":3349,"initialValue":{"hexValue":"31","id":3348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10959:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"10948:12:13"},{"body":{"id":3386,"nodeType":"Block","src":"10998:882:13","statements":[{"assignments":[3354],"declarations":[{"constant":false,"id":3354,"mutability":"mutable","name":"quotient","nameLocation":"11024:8:13","nodeType":"VariableDeclaration","scope":3386,"src":"11016:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3353,"name":"uint256","nodeType":"ElementaryTypeName","src":"11016:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3358,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3355,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3339,"src":"11035:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3356,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"11041:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11035:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11016:34:13"},{"expression":{"id":3369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3359,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3339,"src":"11070:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3360,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"11075:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3361,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11069:16:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":3362,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"11175:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3363,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3339,"src":"11420:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3364,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"11426:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3365,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"11438:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11426:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11420:26:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11088:376:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"11069:395:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3370,"nodeType":"ExpressionStatement","src":"11069:395:13"},{"expression":{"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3371,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"11484:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":3372,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11487:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3373,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11483:6:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"id":3374,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11569:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3375,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"11823:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3376,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3347,"src":"11827:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"id":3379,"name":"quotient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3354,"src":"11838:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11831:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3377,"name":"int256","nodeType":"ElementaryTypeName","src":"11831:6:13","typeDescriptions":{}}},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11831:16:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11827:20:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"11823:24:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":3383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11492:373:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_int256_$","typeString":"tuple(int256,int256)"}},"src":"11483:382:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3385,"nodeType":"ExpressionStatement","src":"11483:382:13"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3350,"name":"remainder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3333,"src":"10982:9:13","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":"10995:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10982:14:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3387,"nodeType":"WhileStatement","src":"10975:905:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3388,"name":"gcd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3339,"src":"11898:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"31","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11905:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11898:8:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3393,"nodeType":"IfStatement","src":"11894:22:13","trueBody":{"expression":{"hexValue":"30","id":3391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11915:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3325,"id":3392,"nodeType":"Return","src":"11908:8:13"}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3395,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"11967:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":3396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11971:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11967:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3398,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3321,"src":"11974:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"11986:2:13","subExpression":{"id":3401,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"11987:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11978:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3399,"name":"uint256","nodeType":"ElementaryTypeName","src":"11978:7:13","typeDescriptions":{}}},"id":3403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11978:11:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11974:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":3407,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"11999:1:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11991:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3405,"name":"uint256","nodeType":"ElementaryTypeName","src":"11991:7:13","typeDescriptions":{}}},"id":3408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:10:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3394,"name":"ternary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3040,"src":"11959:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bool,uint256,uint256) pure returns (uint256)"}},"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11959:43:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3325,"id":3410,"nodeType":"Return","src":"11952:50:13"}]}]},"documentation":{"id":3317,"nodeType":"StructuredDocumentation","src":"9599:533:13","text":" @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, expect 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Ferma's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`."},"id":3413,"implemented":true,"kind":"function","modifiers":[],"name":"invMod","nameLocation":"10146:6:13","nodeType":"FunctionDefinition","parameters":{"id":3322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3319,"mutability":"mutable","name":"a","nameLocation":"10161:1:13","nodeType":"VariableDeclaration","scope":3413,"src":"10153:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3318,"name":"uint256","nodeType":"ElementaryTypeName","src":"10153:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3321,"mutability":"mutable","name":"n","nameLocation":"10172:1:13","nodeType":"VariableDeclaration","scope":3413,"src":"10164:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3320,"name":"uint256","nodeType":"ElementaryTypeName","src":"10164:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10152:22:13"},"returnParameters":{"id":3325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3413,"src":"10198:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3323,"name":"uint256","nodeType":"ElementaryTypeName","src":"10198:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10197:9:13"},"scope":4428,"src":"10137:1919:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3448,"nodeType":"Block","src":"12826:174:13","statements":[{"assignments":[3426,3428],"declarations":[{"constant":false,"id":3426,"mutability":"mutable","name":"success","nameLocation":"12842:7:13","nodeType":"VariableDeclaration","scope":3448,"src":"12837:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3425,"name":"bool","nodeType":"ElementaryTypeName","src":"12837:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3428,"mutability":"mutable","name":"result","nameLocation":"12859:6:13","nodeType":"VariableDeclaration","scope":3448,"src":"12851:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3427,"name":"uint256","nodeType":"ElementaryTypeName","src":"12851:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3434,"initialValue":{"arguments":[{"id":3430,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3416,"src":"12879:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3431,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3418,"src":"12882:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3432,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3420,"src":"12885:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3429,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[3473,3555],"referencedDeclaration":3473,"src":"12869:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (bool,uint256)"}},"id":3433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12869:18:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"12836:51:13"},{"condition":{"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12901:8:13","subExpression":{"id":3435,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3426,"src":"12902:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3445,"nodeType":"IfStatement","src":"12897:74:13","trueBody":{"id":3444,"nodeType":"Block","src":"12911:60:13","statements":[{"expression":{"arguments":[{"expression":{"id":3440,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"12937:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12943:16:13","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2325,"src":"12937:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3437,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"12925:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12931:5:13","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2357,"src":"12925:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12925:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3443,"nodeType":"ExpressionStatement","src":"12925:35:13"}]}},{"expression":{"id":3446,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3428,"src":"12987:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3424,"id":3447,"nodeType":"Return","src":"12980:13:13"}]},"documentation":{"id":3414,"nodeType":"StructuredDocumentation","src":"12062:678:13","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0."},"id":3449,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"12754:6:13","nodeType":"FunctionDefinition","parameters":{"id":3421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3416,"mutability":"mutable","name":"b","nameLocation":"12769:1:13","nodeType":"VariableDeclaration","scope":3449,"src":"12761:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3415,"name":"uint256","nodeType":"ElementaryTypeName","src":"12761:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3418,"mutability":"mutable","name":"e","nameLocation":"12780:1:13","nodeType":"VariableDeclaration","scope":3449,"src":"12772:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3417,"name":"uint256","nodeType":"ElementaryTypeName","src":"12772:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3420,"mutability":"mutable","name":"m","nameLocation":"12791:1:13","nodeType":"VariableDeclaration","scope":3449,"src":"12783:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3419,"name":"uint256","nodeType":"ElementaryTypeName","src":"12783:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12760:33:13"},"returnParameters":{"id":3424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3449,"src":"12817:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3422,"name":"uint256","nodeType":"ElementaryTypeName","src":"12817:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12816:9:13"},"scope":4428,"src":"12745:255:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3472,"nodeType":"Block","src":"13855:1520:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3463,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3456,"src":"13869:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13874:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13869:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3470,"nodeType":"IfStatement","src":"13865:29:13","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13885:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":3467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13892:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":3468,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13884:10:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":3462,"id":3469,"nodeType":"Return","src":"13877:17:13"}},{"AST":{"nativeSrc":"13956:1413:13","nodeType":"YulBlock","src":"13956:1413:13","statements":[{"nativeSrc":"13970:22:13","nodeType":"YulVariableDeclaration","src":"13970:22:13","value":{"arguments":[{"kind":"number","nativeSrc":"13987:4:13","nodeType":"YulLiteral","src":"13987:4:13","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13981:5:13","nodeType":"YulIdentifier","src":"13981:5:13"},"nativeSrc":"13981:11:13","nodeType":"YulFunctionCall","src":"13981:11:13"},"variables":[{"name":"ptr","nativeSrc":"13974:3:13","nodeType":"YulTypedName","src":"13974:3:13","type":""}]},{"expression":{"arguments":[{"name":"ptr","nativeSrc":"14900:3:13","nodeType":"YulIdentifier","src":"14900:3:13"},{"kind":"number","nativeSrc":"14905:4:13","nodeType":"YulLiteral","src":"14905:4:13","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14893:6:13","nodeType":"YulIdentifier","src":"14893:6:13"},"nativeSrc":"14893:17:13","nodeType":"YulFunctionCall","src":"14893:17:13"},"nativeSrc":"14893:17:13","nodeType":"YulExpressionStatement","src":"14893:17:13"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"14934:3:13","nodeType":"YulIdentifier","src":"14934:3:13"},{"kind":"number","nativeSrc":"14939:4:13","nodeType":"YulLiteral","src":"14939:4:13","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14930:3:13","nodeType":"YulIdentifier","src":"14930:3:13"},"nativeSrc":"14930:14:13","nodeType":"YulFunctionCall","src":"14930:14:13"},{"kind":"number","nativeSrc":"14946:4:13","nodeType":"YulLiteral","src":"14946:4:13","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14923:6:13","nodeType":"YulIdentifier","src":"14923:6:13"},"nativeSrc":"14923:28:13","nodeType":"YulFunctionCall","src":"14923:28:13"},"nativeSrc":"14923:28:13","nodeType":"YulExpressionStatement","src":"14923:28:13"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"14975:3:13","nodeType":"YulIdentifier","src":"14975:3:13"},{"kind":"number","nativeSrc":"14980:4:13","nodeType":"YulLiteral","src":"14980:4:13","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14971:3:13","nodeType":"YulIdentifier","src":"14971:3:13"},"nativeSrc":"14971:14:13","nodeType":"YulFunctionCall","src":"14971:14:13"},{"kind":"number","nativeSrc":"14987:4:13","nodeType":"YulLiteral","src":"14987:4:13","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"14964:6:13","nodeType":"YulIdentifier","src":"14964:6:13"},"nativeSrc":"14964:28:13","nodeType":"YulFunctionCall","src":"14964:28:13"},"nativeSrc":"14964:28:13","nodeType":"YulExpressionStatement","src":"14964:28:13"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15016:3:13","nodeType":"YulIdentifier","src":"15016:3:13"},{"kind":"number","nativeSrc":"15021:4:13","nodeType":"YulLiteral","src":"15021:4:13","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15012:3:13","nodeType":"YulIdentifier","src":"15012:3:13"},"nativeSrc":"15012:14:13","nodeType":"YulFunctionCall","src":"15012:14:13"},{"name":"b","nativeSrc":"15028:1:13","nodeType":"YulIdentifier","src":"15028:1:13"}],"functionName":{"name":"mstore","nativeSrc":"15005:6:13","nodeType":"YulIdentifier","src":"15005:6:13"},"nativeSrc":"15005:25:13","nodeType":"YulFunctionCall","src":"15005:25:13"},"nativeSrc":"15005:25:13","nodeType":"YulExpressionStatement","src":"15005:25:13"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15054:3:13","nodeType":"YulIdentifier","src":"15054:3:13"},{"kind":"number","nativeSrc":"15059:4:13","nodeType":"YulLiteral","src":"15059:4:13","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15050:3:13","nodeType":"YulIdentifier","src":"15050:3:13"},"nativeSrc":"15050:14:13","nodeType":"YulFunctionCall","src":"15050:14:13"},{"name":"e","nativeSrc":"15066:1:13","nodeType":"YulIdentifier","src":"15066:1:13"}],"functionName":{"name":"mstore","nativeSrc":"15043:6:13","nodeType":"YulIdentifier","src":"15043:6:13"},"nativeSrc":"15043:25:13","nodeType":"YulFunctionCall","src":"15043:25:13"},"nativeSrc":"15043:25:13","nodeType":"YulExpressionStatement","src":"15043:25:13"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"15092:3:13","nodeType":"YulIdentifier","src":"15092:3:13"},{"kind":"number","nativeSrc":"15097:4:13","nodeType":"YulLiteral","src":"15097:4:13","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15088:3:13","nodeType":"YulIdentifier","src":"15088:3:13"},"nativeSrc":"15088:14:13","nodeType":"YulFunctionCall","src":"15088:14:13"},{"name":"m","nativeSrc":"15104:1:13","nodeType":"YulIdentifier","src":"15104:1:13"}],"functionName":{"name":"mstore","nativeSrc":"15081:6:13","nodeType":"YulIdentifier","src":"15081:6:13"},"nativeSrc":"15081:25:13","nodeType":"YulFunctionCall","src":"15081:25:13"},"nativeSrc":"15081:25:13","nodeType":"YulExpressionStatement","src":"15081:25:13"},{"nativeSrc":"15268:57:13","nodeType":"YulAssignment","src":"15268:57:13","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15290:3:13","nodeType":"YulIdentifier","src":"15290:3:13"},"nativeSrc":"15290:5:13","nodeType":"YulFunctionCall","src":"15290:5:13"},{"kind":"number","nativeSrc":"15297:4:13","nodeType":"YulLiteral","src":"15297:4:13","type":"","value":"0x05"},{"name":"ptr","nativeSrc":"15303:3:13","nodeType":"YulIdentifier","src":"15303:3:13"},{"kind":"number","nativeSrc":"15308:4:13","nodeType":"YulLiteral","src":"15308:4:13","type":"","value":"0xc0"},{"kind":"number","nativeSrc":"15314:4:13","nodeType":"YulLiteral","src":"15314:4:13","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15320:4:13","nodeType":"YulLiteral","src":"15320:4:13","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15279:10:13","nodeType":"YulIdentifier","src":"15279:10:13"},"nativeSrc":"15279:46:13","nodeType":"YulFunctionCall","src":"15279:46:13"},"variableNames":[{"name":"success","nativeSrc":"15268:7:13","nodeType":"YulIdentifier","src":"15268:7:13"}]},{"nativeSrc":"15338:21:13","nodeType":"YulAssignment","src":"15338:21:13","value":{"arguments":[{"kind":"number","nativeSrc":"15354:4:13","nodeType":"YulLiteral","src":"15354:4:13","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"15348:5:13","nodeType":"YulIdentifier","src":"15348:5:13"},"nativeSrc":"15348:11:13","nodeType":"YulFunctionCall","src":"15348:11:13"},"variableNames":[{"name":"result","nativeSrc":"15338:6:13","nodeType":"YulIdentifier","src":"15338:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":3452,"isOffset":false,"isSlot":false,"src":"15028:1:13","valueSize":1},{"declaration":3454,"isOffset":false,"isSlot":false,"src":"15066:1:13","valueSize":1},{"declaration":3456,"isOffset":false,"isSlot":false,"src":"15104:1:13","valueSize":1},{"declaration":3461,"isOffset":false,"isSlot":false,"src":"15338:6:13","valueSize":1},{"declaration":3459,"isOffset":false,"isSlot":false,"src":"15268:7:13","valueSize":1}],"id":3471,"nodeType":"InlineAssembly","src":"13947:1422:13"}]},"documentation":{"id":3450,"nodeType":"StructuredDocumentation","src":"13006:739:13","text":" @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked has failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0."},"id":3473,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"13759:9:13","nodeType":"FunctionDefinition","parameters":{"id":3457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3452,"mutability":"mutable","name":"b","nameLocation":"13777:1:13","nodeType":"VariableDeclaration","scope":3473,"src":"13769:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3451,"name":"uint256","nodeType":"ElementaryTypeName","src":"13769:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3454,"mutability":"mutable","name":"e","nameLocation":"13788:1:13","nodeType":"VariableDeclaration","scope":3473,"src":"13780:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3453,"name":"uint256","nodeType":"ElementaryTypeName","src":"13780:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3456,"mutability":"mutable","name":"m","nameLocation":"13799:1:13","nodeType":"VariableDeclaration","scope":3473,"src":"13791:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3455,"name":"uint256","nodeType":"ElementaryTypeName","src":"13791:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13768:33:13"},"returnParameters":{"id":3462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3459,"mutability":"mutable","name":"success","nameLocation":"13830:7:13","nodeType":"VariableDeclaration","scope":3473,"src":"13825:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3458,"name":"bool","nodeType":"ElementaryTypeName","src":"13825:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3461,"mutability":"mutable","name":"result","nameLocation":"13847:6:13","nodeType":"VariableDeclaration","scope":3473,"src":"13839:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3460,"name":"uint256","nodeType":"ElementaryTypeName","src":"13839:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13824:30:13"},"scope":4428,"src":"13750:1625:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3508,"nodeType":"Block","src":"15572:179:13","statements":[{"assignments":[3486,3488],"declarations":[{"constant":false,"id":3486,"mutability":"mutable","name":"success","nameLocation":"15588:7:13","nodeType":"VariableDeclaration","scope":3508,"src":"15583:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3485,"name":"bool","nodeType":"ElementaryTypeName","src":"15583:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3488,"mutability":"mutable","name":"result","nameLocation":"15610:6:13","nodeType":"VariableDeclaration","scope":3508,"src":"15597:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3487,"name":"bytes","nodeType":"ElementaryTypeName","src":"15597:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3494,"initialValue":{"arguments":[{"id":3490,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"15630:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3491,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3478,"src":"15633:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3492,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3480,"src":"15636:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3489,"name":"tryModExp","nodeType":"Identifier","overloadedDeclarations":[3473,3555],"referencedDeclaration":3555,"src":"15620:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)"}},"id":3493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15620:18:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"15582:56:13"},{"condition":{"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15652:8:13","subExpression":{"id":3495,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"15653:7:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3505,"nodeType":"IfStatement","src":"15648:74:13","trueBody":{"id":3504,"nodeType":"Block","src":"15662:60:13","statements":[{"expression":{"arguments":[{"expression":{"id":3500,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"15688:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15694:16:13","memberName":"DIVISION_BY_ZERO","nodeType":"MemberAccess","referencedDeclaration":2325,"src":"15688:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3497,"name":"Panic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2358,"src":"15676:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Panic_$2358_$","typeString":"type(library Panic)"}},"id":3499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15682:5:13","memberName":"panic","nodeType":"MemberAccess","referencedDeclaration":2357,"src":"15676:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":3502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15676:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3503,"nodeType":"ExpressionStatement","src":"15676:35:13"}]}},{"expression":{"id":3506,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3488,"src":"15738:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":3484,"id":3507,"nodeType":"Return","src":"15731:13:13"}]},"documentation":{"id":3474,"nodeType":"StructuredDocumentation","src":"15381:85:13","text":" @dev Variant of {modExp} that supports inputs of arbitrary length."},"id":3509,"implemented":true,"kind":"function","modifiers":[],"name":"modExp","nameLocation":"15480:6:13","nodeType":"FunctionDefinition","parameters":{"id":3481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3476,"mutability":"mutable","name":"b","nameLocation":"15500:1:13","nodeType":"VariableDeclaration","scope":3509,"src":"15487:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3475,"name":"bytes","nodeType":"ElementaryTypeName","src":"15487:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3478,"mutability":"mutable","name":"e","nameLocation":"15516:1:13","nodeType":"VariableDeclaration","scope":3509,"src":"15503:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3477,"name":"bytes","nodeType":"ElementaryTypeName","src":"15503:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3480,"mutability":"mutable","name":"m","nameLocation":"15532:1:13","nodeType":"VariableDeclaration","scope":3509,"src":"15519:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3479,"name":"bytes","nodeType":"ElementaryTypeName","src":"15519:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15486:48:13"},"returnParameters":{"id":3484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3509,"src":"15558:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3482,"name":"bytes","nodeType":"ElementaryTypeName","src":"15558:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15557:14:13"},"scope":4428,"src":"15471:280:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3554,"nodeType":"Block","src":"16005:798:13","statements":[{"condition":{"arguments":[{"id":3524,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"16030:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3523,"name":"_zeroBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3588,"src":"16019:10:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) pure returns (bool)"}},"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16019:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3533,"nodeType":"IfStatement","src":"16015:47:13","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":3526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16042:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"hexValue":"30","id":3529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16059:1:13","typeDescriptions":{"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":3528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16049:9:13","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3527,"name":"bytes","nodeType":"ElementaryTypeName","src":"16053:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16049:12:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3531,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"16041:21:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":3522,"id":3532,"nodeType":"Return","src":"16034:28:13"}},{"assignments":[3535],"declarations":[{"constant":false,"id":3535,"mutability":"mutable","name":"mLen","nameLocation":"16081:4:13","nodeType":"VariableDeclaration","scope":3554,"src":"16073:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3534,"name":"uint256","nodeType":"ElementaryTypeName","src":"16073:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3538,"initialValue":{"expression":{"id":3536,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"16088:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16090:6:13","memberName":"length","nodeType":"MemberAccess","src":"16088:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16073:23:13"},{"expression":{"id":3551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3539,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3521,"src":"16178:6:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3542,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3512,"src":"16204:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16206:6:13","memberName":"length","nodeType":"MemberAccess","src":"16204:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3544,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3514,"src":"16214:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16216:6:13","memberName":"length","nodeType":"MemberAccess","src":"16214:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3546,"name":"mLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3535,"src":"16224:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3547,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3512,"src":"16230:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3548,"name":"e","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3514,"src":"16233:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3549,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"16236:1:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3540,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16187:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16191:12:13","memberName":"encodePacked","nodeType":"MemberAccess","src":"16187:16:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16187:51:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"16178:60:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3552,"nodeType":"ExpressionStatement","src":"16178:60:13"},{"AST":{"nativeSrc":"16301:496:13","nodeType":"YulBlock","src":"16301:496:13","statements":[{"nativeSrc":"16315:32:13","nodeType":"YulVariableDeclaration","src":"16315:32:13","value":{"arguments":[{"name":"result","nativeSrc":"16334:6:13","nodeType":"YulIdentifier","src":"16334:6:13"},{"kind":"number","nativeSrc":"16342:4:13","nodeType":"YulLiteral","src":"16342:4:13","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16330:3:13","nodeType":"YulIdentifier","src":"16330:3:13"},"nativeSrc":"16330:17:13","nodeType":"YulFunctionCall","src":"16330:17:13"},"variables":[{"name":"dataPtr","nativeSrc":"16319:7:13","nodeType":"YulTypedName","src":"16319:7:13","type":""}]},{"nativeSrc":"16437:73:13","nodeType":"YulAssignment","src":"16437:73:13","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16459:3:13","nodeType":"YulIdentifier","src":"16459:3:13"},"nativeSrc":"16459:5:13","nodeType":"YulFunctionCall","src":"16459:5:13"},{"kind":"number","nativeSrc":"16466:4:13","nodeType":"YulLiteral","src":"16466:4:13","type":"","value":"0x05"},{"name":"dataPtr","nativeSrc":"16472:7:13","nodeType":"YulIdentifier","src":"16472:7:13"},{"arguments":[{"name":"result","nativeSrc":"16487:6:13","nodeType":"YulIdentifier","src":"16487:6:13"}],"functionName":{"name":"mload","nativeSrc":"16481:5:13","nodeType":"YulIdentifier","src":"16481:5:13"},"nativeSrc":"16481:13:13","nodeType":"YulFunctionCall","src":"16481:13:13"},{"name":"dataPtr","nativeSrc":"16496:7:13","nodeType":"YulIdentifier","src":"16496:7:13"},{"name":"mLen","nativeSrc":"16505:4:13","nodeType":"YulIdentifier","src":"16505:4:13"}],"functionName":{"name":"staticcall","nativeSrc":"16448:10:13","nodeType":"YulIdentifier","src":"16448:10:13"},"nativeSrc":"16448:62:13","nodeType":"YulFunctionCall","src":"16448:62:13"},"variableNames":[{"name":"success","nativeSrc":"16437:7:13","nodeType":"YulIdentifier","src":"16437:7:13"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"16666:6:13","nodeType":"YulIdentifier","src":"16666:6:13"},{"name":"mLen","nativeSrc":"16674:4:13","nodeType":"YulIdentifier","src":"16674:4:13"}],"functionName":{"name":"mstore","nativeSrc":"16659:6:13","nodeType":"YulIdentifier","src":"16659:6:13"},"nativeSrc":"16659:20:13","nodeType":"YulFunctionCall","src":"16659:20:13"},"nativeSrc":"16659:20:13","nodeType":"YulExpressionStatement","src":"16659:20:13"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16762:4:13","nodeType":"YulLiteral","src":"16762:4:13","type":"","value":"0x40"},{"arguments":[{"name":"dataPtr","nativeSrc":"16772:7:13","nodeType":"YulIdentifier","src":"16772:7:13"},{"name":"mLen","nativeSrc":"16781:4:13","nodeType":"YulIdentifier","src":"16781:4:13"}],"functionName":{"name":"add","nativeSrc":"16768:3:13","nodeType":"YulIdentifier","src":"16768:3:13"},"nativeSrc":"16768:18:13","nodeType":"YulFunctionCall","src":"16768:18:13"}],"functionName":{"name":"mstore","nativeSrc":"16755:6:13","nodeType":"YulIdentifier","src":"16755:6:13"},"nativeSrc":"16755:32:13","nodeType":"YulFunctionCall","src":"16755:32:13"},"nativeSrc":"16755:32:13","nodeType":"YulExpressionStatement","src":"16755:32:13"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16505:4:13","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16674:4:13","valueSize":1},{"declaration":3535,"isOffset":false,"isSlot":false,"src":"16781:4:13","valueSize":1},{"declaration":3521,"isOffset":false,"isSlot":false,"src":"16334:6:13","valueSize":1},{"declaration":3521,"isOffset":false,"isSlot":false,"src":"16487:6:13","valueSize":1},{"declaration":3521,"isOffset":false,"isSlot":false,"src":"16666:6:13","valueSize":1},{"declaration":3519,"isOffset":false,"isSlot":false,"src":"16437:7:13","valueSize":1}],"id":3553,"nodeType":"InlineAssembly","src":"16292:505:13"}]},"documentation":{"id":3510,"nodeType":"StructuredDocumentation","src":"15757:88:13","text":" @dev Variant of {tryModExp} that supports inputs of arbitrary length."},"id":3555,"implemented":true,"kind":"function","modifiers":[],"name":"tryModExp","nameLocation":"15859:9:13","nodeType":"FunctionDefinition","parameters":{"id":3517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3512,"mutability":"mutable","name":"b","nameLocation":"15891:1:13","nodeType":"VariableDeclaration","scope":3555,"src":"15878:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3511,"name":"bytes","nodeType":"ElementaryTypeName","src":"15878:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3514,"mutability":"mutable","name":"e","nameLocation":"15915:1:13","nodeType":"VariableDeclaration","scope":3555,"src":"15902:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3513,"name":"bytes","nodeType":"ElementaryTypeName","src":"15902:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3516,"mutability":"mutable","name":"m","nameLocation":"15939:1:13","nodeType":"VariableDeclaration","scope":3555,"src":"15926:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3515,"name":"bytes","nodeType":"ElementaryTypeName","src":"15926:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15868:78:13"},"returnParameters":{"id":3522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3519,"mutability":"mutable","name":"success","nameLocation":"15975:7:13","nodeType":"VariableDeclaration","scope":3555,"src":"15970:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3518,"name":"bool","nodeType":"ElementaryTypeName","src":"15970:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3521,"mutability":"mutable","name":"result","nameLocation":"15997:6:13","nodeType":"VariableDeclaration","scope":3555,"src":"15984:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3520,"name":"bytes","nodeType":"ElementaryTypeName","src":"15984:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15969:35:13"},"scope":4428,"src":"15850:953:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3587,"nodeType":"Block","src":"16958:176:13","statements":[{"body":{"id":3583,"nodeType":"Block","src":"17015:92:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3574,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3558,"src":"17033:9:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3576,"indexExpression":{"id":3575,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"17043:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17033:12:13","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17049:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17033:17:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3582,"nodeType":"IfStatement","src":"17029:68:13","trueBody":{"id":3581,"nodeType":"Block","src":"17052:45:13","statements":[{"expression":{"hexValue":"66616c7365","id":3579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17077:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":3562,"id":3580,"nodeType":"Return","src":"17070:12:13"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3567,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"16988:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3568,"name":"byteArray","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3558,"src":"16992:9:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17002:6:13","memberName":"length","nodeType":"MemberAccess","src":"16992:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16988:20:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3584,"initializationExpression":{"assignments":[3564],"declarations":[{"constant":false,"id":3564,"mutability":"mutable","name":"i","nameLocation":"16981:1:13","nodeType":"VariableDeclaration","scope":3584,"src":"16973:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3563,"name":"uint256","nodeType":"ElementaryTypeName","src":"16973:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3566,"initialValue":{"hexValue":"30","id":3565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16985:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16973:13:13"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17010:3:13","subExpression":{"id":3571,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3564,"src":"17012:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3573,"nodeType":"ExpressionStatement","src":"17010:3:13"},"nodeType":"ForStatement","src":"16968:139:13"},{"expression":{"hexValue":"74727565","id":3585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17123:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3562,"id":3586,"nodeType":"Return","src":"17116:11:13"}]},"documentation":{"id":3556,"nodeType":"StructuredDocumentation","src":"16809:72:13","text":" @dev Returns whether the provided byte array is zero."},"id":3588,"implemented":true,"kind":"function","modifiers":[],"name":"_zeroBytes","nameLocation":"16895:10:13","nodeType":"FunctionDefinition","parameters":{"id":3559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3558,"mutability":"mutable","name":"byteArray","nameLocation":"16919:9:13","nodeType":"VariableDeclaration","scope":3588,"src":"16906:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3557,"name":"bytes","nodeType":"ElementaryTypeName","src":"16906:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"16905:24:13"},"returnParameters":{"id":3562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3588,"src":"16952:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3560,"name":"bool","nodeType":"ElementaryTypeName","src":"16952:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16951:6:13"},"scope":4428,"src":"16886:248:13","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3806,"nodeType":"Block","src":"17494:5124:13","statements":[{"id":3805,"nodeType":"UncheckedBlock","src":"17504:5108:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3596,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"17598:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":3597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17603:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17598:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3602,"nodeType":"IfStatement","src":"17594:53:13","trueBody":{"id":3601,"nodeType":"Block","src":"17606:41:13","statements":[{"expression":{"id":3599,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"17631:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3595,"id":3600,"nodeType":"Return","src":"17624:8:13"}]}},{"assignments":[3604],"declarations":[{"constant":false,"id":3604,"mutability":"mutable","name":"aa","nameLocation":"18582:2:13","nodeType":"VariableDeclaration","scope":3805,"src":"18574:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3603,"name":"uint256","nodeType":"ElementaryTypeName","src":"18574:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3606,"initialValue":{"id":3605,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"18587:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18574:14:13"},{"assignments":[3608],"declarations":[{"constant":false,"id":3608,"mutability":"mutable","name":"xn","nameLocation":"18610:2:13","nodeType":"VariableDeclaration","scope":3805,"src":"18602:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3607,"name":"uint256","nodeType":"ElementaryTypeName","src":"18602:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3610,"initialValue":{"hexValue":"31","id":3609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18615:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"18602:14:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3611,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18635:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18642:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18647:3:13","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18642:8:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":3615,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18641:10:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"src":"18635:16:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3626,"nodeType":"IfStatement","src":"18631:92:13","trueBody":{"id":3625,"nodeType":"Block","src":"18653:70:13","statements":[{"expression":{"id":3619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3617,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18671:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":3618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18678:3:13","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"18671:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3620,"nodeType":"ExpressionStatement","src":"18671:10:13"},{"expression":{"id":3623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3621,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"18699:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3634","id":3622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18706:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18699:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3624,"nodeType":"ExpressionStatement","src":"18699:9:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3627,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18740:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":3630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18747:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18752:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18747:7:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":3631,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18746:9:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"18740:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3642,"nodeType":"IfStatement","src":"18736:90:13","trueBody":{"id":3641,"nodeType":"Block","src":"18757:69:13","statements":[{"expression":{"id":3635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3633,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18775:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":3634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18782:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"18775:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3636,"nodeType":"ExpressionStatement","src":"18775:9:13"},{"expression":{"id":3639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3637,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"18802:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3332","id":3638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18809:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18802:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3640,"nodeType":"ExpressionStatement","src":"18802:9:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3643,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18843:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":3646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18850:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18855:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18850:7:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":3647,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18849:9:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"18843:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3658,"nodeType":"IfStatement","src":"18839:90:13","trueBody":{"id":3657,"nodeType":"Block","src":"18860:69:13","statements":[{"expression":{"id":3651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3649,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18878:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":3650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18885:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18878:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3652,"nodeType":"ExpressionStatement","src":"18878:9:13"},{"expression":{"id":3655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3653,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"18905:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"3136","id":3654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18912:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18905:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3656,"nodeType":"ExpressionStatement","src":"18905:9:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3659,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18946:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18953:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18958:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18953:7:13","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3663,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18952:9:13","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"src":"18946:15:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3674,"nodeType":"IfStatement","src":"18942:89:13","trueBody":{"id":3673,"nodeType":"Block","src":"18963:68:13","statements":[{"expression":{"id":3667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3665,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"18981:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":3666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18988:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"18981:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3668,"nodeType":"ExpressionStatement","src":"18981:9:13"},{"expression":{"id":3671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3669,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"19008:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"38","id":3670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19015:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19008:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3672,"nodeType":"ExpressionStatement","src":"19008:8:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3675,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"19048:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":3678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19055:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":3677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19060:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19055:6:13","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":3679,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19054:8:13","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"src":"19048:14:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3690,"nodeType":"IfStatement","src":"19044:87:13","trueBody":{"id":3689,"nodeType":"Block","src":"19064:67:13","statements":[{"expression":{"id":3683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3681,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"19082:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":3682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19089:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"19082:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3684,"nodeType":"ExpressionStatement","src":"19082:8:13"},{"expression":{"id":3687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3685,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"19108:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"34","id":3686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19115:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19108:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3688,"nodeType":"ExpressionStatement","src":"19108:8:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3691,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"19148:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":3694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19155:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":3693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19160:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19155:6:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":3695,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19154:8:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"src":"19148:14:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3706,"nodeType":"IfStatement","src":"19144:87:13","trueBody":{"id":3705,"nodeType":"Block","src":"19164:67:13","statements":[{"expression":{"id":3699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3697,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"19182:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":3698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19189:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"19182:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3700,"nodeType":"ExpressionStatement","src":"19182:8:13"},{"expression":{"id":3703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3701,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"19208:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"32","id":3702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19215:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19208:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3704,"nodeType":"ExpressionStatement","src":"19208:8:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3707,"name":"aa","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3604,"src":"19248:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":3710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19255:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":3709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19260:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19255:6:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":3711,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19254:8:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"src":"19248:14:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3718,"nodeType":"IfStatement","src":"19244:61:13","trueBody":{"id":3717,"nodeType":"Block","src":"19264:41:13","statements":[{"expression":{"id":3715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3713,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"19282:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"<<=","rightHandSide":{"hexValue":"31","id":3714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19289:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19282:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3716,"nodeType":"ExpressionStatement","src":"19282:8:13"}]}},{"expression":{"id":3726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3719,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"19725:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":3720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19731:1:13","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3721,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"19735:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19731:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3723,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19730:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19742:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19730:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19725:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3727,"nodeType":"ExpressionStatement","src":"19725:18:13"},{"expression":{"id":3737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3728,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21630:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3729,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21636:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3730,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"21641:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3731,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21645:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21641:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21636:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3734,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21635:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21652:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21635:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21630:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3738,"nodeType":"ExpressionStatement","src":"21630:23:13"},{"expression":{"id":3748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3739,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21739:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3740,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21745:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3741,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"21750:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3742,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21754:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21750:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21745:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3745,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21744:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21761:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21744:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21739:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3749,"nodeType":"ExpressionStatement","src":"21739:23:13"},{"expression":{"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3750,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21850:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3751,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21856:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3752,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"21861:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3753,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21865:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21861:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21856:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3756,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21855:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21872:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21855:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21850:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3760,"nodeType":"ExpressionStatement","src":"21850:23:13"},{"expression":{"id":3770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3761,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21959:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3762,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21965:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3763,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"21970:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3764,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"21974:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21970:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21965:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21964:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21981:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"21964:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21959:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3771,"nodeType":"ExpressionStatement","src":"21959:23:13"},{"expression":{"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3772,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22069:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3773,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22075:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3774,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"22080:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3775,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22084:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22080:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22075:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3778,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22074:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22091:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22074:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22069:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3782,"nodeType":"ExpressionStatement","src":"22069:23:13"},{"expression":{"id":3792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3783,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22179:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3784,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22185:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3785,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"22190:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3786,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22194:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22190:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22185:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3789,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22184:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":3790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22201:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22184:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22179:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3793,"nodeType":"ExpressionStatement","src":"22179:23:13"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3794,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22568:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3797,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22589:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3798,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3591,"src":"22594:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":3799,"name":"xn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3608,"src":"22598:2:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22594:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22589:11:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3795,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"22573:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22582:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"22573:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22573:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22568:33:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3595,"id":3804,"nodeType":"Return","src":"22561:40:13"}]}]},"documentation":{"id":3589,"nodeType":"StructuredDocumentation","src":"17140:292:13","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations."},"id":3807,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"17446:4:13","nodeType":"FunctionDefinition","parameters":{"id":3592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3591,"mutability":"mutable","name":"a","nameLocation":"17459:1:13","nodeType":"VariableDeclaration","scope":3807,"src":"17451:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3590,"name":"uint256","nodeType":"ElementaryTypeName","src":"17451:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17450:11:13"},"returnParameters":{"id":3595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3807,"src":"17485:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3593,"name":"uint256","nodeType":"ElementaryTypeName","src":"17485:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17484:9:13"},"scope":4428,"src":"17437:5181:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3840,"nodeType":"Block","src":"22791:171:13","statements":[{"id":3839,"nodeType":"UncheckedBlock","src":"22801:155:13","statements":[{"assignments":[3819],"declarations":[{"constant":false,"id":3819,"mutability":"mutable","name":"result","nameLocation":"22833:6:13","nodeType":"VariableDeclaration","scope":3839,"src":"22825:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3818,"name":"uint256","nodeType":"ElementaryTypeName","src":"22825:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3823,"initialValue":{"arguments":[{"id":3821,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3810,"src":"22847:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3820,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[3807,3841],"referencedDeclaration":3807,"src":"22842:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":3822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22842:7:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22825:24:13"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3824,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"22870:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3828,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"22912:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}],"id":3827,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"22895:16:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2855_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22895:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3830,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"22925:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3831,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"22934:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22925:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3833,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3810,"src":"22943:1:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22925:19:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22895:49:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3825,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"22879:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22888:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"22879:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22879:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22870:75:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3817,"id":3838,"nodeType":"Return","src":"22863:82:13"}]}]},"documentation":{"id":3808,"nodeType":"StructuredDocumentation","src":"22624:86:13","text":" @dev Calculates sqrt(a), following the selected rounding direction."},"id":3841,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"22724:4:13","nodeType":"FunctionDefinition","parameters":{"id":3814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3810,"mutability":"mutable","name":"a","nameLocation":"22737:1:13","nodeType":"VariableDeclaration","scope":3841,"src":"22729:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3809,"name":"uint256","nodeType":"ElementaryTypeName","src":"22729:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3813,"mutability":"mutable","name":"rounding","nameLocation":"22749:8:13","nodeType":"VariableDeclaration","scope":3841,"src":"22740:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"},"typeName":{"id":3812,"nodeType":"UserDefinedTypeName","pathNode":{"id":3811,"name":"Rounding","nameLocations":["22740:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":2855,"src":"22740:8:13"},"referencedDeclaration":2855,"src":"22740:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"22728:30:13"},"returnParameters":{"id":3817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3841,"src":"22782:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3815,"name":"uint256","nodeType":"ElementaryTypeName","src":"22782:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22781:9:13"},"scope":4428,"src":"22715:247:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4036,"nodeType":"Block","src":"23153:981:13","statements":[{"assignments":[3850],"declarations":[{"constant":false,"id":3850,"mutability":"mutable","name":"result","nameLocation":"23171:6:13","nodeType":"VariableDeclaration","scope":4036,"src":"23163:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3849,"name":"uint256","nodeType":"ElementaryTypeName","src":"23163:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3852,"initialValue":{"hexValue":"30","id":3851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23180:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23163:18:13"},{"assignments":[3854],"declarations":[{"constant":false,"id":3854,"mutability":"mutable","name":"exp","nameLocation":"23199:3:13","nodeType":"VariableDeclaration","scope":4036,"src":"23191:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3853,"name":"uint256","nodeType":"ElementaryTypeName","src":"23191:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3855,"nodeType":"VariableDeclarationStatement","src":"23191:11:13"},{"id":4033,"nodeType":"UncheckedBlock","src":"23212:893:13","statements":[{"expression":{"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3856,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23236:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313238","id":3857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23242:3:13","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3860,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23264:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":3866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23273:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23278:3:13","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"23273:8:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":3864,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23272:10:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23285:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23272:14:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"23264:22:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3858,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"23248:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23257:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"23248:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23248:39:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23242:45:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23236:51:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3871,"nodeType":"ExpressionStatement","src":"23236:51:13"},{"expression":{"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3872,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23301:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3873,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23311:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23301:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3875,"nodeType":"ExpressionStatement","src":"23301:13:13"},{"expression":{"id":3878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3876,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"23328:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3877,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23338:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23328:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3879,"nodeType":"ExpressionStatement","src":"23328:13:13"},{"expression":{"id":3894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3880,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23356:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3634","id":3881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23362:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3884,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23383:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":3890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":3887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23392:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23397:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"23392:7:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":3888,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23391:9:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23403:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23391:13:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"23383:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3882,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"23367:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23376:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"23367:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23367:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23362:43:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23356:49:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3895,"nodeType":"ExpressionStatement","src":"23356:49:13"},{"expression":{"id":3898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3896,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23419:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3897,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23429:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23419:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3899,"nodeType":"ExpressionStatement","src":"23419:13:13"},{"expression":{"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3900,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"23446:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3901,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23456:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23446:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3903,"nodeType":"ExpressionStatement","src":"23446:13:13"},{"expression":{"id":3918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3904,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23474:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":3905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23480:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3908,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23501:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":3914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":3911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23510:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":3910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23515:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"23510:7:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":3912,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23509:9:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23521:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23509:13:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"23501:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3906,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"23485:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23494:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"23485:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23485:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23480:43:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23474:49:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3919,"nodeType":"ExpressionStatement","src":"23474:49:13"},{"expression":{"id":3922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3920,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23537:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3921,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23547:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23537:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3923,"nodeType":"ExpressionStatement","src":"23537:13:13"},{"expression":{"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3924,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"23564:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3925,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23574:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23564:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3927,"nodeType":"ExpressionStatement","src":"23564:13:13"},{"expression":{"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3928,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23592:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3136","id":3929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23598:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3932,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23619:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":3938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":3935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23628:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":3934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23633:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"23628:7:13","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":3936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23627:9:13","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23639:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23627:13:13","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"23619:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3930,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"23603:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23612:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"23603:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23603:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23598:43:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23592:49:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3943,"nodeType":"ExpressionStatement","src":"23592:49:13"},{"expression":{"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3944,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23655:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3945,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23665:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23655:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3947,"nodeType":"ExpressionStatement","src":"23655:13:13"},{"expression":{"id":3950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3948,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"23682:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3949,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23692:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23682:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3951,"nodeType":"ExpressionStatement","src":"23682:13:13"},{"expression":{"id":3966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3952,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23710:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":3953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23716:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3956,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23736:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":3962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":3959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23745:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":3958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23750:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"23745:6:13","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":3960,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23744:8:13","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23755:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23744:12:13","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"23736:20:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3954,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"23720:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23729:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"23720:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23720:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23716:41:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23710:47:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3967,"nodeType":"ExpressionStatement","src":"23710:47:13"},{"expression":{"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3968,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23771:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3969,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23781:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23771:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3971,"nodeType":"ExpressionStatement","src":"23771:13:13"},{"expression":{"id":3974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3972,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"23798:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3973,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23808:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23798:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3975,"nodeType":"ExpressionStatement","src":"23798:13:13"},{"expression":{"id":3990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3976,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23826:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":3977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23832:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3980,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23852:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"id":3986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":3983,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23861:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":3982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23866:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"23861:6:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}}],"id":3984,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23860:8:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23871:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23860:12:13","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"}},"src":"23852:20:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3978,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"23836:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":3979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23845:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"23836:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":3988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23836:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23832:41:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23826:47:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3991,"nodeType":"ExpressionStatement","src":"23826:47:13"},{"expression":{"id":3994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3992,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23887:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":3993,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23897:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23887:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3995,"nodeType":"ExpressionStatement","src":"23887:13:13"},{"expression":{"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3996,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"23914:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":3997,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23924:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23914:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3999,"nodeType":"ExpressionStatement","src":"23914:13:13"},{"expression":{"id":4014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4000,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"23942:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":4001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23948:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"23968:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"id":4010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":4007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23977:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":4006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23982:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"23977:6:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}}],"id":4008,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"23976:8:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23987:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23976:12:13","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}},"src":"23968:20:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4002,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"23952:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23961:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"23952:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23952:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23948:41:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23942:47:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4015,"nodeType":"ExpressionStatement","src":"23942:47:13"},{"expression":{"id":4018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4016,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"24003:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"id":4017,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"24013:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24003:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4019,"nodeType":"ExpressionStatement","src":"24003:13:13"},{"expression":{"id":4022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4020,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"24030:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":4021,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"24040:3:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24030:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4023,"nodeType":"ExpressionStatement","src":"24030:13:13"},{"expression":{"id":4031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4024,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"24058:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4027,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"24084:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":4028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24092:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"24084:9:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4025,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"24068:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24077:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"24068:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24068:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24058:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4032,"nodeType":"ExpressionStatement","src":"24058:36:13"}]},{"expression":{"id":4034,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"24121:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3848,"id":4035,"nodeType":"Return","src":"24114:13:13"}]},"documentation":{"id":3842,"nodeType":"StructuredDocumentation","src":"22968:119:13","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":4037,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"23101:4:13","nodeType":"FunctionDefinition","parameters":{"id":3845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3844,"mutability":"mutable","name":"value","nameLocation":"23114:5:13","nodeType":"VariableDeclaration","scope":4037,"src":"23106:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3843,"name":"uint256","nodeType":"ElementaryTypeName","src":"23106:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23105:15:13"},"returnParameters":{"id":3848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4037,"src":"23144:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3846,"name":"uint256","nodeType":"ElementaryTypeName","src":"23144:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23143:9:13"},"scope":4428,"src":"23092:1042:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4070,"nodeType":"Block","src":"24367:175:13","statements":[{"id":4069,"nodeType":"UncheckedBlock","src":"24377:159:13","statements":[{"assignments":[4049],"declarations":[{"constant":false,"id":4049,"mutability":"mutable","name":"result","nameLocation":"24409:6:13","nodeType":"VariableDeclaration","scope":4069,"src":"24401:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4048,"name":"uint256","nodeType":"ElementaryTypeName","src":"24401:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4053,"initialValue":{"arguments":[{"id":4051,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4040,"src":"24423:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4050,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[4037,4071],"referencedDeclaration":4037,"src":"24418:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24418:11:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24401:28:13"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4054,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4049,"src":"24450:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4058,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4043,"src":"24492:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}],"id":4057,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"24475:16:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2855_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24475:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24505:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":4061,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4049,"src":"24510:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24505:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4063,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4040,"src":"24519:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24505:19:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24475:49:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4055,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"24459:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24468:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"24459:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24459:66:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24450:75:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4047,"id":4068,"nodeType":"Return","src":"24443:82:13"}]}]},"documentation":{"id":4038,"nodeType":"StructuredDocumentation","src":"24140:142:13","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4071,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"24296:4:13","nodeType":"FunctionDefinition","parameters":{"id":4044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4040,"mutability":"mutable","name":"value","nameLocation":"24309:5:13","nodeType":"VariableDeclaration","scope":4071,"src":"24301:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4039,"name":"uint256","nodeType":"ElementaryTypeName","src":"24301:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4043,"mutability":"mutable","name":"rounding","nameLocation":"24325:8:13","nodeType":"VariableDeclaration","scope":4071,"src":"24316:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"},"typeName":{"id":4042,"nodeType":"UserDefinedTypeName","pathNode":{"id":4041,"name":"Rounding","nameLocations":["24316:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":2855,"src":"24316:8:13"},"referencedDeclaration":2855,"src":"24316:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"24300:34:13"},"returnParameters":{"id":4047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4071,"src":"24358:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4045,"name":"uint256","nodeType":"ElementaryTypeName","src":"24358:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24357:9:13"},"scope":4428,"src":"24287:255:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4199,"nodeType":"Block","src":"24735:854:13","statements":[{"assignments":[4080],"declarations":[{"constant":false,"id":4080,"mutability":"mutable","name":"result","nameLocation":"24753:6:13","nodeType":"VariableDeclaration","scope":4199,"src":"24745:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4079,"name":"uint256","nodeType":"ElementaryTypeName","src":"24745:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4082,"initialValue":{"hexValue":"30","id":4081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24762:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24745:18:13"},{"id":4196,"nodeType":"UncheckedBlock","src":"24773:787:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4083,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"24801:5:13","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":4086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24810:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24816:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24810:8:13","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"24801:17:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4099,"nodeType":"IfStatement","src":"24797:103:13","trueBody":{"id":4098,"nodeType":"Block","src":"24820:80:13","statements":[{"expression":{"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4088,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"24838:5:13","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":4091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24847:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":4090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24853:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24847:8:13","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"24838:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4093,"nodeType":"ExpressionStatement","src":"24838:17:13"},{"expression":{"id":4096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4094,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"24873:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":4095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24883:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"24873:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4097,"nodeType":"ExpressionStatement","src":"24873:12:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4100,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"24917:5:13","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":4103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24926:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24932:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24926:8:13","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"24917:17:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4116,"nodeType":"IfStatement","src":"24913:103:13","trueBody":{"id":4115,"nodeType":"Block","src":"24936:80:13","statements":[{"expression":{"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4105,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"24954:5:13","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":4108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24963:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":4107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24969:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24963:8:13","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"24954:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4110,"nodeType":"ExpressionStatement","src":"24954:17:13"},{"expression":{"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4111,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"24989:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":4112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24999:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"24989:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4114,"nodeType":"ExpressionStatement","src":"24989:12:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4117,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25033:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25042:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25048:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25042:8:13","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25033:17:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4133,"nodeType":"IfStatement","src":"25029:103:13","trueBody":{"id":4132,"nodeType":"Block","src":"25052:80:13","statements":[{"expression":{"id":4126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4122,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25070:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":4125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25079:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":4124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25085:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25079:8:13","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"25070:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4127,"nodeType":"ExpressionStatement","src":"25070:17:13"},{"expression":{"id":4130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4128,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"25105:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":4129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25115:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"25105:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4131,"nodeType":"ExpressionStatement","src":"25105:12:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4134,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25149:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25158:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25164:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25158:7:13","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25149:16:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4150,"nodeType":"IfStatement","src":"25145:100:13","trueBody":{"id":4149,"nodeType":"Block","src":"25167:78:13","statements":[{"expression":{"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4139,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25185:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":4142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25194:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":4141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25200:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25194:7:13","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"25185:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4144,"nodeType":"ExpressionStatement","src":"25185:16:13"},{"expression":{"id":4147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4145,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"25219:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":4146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25229:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"25219:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4148,"nodeType":"ExpressionStatement","src":"25219:11:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25262:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25271:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25277:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25271:7:13","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25262:16:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4167,"nodeType":"IfStatement","src":"25258:100:13","trueBody":{"id":4166,"nodeType":"Block","src":"25280:78:13","statements":[{"expression":{"id":4160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4156,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25298:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":4159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25307:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":4158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25313:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25307:7:13","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"25298:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4161,"nodeType":"ExpressionStatement","src":"25298:16:13"},{"expression":{"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4162,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"25332:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":4163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25342:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"25332:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4165,"nodeType":"ExpressionStatement","src":"25332:11:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4168,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25375:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25384:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25390:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25384:7:13","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"25375:16:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4184,"nodeType":"IfStatement","src":"25371:100:13","trueBody":{"id":4183,"nodeType":"Block","src":"25393:78:13","statements":[{"expression":{"id":4177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4173,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25411:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":4176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25420:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":4175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25426:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25420:7:13","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"25411:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4178,"nodeType":"ExpressionStatement","src":"25411:16:13"},{"expression":{"id":4181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4179,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"25445:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":4180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25455:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"25445:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4182,"nodeType":"ExpressionStatement","src":"25445:11:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4185,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4074,"src":"25488:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":4188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25497:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":4187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25503:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25497:7:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"25488:16:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4195,"nodeType":"IfStatement","src":"25484:66:13","trueBody":{"id":4194,"nodeType":"Block","src":"25506:44:13","statements":[{"expression":{"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4190,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"25524:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":4191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25534:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25524:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4193,"nodeType":"ExpressionStatement","src":"25524:11:13"}]}}]},{"expression":{"id":4197,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4080,"src":"25576:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4078,"id":4198,"nodeType":"Return","src":"25569:13:13"}]},"documentation":{"id":4072,"nodeType":"StructuredDocumentation","src":"24548:120:13","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":4200,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"24682:5:13","nodeType":"FunctionDefinition","parameters":{"id":4075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4074,"mutability":"mutable","name":"value","nameLocation":"24696:5:13","nodeType":"VariableDeclaration","scope":4200,"src":"24688:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4073,"name":"uint256","nodeType":"ElementaryTypeName","src":"24688:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24687:15:13"},"returnParameters":{"id":4078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4200,"src":"24726:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4076,"name":"uint256","nodeType":"ElementaryTypeName","src":"24726:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24725:9:13"},"scope":4428,"src":"24673:916:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4233,"nodeType":"Block","src":"25824:177:13","statements":[{"id":4232,"nodeType":"UncheckedBlock","src":"25834:161:13","statements":[{"assignments":[4212],"declarations":[{"constant":false,"id":4212,"mutability":"mutable","name":"result","nameLocation":"25866:6:13","nodeType":"VariableDeclaration","scope":4232,"src":"25858:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4211,"name":"uint256","nodeType":"ElementaryTypeName","src":"25858:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4216,"initialValue":{"arguments":[{"id":4214,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4203,"src":"25881:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4213,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[4200,4234],"referencedDeclaration":4200,"src":"25875:5:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25875:12:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25858:29:13"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4217,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4212,"src":"25908:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4221,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4206,"src":"25950:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}],"id":4220,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"25933:16:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2855_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25933:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25963:2:13","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":4224,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4212,"src":"25969:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25963:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4203,"src":"25978:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25963:20:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25933:50:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4218,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"25917:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25926:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"25917:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25917:67:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25908:76:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4210,"id":4231,"nodeType":"Return","src":"25901:83:13"}]}]},"documentation":{"id":4201,"nodeType":"StructuredDocumentation","src":"25595:143:13","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4234,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"25752:5:13","nodeType":"FunctionDefinition","parameters":{"id":4207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4203,"mutability":"mutable","name":"value","nameLocation":"25766:5:13","nodeType":"VariableDeclaration","scope":4234,"src":"25758:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4202,"name":"uint256","nodeType":"ElementaryTypeName","src":"25758:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4206,"mutability":"mutable","name":"rounding","nameLocation":"25782:8:13","nodeType":"VariableDeclaration","scope":4234,"src":"25773:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"},"typeName":{"id":4205,"nodeType":"UserDefinedTypeName","pathNode":{"id":4204,"name":"Rounding","nameLocations":["25773:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":2855,"src":"25773:8:13"},"referencedDeclaration":2855,"src":"25773:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"25757:34:13"},"returnParameters":{"id":4210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4209,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4234,"src":"25815:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4208,"name":"uint256","nodeType":"ElementaryTypeName","src":"25815:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25814:9:13"},"scope":4428,"src":"25743:258:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4370,"nodeType":"Block","src":"26321:674:13","statements":[{"assignments":[4243],"declarations":[{"constant":false,"id":4243,"mutability":"mutable","name":"result","nameLocation":"26339:6:13","nodeType":"VariableDeclaration","scope":4370,"src":"26331:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4242,"name":"uint256","nodeType":"ElementaryTypeName","src":"26331:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4245,"initialValue":{"hexValue":"30","id":4244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26348:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26331:18:13"},{"assignments":[4247],"declarations":[{"constant":false,"id":4247,"mutability":"mutable","name":"isGt","nameLocation":"26367:4:13","nodeType":"VariableDeclaration","scope":4370,"src":"26359:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4246,"name":"uint256","nodeType":"ElementaryTypeName","src":"26359:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4248,"nodeType":"VariableDeclarationStatement","src":"26359:12:13"},{"id":4367,"nodeType":"UncheckedBlock","src":"26381:585:13","statements":[{"expression":{"id":4261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4249,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26405:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4252,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26428:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"},"id":4258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":4255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26437:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":4254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26442:3:13","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26437:8:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"id":4256,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26436:10:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26449:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26436:14:13","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211455_by_1","typeString":"int_const 3402...(31 digits omitted)...1455"}},"src":"26428:22:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4250,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"26412:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26421:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"26412:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26412:39:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26405:46:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4262,"nodeType":"ExpressionStatement","src":"26405:46:13"},{"expression":{"id":4267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4263,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26465:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4264,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26475:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"313238","id":4265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26482:3:13","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26475:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26465:20:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4268,"nodeType":"ExpressionStatement","src":"26465:20:13"},{"expression":{"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4269,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"26499:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4270,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26509:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":4271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26516:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26509:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26499:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4274,"nodeType":"ExpressionStatement","src":"26499:19:13"},{"expression":{"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4275,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26533:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4278,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26556:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"id":4284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":4281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26565:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":4280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26570:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"26565:7:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"id":4282,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26564:9:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26576:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26564:13:13","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"}},"src":"26556:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4276,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"26540:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26549:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"26540:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26540:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26533:45:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4288,"nodeType":"ExpressionStatement","src":"26533:45:13"},{"expression":{"id":4293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26592:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4290,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26602:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3634","id":4291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26609:2:13","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"26602:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26592:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4294,"nodeType":"ExpressionStatement","src":"26592:19:13"},{"expression":{"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4295,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"26625:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4296,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26635:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":4297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26642:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"26635:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26625:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4300,"nodeType":"ExpressionStatement","src":"26625:18:13"},{"expression":{"id":4313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4301,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26658:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4304,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26681:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"id":4310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":4307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26690:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":4306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26695:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"26690:7:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":4308,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26689:9:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26701:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26689:13:13","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"}},"src":"26681:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4302,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"26665:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26674:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"26665:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26665:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26658:45:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4314,"nodeType":"ExpressionStatement","src":"26658:45:13"},{"expression":{"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4315,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26717:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4316,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26727:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":4317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26734:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"26727:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26717:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4320,"nodeType":"ExpressionStatement","src":"26717:19:13"},{"expression":{"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4321,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"26750:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4322,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26760:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"34","id":4323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26767:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"26760:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26750:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4326,"nodeType":"ExpressionStatement","src":"26750:18:13"},{"expression":{"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4327,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26783:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26806:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"id":4336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":4333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26815:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":4332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26820:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26815:7:13","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}}],"id":4334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26814:9:13","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26826:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26814:13:13","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"}},"src":"26806:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4328,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"26790:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26799:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"26790:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26790:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26783:45:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4340,"nodeType":"ExpressionStatement","src":"26783:45:13"},{"expression":{"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4341,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26842:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4342,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26852:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3136","id":4343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26859:2:13","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"26852:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26842:19:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4346,"nodeType":"ExpressionStatement","src":"26842:19:13"},{"expression":{"id":4351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4347,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"26875:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4348,"name":"isGt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4247,"src":"26885:4:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":4349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26892:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"26885:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26875:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4352,"nodeType":"ExpressionStatement","src":"26875:18:13"},{"expression":{"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4353,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"26908:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4356,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"26934:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"id":4362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":4359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26943:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":4358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26948:1:13","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"26943:6:13","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}}],"id":4360,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"26942:8:13","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":4361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26953:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26942:12:13","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}},"src":"26934:20:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4354,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"26918:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26927:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"26918:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26918:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26908:47:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4366,"nodeType":"ExpressionStatement","src":"26908:47:13"}]},{"expression":{"id":4368,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"26982:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4241,"id":4369,"nodeType":"Return","src":"26975:13:13"}]},"documentation":{"id":4235,"nodeType":"StructuredDocumentation","src":"26007:246:13","text":" @dev Return the log in base 256 of a positive value rounded towards zero.\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":4371,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"26267:6:13","nodeType":"FunctionDefinition","parameters":{"id":4238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4237,"mutability":"mutable","name":"value","nameLocation":"26282:5:13","nodeType":"VariableDeclaration","scope":4371,"src":"26274:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4236,"name":"uint256","nodeType":"ElementaryTypeName","src":"26274:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26273:15:13"},"returnParameters":{"id":4241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4371,"src":"26312:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4239,"name":"uint256","nodeType":"ElementaryTypeName","src":"26312:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26311:9:13"},"scope":4428,"src":"26258:737:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4407,"nodeType":"Block","src":"27232:184:13","statements":[{"id":4406,"nodeType":"UncheckedBlock","src":"27242:168:13","statements":[{"assignments":[4383],"declarations":[{"constant":false,"id":4383,"mutability":"mutable","name":"result","nameLocation":"27274:6:13","nodeType":"VariableDeclaration","scope":4406,"src":"27266:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4382,"name":"uint256","nodeType":"ElementaryTypeName","src":"27266:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4387,"initialValue":{"arguments":[{"id":4385,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4374,"src":"27290:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4384,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[4371,4408],"referencedDeclaration":4371,"src":"27283:6:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27283:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27266:30:13"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4388,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4383,"src":"27317:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4392,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4377,"src":"27359:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}],"id":4391,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"27342:16:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$2855_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27342:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27372:1:13","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":4397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4395,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4383,"src":"27378:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":4396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27388:1:13","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"27378:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4398,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27377:13:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27372:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4400,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4374,"src":"27393:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27372:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27342:56:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4389,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"27326:8:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$6193_$","typeString":"type(library SafeCast)"}},"id":4390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27335:6:13","memberName":"toUint","nodeType":"MemberAccess","referencedDeclaration":6192,"src":"27326:15:13","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$_t_uint256_$","typeString":"function (bool) pure returns (uint256)"}},"id":4403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27326:73:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27317:82:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4381,"id":4405,"nodeType":"Return","src":"27310:89:13"}]}]},"documentation":{"id":4372,"nodeType":"StructuredDocumentation","src":"27001:144:13","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":4408,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"27159:6:13","nodeType":"FunctionDefinition","parameters":{"id":4378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4374,"mutability":"mutable","name":"value","nameLocation":"27174:5:13","nodeType":"VariableDeclaration","scope":4408,"src":"27166:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4373,"name":"uint256","nodeType":"ElementaryTypeName","src":"27166:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4377,"mutability":"mutable","name":"rounding","nameLocation":"27190:8:13","nodeType":"VariableDeclaration","scope":4408,"src":"27181:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"},"typeName":{"id":4376,"nodeType":"UserDefinedTypeName","pathNode":{"id":4375,"name":"Rounding","nameLocations":["27181:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":2855,"src":"27181:8:13"},"referencedDeclaration":2855,"src":"27181:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27165:34:13"},"returnParameters":{"id":4381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4408,"src":"27223:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4379,"name":"uint256","nodeType":"ElementaryTypeName","src":"27223:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27222:9:13"},"scope":4428,"src":"27150:266:13","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4426,"nodeType":"Block","src":"27614:48:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4419,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4412,"src":"27637:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}],"id":4418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27631:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":4417,"name":"uint8","nodeType":"ElementaryTypeName","src":"27631:5:13","typeDescriptions":{}}},"id":4420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27631:15:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":4421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27649:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"27631:19:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27654:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27631:24:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4416,"id":4425,"nodeType":"Return","src":"27624:31:13"}]},"documentation":{"id":4409,"nodeType":"StructuredDocumentation","src":"27422:113:13","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":4427,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"27549:16:13","nodeType":"FunctionDefinition","parameters":{"id":4413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4412,"mutability":"mutable","name":"rounding","nameLocation":"27575:8:13","nodeType":"VariableDeclaration","scope":4427,"src":"27566:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"},"typeName":{"id":4411,"nodeType":"UserDefinedTypeName","pathNode":{"id":4410,"name":"Rounding","nameLocations":["27566:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":2855,"src":"27566:8:13"},"referencedDeclaration":2855,"src":"27566:8:13","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$2855","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"27565:19:13"},"returnParameters":{"id":4416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4427,"src":"27608:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4414,"name":"bool","nodeType":"ElementaryTypeName","src":"27608:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27607:6:13"},"scope":4428,"src":"27540:122:13","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4429,"src":"281:27383:13","usedErrors":[],"usedEvents":[]}],"src":"103:27562:13"},"id":13},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SafeCast.sol","exportedSymbols":{"SafeCast":[6193]},"id":6194,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4430,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"192:24:14"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeCast","contractDependencies":[],"contractKind":"library","documentation":{"id":4431,"nodeType":"StructuredDocumentation","src":"218:550:14","text":" @dev Wrappers over Solidity's uintXX/intXX/bool 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."},"fullyImplemented":true,"id":6193,"linearizedBaseContracts":[6193],"name":"SafeCast","nameLocation":"777:8:14","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":4432,"nodeType":"StructuredDocumentation","src":"792:68:14","text":" @dev Value doesn't fit in an uint of `bits` size."},"errorSelector":"6dfcc650","id":4438,"name":"SafeCastOverflowedUintDowncast","nameLocation":"871:30:14","nodeType":"ErrorDefinition","parameters":{"id":4437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4434,"mutability":"mutable","name":"bits","nameLocation":"908:4:14","nodeType":"VariableDeclaration","scope":4438,"src":"902:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4433,"name":"uint8","nodeType":"ElementaryTypeName","src":"902:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4436,"mutability":"mutable","name":"value","nameLocation":"922:5:14","nodeType":"VariableDeclaration","scope":4438,"src":"914:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4435,"name":"uint256","nodeType":"ElementaryTypeName","src":"914:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"901:27:14"},"src":"865:64:14"},{"documentation":{"id":4439,"nodeType":"StructuredDocumentation","src":"935:75:14","text":" @dev An int value doesn't fit in an uint of `bits` size."},"errorSelector":"a8ce4432","id":4443,"name":"SafeCastOverflowedIntToUint","nameLocation":"1021:27:14","nodeType":"ErrorDefinition","parameters":{"id":4442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4441,"mutability":"mutable","name":"value","nameLocation":"1056:5:14","nodeType":"VariableDeclaration","scope":4443,"src":"1049:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4440,"name":"int256","nodeType":"ElementaryTypeName","src":"1049:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1048:14:14"},"src":"1015:48:14"},{"documentation":{"id":4444,"nodeType":"StructuredDocumentation","src":"1069:67:14","text":" @dev Value doesn't fit in an int of `bits` size."},"errorSelector":"327269a7","id":4450,"name":"SafeCastOverflowedIntDowncast","nameLocation":"1147:29:14","nodeType":"ErrorDefinition","parameters":{"id":4449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4446,"mutability":"mutable","name":"bits","nameLocation":"1183:4:14","nodeType":"VariableDeclaration","scope":4450,"src":"1177:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4445,"name":"uint8","nodeType":"ElementaryTypeName","src":"1177:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4448,"mutability":"mutable","name":"value","nameLocation":"1196:5:14","nodeType":"VariableDeclaration","scope":4450,"src":"1189:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4447,"name":"int256","nodeType":"ElementaryTypeName","src":"1189:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1176:26:14"},"src":"1141:62:14"},{"documentation":{"id":4451,"nodeType":"StructuredDocumentation","src":"1209:75:14","text":" @dev An uint value doesn't fit in an int of `bits` size."},"errorSelector":"24775e06","id":4455,"name":"SafeCastOverflowedUintToInt","nameLocation":"1295:27:14","nodeType":"ErrorDefinition","parameters":{"id":4454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4453,"mutability":"mutable","name":"value","nameLocation":"1331:5:14","nodeType":"VariableDeclaration","scope":4455,"src":"1323:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4452,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1322:15:14"},"src":"1289:49:14"},{"body":{"id":4482,"nodeType":"Block","src":"1695:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4463,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4458,"src":"1709:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1722:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":4465,"name":"uint248","nodeType":"ElementaryTypeName","src":"1722:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"}],"id":4464,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1717:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1717:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint248","typeString":"type(uint248)"}},"id":4468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1731:3:14","memberName":"max","nodeType":"MemberAccess","src":"1717:17:14","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"src":"1709:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4476,"nodeType":"IfStatement","src":"1705:105:14","trueBody":{"id":4475,"nodeType":"Block","src":"1736:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":4471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1788:3:14","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":4472,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4458,"src":"1793:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4470,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"1757:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4474,"nodeType":"RevertStatement","src":"1750:49:14"}]}},{"expression":{"arguments":[{"id":4479,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4458,"src":"1834:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1826:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint248_$","typeString":"type(uint248)"},"typeName":{"id":4477,"name":"uint248","nodeType":"ElementaryTypeName","src":"1826:7:14","typeDescriptions":{}}},"id":4480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"functionReturnParameters":4462,"id":4481,"nodeType":"Return","src":"1819:21:14"}]},"documentation":{"id":4456,"nodeType":"StructuredDocumentation","src":"1344:280:14","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"},"id":4483,"implemented":true,"kind":"function","modifiers":[],"name":"toUint248","nameLocation":"1638:9:14","nodeType":"FunctionDefinition","parameters":{"id":4459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4458,"mutability":"mutable","name":"value","nameLocation":"1656:5:14","nodeType":"VariableDeclaration","scope":4483,"src":"1648:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4457,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1647:15:14"},"returnParameters":{"id":4462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4483,"src":"1686:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"},"typeName":{"id":4460,"name":"uint248","nodeType":"ElementaryTypeName","src":"1686:7:14","typeDescriptions":{"typeIdentifier":"t_uint248","typeString":"uint248"}},"visibility":"internal"}],"src":"1685:9:14"},"scope":6193,"src":"1629:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4510,"nodeType":"Block","src":"2204:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4491,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"2218:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2231:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":4493,"name":"uint240","nodeType":"ElementaryTypeName","src":"2231:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"}],"id":4492,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2226:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint240","typeString":"type(uint240)"}},"id":4496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2240:3:14","memberName":"max","nodeType":"MemberAccess","src":"2226:17:14","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"src":"2218:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4504,"nodeType":"IfStatement","src":"2214:105:14","trueBody":{"id":4503,"nodeType":"Block","src":"2245:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":4499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:3:14","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":4500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"2302:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4498,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"2266:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4502,"nodeType":"RevertStatement","src":"2259:49:14"}]}},{"expression":{"arguments":[{"id":4507,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"2343:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2335:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint240_$","typeString":"type(uint240)"},"typeName":{"id":4505,"name":"uint240","nodeType":"ElementaryTypeName","src":"2335:7:14","typeDescriptions":{}}},"id":4508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2335:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"functionReturnParameters":4490,"id":4509,"nodeType":"Return","src":"2328:21:14"}]},"documentation":{"id":4484,"nodeType":"StructuredDocumentation","src":"1853:280:14","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"},"id":4511,"implemented":true,"kind":"function","modifiers":[],"name":"toUint240","nameLocation":"2147:9:14","nodeType":"FunctionDefinition","parameters":{"id":4487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4486,"mutability":"mutable","name":"value","nameLocation":"2165:5:14","nodeType":"VariableDeclaration","scope":4511,"src":"2157:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4485,"name":"uint256","nodeType":"ElementaryTypeName","src":"2157:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2156:15:14"},"returnParameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4511,"src":"2195:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":4488,"name":"uint240","nodeType":"ElementaryTypeName","src":"2195:7:14","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"}],"src":"2194:9:14"},"scope":6193,"src":"2138:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4538,"nodeType":"Block","src":"2713:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4519,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4514,"src":"2727:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2740:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":4521,"name":"uint232","nodeType":"ElementaryTypeName","src":"2740:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"}],"id":4520,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2735:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2735:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint232","typeString":"type(uint232)"}},"id":4524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2749:3:14","memberName":"max","nodeType":"MemberAccess","src":"2735:17:14","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"src":"2727:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4532,"nodeType":"IfStatement","src":"2723:105:14","trueBody":{"id":4531,"nodeType":"Block","src":"2754:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":4527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:3:14","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":4528,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4514,"src":"2811:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4526,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"2775:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4530,"nodeType":"RevertStatement","src":"2768:49:14"}]}},{"expression":{"arguments":[{"id":4535,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4514,"src":"2852:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint232_$","typeString":"type(uint232)"},"typeName":{"id":4533,"name":"uint232","nodeType":"ElementaryTypeName","src":"2844:7:14","typeDescriptions":{}}},"id":4536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"functionReturnParameters":4518,"id":4537,"nodeType":"Return","src":"2837:21:14"}]},"documentation":{"id":4512,"nodeType":"StructuredDocumentation","src":"2362:280:14","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"},"id":4539,"implemented":true,"kind":"function","modifiers":[],"name":"toUint232","nameLocation":"2656:9:14","nodeType":"FunctionDefinition","parameters":{"id":4515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4514,"mutability":"mutable","name":"value","nameLocation":"2674:5:14","nodeType":"VariableDeclaration","scope":4539,"src":"2666:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4513,"name":"uint256","nodeType":"ElementaryTypeName","src":"2666:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2665:15:14"},"returnParameters":{"id":4518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4539,"src":"2704:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"},"typeName":{"id":4516,"name":"uint232","nodeType":"ElementaryTypeName","src":"2704:7:14","typeDescriptions":{"typeIdentifier":"t_uint232","typeString":"uint232"}},"visibility":"internal"}],"src":"2703:9:14"},"scope":6193,"src":"2647:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4566,"nodeType":"Block","src":"3222:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4547,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"3236:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3249:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":4549,"name":"uint224","nodeType":"ElementaryTypeName","src":"3249:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"}],"id":4548,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3244:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint224","typeString":"type(uint224)"}},"id":4552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3258:3:14","memberName":"max","nodeType":"MemberAccess","src":"3244:17:14","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"src":"3236:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4560,"nodeType":"IfStatement","src":"3232:105:14","trueBody":{"id":4559,"nodeType":"Block","src":"3263:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":4555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3315:3:14","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":4556,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"3320:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4554,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"3284:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3284:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4558,"nodeType":"RevertStatement","src":"3277:49:14"}]}},{"expression":{"arguments":[{"id":4563,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4542,"src":"3361:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3353:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint224_$","typeString":"type(uint224)"},"typeName":{"id":4561,"name":"uint224","nodeType":"ElementaryTypeName","src":"3353:7:14","typeDescriptions":{}}},"id":4564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3353:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"functionReturnParameters":4546,"id":4565,"nodeType":"Return","src":"3346:21:14"}]},"documentation":{"id":4540,"nodeType":"StructuredDocumentation","src":"2871:280:14","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"},"id":4567,"implemented":true,"kind":"function","modifiers":[],"name":"toUint224","nameLocation":"3165:9:14","nodeType":"FunctionDefinition","parameters":{"id":4543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4542,"mutability":"mutable","name":"value","nameLocation":"3183:5:14","nodeType":"VariableDeclaration","scope":4567,"src":"3175:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4541,"name":"uint256","nodeType":"ElementaryTypeName","src":"3175:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:15:14"},"returnParameters":{"id":4546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4545,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4567,"src":"3213:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":4544,"name":"uint224","nodeType":"ElementaryTypeName","src":"3213:7:14","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"3212:9:14"},"scope":6193,"src":"3156:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4594,"nodeType":"Block","src":"3731:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4575,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4570,"src":"3745:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3758:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":4577,"name":"uint216","nodeType":"ElementaryTypeName","src":"3758:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"}],"id":4576,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3753:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3753:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint216","typeString":"type(uint216)"}},"id":4580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3767:3:14","memberName":"max","nodeType":"MemberAccess","src":"3753:17:14","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"src":"3745:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4588,"nodeType":"IfStatement","src":"3741:105:14","trueBody":{"id":4587,"nodeType":"Block","src":"3772:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":4583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3824:3:14","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":4584,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4570,"src":"3829:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4582,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"3793:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3793:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4586,"nodeType":"RevertStatement","src":"3786:49:14"}]}},{"expression":{"arguments":[{"id":4591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4570,"src":"3870:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3862:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":{"id":4589,"name":"uint216","nodeType":"ElementaryTypeName","src":"3862:7:14","typeDescriptions":{}}},"id":4592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":4574,"id":4593,"nodeType":"Return","src":"3855:21:14"}]},"documentation":{"id":4568,"nodeType":"StructuredDocumentation","src":"3380:280:14","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"},"id":4595,"implemented":true,"kind":"function","modifiers":[],"name":"toUint216","nameLocation":"3674:9:14","nodeType":"FunctionDefinition","parameters":{"id":4571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4570,"mutability":"mutable","name":"value","nameLocation":"3692:5:14","nodeType":"VariableDeclaration","scope":4595,"src":"3684:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4569,"name":"uint256","nodeType":"ElementaryTypeName","src":"3684:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3683:15:14"},"returnParameters":{"id":4574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4595,"src":"3722:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":4572,"name":"uint216","nodeType":"ElementaryTypeName","src":"3722:7:14","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"visibility":"internal"}],"src":"3721:9:14"},"scope":6193,"src":"3665:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4622,"nodeType":"Block","src":"4240:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4603,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4598,"src":"4254:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4267:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":4605,"name":"uint208","nodeType":"ElementaryTypeName","src":"4267:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"}],"id":4604,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4262:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4262:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint208","typeString":"type(uint208)"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4276:3:14","memberName":"max","nodeType":"MemberAccess","src":"4262:17:14","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"src":"4254:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4616,"nodeType":"IfStatement","src":"4250:105:14","trueBody":{"id":4615,"nodeType":"Block","src":"4281:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":4611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:3:14","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":4612,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4598,"src":"4338:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4610,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"4302:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4614,"nodeType":"RevertStatement","src":"4295:49:14"}]}},{"expression":{"arguments":[{"id":4619,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4598,"src":"4379:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4371:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint208_$","typeString":"type(uint208)"},"typeName":{"id":4617,"name":"uint208","nodeType":"ElementaryTypeName","src":"4371:7:14","typeDescriptions":{}}},"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4371:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"functionReturnParameters":4602,"id":4621,"nodeType":"Return","src":"4364:21:14"}]},"documentation":{"id":4596,"nodeType":"StructuredDocumentation","src":"3889:280:14","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"},"id":4623,"implemented":true,"kind":"function","modifiers":[],"name":"toUint208","nameLocation":"4183:9:14","nodeType":"FunctionDefinition","parameters":{"id":4599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4598,"mutability":"mutable","name":"value","nameLocation":"4201:5:14","nodeType":"VariableDeclaration","scope":4623,"src":"4193:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4597,"name":"uint256","nodeType":"ElementaryTypeName","src":"4193:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4192:15:14"},"returnParameters":{"id":4602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4623,"src":"4231:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"},"typeName":{"id":4600,"name":"uint208","nodeType":"ElementaryTypeName","src":"4231:7:14","typeDescriptions":{"typeIdentifier":"t_uint208","typeString":"uint208"}},"visibility":"internal"}],"src":"4230:9:14"},"scope":6193,"src":"4174:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4650,"nodeType":"Block","src":"4749:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4626,"src":"4763:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4776:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":4633,"name":"uint200","nodeType":"ElementaryTypeName","src":"4776:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"}],"id":4632,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4771:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4771:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint200","typeString":"type(uint200)"}},"id":4636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4785:3:14","memberName":"max","nodeType":"MemberAccess","src":"4771:17:14","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"src":"4763:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4644,"nodeType":"IfStatement","src":"4759:105:14","trueBody":{"id":4643,"nodeType":"Block","src":"4790:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4842:3:14","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":4640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4626,"src":"4847:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4638,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"4811:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4642,"nodeType":"RevertStatement","src":"4804:49:14"}]}},{"expression":{"arguments":[{"id":4647,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4626,"src":"4888:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4880:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint200_$","typeString":"type(uint200)"},"typeName":{"id":4645,"name":"uint200","nodeType":"ElementaryTypeName","src":"4880:7:14","typeDescriptions":{}}},"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"functionReturnParameters":4630,"id":4649,"nodeType":"Return","src":"4873:21:14"}]},"documentation":{"id":4624,"nodeType":"StructuredDocumentation","src":"4398:280:14","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"},"id":4651,"implemented":true,"kind":"function","modifiers":[],"name":"toUint200","nameLocation":"4692:9:14","nodeType":"FunctionDefinition","parameters":{"id":4627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4626,"mutability":"mutable","name":"value","nameLocation":"4710:5:14","nodeType":"VariableDeclaration","scope":4651,"src":"4702:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4625,"name":"uint256","nodeType":"ElementaryTypeName","src":"4702:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4701:15:14"},"returnParameters":{"id":4630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4651,"src":"4740:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"},"typeName":{"id":4628,"name":"uint200","nodeType":"ElementaryTypeName","src":"4740:7:14","typeDescriptions":{"typeIdentifier":"t_uint200","typeString":"uint200"}},"visibility":"internal"}],"src":"4739:9:14"},"scope":6193,"src":"4683:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4678,"nodeType":"Block","src":"5258:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4659,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"5272:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5285:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":4661,"name":"uint192","nodeType":"ElementaryTypeName","src":"5285:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"}],"id":4660,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5280:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5280:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint192","typeString":"type(uint192)"}},"id":4664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5294:3:14","memberName":"max","nodeType":"MemberAccess","src":"5280:17:14","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"src":"5272:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4672,"nodeType":"IfStatement","src":"5268:105:14","trueBody":{"id":4671,"nodeType":"Block","src":"5299:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":4667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5351:3:14","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":4668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"5356:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4666,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"5320:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4670,"nodeType":"RevertStatement","src":"5313:49:14"}]}},{"expression":{"arguments":[{"id":4675,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"5397:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5389:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint192_$","typeString":"type(uint192)"},"typeName":{"id":4673,"name":"uint192","nodeType":"ElementaryTypeName","src":"5389:7:14","typeDescriptions":{}}},"id":4676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"functionReturnParameters":4658,"id":4677,"nodeType":"Return","src":"5382:21:14"}]},"documentation":{"id":4652,"nodeType":"StructuredDocumentation","src":"4907:280:14","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"},"id":4679,"implemented":true,"kind":"function","modifiers":[],"name":"toUint192","nameLocation":"5201:9:14","nodeType":"FunctionDefinition","parameters":{"id":4655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4654,"mutability":"mutable","name":"value","nameLocation":"5219:5:14","nodeType":"VariableDeclaration","scope":4679,"src":"5211:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4653,"name":"uint256","nodeType":"ElementaryTypeName","src":"5211:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5210:15:14"},"returnParameters":{"id":4658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4679,"src":"5249:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"},"typeName":{"id":4656,"name":"uint192","nodeType":"ElementaryTypeName","src":"5249:7:14","typeDescriptions":{"typeIdentifier":"t_uint192","typeString":"uint192"}},"visibility":"internal"}],"src":"5248:9:14"},"scope":6193,"src":"5192:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4706,"nodeType":"Block","src":"5767:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4682,"src":"5781:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5794:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":4689,"name":"uint184","nodeType":"ElementaryTypeName","src":"5794:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"}],"id":4688,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5789:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint184","typeString":"type(uint184)"}},"id":4692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5803:3:14","memberName":"max","nodeType":"MemberAccess","src":"5789:17:14","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"src":"5781:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4700,"nodeType":"IfStatement","src":"5777:105:14","trueBody":{"id":4699,"nodeType":"Block","src":"5808:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":4695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5860:3:14","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":4696,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4682,"src":"5865:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4694,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"5829:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5829:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4698,"nodeType":"RevertStatement","src":"5822:49:14"}]}},{"expression":{"arguments":[{"id":4703,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4682,"src":"5906:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5898:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint184_$","typeString":"type(uint184)"},"typeName":{"id":4701,"name":"uint184","nodeType":"ElementaryTypeName","src":"5898:7:14","typeDescriptions":{}}},"id":4704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5898:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"functionReturnParameters":4686,"id":4705,"nodeType":"Return","src":"5891:21:14"}]},"documentation":{"id":4680,"nodeType":"StructuredDocumentation","src":"5416:280:14","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"},"id":4707,"implemented":true,"kind":"function","modifiers":[],"name":"toUint184","nameLocation":"5710:9:14","nodeType":"FunctionDefinition","parameters":{"id":4683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4682,"mutability":"mutable","name":"value","nameLocation":"5728:5:14","nodeType":"VariableDeclaration","scope":4707,"src":"5720:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4681,"name":"uint256","nodeType":"ElementaryTypeName","src":"5720:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5719:15:14"},"returnParameters":{"id":4686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4685,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4707,"src":"5758:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"},"typeName":{"id":4684,"name":"uint184","nodeType":"ElementaryTypeName","src":"5758:7:14","typeDescriptions":{"typeIdentifier":"t_uint184","typeString":"uint184"}},"visibility":"internal"}],"src":"5757:9:14"},"scope":6193,"src":"5701:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4734,"nodeType":"Block","src":"6276:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4715,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4710,"src":"6290:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6303:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":4717,"name":"uint176","nodeType":"ElementaryTypeName","src":"6303:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"}],"id":4716,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6298:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint176","typeString":"type(uint176)"}},"id":4720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6312:3:14","memberName":"max","nodeType":"MemberAccess","src":"6298:17:14","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"src":"6290:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4728,"nodeType":"IfStatement","src":"6286:105:14","trueBody":{"id":4727,"nodeType":"Block","src":"6317:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":4723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:3:14","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":4724,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4710,"src":"6374:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4722,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"6338:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6338:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4726,"nodeType":"RevertStatement","src":"6331:49:14"}]}},{"expression":{"arguments":[{"id":4731,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4710,"src":"6415:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6407:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint176_$","typeString":"type(uint176)"},"typeName":{"id":4729,"name":"uint176","nodeType":"ElementaryTypeName","src":"6407:7:14","typeDescriptions":{}}},"id":4732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"functionReturnParameters":4714,"id":4733,"nodeType":"Return","src":"6400:21:14"}]},"documentation":{"id":4708,"nodeType":"StructuredDocumentation","src":"5925:280:14","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"},"id":4735,"implemented":true,"kind":"function","modifiers":[],"name":"toUint176","nameLocation":"6219:9:14","nodeType":"FunctionDefinition","parameters":{"id":4711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4710,"mutability":"mutable","name":"value","nameLocation":"6237:5:14","nodeType":"VariableDeclaration","scope":4735,"src":"6229:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4709,"name":"uint256","nodeType":"ElementaryTypeName","src":"6229:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6228:15:14"},"returnParameters":{"id":4714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4735,"src":"6267:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"},"typeName":{"id":4712,"name":"uint176","nodeType":"ElementaryTypeName","src":"6267:7:14","typeDescriptions":{"typeIdentifier":"t_uint176","typeString":"uint176"}},"visibility":"internal"}],"src":"6266:9:14"},"scope":6193,"src":"6210:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4762,"nodeType":"Block","src":"6785:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4743,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"6799:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6812:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":4745,"name":"uint168","nodeType":"ElementaryTypeName","src":"6812:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"}],"id":4744,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6807:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint168","typeString":"type(uint168)"}},"id":4748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6821:3:14","memberName":"max","nodeType":"MemberAccess","src":"6807:17:14","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"src":"6799:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4756,"nodeType":"IfStatement","src":"6795:105:14","trueBody":{"id":4755,"nodeType":"Block","src":"6826:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":4751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6878:3:14","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":4752,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"6883:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4750,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"6847:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6847:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4754,"nodeType":"RevertStatement","src":"6840:49:14"}]}},{"expression":{"arguments":[{"id":4759,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"6924:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint168_$","typeString":"type(uint168)"},"typeName":{"id":4757,"name":"uint168","nodeType":"ElementaryTypeName","src":"6916:7:14","typeDescriptions":{}}},"id":4760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"functionReturnParameters":4742,"id":4761,"nodeType":"Return","src":"6909:21:14"}]},"documentation":{"id":4736,"nodeType":"StructuredDocumentation","src":"6434:280:14","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"},"id":4763,"implemented":true,"kind":"function","modifiers":[],"name":"toUint168","nameLocation":"6728:9:14","nodeType":"FunctionDefinition","parameters":{"id":4739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4738,"mutability":"mutable","name":"value","nameLocation":"6746:5:14","nodeType":"VariableDeclaration","scope":4763,"src":"6738:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4737,"name":"uint256","nodeType":"ElementaryTypeName","src":"6738:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6737:15:14"},"returnParameters":{"id":4742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4763,"src":"6776:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"},"typeName":{"id":4740,"name":"uint168","nodeType":"ElementaryTypeName","src":"6776:7:14","typeDescriptions":{"typeIdentifier":"t_uint168","typeString":"uint168"}},"visibility":"internal"}],"src":"6775:9:14"},"scope":6193,"src":"6719:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4790,"nodeType":"Block","src":"7294:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4766,"src":"7308:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7321:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4773,"name":"uint160","nodeType":"ElementaryTypeName","src":"7321:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"}],"id":4772,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7316:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7316:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint160","typeString":"type(uint160)"}},"id":4776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7330:3:14","memberName":"max","nodeType":"MemberAccess","src":"7316:17:14","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"7308:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4784,"nodeType":"IfStatement","src":"7304:105:14","trueBody":{"id":4783,"nodeType":"Block","src":"7335:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":4779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7387:3:14","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":4780,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4766,"src":"7392:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4778,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"7356:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7356:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4782,"nodeType":"RevertStatement","src":"7349:49:14"}]}},{"expression":{"arguments":[{"id":4787,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4766,"src":"7433:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7425:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":4785,"name":"uint160","nodeType":"ElementaryTypeName","src":"7425:7:14","typeDescriptions":{}}},"id":4788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7425:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"functionReturnParameters":4770,"id":4789,"nodeType":"Return","src":"7418:21:14"}]},"documentation":{"id":4764,"nodeType":"StructuredDocumentation","src":"6943:280:14","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"},"id":4791,"implemented":true,"kind":"function","modifiers":[],"name":"toUint160","nameLocation":"7237:9:14","nodeType":"FunctionDefinition","parameters":{"id":4767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4766,"mutability":"mutable","name":"value","nameLocation":"7255:5:14","nodeType":"VariableDeclaration","scope":4791,"src":"7247:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4765,"name":"uint256","nodeType":"ElementaryTypeName","src":"7247:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7246:15:14"},"returnParameters":{"id":4770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4791,"src":"7285:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":4768,"name":"uint160","nodeType":"ElementaryTypeName","src":"7285:7:14","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"7284:9:14"},"scope":6193,"src":"7228:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4818,"nodeType":"Block","src":"7803:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4799,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4794,"src":"7817:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7830:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":4801,"name":"uint152","nodeType":"ElementaryTypeName","src":"7830:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"}],"id":4800,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7825:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint152","typeString":"type(uint152)"}},"id":4804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7839:3:14","memberName":"max","nodeType":"MemberAccess","src":"7825:17:14","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"src":"7817:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4812,"nodeType":"IfStatement","src":"7813:105:14","trueBody":{"id":4811,"nodeType":"Block","src":"7844:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":4807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:3:14","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":4808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4794,"src":"7901:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4806,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"7865:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7865:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4810,"nodeType":"RevertStatement","src":"7858:49:14"}]}},{"expression":{"arguments":[{"id":4815,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4794,"src":"7942:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7934:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint152_$","typeString":"type(uint152)"},"typeName":{"id":4813,"name":"uint152","nodeType":"ElementaryTypeName","src":"7934:7:14","typeDescriptions":{}}},"id":4816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7934:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"functionReturnParameters":4798,"id":4817,"nodeType":"Return","src":"7927:21:14"}]},"documentation":{"id":4792,"nodeType":"StructuredDocumentation","src":"7452:280:14","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"},"id":4819,"implemented":true,"kind":"function","modifiers":[],"name":"toUint152","nameLocation":"7746:9:14","nodeType":"FunctionDefinition","parameters":{"id":4795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4794,"mutability":"mutable","name":"value","nameLocation":"7764:5:14","nodeType":"VariableDeclaration","scope":4819,"src":"7756:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4793,"name":"uint256","nodeType":"ElementaryTypeName","src":"7756:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7755:15:14"},"returnParameters":{"id":4798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4819,"src":"7794:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"},"typeName":{"id":4796,"name":"uint152","nodeType":"ElementaryTypeName","src":"7794:7:14","typeDescriptions":{"typeIdentifier":"t_uint152","typeString":"uint152"}},"visibility":"internal"}],"src":"7793:9:14"},"scope":6193,"src":"7737:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4846,"nodeType":"Block","src":"8312:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4827,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4822,"src":"8326:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8339:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":4829,"name":"uint144","nodeType":"ElementaryTypeName","src":"8339:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"}],"id":4828,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8334:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8334:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint144","typeString":"type(uint144)"}},"id":4832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8348:3:14","memberName":"max","nodeType":"MemberAccess","src":"8334:17:14","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"src":"8326:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4840,"nodeType":"IfStatement","src":"8322:105:14","trueBody":{"id":4839,"nodeType":"Block","src":"8353:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":4835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8405:3:14","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":4836,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4822,"src":"8410:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4834,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"8374:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8374:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4838,"nodeType":"RevertStatement","src":"8367:49:14"}]}},{"expression":{"arguments":[{"id":4843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4822,"src":"8451:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8443:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint144_$","typeString":"type(uint144)"},"typeName":{"id":4841,"name":"uint144","nodeType":"ElementaryTypeName","src":"8443:7:14","typeDescriptions":{}}},"id":4844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8443:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"functionReturnParameters":4826,"id":4845,"nodeType":"Return","src":"8436:21:14"}]},"documentation":{"id":4820,"nodeType":"StructuredDocumentation","src":"7961:280:14","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"},"id":4847,"implemented":true,"kind":"function","modifiers":[],"name":"toUint144","nameLocation":"8255:9:14","nodeType":"FunctionDefinition","parameters":{"id":4823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4822,"mutability":"mutable","name":"value","nameLocation":"8273:5:14","nodeType":"VariableDeclaration","scope":4847,"src":"8265:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4821,"name":"uint256","nodeType":"ElementaryTypeName","src":"8265:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8264:15:14"},"returnParameters":{"id":4826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4847,"src":"8303:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"},"typeName":{"id":4824,"name":"uint144","nodeType":"ElementaryTypeName","src":"8303:7:14","typeDescriptions":{"typeIdentifier":"t_uint144","typeString":"uint144"}},"visibility":"internal"}],"src":"8302:9:14"},"scope":6193,"src":"8246:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4874,"nodeType":"Block","src":"8821:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4855,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"8835:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8848:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":4857,"name":"uint136","nodeType":"ElementaryTypeName","src":"8848:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"}],"id":4856,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8843:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8843:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint136","typeString":"type(uint136)"}},"id":4860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8857:3:14","memberName":"max","nodeType":"MemberAccess","src":"8843:17:14","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"src":"8835:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4868,"nodeType":"IfStatement","src":"8831:105:14","trueBody":{"id":4867,"nodeType":"Block","src":"8862:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":4863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8914:3:14","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":4864,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"8919:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4862,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"8883:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4866,"nodeType":"RevertStatement","src":"8876:49:14"}]}},{"expression":{"arguments":[{"id":4871,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"8960:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8952:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint136_$","typeString":"type(uint136)"},"typeName":{"id":4869,"name":"uint136","nodeType":"ElementaryTypeName","src":"8952:7:14","typeDescriptions":{}}},"id":4872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"functionReturnParameters":4854,"id":4873,"nodeType":"Return","src":"8945:21:14"}]},"documentation":{"id":4848,"nodeType":"StructuredDocumentation","src":"8470:280:14","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"},"id":4875,"implemented":true,"kind":"function","modifiers":[],"name":"toUint136","nameLocation":"8764:9:14","nodeType":"FunctionDefinition","parameters":{"id":4851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4850,"mutability":"mutable","name":"value","nameLocation":"8782:5:14","nodeType":"VariableDeclaration","scope":4875,"src":"8774:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4849,"name":"uint256","nodeType":"ElementaryTypeName","src":"8774:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8773:15:14"},"returnParameters":{"id":4854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4875,"src":"8812:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"},"typeName":{"id":4852,"name":"uint136","nodeType":"ElementaryTypeName","src":"8812:7:14","typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"visibility":"internal"}],"src":"8811:9:14"},"scope":6193,"src":"8755:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4902,"nodeType":"Block","src":"9330:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4883,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"9344:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9357:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4885,"name":"uint128","nodeType":"ElementaryTypeName","src":"9357:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":4884,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9352:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9352:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":4888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9366:3:14","memberName":"max","nodeType":"MemberAccess","src":"9352:17:14","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"9344:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4896,"nodeType":"IfStatement","src":"9340:105:14","trueBody":{"id":4895,"nodeType":"Block","src":"9371:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":4891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9423:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":4892,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"9428:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4890,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"9392:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9392:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4894,"nodeType":"RevertStatement","src":"9385:49:14"}]}},{"expression":{"arguments":[{"id":4899,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4878,"src":"9469:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9461:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":4897,"name":"uint128","nodeType":"ElementaryTypeName","src":"9461:7:14","typeDescriptions":{}}},"id":4900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9461:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":4882,"id":4901,"nodeType":"Return","src":"9454:21:14"}]},"documentation":{"id":4876,"nodeType":"StructuredDocumentation","src":"8979:280:14","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"},"id":4903,"implemented":true,"kind":"function","modifiers":[],"name":"toUint128","nameLocation":"9273:9:14","nodeType":"FunctionDefinition","parameters":{"id":4879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4878,"mutability":"mutable","name":"value","nameLocation":"9291:5:14","nodeType":"VariableDeclaration","scope":4903,"src":"9283:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4877,"name":"uint256","nodeType":"ElementaryTypeName","src":"9283:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:15:14"},"returnParameters":{"id":4882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4903,"src":"9321:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":4880,"name":"uint128","nodeType":"ElementaryTypeName","src":"9321:7:14","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"9320:9:14"},"scope":6193,"src":"9264:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4930,"nodeType":"Block","src":"9839:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4911,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4906,"src":"9853:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9866:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":4913,"name":"uint120","nodeType":"ElementaryTypeName","src":"9866:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"}],"id":4912,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9861:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint120","typeString":"type(uint120)"}},"id":4916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9875:3:14","memberName":"max","nodeType":"MemberAccess","src":"9861:17:14","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"src":"9853:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4924,"nodeType":"IfStatement","src":"9849:105:14","trueBody":{"id":4923,"nodeType":"Block","src":"9880:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":4919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9932:3:14","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":4920,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4906,"src":"9937:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4918,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"9901:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9901:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4922,"nodeType":"RevertStatement","src":"9894:49:14"}]}},{"expression":{"arguments":[{"id":4927,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4906,"src":"9978:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9970:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint120_$","typeString":"type(uint120)"},"typeName":{"id":4925,"name":"uint120","nodeType":"ElementaryTypeName","src":"9970:7:14","typeDescriptions":{}}},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9970:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"functionReturnParameters":4910,"id":4929,"nodeType":"Return","src":"9963:21:14"}]},"documentation":{"id":4904,"nodeType":"StructuredDocumentation","src":"9488:280:14","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"},"id":4931,"implemented":true,"kind":"function","modifiers":[],"name":"toUint120","nameLocation":"9782:9:14","nodeType":"FunctionDefinition","parameters":{"id":4907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4906,"mutability":"mutable","name":"value","nameLocation":"9800:5:14","nodeType":"VariableDeclaration","scope":4931,"src":"9792:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4905,"name":"uint256","nodeType":"ElementaryTypeName","src":"9792:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9791:15:14"},"returnParameters":{"id":4910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4931,"src":"9830:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"},"typeName":{"id":4908,"name":"uint120","nodeType":"ElementaryTypeName","src":"9830:7:14","typeDescriptions":{"typeIdentifier":"t_uint120","typeString":"uint120"}},"visibility":"internal"}],"src":"9829:9:14"},"scope":6193,"src":"9773:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4958,"nodeType":"Block","src":"10348:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4939,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4934,"src":"10362:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10375:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":4941,"name":"uint112","nodeType":"ElementaryTypeName","src":"10375:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"}],"id":4940,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10370:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10370:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint112","typeString":"type(uint112)"}},"id":4944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10384:3:14","memberName":"max","nodeType":"MemberAccess","src":"10370:17:14","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"src":"10362:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4952,"nodeType":"IfStatement","src":"10358:105:14","trueBody":{"id":4951,"nodeType":"Block","src":"10389:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":4947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10441:3:14","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":4948,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4934,"src":"10446:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4946,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"10410:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4950,"nodeType":"RevertStatement","src":"10403:49:14"}]}},{"expression":{"arguments":[{"id":4955,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4934,"src":"10487:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10479:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint112_$","typeString":"type(uint112)"},"typeName":{"id":4953,"name":"uint112","nodeType":"ElementaryTypeName","src":"10479:7:14","typeDescriptions":{}}},"id":4956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10479:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"functionReturnParameters":4938,"id":4957,"nodeType":"Return","src":"10472:21:14"}]},"documentation":{"id":4932,"nodeType":"StructuredDocumentation","src":"9997:280:14","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"},"id":4959,"implemented":true,"kind":"function","modifiers":[],"name":"toUint112","nameLocation":"10291:9:14","nodeType":"FunctionDefinition","parameters":{"id":4935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4934,"mutability":"mutable","name":"value","nameLocation":"10309:5:14","nodeType":"VariableDeclaration","scope":4959,"src":"10301:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4933,"name":"uint256","nodeType":"ElementaryTypeName","src":"10301:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10300:15:14"},"returnParameters":{"id":4938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4959,"src":"10339:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"},"typeName":{"id":4936,"name":"uint112","nodeType":"ElementaryTypeName","src":"10339:7:14","typeDescriptions":{"typeIdentifier":"t_uint112","typeString":"uint112"}},"visibility":"internal"}],"src":"10338:9:14"},"scope":6193,"src":"10282:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4986,"nodeType":"Block","src":"10857:152:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4967,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4962,"src":"10871:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10884:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":4969,"name":"uint104","nodeType":"ElementaryTypeName","src":"10884:7:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"}],"id":4968,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10879:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10879:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint104","typeString":"type(uint104)"}},"id":4972,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10893:3:14","memberName":"max","nodeType":"MemberAccess","src":"10879:17:14","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"src":"10871:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4980,"nodeType":"IfStatement","src":"10867:105:14","trueBody":{"id":4979,"nodeType":"Block","src":"10898:74:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":4975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10950:3:14","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":4976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4962,"src":"10955:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4974,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"10919:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":4977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10919:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4978,"nodeType":"RevertStatement","src":"10912:49:14"}]}},{"expression":{"arguments":[{"id":4983,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4962,"src":"10996:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10988:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint104_$","typeString":"type(uint104)"},"typeName":{"id":4981,"name":"uint104","nodeType":"ElementaryTypeName","src":"10988:7:14","typeDescriptions":{}}},"id":4984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10988:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"functionReturnParameters":4966,"id":4985,"nodeType":"Return","src":"10981:21:14"}]},"documentation":{"id":4960,"nodeType":"StructuredDocumentation","src":"10506:280:14","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"},"id":4987,"implemented":true,"kind":"function","modifiers":[],"name":"toUint104","nameLocation":"10800:9:14","nodeType":"FunctionDefinition","parameters":{"id":4963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4962,"mutability":"mutable","name":"value","nameLocation":"10818:5:14","nodeType":"VariableDeclaration","scope":4987,"src":"10810:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4961,"name":"uint256","nodeType":"ElementaryTypeName","src":"10810:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10809:15:14"},"returnParameters":{"id":4966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4987,"src":"10848:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"},"typeName":{"id":4964,"name":"uint104","nodeType":"ElementaryTypeName","src":"10848:7:14","typeDescriptions":{"typeIdentifier":"t_uint104","typeString":"uint104"}},"visibility":"internal"}],"src":"10847:9:14"},"scope":6193,"src":"10791:218:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5014,"nodeType":"Block","src":"11360:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4995,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"11374:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":4998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11387:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":4997,"name":"uint96","nodeType":"ElementaryTypeName","src":"11387:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"}],"id":4996,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11382:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11382:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint96","typeString":"type(uint96)"}},"id":5000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11395:3:14","memberName":"max","nodeType":"MemberAccess","src":"11382:16:14","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"src":"11374:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5008,"nodeType":"IfStatement","src":"11370:103:14","trueBody":{"id":5007,"nodeType":"Block","src":"11400:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":5003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11452:2:14","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":5004,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"11456:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5002,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"11421:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11421:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5006,"nodeType":"RevertStatement","src":"11414:48:14"}]}},{"expression":{"arguments":[{"id":5011,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"11496:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11489:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint96_$","typeString":"type(uint96)"},"typeName":{"id":5009,"name":"uint96","nodeType":"ElementaryTypeName","src":"11489:6:14","typeDescriptions":{}}},"id":5012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11489:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"functionReturnParameters":4994,"id":5013,"nodeType":"Return","src":"11482:20:14"}]},"documentation":{"id":4988,"nodeType":"StructuredDocumentation","src":"11015:276:14","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"},"id":5015,"implemented":true,"kind":"function","modifiers":[],"name":"toUint96","nameLocation":"11305:8:14","nodeType":"FunctionDefinition","parameters":{"id":4991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4990,"mutability":"mutable","name":"value","nameLocation":"11322:5:14","nodeType":"VariableDeclaration","scope":5015,"src":"11314:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4989,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:15:14"},"returnParameters":{"id":4994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5015,"src":"11352:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":4992,"name":"uint96","nodeType":"ElementaryTypeName","src":"11352:6:14","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"11351:8:14"},"scope":6193,"src":"11296:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5042,"nodeType":"Block","src":"11860:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5023,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5018,"src":"11874:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11887:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5025,"name":"uint88","nodeType":"ElementaryTypeName","src":"11887:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"}],"id":5024,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11882:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11882:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint88","typeString":"type(uint88)"}},"id":5028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11895:3:14","memberName":"max","nodeType":"MemberAccess","src":"11882:16:14","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"src":"11874:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5036,"nodeType":"IfStatement","src":"11870:103:14","trueBody":{"id":5035,"nodeType":"Block","src":"11900:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":5031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11952:2:14","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":5032,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5018,"src":"11956:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5030,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"11921:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11921:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5034,"nodeType":"RevertStatement","src":"11914:48:14"}]}},{"expression":{"arguments":[{"id":5039,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5018,"src":"11996:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11989:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint88_$","typeString":"type(uint88)"},"typeName":{"id":5037,"name":"uint88","nodeType":"ElementaryTypeName","src":"11989:6:14","typeDescriptions":{}}},"id":5040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11989:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"functionReturnParameters":5022,"id":5041,"nodeType":"Return","src":"11982:20:14"}]},"documentation":{"id":5016,"nodeType":"StructuredDocumentation","src":"11515:276:14","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"},"id":5043,"implemented":true,"kind":"function","modifiers":[],"name":"toUint88","nameLocation":"11805:8:14","nodeType":"FunctionDefinition","parameters":{"id":5019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5018,"mutability":"mutable","name":"value","nameLocation":"11822:5:14","nodeType":"VariableDeclaration","scope":5043,"src":"11814:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5017,"name":"uint256","nodeType":"ElementaryTypeName","src":"11814:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11813:15:14"},"returnParameters":{"id":5022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5043,"src":"11852:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"},"typeName":{"id":5020,"name":"uint88","nodeType":"ElementaryTypeName","src":"11852:6:14","typeDescriptions":{"typeIdentifier":"t_uint88","typeString":"uint88"}},"visibility":"internal"}],"src":"11851:8:14"},"scope":6193,"src":"11796:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5070,"nodeType":"Block","src":"12360:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5051,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"12374:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12387:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":5053,"name":"uint80","nodeType":"ElementaryTypeName","src":"12387:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"}],"id":5052,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12382:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12382:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint80","typeString":"type(uint80)"}},"id":5056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12395:3:14","memberName":"max","nodeType":"MemberAccess","src":"12382:16:14","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"src":"12374:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5064,"nodeType":"IfStatement","src":"12370:103:14","trueBody":{"id":5063,"nodeType":"Block","src":"12400:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":5059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12452:2:14","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":5060,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"12456:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5058,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"12421:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12421:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5062,"nodeType":"RevertStatement","src":"12414:48:14"}]}},{"expression":{"arguments":[{"id":5067,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"12496:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12489:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint80_$","typeString":"type(uint80)"},"typeName":{"id":5065,"name":"uint80","nodeType":"ElementaryTypeName","src":"12489:6:14","typeDescriptions":{}}},"id":5068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12489:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"functionReturnParameters":5050,"id":5069,"nodeType":"Return","src":"12482:20:14"}]},"documentation":{"id":5044,"nodeType":"StructuredDocumentation","src":"12015:276:14","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"},"id":5071,"implemented":true,"kind":"function","modifiers":[],"name":"toUint80","nameLocation":"12305:8:14","nodeType":"FunctionDefinition","parameters":{"id":5047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5046,"mutability":"mutable","name":"value","nameLocation":"12322:5:14","nodeType":"VariableDeclaration","scope":5071,"src":"12314:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5045,"name":"uint256","nodeType":"ElementaryTypeName","src":"12314:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12313:15:14"},"returnParameters":{"id":5050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5071,"src":"12352:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"},"typeName":{"id":5048,"name":"uint80","nodeType":"ElementaryTypeName","src":"12352:6:14","typeDescriptions":{"typeIdentifier":"t_uint80","typeString":"uint80"}},"visibility":"internal"}],"src":"12351:8:14"},"scope":6193,"src":"12296:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5098,"nodeType":"Block","src":"12860:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5079,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5074,"src":"12874:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12887:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":5081,"name":"uint72","nodeType":"ElementaryTypeName","src":"12887:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"}],"id":5080,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12882:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12882:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint72","typeString":"type(uint72)"}},"id":5084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12895:3:14","memberName":"max","nodeType":"MemberAccess","src":"12882:16:14","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"src":"12874:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5092,"nodeType":"IfStatement","src":"12870:103:14","trueBody":{"id":5091,"nodeType":"Block","src":"12900:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":5087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12952:2:14","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":5088,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5074,"src":"12956:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5086,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"12921:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12921:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5090,"nodeType":"RevertStatement","src":"12914:48:14"}]}},{"expression":{"arguments":[{"id":5095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5074,"src":"12996:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12989:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint72_$","typeString":"type(uint72)"},"typeName":{"id":5093,"name":"uint72","nodeType":"ElementaryTypeName","src":"12989:6:14","typeDescriptions":{}}},"id":5096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12989:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"functionReturnParameters":5078,"id":5097,"nodeType":"Return","src":"12982:20:14"}]},"documentation":{"id":5072,"nodeType":"StructuredDocumentation","src":"12515:276:14","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"},"id":5099,"implemented":true,"kind":"function","modifiers":[],"name":"toUint72","nameLocation":"12805:8:14","nodeType":"FunctionDefinition","parameters":{"id":5075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5074,"mutability":"mutable","name":"value","nameLocation":"12822:5:14","nodeType":"VariableDeclaration","scope":5099,"src":"12814:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5073,"name":"uint256","nodeType":"ElementaryTypeName","src":"12814:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12813:15:14"},"returnParameters":{"id":5078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5099,"src":"12852:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"},"typeName":{"id":5076,"name":"uint72","nodeType":"ElementaryTypeName","src":"12852:6:14","typeDescriptions":{"typeIdentifier":"t_uint72","typeString":"uint72"}},"visibility":"internal"}],"src":"12851:8:14"},"scope":6193,"src":"12796:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5126,"nodeType":"Block","src":"13360:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5107,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"13374:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13387:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5109,"name":"uint64","nodeType":"ElementaryTypeName","src":"13387:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":5108,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13382:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13382:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":5112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13395:3:14","memberName":"max","nodeType":"MemberAccess","src":"13382:16:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13374:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5120,"nodeType":"IfStatement","src":"13370:103:14","trueBody":{"id":5119,"nodeType":"Block","src":"13400:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":5115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13452:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":5116,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"13456:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5114,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"13421:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13421:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5118,"nodeType":"RevertStatement","src":"13414:48:14"}]}},{"expression":{"arguments":[{"id":5123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"13496:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13489:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":5121,"name":"uint64","nodeType":"ElementaryTypeName","src":"13489:6:14","typeDescriptions":{}}},"id":5124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13489:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":5106,"id":5125,"nodeType":"Return","src":"13482:20:14"}]},"documentation":{"id":5100,"nodeType":"StructuredDocumentation","src":"13015:276:14","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"},"id":5127,"implemented":true,"kind":"function","modifiers":[],"name":"toUint64","nameLocation":"13305:8:14","nodeType":"FunctionDefinition","parameters":{"id":5103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5102,"mutability":"mutable","name":"value","nameLocation":"13322:5:14","nodeType":"VariableDeclaration","scope":5127,"src":"13314:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5101,"name":"uint256","nodeType":"ElementaryTypeName","src":"13314:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13313:15:14"},"returnParameters":{"id":5106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5127,"src":"13352:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5104,"name":"uint64","nodeType":"ElementaryTypeName","src":"13352:6:14","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"13351:8:14"},"scope":6193,"src":"13296:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5154,"nodeType":"Block","src":"13860:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5135,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"13874:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13887:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":5137,"name":"uint56","nodeType":"ElementaryTypeName","src":"13887:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"}],"id":5136,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13882:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13882:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint56","typeString":"type(uint56)"}},"id":5140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13895:3:14","memberName":"max","nodeType":"MemberAccess","src":"13882:16:14","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"src":"13874:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5148,"nodeType":"IfStatement","src":"13870:103:14","trueBody":{"id":5147,"nodeType":"Block","src":"13900:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":5143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13952:2:14","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":5144,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"13956:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5142,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"13921:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13921:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5146,"nodeType":"RevertStatement","src":"13914:48:14"}]}},{"expression":{"arguments":[{"id":5151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5130,"src":"13996:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13989:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint56_$","typeString":"type(uint56)"},"typeName":{"id":5149,"name":"uint56","nodeType":"ElementaryTypeName","src":"13989:6:14","typeDescriptions":{}}},"id":5152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13989:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"functionReturnParameters":5134,"id":5153,"nodeType":"Return","src":"13982:20:14"}]},"documentation":{"id":5128,"nodeType":"StructuredDocumentation","src":"13515:276:14","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"},"id":5155,"implemented":true,"kind":"function","modifiers":[],"name":"toUint56","nameLocation":"13805:8:14","nodeType":"FunctionDefinition","parameters":{"id":5131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5130,"mutability":"mutable","name":"value","nameLocation":"13822:5:14","nodeType":"VariableDeclaration","scope":5155,"src":"13814:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5129,"name":"uint256","nodeType":"ElementaryTypeName","src":"13814:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13813:15:14"},"returnParameters":{"id":5134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5155,"src":"13852:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"},"typeName":{"id":5132,"name":"uint56","nodeType":"ElementaryTypeName","src":"13852:6:14","typeDescriptions":{"typeIdentifier":"t_uint56","typeString":"uint56"}},"visibility":"internal"}],"src":"13851:8:14"},"scope":6193,"src":"13796:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5182,"nodeType":"Block","src":"14360:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5163,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"14374:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14387:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":5165,"name":"uint48","nodeType":"ElementaryTypeName","src":"14387:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"}],"id":5164,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14382:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14382:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint48","typeString":"type(uint48)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14395:3:14","memberName":"max","nodeType":"MemberAccess","src":"14382:16:14","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14374:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5176,"nodeType":"IfStatement","src":"14370:103:14","trueBody":{"id":5175,"nodeType":"Block","src":"14400:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":5171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14452:2:14","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":5172,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"14456:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5170,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"14421:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14421:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5174,"nodeType":"RevertStatement","src":"14414:48:14"}]}},{"expression":{"arguments":[{"id":5179,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5158,"src":"14496:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14489:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint48_$","typeString":"type(uint48)"},"typeName":{"id":5177,"name":"uint48","nodeType":"ElementaryTypeName","src":"14489:6:14","typeDescriptions":{}}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14489:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":5162,"id":5181,"nodeType":"Return","src":"14482:20:14"}]},"documentation":{"id":5156,"nodeType":"StructuredDocumentation","src":"14015:276:14","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"},"id":5183,"implemented":true,"kind":"function","modifiers":[],"name":"toUint48","nameLocation":"14305:8:14","nodeType":"FunctionDefinition","parameters":{"id":5159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5158,"mutability":"mutable","name":"value","nameLocation":"14322:5:14","nodeType":"VariableDeclaration","scope":5183,"src":"14314:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5157,"name":"uint256","nodeType":"ElementaryTypeName","src":"14314:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14313:15:14"},"returnParameters":{"id":5162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5183,"src":"14352:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":5160,"name":"uint48","nodeType":"ElementaryTypeName","src":"14352:6:14","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14351:8:14"},"scope":6193,"src":"14296:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5210,"nodeType":"Block","src":"14860:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5191,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5186,"src":"14874:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14887:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":5193,"name":"uint40","nodeType":"ElementaryTypeName","src":"14887:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"}],"id":5192,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14882:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14882:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint40","typeString":"type(uint40)"}},"id":5196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14895:3:14","memberName":"max","nodeType":"MemberAccess","src":"14882:16:14","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"src":"14874:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5204,"nodeType":"IfStatement","src":"14870:103:14","trueBody":{"id":5203,"nodeType":"Block","src":"14900:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14952:2:14","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":5200,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5186,"src":"14956:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5198,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"14921:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14921:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5202,"nodeType":"RevertStatement","src":"14914:48:14"}]}},{"expression":{"arguments":[{"id":5207,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5186,"src":"14996:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint40_$","typeString":"type(uint40)"},"typeName":{"id":5205,"name":"uint40","nodeType":"ElementaryTypeName","src":"14989:6:14","typeDescriptions":{}}},"id":5208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14989:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"functionReturnParameters":5190,"id":5209,"nodeType":"Return","src":"14982:20:14"}]},"documentation":{"id":5184,"nodeType":"StructuredDocumentation","src":"14515:276:14","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"},"id":5211,"implemented":true,"kind":"function","modifiers":[],"name":"toUint40","nameLocation":"14805:8:14","nodeType":"FunctionDefinition","parameters":{"id":5187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5186,"mutability":"mutable","name":"value","nameLocation":"14822:5:14","nodeType":"VariableDeclaration","scope":5211,"src":"14814:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5185,"name":"uint256","nodeType":"ElementaryTypeName","src":"14814:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14813:15:14"},"returnParameters":{"id":5190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5211,"src":"14852:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"},"typeName":{"id":5188,"name":"uint40","nodeType":"ElementaryTypeName","src":"14852:6:14","typeDescriptions":{"typeIdentifier":"t_uint40","typeString":"uint40"}},"visibility":"internal"}],"src":"14851:8:14"},"scope":6193,"src":"14796:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5238,"nodeType":"Block","src":"15360:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5219,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5214,"src":"15374:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15387:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":5221,"name":"uint32","nodeType":"ElementaryTypeName","src":"15387:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":5220,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15382:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15382:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15395:3:14","memberName":"max","nodeType":"MemberAccess","src":"15382:16:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"15374:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5232,"nodeType":"IfStatement","src":"15370:103:14","trueBody":{"id":5231,"nodeType":"Block","src":"15400:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":5227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15452:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":5228,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5214,"src":"15456:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5226,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"15421:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5230,"nodeType":"RevertStatement","src":"15414:48:14"}]}},{"expression":{"arguments":[{"id":5235,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5214,"src":"15496:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15489:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":5233,"name":"uint32","nodeType":"ElementaryTypeName","src":"15489:6:14","typeDescriptions":{}}},"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15489:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"functionReturnParameters":5218,"id":5237,"nodeType":"Return","src":"15482:20:14"}]},"documentation":{"id":5212,"nodeType":"StructuredDocumentation","src":"15015:276:14","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"},"id":5239,"implemented":true,"kind":"function","modifiers":[],"name":"toUint32","nameLocation":"15305:8:14","nodeType":"FunctionDefinition","parameters":{"id":5215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5214,"mutability":"mutable","name":"value","nameLocation":"15322:5:14","nodeType":"VariableDeclaration","scope":5239,"src":"15314:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5213,"name":"uint256","nodeType":"ElementaryTypeName","src":"15314:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15313:15:14"},"returnParameters":{"id":5218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5239,"src":"15352:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5216,"name":"uint32","nodeType":"ElementaryTypeName","src":"15352:6:14","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"15351:8:14"},"scope":6193,"src":"15296:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5266,"nodeType":"Block","src":"15860:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5247,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"15874:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15887:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":5249,"name":"uint24","nodeType":"ElementaryTypeName","src":"15887:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"}],"id":5248,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"15882:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15882:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint24","typeString":"type(uint24)"}},"id":5252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15895:3:14","memberName":"max","nodeType":"MemberAccess","src":"15882:16:14","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"src":"15874:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5260,"nodeType":"IfStatement","src":"15870:103:14","trueBody":{"id":5259,"nodeType":"Block","src":"15900:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":5255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15952:2:14","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":5256,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"15956:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5254,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"15921:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15921:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5258,"nodeType":"RevertStatement","src":"15914:48:14"}]}},{"expression":{"arguments":[{"id":5263,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"15996:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15989:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint24_$","typeString":"type(uint24)"},"typeName":{"id":5261,"name":"uint24","nodeType":"ElementaryTypeName","src":"15989:6:14","typeDescriptions":{}}},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15989:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"functionReturnParameters":5246,"id":5265,"nodeType":"Return","src":"15982:20:14"}]},"documentation":{"id":5240,"nodeType":"StructuredDocumentation","src":"15515:276:14","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"},"id":5267,"implemented":true,"kind":"function","modifiers":[],"name":"toUint24","nameLocation":"15805:8:14","nodeType":"FunctionDefinition","parameters":{"id":5243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5242,"mutability":"mutable","name":"value","nameLocation":"15822:5:14","nodeType":"VariableDeclaration","scope":5267,"src":"15814:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5241,"name":"uint256","nodeType":"ElementaryTypeName","src":"15814:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15813:15:14"},"returnParameters":{"id":5246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5267,"src":"15852:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5244,"name":"uint24","nodeType":"ElementaryTypeName","src":"15852:6:14","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"15851:8:14"},"scope":6193,"src":"15796:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5294,"nodeType":"Block","src":"16360:149:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5275,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"16374:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":5277,"name":"uint16","nodeType":"ElementaryTypeName","src":"16387:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":5276,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16382:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":5280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16395:3:14","memberName":"max","nodeType":"MemberAccess","src":"16382:16:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16374:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5288,"nodeType":"IfStatement","src":"16370:103:14","trueBody":{"id":5287,"nodeType":"Block","src":"16400:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":5283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16452:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":5284,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"16456:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5282,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"16421:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16421:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5286,"nodeType":"RevertStatement","src":"16414:48:14"}]}},{"expression":{"arguments":[{"id":5291,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5270,"src":"16496:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16489:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":5289,"name":"uint16","nodeType":"ElementaryTypeName","src":"16489:6:14","typeDescriptions":{}}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16489:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":5274,"id":5293,"nodeType":"Return","src":"16482:20:14"}]},"documentation":{"id":5268,"nodeType":"StructuredDocumentation","src":"16015:276:14","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"},"id":5295,"implemented":true,"kind":"function","modifiers":[],"name":"toUint16","nameLocation":"16305:8:14","nodeType":"FunctionDefinition","parameters":{"id":5271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5270,"mutability":"mutable","name":"value","nameLocation":"16322:5:14","nodeType":"VariableDeclaration","scope":5295,"src":"16314:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5269,"name":"uint256","nodeType":"ElementaryTypeName","src":"16314:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16313:15:14"},"returnParameters":{"id":5274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"16352:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":5272,"name":"uint16","nodeType":"ElementaryTypeName","src":"16352:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"16351:8:14"},"scope":6193,"src":"16296:213:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5322,"nodeType":"Block","src":"16854:146:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5303,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"16868:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"arguments":[{"id":5306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16881:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5305,"name":"uint8","nodeType":"ElementaryTypeName","src":"16881:5:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":5304,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16876:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":5307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16876:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":5308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16888:3:14","memberName":"max","nodeType":"MemberAccess","src":"16876:15:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"16868:23:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5316,"nodeType":"IfStatement","src":"16864:101:14","trueBody":{"id":5315,"nodeType":"Block","src":"16893:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":5311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16945:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":5312,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"16948:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5310,"name":"SafeCastOverflowedUintDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4438,"src":"16914:30:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$","typeString":"function (uint8,uint256) pure returns (error)"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5314,"nodeType":"RevertStatement","src":"16907:47:14"}]}},{"expression":{"arguments":[{"id":5319,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"16987:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16981:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":5317,"name":"uint8","nodeType":"ElementaryTypeName","src":"16981:5:14","typeDescriptions":{}}},"id":5320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16981:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":5302,"id":5321,"nodeType":"Return","src":"16974:19:14"}]},"documentation":{"id":5296,"nodeType":"StructuredDocumentation","src":"16515:272:14","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"},"id":5323,"implemented":true,"kind":"function","modifiers":[],"name":"toUint8","nameLocation":"16801:7:14","nodeType":"FunctionDefinition","parameters":{"id":5299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5298,"mutability":"mutable","name":"value","nameLocation":"16817:5:14","nodeType":"VariableDeclaration","scope":5323,"src":"16809:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5297,"name":"uint256","nodeType":"ElementaryTypeName","src":"16809:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16808:15:14"},"returnParameters":{"id":5302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5323,"src":"16847:5:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5300,"name":"uint8","nodeType":"ElementaryTypeName","src":"16847:5:14","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16846:7:14"},"scope":6193,"src":"16792:208:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5345,"nodeType":"Block","src":"17236:128:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5331,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"17250:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":5332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17258:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17250:9:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5339,"nodeType":"IfStatement","src":"17246:81:14","trueBody":{"id":5338,"nodeType":"Block","src":"17261:66:14","statements":[{"errorCall":{"arguments":[{"id":5335,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"17310:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5334,"name":"SafeCastOverflowedIntToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4443,"src":"17282:27:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_int256_$returns$_t_error_$","typeString":"function (int256) pure returns (error)"}},"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17282:34:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5337,"nodeType":"RevertStatement","src":"17275:41:14"}]}},{"expression":{"arguments":[{"id":5342,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5326,"src":"17351:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17343:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5340,"name":"uint256","nodeType":"ElementaryTypeName","src":"17343:7:14","typeDescriptions":{}}},"id":5343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17343:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5330,"id":5344,"nodeType":"Return","src":"17336:21:14"}]},"documentation":{"id":5324,"nodeType":"StructuredDocumentation","src":"17006:160:14","text":" @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0."},"id":5346,"implemented":true,"kind":"function","modifiers":[],"name":"toUint256","nameLocation":"17180:9:14","nodeType":"FunctionDefinition","parameters":{"id":5327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5326,"mutability":"mutable","name":"value","nameLocation":"17197:5:14","nodeType":"VariableDeclaration","scope":5346,"src":"17190:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5325,"name":"int256","nodeType":"ElementaryTypeName","src":"17190:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17189:14:14"},"returnParameters":{"id":5330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5346,"src":"17227:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5328,"name":"uint256","nodeType":"ElementaryTypeName","src":"17227:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17226:9:14"},"scope":6193,"src":"17171:193:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5371,"nodeType":"Block","src":"17761:150:14","statements":[{"expression":{"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5354,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5352,"src":"17771:10:14","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5357,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"17791:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17784:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int248_$","typeString":"type(int248)"},"typeName":{"id":5355,"name":"int248","nodeType":"ElementaryTypeName","src":"17784:6:14","typeDescriptions":{}}},"id":5358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"src":"17771:26:14","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"id":5360,"nodeType":"ExpressionStatement","src":"17771:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5361,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5352,"src":"17811:10:14","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"17825:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17811:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5370,"nodeType":"IfStatement","src":"17807:98:14","trueBody":{"id":5369,"nodeType":"Block","src":"17832:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323438","id":5365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17883:3:14","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},{"id":5366,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5349,"src":"17888:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5364,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"17853:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17853:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5368,"nodeType":"RevertStatement","src":"17846:48:14"}]}}]},"documentation":{"id":5347,"nodeType":"StructuredDocumentation","src":"17370:312:14","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"},"id":5372,"implemented":true,"kind":"function","modifiers":[],"name":"toInt248","nameLocation":"17696:8:14","nodeType":"FunctionDefinition","parameters":{"id":5350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5349,"mutability":"mutable","name":"value","nameLocation":"17712:5:14","nodeType":"VariableDeclaration","scope":5372,"src":"17705:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5348,"name":"int256","nodeType":"ElementaryTypeName","src":"17705:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17704:14:14"},"returnParameters":{"id":5353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5352,"mutability":"mutable","name":"downcasted","nameLocation":"17749:10:14","nodeType":"VariableDeclaration","scope":5372,"src":"17742:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"},"typeName":{"id":5351,"name":"int248","nodeType":"ElementaryTypeName","src":"17742:6:14","typeDescriptions":{"typeIdentifier":"t_int248","typeString":"int248"}},"visibility":"internal"}],"src":"17741:19:14"},"scope":6193,"src":"17687:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5397,"nodeType":"Block","src":"18308:150:14","statements":[{"expression":{"id":5385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5380,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5378,"src":"18318:10:14","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5383,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"18338:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18331:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int240_$","typeString":"type(int240)"},"typeName":{"id":5381,"name":"int240","nodeType":"ElementaryTypeName","src":"18331:6:14","typeDescriptions":{}}},"id":5384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"src":"18318:26:14","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"id":5386,"nodeType":"ExpressionStatement","src":"18318:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5387,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5378,"src":"18358:10:14","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5388,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"18372:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18358:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5396,"nodeType":"IfStatement","src":"18354:98:14","trueBody":{"id":5395,"nodeType":"Block","src":"18379:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323430","id":5391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18430:3:14","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},{"id":5392,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"18435:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5390,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"18400:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18400:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5394,"nodeType":"RevertStatement","src":"18393:48:14"}]}}]},"documentation":{"id":5373,"nodeType":"StructuredDocumentation","src":"17917:312:14","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"},"id":5398,"implemented":true,"kind":"function","modifiers":[],"name":"toInt240","nameLocation":"18243:8:14","nodeType":"FunctionDefinition","parameters":{"id":5376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"value","nameLocation":"18259:5:14","nodeType":"VariableDeclaration","scope":5398,"src":"18252:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5374,"name":"int256","nodeType":"ElementaryTypeName","src":"18252:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18251:14:14"},"returnParameters":{"id":5379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5378,"mutability":"mutable","name":"downcasted","nameLocation":"18296:10:14","nodeType":"VariableDeclaration","scope":5398,"src":"18289:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"},"typeName":{"id":5377,"name":"int240","nodeType":"ElementaryTypeName","src":"18289:6:14","typeDescriptions":{"typeIdentifier":"t_int240","typeString":"int240"}},"visibility":"internal"}],"src":"18288:19:14"},"scope":6193,"src":"18234:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5423,"nodeType":"Block","src":"18855:150:14","statements":[{"expression":{"id":5411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5406,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"18865:10:14","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5409,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5401,"src":"18885:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int232_$","typeString":"type(int232)"},"typeName":{"id":5407,"name":"int232","nodeType":"ElementaryTypeName","src":"18878:6:14","typeDescriptions":{}}},"id":5410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"src":"18865:26:14","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"id":5412,"nodeType":"ExpressionStatement","src":"18865:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5413,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"18905:10:14","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5414,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5401,"src":"18919:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18905:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5422,"nodeType":"IfStatement","src":"18901:98:14","trueBody":{"id":5421,"nodeType":"Block","src":"18926:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323332","id":5417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18977:3:14","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},{"id":5418,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5401,"src":"18982:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5416,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"18947:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18947:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5420,"nodeType":"RevertStatement","src":"18940:48:14"}]}}]},"documentation":{"id":5399,"nodeType":"StructuredDocumentation","src":"18464:312:14","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"},"id":5424,"implemented":true,"kind":"function","modifiers":[],"name":"toInt232","nameLocation":"18790:8:14","nodeType":"FunctionDefinition","parameters":{"id":5402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5401,"mutability":"mutable","name":"value","nameLocation":"18806:5:14","nodeType":"VariableDeclaration","scope":5424,"src":"18799:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5400,"name":"int256","nodeType":"ElementaryTypeName","src":"18799:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"18798:14:14"},"returnParameters":{"id":5405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5404,"mutability":"mutable","name":"downcasted","nameLocation":"18843:10:14","nodeType":"VariableDeclaration","scope":5424,"src":"18836:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"},"typeName":{"id":5403,"name":"int232","nodeType":"ElementaryTypeName","src":"18836:6:14","typeDescriptions":{"typeIdentifier":"t_int232","typeString":"int232"}},"visibility":"internal"}],"src":"18835:19:14"},"scope":6193,"src":"18781:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5449,"nodeType":"Block","src":"19402:150:14","statements":[{"expression":{"id":5437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5432,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5430,"src":"19412:10:14","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5435,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5427,"src":"19432:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19425:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int224_$","typeString":"type(int224)"},"typeName":{"id":5433,"name":"int224","nodeType":"ElementaryTypeName","src":"19425:6:14","typeDescriptions":{}}},"id":5436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19425:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"src":"19412:26:14","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"id":5438,"nodeType":"ExpressionStatement","src":"19412:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5439,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5430,"src":"19452:10:14","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5440,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5427,"src":"19466:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19452:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5448,"nodeType":"IfStatement","src":"19448:98:14","trueBody":{"id":5447,"nodeType":"Block","src":"19473:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323234","id":5443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19524:3:14","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},{"id":5444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5427,"src":"19529:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5442,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"19494:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19494:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5446,"nodeType":"RevertStatement","src":"19487:48:14"}]}}]},"documentation":{"id":5425,"nodeType":"StructuredDocumentation","src":"19011:312:14","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"},"id":5450,"implemented":true,"kind":"function","modifiers":[],"name":"toInt224","nameLocation":"19337:8:14","nodeType":"FunctionDefinition","parameters":{"id":5428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5427,"mutability":"mutable","name":"value","nameLocation":"19353:5:14","nodeType":"VariableDeclaration","scope":5450,"src":"19346:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5426,"name":"int256","nodeType":"ElementaryTypeName","src":"19346:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19345:14:14"},"returnParameters":{"id":5431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5430,"mutability":"mutable","name":"downcasted","nameLocation":"19390:10:14","nodeType":"VariableDeclaration","scope":5450,"src":"19383:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"},"typeName":{"id":5429,"name":"int224","nodeType":"ElementaryTypeName","src":"19383:6:14","typeDescriptions":{"typeIdentifier":"t_int224","typeString":"int224"}},"visibility":"internal"}],"src":"19382:19:14"},"scope":6193,"src":"19328:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5475,"nodeType":"Block","src":"19949:150:14","statements":[{"expression":{"id":5463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5458,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"19959:10:14","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5461,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"19979:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19972:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int216_$","typeString":"type(int216)"},"typeName":{"id":5459,"name":"int216","nodeType":"ElementaryTypeName","src":"19972:6:14","typeDescriptions":{}}},"id":5462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19972:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"src":"19959:26:14","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"id":5464,"nodeType":"ExpressionStatement","src":"19959:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5465,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5456,"src":"19999:10:14","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5466,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"20013:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19999:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5474,"nodeType":"IfStatement","src":"19995:98:14","trueBody":{"id":5473,"nodeType":"Block","src":"20020:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323136","id":5469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20071:3:14","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},{"id":5470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5453,"src":"20076:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5468,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"20041:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5472,"nodeType":"RevertStatement","src":"20034:48:14"}]}}]},"documentation":{"id":5451,"nodeType":"StructuredDocumentation","src":"19558:312:14","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"},"id":5476,"implemented":true,"kind":"function","modifiers":[],"name":"toInt216","nameLocation":"19884:8:14","nodeType":"FunctionDefinition","parameters":{"id":5454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5453,"mutability":"mutable","name":"value","nameLocation":"19900:5:14","nodeType":"VariableDeclaration","scope":5476,"src":"19893:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5452,"name":"int256","nodeType":"ElementaryTypeName","src":"19893:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"19892:14:14"},"returnParameters":{"id":5457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5456,"mutability":"mutable","name":"downcasted","nameLocation":"19937:10:14","nodeType":"VariableDeclaration","scope":5476,"src":"19930:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"},"typeName":{"id":5455,"name":"int216","nodeType":"ElementaryTypeName","src":"19930:6:14","typeDescriptions":{"typeIdentifier":"t_int216","typeString":"int216"}},"visibility":"internal"}],"src":"19929:19:14"},"scope":6193,"src":"19875:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5501,"nodeType":"Block","src":"20496:150:14","statements":[{"expression":{"id":5489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5484,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5482,"src":"20506:10:14","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5487,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5479,"src":"20526:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20519:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int208_$","typeString":"type(int208)"},"typeName":{"id":5485,"name":"int208","nodeType":"ElementaryTypeName","src":"20519:6:14","typeDescriptions":{}}},"id":5488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20519:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"src":"20506:26:14","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"id":5490,"nodeType":"ExpressionStatement","src":"20506:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5491,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5482,"src":"20546:10:14","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5479,"src":"20560:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"20546:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5500,"nodeType":"IfStatement","src":"20542:98:14","trueBody":{"id":5499,"nodeType":"Block","src":"20567:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323038","id":5495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20618:3:14","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},{"id":5496,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5479,"src":"20623:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5494,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"20588:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20588:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5498,"nodeType":"RevertStatement","src":"20581:48:14"}]}}]},"documentation":{"id":5477,"nodeType":"StructuredDocumentation","src":"20105:312:14","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"},"id":5502,"implemented":true,"kind":"function","modifiers":[],"name":"toInt208","nameLocation":"20431:8:14","nodeType":"FunctionDefinition","parameters":{"id":5480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5479,"mutability":"mutable","name":"value","nameLocation":"20447:5:14","nodeType":"VariableDeclaration","scope":5502,"src":"20440:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5478,"name":"int256","nodeType":"ElementaryTypeName","src":"20440:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20439:14:14"},"returnParameters":{"id":5483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5482,"mutability":"mutable","name":"downcasted","nameLocation":"20484:10:14","nodeType":"VariableDeclaration","scope":5502,"src":"20477:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"},"typeName":{"id":5481,"name":"int208","nodeType":"ElementaryTypeName","src":"20477:6:14","typeDescriptions":{"typeIdentifier":"t_int208","typeString":"int208"}},"visibility":"internal"}],"src":"20476:19:14"},"scope":6193,"src":"20422:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5527,"nodeType":"Block","src":"21043:150:14","statements":[{"expression":{"id":5515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5510,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"21053:10:14","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5513,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5505,"src":"21073:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21066:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int200_$","typeString":"type(int200)"},"typeName":{"id":5511,"name":"int200","nodeType":"ElementaryTypeName","src":"21066:6:14","typeDescriptions":{}}},"id":5514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21066:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"src":"21053:26:14","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"id":5516,"nodeType":"ExpressionStatement","src":"21053:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5517,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"21093:10:14","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5518,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5505,"src":"21107:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21093:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5526,"nodeType":"IfStatement","src":"21089:98:14","trueBody":{"id":5525,"nodeType":"Block","src":"21114:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"323030","id":5521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21165:3:14","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":5522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5505,"src":"21170:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5520,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"21135:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21135:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5524,"nodeType":"RevertStatement","src":"21128:48:14"}]}}]},"documentation":{"id":5503,"nodeType":"StructuredDocumentation","src":"20652:312:14","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"},"id":5528,"implemented":true,"kind":"function","modifiers":[],"name":"toInt200","nameLocation":"20978:8:14","nodeType":"FunctionDefinition","parameters":{"id":5506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5505,"mutability":"mutable","name":"value","nameLocation":"20994:5:14","nodeType":"VariableDeclaration","scope":5528,"src":"20987:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5504,"name":"int256","nodeType":"ElementaryTypeName","src":"20987:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"20986:14:14"},"returnParameters":{"id":5509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5508,"mutability":"mutable","name":"downcasted","nameLocation":"21031:10:14","nodeType":"VariableDeclaration","scope":5528,"src":"21024:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"},"typeName":{"id":5507,"name":"int200","nodeType":"ElementaryTypeName","src":"21024:6:14","typeDescriptions":{"typeIdentifier":"t_int200","typeString":"int200"}},"visibility":"internal"}],"src":"21023:19:14"},"scope":6193,"src":"20969:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5553,"nodeType":"Block","src":"21590:150:14","statements":[{"expression":{"id":5541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5536,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5534,"src":"21600:10:14","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5539,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"21620:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21613:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int192_$","typeString":"type(int192)"},"typeName":{"id":5537,"name":"int192","nodeType":"ElementaryTypeName","src":"21613:6:14","typeDescriptions":{}}},"id":5540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21613:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"src":"21600:26:14","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"id":5542,"nodeType":"ExpressionStatement","src":"21600:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5543,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5534,"src":"21640:10:14","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5544,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"21654:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"21640:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5552,"nodeType":"IfStatement","src":"21636:98:14","trueBody":{"id":5551,"nodeType":"Block","src":"21661:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313932","id":5547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21712:3:14","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},{"id":5548,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"21717:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5546,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"21682:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21682:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5550,"nodeType":"RevertStatement","src":"21675:48:14"}]}}]},"documentation":{"id":5529,"nodeType":"StructuredDocumentation","src":"21199:312:14","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"},"id":5554,"implemented":true,"kind":"function","modifiers":[],"name":"toInt192","nameLocation":"21525:8:14","nodeType":"FunctionDefinition","parameters":{"id":5532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5531,"mutability":"mutable","name":"value","nameLocation":"21541:5:14","nodeType":"VariableDeclaration","scope":5554,"src":"21534:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5530,"name":"int256","nodeType":"ElementaryTypeName","src":"21534:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"21533:14:14"},"returnParameters":{"id":5535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5534,"mutability":"mutable","name":"downcasted","nameLocation":"21578:10:14","nodeType":"VariableDeclaration","scope":5554,"src":"21571:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"},"typeName":{"id":5533,"name":"int192","nodeType":"ElementaryTypeName","src":"21571:6:14","typeDescriptions":{"typeIdentifier":"t_int192","typeString":"int192"}},"visibility":"internal"}],"src":"21570:19:14"},"scope":6193,"src":"21516:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5579,"nodeType":"Block","src":"22137:150:14","statements":[{"expression":{"id":5567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5562,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5560,"src":"22147:10:14","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5557,"src":"22167:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22160:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int184_$","typeString":"type(int184)"},"typeName":{"id":5563,"name":"int184","nodeType":"ElementaryTypeName","src":"22160:6:14","typeDescriptions":{}}},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22160:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"src":"22147:26:14","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"id":5568,"nodeType":"ExpressionStatement","src":"22147:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5569,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5560,"src":"22187:10:14","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5570,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5557,"src":"22201:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22187:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5578,"nodeType":"IfStatement","src":"22183:98:14","trueBody":{"id":5577,"nodeType":"Block","src":"22208:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313834","id":5573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22259:3:14","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},{"id":5574,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5557,"src":"22264:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5572,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"22229:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22229:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5576,"nodeType":"RevertStatement","src":"22222:48:14"}]}}]},"documentation":{"id":5555,"nodeType":"StructuredDocumentation","src":"21746:312:14","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"},"id":5580,"implemented":true,"kind":"function","modifiers":[],"name":"toInt184","nameLocation":"22072:8:14","nodeType":"FunctionDefinition","parameters":{"id":5558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5557,"mutability":"mutable","name":"value","nameLocation":"22088:5:14","nodeType":"VariableDeclaration","scope":5580,"src":"22081:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5556,"name":"int256","nodeType":"ElementaryTypeName","src":"22081:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22080:14:14"},"returnParameters":{"id":5561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5560,"mutability":"mutable","name":"downcasted","nameLocation":"22125:10:14","nodeType":"VariableDeclaration","scope":5580,"src":"22118:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"},"typeName":{"id":5559,"name":"int184","nodeType":"ElementaryTypeName","src":"22118:6:14","typeDescriptions":{"typeIdentifier":"t_int184","typeString":"int184"}},"visibility":"internal"}],"src":"22117:19:14"},"scope":6193,"src":"22063:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5605,"nodeType":"Block","src":"22684:150:14","statements":[{"expression":{"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5588,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5586,"src":"22694:10:14","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"22714:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22707:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int176_$","typeString":"type(int176)"},"typeName":{"id":5589,"name":"int176","nodeType":"ElementaryTypeName","src":"22707:6:14","typeDescriptions":{}}},"id":5592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22707:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"src":"22694:26:14","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"id":5594,"nodeType":"ExpressionStatement","src":"22694:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5595,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5586,"src":"22734:10:14","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5596,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"22748:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"22734:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5604,"nodeType":"IfStatement","src":"22730:98:14","trueBody":{"id":5603,"nodeType":"Block","src":"22755:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313736","id":5599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22806:3:14","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},{"id":5600,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"22811:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5598,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"22776:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22776:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5602,"nodeType":"RevertStatement","src":"22769:48:14"}]}}]},"documentation":{"id":5581,"nodeType":"StructuredDocumentation","src":"22293:312:14","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"},"id":5606,"implemented":true,"kind":"function","modifiers":[],"name":"toInt176","nameLocation":"22619:8:14","nodeType":"FunctionDefinition","parameters":{"id":5584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5583,"mutability":"mutable","name":"value","nameLocation":"22635:5:14","nodeType":"VariableDeclaration","scope":5606,"src":"22628:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5582,"name":"int256","nodeType":"ElementaryTypeName","src":"22628:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"22627:14:14"},"returnParameters":{"id":5587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5586,"mutability":"mutable","name":"downcasted","nameLocation":"22672:10:14","nodeType":"VariableDeclaration","scope":5606,"src":"22665:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"},"typeName":{"id":5585,"name":"int176","nodeType":"ElementaryTypeName","src":"22665:6:14","typeDescriptions":{"typeIdentifier":"t_int176","typeString":"int176"}},"visibility":"internal"}],"src":"22664:19:14"},"scope":6193,"src":"22610:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5631,"nodeType":"Block","src":"23231:150:14","statements":[{"expression":{"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5614,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"23241:10:14","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5617,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5609,"src":"23261:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23254:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int168_$","typeString":"type(int168)"},"typeName":{"id":5615,"name":"int168","nodeType":"ElementaryTypeName","src":"23254:6:14","typeDescriptions":{}}},"id":5618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23254:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"src":"23241:26:14","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"id":5620,"nodeType":"ExpressionStatement","src":"23241:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5621,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"23281:10:14","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5622,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5609,"src":"23295:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23281:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5630,"nodeType":"IfStatement","src":"23277:98:14","trueBody":{"id":5629,"nodeType":"Block","src":"23302:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313638","id":5625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23353:3:14","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},{"id":5626,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5609,"src":"23358:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5624,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"23323:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23323:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5628,"nodeType":"RevertStatement","src":"23316:48:14"}]}}]},"documentation":{"id":5607,"nodeType":"StructuredDocumentation","src":"22840:312:14","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"},"id":5632,"implemented":true,"kind":"function","modifiers":[],"name":"toInt168","nameLocation":"23166:8:14","nodeType":"FunctionDefinition","parameters":{"id":5610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5609,"mutability":"mutable","name":"value","nameLocation":"23182:5:14","nodeType":"VariableDeclaration","scope":5632,"src":"23175:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5608,"name":"int256","nodeType":"ElementaryTypeName","src":"23175:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23174:14:14"},"returnParameters":{"id":5613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5612,"mutability":"mutable","name":"downcasted","nameLocation":"23219:10:14","nodeType":"VariableDeclaration","scope":5632,"src":"23212:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"},"typeName":{"id":5611,"name":"int168","nodeType":"ElementaryTypeName","src":"23212:6:14","typeDescriptions":{"typeIdentifier":"t_int168","typeString":"int168"}},"visibility":"internal"}],"src":"23211:19:14"},"scope":6193,"src":"23157:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5657,"nodeType":"Block","src":"23778:150:14","statements":[{"expression":{"id":5645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5640,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"23788:10:14","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5643,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"23808:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23801:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int160_$","typeString":"type(int160)"},"typeName":{"id":5641,"name":"int160","nodeType":"ElementaryTypeName","src":"23801:6:14","typeDescriptions":{}}},"id":5644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23801:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"src":"23788:26:14","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"id":5646,"nodeType":"ExpressionStatement","src":"23788:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5647,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"23828:10:14","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5648,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"23842:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"23828:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5656,"nodeType":"IfStatement","src":"23824:98:14","trueBody":{"id":5655,"nodeType":"Block","src":"23849:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313630","id":5651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23900:3:14","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},{"id":5652,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5635,"src":"23905:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5650,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"23870:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23870:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5654,"nodeType":"RevertStatement","src":"23863:48:14"}]}}]},"documentation":{"id":5633,"nodeType":"StructuredDocumentation","src":"23387:312:14","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"},"id":5658,"implemented":true,"kind":"function","modifiers":[],"name":"toInt160","nameLocation":"23713:8:14","nodeType":"FunctionDefinition","parameters":{"id":5636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5635,"mutability":"mutable","name":"value","nameLocation":"23729:5:14","nodeType":"VariableDeclaration","scope":5658,"src":"23722:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5634,"name":"int256","nodeType":"ElementaryTypeName","src":"23722:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"23721:14:14"},"returnParameters":{"id":5639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5638,"mutability":"mutable","name":"downcasted","nameLocation":"23766:10:14","nodeType":"VariableDeclaration","scope":5658,"src":"23759:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"},"typeName":{"id":5637,"name":"int160","nodeType":"ElementaryTypeName","src":"23759:6:14","typeDescriptions":{"typeIdentifier":"t_int160","typeString":"int160"}},"visibility":"internal"}],"src":"23758:19:14"},"scope":6193,"src":"23704:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5683,"nodeType":"Block","src":"24325:150:14","statements":[{"expression":{"id":5671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5666,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"24335:10:14","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5669,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"24355:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24348:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int152_$","typeString":"type(int152)"},"typeName":{"id":5667,"name":"int152","nodeType":"ElementaryTypeName","src":"24348:6:14","typeDescriptions":{}}},"id":5670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24348:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"src":"24335:26:14","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"id":5672,"nodeType":"ExpressionStatement","src":"24335:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5673,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"24375:10:14","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5674,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"24389:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24375:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5682,"nodeType":"IfStatement","src":"24371:98:14","trueBody":{"id":5681,"nodeType":"Block","src":"24396:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313532","id":5677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24447:3:14","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},{"id":5678,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"24452:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5676,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"24417:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24417:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5680,"nodeType":"RevertStatement","src":"24410:48:14"}]}}]},"documentation":{"id":5659,"nodeType":"StructuredDocumentation","src":"23934:312:14","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"},"id":5684,"implemented":true,"kind":"function","modifiers":[],"name":"toInt152","nameLocation":"24260:8:14","nodeType":"FunctionDefinition","parameters":{"id":5662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5661,"mutability":"mutable","name":"value","nameLocation":"24276:5:14","nodeType":"VariableDeclaration","scope":5684,"src":"24269:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5660,"name":"int256","nodeType":"ElementaryTypeName","src":"24269:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24268:14:14"},"returnParameters":{"id":5665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5664,"mutability":"mutable","name":"downcasted","nameLocation":"24313:10:14","nodeType":"VariableDeclaration","scope":5684,"src":"24306:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"},"typeName":{"id":5663,"name":"int152","nodeType":"ElementaryTypeName","src":"24306:6:14","typeDescriptions":{"typeIdentifier":"t_int152","typeString":"int152"}},"visibility":"internal"}],"src":"24305:19:14"},"scope":6193,"src":"24251:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5709,"nodeType":"Block","src":"24872:150:14","statements":[{"expression":{"id":5697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5692,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5690,"src":"24882:10:14","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5695,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"24902:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24895:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int144_$","typeString":"type(int144)"},"typeName":{"id":5693,"name":"int144","nodeType":"ElementaryTypeName","src":"24895:6:14","typeDescriptions":{}}},"id":5696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24895:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"src":"24882:26:14","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"id":5698,"nodeType":"ExpressionStatement","src":"24882:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5699,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5690,"src":"24922:10:14","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5700,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"24936:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"24922:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5708,"nodeType":"IfStatement","src":"24918:98:14","trueBody":{"id":5707,"nodeType":"Block","src":"24943:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313434","id":5703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24994:3:14","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},{"id":5704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"24999:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5702,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"24964:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24964:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5706,"nodeType":"RevertStatement","src":"24957:48:14"}]}}]},"documentation":{"id":5685,"nodeType":"StructuredDocumentation","src":"24481:312:14","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"},"id":5710,"implemented":true,"kind":"function","modifiers":[],"name":"toInt144","nameLocation":"24807:8:14","nodeType":"FunctionDefinition","parameters":{"id":5688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5687,"mutability":"mutable","name":"value","nameLocation":"24823:5:14","nodeType":"VariableDeclaration","scope":5710,"src":"24816:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5686,"name":"int256","nodeType":"ElementaryTypeName","src":"24816:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"24815:14:14"},"returnParameters":{"id":5691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5690,"mutability":"mutable","name":"downcasted","nameLocation":"24860:10:14","nodeType":"VariableDeclaration","scope":5710,"src":"24853:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"},"typeName":{"id":5689,"name":"int144","nodeType":"ElementaryTypeName","src":"24853:6:14","typeDescriptions":{"typeIdentifier":"t_int144","typeString":"int144"}},"visibility":"internal"}],"src":"24852:19:14"},"scope":6193,"src":"24798:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5735,"nodeType":"Block","src":"25419:150:14","statements":[{"expression":{"id":5723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5718,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"25429:10:14","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5721,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5713,"src":"25449:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25442:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int136_$","typeString":"type(int136)"},"typeName":{"id":5719,"name":"int136","nodeType":"ElementaryTypeName","src":"25442:6:14","typeDescriptions":{}}},"id":5722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25442:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"src":"25429:26:14","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"id":5724,"nodeType":"ExpressionStatement","src":"25429:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5725,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5716,"src":"25469:10:14","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5726,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5713,"src":"25483:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"25469:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5734,"nodeType":"IfStatement","src":"25465:98:14","trueBody":{"id":5733,"nodeType":"Block","src":"25490:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313336","id":5729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25541:3:14","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},{"id":5730,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5713,"src":"25546:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5728,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"25511:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25511:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5732,"nodeType":"RevertStatement","src":"25504:48:14"}]}}]},"documentation":{"id":5711,"nodeType":"StructuredDocumentation","src":"25028:312:14","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"},"id":5736,"implemented":true,"kind":"function","modifiers":[],"name":"toInt136","nameLocation":"25354:8:14","nodeType":"FunctionDefinition","parameters":{"id":5714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5713,"mutability":"mutable","name":"value","nameLocation":"25370:5:14","nodeType":"VariableDeclaration","scope":5736,"src":"25363:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5712,"name":"int256","nodeType":"ElementaryTypeName","src":"25363:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25362:14:14"},"returnParameters":{"id":5717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5716,"mutability":"mutable","name":"downcasted","nameLocation":"25407:10:14","nodeType":"VariableDeclaration","scope":5736,"src":"25400:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"},"typeName":{"id":5715,"name":"int136","nodeType":"ElementaryTypeName","src":"25400:6:14","typeDescriptions":{"typeIdentifier":"t_int136","typeString":"int136"}},"visibility":"internal"}],"src":"25399:19:14"},"scope":6193,"src":"25345:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5761,"nodeType":"Block","src":"25966:150:14","statements":[{"expression":{"id":5749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5744,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5742,"src":"25976:10:14","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5747,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5739,"src":"25996:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25989:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int128_$","typeString":"type(int128)"},"typeName":{"id":5745,"name":"int128","nodeType":"ElementaryTypeName","src":"25989:6:14","typeDescriptions":{}}},"id":5748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25989:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"src":"25976:26:14","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"id":5750,"nodeType":"ExpressionStatement","src":"25976:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5751,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5742,"src":"26016:10:14","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5752,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5739,"src":"26030:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26016:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5760,"nodeType":"IfStatement","src":"26012:98:14","trueBody":{"id":5759,"nodeType":"Block","src":"26037:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313238","id":5755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26088:3:14","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},{"id":5756,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5739,"src":"26093:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5754,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"26058:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26058:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5758,"nodeType":"RevertStatement","src":"26051:48:14"}]}}]},"documentation":{"id":5737,"nodeType":"StructuredDocumentation","src":"25575:312:14","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"},"id":5762,"implemented":true,"kind":"function","modifiers":[],"name":"toInt128","nameLocation":"25901:8:14","nodeType":"FunctionDefinition","parameters":{"id":5740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5739,"mutability":"mutable","name":"value","nameLocation":"25917:5:14","nodeType":"VariableDeclaration","scope":5762,"src":"25910:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5738,"name":"int256","nodeType":"ElementaryTypeName","src":"25910:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"25909:14:14"},"returnParameters":{"id":5743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5742,"mutability":"mutable","name":"downcasted","nameLocation":"25954:10:14","nodeType":"VariableDeclaration","scope":5762,"src":"25947:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":5741,"name":"int128","nodeType":"ElementaryTypeName","src":"25947:6:14","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"}],"src":"25946:19:14"},"scope":6193,"src":"25892:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5787,"nodeType":"Block","src":"26513:150:14","statements":[{"expression":{"id":5775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5770,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5768,"src":"26523:10:14","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5773,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"26543:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26536:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int120_$","typeString":"type(int120)"},"typeName":{"id":5771,"name":"int120","nodeType":"ElementaryTypeName","src":"26536:6:14","typeDescriptions":{}}},"id":5774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26536:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"src":"26523:26:14","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"id":5776,"nodeType":"ExpressionStatement","src":"26523:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5777,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5768,"src":"26563:10:14","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"26577:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26563:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5786,"nodeType":"IfStatement","src":"26559:98:14","trueBody":{"id":5785,"nodeType":"Block","src":"26584:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313230","id":5781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26635:3:14","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},{"id":5782,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5765,"src":"26640:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5780,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"26605:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26605:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5784,"nodeType":"RevertStatement","src":"26598:48:14"}]}}]},"documentation":{"id":5763,"nodeType":"StructuredDocumentation","src":"26122:312:14","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"},"id":5788,"implemented":true,"kind":"function","modifiers":[],"name":"toInt120","nameLocation":"26448:8:14","nodeType":"FunctionDefinition","parameters":{"id":5766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5765,"mutability":"mutable","name":"value","nameLocation":"26464:5:14","nodeType":"VariableDeclaration","scope":5788,"src":"26457:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5764,"name":"int256","nodeType":"ElementaryTypeName","src":"26457:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"26456:14:14"},"returnParameters":{"id":5769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5768,"mutability":"mutable","name":"downcasted","nameLocation":"26501:10:14","nodeType":"VariableDeclaration","scope":5788,"src":"26494:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"},"typeName":{"id":5767,"name":"int120","nodeType":"ElementaryTypeName","src":"26494:6:14","typeDescriptions":{"typeIdentifier":"t_int120","typeString":"int120"}},"visibility":"internal"}],"src":"26493:19:14"},"scope":6193,"src":"26439:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5813,"nodeType":"Block","src":"27060:150:14","statements":[{"expression":{"id":5801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5796,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5794,"src":"27070:10:14","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5799,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5791,"src":"27090:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27083:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int112_$","typeString":"type(int112)"},"typeName":{"id":5797,"name":"int112","nodeType":"ElementaryTypeName","src":"27083:6:14","typeDescriptions":{}}},"id":5800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27083:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"src":"27070:26:14","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"id":5802,"nodeType":"ExpressionStatement","src":"27070:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5803,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5794,"src":"27110:10:14","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5791,"src":"27124:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27110:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5812,"nodeType":"IfStatement","src":"27106:98:14","trueBody":{"id":5811,"nodeType":"Block","src":"27131:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313132","id":5807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27182:3:14","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},{"id":5808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5791,"src":"27187:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5806,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"27152:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27152:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5810,"nodeType":"RevertStatement","src":"27145:48:14"}]}}]},"documentation":{"id":5789,"nodeType":"StructuredDocumentation","src":"26669:312:14","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"},"id":5814,"implemented":true,"kind":"function","modifiers":[],"name":"toInt112","nameLocation":"26995:8:14","nodeType":"FunctionDefinition","parameters":{"id":5792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5791,"mutability":"mutable","name":"value","nameLocation":"27011:5:14","nodeType":"VariableDeclaration","scope":5814,"src":"27004:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5790,"name":"int256","nodeType":"ElementaryTypeName","src":"27004:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27003:14:14"},"returnParameters":{"id":5795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5794,"mutability":"mutable","name":"downcasted","nameLocation":"27048:10:14","nodeType":"VariableDeclaration","scope":5814,"src":"27041:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"},"typeName":{"id":5793,"name":"int112","nodeType":"ElementaryTypeName","src":"27041:6:14","typeDescriptions":{"typeIdentifier":"t_int112","typeString":"int112"}},"visibility":"internal"}],"src":"27040:19:14"},"scope":6193,"src":"26986:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5839,"nodeType":"Block","src":"27607:150:14","statements":[{"expression":{"id":5827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5822,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5820,"src":"27617:10:14","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5825,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"27637:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27630:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int104_$","typeString":"type(int104)"},"typeName":{"id":5823,"name":"int104","nodeType":"ElementaryTypeName","src":"27630:6:14","typeDescriptions":{}}},"id":5826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27630:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"src":"27617:26:14","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"id":5828,"nodeType":"ExpressionStatement","src":"27617:26:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5829,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5820,"src":"27657:10:14","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5830,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"27671:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27657:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5838,"nodeType":"IfStatement","src":"27653:98:14","trueBody":{"id":5837,"nodeType":"Block","src":"27678:73:14","statements":[{"errorCall":{"arguments":[{"hexValue":"313034","id":5833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27729:3:14","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},{"id":5834,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"27734:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5832,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"27699:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27699:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5836,"nodeType":"RevertStatement","src":"27692:48:14"}]}}]},"documentation":{"id":5815,"nodeType":"StructuredDocumentation","src":"27216:312:14","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"},"id":5840,"implemented":true,"kind":"function","modifiers":[],"name":"toInt104","nameLocation":"27542:8:14","nodeType":"FunctionDefinition","parameters":{"id":5818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5817,"mutability":"mutable","name":"value","nameLocation":"27558:5:14","nodeType":"VariableDeclaration","scope":5840,"src":"27551:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5816,"name":"int256","nodeType":"ElementaryTypeName","src":"27551:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"27550:14:14"},"returnParameters":{"id":5821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5820,"mutability":"mutable","name":"downcasted","nameLocation":"27595:10:14","nodeType":"VariableDeclaration","scope":5840,"src":"27588:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"},"typeName":{"id":5819,"name":"int104","nodeType":"ElementaryTypeName","src":"27588:6:14","typeDescriptions":{"typeIdentifier":"t_int104","typeString":"int104"}},"visibility":"internal"}],"src":"27587:19:14"},"scope":6193,"src":"27533:224:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5865,"nodeType":"Block","src":"28147:148:14","statements":[{"expression":{"id":5853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5848,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5846,"src":"28157:10:14","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5851,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5843,"src":"28176:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28170:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int96_$","typeString":"type(int96)"},"typeName":{"id":5849,"name":"int96","nodeType":"ElementaryTypeName","src":"28170:5:14","typeDescriptions":{}}},"id":5852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28170:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"src":"28157:25:14","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"id":5854,"nodeType":"ExpressionStatement","src":"28157:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5855,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5846,"src":"28196:10:14","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5856,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5843,"src":"28210:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28196:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5864,"nodeType":"IfStatement","src":"28192:97:14","trueBody":{"id":5863,"nodeType":"Block","src":"28217:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3936","id":5859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28268:2:14","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},{"id":5860,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5843,"src":"28272:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5858,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"28238:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28238:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5862,"nodeType":"RevertStatement","src":"28231:47:14"}]}}]},"documentation":{"id":5841,"nodeType":"StructuredDocumentation","src":"27763:307:14","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"},"id":5866,"implemented":true,"kind":"function","modifiers":[],"name":"toInt96","nameLocation":"28084:7:14","nodeType":"FunctionDefinition","parameters":{"id":5844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5843,"mutability":"mutable","name":"value","nameLocation":"28099:5:14","nodeType":"VariableDeclaration","scope":5866,"src":"28092:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5842,"name":"int256","nodeType":"ElementaryTypeName","src":"28092:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28091:14:14"},"returnParameters":{"id":5847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5846,"mutability":"mutable","name":"downcasted","nameLocation":"28135:10:14","nodeType":"VariableDeclaration","scope":5866,"src":"28129:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"},"typeName":{"id":5845,"name":"int96","nodeType":"ElementaryTypeName","src":"28129:5:14","typeDescriptions":{"typeIdentifier":"t_int96","typeString":"int96"}},"visibility":"internal"}],"src":"28128:18:14"},"scope":6193,"src":"28075:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5891,"nodeType":"Block","src":"28685:148:14","statements":[{"expression":{"id":5879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5874,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5872,"src":"28695:10:14","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"28714:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28708:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int88_$","typeString":"type(int88)"},"typeName":{"id":5875,"name":"int88","nodeType":"ElementaryTypeName","src":"28708:5:14","typeDescriptions":{}}},"id":5878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28708:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"src":"28695:25:14","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"id":5880,"nodeType":"ExpressionStatement","src":"28695:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5881,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5872,"src":"28734:10:14","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5882,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"28748:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"28734:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5890,"nodeType":"IfStatement","src":"28730:97:14","trueBody":{"id":5889,"nodeType":"Block","src":"28755:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3838","id":5885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28806:2:14","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},{"id":5886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5869,"src":"28810:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5884,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"28776:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28776:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5888,"nodeType":"RevertStatement","src":"28769:47:14"}]}}]},"documentation":{"id":5867,"nodeType":"StructuredDocumentation","src":"28301:307:14","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"},"id":5892,"implemented":true,"kind":"function","modifiers":[],"name":"toInt88","nameLocation":"28622:7:14","nodeType":"FunctionDefinition","parameters":{"id":5870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5869,"mutability":"mutable","name":"value","nameLocation":"28637:5:14","nodeType":"VariableDeclaration","scope":5892,"src":"28630:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5868,"name":"int256","nodeType":"ElementaryTypeName","src":"28630:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28629:14:14"},"returnParameters":{"id":5873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5872,"mutability":"mutable","name":"downcasted","nameLocation":"28673:10:14","nodeType":"VariableDeclaration","scope":5892,"src":"28667:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"},"typeName":{"id":5871,"name":"int88","nodeType":"ElementaryTypeName","src":"28667:5:14","typeDescriptions":{"typeIdentifier":"t_int88","typeString":"int88"}},"visibility":"internal"}],"src":"28666:18:14"},"scope":6193,"src":"28613:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5917,"nodeType":"Block","src":"29223:148:14","statements":[{"expression":{"id":5905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5900,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5898,"src":"29233:10:14","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5903,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"29252:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29246:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int80_$","typeString":"type(int80)"},"typeName":{"id":5901,"name":"int80","nodeType":"ElementaryTypeName","src":"29246:5:14","typeDescriptions":{}}},"id":5904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29246:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"src":"29233:25:14","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"id":5906,"nodeType":"ExpressionStatement","src":"29233:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5907,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5898,"src":"29272:10:14","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5908,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"29286:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29272:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5916,"nodeType":"IfStatement","src":"29268:97:14","trueBody":{"id":5915,"nodeType":"Block","src":"29293:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3830","id":5911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29344:2:14","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},{"id":5912,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"29348:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5910,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"29314:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29314:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5914,"nodeType":"RevertStatement","src":"29307:47:14"}]}}]},"documentation":{"id":5893,"nodeType":"StructuredDocumentation","src":"28839:307:14","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"},"id":5918,"implemented":true,"kind":"function","modifiers":[],"name":"toInt80","nameLocation":"29160:7:14","nodeType":"FunctionDefinition","parameters":{"id":5896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5895,"mutability":"mutable","name":"value","nameLocation":"29175:5:14","nodeType":"VariableDeclaration","scope":5918,"src":"29168:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5894,"name":"int256","nodeType":"ElementaryTypeName","src":"29168:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29167:14:14"},"returnParameters":{"id":5899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5898,"mutability":"mutable","name":"downcasted","nameLocation":"29211:10:14","nodeType":"VariableDeclaration","scope":5918,"src":"29205:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"},"typeName":{"id":5897,"name":"int80","nodeType":"ElementaryTypeName","src":"29205:5:14","typeDescriptions":{"typeIdentifier":"t_int80","typeString":"int80"}},"visibility":"internal"}],"src":"29204:18:14"},"scope":6193,"src":"29151:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5943,"nodeType":"Block","src":"29761:148:14","statements":[{"expression":{"id":5931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5926,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"29771:10:14","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5929,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"29790:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29784:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int72_$","typeString":"type(int72)"},"typeName":{"id":5927,"name":"int72","nodeType":"ElementaryTypeName","src":"29784:5:14","typeDescriptions":{}}},"id":5930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29784:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"src":"29771:25:14","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"id":5932,"nodeType":"ExpressionStatement","src":"29771:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5933,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5924,"src":"29810:10:14","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"29824:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"29810:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5942,"nodeType":"IfStatement","src":"29806:97:14","trueBody":{"id":5941,"nodeType":"Block","src":"29831:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3732","id":5937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29882:2:14","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},{"id":5938,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"29886:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5936,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"29852:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29852:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5940,"nodeType":"RevertStatement","src":"29845:47:14"}]}}]},"documentation":{"id":5919,"nodeType":"StructuredDocumentation","src":"29377:307:14","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"},"id":5944,"implemented":true,"kind":"function","modifiers":[],"name":"toInt72","nameLocation":"29698:7:14","nodeType":"FunctionDefinition","parameters":{"id":5922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5921,"mutability":"mutable","name":"value","nameLocation":"29713:5:14","nodeType":"VariableDeclaration","scope":5944,"src":"29706:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5920,"name":"int256","nodeType":"ElementaryTypeName","src":"29706:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"29705:14:14"},"returnParameters":{"id":5925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5924,"mutability":"mutable","name":"downcasted","nameLocation":"29749:10:14","nodeType":"VariableDeclaration","scope":5944,"src":"29743:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"},"typeName":{"id":5923,"name":"int72","nodeType":"ElementaryTypeName","src":"29743:5:14","typeDescriptions":{"typeIdentifier":"t_int72","typeString":"int72"}},"visibility":"internal"}],"src":"29742:18:14"},"scope":6193,"src":"29689:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5969,"nodeType":"Block","src":"30299:148:14","statements":[{"expression":{"id":5957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5952,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5950,"src":"30309:10:14","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5955,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"30328:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30322:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int64_$","typeString":"type(int64)"},"typeName":{"id":5953,"name":"int64","nodeType":"ElementaryTypeName","src":"30322:5:14","typeDescriptions":{}}},"id":5956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30322:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"src":"30309:25:14","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"id":5958,"nodeType":"ExpressionStatement","src":"30309:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5959,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5950,"src":"30348:10:14","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5960,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"30362:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30348:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5968,"nodeType":"IfStatement","src":"30344:97:14","trueBody":{"id":5967,"nodeType":"Block","src":"30369:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3634","id":5963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30420:2:14","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},{"id":5964,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"30424:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5962,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"30390:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30390:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5966,"nodeType":"RevertStatement","src":"30383:47:14"}]}}]},"documentation":{"id":5945,"nodeType":"StructuredDocumentation","src":"29915:307:14","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"},"id":5970,"implemented":true,"kind":"function","modifiers":[],"name":"toInt64","nameLocation":"30236:7:14","nodeType":"FunctionDefinition","parameters":{"id":5948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5947,"mutability":"mutable","name":"value","nameLocation":"30251:5:14","nodeType":"VariableDeclaration","scope":5970,"src":"30244:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5946,"name":"int256","nodeType":"ElementaryTypeName","src":"30244:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30243:14:14"},"returnParameters":{"id":5951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5950,"mutability":"mutable","name":"downcasted","nameLocation":"30287:10:14","nodeType":"VariableDeclaration","scope":5970,"src":"30281:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"},"typeName":{"id":5949,"name":"int64","nodeType":"ElementaryTypeName","src":"30281:5:14","typeDescriptions":{"typeIdentifier":"t_int64","typeString":"int64"}},"visibility":"internal"}],"src":"30280:18:14"},"scope":6193,"src":"30227:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5995,"nodeType":"Block","src":"30837:148:14","statements":[{"expression":{"id":5983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5978,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"30847:10:14","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5981,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"30866:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30860:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int56_$","typeString":"type(int56)"},"typeName":{"id":5979,"name":"int56","nodeType":"ElementaryTypeName","src":"30860:5:14","typeDescriptions":{}}},"id":5982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30860:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"src":"30847:25:14","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":5984,"nodeType":"ExpressionStatement","src":"30847:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5985,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"30886:10:14","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5986,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"30900:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"30886:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5994,"nodeType":"IfStatement","src":"30882:97:14","trueBody":{"id":5993,"nodeType":"Block","src":"30907:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3536","id":5989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30958:2:14","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"id":5990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"30962:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5988,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"30928:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":5991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30928:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5992,"nodeType":"RevertStatement","src":"30921:47:14"}]}}]},"documentation":{"id":5971,"nodeType":"StructuredDocumentation","src":"30453:307:14","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"},"id":5996,"implemented":true,"kind":"function","modifiers":[],"name":"toInt56","nameLocation":"30774:7:14","nodeType":"FunctionDefinition","parameters":{"id":5974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5973,"mutability":"mutable","name":"value","nameLocation":"30789:5:14","nodeType":"VariableDeclaration","scope":5996,"src":"30782:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5972,"name":"int256","nodeType":"ElementaryTypeName","src":"30782:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"30781:14:14"},"returnParameters":{"id":5977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5976,"mutability":"mutable","name":"downcasted","nameLocation":"30825:10:14","nodeType":"VariableDeclaration","scope":5996,"src":"30819:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":5975,"name":"int56","nodeType":"ElementaryTypeName","src":"30819:5:14","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"}],"src":"30818:18:14"},"scope":6193,"src":"30765:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6021,"nodeType":"Block","src":"31375:148:14","statements":[{"expression":{"id":6009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6004,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"31385:10:14","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6007,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"31404:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31398:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int48_$","typeString":"type(int48)"},"typeName":{"id":6005,"name":"int48","nodeType":"ElementaryTypeName","src":"31398:5:14","typeDescriptions":{}}},"id":6008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31398:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"src":"31385:25:14","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"id":6010,"nodeType":"ExpressionStatement","src":"31385:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6011,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"31424:10:14","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6012,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"31438:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31424:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6020,"nodeType":"IfStatement","src":"31420:97:14","trueBody":{"id":6019,"nodeType":"Block","src":"31445:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3438","id":6015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31496:2:14","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"id":6016,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"31500:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6014,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"31466:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31466:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6018,"nodeType":"RevertStatement","src":"31459:47:14"}]}}]},"documentation":{"id":5997,"nodeType":"StructuredDocumentation","src":"30991:307:14","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"},"id":6022,"implemented":true,"kind":"function","modifiers":[],"name":"toInt48","nameLocation":"31312:7:14","nodeType":"FunctionDefinition","parameters":{"id":6000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5999,"mutability":"mutable","name":"value","nameLocation":"31327:5:14","nodeType":"VariableDeclaration","scope":6022,"src":"31320:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5998,"name":"int256","nodeType":"ElementaryTypeName","src":"31320:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31319:14:14"},"returnParameters":{"id":6003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6002,"mutability":"mutable","name":"downcasted","nameLocation":"31363:10:14","nodeType":"VariableDeclaration","scope":6022,"src":"31357:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"},"typeName":{"id":6001,"name":"int48","nodeType":"ElementaryTypeName","src":"31357:5:14","typeDescriptions":{"typeIdentifier":"t_int48","typeString":"int48"}},"visibility":"internal"}],"src":"31356:18:14"},"scope":6193,"src":"31303:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6047,"nodeType":"Block","src":"31913:148:14","statements":[{"expression":{"id":6035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6030,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6028,"src":"31923:10:14","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6033,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"31942:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31936:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int40_$","typeString":"type(int40)"},"typeName":{"id":6031,"name":"int40","nodeType":"ElementaryTypeName","src":"31936:5:14","typeDescriptions":{}}},"id":6034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31936:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"src":"31923:25:14","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"id":6036,"nodeType":"ExpressionStatement","src":"31923:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6037,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6028,"src":"31962:10:14","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6038,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"31976:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"31962:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6046,"nodeType":"IfStatement","src":"31958:97:14","trueBody":{"id":6045,"nodeType":"Block","src":"31983:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3430","id":6041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32034:2:14","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},{"id":6042,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6025,"src":"32038:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6040,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"32004:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32004:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6044,"nodeType":"RevertStatement","src":"31997:47:14"}]}}]},"documentation":{"id":6023,"nodeType":"StructuredDocumentation","src":"31529:307:14","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"},"id":6048,"implemented":true,"kind":"function","modifiers":[],"name":"toInt40","nameLocation":"31850:7:14","nodeType":"FunctionDefinition","parameters":{"id":6026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6025,"mutability":"mutable","name":"value","nameLocation":"31865:5:14","nodeType":"VariableDeclaration","scope":6048,"src":"31858:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6024,"name":"int256","nodeType":"ElementaryTypeName","src":"31858:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31857:14:14"},"returnParameters":{"id":6029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6028,"mutability":"mutable","name":"downcasted","nameLocation":"31901:10:14","nodeType":"VariableDeclaration","scope":6048,"src":"31895:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"},"typeName":{"id":6027,"name":"int40","nodeType":"ElementaryTypeName","src":"31895:5:14","typeDescriptions":{"typeIdentifier":"t_int40","typeString":"int40"}},"visibility":"internal"}],"src":"31894:18:14"},"scope":6193,"src":"31841:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6073,"nodeType":"Block","src":"32451:148:14","statements":[{"expression":{"id":6061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6056,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6054,"src":"32461:10:14","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"32480:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32474:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int32_$","typeString":"type(int32)"},"typeName":{"id":6057,"name":"int32","nodeType":"ElementaryTypeName","src":"32474:5:14","typeDescriptions":{}}},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32474:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"src":"32461:25:14","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"id":6062,"nodeType":"ExpressionStatement","src":"32461:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6063,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6054,"src":"32500:10:14","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6064,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"32514:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32500:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6072,"nodeType":"IfStatement","src":"32496:97:14","trueBody":{"id":6071,"nodeType":"Block","src":"32521:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3332","id":6067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32572:2:14","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"id":6068,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"32576:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6066,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"32542:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32542:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6070,"nodeType":"RevertStatement","src":"32535:47:14"}]}}]},"documentation":{"id":6049,"nodeType":"StructuredDocumentation","src":"32067:307:14","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"},"id":6074,"implemented":true,"kind":"function","modifiers":[],"name":"toInt32","nameLocation":"32388:7:14","nodeType":"FunctionDefinition","parameters":{"id":6052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6051,"mutability":"mutable","name":"value","nameLocation":"32403:5:14","nodeType":"VariableDeclaration","scope":6074,"src":"32396:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6050,"name":"int256","nodeType":"ElementaryTypeName","src":"32396:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32395:14:14"},"returnParameters":{"id":6055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6054,"mutability":"mutable","name":"downcasted","nameLocation":"32439:10:14","nodeType":"VariableDeclaration","scope":6074,"src":"32433:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":6053,"name":"int32","nodeType":"ElementaryTypeName","src":"32433:5:14","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"}],"src":"32432:18:14"},"scope":6193,"src":"32379:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6099,"nodeType":"Block","src":"32989:148:14","statements":[{"expression":{"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6082,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6080,"src":"32999:10:14","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6085,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"33018:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33012:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":6083,"name":"int24","nodeType":"ElementaryTypeName","src":"33012:5:14","typeDescriptions":{}}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33012:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"32999:25:14","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":6088,"nodeType":"ExpressionStatement","src":"32999:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6089,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6080,"src":"33038:10:14","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6090,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"33052:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33038:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6098,"nodeType":"IfStatement","src":"33034:97:14","trueBody":{"id":6097,"nodeType":"Block","src":"33059:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3234","id":6093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33110:2:14","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},{"id":6094,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"33114:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6092,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"33080:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33080:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6096,"nodeType":"RevertStatement","src":"33073:47:14"}]}}]},"documentation":{"id":6075,"nodeType":"StructuredDocumentation","src":"32605:307:14","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"},"id":6100,"implemented":true,"kind":"function","modifiers":[],"name":"toInt24","nameLocation":"32926:7:14","nodeType":"FunctionDefinition","parameters":{"id":6078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6077,"mutability":"mutable","name":"value","nameLocation":"32941:5:14","nodeType":"VariableDeclaration","scope":6100,"src":"32934:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6076,"name":"int256","nodeType":"ElementaryTypeName","src":"32934:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32933:14:14"},"returnParameters":{"id":6081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6080,"mutability":"mutable","name":"downcasted","nameLocation":"32977:10:14","nodeType":"VariableDeclaration","scope":6100,"src":"32971:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":6079,"name":"int24","nodeType":"ElementaryTypeName","src":"32971:5:14","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"32970:18:14"},"scope":6193,"src":"32917:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6125,"nodeType":"Block","src":"33527:148:14","statements":[{"expression":{"id":6113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6108,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6106,"src":"33537:10:14","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"33556:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33550:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int16_$","typeString":"type(int16)"},"typeName":{"id":6109,"name":"int16","nodeType":"ElementaryTypeName","src":"33550:5:14","typeDescriptions":{}}},"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33550:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"src":"33537:25:14","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"id":6114,"nodeType":"ExpressionStatement","src":"33537:25:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6115,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6106,"src":"33576:10:14","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6116,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"33590:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"33576:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6124,"nodeType":"IfStatement","src":"33572:97:14","trueBody":{"id":6123,"nodeType":"Block","src":"33597:72:14","statements":[{"errorCall":{"arguments":[{"hexValue":"3136","id":6119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33648:2:14","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"id":6120,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"33652:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6118,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"33618:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33618:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6122,"nodeType":"RevertStatement","src":"33611:47:14"}]}}]},"documentation":{"id":6101,"nodeType":"StructuredDocumentation","src":"33143:307:14","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"},"id":6126,"implemented":true,"kind":"function","modifiers":[],"name":"toInt16","nameLocation":"33464:7:14","nodeType":"FunctionDefinition","parameters":{"id":6104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6103,"mutability":"mutable","name":"value","nameLocation":"33479:5:14","nodeType":"VariableDeclaration","scope":6126,"src":"33472:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6102,"name":"int256","nodeType":"ElementaryTypeName","src":"33472:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"33471:14:14"},"returnParameters":{"id":6107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6106,"mutability":"mutable","name":"downcasted","nameLocation":"33515:10:14","nodeType":"VariableDeclaration","scope":6126,"src":"33509:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":6105,"name":"int16","nodeType":"ElementaryTypeName","src":"33509:5:14","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"33508:18:14"},"scope":6193,"src":"33455:220:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6151,"nodeType":"Block","src":"34058:146:14","statements":[{"expression":{"id":6139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6134,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"34068:10:14","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6137,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6129,"src":"34086:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34081:4:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int8_$","typeString":"type(int8)"},"typeName":{"id":6135,"name":"int8","nodeType":"ElementaryTypeName","src":"34081:4:14","typeDescriptions":{}}},"id":6138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34081:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"src":"34068:24:14","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"id":6140,"nodeType":"ExpressionStatement","src":"34068:24:14"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6141,"name":"downcasted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"34106:10:14","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":6142,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6129,"src":"34120:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"34106:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6150,"nodeType":"IfStatement","src":"34102:96:14","trueBody":{"id":6149,"nodeType":"Block","src":"34127:71:14","statements":[{"errorCall":{"arguments":[{"hexValue":"38","id":6145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34178:1:14","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},{"id":6146,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6129,"src":"34181:5:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6144,"name":"SafeCastOverflowedIntDowncast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4450,"src":"34148:29:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$","typeString":"function (uint8,int256) pure returns (error)"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34148:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6148,"nodeType":"RevertStatement","src":"34141:46:14"}]}}]},"documentation":{"id":6127,"nodeType":"StructuredDocumentation","src":"33681:302:14","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"},"id":6152,"implemented":true,"kind":"function","modifiers":[],"name":"toInt8","nameLocation":"33997:6:14","nodeType":"FunctionDefinition","parameters":{"id":6130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6129,"mutability":"mutable","name":"value","nameLocation":"34011:5:14","nodeType":"VariableDeclaration","scope":6152,"src":"34004:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6128,"name":"int256","nodeType":"ElementaryTypeName","src":"34004:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34003:14:14"},"returnParameters":{"id":6133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6132,"mutability":"mutable","name":"downcasted","nameLocation":"34046:10:14","nodeType":"VariableDeclaration","scope":6152,"src":"34041:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":6131,"name":"int8","nodeType":"ElementaryTypeName","src":"34041:4:14","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"34040:17:14"},"scope":6193,"src":"33988:216:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6181,"nodeType":"Block","src":"34444:250:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"34557:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"expression":{"arguments":[{"id":6165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34578:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6164,"name":"int256","nodeType":"ElementaryTypeName","src":"34578:6:14","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"id":6163,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"34573:4:14","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34573:12:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_int256","typeString":"type(int256)"}},"id":6167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34586:3:14","memberName":"max","nodeType":"MemberAccess","src":"34573:16:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34565:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6161,"name":"uint256","nodeType":"ElementaryTypeName","src":"34565:7:14","typeDescriptions":{}}},"id":6168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34565:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34557:33:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6175,"nodeType":"IfStatement","src":"34553:105:14","trueBody":{"id":6174,"nodeType":"Block","src":"34592:66:14","statements":[{"errorCall":{"arguments":[{"id":6171,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"34641:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6170,"name":"SafeCastOverflowedUintToInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"34613:27:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":6172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34613:34:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6173,"nodeType":"RevertStatement","src":"34606:41:14"}]}},{"expression":{"arguments":[{"id":6178,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"34681:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34674:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":6176,"name":"int256","nodeType":"ElementaryTypeName","src":"34674:6:14","typeDescriptions":{}}},"id":6179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34674:13:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6159,"id":6180,"nodeType":"Return","src":"34667:20:14"}]},"documentation":{"id":6153,"nodeType":"StructuredDocumentation","src":"34210:165:14","text":" @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256."},"id":6182,"implemented":true,"kind":"function","modifiers":[],"name":"toInt256","nameLocation":"34389:8:14","nodeType":"FunctionDefinition","parameters":{"id":6156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6155,"mutability":"mutable","name":"value","nameLocation":"34406:5:14","nodeType":"VariableDeclaration","scope":6182,"src":"34398:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6154,"name":"uint256","nodeType":"ElementaryTypeName","src":"34398:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34397:15:14"},"returnParameters":{"id":6159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6182,"src":"34436:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6157,"name":"int256","nodeType":"ElementaryTypeName","src":"34436:6:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"34435:8:14"},"scope":6193,"src":"34380:314:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6191,"nodeType":"Block","src":"34853:114:14","statements":[{"AST":{"nativeSrc":"34915:46:14","nodeType":"YulBlock","src":"34915:46:14","statements":[{"nativeSrc":"34929:22:14","nodeType":"YulAssignment","src":"34929:22:14","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"34948:1:14","nodeType":"YulIdentifier","src":"34948:1:14"}],"functionName":{"name":"iszero","nativeSrc":"34941:6:14","nodeType":"YulIdentifier","src":"34941:6:14"},"nativeSrc":"34941:9:14","nodeType":"YulFunctionCall","src":"34941:9:14"}],"functionName":{"name":"iszero","nativeSrc":"34934:6:14","nodeType":"YulIdentifier","src":"34934:6:14"},"nativeSrc":"34934:17:14","nodeType":"YulFunctionCall","src":"34934:17:14"},"variableNames":[{"name":"u","nativeSrc":"34929:1:14","nodeType":"YulIdentifier","src":"34929:1:14"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6185,"isOffset":false,"isSlot":false,"src":"34948:1:14","valueSize":1},{"declaration":6188,"isOffset":false,"isSlot":false,"src":"34929:1:14","valueSize":1}],"id":6190,"nodeType":"InlineAssembly","src":"34906:55:14"}]},"documentation":{"id":6183,"nodeType":"StructuredDocumentation","src":"34700:90:14","text":" @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump."},"id":6192,"implemented":true,"kind":"function","modifiers":[],"name":"toUint","nameLocation":"34804:6:14","nodeType":"FunctionDefinition","parameters":{"id":6186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6185,"mutability":"mutable","name":"b","nameLocation":"34816:1:14","nodeType":"VariableDeclaration","scope":6192,"src":"34811:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6184,"name":"bool","nodeType":"ElementaryTypeName","src":"34811:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34810:8:14"},"returnParameters":{"id":6189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6188,"mutability":"mutable","name":"u","nameLocation":"34850:1:14","nodeType":"VariableDeclaration","scope":6192,"src":"34842:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6187,"name":"uint256","nodeType":"ElementaryTypeName","src":"34842:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34841:11:14"},"scope":6193,"src":"34795:172:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":6194,"src":"769:34200:14","usedErrors":[4438,4443,4450,4455],"usedEvents":[]}],"src":"192:34778:14"},"id":14},"@solady/accounts/Receiver.sol":{"ast":{"absolutePath":"@solady/accounts/Receiver.sol","exportedSymbols":{"Receiver":[6215]},"id":6216,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6195,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:15"},{"abstract":true,"baseContracts":[],"canonicalName":"Receiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":6196,"nodeType":"StructuredDocumentation","src":"57:374:15","text":"@notice Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\n @author Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\n @dev Note:\n - Handles all ERC721 and ERC1155 token safety callbacks.\n - Collapses function table gas overhead and code size.\n - Utilizes fallback so unknown calldata will pass on."},"fullyImplemented":true,"id":6215,"linearizedBaseContracts":[6215],"name":"Receiver","nameLocation":"449:8:15","nodeType":"ContractDefinition","nodes":[{"body":{"id":6200,"nodeType":"Block","src":"531:2:15","statements":[]},"documentation":{"id":6197,"nodeType":"StructuredDocumentation","src":"464:27:15","text":"@dev For receiving ETH."},"id":6201,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6198,"nodeType":"ParameterList","parameters":[],"src":"503:2:15"},"returnParameters":{"id":6199,"nodeType":"ParameterList","parameters":[],"src":"531:0:15"},"scope":6215,"src":"496:37:15","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":6207,"nodeType":"Block","src":"661:2:15","statements":[]},"documentation":{"id":6202,"nodeType":"StructuredDocumentation","src":"539:64:15","text":"@dev Fallback function with the `receiverFallback` modifier."},"id":6208,"implemented":true,"kind":"fallback","modifiers":[{"id":6205,"kind":"modifierInvocation","modifierName":{"id":6204,"name":"receiverFallback","nameLocations":["644:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":6214,"src":"644:16:15"},"nodeType":"ModifierInvocation","src":"644:16:15"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":6203,"nodeType":"ParameterList","parameters":[],"src":"616:2:15"},"returnParameters":{"id":6206,"nodeType":"ParameterList","parameters":[],"src":"661:0:15"},"scope":6215,"src":"608:55:15","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":6213,"nodeType":"Block","src":"780:601:15","statements":[{"AST":{"nativeSrc":"842:522:15","nodeType":"YulBlock","src":"842:522:15","statements":[{"nativeSrc":"856:34:15","nodeType":"YulVariableDeclaration","src":"856:34:15","value":{"arguments":[{"kind":"number","nativeSrc":"869:3:15","nodeType":"YulLiteral","src":"869:3:15","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"887:1:15","nodeType":"YulLiteral","src":"887:1:15","type":"","value":"0"}],"functionName":{"name":"calldataload","nativeSrc":"874:12:15","nodeType":"YulIdentifier","src":"874:12:15"},"nativeSrc":"874:15:15","nodeType":"YulFunctionCall","src":"874:15:15"}],"functionName":{"name":"shr","nativeSrc":"865:3:15","nodeType":"YulIdentifier","src":"865:3:15"},"nativeSrc":"865:25:15","nodeType":"YulFunctionCall","src":"865:25:15"},"variables":[{"name":"s","nativeSrc":"860:1:15","nodeType":"YulTypedName","src":"860:1:15","type":""}]},{"body":{"nativeSrc":"1231:123:15","nodeType":"YulBlock","src":"1231:123:15","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1256:4:15","nodeType":"YulLiteral","src":"1256:4:15","type":"","value":"0x20"},{"name":"s","nativeSrc":"1262:1:15","nodeType":"YulIdentifier","src":"1262:1:15"}],"functionName":{"name":"mstore","nativeSrc":"1249:6:15","nodeType":"YulIdentifier","src":"1249:6:15"},"nativeSrc":"1249:15:15","nodeType":"YulFunctionCall","src":"1249:15:15"},"nativeSrc":"1249:15:15","nodeType":"YulExpressionStatement","src":"1249:15:15"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1308:4:15","nodeType":"YulLiteral","src":"1308:4:15","type":"","value":"0x3c"},{"kind":"number","nativeSrc":"1314:4:15","nodeType":"YulLiteral","src":"1314:4:15","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"1301:6:15","nodeType":"YulIdentifier","src":"1301:6:15"},"nativeSrc":"1301:18:15","nodeType":"YulFunctionCall","src":"1301:18:15"},"nativeSrc":"1301:18:15","nodeType":"YulExpressionStatement","src":"1301:18:15"}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"1173:1:15","nodeType":"YulIdentifier","src":"1173:1:15"},{"kind":"number","nativeSrc":"1176:10:15","nodeType":"YulLiteral","src":"1176:10:15","type":"","value":"0x150b7a02"}],"functionName":{"name":"eq","nativeSrc":"1170:2:15","nodeType":"YulIdentifier","src":"1170:2:15"},"nativeSrc":"1170:17:15","nodeType":"YulFunctionCall","src":"1170:17:15"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"1195:1:15","nodeType":"YulIdentifier","src":"1195:1:15"},{"kind":"number","nativeSrc":"1198:10:15","nodeType":"YulLiteral","src":"1198:10:15","type":"","value":"0xf23a6e61"}],"functionName":{"name":"eq","nativeSrc":"1192:2:15","nodeType":"YulIdentifier","src":"1192:2:15"},"nativeSrc":"1192:17:15","nodeType":"YulFunctionCall","src":"1192:17:15"},{"arguments":[{"name":"s","nativeSrc":"1214:1:15","nodeType":"YulIdentifier","src":"1214:1:15"},{"kind":"number","nativeSrc":"1217:10:15","nodeType":"YulLiteral","src":"1217:10:15","type":"","value":"0xbc197c81"}],"functionName":{"name":"eq","nativeSrc":"1211:2:15","nodeType":"YulIdentifier","src":"1211:2:15"},"nativeSrc":"1211:17:15","nodeType":"YulFunctionCall","src":"1211:17:15"}],"functionName":{"name":"or","nativeSrc":"1189:2:15","nodeType":"YulIdentifier","src":"1189:2:15"},"nativeSrc":"1189:40:15","nodeType":"YulFunctionCall","src":"1189:40:15"}],"functionName":{"name":"or","nativeSrc":"1167:2:15","nodeType":"YulIdentifier","src":"1167:2:15"},"nativeSrc":"1167:63:15","nodeType":"YulFunctionCall","src":"1167:63:15"},"nativeSrc":"1164:190:15","nodeType":"YulIf","src":"1164:190:15"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[],"id":6211,"nodeType":"InlineAssembly","src":"833:531:15"},{"id":6212,"nodeType":"PlaceholderStatement","src":"1373:1:15"}]},"documentation":{"id":6209,"nodeType":"StructuredDocumentation","src":"669:70:15","text":"@dev Modifier for the fallback function to handle token callbacks."},"id":6214,"name":"receiverFallback","nameLocation":"753:16:15","nodeType":"ModifierDefinition","parameters":{"id":6210,"nodeType":"ParameterList","parameters":[],"src":"769:2:15"},"src":"744:637:15","virtual":true,"visibility":"internal"}],"scope":6216,"src":"431:952:15","usedErrors":[],"usedEvents":[]}],"src":"32:1352:15"},"id":15},"@solady/auth/Ownable.sol":{"ast":{"absolutePath":"@solady/auth/Ownable.sol","exportedSymbols":{"Ownable":[6409]},"id":6410,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6217,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:16"},{"abstract":true,"baseContracts":[],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":6218,"nodeType":"StructuredDocumentation","src":"57:514:16","text":"@notice Simple single owner authorization mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n @dev Note:\n This implementation does NOT auto-initialize the owner to `msg.sender`.\n You MUST call the `_initializeOwner` in the constructor / initializer.\n While the ownable portion follows\n [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,\n the nomenclature for the 2-step ownership handover may be unique to this codebase."},"fullyImplemented":true,"id":6409,"linearizedBaseContracts":[6409],"name":"Ownable","nameLocation":"589:7:16","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":6219,"nodeType":"StructuredDocumentation","src":"886:59:16","text":"@dev The caller is not authorized to call the function."},"errorSelector":"82b42900","id":6221,"name":"Unauthorized","nameLocation":"956:12:16","nodeType":"ErrorDefinition","parameters":{"id":6220,"nodeType":"ParameterList","parameters":[],"src":"968:2:16"},"src":"950:21:16"},{"documentation":{"id":6222,"nodeType":"StructuredDocumentation","src":"977:51:16","text":"@dev The `newOwner` cannot be the zero address."},"errorSelector":"7448fbae","id":6224,"name":"NewOwnerIsZeroAddress","nameLocation":"1039:21:16","nodeType":"ErrorDefinition","parameters":{"id":6223,"nodeType":"ParameterList","parameters":[],"src":"1060:2:16"},"src":"1033:30:16"},{"documentation":{"id":6225,"nodeType":"StructuredDocumentation","src":"1069:67:16","text":"@dev The `pendingOwner` does not have a valid handover request."},"errorSelector":"6f5e8818","id":6227,"name":"NoHandoverRequest","nameLocation":"1147:17:16","nodeType":"ErrorDefinition","parameters":{"id":6226,"nodeType":"ParameterList","parameters":[],"src":"1164:2:16"},"src":"1141:26:16"},{"documentation":{"id":6228,"nodeType":"StructuredDocumentation","src":"1173:34:16","text":"@dev Cannot double-initialize."},"errorSelector":"0dc149f0","id":6230,"name":"AlreadyInitialized","nameLocation":"1218:18:16","nodeType":"ErrorDefinition","parameters":{"id":6229,"nodeType":"ParameterList","parameters":[],"src":"1236:2:16"},"src":"1212:27:16"},{"anonymous":false,"documentation":{"id":6231,"nodeType":"StructuredDocumentation","src":"1528:310:16","text":"@dev The ownership is transferred from `oldOwner` to `newOwner`.\n This event is intentionally kept the same as OpenZeppelin's Ownable to be\n compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173),\n despite it not being as lightweight as a single argument event."},"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":6237,"name":"OwnershipTransferred","nameLocation":"1849:20:16","nodeType":"EventDefinition","parameters":{"id":6236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6233,"indexed":true,"mutability":"mutable","name":"oldOwner","nameLocation":"1886:8:16","nodeType":"VariableDeclaration","scope":6237,"src":"1870:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6232,"name":"address","nodeType":"ElementaryTypeName","src":"1870:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6235,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1912:8:16","nodeType":"VariableDeclaration","scope":6237,"src":"1896:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6234,"name":"address","nodeType":"ElementaryTypeName","src":"1896:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1869:52:16"},"src":"1843:79:16"},{"anonymous":false,"documentation":{"id":6238,"nodeType":"StructuredDocumentation","src":"1928:68:16","text":"@dev An ownership handover to `pendingOwner` has been requested."},"eventSelector":"dbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d","id":6242,"name":"OwnershipHandoverRequested","nameLocation":"2007:26:16","nodeType":"EventDefinition","parameters":{"id":6241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6240,"indexed":true,"mutability":"mutable","name":"pendingOwner","nameLocation":"2050:12:16","nodeType":"VariableDeclaration","scope":6242,"src":"2034:28:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6239,"name":"address","nodeType":"ElementaryTypeName","src":"2034:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2033:30:16"},"src":"2001:63:16"},{"anonymous":false,"documentation":{"id":6243,"nodeType":"StructuredDocumentation","src":"2070:68:16","text":"@dev The ownership handover to `pendingOwner` has been canceled."},"eventSelector":"fa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92","id":6247,"name":"OwnershipHandoverCanceled","nameLocation":"2149:25:16","nodeType":"EventDefinition","parameters":{"id":6246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6245,"indexed":true,"mutability":"mutable","name":"pendingOwner","nameLocation":"2191:12:16","nodeType":"VariableDeclaration","scope":6247,"src":"2175:28:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6244,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2174:30:16"},"src":"2143:62:16"},{"constant":true,"documentation":{"id":6248,"nodeType":"StructuredDocumentation","src":"2211:69:16","text":"@dev `keccak256(bytes(\"OwnershipTransferred(address,address)\"))`."},"id":6251,"mutability":"constant","name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nameLocation":"2310:38:16","nodeType":"VariableDeclaration","scope":6409,"src":"2285:140:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6249,"name":"uint256","nodeType":"ElementaryTypeName","src":"2285:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838626530303739633533313635393134313334346364316664306134663238343139343937663937323261336461616665336234313836663662363435376530","id":6250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2359:66:16","typeDescriptions":{"typeIdentifier":"t_rational_63267312222310607310220992301550539520881909915348243260808268974908359596000_by_1","typeString":"int_const 6326...(69 digits omitted)...6000"},"value":"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0"},"visibility":"private"},{"constant":true,"documentation":{"id":6252,"nodeType":"StructuredDocumentation","src":"2432:67:16","text":"@dev `keccak256(bytes(\"OwnershipHandoverRequested(address)\"))`."},"id":6255,"mutability":"constant","name":"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE","nameLocation":"2529:45:16","nodeType":"VariableDeclaration","scope":6409,"src":"2504:147:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6253,"name":"uint256","nodeType":"ElementaryTypeName","src":"2504:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864626633366131303764613139653439353237613731373661316261626639363362346230666638636465333565653335643663643866316639616337653164","id":6254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2585:66:16","typeDescriptions":{"typeIdentifier":"t_rational_99486589706178915293482045537067896628184784474209892898124391061398315892253_by_1","typeString":"int_const 9948...(69 digits omitted)...2253"},"value":"0xdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d"},"visibility":"private"},{"constant":true,"documentation":{"id":6256,"nodeType":"StructuredDocumentation","src":"2658:66:16","text":"@dev `keccak256(bytes(\"OwnershipHandoverCanceled(address)\"))`."},"id":6259,"mutability":"constant","name":"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE","nameLocation":"2754:44:16","nodeType":"VariableDeclaration","scope":6409,"src":"2729:146:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6257,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307866613762386561623764613637663431326363393537356564343334363434363866396266626165383964313637353931373334366361366438666533633932","id":6258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2809:66:16","typeDescriptions":{"typeIdentifier":"t_rational_113296519006148992096626879868577423813870114622160551413976512868841544367250_by_1","typeString":"int_const 1132...(70 digits omitted)...7250"},"value":"0xfa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92"},"visibility":"private"},{"constant":true,"documentation":{"id":6260,"nodeType":"StructuredDocumentation","src":"3165:334:16","text":"@dev The owner slot is given by:\n `bytes32(~uint256(uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))))`.\n It is intentionally chosen to be a high value\n to avoid collision with lower slots.\n The choice of manual storage layout is to enable compatibility\n with both regular and upgradeable contracts."},"id":6263,"mutability":"constant","name":"_OWNER_SLOT","nameLocation":"3530:11:16","nodeType":"VariableDeclaration","scope":6409,"src":"3504:114:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3504:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666663734383733393237","id":6262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3552:66:16","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007910789691687_by_1","typeString":"int_const 1157...(70 digits omitted)...1687"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927"},"visibility":"internal"},{"constant":true,"documentation":{"id":6264,"nodeType":"StructuredDocumentation","src":"3625:276:16","text":"The ownership handover slot of `newOwner` is given by:\n ```\n mstore(0x00, or(shl(96, user), _HANDOVER_SLOT_SEED))\n let handoverSlot := keccak256(0x00, 0x20)\n ```\n It stores the expiry timestamp of the two-step ownership handover."},"id":6267,"mutability":"constant","name":"_HANDOVER_SLOT_SEED","nameLocation":"3931:19:16","nodeType":"VariableDeclaration","scope":6409,"src":"3906:57:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6265,"name":"uint256","nodeType":"ElementaryTypeName","src":"3906:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783338396137356531","id":6266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3953:10:16","typeDescriptions":{"typeIdentifier":"t_rational_949646817_by_1","typeString":"int_const 949646817"},"value":"0x389a75e1"},"visibility":"private"},{"body":{"id":6273,"nodeType":"Block","src":"4424:2:16","statements":[]},"documentation":{"id":6268,"nodeType":"StructuredDocumentation","src":"4253:90:16","text":"@dev Override to return true to make `_initializeOwner` prevent double-initialization."},"id":6274,"implemented":true,"kind":"function","modifiers":[],"name":"_guardInitializeOwner","nameLocation":"4357:21:16","nodeType":"FunctionDefinition","parameters":{"id":6269,"nodeType":"ParameterList","parameters":[],"src":"4378:2:16"},"returnParameters":{"id":6272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6271,"mutability":"mutable","name":"guard","nameLocation":"4417:5:16","nodeType":"VariableDeclaration","scope":6274,"src":"4412:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6270,"name":"bool","nodeType":"ElementaryTypeName","src":"4412:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4411:12:16"},"scope":6409,"src":"4348:78:16","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":6287,"nodeType":"Block","src":"4944:1129:16","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":6280,"name":"_guardInitializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6274,"src":"4958:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bool_$","typeString":"function () pure returns (bool)"}},"id":6281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4958:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6285,"nodeType":"Block","src":"5649:418:16","statements":[{"AST":{"nativeSrc":"5719:338:16","nodeType":"YulBlock","src":"5719:338:16","statements":[{"nativeSrc":"5781:38:16","nodeType":"YulAssignment","src":"5781:38:16","value":{"arguments":[{"kind":"number","nativeSrc":"5797:2:16","nodeType":"YulLiteral","src":"5797:2:16","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"5805:2:16","nodeType":"YulLiteral","src":"5805:2:16","type":"","value":"96"},{"name":"newOwner","nativeSrc":"5809:8:16","nodeType":"YulIdentifier","src":"5809:8:16"}],"functionName":{"name":"shl","nativeSrc":"5801:3:16","nodeType":"YulIdentifier","src":"5801:3:16"},"nativeSrc":"5801:17:16","nodeType":"YulFunctionCall","src":"5801:17:16"}],"functionName":{"name":"shr","nativeSrc":"5793:3:16","nodeType":"YulIdentifier","src":"5793:3:16"},"nativeSrc":"5793:26:16","nodeType":"YulFunctionCall","src":"5793:26:16"},"variableNames":[{"name":"newOwner","nativeSrc":"5781:8:16","nodeType":"YulIdentifier","src":"5781:8:16"}]},{"expression":{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"5883:11:16","nodeType":"YulIdentifier","src":"5883:11:16"},{"name":"newOwner","nativeSrc":"5896:8:16","nodeType":"YulIdentifier","src":"5896:8:16"}],"functionName":{"name":"sstore","nativeSrc":"5876:6:16","nodeType":"YulIdentifier","src":"5876:6:16"},"nativeSrc":"5876:29:16","nodeType":"YulFunctionCall","src":"5876:29:16"},"nativeSrc":"5876:29:16","nodeType":"YulExpressionStatement","src":"5876:29:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5985:1:16","nodeType":"YulLiteral","src":"5985:1:16","type":"","value":"0"},{"kind":"number","nativeSrc":"5988:1:16","nodeType":"YulLiteral","src":"5988:1:16","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"5991:38:16","nodeType":"YulIdentifier","src":"5991:38:16"},{"kind":"number","nativeSrc":"6031:1:16","nodeType":"YulLiteral","src":"6031:1:16","type":"","value":"0"},{"name":"newOwner","nativeSrc":"6034:8:16","nodeType":"YulIdentifier","src":"6034:8:16"}],"functionName":{"name":"log3","nativeSrc":"5980:4:16","nodeType":"YulIdentifier","src":"5980:4:16"},"nativeSrc":"5980:63:16","nodeType":"YulFunctionCall","src":"5980:63:16"},"nativeSrc":"5980:63:16","nodeType":"YulExpressionStatement","src":"5980:63:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6251,"isOffset":false,"isSlot":false,"src":"5991:38:16","valueSize":1},{"declaration":6263,"isOffset":false,"isSlot":false,"src":"5883:11:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5781:8:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5809:8:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5896:8:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"6034:8:16","valueSize":1}],"id":6284,"nodeType":"InlineAssembly","src":"5710:347:16"}]},"id":6286,"nodeType":"IfStatement","src":"4954:1113:16","trueBody":{"id":6283,"nodeType":"Block","src":"4983:660:16","statements":[{"AST":{"nativeSrc":"5053:580:16","nodeType":"YulBlock","src":"5053:580:16","statements":[{"nativeSrc":"5071:28:16","nodeType":"YulVariableDeclaration","src":"5071:28:16","value":{"name":"_OWNER_SLOT","nativeSrc":"5088:11:16","nodeType":"YulIdentifier","src":"5088:11:16"},"variables":[{"name":"ownerSlot","nativeSrc":"5075:9:16","nodeType":"YulTypedName","src":"5075:9:16","type":""}]},{"body":{"nativeSrc":"5136:130:16","nodeType":"YulBlock","src":"5136:130:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5165:4:16","nodeType":"YulLiteral","src":"5165:4:16","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5171:10:16","nodeType":"YulLiteral","src":"5171:10:16","type":"","value":"0x0dc149f0"}],"functionName":{"name":"mstore","nativeSrc":"5158:6:16","nodeType":"YulIdentifier","src":"5158:6:16"},"nativeSrc":"5158:24:16","nodeType":"YulFunctionCall","src":"5158:24:16"},"nativeSrc":"5158:24:16","nodeType":"YulExpressionStatement","src":"5158:24:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5237:4:16","nodeType":"YulLiteral","src":"5237:4:16","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5243:4:16","nodeType":"YulLiteral","src":"5243:4:16","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5230:6:16","nodeType":"YulIdentifier","src":"5230:6:16"},"nativeSrc":"5230:18:16","nodeType":"YulFunctionCall","src":"5230:18:16"},"nativeSrc":"5230:18:16","nodeType":"YulExpressionStatement","src":"5230:18:16"}]},"condition":{"arguments":[{"name":"ownerSlot","nativeSrc":"5125:9:16","nodeType":"YulIdentifier","src":"5125:9:16"}],"functionName":{"name":"sload","nativeSrc":"5119:5:16","nodeType":"YulIdentifier","src":"5119:5:16"},"nativeSrc":"5119:16:16","nodeType":"YulFunctionCall","src":"5119:16:16"},"nativeSrc":"5116:150:16","nodeType":"YulIf","src":"5116:150:16"},{"nativeSrc":"5327:38:16","nodeType":"YulAssignment","src":"5327:38:16","value":{"arguments":[{"kind":"number","nativeSrc":"5343:2:16","nodeType":"YulLiteral","src":"5343:2:16","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"5351:2:16","nodeType":"YulLiteral","src":"5351:2:16","type":"","value":"96"},{"name":"newOwner","nativeSrc":"5355:8:16","nodeType":"YulIdentifier","src":"5355:8:16"}],"functionName":{"name":"shl","nativeSrc":"5347:3:16","nodeType":"YulIdentifier","src":"5347:3:16"},"nativeSrc":"5347:17:16","nodeType":"YulFunctionCall","src":"5347:17:16"}],"functionName":{"name":"shr","nativeSrc":"5339:3:16","nodeType":"YulIdentifier","src":"5339:3:16"},"nativeSrc":"5339:26:16","nodeType":"YulFunctionCall","src":"5339:26:16"},"variableNames":[{"name":"newOwner","nativeSrc":"5327:8:16","nodeType":"YulIdentifier","src":"5327:8:16"}]},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"5429:9:16","nodeType":"YulIdentifier","src":"5429:9:16"},{"arguments":[{"name":"newOwner","nativeSrc":"5443:8:16","nodeType":"YulIdentifier","src":"5443:8:16"},{"arguments":[{"kind":"number","nativeSrc":"5457:3:16","nodeType":"YulLiteral","src":"5457:3:16","type":"","value":"255"},{"arguments":[{"name":"newOwner","nativeSrc":"5469:8:16","nodeType":"YulIdentifier","src":"5469:8:16"}],"functionName":{"name":"iszero","nativeSrc":"5462:6:16","nodeType":"YulIdentifier","src":"5462:6:16"},"nativeSrc":"5462:16:16","nodeType":"YulFunctionCall","src":"5462:16:16"}],"functionName":{"name":"shl","nativeSrc":"5453:3:16","nodeType":"YulIdentifier","src":"5453:3:16"},"nativeSrc":"5453:26:16","nodeType":"YulFunctionCall","src":"5453:26:16"}],"functionName":{"name":"or","nativeSrc":"5440:2:16","nodeType":"YulIdentifier","src":"5440:2:16"},"nativeSrc":"5440:40:16","nodeType":"YulFunctionCall","src":"5440:40:16"}],"functionName":{"name":"sstore","nativeSrc":"5422:6:16","nodeType":"YulIdentifier","src":"5422:6:16"},"nativeSrc":"5422:59:16","nodeType":"YulFunctionCall","src":"5422:59:16"},"nativeSrc":"5422:59:16","nodeType":"YulExpressionStatement","src":"5422:59:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5561:1:16","nodeType":"YulLiteral","src":"5561:1:16","type":"","value":"0"},{"kind":"number","nativeSrc":"5564:1:16","nodeType":"YulLiteral","src":"5564:1:16","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"5567:38:16","nodeType":"YulIdentifier","src":"5567:38:16"},{"kind":"number","nativeSrc":"5607:1:16","nodeType":"YulLiteral","src":"5607:1:16","type":"","value":"0"},{"name":"newOwner","nativeSrc":"5610:8:16","nodeType":"YulIdentifier","src":"5610:8:16"}],"functionName":{"name":"log3","nativeSrc":"5556:4:16","nodeType":"YulIdentifier","src":"5556:4:16"},"nativeSrc":"5556:63:16","nodeType":"YulFunctionCall","src":"5556:63:16"},"nativeSrc":"5556:63:16","nodeType":"YulExpressionStatement","src":"5556:63:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6251,"isOffset":false,"isSlot":false,"src":"5567:38:16","valueSize":1},{"declaration":6263,"isOffset":false,"isSlot":false,"src":"5088:11:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5327:8:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5355:8:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5443:8:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5469:8:16","valueSize":1},{"declaration":6277,"isOffset":false,"isSlot":false,"src":"5610:8:16","valueSize":1}],"id":6282,"nodeType":"InlineAssembly","src":"5044:589:16"}]}}]},"documentation":{"id":6275,"nodeType":"StructuredDocumentation","src":"4432:446:16","text":"@dev Initializes the owner directly without authorization guard.\n This function must be called upon initialization,\n regardless of whether the contract is upgradeable or not.\n This is to enable generalization to both regular and upgradeable contracts,\n and to save gas in case the initial owner is not the caller.\n For performance reasons, this function will not check if there\n is an existing owner."},"id":6288,"implemented":true,"kind":"function","modifiers":[],"name":"_initializeOwner","nameLocation":"4892:16:16","nodeType":"FunctionDefinition","parameters":{"id":6278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6277,"mutability":"mutable","name":"newOwner","nameLocation":"4917:8:16","nodeType":"VariableDeclaration","scope":6288,"src":"4909:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6276,"name":"address","nodeType":"ElementaryTypeName","src":"4909:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4908:18:16"},"returnParameters":{"id":6279,"nodeType":"ParameterList","parameters":[],"src":"4944:0:16"},"scope":6409,"src":"4883:1190:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6301,"nodeType":"Block","src":"6199:1035:16","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":6294,"name":"_guardInitializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6274,"src":"6213:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bool_$","typeString":"function () pure returns (bool)"}},"id":6295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6213:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6299,"nodeType":"Block","src":"6752:476:16","statements":[{"AST":{"nativeSrc":"6822:396:16","nodeType":"YulBlock","src":"6822:396:16","statements":[{"nativeSrc":"6840:28:16","nodeType":"YulVariableDeclaration","src":"6840:28:16","value":{"name":"_OWNER_SLOT","nativeSrc":"6857:11:16","nodeType":"YulIdentifier","src":"6857:11:16"},"variables":[{"name":"ownerSlot","nativeSrc":"6844:9:16","nodeType":"YulTypedName","src":"6844:9:16","type":""}]},{"nativeSrc":"6929:38:16","nodeType":"YulAssignment","src":"6929:38:16","value":{"arguments":[{"kind":"number","nativeSrc":"6945:2:16","nodeType":"YulLiteral","src":"6945:2:16","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6953:2:16","nodeType":"YulLiteral","src":"6953:2:16","type":"","value":"96"},{"name":"newOwner","nativeSrc":"6957:8:16","nodeType":"YulIdentifier","src":"6957:8:16"}],"functionName":{"name":"shl","nativeSrc":"6949:3:16","nodeType":"YulIdentifier","src":"6949:3:16"},"nativeSrc":"6949:17:16","nodeType":"YulFunctionCall","src":"6949:17:16"}],"functionName":{"name":"shr","nativeSrc":"6941:3:16","nodeType":"YulIdentifier","src":"6941:3:16"},"nativeSrc":"6941:26:16","nodeType":"YulFunctionCall","src":"6941:26:16"},"variableNames":[{"name":"newOwner","nativeSrc":"6929:8:16","nodeType":"YulIdentifier","src":"6929:8:16"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7047:1:16","nodeType":"YulLiteral","src":"7047:1:16","type":"","value":"0"},{"kind":"number","nativeSrc":"7050:1:16","nodeType":"YulLiteral","src":"7050:1:16","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"7053:38:16","nodeType":"YulIdentifier","src":"7053:38:16"},{"arguments":[{"name":"ownerSlot","nativeSrc":"7099:9:16","nodeType":"YulIdentifier","src":"7099:9:16"}],"functionName":{"name":"sload","nativeSrc":"7093:5:16","nodeType":"YulIdentifier","src":"7093:5:16"},"nativeSrc":"7093:16:16","nodeType":"YulFunctionCall","src":"7093:16:16"},{"name":"newOwner","nativeSrc":"7111:8:16","nodeType":"YulIdentifier","src":"7111:8:16"}],"functionName":{"name":"log3","nativeSrc":"7042:4:16","nodeType":"YulIdentifier","src":"7042:4:16"},"nativeSrc":"7042:78:16","nodeType":"YulFunctionCall","src":"7042:78:16"},"nativeSrc":"7042:78:16","nodeType":"YulExpressionStatement","src":"7042:78:16"},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"7184:9:16","nodeType":"YulIdentifier","src":"7184:9:16"},{"name":"newOwner","nativeSrc":"7195:8:16","nodeType":"YulIdentifier","src":"7195:8:16"}],"functionName":{"name":"sstore","nativeSrc":"7177:6:16","nodeType":"YulIdentifier","src":"7177:6:16"},"nativeSrc":"7177:27:16","nodeType":"YulFunctionCall","src":"7177:27:16"},"nativeSrc":"7177:27:16","nodeType":"YulExpressionStatement","src":"7177:27:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6251,"isOffset":false,"isSlot":false,"src":"7053:38:16","valueSize":1},{"declaration":6263,"isOffset":false,"isSlot":false,"src":"6857:11:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6929:8:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6957:8:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"7111:8:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"7195:8:16","valueSize":1}],"id":6298,"nodeType":"InlineAssembly","src":"6813:405:16"}]},"id":6300,"nodeType":"IfStatement","src":"6209:1019:16","trueBody":{"id":6297,"nodeType":"Block","src":"6238:508:16","statements":[{"AST":{"nativeSrc":"6308:428:16","nodeType":"YulBlock","src":"6308:428:16","statements":[{"nativeSrc":"6326:28:16","nodeType":"YulVariableDeclaration","src":"6326:28:16","value":{"name":"_OWNER_SLOT","nativeSrc":"6343:11:16","nodeType":"YulIdentifier","src":"6343:11:16"},"variables":[{"name":"ownerSlot","nativeSrc":"6330:9:16","nodeType":"YulTypedName","src":"6330:9:16","type":""}]},{"nativeSrc":"6415:38:16","nodeType":"YulAssignment","src":"6415:38:16","value":{"arguments":[{"kind":"number","nativeSrc":"6431:2:16","nodeType":"YulLiteral","src":"6431:2:16","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6439:2:16","nodeType":"YulLiteral","src":"6439:2:16","type":"","value":"96"},{"name":"newOwner","nativeSrc":"6443:8:16","nodeType":"YulIdentifier","src":"6443:8:16"}],"functionName":{"name":"shl","nativeSrc":"6435:3:16","nodeType":"YulIdentifier","src":"6435:3:16"},"nativeSrc":"6435:17:16","nodeType":"YulFunctionCall","src":"6435:17:16"}],"functionName":{"name":"shr","nativeSrc":"6427:3:16","nodeType":"YulIdentifier","src":"6427:3:16"},"nativeSrc":"6427:26:16","nodeType":"YulFunctionCall","src":"6427:26:16"},"variableNames":[{"name":"newOwner","nativeSrc":"6415:8:16","nodeType":"YulIdentifier","src":"6415:8:16"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6533:1:16","nodeType":"YulLiteral","src":"6533:1:16","type":"","value":"0"},{"kind":"number","nativeSrc":"6536:1:16","nodeType":"YulLiteral","src":"6536:1:16","type":"","value":"0"},{"name":"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE","nativeSrc":"6539:38:16","nodeType":"YulIdentifier","src":"6539:38:16"},{"arguments":[{"name":"ownerSlot","nativeSrc":"6585:9:16","nodeType":"YulIdentifier","src":"6585:9:16"}],"functionName":{"name":"sload","nativeSrc":"6579:5:16","nodeType":"YulIdentifier","src":"6579:5:16"},"nativeSrc":"6579:16:16","nodeType":"YulFunctionCall","src":"6579:16:16"},{"name":"newOwner","nativeSrc":"6597:8:16","nodeType":"YulIdentifier","src":"6597:8:16"}],"functionName":{"name":"log3","nativeSrc":"6528:4:16","nodeType":"YulIdentifier","src":"6528:4:16"},"nativeSrc":"6528:78:16","nodeType":"YulFunctionCall","src":"6528:78:16"},"nativeSrc":"6528:78:16","nodeType":"YulExpressionStatement","src":"6528:78:16"},{"expression":{"arguments":[{"name":"ownerSlot","nativeSrc":"6670:9:16","nodeType":"YulIdentifier","src":"6670:9:16"},{"arguments":[{"name":"newOwner","nativeSrc":"6684:8:16","nodeType":"YulIdentifier","src":"6684:8:16"},{"arguments":[{"kind":"number","nativeSrc":"6698:3:16","nodeType":"YulLiteral","src":"6698:3:16","type":"","value":"255"},{"arguments":[{"name":"newOwner","nativeSrc":"6710:8:16","nodeType":"YulIdentifier","src":"6710:8:16"}],"functionName":{"name":"iszero","nativeSrc":"6703:6:16","nodeType":"YulIdentifier","src":"6703:6:16"},"nativeSrc":"6703:16:16","nodeType":"YulFunctionCall","src":"6703:16:16"}],"functionName":{"name":"shl","nativeSrc":"6694:3:16","nodeType":"YulIdentifier","src":"6694:3:16"},"nativeSrc":"6694:26:16","nodeType":"YulFunctionCall","src":"6694:26:16"}],"functionName":{"name":"or","nativeSrc":"6681:2:16","nodeType":"YulIdentifier","src":"6681:2:16"},"nativeSrc":"6681:40:16","nodeType":"YulFunctionCall","src":"6681:40:16"}],"functionName":{"name":"sstore","nativeSrc":"6663:6:16","nodeType":"YulIdentifier","src":"6663:6:16"},"nativeSrc":"6663:59:16","nodeType":"YulFunctionCall","src":"6663:59:16"},"nativeSrc":"6663:59:16","nodeType":"YulExpressionStatement","src":"6663:59:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6251,"isOffset":false,"isSlot":false,"src":"6539:38:16","valueSize":1},{"declaration":6263,"isOffset":false,"isSlot":false,"src":"6343:11:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6415:8:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6443:8:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6597:8:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6684:8:16","valueSize":1},{"declaration":6291,"isOffset":false,"isSlot":false,"src":"6710:8:16","valueSize":1}],"id":6296,"nodeType":"InlineAssembly","src":"6299:437:16"}]}}]},"documentation":{"id":6289,"nodeType":"StructuredDocumentation","src":"6079:61:16","text":"@dev Sets the owner directly without authorization guard."},"id":6302,"implemented":true,"kind":"function","modifiers":[],"name":"_setOwner","nameLocation":"6154:9:16","nodeType":"FunctionDefinition","parameters":{"id":6292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6291,"mutability":"mutable","name":"newOwner","nameLocation":"6172:8:16","nodeType":"VariableDeclaration","scope":6302,"src":"6164:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6290,"name":"address","nodeType":"ElementaryTypeName","src":"6164:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6163:18:16"},"returnParameters":{"id":6293,"nodeType":"ParameterList","parameters":[],"src":"6199:0:16"},"scope":6409,"src":"6145:1089:16","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6307,"nodeType":"Block","src":"7337:310:16","statements":[{"AST":{"nativeSrc":"7399:242:16","nodeType":"YulBlock","src":"7399:242:16","statements":[{"body":{"nativeSrc":"7519:112:16","nodeType":"YulBlock","src":"7519:112:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7544:4:16","nodeType":"YulLiteral","src":"7544:4:16","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7550:10:16","nodeType":"YulLiteral","src":"7550:10:16","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"7537:6:16","nodeType":"YulIdentifier","src":"7537:6:16"},"nativeSrc":"7537:24:16","nodeType":"YulFunctionCall","src":"7537:24:16"},"nativeSrc":"7537:24:16","nodeType":"YulExpressionStatement","src":"7537:24:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7606:4:16","nodeType":"YulLiteral","src":"7606:4:16","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7612:4:16","nodeType":"YulLiteral","src":"7612:4:16","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7599:6:16","nodeType":"YulIdentifier","src":"7599:6:16"},"nativeSrc":"7599:18:16","nodeType":"YulFunctionCall","src":"7599:18:16"},"nativeSrc":"7599:18:16","nodeType":"YulExpressionStatement","src":"7599:18:16"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7488:6:16","nodeType":"YulIdentifier","src":"7488:6:16"},"nativeSrc":"7488:8:16","nodeType":"YulFunctionCall","src":"7488:8:16"},{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"7504:11:16","nodeType":"YulIdentifier","src":"7504:11:16"}],"functionName":{"name":"sload","nativeSrc":"7498:5:16","nodeType":"YulIdentifier","src":"7498:5:16"},"nativeSrc":"7498:18:16","nodeType":"YulFunctionCall","src":"7498:18:16"}],"functionName":{"name":"eq","nativeSrc":"7485:2:16","nodeType":"YulIdentifier","src":"7485:2:16"},"nativeSrc":"7485:32:16","nodeType":"YulFunctionCall","src":"7485:32:16"}],"functionName":{"name":"iszero","nativeSrc":"7478:6:16","nodeType":"YulIdentifier","src":"7478:6:16"},"nativeSrc":"7478:40:16","nodeType":"YulFunctionCall","src":"7478:40:16"},"nativeSrc":"7475:156:16","nodeType":"YulIf","src":"7475:156:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6263,"isOffset":false,"isSlot":false,"src":"7504:11:16","valueSize":1}],"id":6306,"nodeType":"InlineAssembly","src":"7390:251:16"}]},"documentation":{"id":6303,"nodeType":"StructuredDocumentation","src":"7240:47:16","text":"@dev Throws if the sender is not the owner."},"id":6308,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"7301:11:16","nodeType":"FunctionDefinition","parameters":{"id":6304,"nodeType":"ParameterList","parameters":[],"src":"7312:2:16"},"returnParameters":{"id":6305,"nodeType":"ParameterList","parameters":[],"src":"7337:0:16"},"scope":6409,"src":"7292:355:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6318,"nodeType":"Block","src":"7955:33:16","statements":[{"expression":{"commonType":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"},"id":6316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":6314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7972:2:16","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"33363030","id":6315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7977:4:16","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"7972:9:16","typeDescriptions":{"typeIdentifier":"t_rational_172800_by_1","typeString":"int_const 172800"}},"functionReturnParameters":6313,"id":6317,"nodeType":"Return","src":"7965:16:16"}]},"documentation":{"id":6309,"nodeType":"StructuredDocumentation","src":"7653:220:16","text":"@dev Returns how long a two-step ownership handover is valid for in seconds.\n Override to return a different value if needed.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6319,"implemented":true,"kind":"function","modifiers":[],"name":"_ownershipHandoverValidFor","nameLocation":"7887:26:16","nodeType":"FunctionDefinition","parameters":{"id":6310,"nodeType":"ParameterList","parameters":[],"src":"7913:2:16"},"returnParameters":{"id":6313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6319,"src":"7947:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":6311,"name":"uint64","nodeType":"ElementaryTypeName","src":"7947:6:16","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7946:8:16"},"scope":6409,"src":"7878:110:16","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6332,"nodeType":"Block","src":"8426:271:16","statements":[{"AST":{"nativeSrc":"8488:174:16","nodeType":"YulBlock","src":"8488:174:16","statements":[{"body":{"nativeSrc":"8531:121:16","nodeType":"YulBlock","src":"8531:121:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8556:4:16","nodeType":"YulLiteral","src":"8556:4:16","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8562:10:16","nodeType":"YulLiteral","src":"8562:10:16","type":"","value":"0x7448fbae"}],"functionName":{"name":"mstore","nativeSrc":"8549:6:16","nodeType":"YulIdentifier","src":"8549:6:16"},"nativeSrc":"8549:24:16","nodeType":"YulFunctionCall","src":"8549:24:16"},"nativeSrc":"8549:24:16","nodeType":"YulExpressionStatement","src":"8549:24:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8627:4:16","nodeType":"YulLiteral","src":"8627:4:16","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8633:4:16","nodeType":"YulLiteral","src":"8633:4:16","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8620:6:16","nodeType":"YulIdentifier","src":"8620:6:16"},"nativeSrc":"8620:18:16","nodeType":"YulFunctionCall","src":"8620:18:16"},"nativeSrc":"8620:18:16","nodeType":"YulExpressionStatement","src":"8620:18:16"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8516:2:16","nodeType":"YulLiteral","src":"8516:2:16","type":"","value":"96"},{"name":"newOwner","nativeSrc":"8520:8:16","nodeType":"YulIdentifier","src":"8520:8:16"}],"functionName":{"name":"shl","nativeSrc":"8512:3:16","nodeType":"YulIdentifier","src":"8512:3:16"},"nativeSrc":"8512:17:16","nodeType":"YulFunctionCall","src":"8512:17:16"}],"functionName":{"name":"iszero","nativeSrc":"8505:6:16","nodeType":"YulIdentifier","src":"8505:6:16"},"nativeSrc":"8505:25:16","nodeType":"YulFunctionCall","src":"8505:25:16"},"nativeSrc":"8502:150:16","nodeType":"YulIf","src":"8502:150:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6322,"isOffset":false,"isSlot":false,"src":"8520:8:16","valueSize":1}],"id":6327,"nodeType":"InlineAssembly","src":"8479:183:16"},{"expression":{"arguments":[{"id":6329,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6322,"src":"8681:8:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6328,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"8671:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6331,"nodeType":"ExpressionStatement","src":"8671:19:16"}]},"documentation":{"id":6320,"nodeType":"StructuredDocumentation","src":"8277:66:16","text":"@dev Allows the owner to transfer the ownership to `newOwner`."},"functionSelector":"f2fde38b","id":6333,"implemented":true,"kind":"function","modifiers":[{"id":6325,"kind":"modifierInvocation","modifierName":{"id":6324,"name":"onlyOwner","nameLocations":["8416:9:16"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"8416:9:16"},"nodeType":"ModifierInvocation","src":"8416:9:16"}],"name":"transferOwnership","nameLocation":"8357:17:16","nodeType":"FunctionDefinition","parameters":{"id":6323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6322,"mutability":"mutable","name":"newOwner","nameLocation":"8383:8:16","nodeType":"VariableDeclaration","scope":6333,"src":"8375:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6321,"name":"address","nodeType":"ElementaryTypeName","src":"8375:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8374:18:16"},"returnParameters":{"id":6326,"nodeType":"ParameterList","parameters":[],"src":"8426:0:16"},"scope":6409,"src":"8348:349:16","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6346,"nodeType":"Block","src":"8824:38:16","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":6342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8852:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8844:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6340,"name":"address","nodeType":"ElementaryTypeName","src":"8844:7:16","typeDescriptions":{}}},"id":6343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8844:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6339,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"8834:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8834:21:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6345,"nodeType":"ExpressionStatement","src":"8834:21:16"}]},"documentation":{"id":6334,"nodeType":"StructuredDocumentation","src":"8703:54:16","text":"@dev Allows the owner to renounce their ownership."},"functionSelector":"715018a6","id":6347,"implemented":true,"kind":"function","modifiers":[{"id":6337,"kind":"modifierInvocation","modifierName":{"id":6336,"name":"onlyOwner","nameLocations":["8814:9:16"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"8814:9:16"},"nodeType":"ModifierInvocation","src":"8814:9:16"}],"name":"renounceOwnership","nameLocation":"8771:17:16","nodeType":"FunctionDefinition","parameters":{"id":6335,"nodeType":"ParameterList","parameters":[],"src":"8788:2:16"},"returnParameters":{"id":6338,"nodeType":"ParameterList","parameters":[],"src":"8824:0:16"},"scope":6409,"src":"8762:100:16","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6361,"nodeType":"Block","src":"9080:558:16","statements":[{"id":6360,"nodeType":"UncheckedBlock","src":"9090:542:16","statements":[{"assignments":[6352],"declarations":[{"constant":false,"id":6352,"mutability":"mutable","name":"expires","nameLocation":"9122:7:16","nodeType":"VariableDeclaration","scope":6360,"src":"9114:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6351,"name":"uint256","nodeType":"ElementaryTypeName","src":"9114:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6358,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6353,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9132:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":6354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9138:9:16","memberName":"timestamp","nodeType":"MemberAccess","src":"9132:15:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":6355,"name":"_ownershipHandoverValidFor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6319,"src":"9150:26:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":6356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9150:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"9132:46:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9114:64:16"},{"AST":{"nativeSrc":"9248:374:16","nodeType":"YulBlock","src":"9248:374:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9340:4:16","nodeType":"YulLiteral","src":"9340:4:16","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"9346:19:16","nodeType":"YulIdentifier","src":"9346:19:16"}],"functionName":{"name":"mstore","nativeSrc":"9333:6:16","nodeType":"YulIdentifier","src":"9333:6:16"},"nativeSrc":"9333:33:16","nodeType":"YulFunctionCall","src":"9333:33:16"},"nativeSrc":"9333:33:16","nodeType":"YulExpressionStatement","src":"9333:33:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9390:4:16","nodeType":"YulLiteral","src":"9390:4:16","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9396:6:16","nodeType":"YulIdentifier","src":"9396:6:16"},"nativeSrc":"9396:8:16","nodeType":"YulFunctionCall","src":"9396:8:16"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:16","nodeType":"YulIdentifier","src":"9383:6:16"},"nativeSrc":"9383:22:16","nodeType":"YulFunctionCall","src":"9383:22:16"},"nativeSrc":"9383:22:16","nodeType":"YulExpressionStatement","src":"9383:22:16"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9439:4:16","nodeType":"YulLiteral","src":"9439:4:16","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9445:4:16","nodeType":"YulLiteral","src":"9445:4:16","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9429:9:16","nodeType":"YulIdentifier","src":"9429:9:16"},"nativeSrc":"9429:21:16","nodeType":"YulFunctionCall","src":"9429:21:16"},{"name":"expires","nativeSrc":"9452:7:16","nodeType":"YulIdentifier","src":"9452:7:16"}],"functionName":{"name":"sstore","nativeSrc":"9422:6:16","nodeType":"YulIdentifier","src":"9422:6:16"},"nativeSrc":"9422:38:16","nodeType":"YulFunctionCall","src":"9422:38:16"},"nativeSrc":"9422:38:16","nodeType":"YulExpressionStatement","src":"9422:38:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9546:1:16","nodeType":"YulLiteral","src":"9546:1:16","type":"","value":"0"},{"kind":"number","nativeSrc":"9549:1:16","nodeType":"YulLiteral","src":"9549:1:16","type":"","value":"0"},{"name":"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE","nativeSrc":"9552:45:16","nodeType":"YulIdentifier","src":"9552:45:16"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9599:6:16","nodeType":"YulIdentifier","src":"9599:6:16"},"nativeSrc":"9599:8:16","nodeType":"YulFunctionCall","src":"9599:8:16"}],"functionName":{"name":"log2","nativeSrc":"9541:4:16","nodeType":"YulIdentifier","src":"9541:4:16"},"nativeSrc":"9541:67:16","nodeType":"YulFunctionCall","src":"9541:67:16"},"nativeSrc":"9541:67:16","nodeType":"YulExpressionStatement","src":"9541:67:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6267,"isOffset":false,"isSlot":false,"src":"9346:19:16","valueSize":1},{"declaration":6255,"isOffset":false,"isSlot":false,"src":"9552:45:16","valueSize":1},{"declaration":6352,"isOffset":false,"isSlot":false,"src":"9452:7:16","valueSize":1}],"id":6359,"nodeType":"InlineAssembly","src":"9239:383:16"}]}]},"documentation":{"id":6348,"nodeType":"StructuredDocumentation","src":"8868:148:16","text":"@dev Request a two-step ownership handover to the caller.\n The request will automatically expire in 48 hours (172800 seconds) by default."},"functionSelector":"25692962","id":6362,"implemented":true,"kind":"function","modifiers":[],"name":"requestOwnershipHandover","nameLocation":"9030:24:16","nodeType":"FunctionDefinition","parameters":{"id":6349,"nodeType":"ParameterList","parameters":[],"src":"9054:2:16"},"returnParameters":{"id":6350,"nodeType":"ParameterList","parameters":[],"src":"9080:0:16"},"scope":6409,"src":"9021:617:16","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6367,"nodeType":"Block","src":"9778:398:16","statements":[{"AST":{"nativeSrc":"9840:330:16","nodeType":"YulBlock","src":"9840:330:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9916:4:16","nodeType":"YulLiteral","src":"9916:4:16","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"9922:19:16","nodeType":"YulIdentifier","src":"9922:19:16"}],"functionName":{"name":"mstore","nativeSrc":"9909:6:16","nodeType":"YulIdentifier","src":"9909:6:16"},"nativeSrc":"9909:33:16","nodeType":"YulFunctionCall","src":"9909:33:16"},"nativeSrc":"9909:33:16","nodeType":"YulExpressionStatement","src":"9909:33:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9962:4:16","nodeType":"YulLiteral","src":"9962:4:16","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9968:6:16","nodeType":"YulIdentifier","src":"9968:6:16"},"nativeSrc":"9968:8:16","nodeType":"YulFunctionCall","src":"9968:8:16"}],"functionName":{"name":"mstore","nativeSrc":"9955:6:16","nodeType":"YulIdentifier","src":"9955:6:16"},"nativeSrc":"9955:22:16","nodeType":"YulFunctionCall","src":"9955:22:16"},"nativeSrc":"9955:22:16","nodeType":"YulExpressionStatement","src":"9955:22:16"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10007:4:16","nodeType":"YulLiteral","src":"10007:4:16","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10013:4:16","nodeType":"YulLiteral","src":"10013:4:16","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9997:9:16","nodeType":"YulIdentifier","src":"9997:9:16"},"nativeSrc":"9997:21:16","nodeType":"YulFunctionCall","src":"9997:21:16"},{"kind":"number","nativeSrc":"10020:1:16","nodeType":"YulLiteral","src":"10020:1:16","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"9990:6:16","nodeType":"YulIdentifier","src":"9990:6:16"},"nativeSrc":"9990:32:16","nodeType":"YulFunctionCall","src":"9990:32:16"},"nativeSrc":"9990:32:16","nodeType":"YulExpressionStatement","src":"9990:32:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10099:1:16","nodeType":"YulLiteral","src":"10099:1:16","type":"","value":"0"},{"kind":"number","nativeSrc":"10102:1:16","nodeType":"YulLiteral","src":"10102:1:16","type":"","value":"0"},{"name":"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE","nativeSrc":"10105:44:16","nodeType":"YulIdentifier","src":"10105:44:16"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10151:6:16","nodeType":"YulIdentifier","src":"10151:6:16"},"nativeSrc":"10151:8:16","nodeType":"YulFunctionCall","src":"10151:8:16"}],"functionName":{"name":"log2","nativeSrc":"10094:4:16","nodeType":"YulIdentifier","src":"10094:4:16"},"nativeSrc":"10094:66:16","nodeType":"YulFunctionCall","src":"10094:66:16"},"nativeSrc":"10094:66:16","nodeType":"YulExpressionStatement","src":"10094:66:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6267,"isOffset":false,"isSlot":false,"src":"9922:19:16","valueSize":1},{"declaration":6259,"isOffset":false,"isSlot":false,"src":"10105:44:16","valueSize":1}],"id":6366,"nodeType":"InlineAssembly","src":"9831:339:16"}]},"documentation":{"id":6363,"nodeType":"StructuredDocumentation","src":"9644:71:16","text":"@dev Cancels the two-step ownership handover to the caller, if any."},"functionSelector":"54d1f13d","id":6368,"implemented":true,"kind":"function","modifiers":[],"name":"cancelOwnershipHandover","nameLocation":"9729:23:16","nodeType":"FunctionDefinition","parameters":{"id":6364,"nodeType":"ParameterList","parameters":[],"src":"9752:2:16"},"returnParameters":{"id":6365,"nodeType":"ParameterList","parameters":[],"src":"9778:0:16"},"scope":6409,"src":"9720:456:16","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6381,"nodeType":"Block","src":"10453:618:16","statements":[{"AST":{"nativeSrc":"10515:517:16","nodeType":"YulBlock","src":"10515:517:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10591:4:16","nodeType":"YulLiteral","src":"10591:4:16","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"10597:19:16","nodeType":"YulIdentifier","src":"10597:19:16"}],"functionName":{"name":"mstore","nativeSrc":"10584:6:16","nodeType":"YulIdentifier","src":"10584:6:16"},"nativeSrc":"10584:33:16","nodeType":"YulFunctionCall","src":"10584:33:16"},"nativeSrc":"10584:33:16","nodeType":"YulExpressionStatement","src":"10584:33:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10637:4:16","nodeType":"YulLiteral","src":"10637:4:16","type":"","value":"0x00"},{"name":"pendingOwner","nativeSrc":"10643:12:16","nodeType":"YulIdentifier","src":"10643:12:16"}],"functionName":{"name":"mstore","nativeSrc":"10630:6:16","nodeType":"YulIdentifier","src":"10630:6:16"},"nativeSrc":"10630:26:16","nodeType":"YulFunctionCall","src":"10630:26:16"},"nativeSrc":"10630:26:16","nodeType":"YulExpressionStatement","src":"10630:26:16"},{"nativeSrc":"10669:41:16","nodeType":"YulVariableDeclaration","src":"10669:41:16","value":{"arguments":[{"kind":"number","nativeSrc":"10699:4:16","nodeType":"YulLiteral","src":"10699:4:16","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10705:4:16","nodeType":"YulLiteral","src":"10705:4:16","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10689:9:16","nodeType":"YulIdentifier","src":"10689:9:16"},"nativeSrc":"10689:21:16","nodeType":"YulFunctionCall","src":"10689:21:16"},"variables":[{"name":"handoverSlot","nativeSrc":"10673:12:16","nodeType":"YulTypedName","src":"10673:12:16","type":""}]},{"body":{"nativeSrc":"10826:117:16","nodeType":"YulBlock","src":"10826:117:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10851:4:16","nodeType":"YulLiteral","src":"10851:4:16","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10857:10:16","nodeType":"YulLiteral","src":"10857:10:16","type":"","value":"0x6f5e8818"}],"functionName":{"name":"mstore","nativeSrc":"10844:6:16","nodeType":"YulIdentifier","src":"10844:6:16"},"nativeSrc":"10844:24:16","nodeType":"YulFunctionCall","src":"10844:24:16"},"nativeSrc":"10844:24:16","nodeType":"YulExpressionStatement","src":"10844:24:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10918:4:16","nodeType":"YulLiteral","src":"10918:4:16","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10924:4:16","nodeType":"YulLiteral","src":"10924:4:16","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10911:6:16","nodeType":"YulIdentifier","src":"10911:6:16"},"nativeSrc":"10911:18:16","nodeType":"YulFunctionCall","src":"10911:18:16"},"nativeSrc":"10911:18:16","nodeType":"YulExpressionStatement","src":"10911:18:16"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"timestamp","nativeSrc":"10792:9:16","nodeType":"YulIdentifier","src":"10792:9:16"},"nativeSrc":"10792:11:16","nodeType":"YulFunctionCall","src":"10792:11:16"},{"arguments":[{"name":"handoverSlot","nativeSrc":"10811:12:16","nodeType":"YulIdentifier","src":"10811:12:16"}],"functionName":{"name":"sload","nativeSrc":"10805:5:16","nodeType":"YulIdentifier","src":"10805:5:16"},"nativeSrc":"10805:19:16","nodeType":"YulFunctionCall","src":"10805:19:16"}],"functionName":{"name":"gt","nativeSrc":"10789:2:16","nodeType":"YulIdentifier","src":"10789:2:16"},"nativeSrc":"10789:36:16","nodeType":"YulFunctionCall","src":"10789:36:16"},"nativeSrc":"10786:157:16","nodeType":"YulIf","src":"10786:157:16"},{"expression":{"arguments":[{"name":"handoverSlot","nativeSrc":"11006:12:16","nodeType":"YulIdentifier","src":"11006:12:16"},{"kind":"number","nativeSrc":"11020:1:16","nodeType":"YulLiteral","src":"11020:1:16","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"10999:6:16","nodeType":"YulIdentifier","src":"10999:6:16"},"nativeSrc":"10999:23:16","nodeType":"YulFunctionCall","src":"10999:23:16"},"nativeSrc":"10999:23:16","nodeType":"YulExpressionStatement","src":"10999:23:16"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6267,"isOffset":false,"isSlot":false,"src":"10597:19:16","valueSize":1},{"declaration":6371,"isOffset":false,"isSlot":false,"src":"10643:12:16","valueSize":1}],"id":6376,"nodeType":"InlineAssembly","src":"10506:526:16"},{"expression":{"arguments":[{"id":6378,"name":"pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6371,"src":"11051:12:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6377,"name":"_setOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6302,"src":"11041:9:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11041:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6380,"nodeType":"ExpressionStatement","src":"11041:23:16"}]},"documentation":{"id":6369,"nodeType":"StructuredDocumentation","src":"10182:176:16","text":"@dev Allows the owner to complete the two-step ownership handover to `pendingOwner`.\n Reverts if there is no existing ownership handover requested by `pendingOwner`."},"functionSelector":"f04e283e","id":6382,"implemented":true,"kind":"function","modifiers":[{"id":6374,"kind":"modifierInvocation","modifierName":{"id":6373,"name":"onlyOwner","nameLocations":["10443:9:16"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"10443:9:16"},"nodeType":"ModifierInvocation","src":"10443:9:16"}],"name":"completeOwnershipHandover","nameLocation":"10372:25:16","nodeType":"FunctionDefinition","parameters":{"id":6372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6371,"mutability":"mutable","name":"pendingOwner","nameLocation":"10406:12:16","nodeType":"VariableDeclaration","scope":6382,"src":"10398:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6370,"name":"address","nodeType":"ElementaryTypeName","src":"10398:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10397:22:16"},"returnParameters":{"id":6375,"nodeType":"ParameterList","parameters":[],"src":"10453:0:16"},"scope":6409,"src":"10363:708:16","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6389,"nodeType":"Block","src":"11470:120:16","statements":[{"AST":{"nativeSrc":"11532:52:16","nodeType":"YulBlock","src":"11532:52:16","statements":[{"nativeSrc":"11546:28:16","nodeType":"YulAssignment","src":"11546:28:16","value":{"arguments":[{"name":"_OWNER_SLOT","nativeSrc":"11562:11:16","nodeType":"YulIdentifier","src":"11562:11:16"}],"functionName":{"name":"sload","nativeSrc":"11556:5:16","nodeType":"YulIdentifier","src":"11556:5:16"},"nativeSrc":"11556:18:16","nodeType":"YulFunctionCall","src":"11556:18:16"},"variableNames":[{"name":"result","nativeSrc":"11546:6:16","nodeType":"YulIdentifier","src":"11546:6:16"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6263,"isOffset":false,"isSlot":false,"src":"11562:11:16","valueSize":1},{"declaration":6386,"isOffset":false,"isSlot":false,"src":"11546:6:16","valueSize":1}],"id":6388,"nodeType":"InlineAssembly","src":"11523:61:16"}]},"documentation":{"id":6383,"nodeType":"StructuredDocumentation","src":"11360:43:16","text":"@dev Returns the owner of the contract."},"functionSelector":"8da5cb5b","id":6390,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"11417:5:16","nodeType":"FunctionDefinition","parameters":{"id":6384,"nodeType":"ParameterList","parameters":[],"src":"11422:2:16"},"returnParameters":{"id":6387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6386,"mutability":"mutable","name":"result","nameLocation":"11462:6:16","nodeType":"VariableDeclaration","scope":6390,"src":"11454:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6385,"name":"address","nodeType":"ElementaryTypeName","src":"11454:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11453:16:16"},"scope":6409,"src":"11408:182:16","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6399,"nodeType":"Block","src":"11832:296:16","statements":[{"AST":{"nativeSrc":"11894:228:16","nodeType":"YulBlock","src":"11894:228:16","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11957:4:16","nodeType":"YulLiteral","src":"11957:4:16","type":"","value":"0x0c"},{"name":"_HANDOVER_SLOT_SEED","nativeSrc":"11963:19:16","nodeType":"YulIdentifier","src":"11963:19:16"}],"functionName":{"name":"mstore","nativeSrc":"11950:6:16","nodeType":"YulIdentifier","src":"11950:6:16"},"nativeSrc":"11950:33:16","nodeType":"YulFunctionCall","src":"11950:33:16"},"nativeSrc":"11950:33:16","nodeType":"YulExpressionStatement","src":"11950:33:16"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12003:4:16","nodeType":"YulLiteral","src":"12003:4:16","type":"","value":"0x00"},{"name":"pendingOwner","nativeSrc":"12009:12:16","nodeType":"YulIdentifier","src":"12009:12:16"}],"functionName":{"name":"mstore","nativeSrc":"11996:6:16","nodeType":"YulIdentifier","src":"11996:6:16"},"nativeSrc":"11996:26:16","nodeType":"YulFunctionCall","src":"11996:26:16"},"nativeSrc":"11996:26:16","nodeType":"YulExpressionStatement","src":"11996:26:16"},{"nativeSrc":"12074:38:16","nodeType":"YulAssignment","src":"12074:38:16","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12100:4:16","nodeType":"YulLiteral","src":"12100:4:16","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12106:4:16","nodeType":"YulLiteral","src":"12106:4:16","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"12090:9:16","nodeType":"YulIdentifier","src":"12090:9:16"},"nativeSrc":"12090:21:16","nodeType":"YulFunctionCall","src":"12090:21:16"}],"functionName":{"name":"sload","nativeSrc":"12084:5:16","nodeType":"YulIdentifier","src":"12084:5:16"},"nativeSrc":"12084:28:16","nodeType":"YulFunctionCall","src":"12084:28:16"},"variableNames":[{"name":"result","nativeSrc":"12074:6:16","nodeType":"YulIdentifier","src":"12074:6:16"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6267,"isOffset":false,"isSlot":false,"src":"11963:19:16","valueSize":1},{"declaration":6393,"isOffset":false,"isSlot":false,"src":"12009:12:16","valueSize":1},{"declaration":6396,"isOffset":false,"isSlot":false,"src":"12074:6:16","valueSize":1}],"id":6398,"nodeType":"InlineAssembly","src":"11885:237:16"}]},"documentation":{"id":6391,"nodeType":"StructuredDocumentation","src":"11596:92:16","text":"@dev Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"functionSelector":"fee81cf4","id":6400,"implemented":true,"kind":"function","modifiers":[],"name":"ownershipHandoverExpiresAt","nameLocation":"11702:26:16","nodeType":"FunctionDefinition","parameters":{"id":6394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6393,"mutability":"mutable","name":"pendingOwner","nameLocation":"11737:12:16","nodeType":"VariableDeclaration","scope":6400,"src":"11729:20:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6392,"name":"address","nodeType":"ElementaryTypeName","src":"11729:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11728:22:16"},"returnParameters":{"id":6397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6396,"mutability":"mutable","name":"result","nameLocation":"11820:6:16","nodeType":"VariableDeclaration","scope":6400,"src":"11812:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6395,"name":"uint256","nodeType":"ElementaryTypeName","src":"11812:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11811:16:16"},"scope":6409,"src":"11693:435:16","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6407,"nodeType":"Block","src":"12507:41:16","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6403,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6308,"src":"12517:11:16","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":6404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6405,"nodeType":"ExpressionStatement","src":"12517:13:16"},{"id":6406,"nodeType":"PlaceholderStatement","src":"12540:1:16"}]},"documentation":{"id":6401,"nodeType":"StructuredDocumentation","src":"12417:56:16","text":"@dev Marks a function as only callable by the owner."},"id":6408,"name":"onlyOwner","nameLocation":"12487:9:16","nodeType":"ModifierDefinition","parameters":{"id":6402,"nodeType":"ParameterList","parameters":[],"src":"12496:2:16"},"src":"12478:70:16","virtual":true,"visibility":"internal"}],"scope":6410,"src":"571:11979:16","usedErrors":[6221,6224,6227,6230],"usedEvents":[6237,6242,6247]}],"src":"32:12519:16"},"id":16},"@solady/auth/OwnableRoles.sol":{"ast":{"absolutePath":"@solady/auth/OwnableRoles.sol","exportedSymbols":{"Ownable":[6409],"OwnableRoles":[7936]},"id":7937,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6411,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:17"},{"absolutePath":"@solady/auth/Ownable.sol","file":"./Ownable.sol","id":6413,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7937,"sourceUnit":6410,"src":"57:38:17","symbolAliases":[{"foreign":{"id":6412,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"65:7:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6415,"name":"Ownable","nameLocations":["501:7:17"],"nodeType":"IdentifierPath","referencedDeclaration":6409,"src":"501:7:17"},"id":6416,"nodeType":"InheritanceSpecifier","src":"501:7:17"}],"canonicalName":"OwnableRoles","contractDependencies":[],"contractKind":"contract","documentation":{"id":6414,"nodeType":"StructuredDocumentation","src":"97:370:17","text":"@notice Simple single owner and multiroles authorization mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\n @dev While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173)\n for compatibility, the nomenclature for the 2-step ownership handover and roles\n may be unique to this codebase."},"fullyImplemented":true,"id":7936,"linearizedBaseContracts":[7936,6409],"name":"OwnableRoles","nameLocation":"485:12:17","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":6417,"nodeType":"StructuredDocumentation","src":"798:114:17","text":"@dev The `user`'s roles is updated to `roles`.\n Each bit of `roles` represents whether the role is set."},"eventSelector":"715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26","id":6423,"name":"RolesUpdated","nameLocation":"923:12:17","nodeType":"EventDefinition","parameters":{"id":6422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6419,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"952:4:17","nodeType":"VariableDeclaration","scope":6423,"src":"936:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6418,"name":"address","nodeType":"ElementaryTypeName","src":"936:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6421,"indexed":true,"mutability":"mutable","name":"roles","nameLocation":"974:5:17","nodeType":"VariableDeclaration","scope":6423,"src":"958:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6420,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"935:45:17"},"src":"917:64:17"},{"constant":true,"documentation":{"id":6424,"nodeType":"StructuredDocumentation","src":"987:61:17","text":"@dev `keccak256(bytes(\"RolesUpdated(address,uint256)\"))`."},"id":6427,"mutability":"constant","name":"_ROLES_UPDATED_EVENT_SIGNATURE","nameLocation":"1078:30:17","nodeType":"VariableDeclaration","scope":7936,"src":"1053:132:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6425,"name":"uint256","nodeType":"ElementaryTypeName","src":"1053:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307837313561643563653631666339353935633762343135323839643539636632303366323361393466613036663034616637653438396130613736653166653236","id":6426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:66:17","typeDescriptions":{"typeIdentifier":"t_rational_51271843761779235751881398726824997251846621987341107132597768407806770282022_by_1","typeString":"int_const 5127...(69 digits omitted)...2022"},"value":"0x715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26"},"visibility":"private"},{"constant":true,"documentation":{"id":6428,"nodeType":"StructuredDocumentation","src":"1475:420:17","text":"@dev The role slot of `user` is given by:\n ```\n mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED))\n let roleSlot := keccak256(0x00, 0x20)\n ```\n This automatically ignores the upper bits of the `user` in case\n they are not clean, as well as keep the `keccak256` under 32-bytes.\n Note: This is equivalent to `uint32(bytes4(keccak256(\"_OWNER_SLOT_NOT\")))`."},"id":6431,"mutability":"constant","name":"_ROLE_SLOT_SEED","nameLocation":"1925:15:17","nodeType":"VariableDeclaration","scope":7936,"src":"1900:53:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6429,"name":"uint256","nodeType":"ElementaryTypeName","src":"1900:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783862373863366438","id":6430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1943:10:17","typeDescriptions":{"typeIdentifier":"t_rational_2339948248_by_1","typeString":"int_const 2339948248"},"value":"0x8b78c6d8"},"visibility":"private"},{"body":{"id":6440,"nodeType":"Block","src":"2379:367:17","statements":[{"AST":{"nativeSrc":"2441:299:17","nodeType":"YulBlock","src":"2441:299:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2462:4:17","nodeType":"YulLiteral","src":"2462:4:17","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"2468:15:17","nodeType":"YulIdentifier","src":"2468:15:17"}],"functionName":{"name":"mstore","nativeSrc":"2455:6:17","nodeType":"YulIdentifier","src":"2455:6:17"},"nativeSrc":"2455:29:17","nodeType":"YulFunctionCall","src":"2455:29:17"},"nativeSrc":"2455:29:17","nodeType":"YulExpressionStatement","src":"2455:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2504:4:17","nodeType":"YulLiteral","src":"2504:4:17","type":"","value":"0x00"},{"name":"user","nativeSrc":"2510:4:17","nodeType":"YulIdentifier","src":"2510:4:17"}],"functionName":{"name":"mstore","nativeSrc":"2497:6:17","nodeType":"YulIdentifier","src":"2497:6:17"},"nativeSrc":"2497:18:17","nodeType":"YulFunctionCall","src":"2497:18:17"},"nativeSrc":"2497:18:17","nodeType":"YulExpressionStatement","src":"2497:18:17"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2581:4:17","nodeType":"YulLiteral","src":"2581:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"2587:4:17","nodeType":"YulLiteral","src":"2587:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"2571:9:17","nodeType":"YulIdentifier","src":"2571:9:17"},"nativeSrc":"2571:21:17","nodeType":"YulFunctionCall","src":"2571:21:17"},{"name":"roles","nativeSrc":"2594:5:17","nodeType":"YulIdentifier","src":"2594:5:17"}],"functionName":{"name":"sstore","nativeSrc":"2564:6:17","nodeType":"YulIdentifier","src":"2564:6:17"},"nativeSrc":"2564:36:17","nodeType":"YulFunctionCall","src":"2564:36:17"},"nativeSrc":"2564:36:17","nodeType":"YulExpressionStatement","src":"2564:36:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2664:1:17","nodeType":"YulLiteral","src":"2664:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"2667:1:17","nodeType":"YulLiteral","src":"2667:1:17","type":"","value":"0"},{"name":"_ROLES_UPDATED_EVENT_SIGNATURE","nativeSrc":"2670:30:17","nodeType":"YulIdentifier","src":"2670:30:17"},{"arguments":[{"kind":"number","nativeSrc":"2706:2:17","nodeType":"YulLiteral","src":"2706:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"2716:4:17","nodeType":"YulLiteral","src":"2716:4:17","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"2710:5:17","nodeType":"YulIdentifier","src":"2710:5:17"},"nativeSrc":"2710:11:17","nodeType":"YulFunctionCall","src":"2710:11:17"}],"functionName":{"name":"shr","nativeSrc":"2702:3:17","nodeType":"YulIdentifier","src":"2702:3:17"},"nativeSrc":"2702:20:17","nodeType":"YulFunctionCall","src":"2702:20:17"},{"name":"roles","nativeSrc":"2724:5:17","nodeType":"YulIdentifier","src":"2724:5:17"}],"functionName":{"name":"log3","nativeSrc":"2659:4:17","nodeType":"YulIdentifier","src":"2659:4:17"},"nativeSrc":"2659:71:17","nodeType":"YulFunctionCall","src":"2659:71:17"},"nativeSrc":"2659:71:17","nodeType":"YulExpressionStatement","src":"2659:71:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6427,"isOffset":false,"isSlot":false,"src":"2670:30:17","valueSize":1},{"declaration":6431,"isOffset":false,"isSlot":false,"src":"2468:15:17","valueSize":1},{"declaration":6436,"isOffset":false,"isSlot":false,"src":"2594:5:17","valueSize":1},{"declaration":6436,"isOffset":false,"isSlot":false,"src":"2724:5:17","valueSize":1},{"declaration":6434,"isOffset":false,"isSlot":false,"src":"2510:4:17","valueSize":1}],"id":6439,"nodeType":"InlineAssembly","src":"2432:308:17"}]},"documentation":{"id":6432,"nodeType":"StructuredDocumentation","src":"2243:66:17","text":"@dev Overwrite the roles directly without authorization guard."},"id":6441,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoles","nameLocation":"2323:9:17","nodeType":"FunctionDefinition","parameters":{"id":6437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6434,"mutability":"mutable","name":"user","nameLocation":"2341:4:17","nodeType":"VariableDeclaration","scope":6441,"src":"2333:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6433,"name":"address","nodeType":"ElementaryTypeName","src":"2333:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6436,"mutability":"mutable","name":"roles","nameLocation":"2355:5:17","nodeType":"VariableDeclaration","scope":6441,"src":"2347:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6435,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2332:29:17"},"returnParameters":{"id":6438,"nodeType":"ParameterList","parameters":[],"src":"2379:0:17"},"scope":7936,"src":"2314:432:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6452,"nodeType":"Block","src":"3029:890:17","statements":[{"AST":{"nativeSrc":"3091:822:17","nodeType":"YulBlock","src":"3091:822:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3112:4:17","nodeType":"YulLiteral","src":"3112:4:17","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"3118:15:17","nodeType":"YulIdentifier","src":"3118:15:17"}],"functionName":{"name":"mstore","nativeSrc":"3105:6:17","nodeType":"YulIdentifier","src":"3105:6:17"},"nativeSrc":"3105:29:17","nodeType":"YulFunctionCall","src":"3105:29:17"},"nativeSrc":"3105:29:17","nodeType":"YulExpressionStatement","src":"3105:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3154:4:17","nodeType":"YulLiteral","src":"3154:4:17","type":"","value":"0x00"},{"name":"user","nativeSrc":"3160:4:17","nodeType":"YulIdentifier","src":"3160:4:17"}],"functionName":{"name":"mstore","nativeSrc":"3147:6:17","nodeType":"YulIdentifier","src":"3147:6:17"},"nativeSrc":"3147:18:17","nodeType":"YulFunctionCall","src":"3147:18:17"},"nativeSrc":"3147:18:17","nodeType":"YulExpressionStatement","src":"3147:18:17"},{"nativeSrc":"3178:37:17","nodeType":"YulVariableDeclaration","src":"3178:37:17","value":{"arguments":[{"kind":"number","nativeSrc":"3204:4:17","nodeType":"YulLiteral","src":"3204:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"3210:4:17","nodeType":"YulLiteral","src":"3210:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"3194:9:17","nodeType":"YulIdentifier","src":"3194:9:17"},"nativeSrc":"3194:21:17","nodeType":"YulFunctionCall","src":"3194:21:17"},"variables":[{"name":"roleSlot","nativeSrc":"3182:8:17","nodeType":"YulTypedName","src":"3182:8:17","type":""}]},{"nativeSrc":"3267:30:17","nodeType":"YulVariableDeclaration","src":"3267:30:17","value":{"arguments":[{"name":"roleSlot","nativeSrc":"3288:8:17","nodeType":"YulIdentifier","src":"3288:8:17"}],"functionName":{"name":"sload","nativeSrc":"3282:5:17","nodeType":"YulIdentifier","src":"3282:5:17"},"nativeSrc":"3282:15:17","nodeType":"YulFunctionCall","src":"3282:15:17"},"variables":[{"name":"current","nativeSrc":"3271:7:17","nodeType":"YulTypedName","src":"3271:7:17","type":""}]},{"nativeSrc":"3368:33:17","nodeType":"YulVariableDeclaration","src":"3368:33:17","value":{"arguments":[{"name":"current","nativeSrc":"3386:7:17","nodeType":"YulIdentifier","src":"3386:7:17"},{"name":"roles","nativeSrc":"3395:5:17","nodeType":"YulIdentifier","src":"3395:5:17"}],"functionName":{"name":"or","nativeSrc":"3383:2:17","nodeType":"YulIdentifier","src":"3383:2:17"},"nativeSrc":"3383:18:17","nodeType":"YulFunctionCall","src":"3383:18:17"},"variables":[{"name":"updated","nativeSrc":"3372:7:17","nodeType":"YulTypedName","src":"3372:7:17","type":""}]},{"body":{"nativeSrc":"3643:48:17","nodeType":"YulBlock","src":"3643:48:17","statements":[{"nativeSrc":"3645:44:17","nodeType":"YulAssignment","src":"3645:44:17","value":{"arguments":[{"name":"current","nativeSrc":"3660:7:17","nodeType":"YulIdentifier","src":"3660:7:17"},{"arguments":[{"name":"current","nativeSrc":"3673:7:17","nodeType":"YulIdentifier","src":"3673:7:17"},{"name":"roles","nativeSrc":"3682:5:17","nodeType":"YulIdentifier","src":"3682:5:17"}],"functionName":{"name":"and","nativeSrc":"3669:3:17","nodeType":"YulIdentifier","src":"3669:3:17"},"nativeSrc":"3669:19:17","nodeType":"YulFunctionCall","src":"3669:19:17"}],"functionName":{"name":"xor","nativeSrc":"3656:3:17","nodeType":"YulIdentifier","src":"3656:3:17"},"nativeSrc":"3656:33:17","nodeType":"YulFunctionCall","src":"3656:33:17"},"variableNames":[{"name":"updated","nativeSrc":"3645:7:17","nodeType":"YulIdentifier","src":"3645:7:17"}]}]},"condition":{"arguments":[{"name":"on","nativeSrc":"3639:2:17","nodeType":"YulIdentifier","src":"3639:2:17"}],"functionName":{"name":"iszero","nativeSrc":"3632:6:17","nodeType":"YulIdentifier","src":"3632:6:17"},"nativeSrc":"3632:10:17","nodeType":"YulFunctionCall","src":"3632:10:17"},"nativeSrc":"3629:62:17","nodeType":"YulIf","src":"3629:62:17"},{"expression":{"arguments":[{"name":"roleSlot","nativeSrc":"3753:8:17","nodeType":"YulIdentifier","src":"3753:8:17"},{"name":"updated","nativeSrc":"3763:7:17","nodeType":"YulIdentifier","src":"3763:7:17"}],"functionName":{"name":"sstore","nativeSrc":"3746:6:17","nodeType":"YulIdentifier","src":"3746:6:17"},"nativeSrc":"3746:25:17","nodeType":"YulFunctionCall","src":"3746:25:17"},"nativeSrc":"3746:25:17","nodeType":"YulExpressionStatement","src":"3746:25:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3835:1:17","nodeType":"YulLiteral","src":"3835:1:17","type":"","value":"0"},{"kind":"number","nativeSrc":"3838:1:17","nodeType":"YulLiteral","src":"3838:1:17","type":"","value":"0"},{"name":"_ROLES_UPDATED_EVENT_SIGNATURE","nativeSrc":"3841:30:17","nodeType":"YulIdentifier","src":"3841:30:17"},{"arguments":[{"kind":"number","nativeSrc":"3877:2:17","nodeType":"YulLiteral","src":"3877:2:17","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"3887:4:17","nodeType":"YulLiteral","src":"3887:4:17","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"3881:5:17","nodeType":"YulIdentifier","src":"3881:5:17"},"nativeSrc":"3881:11:17","nodeType":"YulFunctionCall","src":"3881:11:17"}],"functionName":{"name":"shr","nativeSrc":"3873:3:17","nodeType":"YulIdentifier","src":"3873:3:17"},"nativeSrc":"3873:20:17","nodeType":"YulFunctionCall","src":"3873:20:17"},{"name":"updated","nativeSrc":"3895:7:17","nodeType":"YulIdentifier","src":"3895:7:17"}],"functionName":{"name":"log3","nativeSrc":"3830:4:17","nodeType":"YulIdentifier","src":"3830:4:17"},"nativeSrc":"3830:73:17","nodeType":"YulFunctionCall","src":"3830:73:17"},"nativeSrc":"3830:73:17","nodeType":"YulExpressionStatement","src":"3830:73:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6427,"isOffset":false,"isSlot":false,"src":"3841:30:17","valueSize":1},{"declaration":6431,"isOffset":false,"isSlot":false,"src":"3118:15:17","valueSize":1},{"declaration":6448,"isOffset":false,"isSlot":false,"src":"3639:2:17","valueSize":1},{"declaration":6446,"isOffset":false,"isSlot":false,"src":"3395:5:17","valueSize":1},{"declaration":6446,"isOffset":false,"isSlot":false,"src":"3682:5:17","valueSize":1},{"declaration":6444,"isOffset":false,"isSlot":false,"src":"3160:4:17","valueSize":1}],"id":6451,"nodeType":"InlineAssembly","src":"3082:831:17"}]},"documentation":{"id":6442,"nodeType":"StructuredDocumentation","src":"2752:195:17","text":"@dev Updates the roles directly without authorization guard.\n If `on` is true, each set bit of `roles` will be turned on,\n otherwise, each set bit of `roles` will be turned off."},"id":6453,"implemented":true,"kind":"function","modifiers":[],"name":"_updateRoles","nameLocation":"2961:12:17","nodeType":"FunctionDefinition","parameters":{"id":6449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6444,"mutability":"mutable","name":"user","nameLocation":"2982:4:17","nodeType":"VariableDeclaration","scope":6453,"src":"2974:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6443,"name":"address","nodeType":"ElementaryTypeName","src":"2974:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6446,"mutability":"mutable","name":"roles","nameLocation":"2996:5:17","nodeType":"VariableDeclaration","scope":6453,"src":"2988:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6445,"name":"uint256","nodeType":"ElementaryTypeName","src":"2988:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6448,"mutability":"mutable","name":"on","nameLocation":"3008:2:17","nodeType":"VariableDeclaration","scope":6453,"src":"3003:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6447,"name":"bool","nodeType":"ElementaryTypeName","src":"3003:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2973:38:17"},"returnParameters":{"id":6450,"nodeType":"ParameterList","parameters":[],"src":"3029:0:17"},"scope":7936,"src":"2952:967:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6467,"nodeType":"Block","src":"4120:48:17","statements":[{"expression":{"arguments":[{"id":6462,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6456,"src":"4143:4:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6463,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6458,"src":"4149:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":6464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4156:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6461,"name":"_updateRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"4130:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":6465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4130:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6466,"nodeType":"ExpressionStatement","src":"4130:31:17"}]},"documentation":{"id":6454,"nodeType":"StructuredDocumentation","src":"3925:123:17","text":"@dev Grants the roles directly without authorization guard.\n Each bit of `roles` represents the role to turn on."},"id":6468,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRoles","nameLocation":"4062:11:17","nodeType":"FunctionDefinition","parameters":{"id":6459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6456,"mutability":"mutable","name":"user","nameLocation":"4082:4:17","nodeType":"VariableDeclaration","scope":6468,"src":"4074:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6455,"name":"address","nodeType":"ElementaryTypeName","src":"4074:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6458,"mutability":"mutable","name":"roles","nameLocation":"4096:5:17","nodeType":"VariableDeclaration","scope":6468,"src":"4088:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6457,"name":"uint256","nodeType":"ElementaryTypeName","src":"4088:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4073:29:17"},"returnParameters":{"id":6460,"nodeType":"ParameterList","parameters":[],"src":"4120:0:17"},"scope":7936,"src":"4053:115:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6482,"nodeType":"Block","src":"4372:49:17","statements":[{"expression":{"arguments":[{"id":6477,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6471,"src":"4395:4:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6478,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6473,"src":"4401:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":6479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4408:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6476,"name":"_updateRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"4382:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":6480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:32:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6481,"nodeType":"ExpressionStatement","src":"4382:32:17"}]},"documentation":{"id":6469,"nodeType":"StructuredDocumentation","src":"4174:125:17","text":"@dev Removes the roles directly without authorization guard.\n Each bit of `roles` represents the role to turn off."},"id":6483,"implemented":true,"kind":"function","modifiers":[],"name":"_removeRoles","nameLocation":"4313:12:17","nodeType":"FunctionDefinition","parameters":{"id":6474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6471,"mutability":"mutable","name":"user","nameLocation":"4334:4:17","nodeType":"VariableDeclaration","scope":6483,"src":"4326:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6470,"name":"address","nodeType":"ElementaryTypeName","src":"4326:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6473,"mutability":"mutable","name":"roles","nameLocation":"4348:5:17","nodeType":"VariableDeclaration","scope":6483,"src":"4340:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6472,"name":"uint256","nodeType":"ElementaryTypeName","src":"4340:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4325:29:17"},"returnParameters":{"id":6475,"nodeType":"ParameterList","parameters":[],"src":"4372:0:17"},"scope":7936,"src":"4304:117:17","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":6490,"nodeType":"Block","src":"4553:496:17","statements":[{"AST":{"nativeSrc":"4615:428:17","nodeType":"YulBlock","src":"4615:428:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4674:4:17","nodeType":"YulLiteral","src":"4674:4:17","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"4680:15:17","nodeType":"YulIdentifier","src":"4680:15:17"}],"functionName":{"name":"mstore","nativeSrc":"4667:6:17","nodeType":"YulIdentifier","src":"4667:6:17"},"nativeSrc":"4667:29:17","nodeType":"YulFunctionCall","src":"4667:29:17"},"nativeSrc":"4667:29:17","nodeType":"YulExpressionStatement","src":"4667:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4716:4:17","nodeType":"YulLiteral","src":"4716:4:17","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"4722:6:17","nodeType":"YulIdentifier","src":"4722:6:17"},"nativeSrc":"4722:8:17","nodeType":"YulFunctionCall","src":"4722:8:17"}],"functionName":{"name":"mstore","nativeSrc":"4709:6:17","nodeType":"YulIdentifier","src":"4709:6:17"},"nativeSrc":"4709:22:17","nodeType":"YulFunctionCall","src":"4709:22:17"},"nativeSrc":"4709:22:17","nodeType":"YulExpressionStatement","src":"4709:22:17"},{"body":{"nativeSrc":"4921:112:17","nodeType":"YulBlock","src":"4921:112:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4946:4:17","nodeType":"YulLiteral","src":"4946:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4952:10:17","nodeType":"YulLiteral","src":"4952:10:17","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"4939:6:17","nodeType":"YulIdentifier","src":"4939:6:17"},"nativeSrc":"4939:24:17","nodeType":"YulFunctionCall","src":"4939:24:17"},"nativeSrc":"4939:24:17","nodeType":"YulExpressionStatement","src":"4939:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5008:4:17","nodeType":"YulLiteral","src":"5008:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5014:4:17","nodeType":"YulLiteral","src":"5014:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5001:6:17","nodeType":"YulIdentifier","src":"5001:6:17"},"nativeSrc":"5001:18:17","nodeType":"YulFunctionCall","src":"5001:18:17"},"nativeSrc":"5001:18:17","nodeType":"YulExpressionStatement","src":"5001:18:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4899:4:17","nodeType":"YulLiteral","src":"4899:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"4905:4:17","nodeType":"YulLiteral","src":"4905:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4889:9:17","nodeType":"YulIdentifier","src":"4889:9:17"},"nativeSrc":"4889:21:17","nodeType":"YulFunctionCall","src":"4889:21:17"}],"functionName":{"name":"sload","nativeSrc":"4883:5:17","nodeType":"YulIdentifier","src":"4883:5:17"},"nativeSrc":"4883:28:17","nodeType":"YulFunctionCall","src":"4883:28:17"},{"name":"roles","nativeSrc":"4913:5:17","nodeType":"YulIdentifier","src":"4913:5:17"}],"functionName":{"name":"and","nativeSrc":"4879:3:17","nodeType":"YulIdentifier","src":"4879:3:17"},"nativeSrc":"4879:40:17","nodeType":"YulFunctionCall","src":"4879:40:17"}],"functionName":{"name":"iszero","nativeSrc":"4872:6:17","nodeType":"YulIdentifier","src":"4872:6:17"},"nativeSrc":"4872:48:17","nodeType":"YulFunctionCall","src":"4872:48:17"},"nativeSrc":"4869:164:17","nodeType":"YulIf","src":"4869:164:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6431,"isOffset":false,"isSlot":false,"src":"4680:15:17","valueSize":1},{"declaration":6486,"isOffset":false,"isSlot":false,"src":"4913:5:17","valueSize":1}],"id":6489,"nodeType":"InlineAssembly","src":"4606:437:17"}]},"documentation":{"id":6484,"nodeType":"StructuredDocumentation","src":"4427:63:17","text":"@dev Throws if the sender does not have any of the `roles`."},"id":6491,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRoles","nameLocation":"4504:11:17","nodeType":"FunctionDefinition","parameters":{"id":6487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6486,"mutability":"mutable","name":"roles","nameLocation":"4524:5:17","nodeType":"VariableDeclaration","scope":6491,"src":"4516:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6485,"name":"uint256","nodeType":"ElementaryTypeName","src":"4516:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4515:15:17"},"returnParameters":{"id":6488,"nodeType":"ParameterList","parameters":[],"src":"4553:0:17"},"scope":7936,"src":"4495:554:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6498,"nodeType":"Block","src":"5284:737:17","statements":[{"AST":{"nativeSrc":"5346:669:17","nodeType":"YulBlock","src":"5346:669:17","statements":[{"body":{"nativeSrc":"5537:468:17","nodeType":"YulBlock","src":"5537:468:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5604:4:17","nodeType":"YulLiteral","src":"5604:4:17","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"5610:15:17","nodeType":"YulIdentifier","src":"5610:15:17"}],"functionName":{"name":"mstore","nativeSrc":"5597:6:17","nodeType":"YulIdentifier","src":"5597:6:17"},"nativeSrc":"5597:29:17","nodeType":"YulFunctionCall","src":"5597:29:17"},"nativeSrc":"5597:29:17","nodeType":"YulExpressionStatement","src":"5597:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5650:4:17","nodeType":"YulLiteral","src":"5650:4:17","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"5656:6:17","nodeType":"YulIdentifier","src":"5656:6:17"},"nativeSrc":"5656:8:17","nodeType":"YulFunctionCall","src":"5656:8:17"}],"functionName":{"name":"mstore","nativeSrc":"5643:6:17","nodeType":"YulIdentifier","src":"5643:6:17"},"nativeSrc":"5643:22:17","nodeType":"YulFunctionCall","src":"5643:22:17"},"nativeSrc":"5643:22:17","nodeType":"YulExpressionStatement","src":"5643:22:17"},{"body":{"nativeSrc":"5867:124:17","nodeType":"YulBlock","src":"5867:124:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5896:4:17","nodeType":"YulLiteral","src":"5896:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5902:10:17","nodeType":"YulLiteral","src":"5902:10:17","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"5889:6:17","nodeType":"YulIdentifier","src":"5889:6:17"},"nativeSrc":"5889:24:17","nodeType":"YulFunctionCall","src":"5889:24:17"},"nativeSrc":"5889:24:17","nodeType":"YulExpressionStatement","src":"5889:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5962:4:17","nodeType":"YulLiteral","src":"5962:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5968:4:17","nodeType":"YulLiteral","src":"5968:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5955:6:17","nodeType":"YulIdentifier","src":"5955:6:17"},"nativeSrc":"5955:18:17","nodeType":"YulFunctionCall","src":"5955:18:17"},"nativeSrc":"5955:18:17","nodeType":"YulExpressionStatement","src":"5955:18:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5845:4:17","nodeType":"YulLiteral","src":"5845:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"5851:4:17","nodeType":"YulLiteral","src":"5851:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5835:9:17","nodeType":"YulIdentifier","src":"5835:9:17"},"nativeSrc":"5835:21:17","nodeType":"YulFunctionCall","src":"5835:21:17"}],"functionName":{"name":"sload","nativeSrc":"5829:5:17","nodeType":"YulIdentifier","src":"5829:5:17"},"nativeSrc":"5829:28:17","nodeType":"YulFunctionCall","src":"5829:28:17"},{"name":"roles","nativeSrc":"5859:5:17","nodeType":"YulIdentifier","src":"5859:5:17"}],"functionName":{"name":"and","nativeSrc":"5825:3:17","nodeType":"YulIdentifier","src":"5825:3:17"},"nativeSrc":"5825:40:17","nodeType":"YulFunctionCall","src":"5825:40:17"}],"functionName":{"name":"iszero","nativeSrc":"5818:6:17","nodeType":"YulIdentifier","src":"5818:6:17"},"nativeSrc":"5818:48:17","nodeType":"YulFunctionCall","src":"5818:48:17"},"nativeSrc":"5815:176:17","nodeType":"YulIf","src":"5815:176:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"5497:6:17","nodeType":"YulIdentifier","src":"5497:6:17"},"nativeSrc":"5497:8:17","nodeType":"YulFunctionCall","src":"5497:8:17"},{"arguments":[{"arguments":[{"name":"_ROLE_SLOT_SEED","nativeSrc":"5517:15:17","nodeType":"YulIdentifier","src":"5517:15:17"}],"functionName":{"name":"not","nativeSrc":"5513:3:17","nodeType":"YulIdentifier","src":"5513:3:17"},"nativeSrc":"5513:20:17","nodeType":"YulFunctionCall","src":"5513:20:17"}],"functionName":{"name":"sload","nativeSrc":"5507:5:17","nodeType":"YulIdentifier","src":"5507:5:17"},"nativeSrc":"5507:27:17","nodeType":"YulFunctionCall","src":"5507:27:17"}],"functionName":{"name":"eq","nativeSrc":"5494:2:17","nodeType":"YulIdentifier","src":"5494:2:17"},"nativeSrc":"5494:41:17","nodeType":"YulFunctionCall","src":"5494:41:17"}],"functionName":{"name":"iszero","nativeSrc":"5487:6:17","nodeType":"YulIdentifier","src":"5487:6:17"},"nativeSrc":"5487:49:17","nodeType":"YulFunctionCall","src":"5487:49:17"},"nativeSrc":"5484:521:17","nodeType":"YulIf","src":"5484:521:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6431,"isOffset":false,"isSlot":false,"src":"5517:15:17","valueSize":1},{"declaration":6431,"isOffset":false,"isSlot":false,"src":"5610:15:17","valueSize":1},{"declaration":6494,"isOffset":false,"isSlot":false,"src":"5859:5:17","valueSize":1}],"id":6497,"nodeType":"InlineAssembly","src":"5337:678:17"}]},"documentation":{"id":6492,"nodeType":"StructuredDocumentation","src":"5055:159:17","text":"@dev Throws if the sender is not the owner,\n and does not have any of the `roles`.\n Checks for ownership first, then lazily checks for roles."},"id":6499,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwnerOrRoles","nameLocation":"5228:18:17","nodeType":"FunctionDefinition","parameters":{"id":6495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6494,"mutability":"mutable","name":"roles","nameLocation":"5255:5:17","nodeType":"VariableDeclaration","scope":6499,"src":"5247:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6493,"name":"uint256","nodeType":"ElementaryTypeName","src":"5247:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5246:15:17"},"returnParameters":{"id":6496,"nodeType":"ParameterList","parameters":[],"src":"5284:0:17"},"scope":7936,"src":"5219:802:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6506,"nodeType":"Block","src":"6256:725:17","statements":[{"AST":{"nativeSrc":"6318:657:17","nodeType":"YulBlock","src":"6318:657:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6377:4:17","nodeType":"YulLiteral","src":"6377:4:17","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"6383:15:17","nodeType":"YulIdentifier","src":"6383:15:17"}],"functionName":{"name":"mstore","nativeSrc":"6370:6:17","nodeType":"YulIdentifier","src":"6370:6:17"},"nativeSrc":"6370:29:17","nodeType":"YulFunctionCall","src":"6370:29:17"},"nativeSrc":"6370:29:17","nodeType":"YulExpressionStatement","src":"6370:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6419:4:17","nodeType":"YulLiteral","src":"6419:4:17","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"6425:6:17","nodeType":"YulIdentifier","src":"6425:6:17"},"nativeSrc":"6425:8:17","nodeType":"YulFunctionCall","src":"6425:8:17"}],"functionName":{"name":"mstore","nativeSrc":"6412:6:17","nodeType":"YulIdentifier","src":"6412:6:17"},"nativeSrc":"6412:22:17","nodeType":"YulFunctionCall","src":"6412:22:17"},"nativeSrc":"6412:22:17","nodeType":"YulExpressionStatement","src":"6412:22:17"},{"body":{"nativeSrc":"6624:341:17","nodeType":"YulBlock","src":"6624:341:17","statements":[{"body":{"nativeSrc":"6827:124:17","nodeType":"YulBlock","src":"6827:124:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6856:4:17","nodeType":"YulLiteral","src":"6856:4:17","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6862:10:17","nodeType":"YulLiteral","src":"6862:10:17","type":"","value":"0x82b42900"}],"functionName":{"name":"mstore","nativeSrc":"6849:6:17","nodeType":"YulIdentifier","src":"6849:6:17"},"nativeSrc":"6849:24:17","nodeType":"YulFunctionCall","src":"6849:24:17"},"nativeSrc":"6849:24:17","nodeType":"YulExpressionStatement","src":"6849:24:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6922:4:17","nodeType":"YulLiteral","src":"6922:4:17","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6928:4:17","nodeType":"YulLiteral","src":"6928:4:17","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6915:6:17","nodeType":"YulIdentifier","src":"6915:6:17"},"nativeSrc":"6915:18:17","nodeType":"YulFunctionCall","src":"6915:18:17"},"nativeSrc":"6915:18:17","nodeType":"YulExpressionStatement","src":"6915:18:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"6787:6:17","nodeType":"YulIdentifier","src":"6787:6:17"},"nativeSrc":"6787:8:17","nodeType":"YulFunctionCall","src":"6787:8:17"},{"arguments":[{"arguments":[{"name":"_ROLE_SLOT_SEED","nativeSrc":"6807:15:17","nodeType":"YulIdentifier","src":"6807:15:17"}],"functionName":{"name":"not","nativeSrc":"6803:3:17","nodeType":"YulIdentifier","src":"6803:3:17"},"nativeSrc":"6803:20:17","nodeType":"YulFunctionCall","src":"6803:20:17"}],"functionName":{"name":"sload","nativeSrc":"6797:5:17","nodeType":"YulIdentifier","src":"6797:5:17"},"nativeSrc":"6797:27:17","nodeType":"YulFunctionCall","src":"6797:27:17"}],"functionName":{"name":"eq","nativeSrc":"6784:2:17","nodeType":"YulIdentifier","src":"6784:2:17"},"nativeSrc":"6784:41:17","nodeType":"YulFunctionCall","src":"6784:41:17"}],"functionName":{"name":"iszero","nativeSrc":"6777:6:17","nodeType":"YulIdentifier","src":"6777:6:17"},"nativeSrc":"6777:49:17","nodeType":"YulFunctionCall","src":"6777:49:17"},"nativeSrc":"6774:177:17","nodeType":"YulIf","src":"6774:177:17"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6602:4:17","nodeType":"YulLiteral","src":"6602:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"6608:4:17","nodeType":"YulLiteral","src":"6608:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6592:9:17","nodeType":"YulIdentifier","src":"6592:9:17"},"nativeSrc":"6592:21:17","nodeType":"YulFunctionCall","src":"6592:21:17"}],"functionName":{"name":"sload","nativeSrc":"6586:5:17","nodeType":"YulIdentifier","src":"6586:5:17"},"nativeSrc":"6586:28:17","nodeType":"YulFunctionCall","src":"6586:28:17"},{"name":"roles","nativeSrc":"6616:5:17","nodeType":"YulIdentifier","src":"6616:5:17"}],"functionName":{"name":"and","nativeSrc":"6582:3:17","nodeType":"YulIdentifier","src":"6582:3:17"},"nativeSrc":"6582:40:17","nodeType":"YulFunctionCall","src":"6582:40:17"}],"functionName":{"name":"iszero","nativeSrc":"6575:6:17","nodeType":"YulIdentifier","src":"6575:6:17"},"nativeSrc":"6575:48:17","nodeType":"YulFunctionCall","src":"6575:48:17"},"nativeSrc":"6572:393:17","nodeType":"YulIf","src":"6572:393:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6431,"isOffset":false,"isSlot":false,"src":"6383:15:17","valueSize":1},{"declaration":6431,"isOffset":false,"isSlot":false,"src":"6807:15:17","valueSize":1},{"declaration":6502,"isOffset":false,"isSlot":false,"src":"6616:5:17","valueSize":1}],"id":6505,"nodeType":"InlineAssembly","src":"6309:666:17"}]},"documentation":{"id":6500,"nodeType":"StructuredDocumentation","src":"6027:159:17","text":"@dev Throws if the sender does not have any of the `roles`,\n and is not the owner.\n Checks for roles first, then lazily checks for ownership."},"id":6507,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRolesOrOwner","nameLocation":"6200:18:17","nodeType":"FunctionDefinition","parameters":{"id":6503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6502,"mutability":"mutable","name":"roles","nameLocation":"6227:5:17","nodeType":"VariableDeclaration","scope":6507,"src":"6219:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6501,"name":"uint256","nodeType":"ElementaryTypeName","src":"6219:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6218:15:17"},"returnParameters":{"id":6504,"nodeType":"ParameterList","parameters":[],"src":"6256:0:17"},"scope":7936,"src":"6191:790:17","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6517,"nodeType":"Block","src":"7389:398:17","statements":[{"AST":{"nativeSrc":"7451:330:17","nodeType":"YulBlock","src":"7451:330:17","statements":[{"body":{"nativeSrc":"7530:241:17","nodeType":"YulBlock","src":"7530:241:17","statements":[{"nativeSrc":"7706:51:17","nodeType":"YulAssignment","src":"7706:51:17","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"ordinals","nativeSrc":"7732:8:17","nodeType":"YulIdentifier","src":"7732:8:17"},{"name":"i","nativeSrc":"7742:1:17","nodeType":"YulIdentifier","src":"7742:1:17"}],"functionName":{"name":"add","nativeSrc":"7728:3:17","nodeType":"YulIdentifier","src":"7728:3:17"},"nativeSrc":"7728:16:17","nodeType":"YulFunctionCall","src":"7728:16:17"}],"functionName":{"name":"mload","nativeSrc":"7722:5:17","nodeType":"YulIdentifier","src":"7722:5:17"},"nativeSrc":"7722:23:17","nodeType":"YulFunctionCall","src":"7722:23:17"},{"kind":"number","nativeSrc":"7747:1:17","nodeType":"YulLiteral","src":"7747:1:17","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"7718:3:17","nodeType":"YulIdentifier","src":"7718:3:17"},"nativeSrc":"7718:31:17","nodeType":"YulFunctionCall","src":"7718:31:17"},{"name":"roles","nativeSrc":"7751:5:17","nodeType":"YulIdentifier","src":"7751:5:17"}],"functionName":{"name":"or","nativeSrc":"7715:2:17","nodeType":"YulIdentifier","src":"7715:2:17"},"nativeSrc":"7715:42:17","nodeType":"YulFunctionCall","src":"7715:42:17"},"variableNames":[{"name":"roles","nativeSrc":"7706:5:17","nodeType":"YulIdentifier","src":"7706:5:17"}]}]},"condition":{"name":"i","nativeSrc":"7506:1:17","nodeType":"YulIdentifier","src":"7506:1:17"},"nativeSrc":"7465:306:17","nodeType":"YulForLoop","post":{"nativeSrc":"7508:21:17","nodeType":"YulBlock","src":"7508:21:17","statements":[{"nativeSrc":"7510:17:17","nodeType":"YulAssignment","src":"7510:17:17","value":{"arguments":[{"name":"i","nativeSrc":"7519:1:17","nodeType":"YulIdentifier","src":"7519:1:17"},{"kind":"number","nativeSrc":"7522:4:17","nodeType":"YulLiteral","src":"7522:4:17","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"7515:3:17","nodeType":"YulIdentifier","src":"7515:3:17"},"nativeSrc":"7515:12:17","nodeType":"YulFunctionCall","src":"7515:12:17"},"variableNames":[{"name":"i","nativeSrc":"7510:1:17","nodeType":"YulIdentifier","src":"7510:1:17"}]}]},"pre":{"nativeSrc":"7469:36:17","nodeType":"YulBlock","src":"7469:36:17","statements":[{"nativeSrc":"7471:32:17","nodeType":"YulVariableDeclaration","src":"7471:32:17","value":{"arguments":[{"kind":"number","nativeSrc":"7484:1:17","nodeType":"YulLiteral","src":"7484:1:17","type":"","value":"5"},{"arguments":[{"name":"ordinals","nativeSrc":"7493:8:17","nodeType":"YulIdentifier","src":"7493:8:17"}],"functionName":{"name":"mload","nativeSrc":"7487:5:17","nodeType":"YulIdentifier","src":"7487:5:17"},"nativeSrc":"7487:15:17","nodeType":"YulFunctionCall","src":"7487:15:17"}],"functionName":{"name":"shl","nativeSrc":"7480:3:17","nodeType":"YulIdentifier","src":"7480:3:17"},"nativeSrc":"7480:23:17","nodeType":"YulFunctionCall","src":"7480:23:17"},"variables":[{"name":"i","nativeSrc":"7475:1:17","nodeType":"YulTypedName","src":"7475:1:17","type":""}]}]},"src":"7465:306:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6511,"isOffset":false,"isSlot":false,"src":"7493:8:17","valueSize":1},{"declaration":6511,"isOffset":false,"isSlot":false,"src":"7732:8:17","valueSize":1},{"declaration":6514,"isOffset":false,"isSlot":false,"src":"7706:5:17","valueSize":1},{"declaration":6514,"isOffset":false,"isSlot":false,"src":"7751:5:17","valueSize":1}],"id":6516,"nodeType":"InlineAssembly","src":"7442:339:17"}]},"documentation":{"id":6508,"nodeType":"StructuredDocumentation","src":"6987:306:17","text":"@dev Convenience function to return a `roles` bitmap from an array of `ordinals`.\n This is meant for frontends like Etherscan, and is therefore not fully optimized.\n Not recommended to be called on-chain.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6518,"implemented":true,"kind":"function","modifiers":[],"name":"_rolesFromOrdinals","nameLocation":"7307:18:17","nodeType":"FunctionDefinition","parameters":{"id":6512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6511,"mutability":"mutable","name":"ordinals","nameLocation":"7341:8:17","nodeType":"VariableDeclaration","scope":6518,"src":"7326:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6509,"name":"uint8","nodeType":"ElementaryTypeName","src":"7326:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6510,"nodeType":"ArrayTypeName","src":"7326:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"7325:25:17"},"returnParameters":{"id":6515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6514,"mutability":"mutable","name":"roles","nameLocation":"7382:5:17","nodeType":"VariableDeclaration","scope":6518,"src":"7374:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6513,"name":"uint256","nodeType":"ElementaryTypeName","src":"7374:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7373:15:17"},"scope":7936,"src":"7298:489:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6528,"nodeType":"Block","src":"8197:966:17","statements":[{"AST":{"nativeSrc":"8259:898:17","nodeType":"YulBlock","src":"8259:898:17","statements":[{"nativeSrc":"8325:23:17","nodeType":"YulAssignment","src":"8325:23:17","value":{"arguments":[{"kind":"number","nativeSrc":"8343:4:17","nodeType":"YulLiteral","src":"8343:4:17","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8337:5:17","nodeType":"YulIdentifier","src":"8337:5:17"},"nativeSrc":"8337:11:17","nodeType":"YulFunctionCall","src":"8337:11:17"},"variableNames":[{"name":"ordinals","nativeSrc":"8325:8:17","nodeType":"YulIdentifier","src":"8325:8:17"}]},{"nativeSrc":"8361:30:17","nodeType":"YulVariableDeclaration","src":"8361:30:17","value":{"arguments":[{"name":"ordinals","nativeSrc":"8376:8:17","nodeType":"YulIdentifier","src":"8376:8:17"},{"kind":"number","nativeSrc":"8386:4:17","nodeType":"YulLiteral","src":"8386:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8372:3:17","nodeType":"YulIdentifier","src":"8372:3:17"},"nativeSrc":"8372:19:17","nodeType":"YulFunctionCall","src":"8372:19:17"},"variables":[{"name":"ptr","nativeSrc":"8365:3:17","nodeType":"YulTypedName","src":"8365:3:17","type":""}]},{"nativeSrc":"8404:10:17","nodeType":"YulVariableDeclaration","src":"8404:10:17","value":{"kind":"number","nativeSrc":"8413:1:17","nodeType":"YulLiteral","src":"8413:1:17","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"8408:1:17","nodeType":"YulTypedName","src":"8408:1:17","type":""}]},{"body":{"nativeSrc":"8627:339:17","nodeType":"YulBlock","src":"8627:339:17","statements":[{"expression":{"arguments":[{"name":"ptr","nativeSrc":"8652:3:17","nodeType":"YulIdentifier","src":"8652:3:17"},{"name":"o","nativeSrc":"8657:1:17","nodeType":"YulIdentifier","src":"8657:1:17"}],"functionName":{"name":"mstore","nativeSrc":"8645:6:17","nodeType":"YulIdentifier","src":"8645:6:17"},"nativeSrc":"8645:14:17","nodeType":"YulFunctionCall","src":"8645:14:17"},"nativeSrc":"8645:14:17","nodeType":"YulExpressionStatement","src":"8645:14:17"},{"nativeSrc":"8813:34:17","nodeType":"YulAssignment","src":"8813:34:17","value":{"arguments":[{"name":"ptr","nativeSrc":"8824:3:17","nodeType":"YulIdentifier","src":"8824:3:17"},{"arguments":[{"kind":"number","nativeSrc":"8833:1:17","nodeType":"YulLiteral","src":"8833:1:17","type":"","value":"5"},{"arguments":[{"name":"t","nativeSrc":"8840:1:17","nodeType":"YulIdentifier","src":"8840:1:17"},{"kind":"number","nativeSrc":"8843:1:17","nodeType":"YulLiteral","src":"8843:1:17","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"8836:3:17","nodeType":"YulIdentifier","src":"8836:3:17"},"nativeSrc":"8836:9:17","nodeType":"YulFunctionCall","src":"8836:9:17"}],"functionName":{"name":"shl","nativeSrc":"8829:3:17","nodeType":"YulIdentifier","src":"8829:3:17"},"nativeSrc":"8829:17:17","nodeType":"YulFunctionCall","src":"8829:17:17"}],"functionName":{"name":"add","nativeSrc":"8820:3:17","nodeType":"YulIdentifier","src":"8820:3:17"},"nativeSrc":"8820:27:17","nodeType":"YulFunctionCall","src":"8820:27:17"},"variableNames":[{"name":"ptr","nativeSrc":"8813:3:17","nodeType":"YulIdentifier","src":"8813:3:17"}]},{"nativeSrc":"8864:14:17","nodeType":"YulAssignment","src":"8864:14:17","value":{"arguments":[{"name":"o","nativeSrc":"8873:1:17","nodeType":"YulIdentifier","src":"8873:1:17"},{"kind":"number","nativeSrc":"8876:1:17","nodeType":"YulLiteral","src":"8876:1:17","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8869:3:17","nodeType":"YulIdentifier","src":"8869:3:17"},"nativeSrc":"8869:9:17","nodeType":"YulFunctionCall","src":"8869:9:17"},"variableNames":[{"name":"o","nativeSrc":"8864:1:17","nodeType":"YulIdentifier","src":"8864:1:17"}]},{"nativeSrc":"8895:18:17","nodeType":"YulAssignment","src":"8895:18:17","value":{"arguments":[{"name":"o","nativeSrc":"8904:1:17","nodeType":"YulIdentifier","src":"8904:1:17"},{"name":"roles","nativeSrc":"8907:5:17","nodeType":"YulIdentifier","src":"8907:5:17"}],"functionName":{"name":"shr","nativeSrc":"8900:3:17","nodeType":"YulIdentifier","src":"8900:3:17"},"nativeSrc":"8900:13:17","nodeType":"YulFunctionCall","src":"8900:13:17"},"variableNames":[{"name":"t","nativeSrc":"8895:1:17","nodeType":"YulIdentifier","src":"8895:1:17"}]},{"body":{"nativeSrc":"8943:9:17","nodeType":"YulBlock","src":"8943:9:17","statements":[{"nativeSrc":"8945:5:17","nodeType":"YulBreak","src":"8945:5:17"}]},"condition":{"arguments":[{"name":"t","nativeSrc":"8940:1:17","nodeType":"YulIdentifier","src":"8940:1:17"}],"functionName":{"name":"iszero","nativeSrc":"8933:6:17","nodeType":"YulIdentifier","src":"8933:6:17"},"nativeSrc":"8933:9:17","nodeType":"YulFunctionCall","src":"8933:9:17"},"nativeSrc":"8930:22:17","nodeType":"YulIf","src":"8930:22:17"}]},"condition":{"kind":"number","nativeSrc":"8622:1:17","nodeType":"YulLiteral","src":"8622:1:17","type":"","value":"1"},"nativeSrc":"8599:367:17","nodeType":"YulForLoop","post":{"nativeSrc":"8624:2:17","nodeType":"YulBlock","src":"8624:2:17","statements":[]},"pre":{"nativeSrc":"8603:18:17","nodeType":"YulBlock","src":"8603:18:17","statements":[{"nativeSrc":"8605:14:17","nodeType":"YulVariableDeclaration","src":"8605:14:17","value":{"name":"roles","nativeSrc":"8614:5:17","nodeType":"YulIdentifier","src":"8614:5:17"},"variables":[{"name":"t","nativeSrc":"8609:1:17","nodeType":"YulTypedName","src":"8609:1:17","type":""}]}]},"src":"8599:367:17"},{"expression":{"arguments":[{"name":"ordinals","nativeSrc":"9033:8:17","nodeType":"YulIdentifier","src":"9033:8:17"},{"arguments":[{"kind":"number","nativeSrc":"9047:1:17","nodeType":"YulLiteral","src":"9047:1:17","type":"","value":"5"},{"arguments":[{"name":"ptr","nativeSrc":"9054:3:17","nodeType":"YulIdentifier","src":"9054:3:17"},{"arguments":[{"name":"ordinals","nativeSrc":"9063:8:17","nodeType":"YulIdentifier","src":"9063:8:17"},{"kind":"number","nativeSrc":"9073:4:17","nodeType":"YulLiteral","src":"9073:4:17","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9059:3:17","nodeType":"YulIdentifier","src":"9059:3:17"},"nativeSrc":"9059:19:17","nodeType":"YulFunctionCall","src":"9059:19:17"}],"functionName":{"name":"sub","nativeSrc":"9050:3:17","nodeType":"YulIdentifier","src":"9050:3:17"},"nativeSrc":"9050:29:17","nodeType":"YulFunctionCall","src":"9050:29:17"}],"functionName":{"name":"shr","nativeSrc":"9043:3:17","nodeType":"YulIdentifier","src":"9043:3:17"},"nativeSrc":"9043:37:17","nodeType":"YulFunctionCall","src":"9043:37:17"}],"functionName":{"name":"mstore","nativeSrc":"9026:6:17","nodeType":"YulIdentifier","src":"9026:6:17"},"nativeSrc":"9026:55:17","nodeType":"YulFunctionCall","src":"9026:55:17"},"nativeSrc":"9026:55:17","nodeType":"YulExpressionStatement","src":"9026:55:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9137:4:17","nodeType":"YulLiteral","src":"9137:4:17","type":"","value":"0x40"},{"name":"ptr","nativeSrc":"9143:3:17","nodeType":"YulIdentifier","src":"9143:3:17"}],"functionName":{"name":"mstore","nativeSrc":"9130:6:17","nodeType":"YulIdentifier","src":"9130:6:17"},"nativeSrc":"9130:17:17","nodeType":"YulFunctionCall","src":"9130:17:17"},"nativeSrc":"9130:17:17","nodeType":"YulExpressionStatement","src":"9130:17:17"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6525,"isOffset":false,"isSlot":false,"src":"8325:8:17","valueSize":1},{"declaration":6525,"isOffset":false,"isSlot":false,"src":"8376:8:17","valueSize":1},{"declaration":6525,"isOffset":false,"isSlot":false,"src":"9033:8:17","valueSize":1},{"declaration":6525,"isOffset":false,"isSlot":false,"src":"9063:8:17","valueSize":1},{"declaration":6521,"isOffset":false,"isSlot":false,"src":"8614:5:17","valueSize":1},{"declaration":6521,"isOffset":false,"isSlot":false,"src":"8907:5:17","valueSize":1}],"id":6527,"nodeType":"InlineAssembly","src":"8250:907:17"}]},"documentation":{"id":6519,"nodeType":"StructuredDocumentation","src":"7793:308:17","text":"@dev Convenience function to return an array of `ordinals` from the `roles` bitmap.\n This is meant for frontends like Etherscan, and is therefore not fully optimized.\n Not recommended to be called on-chain.\n Made internal to conserve bytecode. Wrap it in a public function if needed."},"id":6529,"implemented":true,"kind":"function","modifiers":[],"name":"_ordinalsFromRoles","nameLocation":"8115:18:17","nodeType":"FunctionDefinition","parameters":{"id":6522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6521,"mutability":"mutable","name":"roles","nameLocation":"8142:5:17","nodeType":"VariableDeclaration","scope":6529,"src":"8134:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6520,"name":"uint256","nodeType":"ElementaryTypeName","src":"8134:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8133:15:17"},"returnParameters":{"id":6526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6525,"mutability":"mutable","name":"ordinals","nameLocation":"8187:8:17","nodeType":"VariableDeclaration","scope":6529,"src":"8172:23:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_memory_ptr","typeString":"uint8[]"},"typeName":{"baseType":{"id":6523,"name":"uint8","nodeType":"ElementaryTypeName","src":"8172:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":6524,"nodeType":"ArrayTypeName","src":"8172:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_uint8_$dyn_storage_ptr","typeString":"uint8[]"}},"visibility":"internal"}],"src":"8171:25:17"},"scope":7936,"src":"8106:1057:17","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6544,"nodeType":"Block","src":"9670:41:17","statements":[{"expression":{"arguments":[{"id":6540,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6532,"src":"9692:4:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6541,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6534,"src":"9698:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6539,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6468,"src":"9680:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9680:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6543,"nodeType":"ExpressionStatement","src":"9680:24:17"}]},"documentation":{"id":6530,"nodeType":"StructuredDocumentation","src":"9452:131:17","text":"@dev Allows the owner to grant `user` `roles`.\n If the `user` already has a role, then it will be an no-op for the role."},"functionSelector":"1c10893f","id":6545,"implemented":true,"kind":"function","modifiers":[{"id":6537,"kind":"modifierInvocation","modifierName":{"id":6536,"name":"onlyOwner","nameLocations":["9660:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"9660:9:17"},"nodeType":"ModifierInvocation","src":"9660:9:17"}],"name":"grantRoles","nameLocation":"9597:10:17","nodeType":"FunctionDefinition","parameters":{"id":6535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6532,"mutability":"mutable","name":"user","nameLocation":"9616:4:17","nodeType":"VariableDeclaration","scope":6545,"src":"9608:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6531,"name":"address","nodeType":"ElementaryTypeName","src":"9608:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6534,"mutability":"mutable","name":"roles","nameLocation":"9630:5:17","nodeType":"VariableDeclaration","scope":6545,"src":"9622:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6533,"name":"uint256","nodeType":"ElementaryTypeName","src":"9622:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9607:29:17"},"returnParameters":{"id":6538,"nodeType":"ParameterList","parameters":[],"src":"9670:0:17"},"scope":7936,"src":"9588:123:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6560,"nodeType":"Block","src":"9939:42:17","statements":[{"expression":{"arguments":[{"id":6556,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6548,"src":"9962:4:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6557,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6550,"src":"9968:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6555,"name":"_removeRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6483,"src":"9949:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6559,"nodeType":"ExpressionStatement","src":"9949:25:17"}]},"documentation":{"id":6546,"nodeType":"StructuredDocumentation","src":"9717:134:17","text":"@dev Allows the owner to remove `user` `roles`.\n If the `user` does not have a role, then it will be an no-op for the role."},"functionSelector":"4a4ee7b1","id":6561,"implemented":true,"kind":"function","modifiers":[{"id":6553,"kind":"modifierInvocation","modifierName":{"id":6552,"name":"onlyOwner","nameLocations":["9929:9:17"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"9929:9:17"},"nodeType":"ModifierInvocation","src":"9929:9:17"}],"name":"revokeRoles","nameLocation":"9865:11:17","nodeType":"FunctionDefinition","parameters":{"id":6551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6548,"mutability":"mutable","name":"user","nameLocation":"9885:4:17","nodeType":"VariableDeclaration","scope":6561,"src":"9877:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6547,"name":"address","nodeType":"ElementaryTypeName","src":"9877:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6550,"mutability":"mutable","name":"roles","nameLocation":"9899:5:17","nodeType":"VariableDeclaration","scope":6561,"src":"9891:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6549,"name":"uint256","nodeType":"ElementaryTypeName","src":"9891:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9876:29:17"},"returnParameters":{"id":6554,"nodeType":"ParameterList","parameters":[],"src":"9939:0:17"},"scope":7936,"src":"9856:125:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6573,"nodeType":"Block","src":"10188:48:17","statements":[{"expression":{"arguments":[{"expression":{"id":6568,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10211:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10215:6:17","memberName":"sender","nodeType":"MemberAccess","src":"10211:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6570,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6564,"src":"10223:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6567,"name":"_removeRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6483,"src":"10198:12:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10198:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6572,"nodeType":"ExpressionStatement","src":"10198:31:17"}]},"documentation":{"id":6562,"nodeType":"StructuredDocumentation","src":"9987:135:17","text":"@dev Allow the caller to remove their own roles.\n If the caller does not have a role, then it will be an no-op for the role."},"functionSelector":"183a4f6e","id":6574,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRoles","nameLocation":"10136:13:17","nodeType":"FunctionDefinition","parameters":{"id":6565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6564,"mutability":"mutable","name":"roles","nameLocation":"10158:5:17","nodeType":"VariableDeclaration","scope":6574,"src":"10150:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6563,"name":"uint256","nodeType":"ElementaryTypeName","src":"10150:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10149:15:17"},"returnParameters":{"id":6566,"nodeType":"ParameterList","parameters":[],"src":"10188:0:17"},"scope":7936,"src":"10127:109:17","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":6583,"nodeType":"Block","src":"10642:278:17","statements":[{"AST":{"nativeSrc":"10704:210:17","nodeType":"YulBlock","src":"10704:210:17","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10763:4:17","nodeType":"YulLiteral","src":"10763:4:17","type":"","value":"0x0c"},{"name":"_ROLE_SLOT_SEED","nativeSrc":"10769:15:17","nodeType":"YulIdentifier","src":"10769:15:17"}],"functionName":{"name":"mstore","nativeSrc":"10756:6:17","nodeType":"YulIdentifier","src":"10756:6:17"},"nativeSrc":"10756:29:17","nodeType":"YulFunctionCall","src":"10756:29:17"},"nativeSrc":"10756:29:17","nodeType":"YulExpressionStatement","src":"10756:29:17"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10805:4:17","nodeType":"YulLiteral","src":"10805:4:17","type":"","value":"0x00"},{"name":"user","nativeSrc":"10811:4:17","nodeType":"YulIdentifier","src":"10811:4:17"}],"functionName":{"name":"mstore","nativeSrc":"10798:6:17","nodeType":"YulIdentifier","src":"10798:6:17"},"nativeSrc":"10798:18:17","nodeType":"YulFunctionCall","src":"10798:18:17"},"nativeSrc":"10798:18:17","nodeType":"YulExpressionStatement","src":"10798:18:17"},{"nativeSrc":"10867:37:17","nodeType":"YulAssignment","src":"10867:37:17","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10892:4:17","nodeType":"YulLiteral","src":"10892:4:17","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10898:4:17","nodeType":"YulLiteral","src":"10898:4:17","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"10882:9:17","nodeType":"YulIdentifier","src":"10882:9:17"},"nativeSrc":"10882:21:17","nodeType":"YulFunctionCall","src":"10882:21:17"}],"functionName":{"name":"sload","nativeSrc":"10876:5:17","nodeType":"YulIdentifier","src":"10876:5:17"},"nativeSrc":"10876:28:17","nodeType":"YulFunctionCall","src":"10876:28:17"},"variableNames":[{"name":"roles","nativeSrc":"10867:5:17","nodeType":"YulIdentifier","src":"10867:5:17"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":6431,"isOffset":false,"isSlot":false,"src":"10769:15:17","valueSize":1},{"declaration":6580,"isOffset":false,"isSlot":false,"src":"10867:5:17","valueSize":1},{"declaration":6577,"isOffset":false,"isSlot":false,"src":"10811:4:17","valueSize":1}],"id":6582,"nodeType":"InlineAssembly","src":"10695:219:17"}]},"documentation":{"id":6575,"nodeType":"StructuredDocumentation","src":"10525:37:17","text":"@dev Returns the roles of `user`."},"functionSelector":"2de94807","id":6584,"implemented":true,"kind":"function","modifiers":[],"name":"rolesOf","nameLocation":"10576:7:17","nodeType":"FunctionDefinition","parameters":{"id":6578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6577,"mutability":"mutable","name":"user","nameLocation":"10592:4:17","nodeType":"VariableDeclaration","scope":6584,"src":"10584:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6576,"name":"address","nodeType":"ElementaryTypeName","src":"10584:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10583:14:17"},"returnParameters":{"id":6581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6580,"mutability":"mutable","name":"roles","nameLocation":"10635:5:17","nodeType":"VariableDeclaration","scope":6584,"src":"10627:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6579,"name":"uint256","nodeType":"ElementaryTypeName","src":"10627:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10626:15:17"},"scope":7936,"src":"10567:353:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6602,"nodeType":"Block","src":"11066:50:17","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6595,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6587,"src":"11091:4:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6594,"name":"rolesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"11083:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":6596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11083:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":6597,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"11099:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11083:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11108:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11083:26:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6593,"id":6601,"nodeType":"Return","src":"11076:33:17"}]},"documentation":{"id":6585,"nodeType":"StructuredDocumentation","src":"10926:51:17","text":"@dev Returns whether `user` has any of `roles`."},"functionSelector":"514e62fc","id":6603,"implemented":true,"kind":"function","modifiers":[],"name":"hasAnyRole","nameLocation":"10991:10:17","nodeType":"FunctionDefinition","parameters":{"id":6590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6587,"mutability":"mutable","name":"user","nameLocation":"11010:4:17","nodeType":"VariableDeclaration","scope":6603,"src":"11002:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6586,"name":"address","nodeType":"ElementaryTypeName","src":"11002:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6589,"mutability":"mutable","name":"roles","nameLocation":"11024:5:17","nodeType":"VariableDeclaration","scope":6603,"src":"11016:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6588,"name":"uint256","nodeType":"ElementaryTypeName","src":"11016:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11001:29:17"},"returnParameters":{"id":6593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6603,"src":"11060:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6591,"name":"bool","nodeType":"ElementaryTypeName","src":"11060:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11059:6:17"},"scope":7936,"src":"10982:134:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6621,"nodeType":"Block","src":"11263:54:17","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6614,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6606,"src":"11288:4:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6613,"name":"rolesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6584,"src":"11280:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":6615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11280:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":6616,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"11296:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11280:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6618,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6608,"src":"11305:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11280:30:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6612,"id":6620,"nodeType":"Return","src":"11273:37:17"}]},"documentation":{"id":6604,"nodeType":"StructuredDocumentation","src":"11122:51:17","text":"@dev Returns whether `user` has all of `roles`."},"functionSelector":"1cd64df4","id":6622,"implemented":true,"kind":"function","modifiers":[],"name":"hasAllRoles","nameLocation":"11187:11:17","nodeType":"FunctionDefinition","parameters":{"id":6609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6606,"mutability":"mutable","name":"user","nameLocation":"11207:4:17","nodeType":"VariableDeclaration","scope":6622,"src":"11199:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6605,"name":"address","nodeType":"ElementaryTypeName","src":"11199:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6608,"mutability":"mutable","name":"roles","nameLocation":"11221:5:17","nodeType":"VariableDeclaration","scope":6622,"src":"11213:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6607,"name":"uint256","nodeType":"ElementaryTypeName","src":"11213:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11198:29:17"},"returnParameters":{"id":6612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6611,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6622,"src":"11257:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6610,"name":"bool","nodeType":"ElementaryTypeName","src":"11257:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11256:6:17"},"scope":7936,"src":"11178:139:17","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6632,"nodeType":"Block","src":"11723:46:17","statements":[{"expression":{"arguments":[{"id":6628,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6625,"src":"11745:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6627,"name":"_checkRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6491,"src":"11733:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11733:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6630,"nodeType":"ExpressionStatement","src":"11733:18:17"},{"id":6631,"nodeType":"PlaceholderStatement","src":"11761:1:17"}]},"documentation":{"id":6623,"nodeType":"StructuredDocumentation","src":"11606:70:17","text":"@dev Marks a function as only callable by an account with `roles`."},"id":6633,"name":"onlyRoles","nameLocation":"11690:9:17","nodeType":"ModifierDefinition","parameters":{"id":6626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6625,"mutability":"mutable","name":"roles","nameLocation":"11708:5:17","nodeType":"VariableDeclaration","scope":6633,"src":"11700:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6624,"name":"uint256","nodeType":"ElementaryTypeName","src":"11700:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11699:15:17"},"src":"11681:88:17","virtual":true,"visibility":"internal"},{"body":{"id":6643,"nodeType":"Block","src":"11981:53:17","statements":[{"expression":{"arguments":[{"id":6639,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6636,"src":"12010:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6638,"name":"_checkOwnerOrRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6499,"src":"11991:18:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6641,"nodeType":"ExpressionStatement","src":"11991:25:17"},{"id":6642,"nodeType":"PlaceholderStatement","src":"12026:1:17"}]},"documentation":{"id":6634,"nodeType":"StructuredDocumentation","src":"11775:152:17","text":"@dev Marks a function as only callable by the owner or by an account\n with `roles`. Checks for ownership first, then lazily checks for roles."},"id":6644,"name":"onlyOwnerOrRoles","nameLocation":"11941:16:17","nodeType":"ModifierDefinition","parameters":{"id":6637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6636,"mutability":"mutable","name":"roles","nameLocation":"11966:5:17","nodeType":"VariableDeclaration","scope":6644,"src":"11958:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6635,"name":"uint256","nodeType":"ElementaryTypeName","src":"11958:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11957:15:17"},"src":"11932:102:17","virtual":true,"visibility":"internal"},{"body":{"id":6654,"nodeType":"Block","src":"12243:53:17","statements":[{"expression":{"arguments":[{"id":6650,"name":"roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"12272:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6649,"name":"_checkRolesOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6507,"src":"12253:18:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":6651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12253:25:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6652,"nodeType":"ExpressionStatement","src":"12253:25:17"},{"id":6653,"nodeType":"PlaceholderStatement","src":"12288:1:17"}]},"documentation":{"id":6645,"nodeType":"StructuredDocumentation","src":"12040:149:17","text":"@dev Marks a function as only callable by an account with `roles`\n or the owner. Checks for roles first, then lazily checks for ownership."},"id":6655,"name":"onlyRolesOrOwner","nameLocation":"12203:16:17","nodeType":"ModifierDefinition","parameters":{"id":6648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6647,"mutability":"mutable","name":"roles","nameLocation":"12228:5:17","nodeType":"VariableDeclaration","scope":6655,"src":"12220:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6646,"name":"uint256","nodeType":"ElementaryTypeName","src":"12220:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12219:15:17"},"src":"12194:102:17","virtual":true,"visibility":"internal"},{"constant":true,"id":6660,"mutability":"constant","name":"_ROLE_0","nameLocation":"12625:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12599:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6656,"name":"uint256","nodeType":"ElementaryTypeName","src":"12599:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"id":6659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12635:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"30","id":6658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12640:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12635:6:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}},"visibility":"internal"},{"constant":true,"id":6665,"mutability":"constant","name":"_ROLE_1","nameLocation":"12673:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12647:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6661,"name":"uint256","nodeType":"ElementaryTypeName","src":"12647:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":6664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12683:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":6663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12688:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12683:6:17","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"internal"},{"constant":true,"id":6670,"mutability":"constant","name":"_ROLE_2","nameLocation":"12721:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12695:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6666,"name":"uint256","nodeType":"ElementaryTypeName","src":"12695:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"id":6669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12731:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"32","id":6668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12736:1:17","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12731:6:17","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}},"visibility":"internal"},{"constant":true,"id":6675,"mutability":"constant","name":"_ROLE_3","nameLocation":"12769:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12743:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6671,"name":"uint256","nodeType":"ElementaryTypeName","src":"12743:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"id":6674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12779:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":6673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12784:1:17","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"12779:6:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}},"visibility":"internal"},{"constant":true,"id":6680,"mutability":"constant","name":"_ROLE_4","nameLocation":"12817:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12791:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6676,"name":"uint256","nodeType":"ElementaryTypeName","src":"12791:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"id":6679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12827:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"34","id":6678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12832:1:17","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12827:6:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}},"visibility":"internal"},{"constant":true,"id":6685,"mutability":"constant","name":"_ROLE_5","nameLocation":"12865:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12839:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6681,"name":"uint256","nodeType":"ElementaryTypeName","src":"12839:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"id":6684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12875:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":6683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12880:1:17","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"12875:6:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}},"visibility":"internal"},{"constant":true,"id":6690,"mutability":"constant","name":"_ROLE_6","nameLocation":"12913:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12887:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6686,"name":"uint256","nodeType":"ElementaryTypeName","src":"12887:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"id":6689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12923:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"36","id":6688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12928:1:17","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"12923:6:17","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"}},"visibility":"internal"},{"constant":true,"id":6695,"mutability":"constant","name":"_ROLE_7","nameLocation":"12961:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12935:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6691,"name":"uint256","nodeType":"ElementaryTypeName","src":"12935:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"id":6694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12971:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"37","id":6693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12976:1:17","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"12971:6:17","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"}},"visibility":"internal"},{"constant":true,"id":6700,"mutability":"constant","name":"_ROLE_8","nameLocation":"13009:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"12983:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6696,"name":"uint256","nodeType":"ElementaryTypeName","src":"12983:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"id":6699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13019:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"38","id":6698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13024:1:17","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13019:6:17","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"}},"visibility":"internal"},{"constant":true,"id":6705,"mutability":"constant","name":"_ROLE_9","nameLocation":"13057:7:17","nodeType":"VariableDeclaration","scope":7936,"src":"13031:42:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6701,"name":"uint256","nodeType":"ElementaryTypeName","src":"13031:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_512_by_1","typeString":"int_const 512"},"id":6704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13067:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"39","id":6703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13072:1:17","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"13067:6:17","typeDescriptions":{"typeIdentifier":"t_rational_512_by_1","typeString":"int_const 512"}},"visibility":"internal"},{"constant":true,"id":6710,"mutability":"constant","name":"_ROLE_10","nameLocation":"13105:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13079:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6706,"name":"uint256","nodeType":"ElementaryTypeName","src":"13079:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"id":6709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13116:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3130","id":6708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13121:2:17","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"13116:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"}},"visibility":"internal"},{"constant":true,"id":6715,"mutability":"constant","name":"_ROLE_11","nameLocation":"13155:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13129:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6711,"name":"uint256","nodeType":"ElementaryTypeName","src":"13129:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2048_by_1","typeString":"int_const 2048"},"id":6714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13166:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3131","id":6713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13171:2:17","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"13166:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2048_by_1","typeString":"int_const 2048"}},"visibility":"internal"},{"constant":true,"id":6720,"mutability":"constant","name":"_ROLE_12","nameLocation":"13205:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13179:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6716,"name":"uint256","nodeType":"ElementaryTypeName","src":"13179:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"},"id":6719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13216:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3132","id":6718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13221:2:17","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"src":"13216:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"}},"visibility":"internal"},{"constant":true,"id":6725,"mutability":"constant","name":"_ROLE_13","nameLocation":"13255:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13229:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6721,"name":"uint256","nodeType":"ElementaryTypeName","src":"13229:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8192_by_1","typeString":"int_const 8192"},"id":6724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13266:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3133","id":6723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13271:2:17","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"src":"13266:7:17","typeDescriptions":{"typeIdentifier":"t_rational_8192_by_1","typeString":"int_const 8192"}},"visibility":"internal"},{"constant":true,"id":6730,"mutability":"constant","name":"_ROLE_14","nameLocation":"13305:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13279:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6726,"name":"uint256","nodeType":"ElementaryTypeName","src":"13279:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16384_by_1","typeString":"int_const 16384"},"id":6729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13316:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3134","id":6728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13321:2:17","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"13316:7:17","typeDescriptions":{"typeIdentifier":"t_rational_16384_by_1","typeString":"int_const 16384"}},"visibility":"internal"},{"constant":true,"id":6735,"mutability":"constant","name":"_ROLE_15","nameLocation":"13355:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13329:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6731,"name":"uint256","nodeType":"ElementaryTypeName","src":"13329:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"id":6734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13366:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3135","id":6733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13371:2:17","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"13366:7:17","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"}},"visibility":"internal"},{"constant":true,"id":6740,"mutability":"constant","name":"_ROLE_16","nameLocation":"13405:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13379:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6736,"name":"uint256","nodeType":"ElementaryTypeName","src":"13379:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"id":6739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3136","id":6738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13421:2:17","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13416:7:17","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"}},"visibility":"internal"},{"constant":true,"id":6745,"mutability":"constant","name":"_ROLE_17","nameLocation":"13455:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13429:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6741,"name":"uint256","nodeType":"ElementaryTypeName","src":"13429:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_131072_by_1","typeString":"int_const 131072"},"id":6744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13466:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3137","id":6743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13471:2:17","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"17"},"src":"13466:7:17","typeDescriptions":{"typeIdentifier":"t_rational_131072_by_1","typeString":"int_const 131072"}},"visibility":"internal"},{"constant":true,"id":6750,"mutability":"constant","name":"_ROLE_18","nameLocation":"13505:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13479:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6746,"name":"uint256","nodeType":"ElementaryTypeName","src":"13479:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_262144_by_1","typeString":"int_const 262144"},"id":6749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3138","id":6748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13521:2:17","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"13516:7:17","typeDescriptions":{"typeIdentifier":"t_rational_262144_by_1","typeString":"int_const 262144"}},"visibility":"internal"},{"constant":true,"id":6755,"mutability":"constant","name":"_ROLE_19","nameLocation":"13555:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13529:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6751,"name":"uint256","nodeType":"ElementaryTypeName","src":"13529:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_524288_by_1","typeString":"int_const 524288"},"id":6754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13566:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3139","id":6753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13571:2:17","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"src":"13566:7:17","typeDescriptions":{"typeIdentifier":"t_rational_524288_by_1","typeString":"int_const 524288"}},"visibility":"internal"},{"constant":true,"id":6760,"mutability":"constant","name":"_ROLE_20","nameLocation":"13605:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13579:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6756,"name":"uint256","nodeType":"ElementaryTypeName","src":"13579:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1048576_by_1","typeString":"int_const 1048576"},"id":6759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13616:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3230","id":6758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13621:2:17","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"src":"13616:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1048576_by_1","typeString":"int_const 1048576"}},"visibility":"internal"},{"constant":true,"id":6765,"mutability":"constant","name":"_ROLE_21","nameLocation":"13655:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13629:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6761,"name":"uint256","nodeType":"ElementaryTypeName","src":"13629:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2097152_by_1","typeString":"int_const 2097152"},"id":6764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13666:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3231","id":6763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13671:2:17","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"21"},"src":"13666:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2097152_by_1","typeString":"int_const 2097152"}},"visibility":"internal"},{"constant":true,"id":6770,"mutability":"constant","name":"_ROLE_22","nameLocation":"13705:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13679:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6766,"name":"uint256","nodeType":"ElementaryTypeName","src":"13679:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4194304_by_1","typeString":"int_const 4194304"},"id":6769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13716:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3232","id":6768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13721:2:17","typeDescriptions":{"typeIdentifier":"t_rational_22_by_1","typeString":"int_const 22"},"value":"22"},"src":"13716:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4194304_by_1","typeString":"int_const 4194304"}},"visibility":"internal"},{"constant":true,"id":6775,"mutability":"constant","name":"_ROLE_23","nameLocation":"13755:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13729:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6771,"name":"uint256","nodeType":"ElementaryTypeName","src":"13729:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8388608_by_1","typeString":"int_const 8388608"},"id":6774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13766:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3233","id":6773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13771:2:17","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"13766:7:17","typeDescriptions":{"typeIdentifier":"t_rational_8388608_by_1","typeString":"int_const 8388608"}},"visibility":"internal"},{"constant":true,"id":6780,"mutability":"constant","name":"_ROLE_24","nameLocation":"13805:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13779:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6776,"name":"uint256","nodeType":"ElementaryTypeName","src":"13779:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"},"id":6779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13816:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3234","id":6778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13821:2:17","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"13816:7:17","typeDescriptions":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"}},"visibility":"internal"},{"constant":true,"id":6785,"mutability":"constant","name":"_ROLE_25","nameLocation":"13855:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13829:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6781,"name":"uint256","nodeType":"ElementaryTypeName","src":"13829:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_33554432_by_1","typeString":"int_const 33554432"},"id":6784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13866:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3235","id":6783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13871:2:17","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"13866:7:17","typeDescriptions":{"typeIdentifier":"t_rational_33554432_by_1","typeString":"int_const 33554432"}},"visibility":"internal"},{"constant":true,"id":6790,"mutability":"constant","name":"_ROLE_26","nameLocation":"13905:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13879:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6786,"name":"uint256","nodeType":"ElementaryTypeName","src":"13879:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_67108864_by_1","typeString":"int_const 67108864"},"id":6789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13916:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3236","id":6788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13921:2:17","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"13916:7:17","typeDescriptions":{"typeIdentifier":"t_rational_67108864_by_1","typeString":"int_const 67108864"}},"visibility":"internal"},{"constant":true,"id":6795,"mutability":"constant","name":"_ROLE_27","nameLocation":"13955:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13929:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6791,"name":"uint256","nodeType":"ElementaryTypeName","src":"13929:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_134217728_by_1","typeString":"int_const 134217728"},"id":6794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13966:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3237","id":6793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13971:2:17","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"13966:7:17","typeDescriptions":{"typeIdentifier":"t_rational_134217728_by_1","typeString":"int_const 134217728"}},"visibility":"internal"},{"constant":true,"id":6800,"mutability":"constant","name":"_ROLE_28","nameLocation":"14005:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"13979:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6796,"name":"uint256","nodeType":"ElementaryTypeName","src":"13979:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_268435456_by_1","typeString":"int_const 268435456"},"id":6799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14016:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3238","id":6798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14021:2:17","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"14016:7:17","typeDescriptions":{"typeIdentifier":"t_rational_268435456_by_1","typeString":"int_const 268435456"}},"visibility":"internal"},{"constant":true,"id":6805,"mutability":"constant","name":"_ROLE_29","nameLocation":"14055:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14029:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6801,"name":"uint256","nodeType":"ElementaryTypeName","src":"14029:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_536870912_by_1","typeString":"int_const 536870912"},"id":6804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14066:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3239","id":6803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14071:2:17","typeDescriptions":{"typeIdentifier":"t_rational_29_by_1","typeString":"int_const 29"},"value":"29"},"src":"14066:7:17","typeDescriptions":{"typeIdentifier":"t_rational_536870912_by_1","typeString":"int_const 536870912"}},"visibility":"internal"},{"constant":true,"id":6810,"mutability":"constant","name":"_ROLE_30","nameLocation":"14105:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14079:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6806,"name":"uint256","nodeType":"ElementaryTypeName","src":"14079:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1073741824_by_1","typeString":"int_const 1073741824"},"id":6809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14116:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3330","id":6808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14121:2:17","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"},"src":"14116:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1073741824_by_1","typeString":"int_const 1073741824"}},"visibility":"internal"},{"constant":true,"id":6815,"mutability":"constant","name":"_ROLE_31","nameLocation":"14155:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14129:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6811,"name":"uint256","nodeType":"ElementaryTypeName","src":"14129:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2147483648_by_1","typeString":"int_const 2147483648"},"id":6814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14166:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3331","id":6813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14171:2:17","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"14166:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2147483648_by_1","typeString":"int_const 2147483648"}},"visibility":"internal"},{"constant":true,"id":6820,"mutability":"constant","name":"_ROLE_32","nameLocation":"14205:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14179:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6816,"name":"uint256","nodeType":"ElementaryTypeName","src":"14179:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":6819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14216:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":6818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14221:2:17","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14216:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"visibility":"internal"},{"constant":true,"id":6825,"mutability":"constant","name":"_ROLE_33","nameLocation":"14255:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14229:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6821,"name":"uint256","nodeType":"ElementaryTypeName","src":"14229:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8589934592_by_1","typeString":"int_const 8589934592"},"id":6824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14266:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3333","id":6823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14271:2:17","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"33"},"src":"14266:7:17","typeDescriptions":{"typeIdentifier":"t_rational_8589934592_by_1","typeString":"int_const 8589934592"}},"visibility":"internal"},{"constant":true,"id":6830,"mutability":"constant","name":"_ROLE_34","nameLocation":"14305:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14279:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6826,"name":"uint256","nodeType":"ElementaryTypeName","src":"14279:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_17179869184_by_1","typeString":"int_const 17179869184"},"id":6829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14316:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3334","id":6828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14321:2:17","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"34"},"src":"14316:7:17","typeDescriptions":{"typeIdentifier":"t_rational_17179869184_by_1","typeString":"int_const 17179869184"}},"visibility":"internal"},{"constant":true,"id":6835,"mutability":"constant","name":"_ROLE_35","nameLocation":"14355:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14329:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6831,"name":"uint256","nodeType":"ElementaryTypeName","src":"14329:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_34359738368_by_1","typeString":"int_const 34359738368"},"id":6834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14366:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3335","id":6833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14371:2:17","typeDescriptions":{"typeIdentifier":"t_rational_35_by_1","typeString":"int_const 35"},"value":"35"},"src":"14366:7:17","typeDescriptions":{"typeIdentifier":"t_rational_34359738368_by_1","typeString":"int_const 34359738368"}},"visibility":"internal"},{"constant":true,"id":6840,"mutability":"constant","name":"_ROLE_36","nameLocation":"14405:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14379:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6836,"name":"uint256","nodeType":"ElementaryTypeName","src":"14379:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_68719476736_by_1","typeString":"int_const 68719476736"},"id":6839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14416:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3336","id":6838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14421:2:17","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"src":"14416:7:17","typeDescriptions":{"typeIdentifier":"t_rational_68719476736_by_1","typeString":"int_const 68719476736"}},"visibility":"internal"},{"constant":true,"id":6845,"mutability":"constant","name":"_ROLE_37","nameLocation":"14455:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14429:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6841,"name":"uint256","nodeType":"ElementaryTypeName","src":"14429:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_137438953472_by_1","typeString":"int_const 137438953472"},"id":6844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14466:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3337","id":6843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14471:2:17","typeDescriptions":{"typeIdentifier":"t_rational_37_by_1","typeString":"int_const 37"},"value":"37"},"src":"14466:7:17","typeDescriptions":{"typeIdentifier":"t_rational_137438953472_by_1","typeString":"int_const 137438953472"}},"visibility":"internal"},{"constant":true,"id":6850,"mutability":"constant","name":"_ROLE_38","nameLocation":"14505:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14479:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6846,"name":"uint256","nodeType":"ElementaryTypeName","src":"14479:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_274877906944_by_1","typeString":"int_const 274877906944"},"id":6849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14516:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3338","id":6848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14521:2:17","typeDescriptions":{"typeIdentifier":"t_rational_38_by_1","typeString":"int_const 38"},"value":"38"},"src":"14516:7:17","typeDescriptions":{"typeIdentifier":"t_rational_274877906944_by_1","typeString":"int_const 274877906944"}},"visibility":"internal"},{"constant":true,"id":6855,"mutability":"constant","name":"_ROLE_39","nameLocation":"14555:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14529:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6851,"name":"uint256","nodeType":"ElementaryTypeName","src":"14529:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_549755813888_by_1","typeString":"int_const 549755813888"},"id":6854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14566:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3339","id":6853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14571:2:17","typeDescriptions":{"typeIdentifier":"t_rational_39_by_1","typeString":"int_const 39"},"value":"39"},"src":"14566:7:17","typeDescriptions":{"typeIdentifier":"t_rational_549755813888_by_1","typeString":"int_const 549755813888"}},"visibility":"internal"},{"constant":true,"id":6860,"mutability":"constant","name":"_ROLE_40","nameLocation":"14605:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14579:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6856,"name":"uint256","nodeType":"ElementaryTypeName","src":"14579:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1099511627776_by_1","typeString":"int_const 1099511627776"},"id":6859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14616:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3430","id":6858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14621:2:17","typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"src":"14616:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1099511627776_by_1","typeString":"int_const 1099511627776"}},"visibility":"internal"},{"constant":true,"id":6865,"mutability":"constant","name":"_ROLE_41","nameLocation":"14655:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14629:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6861,"name":"uint256","nodeType":"ElementaryTypeName","src":"14629:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2199023255552_by_1","typeString":"int_const 2199023255552"},"id":6864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14666:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3431","id":6863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14671:2:17","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"},"src":"14666:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2199023255552_by_1","typeString":"int_const 2199023255552"}},"visibility":"internal"},{"constant":true,"id":6870,"mutability":"constant","name":"_ROLE_42","nameLocation":"14705:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14679:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6866,"name":"uint256","nodeType":"ElementaryTypeName","src":"14679:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4398046511104_by_1","typeString":"int_const 4398046511104"},"id":6869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14716:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3432","id":6868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14721:2:17","typeDescriptions":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"value":"42"},"src":"14716:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4398046511104_by_1","typeString":"int_const 4398046511104"}},"visibility":"internal"},{"constant":true,"id":6875,"mutability":"constant","name":"_ROLE_43","nameLocation":"14755:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14729:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6871,"name":"uint256","nodeType":"ElementaryTypeName","src":"14729:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_8796093022208_by_1","typeString":"int_const 8796093022208"},"id":6874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14766:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3433","id":6873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14771:2:17","typeDescriptions":{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"},"value":"43"},"src":"14766:7:17","typeDescriptions":{"typeIdentifier":"t_rational_8796093022208_by_1","typeString":"int_const 8796093022208"}},"visibility":"internal"},{"constant":true,"id":6880,"mutability":"constant","name":"_ROLE_44","nameLocation":"14805:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14779:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6876,"name":"uint256","nodeType":"ElementaryTypeName","src":"14779:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_17592186044416_by_1","typeString":"int_const 17592186044416"},"id":6879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14816:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3434","id":6878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14821:2:17","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"src":"14816:7:17","typeDescriptions":{"typeIdentifier":"t_rational_17592186044416_by_1","typeString":"int_const 17592186044416"}},"visibility":"internal"},{"constant":true,"id":6885,"mutability":"constant","name":"_ROLE_45","nameLocation":"14855:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14829:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6881,"name":"uint256","nodeType":"ElementaryTypeName","src":"14829:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_35184372088832_by_1","typeString":"int_const 35184372088832"},"id":6884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14866:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3435","id":6883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14871:2:17","typeDescriptions":{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"},"value":"45"},"src":"14866:7:17","typeDescriptions":{"typeIdentifier":"t_rational_35184372088832_by_1","typeString":"int_const 35184372088832"}},"visibility":"internal"},{"constant":true,"id":6890,"mutability":"constant","name":"_ROLE_46","nameLocation":"14905:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14879:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6886,"name":"uint256","nodeType":"ElementaryTypeName","src":"14879:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_70368744177664_by_1","typeString":"int_const 70368744177664"},"id":6889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14916:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3436","id":6888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14921:2:17","typeDescriptions":{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"},"value":"46"},"src":"14916:7:17","typeDescriptions":{"typeIdentifier":"t_rational_70368744177664_by_1","typeString":"int_const 70368744177664"}},"visibility":"internal"},{"constant":true,"id":6895,"mutability":"constant","name":"_ROLE_47","nameLocation":"14955:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14929:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6891,"name":"uint256","nodeType":"ElementaryTypeName","src":"14929:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_140737488355328_by_1","typeString":"int_const 140737488355328"},"id":6894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14966:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3437","id":6893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14971:2:17","typeDescriptions":{"typeIdentifier":"t_rational_47_by_1","typeString":"int_const 47"},"value":"47"},"src":"14966:7:17","typeDescriptions":{"typeIdentifier":"t_rational_140737488355328_by_1","typeString":"int_const 140737488355328"}},"visibility":"internal"},{"constant":true,"id":6900,"mutability":"constant","name":"_ROLE_48","nameLocation":"15005:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"14979:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6896,"name":"uint256","nodeType":"ElementaryTypeName","src":"14979:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_281474976710656_by_1","typeString":"int_const 281474976710656"},"id":6899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15016:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3438","id":6898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15021:2:17","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"src":"15016:7:17","typeDescriptions":{"typeIdentifier":"t_rational_281474976710656_by_1","typeString":"int_const 281474976710656"}},"visibility":"internal"},{"constant":true,"id":6905,"mutability":"constant","name":"_ROLE_49","nameLocation":"15055:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15029:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6901,"name":"uint256","nodeType":"ElementaryTypeName","src":"15029:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_562949953421312_by_1","typeString":"int_const 562949953421312"},"id":6904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15066:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3439","id":6903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15071:2:17","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"src":"15066:7:17","typeDescriptions":{"typeIdentifier":"t_rational_562949953421312_by_1","typeString":"int_const 562949953421312"}},"visibility":"internal"},{"constant":true,"id":6910,"mutability":"constant","name":"_ROLE_50","nameLocation":"15105:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15079:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6906,"name":"uint256","nodeType":"ElementaryTypeName","src":"15079:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1125899906842624_by_1","typeString":"int_const 1125899906842624"},"id":6909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15116:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3530","id":6908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15121:2:17","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"15116:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1125899906842624_by_1","typeString":"int_const 1125899906842624"}},"visibility":"internal"},{"constant":true,"id":6915,"mutability":"constant","name":"_ROLE_51","nameLocation":"15155:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15129:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6911,"name":"uint256","nodeType":"ElementaryTypeName","src":"15129:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2251799813685248_by_1","typeString":"int_const 2251799813685248"},"id":6914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15166:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3531","id":6913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15171:2:17","typeDescriptions":{"typeIdentifier":"t_rational_51_by_1","typeString":"int_const 51"},"value":"51"},"src":"15166:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2251799813685248_by_1","typeString":"int_const 2251799813685248"}},"visibility":"internal"},{"constant":true,"id":6920,"mutability":"constant","name":"_ROLE_52","nameLocation":"15205:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15179:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6916,"name":"uint256","nodeType":"ElementaryTypeName","src":"15179:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4503599627370496_by_1","typeString":"int_const 4503599627370496"},"id":6919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15216:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3532","id":6918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15221:2:17","typeDescriptions":{"typeIdentifier":"t_rational_52_by_1","typeString":"int_const 52"},"value":"52"},"src":"15216:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4503599627370496_by_1","typeString":"int_const 4503599627370496"}},"visibility":"internal"},{"constant":true,"id":6925,"mutability":"constant","name":"_ROLE_53","nameLocation":"15255:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15229:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6921,"name":"uint256","nodeType":"ElementaryTypeName","src":"15229:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9007199254740992_by_1","typeString":"int_const 9007199254740992"},"id":6924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15266:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3533","id":6923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15271:2:17","typeDescriptions":{"typeIdentifier":"t_rational_53_by_1","typeString":"int_const 53"},"value":"53"},"src":"15266:7:17","typeDescriptions":{"typeIdentifier":"t_rational_9007199254740992_by_1","typeString":"int_const 9007199254740992"}},"visibility":"internal"},{"constant":true,"id":6930,"mutability":"constant","name":"_ROLE_54","nameLocation":"15305:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15279:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6926,"name":"uint256","nodeType":"ElementaryTypeName","src":"15279:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18014398509481984_by_1","typeString":"int_const 18014398509481984"},"id":6929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15316:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3534","id":6928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15321:2:17","typeDescriptions":{"typeIdentifier":"t_rational_54_by_1","typeString":"int_const 54"},"value":"54"},"src":"15316:7:17","typeDescriptions":{"typeIdentifier":"t_rational_18014398509481984_by_1","typeString":"int_const 18014398509481984"}},"visibility":"internal"},{"constant":true,"id":6935,"mutability":"constant","name":"_ROLE_55","nameLocation":"15355:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15329:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6931,"name":"uint256","nodeType":"ElementaryTypeName","src":"15329:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_36028797018963968_by_1","typeString":"int_const 36028797018963968"},"id":6934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15366:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3535","id":6933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15371:2:17","typeDescriptions":{"typeIdentifier":"t_rational_55_by_1","typeString":"int_const 55"},"value":"55"},"src":"15366:7:17","typeDescriptions":{"typeIdentifier":"t_rational_36028797018963968_by_1","typeString":"int_const 36028797018963968"}},"visibility":"internal"},{"constant":true,"id":6940,"mutability":"constant","name":"_ROLE_56","nameLocation":"15405:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15379:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6936,"name":"uint256","nodeType":"ElementaryTypeName","src":"15379:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_72057594037927936_by_1","typeString":"int_const 72057594037927936"},"id":6939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15416:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3536","id":6938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15421:2:17","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},"src":"15416:7:17","typeDescriptions":{"typeIdentifier":"t_rational_72057594037927936_by_1","typeString":"int_const 72057594037927936"}},"visibility":"internal"},{"constant":true,"id":6945,"mutability":"constant","name":"_ROLE_57","nameLocation":"15455:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15429:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6941,"name":"uint256","nodeType":"ElementaryTypeName","src":"15429:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_144115188075855872_by_1","typeString":"int_const 144115188075855872"},"id":6944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15466:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3537","id":6943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15471:2:17","typeDescriptions":{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"},"value":"57"},"src":"15466:7:17","typeDescriptions":{"typeIdentifier":"t_rational_144115188075855872_by_1","typeString":"int_const 144115188075855872"}},"visibility":"internal"},{"constant":true,"id":6950,"mutability":"constant","name":"_ROLE_58","nameLocation":"15505:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15479:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6946,"name":"uint256","nodeType":"ElementaryTypeName","src":"15479:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_288230376151711744_by_1","typeString":"int_const 288230376151711744"},"id":6949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15516:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3538","id":6948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15521:2:17","typeDescriptions":{"typeIdentifier":"t_rational_58_by_1","typeString":"int_const 58"},"value":"58"},"src":"15516:7:17","typeDescriptions":{"typeIdentifier":"t_rational_288230376151711744_by_1","typeString":"int_const 288230376151711744"}},"visibility":"internal"},{"constant":true,"id":6955,"mutability":"constant","name":"_ROLE_59","nameLocation":"15555:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15529:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6951,"name":"uint256","nodeType":"ElementaryTypeName","src":"15529:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_576460752303423488_by_1","typeString":"int_const 576460752303423488"},"id":6954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15566:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3539","id":6953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15571:2:17","typeDescriptions":{"typeIdentifier":"t_rational_59_by_1","typeString":"int_const 59"},"value":"59"},"src":"15566:7:17","typeDescriptions":{"typeIdentifier":"t_rational_576460752303423488_by_1","typeString":"int_const 576460752303423488"}},"visibility":"internal"},{"constant":true,"id":6960,"mutability":"constant","name":"_ROLE_60","nameLocation":"15605:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15579:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6956,"name":"uint256","nodeType":"ElementaryTypeName","src":"15579:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1152921504606846976_by_1","typeString":"int_const 1152921504606846976"},"id":6959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15616:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3630","id":6958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15621:2:17","typeDescriptions":{"typeIdentifier":"t_rational_60_by_1","typeString":"int_const 60"},"value":"60"},"src":"15616:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1152921504606846976_by_1","typeString":"int_const 1152921504606846976"}},"visibility":"internal"},{"constant":true,"id":6965,"mutability":"constant","name":"_ROLE_61","nameLocation":"15655:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15629:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6961,"name":"uint256","nodeType":"ElementaryTypeName","src":"15629:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2305843009213693952_by_1","typeString":"int_const 2305843009213693952"},"id":6964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15666:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3631","id":6963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15671:2:17","typeDescriptions":{"typeIdentifier":"t_rational_61_by_1","typeString":"int_const 61"},"value":"61"},"src":"15666:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2305843009213693952_by_1","typeString":"int_const 2305843009213693952"}},"visibility":"internal"},{"constant":true,"id":6970,"mutability":"constant","name":"_ROLE_62","nameLocation":"15705:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15679:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6966,"name":"uint256","nodeType":"ElementaryTypeName","src":"15679:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4611686018427387904_by_1","typeString":"int_const 4611686018427387904"},"id":6969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15716:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3632","id":6968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15721:2:17","typeDescriptions":{"typeIdentifier":"t_rational_62_by_1","typeString":"int_const 62"},"value":"62"},"src":"15716:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4611686018427387904_by_1","typeString":"int_const 4611686018427387904"}},"visibility":"internal"},{"constant":true,"id":6975,"mutability":"constant","name":"_ROLE_63","nameLocation":"15755:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15729:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6971,"name":"uint256","nodeType":"ElementaryTypeName","src":"15729:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9223372036854775808_by_1","typeString":"int_const 9223372036854775808"},"id":6974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15766:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3633","id":6973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15771:2:17","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"63"},"src":"15766:7:17","typeDescriptions":{"typeIdentifier":"t_rational_9223372036854775808_by_1","typeString":"int_const 9223372036854775808"}},"visibility":"internal"},{"constant":true,"id":6980,"mutability":"constant","name":"_ROLE_64","nameLocation":"15805:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15779:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6976,"name":"uint256","nodeType":"ElementaryTypeName","src":"15779:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":6979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15816:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":6978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15821:2:17","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"15816:7:17","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"visibility":"internal"},{"constant":true,"id":6985,"mutability":"constant","name":"_ROLE_65","nameLocation":"15855:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15829:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6981,"name":"uint256","nodeType":"ElementaryTypeName","src":"15829:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_36893488147419103232_by_1","typeString":"int_const 36893488147419103232"},"id":6984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15866:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3635","id":6983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15871:2:17","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"15866:7:17","typeDescriptions":{"typeIdentifier":"t_rational_36893488147419103232_by_1","typeString":"int_const 36893488147419103232"}},"visibility":"internal"},{"constant":true,"id":6990,"mutability":"constant","name":"_ROLE_66","nameLocation":"15905:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15879:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6986,"name":"uint256","nodeType":"ElementaryTypeName","src":"15879:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_73786976294838206464_by_1","typeString":"int_const 73786976294838206464"},"id":6989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15916:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3636","id":6988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15921:2:17","typeDescriptions":{"typeIdentifier":"t_rational_66_by_1","typeString":"int_const 66"},"value":"66"},"src":"15916:7:17","typeDescriptions":{"typeIdentifier":"t_rational_73786976294838206464_by_1","typeString":"int_const 73786976294838206464"}},"visibility":"internal"},{"constant":true,"id":6995,"mutability":"constant","name":"_ROLE_67","nameLocation":"15955:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15929:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6991,"name":"uint256","nodeType":"ElementaryTypeName","src":"15929:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_147573952589676412928_by_1","typeString":"int_const 147573952589676412928"},"id":6994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15966:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3637","id":6993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15971:2:17","typeDescriptions":{"typeIdentifier":"t_rational_67_by_1","typeString":"int_const 67"},"value":"67"},"src":"15966:7:17","typeDescriptions":{"typeIdentifier":"t_rational_147573952589676412928_by_1","typeString":"int_const 147573952589676412928"}},"visibility":"internal"},{"constant":true,"id":7000,"mutability":"constant","name":"_ROLE_68","nameLocation":"16005:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"15979:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6996,"name":"uint256","nodeType":"ElementaryTypeName","src":"15979:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_295147905179352825856_by_1","typeString":"int_const 295147905179352825856"},"id":6999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16016:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3638","id":6998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16021:2:17","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"16016:7:17","typeDescriptions":{"typeIdentifier":"t_rational_295147905179352825856_by_1","typeString":"int_const 295147905179352825856"}},"visibility":"internal"},{"constant":true,"id":7005,"mutability":"constant","name":"_ROLE_69","nameLocation":"16055:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16029:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7001,"name":"uint256","nodeType":"ElementaryTypeName","src":"16029:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_590295810358705651712_by_1","typeString":"int_const 590295810358705651712"},"id":7004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16066:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3639","id":7003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16071:2:17","typeDescriptions":{"typeIdentifier":"t_rational_69_by_1","typeString":"int_const 69"},"value":"69"},"src":"16066:7:17","typeDescriptions":{"typeIdentifier":"t_rational_590295810358705651712_by_1","typeString":"int_const 590295810358705651712"}},"visibility":"internal"},{"constant":true,"id":7010,"mutability":"constant","name":"_ROLE_70","nameLocation":"16105:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16079:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7006,"name":"uint256","nodeType":"ElementaryTypeName","src":"16079:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1180591620717411303424_by_1","typeString":"int_const 1180591620717411303424"},"id":7009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16116:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3730","id":7008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16121:2:17","typeDescriptions":{"typeIdentifier":"t_rational_70_by_1","typeString":"int_const 70"},"value":"70"},"src":"16116:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1180591620717411303424_by_1","typeString":"int_const 1180591620717411303424"}},"visibility":"internal"},{"constant":true,"id":7015,"mutability":"constant","name":"_ROLE_71","nameLocation":"16155:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16129:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7011,"name":"uint256","nodeType":"ElementaryTypeName","src":"16129:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2361183241434822606848_by_1","typeString":"int_const 2361183241434822606848"},"id":7014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16166:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3731","id":7013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16171:2:17","typeDescriptions":{"typeIdentifier":"t_rational_71_by_1","typeString":"int_const 71"},"value":"71"},"src":"16166:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2361183241434822606848_by_1","typeString":"int_const 2361183241434822606848"}},"visibility":"internal"},{"constant":true,"id":7020,"mutability":"constant","name":"_ROLE_72","nameLocation":"16205:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16179:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7016,"name":"uint256","nodeType":"ElementaryTypeName","src":"16179:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4722366482869645213696_by_1","typeString":"int_const 4722366482869645213696"},"id":7019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16216:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3732","id":7018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16221:2:17","typeDescriptions":{"typeIdentifier":"t_rational_72_by_1","typeString":"int_const 72"},"value":"72"},"src":"16216:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4722366482869645213696_by_1","typeString":"int_const 4722366482869645213696"}},"visibility":"internal"},{"constant":true,"id":7025,"mutability":"constant","name":"_ROLE_73","nameLocation":"16255:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16229:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7021,"name":"uint256","nodeType":"ElementaryTypeName","src":"16229:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9444732965739290427392_by_1","typeString":"int_const 9444732965739290427392"},"id":7024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16266:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3733","id":7023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16271:2:17","typeDescriptions":{"typeIdentifier":"t_rational_73_by_1","typeString":"int_const 73"},"value":"73"},"src":"16266:7:17","typeDescriptions":{"typeIdentifier":"t_rational_9444732965739290427392_by_1","typeString":"int_const 9444732965739290427392"}},"visibility":"internal"},{"constant":true,"id":7030,"mutability":"constant","name":"_ROLE_74","nameLocation":"16305:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16279:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7026,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_18889465931478580854784_by_1","typeString":"int_const 18889465931478580854784"},"id":7029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16316:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3734","id":7028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16321:2:17","typeDescriptions":{"typeIdentifier":"t_rational_74_by_1","typeString":"int_const 74"},"value":"74"},"src":"16316:7:17","typeDescriptions":{"typeIdentifier":"t_rational_18889465931478580854784_by_1","typeString":"int_const 18889465931478580854784"}},"visibility":"internal"},{"constant":true,"id":7035,"mutability":"constant","name":"_ROLE_75","nameLocation":"16355:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16329:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7031,"name":"uint256","nodeType":"ElementaryTypeName","src":"16329:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_37778931862957161709568_by_1","typeString":"int_const 37778931862957161709568"},"id":7034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16366:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3735","id":7033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16371:2:17","typeDescriptions":{"typeIdentifier":"t_rational_75_by_1","typeString":"int_const 75"},"value":"75"},"src":"16366:7:17","typeDescriptions":{"typeIdentifier":"t_rational_37778931862957161709568_by_1","typeString":"int_const 37778931862957161709568"}},"visibility":"internal"},{"constant":true,"id":7040,"mutability":"constant","name":"_ROLE_76","nameLocation":"16405:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16379:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7036,"name":"uint256","nodeType":"ElementaryTypeName","src":"16379:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_75557863725914323419136_by_1","typeString":"int_const 75557863725914323419136"},"id":7039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16416:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3736","id":7038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16421:2:17","typeDescriptions":{"typeIdentifier":"t_rational_76_by_1","typeString":"int_const 76"},"value":"76"},"src":"16416:7:17","typeDescriptions":{"typeIdentifier":"t_rational_75557863725914323419136_by_1","typeString":"int_const 75557863725914323419136"}},"visibility":"internal"},{"constant":true,"id":7045,"mutability":"constant","name":"_ROLE_77","nameLocation":"16455:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16429:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7041,"name":"uint256","nodeType":"ElementaryTypeName","src":"16429:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_151115727451828646838272_by_1","typeString":"int_const 151115727451828646838272"},"id":7044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16466:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3737","id":7043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16471:2:17","typeDescriptions":{"typeIdentifier":"t_rational_77_by_1","typeString":"int_const 77"},"value":"77"},"src":"16466:7:17","typeDescriptions":{"typeIdentifier":"t_rational_151115727451828646838272_by_1","typeString":"int_const 151115727451828646838272"}},"visibility":"internal"},{"constant":true,"id":7050,"mutability":"constant","name":"_ROLE_78","nameLocation":"16505:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16479:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7046,"name":"uint256","nodeType":"ElementaryTypeName","src":"16479:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_302231454903657293676544_by_1","typeString":"int_const 302231454903657293676544"},"id":7049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16516:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3738","id":7048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16521:2:17","typeDescriptions":{"typeIdentifier":"t_rational_78_by_1","typeString":"int_const 78"},"value":"78"},"src":"16516:7:17","typeDescriptions":{"typeIdentifier":"t_rational_302231454903657293676544_by_1","typeString":"int_const 302231454903657293676544"}},"visibility":"internal"},{"constant":true,"id":7055,"mutability":"constant","name":"_ROLE_79","nameLocation":"16555:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16529:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7051,"name":"uint256","nodeType":"ElementaryTypeName","src":"16529:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_604462909807314587353088_by_1","typeString":"int_const 604462909807314587353088"},"id":7054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16566:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3739","id":7053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16571:2:17","typeDescriptions":{"typeIdentifier":"t_rational_79_by_1","typeString":"int_const 79"},"value":"79"},"src":"16566:7:17","typeDescriptions":{"typeIdentifier":"t_rational_604462909807314587353088_by_1","typeString":"int_const 604462909807314587353088"}},"visibility":"internal"},{"constant":true,"id":7060,"mutability":"constant","name":"_ROLE_80","nameLocation":"16605:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16579:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7056,"name":"uint256","nodeType":"ElementaryTypeName","src":"16579:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1208925819614629174706176_by_1","typeString":"int_const 1208925819614629174706176"},"id":7059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16616:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3830","id":7058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16621:2:17","typeDescriptions":{"typeIdentifier":"t_rational_80_by_1","typeString":"int_const 80"},"value":"80"},"src":"16616:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1208925819614629174706176_by_1","typeString":"int_const 1208925819614629174706176"}},"visibility":"internal"},{"constant":true,"id":7065,"mutability":"constant","name":"_ROLE_81","nameLocation":"16655:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16629:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7061,"name":"uint256","nodeType":"ElementaryTypeName","src":"16629:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2417851639229258349412352_by_1","typeString":"int_const 2417851639229258349412352"},"id":7064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16666:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3831","id":7063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16671:2:17","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"81"},"src":"16666:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2417851639229258349412352_by_1","typeString":"int_const 2417851639229258349412352"}},"visibility":"internal"},{"constant":true,"id":7070,"mutability":"constant","name":"_ROLE_82","nameLocation":"16705:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16679:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7066,"name":"uint256","nodeType":"ElementaryTypeName","src":"16679:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4835703278458516698824704_by_1","typeString":"int_const 4835703278458516698824704"},"id":7069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16716:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3832","id":7068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16721:2:17","typeDescriptions":{"typeIdentifier":"t_rational_82_by_1","typeString":"int_const 82"},"value":"82"},"src":"16716:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4835703278458516698824704_by_1","typeString":"int_const 4835703278458516698824704"}},"visibility":"internal"},{"constant":true,"id":7075,"mutability":"constant","name":"_ROLE_83","nameLocation":"16755:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16729:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7071,"name":"uint256","nodeType":"ElementaryTypeName","src":"16729:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9671406556917033397649408_by_1","typeString":"int_const 9671406556917033397649408"},"id":7074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16766:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3833","id":7073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16771:2:17","typeDescriptions":{"typeIdentifier":"t_rational_83_by_1","typeString":"int_const 83"},"value":"83"},"src":"16766:7:17","typeDescriptions":{"typeIdentifier":"t_rational_9671406556917033397649408_by_1","typeString":"int_const 9671406556917033397649408"}},"visibility":"internal"},{"constant":true,"id":7080,"mutability":"constant","name":"_ROLE_84","nameLocation":"16805:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16779:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7076,"name":"uint256","nodeType":"ElementaryTypeName","src":"16779:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_19342813113834066795298816_by_1","typeString":"int_const 19342813113834066795298816"},"id":7079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16816:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3834","id":7078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16821:2:17","typeDescriptions":{"typeIdentifier":"t_rational_84_by_1","typeString":"int_const 84"},"value":"84"},"src":"16816:7:17","typeDescriptions":{"typeIdentifier":"t_rational_19342813113834066795298816_by_1","typeString":"int_const 19342813113834066795298816"}},"visibility":"internal"},{"constant":true,"id":7085,"mutability":"constant","name":"_ROLE_85","nameLocation":"16855:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16829:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7081,"name":"uint256","nodeType":"ElementaryTypeName","src":"16829:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_38685626227668133590597632_by_1","typeString":"int_const 38685626227668133590597632"},"id":7084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16866:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3835","id":7083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16871:2:17","typeDescriptions":{"typeIdentifier":"t_rational_85_by_1","typeString":"int_const 85"},"value":"85"},"src":"16866:7:17","typeDescriptions":{"typeIdentifier":"t_rational_38685626227668133590597632_by_1","typeString":"int_const 38685626227668133590597632"}},"visibility":"internal"},{"constant":true,"id":7090,"mutability":"constant","name":"_ROLE_86","nameLocation":"16905:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16879:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7086,"name":"uint256","nodeType":"ElementaryTypeName","src":"16879:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_77371252455336267181195264_by_1","typeString":"int_const 77371252455336267181195264"},"id":7089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16916:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3836","id":7088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16921:2:17","typeDescriptions":{"typeIdentifier":"t_rational_86_by_1","typeString":"int_const 86"},"value":"86"},"src":"16916:7:17","typeDescriptions":{"typeIdentifier":"t_rational_77371252455336267181195264_by_1","typeString":"int_const 77371252455336267181195264"}},"visibility":"internal"},{"constant":true,"id":7095,"mutability":"constant","name":"_ROLE_87","nameLocation":"16955:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16929:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7091,"name":"uint256","nodeType":"ElementaryTypeName","src":"16929:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_154742504910672534362390528_by_1","typeString":"int_const 154742504910672534362390528"},"id":7094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16966:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3837","id":7093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16971:2:17","typeDescriptions":{"typeIdentifier":"t_rational_87_by_1","typeString":"int_const 87"},"value":"87"},"src":"16966:7:17","typeDescriptions":{"typeIdentifier":"t_rational_154742504910672534362390528_by_1","typeString":"int_const 154742504910672534362390528"}},"visibility":"internal"},{"constant":true,"id":7100,"mutability":"constant","name":"_ROLE_88","nameLocation":"17005:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"16979:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7096,"name":"uint256","nodeType":"ElementaryTypeName","src":"16979:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_309485009821345068724781056_by_1","typeString":"int_const 309485009821345068724781056"},"id":7099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17016:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3838","id":7098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17021:2:17","typeDescriptions":{"typeIdentifier":"t_rational_88_by_1","typeString":"int_const 88"},"value":"88"},"src":"17016:7:17","typeDescriptions":{"typeIdentifier":"t_rational_309485009821345068724781056_by_1","typeString":"int_const 309485009821345068724781056"}},"visibility":"internal"},{"constant":true,"id":7105,"mutability":"constant","name":"_ROLE_89","nameLocation":"17055:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17029:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7101,"name":"uint256","nodeType":"ElementaryTypeName","src":"17029:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_618970019642690137449562112_by_1","typeString":"int_const 618970019642690137449562112"},"id":7104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17066:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3839","id":7103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17071:2:17","typeDescriptions":{"typeIdentifier":"t_rational_89_by_1","typeString":"int_const 89"},"value":"89"},"src":"17066:7:17","typeDescriptions":{"typeIdentifier":"t_rational_618970019642690137449562112_by_1","typeString":"int_const 618970019642690137449562112"}},"visibility":"internal"},{"constant":true,"id":7110,"mutability":"constant","name":"_ROLE_90","nameLocation":"17105:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17079:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7106,"name":"uint256","nodeType":"ElementaryTypeName","src":"17079:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1237940039285380274899124224_by_1","typeString":"int_const 1237940039285380274899124224"},"id":7109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17116:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3930","id":7108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17121:2:17","typeDescriptions":{"typeIdentifier":"t_rational_90_by_1","typeString":"int_const 90"},"value":"90"},"src":"17116:7:17","typeDescriptions":{"typeIdentifier":"t_rational_1237940039285380274899124224_by_1","typeString":"int_const 1237940039285380274899124224"}},"visibility":"internal"},{"constant":true,"id":7115,"mutability":"constant","name":"_ROLE_91","nameLocation":"17155:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17129:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7111,"name":"uint256","nodeType":"ElementaryTypeName","src":"17129:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2475880078570760549798248448_by_1","typeString":"int_const 2475880078570760549798248448"},"id":7114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17166:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3931","id":7113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17171:2:17","typeDescriptions":{"typeIdentifier":"t_rational_91_by_1","typeString":"int_const 91"},"value":"91"},"src":"17166:7:17","typeDescriptions":{"typeIdentifier":"t_rational_2475880078570760549798248448_by_1","typeString":"int_const 2475880078570760549798248448"}},"visibility":"internal"},{"constant":true,"id":7120,"mutability":"constant","name":"_ROLE_92","nameLocation":"17205:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17179:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7116,"name":"uint256","nodeType":"ElementaryTypeName","src":"17179:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_4951760157141521099596496896_by_1","typeString":"int_const 4951760157141521099596496896"},"id":7119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17216:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3932","id":7118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17221:2:17","typeDescriptions":{"typeIdentifier":"t_rational_92_by_1","typeString":"int_const 92"},"value":"92"},"src":"17216:7:17","typeDescriptions":{"typeIdentifier":"t_rational_4951760157141521099596496896_by_1","typeString":"int_const 4951760157141521099596496896"}},"visibility":"internal"},{"constant":true,"id":7125,"mutability":"constant","name":"_ROLE_93","nameLocation":"17255:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17229:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7121,"name":"uint256","nodeType":"ElementaryTypeName","src":"17229:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_9903520314283042199192993792_by_1","typeString":"int_const 9903520314283042199192993792"},"id":7124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17266:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3933","id":7123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17271:2:17","typeDescriptions":{"typeIdentifier":"t_rational_93_by_1","typeString":"int_const 93"},"value":"93"},"src":"17266:7:17","typeDescriptions":{"typeIdentifier":"t_rational_9903520314283042199192993792_by_1","typeString":"int_const 9903520314283042199192993792"}},"visibility":"internal"},{"constant":true,"id":7130,"mutability":"constant","name":"_ROLE_94","nameLocation":"17305:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17279:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7126,"name":"uint256","nodeType":"ElementaryTypeName","src":"17279:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_19807040628566084398385987584_by_1","typeString":"int_const 19807040628566084398385987584"},"id":7129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17316:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3934","id":7128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17321:2:17","typeDescriptions":{"typeIdentifier":"t_rational_94_by_1","typeString":"int_const 94"},"value":"94"},"src":"17316:7:17","typeDescriptions":{"typeIdentifier":"t_rational_19807040628566084398385987584_by_1","typeString":"int_const 19807040628566084398385987584"}},"visibility":"internal"},{"constant":true,"id":7135,"mutability":"constant","name":"_ROLE_95","nameLocation":"17355:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17329:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7131,"name":"uint256","nodeType":"ElementaryTypeName","src":"17329:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"},"id":7134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17366:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3935","id":7133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17371:2:17","typeDescriptions":{"typeIdentifier":"t_rational_95_by_1","typeString":"int_const 95"},"value":"95"},"src":"17366:7:17","typeDescriptions":{"typeIdentifier":"t_rational_39614081257132168796771975168_by_1","typeString":"int_const 39614081257132168796771975168"}},"visibility":"internal"},{"constant":true,"id":7140,"mutability":"constant","name":"_ROLE_96","nameLocation":"17405:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17379:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7136,"name":"uint256","nodeType":"ElementaryTypeName","src":"17379:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"},"id":7139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17416:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3936","id":7138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17421:2:17","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"17416:7:17","typeDescriptions":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"}},"visibility":"internal"},{"constant":true,"id":7145,"mutability":"constant","name":"_ROLE_97","nameLocation":"17455:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17429:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7141,"name":"uint256","nodeType":"ElementaryTypeName","src":"17429:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_158456325028528675187087900672_by_1","typeString":"int_const 158456325028528675187087900672"},"id":7144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17466:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3937","id":7143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17471:2:17","typeDescriptions":{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},"value":"97"},"src":"17466:7:17","typeDescriptions":{"typeIdentifier":"t_rational_158456325028528675187087900672_by_1","typeString":"int_const 158456325028528675187087900672"}},"visibility":"internal"},{"constant":true,"id":7150,"mutability":"constant","name":"_ROLE_98","nameLocation":"17505:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17479:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7146,"name":"uint256","nodeType":"ElementaryTypeName","src":"17479:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_316912650057057350374175801344_by_1","typeString":"int_const 316912650057057350374175801344"},"id":7149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17516:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3938","id":7148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17521:2:17","typeDescriptions":{"typeIdentifier":"t_rational_98_by_1","typeString":"int_const 98"},"value":"98"},"src":"17516:7:17","typeDescriptions":{"typeIdentifier":"t_rational_316912650057057350374175801344_by_1","typeString":"int_const 316912650057057350374175801344"}},"visibility":"internal"},{"constant":true,"id":7155,"mutability":"constant","name":"_ROLE_99","nameLocation":"17555:8:17","nodeType":"VariableDeclaration","scope":7936,"src":"17529:44:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7151,"name":"uint256","nodeType":"ElementaryTypeName","src":"17529:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_633825300114114700748351602688_by_1","typeString":"int_const 633825300114114700748351602688"},"id":7154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17566:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3939","id":7153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17571:2:17","typeDescriptions":{"typeIdentifier":"t_rational_99_by_1","typeString":"int_const 99"},"value":"99"},"src":"17566:7:17","typeDescriptions":{"typeIdentifier":"t_rational_633825300114114700748351602688_by_1","typeString":"int_const 633825300114114700748351602688"}},"visibility":"internal"},{"constant":true,"id":7160,"mutability":"constant","name":"_ROLE_100","nameLocation":"17605:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17579:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7156,"name":"uint256","nodeType":"ElementaryTypeName","src":"17579:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1267650600228229401496703205376_by_1","typeString":"int_const 1267650600228229401496703205376"},"id":7159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17617:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313030","id":7158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17622:3:17","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"17617:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1267650600228229401496703205376_by_1","typeString":"int_const 1267650600228229401496703205376"}},"visibility":"internal"},{"constant":true,"id":7165,"mutability":"constant","name":"_ROLE_101","nameLocation":"17657:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17631:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7161,"name":"uint256","nodeType":"ElementaryTypeName","src":"17631:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2535301200456458802993406410752_by_1","typeString":"int_const 2535301200456458802993406410752"},"id":7164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17669:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313031","id":7163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17674:3:17","typeDescriptions":{"typeIdentifier":"t_rational_101_by_1","typeString":"int_const 101"},"value":"101"},"src":"17669:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2535301200456458802993406410752_by_1","typeString":"int_const 2535301200456458802993406410752"}},"visibility":"internal"},{"constant":true,"id":7170,"mutability":"constant","name":"_ROLE_102","nameLocation":"17709:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17683:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7166,"name":"uint256","nodeType":"ElementaryTypeName","src":"17683:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5070602400912917605986812821504_by_1","typeString":"int_const 5070602400912917605986812821504"},"id":7169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17721:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313032","id":7168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17726:3:17","typeDescriptions":{"typeIdentifier":"t_rational_102_by_1","typeString":"int_const 102"},"value":"102"},"src":"17721:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5070602400912917605986812821504_by_1","typeString":"int_const 5070602400912917605986812821504"}},"visibility":"internal"},{"constant":true,"id":7175,"mutability":"constant","name":"_ROLE_103","nameLocation":"17761:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17735:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7171,"name":"uint256","nodeType":"ElementaryTypeName","src":"17735:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10141204801825835211973625643008_by_1","typeString":"int_const 10141204801825835211973625643008"},"id":7174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17773:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313033","id":7173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17778:3:17","typeDescriptions":{"typeIdentifier":"t_rational_103_by_1","typeString":"int_const 103"},"value":"103"},"src":"17773:8:17","typeDescriptions":{"typeIdentifier":"t_rational_10141204801825835211973625643008_by_1","typeString":"int_const 10141204801825835211973625643008"}},"visibility":"internal"},{"constant":true,"id":7180,"mutability":"constant","name":"_ROLE_104","nameLocation":"17813:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17787:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7176,"name":"uint256","nodeType":"ElementaryTypeName","src":"17787:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_20282409603651670423947251286016_by_1","typeString":"int_const 20282409603651670423947251286016"},"id":7179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17825:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313034","id":7178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17830:3:17","typeDescriptions":{"typeIdentifier":"t_rational_104_by_1","typeString":"int_const 104"},"value":"104"},"src":"17825:8:17","typeDescriptions":{"typeIdentifier":"t_rational_20282409603651670423947251286016_by_1","typeString":"int_const 20282409603651670423947251286016"}},"visibility":"internal"},{"constant":true,"id":7185,"mutability":"constant","name":"_ROLE_105","nameLocation":"17865:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17839:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7181,"name":"uint256","nodeType":"ElementaryTypeName","src":"17839:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_40564819207303340847894502572032_by_1","typeString":"int_const 40564819207303340847894502572032"},"id":7184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17877:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313035","id":7183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17882:3:17","typeDescriptions":{"typeIdentifier":"t_rational_105_by_1","typeString":"int_const 105"},"value":"105"},"src":"17877:8:17","typeDescriptions":{"typeIdentifier":"t_rational_40564819207303340847894502572032_by_1","typeString":"int_const 40564819207303340847894502572032"}},"visibility":"internal"},{"constant":true,"id":7190,"mutability":"constant","name":"_ROLE_106","nameLocation":"17917:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17891:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7186,"name":"uint256","nodeType":"ElementaryTypeName","src":"17891:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_81129638414606681695789005144064_by_1","typeString":"int_const 81129638414606681695789005144064"},"id":7189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17929:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313036","id":7188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17934:3:17","typeDescriptions":{"typeIdentifier":"t_rational_106_by_1","typeString":"int_const 106"},"value":"106"},"src":"17929:8:17","typeDescriptions":{"typeIdentifier":"t_rational_81129638414606681695789005144064_by_1","typeString":"int_const 81129638414606681695789005144064"}},"visibility":"internal"},{"constant":true,"id":7195,"mutability":"constant","name":"_ROLE_107","nameLocation":"17969:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17943:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"17943:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_162259276829213363391578010288128_by_1","typeString":"int_const 1622...(25 digits omitted)...8128"},"id":7194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17981:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313037","id":7193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17986:3:17","typeDescriptions":{"typeIdentifier":"t_rational_107_by_1","typeString":"int_const 107"},"value":"107"},"src":"17981:8:17","typeDescriptions":{"typeIdentifier":"t_rational_162259276829213363391578010288128_by_1","typeString":"int_const 1622...(25 digits omitted)...8128"}},"visibility":"internal"},{"constant":true,"id":7200,"mutability":"constant","name":"_ROLE_108","nameLocation":"18021:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"17995:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7196,"name":"uint256","nodeType":"ElementaryTypeName","src":"17995:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_324518553658426726783156020576256_by_1","typeString":"int_const 3245...(25 digits omitted)...6256"},"id":7199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18033:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313038","id":7198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18038:3:17","typeDescriptions":{"typeIdentifier":"t_rational_108_by_1","typeString":"int_const 108"},"value":"108"},"src":"18033:8:17","typeDescriptions":{"typeIdentifier":"t_rational_324518553658426726783156020576256_by_1","typeString":"int_const 3245...(25 digits omitted)...6256"}},"visibility":"internal"},{"constant":true,"id":7205,"mutability":"constant","name":"_ROLE_109","nameLocation":"18073:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18047:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7201,"name":"uint256","nodeType":"ElementaryTypeName","src":"18047:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_649037107316853453566312041152512_by_1","typeString":"int_const 6490...(25 digits omitted)...2512"},"id":7204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18085:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313039","id":7203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18090:3:17","typeDescriptions":{"typeIdentifier":"t_rational_109_by_1","typeString":"int_const 109"},"value":"109"},"src":"18085:8:17","typeDescriptions":{"typeIdentifier":"t_rational_649037107316853453566312041152512_by_1","typeString":"int_const 6490...(25 digits omitted)...2512"}},"visibility":"internal"},{"constant":true,"id":7210,"mutability":"constant","name":"_ROLE_110","nameLocation":"18125:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18099:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7206,"name":"uint256","nodeType":"ElementaryTypeName","src":"18099:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1298074214633706907132624082305024_by_1","typeString":"int_const 1298...(26 digits omitted)...5024"},"id":7209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18137:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313130","id":7208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18142:3:17","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"},"src":"18137:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1298074214633706907132624082305024_by_1","typeString":"int_const 1298...(26 digits omitted)...5024"}},"visibility":"internal"},{"constant":true,"id":7215,"mutability":"constant","name":"_ROLE_111","nameLocation":"18177:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18151:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7211,"name":"uint256","nodeType":"ElementaryTypeName","src":"18151:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2596148429267413814265248164610048_by_1","typeString":"int_const 2596...(26 digits omitted)...0048"},"id":7214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18189:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313131","id":7213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18194:3:17","typeDescriptions":{"typeIdentifier":"t_rational_111_by_1","typeString":"int_const 111"},"value":"111"},"src":"18189:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2596148429267413814265248164610048_by_1","typeString":"int_const 2596...(26 digits omitted)...0048"}},"visibility":"internal"},{"constant":true,"id":7220,"mutability":"constant","name":"_ROLE_112","nameLocation":"18229:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18203:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7216,"name":"uint256","nodeType":"ElementaryTypeName","src":"18203:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"},"id":7219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18241:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313132","id":7218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18246:3:17","typeDescriptions":{"typeIdentifier":"t_rational_112_by_1","typeString":"int_const 112"},"value":"112"},"src":"18241:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5192296858534827628530496329220096_by_1","typeString":"int_const 5192...(26 digits omitted)...0096"}},"visibility":"internal"},{"constant":true,"id":7225,"mutability":"constant","name":"_ROLE_113","nameLocation":"18281:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18255:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7221,"name":"uint256","nodeType":"ElementaryTypeName","src":"18255:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10384593717069655257060992658440192_by_1","typeString":"int_const 1038...(27 digits omitted)...0192"},"id":7224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18293:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313133","id":7223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18298:3:17","typeDescriptions":{"typeIdentifier":"t_rational_113_by_1","typeString":"int_const 113"},"value":"113"},"src":"18293:8:17","typeDescriptions":{"typeIdentifier":"t_rational_10384593717069655257060992658440192_by_1","typeString":"int_const 1038...(27 digits omitted)...0192"}},"visibility":"internal"},{"constant":true,"id":7230,"mutability":"constant","name":"_ROLE_114","nameLocation":"18333:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18307:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7226,"name":"uint256","nodeType":"ElementaryTypeName","src":"18307:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_20769187434139310514121985316880384_by_1","typeString":"int_const 2076...(27 digits omitted)...0384"},"id":7229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18345:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313134","id":7228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18350:3:17","typeDescriptions":{"typeIdentifier":"t_rational_114_by_1","typeString":"int_const 114"},"value":"114"},"src":"18345:8:17","typeDescriptions":{"typeIdentifier":"t_rational_20769187434139310514121985316880384_by_1","typeString":"int_const 2076...(27 digits omitted)...0384"}},"visibility":"internal"},{"constant":true,"id":7235,"mutability":"constant","name":"_ROLE_115","nameLocation":"18385:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18359:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7231,"name":"uint256","nodeType":"ElementaryTypeName","src":"18359:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_41538374868278621028243970633760768_by_1","typeString":"int_const 4153...(27 digits omitted)...0768"},"id":7234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18397:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313135","id":7233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18402:3:17","typeDescriptions":{"typeIdentifier":"t_rational_115_by_1","typeString":"int_const 115"},"value":"115"},"src":"18397:8:17","typeDescriptions":{"typeIdentifier":"t_rational_41538374868278621028243970633760768_by_1","typeString":"int_const 4153...(27 digits omitted)...0768"}},"visibility":"internal"},{"constant":true,"id":7240,"mutability":"constant","name":"_ROLE_116","nameLocation":"18437:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18411:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7236,"name":"uint256","nodeType":"ElementaryTypeName","src":"18411:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_83076749736557242056487941267521536_by_1","typeString":"int_const 8307...(27 digits omitted)...1536"},"id":7239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18449:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313136","id":7238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18454:3:17","typeDescriptions":{"typeIdentifier":"t_rational_116_by_1","typeString":"int_const 116"},"value":"116"},"src":"18449:8:17","typeDescriptions":{"typeIdentifier":"t_rational_83076749736557242056487941267521536_by_1","typeString":"int_const 8307...(27 digits omitted)...1536"}},"visibility":"internal"},{"constant":true,"id":7245,"mutability":"constant","name":"_ROLE_117","nameLocation":"18489:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18463:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7241,"name":"uint256","nodeType":"ElementaryTypeName","src":"18463:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_166153499473114484112975882535043072_by_1","typeString":"int_const 1661...(28 digits omitted)...3072"},"id":7244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18501:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313137","id":7243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18506:3:17","typeDescriptions":{"typeIdentifier":"t_rational_117_by_1","typeString":"int_const 117"},"value":"117"},"src":"18501:8:17","typeDescriptions":{"typeIdentifier":"t_rational_166153499473114484112975882535043072_by_1","typeString":"int_const 1661...(28 digits omitted)...3072"}},"visibility":"internal"},{"constant":true,"id":7250,"mutability":"constant","name":"_ROLE_118","nameLocation":"18541:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18515:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7246,"name":"uint256","nodeType":"ElementaryTypeName","src":"18515:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_332306998946228968225951765070086144_by_1","typeString":"int_const 3323...(28 digits omitted)...6144"},"id":7249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18553:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313138","id":7248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18558:3:17","typeDescriptions":{"typeIdentifier":"t_rational_118_by_1","typeString":"int_const 118"},"value":"118"},"src":"18553:8:17","typeDescriptions":{"typeIdentifier":"t_rational_332306998946228968225951765070086144_by_1","typeString":"int_const 3323...(28 digits omitted)...6144"}},"visibility":"internal"},{"constant":true,"id":7255,"mutability":"constant","name":"_ROLE_119","nameLocation":"18593:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18567:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7251,"name":"uint256","nodeType":"ElementaryTypeName","src":"18567:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_664613997892457936451903530140172288_by_1","typeString":"int_const 6646...(28 digits omitted)...2288"},"id":7254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18605:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313139","id":7253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18610:3:17","typeDescriptions":{"typeIdentifier":"t_rational_119_by_1","typeString":"int_const 119"},"value":"119"},"src":"18605:8:17","typeDescriptions":{"typeIdentifier":"t_rational_664613997892457936451903530140172288_by_1","typeString":"int_const 6646...(28 digits omitted)...2288"}},"visibility":"internal"},{"constant":true,"id":7260,"mutability":"constant","name":"_ROLE_120","nameLocation":"18645:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18619:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7256,"name":"uint256","nodeType":"ElementaryTypeName","src":"18619:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1329227995784915872903807060280344576_by_1","typeString":"int_const 1329...(29 digits omitted)...4576"},"id":7259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18657:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313230","id":7258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18662:3:17","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"18657:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1329227995784915872903807060280344576_by_1","typeString":"int_const 1329...(29 digits omitted)...4576"}},"visibility":"internal"},{"constant":true,"id":7265,"mutability":"constant","name":"_ROLE_121","nameLocation":"18697:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18671:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7261,"name":"uint256","nodeType":"ElementaryTypeName","src":"18671:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2658455991569831745807614120560689152_by_1","typeString":"int_const 2658...(29 digits omitted)...9152"},"id":7264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18709:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313231","id":7263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18714:3:17","typeDescriptions":{"typeIdentifier":"t_rational_121_by_1","typeString":"int_const 121"},"value":"121"},"src":"18709:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2658455991569831745807614120560689152_by_1","typeString":"int_const 2658...(29 digits omitted)...9152"}},"visibility":"internal"},{"constant":true,"id":7270,"mutability":"constant","name":"_ROLE_122","nameLocation":"18749:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18723:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7266,"name":"uint256","nodeType":"ElementaryTypeName","src":"18723:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5316911983139663491615228241121378304_by_1","typeString":"int_const 5316...(29 digits omitted)...8304"},"id":7269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18761:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313232","id":7268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18766:3:17","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"122"},"src":"18761:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5316911983139663491615228241121378304_by_1","typeString":"int_const 5316...(29 digits omitted)...8304"}},"visibility":"internal"},{"constant":true,"id":7275,"mutability":"constant","name":"_ROLE_123","nameLocation":"18801:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18775:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7271,"name":"uint256","nodeType":"ElementaryTypeName","src":"18775:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10633823966279326983230456482242756608_by_1","typeString":"int_const 1063...(30 digits omitted)...6608"},"id":7274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18813:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313233","id":7273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18818:3:17","typeDescriptions":{"typeIdentifier":"t_rational_123_by_1","typeString":"int_const 123"},"value":"123"},"src":"18813:8:17","typeDescriptions":{"typeIdentifier":"t_rational_10633823966279326983230456482242756608_by_1","typeString":"int_const 1063...(30 digits omitted)...6608"}},"visibility":"internal"},{"constant":true,"id":7280,"mutability":"constant","name":"_ROLE_124","nameLocation":"18853:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18827:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7276,"name":"uint256","nodeType":"ElementaryTypeName","src":"18827:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_21267647932558653966460912964485513216_by_1","typeString":"int_const 2126...(30 digits omitted)...3216"},"id":7279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18865:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313234","id":7278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18870:3:17","typeDescriptions":{"typeIdentifier":"t_rational_124_by_1","typeString":"int_const 124"},"value":"124"},"src":"18865:8:17","typeDescriptions":{"typeIdentifier":"t_rational_21267647932558653966460912964485513216_by_1","typeString":"int_const 2126...(30 digits omitted)...3216"}},"visibility":"internal"},{"constant":true,"id":7285,"mutability":"constant","name":"_ROLE_125","nameLocation":"18905:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18879:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7281,"name":"uint256","nodeType":"ElementaryTypeName","src":"18879:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_42535295865117307932921825928971026432_by_1","typeString":"int_const 4253...(30 digits omitted)...6432"},"id":7284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18917:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313235","id":7283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18922:3:17","typeDescriptions":{"typeIdentifier":"t_rational_125_by_1","typeString":"int_const 125"},"value":"125"},"src":"18917:8:17","typeDescriptions":{"typeIdentifier":"t_rational_42535295865117307932921825928971026432_by_1","typeString":"int_const 4253...(30 digits omitted)...6432"}},"visibility":"internal"},{"constant":true,"id":7290,"mutability":"constant","name":"_ROLE_126","nameLocation":"18957:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18931:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7286,"name":"uint256","nodeType":"ElementaryTypeName","src":"18931:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_85070591730234615865843651857942052864_by_1","typeString":"int_const 8507...(30 digits omitted)...2864"},"id":7289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18969:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313236","id":7288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18974:3:17","typeDescriptions":{"typeIdentifier":"t_rational_126_by_1","typeString":"int_const 126"},"value":"126"},"src":"18969:8:17","typeDescriptions":{"typeIdentifier":"t_rational_85070591730234615865843651857942052864_by_1","typeString":"int_const 8507...(30 digits omitted)...2864"}},"visibility":"internal"},{"constant":true,"id":7295,"mutability":"constant","name":"_ROLE_127","nameLocation":"19009:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"18983:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7291,"name":"uint256","nodeType":"ElementaryTypeName","src":"18983:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"id":7294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19021:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313237","id":7293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19026:3:17","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"src":"19021:8:17","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"}},"visibility":"internal"},{"constant":true,"id":7300,"mutability":"constant","name":"_ROLE_128","nameLocation":"19061:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19035:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7296,"name":"uint256","nodeType":"ElementaryTypeName","src":"19035:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":7299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19073:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":7298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19078:3:17","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"19073:8:17","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"internal"},{"constant":true,"id":7305,"mutability":"constant","name":"_ROLE_129","nameLocation":"19113:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19087:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7301,"name":"uint256","nodeType":"ElementaryTypeName","src":"19087:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_680564733841876926926749214863536422912_by_1","typeString":"int_const 6805...(31 digits omitted)...2912"},"id":7304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19125:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313239","id":7303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19130:3:17","typeDescriptions":{"typeIdentifier":"t_rational_129_by_1","typeString":"int_const 129"},"value":"129"},"src":"19125:8:17","typeDescriptions":{"typeIdentifier":"t_rational_680564733841876926926749214863536422912_by_1","typeString":"int_const 6805...(31 digits omitted)...2912"}},"visibility":"internal"},{"constant":true,"id":7310,"mutability":"constant","name":"_ROLE_130","nameLocation":"19165:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19139:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7306,"name":"uint256","nodeType":"ElementaryTypeName","src":"19139:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1361129467683753853853498429727072845824_by_1","typeString":"int_const 1361...(32 digits omitted)...5824"},"id":7309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19177:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313330","id":7308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19182:3:17","typeDescriptions":{"typeIdentifier":"t_rational_130_by_1","typeString":"int_const 130"},"value":"130"},"src":"19177:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1361129467683753853853498429727072845824_by_1","typeString":"int_const 1361...(32 digits omitted)...5824"}},"visibility":"internal"},{"constant":true,"id":7315,"mutability":"constant","name":"_ROLE_131","nameLocation":"19217:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19191:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7311,"name":"uint256","nodeType":"ElementaryTypeName","src":"19191:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2722258935367507707706996859454145691648_by_1","typeString":"int_const 2722...(32 digits omitted)...1648"},"id":7314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19229:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313331","id":7313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19234:3:17","typeDescriptions":{"typeIdentifier":"t_rational_131_by_1","typeString":"int_const 131"},"value":"131"},"src":"19229:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2722258935367507707706996859454145691648_by_1","typeString":"int_const 2722...(32 digits omitted)...1648"}},"visibility":"internal"},{"constant":true,"id":7320,"mutability":"constant","name":"_ROLE_132","nameLocation":"19269:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19243:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7316,"name":"uint256","nodeType":"ElementaryTypeName","src":"19243:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5444517870735015415413993718908291383296_by_1","typeString":"int_const 5444...(32 digits omitted)...3296"},"id":7319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19281:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313332","id":7318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19286:3:17","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"132"},"src":"19281:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5444517870735015415413993718908291383296_by_1","typeString":"int_const 5444...(32 digits omitted)...3296"}},"visibility":"internal"},{"constant":true,"id":7325,"mutability":"constant","name":"_ROLE_133","nameLocation":"19321:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19295:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7321,"name":"uint256","nodeType":"ElementaryTypeName","src":"19295:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10889035741470030830827987437816582766592_by_1","typeString":"int_const 1088...(33 digits omitted)...6592"},"id":7324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19333:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313333","id":7323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19338:3:17","typeDescriptions":{"typeIdentifier":"t_rational_133_by_1","typeString":"int_const 133"},"value":"133"},"src":"19333:8:17","typeDescriptions":{"typeIdentifier":"t_rational_10889035741470030830827987437816582766592_by_1","typeString":"int_const 1088...(33 digits omitted)...6592"}},"visibility":"internal"},{"constant":true,"id":7330,"mutability":"constant","name":"_ROLE_134","nameLocation":"19373:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19347:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7326,"name":"uint256","nodeType":"ElementaryTypeName","src":"19347:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_21778071482940061661655974875633165533184_by_1","typeString":"int_const 2177...(33 digits omitted)...3184"},"id":7329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19385:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313334","id":7328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19390:3:17","typeDescriptions":{"typeIdentifier":"t_rational_134_by_1","typeString":"int_const 134"},"value":"134"},"src":"19385:8:17","typeDescriptions":{"typeIdentifier":"t_rational_21778071482940061661655974875633165533184_by_1","typeString":"int_const 2177...(33 digits omitted)...3184"}},"visibility":"internal"},{"constant":true,"id":7335,"mutability":"constant","name":"_ROLE_135","nameLocation":"19425:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19399:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7331,"name":"uint256","nodeType":"ElementaryTypeName","src":"19399:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_43556142965880123323311949751266331066368_by_1","typeString":"int_const 4355...(33 digits omitted)...6368"},"id":7334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19437:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313335","id":7333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19442:3:17","typeDescriptions":{"typeIdentifier":"t_rational_135_by_1","typeString":"int_const 135"},"value":"135"},"src":"19437:8:17","typeDescriptions":{"typeIdentifier":"t_rational_43556142965880123323311949751266331066368_by_1","typeString":"int_const 4355...(33 digits omitted)...6368"}},"visibility":"internal"},{"constant":true,"id":7340,"mutability":"constant","name":"_ROLE_136","nameLocation":"19477:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19451:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7336,"name":"uint256","nodeType":"ElementaryTypeName","src":"19451:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_87112285931760246646623899502532662132736_by_1","typeString":"int_const 8711...(33 digits omitted)...2736"},"id":7339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19489:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313336","id":7338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19494:3:17","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"},"src":"19489:8:17","typeDescriptions":{"typeIdentifier":"t_rational_87112285931760246646623899502532662132736_by_1","typeString":"int_const 8711...(33 digits omitted)...2736"}},"visibility":"internal"},{"constant":true,"id":7345,"mutability":"constant","name":"_ROLE_137","nameLocation":"19529:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19503:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7341,"name":"uint256","nodeType":"ElementaryTypeName","src":"19503:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_174224571863520493293247799005065324265472_by_1","typeString":"int_const 1742...(34 digits omitted)...5472"},"id":7344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19541:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313337","id":7343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19546:3:17","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},"src":"19541:8:17","typeDescriptions":{"typeIdentifier":"t_rational_174224571863520493293247799005065324265472_by_1","typeString":"int_const 1742...(34 digits omitted)...5472"}},"visibility":"internal"},{"constant":true,"id":7350,"mutability":"constant","name":"_ROLE_138","nameLocation":"19581:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19555:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7346,"name":"uint256","nodeType":"ElementaryTypeName","src":"19555:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_348449143727040986586495598010130648530944_by_1","typeString":"int_const 3484...(34 digits omitted)...0944"},"id":7349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19593:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313338","id":7348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19598:3:17","typeDescriptions":{"typeIdentifier":"t_rational_138_by_1","typeString":"int_const 138"},"value":"138"},"src":"19593:8:17","typeDescriptions":{"typeIdentifier":"t_rational_348449143727040986586495598010130648530944_by_1","typeString":"int_const 3484...(34 digits omitted)...0944"}},"visibility":"internal"},{"constant":true,"id":7355,"mutability":"constant","name":"_ROLE_139","nameLocation":"19633:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19607:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7351,"name":"uint256","nodeType":"ElementaryTypeName","src":"19607:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_696898287454081973172991196020261297061888_by_1","typeString":"int_const 6968...(34 digits omitted)...1888"},"id":7354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19645:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313339","id":7353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19650:3:17","typeDescriptions":{"typeIdentifier":"t_rational_139_by_1","typeString":"int_const 139"},"value":"139"},"src":"19645:8:17","typeDescriptions":{"typeIdentifier":"t_rational_696898287454081973172991196020261297061888_by_1","typeString":"int_const 6968...(34 digits omitted)...1888"}},"visibility":"internal"},{"constant":true,"id":7360,"mutability":"constant","name":"_ROLE_140","nameLocation":"19685:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19659:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7356,"name":"uint256","nodeType":"ElementaryTypeName","src":"19659:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1393796574908163946345982392040522594123776_by_1","typeString":"int_const 1393...(35 digits omitted)...3776"},"id":7359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19697:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313430","id":7358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19702:3:17","typeDescriptions":{"typeIdentifier":"t_rational_140_by_1","typeString":"int_const 140"},"value":"140"},"src":"19697:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1393796574908163946345982392040522594123776_by_1","typeString":"int_const 1393...(35 digits omitted)...3776"}},"visibility":"internal"},{"constant":true,"id":7365,"mutability":"constant","name":"_ROLE_141","nameLocation":"19737:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19711:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7361,"name":"uint256","nodeType":"ElementaryTypeName","src":"19711:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2787593149816327892691964784081045188247552_by_1","typeString":"int_const 2787...(35 digits omitted)...7552"},"id":7364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19749:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313431","id":7363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19754:3:17","typeDescriptions":{"typeIdentifier":"t_rational_141_by_1","typeString":"int_const 141"},"value":"141"},"src":"19749:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2787593149816327892691964784081045188247552_by_1","typeString":"int_const 2787...(35 digits omitted)...7552"}},"visibility":"internal"},{"constant":true,"id":7370,"mutability":"constant","name":"_ROLE_142","nameLocation":"19789:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19763:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7366,"name":"uint256","nodeType":"ElementaryTypeName","src":"19763:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5575186299632655785383929568162090376495104_by_1","typeString":"int_const 5575...(35 digits omitted)...5104"},"id":7369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19801:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313432","id":7368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19806:3:17","typeDescriptions":{"typeIdentifier":"t_rational_142_by_1","typeString":"int_const 142"},"value":"142"},"src":"19801:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5575186299632655785383929568162090376495104_by_1","typeString":"int_const 5575...(35 digits omitted)...5104"}},"visibility":"internal"},{"constant":true,"id":7375,"mutability":"constant","name":"_ROLE_143","nameLocation":"19841:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19815:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7371,"name":"uint256","nodeType":"ElementaryTypeName","src":"19815:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11150372599265311570767859136324180752990208_by_1","typeString":"int_const 1115...(36 digits omitted)...0208"},"id":7374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19853:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313433","id":7373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19858:3:17","typeDescriptions":{"typeIdentifier":"t_rational_143_by_1","typeString":"int_const 143"},"value":"143"},"src":"19853:8:17","typeDescriptions":{"typeIdentifier":"t_rational_11150372599265311570767859136324180752990208_by_1","typeString":"int_const 1115...(36 digits omitted)...0208"}},"visibility":"internal"},{"constant":true,"id":7380,"mutability":"constant","name":"_ROLE_144","nameLocation":"19893:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19867:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7376,"name":"uint256","nodeType":"ElementaryTypeName","src":"19867:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_22300745198530623141535718272648361505980416_by_1","typeString":"int_const 2230...(36 digits omitted)...0416"},"id":7379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19905:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313434","id":7378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19910:3:17","typeDescriptions":{"typeIdentifier":"t_rational_144_by_1","typeString":"int_const 144"},"value":"144"},"src":"19905:8:17","typeDescriptions":{"typeIdentifier":"t_rational_22300745198530623141535718272648361505980416_by_1","typeString":"int_const 2230...(36 digits omitted)...0416"}},"visibility":"internal"},{"constant":true,"id":7385,"mutability":"constant","name":"_ROLE_145","nameLocation":"19945:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19919:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7381,"name":"uint256","nodeType":"ElementaryTypeName","src":"19919:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_44601490397061246283071436545296723011960832_by_1","typeString":"int_const 4460...(36 digits omitted)...0832"},"id":7384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19957:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313435","id":7383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19962:3:17","typeDescriptions":{"typeIdentifier":"t_rational_145_by_1","typeString":"int_const 145"},"value":"145"},"src":"19957:8:17","typeDescriptions":{"typeIdentifier":"t_rational_44601490397061246283071436545296723011960832_by_1","typeString":"int_const 4460...(36 digits omitted)...0832"}},"visibility":"internal"},{"constant":true,"id":7390,"mutability":"constant","name":"_ROLE_146","nameLocation":"19997:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"19971:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7386,"name":"uint256","nodeType":"ElementaryTypeName","src":"19971:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_89202980794122492566142873090593446023921664_by_1","typeString":"int_const 8920...(36 digits omitted)...1664"},"id":7389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20009:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313436","id":7388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20014:3:17","typeDescriptions":{"typeIdentifier":"t_rational_146_by_1","typeString":"int_const 146"},"value":"146"},"src":"20009:8:17","typeDescriptions":{"typeIdentifier":"t_rational_89202980794122492566142873090593446023921664_by_1","typeString":"int_const 8920...(36 digits omitted)...1664"}},"visibility":"internal"},{"constant":true,"id":7395,"mutability":"constant","name":"_ROLE_147","nameLocation":"20049:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20023:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7391,"name":"uint256","nodeType":"ElementaryTypeName","src":"20023:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_178405961588244985132285746181186892047843328_by_1","typeString":"int_const 1784...(37 digits omitted)...3328"},"id":7394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20061:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313437","id":7393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20066:3:17","typeDescriptions":{"typeIdentifier":"t_rational_147_by_1","typeString":"int_const 147"},"value":"147"},"src":"20061:8:17","typeDescriptions":{"typeIdentifier":"t_rational_178405961588244985132285746181186892047843328_by_1","typeString":"int_const 1784...(37 digits omitted)...3328"}},"visibility":"internal"},{"constant":true,"id":7400,"mutability":"constant","name":"_ROLE_148","nameLocation":"20101:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20075:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7396,"name":"uint256","nodeType":"ElementaryTypeName","src":"20075:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_356811923176489970264571492362373784095686656_by_1","typeString":"int_const 3568...(37 digits omitted)...6656"},"id":7399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20113:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313438","id":7398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20118:3:17","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"148"},"src":"20113:8:17","typeDescriptions":{"typeIdentifier":"t_rational_356811923176489970264571492362373784095686656_by_1","typeString":"int_const 3568...(37 digits omitted)...6656"}},"visibility":"internal"},{"constant":true,"id":7405,"mutability":"constant","name":"_ROLE_149","nameLocation":"20153:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20127:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7401,"name":"uint256","nodeType":"ElementaryTypeName","src":"20127:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_713623846352979940529142984724747568191373312_by_1","typeString":"int_const 7136...(37 digits omitted)...3312"},"id":7404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20165:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313439","id":7403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20170:3:17","typeDescriptions":{"typeIdentifier":"t_rational_149_by_1","typeString":"int_const 149"},"value":"149"},"src":"20165:8:17","typeDescriptions":{"typeIdentifier":"t_rational_713623846352979940529142984724747568191373312_by_1","typeString":"int_const 7136...(37 digits omitted)...3312"}},"visibility":"internal"},{"constant":true,"id":7410,"mutability":"constant","name":"_ROLE_150","nameLocation":"20205:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20179:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7406,"name":"uint256","nodeType":"ElementaryTypeName","src":"20179:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1427247692705959881058285969449495136382746624_by_1","typeString":"int_const 1427...(38 digits omitted)...6624"},"id":7409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20217:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313530","id":7408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20222:3:17","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},"src":"20217:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1427247692705959881058285969449495136382746624_by_1","typeString":"int_const 1427...(38 digits omitted)...6624"}},"visibility":"internal"},{"constant":true,"id":7415,"mutability":"constant","name":"_ROLE_151","nameLocation":"20257:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20231:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7411,"name":"uint256","nodeType":"ElementaryTypeName","src":"20231:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2854495385411919762116571938898990272765493248_by_1","typeString":"int_const 2854...(38 digits omitted)...3248"},"id":7414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20269:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313531","id":7413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20274:3:17","typeDescriptions":{"typeIdentifier":"t_rational_151_by_1","typeString":"int_const 151"},"value":"151"},"src":"20269:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2854495385411919762116571938898990272765493248_by_1","typeString":"int_const 2854...(38 digits omitted)...3248"}},"visibility":"internal"},{"constant":true,"id":7420,"mutability":"constant","name":"_ROLE_152","nameLocation":"20309:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20283:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7416,"name":"uint256","nodeType":"ElementaryTypeName","src":"20283:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5708990770823839524233143877797980545530986496_by_1","typeString":"int_const 5708...(38 digits omitted)...6496"},"id":7419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20321:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313532","id":7418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20326:3:17","typeDescriptions":{"typeIdentifier":"t_rational_152_by_1","typeString":"int_const 152"},"value":"152"},"src":"20321:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5708990770823839524233143877797980545530986496_by_1","typeString":"int_const 5708...(38 digits omitted)...6496"}},"visibility":"internal"},{"constant":true,"id":7425,"mutability":"constant","name":"_ROLE_153","nameLocation":"20361:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20335:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7421,"name":"uint256","nodeType":"ElementaryTypeName","src":"20335:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11417981541647679048466287755595961091061972992_by_1","typeString":"int_const 1141...(39 digits omitted)...2992"},"id":7424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20373:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313533","id":7423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20378:3:17","typeDescriptions":{"typeIdentifier":"t_rational_153_by_1","typeString":"int_const 153"},"value":"153"},"src":"20373:8:17","typeDescriptions":{"typeIdentifier":"t_rational_11417981541647679048466287755595961091061972992_by_1","typeString":"int_const 1141...(39 digits omitted)...2992"}},"visibility":"internal"},{"constant":true,"id":7430,"mutability":"constant","name":"_ROLE_154","nameLocation":"20413:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20387:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7426,"name":"uint256","nodeType":"ElementaryTypeName","src":"20387:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_22835963083295358096932575511191922182123945984_by_1","typeString":"int_const 2283...(39 digits omitted)...5984"},"id":7429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20425:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313534","id":7428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20430:3:17","typeDescriptions":{"typeIdentifier":"t_rational_154_by_1","typeString":"int_const 154"},"value":"154"},"src":"20425:8:17","typeDescriptions":{"typeIdentifier":"t_rational_22835963083295358096932575511191922182123945984_by_1","typeString":"int_const 2283...(39 digits omitted)...5984"}},"visibility":"internal"},{"constant":true,"id":7435,"mutability":"constant","name":"_ROLE_155","nameLocation":"20465:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20439:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7431,"name":"uint256","nodeType":"ElementaryTypeName","src":"20439:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_45671926166590716193865151022383844364247891968_by_1","typeString":"int_const 4567...(39 digits omitted)...1968"},"id":7434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20477:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313535","id":7433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20482:3:17","typeDescriptions":{"typeIdentifier":"t_rational_155_by_1","typeString":"int_const 155"},"value":"155"},"src":"20477:8:17","typeDescriptions":{"typeIdentifier":"t_rational_45671926166590716193865151022383844364247891968_by_1","typeString":"int_const 4567...(39 digits omitted)...1968"}},"visibility":"internal"},{"constant":true,"id":7440,"mutability":"constant","name":"_ROLE_156","nameLocation":"20517:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20491:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7436,"name":"uint256","nodeType":"ElementaryTypeName","src":"20491:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_91343852333181432387730302044767688728495783936_by_1","typeString":"int_const 9134...(39 digits omitted)...3936"},"id":7439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20529:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313536","id":7438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20534:3:17","typeDescriptions":{"typeIdentifier":"t_rational_156_by_1","typeString":"int_const 156"},"value":"156"},"src":"20529:8:17","typeDescriptions":{"typeIdentifier":"t_rational_91343852333181432387730302044767688728495783936_by_1","typeString":"int_const 9134...(39 digits omitted)...3936"}},"visibility":"internal"},{"constant":true,"id":7445,"mutability":"constant","name":"_ROLE_157","nameLocation":"20569:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20543:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7441,"name":"uint256","nodeType":"ElementaryTypeName","src":"20543:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_182687704666362864775460604089535377456991567872_by_1","typeString":"int_const 1826...(40 digits omitted)...7872"},"id":7444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20581:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313537","id":7443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20586:3:17","typeDescriptions":{"typeIdentifier":"t_rational_157_by_1","typeString":"int_const 157"},"value":"157"},"src":"20581:8:17","typeDescriptions":{"typeIdentifier":"t_rational_182687704666362864775460604089535377456991567872_by_1","typeString":"int_const 1826...(40 digits omitted)...7872"}},"visibility":"internal"},{"constant":true,"id":7450,"mutability":"constant","name":"_ROLE_158","nameLocation":"20621:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20595:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7446,"name":"uint256","nodeType":"ElementaryTypeName","src":"20595:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_365375409332725729550921208179070754913983135744_by_1","typeString":"int_const 3653...(40 digits omitted)...5744"},"id":7449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20633:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313538","id":7448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20638:3:17","typeDescriptions":{"typeIdentifier":"t_rational_158_by_1","typeString":"int_const 158"},"value":"158"},"src":"20633:8:17","typeDescriptions":{"typeIdentifier":"t_rational_365375409332725729550921208179070754913983135744_by_1","typeString":"int_const 3653...(40 digits omitted)...5744"}},"visibility":"internal"},{"constant":true,"id":7455,"mutability":"constant","name":"_ROLE_159","nameLocation":"20673:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20647:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7451,"name":"uint256","nodeType":"ElementaryTypeName","src":"20647:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_730750818665451459101842416358141509827966271488_by_1","typeString":"int_const 7307...(40 digits omitted)...1488"},"id":7454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20685:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313539","id":7453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20690:3:17","typeDescriptions":{"typeIdentifier":"t_rational_159_by_1","typeString":"int_const 159"},"value":"159"},"src":"20685:8:17","typeDescriptions":{"typeIdentifier":"t_rational_730750818665451459101842416358141509827966271488_by_1","typeString":"int_const 7307...(40 digits omitted)...1488"}},"visibility":"internal"},{"constant":true,"id":7460,"mutability":"constant","name":"_ROLE_160","nameLocation":"20725:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20699:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7456,"name":"uint256","nodeType":"ElementaryTypeName","src":"20699:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542976_by_1","typeString":"int_const 1461...(41 digits omitted)...2976"},"id":7459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20737:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313630","id":7458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20742:3:17","typeDescriptions":{"typeIdentifier":"t_rational_160_by_1","typeString":"int_const 160"},"value":"160"},"src":"20737:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1461501637330902918203684832716283019655932542976_by_1","typeString":"int_const 1461...(41 digits omitted)...2976"}},"visibility":"internal"},{"constant":true,"id":7465,"mutability":"constant","name":"_ROLE_161","nameLocation":"20777:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20751:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7461,"name":"uint256","nodeType":"ElementaryTypeName","src":"20751:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2923003274661805836407369665432566039311865085952_by_1","typeString":"int_const 2923...(41 digits omitted)...5952"},"id":7464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20789:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313631","id":7463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20794:3:17","typeDescriptions":{"typeIdentifier":"t_rational_161_by_1","typeString":"int_const 161"},"value":"161"},"src":"20789:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2923003274661805836407369665432566039311865085952_by_1","typeString":"int_const 2923...(41 digits omitted)...5952"}},"visibility":"internal"},{"constant":true,"id":7470,"mutability":"constant","name":"_ROLE_162","nameLocation":"20829:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20803:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7466,"name":"uint256","nodeType":"ElementaryTypeName","src":"20803:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5846006549323611672814739330865132078623730171904_by_1","typeString":"int_const 5846...(41 digits omitted)...1904"},"id":7469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20841:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313632","id":7468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20846:3:17","typeDescriptions":{"typeIdentifier":"t_rational_162_by_1","typeString":"int_const 162"},"value":"162"},"src":"20841:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5846006549323611672814739330865132078623730171904_by_1","typeString":"int_const 5846...(41 digits omitted)...1904"}},"visibility":"internal"},{"constant":true,"id":7475,"mutability":"constant","name":"_ROLE_163","nameLocation":"20881:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20855:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7471,"name":"uint256","nodeType":"ElementaryTypeName","src":"20855:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11692013098647223345629478661730264157247460343808_by_1","typeString":"int_const 1169...(42 digits omitted)...3808"},"id":7474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20893:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313633","id":7473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20898:3:17","typeDescriptions":{"typeIdentifier":"t_rational_163_by_1","typeString":"int_const 163"},"value":"163"},"src":"20893:8:17","typeDescriptions":{"typeIdentifier":"t_rational_11692013098647223345629478661730264157247460343808_by_1","typeString":"int_const 1169...(42 digits omitted)...3808"}},"visibility":"internal"},{"constant":true,"id":7480,"mutability":"constant","name":"_ROLE_164","nameLocation":"20933:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20907:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7476,"name":"uint256","nodeType":"ElementaryTypeName","src":"20907:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_23384026197294446691258957323460528314494920687616_by_1","typeString":"int_const 2338...(42 digits omitted)...7616"},"id":7479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20945:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313634","id":7478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20950:3:17","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"164"},"src":"20945:8:17","typeDescriptions":{"typeIdentifier":"t_rational_23384026197294446691258957323460528314494920687616_by_1","typeString":"int_const 2338...(42 digits omitted)...7616"}},"visibility":"internal"},{"constant":true,"id":7485,"mutability":"constant","name":"_ROLE_165","nameLocation":"20985:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"20959:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7481,"name":"uint256","nodeType":"ElementaryTypeName","src":"20959:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_46768052394588893382517914646921056628989841375232_by_1","typeString":"int_const 4676...(42 digits omitted)...5232"},"id":7484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20997:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313635","id":7483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21002:3:17","typeDescriptions":{"typeIdentifier":"t_rational_165_by_1","typeString":"int_const 165"},"value":"165"},"src":"20997:8:17","typeDescriptions":{"typeIdentifier":"t_rational_46768052394588893382517914646921056628989841375232_by_1","typeString":"int_const 4676...(42 digits omitted)...5232"}},"visibility":"internal"},{"constant":true,"id":7490,"mutability":"constant","name":"_ROLE_166","nameLocation":"21037:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21011:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7486,"name":"uint256","nodeType":"ElementaryTypeName","src":"21011:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_93536104789177786765035829293842113257979682750464_by_1","typeString":"int_const 9353...(42 digits omitted)...0464"},"id":7489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21049:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313636","id":7488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21054:3:17","typeDescriptions":{"typeIdentifier":"t_rational_166_by_1","typeString":"int_const 166"},"value":"166"},"src":"21049:8:17","typeDescriptions":{"typeIdentifier":"t_rational_93536104789177786765035829293842113257979682750464_by_1","typeString":"int_const 9353...(42 digits omitted)...0464"}},"visibility":"internal"},{"constant":true,"id":7495,"mutability":"constant","name":"_ROLE_167","nameLocation":"21089:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21063:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7491,"name":"uint256","nodeType":"ElementaryTypeName","src":"21063:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_187072209578355573530071658587684226515959365500928_by_1","typeString":"int_const 1870...(43 digits omitted)...0928"},"id":7494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21101:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313637","id":7493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21106:3:17","typeDescriptions":{"typeIdentifier":"t_rational_167_by_1","typeString":"int_const 167"},"value":"167"},"src":"21101:8:17","typeDescriptions":{"typeIdentifier":"t_rational_187072209578355573530071658587684226515959365500928_by_1","typeString":"int_const 1870...(43 digits omitted)...0928"}},"visibility":"internal"},{"constant":true,"id":7500,"mutability":"constant","name":"_ROLE_168","nameLocation":"21141:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21115:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7496,"name":"uint256","nodeType":"ElementaryTypeName","src":"21115:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_374144419156711147060143317175368453031918731001856_by_1","typeString":"int_const 3741...(43 digits omitted)...1856"},"id":7499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21153:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313638","id":7498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21158:3:17","typeDescriptions":{"typeIdentifier":"t_rational_168_by_1","typeString":"int_const 168"},"value":"168"},"src":"21153:8:17","typeDescriptions":{"typeIdentifier":"t_rational_374144419156711147060143317175368453031918731001856_by_1","typeString":"int_const 3741...(43 digits omitted)...1856"}},"visibility":"internal"},{"constant":true,"id":7505,"mutability":"constant","name":"_ROLE_169","nameLocation":"21193:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21167:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7501,"name":"uint256","nodeType":"ElementaryTypeName","src":"21167:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_748288838313422294120286634350736906063837462003712_by_1","typeString":"int_const 7482...(43 digits omitted)...3712"},"id":7504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21205:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313639","id":7503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21210:3:17","typeDescriptions":{"typeIdentifier":"t_rational_169_by_1","typeString":"int_const 169"},"value":"169"},"src":"21205:8:17","typeDescriptions":{"typeIdentifier":"t_rational_748288838313422294120286634350736906063837462003712_by_1","typeString":"int_const 7482...(43 digits omitted)...3712"}},"visibility":"internal"},{"constant":true,"id":7510,"mutability":"constant","name":"_ROLE_170","nameLocation":"21245:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21219:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7506,"name":"uint256","nodeType":"ElementaryTypeName","src":"21219:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1496577676626844588240573268701473812127674924007424_by_1","typeString":"int_const 1496...(44 digits omitted)...7424"},"id":7509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21257:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313730","id":7508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21262:3:17","typeDescriptions":{"typeIdentifier":"t_rational_170_by_1","typeString":"int_const 170"},"value":"170"},"src":"21257:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1496577676626844588240573268701473812127674924007424_by_1","typeString":"int_const 1496...(44 digits omitted)...7424"}},"visibility":"internal"},{"constant":true,"id":7515,"mutability":"constant","name":"_ROLE_171","nameLocation":"21297:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21271:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7511,"name":"uint256","nodeType":"ElementaryTypeName","src":"21271:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2993155353253689176481146537402947624255349848014848_by_1","typeString":"int_const 2993...(44 digits omitted)...4848"},"id":7514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21309:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313731","id":7513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21314:3:17","typeDescriptions":{"typeIdentifier":"t_rational_171_by_1","typeString":"int_const 171"},"value":"171"},"src":"21309:8:17","typeDescriptions":{"typeIdentifier":"t_rational_2993155353253689176481146537402947624255349848014848_by_1","typeString":"int_const 2993...(44 digits omitted)...4848"}},"visibility":"internal"},{"constant":true,"id":7520,"mutability":"constant","name":"_ROLE_172","nameLocation":"21349:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21323:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7516,"name":"uint256","nodeType":"ElementaryTypeName","src":"21323:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_5986310706507378352962293074805895248510699696029696_by_1","typeString":"int_const 5986...(44 digits omitted)...9696"},"id":7519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21361:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313732","id":7518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21366:3:17","typeDescriptions":{"typeIdentifier":"t_rational_172_by_1","typeString":"int_const 172"},"value":"172"},"src":"21361:8:17","typeDescriptions":{"typeIdentifier":"t_rational_5986310706507378352962293074805895248510699696029696_by_1","typeString":"int_const 5986...(44 digits omitted)...9696"}},"visibility":"internal"},{"constant":true,"id":7525,"mutability":"constant","name":"_ROLE_173","nameLocation":"21401:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21375:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7521,"name":"uint256","nodeType":"ElementaryTypeName","src":"21375:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_11972621413014756705924586149611790497021399392059392_by_1","typeString":"int_const 1197...(45 digits omitted)...9392"},"id":7524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21413:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313733","id":7523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21418:3:17","typeDescriptions":{"typeIdentifier":"t_rational_173_by_1","typeString":"int_const 173"},"value":"173"},"src":"21413:8:17","typeDescriptions":{"typeIdentifier":"t_rational_11972621413014756705924586149611790497021399392059392_by_1","typeString":"int_const 1197...(45 digits omitted)...9392"}},"visibility":"internal"},{"constant":true,"id":7530,"mutability":"constant","name":"_ROLE_174","nameLocation":"21453:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21427:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7526,"name":"uint256","nodeType":"ElementaryTypeName","src":"21427:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_23945242826029513411849172299223580994042798784118784_by_1","typeString":"int_const 2394...(45 digits omitted)...8784"},"id":7529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21465:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313734","id":7528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21470:3:17","typeDescriptions":{"typeIdentifier":"t_rational_174_by_1","typeString":"int_const 174"},"value":"174"},"src":"21465:8:17","typeDescriptions":{"typeIdentifier":"t_rational_23945242826029513411849172299223580994042798784118784_by_1","typeString":"int_const 2394...(45 digits omitted)...8784"}},"visibility":"internal"},{"constant":true,"id":7535,"mutability":"constant","name":"_ROLE_175","nameLocation":"21505:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21479:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7531,"name":"uint256","nodeType":"ElementaryTypeName","src":"21479:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_47890485652059026823698344598447161988085597568237568_by_1","typeString":"int_const 4789...(45 digits omitted)...7568"},"id":7534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21517:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313735","id":7533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21522:3:17","typeDescriptions":{"typeIdentifier":"t_rational_175_by_1","typeString":"int_const 175"},"value":"175"},"src":"21517:8:17","typeDescriptions":{"typeIdentifier":"t_rational_47890485652059026823698344598447161988085597568237568_by_1","typeString":"int_const 4789...(45 digits omitted)...7568"}},"visibility":"internal"},{"constant":true,"id":7540,"mutability":"constant","name":"_ROLE_176","nameLocation":"21557:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21531:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7536,"name":"uint256","nodeType":"ElementaryTypeName","src":"21531:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_95780971304118053647396689196894323976171195136475136_by_1","typeString":"int_const 9578...(45 digits omitted)...5136"},"id":7539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21569:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313736","id":7538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21574:3:17","typeDescriptions":{"typeIdentifier":"t_rational_176_by_1","typeString":"int_const 176"},"value":"176"},"src":"21569:8:17","typeDescriptions":{"typeIdentifier":"t_rational_95780971304118053647396689196894323976171195136475136_by_1","typeString":"int_const 9578...(45 digits omitted)...5136"}},"visibility":"internal"},{"constant":true,"id":7545,"mutability":"constant","name":"_ROLE_177","nameLocation":"21609:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21583:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7541,"name":"uint256","nodeType":"ElementaryTypeName","src":"21583:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_191561942608236107294793378393788647952342390272950272_by_1","typeString":"int_const 1915...(46 digits omitted)...0272"},"id":7544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21621:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313737","id":7543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21626:3:17","typeDescriptions":{"typeIdentifier":"t_rational_177_by_1","typeString":"int_const 177"},"value":"177"},"src":"21621:8:17","typeDescriptions":{"typeIdentifier":"t_rational_191561942608236107294793378393788647952342390272950272_by_1","typeString":"int_const 1915...(46 digits omitted)...0272"}},"visibility":"internal"},{"constant":true,"id":7550,"mutability":"constant","name":"_ROLE_178","nameLocation":"21661:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21635:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7546,"name":"uint256","nodeType":"ElementaryTypeName","src":"21635:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_383123885216472214589586756787577295904684780545900544_by_1","typeString":"int_const 3831...(46 digits omitted)...0544"},"id":7549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21673:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313738","id":7548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21678:3:17","typeDescriptions":{"typeIdentifier":"t_rational_178_by_1","typeString":"int_const 178"},"value":"178"},"src":"21673:8:17","typeDescriptions":{"typeIdentifier":"t_rational_383123885216472214589586756787577295904684780545900544_by_1","typeString":"int_const 3831...(46 digits omitted)...0544"}},"visibility":"internal"},{"constant":true,"id":7555,"mutability":"constant","name":"_ROLE_179","nameLocation":"21713:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21687:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7551,"name":"uint256","nodeType":"ElementaryTypeName","src":"21687:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_766247770432944429179173513575154591809369561091801088_by_1","typeString":"int_const 7662...(46 digits omitted)...1088"},"id":7554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21725:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313739","id":7553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21730:3:17","typeDescriptions":{"typeIdentifier":"t_rational_179_by_1","typeString":"int_const 179"},"value":"179"},"src":"21725:8:17","typeDescriptions":{"typeIdentifier":"t_rational_766247770432944429179173513575154591809369561091801088_by_1","typeString":"int_const 7662...(46 digits omitted)...1088"}},"visibility":"internal"},{"constant":true,"id":7560,"mutability":"constant","name":"_ROLE_180","nameLocation":"21765:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21739:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7556,"name":"uint256","nodeType":"ElementaryTypeName","src":"21739:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1532495540865888858358347027150309183618739122183602176_by_1","typeString":"int_const 1532...(47 digits omitted)...2176"},"id":7559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21777:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313830","id":7558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21782:3:17","typeDescriptions":{"typeIdentifier":"t_rational_180_by_1","typeString":"int_const 180"},"value":"180"},"src":"21777:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1532495540865888858358347027150309183618739122183602176_by_1","typeString":"int_const 1532...(47 digits omitted)...2176"}},"visibility":"internal"},{"constant":true,"id":7565,"mutability":"constant","name":"_ROLE_181","nameLocation":"21817:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21791:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7561,"name":"uint256","nodeType":"ElementaryTypeName","src":"21791:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3064991081731777716716694054300618367237478244367204352_by_1","typeString":"int_const 3064...(47 digits omitted)...4352"},"id":7564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21829:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313831","id":7563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21834:3:17","typeDescriptions":{"typeIdentifier":"t_rational_181_by_1","typeString":"int_const 181"},"value":"181"},"src":"21829:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3064991081731777716716694054300618367237478244367204352_by_1","typeString":"int_const 3064...(47 digits omitted)...4352"}},"visibility":"internal"},{"constant":true,"id":7570,"mutability":"constant","name":"_ROLE_182","nameLocation":"21869:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21843:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7566,"name":"uint256","nodeType":"ElementaryTypeName","src":"21843:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6129982163463555433433388108601236734474956488734408704_by_1","typeString":"int_const 6129...(47 digits omitted)...8704"},"id":7569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21881:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313832","id":7568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21886:3:17","typeDescriptions":{"typeIdentifier":"t_rational_182_by_1","typeString":"int_const 182"},"value":"182"},"src":"21881:8:17","typeDescriptions":{"typeIdentifier":"t_rational_6129982163463555433433388108601236734474956488734408704_by_1","typeString":"int_const 6129...(47 digits omitted)...8704"}},"visibility":"internal"},{"constant":true,"id":7575,"mutability":"constant","name":"_ROLE_183","nameLocation":"21921:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21895:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7571,"name":"uint256","nodeType":"ElementaryTypeName","src":"21895:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12259964326927110866866776217202473468949912977468817408_by_1","typeString":"int_const 1225...(48 digits omitted)...7408"},"id":7574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21933:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313833","id":7573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21938:3:17","typeDescriptions":{"typeIdentifier":"t_rational_183_by_1","typeString":"int_const 183"},"value":"183"},"src":"21933:8:17","typeDescriptions":{"typeIdentifier":"t_rational_12259964326927110866866776217202473468949912977468817408_by_1","typeString":"int_const 1225...(48 digits omitted)...7408"}},"visibility":"internal"},{"constant":true,"id":7580,"mutability":"constant","name":"_ROLE_184","nameLocation":"21973:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21947:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7576,"name":"uint256","nodeType":"ElementaryTypeName","src":"21947:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_24519928653854221733733552434404946937899825954937634816_by_1","typeString":"int_const 2451...(48 digits omitted)...4816"},"id":7579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21985:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313834","id":7578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21990:3:17","typeDescriptions":{"typeIdentifier":"t_rational_184_by_1","typeString":"int_const 184"},"value":"184"},"src":"21985:8:17","typeDescriptions":{"typeIdentifier":"t_rational_24519928653854221733733552434404946937899825954937634816_by_1","typeString":"int_const 2451...(48 digits omitted)...4816"}},"visibility":"internal"},{"constant":true,"id":7585,"mutability":"constant","name":"_ROLE_185","nameLocation":"22025:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"21999:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7581,"name":"uint256","nodeType":"ElementaryTypeName","src":"21999:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_49039857307708443467467104868809893875799651909875269632_by_1","typeString":"int_const 4903...(48 digits omitted)...9632"},"id":7584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22037:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313835","id":7583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22042:3:17","typeDescriptions":{"typeIdentifier":"t_rational_185_by_1","typeString":"int_const 185"},"value":"185"},"src":"22037:8:17","typeDescriptions":{"typeIdentifier":"t_rational_49039857307708443467467104868809893875799651909875269632_by_1","typeString":"int_const 4903...(48 digits omitted)...9632"}},"visibility":"internal"},{"constant":true,"id":7590,"mutability":"constant","name":"_ROLE_186","nameLocation":"22077:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22051:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7586,"name":"uint256","nodeType":"ElementaryTypeName","src":"22051:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_98079714615416886934934209737619787751599303819750539264_by_1","typeString":"int_const 9807...(48 digits omitted)...9264"},"id":7589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22089:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313836","id":7588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22094:3:17","typeDescriptions":{"typeIdentifier":"t_rational_186_by_1","typeString":"int_const 186"},"value":"186"},"src":"22089:8:17","typeDescriptions":{"typeIdentifier":"t_rational_98079714615416886934934209737619787751599303819750539264_by_1","typeString":"int_const 9807...(48 digits omitted)...9264"}},"visibility":"internal"},{"constant":true,"id":7595,"mutability":"constant","name":"_ROLE_187","nameLocation":"22129:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22103:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7591,"name":"uint256","nodeType":"ElementaryTypeName","src":"22103:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_196159429230833773869868419475239575503198607639501078528_by_1","typeString":"int_const 1961...(49 digits omitted)...8528"},"id":7594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22141:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313837","id":7593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22146:3:17","typeDescriptions":{"typeIdentifier":"t_rational_187_by_1","typeString":"int_const 187"},"value":"187"},"src":"22141:8:17","typeDescriptions":{"typeIdentifier":"t_rational_196159429230833773869868419475239575503198607639501078528_by_1","typeString":"int_const 1961...(49 digits omitted)...8528"}},"visibility":"internal"},{"constant":true,"id":7600,"mutability":"constant","name":"_ROLE_188","nameLocation":"22181:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22155:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7596,"name":"uint256","nodeType":"ElementaryTypeName","src":"22155:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_392318858461667547739736838950479151006397215279002157056_by_1","typeString":"int_const 3923...(49 digits omitted)...7056"},"id":7599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22193:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313838","id":7598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:3:17","typeDescriptions":{"typeIdentifier":"t_rational_188_by_1","typeString":"int_const 188"},"value":"188"},"src":"22193:8:17","typeDescriptions":{"typeIdentifier":"t_rational_392318858461667547739736838950479151006397215279002157056_by_1","typeString":"int_const 3923...(49 digits omitted)...7056"}},"visibility":"internal"},{"constant":true,"id":7605,"mutability":"constant","name":"_ROLE_189","nameLocation":"22233:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22207:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7601,"name":"uint256","nodeType":"ElementaryTypeName","src":"22207:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_784637716923335095479473677900958302012794430558004314112_by_1","typeString":"int_const 7846...(49 digits omitted)...4112"},"id":7604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22245:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313839","id":7603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22250:3:17","typeDescriptions":{"typeIdentifier":"t_rational_189_by_1","typeString":"int_const 189"},"value":"189"},"src":"22245:8:17","typeDescriptions":{"typeIdentifier":"t_rational_784637716923335095479473677900958302012794430558004314112_by_1","typeString":"int_const 7846...(49 digits omitted)...4112"}},"visibility":"internal"},{"constant":true,"id":7610,"mutability":"constant","name":"_ROLE_190","nameLocation":"22285:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22259:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7606,"name":"uint256","nodeType":"ElementaryTypeName","src":"22259:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1569275433846670190958947355801916604025588861116008628224_by_1","typeString":"int_const 1569...(50 digits omitted)...8224"},"id":7609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22297:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313930","id":7608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22302:3:17","typeDescriptions":{"typeIdentifier":"t_rational_190_by_1","typeString":"int_const 190"},"value":"190"},"src":"22297:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1569275433846670190958947355801916604025588861116008628224_by_1","typeString":"int_const 1569...(50 digits omitted)...8224"}},"visibility":"internal"},{"constant":true,"id":7615,"mutability":"constant","name":"_ROLE_191","nameLocation":"22337:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22311:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7611,"name":"uint256","nodeType":"ElementaryTypeName","src":"22311:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3138550867693340381917894711603833208051177722232017256448_by_1","typeString":"int_const 3138...(50 digits omitted)...6448"},"id":7614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22349:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313931","id":7613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22354:3:17","typeDescriptions":{"typeIdentifier":"t_rational_191_by_1","typeString":"int_const 191"},"value":"191"},"src":"22349:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3138550867693340381917894711603833208051177722232017256448_by_1","typeString":"int_const 3138...(50 digits omitted)...6448"}},"visibility":"internal"},{"constant":true,"id":7620,"mutability":"constant","name":"_ROLE_192","nameLocation":"22389:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22363:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7616,"name":"uint256","nodeType":"ElementaryTypeName","src":"22363:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"},"id":7619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22401:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":7618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22406:3:17","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"22401:8:17","typeDescriptions":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"}},"visibility":"internal"},{"constant":true,"id":7625,"mutability":"constant","name":"_ROLE_193","nameLocation":"22441:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22415:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7621,"name":"uint256","nodeType":"ElementaryTypeName","src":"22415:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12554203470773361527671578846415332832204710888928069025792_by_1","typeString":"int_const 1255...(51 digits omitted)...5792"},"id":7624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22453:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313933","id":7623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:3:17","typeDescriptions":{"typeIdentifier":"t_rational_193_by_1","typeString":"int_const 193"},"value":"193"},"src":"22453:8:17","typeDescriptions":{"typeIdentifier":"t_rational_12554203470773361527671578846415332832204710888928069025792_by_1","typeString":"int_const 1255...(51 digits omitted)...5792"}},"visibility":"internal"},{"constant":true,"id":7630,"mutability":"constant","name":"_ROLE_194","nameLocation":"22493:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22467:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7626,"name":"uint256","nodeType":"ElementaryTypeName","src":"22467:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_25108406941546723055343157692830665664409421777856138051584_by_1","typeString":"int_const 2510...(51 digits omitted)...1584"},"id":7629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22505:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313934","id":7628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22510:3:17","typeDescriptions":{"typeIdentifier":"t_rational_194_by_1","typeString":"int_const 194"},"value":"194"},"src":"22505:8:17","typeDescriptions":{"typeIdentifier":"t_rational_25108406941546723055343157692830665664409421777856138051584_by_1","typeString":"int_const 2510...(51 digits omitted)...1584"}},"visibility":"internal"},{"constant":true,"id":7635,"mutability":"constant","name":"_ROLE_195","nameLocation":"22545:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22519:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7631,"name":"uint256","nodeType":"ElementaryTypeName","src":"22519:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_50216813883093446110686315385661331328818843555712276103168_by_1","typeString":"int_const 5021...(51 digits omitted)...3168"},"id":7634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22557:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313935","id":7633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22562:3:17","typeDescriptions":{"typeIdentifier":"t_rational_195_by_1","typeString":"int_const 195"},"value":"195"},"src":"22557:8:17","typeDescriptions":{"typeIdentifier":"t_rational_50216813883093446110686315385661331328818843555712276103168_by_1","typeString":"int_const 5021...(51 digits omitted)...3168"}},"visibility":"internal"},{"constant":true,"id":7640,"mutability":"constant","name":"_ROLE_196","nameLocation":"22597:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22571:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7636,"name":"uint256","nodeType":"ElementaryTypeName","src":"22571:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_100433627766186892221372630771322662657637687111424552206336_by_1","typeString":"int_const 1004...(52 digits omitted)...6336"},"id":7639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22609:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313936","id":7638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22614:3:17","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"196"},"src":"22609:8:17","typeDescriptions":{"typeIdentifier":"t_rational_100433627766186892221372630771322662657637687111424552206336_by_1","typeString":"int_const 1004...(52 digits omitted)...6336"}},"visibility":"internal"},{"constant":true,"id":7645,"mutability":"constant","name":"_ROLE_197","nameLocation":"22649:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22623:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7641,"name":"uint256","nodeType":"ElementaryTypeName","src":"22623:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_200867255532373784442745261542645325315275374222849104412672_by_1","typeString":"int_const 2008...(52 digits omitted)...2672"},"id":7644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22661:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313937","id":7643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22666:3:17","typeDescriptions":{"typeIdentifier":"t_rational_197_by_1","typeString":"int_const 197"},"value":"197"},"src":"22661:8:17","typeDescriptions":{"typeIdentifier":"t_rational_200867255532373784442745261542645325315275374222849104412672_by_1","typeString":"int_const 2008...(52 digits omitted)...2672"}},"visibility":"internal"},{"constant":true,"id":7650,"mutability":"constant","name":"_ROLE_198","nameLocation":"22701:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22675:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7646,"name":"uint256","nodeType":"ElementaryTypeName","src":"22675:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_401734511064747568885490523085290650630550748445698208825344_by_1","typeString":"int_const 4017...(52 digits omitted)...5344"},"id":7649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22713:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313938","id":7648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22718:3:17","typeDescriptions":{"typeIdentifier":"t_rational_198_by_1","typeString":"int_const 198"},"value":"198"},"src":"22713:8:17","typeDescriptions":{"typeIdentifier":"t_rational_401734511064747568885490523085290650630550748445698208825344_by_1","typeString":"int_const 4017...(52 digits omitted)...5344"}},"visibility":"internal"},{"constant":true,"id":7655,"mutability":"constant","name":"_ROLE_199","nameLocation":"22753:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22727:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7651,"name":"uint256","nodeType":"ElementaryTypeName","src":"22727:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_803469022129495137770981046170581301261101496891396417650688_by_1","typeString":"int_const 8034...(52 digits omitted)...0688"},"id":7654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22765:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313939","id":7653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22770:3:17","typeDescriptions":{"typeIdentifier":"t_rational_199_by_1","typeString":"int_const 199"},"value":"199"},"src":"22765:8:17","typeDescriptions":{"typeIdentifier":"t_rational_803469022129495137770981046170581301261101496891396417650688_by_1","typeString":"int_const 8034...(52 digits omitted)...0688"}},"visibility":"internal"},{"constant":true,"id":7660,"mutability":"constant","name":"_ROLE_200","nameLocation":"22805:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22779:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7656,"name":"uint256","nodeType":"ElementaryTypeName","src":"22779:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1606938044258990275541962092341162602522202993782792835301376_by_1","typeString":"int_const 1606...(53 digits omitted)...1376"},"id":7659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22817:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323030","id":7658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22822:3:17","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"src":"22817:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1606938044258990275541962092341162602522202993782792835301376_by_1","typeString":"int_const 1606...(53 digits omitted)...1376"}},"visibility":"internal"},{"constant":true,"id":7665,"mutability":"constant","name":"_ROLE_201","nameLocation":"22857:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22831:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7661,"name":"uint256","nodeType":"ElementaryTypeName","src":"22831:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3213876088517980551083924184682325205044405987565585670602752_by_1","typeString":"int_const 3213...(53 digits omitted)...2752"},"id":7664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22869:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323031","id":7663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22874:3:17","typeDescriptions":{"typeIdentifier":"t_rational_201_by_1","typeString":"int_const 201"},"value":"201"},"src":"22869:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3213876088517980551083924184682325205044405987565585670602752_by_1","typeString":"int_const 3213...(53 digits omitted)...2752"}},"visibility":"internal"},{"constant":true,"id":7670,"mutability":"constant","name":"_ROLE_202","nameLocation":"22909:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22883:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7666,"name":"uint256","nodeType":"ElementaryTypeName","src":"22883:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6427752177035961102167848369364650410088811975131171341205504_by_1","typeString":"int_const 6427...(53 digits omitted)...5504"},"id":7669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22921:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323032","id":7668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22926:3:17","typeDescriptions":{"typeIdentifier":"t_rational_202_by_1","typeString":"int_const 202"},"value":"202"},"src":"22921:8:17","typeDescriptions":{"typeIdentifier":"t_rational_6427752177035961102167848369364650410088811975131171341205504_by_1","typeString":"int_const 6427...(53 digits omitted)...5504"}},"visibility":"internal"},{"constant":true,"id":7675,"mutability":"constant","name":"_ROLE_203","nameLocation":"22961:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22935:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7671,"name":"uint256","nodeType":"ElementaryTypeName","src":"22935:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_12855504354071922204335696738729300820177623950262342682411008_by_1","typeString":"int_const 1285...(54 digits omitted)...1008"},"id":7674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22973:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323033","id":7673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22978:3:17","typeDescriptions":{"typeIdentifier":"t_rational_203_by_1","typeString":"int_const 203"},"value":"203"},"src":"22973:8:17","typeDescriptions":{"typeIdentifier":"t_rational_12855504354071922204335696738729300820177623950262342682411008_by_1","typeString":"int_const 1285...(54 digits omitted)...1008"}},"visibility":"internal"},{"constant":true,"id":7680,"mutability":"constant","name":"_ROLE_204","nameLocation":"23013:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"22987:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7676,"name":"uint256","nodeType":"ElementaryTypeName","src":"22987:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_25711008708143844408671393477458601640355247900524685364822016_by_1","typeString":"int_const 2571...(54 digits omitted)...2016"},"id":7679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23025:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323034","id":7678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23030:3:17","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},"src":"23025:8:17","typeDescriptions":{"typeIdentifier":"t_rational_25711008708143844408671393477458601640355247900524685364822016_by_1","typeString":"int_const 2571...(54 digits omitted)...2016"}},"visibility":"internal"},{"constant":true,"id":7685,"mutability":"constant","name":"_ROLE_205","nameLocation":"23065:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23039:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7681,"name":"uint256","nodeType":"ElementaryTypeName","src":"23039:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_51422017416287688817342786954917203280710495801049370729644032_by_1","typeString":"int_const 5142...(54 digits omitted)...4032"},"id":7684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23077:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323035","id":7683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23082:3:17","typeDescriptions":{"typeIdentifier":"t_rational_205_by_1","typeString":"int_const 205"},"value":"205"},"src":"23077:8:17","typeDescriptions":{"typeIdentifier":"t_rational_51422017416287688817342786954917203280710495801049370729644032_by_1","typeString":"int_const 5142...(54 digits omitted)...4032"}},"visibility":"internal"},{"constant":true,"id":7690,"mutability":"constant","name":"_ROLE_206","nameLocation":"23117:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23091:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7686,"name":"uint256","nodeType":"ElementaryTypeName","src":"23091:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_102844034832575377634685573909834406561420991602098741459288064_by_1","typeString":"int_const 1028...(55 digits omitted)...8064"},"id":7689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23129:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323036","id":7688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23134:3:17","typeDescriptions":{"typeIdentifier":"t_rational_206_by_1","typeString":"int_const 206"},"value":"206"},"src":"23129:8:17","typeDescriptions":{"typeIdentifier":"t_rational_102844034832575377634685573909834406561420991602098741459288064_by_1","typeString":"int_const 1028...(55 digits omitted)...8064"}},"visibility":"internal"},{"constant":true,"id":7695,"mutability":"constant","name":"_ROLE_207","nameLocation":"23169:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23143:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7691,"name":"uint256","nodeType":"ElementaryTypeName","src":"23143:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_205688069665150755269371147819668813122841983204197482918576128_by_1","typeString":"int_const 2056...(55 digits omitted)...6128"},"id":7694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23181:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323037","id":7693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23186:3:17","typeDescriptions":{"typeIdentifier":"t_rational_207_by_1","typeString":"int_const 207"},"value":"207"},"src":"23181:8:17","typeDescriptions":{"typeIdentifier":"t_rational_205688069665150755269371147819668813122841983204197482918576128_by_1","typeString":"int_const 2056...(55 digits omitted)...6128"}},"visibility":"internal"},{"constant":true,"id":7700,"mutability":"constant","name":"_ROLE_208","nameLocation":"23221:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23195:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7696,"name":"uint256","nodeType":"ElementaryTypeName","src":"23195:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_411376139330301510538742295639337626245683966408394965837152256_by_1","typeString":"int_const 4113...(55 digits omitted)...2256"},"id":7699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23233:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323038","id":7698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23238:3:17","typeDescriptions":{"typeIdentifier":"t_rational_208_by_1","typeString":"int_const 208"},"value":"208"},"src":"23233:8:17","typeDescriptions":{"typeIdentifier":"t_rational_411376139330301510538742295639337626245683966408394965837152256_by_1","typeString":"int_const 4113...(55 digits omitted)...2256"}},"visibility":"internal"},{"constant":true,"id":7705,"mutability":"constant","name":"_ROLE_209","nameLocation":"23273:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23247:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7701,"name":"uint256","nodeType":"ElementaryTypeName","src":"23247:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_822752278660603021077484591278675252491367932816789931674304512_by_1","typeString":"int_const 8227...(55 digits omitted)...4512"},"id":7704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23285:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323039","id":7703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23290:3:17","typeDescriptions":{"typeIdentifier":"t_rational_209_by_1","typeString":"int_const 209"},"value":"209"},"src":"23285:8:17","typeDescriptions":{"typeIdentifier":"t_rational_822752278660603021077484591278675252491367932816789931674304512_by_1","typeString":"int_const 8227...(55 digits omitted)...4512"}},"visibility":"internal"},{"constant":true,"id":7710,"mutability":"constant","name":"_ROLE_210","nameLocation":"23325:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23299:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7706,"name":"uint256","nodeType":"ElementaryTypeName","src":"23299:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1645504557321206042154969182557350504982735865633579863348609024_by_1","typeString":"int_const 1645...(56 digits omitted)...9024"},"id":7709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23337:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323130","id":7708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23342:3:17","typeDescriptions":{"typeIdentifier":"t_rational_210_by_1","typeString":"int_const 210"},"value":"210"},"src":"23337:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1645504557321206042154969182557350504982735865633579863348609024_by_1","typeString":"int_const 1645...(56 digits omitted)...9024"}},"visibility":"internal"},{"constant":true,"id":7715,"mutability":"constant","name":"_ROLE_211","nameLocation":"23377:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23351:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7711,"name":"uint256","nodeType":"ElementaryTypeName","src":"23351:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3291009114642412084309938365114701009965471731267159726697218048_by_1","typeString":"int_const 3291...(56 digits omitted)...8048"},"id":7714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23389:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323131","id":7713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23394:3:17","typeDescriptions":{"typeIdentifier":"t_rational_211_by_1","typeString":"int_const 211"},"value":"211"},"src":"23389:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3291009114642412084309938365114701009965471731267159726697218048_by_1","typeString":"int_const 3291...(56 digits omitted)...8048"}},"visibility":"internal"},{"constant":true,"id":7720,"mutability":"constant","name":"_ROLE_212","nameLocation":"23429:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23403:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7716,"name":"uint256","nodeType":"ElementaryTypeName","src":"23403:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6582018229284824168619876730229402019930943462534319453394436096_by_1","typeString":"int_const 6582...(56 digits omitted)...6096"},"id":7719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23441:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323132","id":7718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23446:3:17","typeDescriptions":{"typeIdentifier":"t_rational_212_by_1","typeString":"int_const 212"},"value":"212"},"src":"23441:8:17","typeDescriptions":{"typeIdentifier":"t_rational_6582018229284824168619876730229402019930943462534319453394436096_by_1","typeString":"int_const 6582...(56 digits omitted)...6096"}},"visibility":"internal"},{"constant":true,"id":7725,"mutability":"constant","name":"_ROLE_213","nameLocation":"23481:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23455:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7721,"name":"uint256","nodeType":"ElementaryTypeName","src":"23455:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13164036458569648337239753460458804039861886925068638906788872192_by_1","typeString":"int_const 1316...(57 digits omitted)...2192"},"id":7724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23493:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323133","id":7723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23498:3:17","typeDescriptions":{"typeIdentifier":"t_rational_213_by_1","typeString":"int_const 213"},"value":"213"},"src":"23493:8:17","typeDescriptions":{"typeIdentifier":"t_rational_13164036458569648337239753460458804039861886925068638906788872192_by_1","typeString":"int_const 1316...(57 digits omitted)...2192"}},"visibility":"internal"},{"constant":true,"id":7730,"mutability":"constant","name":"_ROLE_214","nameLocation":"23533:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23507:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7726,"name":"uint256","nodeType":"ElementaryTypeName","src":"23507:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_26328072917139296674479506920917608079723773850137277813577744384_by_1","typeString":"int_const 2632...(57 digits omitted)...4384"},"id":7729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23545:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323134","id":7728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23550:3:17","typeDescriptions":{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"},"value":"214"},"src":"23545:8:17","typeDescriptions":{"typeIdentifier":"t_rational_26328072917139296674479506920917608079723773850137277813577744384_by_1","typeString":"int_const 2632...(57 digits omitted)...4384"}},"visibility":"internal"},{"constant":true,"id":7735,"mutability":"constant","name":"_ROLE_215","nameLocation":"23585:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23559:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7731,"name":"uint256","nodeType":"ElementaryTypeName","src":"23559:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_52656145834278593348959013841835216159447547700274555627155488768_by_1","typeString":"int_const 5265...(57 digits omitted)...8768"},"id":7734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23597:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323135","id":7733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23602:3:17","typeDescriptions":{"typeIdentifier":"t_rational_215_by_1","typeString":"int_const 215"},"value":"215"},"src":"23597:8:17","typeDescriptions":{"typeIdentifier":"t_rational_52656145834278593348959013841835216159447547700274555627155488768_by_1","typeString":"int_const 5265...(57 digits omitted)...8768"}},"visibility":"internal"},{"constant":true,"id":7740,"mutability":"constant","name":"_ROLE_216","nameLocation":"23637:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23611:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7736,"name":"uint256","nodeType":"ElementaryTypeName","src":"23611:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_105312291668557186697918027683670432318895095400549111254310977536_by_1","typeString":"int_const 1053...(58 digits omitted)...7536"},"id":7739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23649:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323136","id":7738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23654:3:17","typeDescriptions":{"typeIdentifier":"t_rational_216_by_1","typeString":"int_const 216"},"value":"216"},"src":"23649:8:17","typeDescriptions":{"typeIdentifier":"t_rational_105312291668557186697918027683670432318895095400549111254310977536_by_1","typeString":"int_const 1053...(58 digits omitted)...7536"}},"visibility":"internal"},{"constant":true,"id":7745,"mutability":"constant","name":"_ROLE_217","nameLocation":"23689:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23663:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7741,"name":"uint256","nodeType":"ElementaryTypeName","src":"23663:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_210624583337114373395836055367340864637790190801098222508621955072_by_1","typeString":"int_const 2106...(58 digits omitted)...5072"},"id":7744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23701:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323137","id":7743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23706:3:17","typeDescriptions":{"typeIdentifier":"t_rational_217_by_1","typeString":"int_const 217"},"value":"217"},"src":"23701:8:17","typeDescriptions":{"typeIdentifier":"t_rational_210624583337114373395836055367340864637790190801098222508621955072_by_1","typeString":"int_const 2106...(58 digits omitted)...5072"}},"visibility":"internal"},{"constant":true,"id":7750,"mutability":"constant","name":"_ROLE_218","nameLocation":"23741:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23715:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7746,"name":"uint256","nodeType":"ElementaryTypeName","src":"23715:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_421249166674228746791672110734681729275580381602196445017243910144_by_1","typeString":"int_const 4212...(58 digits omitted)...0144"},"id":7749,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23753:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323138","id":7748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23758:3:17","typeDescriptions":{"typeIdentifier":"t_rational_218_by_1","typeString":"int_const 218"},"value":"218"},"src":"23753:8:17","typeDescriptions":{"typeIdentifier":"t_rational_421249166674228746791672110734681729275580381602196445017243910144_by_1","typeString":"int_const 4212...(58 digits omitted)...0144"}},"visibility":"internal"},{"constant":true,"id":7755,"mutability":"constant","name":"_ROLE_219","nameLocation":"23793:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23767:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7751,"name":"uint256","nodeType":"ElementaryTypeName","src":"23767:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_842498333348457493583344221469363458551160763204392890034487820288_by_1","typeString":"int_const 8424...(58 digits omitted)...0288"},"id":7754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23805:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323139","id":7753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23810:3:17","typeDescriptions":{"typeIdentifier":"t_rational_219_by_1","typeString":"int_const 219"},"value":"219"},"src":"23805:8:17","typeDescriptions":{"typeIdentifier":"t_rational_842498333348457493583344221469363458551160763204392890034487820288_by_1","typeString":"int_const 8424...(58 digits omitted)...0288"}},"visibility":"internal"},{"constant":true,"id":7760,"mutability":"constant","name":"_ROLE_220","nameLocation":"23845:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23819:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7756,"name":"uint256","nodeType":"ElementaryTypeName","src":"23819:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1684996666696914987166688442938726917102321526408785780068975640576_by_1","typeString":"int_const 1684...(59 digits omitted)...0576"},"id":7759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23857:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323230","id":7758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23862:3:17","typeDescriptions":{"typeIdentifier":"t_rational_220_by_1","typeString":"int_const 220"},"value":"220"},"src":"23857:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1684996666696914987166688442938726917102321526408785780068975640576_by_1","typeString":"int_const 1684...(59 digits omitted)...0576"}},"visibility":"internal"},{"constant":true,"id":7765,"mutability":"constant","name":"_ROLE_221","nameLocation":"23897:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23871:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7761,"name":"uint256","nodeType":"ElementaryTypeName","src":"23871:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3369993333393829974333376885877453834204643052817571560137951281152_by_1","typeString":"int_const 3369...(59 digits omitted)...1152"},"id":7764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23909:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323231","id":7763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23914:3:17","typeDescriptions":{"typeIdentifier":"t_rational_221_by_1","typeString":"int_const 221"},"value":"221"},"src":"23909:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3369993333393829974333376885877453834204643052817571560137951281152_by_1","typeString":"int_const 3369...(59 digits omitted)...1152"}},"visibility":"internal"},{"constant":true,"id":7770,"mutability":"constant","name":"_ROLE_222","nameLocation":"23949:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23923:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7766,"name":"uint256","nodeType":"ElementaryTypeName","src":"23923:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6739986666787659948666753771754907668409286105635143120275902562304_by_1","typeString":"int_const 6739...(59 digits omitted)...2304"},"id":7769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23961:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323232","id":7768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23966:3:17","typeDescriptions":{"typeIdentifier":"t_rational_222_by_1","typeString":"int_const 222"},"value":"222"},"src":"23961:8:17","typeDescriptions":{"typeIdentifier":"t_rational_6739986666787659948666753771754907668409286105635143120275902562304_by_1","typeString":"int_const 6739...(59 digits omitted)...2304"}},"visibility":"internal"},{"constant":true,"id":7775,"mutability":"constant","name":"_ROLE_223","nameLocation":"24001:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"23975:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7771,"name":"uint256","nodeType":"ElementaryTypeName","src":"23975:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13479973333575319897333507543509815336818572211270286240551805124608_by_1","typeString":"int_const 1347...(60 digits omitted)...4608"},"id":7774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24013:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323233","id":7773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24018:3:17","typeDescriptions":{"typeIdentifier":"t_rational_223_by_1","typeString":"int_const 223"},"value":"223"},"src":"24013:8:17","typeDescriptions":{"typeIdentifier":"t_rational_13479973333575319897333507543509815336818572211270286240551805124608_by_1","typeString":"int_const 1347...(60 digits omitted)...4608"}},"visibility":"internal"},{"constant":true,"id":7780,"mutability":"constant","name":"_ROLE_224","nameLocation":"24053:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24027:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7776,"name":"uint256","nodeType":"ElementaryTypeName","src":"24027:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1","typeString":"int_const 2695...(60 digits omitted)...9216"},"id":7779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24065:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323234","id":7778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24070:3:17","typeDescriptions":{"typeIdentifier":"t_rational_224_by_1","typeString":"int_const 224"},"value":"224"},"src":"24065:8:17","typeDescriptions":{"typeIdentifier":"t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1","typeString":"int_const 2695...(60 digits omitted)...9216"}},"visibility":"internal"},{"constant":true,"id":7785,"mutability":"constant","name":"_ROLE_225","nameLocation":"24105:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24079:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7781,"name":"uint256","nodeType":"ElementaryTypeName","src":"24079:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_53919893334301279589334030174039261347274288845081144962207220498432_by_1","typeString":"int_const 5391...(60 digits omitted)...8432"},"id":7784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24117:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323235","id":7783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24122:3:17","typeDescriptions":{"typeIdentifier":"t_rational_225_by_1","typeString":"int_const 225"},"value":"225"},"src":"24117:8:17","typeDescriptions":{"typeIdentifier":"t_rational_53919893334301279589334030174039261347274288845081144962207220498432_by_1","typeString":"int_const 5391...(60 digits omitted)...8432"}},"visibility":"internal"},{"constant":true,"id":7790,"mutability":"constant","name":"_ROLE_226","nameLocation":"24157:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24131:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7786,"name":"uint256","nodeType":"ElementaryTypeName","src":"24131:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_107839786668602559178668060348078522694548577690162289924414440996864_by_1","typeString":"int_const 1078...(61 digits omitted)...6864"},"id":7789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24169:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323236","id":7788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24174:3:17","typeDescriptions":{"typeIdentifier":"t_rational_226_by_1","typeString":"int_const 226"},"value":"226"},"src":"24169:8:17","typeDescriptions":{"typeIdentifier":"t_rational_107839786668602559178668060348078522694548577690162289924414440996864_by_1","typeString":"int_const 1078...(61 digits omitted)...6864"}},"visibility":"internal"},{"constant":true,"id":7795,"mutability":"constant","name":"_ROLE_227","nameLocation":"24209:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24183:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7791,"name":"uint256","nodeType":"ElementaryTypeName","src":"24183:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_215679573337205118357336120696157045389097155380324579848828881993728_by_1","typeString":"int_const 2156...(61 digits omitted)...3728"},"id":7794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24221:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323237","id":7793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24226:3:17","typeDescriptions":{"typeIdentifier":"t_rational_227_by_1","typeString":"int_const 227"},"value":"227"},"src":"24221:8:17","typeDescriptions":{"typeIdentifier":"t_rational_215679573337205118357336120696157045389097155380324579848828881993728_by_1","typeString":"int_const 2156...(61 digits omitted)...3728"}},"visibility":"internal"},{"constant":true,"id":7800,"mutability":"constant","name":"_ROLE_228","nameLocation":"24261:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24235:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7796,"name":"uint256","nodeType":"ElementaryTypeName","src":"24235:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_431359146674410236714672241392314090778194310760649159697657763987456_by_1","typeString":"int_const 4313...(61 digits omitted)...7456"},"id":7799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24273:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323238","id":7798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24278:3:17","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"228"},"src":"24273:8:17","typeDescriptions":{"typeIdentifier":"t_rational_431359146674410236714672241392314090778194310760649159697657763987456_by_1","typeString":"int_const 4313...(61 digits omitted)...7456"}},"visibility":"internal"},{"constant":true,"id":7805,"mutability":"constant","name":"_ROLE_229","nameLocation":"24313:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24287:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7801,"name":"uint256","nodeType":"ElementaryTypeName","src":"24287:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_862718293348820473429344482784628181556388621521298319395315527974912_by_1","typeString":"int_const 8627...(61 digits omitted)...4912"},"id":7804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24325:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323239","id":7803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24330:3:17","typeDescriptions":{"typeIdentifier":"t_rational_229_by_1","typeString":"int_const 229"},"value":"229"},"src":"24325:8:17","typeDescriptions":{"typeIdentifier":"t_rational_862718293348820473429344482784628181556388621521298319395315527974912_by_1","typeString":"int_const 8627...(61 digits omitted)...4912"}},"visibility":"internal"},{"constant":true,"id":7810,"mutability":"constant","name":"_ROLE_230","nameLocation":"24365:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24339:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7806,"name":"uint256","nodeType":"ElementaryTypeName","src":"24339:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1725436586697640946858688965569256363112777243042596638790631055949824_by_1","typeString":"int_const 1725...(62 digits omitted)...9824"},"id":7809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24377:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323330","id":7808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24382:3:17","typeDescriptions":{"typeIdentifier":"t_rational_230_by_1","typeString":"int_const 230"},"value":"230"},"src":"24377:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1725436586697640946858688965569256363112777243042596638790631055949824_by_1","typeString":"int_const 1725...(62 digits omitted)...9824"}},"visibility":"internal"},{"constant":true,"id":7815,"mutability":"constant","name":"_ROLE_231","nameLocation":"24417:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24391:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7811,"name":"uint256","nodeType":"ElementaryTypeName","src":"24391:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3450873173395281893717377931138512726225554486085193277581262111899648_by_1","typeString":"int_const 3450...(62 digits omitted)...9648"},"id":7814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24429:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323331","id":7813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24434:3:17","typeDescriptions":{"typeIdentifier":"t_rational_231_by_1","typeString":"int_const 231"},"value":"231"},"src":"24429:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3450873173395281893717377931138512726225554486085193277581262111899648_by_1","typeString":"int_const 3450...(62 digits omitted)...9648"}},"visibility":"internal"},{"constant":true,"id":7820,"mutability":"constant","name":"_ROLE_232","nameLocation":"24469:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24443:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7816,"name":"uint256","nodeType":"ElementaryTypeName","src":"24443:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_6901746346790563787434755862277025452451108972170386555162524223799296_by_1","typeString":"int_const 6901...(62 digits omitted)...9296"},"id":7819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24481:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323332","id":7818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24486:3:17","typeDescriptions":{"typeIdentifier":"t_rational_232_by_1","typeString":"int_const 232"},"value":"232"},"src":"24481:8:17","typeDescriptions":{"typeIdentifier":"t_rational_6901746346790563787434755862277025452451108972170386555162524223799296_by_1","typeString":"int_const 6901...(62 digits omitted)...9296"}},"visibility":"internal"},{"constant":true,"id":7825,"mutability":"constant","name":"_ROLE_233","nameLocation":"24521:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24495:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7821,"name":"uint256","nodeType":"ElementaryTypeName","src":"24495:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_13803492693581127574869511724554050904902217944340773110325048447598592_by_1","typeString":"int_const 1380...(63 digits omitted)...8592"},"id":7824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24533:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323333","id":7823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24538:3:17","typeDescriptions":{"typeIdentifier":"t_rational_233_by_1","typeString":"int_const 233"},"value":"233"},"src":"24533:8:17","typeDescriptions":{"typeIdentifier":"t_rational_13803492693581127574869511724554050904902217944340773110325048447598592_by_1","typeString":"int_const 1380...(63 digits omitted)...8592"}},"visibility":"internal"},{"constant":true,"id":7830,"mutability":"constant","name":"_ROLE_234","nameLocation":"24573:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24547:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7826,"name":"uint256","nodeType":"ElementaryTypeName","src":"24547:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_27606985387162255149739023449108101809804435888681546220650096895197184_by_1","typeString":"int_const 2760...(63 digits omitted)...7184"},"id":7829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24585:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323334","id":7828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24590:3:17","typeDescriptions":{"typeIdentifier":"t_rational_234_by_1","typeString":"int_const 234"},"value":"234"},"src":"24585:8:17","typeDescriptions":{"typeIdentifier":"t_rational_27606985387162255149739023449108101809804435888681546220650096895197184_by_1","typeString":"int_const 2760...(63 digits omitted)...7184"}},"visibility":"internal"},{"constant":true,"id":7835,"mutability":"constant","name":"_ROLE_235","nameLocation":"24625:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24599:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7831,"name":"uint256","nodeType":"ElementaryTypeName","src":"24599:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_55213970774324510299478046898216203619608871777363092441300193790394368_by_1","typeString":"int_const 5521...(63 digits omitted)...4368"},"id":7834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24637:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323335","id":7833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24642:3:17","typeDescriptions":{"typeIdentifier":"t_rational_235_by_1","typeString":"int_const 235"},"value":"235"},"src":"24637:8:17","typeDescriptions":{"typeIdentifier":"t_rational_55213970774324510299478046898216203619608871777363092441300193790394368_by_1","typeString":"int_const 5521...(63 digits omitted)...4368"}},"visibility":"internal"},{"constant":true,"id":7840,"mutability":"constant","name":"_ROLE_236","nameLocation":"24677:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24651:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7836,"name":"uint256","nodeType":"ElementaryTypeName","src":"24651:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_110427941548649020598956093796432407239217743554726184882600387580788736_by_1","typeString":"int_const 1104...(64 digits omitted)...8736"},"id":7839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24689:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323336","id":7838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24694:3:17","typeDescriptions":{"typeIdentifier":"t_rational_236_by_1","typeString":"int_const 236"},"value":"236"},"src":"24689:8:17","typeDescriptions":{"typeIdentifier":"t_rational_110427941548649020598956093796432407239217743554726184882600387580788736_by_1","typeString":"int_const 1104...(64 digits omitted)...8736"}},"visibility":"internal"},{"constant":true,"id":7845,"mutability":"constant","name":"_ROLE_237","nameLocation":"24729:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24703:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7841,"name":"uint256","nodeType":"ElementaryTypeName","src":"24703:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_220855883097298041197912187592864814478435487109452369765200775161577472_by_1","typeString":"int_const 2208...(64 digits omitted)...7472"},"id":7844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24741:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323337","id":7843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24746:3:17","typeDescriptions":{"typeIdentifier":"t_rational_237_by_1","typeString":"int_const 237"},"value":"237"},"src":"24741:8:17","typeDescriptions":{"typeIdentifier":"t_rational_220855883097298041197912187592864814478435487109452369765200775161577472_by_1","typeString":"int_const 2208...(64 digits omitted)...7472"}},"visibility":"internal"},{"constant":true,"id":7850,"mutability":"constant","name":"_ROLE_238","nameLocation":"24781:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24755:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7846,"name":"uint256","nodeType":"ElementaryTypeName","src":"24755:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_441711766194596082395824375185729628956870974218904739530401550323154944_by_1","typeString":"int_const 4417...(64 digits omitted)...4944"},"id":7849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24793:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323338","id":7848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24798:3:17","typeDescriptions":{"typeIdentifier":"t_rational_238_by_1","typeString":"int_const 238"},"value":"238"},"src":"24793:8:17","typeDescriptions":{"typeIdentifier":"t_rational_441711766194596082395824375185729628956870974218904739530401550323154944_by_1","typeString":"int_const 4417...(64 digits omitted)...4944"}},"visibility":"internal"},{"constant":true,"id":7855,"mutability":"constant","name":"_ROLE_239","nameLocation":"24833:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24807:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7851,"name":"uint256","nodeType":"ElementaryTypeName","src":"24807:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_883423532389192164791648750371459257913741948437809479060803100646309888_by_1","typeString":"int_const 8834...(64 digits omitted)...9888"},"id":7854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24845:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323339","id":7853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24850:3:17","typeDescriptions":{"typeIdentifier":"t_rational_239_by_1","typeString":"int_const 239"},"value":"239"},"src":"24845:8:17","typeDescriptions":{"typeIdentifier":"t_rational_883423532389192164791648750371459257913741948437809479060803100646309888_by_1","typeString":"int_const 8834...(64 digits omitted)...9888"}},"visibility":"internal"},{"constant":true,"id":7860,"mutability":"constant","name":"_ROLE_240","nameLocation":"24885:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24859:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7856,"name":"uint256","nodeType":"ElementaryTypeName","src":"24859:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"},"id":7859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24897:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323430","id":7858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24902:3:17","typeDescriptions":{"typeIdentifier":"t_rational_240_by_1","typeString":"int_const 240"},"value":"240"},"src":"24897:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1766847064778384329583297500742918515827483896875618958121606201292619776_by_1","typeString":"int_const 1766...(65 digits omitted)...9776"}},"visibility":"internal"},{"constant":true,"id":7865,"mutability":"constant","name":"_ROLE_241","nameLocation":"24937:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24911:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7861,"name":"uint256","nodeType":"ElementaryTypeName","src":"24911:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3533694129556768659166595001485837031654967793751237916243212402585239552_by_1","typeString":"int_const 3533...(65 digits omitted)...9552"},"id":7864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24949:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323431","id":7863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24954:3:17","typeDescriptions":{"typeIdentifier":"t_rational_241_by_1","typeString":"int_const 241"},"value":"241"},"src":"24949:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3533694129556768659166595001485837031654967793751237916243212402585239552_by_1","typeString":"int_const 3533...(65 digits omitted)...9552"}},"visibility":"internal"},{"constant":true,"id":7870,"mutability":"constant","name":"_ROLE_242","nameLocation":"24989:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"24963:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7866,"name":"uint256","nodeType":"ElementaryTypeName","src":"24963:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_7067388259113537318333190002971674063309935587502475832486424805170479104_by_1","typeString":"int_const 7067...(65 digits omitted)...9104"},"id":7869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25001:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323432","id":7868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25006:3:17","typeDescriptions":{"typeIdentifier":"t_rational_242_by_1","typeString":"int_const 242"},"value":"242"},"src":"25001:8:17","typeDescriptions":{"typeIdentifier":"t_rational_7067388259113537318333190002971674063309935587502475832486424805170479104_by_1","typeString":"int_const 7067...(65 digits omitted)...9104"}},"visibility":"internal"},{"constant":true,"id":7875,"mutability":"constant","name":"_ROLE_243","nameLocation":"25041:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25015:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7871,"name":"uint256","nodeType":"ElementaryTypeName","src":"25015:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_14134776518227074636666380005943348126619871175004951664972849610340958208_by_1","typeString":"int_const 1413...(66 digits omitted)...8208"},"id":7874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25053:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323433","id":7873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25058:3:17","typeDescriptions":{"typeIdentifier":"t_rational_243_by_1","typeString":"int_const 243"},"value":"243"},"src":"25053:8:17","typeDescriptions":{"typeIdentifier":"t_rational_14134776518227074636666380005943348126619871175004951664972849610340958208_by_1","typeString":"int_const 1413...(66 digits omitted)...8208"}},"visibility":"internal"},{"constant":true,"id":7880,"mutability":"constant","name":"_ROLE_244","nameLocation":"25093:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25067:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7876,"name":"uint256","nodeType":"ElementaryTypeName","src":"25067:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_28269553036454149273332760011886696253239742350009903329945699220681916416_by_1","typeString":"int_const 2826...(66 digits omitted)...6416"},"id":7879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25105:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323434","id":7878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25110:3:17","typeDescriptions":{"typeIdentifier":"t_rational_244_by_1","typeString":"int_const 244"},"value":"244"},"src":"25105:8:17","typeDescriptions":{"typeIdentifier":"t_rational_28269553036454149273332760011886696253239742350009903329945699220681916416_by_1","typeString":"int_const 2826...(66 digits omitted)...6416"}},"visibility":"internal"},{"constant":true,"id":7885,"mutability":"constant","name":"_ROLE_245","nameLocation":"25145:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25119:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7881,"name":"uint256","nodeType":"ElementaryTypeName","src":"25119:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_56539106072908298546665520023773392506479484700019806659891398441363832832_by_1","typeString":"int_const 5653...(66 digits omitted)...2832"},"id":7884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25157:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323435","id":7883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25162:3:17","typeDescriptions":{"typeIdentifier":"t_rational_245_by_1","typeString":"int_const 245"},"value":"245"},"src":"25157:8:17","typeDescriptions":{"typeIdentifier":"t_rational_56539106072908298546665520023773392506479484700019806659891398441363832832_by_1","typeString":"int_const 5653...(66 digits omitted)...2832"}},"visibility":"internal"},{"constant":true,"id":7890,"mutability":"constant","name":"_ROLE_246","nameLocation":"25197:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25171:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7886,"name":"uint256","nodeType":"ElementaryTypeName","src":"25171:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_113078212145816597093331040047546785012958969400039613319782796882727665664_by_1","typeString":"int_const 1130...(67 digits omitted)...5664"},"id":7889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25209:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323436","id":7888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25214:3:17","typeDescriptions":{"typeIdentifier":"t_rational_246_by_1","typeString":"int_const 246"},"value":"246"},"src":"25209:8:17","typeDescriptions":{"typeIdentifier":"t_rational_113078212145816597093331040047546785012958969400039613319782796882727665664_by_1","typeString":"int_const 1130...(67 digits omitted)...5664"}},"visibility":"internal"},{"constant":true,"id":7895,"mutability":"constant","name":"_ROLE_247","nameLocation":"25249:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25223:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7891,"name":"uint256","nodeType":"ElementaryTypeName","src":"25223:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_226156424291633194186662080095093570025917938800079226639565593765455331328_by_1","typeString":"int_const 2261...(67 digits omitted)...1328"},"id":7894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25261:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323437","id":7893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25266:3:17","typeDescriptions":{"typeIdentifier":"t_rational_247_by_1","typeString":"int_const 247"},"value":"247"},"src":"25261:8:17","typeDescriptions":{"typeIdentifier":"t_rational_226156424291633194186662080095093570025917938800079226639565593765455331328_by_1","typeString":"int_const 2261...(67 digits omitted)...1328"}},"visibility":"internal"},{"constant":true,"id":7900,"mutability":"constant","name":"_ROLE_248","nameLocation":"25301:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25275:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7896,"name":"uint256","nodeType":"ElementaryTypeName","src":"25275:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"},"id":7899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25313:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323438","id":7898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25318:3:17","typeDescriptions":{"typeIdentifier":"t_rational_248_by_1","typeString":"int_const 248"},"value":"248"},"src":"25313:8:17","typeDescriptions":{"typeIdentifier":"t_rational_452312848583266388373324160190187140051835877600158453279131187530910662656_by_1","typeString":"int_const 4523...(67 digits omitted)...2656"}},"visibility":"internal"},{"constant":true,"id":7905,"mutability":"constant","name":"_ROLE_249","nameLocation":"25353:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25327:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7901,"name":"uint256","nodeType":"ElementaryTypeName","src":"25327:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_904625697166532776746648320380374280103671755200316906558262375061821325312_by_1","typeString":"int_const 9046...(67 digits omitted)...5312"},"id":7904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25365:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323439","id":7903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25370:3:17","typeDescriptions":{"typeIdentifier":"t_rational_249_by_1","typeString":"int_const 249"},"value":"249"},"src":"25365:8:17","typeDescriptions":{"typeIdentifier":"t_rational_904625697166532776746648320380374280103671755200316906558262375061821325312_by_1","typeString":"int_const 9046...(67 digits omitted)...5312"}},"visibility":"internal"},{"constant":true,"id":7910,"mutability":"constant","name":"_ROLE_250","nameLocation":"25405:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25379:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7906,"name":"uint256","nodeType":"ElementaryTypeName","src":"25379:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1809251394333065553493296640760748560207343510400633813116524750123642650624_by_1","typeString":"int_const 1809...(68 digits omitted)...0624"},"id":7909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25417:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323530","id":7908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25422:3:17","typeDescriptions":{"typeIdentifier":"t_rational_250_by_1","typeString":"int_const 250"},"value":"250"},"src":"25417:8:17","typeDescriptions":{"typeIdentifier":"t_rational_1809251394333065553493296640760748560207343510400633813116524750123642650624_by_1","typeString":"int_const 1809...(68 digits omitted)...0624"}},"visibility":"internal"},{"constant":true,"id":7915,"mutability":"constant","name":"_ROLE_251","nameLocation":"25457:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25431:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7911,"name":"uint256","nodeType":"ElementaryTypeName","src":"25431:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_3618502788666131106986593281521497120414687020801267626233049500247285301248_by_1","typeString":"int_const 3618...(68 digits omitted)...1248"},"id":7914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25469:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323531","id":7913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25474:3:17","typeDescriptions":{"typeIdentifier":"t_rational_251_by_1","typeString":"int_const 251"},"value":"251"},"src":"25469:8:17","typeDescriptions":{"typeIdentifier":"t_rational_3618502788666131106986593281521497120414687020801267626233049500247285301248_by_1","typeString":"int_const 3618...(68 digits omitted)...1248"}},"visibility":"internal"},{"constant":true,"id":7920,"mutability":"constant","name":"_ROLE_252","nameLocation":"25509:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25483:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7916,"name":"uint256","nodeType":"ElementaryTypeName","src":"25483:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_7237005577332262213973186563042994240829374041602535252466099000494570602496_by_1","typeString":"int_const 7237...(68 digits omitted)...2496"},"id":7919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25521:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323532","id":7918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25526:3:17","typeDescriptions":{"typeIdentifier":"t_rational_252_by_1","typeString":"int_const 252"},"value":"252"},"src":"25521:8:17","typeDescriptions":{"typeIdentifier":"t_rational_7237005577332262213973186563042994240829374041602535252466099000494570602496_by_1","typeString":"int_const 7237...(68 digits omitted)...2496"}},"visibility":"internal"},{"constant":true,"id":7925,"mutability":"constant","name":"_ROLE_253","nameLocation":"25561:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25535:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7921,"name":"uint256","nodeType":"ElementaryTypeName","src":"25535:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_14474011154664524427946373126085988481658748083205070504932198000989141204992_by_1","typeString":"int_const 1447...(69 digits omitted)...4992"},"id":7924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25573:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323533","id":7923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25578:3:17","typeDescriptions":{"typeIdentifier":"t_rational_253_by_1","typeString":"int_const 253"},"value":"253"},"src":"25573:8:17","typeDescriptions":{"typeIdentifier":"t_rational_14474011154664524427946373126085988481658748083205070504932198000989141204992_by_1","typeString":"int_const 1447...(69 digits omitted)...4992"}},"visibility":"internal"},{"constant":true,"id":7930,"mutability":"constant","name":"_ROLE_254","nameLocation":"25613:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25587:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7926,"name":"uint256","nodeType":"ElementaryTypeName","src":"25587:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1","typeString":"int_const 2894...(69 digits omitted)...9984"},"id":7929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25625:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323534","id":7928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25630:3:17","typeDescriptions":{"typeIdentifier":"t_rational_254_by_1","typeString":"int_const 254"},"value":"254"},"src":"25625:8:17","typeDescriptions":{"typeIdentifier":"t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1","typeString":"int_const 2894...(69 digits omitted)...9984"}},"visibility":"internal"},{"constant":true,"id":7935,"mutability":"constant","name":"_ROLE_255","nameLocation":"25665:9:17","nodeType":"VariableDeclaration","scope":7936,"src":"25639:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7931,"name":"uint256","nodeType":"ElementaryTypeName","src":"25639:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"id":7934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25677:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323535","id":7933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25682:3:17","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"25677:8:17","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}},"visibility":"internal"}],"scope":7937,"src":"467:25221:17","usedErrors":[6221,6224,6227,6230],"usedEvents":[6237,6242,6247,6423]}],"src":"32:25657:17"},"id":17},"@solady/tokens/ERC20.sol":{"ast":{"absolutePath":"@solady/tokens/ERC20.sol","exportedSymbols":{"ERC20":[8355]},"id":8356,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7938,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:18"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":7939,"nodeType":"StructuredDocumentation","src":"57:1083:18","text":"@notice Simple ERC20 + EIP-2612 implementation.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\n @dev Note:\n - The ERC20 standard allows minting and transferring to and from the zero address,\n minting and transferring zero tokens, as well as self-approvals.\n For performance, this implementation WILL NOT revert for such actions.\n Please add any checks with overrides if desired.\n - The `permit` function uses the ecrecover precompile (0x1).\n If you are overriding:\n - NEVER violate the ERC20 invariant:\n the total sum of all balances must be equal to `totalSupply()`.\n - Check that the overridden function is actually used in the function you want to\n change the behavior of. Much of the code has been manually inlined for performance."},"fullyImplemented":false,"id":8355,"linearizedBaseContracts":[8355],"name":"ERC20","nameLocation":"1158:5:18","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7940,"nodeType":"StructuredDocumentation","src":"1453:41:18","text":"@dev The total supply has overflowed."},"errorSelector":"e5cfe957","id":7942,"name":"TotalSupplyOverflow","nameLocation":"1505:19:18","nodeType":"ErrorDefinition","parameters":{"id":7941,"nodeType":"ParameterList","parameters":[],"src":"1524:2:18"},"src":"1499:28:18"},{"documentation":{"id":7943,"nodeType":"StructuredDocumentation","src":"1533:38:18","text":"@dev The allowance has overflowed."},"errorSelector":"f9067066","id":7945,"name":"AllowanceOverflow","nameLocation":"1582:17:18","nodeType":"ErrorDefinition","parameters":{"id":7944,"nodeType":"ParameterList","parameters":[],"src":"1599:2:18"},"src":"1576:26:18"},{"documentation":{"id":7946,"nodeType":"StructuredDocumentation","src":"1608:39:18","text":"@dev The allowance has underflowed."},"errorSelector":"8301ab38","id":7948,"name":"AllowanceUnderflow","nameLocation":"1658:18:18","nodeType":"ErrorDefinition","parameters":{"id":7947,"nodeType":"ParameterList","parameters":[],"src":"1676:2:18"},"src":"1652:27:18"},{"documentation":{"id":7949,"nodeType":"StructuredDocumentation","src":"1685:30:18","text":"@dev Insufficient balance."},"errorSelector":"f4d678b8","id":7951,"name":"InsufficientBalance","nameLocation":"1726:19:18","nodeType":"ErrorDefinition","parameters":{"id":7950,"nodeType":"ParameterList","parameters":[],"src":"1745:2:18"},"src":"1720:28:18"},{"documentation":{"id":7952,"nodeType":"StructuredDocumentation","src":"1754:32:18","text":"@dev Insufficient allowance."},"errorSelector":"13be252b","id":7954,"name":"InsufficientAllowance","nameLocation":"1797:21:18","nodeType":"ErrorDefinition","parameters":{"id":7953,"nodeType":"ParameterList","parameters":[],"src":"1818:2:18"},"src":"1791:30:18"},{"documentation":{"id":7955,"nodeType":"StructuredDocumentation","src":"1827:31:18","text":"@dev The permit is invalid."},"errorSelector":"ddafbaef","id":7957,"name":"InvalidPermit","nameLocation":"1869:13:18","nodeType":"ErrorDefinition","parameters":{"id":7956,"nodeType":"ParameterList","parameters":[],"src":"1882:2:18"},"src":"1863:22:18"},{"documentation":{"id":7958,"nodeType":"StructuredDocumentation","src":"1891:32:18","text":"@dev The permit has expired."},"errorSelector":"1a15a3cc","id":7960,"name":"PermitExpired","nameLocation":"1934:13:18","nodeType":"ErrorDefinition","parameters":{"id":7959,"nodeType":"ParameterList","parameters":[],"src":"1947:2:18"},"src":"1928:22:18"},{"anonymous":false,"documentation":{"id":7961,"nodeType":"StructuredDocumentation","src":"2239:73:18","text":"@dev Emitted when `amount` tokens is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":7969,"name":"Transfer","nameLocation":"2323:8:18","nodeType":"EventDefinition","parameters":{"id":7968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7963,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2348:4:18","nodeType":"VariableDeclaration","scope":7969,"src":"2332:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7962,"name":"address","nodeType":"ElementaryTypeName","src":"2332:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7965,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"2370:2:18","nodeType":"VariableDeclaration","scope":7969,"src":"2354:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7964,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7967,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2382:6:18","nodeType":"VariableDeclaration","scope":7969,"src":"2374:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7966,"name":"uint256","nodeType":"ElementaryTypeName","src":"2374:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2331:58:18"},"src":"2317:73:18"},{"anonymous":false,"documentation":{"id":7970,"nodeType":"StructuredDocumentation","src":"2396:85:18","text":"@dev Emitted when `amount` tokens is approved by `owner` to be used by `spender`."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":7978,"name":"Approval","nameLocation":"2492:8:18","nodeType":"EventDefinition","parameters":{"id":7977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7972,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"2517:5:18","nodeType":"VariableDeclaration","scope":7978,"src":"2501:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7971,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7974,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"2540:7:18","nodeType":"VariableDeclaration","scope":7978,"src":"2524:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7973,"name":"address","nodeType":"ElementaryTypeName","src":"2524:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7976,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2557:6:18","nodeType":"VariableDeclaration","scope":7978,"src":"2549:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7975,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2500:64:18"},"src":"2486:79:18"},{"constant":true,"documentation":{"id":7979,"nodeType":"StructuredDocumentation","src":"2571:65:18","text":"@dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`."},"id":7982,"mutability":"constant","name":"_TRANSFER_EVENT_SIGNATURE","nameLocation":"2666:25:18","nodeType":"VariableDeclaration","scope":8355,"src":"2641:127:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7980,"name":"uint256","nodeType":"ElementaryTypeName","src":"2641:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864646632353261643162653263383962363963326230363866633337386461613935326261376631363363346131313632386635356134646635323362336566","id":7981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2702:66:18","typeDescriptions":{"typeIdentifier":"t_rational_100389287136786176327247604509743168900146139575972864366142685224231313322991_by_1","typeString":"int_const 1003...(70 digits omitted)...2991"},"value":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},"visibility":"private"},{"constant":true,"documentation":{"id":7983,"nodeType":"StructuredDocumentation","src":"2775:65:18","text":"@dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`."},"id":7986,"mutability":"constant","name":"_APPROVAL_EVENT_SIGNATURE","nameLocation":"2870:25:18","nodeType":"VariableDeclaration","scope":8355,"src":"2845:127:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7984,"name":"uint256","nodeType":"ElementaryTypeName","src":"2845:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838633562653165356562656337643562643134663731343237643165383466336464303331346330663762323239316535623230306163386337633362393235","id":7985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2906:66:18","typeDescriptions":{"typeIdentifier":"t_rational_63486140976153616755203102783360879283472101686154884697241723088393386309925_by_1","typeString":"int_const 6348...(69 digits omitted)...9925"},"value":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},"visibility":"private"},{"constant":true,"documentation":{"id":7987,"nodeType":"StructuredDocumentation","src":"3262:47:18","text":"@dev The storage slot for the total supply."},"id":7990,"mutability":"constant","name":"_TOTAL_SUPPLY_SLOT","nameLocation":"3339:18:18","nodeType":"VariableDeclaration","scope":8355,"src":"3314:66:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7988,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078303533343563646637376562363866343463","id":7989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3360:20:18","typeDescriptions":{"typeIdentifier":"t_rational_96006856662521017420_by_1","typeString":"int_const 96006856662521017420"},"value":"0x05345cdf77eb68f44c"},"visibility":"private"},{"constant":true,"documentation":{"id":7991,"nodeType":"StructuredDocumentation","src":"3387:203:18","text":"@dev The balance slot of `owner` is given by:\n ```\n mstore(0x0c, _BALANCE_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x20)\n ```"},"id":7994,"mutability":"constant","name":"_BALANCE_SLOT_SEED","nameLocation":"3620:18:18","nodeType":"VariableDeclaration","scope":8355,"src":"3595:56:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7992,"name":"uint256","nodeType":"ElementaryTypeName","src":"3595:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783837613231316132","id":7993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3641:10:18","typeDescriptions":{"typeIdentifier":"t_rational_2275545506_by_1","typeString":"int_const 2275545506"},"value":"0x87a211a2"},"visibility":"private"},{"constant":true,"documentation":{"id":7995,"nodeType":"StructuredDocumentation","src":"3658:256:18","text":"@dev The allowance slot of (`owner`, `spender`) is given by:\n ```\n mstore(0x20, spender)\n mstore(0x0c, _ALLOWANCE_SLOT_SEED)\n mstore(0x00, owner)\n let allowanceSlot := keccak256(0x0c, 0x34)\n ```"},"id":7998,"mutability":"constant","name":"_ALLOWANCE_SLOT_SEED","nameLocation":"3944:20:18","nodeType":"VariableDeclaration","scope":8355,"src":"3919:58:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7996,"name":"uint256","nodeType":"ElementaryTypeName","src":"3919:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783766356539663230","id":7997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3967:10:18","typeDescriptions":{"typeIdentifier":"t_rational_2136907552_by_1","typeString":"int_const 2136907552"},"value":"0x7f5e9f20"},"visibility":"private"},{"constant":true,"documentation":{"id":7999,"nodeType":"StructuredDocumentation","src":"3984:198:18","text":"@dev The nonce slot of `owner` is given by:\n ```\n mstore(0x0c, _NONCES_SLOT_SEED)\n mstore(0x00, owner)\n let nonceSlot := keccak256(0x0c, 0x20)\n ```"},"id":8002,"mutability":"constant","name":"_NONCES_SLOT_SEED","nameLocation":"4212:17:18","nodeType":"VariableDeclaration","scope":8355,"src":"4187:55:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8000,"name":"uint256","nodeType":"ElementaryTypeName","src":"4187:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783338333737353038","id":8001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4232:10:18","typeDescriptions":{"typeIdentifier":"t_rational_943158536_by_1","typeString":"int_const 943158536"},"value":"0x38377508"},"visibility":"private"},{"constant":true,"documentation":{"id":8003,"nodeType":"StructuredDocumentation","src":"4532:46:18","text":"@dev `(_NONCES_SLOT_SEED << 16) | 0x1901`."},"id":8006,"mutability":"constant","name":"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX","nameLocation":"4608:39:18","nodeType":"VariableDeclaration","scope":8355,"src":"4583:81:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8004,"name":"uint256","nodeType":"ElementaryTypeName","src":"4583:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078333833373735303831393031","id":8005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4650:14:18","typeDescriptions":{"typeIdentifier":"t_rational_61810837821697_by_1","typeString":"int_const 61810837821697"},"value":"0x383775081901"},"visibility":"private"},{"constant":true,"documentation":{"id":8007,"nodeType":"StructuredDocumentation","src":"4671:107:18","text":"@dev `keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")`."},"id":8010,"mutability":"constant","name":"_DOMAIN_TYPEHASH","nameLocation":"4808:16:18","nodeType":"VariableDeclaration","scope":8355,"src":"4783:118:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4783:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838623733633363363962623866653364353132656363346366373539636337393233396637623137396230666661636161396137356435323262333934303066","id":8009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4835:66:18","typeDescriptions":{"typeIdentifier":"t_rational_63076024560530113402979550242307453568063438748328787417531900361828837441551_by_1","typeString":"int_const 6307...(69 digits omitted)...1551"},"value":"0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f"},"visibility":"private"},{"constant":true,"documentation":{"id":8011,"nodeType":"StructuredDocumentation","src":"4908:26:18","text":"@dev `keccak256(\"1\")`."},"id":8014,"mutability":"constant","name":"_VERSION_HASH","nameLocation":"4964:13:18","nodeType":"VariableDeclaration","scope":8355,"src":"4939:115:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4939:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863383965666461613534633066323063376164663631323838326466303935306635613935313633376530333037636463623463363732663239386238626336","id":8013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4988:66:18","typeDescriptions":{"typeIdentifier":"t_rational_90743482286830539503240959006302832933333810038750515972785732718729991261126_by_1","typeString":"int_const 9074...(69 digits omitted)...1126"},"value":"0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6"},"visibility":"private"},{"constant":true,"documentation":{"id":8015,"nodeType":"StructuredDocumentation","src":"5061:107:18","text":"@dev `keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\")`."},"id":8018,"mutability":"constant","name":"_PERMIT_TYPEHASH","nameLocation":"5198:16:18","nodeType":"VariableDeclaration","scope":8355,"src":"5173:118:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5173:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339","id":8017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5225:66:18","typeDescriptions":{"typeIdentifier":"t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1","typeString":"int_const 4995...(69 digits omitted)...3241"},"value":"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9"},"visibility":"private"},{"documentation":{"id":8019,"nodeType":"StructuredDocumentation","src":"5581:39:18","text":"@dev Returns the name of the token."},"functionSelector":"06fdde03","id":8024,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"5634:4:18","nodeType":"FunctionDefinition","parameters":{"id":8020,"nodeType":"ParameterList","parameters":[],"src":"5638:2:18"},"returnParameters":{"id":8023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8022,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8024,"src":"5670:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8021,"name":"string","nodeType":"ElementaryTypeName","src":"5670:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5669:15:18"},"scope":8355,"src":"5625:60:18","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8025,"nodeType":"StructuredDocumentation","src":"5691:41:18","text":"@dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":8030,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"5746:6:18","nodeType":"FunctionDefinition","parameters":{"id":8026,"nodeType":"ParameterList","parameters":[],"src":"5752:2:18"},"returnParameters":{"id":8029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8030,"src":"5784:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8027,"name":"string","nodeType":"ElementaryTypeName","src":"5784:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5783:15:18"},"scope":8355,"src":"5737:62:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8038,"nodeType":"Block","src":"5916:26:18","statements":[{"expression":{"hexValue":"3138","id":8036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5933:2:18","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":8035,"id":8037,"nodeType":"Return","src":"5926:9:18"}]},"documentation":{"id":8031,"nodeType":"StructuredDocumentation","src":"5805:50:18","text":"@dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":8039,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"5869:8:18","nodeType":"FunctionDefinition","parameters":{"id":8032,"nodeType":"ParameterList","parameters":[],"src":"5877:2:18"},"returnParameters":{"id":8035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8039,"src":"5909:5:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8033,"name":"uint8","nodeType":"ElementaryTypeName","src":"5909:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5908:7:18"},"scope":8355,"src":"5860:82:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8046,"nodeType":"Block","src":"6355:127:18","statements":[{"AST":{"nativeSrc":"6417:59:18","nodeType":"YulBlock","src":"6417:59:18","statements":[{"nativeSrc":"6431:35:18","nodeType":"YulAssignment","src":"6431:35:18","value":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"6447:18:18","nodeType":"YulIdentifier","src":"6447:18:18"}],"functionName":{"name":"sload","nativeSrc":"6441:5:18","nodeType":"YulIdentifier","src":"6441:5:18"},"nativeSrc":"6441:25:18","nodeType":"YulFunctionCall","src":"6441:25:18"},"variableNames":[{"name":"result","nativeSrc":"6431:6:18","nodeType":"YulIdentifier","src":"6431:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7990,"isOffset":false,"isSlot":false,"src":"6447:18:18","valueSize":1},{"declaration":8043,"isOffset":false,"isSlot":false,"src":"6431:6:18","valueSize":1}],"id":8045,"nodeType":"InlineAssembly","src":"6408:68:18"}]},"documentation":{"id":8040,"nodeType":"StructuredDocumentation","src":"6231:51:18","text":"@dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":8047,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"6296:11:18","nodeType":"FunctionDefinition","parameters":{"id":8041,"nodeType":"ParameterList","parameters":[],"src":"6307:2:18"},"returnParameters":{"id":8044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8043,"mutability":"mutable","name":"result","nameLocation":"6347:6:18","nodeType":"VariableDeclaration","scope":8047,"src":"6339:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8042,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6338:16:18"},"scope":8355,"src":"6287:195:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8056,"nodeType":"Block","src":"6627:207:18","statements":[{"AST":{"nativeSrc":"6689:139:18","nodeType":"YulBlock","src":"6689:139:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6710:4:18","nodeType":"YulLiteral","src":"6710:4:18","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"6716:18:18","nodeType":"YulIdentifier","src":"6716:18:18"}],"functionName":{"name":"mstore","nativeSrc":"6703:6:18","nodeType":"YulIdentifier","src":"6703:6:18"},"nativeSrc":"6703:32:18","nodeType":"YulFunctionCall","src":"6703:32:18"},"nativeSrc":"6703:32:18","nodeType":"YulExpressionStatement","src":"6703:32:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6755:4:18","nodeType":"YulLiteral","src":"6755:4:18","type":"","value":"0x00"},{"name":"owner","nativeSrc":"6761:5:18","nodeType":"YulIdentifier","src":"6761:5:18"}],"functionName":{"name":"mstore","nativeSrc":"6748:6:18","nodeType":"YulIdentifier","src":"6748:6:18"},"nativeSrc":"6748:19:18","nodeType":"YulFunctionCall","src":"6748:19:18"},"nativeSrc":"6748:19:18","nodeType":"YulExpressionStatement","src":"6748:19:18"},{"nativeSrc":"6780:38:18","nodeType":"YulAssignment","src":"6780:38:18","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6806:4:18","nodeType":"YulLiteral","src":"6806:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"6812:4:18","nodeType":"YulLiteral","src":"6812:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6796:9:18","nodeType":"YulIdentifier","src":"6796:9:18"},"nativeSrc":"6796:21:18","nodeType":"YulFunctionCall","src":"6796:21:18"}],"functionName":{"name":"sload","nativeSrc":"6790:5:18","nodeType":"YulIdentifier","src":"6790:5:18"},"nativeSrc":"6790:28:18","nodeType":"YulFunctionCall","src":"6790:28:18"},"variableNames":[{"name":"result","nativeSrc":"6780:6:18","nodeType":"YulIdentifier","src":"6780:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7994,"isOffset":false,"isSlot":false,"src":"6716:18:18","valueSize":1},{"declaration":8050,"isOffset":false,"isSlot":false,"src":"6761:5:18","valueSize":1},{"declaration":8053,"isOffset":false,"isSlot":false,"src":"6780:6:18","valueSize":1}],"id":8055,"nodeType":"InlineAssembly","src":"6680:148:18"}]},"documentation":{"id":8048,"nodeType":"StructuredDocumentation","src":"6488:55:18","text":"@dev Returns the amount of tokens owned by `owner`."},"functionSelector":"70a08231","id":8057,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"6557:9:18","nodeType":"FunctionDefinition","parameters":{"id":8051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8050,"mutability":"mutable","name":"owner","nameLocation":"6575:5:18","nodeType":"VariableDeclaration","scope":8057,"src":"6567:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8049,"name":"address","nodeType":"ElementaryTypeName","src":"6567:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6566:15:18"},"returnParameters":{"id":8054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8053,"mutability":"mutable","name":"result","nameLocation":"6619:6:18","nodeType":"VariableDeclaration","scope":8057,"src":"6611:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8052,"name":"uint256","nodeType":"ElementaryTypeName","src":"6611:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6610:16:18"},"scope":8355,"src":"6548:286:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8068,"nodeType":"Block","src":"7061:243:18","statements":[{"AST":{"nativeSrc":"7123:175:18","nodeType":"YulBlock","src":"7123:175:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7144:4:18","nodeType":"YulLiteral","src":"7144:4:18","type":"","value":"0x20"},{"name":"spender","nativeSrc":"7150:7:18","nodeType":"YulIdentifier","src":"7150:7:18"}],"functionName":{"name":"mstore","nativeSrc":"7137:6:18","nodeType":"YulIdentifier","src":"7137:6:18"},"nativeSrc":"7137:21:18","nodeType":"YulFunctionCall","src":"7137:21:18"},"nativeSrc":"7137:21:18","nodeType":"YulExpressionStatement","src":"7137:21:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7178:4:18","nodeType":"YulLiteral","src":"7178:4:18","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"7184:20:18","nodeType":"YulIdentifier","src":"7184:20:18"}],"functionName":{"name":"mstore","nativeSrc":"7171:6:18","nodeType":"YulIdentifier","src":"7171:6:18"},"nativeSrc":"7171:34:18","nodeType":"YulFunctionCall","src":"7171:34:18"},"nativeSrc":"7171:34:18","nodeType":"YulExpressionStatement","src":"7171:34:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7225:4:18","nodeType":"YulLiteral","src":"7225:4:18","type":"","value":"0x00"},{"name":"owner","nativeSrc":"7231:5:18","nodeType":"YulIdentifier","src":"7231:5:18"}],"functionName":{"name":"mstore","nativeSrc":"7218:6:18","nodeType":"YulIdentifier","src":"7218:6:18"},"nativeSrc":"7218:19:18","nodeType":"YulFunctionCall","src":"7218:19:18"},"nativeSrc":"7218:19:18","nodeType":"YulExpressionStatement","src":"7218:19:18"},{"nativeSrc":"7250:38:18","nodeType":"YulAssignment","src":"7250:38:18","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7276:4:18","nodeType":"YulLiteral","src":"7276:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7282:4:18","nodeType":"YulLiteral","src":"7282:4:18","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"7266:9:18","nodeType":"YulIdentifier","src":"7266:9:18"},"nativeSrc":"7266:21:18","nodeType":"YulFunctionCall","src":"7266:21:18"}],"functionName":{"name":"sload","nativeSrc":"7260:5:18","nodeType":"YulIdentifier","src":"7260:5:18"},"nativeSrc":"7260:28:18","nodeType":"YulFunctionCall","src":"7260:28:18"},"variableNames":[{"name":"result","nativeSrc":"7250:6:18","nodeType":"YulIdentifier","src":"7250:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7998,"isOffset":false,"isSlot":false,"src":"7184:20:18","valueSize":1},{"declaration":8060,"isOffset":false,"isSlot":false,"src":"7231:5:18","valueSize":1},{"declaration":8065,"isOffset":false,"isSlot":false,"src":"7250:6:18","valueSize":1},{"declaration":8062,"isOffset":false,"isSlot":false,"src":"7150:7:18","valueSize":1}],"id":8067,"nodeType":"InlineAssembly","src":"7114:184:18"}]},"documentation":{"id":8058,"nodeType":"StructuredDocumentation","src":"6840:84:18","text":"@dev Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"functionSelector":"dd62ed3e","id":8069,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"6938:9:18","nodeType":"FunctionDefinition","parameters":{"id":8063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8060,"mutability":"mutable","name":"owner","nameLocation":"6956:5:18","nodeType":"VariableDeclaration","scope":8069,"src":"6948:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8059,"name":"address","nodeType":"ElementaryTypeName","src":"6948:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8062,"mutability":"mutable","name":"spender","nameLocation":"6971:7:18","nodeType":"VariableDeclaration","scope":8069,"src":"6963:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8061,"name":"address","nodeType":"ElementaryTypeName","src":"6963:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6947:32:18"},"returnParameters":{"id":8066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8065,"mutability":"mutable","name":"result","nameLocation":"7049:6:18","nodeType":"VariableDeclaration","scope":8069,"src":"7041:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8064,"name":"uint256","nodeType":"ElementaryTypeName","src":"7041:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7040:16:18"},"scope":8355,"src":"6929:375:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8082,"nodeType":"Block","src":"7515:493:18","statements":[{"AST":{"nativeSrc":"7577:404:18","nodeType":"YulBlock","src":"7577:404:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7662:4:18","nodeType":"YulLiteral","src":"7662:4:18","type":"","value":"0x20"},{"name":"spender","nativeSrc":"7668:7:18","nodeType":"YulIdentifier","src":"7668:7:18"}],"functionName":{"name":"mstore","nativeSrc":"7655:6:18","nodeType":"YulIdentifier","src":"7655:6:18"},"nativeSrc":"7655:21:18","nodeType":"YulFunctionCall","src":"7655:21:18"},"nativeSrc":"7655:21:18","nodeType":"YulExpressionStatement","src":"7655:21:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7696:4:18","nodeType":"YulLiteral","src":"7696:4:18","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"7702:20:18","nodeType":"YulIdentifier","src":"7702:20:18"}],"functionName":{"name":"mstore","nativeSrc":"7689:6:18","nodeType":"YulIdentifier","src":"7689:6:18"},"nativeSrc":"7689:34:18","nodeType":"YulFunctionCall","src":"7689:34:18"},"nativeSrc":"7689:34:18","nodeType":"YulExpressionStatement","src":"7689:34:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7743:4:18","nodeType":"YulLiteral","src":"7743:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7749:6:18","nodeType":"YulIdentifier","src":"7749:6:18"},"nativeSrc":"7749:8:18","nodeType":"YulFunctionCall","src":"7749:8:18"}],"functionName":{"name":"mstore","nativeSrc":"7736:6:18","nodeType":"YulIdentifier","src":"7736:6:18"},"nativeSrc":"7736:22:18","nodeType":"YulFunctionCall","src":"7736:22:18"},"nativeSrc":"7736:22:18","nodeType":"YulExpressionStatement","src":"7736:22:18"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7788:4:18","nodeType":"YulLiteral","src":"7788:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7794:4:18","nodeType":"YulLiteral","src":"7794:4:18","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"7778:9:18","nodeType":"YulIdentifier","src":"7778:9:18"},"nativeSrc":"7778:21:18","nodeType":"YulFunctionCall","src":"7778:21:18"},{"name":"amount","nativeSrc":"7801:6:18","nodeType":"YulIdentifier","src":"7801:6:18"}],"functionName":{"name":"sstore","nativeSrc":"7771:6:18","nodeType":"YulIdentifier","src":"7771:6:18"},"nativeSrc":"7771:37:18","nodeType":"YulFunctionCall","src":"7771:37:18"},"nativeSrc":"7771:37:18","nodeType":"YulExpressionStatement","src":"7771:37:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7870:4:18","nodeType":"YulLiteral","src":"7870:4:18","type":"","value":"0x00"},{"name":"amount","nativeSrc":"7876:6:18","nodeType":"YulIdentifier","src":"7876:6:18"}],"functionName":{"name":"mstore","nativeSrc":"7863:6:18","nodeType":"YulIdentifier","src":"7863:6:18"},"nativeSrc":"7863:20:18","nodeType":"YulFunctionCall","src":"7863:20:18"},"nativeSrc":"7863:20:18","nodeType":"YulExpressionStatement","src":"7863:20:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7901:4:18","nodeType":"YulLiteral","src":"7901:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7907:4:18","nodeType":"YulLiteral","src":"7907:4:18","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"7913:25:18","nodeType":"YulIdentifier","src":"7913:25:18"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"7940:6:18","nodeType":"YulIdentifier","src":"7940:6:18"},"nativeSrc":"7940:8:18","nodeType":"YulFunctionCall","src":"7940:8:18"},{"arguments":[{"kind":"number","nativeSrc":"7954:2:18","nodeType":"YulLiteral","src":"7954:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"7964:4:18","nodeType":"YulLiteral","src":"7964:4:18","type":"","value":"0x2c"}],"functionName":{"name":"mload","nativeSrc":"7958:5:18","nodeType":"YulIdentifier","src":"7958:5:18"},"nativeSrc":"7958:11:18","nodeType":"YulFunctionCall","src":"7958:11:18"}],"functionName":{"name":"shr","nativeSrc":"7950:3:18","nodeType":"YulIdentifier","src":"7950:3:18"},"nativeSrc":"7950:20:18","nodeType":"YulFunctionCall","src":"7950:20:18"}],"functionName":{"name":"log3","nativeSrc":"7896:4:18","nodeType":"YulIdentifier","src":"7896:4:18"},"nativeSrc":"7896:75:18","nodeType":"YulFunctionCall","src":"7896:75:18"},"nativeSrc":"7896:75:18","nodeType":"YulExpressionStatement","src":"7896:75:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7998,"isOffset":false,"isSlot":false,"src":"7702:20:18","valueSize":1},{"declaration":7986,"isOffset":false,"isSlot":false,"src":"7913:25:18","valueSize":1},{"declaration":8074,"isOffset":false,"isSlot":false,"src":"7801:6:18","valueSize":1},{"declaration":8074,"isOffset":false,"isSlot":false,"src":"7876:6:18","valueSize":1},{"declaration":8072,"isOffset":false,"isSlot":false,"src":"7668:7:18","valueSize":1}],"id":8079,"nodeType":"InlineAssembly","src":"7568:413:18"},{"expression":{"hexValue":"74727565","id":8080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7997:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8078,"id":8081,"nodeType":"Return","src":"7990:11:18"}]},"documentation":{"id":8070,"nodeType":"StructuredDocumentation","src":"7310:120:18","text":"@dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Emits a {Approval} event."},"functionSelector":"095ea7b3","id":8083,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"7444:7:18","nodeType":"FunctionDefinition","parameters":{"id":8075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8072,"mutability":"mutable","name":"spender","nameLocation":"7460:7:18","nodeType":"VariableDeclaration","scope":8083,"src":"7452:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8071,"name":"address","nodeType":"ElementaryTypeName","src":"7452:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8074,"mutability":"mutable","name":"amount","nameLocation":"7477:6:18","nodeType":"VariableDeclaration","scope":8083,"src":"7469:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8073,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7451:33:18"},"returnParameters":{"id":8078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8083,"src":"7509:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8076,"name":"bool","nodeType":"ElementaryTypeName","src":"7509:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7508:6:18"},"scope":8355,"src":"7435:573:18","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8110,"nodeType":"Block","src":"8271:1330:18","statements":[{"expression":{"arguments":[{"expression":{"id":8094,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8302:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8306:6:18","memberName":"sender","nodeType":"MemberAccess","src":"8302:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8096,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"8314:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8097,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8088,"src":"8318:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8093,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"8281:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8281:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8099,"nodeType":"ExpressionStatement","src":"8281:44:18"},{"AST":{"nativeSrc":"8387:1134:18","nodeType":"YulBlock","src":"8387:1134:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8468:4:18","nodeType":"YulLiteral","src":"8468:4:18","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"8474:18:18","nodeType":"YulIdentifier","src":"8474:18:18"}],"functionName":{"name":"mstore","nativeSrc":"8461:6:18","nodeType":"YulIdentifier","src":"8461:6:18"},"nativeSrc":"8461:32:18","nodeType":"YulFunctionCall","src":"8461:32:18"},"nativeSrc":"8461:32:18","nodeType":"YulExpressionStatement","src":"8461:32:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8513:4:18","nodeType":"YulLiteral","src":"8513:4:18","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"8519:6:18","nodeType":"YulIdentifier","src":"8519:6:18"},"nativeSrc":"8519:8:18","nodeType":"YulFunctionCall","src":"8519:8:18"}],"functionName":{"name":"mstore","nativeSrc":"8506:6:18","nodeType":"YulIdentifier","src":"8506:6:18"},"nativeSrc":"8506:22:18","nodeType":"YulFunctionCall","src":"8506:22:18"},"nativeSrc":"8506:22:18","nodeType":"YulExpressionStatement","src":"8506:22:18"},{"nativeSrc":"8541:44:18","nodeType":"YulVariableDeclaration","src":"8541:44:18","value":{"arguments":[{"kind":"number","nativeSrc":"8574:4:18","nodeType":"YulLiteral","src":"8574:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"8580:4:18","nodeType":"YulLiteral","src":"8580:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8564:9:18","nodeType":"YulIdentifier","src":"8564:9:18"},"nativeSrc":"8564:21:18","nodeType":"YulFunctionCall","src":"8564:21:18"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"8545:15:18","nodeType":"YulTypedName","src":"8545:15:18","type":""}]},{"nativeSrc":"8598:41:18","nodeType":"YulVariableDeclaration","src":"8598:41:18","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"8623:15:18","nodeType":"YulIdentifier","src":"8623:15:18"}],"functionName":{"name":"sload","nativeSrc":"8617:5:18","nodeType":"YulIdentifier","src":"8617:5:18"},"nativeSrc":"8617:22:18","nodeType":"YulFunctionCall","src":"8617:22:18"},"variables":[{"name":"fromBalance","nativeSrc":"8602:11:18","nodeType":"YulTypedName","src":"8602:11:18","type":""}]},{"body":{"nativeSrc":"8726:119:18","nodeType":"YulBlock","src":"8726:119:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8751:4:18","nodeType":"YulLiteral","src":"8751:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8757:10:18","nodeType":"YulLiteral","src":"8757:10:18","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"8744:6:18","nodeType":"YulIdentifier","src":"8744:6:18"},"nativeSrc":"8744:24:18","nodeType":"YulFunctionCall","src":"8744:24:18"},"nativeSrc":"8744:24:18","nodeType":"YulExpressionStatement","src":"8744:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8820:4:18","nodeType":"YulLiteral","src":"8820:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8826:4:18","nodeType":"YulLiteral","src":"8826:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8813:6:18","nodeType":"YulIdentifier","src":"8813:6:18"},"nativeSrc":"8813:18:18","nodeType":"YulFunctionCall","src":"8813:18:18"},"nativeSrc":"8813:18:18","nodeType":"YulExpressionStatement","src":"8813:18:18"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"8705:6:18","nodeType":"YulIdentifier","src":"8705:6:18"},{"name":"fromBalance","nativeSrc":"8713:11:18","nodeType":"YulIdentifier","src":"8713:11:18"}],"functionName":{"name":"gt","nativeSrc":"8702:2:18","nodeType":"YulIdentifier","src":"8702:2:18"},"nativeSrc":"8702:23:18","nodeType":"YulFunctionCall","src":"8702:23:18"},"nativeSrc":"8699:146:18","nodeType":"YulIf","src":"8699:146:18"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"8920:15:18","nodeType":"YulIdentifier","src":"8920:15:18"},{"arguments":[{"name":"fromBalance","nativeSrc":"8941:11:18","nodeType":"YulIdentifier","src":"8941:11:18"},{"name":"amount","nativeSrc":"8954:6:18","nodeType":"YulIdentifier","src":"8954:6:18"}],"functionName":{"name":"sub","nativeSrc":"8937:3:18","nodeType":"YulIdentifier","src":"8937:3:18"},"nativeSrc":"8937:24:18","nodeType":"YulFunctionCall","src":"8937:24:18"}],"functionName":{"name":"sstore","nativeSrc":"8913:6:18","nodeType":"YulIdentifier","src":"8913:6:18"},"nativeSrc":"8913:49:18","nodeType":"YulFunctionCall","src":"8913:49:18"},"nativeSrc":"8913:49:18","nodeType":"YulExpressionStatement","src":"8913:49:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9031:4:18","nodeType":"YulLiteral","src":"9031:4:18","type":"","value":"0x00"},{"name":"to","nativeSrc":"9037:2:18","nodeType":"YulIdentifier","src":"9037:2:18"}],"functionName":{"name":"mstore","nativeSrc":"9024:6:18","nodeType":"YulIdentifier","src":"9024:6:18"},"nativeSrc":"9024:16:18","nodeType":"YulFunctionCall","src":"9024:16:18"},"nativeSrc":"9024:16:18","nodeType":"YulExpressionStatement","src":"9024:16:18"},{"nativeSrc":"9053:42:18","nodeType":"YulVariableDeclaration","src":"9053:42:18","value":{"arguments":[{"kind":"number","nativeSrc":"9084:4:18","nodeType":"YulLiteral","src":"9084:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9090:4:18","nodeType":"YulLiteral","src":"9090:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9074:9:18","nodeType":"YulIdentifier","src":"9074:9:18"},"nativeSrc":"9074:21:18","nodeType":"YulFunctionCall","src":"9074:21:18"},"variables":[{"name":"toBalanceSlot","nativeSrc":"9057:13:18","nodeType":"YulTypedName","src":"9057:13:18","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"9299:13:18","nodeType":"YulIdentifier","src":"9299:13:18"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"9324:13:18","nodeType":"YulIdentifier","src":"9324:13:18"}],"functionName":{"name":"sload","nativeSrc":"9318:5:18","nodeType":"YulIdentifier","src":"9318:5:18"},"nativeSrc":"9318:20:18","nodeType":"YulFunctionCall","src":"9318:20:18"},{"name":"amount","nativeSrc":"9340:6:18","nodeType":"YulIdentifier","src":"9340:6:18"}],"functionName":{"name":"add","nativeSrc":"9314:3:18","nodeType":"YulIdentifier","src":"9314:3:18"},"nativeSrc":"9314:33:18","nodeType":"YulFunctionCall","src":"9314:33:18"}],"functionName":{"name":"sstore","nativeSrc":"9292:6:18","nodeType":"YulIdentifier","src":"9292:6:18"},"nativeSrc":"9292:56:18","nodeType":"YulFunctionCall","src":"9292:56:18"},"nativeSrc":"9292:56:18","nodeType":"YulExpressionStatement","src":"9292:56:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9410:4:18","nodeType":"YulLiteral","src":"9410:4:18","type":"","value":"0x20"},{"name":"amount","nativeSrc":"9416:6:18","nodeType":"YulIdentifier","src":"9416:6:18"}],"functionName":{"name":"mstore","nativeSrc":"9403:6:18","nodeType":"YulIdentifier","src":"9403:6:18"},"nativeSrc":"9403:20:18","nodeType":"YulFunctionCall","src":"9403:20:18"},"nativeSrc":"9403:20:18","nodeType":"YulExpressionStatement","src":"9403:20:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9441:4:18","nodeType":"YulLiteral","src":"9441:4:18","type":"","value":"0x20"},{"kind":"number","nativeSrc":"9447:4:18","nodeType":"YulLiteral","src":"9447:4:18","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"9453:25:18","nodeType":"YulIdentifier","src":"9453:25:18"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"9480:6:18","nodeType":"YulIdentifier","src":"9480:6:18"},"nativeSrc":"9480:8:18","nodeType":"YulFunctionCall","src":"9480:8:18"},{"arguments":[{"kind":"number","nativeSrc":"9494:2:18","nodeType":"YulLiteral","src":"9494:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"9504:4:18","nodeType":"YulLiteral","src":"9504:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"9498:5:18","nodeType":"YulIdentifier","src":"9498:5:18"},"nativeSrc":"9498:11:18","nodeType":"YulFunctionCall","src":"9498:11:18"}],"functionName":{"name":"shr","nativeSrc":"9490:3:18","nodeType":"YulIdentifier","src":"9490:3:18"},"nativeSrc":"9490:20:18","nodeType":"YulFunctionCall","src":"9490:20:18"}],"functionName":{"name":"log3","nativeSrc":"9436:4:18","nodeType":"YulIdentifier","src":"9436:4:18"},"nativeSrc":"9436:75:18","nodeType":"YulFunctionCall","src":"9436:75:18"},"nativeSrc":"9436:75:18","nodeType":"YulExpressionStatement","src":"9436:75:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7994,"isOffset":false,"isSlot":false,"src":"8474:18:18","valueSize":1},{"declaration":7982,"isOffset":false,"isSlot":false,"src":"9453:25:18","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"8705:6:18","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"8954:6:18","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"9340:6:18","valueSize":1},{"declaration":8088,"isOffset":false,"isSlot":false,"src":"9416:6:18","valueSize":1},{"declaration":8086,"isOffset":false,"isSlot":false,"src":"9037:2:18","valueSize":1}],"id":8100,"nodeType":"InlineAssembly","src":"8378:1143:18"},{"expression":{"arguments":[{"expression":{"id":8102,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9550:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9554:6:18","memberName":"sender","nodeType":"MemberAccess","src":"9550:10:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8104,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8086,"src":"9562:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8105,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8088,"src":"9566:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8101,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"9530:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9530:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8107,"nodeType":"ExpressionStatement","src":"9530:43:18"},{"expression":{"hexValue":"74727565","id":8108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9590:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8092,"id":8109,"nodeType":"Return","src":"9583:11:18"}]},"documentation":{"id":8084,"nodeType":"StructuredDocumentation","src":"8014:176:18","text":"@dev Transfer `amount` tokens from the caller to `to`.\n Requirements:\n - `from` must at least have `amount`.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":8111,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"8204:8:18","nodeType":"FunctionDefinition","parameters":{"id":8089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8086,"mutability":"mutable","name":"to","nameLocation":"8221:2:18","nodeType":"VariableDeclaration","scope":8111,"src":"8213:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8085,"name":"address","nodeType":"ElementaryTypeName","src":"8213:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8088,"mutability":"mutable","name":"amount","nameLocation":"8233:6:18","nodeType":"VariableDeclaration","scope":8111,"src":"8225:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8087,"name":"uint256","nodeType":"ElementaryTypeName","src":"8225:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8212:28:18"},"returnParameters":{"id":8092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8111,"src":"8265:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8090,"name":"bool","nodeType":"ElementaryTypeName","src":"8265:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8264:6:18"},"scope":8355,"src":"8195:1406:18","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8138,"nodeType":"Block","src":"10063:2097:18","statements":[{"expression":{"arguments":[{"id":8124,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8114,"src":"10094:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8125,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8116,"src":"10100:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8126,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8118,"src":"10104:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8123,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"10073:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10073:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8128,"nodeType":"ExpressionStatement","src":"10073:38:18"},{"AST":{"nativeSrc":"10173:1913:18","nodeType":"YulBlock","src":"10173:1913:18","statements":[{"nativeSrc":"10187:26:18","nodeType":"YulVariableDeclaration","src":"10187:26:18","value":{"arguments":[{"kind":"number","nativeSrc":"10204:2:18","nodeType":"YulLiteral","src":"10204:2:18","type":"","value":"96"},{"name":"from","nativeSrc":"10208:4:18","nodeType":"YulIdentifier","src":"10208:4:18"}],"functionName":{"name":"shl","nativeSrc":"10200:3:18","nodeType":"YulIdentifier","src":"10200:3:18"},"nativeSrc":"10200:13:18","nodeType":"YulFunctionCall","src":"10200:13:18"},"variables":[{"name":"from_","nativeSrc":"10191:5:18","nodeType":"YulTypedName","src":"10191:5:18","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10295:4:18","nodeType":"YulLiteral","src":"10295:4:18","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10301:6:18","nodeType":"YulIdentifier","src":"10301:6:18"},"nativeSrc":"10301:8:18","nodeType":"YulFunctionCall","src":"10301:8:18"}],"functionName":{"name":"mstore","nativeSrc":"10288:6:18","nodeType":"YulIdentifier","src":"10288:6:18"},"nativeSrc":"10288:22:18","nodeType":"YulFunctionCall","src":"10288:22:18"},"nativeSrc":"10288:22:18","nodeType":"YulExpressionStatement","src":"10288:22:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10330:4:18","nodeType":"YulLiteral","src":"10330:4:18","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"10339:5:18","nodeType":"YulIdentifier","src":"10339:5:18"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"10346:20:18","nodeType":"YulIdentifier","src":"10346:20:18"}],"functionName":{"name":"or","nativeSrc":"10336:2:18","nodeType":"YulIdentifier","src":"10336:2:18"},"nativeSrc":"10336:31:18","nodeType":"YulFunctionCall","src":"10336:31:18"}],"functionName":{"name":"mstore","nativeSrc":"10323:6:18","nodeType":"YulIdentifier","src":"10323:6:18"},"nativeSrc":"10323:45:18","nodeType":"YulFunctionCall","src":"10323:45:18"},"nativeSrc":"10323:45:18","nodeType":"YulExpressionStatement","src":"10323:45:18"},{"nativeSrc":"10381:42:18","nodeType":"YulVariableDeclaration","src":"10381:42:18","value":{"arguments":[{"kind":"number","nativeSrc":"10412:4:18","nodeType":"YulLiteral","src":"10412:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10418:4:18","nodeType":"YulLiteral","src":"10418:4:18","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"10402:9:18","nodeType":"YulIdentifier","src":"10402:9:18"},"nativeSrc":"10402:21:18","nodeType":"YulFunctionCall","src":"10402:21:18"},"variables":[{"name":"allowanceSlot","nativeSrc":"10385:13:18","nodeType":"YulTypedName","src":"10385:13:18","type":""}]},{"nativeSrc":"10436:38:18","nodeType":"YulVariableDeclaration","src":"10436:38:18","value":{"arguments":[{"name":"allowanceSlot","nativeSrc":"10460:13:18","nodeType":"YulIdentifier","src":"10460:13:18"}],"functionName":{"name":"sload","nativeSrc":"10454:5:18","nodeType":"YulIdentifier","src":"10454:5:18"},"nativeSrc":"10454:20:18","nodeType":"YulFunctionCall","src":"10454:20:18"},"variables":[{"name":"allowance_","nativeSrc":"10440:10:18","nodeType":"YulTypedName","src":"10440:10:18","type":""}]},{"body":{"nativeSrc":"10575:396:18","nodeType":"YulBlock","src":"10575:396:18","statements":[{"body":{"nativeSrc":"10700:133:18","nodeType":"YulBlock","src":"10700:133:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10729:4:18","nodeType":"YulLiteral","src":"10729:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10735:10:18","nodeType":"YulLiteral","src":"10735:10:18","type":"","value":"0x13be252b"}],"functionName":{"name":"mstore","nativeSrc":"10722:6:18","nodeType":"YulIdentifier","src":"10722:6:18"},"nativeSrc":"10722:24:18","nodeType":"YulFunctionCall","src":"10722:24:18"},"nativeSrc":"10722:24:18","nodeType":"YulExpressionStatement","src":"10722:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10804:4:18","nodeType":"YulLiteral","src":"10804:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10810:4:18","nodeType":"YulLiteral","src":"10810:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10797:6:18","nodeType":"YulIdentifier","src":"10797:6:18"},"nativeSrc":"10797:18:18","nodeType":"YulFunctionCall","src":"10797:18:18"},"nativeSrc":"10797:18:18","nodeType":"YulExpressionStatement","src":"10797:18:18"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"10680:6:18","nodeType":"YulIdentifier","src":"10680:6:18"},{"name":"allowance_","nativeSrc":"10688:10:18","nodeType":"YulIdentifier","src":"10688:10:18"}],"functionName":{"name":"gt","nativeSrc":"10677:2:18","nodeType":"YulIdentifier","src":"10677:2:18"},"nativeSrc":"10677:22:18","nodeType":"YulFunctionCall","src":"10677:22:18"},"nativeSrc":"10674:159:18","nodeType":"YulIf","src":"10674:159:18"},{"expression":{"arguments":[{"name":"allowanceSlot","nativeSrc":"10918:13:18","nodeType":"YulIdentifier","src":"10918:13:18"},{"arguments":[{"name":"allowance_","nativeSrc":"10937:10:18","nodeType":"YulIdentifier","src":"10937:10:18"},{"name":"amount","nativeSrc":"10949:6:18","nodeType":"YulIdentifier","src":"10949:6:18"}],"functionName":{"name":"sub","nativeSrc":"10933:3:18","nodeType":"YulIdentifier","src":"10933:3:18"},"nativeSrc":"10933:23:18","nodeType":"YulFunctionCall","src":"10933:23:18"}],"functionName":{"name":"sstore","nativeSrc":"10911:6:18","nodeType":"YulIdentifier","src":"10911:6:18"},"nativeSrc":"10911:46:18","nodeType":"YulFunctionCall","src":"10911:46:18"},"nativeSrc":"10911:46:18","nodeType":"YulExpressionStatement","src":"10911:46:18"}]},"condition":{"arguments":[{"name":"allowance_","nativeSrc":"10560:10:18","nodeType":"YulIdentifier","src":"10560:10:18"},{"kind":"number","nativeSrc":"10572:1:18","nodeType":"YulLiteral","src":"10572:1:18","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10556:3:18","nodeType":"YulIdentifier","src":"10556:3:18"},"nativeSrc":"10556:18:18","nodeType":"YulFunctionCall","src":"10556:18:18"},"nativeSrc":"10553:418:18","nodeType":"YulIf","src":"10553:418:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11051:4:18","nodeType":"YulLiteral","src":"11051:4:18","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"11060:5:18","nodeType":"YulIdentifier","src":"11060:5:18"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"11067:18:18","nodeType":"YulIdentifier","src":"11067:18:18"}],"functionName":{"name":"or","nativeSrc":"11057:2:18","nodeType":"YulIdentifier","src":"11057:2:18"},"nativeSrc":"11057:29:18","nodeType":"YulFunctionCall","src":"11057:29:18"}],"functionName":{"name":"mstore","nativeSrc":"11044:6:18","nodeType":"YulIdentifier","src":"11044:6:18"},"nativeSrc":"11044:43:18","nodeType":"YulFunctionCall","src":"11044:43:18"},"nativeSrc":"11044:43:18","nodeType":"YulExpressionStatement","src":"11044:43:18"},{"nativeSrc":"11100:44:18","nodeType":"YulVariableDeclaration","src":"11100:44:18","value":{"arguments":[{"kind":"number","nativeSrc":"11133:4:18","nodeType":"YulLiteral","src":"11133:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"11139:4:18","nodeType":"YulLiteral","src":"11139:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11123:9:18","nodeType":"YulIdentifier","src":"11123:9:18"},"nativeSrc":"11123:21:18","nodeType":"YulFunctionCall","src":"11123:21:18"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"11104:15:18","nodeType":"YulTypedName","src":"11104:15:18","type":""}]},{"nativeSrc":"11157:41:18","nodeType":"YulVariableDeclaration","src":"11157:41:18","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"11182:15:18","nodeType":"YulIdentifier","src":"11182:15:18"}],"functionName":{"name":"sload","nativeSrc":"11176:5:18","nodeType":"YulIdentifier","src":"11176:5:18"},"nativeSrc":"11176:22:18","nodeType":"YulFunctionCall","src":"11176:22:18"},"variables":[{"name":"fromBalance","nativeSrc":"11161:11:18","nodeType":"YulTypedName","src":"11161:11:18","type":""}]},{"body":{"nativeSrc":"11285:119:18","nodeType":"YulBlock","src":"11285:119:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11310:4:18","nodeType":"YulLiteral","src":"11310:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11316:10:18","nodeType":"YulLiteral","src":"11316:10:18","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"11303:6:18","nodeType":"YulIdentifier","src":"11303:6:18"},"nativeSrc":"11303:24:18","nodeType":"YulFunctionCall","src":"11303:24:18"},"nativeSrc":"11303:24:18","nodeType":"YulExpressionStatement","src":"11303:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11379:4:18","nodeType":"YulLiteral","src":"11379:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11385:4:18","nodeType":"YulLiteral","src":"11385:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11372:6:18","nodeType":"YulIdentifier","src":"11372:6:18"},"nativeSrc":"11372:18:18","nodeType":"YulFunctionCall","src":"11372:18:18"},"nativeSrc":"11372:18:18","nodeType":"YulExpressionStatement","src":"11372:18:18"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"11264:6:18","nodeType":"YulIdentifier","src":"11264:6:18"},{"name":"fromBalance","nativeSrc":"11272:11:18","nodeType":"YulIdentifier","src":"11272:11:18"}],"functionName":{"name":"gt","nativeSrc":"11261:2:18","nodeType":"YulIdentifier","src":"11261:2:18"},"nativeSrc":"11261:23:18","nodeType":"YulFunctionCall","src":"11261:23:18"},"nativeSrc":"11258:146:18","nodeType":"YulIf","src":"11258:146:18"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"11479:15:18","nodeType":"YulIdentifier","src":"11479:15:18"},{"arguments":[{"name":"fromBalance","nativeSrc":"11500:11:18","nodeType":"YulIdentifier","src":"11500:11:18"},{"name":"amount","nativeSrc":"11513:6:18","nodeType":"YulIdentifier","src":"11513:6:18"}],"functionName":{"name":"sub","nativeSrc":"11496:3:18","nodeType":"YulIdentifier","src":"11496:3:18"},"nativeSrc":"11496:24:18","nodeType":"YulFunctionCall","src":"11496:24:18"}],"functionName":{"name":"sstore","nativeSrc":"11472:6:18","nodeType":"YulIdentifier","src":"11472:6:18"},"nativeSrc":"11472:49:18","nodeType":"YulFunctionCall","src":"11472:49:18"},"nativeSrc":"11472:49:18","nodeType":"YulExpressionStatement","src":"11472:49:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11590:4:18","nodeType":"YulLiteral","src":"11590:4:18","type":"","value":"0x00"},{"name":"to","nativeSrc":"11596:2:18","nodeType":"YulIdentifier","src":"11596:2:18"}],"functionName":{"name":"mstore","nativeSrc":"11583:6:18","nodeType":"YulIdentifier","src":"11583:6:18"},"nativeSrc":"11583:16:18","nodeType":"YulFunctionCall","src":"11583:16:18"},"nativeSrc":"11583:16:18","nodeType":"YulExpressionStatement","src":"11583:16:18"},{"nativeSrc":"11612:42:18","nodeType":"YulVariableDeclaration","src":"11612:42:18","value":{"arguments":[{"kind":"number","nativeSrc":"11643:4:18","nodeType":"YulLiteral","src":"11643:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"11649:4:18","nodeType":"YulLiteral","src":"11649:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11633:9:18","nodeType":"YulIdentifier","src":"11633:9:18"},"nativeSrc":"11633:21:18","nodeType":"YulFunctionCall","src":"11633:21:18"},"variables":[{"name":"toBalanceSlot","nativeSrc":"11616:13:18","nodeType":"YulTypedName","src":"11616:13:18","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"11858:13:18","nodeType":"YulIdentifier","src":"11858:13:18"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"11883:13:18","nodeType":"YulIdentifier","src":"11883:13:18"}],"functionName":{"name":"sload","nativeSrc":"11877:5:18","nodeType":"YulIdentifier","src":"11877:5:18"},"nativeSrc":"11877:20:18","nodeType":"YulFunctionCall","src":"11877:20:18"},{"name":"amount","nativeSrc":"11899:6:18","nodeType":"YulIdentifier","src":"11899:6:18"}],"functionName":{"name":"add","nativeSrc":"11873:3:18","nodeType":"YulIdentifier","src":"11873:3:18"},"nativeSrc":"11873:33:18","nodeType":"YulFunctionCall","src":"11873:33:18"}],"functionName":{"name":"sstore","nativeSrc":"11851:6:18","nodeType":"YulIdentifier","src":"11851:6:18"},"nativeSrc":"11851:56:18","nodeType":"YulFunctionCall","src":"11851:56:18"},"nativeSrc":"11851:56:18","nodeType":"YulExpressionStatement","src":"11851:56:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11969:4:18","nodeType":"YulLiteral","src":"11969:4:18","type":"","value":"0x20"},{"name":"amount","nativeSrc":"11975:6:18","nodeType":"YulIdentifier","src":"11975:6:18"}],"functionName":{"name":"mstore","nativeSrc":"11962:6:18","nodeType":"YulIdentifier","src":"11962:6:18"},"nativeSrc":"11962:20:18","nodeType":"YulFunctionCall","src":"11962:20:18"},"nativeSrc":"11962:20:18","nodeType":"YulExpressionStatement","src":"11962:20:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12000:4:18","nodeType":"YulLiteral","src":"12000:4:18","type":"","value":"0x20"},{"kind":"number","nativeSrc":"12006:4:18","nodeType":"YulLiteral","src":"12006:4:18","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"12012:25:18","nodeType":"YulIdentifier","src":"12012:25:18"},{"arguments":[{"kind":"number","nativeSrc":"12043:2:18","nodeType":"YulLiteral","src":"12043:2:18","type":"","value":"96"},{"name":"from_","nativeSrc":"12047:5:18","nodeType":"YulIdentifier","src":"12047:5:18"}],"functionName":{"name":"shr","nativeSrc":"12039:3:18","nodeType":"YulIdentifier","src":"12039:3:18"},"nativeSrc":"12039:14:18","nodeType":"YulFunctionCall","src":"12039:14:18"},{"arguments":[{"kind":"number","nativeSrc":"12059:2:18","nodeType":"YulLiteral","src":"12059:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"12069:4:18","nodeType":"YulLiteral","src":"12069:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"12063:5:18","nodeType":"YulIdentifier","src":"12063:5:18"},"nativeSrc":"12063:11:18","nodeType":"YulFunctionCall","src":"12063:11:18"}],"functionName":{"name":"shr","nativeSrc":"12055:3:18","nodeType":"YulIdentifier","src":"12055:3:18"},"nativeSrc":"12055:20:18","nodeType":"YulFunctionCall","src":"12055:20:18"}],"functionName":{"name":"log3","nativeSrc":"11995:4:18","nodeType":"YulIdentifier","src":"11995:4:18"},"nativeSrc":"11995:81:18","nodeType":"YulFunctionCall","src":"11995:81:18"},"nativeSrc":"11995:81:18","nodeType":"YulExpressionStatement","src":"11995:81:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7998,"isOffset":false,"isSlot":false,"src":"10346:20:18","valueSize":1},{"declaration":7994,"isOffset":false,"isSlot":false,"src":"11067:18:18","valueSize":1},{"declaration":7982,"isOffset":false,"isSlot":false,"src":"12012:25:18","valueSize":1},{"declaration":8118,"isOffset":false,"isSlot":false,"src":"10680:6:18","valueSize":1},{"declaration":8118,"isOffset":false,"isSlot":false,"src":"10949:6:18","valueSize":1},{"declaration":8118,"isOffset":false,"isSlot":false,"src":"11264:6:18","valueSize":1},{"declaration":8118,"isOffset":false,"isSlot":false,"src":"11513:6:18","valueSize":1},{"declaration":8118,"isOffset":false,"isSlot":false,"src":"11899:6:18","valueSize":1},{"declaration":8118,"isOffset":false,"isSlot":false,"src":"11975:6:18","valueSize":1},{"declaration":8114,"isOffset":false,"isSlot":false,"src":"10208:4:18","valueSize":1},{"declaration":8116,"isOffset":false,"isSlot":false,"src":"11596:2:18","valueSize":1}],"id":8129,"nodeType":"InlineAssembly","src":"10164:1922:18"},{"expression":{"arguments":[{"id":8131,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8114,"src":"12115:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8132,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8116,"src":"12121:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8133,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8118,"src":"12125:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8130,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"12095:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12095:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8135,"nodeType":"ExpressionStatement","src":"12095:37:18"},{"expression":{"hexValue":"74727565","id":8136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12149:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8122,"id":8137,"nodeType":"Return","src":"12142:11:18"}]},"documentation":{"id":8112,"nodeType":"StructuredDocumentation","src":"9607:357:18","text":"@dev Transfers `amount` tokens from `from` to `to`.\n Note: Does not update the allowance if it is the maximum uint256 value.\n Requirements:\n - `from` must at least have `amount`.\n - The caller must have at least `amount` of allowance to transfer the tokens of `from`.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8139,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"9978:12:18","nodeType":"FunctionDefinition","parameters":{"id":8119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8114,"mutability":"mutable","name":"from","nameLocation":"9999:4:18","nodeType":"VariableDeclaration","scope":8139,"src":"9991:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8113,"name":"address","nodeType":"ElementaryTypeName","src":"9991:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8116,"mutability":"mutable","name":"to","nameLocation":"10013:2:18","nodeType":"VariableDeclaration","scope":8139,"src":"10005:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8115,"name":"address","nodeType":"ElementaryTypeName","src":"10005:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8118,"mutability":"mutable","name":"amount","nameLocation":"10025:6:18","nodeType":"VariableDeclaration","scope":8139,"src":"10017:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8117,"name":"uint256","nodeType":"ElementaryTypeName","src":"10017:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9990:42:18"},"returnParameters":{"id":8122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8139,"src":"10057:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8120,"name":"bool","nodeType":"ElementaryTypeName","src":"10057:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10056:6:18"},"scope":8355,"src":"9969:2191:18","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8145,"nodeType":"Block","src":"12667:2:18","statements":[]},"documentation":{"id":8140,"nodeType":"StructuredDocumentation","src":"12449:137:18","text":"@dev For more performance, override to return the constant value\n of `keccak256(bytes(name()))` if `name()` will never change."},"id":8146,"implemented":true,"kind":"function","modifiers":[],"name":"_constantNameHash","nameLocation":"12600:17:18","nodeType":"FunctionDefinition","parameters":{"id":8141,"nodeType":"ParameterList","parameters":[],"src":"12617:2:18"},"returnParameters":{"id":8144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8143,"mutability":"mutable","name":"result","nameLocation":"12659:6:18","nodeType":"VariableDeclaration","scope":8146,"src":"12651:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12651:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12650:16:18"},"scope":8355,"src":"12591:78:18","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8155,"nodeType":"Block","src":"12876:264:18","statements":[{"AST":{"nativeSrc":"12938:196:18","nodeType":"YulBlock","src":"12938:196:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13017:4:18","nodeType":"YulLiteral","src":"13017:4:18","type":"","value":"0x0c"},{"name":"_NONCES_SLOT_SEED","nativeSrc":"13023:17:18","nodeType":"YulIdentifier","src":"13023:17:18"}],"functionName":{"name":"mstore","nativeSrc":"13010:6:18","nodeType":"YulIdentifier","src":"13010:6:18"},"nativeSrc":"13010:31:18","nodeType":"YulFunctionCall","src":"13010:31:18"},"nativeSrc":"13010:31:18","nodeType":"YulExpressionStatement","src":"13010:31:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13061:4:18","nodeType":"YulLiteral","src":"13061:4:18","type":"","value":"0x00"},{"name":"owner","nativeSrc":"13067:5:18","nodeType":"YulIdentifier","src":"13067:5:18"}],"functionName":{"name":"mstore","nativeSrc":"13054:6:18","nodeType":"YulIdentifier","src":"13054:6:18"},"nativeSrc":"13054:19:18","nodeType":"YulFunctionCall","src":"13054:19:18"},"nativeSrc":"13054:19:18","nodeType":"YulExpressionStatement","src":"13054:19:18"},{"nativeSrc":"13086:38:18","nodeType":"YulAssignment","src":"13086:38:18","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13112:4:18","nodeType":"YulLiteral","src":"13112:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"13118:4:18","nodeType":"YulLiteral","src":"13118:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"13102:9:18","nodeType":"YulIdentifier","src":"13102:9:18"},"nativeSrc":"13102:21:18","nodeType":"YulFunctionCall","src":"13102:21:18"}],"functionName":{"name":"sload","nativeSrc":"13096:5:18","nodeType":"YulIdentifier","src":"13096:5:18"},"nativeSrc":"13096:28:18","nodeType":"YulFunctionCall","src":"13096:28:18"},"variableNames":[{"name":"result","nativeSrc":"13086:6:18","nodeType":"YulIdentifier","src":"13086:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8002,"isOffset":false,"isSlot":false,"src":"13023:17:18","valueSize":1},{"declaration":8149,"isOffset":false,"isSlot":false,"src":"13067:5:18","valueSize":1},{"declaration":8152,"isOffset":false,"isSlot":false,"src":"13086:6:18","valueSize":1}],"id":8154,"nodeType":"InlineAssembly","src":"12929:205:18"}]},"documentation":{"id":8147,"nodeType":"StructuredDocumentation","src":"12675:120:18","text":"@dev Returns the current nonce for `owner`.\n This value is used to compute the signature for EIP-2612 permit."},"functionSelector":"7ecebe00","id":8156,"implemented":true,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"12809:6:18","nodeType":"FunctionDefinition","parameters":{"id":8150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8149,"mutability":"mutable","name":"owner","nameLocation":"12824:5:18","nodeType":"VariableDeclaration","scope":8156,"src":"12816:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8148,"name":"address","nodeType":"ElementaryTypeName","src":"12816:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12815:15:18"},"returnParameters":{"id":8153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8152,"mutability":"mutable","name":"result","nameLocation":"12868:6:18","nodeType":"VariableDeclaration","scope":8156,"src":"12860:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8151,"name":"uint256","nodeType":"ElementaryTypeName","src":"12860:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12859:16:18"},"scope":8355,"src":"12800:340:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8197,"nodeType":"Block","src":"13513:3026:18","statements":[{"assignments":[8175],"declarations":[{"constant":false,"id":8175,"mutability":"mutable","name":"nameHash","nameLocation":"13531:8:18","nodeType":"VariableDeclaration","scope":8197,"src":"13523:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13523:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8178,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8176,"name":"_constantNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8146,"src":"13542:17:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":8177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13542:19:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13523:38:18"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8179,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"13669:8:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13689:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13681:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13681:7:18","typeDescriptions":{}}},"id":8183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13681:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13669:22:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8195,"nodeType":"IfStatement","src":"13665:63:18","trueBody":{"expression":{"id":8193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8185,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"13693:8:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8189,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"13720:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":8190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13720:6:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13714:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8187,"name":"bytes","nodeType":"ElementaryTypeName","src":"13714:5:18","typeDescriptions":{}}},"id":8191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13714:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8186,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13704:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13693:35:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8194,"nodeType":"ExpressionStatement","src":"13693:35:18"}},{"AST":{"nativeSrc":"13790:2743:18","nodeType":"YulBlock","src":"13790:2743:18","statements":[{"body":{"nativeSrc":"13906:113:18","nodeType":"YulBlock","src":"13906:113:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13931:4:18","nodeType":"YulLiteral","src":"13931:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13937:10:18","nodeType":"YulLiteral","src":"13937:10:18","type":"","value":"0x1a15a3cc"}],"functionName":{"name":"mstore","nativeSrc":"13924:6:18","nodeType":"YulIdentifier","src":"13924:6:18"},"nativeSrc":"13924:24:18","nodeType":"YulFunctionCall","src":"13924:24:18"},"nativeSrc":"13924:24:18","nodeType":"YulExpressionStatement","src":"13924:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13994:4:18","nodeType":"YulLiteral","src":"13994:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14000:4:18","nodeType":"YulLiteral","src":"14000:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13987:6:18","nodeType":"YulIdentifier","src":"13987:6:18"},"nativeSrc":"13987:18:18","nodeType":"YulFunctionCall","src":"13987:18:18"},"nativeSrc":"13987:18:18","nodeType":"YulExpressionStatement","src":"13987:18:18"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"timestamp","nativeSrc":"13883:9:18","nodeType":"YulIdentifier","src":"13883:9:18"},"nativeSrc":"13883:11:18","nodeType":"YulFunctionCall","src":"13883:11:18"},{"name":"deadline","nativeSrc":"13896:8:18","nodeType":"YulIdentifier","src":"13896:8:18"}],"functionName":{"name":"gt","nativeSrc":"13880:2:18","nodeType":"YulIdentifier","src":"13880:2:18"},"nativeSrc":"13880:25:18","nodeType":"YulFunctionCall","src":"13880:25:18"},"nativeSrc":"13877:142:18","nodeType":"YulIf","src":"13877:142:18"},{"nativeSrc":"14032:20:18","nodeType":"YulVariableDeclaration","src":"14032:20:18","value":{"arguments":[{"kind":"number","nativeSrc":"14047:4:18","nodeType":"YulLiteral","src":"14047:4:18","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14041:5:18","nodeType":"YulIdentifier","src":"14041:5:18"},"nativeSrc":"14041:11:18","nodeType":"YulFunctionCall","src":"14041:11:18"},"variables":[{"name":"m","nativeSrc":"14036:1:18","nodeType":"YulTypedName","src":"14036:1:18","type":""}]},{"nativeSrc":"14138:32:18","nodeType":"YulAssignment","src":"14138:32:18","value":{"arguments":[{"kind":"number","nativeSrc":"14151:2:18","nodeType":"YulLiteral","src":"14151:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14159:2:18","nodeType":"YulLiteral","src":"14159:2:18","type":"","value":"96"},{"name":"owner","nativeSrc":"14163:5:18","nodeType":"YulIdentifier","src":"14163:5:18"}],"functionName":{"name":"shl","nativeSrc":"14155:3:18","nodeType":"YulIdentifier","src":"14155:3:18"},"nativeSrc":"14155:14:18","nodeType":"YulFunctionCall","src":"14155:14:18"}],"functionName":{"name":"shr","nativeSrc":"14147:3:18","nodeType":"YulIdentifier","src":"14147:3:18"},"nativeSrc":"14147:23:18","nodeType":"YulFunctionCall","src":"14147:23:18"},"variableNames":[{"name":"owner","nativeSrc":"14138:5:18","nodeType":"YulIdentifier","src":"14138:5:18"}]},{"nativeSrc":"14183:36:18","nodeType":"YulAssignment","src":"14183:36:18","value":{"arguments":[{"kind":"number","nativeSrc":"14198:2:18","nodeType":"YulLiteral","src":"14198:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14206:2:18","nodeType":"YulLiteral","src":"14206:2:18","type":"","value":"96"},{"name":"spender","nativeSrc":"14210:7:18","nodeType":"YulIdentifier","src":"14210:7:18"}],"functionName":{"name":"shl","nativeSrc":"14202:3:18","nodeType":"YulIdentifier","src":"14202:3:18"},"nativeSrc":"14202:16:18","nodeType":"YulFunctionCall","src":"14202:16:18"}],"functionName":{"name":"shr","nativeSrc":"14194:3:18","nodeType":"YulIdentifier","src":"14194:3:18"},"nativeSrc":"14194:25:18","nodeType":"YulFunctionCall","src":"14194:25:18"},"variableNames":[{"name":"spender","nativeSrc":"14183:7:18","nodeType":"YulIdentifier","src":"14183:7:18"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14297:4:18","nodeType":"YulLiteral","src":"14297:4:18","type":"","value":"0x0e"},{"name":"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX","nativeSrc":"14303:39:18","nodeType":"YulIdentifier","src":"14303:39:18"}],"functionName":{"name":"mstore","nativeSrc":"14290:6:18","nodeType":"YulIdentifier","src":"14290:6:18"},"nativeSrc":"14290:53:18","nodeType":"YulFunctionCall","src":"14290:53:18"},"nativeSrc":"14290:53:18","nodeType":"YulExpressionStatement","src":"14290:53:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14363:4:18","nodeType":"YulLiteral","src":"14363:4:18","type":"","value":"0x00"},{"name":"owner","nativeSrc":"14369:5:18","nodeType":"YulIdentifier","src":"14369:5:18"}],"functionName":{"name":"mstore","nativeSrc":"14356:6:18","nodeType":"YulIdentifier","src":"14356:6:18"},"nativeSrc":"14356:19:18","nodeType":"YulFunctionCall","src":"14356:19:18"},"nativeSrc":"14356:19:18","nodeType":"YulExpressionStatement","src":"14356:19:18"},{"nativeSrc":"14388:38:18","nodeType":"YulVariableDeclaration","src":"14388:38:18","value":{"arguments":[{"kind":"number","nativeSrc":"14415:4:18","nodeType":"YulLiteral","src":"14415:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"14421:4:18","nodeType":"YulLiteral","src":"14421:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"14405:9:18","nodeType":"YulIdentifier","src":"14405:9:18"},"nativeSrc":"14405:21:18","nodeType":"YulFunctionCall","src":"14405:21:18"},"variables":[{"name":"nonceSlot","nativeSrc":"14392:9:18","nodeType":"YulTypedName","src":"14392:9:18","type":""}]},{"nativeSrc":"14439:34:18","nodeType":"YulVariableDeclaration","src":"14439:34:18","value":{"arguments":[{"name":"nonceSlot","nativeSrc":"14463:9:18","nodeType":"YulIdentifier","src":"14463:9:18"}],"functionName":{"name":"sload","nativeSrc":"14457:5:18","nodeType":"YulIdentifier","src":"14457:5:18"},"nativeSrc":"14457:16:18","nodeType":"YulFunctionCall","src":"14457:16:18"},"variables":[{"name":"nonceValue","nativeSrc":"14443:10:18","nodeType":"YulTypedName","src":"14443:10:18","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"14538:1:18","nodeType":"YulIdentifier","src":"14538:1:18"},{"name":"_DOMAIN_TYPEHASH","nativeSrc":"14541:16:18","nodeType":"YulIdentifier","src":"14541:16:18"}],"functionName":{"name":"mstore","nativeSrc":"14531:6:18","nodeType":"YulIdentifier","src":"14531:6:18"},"nativeSrc":"14531:27:18","nodeType":"YulFunctionCall","src":"14531:27:18"},"nativeSrc":"14531:27:18","nodeType":"YulExpressionStatement","src":"14531:27:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14582:1:18","nodeType":"YulIdentifier","src":"14582:1:18"},{"kind":"number","nativeSrc":"14585:4:18","nodeType":"YulLiteral","src":"14585:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14578:3:18","nodeType":"YulIdentifier","src":"14578:3:18"},"nativeSrc":"14578:12:18","nodeType":"YulFunctionCall","src":"14578:12:18"},{"name":"nameHash","nativeSrc":"14592:8:18","nodeType":"YulIdentifier","src":"14592:8:18"}],"functionName":{"name":"mstore","nativeSrc":"14571:6:18","nodeType":"YulIdentifier","src":"14571:6:18"},"nativeSrc":"14571:30:18","nodeType":"YulFunctionCall","src":"14571:30:18"},"nativeSrc":"14571:30:18","nodeType":"YulExpressionStatement","src":"14571:30:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14625:1:18","nodeType":"YulIdentifier","src":"14625:1:18"},{"kind":"number","nativeSrc":"14628:4:18","nodeType":"YulLiteral","src":"14628:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14621:3:18","nodeType":"YulIdentifier","src":"14621:3:18"},"nativeSrc":"14621:12:18","nodeType":"YulFunctionCall","src":"14621:12:18"},{"name":"_VERSION_HASH","nativeSrc":"14635:13:18","nodeType":"YulIdentifier","src":"14635:13:18"}],"functionName":{"name":"mstore","nativeSrc":"14614:6:18","nodeType":"YulIdentifier","src":"14614:6:18"},"nativeSrc":"14614:35:18","nodeType":"YulFunctionCall","src":"14614:35:18"},"nativeSrc":"14614:35:18","nodeType":"YulExpressionStatement","src":"14614:35:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14673:1:18","nodeType":"YulIdentifier","src":"14673:1:18"},{"kind":"number","nativeSrc":"14676:4:18","nodeType":"YulLiteral","src":"14676:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14669:3:18","nodeType":"YulIdentifier","src":"14669:3:18"},"nativeSrc":"14669:12:18","nodeType":"YulFunctionCall","src":"14669:12:18"},{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"14683:7:18","nodeType":"YulIdentifier","src":"14683:7:18"},"nativeSrc":"14683:9:18","nodeType":"YulFunctionCall","src":"14683:9:18"}],"functionName":{"name":"mstore","nativeSrc":"14662:6:18","nodeType":"YulIdentifier","src":"14662:6:18"},"nativeSrc":"14662:31:18","nodeType":"YulFunctionCall","src":"14662:31:18"},"nativeSrc":"14662:31:18","nodeType":"YulExpressionStatement","src":"14662:31:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14717:1:18","nodeType":"YulIdentifier","src":"14717:1:18"},{"kind":"number","nativeSrc":"14720:4:18","nodeType":"YulLiteral","src":"14720:4:18","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14713:3:18","nodeType":"YulIdentifier","src":"14713:3:18"},"nativeSrc":"14713:12:18","nodeType":"YulFunctionCall","src":"14713:12:18"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"14727:7:18","nodeType":"YulIdentifier","src":"14727:7:18"},"nativeSrc":"14727:9:18","nodeType":"YulFunctionCall","src":"14727:9:18"}],"functionName":{"name":"mstore","nativeSrc":"14706:6:18","nodeType":"YulIdentifier","src":"14706:6:18"},"nativeSrc":"14706:31:18","nodeType":"YulFunctionCall","src":"14706:31:18"},"nativeSrc":"14706:31:18","nodeType":"YulExpressionStatement","src":"14706:31:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14757:4:18","nodeType":"YulLiteral","src":"14757:4:18","type":"","value":"0x2e"},{"arguments":[{"name":"m","nativeSrc":"14773:1:18","nodeType":"YulIdentifier","src":"14773:1:18"},{"kind":"number","nativeSrc":"14776:4:18","nodeType":"YulLiteral","src":"14776:4:18","type":"","value":"0xa0"}],"functionName":{"name":"keccak256","nativeSrc":"14763:9:18","nodeType":"YulIdentifier","src":"14763:9:18"},"nativeSrc":"14763:18:18","nodeType":"YulFunctionCall","src":"14763:18:18"}],"functionName":{"name":"mstore","nativeSrc":"14750:6:18","nodeType":"YulIdentifier","src":"14750:6:18"},"nativeSrc":"14750:32:18","nodeType":"YulFunctionCall","src":"14750:32:18"},"nativeSrc":"14750:32:18","nodeType":"YulExpressionStatement","src":"14750:32:18"},{"expression":{"arguments":[{"name":"m","nativeSrc":"14842:1:18","nodeType":"YulIdentifier","src":"14842:1:18"},{"name":"_PERMIT_TYPEHASH","nativeSrc":"14845:16:18","nodeType":"YulIdentifier","src":"14845:16:18"}],"functionName":{"name":"mstore","nativeSrc":"14835:6:18","nodeType":"YulIdentifier","src":"14835:6:18"},"nativeSrc":"14835:27:18","nodeType":"YulFunctionCall","src":"14835:27:18"},"nativeSrc":"14835:27:18","nodeType":"YulExpressionStatement","src":"14835:27:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14886:1:18","nodeType":"YulIdentifier","src":"14886:1:18"},{"kind":"number","nativeSrc":"14889:4:18","nodeType":"YulLiteral","src":"14889:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14882:3:18","nodeType":"YulIdentifier","src":"14882:3:18"},"nativeSrc":"14882:12:18","nodeType":"YulFunctionCall","src":"14882:12:18"},{"name":"owner","nativeSrc":"14896:5:18","nodeType":"YulIdentifier","src":"14896:5:18"}],"functionName":{"name":"mstore","nativeSrc":"14875:6:18","nodeType":"YulIdentifier","src":"14875:6:18"},"nativeSrc":"14875:27:18","nodeType":"YulFunctionCall","src":"14875:27:18"},"nativeSrc":"14875:27:18","nodeType":"YulExpressionStatement","src":"14875:27:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14926:1:18","nodeType":"YulIdentifier","src":"14926:1:18"},{"kind":"number","nativeSrc":"14929:4:18","nodeType":"YulLiteral","src":"14929:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14922:3:18","nodeType":"YulIdentifier","src":"14922:3:18"},"nativeSrc":"14922:12:18","nodeType":"YulFunctionCall","src":"14922:12:18"},{"name":"spender","nativeSrc":"14936:7:18","nodeType":"YulIdentifier","src":"14936:7:18"}],"functionName":{"name":"mstore","nativeSrc":"14915:6:18","nodeType":"YulIdentifier","src":"14915:6:18"},"nativeSrc":"14915:29:18","nodeType":"YulFunctionCall","src":"14915:29:18"},"nativeSrc":"14915:29:18","nodeType":"YulExpressionStatement","src":"14915:29:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"14968:1:18","nodeType":"YulIdentifier","src":"14968:1:18"},{"kind":"number","nativeSrc":"14971:4:18","nodeType":"YulLiteral","src":"14971:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14964:3:18","nodeType":"YulIdentifier","src":"14964:3:18"},"nativeSrc":"14964:12:18","nodeType":"YulFunctionCall","src":"14964:12:18"},{"name":"value","nativeSrc":"14978:5:18","nodeType":"YulIdentifier","src":"14978:5:18"}],"functionName":{"name":"mstore","nativeSrc":"14957:6:18","nodeType":"YulIdentifier","src":"14957:6:18"},"nativeSrc":"14957:27:18","nodeType":"YulFunctionCall","src":"14957:27:18"},"nativeSrc":"14957:27:18","nodeType":"YulExpressionStatement","src":"14957:27:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15008:1:18","nodeType":"YulIdentifier","src":"15008:1:18"},{"kind":"number","nativeSrc":"15011:4:18","nodeType":"YulLiteral","src":"15011:4:18","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15004:3:18","nodeType":"YulIdentifier","src":"15004:3:18"},"nativeSrc":"15004:12:18","nodeType":"YulFunctionCall","src":"15004:12:18"},{"name":"nonceValue","nativeSrc":"15018:10:18","nodeType":"YulIdentifier","src":"15018:10:18"}],"functionName":{"name":"mstore","nativeSrc":"14997:6:18","nodeType":"YulIdentifier","src":"14997:6:18"},"nativeSrc":"14997:32:18","nodeType":"YulFunctionCall","src":"14997:32:18"},"nativeSrc":"14997:32:18","nodeType":"YulExpressionStatement","src":"14997:32:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15053:1:18","nodeType":"YulIdentifier","src":"15053:1:18"},{"kind":"number","nativeSrc":"15056:4:18","nodeType":"YulLiteral","src":"15056:4:18","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"15049:3:18","nodeType":"YulIdentifier","src":"15049:3:18"},"nativeSrc":"15049:12:18","nodeType":"YulFunctionCall","src":"15049:12:18"},{"name":"deadline","nativeSrc":"15063:8:18","nodeType":"YulIdentifier","src":"15063:8:18"}],"functionName":{"name":"mstore","nativeSrc":"15042:6:18","nodeType":"YulIdentifier","src":"15042:6:18"},"nativeSrc":"15042:30:18","nodeType":"YulFunctionCall","src":"15042:30:18"},"nativeSrc":"15042:30:18","nodeType":"YulExpressionStatement","src":"15042:30:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15092:4:18","nodeType":"YulLiteral","src":"15092:4:18","type":"","value":"0x4e"},{"arguments":[{"name":"m","nativeSrc":"15108:1:18","nodeType":"YulIdentifier","src":"15108:1:18"},{"kind":"number","nativeSrc":"15111:4:18","nodeType":"YulLiteral","src":"15111:4:18","type":"","value":"0xc0"}],"functionName":{"name":"keccak256","nativeSrc":"15098:9:18","nodeType":"YulIdentifier","src":"15098:9:18"},"nativeSrc":"15098:18:18","nodeType":"YulFunctionCall","src":"15098:18:18"}],"functionName":{"name":"mstore","nativeSrc":"15085:6:18","nodeType":"YulIdentifier","src":"15085:6:18"},"nativeSrc":"15085:32:18","nodeType":"YulFunctionCall","src":"15085:32:18"},"nativeSrc":"15085:32:18","nodeType":"YulExpressionStatement","src":"15085:32:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15184:4:18","nodeType":"YulLiteral","src":"15184:4:18","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"15200:4:18","nodeType":"YulLiteral","src":"15200:4:18","type":"","value":"0x2c"},{"kind":"number","nativeSrc":"15206:4:18","nodeType":"YulLiteral","src":"15206:4:18","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nativeSrc":"15190:9:18","nodeType":"YulIdentifier","src":"15190:9:18"},"nativeSrc":"15190:21:18","nodeType":"YulFunctionCall","src":"15190:21:18"}],"functionName":{"name":"mstore","nativeSrc":"15177:6:18","nodeType":"YulIdentifier","src":"15177:6:18"},"nativeSrc":"15177:35:18","nodeType":"YulFunctionCall","src":"15177:35:18"},"nativeSrc":"15177:35:18","nodeType":"YulExpressionStatement","src":"15177:35:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15232:4:18","nodeType":"YulLiteral","src":"15232:4:18","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"15242:4:18","nodeType":"YulLiteral","src":"15242:4:18","type":"","value":"0xff"},{"name":"v","nativeSrc":"15248:1:18","nodeType":"YulIdentifier","src":"15248:1:18"}],"functionName":{"name":"and","nativeSrc":"15238:3:18","nodeType":"YulIdentifier","src":"15238:3:18"},"nativeSrc":"15238:12:18","nodeType":"YulFunctionCall","src":"15238:12:18"}],"functionName":{"name":"mstore","nativeSrc":"15225:6:18","nodeType":"YulIdentifier","src":"15225:6:18"},"nativeSrc":"15225:26:18","nodeType":"YulFunctionCall","src":"15225:26:18"},"nativeSrc":"15225:26:18","nodeType":"YulExpressionStatement","src":"15225:26:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15271:4:18","nodeType":"YulLiteral","src":"15271:4:18","type":"","value":"0x40"},{"name":"r","nativeSrc":"15277:1:18","nodeType":"YulIdentifier","src":"15277:1:18"}],"functionName":{"name":"mstore","nativeSrc":"15264:6:18","nodeType":"YulIdentifier","src":"15264:6:18"},"nativeSrc":"15264:15:18","nodeType":"YulFunctionCall","src":"15264:15:18"},"nativeSrc":"15264:15:18","nodeType":"YulExpressionStatement","src":"15264:15:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15299:4:18","nodeType":"YulLiteral","src":"15299:4:18","type":"","value":"0x60"},{"name":"s","nativeSrc":"15305:1:18","nodeType":"YulIdentifier","src":"15305:1:18"}],"functionName":{"name":"mstore","nativeSrc":"15292:6:18","nodeType":"YulIdentifier","src":"15292:6:18"},"nativeSrc":"15292:15:18","nodeType":"YulFunctionCall","src":"15292:15:18"},"nativeSrc":"15292:15:18","nodeType":"YulExpressionStatement","src":"15292:15:18"},{"nativeSrc":"15320:50:18","nodeType":"YulVariableDeclaration","src":"15320:50:18","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15340:3:18","nodeType":"YulIdentifier","src":"15340:3:18"},"nativeSrc":"15340:5:18","nodeType":"YulFunctionCall","src":"15340:5:18"},{"kind":"number","nativeSrc":"15347:1:18","nodeType":"YulLiteral","src":"15347:1:18","type":"","value":"1"},{"kind":"number","nativeSrc":"15350:1:18","nodeType":"YulLiteral","src":"15350:1:18","type":"","value":"0"},{"kind":"number","nativeSrc":"15353:4:18","nodeType":"YulLiteral","src":"15353:4:18","type":"","value":"0x80"},{"kind":"number","nativeSrc":"15359:4:18","nodeType":"YulLiteral","src":"15359:4:18","type":"","value":"0x20"},{"kind":"number","nativeSrc":"15365:4:18","nodeType":"YulLiteral","src":"15365:4:18","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15329:10:18","nodeType":"YulIdentifier","src":"15329:10:18"},"nativeSrc":"15329:41:18","nodeType":"YulFunctionCall","src":"15329:41:18"},"variables":[{"name":"t","nativeSrc":"15324:1:18","nodeType":"YulTypedName","src":"15324:1:18","type":""}]},{"body":{"nativeSrc":"15794:113:18","nodeType":"YulBlock","src":"15794:113:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15819:4:18","nodeType":"YulLiteral","src":"15819:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15825:10:18","nodeType":"YulLiteral","src":"15825:10:18","type":"","value":"0xddafbaef"}],"functionName":{"name":"mstore","nativeSrc":"15812:6:18","nodeType":"YulIdentifier","src":"15812:6:18"},"nativeSrc":"15812:24:18","nodeType":"YulFunctionCall","src":"15812:24:18"},"nativeSrc":"15812:24:18","nodeType":"YulExpressionStatement","src":"15812:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15882:4:18","nodeType":"YulLiteral","src":"15882:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15888:4:18","nodeType":"YulLiteral","src":"15888:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15875:6:18","nodeType":"YulIdentifier","src":"15875:6:18"},"nativeSrc":"15875:18:18","nodeType":"YulFunctionCall","src":"15875:18:18"},"nativeSrc":"15875:18:18","nodeType":"YulExpressionStatement","src":"15875:18:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15767:14:18","nodeType":"YulIdentifier","src":"15767:14:18"},"nativeSrc":"15767:16:18","nodeType":"YulFunctionCall","src":"15767:16:18"}],"functionName":{"name":"mload","nativeSrc":"15761:5:18","nodeType":"YulIdentifier","src":"15761:5:18"},"nativeSrc":"15761:23:18","nodeType":"YulFunctionCall","src":"15761:23:18"},{"name":"owner","nativeSrc":"15786:5:18","nodeType":"YulIdentifier","src":"15786:5:18"}],"functionName":{"name":"eq","nativeSrc":"15758:2:18","nodeType":"YulIdentifier","src":"15758:2:18"},"nativeSrc":"15758:34:18","nodeType":"YulFunctionCall","src":"15758:34:18"}],"functionName":{"name":"iszero","nativeSrc":"15751:6:18","nodeType":"YulIdentifier","src":"15751:6:18"},"nativeSrc":"15751:42:18","nodeType":"YulFunctionCall","src":"15751:42:18"},"nativeSrc":"15748:159:18","nodeType":"YulIf","src":"15748:159:18"},{"expression":{"arguments":[{"name":"nonceSlot","nativeSrc":"15981:9:18","nodeType":"YulIdentifier","src":"15981:9:18"},{"arguments":[{"name":"nonceValue","nativeSrc":"15996:10:18","nodeType":"YulIdentifier","src":"15996:10:18"},{"name":"t","nativeSrc":"16008:1:18","nodeType":"YulIdentifier","src":"16008:1:18"}],"functionName":{"name":"add","nativeSrc":"15992:3:18","nodeType":"YulIdentifier","src":"15992:3:18"},"nativeSrc":"15992:18:18","nodeType":"YulFunctionCall","src":"15992:18:18"}],"functionName":{"name":"sstore","nativeSrc":"15974:6:18","nodeType":"YulIdentifier","src":"15974:6:18"},"nativeSrc":"15974:37:18","nodeType":"YulFunctionCall","src":"15974:37:18"},"nativeSrc":"15974:37:18","nodeType":"YulExpressionStatement","src":"15974:37:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16181:4:18","nodeType":"YulLiteral","src":"16181:4:18","type":"","value":"0x40"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16194:3:18","nodeType":"YulLiteral","src":"16194:3:18","type":"","value":"160"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"16199:20:18","nodeType":"YulIdentifier","src":"16199:20:18"}],"functionName":{"name":"shl","nativeSrc":"16190:3:18","nodeType":"YulIdentifier","src":"16190:3:18"},"nativeSrc":"16190:30:18","nodeType":"YulFunctionCall","src":"16190:30:18"},{"name":"spender","nativeSrc":"16222:7:18","nodeType":"YulIdentifier","src":"16222:7:18"}],"functionName":{"name":"or","nativeSrc":"16187:2:18","nodeType":"YulIdentifier","src":"16187:2:18"},"nativeSrc":"16187:43:18","nodeType":"YulFunctionCall","src":"16187:43:18"}],"functionName":{"name":"mstore","nativeSrc":"16174:6:18","nodeType":"YulIdentifier","src":"16174:6:18"},"nativeSrc":"16174:57:18","nodeType":"YulFunctionCall","src":"16174:57:18"},"nativeSrc":"16174:57:18","nodeType":"YulExpressionStatement","src":"16174:57:18"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16261:4:18","nodeType":"YulLiteral","src":"16261:4:18","type":"","value":"0x2c"},{"kind":"number","nativeSrc":"16267:4:18","nodeType":"YulLiteral","src":"16267:4:18","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"16251:9:18","nodeType":"YulIdentifier","src":"16251:9:18"},"nativeSrc":"16251:21:18","nodeType":"YulFunctionCall","src":"16251:21:18"},{"name":"value","nativeSrc":"16274:5:18","nodeType":"YulIdentifier","src":"16274:5:18"}],"functionName":{"name":"sstore","nativeSrc":"16244:6:18","nodeType":"YulIdentifier","src":"16244:6:18"},"nativeSrc":"16244:36:18","nodeType":"YulFunctionCall","src":"16244:36:18"},"nativeSrc":"16244:36:18","nodeType":"YulExpressionStatement","src":"16244:36:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"16344:1:18","nodeType":"YulIdentifier","src":"16344:1:18"},{"kind":"number","nativeSrc":"16347:4:18","nodeType":"YulLiteral","src":"16347:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16340:3:18","nodeType":"YulIdentifier","src":"16340:3:18"},"nativeSrc":"16340:12:18","nodeType":"YulFunctionCall","src":"16340:12:18"},{"kind":"number","nativeSrc":"16354:4:18","nodeType":"YulLiteral","src":"16354:4:18","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"16360:25:18","nodeType":"YulIdentifier","src":"16360:25:18"},{"name":"owner","nativeSrc":"16387:5:18","nodeType":"YulIdentifier","src":"16387:5:18"},{"name":"spender","nativeSrc":"16394:7:18","nodeType":"YulIdentifier","src":"16394:7:18"}],"functionName":{"name":"log3","nativeSrc":"16335:4:18","nodeType":"YulIdentifier","src":"16335:4:18"},"nativeSrc":"16335:67:18","nodeType":"YulFunctionCall","src":"16335:67:18"},"nativeSrc":"16335:67:18","nodeType":"YulExpressionStatement","src":"16335:67:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16422:4:18","nodeType":"YulLiteral","src":"16422:4:18","type":"","value":"0x40"},{"name":"m","nativeSrc":"16428:1:18","nodeType":"YulIdentifier","src":"16428:1:18"}],"functionName":{"name":"mstore","nativeSrc":"16415:6:18","nodeType":"YulIdentifier","src":"16415:6:18"},"nativeSrc":"16415:15:18","nodeType":"YulFunctionCall","src":"16415:15:18"},"nativeSrc":"16415:15:18","nodeType":"YulExpressionStatement","src":"16415:15:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16486:4:18","nodeType":"YulLiteral","src":"16486:4:18","type":"","value":"0x60"},{"kind":"number","nativeSrc":"16492:1:18","nodeType":"YulLiteral","src":"16492:1:18","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16479:6:18","nodeType":"YulIdentifier","src":"16479:6:18"},"nativeSrc":"16479:15:18","nodeType":"YulFunctionCall","src":"16479:15:18"},"nativeSrc":"16479:15:18","nodeType":"YulExpressionStatement","src":"16479:15:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7998,"isOffset":false,"isSlot":false,"src":"16199:20:18","valueSize":1},{"declaration":7986,"isOffset":false,"isSlot":false,"src":"16360:25:18","valueSize":1},{"declaration":8010,"isOffset":false,"isSlot":false,"src":"14541:16:18","valueSize":1},{"declaration":8006,"isOffset":false,"isSlot":false,"src":"14303:39:18","valueSize":1},{"declaration":8018,"isOffset":false,"isSlot":false,"src":"14845:16:18","valueSize":1},{"declaration":8014,"isOffset":false,"isSlot":false,"src":"14635:13:18","valueSize":1},{"declaration":8165,"isOffset":false,"isSlot":false,"src":"13896:8:18","valueSize":1},{"declaration":8165,"isOffset":false,"isSlot":false,"src":"15063:8:18","valueSize":1},{"declaration":8175,"isOffset":false,"isSlot":false,"src":"14592:8:18","valueSize":1},{"declaration":8159,"isOffset":false,"isSlot":false,"src":"14138:5:18","valueSize":1},{"declaration":8159,"isOffset":false,"isSlot":false,"src":"14163:5:18","valueSize":1},{"declaration":8159,"isOffset":false,"isSlot":false,"src":"14369:5:18","valueSize":1},{"declaration":8159,"isOffset":false,"isSlot":false,"src":"14896:5:18","valueSize":1},{"declaration":8159,"isOffset":false,"isSlot":false,"src":"15786:5:18","valueSize":1},{"declaration":8159,"isOffset":false,"isSlot":false,"src":"16387:5:18","valueSize":1},{"declaration":8169,"isOffset":false,"isSlot":false,"src":"15277:1:18","valueSize":1},{"declaration":8171,"isOffset":false,"isSlot":false,"src":"15305:1:18","valueSize":1},{"declaration":8161,"isOffset":false,"isSlot":false,"src":"14183:7:18","valueSize":1},{"declaration":8161,"isOffset":false,"isSlot":false,"src":"14210:7:18","valueSize":1},{"declaration":8161,"isOffset":false,"isSlot":false,"src":"14936:7:18","valueSize":1},{"declaration":8161,"isOffset":false,"isSlot":false,"src":"16222:7:18","valueSize":1},{"declaration":8161,"isOffset":false,"isSlot":false,"src":"16394:7:18","valueSize":1},{"declaration":8167,"isOffset":false,"isSlot":false,"src":"15248:1:18","valueSize":1},{"declaration":8163,"isOffset":false,"isSlot":false,"src":"14978:5:18","valueSize":1},{"declaration":8163,"isOffset":false,"isSlot":false,"src":"16274:5:18","valueSize":1}],"id":8196,"nodeType":"InlineAssembly","src":"13781:2752:18"}]},"documentation":{"id":8157,"nodeType":"StructuredDocumentation","src":"13146:173:18","text":"@dev Sets `value` as the allowance of `spender` over the tokens of `owner`,\n authorized by a signed approval by `owner`.\n Emits a {Approval} event."},"functionSelector":"d505accf","id":8198,"implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"13333:6:18","nodeType":"FunctionDefinition","parameters":{"id":8172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8159,"mutability":"mutable","name":"owner","nameLocation":"13357:5:18","nodeType":"VariableDeclaration","scope":8198,"src":"13349:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8158,"name":"address","nodeType":"ElementaryTypeName","src":"13349:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8161,"mutability":"mutable","name":"spender","nameLocation":"13380:7:18","nodeType":"VariableDeclaration","scope":8198,"src":"13372:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8160,"name":"address","nodeType":"ElementaryTypeName","src":"13372:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8163,"mutability":"mutable","name":"value","nameLocation":"13405:5:18","nodeType":"VariableDeclaration","scope":8198,"src":"13397:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8162,"name":"uint256","nodeType":"ElementaryTypeName","src":"13397:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8165,"mutability":"mutable","name":"deadline","nameLocation":"13428:8:18","nodeType":"VariableDeclaration","scope":8198,"src":"13420:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8164,"name":"uint256","nodeType":"ElementaryTypeName","src":"13420:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8167,"mutability":"mutable","name":"v","nameLocation":"13452:1:18","nodeType":"VariableDeclaration","scope":8198,"src":"13446:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8166,"name":"uint8","nodeType":"ElementaryTypeName","src":"13446:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8169,"mutability":"mutable","name":"r","nameLocation":"13471:1:18","nodeType":"VariableDeclaration","scope":8198,"src":"13463:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13463:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8171,"mutability":"mutable","name":"s","nameLocation":"13490:1:18","nodeType":"VariableDeclaration","scope":8198,"src":"13482:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13482:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13339:158:18"},"returnParameters":{"id":8173,"nodeType":"ParameterList","parameters":[],"src":"13513:0:18"},"scope":8355,"src":"13324:3215:18","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8227,"nodeType":"Block","src":"16693:620:18","statements":[{"assignments":[8205],"declarations":[{"constant":false,"id":8205,"mutability":"mutable","name":"nameHash","nameLocation":"16711:8:18","nodeType":"VariableDeclaration","scope":8227,"src":"16703:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16703:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8206,"name":"_constantNameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8146,"src":"16722:17:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":8207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16722:19:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16703:38:18"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8209,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"16849:8:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":8212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16869:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16861:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16861:7:18","typeDescriptions":{}}},"id":8213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16861:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16849:22:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8225,"nodeType":"IfStatement","src":"16845:63:18","trueBody":{"expression":{"id":8223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8215,"name":"nameHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8205,"src":"16873:8:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8219,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8024,"src":"16900:4:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":8220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16900:6:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16894:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":8217,"name":"bytes","nodeType":"ElementaryTypeName","src":"16894:5:18","typeDescriptions":{}}},"id":8221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16894:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8216,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16884:9:18","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16884:24:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16873:35:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8224,"nodeType":"ExpressionStatement","src":"16873:35:18"}},{"AST":{"nativeSrc":"16970:337:18","nodeType":"YulBlock","src":"16970:337:18","statements":[{"nativeSrc":"16984:20:18","nodeType":"YulVariableDeclaration","src":"16984:20:18","value":{"arguments":[{"kind":"number","nativeSrc":"16999:4:18","nodeType":"YulLiteral","src":"16999:4:18","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"16993:5:18","nodeType":"YulIdentifier","src":"16993:5:18"},"nativeSrc":"16993:11:18","nodeType":"YulFunctionCall","src":"16993:11:18"},"variables":[{"name":"m","nativeSrc":"16988:1:18","nodeType":"YulTypedName","src":"16988:1:18","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"17057:1:18","nodeType":"YulIdentifier","src":"17057:1:18"},{"name":"_DOMAIN_TYPEHASH","nativeSrc":"17060:16:18","nodeType":"YulIdentifier","src":"17060:16:18"}],"functionName":{"name":"mstore","nativeSrc":"17050:6:18","nodeType":"YulIdentifier","src":"17050:6:18"},"nativeSrc":"17050:27:18","nodeType":"YulFunctionCall","src":"17050:27:18"},"nativeSrc":"17050:27:18","nodeType":"YulExpressionStatement","src":"17050:27:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17101:1:18","nodeType":"YulIdentifier","src":"17101:1:18"},{"kind":"number","nativeSrc":"17104:4:18","nodeType":"YulLiteral","src":"17104:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17097:3:18","nodeType":"YulIdentifier","src":"17097:3:18"},"nativeSrc":"17097:12:18","nodeType":"YulFunctionCall","src":"17097:12:18"},{"name":"nameHash","nativeSrc":"17111:8:18","nodeType":"YulIdentifier","src":"17111:8:18"}],"functionName":{"name":"mstore","nativeSrc":"17090:6:18","nodeType":"YulIdentifier","src":"17090:6:18"},"nativeSrc":"17090:30:18","nodeType":"YulFunctionCall","src":"17090:30:18"},"nativeSrc":"17090:30:18","nodeType":"YulExpressionStatement","src":"17090:30:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17144:1:18","nodeType":"YulIdentifier","src":"17144:1:18"},{"kind":"number","nativeSrc":"17147:4:18","nodeType":"YulLiteral","src":"17147:4:18","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17140:3:18","nodeType":"YulIdentifier","src":"17140:3:18"},"nativeSrc":"17140:12:18","nodeType":"YulFunctionCall","src":"17140:12:18"},{"name":"_VERSION_HASH","nativeSrc":"17154:13:18","nodeType":"YulIdentifier","src":"17154:13:18"}],"functionName":{"name":"mstore","nativeSrc":"17133:6:18","nodeType":"YulIdentifier","src":"17133:6:18"},"nativeSrc":"17133:35:18","nodeType":"YulFunctionCall","src":"17133:35:18"},"nativeSrc":"17133:35:18","nodeType":"YulExpressionStatement","src":"17133:35:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17192:1:18","nodeType":"YulIdentifier","src":"17192:1:18"},{"kind":"number","nativeSrc":"17195:4:18","nodeType":"YulLiteral","src":"17195:4:18","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17188:3:18","nodeType":"YulIdentifier","src":"17188:3:18"},"nativeSrc":"17188:12:18","nodeType":"YulFunctionCall","src":"17188:12:18"},{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"17202:7:18","nodeType":"YulIdentifier","src":"17202:7:18"},"nativeSrc":"17202:9:18","nodeType":"YulFunctionCall","src":"17202:9:18"}],"functionName":{"name":"mstore","nativeSrc":"17181:6:18","nodeType":"YulIdentifier","src":"17181:6:18"},"nativeSrc":"17181:31:18","nodeType":"YulFunctionCall","src":"17181:31:18"},"nativeSrc":"17181:31:18","nodeType":"YulExpressionStatement","src":"17181:31:18"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17236:1:18","nodeType":"YulIdentifier","src":"17236:1:18"},{"kind":"number","nativeSrc":"17239:4:18","nodeType":"YulLiteral","src":"17239:4:18","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"17232:3:18","nodeType":"YulIdentifier","src":"17232:3:18"},"nativeSrc":"17232:12:18","nodeType":"YulFunctionCall","src":"17232:12:18"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"17246:7:18","nodeType":"YulIdentifier","src":"17246:7:18"},"nativeSrc":"17246:9:18","nodeType":"YulFunctionCall","src":"17246:9:18"}],"functionName":{"name":"mstore","nativeSrc":"17225:6:18","nodeType":"YulIdentifier","src":"17225:6:18"},"nativeSrc":"17225:31:18","nodeType":"YulFunctionCall","src":"17225:31:18"},"nativeSrc":"17225:31:18","nodeType":"YulExpressionStatement","src":"17225:31:18"},{"nativeSrc":"17269:28:18","nodeType":"YulAssignment","src":"17269:28:18","value":{"arguments":[{"name":"m","nativeSrc":"17289:1:18","nodeType":"YulIdentifier","src":"17289:1:18"},{"kind":"number","nativeSrc":"17292:4:18","nodeType":"YulLiteral","src":"17292:4:18","type":"","value":"0xa0"}],"functionName":{"name":"keccak256","nativeSrc":"17279:9:18","nodeType":"YulIdentifier","src":"17279:9:18"},"nativeSrc":"17279:18:18","nodeType":"YulFunctionCall","src":"17279:18:18"},"variableNames":[{"name":"result","nativeSrc":"17269:6:18","nodeType":"YulIdentifier","src":"17269:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8010,"isOffset":false,"isSlot":false,"src":"17060:16:18","valueSize":1},{"declaration":8014,"isOffset":false,"isSlot":false,"src":"17154:13:18","valueSize":1},{"declaration":8205,"isOffset":false,"isSlot":false,"src":"17111:8:18","valueSize":1},{"declaration":8202,"isOffset":false,"isSlot":false,"src":"17269:6:18","valueSize":1}],"id":8226,"nodeType":"InlineAssembly","src":"16961:346:18"}]},"documentation":{"id":8199,"nodeType":"StructuredDocumentation","src":"16545:70:18","text":"@dev Returns the EIP-712 domain separator for the EIP-2612 permit."},"functionSelector":"3644e515","id":8228,"implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"16629:16:18","nodeType":"FunctionDefinition","parameters":{"id":8200,"nodeType":"ParameterList","parameters":[],"src":"16645:2:18"},"returnParameters":{"id":8203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8202,"mutability":"mutable","name":"result","nameLocation":"16685:6:18","nodeType":"VariableDeclaration","scope":8228,"src":"16677:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16677:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16676:16:18"},"scope":8355,"src":"16620:693:18","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8255,"nodeType":"Block","src":"17777:1112:18","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17816:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17808:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8237,"name":"address","nodeType":"ElementaryTypeName","src":"17808:7:18","typeDescriptions":{}}},"id":8240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17808:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8241,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"17820:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8242,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"17824:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8236,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"17787:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17787:44:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8244,"nodeType":"ExpressionStatement","src":"17787:44:18"},{"AST":{"nativeSrc":"17893:937:18","nodeType":"YulBlock","src":"17893:937:18","statements":[{"nativeSrc":"17907:50:18","nodeType":"YulVariableDeclaration","src":"17907:50:18","value":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"17938:18:18","nodeType":"YulIdentifier","src":"17938:18:18"}],"functionName":{"name":"sload","nativeSrc":"17932:5:18","nodeType":"YulIdentifier","src":"17932:5:18"},"nativeSrc":"17932:25:18","nodeType":"YulFunctionCall","src":"17932:25:18"},"variables":[{"name":"totalSupplyBefore","nativeSrc":"17911:17:18","nodeType":"YulTypedName","src":"17911:17:18","type":""}]},{"nativeSrc":"17970:54:18","nodeType":"YulVariableDeclaration","src":"17970:54:18","value":{"arguments":[{"name":"totalSupplyBefore","nativeSrc":"17998:17:18","nodeType":"YulIdentifier","src":"17998:17:18"},{"name":"amount","nativeSrc":"18017:6:18","nodeType":"YulIdentifier","src":"18017:6:18"}],"functionName":{"name":"add","nativeSrc":"17994:3:18","nodeType":"YulIdentifier","src":"17994:3:18"},"nativeSrc":"17994:30:18","nodeType":"YulFunctionCall","src":"17994:30:18"},"variables":[{"name":"totalSupplyAfter","nativeSrc":"17974:16:18","nodeType":"YulTypedName","src":"17974:16:18","type":""}]},{"body":{"nativeSrc":"18133:119:18","nodeType":"YulBlock","src":"18133:119:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18158:4:18","nodeType":"YulLiteral","src":"18158:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18164:10:18","nodeType":"YulLiteral","src":"18164:10:18","type":"","value":"0xe5cfe957"}],"functionName":{"name":"mstore","nativeSrc":"18151:6:18","nodeType":"YulIdentifier","src":"18151:6:18"},"nativeSrc":"18151:24:18","nodeType":"YulFunctionCall","src":"18151:24:18"},"nativeSrc":"18151:24:18","nodeType":"YulExpressionStatement","src":"18151:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18227:4:18","nodeType":"YulLiteral","src":"18227:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18233:4:18","nodeType":"YulLiteral","src":"18233:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18220:6:18","nodeType":"YulIdentifier","src":"18220:6:18"},"nativeSrc":"18220:18:18","nodeType":"YulFunctionCall","src":"18220:18:18"},"nativeSrc":"18220:18:18","nodeType":"YulExpressionStatement","src":"18220:18:18"}]},"condition":{"arguments":[{"name":"totalSupplyAfter","nativeSrc":"18096:16:18","nodeType":"YulIdentifier","src":"18096:16:18"},{"name":"totalSupplyBefore","nativeSrc":"18114:17:18","nodeType":"YulIdentifier","src":"18114:17:18"}],"functionName":{"name":"lt","nativeSrc":"18093:2:18","nodeType":"YulIdentifier","src":"18093:2:18"},"nativeSrc":"18093:39:18","nodeType":"YulFunctionCall","src":"18093:39:18"},"nativeSrc":"18090:162:18","nodeType":"YulIf","src":"18090:162:18"},{"expression":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"18319:18:18","nodeType":"YulIdentifier","src":"18319:18:18"},{"name":"totalSupplyAfter","nativeSrc":"18339:16:18","nodeType":"YulIdentifier","src":"18339:16:18"}],"functionName":{"name":"sstore","nativeSrc":"18312:6:18","nodeType":"YulIdentifier","src":"18312:6:18"},"nativeSrc":"18312:44:18","nodeType":"YulFunctionCall","src":"18312:44:18"},"nativeSrc":"18312:44:18","nodeType":"YulExpressionStatement","src":"18312:44:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18436:4:18","nodeType":"YulLiteral","src":"18436:4:18","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"18442:18:18","nodeType":"YulIdentifier","src":"18442:18:18"}],"functionName":{"name":"mstore","nativeSrc":"18429:6:18","nodeType":"YulIdentifier","src":"18429:6:18"},"nativeSrc":"18429:32:18","nodeType":"YulFunctionCall","src":"18429:32:18"},"nativeSrc":"18429:32:18","nodeType":"YulExpressionStatement","src":"18429:32:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18481:4:18","nodeType":"YulLiteral","src":"18481:4:18","type":"","value":"0x00"},{"name":"to","nativeSrc":"18487:2:18","nodeType":"YulIdentifier","src":"18487:2:18"}],"functionName":{"name":"mstore","nativeSrc":"18474:6:18","nodeType":"YulIdentifier","src":"18474:6:18"},"nativeSrc":"18474:16:18","nodeType":"YulFunctionCall","src":"18474:16:18"},"nativeSrc":"18474:16:18","nodeType":"YulExpressionStatement","src":"18474:16:18"},{"nativeSrc":"18503:42:18","nodeType":"YulVariableDeclaration","src":"18503:42:18","value":{"arguments":[{"kind":"number","nativeSrc":"18534:4:18","nodeType":"YulLiteral","src":"18534:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"18540:4:18","nodeType":"YulLiteral","src":"18540:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18524:9:18","nodeType":"YulIdentifier","src":"18524:9:18"},"nativeSrc":"18524:21:18","nodeType":"YulFunctionCall","src":"18524:21:18"},"variables":[{"name":"toBalanceSlot","nativeSrc":"18507:13:18","nodeType":"YulTypedName","src":"18507:13:18","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"18615:13:18","nodeType":"YulIdentifier","src":"18615:13:18"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"18640:13:18","nodeType":"YulIdentifier","src":"18640:13:18"}],"functionName":{"name":"sload","nativeSrc":"18634:5:18","nodeType":"YulIdentifier","src":"18634:5:18"},"nativeSrc":"18634:20:18","nodeType":"YulFunctionCall","src":"18634:20:18"},{"name":"amount","nativeSrc":"18656:6:18","nodeType":"YulIdentifier","src":"18656:6:18"}],"functionName":{"name":"add","nativeSrc":"18630:3:18","nodeType":"YulIdentifier","src":"18630:3:18"},"nativeSrc":"18630:33:18","nodeType":"YulFunctionCall","src":"18630:33:18"}],"functionName":{"name":"sstore","nativeSrc":"18608:6:18","nodeType":"YulIdentifier","src":"18608:6:18"},"nativeSrc":"18608:56:18","nodeType":"YulFunctionCall","src":"18608:56:18"},"nativeSrc":"18608:56:18","nodeType":"YulExpressionStatement","src":"18608:56:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18726:4:18","nodeType":"YulLiteral","src":"18726:4:18","type":"","value":"0x20"},{"name":"amount","nativeSrc":"18732:6:18","nodeType":"YulIdentifier","src":"18732:6:18"}],"functionName":{"name":"mstore","nativeSrc":"18719:6:18","nodeType":"YulIdentifier","src":"18719:6:18"},"nativeSrc":"18719:20:18","nodeType":"YulFunctionCall","src":"18719:20:18"},"nativeSrc":"18719:20:18","nodeType":"YulExpressionStatement","src":"18719:20:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18757:4:18","nodeType":"YulLiteral","src":"18757:4:18","type":"","value":"0x20"},{"kind":"number","nativeSrc":"18763:4:18","nodeType":"YulLiteral","src":"18763:4:18","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"18769:25:18","nodeType":"YulIdentifier","src":"18769:25:18"},{"kind":"number","nativeSrc":"18796:1:18","nodeType":"YulLiteral","src":"18796:1:18","type":"","value":"0"},{"arguments":[{"kind":"number","nativeSrc":"18803:2:18","nodeType":"YulLiteral","src":"18803:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"18813:4:18","nodeType":"YulLiteral","src":"18813:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"18807:5:18","nodeType":"YulIdentifier","src":"18807:5:18"},"nativeSrc":"18807:11:18","nodeType":"YulFunctionCall","src":"18807:11:18"}],"functionName":{"name":"shr","nativeSrc":"18799:3:18","nodeType":"YulIdentifier","src":"18799:3:18"},"nativeSrc":"18799:20:18","nodeType":"YulFunctionCall","src":"18799:20:18"}],"functionName":{"name":"log3","nativeSrc":"18752:4:18","nodeType":"YulIdentifier","src":"18752:4:18"},"nativeSrc":"18752:68:18","nodeType":"YulFunctionCall","src":"18752:68:18"},"nativeSrc":"18752:68:18","nodeType":"YulExpressionStatement","src":"18752:68:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7994,"isOffset":false,"isSlot":false,"src":"18442:18:18","valueSize":1},{"declaration":7990,"isOffset":false,"isSlot":false,"src":"17938:18:18","valueSize":1},{"declaration":7990,"isOffset":false,"isSlot":false,"src":"18319:18:18","valueSize":1},{"declaration":7982,"isOffset":false,"isSlot":false,"src":"18769:25:18","valueSize":1},{"declaration":8233,"isOffset":false,"isSlot":false,"src":"18017:6:18","valueSize":1},{"declaration":8233,"isOffset":false,"isSlot":false,"src":"18656:6:18","valueSize":1},{"declaration":8233,"isOffset":false,"isSlot":false,"src":"18732:6:18","valueSize":1},{"declaration":8231,"isOffset":false,"isSlot":false,"src":"18487:2:18","valueSize":1}],"id":8245,"nodeType":"InlineAssembly","src":"17884:946:18"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18867:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18859:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8247,"name":"address","nodeType":"ElementaryTypeName","src":"18859:7:18","typeDescriptions":{}}},"id":8250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18859:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8251,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"18871:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8252,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"18875:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8246,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"18839:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18839:43:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8254,"nodeType":"ExpressionStatement","src":"18839:43:18"}]},"documentation":{"id":8229,"nodeType":"StructuredDocumentation","src":"17602:110:18","text":"@dev Mints `amount` tokens to `to`, increasing the total supply.\n Emits a {Transfer} event."},"id":8256,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"17726:5:18","nodeType":"FunctionDefinition","parameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8231,"mutability":"mutable","name":"to","nameLocation":"17740:2:18","nodeType":"VariableDeclaration","scope":8256,"src":"17732:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8230,"name":"address","nodeType":"ElementaryTypeName","src":"17732:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8233,"mutability":"mutable","name":"amount","nameLocation":"17752:6:18","nodeType":"VariableDeclaration","scope":8256,"src":"17744:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8232,"name":"uint256","nodeType":"ElementaryTypeName","src":"17744:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17731:28:18"},"returnParameters":{"id":8235,"nodeType":"ParameterList","parameters":[],"src":"17777:0:18"},"scope":8355,"src":"17717:1172:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8283,"nodeType":"Block","src":"19357:1057:18","statements":[{"expression":{"arguments":[{"id":8265,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"19388:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19402:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19394:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8266,"name":"address","nodeType":"ElementaryTypeName","src":"19394:7:18","typeDescriptions":{}}},"id":8269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19394:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8270,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8261,"src":"19406:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8264,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"19367:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19367:46:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8272,"nodeType":"ExpressionStatement","src":"19367:46:18"},{"AST":{"nativeSrc":"19475:878:18","nodeType":"YulBlock","src":"19475:878:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19556:4:18","nodeType":"YulLiteral","src":"19556:4:18","type":"","value":"0x0c"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"19562:18:18","nodeType":"YulIdentifier","src":"19562:18:18"}],"functionName":{"name":"mstore","nativeSrc":"19549:6:18","nodeType":"YulIdentifier","src":"19549:6:18"},"nativeSrc":"19549:32:18","nodeType":"YulFunctionCall","src":"19549:32:18"},"nativeSrc":"19549:32:18","nodeType":"YulExpressionStatement","src":"19549:32:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19601:4:18","nodeType":"YulLiteral","src":"19601:4:18","type":"","value":"0x00"},{"name":"from","nativeSrc":"19607:4:18","nodeType":"YulIdentifier","src":"19607:4:18"}],"functionName":{"name":"mstore","nativeSrc":"19594:6:18","nodeType":"YulIdentifier","src":"19594:6:18"},"nativeSrc":"19594:18:18","nodeType":"YulFunctionCall","src":"19594:18:18"},"nativeSrc":"19594:18:18","nodeType":"YulExpressionStatement","src":"19594:18:18"},{"nativeSrc":"19625:44:18","nodeType":"YulVariableDeclaration","src":"19625:44:18","value":{"arguments":[{"kind":"number","nativeSrc":"19658:4:18","nodeType":"YulLiteral","src":"19658:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"19664:4:18","nodeType":"YulLiteral","src":"19664:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"19648:9:18","nodeType":"YulIdentifier","src":"19648:9:18"},"nativeSrc":"19648:21:18","nodeType":"YulFunctionCall","src":"19648:21:18"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"19629:15:18","nodeType":"YulTypedName","src":"19629:15:18","type":""}]},{"nativeSrc":"19682:41:18","nodeType":"YulVariableDeclaration","src":"19682:41:18","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"19707:15:18","nodeType":"YulIdentifier","src":"19707:15:18"}],"functionName":{"name":"sload","nativeSrc":"19701:5:18","nodeType":"YulIdentifier","src":"19701:5:18"},"nativeSrc":"19701:22:18","nodeType":"YulFunctionCall","src":"19701:22:18"},"variables":[{"name":"fromBalance","nativeSrc":"19686:11:18","nodeType":"YulTypedName","src":"19686:11:18","type":""}]},{"body":{"nativeSrc":"19810:119:18","nodeType":"YulBlock","src":"19810:119:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19835:4:18","nodeType":"YulLiteral","src":"19835:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19841:10:18","nodeType":"YulLiteral","src":"19841:10:18","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"19828:6:18","nodeType":"YulIdentifier","src":"19828:6:18"},"nativeSrc":"19828:24:18","nodeType":"YulFunctionCall","src":"19828:24:18"},"nativeSrc":"19828:24:18","nodeType":"YulExpressionStatement","src":"19828:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19904:4:18","nodeType":"YulLiteral","src":"19904:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"19910:4:18","nodeType":"YulLiteral","src":"19910:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"19897:6:18","nodeType":"YulIdentifier","src":"19897:6:18"},"nativeSrc":"19897:18:18","nodeType":"YulFunctionCall","src":"19897:18:18"},"nativeSrc":"19897:18:18","nodeType":"YulExpressionStatement","src":"19897:18:18"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"19789:6:18","nodeType":"YulIdentifier","src":"19789:6:18"},{"name":"fromBalance","nativeSrc":"19797:11:18","nodeType":"YulIdentifier","src":"19797:11:18"}],"functionName":{"name":"gt","nativeSrc":"19786:2:18","nodeType":"YulIdentifier","src":"19786:2:18"},"nativeSrc":"19786:23:18","nodeType":"YulFunctionCall","src":"19786:23:18"},"nativeSrc":"19783:146:18","nodeType":"YulIf","src":"19783:146:18"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"20004:15:18","nodeType":"YulIdentifier","src":"20004:15:18"},{"arguments":[{"name":"fromBalance","nativeSrc":"20025:11:18","nodeType":"YulIdentifier","src":"20025:11:18"},{"name":"amount","nativeSrc":"20038:6:18","nodeType":"YulIdentifier","src":"20038:6:18"}],"functionName":{"name":"sub","nativeSrc":"20021:3:18","nodeType":"YulIdentifier","src":"20021:3:18"},"nativeSrc":"20021:24:18","nodeType":"YulFunctionCall","src":"20021:24:18"}],"functionName":{"name":"sstore","nativeSrc":"19997:6:18","nodeType":"YulIdentifier","src":"19997:6:18"},"nativeSrc":"19997:49:18","nodeType":"YulFunctionCall","src":"19997:49:18"},"nativeSrc":"19997:49:18","nodeType":"YulExpressionStatement","src":"19997:49:18"},{"expression":{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"20126:18:18","nodeType":"YulIdentifier","src":"20126:18:18"},{"arguments":[{"arguments":[{"name":"_TOTAL_SUPPLY_SLOT","nativeSrc":"20156:18:18","nodeType":"YulIdentifier","src":"20156:18:18"}],"functionName":{"name":"sload","nativeSrc":"20150:5:18","nodeType":"YulIdentifier","src":"20150:5:18"},"nativeSrc":"20150:25:18","nodeType":"YulFunctionCall","src":"20150:25:18"},{"name":"amount","nativeSrc":"20177:6:18","nodeType":"YulIdentifier","src":"20177:6:18"}],"functionName":{"name":"sub","nativeSrc":"20146:3:18","nodeType":"YulIdentifier","src":"20146:3:18"},"nativeSrc":"20146:38:18","nodeType":"YulFunctionCall","src":"20146:38:18"}],"functionName":{"name":"sstore","nativeSrc":"20119:6:18","nodeType":"YulIdentifier","src":"20119:6:18"},"nativeSrc":"20119:66:18","nodeType":"YulFunctionCall","src":"20119:66:18"},"nativeSrc":"20119:66:18","nodeType":"YulExpressionStatement","src":"20119:66:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20247:4:18","nodeType":"YulLiteral","src":"20247:4:18","type":"","value":"0x00"},{"name":"amount","nativeSrc":"20253:6:18","nodeType":"YulIdentifier","src":"20253:6:18"}],"functionName":{"name":"mstore","nativeSrc":"20240:6:18","nodeType":"YulIdentifier","src":"20240:6:18"},"nativeSrc":"20240:20:18","nodeType":"YulFunctionCall","src":"20240:20:18"},"nativeSrc":"20240:20:18","nodeType":"YulExpressionStatement","src":"20240:20:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20278:4:18","nodeType":"YulLiteral","src":"20278:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20284:4:18","nodeType":"YulLiteral","src":"20284:4:18","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"20290:25:18","nodeType":"YulIdentifier","src":"20290:25:18"},{"arguments":[{"kind":"number","nativeSrc":"20321:2:18","nodeType":"YulLiteral","src":"20321:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"20329:2:18","nodeType":"YulLiteral","src":"20329:2:18","type":"","value":"96"},{"name":"from","nativeSrc":"20333:4:18","nodeType":"YulIdentifier","src":"20333:4:18"}],"functionName":{"name":"shl","nativeSrc":"20325:3:18","nodeType":"YulIdentifier","src":"20325:3:18"},"nativeSrc":"20325:13:18","nodeType":"YulFunctionCall","src":"20325:13:18"}],"functionName":{"name":"shr","nativeSrc":"20317:3:18","nodeType":"YulIdentifier","src":"20317:3:18"},"nativeSrc":"20317:22:18","nodeType":"YulFunctionCall","src":"20317:22:18"},{"kind":"number","nativeSrc":"20341:1:18","nodeType":"YulLiteral","src":"20341:1:18","type":"","value":"0"}],"functionName":{"name":"log3","nativeSrc":"20273:4:18","nodeType":"YulIdentifier","src":"20273:4:18"},"nativeSrc":"20273:70:18","nodeType":"YulFunctionCall","src":"20273:70:18"},"nativeSrc":"20273:70:18","nodeType":"YulExpressionStatement","src":"20273:70:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7994,"isOffset":false,"isSlot":false,"src":"19562:18:18","valueSize":1},{"declaration":7990,"isOffset":false,"isSlot":false,"src":"20126:18:18","valueSize":1},{"declaration":7990,"isOffset":false,"isSlot":false,"src":"20156:18:18","valueSize":1},{"declaration":7982,"isOffset":false,"isSlot":false,"src":"20290:25:18","valueSize":1},{"declaration":8261,"isOffset":false,"isSlot":false,"src":"19789:6:18","valueSize":1},{"declaration":8261,"isOffset":false,"isSlot":false,"src":"20038:6:18","valueSize":1},{"declaration":8261,"isOffset":false,"isSlot":false,"src":"20177:6:18","valueSize":1},{"declaration":8261,"isOffset":false,"isSlot":false,"src":"20253:6:18","valueSize":1},{"declaration":8259,"isOffset":false,"isSlot":false,"src":"19607:4:18","valueSize":1},{"declaration":8259,"isOffset":false,"isSlot":false,"src":"20333:4:18","valueSize":1}],"id":8273,"nodeType":"InlineAssembly","src":"19466:887:18"},{"expression":{"arguments":[{"id":8275,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"20382:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20396:1:18","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20388:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8276,"name":"address","nodeType":"ElementaryTypeName","src":"20388:7:18","typeDescriptions":{}}},"id":8279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20388:10:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8280,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8261,"src":"20400:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8274,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"20362:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20362:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8282,"nodeType":"ExpressionStatement","src":"20362:45:18"}]},"documentation":{"id":8257,"nodeType":"StructuredDocumentation","src":"19178:112:18","text":"@dev Burns `amount` tokens from `from`, reducing the total supply.\n Emits a {Transfer} event."},"id":8284,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"19304:5:18","nodeType":"FunctionDefinition","parameters":{"id":8262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8259,"mutability":"mutable","name":"from","nameLocation":"19318:4:18","nodeType":"VariableDeclaration","scope":8284,"src":"19310:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8258,"name":"address","nodeType":"ElementaryTypeName","src":"19310:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8261,"mutability":"mutable","name":"amount","nameLocation":"19332:6:18","nodeType":"VariableDeclaration","scope":8284,"src":"19324:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8260,"name":"uint256","nodeType":"ElementaryTypeName","src":"19324:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19309:30:18"},"returnParameters":{"id":8263,"nodeType":"ParameterList","parameters":[],"src":"19357:0:18"},"scope":8355,"src":"19295:1119:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8307,"nodeType":"Block","src":"20840:1318:18","statements":[{"expression":{"arguments":[{"id":8295,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8287,"src":"20871:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8296,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8289,"src":"20877:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8297,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"20881:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8294,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8343,"src":"20850:20:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20850:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8299,"nodeType":"ExpressionStatement","src":"20850:38:18"},{"AST":{"nativeSrc":"20950:1155:18","nodeType":"YulBlock","src":"20950:1155:18","statements":[{"nativeSrc":"20964:26:18","nodeType":"YulVariableDeclaration","src":"20964:26:18","value":{"arguments":[{"kind":"number","nativeSrc":"20981:2:18","nodeType":"YulLiteral","src":"20981:2:18","type":"","value":"96"},{"name":"from","nativeSrc":"20985:4:18","nodeType":"YulIdentifier","src":"20985:4:18"}],"functionName":{"name":"shl","nativeSrc":"20977:3:18","nodeType":"YulIdentifier","src":"20977:3:18"},"nativeSrc":"20977:13:18","nodeType":"YulFunctionCall","src":"20977:13:18"},"variables":[{"name":"from_","nativeSrc":"20968:5:18","nodeType":"YulTypedName","src":"20968:5:18","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21070:4:18","nodeType":"YulLiteral","src":"21070:4:18","type":"","value":"0x0c"},{"arguments":[{"name":"from_","nativeSrc":"21079:5:18","nodeType":"YulIdentifier","src":"21079:5:18"},{"name":"_BALANCE_SLOT_SEED","nativeSrc":"21086:18:18","nodeType":"YulIdentifier","src":"21086:18:18"}],"functionName":{"name":"or","nativeSrc":"21076:2:18","nodeType":"YulIdentifier","src":"21076:2:18"},"nativeSrc":"21076:29:18","nodeType":"YulFunctionCall","src":"21076:29:18"}],"functionName":{"name":"mstore","nativeSrc":"21063:6:18","nodeType":"YulIdentifier","src":"21063:6:18"},"nativeSrc":"21063:43:18","nodeType":"YulFunctionCall","src":"21063:43:18"},"nativeSrc":"21063:43:18","nodeType":"YulExpressionStatement","src":"21063:43:18"},{"nativeSrc":"21119:44:18","nodeType":"YulVariableDeclaration","src":"21119:44:18","value":{"arguments":[{"kind":"number","nativeSrc":"21152:4:18","nodeType":"YulLiteral","src":"21152:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"21158:4:18","nodeType":"YulLiteral","src":"21158:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21142:9:18","nodeType":"YulIdentifier","src":"21142:9:18"},"nativeSrc":"21142:21:18","nodeType":"YulFunctionCall","src":"21142:21:18"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"21123:15:18","nodeType":"YulTypedName","src":"21123:15:18","type":""}]},{"nativeSrc":"21176:41:18","nodeType":"YulVariableDeclaration","src":"21176:41:18","value":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"21201:15:18","nodeType":"YulIdentifier","src":"21201:15:18"}],"functionName":{"name":"sload","nativeSrc":"21195:5:18","nodeType":"YulIdentifier","src":"21195:5:18"},"nativeSrc":"21195:22:18","nodeType":"YulFunctionCall","src":"21195:22:18"},"variables":[{"name":"fromBalance","nativeSrc":"21180:11:18","nodeType":"YulTypedName","src":"21180:11:18","type":""}]},{"body":{"nativeSrc":"21304:119:18","nodeType":"YulBlock","src":"21304:119:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21329:4:18","nodeType":"YulLiteral","src":"21329:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21335:10:18","nodeType":"YulLiteral","src":"21335:10:18","type":"","value":"0xf4d678b8"}],"functionName":{"name":"mstore","nativeSrc":"21322:6:18","nodeType":"YulIdentifier","src":"21322:6:18"},"nativeSrc":"21322:24:18","nodeType":"YulFunctionCall","src":"21322:24:18"},"nativeSrc":"21322:24:18","nodeType":"YulExpressionStatement","src":"21322:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21398:4:18","nodeType":"YulLiteral","src":"21398:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"21404:4:18","nodeType":"YulLiteral","src":"21404:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"21391:6:18","nodeType":"YulIdentifier","src":"21391:6:18"},"nativeSrc":"21391:18:18","nodeType":"YulFunctionCall","src":"21391:18:18"},"nativeSrc":"21391:18:18","nodeType":"YulExpressionStatement","src":"21391:18:18"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"21283:6:18","nodeType":"YulIdentifier","src":"21283:6:18"},{"name":"fromBalance","nativeSrc":"21291:11:18","nodeType":"YulIdentifier","src":"21291:11:18"}],"functionName":{"name":"gt","nativeSrc":"21280:2:18","nodeType":"YulIdentifier","src":"21280:2:18"},"nativeSrc":"21280:23:18","nodeType":"YulFunctionCall","src":"21280:23:18"},"nativeSrc":"21277:146:18","nodeType":"YulIf","src":"21277:146:18"},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"21498:15:18","nodeType":"YulIdentifier","src":"21498:15:18"},{"arguments":[{"name":"fromBalance","nativeSrc":"21519:11:18","nodeType":"YulIdentifier","src":"21519:11:18"},{"name":"amount","nativeSrc":"21532:6:18","nodeType":"YulIdentifier","src":"21532:6:18"}],"functionName":{"name":"sub","nativeSrc":"21515:3:18","nodeType":"YulIdentifier","src":"21515:3:18"},"nativeSrc":"21515:24:18","nodeType":"YulFunctionCall","src":"21515:24:18"}],"functionName":{"name":"sstore","nativeSrc":"21491:6:18","nodeType":"YulIdentifier","src":"21491:6:18"},"nativeSrc":"21491:49:18","nodeType":"YulFunctionCall","src":"21491:49:18"},"nativeSrc":"21491:49:18","nodeType":"YulExpressionStatement","src":"21491:49:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21609:4:18","nodeType":"YulLiteral","src":"21609:4:18","type":"","value":"0x00"},{"name":"to","nativeSrc":"21615:2:18","nodeType":"YulIdentifier","src":"21615:2:18"}],"functionName":{"name":"mstore","nativeSrc":"21602:6:18","nodeType":"YulIdentifier","src":"21602:6:18"},"nativeSrc":"21602:16:18","nodeType":"YulFunctionCall","src":"21602:16:18"},"nativeSrc":"21602:16:18","nodeType":"YulExpressionStatement","src":"21602:16:18"},{"nativeSrc":"21631:42:18","nodeType":"YulVariableDeclaration","src":"21631:42:18","value":{"arguments":[{"kind":"number","nativeSrc":"21662:4:18","nodeType":"YulLiteral","src":"21662:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"21668:4:18","nodeType":"YulLiteral","src":"21668:4:18","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21652:9:18","nodeType":"YulIdentifier","src":"21652:9:18"},"nativeSrc":"21652:21:18","nodeType":"YulFunctionCall","src":"21652:21:18"},"variables":[{"name":"toBalanceSlot","nativeSrc":"21635:13:18","nodeType":"YulTypedName","src":"21635:13:18","type":""}]},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"21877:13:18","nodeType":"YulIdentifier","src":"21877:13:18"},{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"21902:13:18","nodeType":"YulIdentifier","src":"21902:13:18"}],"functionName":{"name":"sload","nativeSrc":"21896:5:18","nodeType":"YulIdentifier","src":"21896:5:18"},"nativeSrc":"21896:20:18","nodeType":"YulFunctionCall","src":"21896:20:18"},{"name":"amount","nativeSrc":"21918:6:18","nodeType":"YulIdentifier","src":"21918:6:18"}],"functionName":{"name":"add","nativeSrc":"21892:3:18","nodeType":"YulIdentifier","src":"21892:3:18"},"nativeSrc":"21892:33:18","nodeType":"YulFunctionCall","src":"21892:33:18"}],"functionName":{"name":"sstore","nativeSrc":"21870:6:18","nodeType":"YulIdentifier","src":"21870:6:18"},"nativeSrc":"21870:56:18","nodeType":"YulFunctionCall","src":"21870:56:18"},"nativeSrc":"21870:56:18","nodeType":"YulExpressionStatement","src":"21870:56:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21988:4:18","nodeType":"YulLiteral","src":"21988:4:18","type":"","value":"0x20"},{"name":"amount","nativeSrc":"21994:6:18","nodeType":"YulIdentifier","src":"21994:6:18"}],"functionName":{"name":"mstore","nativeSrc":"21981:6:18","nodeType":"YulIdentifier","src":"21981:6:18"},"nativeSrc":"21981:20:18","nodeType":"YulFunctionCall","src":"21981:20:18"},"nativeSrc":"21981:20:18","nodeType":"YulExpressionStatement","src":"21981:20:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22019:4:18","nodeType":"YulLiteral","src":"22019:4:18","type":"","value":"0x20"},{"kind":"number","nativeSrc":"22025:4:18","nodeType":"YulLiteral","src":"22025:4:18","type":"","value":"0x20"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"22031:25:18","nodeType":"YulIdentifier","src":"22031:25:18"},{"arguments":[{"kind":"number","nativeSrc":"22062:2:18","nodeType":"YulLiteral","src":"22062:2:18","type":"","value":"96"},{"name":"from_","nativeSrc":"22066:5:18","nodeType":"YulIdentifier","src":"22066:5:18"}],"functionName":{"name":"shr","nativeSrc":"22058:3:18","nodeType":"YulIdentifier","src":"22058:3:18"},"nativeSrc":"22058:14:18","nodeType":"YulFunctionCall","src":"22058:14:18"},{"arguments":[{"kind":"number","nativeSrc":"22078:2:18","nodeType":"YulLiteral","src":"22078:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"22088:4:18","nodeType":"YulLiteral","src":"22088:4:18","type":"","value":"0x0c"}],"functionName":{"name":"mload","nativeSrc":"22082:5:18","nodeType":"YulIdentifier","src":"22082:5:18"},"nativeSrc":"22082:11:18","nodeType":"YulFunctionCall","src":"22082:11:18"}],"functionName":{"name":"shr","nativeSrc":"22074:3:18","nodeType":"YulIdentifier","src":"22074:3:18"},"nativeSrc":"22074:20:18","nodeType":"YulFunctionCall","src":"22074:20:18"}],"functionName":{"name":"log3","nativeSrc":"22014:4:18","nodeType":"YulIdentifier","src":"22014:4:18"},"nativeSrc":"22014:81:18","nodeType":"YulFunctionCall","src":"22014:81:18"},"nativeSrc":"22014:81:18","nodeType":"YulExpressionStatement","src":"22014:81:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7994,"isOffset":false,"isSlot":false,"src":"21086:18:18","valueSize":1},{"declaration":7982,"isOffset":false,"isSlot":false,"src":"22031:25:18","valueSize":1},{"declaration":8291,"isOffset":false,"isSlot":false,"src":"21283:6:18","valueSize":1},{"declaration":8291,"isOffset":false,"isSlot":false,"src":"21532:6:18","valueSize":1},{"declaration":8291,"isOffset":false,"isSlot":false,"src":"21918:6:18","valueSize":1},{"declaration":8291,"isOffset":false,"isSlot":false,"src":"21994:6:18","valueSize":1},{"declaration":8287,"isOffset":false,"isSlot":false,"src":"20985:4:18","valueSize":1},{"declaration":8289,"isOffset":false,"isSlot":false,"src":"21615:2:18","valueSize":1}],"id":8300,"nodeType":"InlineAssembly","src":"20941:1164:18"},{"expression":{"arguments":[{"id":8302,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8287,"src":"22134:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8303,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8289,"src":"22140:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8304,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"22144:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8301,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8354,"src":"22114:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22114:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8306,"nodeType":"ExpressionStatement","src":"22114:37:18"}]},"documentation":{"id":8285,"nodeType":"StructuredDocumentation","src":"20703:54:18","text":"@dev Moves `amount` of tokens from `from` to `to`."},"id":8308,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"20771:9:18","nodeType":"FunctionDefinition","parameters":{"id":8292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8287,"mutability":"mutable","name":"from","nameLocation":"20789:4:18","nodeType":"VariableDeclaration","scope":8308,"src":"20781:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8286,"name":"address","nodeType":"ElementaryTypeName","src":"20781:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8289,"mutability":"mutable","name":"to","nameLocation":"20803:2:18","nodeType":"VariableDeclaration","scope":8308,"src":"20795:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8288,"name":"address","nodeType":"ElementaryTypeName","src":"20795:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8291,"mutability":"mutable","name":"amount","nameLocation":"20815:6:18","nodeType":"VariableDeclaration","scope":8308,"src":"20807:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8290,"name":"uint256","nodeType":"ElementaryTypeName","src":"20807:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20780:42:18"},"returnParameters":{"id":8293,"nodeType":"ParameterList","parameters":[],"src":"20840:0:18"},"scope":8355,"src":"20762:1396:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8319,"nodeType":"Block","src":"22622:857:18","statements":[{"AST":{"nativeSrc":"22684:789:18","nodeType":"YulBlock","src":"22684:789:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22767:4:18","nodeType":"YulLiteral","src":"22767:4:18","type":"","value":"0x20"},{"name":"spender","nativeSrc":"22773:7:18","nodeType":"YulIdentifier","src":"22773:7:18"}],"functionName":{"name":"mstore","nativeSrc":"22760:6:18","nodeType":"YulIdentifier","src":"22760:6:18"},"nativeSrc":"22760:21:18","nodeType":"YulFunctionCall","src":"22760:21:18"},"nativeSrc":"22760:21:18","nodeType":"YulExpressionStatement","src":"22760:21:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22801:4:18","nodeType":"YulLiteral","src":"22801:4:18","type":"","value":"0x0c"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"22807:20:18","nodeType":"YulIdentifier","src":"22807:20:18"}],"functionName":{"name":"mstore","nativeSrc":"22794:6:18","nodeType":"YulIdentifier","src":"22794:6:18"},"nativeSrc":"22794:34:18","nodeType":"YulFunctionCall","src":"22794:34:18"},"nativeSrc":"22794:34:18","nodeType":"YulExpressionStatement","src":"22794:34:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22848:4:18","nodeType":"YulLiteral","src":"22848:4:18","type":"","value":"0x00"},{"name":"owner","nativeSrc":"22854:5:18","nodeType":"YulIdentifier","src":"22854:5:18"}],"functionName":{"name":"mstore","nativeSrc":"22841:6:18","nodeType":"YulIdentifier","src":"22841:6:18"},"nativeSrc":"22841:19:18","nodeType":"YulFunctionCall","src":"22841:19:18"},"nativeSrc":"22841:19:18","nodeType":"YulExpressionStatement","src":"22841:19:18"},{"nativeSrc":"22873:42:18","nodeType":"YulVariableDeclaration","src":"22873:42:18","value":{"arguments":[{"kind":"number","nativeSrc":"22904:4:18","nodeType":"YulLiteral","src":"22904:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"22910:4:18","nodeType":"YulLiteral","src":"22910:4:18","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"22894:9:18","nodeType":"YulIdentifier","src":"22894:9:18"},"nativeSrc":"22894:21:18","nodeType":"YulFunctionCall","src":"22894:21:18"},"variables":[{"name":"allowanceSlot","nativeSrc":"22877:13:18","nodeType":"YulTypedName","src":"22877:13:18","type":""}]},{"nativeSrc":"22928:38:18","nodeType":"YulVariableDeclaration","src":"22928:38:18","value":{"arguments":[{"name":"allowanceSlot","nativeSrc":"22952:13:18","nodeType":"YulIdentifier","src":"22952:13:18"}],"functionName":{"name":"sload","nativeSrc":"22946:5:18","nodeType":"YulIdentifier","src":"22946:5:18"},"nativeSrc":"22946:20:18","nodeType":"YulFunctionCall","src":"22946:20:18"},"variables":[{"name":"allowance_","nativeSrc":"22932:10:18","nodeType":"YulTypedName","src":"22932:10:18","type":""}]},{"body":{"nativeSrc":"23067:396:18","nodeType":"YulBlock","src":"23067:396:18","statements":[{"body":{"nativeSrc":"23192:133:18","nodeType":"YulBlock","src":"23192:133:18","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23221:4:18","nodeType":"YulLiteral","src":"23221:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"23227:10:18","nodeType":"YulLiteral","src":"23227:10:18","type":"","value":"0x13be252b"}],"functionName":{"name":"mstore","nativeSrc":"23214:6:18","nodeType":"YulIdentifier","src":"23214:6:18"},"nativeSrc":"23214:24:18","nodeType":"YulFunctionCall","src":"23214:24:18"},"nativeSrc":"23214:24:18","nodeType":"YulExpressionStatement","src":"23214:24:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23296:4:18","nodeType":"YulLiteral","src":"23296:4:18","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"23302:4:18","nodeType":"YulLiteral","src":"23302:4:18","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"23289:6:18","nodeType":"YulIdentifier","src":"23289:6:18"},"nativeSrc":"23289:18:18","nodeType":"YulFunctionCall","src":"23289:18:18"},"nativeSrc":"23289:18:18","nodeType":"YulExpressionStatement","src":"23289:18:18"}]},"condition":{"arguments":[{"name":"amount","nativeSrc":"23172:6:18","nodeType":"YulIdentifier","src":"23172:6:18"},{"name":"allowance_","nativeSrc":"23180:10:18","nodeType":"YulIdentifier","src":"23180:10:18"}],"functionName":{"name":"gt","nativeSrc":"23169:2:18","nodeType":"YulIdentifier","src":"23169:2:18"},"nativeSrc":"23169:22:18","nodeType":"YulFunctionCall","src":"23169:22:18"},"nativeSrc":"23166:159:18","nodeType":"YulIf","src":"23166:159:18"},{"expression":{"arguments":[{"name":"allowanceSlot","nativeSrc":"23410:13:18","nodeType":"YulIdentifier","src":"23410:13:18"},{"arguments":[{"name":"allowance_","nativeSrc":"23429:10:18","nodeType":"YulIdentifier","src":"23429:10:18"},{"name":"amount","nativeSrc":"23441:6:18","nodeType":"YulIdentifier","src":"23441:6:18"}],"functionName":{"name":"sub","nativeSrc":"23425:3:18","nodeType":"YulIdentifier","src":"23425:3:18"},"nativeSrc":"23425:23:18","nodeType":"YulFunctionCall","src":"23425:23:18"}],"functionName":{"name":"sstore","nativeSrc":"23403:6:18","nodeType":"YulIdentifier","src":"23403:6:18"},"nativeSrc":"23403:46:18","nodeType":"YulFunctionCall","src":"23403:46:18"},"nativeSrc":"23403:46:18","nodeType":"YulExpressionStatement","src":"23403:46:18"}]},"condition":{"arguments":[{"name":"allowance_","nativeSrc":"23052:10:18","nodeType":"YulIdentifier","src":"23052:10:18"},{"kind":"number","nativeSrc":"23064:1:18","nodeType":"YulLiteral","src":"23064:1:18","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23048:3:18","nodeType":"YulIdentifier","src":"23048:3:18"},"nativeSrc":"23048:18:18","nodeType":"YulFunctionCall","src":"23048:18:18"},"nativeSrc":"23045:418:18","nodeType":"YulIf","src":"23045:418:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7998,"isOffset":false,"isSlot":false,"src":"22807:20:18","valueSize":1},{"declaration":8315,"isOffset":false,"isSlot":false,"src":"23172:6:18","valueSize":1},{"declaration":8315,"isOffset":false,"isSlot":false,"src":"23441:6:18","valueSize":1},{"declaration":8311,"isOffset":false,"isSlot":false,"src":"22854:5:18","valueSize":1},{"declaration":8313,"isOffset":false,"isSlot":false,"src":"22773:7:18","valueSize":1}],"id":8318,"nodeType":"InlineAssembly","src":"22675:798:18"}]},"documentation":{"id":8309,"nodeType":"StructuredDocumentation","src":"22447:80:18","text":"@dev Updates the allowance of `owner` for `spender` based on spent `amount`."},"id":8320,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"22541:15:18","nodeType":"FunctionDefinition","parameters":{"id":8316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8311,"mutability":"mutable","name":"owner","nameLocation":"22565:5:18","nodeType":"VariableDeclaration","scope":8320,"src":"22557:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8310,"name":"address","nodeType":"ElementaryTypeName","src":"22557:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8313,"mutability":"mutable","name":"spender","nameLocation":"22580:7:18","nodeType":"VariableDeclaration","scope":8320,"src":"22572:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8312,"name":"address","nodeType":"ElementaryTypeName","src":"22572:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8315,"mutability":"mutable","name":"amount","nameLocation":"22597:6:18","nodeType":"VariableDeclaration","scope":8320,"src":"22589:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8314,"name":"uint256","nodeType":"ElementaryTypeName","src":"22589:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22556:48:18"},"returnParameters":{"id":8317,"nodeType":"ParameterList","parameters":[],"src":"22622:0:18"},"scope":8355,"src":"22532:947:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8331,"nodeType":"Block","src":"23695:497:18","statements":[{"AST":{"nativeSrc":"23757:429:18","nodeType":"YulBlock","src":"23757:429:18","statements":[{"nativeSrc":"23771:28:18","nodeType":"YulVariableDeclaration","src":"23771:28:18","value":{"arguments":[{"kind":"number","nativeSrc":"23789:2:18","nodeType":"YulLiteral","src":"23789:2:18","type":"","value":"96"},{"name":"owner","nativeSrc":"23793:5:18","nodeType":"YulIdentifier","src":"23793:5:18"}],"functionName":{"name":"shl","nativeSrc":"23785:3:18","nodeType":"YulIdentifier","src":"23785:3:18"},"nativeSrc":"23785:14:18","nodeType":"YulFunctionCall","src":"23785:14:18"},"variables":[{"name":"owner_","nativeSrc":"23775:6:18","nodeType":"YulTypedName","src":"23775:6:18","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23883:4:18","nodeType":"YulLiteral","src":"23883:4:18","type":"","value":"0x20"},{"name":"spender","nativeSrc":"23889:7:18","nodeType":"YulIdentifier","src":"23889:7:18"}],"functionName":{"name":"mstore","nativeSrc":"23876:6:18","nodeType":"YulIdentifier","src":"23876:6:18"},"nativeSrc":"23876:21:18","nodeType":"YulFunctionCall","src":"23876:21:18"},"nativeSrc":"23876:21:18","nodeType":"YulExpressionStatement","src":"23876:21:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23917:4:18","nodeType":"YulLiteral","src":"23917:4:18","type":"","value":"0x0c"},{"arguments":[{"name":"owner_","nativeSrc":"23926:6:18","nodeType":"YulIdentifier","src":"23926:6:18"},{"name":"_ALLOWANCE_SLOT_SEED","nativeSrc":"23934:20:18","nodeType":"YulIdentifier","src":"23934:20:18"}],"functionName":{"name":"or","nativeSrc":"23923:2:18","nodeType":"YulIdentifier","src":"23923:2:18"},"nativeSrc":"23923:32:18","nodeType":"YulFunctionCall","src":"23923:32:18"}],"functionName":{"name":"mstore","nativeSrc":"23910:6:18","nodeType":"YulIdentifier","src":"23910:6:18"},"nativeSrc":"23910:46:18","nodeType":"YulFunctionCall","src":"23910:46:18"},"nativeSrc":"23910:46:18","nodeType":"YulExpressionStatement","src":"23910:46:18"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23986:4:18","nodeType":"YulLiteral","src":"23986:4:18","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"23992:4:18","nodeType":"YulLiteral","src":"23992:4:18","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"23976:9:18","nodeType":"YulIdentifier","src":"23976:9:18"},"nativeSrc":"23976:21:18","nodeType":"YulFunctionCall","src":"23976:21:18"},{"name":"amount","nativeSrc":"23999:6:18","nodeType":"YulIdentifier","src":"23999:6:18"}],"functionName":{"name":"sstore","nativeSrc":"23969:6:18","nodeType":"YulIdentifier","src":"23969:6:18"},"nativeSrc":"23969:37:18","nodeType":"YulFunctionCall","src":"23969:37:18"},"nativeSrc":"23969:37:18","nodeType":"YulExpressionStatement","src":"23969:37:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24068:4:18","nodeType":"YulLiteral","src":"24068:4:18","type":"","value":"0x00"},{"name":"amount","nativeSrc":"24074:6:18","nodeType":"YulIdentifier","src":"24074:6:18"}],"functionName":{"name":"mstore","nativeSrc":"24061:6:18","nodeType":"YulIdentifier","src":"24061:6:18"},"nativeSrc":"24061:20:18","nodeType":"YulFunctionCall","src":"24061:20:18"},"nativeSrc":"24061:20:18","nodeType":"YulExpressionStatement","src":"24061:20:18"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24099:4:18","nodeType":"YulLiteral","src":"24099:4:18","type":"","value":"0x00"},{"kind":"number","nativeSrc":"24105:4:18","nodeType":"YulLiteral","src":"24105:4:18","type":"","value":"0x20"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"24111:25:18","nodeType":"YulIdentifier","src":"24111:25:18"},{"arguments":[{"kind":"number","nativeSrc":"24142:2:18","nodeType":"YulLiteral","src":"24142:2:18","type":"","value":"96"},{"name":"owner_","nativeSrc":"24146:6:18","nodeType":"YulIdentifier","src":"24146:6:18"}],"functionName":{"name":"shr","nativeSrc":"24138:3:18","nodeType":"YulIdentifier","src":"24138:3:18"},"nativeSrc":"24138:15:18","nodeType":"YulFunctionCall","src":"24138:15:18"},{"arguments":[{"kind":"number","nativeSrc":"24159:2:18","nodeType":"YulLiteral","src":"24159:2:18","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24169:4:18","nodeType":"YulLiteral","src":"24169:4:18","type":"","value":"0x2c"}],"functionName":{"name":"mload","nativeSrc":"24163:5:18","nodeType":"YulIdentifier","src":"24163:5:18"},"nativeSrc":"24163:11:18","nodeType":"YulFunctionCall","src":"24163:11:18"}],"functionName":{"name":"shr","nativeSrc":"24155:3:18","nodeType":"YulIdentifier","src":"24155:3:18"},"nativeSrc":"24155:20:18","nodeType":"YulFunctionCall","src":"24155:20:18"}],"functionName":{"name":"log3","nativeSrc":"24094:4:18","nodeType":"YulIdentifier","src":"24094:4:18"},"nativeSrc":"24094:82:18","nodeType":"YulFunctionCall","src":"24094:82:18"},"nativeSrc":"24094:82:18","nodeType":"YulExpressionStatement","src":"24094:82:18"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":7998,"isOffset":false,"isSlot":false,"src":"23934:20:18","valueSize":1},{"declaration":7986,"isOffset":false,"isSlot":false,"src":"24111:25:18","valueSize":1},{"declaration":8327,"isOffset":false,"isSlot":false,"src":"23999:6:18","valueSize":1},{"declaration":8327,"isOffset":false,"isSlot":false,"src":"24074:6:18","valueSize":1},{"declaration":8323,"isOffset":false,"isSlot":false,"src":"23793:5:18","valueSize":1},{"declaration":8325,"isOffset":false,"isSlot":false,"src":"23889:7:18","valueSize":1}],"id":8330,"nodeType":"InlineAssembly","src":"23748:438:18"}]},"documentation":{"id":8321,"nodeType":"StructuredDocumentation","src":"23485:122:18","text":"@dev Sets `amount` as the allowance of `spender` over the tokens of `owner`.\n Emits a {Approval} event."},"id":8332,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"23621:8:18","nodeType":"FunctionDefinition","parameters":{"id":8328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8323,"mutability":"mutable","name":"owner","nameLocation":"23638:5:18","nodeType":"VariableDeclaration","scope":8332,"src":"23630:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8322,"name":"address","nodeType":"ElementaryTypeName","src":"23630:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8325,"mutability":"mutable","name":"spender","nameLocation":"23653:7:18","nodeType":"VariableDeclaration","scope":8332,"src":"23645:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8324,"name":"address","nodeType":"ElementaryTypeName","src":"23645:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8327,"mutability":"mutable","name":"amount","nameLocation":"23670:6:18","nodeType":"VariableDeclaration","scope":8332,"src":"23662:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8326,"name":"uint256","nodeType":"ElementaryTypeName","src":"23662:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23629:48:18"},"returnParameters":{"id":8329,"nodeType":"ParameterList","parameters":[],"src":"23695:0:18"},"scope":8355,"src":"23612:580:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8342,"nodeType":"Block","src":"24677:2:18","statements":[]},"documentation":{"id":8333,"nodeType":"StructuredDocumentation","src":"24481:102:18","text":"@dev Hook that is called before any transfer of tokens.\n This includes minting and burning."},"id":8343,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"24597:20:18","nodeType":"FunctionDefinition","parameters":{"id":8340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8335,"mutability":"mutable","name":"from","nameLocation":"24626:4:18","nodeType":"VariableDeclaration","scope":8343,"src":"24618:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8334,"name":"address","nodeType":"ElementaryTypeName","src":"24618:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8337,"mutability":"mutable","name":"to","nameLocation":"24640:2:18","nodeType":"VariableDeclaration","scope":8343,"src":"24632:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8336,"name":"address","nodeType":"ElementaryTypeName","src":"24632:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8339,"mutability":"mutable","name":"amount","nameLocation":"24652:6:18","nodeType":"VariableDeclaration","scope":8343,"src":"24644:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8338,"name":"uint256","nodeType":"ElementaryTypeName","src":"24644:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24617:42:18"},"returnParameters":{"id":8341,"nodeType":"ParameterList","parameters":[],"src":"24677:0:18"},"scope":8355,"src":"24588:91:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8353,"nodeType":"Block","src":"24879:2:18","statements":[]},"documentation":{"id":8344,"nodeType":"StructuredDocumentation","src":"24685:101:18","text":"@dev Hook that is called after any transfer of tokens.\n This includes minting and burning."},"id":8354,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"24800:19:18","nodeType":"FunctionDefinition","parameters":{"id":8351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8346,"mutability":"mutable","name":"from","nameLocation":"24828:4:18","nodeType":"VariableDeclaration","scope":8354,"src":"24820:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8345,"name":"address","nodeType":"ElementaryTypeName","src":"24820:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8348,"mutability":"mutable","name":"to","nameLocation":"24842:2:18","nodeType":"VariableDeclaration","scope":8354,"src":"24834:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8347,"name":"address","nodeType":"ElementaryTypeName","src":"24834:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8350,"mutability":"mutable","name":"amount","nameLocation":"24854:6:18","nodeType":"VariableDeclaration","scope":8354,"src":"24846:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8349,"name":"uint256","nodeType":"ElementaryTypeName","src":"24846:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24819:42:18"},"returnParameters":{"id":8352,"nodeType":"ParameterList","parameters":[],"src":"24879:0:18"},"scope":8355,"src":"24791:90:18","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8356,"src":"1140:23743:18","usedErrors":[7942,7945,7948,7951,7954,7957,7960],"usedEvents":[7969,7978]}],"src":"32:24852:18"},"id":18},"@solady/tokens/ERC721.sol":{"ast":{"absolutePath":"@solady/tokens/ERC721.sol","exportedSymbols":{"ERC721":[9097]},"id":9098,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8357,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:19"},{"abstract":true,"baseContracts":[],"canonicalName":"ERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":8358,"nodeType":"StructuredDocumentation","src":"1265:176:19","text":"- Check that the overridden function is actually used in the function you want to\n change the behavior of. Much of the code has been manually inlined for performance."},"fullyImplemented":false,"id":9097,"linearizedBaseContracts":[9097],"name":"ERC721","nameLocation":"1459:6:19","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":8359,"nodeType":"StructuredDocumentation","src":"1755:53:19","text":"@dev An account can hold up to 4294967295 tokens."},"id":8362,"mutability":"constant","name":"_MAX_ACCOUNT_BALANCE","nameLocation":"1839:20:19","nodeType":"VariableDeclaration","scope":9097,"src":"1813:59:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8360,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30786666666666666666","id":8361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1862:10:19","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xffffffff"},"visibility":"internal"},{"documentation":{"id":8363,"nodeType":"StructuredDocumentation","src":"2162:74:19","text":"@dev Only the token owner or an approved account can manage the token."},"errorSelector":"4b6e7f18","id":8365,"name":"NotOwnerNorApproved","nameLocation":"2247:19:19","nodeType":"ErrorDefinition","parameters":{"id":8364,"nodeType":"ParameterList","parameters":[],"src":"2266:2:19"},"src":"2241:28:19"},{"documentation":{"id":8366,"nodeType":"StructuredDocumentation","src":"2275:34:19","text":"@dev The token does not exist."},"errorSelector":"ceea21b6","id":8368,"name":"TokenDoesNotExist","nameLocation":"2320:17:19","nodeType":"ErrorDefinition","parameters":{"id":8367,"nodeType":"ParameterList","parameters":[],"src":"2337:2:19"},"src":"2314:26:19"},{"documentation":{"id":8369,"nodeType":"StructuredDocumentation","src":"2346:34:19","text":"@dev The token already exists."},"errorSelector":"c991cbb1","id":8371,"name":"TokenAlreadyExists","nameLocation":"2391:18:19","nodeType":"ErrorDefinition","parameters":{"id":8370,"nodeType":"ParameterList","parameters":[],"src":"2409:2:19"},"src":"2385:27:19"},{"documentation":{"id":8372,"nodeType":"StructuredDocumentation","src":"2418:55:19","text":"@dev Cannot query the balance for the zero address."},"errorSelector":"8f4eb604","id":8374,"name":"BalanceQueryForZeroAddress","nameLocation":"2484:26:19","nodeType":"ErrorDefinition","parameters":{"id":8373,"nodeType":"ParameterList","parameters":[],"src":"2510:2:19"},"src":"2478:35:19"},{"documentation":{"id":8375,"nodeType":"StructuredDocumentation","src":"2519:53:19","text":"@dev Cannot mint or transfer to the zero address."},"errorSelector":"ea553b34","id":8377,"name":"TransferToZeroAddress","nameLocation":"2583:21:19","nodeType":"ErrorDefinition","parameters":{"id":8376,"nodeType":"ParameterList","parameters":[],"src":"2604:2:19"},"src":"2577:30:19"},{"documentation":{"id":8378,"nodeType":"StructuredDocumentation","src":"2613:43:19","text":"@dev The token must be owned by `from`."},"errorSelector":"a1148100","id":8380,"name":"TransferFromIncorrectOwner","nameLocation":"2667:26:19","nodeType":"ErrorDefinition","parameters":{"id":8379,"nodeType":"ParameterList","parameters":[],"src":"2693:2:19"},"src":"2661:35:19"},{"documentation":{"id":8381,"nodeType":"StructuredDocumentation","src":"2702:48:19","text":"@dev The recipient's balance has overflowed."},"errorSelector":"01336cea","id":8383,"name":"AccountBalanceOverflow","nameLocation":"2761:22:19","nodeType":"ErrorDefinition","parameters":{"id":8382,"nodeType":"ParameterList","parameters":[],"src":"2783:2:19"},"src":"2755:31:19"},{"documentation":{"id":8384,"nodeType":"StructuredDocumentation","src":"2792:107:19","text":"@dev Cannot safely transfer to a contract that does not implement\n the ERC721Receiver interface."},"errorSelector":"d1a57ed6","id":8386,"name":"TransferToNonERC721ReceiverImplementer","nameLocation":"2910:38:19","nodeType":"ErrorDefinition","parameters":{"id":8385,"nodeType":"ParameterList","parameters":[],"src":"2948:2:19"},"src":"2904:47:19"},{"anonymous":false,"documentation":{"id":8387,"nodeType":"StructuredDocumentation","src":"3240:68:19","text":"@dev Emitted when token `id` is transferred from `from` to `to`."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":8395,"name":"Transfer","nameLocation":"3319:8:19","nodeType":"EventDefinition","parameters":{"id":8394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8389,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"3344:4:19","nodeType":"VariableDeclaration","scope":8395,"src":"3328:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8388,"name":"address","nodeType":"ElementaryTypeName","src":"3328:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8391,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"3366:2:19","nodeType":"VariableDeclaration","scope":8395,"src":"3350:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8390,"name":"address","nodeType":"ElementaryTypeName","src":"3350:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8393,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3386:2:19","nodeType":"VariableDeclaration","scope":8395,"src":"3370:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8392,"name":"uint256","nodeType":"ElementaryTypeName","src":"3370:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3327:62:19"},"src":"3313:77:19"},{"anonymous":false,"documentation":{"id":8396,"nodeType":"StructuredDocumentation","src":"3396:73:19","text":"@dev Emitted when `owner` enables `account` to manage the `id` token."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":8404,"name":"Approval","nameLocation":"3480:8:19","nodeType":"EventDefinition","parameters":{"id":8403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8398,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3505:5:19","nodeType":"VariableDeclaration","scope":8404,"src":"3489:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8397,"name":"address","nodeType":"ElementaryTypeName","src":"3489:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8400,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"3528:7:19","nodeType":"VariableDeclaration","scope":8404,"src":"3512:23:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8399,"name":"address","nodeType":"ElementaryTypeName","src":"3512:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8402,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"3553:2:19","nodeType":"VariableDeclaration","scope":8404,"src":"3537:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8401,"name":"uint256","nodeType":"ElementaryTypeName","src":"3537:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3488:68:19"},"src":"3474:83:19"},{"anonymous":false,"documentation":{"id":8405,"nodeType":"StructuredDocumentation","src":"3563:91:19","text":"@dev Emitted when `owner` enables or disables `operator` to manage all of their tokens."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","id":8413,"name":"ApprovalForAll","nameLocation":"3665:14:19","nodeType":"EventDefinition","parameters":{"id":8412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8407,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"3696:5:19","nodeType":"VariableDeclaration","scope":8413,"src":"3680:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8406,"name":"address","nodeType":"ElementaryTypeName","src":"3680:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8409,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"3719:8:19","nodeType":"VariableDeclaration","scope":8413,"src":"3703:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8408,"name":"address","nodeType":"ElementaryTypeName","src":"3703:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8411,"indexed":false,"mutability":"mutable","name":"isApproved","nameLocation":"3734:10:19","nodeType":"VariableDeclaration","scope":8413,"src":"3729:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8410,"name":"bool","nodeType":"ElementaryTypeName","src":"3729:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3679:66:19"},"src":"3659:87:19"},{"constant":true,"documentation":{"id":8414,"nodeType":"StructuredDocumentation","src":"3752:65:19","text":"@dev `keccak256(bytes(\"Transfer(address,address,uint256)\"))`."},"id":8417,"mutability":"constant","name":"_TRANSFER_EVENT_SIGNATURE","nameLocation":"3847:25:19","nodeType":"VariableDeclaration","scope":9097,"src":"3822:127:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3822:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307864646632353261643162653263383962363963326230363866633337386461613935326261376631363363346131313632386635356134646635323362336566","id":8416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3883:66:19","typeDescriptions":{"typeIdentifier":"t_rational_100389287136786176327247604509743168900146139575972864366142685224231313322991_by_1","typeString":"int_const 1003...(70 digits omitted)...2991"},"value":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"},"visibility":"private"},{"constant":true,"documentation":{"id":8418,"nodeType":"StructuredDocumentation","src":"3956:65:19","text":"@dev `keccak256(bytes(\"Approval(address,address,uint256)\"))`."},"id":8421,"mutability":"constant","name":"_APPROVAL_EVENT_SIGNATURE","nameLocation":"4051:25:19","nodeType":"VariableDeclaration","scope":9097,"src":"4026:127:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8419,"name":"uint256","nodeType":"ElementaryTypeName","src":"4026:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307838633562653165356562656337643562643134663731343237643165383466336464303331346330663762323239316535623230306163386337633362393235","id":8420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4087:66:19","typeDescriptions":{"typeIdentifier":"t_rational_63486140976153616755203102783360879283472101686154884697241723088393386309925_by_1","typeString":"int_const 6348...(69 digits omitted)...9925"},"value":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},"visibility":"private"},{"constant":true,"documentation":{"id":8422,"nodeType":"StructuredDocumentation","src":"4160:68:19","text":"@dev `keccak256(bytes(\"ApprovalForAll(address,address,bool)\"))`."},"id":8425,"mutability":"constant","name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nameLocation":"4258:33:19","nodeType":"VariableDeclaration","scope":9097,"src":"4233:135:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8423,"name":"uint256","nodeType":"ElementaryTypeName","src":"4233:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307831373330376561623339616236313037653838393938343561643364353962643936353366323030663232303932303438396361326235393337363936633331","id":8424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4302:66:19","typeDescriptions":{"typeIdentifier":"t_rational_10488878412788366941768124514102328501031624832915735463117339209566108871729_by_1","typeString":"int_const 1048...(69 digits omitted)...1729"},"value":"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31"},"visibility":"private"},{"constant":true,"documentation":{"id":8426,"nodeType":"StructuredDocumentation","src":"4658:1014:19","text":"@dev The ownership data slot of `id` is given by:\n ```\n mstore(0x00, id)\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20)))\n ```\n Bits Layout:\n - [0..159] `addr`\n - [160..255] `extraData`\n The approved address slot is given by: `add(1, ownershipSlot)`.\n See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip\n The balance slot of `owner` is given by:\n ```\n mstore(0x1c, _ERC721_MASTER_SLOT_SEED)\n mstore(0x00, owner)\n let balanceSlot := keccak256(0x0c, 0x1c)\n ```\n Bits Layout:\n - [0..31] `balance`\n - [32..255] `aux`\n The `operator` approval slot of `owner` is given by:\n ```\n mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator))\n mstore(0x00, owner)\n let operatorApprovalSlot := keccak256(0x0c, 0x30)\n ```"},"id":8431,"mutability":"constant","name":"_ERC721_MASTER_SLOT_SEED","nameLocation":"5702:24:19","nodeType":"VariableDeclaration","scope":9097,"src":"5677:77:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8427,"name":"uint256","nodeType":"ElementaryTypeName","src":"5677:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_56779654877098784894033833160858981098869911147275929510173318722286648295424_by_1","typeString":"int_const 5677...(69 digits omitted)...5424"},"id":8430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"307837643838323535333061356132653761","id":8428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5729:18:19","typeDescriptions":{"typeIdentifier":"t_rational_9045520890159836794_by_1","typeString":"int_const 9045520890159836794"},"value":"0x7d8825530a5a2e7a"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":8429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5751:3:19","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"5729:25:19","typeDescriptions":{"typeIdentifier":"t_rational_56779654877098784894033833160858981098869911147275929510173318722286648295424_by_1","typeString":"int_const 5677...(69 digits omitted)...5424"}},"visibility":"private"},{"constant":true,"documentation":{"id":8432,"nodeType":"StructuredDocumentation","src":"5761:45:19","text":"@dev Pre-shifted and pre-masked constant."},"id":8435,"mutability":"constant","name":"_ERC721_MASTER_SLOT_SEED_MASKED","nameLocation":"5836:31:19","nodeType":"VariableDeclaration","scope":9097,"src":"5811:77:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8433,"name":"uint256","nodeType":"ElementaryTypeName","src":"5811:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830613561326537613030303030303030","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5870:18:19","typeDescriptions":{"typeIdentifier":"t_rational_745959789804126208_by_1","typeString":"int_const 745959789804126208"},"value":"0x0a5a2e7a00000000"},"visibility":"private"},{"documentation":{"id":8436,"nodeType":"StructuredDocumentation","src":"6178:43:19","text":"@dev Returns the token collection name."},"functionSelector":"06fdde03","id":8441,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"6235:4:19","nodeType":"FunctionDefinition","parameters":{"id":8437,"nodeType":"ParameterList","parameters":[],"src":"6239:2:19"},"returnParameters":{"id":8440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8441,"src":"6271:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8438,"name":"string","nodeType":"ElementaryTypeName","src":"6271:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6270:15:19"},"scope":9097,"src":"6226:60:19","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8442,"nodeType":"StructuredDocumentation","src":"6292:45:19","text":"@dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":8447,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"6351:6:19","nodeType":"FunctionDefinition","parameters":{"id":8443,"nodeType":"ParameterList","parameters":[],"src":"6357:2:19"},"returnParameters":{"id":8446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8447,"src":"6389:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8444,"name":"string","nodeType":"ElementaryTypeName","src":"6389:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6388:15:19"},"scope":9097,"src":"6342:62:19","stateMutability":"view","virtual":true,"visibility":"public"},{"documentation":{"id":8448,"nodeType":"StructuredDocumentation","src":"6410:70:19","text":"@dev Returns the Uniform Resource Identifier (URI) for token `id`."},"functionSelector":"c87b56dd","id":8455,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"6494:8:19","nodeType":"FunctionDefinition","parameters":{"id":8451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8450,"mutability":"mutable","name":"id","nameLocation":"6511:2:19","nodeType":"VariableDeclaration","scope":8455,"src":"6503:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8449,"name":"uint256","nodeType":"ElementaryTypeName","src":"6503:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6502:12:19"},"returnParameters":{"id":8454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8455,"src":"6544:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8452,"name":"string","nodeType":"ElementaryTypeName","src":"6544:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6543:15:19"},"scope":9097,"src":"6485:74:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8470,"nodeType":"Block","src":"7031:258:19","statements":[{"expression":{"id":8467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8463,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8461,"src":"7041:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8465,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8458,"src":"7059:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8464,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8641,"src":"7050:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":8466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7050:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7041:21:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8468,"nodeType":"ExpressionStatement","src":"7041:21:19"},{"AST":{"nativeSrc":"7124:159:19","nodeType":"YulBlock","src":"7124:159:19","statements":[{"body":{"nativeSrc":"7156:117:19","nodeType":"YulBlock","src":"7156:117:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7181:4:19","nodeType":"YulLiteral","src":"7181:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7187:10:19","nodeType":"YulLiteral","src":"7187:10:19","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"7174:6:19","nodeType":"YulIdentifier","src":"7174:6:19"},"nativeSrc":"7174:24:19","nodeType":"YulFunctionCall","src":"7174:24:19"},"nativeSrc":"7174:24:19","nodeType":"YulExpressionStatement","src":"7174:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7248:4:19","nodeType":"YulLiteral","src":"7248:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7254:4:19","nodeType":"YulLiteral","src":"7254:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7241:6:19","nodeType":"YulIdentifier","src":"7241:6:19"},"nativeSrc":"7241:18:19","nodeType":"YulFunctionCall","src":"7241:18:19"},"nativeSrc":"7241:18:19","nodeType":"YulExpressionStatement","src":"7241:18:19"}]},"condition":{"arguments":[{"name":"result","nativeSrc":"7148:6:19","nodeType":"YulIdentifier","src":"7148:6:19"}],"functionName":{"name":"iszero","nativeSrc":"7141:6:19","nodeType":"YulIdentifier","src":"7141:6:19"},"nativeSrc":"7141:14:19","nodeType":"YulFunctionCall","src":"7141:14:19"},"nativeSrc":"7138:135:19","nodeType":"YulIf","src":"7138:135:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8461,"isOffset":false,"isSlot":false,"src":"7148:6:19","valueSize":1}],"id":8469,"nodeType":"InlineAssembly","src":"7115:168:19"}]},"documentation":{"id":8456,"nodeType":"StructuredDocumentation","src":"6848:104:19","text":"@dev Returns the owner of token `id`.\n Requirements:\n - Token `id` must exist."},"functionSelector":"6352211e","id":8471,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"6966:7:19","nodeType":"FunctionDefinition","parameters":{"id":8459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8458,"mutability":"mutable","name":"id","nameLocation":"6982:2:19","nodeType":"VariableDeclaration","scope":8471,"src":"6974:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8457,"name":"uint256","nodeType":"ElementaryTypeName","src":"6974:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6973:12:19"},"returnParameters":{"id":8462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8461,"mutability":"mutable","name":"result","nameLocation":"7023:6:19","nodeType":"VariableDeclaration","scope":8471,"src":"7015:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8460,"name":"address","nodeType":"ElementaryTypeName","src":"7015:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7014:16:19"},"scope":9097,"src":"6957:332:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8480,"nodeType":"Block","src":"7512:454:19","statements":[{"AST":{"nativeSrc":"7574:386:19","nodeType":"YulBlock","src":"7574:386:19","statements":[{"body":{"nativeSrc":"7663:126:19","nodeType":"YulBlock","src":"7663:126:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7688:4:19","nodeType":"YulLiteral","src":"7688:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7694:10:19","nodeType":"YulLiteral","src":"7694:10:19","type":"","value":"0x8f4eb604"}],"functionName":{"name":"mstore","nativeSrc":"7681:6:19","nodeType":"YulIdentifier","src":"7681:6:19"},"nativeSrc":"7681:24:19","nodeType":"YulFunctionCall","src":"7681:24:19"},"nativeSrc":"7681:24:19","nodeType":"YulExpressionStatement","src":"7681:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7764:4:19","nodeType":"YulLiteral","src":"7764:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7770:4:19","nodeType":"YulLiteral","src":"7770:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7757:6:19","nodeType":"YulIdentifier","src":"7757:6:19"},"nativeSrc":"7757:18:19","nodeType":"YulFunctionCall","src":"7757:18:19"},"nativeSrc":"7757:18:19","nodeType":"YulExpressionStatement","src":"7757:18:19"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"7656:5:19","nodeType":"YulIdentifier","src":"7656:5:19"}],"functionName":{"name":"iszero","nativeSrc":"7649:6:19","nodeType":"YulIdentifier","src":"7649:6:19"},"nativeSrc":"7649:13:19","nodeType":"YulFunctionCall","src":"7649:13:19"},"nativeSrc":"7646:143:19","nodeType":"YulIf","src":"7646:143:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7809:4:19","nodeType":"YulLiteral","src":"7809:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"7815:24:19","nodeType":"YulIdentifier","src":"7815:24:19"}],"functionName":{"name":"mstore","nativeSrc":"7802:6:19","nodeType":"YulIdentifier","src":"7802:6:19"},"nativeSrc":"7802:38:19","nodeType":"YulFunctionCall","src":"7802:38:19"},"nativeSrc":"7802:38:19","nodeType":"YulExpressionStatement","src":"7802:38:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7860:4:19","nodeType":"YulLiteral","src":"7860:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"7866:5:19","nodeType":"YulIdentifier","src":"7866:5:19"}],"functionName":{"name":"mstore","nativeSrc":"7853:6:19","nodeType":"YulIdentifier","src":"7853:6:19"},"nativeSrc":"7853:19:19","nodeType":"YulFunctionCall","src":"7853:19:19"},"nativeSrc":"7853:19:19","nodeType":"YulExpressionStatement","src":"7853:19:19"},{"nativeSrc":"7885:65:19","nodeType":"YulAssignment","src":"7885:65:19","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7915:4:19","nodeType":"YulLiteral","src":"7915:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"7921:4:19","nodeType":"YulLiteral","src":"7921:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"7905:9:19","nodeType":"YulIdentifier","src":"7905:9:19"},"nativeSrc":"7905:21:19","nodeType":"YulFunctionCall","src":"7905:21:19"}],"functionName":{"name":"sload","nativeSrc":"7899:5:19","nodeType":"YulIdentifier","src":"7899:5:19"},"nativeSrc":"7899:28:19","nodeType":"YulFunctionCall","src":"7899:28:19"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"7929:20:19","nodeType":"YulIdentifier","src":"7929:20:19"}],"functionName":{"name":"and","nativeSrc":"7895:3:19","nodeType":"YulIdentifier","src":"7895:3:19"},"nativeSrc":"7895:55:19","nodeType":"YulFunctionCall","src":"7895:55:19"},"variableNames":[{"name":"result","nativeSrc":"7885:6:19","nodeType":"YulIdentifier","src":"7885:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"7815:24:19","valueSize":1},{"declaration":8362,"isOffset":false,"isSlot":false,"src":"7929:20:19","valueSize":1},{"declaration":8474,"isOffset":false,"isSlot":false,"src":"7656:5:19","valueSize":1},{"declaration":8474,"isOffset":false,"isSlot":false,"src":"7866:5:19","valueSize":1},{"declaration":8477,"isOffset":false,"isSlot":false,"src":"7885:6:19","valueSize":1}],"id":8479,"nodeType":"InlineAssembly","src":"7565:395:19"}]},"documentation":{"id":8472,"nodeType":"StructuredDocumentation","src":"7295:133:19","text":"@dev Returns the number of tokens owned by `owner`.\n Requirements:\n - `owner` must not be the zero address."},"functionSelector":"70a08231","id":8481,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"7442:9:19","nodeType":"FunctionDefinition","parameters":{"id":8475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8474,"mutability":"mutable","name":"owner","nameLocation":"7460:5:19","nodeType":"VariableDeclaration","scope":8481,"src":"7452:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8473,"name":"address","nodeType":"ElementaryTypeName","src":"7452:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7451:15:19"},"returnParameters":{"id":8478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8477,"mutability":"mutable","name":"result","nameLocation":"7504:6:19","nodeType":"VariableDeclaration","scope":8481,"src":"7496:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8476,"name":"uint256","nodeType":"ElementaryTypeName","src":"7496:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7495:16:19"},"scope":9097,"src":"7433:533:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8490,"nodeType":"Block","src":"8177:454:19","statements":[{"AST":{"nativeSrc":"8239:386:19","nodeType":"YulBlock","src":"8239:386:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8260:4:19","nodeType":"YulLiteral","src":"8260:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"8266:2:19","nodeType":"YulIdentifier","src":"8266:2:19"}],"functionName":{"name":"mstore","nativeSrc":"8253:6:19","nodeType":"YulIdentifier","src":"8253:6:19"},"nativeSrc":"8253:16:19","nodeType":"YulFunctionCall","src":"8253:16:19"},"nativeSrc":"8253:16:19","nodeType":"YulExpressionStatement","src":"8253:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8289:4:19","nodeType":"YulLiteral","src":"8289:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"8295:24:19","nodeType":"YulIdentifier","src":"8295:24:19"}],"functionName":{"name":"mstore","nativeSrc":"8282:6:19","nodeType":"YulIdentifier","src":"8282:6:19"},"nativeSrc":"8282:38:19","nodeType":"YulFunctionCall","src":"8282:38:19"},"nativeSrc":"8282:38:19","nodeType":"YulExpressionStatement","src":"8282:38:19"},{"nativeSrc":"8333:60:19","nodeType":"YulVariableDeclaration","src":"8333:60:19","value":{"arguments":[{"name":"id","nativeSrc":"8358:2:19","nodeType":"YulIdentifier","src":"8358:2:19"},{"arguments":[{"name":"id","nativeSrc":"8366:2:19","nodeType":"YulIdentifier","src":"8366:2:19"},{"arguments":[{"kind":"number","nativeSrc":"8380:4:19","nodeType":"YulLiteral","src":"8380:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8386:4:19","nodeType":"YulLiteral","src":"8386:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8370:9:19","nodeType":"YulIdentifier","src":"8370:9:19"},"nativeSrc":"8370:21:19","nodeType":"YulFunctionCall","src":"8370:21:19"}],"functionName":{"name":"add","nativeSrc":"8362:3:19","nodeType":"YulIdentifier","src":"8362:3:19"},"nativeSrc":"8362:30:19","nodeType":"YulFunctionCall","src":"8362:30:19"}],"functionName":{"name":"add","nativeSrc":"8354:3:19","nodeType":"YulIdentifier","src":"8354:3:19"},"nativeSrc":"8354:39:19","nodeType":"YulFunctionCall","src":"8354:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"8337:13:19","nodeType":"YulTypedName","src":"8337:13:19","type":""}]},{"body":{"nativeSrc":"8447:117:19","nodeType":"YulBlock","src":"8447:117:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8472:4:19","nodeType":"YulLiteral","src":"8472:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8478:10:19","nodeType":"YulLiteral","src":"8478:10:19","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"8465:6:19","nodeType":"YulIdentifier","src":"8465:6:19"},"nativeSrc":"8465:24:19","nodeType":"YulFunctionCall","src":"8465:24:19"},"nativeSrc":"8465:24:19","nodeType":"YulExpressionStatement","src":"8465:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8539:4:19","nodeType":"YulLiteral","src":"8539:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"8545:4:19","nodeType":"YulLiteral","src":"8545:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"8532:6:19","nodeType":"YulIdentifier","src":"8532:6:19"},"nativeSrc":"8532:18:19","nodeType":"YulFunctionCall","src":"8532:18:19"},"nativeSrc":"8532:18:19","nodeType":"YulExpressionStatement","src":"8532:18:19"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8420:2:19","nodeType":"YulLiteral","src":"8420:2:19","type":"","value":"96"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"8430:13:19","nodeType":"YulIdentifier","src":"8430:13:19"}],"functionName":{"name":"sload","nativeSrc":"8424:5:19","nodeType":"YulIdentifier","src":"8424:5:19"},"nativeSrc":"8424:20:19","nodeType":"YulFunctionCall","src":"8424:20:19"}],"functionName":{"name":"shl","nativeSrc":"8416:3:19","nodeType":"YulIdentifier","src":"8416:3:19"},"nativeSrc":"8416:29:19","nodeType":"YulFunctionCall","src":"8416:29:19"}],"functionName":{"name":"iszero","nativeSrc":"8409:6:19","nodeType":"YulIdentifier","src":"8409:6:19"},"nativeSrc":"8409:37:19","nodeType":"YulFunctionCall","src":"8409:37:19"},"nativeSrc":"8406:158:19","nodeType":"YulIf","src":"8406:158:19"},{"nativeSrc":"8577:38:19","nodeType":"YulAssignment","src":"8577:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8597:1:19","nodeType":"YulLiteral","src":"8597:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"8600:13:19","nodeType":"YulIdentifier","src":"8600:13:19"}],"functionName":{"name":"add","nativeSrc":"8593:3:19","nodeType":"YulIdentifier","src":"8593:3:19"},"nativeSrc":"8593:21:19","nodeType":"YulFunctionCall","src":"8593:21:19"}],"functionName":{"name":"sload","nativeSrc":"8587:5:19","nodeType":"YulIdentifier","src":"8587:5:19"},"nativeSrc":"8587:28:19","nodeType":"YulFunctionCall","src":"8587:28:19"},"variableNames":[{"name":"result","nativeSrc":"8577:6:19","nodeType":"YulIdentifier","src":"8577:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"8295:24:19","valueSize":1},{"declaration":8484,"isOffset":false,"isSlot":false,"src":"8266:2:19","valueSize":1},{"declaration":8484,"isOffset":false,"isSlot":false,"src":"8358:2:19","valueSize":1},{"declaration":8484,"isOffset":false,"isSlot":false,"src":"8366:2:19","valueSize":1},{"declaration":8487,"isOffset":false,"isSlot":false,"src":"8577:6:19","valueSize":1}],"id":8489,"nodeType":"InlineAssembly","src":"8230:395:19"}]},"documentation":{"id":8482,"nodeType":"StructuredDocumentation","src":"7972:122:19","text":"@dev Returns the account approved to manage token `id`.\n Requirements:\n - Token `id` must exist."},"functionSelector":"081812fc","id":8491,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"8108:11:19","nodeType":"FunctionDefinition","parameters":{"id":8485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8484,"mutability":"mutable","name":"id","nameLocation":"8128:2:19","nodeType":"VariableDeclaration","scope":8491,"src":"8120:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8483,"name":"uint256","nodeType":"ElementaryTypeName","src":"8120:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8119:12:19"},"returnParameters":{"id":8488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8487,"mutability":"mutable","name":"result","nameLocation":"8169:6:19","nodeType":"VariableDeclaration","scope":8491,"src":"8161:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8486,"name":"address","nodeType":"ElementaryTypeName","src":"8161:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8160:16:19"},"scope":9097,"src":"8099:532:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8506,"nodeType":"Block","src":"8994:50:19","statements":[{"expression":{"arguments":[{"expression":{"id":8500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9013:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9017:6:19","memberName":"sender","nodeType":"MemberAccess","src":"9013:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8502,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8494,"src":"9025:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8503,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8496,"src":"9034:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8499,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[8873,8885],"referencedDeclaration":8885,"src":"9004:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9004:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8505,"nodeType":"ExpressionStatement","src":"9004:33:19"}]},"documentation":{"id":8492,"nodeType":"StructuredDocumentation","src":"8637:283:19","text":"@dev Sets `account` as the approved account to manage token `id`.\n Requirements:\n - Token `id` must exist.\n - The caller must be the owner of the token,\n or an approved operator for the token owner.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":8507,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"8934:7:19","nodeType":"FunctionDefinition","parameters":{"id":8497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8494,"mutability":"mutable","name":"account","nameLocation":"8950:7:19","nodeType":"VariableDeclaration","scope":8507,"src":"8942:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8493,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8496,"mutability":"mutable","name":"id","nameLocation":"8967:2:19","nodeType":"VariableDeclaration","scope":8507,"src":"8959:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8495,"name":"uint256","nodeType":"ElementaryTypeName","src":"8959:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8941:29:19"},"returnParameters":{"id":8498,"nodeType":"ParameterList","parameters":[],"src":"8994:0:19"},"scope":9097,"src":"8925:119:19","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8518,"nodeType":"Block","src":"9272:255:19","statements":[{"AST":{"nativeSrc":"9334:187:19","nodeType":"YulBlock","src":"9334:187:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9355:4:19","nodeType":"YulLiteral","src":"9355:4:19","type":"","value":"0x1c"},{"name":"operator","nativeSrc":"9361:8:19","nodeType":"YulIdentifier","src":"9361:8:19"}],"functionName":{"name":"mstore","nativeSrc":"9348:6:19","nodeType":"YulIdentifier","src":"9348:6:19"},"nativeSrc":"9348:22:19","nodeType":"YulFunctionCall","src":"9348:22:19"},"nativeSrc":"9348:22:19","nodeType":"YulExpressionStatement","src":"9348:22:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9390:4:19","nodeType":"YulLiteral","src":"9390:4:19","type":"","value":"0x08"},{"name":"_ERC721_MASTER_SLOT_SEED_MASKED","nativeSrc":"9396:31:19","nodeType":"YulIdentifier","src":"9396:31:19"}],"functionName":{"name":"mstore","nativeSrc":"9383:6:19","nodeType":"YulIdentifier","src":"9383:6:19"},"nativeSrc":"9383:45:19","nodeType":"YulFunctionCall","src":"9383:45:19"},"nativeSrc":"9383:45:19","nodeType":"YulExpressionStatement","src":"9383:45:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9448:4:19","nodeType":"YulLiteral","src":"9448:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"9454:5:19","nodeType":"YulIdentifier","src":"9454:5:19"}],"functionName":{"name":"mstore","nativeSrc":"9441:6:19","nodeType":"YulIdentifier","src":"9441:6:19"},"nativeSrc":"9441:19:19","nodeType":"YulFunctionCall","src":"9441:19:19"},"nativeSrc":"9441:19:19","nodeType":"YulExpressionStatement","src":"9441:19:19"},{"nativeSrc":"9473:38:19","nodeType":"YulAssignment","src":"9473:38:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9499:4:19","nodeType":"YulLiteral","src":"9499:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9505:4:19","nodeType":"YulLiteral","src":"9505:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"9489:9:19","nodeType":"YulIdentifier","src":"9489:9:19"},"nativeSrc":"9489:21:19","nodeType":"YulFunctionCall","src":"9489:21:19"}],"functionName":{"name":"sload","nativeSrc":"9483:5:19","nodeType":"YulIdentifier","src":"9483:5:19"},"nativeSrc":"9483:28:19","nodeType":"YulFunctionCall","src":"9483:28:19"},"variableNames":[{"name":"result","nativeSrc":"9473:6:19","nodeType":"YulIdentifier","src":"9473:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8435,"isOffset":false,"isSlot":false,"src":"9396:31:19","valueSize":1},{"declaration":8512,"isOffset":false,"isSlot":false,"src":"9361:8:19","valueSize":1},{"declaration":8510,"isOffset":false,"isSlot":false,"src":"9454:5:19","valueSize":1},{"declaration":8515,"isOffset":false,"isSlot":false,"src":"9473:6:19","valueSize":1}],"id":8517,"nodeType":"InlineAssembly","src":"9325:196:19"}]},"documentation":{"id":8508,"nodeType":"StructuredDocumentation","src":"9050:80:19","text":"@dev Returns whether `operator` is approved to manage the tokens of `owner`."},"functionSelector":"e985e9c5","id":8519,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"9144:16:19","nodeType":"FunctionDefinition","parameters":{"id":8513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8510,"mutability":"mutable","name":"owner","nameLocation":"9169:5:19","nodeType":"VariableDeclaration","scope":8519,"src":"9161:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8509,"name":"address","nodeType":"ElementaryTypeName","src":"9161:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8512,"mutability":"mutable","name":"operator","nameLocation":"9184:8:19","nodeType":"VariableDeclaration","scope":8519,"src":"9176:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8511,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9160:33:19"},"returnParameters":{"id":8516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8515,"mutability":"mutable","name":"result","nameLocation":"9260:6:19","nodeType":"VariableDeclaration","scope":8519,"src":"9255:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8514,"name":"bool","nodeType":"ElementaryTypeName","src":"9255:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9254:13:19"},"scope":9097,"src":"9135:392:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8528,"nodeType":"Block","src":"9744:649:19","statements":[{"AST":{"nativeSrc":"9806:581:19","nodeType":"YulBlock","src":"9806:581:19","statements":[{"nativeSrc":"9854:40:19","nodeType":"YulAssignment","src":"9854:40:19","value":{"arguments":[{"arguments":[{"name":"isApproved","nativeSrc":"9882:10:19","nodeType":"YulIdentifier","src":"9882:10:19"}],"functionName":{"name":"iszero","nativeSrc":"9875:6:19","nodeType":"YulIdentifier","src":"9875:6:19"},"nativeSrc":"9875:18:19","nodeType":"YulFunctionCall","src":"9875:18:19"}],"functionName":{"name":"iszero","nativeSrc":"9868:6:19","nodeType":"YulIdentifier","src":"9868:6:19"},"nativeSrc":"9868:26:19","nodeType":"YulFunctionCall","src":"9868:26:19"},"variableNames":[{"name":"isApproved","nativeSrc":"9854:10:19","nodeType":"YulIdentifier","src":"9854:10:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9985:4:19","nodeType":"YulLiteral","src":"9985:4:19","type":"","value":"0x1c"},{"name":"operator","nativeSrc":"9991:8:19","nodeType":"YulIdentifier","src":"9991:8:19"}],"functionName":{"name":"mstore","nativeSrc":"9978:6:19","nodeType":"YulIdentifier","src":"9978:6:19"},"nativeSrc":"9978:22:19","nodeType":"YulFunctionCall","src":"9978:22:19"},"nativeSrc":"9978:22:19","nodeType":"YulExpressionStatement","src":"9978:22:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10020:4:19","nodeType":"YulLiteral","src":"10020:4:19","type":"","value":"0x08"},{"name":"_ERC721_MASTER_SLOT_SEED_MASKED","nativeSrc":"10026:31:19","nodeType":"YulIdentifier","src":"10026:31:19"}],"functionName":{"name":"mstore","nativeSrc":"10013:6:19","nodeType":"YulIdentifier","src":"10013:6:19"},"nativeSrc":"10013:45:19","nodeType":"YulFunctionCall","src":"10013:45:19"},"nativeSrc":"10013:45:19","nodeType":"YulExpressionStatement","src":"10013:45:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10078:4:19","nodeType":"YulLiteral","src":"10078:4:19","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10084:6:19","nodeType":"YulIdentifier","src":"10084:6:19"},"nativeSrc":"10084:8:19","nodeType":"YulFunctionCall","src":"10084:8:19"}],"functionName":{"name":"mstore","nativeSrc":"10071:6:19","nodeType":"YulIdentifier","src":"10071:6:19"},"nativeSrc":"10071:22:19","nodeType":"YulFunctionCall","src":"10071:22:19"},"nativeSrc":"10071:22:19","nodeType":"YulExpressionStatement","src":"10071:22:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10123:4:19","nodeType":"YulLiteral","src":"10123:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10129:4:19","nodeType":"YulLiteral","src":"10129:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"10113:9:19","nodeType":"YulIdentifier","src":"10113:9:19"},"nativeSrc":"10113:21:19","nodeType":"YulFunctionCall","src":"10113:21:19"},{"name":"isApproved","nativeSrc":"10136:10:19","nodeType":"YulIdentifier","src":"10136:10:19"}],"functionName":{"name":"sstore","nativeSrc":"10106:6:19","nodeType":"YulIdentifier","src":"10106:6:19"},"nativeSrc":"10106:41:19","nodeType":"YulFunctionCall","src":"10106:41:19"},"nativeSrc":"10106:41:19","nodeType":"YulExpressionStatement","src":"10106:41:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10215:4:19","nodeType":"YulLiteral","src":"10215:4:19","type":"","value":"0x00"},{"name":"isApproved","nativeSrc":"10221:10:19","nodeType":"YulIdentifier","src":"10221:10:19"}],"functionName":{"name":"mstore","nativeSrc":"10208:6:19","nodeType":"YulIdentifier","src":"10208:6:19"},"nativeSrc":"10208:24:19","nodeType":"YulFunctionCall","src":"10208:24:19"},"nativeSrc":"10208:24:19","nodeType":"YulExpressionStatement","src":"10208:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10293:4:19","nodeType":"YulLiteral","src":"10293:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10299:4:19","nodeType":"YulLiteral","src":"10299:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nativeSrc":"10305:33:19","nodeType":"YulIdentifier","src":"10305:33:19"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"10340:6:19","nodeType":"YulIdentifier","src":"10340:6:19"},"nativeSrc":"10340:8:19","nodeType":"YulFunctionCall","src":"10340:8:19"},{"arguments":[{"kind":"number","nativeSrc":"10354:2:19","nodeType":"YulLiteral","src":"10354:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"10362:2:19","nodeType":"YulLiteral","src":"10362:2:19","type":"","value":"96"},{"name":"operator","nativeSrc":"10366:8:19","nodeType":"YulIdentifier","src":"10366:8:19"}],"functionName":{"name":"shl","nativeSrc":"10358:3:19","nodeType":"YulIdentifier","src":"10358:3:19"},"nativeSrc":"10358:17:19","nodeType":"YulFunctionCall","src":"10358:17:19"}],"functionName":{"name":"shr","nativeSrc":"10350:3:19","nodeType":"YulIdentifier","src":"10350:3:19"},"nativeSrc":"10350:26:19","nodeType":"YulFunctionCall","src":"10350:26:19"}],"functionName":{"name":"log3","nativeSrc":"10288:4:19","nodeType":"YulIdentifier","src":"10288:4:19"},"nativeSrc":"10288:89:19","nodeType":"YulFunctionCall","src":"10288:89:19"},"nativeSrc":"10288:89:19","nodeType":"YulExpressionStatement","src":"10288:89:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8425,"isOffset":false,"isSlot":false,"src":"10305:33:19","valueSize":1},{"declaration":8435,"isOffset":false,"isSlot":false,"src":"10026:31:19","valueSize":1},{"declaration":8524,"isOffset":false,"isSlot":false,"src":"10136:10:19","valueSize":1},{"declaration":8524,"isOffset":false,"isSlot":false,"src":"10221:10:19","valueSize":1},{"declaration":8524,"isOffset":false,"isSlot":false,"src":"9854:10:19","valueSize":1},{"declaration":8524,"isOffset":false,"isSlot":false,"src":"9882:10:19","valueSize":1},{"declaration":8522,"isOffset":false,"isSlot":false,"src":"10366:8:19","valueSize":1},{"declaration":8522,"isOffset":false,"isSlot":false,"src":"9991:8:19","valueSize":1}],"id":8527,"nodeType":"InlineAssembly","src":"9797:590:19"}]},"documentation":{"id":8520,"nodeType":"StructuredDocumentation","src":"9533:129:19","text":"@dev Sets whether `operator` is approved to manage the tokens of the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":8529,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"9676:17:19","nodeType":"FunctionDefinition","parameters":{"id":8525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8522,"mutability":"mutable","name":"operator","nameLocation":"9702:8:19","nodeType":"VariableDeclaration","scope":8529,"src":"9694:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8521,"name":"address","nodeType":"ElementaryTypeName","src":"9694:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8524,"mutability":"mutable","name":"isApproved","nameLocation":"9717:10:19","nodeType":"VariableDeclaration","scope":8529,"src":"9712:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8523,"name":"bool","nodeType":"ElementaryTypeName","src":"9712:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9693:35:19"},"returnParameters":{"id":8526,"nodeType":"ParameterList","parameters":[],"src":"9744:0:19"},"scope":9097,"src":"9667:726:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8552,"nodeType":"Block","src":"10831:2803:19","statements":[{"expression":{"arguments":[{"id":8540,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8532,"src":"10862:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8541,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8534,"src":"10868:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8542,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8536,"src":"10872:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8539,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"10841:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10841:34:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8544,"nodeType":"ExpressionStatement","src":"10841:34:19"},{"AST":{"nativeSrc":"10937:2648:19","nodeType":"YulBlock","src":"10937:2648:19","statements":[{"nativeSrc":"10991:37:19","nodeType":"YulVariableDeclaration","src":"10991:37:19","value":{"arguments":[{"kind":"number","nativeSrc":"11017:2:19","nodeType":"YulLiteral","src":"11017:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"11025:1:19","nodeType":"YulLiteral","src":"11025:1:19","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11021:3:19","nodeType":"YulIdentifier","src":"11021:3:19"},"nativeSrc":"11021:6:19","nodeType":"YulFunctionCall","src":"11021:6:19"}],"functionName":{"name":"shr","nativeSrc":"11013:3:19","nodeType":"YulIdentifier","src":"11013:3:19"},"nativeSrc":"11013:15:19","nodeType":"YulFunctionCall","src":"11013:15:19"},"variables":[{"name":"bitmaskAddress","nativeSrc":"10995:14:19","nodeType":"YulTypedName","src":"10995:14:19","type":""}]},{"nativeSrc":"11041:33:19","nodeType":"YulAssignment","src":"11041:33:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11053:14:19","nodeType":"YulIdentifier","src":"11053:14:19"},{"name":"from","nativeSrc":"11069:4:19","nodeType":"YulIdentifier","src":"11069:4:19"}],"functionName":{"name":"and","nativeSrc":"11049:3:19","nodeType":"YulIdentifier","src":"11049:3:19"},"nativeSrc":"11049:25:19","nodeType":"YulFunctionCall","src":"11049:25:19"},"variableNames":[{"name":"from","nativeSrc":"11041:4:19","nodeType":"YulIdentifier","src":"11041:4:19"}]},{"nativeSrc":"11087:29:19","nodeType":"YulAssignment","src":"11087:29:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11097:14:19","nodeType":"YulIdentifier","src":"11097:14:19"},{"name":"to","nativeSrc":"11113:2:19","nodeType":"YulIdentifier","src":"11113:2:19"}],"functionName":{"name":"and","nativeSrc":"11093:3:19","nodeType":"YulIdentifier","src":"11093:3:19"},"nativeSrc":"11093:23:19","nodeType":"YulFunctionCall","src":"11093:23:19"},"variableNames":[{"name":"to","nativeSrc":"11087:2:19","nodeType":"YulIdentifier","src":"11087:2:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11176:4:19","nodeType":"YulLiteral","src":"11176:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"11182:2:19","nodeType":"YulIdentifier","src":"11182:2:19"}],"functionName":{"name":"mstore","nativeSrc":"11169:6:19","nodeType":"YulIdentifier","src":"11169:6:19"},"nativeSrc":"11169:16:19","nodeType":"YulFunctionCall","src":"11169:16:19"},"nativeSrc":"11169:16:19","nodeType":"YulExpressionStatement","src":"11169:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11205:4:19","nodeType":"YulLiteral","src":"11205:4:19","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"11214:24:19","nodeType":"YulIdentifier","src":"11214:24:19"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"11240:6:19","nodeType":"YulIdentifier","src":"11240:6:19"},"nativeSrc":"11240:8:19","nodeType":"YulFunctionCall","src":"11240:8:19"}],"functionName":{"name":"or","nativeSrc":"11211:2:19","nodeType":"YulIdentifier","src":"11211:2:19"},"nativeSrc":"11211:38:19","nodeType":"YulFunctionCall","src":"11211:38:19"}],"functionName":{"name":"mstore","nativeSrc":"11198:6:19","nodeType":"YulIdentifier","src":"11198:6:19"},"nativeSrc":"11198:52:19","nodeType":"YulFunctionCall","src":"11198:52:19"},"nativeSrc":"11198:52:19","nodeType":"YulExpressionStatement","src":"11198:52:19"},{"nativeSrc":"11263:60:19","nodeType":"YulVariableDeclaration","src":"11263:60:19","value":{"arguments":[{"name":"id","nativeSrc":"11288:2:19","nodeType":"YulIdentifier","src":"11288:2:19"},{"arguments":[{"name":"id","nativeSrc":"11296:2:19","nodeType":"YulIdentifier","src":"11296:2:19"},{"arguments":[{"kind":"number","nativeSrc":"11310:4:19","nodeType":"YulLiteral","src":"11310:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11316:4:19","nodeType":"YulLiteral","src":"11316:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11300:9:19","nodeType":"YulIdentifier","src":"11300:9:19"},"nativeSrc":"11300:21:19","nodeType":"YulFunctionCall","src":"11300:21:19"}],"functionName":{"name":"add","nativeSrc":"11292:3:19","nodeType":"YulIdentifier","src":"11292:3:19"},"nativeSrc":"11292:30:19","nodeType":"YulFunctionCall","src":"11292:30:19"}],"functionName":{"name":"add","nativeSrc":"11284:3:19","nodeType":"YulIdentifier","src":"11284:3:19"},"nativeSrc":"11284:39:19","nodeType":"YulFunctionCall","src":"11284:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"11267:13:19","nodeType":"YulTypedName","src":"11267:13:19","type":""}]},{"nativeSrc":"11336:43:19","nodeType":"YulVariableDeclaration","src":"11336:43:19","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"11365:13:19","nodeType":"YulIdentifier","src":"11365:13:19"}],"functionName":{"name":"sload","nativeSrc":"11359:5:19","nodeType":"YulIdentifier","src":"11359:5:19"},"nativeSrc":"11359:20:19","nodeType":"YulFunctionCall","src":"11359:20:19"},"variables":[{"name":"ownershipPacked","nativeSrc":"11340:15:19","nodeType":"YulTypedName","src":"11340:15:19","type":""}]},{"nativeSrc":"11392:49:19","nodeType":"YulVariableDeclaration","src":"11392:49:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"11409:14:19","nodeType":"YulIdentifier","src":"11409:14:19"},{"name":"ownershipPacked","nativeSrc":"11425:15:19","nodeType":"YulIdentifier","src":"11425:15:19"}],"functionName":{"name":"and","nativeSrc":"11405:3:19","nodeType":"YulIdentifier","src":"11405:3:19"},"nativeSrc":"11405:36:19","nodeType":"YulFunctionCall","src":"11405:36:19"},"variables":[{"name":"owner","nativeSrc":"11396:5:19","nodeType":"YulTypedName","src":"11396:5:19","type":""}]},{"body":{"nativeSrc":"11575:190:19","nodeType":"YulBlock","src":"11575:190:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11678:1:19","nodeType":"YulLiteral","src":"11678:1:19","type":"","value":"2"},{"arguments":[{"name":"owner","nativeSrc":"11688:5:19","nodeType":"YulIdentifier","src":"11688:5:19"}],"functionName":{"name":"iszero","nativeSrc":"11681:6:19","nodeType":"YulIdentifier","src":"11681:6:19"},"nativeSrc":"11681:13:19","nodeType":"YulFunctionCall","src":"11681:13:19"}],"functionName":{"name":"shl","nativeSrc":"11674:3:19","nodeType":"YulIdentifier","src":"11674:3:19"},"nativeSrc":"11674:21:19","nodeType":"YulFunctionCall","src":"11674:21:19"},{"kind":"number","nativeSrc":"11697:18:19","nodeType":"YulLiteral","src":"11697:18:19","type":"","value":"0xceea21b6a1148100"}],"functionName":{"name":"mstore","nativeSrc":"11667:6:19","nodeType":"YulIdentifier","src":"11667:6:19"},"nativeSrc":"11667:49:19","nodeType":"YulFunctionCall","src":"11667:49:19"},"nativeSrc":"11667:49:19","nodeType":"YulExpressionStatement","src":"11667:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11740:4:19","nodeType":"YulLiteral","src":"11740:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11746:4:19","nodeType":"YulLiteral","src":"11746:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11733:6:19","nodeType":"YulIdentifier","src":"11733:6:19"},"nativeSrc":"11733:18:19","nodeType":"YulFunctionCall","src":"11733:18:19"},"nativeSrc":"11733:18:19","nodeType":"YulExpressionStatement","src":"11733:18:19"}]},"condition":{"arguments":[{"arguments":[{"name":"owner","nativeSrc":"11550:5:19","nodeType":"YulIdentifier","src":"11550:5:19"},{"arguments":[{"name":"owner","nativeSrc":"11560:5:19","nodeType":"YulIdentifier","src":"11560:5:19"},{"name":"from","nativeSrc":"11567:4:19","nodeType":"YulIdentifier","src":"11567:4:19"}],"functionName":{"name":"eq","nativeSrc":"11557:2:19","nodeType":"YulIdentifier","src":"11557:2:19"},"nativeSrc":"11557:15:19","nodeType":"YulFunctionCall","src":"11557:15:19"}],"functionName":{"name":"mul","nativeSrc":"11546:3:19","nodeType":"YulIdentifier","src":"11546:3:19"},"nativeSrc":"11546:27:19","nodeType":"YulFunctionCall","src":"11546:27:19"}],"functionName":{"name":"iszero","nativeSrc":"11539:6:19","nodeType":"YulIdentifier","src":"11539:6:19"},"nativeSrc":"11539:35:19","nodeType":"YulFunctionCall","src":"11539:35:19"},"nativeSrc":"11536:229:19","nodeType":"YulIf","src":"11536:229:19"},{"nativeSrc":"11837:622:19","nodeType":"YulBlock","src":"11837:622:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11862:4:19","nodeType":"YulLiteral","src":"11862:4:19","type":"","value":"0x00"},{"name":"from","nativeSrc":"11868:4:19","nodeType":"YulIdentifier","src":"11868:4:19"}],"functionName":{"name":"mstore","nativeSrc":"11855:6:19","nodeType":"YulIdentifier","src":"11855:6:19"},"nativeSrc":"11855:18:19","nodeType":"YulFunctionCall","src":"11855:18:19"},"nativeSrc":"11855:18:19","nodeType":"YulExpressionStatement","src":"11855:18:19"},{"nativeSrc":"11890:51:19","nodeType":"YulVariableDeclaration","src":"11890:51:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11923:1:19","nodeType":"YulLiteral","src":"11923:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"11926:13:19","nodeType":"YulIdentifier","src":"11926:13:19"}],"functionName":{"name":"add","nativeSrc":"11919:3:19","nodeType":"YulIdentifier","src":"11919:3:19"},"nativeSrc":"11919:21:19","nodeType":"YulFunctionCall","src":"11919:21:19"}],"functionName":{"name":"sload","nativeSrc":"11913:5:19","nodeType":"YulIdentifier","src":"11913:5:19"},"nativeSrc":"11913:28:19","nodeType":"YulFunctionCall","src":"11913:28:19"},"variables":[{"name":"approvedAddress","nativeSrc":"11894:15:19","nodeType":"YulTypedName","src":"11894:15:19","type":""}]},{"body":{"nativeSrc":"12095:223:19","nodeType":"YulBlock","src":"12095:223:19","statements":[{"body":{"nativeSrc":"12157:143:19","nodeType":"YulBlock","src":"12157:143:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12190:4:19","nodeType":"YulLiteral","src":"12190:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12196:10:19","nodeType":"YulLiteral","src":"12196:10:19","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"12183:6:19","nodeType":"YulIdentifier","src":"12183:6:19"},"nativeSrc":"12183:24:19","nodeType":"YulFunctionCall","src":"12183:24:19"},"nativeSrc":"12183:24:19","nodeType":"YulExpressionStatement","src":"12183:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12267:4:19","nodeType":"YulLiteral","src":"12267:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12273:4:19","nodeType":"YulLiteral","src":"12273:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12260:6:19","nodeType":"YulIdentifier","src":"12260:6:19"},"nativeSrc":"12260:18:19","nodeType":"YulFunctionCall","src":"12260:18:19"},"nativeSrc":"12260:18:19","nodeType":"YulExpressionStatement","src":"12260:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12143:4:19","nodeType":"YulLiteral","src":"12143:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12149:4:19","nodeType":"YulLiteral","src":"12149:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"12133:9:19","nodeType":"YulIdentifier","src":"12133:9:19"},"nativeSrc":"12133:21:19","nodeType":"YulFunctionCall","src":"12133:21:19"}],"functionName":{"name":"sload","nativeSrc":"12127:5:19","nodeType":"YulIdentifier","src":"12127:5:19"},"nativeSrc":"12127:28:19","nodeType":"YulFunctionCall","src":"12127:28:19"}],"functionName":{"name":"iszero","nativeSrc":"12120:6:19","nodeType":"YulIdentifier","src":"12120:6:19"},"nativeSrc":"12120:36:19","nodeType":"YulFunctionCall","src":"12120:36:19"},"nativeSrc":"12117:183:19","nodeType":"YulIf","src":"12117:183:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"12046:6:19","nodeType":"YulIdentifier","src":"12046:6:19"},"nativeSrc":"12046:8:19","nodeType":"YulFunctionCall","src":"12046:8:19"},{"name":"from","nativeSrc":"12056:4:19","nodeType":"YulIdentifier","src":"12056:4:19"}],"functionName":{"name":"eq","nativeSrc":"12043:2:19","nodeType":"YulIdentifier","src":"12043:2:19"},"nativeSrc":"12043:18:19","nodeType":"YulFunctionCall","src":"12043:18:19"},{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"12066:6:19","nodeType":"YulIdentifier","src":"12066:6:19"},"nativeSrc":"12066:8:19","nodeType":"YulFunctionCall","src":"12066:8:19"},{"name":"approvedAddress","nativeSrc":"12076:15:19","nodeType":"YulIdentifier","src":"12076:15:19"}],"functionName":{"name":"eq","nativeSrc":"12063:2:19","nodeType":"YulIdentifier","src":"12063:2:19"},"nativeSrc":"12063:29:19","nodeType":"YulFunctionCall","src":"12063:29:19"}],"functionName":{"name":"or","nativeSrc":"12040:2:19","nodeType":"YulIdentifier","src":"12040:2:19"},"nativeSrc":"12040:53:19","nodeType":"YulFunctionCall","src":"12040:53:19"}],"functionName":{"name":"iszero","nativeSrc":"12033:6:19","nodeType":"YulIdentifier","src":"12033:6:19"},"nativeSrc":"12033:61:19","nodeType":"YulFunctionCall","src":"12033:61:19"},"nativeSrc":"12030:288:19","nodeType":"YulIf","src":"12030:288:19"},{"body":{"nativeSrc":"12409:36:19","nodeType":"YulBlock","src":"12409:36:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12422:1:19","nodeType":"YulLiteral","src":"12422:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"12425:13:19","nodeType":"YulIdentifier","src":"12425:13:19"}],"functionName":{"name":"add","nativeSrc":"12418:3:19","nodeType":"YulIdentifier","src":"12418:3:19"},"nativeSrc":"12418:21:19","nodeType":"YulFunctionCall","src":"12418:21:19"},{"kind":"number","nativeSrc":"12441:1:19","nodeType":"YulLiteral","src":"12441:1:19","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"12411:6:19","nodeType":"YulIdentifier","src":"12411:6:19"},"nativeSrc":"12411:32:19","nodeType":"YulFunctionCall","src":"12411:32:19"},"nativeSrc":"12411:32:19","nodeType":"YulExpressionStatement","src":"12411:32:19"}]},"condition":{"name":"approvedAddress","nativeSrc":"12393:15:19","nodeType":"YulIdentifier","src":"12393:15:19"},"nativeSrc":"12390:55:19","nodeType":"YulIf","src":"12390:55:19"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"12521:13:19","nodeType":"YulIdentifier","src":"12521:13:19"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"12540:15:19","nodeType":"YulIdentifier","src":"12540:15:19"},{"arguments":[{"name":"from","nativeSrc":"12561:4:19","nodeType":"YulIdentifier","src":"12561:4:19"},{"name":"to","nativeSrc":"12567:2:19","nodeType":"YulIdentifier","src":"12567:2:19"}],"functionName":{"name":"xor","nativeSrc":"12557:3:19","nodeType":"YulIdentifier","src":"12557:3:19"},"nativeSrc":"12557:13:19","nodeType":"YulFunctionCall","src":"12557:13:19"}],"functionName":{"name":"xor","nativeSrc":"12536:3:19","nodeType":"YulIdentifier","src":"12536:3:19"},"nativeSrc":"12536:35:19","nodeType":"YulFunctionCall","src":"12536:35:19"}],"functionName":{"name":"sstore","nativeSrc":"12514:6:19","nodeType":"YulIdentifier","src":"12514:6:19"},"nativeSrc":"12514:58:19","nodeType":"YulFunctionCall","src":"12514:58:19"},"nativeSrc":"12514:58:19","nodeType":"YulExpressionStatement","src":"12514:58:19"},{"nativeSrc":"12633:148:19","nodeType":"YulBlock","src":"12633:148:19","statements":[{"nativeSrc":"12651:44:19","nodeType":"YulVariableDeclaration","src":"12651:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"12684:4:19","nodeType":"YulLiteral","src":"12684:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12690:4:19","nodeType":"YulLiteral","src":"12690:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"12674:9:19","nodeType":"YulIdentifier","src":"12674:9:19"},"nativeSrc":"12674:21:19","nodeType":"YulFunctionCall","src":"12674:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"12655:15:19","nodeType":"YulTypedName","src":"12655:15:19","type":""}]},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"12719:15:19","nodeType":"YulIdentifier","src":"12719:15:19"},{"arguments":[{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"12746:15:19","nodeType":"YulIdentifier","src":"12746:15:19"}],"functionName":{"name":"sload","nativeSrc":"12740:5:19","nodeType":"YulIdentifier","src":"12740:5:19"},"nativeSrc":"12740:22:19","nodeType":"YulFunctionCall","src":"12740:22:19"},{"kind":"number","nativeSrc":"12764:1:19","nodeType":"YulLiteral","src":"12764:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12736:3:19","nodeType":"YulIdentifier","src":"12736:3:19"},"nativeSrc":"12736:30:19","nodeType":"YulFunctionCall","src":"12736:30:19"}],"functionName":{"name":"sstore","nativeSrc":"12712:6:19","nodeType":"YulIdentifier","src":"12712:6:19"},"nativeSrc":"12712:55:19","nodeType":"YulFunctionCall","src":"12712:55:19"},"nativeSrc":"12712:55:19","nodeType":"YulExpressionStatement","src":"12712:55:19"}]},{"nativeSrc":"12840:617:19","nodeType":"YulBlock","src":"12840:617:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12865:4:19","nodeType":"YulLiteral","src":"12865:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"12871:2:19","nodeType":"YulIdentifier","src":"12871:2:19"}],"functionName":{"name":"mstore","nativeSrc":"12858:6:19","nodeType":"YulIdentifier","src":"12858:6:19"},"nativeSrc":"12858:16:19","nodeType":"YulFunctionCall","src":"12858:16:19"},"nativeSrc":"12858:16:19","nodeType":"YulExpressionStatement","src":"12858:16:19"},{"nativeSrc":"12891:42:19","nodeType":"YulVariableDeclaration","src":"12891:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"12922:4:19","nodeType":"YulLiteral","src":"12922:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12928:4:19","nodeType":"YulLiteral","src":"12928:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"12912:9:19","nodeType":"YulIdentifier","src":"12912:9:19"},"nativeSrc":"12912:21:19","nodeType":"YulFunctionCall","src":"12912:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"12895:13:19","nodeType":"YulTypedName","src":"12895:13:19","type":""}]},{"nativeSrc":"12950:55:19","nodeType":"YulVariableDeclaration","src":"12950:55:19","value":{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"12987:13:19","nodeType":"YulIdentifier","src":"12987:13:19"}],"functionName":{"name":"sload","nativeSrc":"12981:5:19","nodeType":"YulIdentifier","src":"12981:5:19"},"nativeSrc":"12981:20:19","nodeType":"YulFunctionCall","src":"12981:20:19"},{"kind":"number","nativeSrc":"13003:1:19","nodeType":"YulLiteral","src":"13003:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12977:3:19","nodeType":"YulIdentifier","src":"12977:3:19"},"nativeSrc":"12977:28:19","nodeType":"YulFunctionCall","src":"12977:28:19"},"variables":[{"name":"toBalanceSlotPacked","nativeSrc":"12954:19:19","nodeType":"YulTypedName","src":"12954:19:19","type":""}]},{"body":{"nativeSrc":"13181:203:19","nodeType":"YulBlock","src":"13181:203:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13292:1:19","nodeType":"YulLiteral","src":"13292:1:19","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"13302:2:19","nodeType":"YulIdentifier","src":"13302:2:19"}],"functionName":{"name":"iszero","nativeSrc":"13295:6:19","nodeType":"YulIdentifier","src":"13295:6:19"},"nativeSrc":"13295:10:19","nodeType":"YulFunctionCall","src":"13295:10:19"}],"functionName":{"name":"shl","nativeSrc":"13288:3:19","nodeType":"YulIdentifier","src":"13288:3:19"},"nativeSrc":"13288:18:19","nodeType":"YulFunctionCall","src":"13288:18:19"},{"kind":"number","nativeSrc":"13308:18:19","nodeType":"YulLiteral","src":"13308:18:19","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"13281:6:19","nodeType":"YulIdentifier","src":"13281:6:19"},"nativeSrc":"13281:46:19","nodeType":"YulFunctionCall","src":"13281:46:19"},"nativeSrc":"13281:46:19","nodeType":"YulExpressionStatement","src":"13281:46:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13355:4:19","nodeType":"YulLiteral","src":"13355:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13361:4:19","nodeType":"YulLiteral","src":"13361:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13348:6:19","nodeType":"YulIdentifier","src":"13348:6:19"},"nativeSrc":"13348:18:19","nodeType":"YulFunctionCall","src":"13348:18:19"},"nativeSrc":"13348:18:19","nodeType":"YulExpressionStatement","src":"13348:18:19"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"13128:2:19","nodeType":"YulIdentifier","src":"13128:2:19"},{"arguments":[{"name":"toBalanceSlotPacked","nativeSrc":"13136:19:19","nodeType":"YulIdentifier","src":"13136:19:19"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"13157:20:19","nodeType":"YulIdentifier","src":"13157:20:19"}],"functionName":{"name":"and","nativeSrc":"13132:3:19","nodeType":"YulIdentifier","src":"13132:3:19"},"nativeSrc":"13132:46:19","nodeType":"YulFunctionCall","src":"13132:46:19"}],"functionName":{"name":"mul","nativeSrc":"13124:3:19","nodeType":"YulIdentifier","src":"13124:3:19"},"nativeSrc":"13124:55:19","nodeType":"YulFunctionCall","src":"13124:55:19"}],"functionName":{"name":"iszero","nativeSrc":"13117:6:19","nodeType":"YulIdentifier","src":"13117:6:19"},"nativeSrc":"13117:63:19","nodeType":"YulFunctionCall","src":"13117:63:19"},"nativeSrc":"13114:270:19","nodeType":"YulIf","src":"13114:270:19"},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"13408:13:19","nodeType":"YulIdentifier","src":"13408:13:19"},{"name":"toBalanceSlotPacked","nativeSrc":"13423:19:19","nodeType":"YulIdentifier","src":"13423:19:19"}],"functionName":{"name":"sstore","nativeSrc":"13401:6:19","nodeType":"YulIdentifier","src":"13401:6:19"},"nativeSrc":"13401:42:19","nodeType":"YulFunctionCall","src":"13401:42:19"},"nativeSrc":"13401:42:19","nodeType":"YulExpressionStatement","src":"13401:42:19"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"13517:8:19","nodeType":"YulIdentifier","src":"13517:8:19"},"nativeSrc":"13517:10:19","nodeType":"YulFunctionCall","src":"13517:10:19"},{"kind":"number","nativeSrc":"13529:4:19","nodeType":"YulLiteral","src":"13529:4:19","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"13535:25:19","nodeType":"YulIdentifier","src":"13535:25:19"},{"name":"from","nativeSrc":"13562:4:19","nodeType":"YulIdentifier","src":"13562:4:19"},{"name":"to","nativeSrc":"13568:2:19","nodeType":"YulIdentifier","src":"13568:2:19"},{"name":"id","nativeSrc":"13572:2:19","nodeType":"YulIdentifier","src":"13572:2:19"}],"functionName":{"name":"log4","nativeSrc":"13512:4:19","nodeType":"YulIdentifier","src":"13512:4:19"},"nativeSrc":"13512:63:19","nodeType":"YulFunctionCall","src":"13512:63:19"},"nativeSrc":"13512:63:19","nodeType":"YulExpressionStatement","src":"13512:63:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"11214:24:19","valueSize":1},{"declaration":8362,"isOffset":false,"isSlot":false,"src":"13157:20:19","valueSize":1},{"declaration":8417,"isOffset":false,"isSlot":false,"src":"13535:25:19","valueSize":1},{"declaration":8532,"isOffset":false,"isSlot":false,"src":"11041:4:19","valueSize":1},{"declaration":8532,"isOffset":false,"isSlot":false,"src":"11069:4:19","valueSize":1},{"declaration":8532,"isOffset":false,"isSlot":false,"src":"11567:4:19","valueSize":1},{"declaration":8532,"isOffset":false,"isSlot":false,"src":"11868:4:19","valueSize":1},{"declaration":8532,"isOffset":false,"isSlot":false,"src":"12056:4:19","valueSize":1},{"declaration":8532,"isOffset":false,"isSlot":false,"src":"12561:4:19","valueSize":1},{"declaration":8532,"isOffset":false,"isSlot":false,"src":"13562:4:19","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"11182:2:19","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"11288:2:19","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"11296:2:19","valueSize":1},{"declaration":8536,"isOffset":false,"isSlot":false,"src":"13572:2:19","valueSize":1},{"declaration":8534,"isOffset":false,"isSlot":false,"src":"11087:2:19","valueSize":1},{"declaration":8534,"isOffset":false,"isSlot":false,"src":"11113:2:19","valueSize":1},{"declaration":8534,"isOffset":false,"isSlot":false,"src":"12567:2:19","valueSize":1},{"declaration":8534,"isOffset":false,"isSlot":false,"src":"12871:2:19","valueSize":1},{"declaration":8534,"isOffset":false,"isSlot":false,"src":"13128:2:19","valueSize":1},{"declaration":8534,"isOffset":false,"isSlot":false,"src":"13302:2:19","valueSize":1},{"declaration":8534,"isOffset":false,"isSlot":false,"src":"13568:2:19","valueSize":1}],"id":8545,"nodeType":"InlineAssembly","src":"10928:2657:19"},{"expression":{"arguments":[{"id":8547,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8532,"src":"13614:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8548,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8534,"src":"13620:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8549,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8536,"src":"13624:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8546,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9072,"src":"13594:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13594:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8551,"nodeType":"ExpressionStatement","src":"13594:33:19"}]},"documentation":{"id":8530,"nodeType":"StructuredDocumentation","src":"10399:344:19","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8553,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"10757:12:19","nodeType":"FunctionDefinition","parameters":{"id":8537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8532,"mutability":"mutable","name":"from","nameLocation":"10778:4:19","nodeType":"VariableDeclaration","scope":8553,"src":"10770:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8531,"name":"address","nodeType":"ElementaryTypeName","src":"10770:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8534,"mutability":"mutable","name":"to","nameLocation":"10792:2:19","nodeType":"VariableDeclaration","scope":8553,"src":"10784:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8533,"name":"address","nodeType":"ElementaryTypeName","src":"10784:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8536,"mutability":"mutable","name":"id","nameLocation":"10804:2:19","nodeType":"VariableDeclaration","scope":8553,"src":"10796:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8535,"name":"uint256","nodeType":"ElementaryTypeName","src":"10796:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10769:38:19"},"returnParameters":{"id":8538,"nodeType":"ParameterList","parameters":[],"src":"10831:0:19"},"scope":9097,"src":"10748:2886:19","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8580,"nodeType":"Block","src":"13792:111:19","statements":[{"expression":{"arguments":[{"id":8564,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8556,"src":"13815:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8565,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"13821:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8566,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8560,"src":"13825:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8563,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"13802:12:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13802:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8568,"nodeType":"ExpressionStatement","src":"13802:26:19"},{"condition":{"arguments":[{"id":8570,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"13851:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8569,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9082,"src":"13842:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13842:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8579,"nodeType":"IfStatement","src":"13838:58:19","trueBody":{"expression":{"arguments":[{"id":8573,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8556,"src":"13879:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8574,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"13885:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8575,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8560,"src":"13889:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13893:2:19","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":8572,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"13856:22:19","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":8577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13856:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8578,"nodeType":"ExpressionStatement","src":"13856:40:19"}}]},"documentation":{"id":8554,"nodeType":"StructuredDocumentation","src":"13640:60:19","text":"@dev Equivalent to `safeTransferFrom(from, to, id, \"\")`."},"functionSelector":"42842e0e","id":8581,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"13714:16:19","nodeType":"FunctionDefinition","parameters":{"id":8561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8556,"mutability":"mutable","name":"from","nameLocation":"13739:4:19","nodeType":"VariableDeclaration","scope":8581,"src":"13731:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8555,"name":"address","nodeType":"ElementaryTypeName","src":"13731:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8558,"mutability":"mutable","name":"to","nameLocation":"13753:2:19","nodeType":"VariableDeclaration","scope":8581,"src":"13745:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8557,"name":"address","nodeType":"ElementaryTypeName","src":"13745:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8560,"mutability":"mutable","name":"id","nameLocation":"13765:2:19","nodeType":"VariableDeclaration","scope":8581,"src":"13757:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8559,"name":"uint256","nodeType":"ElementaryTypeName","src":"13757:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13730:38:19"},"returnParameters":{"id":8562,"nodeType":"ParameterList","parameters":[],"src":"13792:0:19"},"scope":9097,"src":"13705:198:19","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8610,"nodeType":"Block","src":"14542:113:19","statements":[{"expression":{"arguments":[{"id":8594,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8584,"src":"14565:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8595,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8586,"src":"14571:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8596,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8588,"src":"14575:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8593,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8553,"src":"14552:12:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14552:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8598,"nodeType":"ExpressionStatement","src":"14552:26:19"},{"condition":{"arguments":[{"id":8600,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8586,"src":"14601:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8599,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9082,"src":"14592:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14592:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8609,"nodeType":"IfStatement","src":"14588:60:19","trueBody":{"expression":{"arguments":[{"id":8603,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8584,"src":"14629:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8604,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8586,"src":"14635:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8605,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8588,"src":"14639:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8606,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8590,"src":"14643:4:19","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":8602,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"14606:22:19","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":8607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14606:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8608,"nodeType":"ExpressionStatement","src":"14606:42:19"}}]},"documentation":{"id":8582,"nodeType":"StructuredDocumentation","src":"13909:492:19","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":8611,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"14415:16:19","nodeType":"FunctionDefinition","parameters":{"id":8591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8584,"mutability":"mutable","name":"from","nameLocation":"14440:4:19","nodeType":"VariableDeclaration","scope":8611,"src":"14432:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8583,"name":"address","nodeType":"ElementaryTypeName","src":"14432:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8586,"mutability":"mutable","name":"to","nameLocation":"14454:2:19","nodeType":"VariableDeclaration","scope":8611,"src":"14446:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8585,"name":"address","nodeType":"ElementaryTypeName","src":"14446:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8588,"mutability":"mutable","name":"id","nameLocation":"14466:2:19","nodeType":"VariableDeclaration","scope":8611,"src":"14458:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8587,"name":"uint256","nodeType":"ElementaryTypeName","src":"14458:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8590,"mutability":"mutable","name":"data","nameLocation":"14485:4:19","nodeType":"VariableDeclaration","scope":8611,"src":"14470:19:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8589,"name":"bytes","nodeType":"ElementaryTypeName","src":"14470:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14431:59:19"},"returnParameters":{"id":8592,"nodeType":"ParameterList","parameters":[],"src":"14542:0:19"},"scope":9097,"src":"14406:249:19","stateMutability":"payable","virtual":true,"visibility":"public"},{"body":{"id":8620,"nodeType":"Block","src":"14953:291:19","statements":[{"AST":{"nativeSrc":"15015:223:19","nodeType":"YulBlock","src":"15015:223:19","statements":[{"nativeSrc":"15029:30:19","nodeType":"YulVariableDeclaration","src":"15029:30:19","value":{"arguments":[{"kind":"number","nativeSrc":"15042:3:19","nodeType":"YulLiteral","src":"15042:3:19","type":"","value":"224"},{"name":"interfaceId","nativeSrc":"15047:11:19","nodeType":"YulIdentifier","src":"15047:11:19"}],"functionName":{"name":"shr","nativeSrc":"15038:3:19","nodeType":"YulIdentifier","src":"15038:3:19"},"nativeSrc":"15038:21:19","nodeType":"YulFunctionCall","src":"15038:21:19"},"variables":[{"name":"s","nativeSrc":"15033:1:19","nodeType":"YulTypedName","src":"15033:1:19","type":""}]},{"nativeSrc":"15155:73:19","nodeType":"YulAssignment","src":"15155:73:19","value":{"arguments":[{"arguments":[{"arguments":[{"name":"s","nativeSrc":"15174:1:19","nodeType":"YulIdentifier","src":"15174:1:19"},{"kind":"number","nativeSrc":"15177:10:19","nodeType":"YulLiteral","src":"15177:10:19","type":"","value":"0x01ffc9a7"}],"functionName":{"name":"eq","nativeSrc":"15171:2:19","nodeType":"YulIdentifier","src":"15171:2:19"},"nativeSrc":"15171:17:19","nodeType":"YulFunctionCall","src":"15171:17:19"},{"arguments":[{"name":"s","nativeSrc":"15193:1:19","nodeType":"YulIdentifier","src":"15193:1:19"},{"kind":"number","nativeSrc":"15196:10:19","nodeType":"YulLiteral","src":"15196:10:19","type":"","value":"0x80ac58cd"}],"functionName":{"name":"eq","nativeSrc":"15190:2:19","nodeType":"YulIdentifier","src":"15190:2:19"},"nativeSrc":"15190:17:19","nodeType":"YulFunctionCall","src":"15190:17:19"}],"functionName":{"name":"or","nativeSrc":"15168:2:19","nodeType":"YulIdentifier","src":"15168:2:19"},"nativeSrc":"15168:40:19","nodeType":"YulFunctionCall","src":"15168:40:19"},{"arguments":[{"name":"s","nativeSrc":"15213:1:19","nodeType":"YulIdentifier","src":"15213:1:19"},{"kind":"number","nativeSrc":"15216:10:19","nodeType":"YulLiteral","src":"15216:10:19","type":"","value":"0x5b5e139f"}],"functionName":{"name":"eq","nativeSrc":"15210:2:19","nodeType":"YulIdentifier","src":"15210:2:19"},"nativeSrc":"15210:17:19","nodeType":"YulFunctionCall","src":"15210:17:19"}],"functionName":{"name":"or","nativeSrc":"15165:2:19","nodeType":"YulIdentifier","src":"15165:2:19"},"nativeSrc":"15165:63:19","nodeType":"YulFunctionCall","src":"15165:63:19"},"variableNames":[{"name":"result","nativeSrc":"15155:6:19","nodeType":"YulIdentifier","src":"15155:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8614,"isOffset":false,"isSlot":false,"src":"15047:11:19","valueSize":1},{"declaration":8617,"isOffset":false,"isSlot":false,"src":"15155:6:19","valueSize":1}],"id":8619,"nodeType":"InlineAssembly","src":"15006:232:19"}]},"documentation":{"id":8612,"nodeType":"StructuredDocumentation","src":"14661:198:19","text":"@dev Returns true if this contract implements the interface defined by `interfaceId`.\n See: https://eips.ethereum.org/EIPS/eip-165\n This function call must use less than 30000 gas."},"functionSelector":"01ffc9a7","id":8621,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"14873:17:19","nodeType":"FunctionDefinition","parameters":{"id":8615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8614,"mutability":"mutable","name":"interfaceId","nameLocation":"14898:11:19","nodeType":"VariableDeclaration","scope":8621,"src":"14891:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8613,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14891:6:19","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14890:20:19"},"returnParameters":{"id":8618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8617,"mutability":"mutable","name":"result","nameLocation":"14945:6:19","nodeType":"VariableDeclaration","scope":8621,"src":"14940:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8616,"name":"bool","nodeType":"ElementaryTypeName","src":"14940:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14939:13:19"},"scope":9097,"src":"14864:380:19","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8630,"nodeType":"Block","src":"15649:253:19","statements":[{"AST":{"nativeSrc":"15711:185:19","nodeType":"YulBlock","src":"15711:185:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15732:4:19","nodeType":"YulLiteral","src":"15732:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"15738:2:19","nodeType":"YulIdentifier","src":"15738:2:19"}],"functionName":{"name":"mstore","nativeSrc":"15725:6:19","nodeType":"YulIdentifier","src":"15725:6:19"},"nativeSrc":"15725:16:19","nodeType":"YulFunctionCall","src":"15725:16:19"},"nativeSrc":"15725:16:19","nodeType":"YulExpressionStatement","src":"15725:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15761:4:19","nodeType":"YulLiteral","src":"15761:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"15767:24:19","nodeType":"YulIdentifier","src":"15767:24:19"}],"functionName":{"name":"mstore","nativeSrc":"15754:6:19","nodeType":"YulIdentifier","src":"15754:6:19"},"nativeSrc":"15754:38:19","nodeType":"YulFunctionCall","src":"15754:38:19"},"nativeSrc":"15754:38:19","nodeType":"YulExpressionStatement","src":"15754:38:19"},{"nativeSrc":"15805:81:19","nodeType":"YulAssignment","src":"15805:81:19","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15833:2:19","nodeType":"YulLiteral","src":"15833:2:19","type":"","value":"96"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"15847:2:19","nodeType":"YulIdentifier","src":"15847:2:19"},{"arguments":[{"name":"id","nativeSrc":"15855:2:19","nodeType":"YulIdentifier","src":"15855:2:19"},{"arguments":[{"kind":"number","nativeSrc":"15869:4:19","nodeType":"YulLiteral","src":"15869:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15875:4:19","nodeType":"YulLiteral","src":"15875:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"15859:9:19","nodeType":"YulIdentifier","src":"15859:9:19"},"nativeSrc":"15859:21:19","nodeType":"YulFunctionCall","src":"15859:21:19"}],"functionName":{"name":"add","nativeSrc":"15851:3:19","nodeType":"YulIdentifier","src":"15851:3:19"},"nativeSrc":"15851:30:19","nodeType":"YulFunctionCall","src":"15851:30:19"}],"functionName":{"name":"add","nativeSrc":"15843:3:19","nodeType":"YulIdentifier","src":"15843:3:19"},"nativeSrc":"15843:39:19","nodeType":"YulFunctionCall","src":"15843:39:19"}],"functionName":{"name":"sload","nativeSrc":"15837:5:19","nodeType":"YulIdentifier","src":"15837:5:19"},"nativeSrc":"15837:46:19","nodeType":"YulFunctionCall","src":"15837:46:19"}],"functionName":{"name":"shl","nativeSrc":"15829:3:19","nodeType":"YulIdentifier","src":"15829:3:19"},"nativeSrc":"15829:55:19","nodeType":"YulFunctionCall","src":"15829:55:19"}],"functionName":{"name":"iszero","nativeSrc":"15822:6:19","nodeType":"YulIdentifier","src":"15822:6:19"},"nativeSrc":"15822:63:19","nodeType":"YulFunctionCall","src":"15822:63:19"}],"functionName":{"name":"iszero","nativeSrc":"15815:6:19","nodeType":"YulIdentifier","src":"15815:6:19"},"nativeSrc":"15815:71:19","nodeType":"YulFunctionCall","src":"15815:71:19"},"variableNames":[{"name":"result","nativeSrc":"15805:6:19","nodeType":"YulIdentifier","src":"15805:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"15767:24:19","valueSize":1},{"declaration":8624,"isOffset":false,"isSlot":false,"src":"15738:2:19","valueSize":1},{"declaration":8624,"isOffset":false,"isSlot":false,"src":"15847:2:19","valueSize":1},{"declaration":8624,"isOffset":false,"isSlot":false,"src":"15855:2:19","valueSize":1},{"declaration":8627,"isOffset":false,"isSlot":false,"src":"15805:6:19","valueSize":1}],"id":8629,"nodeType":"InlineAssembly","src":"15702:194:19"}]},"documentation":{"id":8622,"nodeType":"StructuredDocumentation","src":"15533:38:19","text":"@dev Returns if token `id` exists."},"id":8631,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"15585:7:19","nodeType":"FunctionDefinition","parameters":{"id":8625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8624,"mutability":"mutable","name":"id","nameLocation":"15601:2:19","nodeType":"VariableDeclaration","scope":8631,"src":"15593:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8623,"name":"uint256","nodeType":"ElementaryTypeName","src":"15593:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15592:12:19"},"returnParameters":{"id":8628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8627,"mutability":"mutable","name":"result","nameLocation":"15641:6:19","nodeType":"VariableDeclaration","scope":8631,"src":"15636:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8626,"name":"bool","nodeType":"ElementaryTypeName","src":"15636:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15635:13:19"},"scope":9097,"src":"15576:326:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8640,"nodeType":"Block","src":"16114:246:19","statements":[{"AST":{"nativeSrc":"16176:178:19","nodeType":"YulBlock","src":"16176:178:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16197:4:19","nodeType":"YulLiteral","src":"16197:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"16203:2:19","nodeType":"YulIdentifier","src":"16203:2:19"}],"functionName":{"name":"mstore","nativeSrc":"16190:6:19","nodeType":"YulIdentifier","src":"16190:6:19"},"nativeSrc":"16190:16:19","nodeType":"YulFunctionCall","src":"16190:16:19"},"nativeSrc":"16190:16:19","nodeType":"YulExpressionStatement","src":"16190:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16226:4:19","nodeType":"YulLiteral","src":"16226:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"16232:24:19","nodeType":"YulIdentifier","src":"16232:24:19"}],"functionName":{"name":"mstore","nativeSrc":"16219:6:19","nodeType":"YulIdentifier","src":"16219:6:19"},"nativeSrc":"16219:38:19","nodeType":"YulFunctionCall","src":"16219:38:19"},"nativeSrc":"16219:38:19","nodeType":"YulExpressionStatement","src":"16219:38:19"},{"nativeSrc":"16270:74:19","nodeType":"YulAssignment","src":"16270:74:19","value":{"arguments":[{"kind":"number","nativeSrc":"16284:2:19","nodeType":"YulLiteral","src":"16284:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"16292:2:19","nodeType":"YulLiteral","src":"16292:2:19","type":"","value":"96"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"16306:2:19","nodeType":"YulIdentifier","src":"16306:2:19"},{"arguments":[{"name":"id","nativeSrc":"16314:2:19","nodeType":"YulIdentifier","src":"16314:2:19"},{"arguments":[{"kind":"number","nativeSrc":"16328:4:19","nodeType":"YulLiteral","src":"16328:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16334:4:19","nodeType":"YulLiteral","src":"16334:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"16318:9:19","nodeType":"YulIdentifier","src":"16318:9:19"},"nativeSrc":"16318:21:19","nodeType":"YulFunctionCall","src":"16318:21:19"}],"functionName":{"name":"add","nativeSrc":"16310:3:19","nodeType":"YulIdentifier","src":"16310:3:19"},"nativeSrc":"16310:30:19","nodeType":"YulFunctionCall","src":"16310:30:19"}],"functionName":{"name":"add","nativeSrc":"16302:3:19","nodeType":"YulIdentifier","src":"16302:3:19"},"nativeSrc":"16302:39:19","nodeType":"YulFunctionCall","src":"16302:39:19"}],"functionName":{"name":"sload","nativeSrc":"16296:5:19","nodeType":"YulIdentifier","src":"16296:5:19"},"nativeSrc":"16296:46:19","nodeType":"YulFunctionCall","src":"16296:46:19"}],"functionName":{"name":"shl","nativeSrc":"16288:3:19","nodeType":"YulIdentifier","src":"16288:3:19"},"nativeSrc":"16288:55:19","nodeType":"YulFunctionCall","src":"16288:55:19"}],"functionName":{"name":"shr","nativeSrc":"16280:3:19","nodeType":"YulIdentifier","src":"16280:3:19"},"nativeSrc":"16280:64:19","nodeType":"YulFunctionCall","src":"16280:64:19"},"variableNames":[{"name":"result","nativeSrc":"16270:6:19","nodeType":"YulIdentifier","src":"16270:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"16232:24:19","valueSize":1},{"declaration":8634,"isOffset":false,"isSlot":false,"src":"16203:2:19","valueSize":1},{"declaration":8634,"isOffset":false,"isSlot":false,"src":"16306:2:19","valueSize":1},{"declaration":8634,"isOffset":false,"isSlot":false,"src":"16314:2:19","valueSize":1},{"declaration":8637,"isOffset":false,"isSlot":false,"src":"16270:6:19","valueSize":1}],"id":8639,"nodeType":"InlineAssembly","src":"16167:187:19"}]},"documentation":{"id":8632,"nodeType":"StructuredDocumentation","src":"15908:124:19","text":"@dev Returns the owner of token `id`.\n Returns the zero address instead of reverting if the token does not exist."},"id":8641,"implemented":true,"kind":"function","modifiers":[],"name":"_ownerOf","nameLocation":"16046:8:19","nodeType":"FunctionDefinition","parameters":{"id":8635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8634,"mutability":"mutable","name":"id","nameLocation":"16063:2:19","nodeType":"VariableDeclaration","scope":8641,"src":"16055:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8633,"name":"uint256","nodeType":"ElementaryTypeName","src":"16055:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16054:12:19"},"returnParameters":{"id":8638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8637,"mutability":"mutable","name":"result","nameLocation":"16106:6:19","nodeType":"VariableDeclaration","scope":8641,"src":"16098:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8636,"name":"address","nodeType":"ElementaryTypeName","src":"16098:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16097:16:19"},"scope":9097,"src":"16037:323:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8650,"nodeType":"Block","src":"17090:222:19","statements":[{"AST":{"nativeSrc":"17152:154:19","nodeType":"YulBlock","src":"17152:154:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17173:4:19","nodeType":"YulLiteral","src":"17173:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"17179:24:19","nodeType":"YulIdentifier","src":"17179:24:19"}],"functionName":{"name":"mstore","nativeSrc":"17166:6:19","nodeType":"YulIdentifier","src":"17166:6:19"},"nativeSrc":"17166:38:19","nodeType":"YulFunctionCall","src":"17166:38:19"},"nativeSrc":"17166:38:19","nodeType":"YulExpressionStatement","src":"17166:38:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17224:4:19","nodeType":"YulLiteral","src":"17224:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"17230:5:19","nodeType":"YulIdentifier","src":"17230:5:19"}],"functionName":{"name":"mstore","nativeSrc":"17217:6:19","nodeType":"YulIdentifier","src":"17217:6:19"},"nativeSrc":"17217:19:19","nodeType":"YulFunctionCall","src":"17217:19:19"},"nativeSrc":"17217:19:19","nodeType":"YulExpressionStatement","src":"17217:19:19"},{"nativeSrc":"17249:47:19","nodeType":"YulAssignment","src":"17249:47:19","value":{"arguments":[{"kind":"number","nativeSrc":"17263:2:19","nodeType":"YulLiteral","src":"17263:2:19","type":"","value":"32"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17283:4:19","nodeType":"YulLiteral","src":"17283:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"17289:4:19","nodeType":"YulLiteral","src":"17289:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"17273:9:19","nodeType":"YulIdentifier","src":"17273:9:19"},"nativeSrc":"17273:21:19","nodeType":"YulFunctionCall","src":"17273:21:19"}],"functionName":{"name":"sload","nativeSrc":"17267:5:19","nodeType":"YulIdentifier","src":"17267:5:19"},"nativeSrc":"17267:28:19","nodeType":"YulFunctionCall","src":"17267:28:19"}],"functionName":{"name":"shr","nativeSrc":"17259:3:19","nodeType":"YulIdentifier","src":"17259:3:19"},"nativeSrc":"17259:37:19","nodeType":"YulFunctionCall","src":"17259:37:19"},"variableNames":[{"name":"result","nativeSrc":"17249:6:19","nodeType":"YulIdentifier","src":"17249:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"17179:24:19","valueSize":1},{"declaration":8644,"isOffset":false,"isSlot":false,"src":"17230:5:19","valueSize":1},{"declaration":8647,"isOffset":false,"isSlot":false,"src":"17249:6:19","valueSize":1}],"id":8649,"nodeType":"InlineAssembly","src":"17143:163:19"}]},"documentation":{"id":8642,"nodeType":"StructuredDocumentation","src":"16773:233:19","text":"@dev Returns the auxiliary data for `owner`.\n Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n Auxiliary data can be set for any address, even if it does not have any tokens."},"id":8651,"implemented":true,"kind":"function","modifiers":[],"name":"_getAux","nameLocation":"17020:7:19","nodeType":"FunctionDefinition","parameters":{"id":8645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8644,"mutability":"mutable","name":"owner","nameLocation":"17036:5:19","nodeType":"VariableDeclaration","scope":8651,"src":"17028:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8643,"name":"address","nodeType":"ElementaryTypeName","src":"17028:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17027:15:19"},"returnParameters":{"id":8648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8647,"mutability":"mutable","name":"result","nameLocation":"17082:6:19","nodeType":"VariableDeclaration","scope":8651,"src":"17074:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8646,"name":"uint224","nodeType":"ElementaryTypeName","src":"17074:7:19","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"17073:16:19"},"scope":9097,"src":"17011:301:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8660,"nodeType":"Block","src":"17627:343:19","statements":[{"AST":{"nativeSrc":"17689:275:19","nodeType":"YulBlock","src":"17689:275:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17710:4:19","nodeType":"YulLiteral","src":"17710:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"17716:24:19","nodeType":"YulIdentifier","src":"17716:24:19"}],"functionName":{"name":"mstore","nativeSrc":"17703:6:19","nodeType":"YulIdentifier","src":"17703:6:19"},"nativeSrc":"17703:38:19","nodeType":"YulFunctionCall","src":"17703:38:19"},"nativeSrc":"17703:38:19","nodeType":"YulExpressionStatement","src":"17703:38:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17761:4:19","nodeType":"YulLiteral","src":"17761:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"17767:5:19","nodeType":"YulIdentifier","src":"17767:5:19"}],"functionName":{"name":"mstore","nativeSrc":"17754:6:19","nodeType":"YulIdentifier","src":"17754:6:19"},"nativeSrc":"17754:19:19","nodeType":"YulFunctionCall","src":"17754:19:19"},"nativeSrc":"17754:19:19","nodeType":"YulExpressionStatement","src":"17754:19:19"},{"nativeSrc":"17786:40:19","nodeType":"YulVariableDeclaration","src":"17786:40:19","value":{"arguments":[{"kind":"number","nativeSrc":"17815:4:19","nodeType":"YulLiteral","src":"17815:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"17821:4:19","nodeType":"YulLiteral","src":"17821:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"17805:9:19","nodeType":"YulIdentifier","src":"17805:9:19"},"nativeSrc":"17805:21:19","nodeType":"YulFunctionCall","src":"17805:21:19"},"variables":[{"name":"balanceSlot","nativeSrc":"17790:11:19","nodeType":"YulTypedName","src":"17790:11:19","type":""}]},{"nativeSrc":"17839:32:19","nodeType":"YulVariableDeclaration","src":"17839:32:19","value":{"arguments":[{"name":"balanceSlot","nativeSrc":"17859:11:19","nodeType":"YulIdentifier","src":"17859:11:19"}],"functionName":{"name":"sload","nativeSrc":"17853:5:19","nodeType":"YulIdentifier","src":"17853:5:19"},"nativeSrc":"17853:18:19","nodeType":"YulFunctionCall","src":"17853:18:19"},"variables":[{"name":"packed","nativeSrc":"17843:6:19","nodeType":"YulTypedName","src":"17843:6:19","type":""}]},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"17891:11:19","nodeType":"YulIdentifier","src":"17891:11:19"},{"arguments":[{"name":"packed","nativeSrc":"17908:6:19","nodeType":"YulIdentifier","src":"17908:6:19"},{"arguments":[{"kind":"number","nativeSrc":"17920:2:19","nodeType":"YulLiteral","src":"17920:2:19","type":"","value":"32"},{"arguments":[{"name":"value","nativeSrc":"17928:5:19","nodeType":"YulIdentifier","src":"17928:5:19"},{"arguments":[{"kind":"number","nativeSrc":"17939:2:19","nodeType":"YulLiteral","src":"17939:2:19","type":"","value":"32"},{"name":"packed","nativeSrc":"17943:6:19","nodeType":"YulIdentifier","src":"17943:6:19"}],"functionName":{"name":"shr","nativeSrc":"17935:3:19","nodeType":"YulIdentifier","src":"17935:3:19"},"nativeSrc":"17935:15:19","nodeType":"YulFunctionCall","src":"17935:15:19"}],"functionName":{"name":"xor","nativeSrc":"17924:3:19","nodeType":"YulIdentifier","src":"17924:3:19"},"nativeSrc":"17924:27:19","nodeType":"YulFunctionCall","src":"17924:27:19"}],"functionName":{"name":"shl","nativeSrc":"17916:3:19","nodeType":"YulIdentifier","src":"17916:3:19"},"nativeSrc":"17916:36:19","nodeType":"YulFunctionCall","src":"17916:36:19"}],"functionName":{"name":"xor","nativeSrc":"17904:3:19","nodeType":"YulIdentifier","src":"17904:3:19"},"nativeSrc":"17904:49:19","nodeType":"YulFunctionCall","src":"17904:49:19"}],"functionName":{"name":"sstore","nativeSrc":"17884:6:19","nodeType":"YulIdentifier","src":"17884:6:19"},"nativeSrc":"17884:70:19","nodeType":"YulFunctionCall","src":"17884:70:19"},"nativeSrc":"17884:70:19","nodeType":"YulExpressionStatement","src":"17884:70:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"17716:24:19","valueSize":1},{"declaration":8654,"isOffset":false,"isSlot":false,"src":"17767:5:19","valueSize":1},{"declaration":8656,"isOffset":false,"isSlot":false,"src":"17928:5:19","valueSize":1}],"id":8659,"nodeType":"InlineAssembly","src":"17680:284:19"}]},"documentation":{"id":8652,"nodeType":"StructuredDocumentation","src":"17318:240:19","text":"@dev Set the auxiliary data for `owner` to `value`.\n Minting, transferring, burning the tokens of `owner` will not change the auxiliary data.\n Auxiliary data can be set for any address, even if it does not have any tokens."},"id":8661,"implemented":true,"kind":"function","modifiers":[],"name":"_setAux","nameLocation":"17572:7:19","nodeType":"FunctionDefinition","parameters":{"id":8657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8654,"mutability":"mutable","name":"owner","nameLocation":"17588:5:19","nodeType":"VariableDeclaration","scope":8661,"src":"17580:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8653,"name":"address","nodeType":"ElementaryTypeName","src":"17580:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8656,"mutability":"mutable","name":"value","nameLocation":"17603:5:19","nodeType":"VariableDeclaration","scope":8661,"src":"17595:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"},"typeName":{"id":8655,"name":"uint224","nodeType":"ElementaryTypeName","src":"17595:7:19","typeDescriptions":{"typeIdentifier":"t_uint224","typeString":"uint224"}},"visibility":"internal"}],"src":"17579:30:19"},"returnParameters":{"id":8658,"nodeType":"ParameterList","parameters":[],"src":"17627:0:19"},"scope":9097,"src":"17563:407:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8670,"nodeType":"Block","src":"18247:238:19","statements":[{"AST":{"nativeSrc":"18309:170:19","nodeType":"YulBlock","src":"18309:170:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18330:4:19","nodeType":"YulLiteral","src":"18330:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"18336:2:19","nodeType":"YulIdentifier","src":"18336:2:19"}],"functionName":{"name":"mstore","nativeSrc":"18323:6:19","nodeType":"YulIdentifier","src":"18323:6:19"},"nativeSrc":"18323:16:19","nodeType":"YulFunctionCall","src":"18323:16:19"},"nativeSrc":"18323:16:19","nodeType":"YulExpressionStatement","src":"18323:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18359:4:19","nodeType":"YulLiteral","src":"18359:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"18365:24:19","nodeType":"YulIdentifier","src":"18365:24:19"}],"functionName":{"name":"mstore","nativeSrc":"18352:6:19","nodeType":"YulIdentifier","src":"18352:6:19"},"nativeSrc":"18352:38:19","nodeType":"YulFunctionCall","src":"18352:38:19"},"nativeSrc":"18352:38:19","nodeType":"YulExpressionStatement","src":"18352:38:19"},{"nativeSrc":"18403:66:19","nodeType":"YulAssignment","src":"18403:66:19","value":{"arguments":[{"kind":"number","nativeSrc":"18417:3:19","nodeType":"YulLiteral","src":"18417:3:19","type":"","value":"160"},{"arguments":[{"arguments":[{"name":"id","nativeSrc":"18432:2:19","nodeType":"YulIdentifier","src":"18432:2:19"},{"arguments":[{"name":"id","nativeSrc":"18440:2:19","nodeType":"YulIdentifier","src":"18440:2:19"},{"arguments":[{"kind":"number","nativeSrc":"18454:4:19","nodeType":"YulLiteral","src":"18454:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18460:4:19","nodeType":"YulLiteral","src":"18460:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18444:9:19","nodeType":"YulIdentifier","src":"18444:9:19"},"nativeSrc":"18444:21:19","nodeType":"YulFunctionCall","src":"18444:21:19"}],"functionName":{"name":"add","nativeSrc":"18436:3:19","nodeType":"YulIdentifier","src":"18436:3:19"},"nativeSrc":"18436:30:19","nodeType":"YulFunctionCall","src":"18436:30:19"}],"functionName":{"name":"add","nativeSrc":"18428:3:19","nodeType":"YulIdentifier","src":"18428:3:19"},"nativeSrc":"18428:39:19","nodeType":"YulFunctionCall","src":"18428:39:19"}],"functionName":{"name":"sload","nativeSrc":"18422:5:19","nodeType":"YulIdentifier","src":"18422:5:19"},"nativeSrc":"18422:46:19","nodeType":"YulFunctionCall","src":"18422:46:19"}],"functionName":{"name":"shr","nativeSrc":"18413:3:19","nodeType":"YulIdentifier","src":"18413:3:19"},"nativeSrc":"18413:56:19","nodeType":"YulFunctionCall","src":"18413:56:19"},"variableNames":[{"name":"result","nativeSrc":"18403:6:19","nodeType":"YulIdentifier","src":"18403:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"18365:24:19","valueSize":1},{"declaration":8664,"isOffset":false,"isSlot":false,"src":"18336:2:19","valueSize":1},{"declaration":8664,"isOffset":false,"isSlot":false,"src":"18432:2:19","valueSize":1},{"declaration":8664,"isOffset":false,"isSlot":false,"src":"18440:2:19","valueSize":1},{"declaration":8667,"isOffset":false,"isSlot":false,"src":"18403:6:19","valueSize":1}],"id":8669,"nodeType":"InlineAssembly","src":"18300:179:19"}]},"documentation":{"id":8662,"nodeType":"StructuredDocumentation","src":"17976:185:19","text":"@dev Returns the extra data for token `id`.\n Minting, transferring, burning a token will not change the extra data.\n The extra data can be set on a non-existent token."},"id":8671,"implemented":true,"kind":"function","modifiers":[],"name":"_getExtraData","nameLocation":"18175:13:19","nodeType":"FunctionDefinition","parameters":{"id":8665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8664,"mutability":"mutable","name":"id","nameLocation":"18197:2:19","nodeType":"VariableDeclaration","scope":8671,"src":"18189:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8663,"name":"uint256","nodeType":"ElementaryTypeName","src":"18189:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18188:12:19"},"returnParameters":{"id":8668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8667,"mutability":"mutable","name":"result","nameLocation":"18239:6:19","nodeType":"VariableDeclaration","scope":8671,"src":"18232:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8666,"name":"uint96","nodeType":"ElementaryTypeName","src":"18232:6:19","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"18231:15:19"},"scope":9097,"src":"18166:319:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8680,"nodeType":"Block","src":"18755:366:19","statements":[{"AST":{"nativeSrc":"18817:298:19","nodeType":"YulBlock","src":"18817:298:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18838:4:19","nodeType":"YulLiteral","src":"18838:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"18844:2:19","nodeType":"YulIdentifier","src":"18844:2:19"}],"functionName":{"name":"mstore","nativeSrc":"18831:6:19","nodeType":"YulIdentifier","src":"18831:6:19"},"nativeSrc":"18831:16:19","nodeType":"YulFunctionCall","src":"18831:16:19"},"nativeSrc":"18831:16:19","nodeType":"YulExpressionStatement","src":"18831:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18867:4:19","nodeType":"YulLiteral","src":"18867:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"18873:24:19","nodeType":"YulIdentifier","src":"18873:24:19"}],"functionName":{"name":"mstore","nativeSrc":"18860:6:19","nodeType":"YulIdentifier","src":"18860:6:19"},"nativeSrc":"18860:38:19","nodeType":"YulFunctionCall","src":"18860:38:19"},"nativeSrc":"18860:38:19","nodeType":"YulExpressionStatement","src":"18860:38:19"},{"nativeSrc":"18911:60:19","nodeType":"YulVariableDeclaration","src":"18911:60:19","value":{"arguments":[{"name":"id","nativeSrc":"18936:2:19","nodeType":"YulIdentifier","src":"18936:2:19"},{"arguments":[{"name":"id","nativeSrc":"18944:2:19","nodeType":"YulIdentifier","src":"18944:2:19"},{"arguments":[{"kind":"number","nativeSrc":"18958:4:19","nodeType":"YulLiteral","src":"18958:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18964:4:19","nodeType":"YulLiteral","src":"18964:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18948:9:19","nodeType":"YulIdentifier","src":"18948:9:19"},"nativeSrc":"18948:21:19","nodeType":"YulFunctionCall","src":"18948:21:19"}],"functionName":{"name":"add","nativeSrc":"18940:3:19","nodeType":"YulIdentifier","src":"18940:3:19"},"nativeSrc":"18940:30:19","nodeType":"YulFunctionCall","src":"18940:30:19"}],"functionName":{"name":"add","nativeSrc":"18932:3:19","nodeType":"YulIdentifier","src":"18932:3:19"},"nativeSrc":"18932:39:19","nodeType":"YulFunctionCall","src":"18932:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"18915:13:19","nodeType":"YulTypedName","src":"18915:13:19","type":""}]},{"nativeSrc":"18984:34:19","nodeType":"YulVariableDeclaration","src":"18984:34:19","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"19004:13:19","nodeType":"YulIdentifier","src":"19004:13:19"}],"functionName":{"name":"sload","nativeSrc":"18998:5:19","nodeType":"YulIdentifier","src":"18998:5:19"},"nativeSrc":"18998:20:19","nodeType":"YulFunctionCall","src":"18998:20:19"},"variables":[{"name":"packed","nativeSrc":"18988:6:19","nodeType":"YulTypedName","src":"18988:6:19","type":""}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"19038:13:19","nodeType":"YulIdentifier","src":"19038:13:19"},{"arguments":[{"name":"packed","nativeSrc":"19057:6:19","nodeType":"YulIdentifier","src":"19057:6:19"},{"arguments":[{"kind":"number","nativeSrc":"19069:3:19","nodeType":"YulLiteral","src":"19069:3:19","type":"","value":"160"},{"arguments":[{"name":"value","nativeSrc":"19078:5:19","nodeType":"YulIdentifier","src":"19078:5:19"},{"arguments":[{"kind":"number","nativeSrc":"19089:3:19","nodeType":"YulLiteral","src":"19089:3:19","type":"","value":"160"},{"name":"packed","nativeSrc":"19094:6:19","nodeType":"YulIdentifier","src":"19094:6:19"}],"functionName":{"name":"shr","nativeSrc":"19085:3:19","nodeType":"YulIdentifier","src":"19085:3:19"},"nativeSrc":"19085:16:19","nodeType":"YulFunctionCall","src":"19085:16:19"}],"functionName":{"name":"xor","nativeSrc":"19074:3:19","nodeType":"YulIdentifier","src":"19074:3:19"},"nativeSrc":"19074:28:19","nodeType":"YulFunctionCall","src":"19074:28:19"}],"functionName":{"name":"shl","nativeSrc":"19065:3:19","nodeType":"YulIdentifier","src":"19065:3:19"},"nativeSrc":"19065:38:19","nodeType":"YulFunctionCall","src":"19065:38:19"}],"functionName":{"name":"xor","nativeSrc":"19053:3:19","nodeType":"YulIdentifier","src":"19053:3:19"},"nativeSrc":"19053:51:19","nodeType":"YulFunctionCall","src":"19053:51:19"}],"functionName":{"name":"sstore","nativeSrc":"19031:6:19","nodeType":"YulIdentifier","src":"19031:6:19"},"nativeSrc":"19031:74:19","nodeType":"YulFunctionCall","src":"19031:74:19"},"nativeSrc":"19031:74:19","nodeType":"YulExpressionStatement","src":"19031:74:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"18873:24:19","valueSize":1},{"declaration":8674,"isOffset":false,"isSlot":false,"src":"18844:2:19","valueSize":1},{"declaration":8674,"isOffset":false,"isSlot":false,"src":"18936:2:19","valueSize":1},{"declaration":8674,"isOffset":false,"isSlot":false,"src":"18944:2:19","valueSize":1},{"declaration":8676,"isOffset":false,"isSlot":false,"src":"19078:5:19","valueSize":1}],"id":8679,"nodeType":"InlineAssembly","src":"18808:307:19"}]},"documentation":{"id":8672,"nodeType":"StructuredDocumentation","src":"18491:193:19","text":"@dev Sets the extra data for token `id` to `value`.\n Minting, transferring, burning a token will not change the extra data.\n The extra data can be set on a non-existent token."},"id":8681,"implemented":true,"kind":"function","modifiers":[],"name":"_setExtraData","nameLocation":"18698:13:19","nodeType":"FunctionDefinition","parameters":{"id":8677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8674,"mutability":"mutable","name":"id","nameLocation":"18720:2:19","nodeType":"VariableDeclaration","scope":8681,"src":"18712:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8673,"name":"uint256","nodeType":"ElementaryTypeName","src":"18712:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8676,"mutability":"mutable","name":"value","nameLocation":"18731:5:19","nodeType":"VariableDeclaration","scope":8681,"src":"18724:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8675,"name":"uint96","nodeType":"ElementaryTypeName","src":"18724:6:19","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"18711:26:19"},"returnParameters":{"id":8678,"nodeType":"ParameterList","parameters":[],"src":"18755:0:19"},"scope":9097,"src":"18689:432:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8708,"nodeType":"Block","src":"19665:1597:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19704: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":8691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19696:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8690,"name":"address","nodeType":"ElementaryTypeName","src":"19696:7:19","typeDescriptions":{}}},"id":8693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19696:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8694,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8684,"src":"19708:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8695,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8686,"src":"19712:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8689,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"19675:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19675:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8697,"nodeType":"ExpressionStatement","src":"19675:40:19"},{"AST":{"nativeSrc":"19777:1430:19","nodeType":"YulBlock","src":"19777:1430:19","statements":[{"nativeSrc":"19831:26:19","nodeType":"YulAssignment","src":"19831:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"19841:2:19","nodeType":"YulLiteral","src":"19841:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"19849:2:19","nodeType":"YulLiteral","src":"19849:2:19","type":"","value":"96"},{"name":"to","nativeSrc":"19853:2:19","nodeType":"YulIdentifier","src":"19853:2:19"}],"functionName":{"name":"shl","nativeSrc":"19845:3:19","nodeType":"YulIdentifier","src":"19845:3:19"},"nativeSrc":"19845:11:19","nodeType":"YulFunctionCall","src":"19845:11:19"}],"functionName":{"name":"shr","nativeSrc":"19837:3:19","nodeType":"YulIdentifier","src":"19837:3:19"},"nativeSrc":"19837:20:19","nodeType":"YulFunctionCall","src":"19837:20:19"},"variableNames":[{"name":"to","nativeSrc":"19831:2:19","nodeType":"YulIdentifier","src":"19831:2:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19917:4:19","nodeType":"YulLiteral","src":"19917:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"19923:2:19","nodeType":"YulIdentifier","src":"19923:2:19"}],"functionName":{"name":"mstore","nativeSrc":"19910:6:19","nodeType":"YulIdentifier","src":"19910:6:19"},"nativeSrc":"19910:16:19","nodeType":"YulFunctionCall","src":"19910:16:19"},"nativeSrc":"19910:16:19","nodeType":"YulExpressionStatement","src":"19910:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19946:4:19","nodeType":"YulLiteral","src":"19946:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"19952:24:19","nodeType":"YulIdentifier","src":"19952:24:19"}],"functionName":{"name":"mstore","nativeSrc":"19939:6:19","nodeType":"YulIdentifier","src":"19939:6:19"},"nativeSrc":"19939:38:19","nodeType":"YulFunctionCall","src":"19939:38:19"},"nativeSrc":"19939:38:19","nodeType":"YulExpressionStatement","src":"19939:38:19"},{"nativeSrc":"19990:60:19","nodeType":"YulVariableDeclaration","src":"19990:60:19","value":{"arguments":[{"name":"id","nativeSrc":"20015:2:19","nodeType":"YulIdentifier","src":"20015:2:19"},{"arguments":[{"name":"id","nativeSrc":"20023:2:19","nodeType":"YulIdentifier","src":"20023:2:19"},{"arguments":[{"kind":"number","nativeSrc":"20037:4:19","nodeType":"YulLiteral","src":"20037:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20043:4:19","nodeType":"YulLiteral","src":"20043:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"20027:9:19","nodeType":"YulIdentifier","src":"20027:9:19"},"nativeSrc":"20027:21:19","nodeType":"YulFunctionCall","src":"20027:21:19"}],"functionName":{"name":"add","nativeSrc":"20019:3:19","nodeType":"YulIdentifier","src":"20019:3:19"},"nativeSrc":"20019:30:19","nodeType":"YulFunctionCall","src":"20019:30:19"}],"functionName":{"name":"add","nativeSrc":"20011:3:19","nodeType":"YulIdentifier","src":"20011:3:19"},"nativeSrc":"20011:39:19","nodeType":"YulFunctionCall","src":"20011:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"19994:13:19","nodeType":"YulTypedName","src":"19994:13:19","type":""}]},{"nativeSrc":"20063:43:19","nodeType":"YulVariableDeclaration","src":"20063:43:19","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"20092:13:19","nodeType":"YulIdentifier","src":"20092:13:19"}],"functionName":{"name":"sload","nativeSrc":"20086:5:19","nodeType":"YulIdentifier","src":"20086:5:19"},"nativeSrc":"20086:20:19","nodeType":"YulFunctionCall","src":"20086:20:19"},"variables":[{"name":"ownershipPacked","nativeSrc":"20067:15:19","nodeType":"YulTypedName","src":"20067:15:19","type":""}]},{"body":{"nativeSrc":"20198:118:19","nodeType":"YulBlock","src":"20198:118:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20223:4:19","nodeType":"YulLiteral","src":"20223:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20229:10:19","nodeType":"YulLiteral","src":"20229:10:19","type":"","value":"0xc991cbb1"}],"functionName":{"name":"mstore","nativeSrc":"20216:6:19","nodeType":"YulIdentifier","src":"20216:6:19"},"nativeSrc":"20216:24:19","nodeType":"YulFunctionCall","src":"20216:24:19"},"nativeSrc":"20216:24:19","nodeType":"YulExpressionStatement","src":"20216:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20291:4:19","nodeType":"YulLiteral","src":"20291:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"20297:4:19","nodeType":"YulLiteral","src":"20297:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"20284:6:19","nodeType":"YulIdentifier","src":"20284:6:19"},"nativeSrc":"20284:18:19","nodeType":"YulFunctionCall","src":"20284:18:19"},"nativeSrc":"20284:18:19","nodeType":"YulExpressionStatement","src":"20284:18:19"}]},"condition":{"arguments":[{"kind":"number","nativeSrc":"20177:2:19","nodeType":"YulLiteral","src":"20177:2:19","type":"","value":"96"},{"name":"ownershipPacked","nativeSrc":"20181:15:19","nodeType":"YulIdentifier","src":"20181:15:19"}],"functionName":{"name":"shl","nativeSrc":"20173:3:19","nodeType":"YulIdentifier","src":"20173:3:19"},"nativeSrc":"20173:24:19","nodeType":"YulFunctionCall","src":"20173:24:19"},"nativeSrc":"20170:146:19","nodeType":"YulIf","src":"20170:146:19"},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"20374:13:19","nodeType":"YulIdentifier","src":"20374:13:19"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"20392:15:19","nodeType":"YulIdentifier","src":"20392:15:19"},{"name":"to","nativeSrc":"20409:2:19","nodeType":"YulIdentifier","src":"20409:2:19"}],"functionName":{"name":"or","nativeSrc":"20389:2:19","nodeType":"YulIdentifier","src":"20389:2:19"},"nativeSrc":"20389:23:19","nodeType":"YulFunctionCall","src":"20389:23:19"}],"functionName":{"name":"sstore","nativeSrc":"20367:6:19","nodeType":"YulIdentifier","src":"20367:6:19"},"nativeSrc":"20367:46:19","nodeType":"YulFunctionCall","src":"20367:46:19"},"nativeSrc":"20367:46:19","nodeType":"YulExpressionStatement","src":"20367:46:19"},{"nativeSrc":"20477:605:19","nodeType":"YulBlock","src":"20477:605:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20502:4:19","nodeType":"YulLiteral","src":"20502:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"20508:2:19","nodeType":"YulIdentifier","src":"20508:2:19"}],"functionName":{"name":"mstore","nativeSrc":"20495:6:19","nodeType":"YulIdentifier","src":"20495:6:19"},"nativeSrc":"20495:16:19","nodeType":"YulFunctionCall","src":"20495:16:19"},"nativeSrc":"20495:16:19","nodeType":"YulExpressionStatement","src":"20495:16:19"},{"nativeSrc":"20528:40:19","nodeType":"YulVariableDeclaration","src":"20528:40:19","value":{"arguments":[{"kind":"number","nativeSrc":"20557:4:19","nodeType":"YulLiteral","src":"20557:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"20563:4:19","nodeType":"YulLiteral","src":"20563:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"20547:9:19","nodeType":"YulIdentifier","src":"20547:9:19"},"nativeSrc":"20547:21:19","nodeType":"YulFunctionCall","src":"20547:21:19"},"variables":[{"name":"balanceSlot","nativeSrc":"20532:11:19","nodeType":"YulTypedName","src":"20532:11:19","type":""}]},{"nativeSrc":"20585:51:19","nodeType":"YulVariableDeclaration","src":"20585:51:19","value":{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"20620:11:19","nodeType":"YulIdentifier","src":"20620:11:19"}],"functionName":{"name":"sload","nativeSrc":"20614:5:19","nodeType":"YulIdentifier","src":"20614:5:19"},"nativeSrc":"20614:18:19","nodeType":"YulFunctionCall","src":"20614:18:19"},{"kind":"number","nativeSrc":"20634:1:19","nodeType":"YulLiteral","src":"20634:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20610:3:19","nodeType":"YulIdentifier","src":"20610:3:19"},"nativeSrc":"20610:26:19","nodeType":"YulFunctionCall","src":"20610:26:19"},"variables":[{"name":"balanceSlotPacked","nativeSrc":"20589:17:19","nodeType":"YulTypedName","src":"20589:17:19","type":""}]},{"body":{"nativeSrc":"20810:203:19","nodeType":"YulBlock","src":"20810:203:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20921:1:19","nodeType":"YulLiteral","src":"20921:1:19","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"20931:2:19","nodeType":"YulIdentifier","src":"20931:2:19"}],"functionName":{"name":"iszero","nativeSrc":"20924:6:19","nodeType":"YulIdentifier","src":"20924:6:19"},"nativeSrc":"20924:10:19","nodeType":"YulFunctionCall","src":"20924:10:19"}],"functionName":{"name":"shl","nativeSrc":"20917:3:19","nodeType":"YulIdentifier","src":"20917:3:19"},"nativeSrc":"20917:18:19","nodeType":"YulFunctionCall","src":"20917:18:19"},{"kind":"number","nativeSrc":"20937:18:19","nodeType":"YulLiteral","src":"20937:18:19","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"20910:6:19","nodeType":"YulIdentifier","src":"20910:6:19"},"nativeSrc":"20910:46:19","nodeType":"YulFunctionCall","src":"20910:46:19"},"nativeSrc":"20910:46:19","nodeType":"YulExpressionStatement","src":"20910:46:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20984:4:19","nodeType":"YulLiteral","src":"20984:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"20990:4:19","nodeType":"YulLiteral","src":"20990:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"20977:6:19","nodeType":"YulIdentifier","src":"20977:6:19"},"nativeSrc":"20977:18:19","nodeType":"YulFunctionCall","src":"20977:18:19"},"nativeSrc":"20977:18:19","nodeType":"YulExpressionStatement","src":"20977:18:19"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"20759:2:19","nodeType":"YulIdentifier","src":"20759:2:19"},{"arguments":[{"name":"balanceSlotPacked","nativeSrc":"20767:17:19","nodeType":"YulIdentifier","src":"20767:17:19"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"20786:20:19","nodeType":"YulIdentifier","src":"20786:20:19"}],"functionName":{"name":"and","nativeSrc":"20763:3:19","nodeType":"YulIdentifier","src":"20763:3:19"},"nativeSrc":"20763:44:19","nodeType":"YulFunctionCall","src":"20763:44:19"}],"functionName":{"name":"mul","nativeSrc":"20755:3:19","nodeType":"YulIdentifier","src":"20755:3:19"},"nativeSrc":"20755:53:19","nodeType":"YulFunctionCall","src":"20755:53:19"}],"functionName":{"name":"iszero","nativeSrc":"20748:6:19","nodeType":"YulIdentifier","src":"20748:6:19"},"nativeSrc":"20748:61:19","nodeType":"YulFunctionCall","src":"20748:61:19"},"nativeSrc":"20745:268:19","nodeType":"YulIf","src":"20745:268:19"},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"21037:11:19","nodeType":"YulIdentifier","src":"21037:11:19"},{"name":"balanceSlotPacked","nativeSrc":"21050:17:19","nodeType":"YulIdentifier","src":"21050:17:19"}],"functionName":{"name":"sstore","nativeSrc":"21030:6:19","nodeType":"YulIdentifier","src":"21030:6:19"},"nativeSrc":"21030:38:19","nodeType":"YulFunctionCall","src":"21030:38:19"},"nativeSrc":"21030:38:19","nodeType":"YulExpressionStatement","src":"21030:38:19"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"21142:8:19","nodeType":"YulIdentifier","src":"21142:8:19"},"nativeSrc":"21142:10:19","nodeType":"YulFunctionCall","src":"21142:10:19"},{"kind":"number","nativeSrc":"21154:4:19","nodeType":"YulLiteral","src":"21154:4:19","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"21160:25:19","nodeType":"YulIdentifier","src":"21160:25:19"},{"kind":"number","nativeSrc":"21187:1:19","nodeType":"YulLiteral","src":"21187:1:19","type":"","value":"0"},{"name":"to","nativeSrc":"21190:2:19","nodeType":"YulIdentifier","src":"21190:2:19"},{"name":"id","nativeSrc":"21194:2:19","nodeType":"YulIdentifier","src":"21194:2:19"}],"functionName":{"name":"log4","nativeSrc":"21137:4:19","nodeType":"YulIdentifier","src":"21137:4:19"},"nativeSrc":"21137:60:19","nodeType":"YulFunctionCall","src":"21137:60:19"},"nativeSrc":"21137:60:19","nodeType":"YulExpressionStatement","src":"21137:60:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"19952:24:19","valueSize":1},{"declaration":8362,"isOffset":false,"isSlot":false,"src":"20786:20:19","valueSize":1},{"declaration":8417,"isOffset":false,"isSlot":false,"src":"21160:25:19","valueSize":1},{"declaration":8686,"isOffset":false,"isSlot":false,"src":"19923:2:19","valueSize":1},{"declaration":8686,"isOffset":false,"isSlot":false,"src":"20015:2:19","valueSize":1},{"declaration":8686,"isOffset":false,"isSlot":false,"src":"20023:2:19","valueSize":1},{"declaration":8686,"isOffset":false,"isSlot":false,"src":"21194:2:19","valueSize":1},{"declaration":8684,"isOffset":false,"isSlot":false,"src":"19831:2:19","valueSize":1},{"declaration":8684,"isOffset":false,"isSlot":false,"src":"19853:2:19","valueSize":1},{"declaration":8684,"isOffset":false,"isSlot":false,"src":"20409:2:19","valueSize":1},{"declaration":8684,"isOffset":false,"isSlot":false,"src":"20508:2:19","valueSize":1},{"declaration":8684,"isOffset":false,"isSlot":false,"src":"20759:2:19","valueSize":1},{"declaration":8684,"isOffset":false,"isSlot":false,"src":"20931:2:19","valueSize":1},{"declaration":8684,"isOffset":false,"isSlot":false,"src":"21190:2:19","valueSize":1}],"id":8698,"nodeType":"InlineAssembly","src":"19768:1439:19"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21244: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":8701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21236:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8700,"name":"address","nodeType":"ElementaryTypeName","src":"21236:7:19","typeDescriptions":{}}},"id":8703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21236:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8704,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8684,"src":"21248:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8705,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8686,"src":"21252:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8699,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9072,"src":"21216:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21216:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8707,"nodeType":"ExpressionStatement","src":"21216:39:19"}]},"documentation":{"id":8682,"nodeType":"StructuredDocumentation","src":"19410:194:19","text":"@dev Mints token `id` to `to`.\n Requirements:\n - Token `id` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":8709,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"19618:5:19","nodeType":"FunctionDefinition","parameters":{"id":8687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8684,"mutability":"mutable","name":"to","nameLocation":"19632:2:19","nodeType":"VariableDeclaration","scope":8709,"src":"19624:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8683,"name":"address","nodeType":"ElementaryTypeName","src":"19624:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8686,"mutability":"mutable","name":"id","nameLocation":"19644:2:19","nodeType":"VariableDeclaration","scope":8709,"src":"19636:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8685,"name":"uint256","nodeType":"ElementaryTypeName","src":"19636:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19623:24:19"},"returnParameters":{"id":8688,"nodeType":"ParameterList","parameters":[],"src":"19665:0:19"},"scope":9097,"src":"19609:1653:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8738,"nodeType":"Block","src":"21667:1259:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21706: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":8721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21698:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8720,"name":"address","nodeType":"ElementaryTypeName","src":"21698:7:19","typeDescriptions":{}}},"id":8723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21698:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8724,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8712,"src":"21710:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8725,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8714,"src":"21714:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8719,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"21677:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21677:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8727,"nodeType":"ExpressionStatement","src":"21677:40:19"},{"AST":{"nativeSrc":"21779:1092:19","nodeType":"YulBlock","src":"21779:1092:19","statements":[{"nativeSrc":"21833:26:19","nodeType":"YulAssignment","src":"21833:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"21843:2:19","nodeType":"YulLiteral","src":"21843:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"21851:2:19","nodeType":"YulLiteral","src":"21851:2:19","type":"","value":"96"},{"name":"to","nativeSrc":"21855:2:19","nodeType":"YulIdentifier","src":"21855:2:19"}],"functionName":{"name":"shl","nativeSrc":"21847:3:19","nodeType":"YulIdentifier","src":"21847:3:19"},"nativeSrc":"21847:11:19","nodeType":"YulFunctionCall","src":"21847:11:19"}],"functionName":{"name":"shr","nativeSrc":"21839:3:19","nodeType":"YulIdentifier","src":"21839:3:19"},"nativeSrc":"21839:20:19","nodeType":"YulFunctionCall","src":"21839:20:19"},"variableNames":[{"name":"to","nativeSrc":"21833:2:19","nodeType":"YulIdentifier","src":"21833:2:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21932:4:19","nodeType":"YulLiteral","src":"21932:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"21938:2:19","nodeType":"YulIdentifier","src":"21938:2:19"}],"functionName":{"name":"mstore","nativeSrc":"21925:6:19","nodeType":"YulIdentifier","src":"21925:6:19"},"nativeSrc":"21925:16:19","nodeType":"YulFunctionCall","src":"21925:16:19"},"nativeSrc":"21925:16:19","nodeType":"YulExpressionStatement","src":"21925:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21961:4:19","nodeType":"YulLiteral","src":"21961:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"21967:24:19","nodeType":"YulIdentifier","src":"21967:24:19"}],"functionName":{"name":"mstore","nativeSrc":"21954:6:19","nodeType":"YulIdentifier","src":"21954:6:19"},"nativeSrc":"21954:38:19","nodeType":"YulFunctionCall","src":"21954:38:19"},"nativeSrc":"21954:38:19","nodeType":"YulExpressionStatement","src":"21954:38:19"},{"expression":{"arguments":[{"arguments":[{"name":"id","nativeSrc":"22016:2:19","nodeType":"YulIdentifier","src":"22016:2:19"},{"arguments":[{"name":"id","nativeSrc":"22024:2:19","nodeType":"YulIdentifier","src":"22024:2:19"},{"arguments":[{"kind":"number","nativeSrc":"22038:4:19","nodeType":"YulLiteral","src":"22038:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22044:4:19","nodeType":"YulLiteral","src":"22044:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"22028:9:19","nodeType":"YulIdentifier","src":"22028:9:19"},"nativeSrc":"22028:21:19","nodeType":"YulFunctionCall","src":"22028:21:19"}],"functionName":{"name":"add","nativeSrc":"22020:3:19","nodeType":"YulIdentifier","src":"22020:3:19"},"nativeSrc":"22020:30:19","nodeType":"YulFunctionCall","src":"22020:30:19"}],"functionName":{"name":"add","nativeSrc":"22012:3:19","nodeType":"YulIdentifier","src":"22012:3:19"},"nativeSrc":"22012:39:19","nodeType":"YulFunctionCall","src":"22012:39:19"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22060:3:19","nodeType":"YulLiteral","src":"22060:3:19","type":"","value":"160"},{"name":"value","nativeSrc":"22065:5:19","nodeType":"YulIdentifier","src":"22065:5:19"}],"functionName":{"name":"shl","nativeSrc":"22056:3:19","nodeType":"YulIdentifier","src":"22056:3:19"},"nativeSrc":"22056:15:19","nodeType":"YulFunctionCall","src":"22056:15:19"},{"name":"to","nativeSrc":"22073:2:19","nodeType":"YulIdentifier","src":"22073:2:19"}],"functionName":{"name":"or","nativeSrc":"22053:2:19","nodeType":"YulIdentifier","src":"22053:2:19"},"nativeSrc":"22053:23:19","nodeType":"YulFunctionCall","src":"22053:23:19"}],"functionName":{"name":"sstore","nativeSrc":"22005:6:19","nodeType":"YulIdentifier","src":"22005:6:19"},"nativeSrc":"22005:72:19","nodeType":"YulFunctionCall","src":"22005:72:19"},"nativeSrc":"22005:72:19","nodeType":"YulExpressionStatement","src":"22005:72:19"},{"nativeSrc":"22141:605:19","nodeType":"YulBlock","src":"22141:605:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22166:4:19","nodeType":"YulLiteral","src":"22166:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"22172:2:19","nodeType":"YulIdentifier","src":"22172:2:19"}],"functionName":{"name":"mstore","nativeSrc":"22159:6:19","nodeType":"YulIdentifier","src":"22159:6:19"},"nativeSrc":"22159:16:19","nodeType":"YulFunctionCall","src":"22159:16:19"},"nativeSrc":"22159:16:19","nodeType":"YulExpressionStatement","src":"22159:16:19"},{"nativeSrc":"22192:40:19","nodeType":"YulVariableDeclaration","src":"22192:40:19","value":{"arguments":[{"kind":"number","nativeSrc":"22221:4:19","nodeType":"YulLiteral","src":"22221:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"22227:4:19","nodeType":"YulLiteral","src":"22227:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"22211:9:19","nodeType":"YulIdentifier","src":"22211:9:19"},"nativeSrc":"22211:21:19","nodeType":"YulFunctionCall","src":"22211:21:19"},"variables":[{"name":"balanceSlot","nativeSrc":"22196:11:19","nodeType":"YulTypedName","src":"22196:11:19","type":""}]},{"nativeSrc":"22249:51:19","nodeType":"YulVariableDeclaration","src":"22249:51:19","value":{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"22284:11:19","nodeType":"YulIdentifier","src":"22284:11:19"}],"functionName":{"name":"sload","nativeSrc":"22278:5:19","nodeType":"YulIdentifier","src":"22278:5:19"},"nativeSrc":"22278:18:19","nodeType":"YulFunctionCall","src":"22278:18:19"},{"kind":"number","nativeSrc":"22298:1:19","nodeType":"YulLiteral","src":"22298:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22274:3:19","nodeType":"YulIdentifier","src":"22274:3:19"},"nativeSrc":"22274:26:19","nodeType":"YulFunctionCall","src":"22274:26:19"},"variables":[{"name":"balanceSlotPacked","nativeSrc":"22253:17:19","nodeType":"YulTypedName","src":"22253:17:19","type":""}]},{"body":{"nativeSrc":"22474:203:19","nodeType":"YulBlock","src":"22474:203:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22585:1:19","nodeType":"YulLiteral","src":"22585:1:19","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"22595:2:19","nodeType":"YulIdentifier","src":"22595:2:19"}],"functionName":{"name":"iszero","nativeSrc":"22588:6:19","nodeType":"YulIdentifier","src":"22588:6:19"},"nativeSrc":"22588:10:19","nodeType":"YulFunctionCall","src":"22588:10:19"}],"functionName":{"name":"shl","nativeSrc":"22581:3:19","nodeType":"YulIdentifier","src":"22581:3:19"},"nativeSrc":"22581:18:19","nodeType":"YulFunctionCall","src":"22581:18:19"},{"kind":"number","nativeSrc":"22601:18:19","nodeType":"YulLiteral","src":"22601:18:19","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"22574:6:19","nodeType":"YulIdentifier","src":"22574:6:19"},"nativeSrc":"22574:46:19","nodeType":"YulFunctionCall","src":"22574:46:19"},"nativeSrc":"22574:46:19","nodeType":"YulExpressionStatement","src":"22574:46:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22648:4:19","nodeType":"YulLiteral","src":"22648:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"22654:4:19","nodeType":"YulLiteral","src":"22654:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"22641:6:19","nodeType":"YulIdentifier","src":"22641:6:19"},"nativeSrc":"22641:18:19","nodeType":"YulFunctionCall","src":"22641:18:19"},"nativeSrc":"22641:18:19","nodeType":"YulExpressionStatement","src":"22641:18:19"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"22423:2:19","nodeType":"YulIdentifier","src":"22423:2:19"},{"arguments":[{"name":"balanceSlotPacked","nativeSrc":"22431:17:19","nodeType":"YulIdentifier","src":"22431:17:19"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"22450:20:19","nodeType":"YulIdentifier","src":"22450:20:19"}],"functionName":{"name":"and","nativeSrc":"22427:3:19","nodeType":"YulIdentifier","src":"22427:3:19"},"nativeSrc":"22427:44:19","nodeType":"YulFunctionCall","src":"22427:44:19"}],"functionName":{"name":"mul","nativeSrc":"22419:3:19","nodeType":"YulIdentifier","src":"22419:3:19"},"nativeSrc":"22419:53:19","nodeType":"YulFunctionCall","src":"22419:53:19"}],"functionName":{"name":"iszero","nativeSrc":"22412:6:19","nodeType":"YulIdentifier","src":"22412:6:19"},"nativeSrc":"22412:61:19","nodeType":"YulFunctionCall","src":"22412:61:19"},"nativeSrc":"22409:268:19","nodeType":"YulIf","src":"22409:268:19"},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"22701:11:19","nodeType":"YulIdentifier","src":"22701:11:19"},{"name":"balanceSlotPacked","nativeSrc":"22714:17:19","nodeType":"YulIdentifier","src":"22714:17:19"}],"functionName":{"name":"sstore","nativeSrc":"22694:6:19","nodeType":"YulIdentifier","src":"22694:6:19"},"nativeSrc":"22694:38:19","nodeType":"YulFunctionCall","src":"22694:38:19"},"nativeSrc":"22694:38:19","nodeType":"YulExpressionStatement","src":"22694:38:19"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"22806:8:19","nodeType":"YulIdentifier","src":"22806:8:19"},"nativeSrc":"22806:10:19","nodeType":"YulFunctionCall","src":"22806:10:19"},{"kind":"number","nativeSrc":"22818:4:19","nodeType":"YulLiteral","src":"22818:4:19","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"22824:25:19","nodeType":"YulIdentifier","src":"22824:25:19"},{"kind":"number","nativeSrc":"22851:1:19","nodeType":"YulLiteral","src":"22851:1:19","type":"","value":"0"},{"name":"to","nativeSrc":"22854:2:19","nodeType":"YulIdentifier","src":"22854:2:19"},{"name":"id","nativeSrc":"22858:2:19","nodeType":"YulIdentifier","src":"22858:2:19"}],"functionName":{"name":"log4","nativeSrc":"22801:4:19","nodeType":"YulIdentifier","src":"22801:4:19"},"nativeSrc":"22801:60:19","nodeType":"YulFunctionCall","src":"22801:60:19"},"nativeSrc":"22801:60:19","nodeType":"YulExpressionStatement","src":"22801:60:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"21967:24:19","valueSize":1},{"declaration":8362,"isOffset":false,"isSlot":false,"src":"22450:20:19","valueSize":1},{"declaration":8417,"isOffset":false,"isSlot":false,"src":"22824:25:19","valueSize":1},{"declaration":8714,"isOffset":false,"isSlot":false,"src":"21938:2:19","valueSize":1},{"declaration":8714,"isOffset":false,"isSlot":false,"src":"22016:2:19","valueSize":1},{"declaration":8714,"isOffset":false,"isSlot":false,"src":"22024:2:19","valueSize":1},{"declaration":8714,"isOffset":false,"isSlot":false,"src":"22858:2:19","valueSize":1},{"declaration":8712,"isOffset":false,"isSlot":false,"src":"21833:2:19","valueSize":1},{"declaration":8712,"isOffset":false,"isSlot":false,"src":"21855:2:19","valueSize":1},{"declaration":8712,"isOffset":false,"isSlot":false,"src":"22073:2:19","valueSize":1},{"declaration":8712,"isOffset":false,"isSlot":false,"src":"22172:2:19","valueSize":1},{"declaration":8712,"isOffset":false,"isSlot":false,"src":"22423:2:19","valueSize":1},{"declaration":8712,"isOffset":false,"isSlot":false,"src":"22595:2:19","valueSize":1},{"declaration":8712,"isOffset":false,"isSlot":false,"src":"22854:2:19","valueSize":1},{"declaration":8716,"isOffset":false,"isSlot":false,"src":"22065:5:19","valueSize":1}],"id":8728,"nodeType":"InlineAssembly","src":"21770:1101:19"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22908: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":8731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22900:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8730,"name":"address","nodeType":"ElementaryTypeName","src":"22900:7:19","typeDescriptions":{}}},"id":8733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22900:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8734,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8712,"src":"22912:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8735,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8714,"src":"22916:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8729,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9072,"src":"22880:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22880:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8737,"nodeType":"ExpressionStatement","src":"22880:39:19"}]},"documentation":{"id":8710,"nodeType":"StructuredDocumentation","src":"21268:300:19","text":"@dev Mints token `id` to `to`, and updates the extra data for token `id` to `value`.\n Does NOT check if token `id` already exists (assumes `id` is auto-incrementing).\n Requirements:\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":8739,"implemented":true,"kind":"function","modifiers":[],"name":"_mintAndSetExtraDataUnchecked","nameLocation":"21582:29:19","nodeType":"FunctionDefinition","parameters":{"id":8717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"mutability":"mutable","name":"to","nameLocation":"21620:2:19","nodeType":"VariableDeclaration","scope":8739,"src":"21612:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8711,"name":"address","nodeType":"ElementaryTypeName","src":"21612:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8714,"mutability":"mutable","name":"id","nameLocation":"21632:2:19","nodeType":"VariableDeclaration","scope":8739,"src":"21624:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8713,"name":"uint256","nodeType":"ElementaryTypeName","src":"21624:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8716,"mutability":"mutable","name":"value","nameLocation":"21643:5:19","nodeType":"VariableDeclaration","scope":8739,"src":"21636:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"},"typeName":{"id":8715,"name":"uint96","nodeType":"ElementaryTypeName","src":"21636:6:19","typeDescriptions":{"typeIdentifier":"t_uint96","typeString":"uint96"}},"visibility":"internal"}],"src":"21611:38:19"},"returnParameters":{"id":8718,"nodeType":"ParameterList","parameters":[],"src":"21667:0:19"},"scope":9097,"src":"21573:1353:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8753,"nodeType":"Block","src":"23044:38:19","statements":[{"expression":{"arguments":[{"id":8748,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8742,"src":"23064:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8749,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8744,"src":"23068:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23072:2:19","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":8747,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[8754,8784],"referencedDeclaration":8784,"src":"23054:9:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":8751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23054:21:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8752,"nodeType":"ExpressionStatement","src":"23054:21:19"}]},"documentation":{"id":8740,"nodeType":"StructuredDocumentation","src":"22932:47:19","text":"@dev Equivalent to `_safeMint(to, id, \"\")`."},"id":8754,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"22993:9:19","nodeType":"FunctionDefinition","parameters":{"id":8745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8742,"mutability":"mutable","name":"to","nameLocation":"23011:2:19","nodeType":"VariableDeclaration","scope":8754,"src":"23003:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8741,"name":"address","nodeType":"ElementaryTypeName","src":"23003:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8744,"mutability":"mutable","name":"id","nameLocation":"23023:2:19","nodeType":"VariableDeclaration","scope":8754,"src":"23015:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8743,"name":"uint256","nodeType":"ElementaryTypeName","src":"23015:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23002:24:19"},"returnParameters":{"id":8746,"nodeType":"ParameterList","parameters":[],"src":"23044:0:19"},"scope":9097,"src":"22984:98:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8783,"nodeType":"Block","src":"23514:106:19","statements":[{"expression":{"arguments":[{"id":8765,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8757,"src":"23530:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8766,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"23534:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8764,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8709,"src":"23524:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23524:13:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8768,"nodeType":"ExpressionStatement","src":"23524:13:19"},{"condition":{"arguments":[{"id":8770,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8757,"src":"23560:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8769,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9082,"src":"23551:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23551:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8782,"nodeType":"IfStatement","src":"23547:66:19","trueBody":{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23596: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":8774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23588:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8773,"name":"address","nodeType":"ElementaryTypeName","src":"23588:7:19","typeDescriptions":{}}},"id":8776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23588:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8777,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8757,"src":"23600:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8778,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8759,"src":"23604:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8779,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8761,"src":"23608:4:19","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":8772,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"23565:22:19","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":8780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23565:48:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8781,"nodeType":"ExpressionStatement","src":"23565:48:19"}}]},"documentation":{"id":8755,"nodeType":"StructuredDocumentation","src":"23088:342:19","text":"@dev Mints token `id` to `to`.\n Requirements:\n - Token `id` must not exist.\n - `to` cannot be the zero address.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":8784,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"23444:9:19","nodeType":"FunctionDefinition","parameters":{"id":8762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8757,"mutability":"mutable","name":"to","nameLocation":"23462:2:19","nodeType":"VariableDeclaration","scope":8784,"src":"23454:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8756,"name":"address","nodeType":"ElementaryTypeName","src":"23454:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8759,"mutability":"mutable","name":"id","nameLocation":"23474:2:19","nodeType":"VariableDeclaration","scope":8784,"src":"23466:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8758,"name":"uint256","nodeType":"ElementaryTypeName","src":"23466:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8761,"mutability":"mutable","name":"data","nameLocation":"23491:4:19","nodeType":"VariableDeclaration","scope":8784,"src":"23478:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8760,"name":"bytes","nodeType":"ElementaryTypeName","src":"23478:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23453:43:19"},"returnParameters":{"id":8763,"nodeType":"ParameterList","parameters":[],"src":"23514:0:19"},"scope":9097,"src":"23435:185:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8798,"nodeType":"Block","src":"24005:38:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24029: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":8792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24021:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8791,"name":"address","nodeType":"ElementaryTypeName","src":"24021:7:19","typeDescriptions":{}}},"id":8794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24021:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8795,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8787,"src":"24033:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8790,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[8799,8833],"referencedDeclaration":8833,"src":"24015:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24015:21:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8797,"nodeType":"ExpressionStatement","src":"24015:21:19"}]},"documentation":{"id":8785,"nodeType":"StructuredDocumentation","src":"23909:47:19","text":"@dev Equivalent to `_burn(address(0), id)`."},"id":8799,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"23970:5:19","nodeType":"FunctionDefinition","parameters":{"id":8788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8787,"mutability":"mutable","name":"id","nameLocation":"23984:2:19","nodeType":"VariableDeclaration","scope":8799,"src":"23976:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8786,"name":"uint256","nodeType":"ElementaryTypeName","src":"23976:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23975:12:19"},"returnParameters":{"id":8789,"nodeType":"ParameterList","parameters":[],"src":"24005:0:19"},"scope":9097,"src":"23961:82:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8832,"nodeType":"Block","src":"24388:2071:19","statements":[{"assignments":[8808],"declarations":[{"constant":false,"id":8808,"mutability":"mutable","name":"owner","nameLocation":"24406:5:19","nodeType":"VariableDeclaration","scope":8832,"src":"24398:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8807,"name":"address","nodeType":"ElementaryTypeName","src":"24398:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8812,"initialValue":{"arguments":[{"id":8810,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8804,"src":"24422:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8809,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8471,"src":"24414:7:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":8811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24414:11:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24398:27:19"},{"expression":{"arguments":[{"id":8814,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8808,"src":"24456:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24471: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":8816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24463:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8815,"name":"address","nodeType":"ElementaryTypeName","src":"24463:7:19","typeDescriptions":{}}},"id":8818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24463:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8819,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8804,"src":"24475:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8813,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"24435:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24435:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8821,"nodeType":"ExpressionStatement","src":"24435:43:19"},{"AST":{"nativeSrc":"24540:1861:19","nodeType":"YulBlock","src":"24540:1861:19","statements":[{"nativeSrc":"24594:26:19","nodeType":"YulAssignment","src":"24594:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"24604:2:19","nodeType":"YulLiteral","src":"24604:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24612:2:19","nodeType":"YulLiteral","src":"24612:2:19","type":"","value":"96"},{"name":"by","nativeSrc":"24616:2:19","nodeType":"YulIdentifier","src":"24616:2:19"}],"functionName":{"name":"shl","nativeSrc":"24608:3:19","nodeType":"YulIdentifier","src":"24608:3:19"},"nativeSrc":"24608:11:19","nodeType":"YulFunctionCall","src":"24608:11:19"}],"functionName":{"name":"shr","nativeSrc":"24600:3:19","nodeType":"YulIdentifier","src":"24600:3:19"},"nativeSrc":"24600:20:19","nodeType":"YulFunctionCall","src":"24600:20:19"},"variableNames":[{"name":"by","nativeSrc":"24594:2:19","nodeType":"YulIdentifier","src":"24594:2:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24680:4:19","nodeType":"YulLiteral","src":"24680:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"24686:2:19","nodeType":"YulIdentifier","src":"24686:2:19"}],"functionName":{"name":"mstore","nativeSrc":"24673:6:19","nodeType":"YulIdentifier","src":"24673:6:19"},"nativeSrc":"24673:16:19","nodeType":"YulFunctionCall","src":"24673:16:19"},"nativeSrc":"24673:16:19","nodeType":"YulExpressionStatement","src":"24673:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24709:4:19","nodeType":"YulLiteral","src":"24709:4:19","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"24718:24:19","nodeType":"YulIdentifier","src":"24718:24:19"},{"name":"by","nativeSrc":"24744:2:19","nodeType":"YulIdentifier","src":"24744:2:19"}],"functionName":{"name":"or","nativeSrc":"24715:2:19","nodeType":"YulIdentifier","src":"24715:2:19"},"nativeSrc":"24715:32:19","nodeType":"YulFunctionCall","src":"24715:32:19"}],"functionName":{"name":"mstore","nativeSrc":"24702:6:19","nodeType":"YulIdentifier","src":"24702:6:19"},"nativeSrc":"24702:46:19","nodeType":"YulFunctionCall","src":"24702:46:19"},"nativeSrc":"24702:46:19","nodeType":"YulExpressionStatement","src":"24702:46:19"},{"nativeSrc":"24761:60:19","nodeType":"YulVariableDeclaration","src":"24761:60:19","value":{"arguments":[{"name":"id","nativeSrc":"24786:2:19","nodeType":"YulIdentifier","src":"24786:2:19"},{"arguments":[{"name":"id","nativeSrc":"24794:2:19","nodeType":"YulIdentifier","src":"24794:2:19"},{"arguments":[{"kind":"number","nativeSrc":"24808:4:19","nodeType":"YulLiteral","src":"24808:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"24814:4:19","nodeType":"YulLiteral","src":"24814:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"24798:9:19","nodeType":"YulIdentifier","src":"24798:9:19"},"nativeSrc":"24798:21:19","nodeType":"YulFunctionCall","src":"24798:21:19"}],"functionName":{"name":"add","nativeSrc":"24790:3:19","nodeType":"YulIdentifier","src":"24790:3:19"},"nativeSrc":"24790:30:19","nodeType":"YulFunctionCall","src":"24790:30:19"}],"functionName":{"name":"add","nativeSrc":"24782:3:19","nodeType":"YulIdentifier","src":"24782:3:19"},"nativeSrc":"24782:39:19","nodeType":"YulFunctionCall","src":"24782:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"24765:13:19","nodeType":"YulTypedName","src":"24765:13:19","type":""}]},{"nativeSrc":"24834:43:19","nodeType":"YulVariableDeclaration","src":"24834:43:19","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"24863:13:19","nodeType":"YulIdentifier","src":"24863:13:19"}],"functionName":{"name":"sload","nativeSrc":"24857:5:19","nodeType":"YulIdentifier","src":"24857:5:19"},"nativeSrc":"24857:20:19","nodeType":"YulFunctionCall","src":"24857:20:19"},"variables":[{"name":"ownershipPacked","nativeSrc":"24838:15:19","nodeType":"YulTypedName","src":"24838:15:19","type":""}]},{"nativeSrc":"24971:42:19","nodeType":"YulAssignment","src":"24971:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"24984:2:19","nodeType":"YulLiteral","src":"24984:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24992:2:19","nodeType":"YulLiteral","src":"24992:2:19","type":"","value":"96"},{"name":"ownershipPacked","nativeSrc":"24996:15:19","nodeType":"YulIdentifier","src":"24996:15:19"}],"functionName":{"name":"shl","nativeSrc":"24988:3:19","nodeType":"YulIdentifier","src":"24988:3:19"},"nativeSrc":"24988:24:19","nodeType":"YulFunctionCall","src":"24988:24:19"}],"functionName":{"name":"shr","nativeSrc":"24980:3:19","nodeType":"YulIdentifier","src":"24980:3:19"},"nativeSrc":"24980:33:19","nodeType":"YulFunctionCall","src":"24980:33:19"},"variableNames":[{"name":"owner","nativeSrc":"24971:5:19","nodeType":"YulIdentifier","src":"24971:5:19"}]},{"body":{"nativeSrc":"25094:117:19","nodeType":"YulBlock","src":"25094:117:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25119:4:19","nodeType":"YulLiteral","src":"25119:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25125:10:19","nodeType":"YulLiteral","src":"25125:10:19","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"25112:6:19","nodeType":"YulIdentifier","src":"25112:6:19"},"nativeSrc":"25112:24:19","nodeType":"YulFunctionCall","src":"25112:24:19"},"nativeSrc":"25112:24:19","nodeType":"YulExpressionStatement","src":"25112:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25186:4:19","nodeType":"YulLiteral","src":"25186:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"25192:4:19","nodeType":"YulLiteral","src":"25192:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25179:6:19","nodeType":"YulIdentifier","src":"25179:6:19"},"nativeSrc":"25179:18:19","nodeType":"YulFunctionCall","src":"25179:18:19"},"nativeSrc":"25179:18:19","nodeType":"YulExpressionStatement","src":"25179:18:19"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"25087:5:19","nodeType":"YulIdentifier","src":"25087:5:19"}],"functionName":{"name":"iszero","nativeSrc":"25080:6:19","nodeType":"YulIdentifier","src":"25080:6:19"},"nativeSrc":"25080:13:19","nodeType":"YulFunctionCall","src":"25080:13:19"},"nativeSrc":"25077:134:19","nodeType":"YulIf","src":"25077:134:19"},{"nativeSrc":"25274:706:19","nodeType":"YulBlock","src":"25274:706:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25299:4:19","nodeType":"YulLiteral","src":"25299:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"25305:5:19","nodeType":"YulIdentifier","src":"25305:5:19"}],"functionName":{"name":"mstore","nativeSrc":"25292:6:19","nodeType":"YulIdentifier","src":"25292:6:19"},"nativeSrc":"25292:19:19","nodeType":"YulFunctionCall","src":"25292:19:19"},"nativeSrc":"25292:19:19","nodeType":"YulExpressionStatement","src":"25292:19:19"},{"nativeSrc":"25328:51:19","nodeType":"YulVariableDeclaration","src":"25328:51:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25361:1:19","nodeType":"YulLiteral","src":"25361:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"25364:13:19","nodeType":"YulIdentifier","src":"25364:13:19"}],"functionName":{"name":"add","nativeSrc":"25357:3:19","nodeType":"YulIdentifier","src":"25357:3:19"},"nativeSrc":"25357:21:19","nodeType":"YulFunctionCall","src":"25357:21:19"}],"functionName":{"name":"sload","nativeSrc":"25351:5:19","nodeType":"YulIdentifier","src":"25351:5:19"},"nativeSrc":"25351:28:19","nodeType":"YulFunctionCall","src":"25351:28:19"},"variables":[{"name":"approvedAddress","nativeSrc":"25332:15:19","nodeType":"YulTypedName","src":"25332:15:19","type":""}]},{"body":{"nativeSrc":"25616:223:19","nodeType":"YulBlock","src":"25616:223:19","statements":[{"body":{"nativeSrc":"25678:143:19","nodeType":"YulBlock","src":"25678:143:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25711:4:19","nodeType":"YulLiteral","src":"25711:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25717:10:19","nodeType":"YulLiteral","src":"25717:10:19","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"25704:6:19","nodeType":"YulIdentifier","src":"25704:6:19"},"nativeSrc":"25704:24:19","nodeType":"YulFunctionCall","src":"25704:24:19"},"nativeSrc":"25704:24:19","nodeType":"YulExpressionStatement","src":"25704:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25788:4:19","nodeType":"YulLiteral","src":"25788:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"25794:4:19","nodeType":"YulLiteral","src":"25794:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25781:6:19","nodeType":"YulIdentifier","src":"25781:6:19"},"nativeSrc":"25781:18:19","nodeType":"YulFunctionCall","src":"25781:18:19"},"nativeSrc":"25781:18:19","nodeType":"YulExpressionStatement","src":"25781:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25664:4:19","nodeType":"YulLiteral","src":"25664:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"25670:4:19","nodeType":"YulLiteral","src":"25670:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"25654:9:19","nodeType":"YulIdentifier","src":"25654:9:19"},"nativeSrc":"25654:21:19","nodeType":"YulFunctionCall","src":"25654:21:19"}],"functionName":{"name":"sload","nativeSrc":"25648:5:19","nodeType":"YulIdentifier","src":"25648:5:19"},"nativeSrc":"25648:28:19","nodeType":"YulFunctionCall","src":"25648:28:19"}],"functionName":{"name":"iszero","nativeSrc":"25641:6:19","nodeType":"YulIdentifier","src":"25641:6:19"},"nativeSrc":"25641:36:19","nodeType":"YulFunctionCall","src":"25641:36:19"},"nativeSrc":"25638:183:19","nodeType":"YulIf","src":"25638:183:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"25566:2:19","nodeType":"YulIdentifier","src":"25566:2:19"}],"functionName":{"name":"iszero","nativeSrc":"25559:6:19","nodeType":"YulIdentifier","src":"25559:6:19"},"nativeSrc":"25559:10:19","nodeType":"YulFunctionCall","src":"25559:10:19"},{"arguments":[{"arguments":[{"name":"by","nativeSrc":"25577:2:19","nodeType":"YulIdentifier","src":"25577:2:19"},{"name":"owner","nativeSrc":"25581:5:19","nodeType":"YulIdentifier","src":"25581:5:19"}],"functionName":{"name":"eq","nativeSrc":"25574:2:19","nodeType":"YulIdentifier","src":"25574:2:19"},"nativeSrc":"25574:13:19","nodeType":"YulFunctionCall","src":"25574:13:19"},{"arguments":[{"name":"by","nativeSrc":"25592:2:19","nodeType":"YulIdentifier","src":"25592:2:19"},{"name":"approvedAddress","nativeSrc":"25596:15:19","nodeType":"YulIdentifier","src":"25596:15:19"}],"functionName":{"name":"eq","nativeSrc":"25589:2:19","nodeType":"YulIdentifier","src":"25589:2:19"},"nativeSrc":"25589:23:19","nodeType":"YulFunctionCall","src":"25589:23:19"}],"functionName":{"name":"or","nativeSrc":"25571:2:19","nodeType":"YulIdentifier","src":"25571:2:19"},"nativeSrc":"25571:42:19","nodeType":"YulFunctionCall","src":"25571:42:19"}],"functionName":{"name":"or","nativeSrc":"25556:2:19","nodeType":"YulIdentifier","src":"25556:2:19"},"nativeSrc":"25556:58:19","nodeType":"YulFunctionCall","src":"25556:58:19"}],"functionName":{"name":"iszero","nativeSrc":"25549:6:19","nodeType":"YulIdentifier","src":"25549:6:19"},"nativeSrc":"25549:66:19","nodeType":"YulFunctionCall","src":"25549:66:19"},"nativeSrc":"25546:293:19","nodeType":"YulIf","src":"25546:293:19"},{"body":{"nativeSrc":"25930:36:19","nodeType":"YulBlock","src":"25930:36:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25943:1:19","nodeType":"YulLiteral","src":"25943:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"25946:13:19","nodeType":"YulIdentifier","src":"25946:13:19"}],"functionName":{"name":"add","nativeSrc":"25939:3:19","nodeType":"YulIdentifier","src":"25939:3:19"},"nativeSrc":"25939:21:19","nodeType":"YulFunctionCall","src":"25939:21:19"},{"kind":"number","nativeSrc":"25962:1:19","nodeType":"YulLiteral","src":"25962:1:19","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"25932:6:19","nodeType":"YulIdentifier","src":"25932:6:19"},"nativeSrc":"25932:32:19","nodeType":"YulFunctionCall","src":"25932:32:19"},"nativeSrc":"25932:32:19","nodeType":"YulExpressionStatement","src":"25932:32:19"}]},"condition":{"name":"approvedAddress","nativeSrc":"25914:15:19","nodeType":"YulIdentifier","src":"25914:15:19"},"nativeSrc":"25911:55:19","nodeType":"YulIf","src":"25911:55:19"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"26032:13:19","nodeType":"YulIdentifier","src":"26032:13:19"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"26051:15:19","nodeType":"YulIdentifier","src":"26051:15:19"},{"name":"owner","nativeSrc":"26068:5:19","nodeType":"YulIdentifier","src":"26068:5:19"}],"functionName":{"name":"xor","nativeSrc":"26047:3:19","nodeType":"YulIdentifier","src":"26047:3:19"},"nativeSrc":"26047:27:19","nodeType":"YulFunctionCall","src":"26047:27:19"}],"functionName":{"name":"sstore","nativeSrc":"26025:6:19","nodeType":"YulIdentifier","src":"26025:6:19"},"nativeSrc":"26025:50:19","nodeType":"YulFunctionCall","src":"26025:50:19"},"nativeSrc":"26025:50:19","nodeType":"YulExpressionStatement","src":"26025:50:19"},{"nativeSrc":"26137:136:19","nodeType":"YulBlock","src":"26137:136:19","statements":[{"nativeSrc":"26155:40:19","nodeType":"YulVariableDeclaration","src":"26155:40:19","value":{"arguments":[{"kind":"number","nativeSrc":"26184:4:19","nodeType":"YulLiteral","src":"26184:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"26190:4:19","nodeType":"YulLiteral","src":"26190:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"26174:9:19","nodeType":"YulIdentifier","src":"26174:9:19"},"nativeSrc":"26174:21:19","nodeType":"YulFunctionCall","src":"26174:21:19"},"variables":[{"name":"balanceSlot","nativeSrc":"26159:11:19","nodeType":"YulTypedName","src":"26159:11:19","type":""}]},{"expression":{"arguments":[{"name":"balanceSlot","nativeSrc":"26219:11:19","nodeType":"YulIdentifier","src":"26219:11:19"},{"arguments":[{"arguments":[{"name":"balanceSlot","nativeSrc":"26242:11:19","nodeType":"YulIdentifier","src":"26242:11:19"}],"functionName":{"name":"sload","nativeSrc":"26236:5:19","nodeType":"YulIdentifier","src":"26236:5:19"},"nativeSrc":"26236:18:19","nodeType":"YulFunctionCall","src":"26236:18:19"},{"kind":"number","nativeSrc":"26256:1:19","nodeType":"YulLiteral","src":"26256:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26232:3:19","nodeType":"YulIdentifier","src":"26232:3:19"},"nativeSrc":"26232:26:19","nodeType":"YulFunctionCall","src":"26232:26:19"}],"functionName":{"name":"sstore","nativeSrc":"26212:6:19","nodeType":"YulIdentifier","src":"26212:6:19"},"nativeSrc":"26212:47:19","nodeType":"YulFunctionCall","src":"26212:47:19"},"nativeSrc":"26212:47:19","nodeType":"YulExpressionStatement","src":"26212:47:19"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"26333:8:19","nodeType":"YulIdentifier","src":"26333:8:19"},"nativeSrc":"26333:10:19","nodeType":"YulFunctionCall","src":"26333:10:19"},{"kind":"number","nativeSrc":"26345:4:19","nodeType":"YulLiteral","src":"26345:4:19","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"26351:25:19","nodeType":"YulIdentifier","src":"26351:25:19"},{"name":"owner","nativeSrc":"26378:5:19","nodeType":"YulIdentifier","src":"26378:5:19"},{"kind":"number","nativeSrc":"26385:1:19","nodeType":"YulLiteral","src":"26385:1:19","type":"","value":"0"},{"name":"id","nativeSrc":"26388:2:19","nodeType":"YulIdentifier","src":"26388:2:19"}],"functionName":{"name":"log4","nativeSrc":"26328:4:19","nodeType":"YulIdentifier","src":"26328:4:19"},"nativeSrc":"26328:63:19","nodeType":"YulFunctionCall","src":"26328:63:19"},"nativeSrc":"26328:63:19","nodeType":"YulExpressionStatement","src":"26328:63:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"24718:24:19","valueSize":1},{"declaration":8417,"isOffset":false,"isSlot":false,"src":"26351:25:19","valueSize":1},{"declaration":8802,"isOffset":false,"isSlot":false,"src":"24594:2:19","valueSize":1},{"declaration":8802,"isOffset":false,"isSlot":false,"src":"24616:2:19","valueSize":1},{"declaration":8802,"isOffset":false,"isSlot":false,"src":"24744:2:19","valueSize":1},{"declaration":8802,"isOffset":false,"isSlot":false,"src":"25566:2:19","valueSize":1},{"declaration":8802,"isOffset":false,"isSlot":false,"src":"25577:2:19","valueSize":1},{"declaration":8802,"isOffset":false,"isSlot":false,"src":"25592:2:19","valueSize":1},{"declaration":8804,"isOffset":false,"isSlot":false,"src":"24686:2:19","valueSize":1},{"declaration":8804,"isOffset":false,"isSlot":false,"src":"24786:2:19","valueSize":1},{"declaration":8804,"isOffset":false,"isSlot":false,"src":"24794:2:19","valueSize":1},{"declaration":8804,"isOffset":false,"isSlot":false,"src":"26388:2:19","valueSize":1},{"declaration":8808,"isOffset":false,"isSlot":false,"src":"24971:5:19","valueSize":1},{"declaration":8808,"isOffset":false,"isSlot":false,"src":"25087:5:19","valueSize":1},{"declaration":8808,"isOffset":false,"isSlot":false,"src":"25305:5:19","valueSize":1},{"declaration":8808,"isOffset":false,"isSlot":false,"src":"25581:5:19","valueSize":1},{"declaration":8808,"isOffset":false,"isSlot":false,"src":"26068:5:19","valueSize":1},{"declaration":8808,"isOffset":false,"isSlot":false,"src":"26378:5:19","valueSize":1}],"id":8822,"nodeType":"InlineAssembly","src":"24531:1870:19"},{"expression":{"arguments":[{"id":8824,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8808,"src":"26430:5:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26445: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":8826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26437:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8825,"name":"address","nodeType":"ElementaryTypeName","src":"26437:7:19","typeDescriptions":{}}},"id":8828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26437:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8829,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8804,"src":"26449:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8823,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9072,"src":"26410:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26410:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8831,"nodeType":"ExpressionStatement","src":"26410:42:19"}]},"documentation":{"id":8800,"nodeType":"StructuredDocumentation","src":"24049:278:19","text":"@dev Destroys token `id`, using `by`.\n Requirements:\n - Token `id` must exist.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"id":8833,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"24341:5:19","nodeType":"FunctionDefinition","parameters":{"id":8805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8802,"mutability":"mutable","name":"by","nameLocation":"24355:2:19","nodeType":"VariableDeclaration","scope":8833,"src":"24347:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8801,"name":"address","nodeType":"ElementaryTypeName","src":"24347:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8804,"mutability":"mutable","name":"id","nameLocation":"24367:2:19","nodeType":"VariableDeclaration","scope":8833,"src":"24359:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8803,"name":"uint256","nodeType":"ElementaryTypeName","src":"24359:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24346:24:19"},"returnParameters":{"id":8806,"nodeType":"ParameterList","parameters":[],"src":"24388:0:19"},"scope":9097,"src":"24332:2127:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8844,"nodeType":"Block","src":"27044:1023:19","statements":[{"AST":{"nativeSrc":"27106:955:19","nodeType":"YulBlock","src":"27106:955:19","statements":[{"nativeSrc":"27120:11:19","nodeType":"YulAssignment","src":"27120:11:19","value":{"kind":"number","nativeSrc":"27130:1:19","nodeType":"YulLiteral","src":"27130:1:19","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"27120:6:19","nodeType":"YulIdentifier","src":"27120:6:19"}]},{"nativeSrc":"27184:36:19","nodeType":"YulAssignment","src":"27184:36:19","value":{"arguments":[{"kind":"number","nativeSrc":"27199:2:19","nodeType":"YulLiteral","src":"27199:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"27207:2:19","nodeType":"YulLiteral","src":"27207:2:19","type":"","value":"96"},{"name":"account","nativeSrc":"27211:7:19","nodeType":"YulIdentifier","src":"27211:7:19"}],"functionName":{"name":"shl","nativeSrc":"27203:3:19","nodeType":"YulIdentifier","src":"27203:3:19"},"nativeSrc":"27203:16:19","nodeType":"YulFunctionCall","src":"27203:16:19"}],"functionName":{"name":"shr","nativeSrc":"27195:3:19","nodeType":"YulIdentifier","src":"27195:3:19"},"nativeSrc":"27195:25:19","nodeType":"YulFunctionCall","src":"27195:25:19"},"variableNames":[{"name":"account","nativeSrc":"27184:7:19","nodeType":"YulIdentifier","src":"27184:7:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27280:4:19","nodeType":"YulLiteral","src":"27280:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"27286:2:19","nodeType":"YulIdentifier","src":"27286:2:19"}],"functionName":{"name":"mstore","nativeSrc":"27273:6:19","nodeType":"YulIdentifier","src":"27273:6:19"},"nativeSrc":"27273:16:19","nodeType":"YulFunctionCall","src":"27273:16:19"},"nativeSrc":"27273:16:19","nodeType":"YulExpressionStatement","src":"27273:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27309:4:19","nodeType":"YulLiteral","src":"27309:4:19","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"27318:24:19","nodeType":"YulIdentifier","src":"27318:24:19"},{"name":"account","nativeSrc":"27344:7:19","nodeType":"YulIdentifier","src":"27344:7:19"}],"functionName":{"name":"or","nativeSrc":"27315:2:19","nodeType":"YulIdentifier","src":"27315:2:19"},"nativeSrc":"27315:37:19","nodeType":"YulFunctionCall","src":"27315:37:19"}],"functionName":{"name":"mstore","nativeSrc":"27302:6:19","nodeType":"YulIdentifier","src":"27302:6:19"},"nativeSrc":"27302:51:19","nodeType":"YulFunctionCall","src":"27302:51:19"},"nativeSrc":"27302:51:19","nodeType":"YulExpressionStatement","src":"27302:51:19"},{"nativeSrc":"27366:60:19","nodeType":"YulVariableDeclaration","src":"27366:60:19","value":{"arguments":[{"name":"id","nativeSrc":"27391:2:19","nodeType":"YulIdentifier","src":"27391:2:19"},{"arguments":[{"name":"id","nativeSrc":"27399:2:19","nodeType":"YulIdentifier","src":"27399:2:19"},{"arguments":[{"kind":"number","nativeSrc":"27413:4:19","nodeType":"YulLiteral","src":"27413:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"27419:4:19","nodeType":"YulLiteral","src":"27419:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"27403:9:19","nodeType":"YulIdentifier","src":"27403:9:19"},"nativeSrc":"27403:21:19","nodeType":"YulFunctionCall","src":"27403:21:19"}],"functionName":{"name":"add","nativeSrc":"27395:3:19","nodeType":"YulIdentifier","src":"27395:3:19"},"nativeSrc":"27395:30:19","nodeType":"YulFunctionCall","src":"27395:30:19"}],"functionName":{"name":"add","nativeSrc":"27387:3:19","nodeType":"YulIdentifier","src":"27387:3:19"},"nativeSrc":"27387:39:19","nodeType":"YulFunctionCall","src":"27387:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"27370:13:19","nodeType":"YulTypedName","src":"27370:13:19","type":""}]},{"nativeSrc":"27439:51:19","nodeType":"YulVariableDeclaration","src":"27439:51:19","value":{"arguments":[{"kind":"number","nativeSrc":"27456:2:19","nodeType":"YulLiteral","src":"27456:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"27464:2:19","nodeType":"YulLiteral","src":"27464:2:19","type":"","value":"96"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"27474:13:19","nodeType":"YulIdentifier","src":"27474:13:19"}],"functionName":{"name":"sload","nativeSrc":"27468:5:19","nodeType":"YulIdentifier","src":"27468:5:19"},"nativeSrc":"27468:20:19","nodeType":"YulFunctionCall","src":"27468:20:19"}],"functionName":{"name":"shl","nativeSrc":"27460:3:19","nodeType":"YulIdentifier","src":"27460:3:19"},"nativeSrc":"27460:29:19","nodeType":"YulFunctionCall","src":"27460:29:19"}],"functionName":{"name":"shr","nativeSrc":"27452:3:19","nodeType":"YulIdentifier","src":"27452:3:19"},"nativeSrc":"27452:38:19","nodeType":"YulFunctionCall","src":"27452:38:19"},"variables":[{"name":"owner","nativeSrc":"27443:5:19","nodeType":"YulTypedName","src":"27443:5:19","type":""}]},{"body":{"nativeSrc":"27571:117:19","nodeType":"YulBlock","src":"27571:117:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27596:4:19","nodeType":"YulLiteral","src":"27596:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"27602:10:19","nodeType":"YulLiteral","src":"27602:10:19","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"27589:6:19","nodeType":"YulIdentifier","src":"27589:6:19"},"nativeSrc":"27589:24:19","nodeType":"YulFunctionCall","src":"27589:24:19"},"nativeSrc":"27589:24:19","nodeType":"YulExpressionStatement","src":"27589:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27663:4:19","nodeType":"YulLiteral","src":"27663:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"27669:4:19","nodeType":"YulLiteral","src":"27669:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"27656:6:19","nodeType":"YulIdentifier","src":"27656:6:19"},"nativeSrc":"27656:18:19","nodeType":"YulFunctionCall","src":"27656:18:19"},"nativeSrc":"27656:18:19","nodeType":"YulExpressionStatement","src":"27656:18:19"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"27564:5:19","nodeType":"YulIdentifier","src":"27564:5:19"}],"functionName":{"name":"iszero","nativeSrc":"27557:6:19","nodeType":"YulIdentifier","src":"27557:6:19"},"nativeSrc":"27557:13:19","nodeType":"YulFunctionCall","src":"27557:13:19"},"nativeSrc":"27554:134:19","nodeType":"YulIf","src":"27554:134:19"},{"body":{"nativeSrc":"27781:270:19","nodeType":"YulBlock","src":"27781:270:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27806:4:19","nodeType":"YulLiteral","src":"27806:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"27812:5:19","nodeType":"YulIdentifier","src":"27812:5:19"}],"functionName":{"name":"mstore","nativeSrc":"27799:6:19","nodeType":"YulIdentifier","src":"27799:6:19"},"nativeSrc":"27799:19:19","nodeType":"YulFunctionCall","src":"27799:19:19"},"nativeSrc":"27799:19:19","nodeType":"YulExpressionStatement","src":"27799:19:19"},{"body":{"nativeSrc":"27946:91:19","nodeType":"YulBlock","src":"27946:91:19","statements":[{"nativeSrc":"27968:51:19","nodeType":"YulAssignment","src":"27968:51:19","value":{"arguments":[{"name":"account","nativeSrc":"27981:7:19","nodeType":"YulIdentifier","src":"27981:7:19"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28000:1:19","nodeType":"YulLiteral","src":"28000:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"28003:13:19","nodeType":"YulIdentifier","src":"28003:13:19"}],"functionName":{"name":"add","nativeSrc":"27996:3:19","nodeType":"YulIdentifier","src":"27996:3:19"},"nativeSrc":"27996:21:19","nodeType":"YulFunctionCall","src":"27996:21:19"}],"functionName":{"name":"sload","nativeSrc":"27990:5:19","nodeType":"YulIdentifier","src":"27990:5:19"},"nativeSrc":"27990:28:19","nodeType":"YulFunctionCall","src":"27990:28:19"}],"functionName":{"name":"eq","nativeSrc":"27978:2:19","nodeType":"YulIdentifier","src":"27978:2:19"},"nativeSrc":"27978:41:19","nodeType":"YulFunctionCall","src":"27978:41:19"},"variableNames":[{"name":"result","nativeSrc":"27968:6:19","nodeType":"YulIdentifier","src":"27968:6:19"}]}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"27932:4:19","nodeType":"YulLiteral","src":"27932:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"27938:4:19","nodeType":"YulLiteral","src":"27938:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"27922:9:19","nodeType":"YulIdentifier","src":"27922:9:19"},"nativeSrc":"27922:21:19","nodeType":"YulFunctionCall","src":"27922:21:19"}],"functionName":{"name":"sload","nativeSrc":"27916:5:19","nodeType":"YulIdentifier","src":"27916:5:19"},"nativeSrc":"27916:28:19","nodeType":"YulFunctionCall","src":"27916:28:19"}],"functionName":{"name":"iszero","nativeSrc":"27909:6:19","nodeType":"YulIdentifier","src":"27909:6:19"},"nativeSrc":"27909:36:19","nodeType":"YulFunctionCall","src":"27909:36:19"},"nativeSrc":"27906:131:19","nodeType":"YulIf","src":"27906:131:19"}]},"condition":{"arguments":[{"arguments":[{"name":"account","nativeSrc":"27764:7:19","nodeType":"YulIdentifier","src":"27764:7:19"},{"name":"owner","nativeSrc":"27773:5:19","nodeType":"YulIdentifier","src":"27773:5:19"}],"functionName":{"name":"eq","nativeSrc":"27761:2:19","nodeType":"YulIdentifier","src":"27761:2:19"},"nativeSrc":"27761:18:19","nodeType":"YulFunctionCall","src":"27761:18:19"}],"functionName":{"name":"iszero","nativeSrc":"27754:6:19","nodeType":"YulIdentifier","src":"27754:6:19"},"nativeSrc":"27754:26:19","nodeType":"YulFunctionCall","src":"27754:26:19"},"nativeSrc":"27751:300:19","nodeType":"YulIf","src":"27751:300:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"27318:24:19","valueSize":1},{"declaration":8836,"isOffset":false,"isSlot":false,"src":"27184:7:19","valueSize":1},{"declaration":8836,"isOffset":false,"isSlot":false,"src":"27211:7:19","valueSize":1},{"declaration":8836,"isOffset":false,"isSlot":false,"src":"27344:7:19","valueSize":1},{"declaration":8836,"isOffset":false,"isSlot":false,"src":"27764:7:19","valueSize":1},{"declaration":8836,"isOffset":false,"isSlot":false,"src":"27981:7:19","valueSize":1},{"declaration":8838,"isOffset":false,"isSlot":false,"src":"27286:2:19","valueSize":1},{"declaration":8838,"isOffset":false,"isSlot":false,"src":"27391:2:19","valueSize":1},{"declaration":8838,"isOffset":false,"isSlot":false,"src":"27399:2:19","valueSize":1},{"declaration":8841,"isOffset":false,"isSlot":false,"src":"27120:6:19","valueSize":1},{"declaration":8841,"isOffset":false,"isSlot":false,"src":"27968:6:19","valueSize":1}],"id":8843,"nodeType":"InlineAssembly","src":"27097:964:19"}]},"documentation":{"id":8834,"nodeType":"StructuredDocumentation","src":"26748:154:19","text":"@dev Returns whether `account` is the owner of token `id`, or is approved to manage it.\n Requirements:\n - Token `id` must exist."},"id":8845,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"26916:18:19","nodeType":"FunctionDefinition","parameters":{"id":8839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8836,"mutability":"mutable","name":"account","nameLocation":"26943:7:19","nodeType":"VariableDeclaration","scope":8845,"src":"26935:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8835,"name":"address","nodeType":"ElementaryTypeName","src":"26935:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8838,"mutability":"mutable","name":"id","nameLocation":"26960:2:19","nodeType":"VariableDeclaration","scope":8845,"src":"26952:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8837,"name":"uint256","nodeType":"ElementaryTypeName","src":"26952:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26934:29:19"},"returnParameters":{"id":8842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8841,"mutability":"mutable","name":"result","nameLocation":"27032:6:19","nodeType":"VariableDeclaration","scope":8845,"src":"27027:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8840,"name":"bool","nodeType":"ElementaryTypeName","src":"27027:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27026:13:19"},"scope":9097,"src":"26907:1160:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8854,"nodeType":"Block","src":"28301:236:19","statements":[{"AST":{"nativeSrc":"28363:168:19","nodeType":"YulBlock","src":"28363:168:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28384:4:19","nodeType":"YulLiteral","src":"28384:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"28390:2:19","nodeType":"YulIdentifier","src":"28390:2:19"}],"functionName":{"name":"mstore","nativeSrc":"28377:6:19","nodeType":"YulIdentifier","src":"28377:6:19"},"nativeSrc":"28377:16:19","nodeType":"YulFunctionCall","src":"28377:16:19"},"nativeSrc":"28377:16:19","nodeType":"YulExpressionStatement","src":"28377:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28413:4:19","nodeType":"YulLiteral","src":"28413:4:19","type":"","value":"0x1c"},{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"28419:24:19","nodeType":"YulIdentifier","src":"28419:24:19"}],"functionName":{"name":"mstore","nativeSrc":"28406:6:19","nodeType":"YulIdentifier","src":"28406:6:19"},"nativeSrc":"28406:38:19","nodeType":"YulFunctionCall","src":"28406:38:19"},"nativeSrc":"28406:38:19","nodeType":"YulExpressionStatement","src":"28406:38:19"},{"nativeSrc":"28457:64:19","nodeType":"YulAssignment","src":"28457:64:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"28477:1:19","nodeType":"YulLiteral","src":"28477:1:19","type":"","value":"1"},{"arguments":[{"name":"id","nativeSrc":"28484:2:19","nodeType":"YulIdentifier","src":"28484:2:19"},{"arguments":[{"name":"id","nativeSrc":"28492:2:19","nodeType":"YulIdentifier","src":"28492:2:19"},{"arguments":[{"kind":"number","nativeSrc":"28506:4:19","nodeType":"YulLiteral","src":"28506:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"28512:4:19","nodeType":"YulLiteral","src":"28512:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"28496:9:19","nodeType":"YulIdentifier","src":"28496:9:19"},"nativeSrc":"28496:21:19","nodeType":"YulFunctionCall","src":"28496:21:19"}],"functionName":{"name":"add","nativeSrc":"28488:3:19","nodeType":"YulIdentifier","src":"28488:3:19"},"nativeSrc":"28488:30:19","nodeType":"YulFunctionCall","src":"28488:30:19"}],"functionName":{"name":"add","nativeSrc":"28480:3:19","nodeType":"YulIdentifier","src":"28480:3:19"},"nativeSrc":"28480:39:19","nodeType":"YulFunctionCall","src":"28480:39:19"}],"functionName":{"name":"add","nativeSrc":"28473:3:19","nodeType":"YulIdentifier","src":"28473:3:19"},"nativeSrc":"28473:47:19","nodeType":"YulFunctionCall","src":"28473:47:19"}],"functionName":{"name":"sload","nativeSrc":"28467:5:19","nodeType":"YulIdentifier","src":"28467:5:19"},"nativeSrc":"28467:54:19","nodeType":"YulFunctionCall","src":"28467:54:19"},"variableNames":[{"name":"result","nativeSrc":"28457:6:19","nodeType":"YulIdentifier","src":"28457:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"28419:24:19","valueSize":1},{"declaration":8848,"isOffset":false,"isSlot":false,"src":"28390:2:19","valueSize":1},{"declaration":8848,"isOffset":false,"isSlot":false,"src":"28484:2:19","valueSize":1},{"declaration":8848,"isOffset":false,"isSlot":false,"src":"28492:2:19","valueSize":1},{"declaration":8851,"isOffset":false,"isSlot":false,"src":"28457:6:19","valueSize":1}],"id":8853,"nodeType":"InlineAssembly","src":"28354:177:19"}]},"documentation":{"id":8846,"nodeType":"StructuredDocumentation","src":"28073:142:19","text":"@dev Returns the account approved to manage token `id`.\n Returns the zero address instead of reverting if the token does not exist."},"id":8855,"implemented":true,"kind":"function","modifiers":[],"name":"_getApproved","nameLocation":"28229:12:19","nodeType":"FunctionDefinition","parameters":{"id":8849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8848,"mutability":"mutable","name":"id","nameLocation":"28250:2:19","nodeType":"VariableDeclaration","scope":8855,"src":"28242:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8847,"name":"uint256","nodeType":"ElementaryTypeName","src":"28242:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28241:12:19"},"returnParameters":{"id":8852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8851,"mutability":"mutable","name":"result","nameLocation":"28293:6:19","nodeType":"VariableDeclaration","scope":8855,"src":"28285:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8850,"name":"address","nodeType":"ElementaryTypeName","src":"28285:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28284:16:19"},"scope":9097,"src":"28220:317:19","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8872,"nodeType":"Block","src":"28671:50:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28698: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":8865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28690:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8864,"name":"address","nodeType":"ElementaryTypeName","src":"28690:7:19","typeDescriptions":{}}},"id":8867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28690:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8868,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8858,"src":"28702:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8869,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8860,"src":"28711:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8863,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[8873,8885],"referencedDeclaration":8885,"src":"28681:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28681:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8871,"nodeType":"ExpressionStatement","src":"28681:33:19"}]},"documentation":{"id":8856,"nodeType":"StructuredDocumentation","src":"28543:59:19","text":"@dev Equivalent to `_approve(address(0), account, id)`."},"id":8873,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"28616:8:19","nodeType":"FunctionDefinition","parameters":{"id":8861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8858,"mutability":"mutable","name":"account","nameLocation":"28633:7:19","nodeType":"VariableDeclaration","scope":8873,"src":"28625:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8857,"name":"address","nodeType":"ElementaryTypeName","src":"28625:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8860,"mutability":"mutable","name":"id","nameLocation":"28650:2:19","nodeType":"VariableDeclaration","scope":8873,"src":"28642:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8859,"name":"uint256","nodeType":"ElementaryTypeName","src":"28642:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28624:29:19"},"returnParameters":{"id":8862,"nodeType":"ParameterList","parameters":[],"src":"28671:0:19"},"scope":9097,"src":"28607:114:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8884,"nodeType":"Block","src":"29115:1366:19","statements":[{"AST":{"nativeSrc":"29134:1341:19","nodeType":"YulBlock","src":"29134:1341:19","statements":[{"nativeSrc":"29188:37:19","nodeType":"YulVariableDeclaration","src":"29188:37:19","value":{"arguments":[{"kind":"number","nativeSrc":"29214:2:19","nodeType":"YulLiteral","src":"29214:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"29222:1:19","nodeType":"YulLiteral","src":"29222:1:19","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"29218:3:19","nodeType":"YulIdentifier","src":"29218:3:19"},"nativeSrc":"29218:6:19","nodeType":"YulFunctionCall","src":"29218:6:19"}],"functionName":{"name":"shr","nativeSrc":"29210:3:19","nodeType":"YulIdentifier","src":"29210:3:19"},"nativeSrc":"29210:15:19","nodeType":"YulFunctionCall","src":"29210:15:19"},"variables":[{"name":"bitmaskAddress","nativeSrc":"29192:14:19","nodeType":"YulTypedName","src":"29192:14:19","type":""}]},{"nativeSrc":"29238:39:19","nodeType":"YulAssignment","src":"29238:39:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29253:14:19","nodeType":"YulIdentifier","src":"29253:14:19"},{"name":"account","nativeSrc":"29269:7:19","nodeType":"YulIdentifier","src":"29269:7:19"}],"functionName":{"name":"and","nativeSrc":"29249:3:19","nodeType":"YulIdentifier","src":"29249:3:19"},"nativeSrc":"29249:28:19","nodeType":"YulFunctionCall","src":"29249:28:19"},"variableNames":[{"name":"account","nativeSrc":"29238:7:19","nodeType":"YulIdentifier","src":"29238:7:19"}]},{"nativeSrc":"29290:29:19","nodeType":"YulAssignment","src":"29290:29:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29300:14:19","nodeType":"YulIdentifier","src":"29300:14:19"},{"name":"by","nativeSrc":"29316:2:19","nodeType":"YulIdentifier","src":"29316:2:19"}],"functionName":{"name":"and","nativeSrc":"29296:3:19","nodeType":"YulIdentifier","src":"29296:3:19"},"nativeSrc":"29296:23:19","nodeType":"YulFunctionCall","src":"29296:23:19"},"variableNames":[{"name":"by","nativeSrc":"29290:2:19","nodeType":"YulIdentifier","src":"29290:2:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29383:4:19","nodeType":"YulLiteral","src":"29383:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"29389:2:19","nodeType":"YulIdentifier","src":"29389:2:19"}],"functionName":{"name":"mstore","nativeSrc":"29376:6:19","nodeType":"YulIdentifier","src":"29376:6:19"},"nativeSrc":"29376:16:19","nodeType":"YulFunctionCall","src":"29376:16:19"},"nativeSrc":"29376:16:19","nodeType":"YulExpressionStatement","src":"29376:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29412:4:19","nodeType":"YulLiteral","src":"29412:4:19","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"29421:24:19","nodeType":"YulIdentifier","src":"29421:24:19"},{"name":"by","nativeSrc":"29447:2:19","nodeType":"YulIdentifier","src":"29447:2:19"}],"functionName":{"name":"or","nativeSrc":"29418:2:19","nodeType":"YulIdentifier","src":"29418:2:19"},"nativeSrc":"29418:32:19","nodeType":"YulFunctionCall","src":"29418:32:19"}],"functionName":{"name":"mstore","nativeSrc":"29405:6:19","nodeType":"YulIdentifier","src":"29405:6:19"},"nativeSrc":"29405:46:19","nodeType":"YulFunctionCall","src":"29405:46:19"},"nativeSrc":"29405:46:19","nodeType":"YulExpressionStatement","src":"29405:46:19"},{"nativeSrc":"29464:60:19","nodeType":"YulVariableDeclaration","src":"29464:60:19","value":{"arguments":[{"name":"id","nativeSrc":"29489:2:19","nodeType":"YulIdentifier","src":"29489:2:19"},{"arguments":[{"name":"id","nativeSrc":"29497:2:19","nodeType":"YulIdentifier","src":"29497:2:19"},{"arguments":[{"kind":"number","nativeSrc":"29511:4:19","nodeType":"YulLiteral","src":"29511:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29517:4:19","nodeType":"YulLiteral","src":"29517:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"29501:9:19","nodeType":"YulIdentifier","src":"29501:9:19"},"nativeSrc":"29501:21:19","nodeType":"YulFunctionCall","src":"29501:21:19"}],"functionName":{"name":"add","nativeSrc":"29493:3:19","nodeType":"YulIdentifier","src":"29493:3:19"},"nativeSrc":"29493:30:19","nodeType":"YulFunctionCall","src":"29493:30:19"}],"functionName":{"name":"add","nativeSrc":"29485:3:19","nodeType":"YulIdentifier","src":"29485:3:19"},"nativeSrc":"29485:39:19","nodeType":"YulFunctionCall","src":"29485:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"29468:13:19","nodeType":"YulTypedName","src":"29468:13:19","type":""}]},{"nativeSrc":"29537:54:19","nodeType":"YulVariableDeclaration","src":"29537:54:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"29554:14:19","nodeType":"YulIdentifier","src":"29554:14:19"},{"arguments":[{"name":"ownershipSlot","nativeSrc":"29576:13:19","nodeType":"YulIdentifier","src":"29576:13:19"}],"functionName":{"name":"sload","nativeSrc":"29570:5:19","nodeType":"YulIdentifier","src":"29570:5:19"},"nativeSrc":"29570:20:19","nodeType":"YulFunctionCall","src":"29570:20:19"}],"functionName":{"name":"and","nativeSrc":"29550:3:19","nodeType":"YulIdentifier","src":"29550:3:19"},"nativeSrc":"29550:41:19","nodeType":"YulFunctionCall","src":"29550:41:19"},"variables":[{"name":"owner","nativeSrc":"29541:5:19","nodeType":"YulTypedName","src":"29541:5:19","type":""}]},{"body":{"nativeSrc":"29672:117:19","nodeType":"YulBlock","src":"29672:117:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29697:4:19","nodeType":"YulLiteral","src":"29697:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29703:10:19","nodeType":"YulLiteral","src":"29703:10:19","type":"","value":"0xceea21b6"}],"functionName":{"name":"mstore","nativeSrc":"29690:6:19","nodeType":"YulIdentifier","src":"29690:6:19"},"nativeSrc":"29690:24:19","nodeType":"YulFunctionCall","src":"29690:24:19"},"nativeSrc":"29690:24:19","nodeType":"YulExpressionStatement","src":"29690:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29764:4:19","nodeType":"YulLiteral","src":"29764:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"29770:4:19","nodeType":"YulLiteral","src":"29770:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"29757:6:19","nodeType":"YulIdentifier","src":"29757:6:19"},"nativeSrc":"29757:18:19","nodeType":"YulFunctionCall","src":"29757:18:19"},"nativeSrc":"29757:18:19","nodeType":"YulExpressionStatement","src":"29757:18:19"}]},"condition":{"arguments":[{"name":"owner","nativeSrc":"29665:5:19","nodeType":"YulIdentifier","src":"29665:5:19"}],"functionName":{"name":"iszero","nativeSrc":"29658:6:19","nodeType":"YulIdentifier","src":"29658:6:19"},"nativeSrc":"29658:13:19","nodeType":"YulFunctionCall","src":"29658:13:19"},"nativeSrc":"29655:134:19","nodeType":"YulIf","src":"29655:134:19"},{"body":{"nativeSrc":"29981:239:19","nodeType":"YulBlock","src":"29981:239:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30006:4:19","nodeType":"YulLiteral","src":"30006:4:19","type":"","value":"0x00"},{"name":"owner","nativeSrc":"30012:5:19","nodeType":"YulIdentifier","src":"30012:5:19"}],"functionName":{"name":"mstore","nativeSrc":"29999:6:19","nodeType":"YulIdentifier","src":"29999:6:19"},"nativeSrc":"29999:19:19","nodeType":"YulFunctionCall","src":"29999:19:19"},"nativeSrc":"29999:19:19","nodeType":"YulExpressionStatement","src":"29999:19:19"},{"body":{"nativeSrc":"30075:131:19","nodeType":"YulBlock","src":"30075:131:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30104:4:19","nodeType":"YulLiteral","src":"30104:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"30110:10:19","nodeType":"YulLiteral","src":"30110:10:19","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"30097:6:19","nodeType":"YulIdentifier","src":"30097:6:19"},"nativeSrc":"30097:24:19","nodeType":"YulFunctionCall","src":"30097:24:19"},"nativeSrc":"30097:24:19","nodeType":"YulExpressionStatement","src":"30097:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30177:4:19","nodeType":"YulLiteral","src":"30177:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"30183:4:19","nodeType":"YulLiteral","src":"30183:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"30170:6:19","nodeType":"YulIdentifier","src":"30170:6:19"},"nativeSrc":"30170:18:19","nodeType":"YulFunctionCall","src":"30170:18:19"},"nativeSrc":"30170:18:19","nodeType":"YulExpressionStatement","src":"30170:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30061:4:19","nodeType":"YulLiteral","src":"30061:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"30067:4:19","nodeType":"YulLiteral","src":"30067:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"30051:9:19","nodeType":"YulIdentifier","src":"30051:9:19"},"nativeSrc":"30051:21:19","nodeType":"YulFunctionCall","src":"30051:21:19"}],"functionName":{"name":"sload","nativeSrc":"30045:5:19","nodeType":"YulIdentifier","src":"30045:5:19"},"nativeSrc":"30045:28:19","nodeType":"YulFunctionCall","src":"30045:28:19"}],"functionName":{"name":"iszero","nativeSrc":"30038:6:19","nodeType":"YulIdentifier","src":"30038:6:19"},"nativeSrc":"30038:36:19","nodeType":"YulFunctionCall","src":"30038:36:19"},"nativeSrc":"30035:171:19","nodeType":"YulIf","src":"30035:171:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"29960:2:19","nodeType":"YulIdentifier","src":"29960:2:19"}],"functionName":{"name":"iszero","nativeSrc":"29953:6:19","nodeType":"YulIdentifier","src":"29953:6:19"},"nativeSrc":"29953:10:19","nodeType":"YulFunctionCall","src":"29953:10:19"},{"arguments":[{"name":"by","nativeSrc":"29968:2:19","nodeType":"YulIdentifier","src":"29968:2:19"},{"name":"owner","nativeSrc":"29972:5:19","nodeType":"YulIdentifier","src":"29972:5:19"}],"functionName":{"name":"eq","nativeSrc":"29965:2:19","nodeType":"YulIdentifier","src":"29965:2:19"},"nativeSrc":"29965:13:19","nodeType":"YulFunctionCall","src":"29965:13:19"}],"functionName":{"name":"or","nativeSrc":"29950:2:19","nodeType":"YulIdentifier","src":"29950:2:19"},"nativeSrc":"29950:29:19","nodeType":"YulFunctionCall","src":"29950:29:19"}],"functionName":{"name":"iszero","nativeSrc":"29943:6:19","nodeType":"YulIdentifier","src":"29943:6:19"},"nativeSrc":"29943:37:19","nodeType":"YulFunctionCall","src":"29943:37:19"},"nativeSrc":"29940:280:19","nodeType":"YulIf","src":"29940:280:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"30314:1:19","nodeType":"YulLiteral","src":"30314:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"30317:13:19","nodeType":"YulIdentifier","src":"30317:13:19"}],"functionName":{"name":"add","nativeSrc":"30310:3:19","nodeType":"YulIdentifier","src":"30310:3:19"},"nativeSrc":"30310:21:19","nodeType":"YulFunctionCall","src":"30310:21:19"},{"name":"account","nativeSrc":"30333:7:19","nodeType":"YulIdentifier","src":"30333:7:19"}],"functionName":{"name":"sstore","nativeSrc":"30303:6:19","nodeType":"YulIdentifier","src":"30303:6:19"},"nativeSrc":"30303:38:19","nodeType":"YulFunctionCall","src":"30303:38:19"},"nativeSrc":"30303:38:19","nodeType":"YulExpressionStatement","src":"30303:38:19"},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"30401:8:19","nodeType":"YulIdentifier","src":"30401:8:19"},"nativeSrc":"30401:10:19","nodeType":"YulFunctionCall","src":"30401:10:19"},{"kind":"number","nativeSrc":"30413:4:19","nodeType":"YulLiteral","src":"30413:4:19","type":"","value":"0x00"},{"name":"_APPROVAL_EVENT_SIGNATURE","nativeSrc":"30419:25:19","nodeType":"YulIdentifier","src":"30419:25:19"},{"name":"owner","nativeSrc":"30446:5:19","nodeType":"YulIdentifier","src":"30446:5:19"},{"name":"account","nativeSrc":"30453:7:19","nodeType":"YulIdentifier","src":"30453:7:19"},{"name":"id","nativeSrc":"30462:2:19","nodeType":"YulIdentifier","src":"30462:2:19"}],"functionName":{"name":"log4","nativeSrc":"30396:4:19","nodeType":"YulIdentifier","src":"30396:4:19"},"nativeSrc":"30396:69:19","nodeType":"YulFunctionCall","src":"30396:69:19"},"nativeSrc":"30396:69:19","nodeType":"YulExpressionStatement","src":"30396:69:19"}]},"evmVersion":"cancun","externalReferences":[{"declaration":8421,"isOffset":false,"isSlot":false,"src":"30419:25:19","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"29421:24:19","valueSize":1},{"declaration":8878,"isOffset":false,"isSlot":false,"src":"29238:7:19","valueSize":1},{"declaration":8878,"isOffset":false,"isSlot":false,"src":"29269:7:19","valueSize":1},{"declaration":8878,"isOffset":false,"isSlot":false,"src":"30333:7:19","valueSize":1},{"declaration":8878,"isOffset":false,"isSlot":false,"src":"30453:7:19","valueSize":1},{"declaration":8876,"isOffset":false,"isSlot":false,"src":"29290:2:19","valueSize":1},{"declaration":8876,"isOffset":false,"isSlot":false,"src":"29316:2:19","valueSize":1},{"declaration":8876,"isOffset":false,"isSlot":false,"src":"29447:2:19","valueSize":1},{"declaration":8876,"isOffset":false,"isSlot":false,"src":"29960:2:19","valueSize":1},{"declaration":8876,"isOffset":false,"isSlot":false,"src":"29968:2:19","valueSize":1},{"declaration":8880,"isOffset":false,"isSlot":false,"src":"29389:2:19","valueSize":1},{"declaration":8880,"isOffset":false,"isSlot":false,"src":"29489:2:19","valueSize":1},{"declaration":8880,"isOffset":false,"isSlot":false,"src":"29497:2:19","valueSize":1},{"declaration":8880,"isOffset":false,"isSlot":false,"src":"30462:2:19","valueSize":1}],"id":8883,"nodeType":"InlineAssembly","src":"29125:1350:19"}]},"documentation":{"id":8874,"nodeType":"StructuredDocumentation","src":"28727:307:19","text":"@dev Sets `account` as the approved account to manage token `id`, using `by`.\n Requirements:\n - Token `id` must exist.\n - If `by` is not the zero address, `by` must be the owner\n or an approved operator for the token owner.\n Emits a {Approval} event."},"id":8885,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"29048:8:19","nodeType":"FunctionDefinition","parameters":{"id":8881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8876,"mutability":"mutable","name":"by","nameLocation":"29065:2:19","nodeType":"VariableDeclaration","scope":8885,"src":"29057:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8875,"name":"address","nodeType":"ElementaryTypeName","src":"29057:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8878,"mutability":"mutable","name":"account","nameLocation":"29077:7:19","nodeType":"VariableDeclaration","scope":8885,"src":"29069:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8877,"name":"address","nodeType":"ElementaryTypeName","src":"29069:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8880,"mutability":"mutable","name":"id","nameLocation":"29094:2:19","nodeType":"VariableDeclaration","scope":8885,"src":"29086:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8879,"name":"uint256","nodeType":"ElementaryTypeName","src":"29086:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29056:41:19"},"returnParameters":{"id":8882,"nodeType":"ParameterList","parameters":[],"src":"29115:0:19"},"scope":9097,"src":"29039:1442:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8896,"nodeType":"Block","src":"30737:670:19","statements":[{"AST":{"nativeSrc":"30799:602:19","nodeType":"YulBlock","src":"30799:602:19","statements":[{"nativeSrc":"30853:26:19","nodeType":"YulAssignment","src":"30853:26:19","value":{"arguments":[{"kind":"number","nativeSrc":"30863:2:19","nodeType":"YulLiteral","src":"30863:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"30871:2:19","nodeType":"YulLiteral","src":"30871:2:19","type":"","value":"96"},{"name":"by","nativeSrc":"30875:2:19","nodeType":"YulIdentifier","src":"30875:2:19"}],"functionName":{"name":"shl","nativeSrc":"30867:3:19","nodeType":"YulIdentifier","src":"30867:3:19"},"nativeSrc":"30867:11:19","nodeType":"YulFunctionCall","src":"30867:11:19"}],"functionName":{"name":"shr","nativeSrc":"30859:3:19","nodeType":"YulIdentifier","src":"30859:3:19"},"nativeSrc":"30859:20:19","nodeType":"YulFunctionCall","src":"30859:20:19"},"variableNames":[{"name":"by","nativeSrc":"30853:2:19","nodeType":"YulIdentifier","src":"30853:2:19"}]},{"nativeSrc":"30892:38:19","nodeType":"YulAssignment","src":"30892:38:19","value":{"arguments":[{"kind":"number","nativeSrc":"30908:2:19","nodeType":"YulLiteral","src":"30908:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"30916:2:19","nodeType":"YulLiteral","src":"30916:2:19","type":"","value":"96"},{"name":"operator","nativeSrc":"30920:8:19","nodeType":"YulIdentifier","src":"30920:8:19"}],"functionName":{"name":"shl","nativeSrc":"30912:3:19","nodeType":"YulIdentifier","src":"30912:3:19"},"nativeSrc":"30912:17:19","nodeType":"YulFunctionCall","src":"30912:17:19"}],"functionName":{"name":"shr","nativeSrc":"30904:3:19","nodeType":"YulIdentifier","src":"30904:3:19"},"nativeSrc":"30904:26:19","nodeType":"YulFunctionCall","src":"30904:26:19"},"variableNames":[{"name":"operator","nativeSrc":"30892:8:19","nodeType":"YulIdentifier","src":"30892:8:19"}]},{"nativeSrc":"30977:40:19","nodeType":"YulAssignment","src":"30977:40:19","value":{"arguments":[{"arguments":[{"name":"isApproved","nativeSrc":"31005:10:19","nodeType":"YulIdentifier","src":"31005:10:19"}],"functionName":{"name":"iszero","nativeSrc":"30998:6:19","nodeType":"YulIdentifier","src":"30998:6:19"},"nativeSrc":"30998:18:19","nodeType":"YulFunctionCall","src":"30998:18:19"}],"functionName":{"name":"iszero","nativeSrc":"30991:6:19","nodeType":"YulIdentifier","src":"30991:6:19"},"nativeSrc":"30991:26:19","nodeType":"YulFunctionCall","src":"30991:26:19"},"variableNames":[{"name":"isApproved","nativeSrc":"30977:10:19","nodeType":"YulIdentifier","src":"30977:10:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31100:4:19","nodeType":"YulLiteral","src":"31100:4:19","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"31109:24:19","nodeType":"YulIdentifier","src":"31109:24:19"},{"name":"operator","nativeSrc":"31135:8:19","nodeType":"YulIdentifier","src":"31135:8:19"}],"functionName":{"name":"or","nativeSrc":"31106:2:19","nodeType":"YulIdentifier","src":"31106:2:19"},"nativeSrc":"31106:38:19","nodeType":"YulFunctionCall","src":"31106:38:19"}],"functionName":{"name":"mstore","nativeSrc":"31093:6:19","nodeType":"YulIdentifier","src":"31093:6:19"},"nativeSrc":"31093:52:19","nodeType":"YulFunctionCall","src":"31093:52:19"},"nativeSrc":"31093:52:19","nodeType":"YulExpressionStatement","src":"31093:52:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31165:4:19","nodeType":"YulLiteral","src":"31165:4:19","type":"","value":"0x00"},{"name":"by","nativeSrc":"31171:2:19","nodeType":"YulIdentifier","src":"31171:2:19"}],"functionName":{"name":"mstore","nativeSrc":"31158:6:19","nodeType":"YulIdentifier","src":"31158:6:19"},"nativeSrc":"31158:16:19","nodeType":"YulFunctionCall","src":"31158:16:19"},"nativeSrc":"31158:16:19","nodeType":"YulExpressionStatement","src":"31158:16:19"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"31204:4:19","nodeType":"YulLiteral","src":"31204:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"31210:4:19","nodeType":"YulLiteral","src":"31210:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"31194:9:19","nodeType":"YulIdentifier","src":"31194:9:19"},"nativeSrc":"31194:21:19","nodeType":"YulFunctionCall","src":"31194:21:19"},{"name":"isApproved","nativeSrc":"31217:10:19","nodeType":"YulIdentifier","src":"31217:10:19"}],"functionName":{"name":"sstore","nativeSrc":"31187:6:19","nodeType":"YulIdentifier","src":"31187:6:19"},"nativeSrc":"31187:41:19","nodeType":"YulFunctionCall","src":"31187:41:19"},"nativeSrc":"31187:41:19","nodeType":"YulExpressionStatement","src":"31187:41:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31296:4:19","nodeType":"YulLiteral","src":"31296:4:19","type":"","value":"0x00"},{"name":"isApproved","nativeSrc":"31302:10:19","nodeType":"YulIdentifier","src":"31302:10:19"}],"functionName":{"name":"mstore","nativeSrc":"31289:6:19","nodeType":"YulIdentifier","src":"31289:6:19"},"nativeSrc":"31289:24:19","nodeType":"YulFunctionCall","src":"31289:24:19"},"nativeSrc":"31289:24:19","nodeType":"YulExpressionStatement","src":"31289:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31331:4:19","nodeType":"YulLiteral","src":"31331:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"31337:4:19","nodeType":"YulLiteral","src":"31337:4:19","type":"","value":"0x20"},{"name":"_APPROVAL_FOR_ALL_EVENT_SIGNATURE","nativeSrc":"31343:33:19","nodeType":"YulIdentifier","src":"31343:33:19"},{"name":"by","nativeSrc":"31378:2:19","nodeType":"YulIdentifier","src":"31378:2:19"},{"name":"operator","nativeSrc":"31382:8:19","nodeType":"YulIdentifier","src":"31382:8:19"}],"functionName":{"name":"log3","nativeSrc":"31326:4:19","nodeType":"YulIdentifier","src":"31326:4:19"},"nativeSrc":"31326:65:19","nodeType":"YulFunctionCall","src":"31326:65:19"},"nativeSrc":"31326:65:19","nodeType":"YulExpressionStatement","src":"31326:65:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8425,"isOffset":false,"isSlot":false,"src":"31343:33:19","valueSize":1},{"declaration":8431,"isOffset":false,"isSlot":false,"src":"31109:24:19","valueSize":1},{"declaration":8888,"isOffset":false,"isSlot":false,"src":"30853:2:19","valueSize":1},{"declaration":8888,"isOffset":false,"isSlot":false,"src":"30875:2:19","valueSize":1},{"declaration":8888,"isOffset":false,"isSlot":false,"src":"31171:2:19","valueSize":1},{"declaration":8888,"isOffset":false,"isSlot":false,"src":"31378:2:19","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"30977:10:19","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"31005:10:19","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"31217:10:19","valueSize":1},{"declaration":8892,"isOffset":false,"isSlot":false,"src":"31302:10:19","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"30892:8:19","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"30920:8:19","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"31135:8:19","valueSize":1},{"declaration":8890,"isOffset":false,"isSlot":false,"src":"31382:8:19","valueSize":1}],"id":8895,"nodeType":"InlineAssembly","src":"30790:611:19"}]},"documentation":{"id":8886,"nodeType":"StructuredDocumentation","src":"30487:153:19","text":"@dev Approve or remove the `operator` as an operator for `by`,\n without authorization checks.\n Emits an {ApprovalForAll} event."},"id":8897,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"30654:18:19","nodeType":"FunctionDefinition","parameters":{"id":8893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8888,"mutability":"mutable","name":"by","nameLocation":"30681:2:19","nodeType":"VariableDeclaration","scope":8897,"src":"30673:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8887,"name":"address","nodeType":"ElementaryTypeName","src":"30673:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8890,"mutability":"mutable","name":"operator","nameLocation":"30693:8:19","nodeType":"VariableDeclaration","scope":8897,"src":"30685:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8889,"name":"address","nodeType":"ElementaryTypeName","src":"30685:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8892,"mutability":"mutable","name":"isApproved","nameLocation":"30708:10:19","nodeType":"VariableDeclaration","scope":8897,"src":"30703:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8891,"name":"bool","nodeType":"ElementaryTypeName","src":"30703:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30672:47:19"},"returnParameters":{"id":8894,"nodeType":"ParameterList","parameters":[],"src":"30737:0:19"},"scope":9097,"src":"30645:762:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8917,"nodeType":"Block","src":"31836:52:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31864: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":8909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31856:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8908,"name":"address","nodeType":"ElementaryTypeName","src":"31856:7:19","typeDescriptions":{}}},"id":8911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31856:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8912,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8900,"src":"31868:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8913,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"31874:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8914,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8904,"src":"31878:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8907,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8918,8944],"referencedDeclaration":8944,"src":"31846:9:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":8915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31846:35:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8916,"nodeType":"ExpressionStatement","src":"31846:35:19"}]},"documentation":{"id":8898,"nodeType":"StructuredDocumentation","src":"31696:61:19","text":"@dev Equivalent to `_transfer(address(0), from, to, id)`."},"id":8918,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"31771:9:19","nodeType":"FunctionDefinition","parameters":{"id":8905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8900,"mutability":"mutable","name":"from","nameLocation":"31789:4:19","nodeType":"VariableDeclaration","scope":8918,"src":"31781:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8899,"name":"address","nodeType":"ElementaryTypeName","src":"31781:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8902,"mutability":"mutable","name":"to","nameLocation":"31803:2:19","nodeType":"VariableDeclaration","scope":8918,"src":"31795:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8901,"name":"address","nodeType":"ElementaryTypeName","src":"31795:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8904,"mutability":"mutable","name":"id","nameLocation":"31815:2:19","nodeType":"VariableDeclaration","scope":8918,"src":"31807:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8903,"name":"uint256","nodeType":"ElementaryTypeName","src":"31807:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31780:38:19"},"returnParameters":{"id":8906,"nodeType":"ParameterList","parameters":[],"src":"31836:0:19"},"scope":9097,"src":"31762:126:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8943,"nodeType":"Block","src":"32364:2921:19","statements":[{"expression":{"arguments":[{"id":8931,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"32395:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8932,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8925,"src":"32401:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8933,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8927,"src":"32405:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8930,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9061,"src":"32374:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32374:34:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8935,"nodeType":"ExpressionStatement","src":"32374:34:19"},{"AST":{"nativeSrc":"32470:2766:19","nodeType":"YulBlock","src":"32470:2766:19","statements":[{"nativeSrc":"32524:37:19","nodeType":"YulVariableDeclaration","src":"32524:37:19","value":{"arguments":[{"kind":"number","nativeSrc":"32550:2:19","nodeType":"YulLiteral","src":"32550:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"32558:1:19","nodeType":"YulLiteral","src":"32558:1:19","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"32554:3:19","nodeType":"YulIdentifier","src":"32554:3:19"},"nativeSrc":"32554:6:19","nodeType":"YulFunctionCall","src":"32554:6:19"}],"functionName":{"name":"shr","nativeSrc":"32546:3:19","nodeType":"YulIdentifier","src":"32546:3:19"},"nativeSrc":"32546:15:19","nodeType":"YulFunctionCall","src":"32546:15:19"},"variables":[{"name":"bitmaskAddress","nativeSrc":"32528:14:19","nodeType":"YulTypedName","src":"32528:14:19","type":""}]},{"nativeSrc":"32574:33:19","nodeType":"YulAssignment","src":"32574:33:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32586:14:19","nodeType":"YulIdentifier","src":"32586:14:19"},{"name":"from","nativeSrc":"32602:4:19","nodeType":"YulIdentifier","src":"32602:4:19"}],"functionName":{"name":"and","nativeSrc":"32582:3:19","nodeType":"YulIdentifier","src":"32582:3:19"},"nativeSrc":"32582:25:19","nodeType":"YulFunctionCall","src":"32582:25:19"},"variableNames":[{"name":"from","nativeSrc":"32574:4:19","nodeType":"YulIdentifier","src":"32574:4:19"}]},{"nativeSrc":"32620:29:19","nodeType":"YulAssignment","src":"32620:29:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32630:14:19","nodeType":"YulIdentifier","src":"32630:14:19"},{"name":"to","nativeSrc":"32646:2:19","nodeType":"YulIdentifier","src":"32646:2:19"}],"functionName":{"name":"and","nativeSrc":"32626:3:19","nodeType":"YulIdentifier","src":"32626:3:19"},"nativeSrc":"32626:23:19","nodeType":"YulFunctionCall","src":"32626:23:19"},"variableNames":[{"name":"to","nativeSrc":"32620:2:19","nodeType":"YulIdentifier","src":"32620:2:19"}]},{"nativeSrc":"32662:29:19","nodeType":"YulAssignment","src":"32662:29:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32672:14:19","nodeType":"YulIdentifier","src":"32672:14:19"},{"name":"by","nativeSrc":"32688:2:19","nodeType":"YulIdentifier","src":"32688:2:19"}],"functionName":{"name":"and","nativeSrc":"32668:3:19","nodeType":"YulIdentifier","src":"32668:3:19"},"nativeSrc":"32668:23:19","nodeType":"YulFunctionCall","src":"32668:23:19"},"variableNames":[{"name":"by","nativeSrc":"32662:2:19","nodeType":"YulIdentifier","src":"32662:2:19"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32751:4:19","nodeType":"YulLiteral","src":"32751:4:19","type":"","value":"0x00"},{"name":"id","nativeSrc":"32757:2:19","nodeType":"YulIdentifier","src":"32757:2:19"}],"functionName":{"name":"mstore","nativeSrc":"32744:6:19","nodeType":"YulIdentifier","src":"32744:6:19"},"nativeSrc":"32744:16:19","nodeType":"YulFunctionCall","src":"32744:16:19"},"nativeSrc":"32744:16:19","nodeType":"YulExpressionStatement","src":"32744:16:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32780:4:19","nodeType":"YulLiteral","src":"32780:4:19","type":"","value":"0x1c"},{"arguments":[{"name":"_ERC721_MASTER_SLOT_SEED","nativeSrc":"32789:24:19","nodeType":"YulIdentifier","src":"32789:24:19"},{"name":"by","nativeSrc":"32815:2:19","nodeType":"YulIdentifier","src":"32815:2:19"}],"functionName":{"name":"or","nativeSrc":"32786:2:19","nodeType":"YulIdentifier","src":"32786:2:19"},"nativeSrc":"32786:32:19","nodeType":"YulFunctionCall","src":"32786:32:19"}],"functionName":{"name":"mstore","nativeSrc":"32773:6:19","nodeType":"YulIdentifier","src":"32773:6:19"},"nativeSrc":"32773:46:19","nodeType":"YulFunctionCall","src":"32773:46:19"},"nativeSrc":"32773:46:19","nodeType":"YulExpressionStatement","src":"32773:46:19"},{"nativeSrc":"32832:60:19","nodeType":"YulVariableDeclaration","src":"32832:60:19","value":{"arguments":[{"name":"id","nativeSrc":"32857:2:19","nodeType":"YulIdentifier","src":"32857:2:19"},{"arguments":[{"name":"id","nativeSrc":"32865:2:19","nodeType":"YulIdentifier","src":"32865:2:19"},{"arguments":[{"kind":"number","nativeSrc":"32879:4:19","nodeType":"YulLiteral","src":"32879:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"32885:4:19","nodeType":"YulLiteral","src":"32885:4:19","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"32869:9:19","nodeType":"YulIdentifier","src":"32869:9:19"},"nativeSrc":"32869:21:19","nodeType":"YulFunctionCall","src":"32869:21:19"}],"functionName":{"name":"add","nativeSrc":"32861:3:19","nodeType":"YulIdentifier","src":"32861:3:19"},"nativeSrc":"32861:30:19","nodeType":"YulFunctionCall","src":"32861:30:19"}],"functionName":{"name":"add","nativeSrc":"32853:3:19","nodeType":"YulIdentifier","src":"32853:3:19"},"nativeSrc":"32853:39:19","nodeType":"YulFunctionCall","src":"32853:39:19"},"variables":[{"name":"ownershipSlot","nativeSrc":"32836:13:19","nodeType":"YulTypedName","src":"32836:13:19","type":""}]},{"nativeSrc":"32905:43:19","nodeType":"YulVariableDeclaration","src":"32905:43:19","value":{"arguments":[{"name":"ownershipSlot","nativeSrc":"32934:13:19","nodeType":"YulIdentifier","src":"32934:13:19"}],"functionName":{"name":"sload","nativeSrc":"32928:5:19","nodeType":"YulIdentifier","src":"32928:5:19"},"nativeSrc":"32928:20:19","nodeType":"YulFunctionCall","src":"32928:20:19"},"variables":[{"name":"ownershipPacked","nativeSrc":"32909:15:19","nodeType":"YulTypedName","src":"32909:15:19","type":""}]},{"nativeSrc":"32961:49:19","nodeType":"YulVariableDeclaration","src":"32961:49:19","value":{"arguments":[{"name":"bitmaskAddress","nativeSrc":"32978:14:19","nodeType":"YulIdentifier","src":"32978:14:19"},{"name":"ownershipPacked","nativeSrc":"32994:15:19","nodeType":"YulIdentifier","src":"32994:15:19"}],"functionName":{"name":"and","nativeSrc":"32974:3:19","nodeType":"YulIdentifier","src":"32974:3:19"},"nativeSrc":"32974:36:19","nodeType":"YulFunctionCall","src":"32974:36:19"},"variables":[{"name":"owner","nativeSrc":"32965:5:19","nodeType":"YulTypedName","src":"32965:5:19","type":""}]},{"body":{"nativeSrc":"33144:190:19","nodeType":"YulBlock","src":"33144:190:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33247:1:19","nodeType":"YulLiteral","src":"33247:1:19","type":"","value":"2"},{"arguments":[{"name":"owner","nativeSrc":"33257:5:19","nodeType":"YulIdentifier","src":"33257:5:19"}],"functionName":{"name":"iszero","nativeSrc":"33250:6:19","nodeType":"YulIdentifier","src":"33250:6:19"},"nativeSrc":"33250:13:19","nodeType":"YulFunctionCall","src":"33250:13:19"}],"functionName":{"name":"shl","nativeSrc":"33243:3:19","nodeType":"YulIdentifier","src":"33243:3:19"},"nativeSrc":"33243:21:19","nodeType":"YulFunctionCall","src":"33243:21:19"},{"kind":"number","nativeSrc":"33266:18:19","nodeType":"YulLiteral","src":"33266:18:19","type":"","value":"0xceea21b6a1148100"}],"functionName":{"name":"mstore","nativeSrc":"33236:6:19","nodeType":"YulIdentifier","src":"33236:6:19"},"nativeSrc":"33236:49:19","nodeType":"YulFunctionCall","src":"33236:49:19"},"nativeSrc":"33236:49:19","nodeType":"YulExpressionStatement","src":"33236:49:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33309:4:19","nodeType":"YulLiteral","src":"33309:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33315:4:19","nodeType":"YulLiteral","src":"33315:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33302:6:19","nodeType":"YulIdentifier","src":"33302:6:19"},"nativeSrc":"33302:18:19","nodeType":"YulFunctionCall","src":"33302:18:19"},"nativeSrc":"33302:18:19","nodeType":"YulExpressionStatement","src":"33302:18:19"}]},"condition":{"arguments":[{"arguments":[{"name":"owner","nativeSrc":"33119:5:19","nodeType":"YulIdentifier","src":"33119:5:19"},{"arguments":[{"name":"owner","nativeSrc":"33129:5:19","nodeType":"YulIdentifier","src":"33129:5:19"},{"name":"from","nativeSrc":"33136:4:19","nodeType":"YulIdentifier","src":"33136:4:19"}],"functionName":{"name":"eq","nativeSrc":"33126:2:19","nodeType":"YulIdentifier","src":"33126:2:19"},"nativeSrc":"33126:15:19","nodeType":"YulFunctionCall","src":"33126:15:19"}],"functionName":{"name":"mul","nativeSrc":"33115:3:19","nodeType":"YulIdentifier","src":"33115:3:19"},"nativeSrc":"33115:27:19","nodeType":"YulFunctionCall","src":"33115:27:19"}],"functionName":{"name":"iszero","nativeSrc":"33108:6:19","nodeType":"YulIdentifier","src":"33108:6:19"},"nativeSrc":"33108:35:19","nodeType":"YulFunctionCall","src":"33108:35:19"},"nativeSrc":"33105:229:19","nodeType":"YulIf","src":"33105:229:19"},{"nativeSrc":"33406:704:19","nodeType":"YulBlock","src":"33406:704:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33431:4:19","nodeType":"YulLiteral","src":"33431:4:19","type":"","value":"0x00"},{"name":"from","nativeSrc":"33437:4:19","nodeType":"YulIdentifier","src":"33437:4:19"}],"functionName":{"name":"mstore","nativeSrc":"33424:6:19","nodeType":"YulIdentifier","src":"33424:6:19"},"nativeSrc":"33424:18:19","nodeType":"YulFunctionCall","src":"33424:18:19"},"nativeSrc":"33424:18:19","nodeType":"YulExpressionStatement","src":"33424:18:19"},{"nativeSrc":"33459:51:19","nodeType":"YulVariableDeclaration","src":"33459:51:19","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33492:1:19","nodeType":"YulLiteral","src":"33492:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"33495:13:19","nodeType":"YulIdentifier","src":"33495:13:19"}],"functionName":{"name":"add","nativeSrc":"33488:3:19","nodeType":"YulIdentifier","src":"33488:3:19"},"nativeSrc":"33488:21:19","nodeType":"YulFunctionCall","src":"33488:21:19"}],"functionName":{"name":"sload","nativeSrc":"33482:5:19","nodeType":"YulIdentifier","src":"33482:5:19"},"nativeSrc":"33482:28:19","nodeType":"YulFunctionCall","src":"33482:28:19"},"variables":[{"name":"approvedAddress","nativeSrc":"33463:15:19","nodeType":"YulTypedName","src":"33463:15:19","type":""}]},{"body":{"nativeSrc":"33746:223:19","nodeType":"YulBlock","src":"33746:223:19","statements":[{"body":{"nativeSrc":"33808:143:19","nodeType":"YulBlock","src":"33808:143:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33841:4:19","nodeType":"YulLiteral","src":"33841:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"33847:10:19","nodeType":"YulLiteral","src":"33847:10:19","type":"","value":"0x4b6e7f18"}],"functionName":{"name":"mstore","nativeSrc":"33834:6:19","nodeType":"YulIdentifier","src":"33834:6:19"},"nativeSrc":"33834:24:19","nodeType":"YulFunctionCall","src":"33834:24:19"},"nativeSrc":"33834:24:19","nodeType":"YulExpressionStatement","src":"33834:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33918:4:19","nodeType":"YulLiteral","src":"33918:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33924:4:19","nodeType":"YulLiteral","src":"33924:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33911:6:19","nodeType":"YulIdentifier","src":"33911:6:19"},"nativeSrc":"33911:18:19","nodeType":"YulFunctionCall","src":"33911:18:19"},"nativeSrc":"33911:18:19","nodeType":"YulExpressionStatement","src":"33911:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33794:4:19","nodeType":"YulLiteral","src":"33794:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"33800:4:19","nodeType":"YulLiteral","src":"33800:4:19","type":"","value":"0x30"}],"functionName":{"name":"keccak256","nativeSrc":"33784:9:19","nodeType":"YulIdentifier","src":"33784:9:19"},"nativeSrc":"33784:21:19","nodeType":"YulFunctionCall","src":"33784:21:19"}],"functionName":{"name":"sload","nativeSrc":"33778:5:19","nodeType":"YulIdentifier","src":"33778:5:19"},"nativeSrc":"33778:28:19","nodeType":"YulFunctionCall","src":"33778:28:19"}],"functionName":{"name":"iszero","nativeSrc":"33771:6:19","nodeType":"YulIdentifier","src":"33771:6:19"},"nativeSrc":"33771:36:19","nodeType":"YulFunctionCall","src":"33771:36:19"},"nativeSrc":"33768:183:19","nodeType":"YulIf","src":"33768:183:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"by","nativeSrc":"33697:2:19","nodeType":"YulIdentifier","src":"33697:2:19"}],"functionName":{"name":"iszero","nativeSrc":"33690:6:19","nodeType":"YulIdentifier","src":"33690:6:19"},"nativeSrc":"33690:10:19","nodeType":"YulFunctionCall","src":"33690:10:19"},{"arguments":[{"arguments":[{"name":"by","nativeSrc":"33708:2:19","nodeType":"YulIdentifier","src":"33708:2:19"},{"name":"from","nativeSrc":"33712:4:19","nodeType":"YulIdentifier","src":"33712:4:19"}],"functionName":{"name":"eq","nativeSrc":"33705:2:19","nodeType":"YulIdentifier","src":"33705:2:19"},"nativeSrc":"33705:12:19","nodeType":"YulFunctionCall","src":"33705:12:19"},{"arguments":[{"name":"by","nativeSrc":"33722:2:19","nodeType":"YulIdentifier","src":"33722:2:19"},{"name":"approvedAddress","nativeSrc":"33726:15:19","nodeType":"YulIdentifier","src":"33726:15:19"}],"functionName":{"name":"eq","nativeSrc":"33719:2:19","nodeType":"YulIdentifier","src":"33719:2:19"},"nativeSrc":"33719:23:19","nodeType":"YulFunctionCall","src":"33719:23:19"}],"functionName":{"name":"or","nativeSrc":"33702:2:19","nodeType":"YulIdentifier","src":"33702:2:19"},"nativeSrc":"33702:41:19","nodeType":"YulFunctionCall","src":"33702:41:19"}],"functionName":{"name":"or","nativeSrc":"33687:2:19","nodeType":"YulIdentifier","src":"33687:2:19"},"nativeSrc":"33687:57:19","nodeType":"YulFunctionCall","src":"33687:57:19"}],"functionName":{"name":"iszero","nativeSrc":"33680:6:19","nodeType":"YulIdentifier","src":"33680:6:19"},"nativeSrc":"33680:65:19","nodeType":"YulFunctionCall","src":"33680:65:19"},"nativeSrc":"33677:292:19","nodeType":"YulIf","src":"33677:292:19"},{"body":{"nativeSrc":"34060:36:19","nodeType":"YulBlock","src":"34060:36:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34073:1:19","nodeType":"YulLiteral","src":"34073:1:19","type":"","value":"1"},{"name":"ownershipSlot","nativeSrc":"34076:13:19","nodeType":"YulIdentifier","src":"34076:13:19"}],"functionName":{"name":"add","nativeSrc":"34069:3:19","nodeType":"YulIdentifier","src":"34069:3:19"},"nativeSrc":"34069:21:19","nodeType":"YulFunctionCall","src":"34069:21:19"},{"kind":"number","nativeSrc":"34092:1:19","nodeType":"YulLiteral","src":"34092:1:19","type":"","value":"0"}],"functionName":{"name":"sstore","nativeSrc":"34062:6:19","nodeType":"YulIdentifier","src":"34062:6:19"},"nativeSrc":"34062:32:19","nodeType":"YulFunctionCall","src":"34062:32:19"},"nativeSrc":"34062:32:19","nodeType":"YulExpressionStatement","src":"34062:32:19"}]},"condition":{"name":"approvedAddress","nativeSrc":"34044:15:19","nodeType":"YulIdentifier","src":"34044:15:19"},"nativeSrc":"34041:55:19","nodeType":"YulIf","src":"34041:55:19"}]},{"expression":{"arguments":[{"name":"ownershipSlot","nativeSrc":"34172:13:19","nodeType":"YulIdentifier","src":"34172:13:19"},{"arguments":[{"name":"ownershipPacked","nativeSrc":"34191:15:19","nodeType":"YulIdentifier","src":"34191:15:19"},{"arguments":[{"name":"from","nativeSrc":"34212:4:19","nodeType":"YulIdentifier","src":"34212:4:19"},{"name":"to","nativeSrc":"34218:2:19","nodeType":"YulIdentifier","src":"34218:2:19"}],"functionName":{"name":"xor","nativeSrc":"34208:3:19","nodeType":"YulIdentifier","src":"34208:3:19"},"nativeSrc":"34208:13:19","nodeType":"YulFunctionCall","src":"34208:13:19"}],"functionName":{"name":"xor","nativeSrc":"34187:3:19","nodeType":"YulIdentifier","src":"34187:3:19"},"nativeSrc":"34187:35:19","nodeType":"YulFunctionCall","src":"34187:35:19"}],"functionName":{"name":"sstore","nativeSrc":"34165:6:19","nodeType":"YulIdentifier","src":"34165:6:19"},"nativeSrc":"34165:58:19","nodeType":"YulFunctionCall","src":"34165:58:19"},"nativeSrc":"34165:58:19","nodeType":"YulExpressionStatement","src":"34165:58:19"},{"nativeSrc":"34284:148:19","nodeType":"YulBlock","src":"34284:148:19","statements":[{"nativeSrc":"34302:44:19","nodeType":"YulVariableDeclaration","src":"34302:44:19","value":{"arguments":[{"kind":"number","nativeSrc":"34335:4:19","nodeType":"YulLiteral","src":"34335:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"34341:4:19","nodeType":"YulLiteral","src":"34341:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"34325:9:19","nodeType":"YulIdentifier","src":"34325:9:19"},"nativeSrc":"34325:21:19","nodeType":"YulFunctionCall","src":"34325:21:19"},"variables":[{"name":"fromBalanceSlot","nativeSrc":"34306:15:19","nodeType":"YulTypedName","src":"34306:15:19","type":""}]},{"expression":{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"34370:15:19","nodeType":"YulIdentifier","src":"34370:15:19"},{"arguments":[{"arguments":[{"name":"fromBalanceSlot","nativeSrc":"34397:15:19","nodeType":"YulIdentifier","src":"34397:15:19"}],"functionName":{"name":"sload","nativeSrc":"34391:5:19","nodeType":"YulIdentifier","src":"34391:5:19"},"nativeSrc":"34391:22:19","nodeType":"YulFunctionCall","src":"34391:22:19"},{"kind":"number","nativeSrc":"34415:1:19","nodeType":"YulLiteral","src":"34415:1:19","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"34387:3:19","nodeType":"YulIdentifier","src":"34387:3:19"},"nativeSrc":"34387:30:19","nodeType":"YulFunctionCall","src":"34387:30:19"}],"functionName":{"name":"sstore","nativeSrc":"34363:6:19","nodeType":"YulIdentifier","src":"34363:6:19"},"nativeSrc":"34363:55:19","nodeType":"YulFunctionCall","src":"34363:55:19"},"nativeSrc":"34363:55:19","nodeType":"YulExpressionStatement","src":"34363:55:19"}]},{"nativeSrc":"34491:617:19","nodeType":"YulBlock","src":"34491:617:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34516:4:19","nodeType":"YulLiteral","src":"34516:4:19","type":"","value":"0x00"},{"name":"to","nativeSrc":"34522:2:19","nodeType":"YulIdentifier","src":"34522:2:19"}],"functionName":{"name":"mstore","nativeSrc":"34509:6:19","nodeType":"YulIdentifier","src":"34509:6:19"},"nativeSrc":"34509:16:19","nodeType":"YulFunctionCall","src":"34509:16:19"},"nativeSrc":"34509:16:19","nodeType":"YulExpressionStatement","src":"34509:16:19"},{"nativeSrc":"34542:42:19","nodeType":"YulVariableDeclaration","src":"34542:42:19","value":{"arguments":[{"kind":"number","nativeSrc":"34573:4:19","nodeType":"YulLiteral","src":"34573:4:19","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"34579:4:19","nodeType":"YulLiteral","src":"34579:4:19","type":"","value":"0x1c"}],"functionName":{"name":"keccak256","nativeSrc":"34563:9:19","nodeType":"YulIdentifier","src":"34563:9:19"},"nativeSrc":"34563:21:19","nodeType":"YulFunctionCall","src":"34563:21:19"},"variables":[{"name":"toBalanceSlot","nativeSrc":"34546:13:19","nodeType":"YulTypedName","src":"34546:13:19","type":""}]},{"nativeSrc":"34601:55:19","nodeType":"YulVariableDeclaration","src":"34601:55:19","value":{"arguments":[{"arguments":[{"name":"toBalanceSlot","nativeSrc":"34638:13:19","nodeType":"YulIdentifier","src":"34638:13:19"}],"functionName":{"name":"sload","nativeSrc":"34632:5:19","nodeType":"YulIdentifier","src":"34632:5:19"},"nativeSrc":"34632:20:19","nodeType":"YulFunctionCall","src":"34632:20:19"},{"kind":"number","nativeSrc":"34654:1:19","nodeType":"YulLiteral","src":"34654:1:19","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"34628:3:19","nodeType":"YulIdentifier","src":"34628:3:19"},"nativeSrc":"34628:28:19","nodeType":"YulFunctionCall","src":"34628:28:19"},"variables":[{"name":"toBalanceSlotPacked","nativeSrc":"34605:19:19","nodeType":"YulTypedName","src":"34605:19:19","type":""}]},{"body":{"nativeSrc":"34832:203:19","nodeType":"YulBlock","src":"34832:203:19","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"34943:1:19","nodeType":"YulLiteral","src":"34943:1:19","type":"","value":"2"},{"arguments":[{"name":"to","nativeSrc":"34953:2:19","nodeType":"YulIdentifier","src":"34953:2:19"}],"functionName":{"name":"iszero","nativeSrc":"34946:6:19","nodeType":"YulIdentifier","src":"34946:6:19"},"nativeSrc":"34946:10:19","nodeType":"YulFunctionCall","src":"34946:10:19"}],"functionName":{"name":"shl","nativeSrc":"34939:3:19","nodeType":"YulIdentifier","src":"34939:3:19"},"nativeSrc":"34939:18:19","nodeType":"YulFunctionCall","src":"34939:18:19"},{"kind":"number","nativeSrc":"34959:18:19","nodeType":"YulLiteral","src":"34959:18:19","type":"","value":"0xea553b3401336cea"}],"functionName":{"name":"mstore","nativeSrc":"34932:6:19","nodeType":"YulIdentifier","src":"34932:6:19"},"nativeSrc":"34932:46:19","nodeType":"YulFunctionCall","src":"34932:46:19"},"nativeSrc":"34932:46:19","nodeType":"YulExpressionStatement","src":"34932:46:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35006:4:19","nodeType":"YulLiteral","src":"35006:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"35012:4:19","nodeType":"YulLiteral","src":"35012:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"34999:6:19","nodeType":"YulIdentifier","src":"34999:6:19"},"nativeSrc":"34999:18:19","nodeType":"YulFunctionCall","src":"34999:18:19"},"nativeSrc":"34999:18:19","nodeType":"YulExpressionStatement","src":"34999:18:19"}]},"condition":{"arguments":[{"arguments":[{"name":"to","nativeSrc":"34779:2:19","nodeType":"YulIdentifier","src":"34779:2:19"},{"arguments":[{"name":"toBalanceSlotPacked","nativeSrc":"34787:19:19","nodeType":"YulIdentifier","src":"34787:19:19"},{"name":"_MAX_ACCOUNT_BALANCE","nativeSrc":"34808:20:19","nodeType":"YulIdentifier","src":"34808:20:19"}],"functionName":{"name":"and","nativeSrc":"34783:3:19","nodeType":"YulIdentifier","src":"34783:3:19"},"nativeSrc":"34783:46:19","nodeType":"YulFunctionCall","src":"34783:46:19"}],"functionName":{"name":"mul","nativeSrc":"34775:3:19","nodeType":"YulIdentifier","src":"34775:3:19"},"nativeSrc":"34775:55:19","nodeType":"YulFunctionCall","src":"34775:55:19"}],"functionName":{"name":"iszero","nativeSrc":"34768:6:19","nodeType":"YulIdentifier","src":"34768:6:19"},"nativeSrc":"34768:63:19","nodeType":"YulFunctionCall","src":"34768:63:19"},"nativeSrc":"34765:270:19","nodeType":"YulIf","src":"34765:270:19"},{"expression":{"arguments":[{"name":"toBalanceSlot","nativeSrc":"35059:13:19","nodeType":"YulIdentifier","src":"35059:13:19"},{"name":"toBalanceSlotPacked","nativeSrc":"35074:19:19","nodeType":"YulIdentifier","src":"35074:19:19"}],"functionName":{"name":"sstore","nativeSrc":"35052:6:19","nodeType":"YulIdentifier","src":"35052:6:19"},"nativeSrc":"35052:42:19","nodeType":"YulFunctionCall","src":"35052:42:19"},"nativeSrc":"35052:42:19","nodeType":"YulExpressionStatement","src":"35052:42:19"}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"35168:8:19","nodeType":"YulIdentifier","src":"35168:8:19"},"nativeSrc":"35168:10:19","nodeType":"YulFunctionCall","src":"35168:10:19"},{"kind":"number","nativeSrc":"35180:4:19","nodeType":"YulLiteral","src":"35180:4:19","type":"","value":"0x00"},{"name":"_TRANSFER_EVENT_SIGNATURE","nativeSrc":"35186:25:19","nodeType":"YulIdentifier","src":"35186:25:19"},{"name":"from","nativeSrc":"35213:4:19","nodeType":"YulIdentifier","src":"35213:4:19"},{"name":"to","nativeSrc":"35219:2:19","nodeType":"YulIdentifier","src":"35219:2:19"},{"name":"id","nativeSrc":"35223:2:19","nodeType":"YulIdentifier","src":"35223:2:19"}],"functionName":{"name":"log4","nativeSrc":"35163:4:19","nodeType":"YulIdentifier","src":"35163:4:19"},"nativeSrc":"35163:63:19","nodeType":"YulFunctionCall","src":"35163:63:19"},"nativeSrc":"35163:63:19","nodeType":"YulExpressionStatement","src":"35163:63:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":8431,"isOffset":false,"isSlot":false,"src":"32789:24:19","valueSize":1},{"declaration":8362,"isOffset":false,"isSlot":false,"src":"34808:20:19","valueSize":1},{"declaration":8417,"isOffset":false,"isSlot":false,"src":"35186:25:19","valueSize":1},{"declaration":8921,"isOffset":false,"isSlot":false,"src":"32662:2:19","valueSize":1},{"declaration":8921,"isOffset":false,"isSlot":false,"src":"32688:2:19","valueSize":1},{"declaration":8921,"isOffset":false,"isSlot":false,"src":"32815:2:19","valueSize":1},{"declaration":8921,"isOffset":false,"isSlot":false,"src":"33697:2:19","valueSize":1},{"declaration":8921,"isOffset":false,"isSlot":false,"src":"33708:2:19","valueSize":1},{"declaration":8921,"isOffset":false,"isSlot":false,"src":"33722:2:19","valueSize":1},{"declaration":8923,"isOffset":false,"isSlot":false,"src":"32574:4:19","valueSize":1},{"declaration":8923,"isOffset":false,"isSlot":false,"src":"32602:4:19","valueSize":1},{"declaration":8923,"isOffset":false,"isSlot":false,"src":"33136:4:19","valueSize":1},{"declaration":8923,"isOffset":false,"isSlot":false,"src":"33437:4:19","valueSize":1},{"declaration":8923,"isOffset":false,"isSlot":false,"src":"33712:4:19","valueSize":1},{"declaration":8923,"isOffset":false,"isSlot":false,"src":"34212:4:19","valueSize":1},{"declaration":8923,"isOffset":false,"isSlot":false,"src":"35213:4:19","valueSize":1},{"declaration":8927,"isOffset":false,"isSlot":false,"src":"32757:2:19","valueSize":1},{"declaration":8927,"isOffset":false,"isSlot":false,"src":"32857:2:19","valueSize":1},{"declaration":8927,"isOffset":false,"isSlot":false,"src":"32865:2:19","valueSize":1},{"declaration":8927,"isOffset":false,"isSlot":false,"src":"35223:2:19","valueSize":1},{"declaration":8925,"isOffset":false,"isSlot":false,"src":"32620:2:19","valueSize":1},{"declaration":8925,"isOffset":false,"isSlot":false,"src":"32646:2:19","valueSize":1},{"declaration":8925,"isOffset":false,"isSlot":false,"src":"34218:2:19","valueSize":1},{"declaration":8925,"isOffset":false,"isSlot":false,"src":"34522:2:19","valueSize":1},{"declaration":8925,"isOffset":false,"isSlot":false,"src":"34779:2:19","valueSize":1},{"declaration":8925,"isOffset":false,"isSlot":false,"src":"34953:2:19","valueSize":1},{"declaration":8925,"isOffset":false,"isSlot":false,"src":"35219:2:19","valueSize":1}],"id":8936,"nodeType":"InlineAssembly","src":"32461:2775:19"},{"expression":{"arguments":[{"id":8938,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8923,"src":"35265:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8939,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8925,"src":"35271:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8940,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8927,"src":"35275:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8937,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9072,"src":"35245:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35245:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8942,"nodeType":"ExpressionStatement","src":"35245:33:19"}]},"documentation":{"id":8919,"nodeType":"StructuredDocumentation","src":"31894:379:19","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n Emits a {Transfer} event."},"id":8944,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"32287:9:19","nodeType":"FunctionDefinition","parameters":{"id":8928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8921,"mutability":"mutable","name":"by","nameLocation":"32305:2:19","nodeType":"VariableDeclaration","scope":8944,"src":"32297:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8920,"name":"address","nodeType":"ElementaryTypeName","src":"32297:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8923,"mutability":"mutable","name":"from","nameLocation":"32317:4:19","nodeType":"VariableDeclaration","scope":8944,"src":"32309:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8922,"name":"address","nodeType":"ElementaryTypeName","src":"32309:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8925,"mutability":"mutable","name":"to","nameLocation":"32331:2:19","nodeType":"VariableDeclaration","scope":8944,"src":"32323:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8924,"name":"address","nodeType":"ElementaryTypeName","src":"32323:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8927,"mutability":"mutable","name":"id","nameLocation":"32343:2:19","nodeType":"VariableDeclaration","scope":8944,"src":"32335:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8926,"name":"uint256","nodeType":"ElementaryTypeName","src":"32335:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32296:50:19"},"returnParameters":{"id":8929,"nodeType":"ParameterList","parameters":[],"src":"32364:0:19"},"scope":9097,"src":"32278:3007:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8961,"nodeType":"Block","src":"35431:48:19","statements":[{"expression":{"arguments":[{"id":8955,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8947,"src":"35455:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8956,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8949,"src":"35461:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8957,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8951,"src":"35465:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":8958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35469:2:19","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":8954,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[8962,8996,9017,9050],"referencedDeclaration":8996,"src":"35441:13:19","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":8959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35441:31:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8960,"nodeType":"ExpressionStatement","src":"35441:31:19"}]},"documentation":{"id":8945,"nodeType":"StructuredDocumentation","src":"35291:57:19","text":"@dev Equivalent to `_safeTransfer(from, to, id, \"\")`."},"id":8962,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"35362:13:19","nodeType":"FunctionDefinition","parameters":{"id":8952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8947,"mutability":"mutable","name":"from","nameLocation":"35384:4:19","nodeType":"VariableDeclaration","scope":8962,"src":"35376:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8946,"name":"address","nodeType":"ElementaryTypeName","src":"35376:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8949,"mutability":"mutable","name":"to","nameLocation":"35398:2:19","nodeType":"VariableDeclaration","scope":8962,"src":"35390:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8948,"name":"address","nodeType":"ElementaryTypeName","src":"35390:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8951,"mutability":"mutable","name":"id","nameLocation":"35410:2:19","nodeType":"VariableDeclaration","scope":8962,"src":"35402:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8950,"name":"uint256","nodeType":"ElementaryTypeName","src":"35402:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35375:38:19"},"returnParameters":{"id":8953,"nodeType":"ParameterList","parameters":[],"src":"35431:0:19"},"scope":9097,"src":"35353:126:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8995,"nodeType":"Block","src":"36099:122:19","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36127: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":8976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36119:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8975,"name":"address","nodeType":"ElementaryTypeName","src":"36119:7:19","typeDescriptions":{}}},"id":8978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36119:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8979,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8965,"src":"36131:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8980,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8967,"src":"36137:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8981,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8969,"src":"36141:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8974,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8918,8944],"referencedDeclaration":8944,"src":"36109:9:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":8982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36109:35:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8983,"nodeType":"ExpressionStatement","src":"36109:35:19"},{"condition":{"arguments":[{"id":8985,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8967,"src":"36167:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8984,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9082,"src":"36158:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":8986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36158:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8994,"nodeType":"IfStatement","src":"36154:60:19","trueBody":{"expression":{"arguments":[{"id":8988,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8965,"src":"36195:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8989,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8967,"src":"36201:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8990,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8969,"src":"36205:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8991,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8971,"src":"36209:4:19","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":8987,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"36172:22:19","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":8992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36172:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8993,"nodeType":"ExpressionStatement","src":"36172:42:19"}}]},"documentation":{"id":8963,"nodeType":"StructuredDocumentation","src":"35485:492:19","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - The caller must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":8996,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"35991:13:19","nodeType":"FunctionDefinition","parameters":{"id":8972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8965,"mutability":"mutable","name":"from","nameLocation":"36013:4:19","nodeType":"VariableDeclaration","scope":8996,"src":"36005:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8964,"name":"address","nodeType":"ElementaryTypeName","src":"36005:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8967,"mutability":"mutable","name":"to","nameLocation":"36027:2:19","nodeType":"VariableDeclaration","scope":8996,"src":"36019:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8966,"name":"address","nodeType":"ElementaryTypeName","src":"36019:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8969,"mutability":"mutable","name":"id","nameLocation":"36039:2:19","nodeType":"VariableDeclaration","scope":8996,"src":"36031:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8968,"name":"uint256","nodeType":"ElementaryTypeName","src":"36031:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8971,"mutability":"mutable","name":"data","nameLocation":"36056:4:19","nodeType":"VariableDeclaration","scope":8996,"src":"36043:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8970,"name":"bytes","nodeType":"ElementaryTypeName","src":"36043:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36004:57:19"},"returnParameters":{"id":8973,"nodeType":"ParameterList","parameters":[],"src":"36099:0:19"},"scope":9097,"src":"35982:239:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9016,"nodeType":"Block","src":"36383:52:19","statements":[{"expression":{"arguments":[{"id":9009,"name":"by","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"36407:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9010,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9001,"src":"36411:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9011,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9003,"src":"36417:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9012,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"36421:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":9013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36425:2:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9008,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[8962,8996,9017,9050],"referencedDeclaration":9050,"src":"36393:13:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,uint256,bytes memory)"}},"id":9014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36393:35:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9015,"nodeType":"ExpressionStatement","src":"36393:35:19"}]},"documentation":{"id":8997,"nodeType":"StructuredDocumentation","src":"36227:61:19","text":"@dev Equivalent to `_safeTransfer(by, from, to, id, \"\")`."},"id":9017,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"36302:13:19","nodeType":"FunctionDefinition","parameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8999,"mutability":"mutable","name":"by","nameLocation":"36324:2:19","nodeType":"VariableDeclaration","scope":9017,"src":"36316:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8998,"name":"address","nodeType":"ElementaryTypeName","src":"36316:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9001,"mutability":"mutable","name":"from","nameLocation":"36336:4:19","nodeType":"VariableDeclaration","scope":9017,"src":"36328:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9000,"name":"address","nodeType":"ElementaryTypeName","src":"36328:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9003,"mutability":"mutable","name":"to","nameLocation":"36350:2:19","nodeType":"VariableDeclaration","scope":9017,"src":"36342:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9002,"name":"address","nodeType":"ElementaryTypeName","src":"36342:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9005,"mutability":"mutable","name":"id","nameLocation":"36362:2:19","nodeType":"VariableDeclaration","scope":9017,"src":"36354:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"36354:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36315:50:19"},"returnParameters":{"id":9007,"nodeType":"ParameterList","parameters":[],"src":"36383:0:19"},"scope":9097,"src":"36293:142:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9049,"nodeType":"Block","src":"37102:114:19","statements":[{"expression":{"arguments":[{"id":9032,"name":"by","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9020,"src":"37122:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9033,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9022,"src":"37126:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9034,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9024,"src":"37132:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9035,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9026,"src":"37136:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9031,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[8918,8944],"referencedDeclaration":8944,"src":"37112:9:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":9036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37112:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9037,"nodeType":"ExpressionStatement","src":"37112:27:19"},{"condition":{"arguments":[{"id":9039,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9024,"src":"37162:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9038,"name":"_hasCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9082,"src":"37153:8:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":9040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37153:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9048,"nodeType":"IfStatement","src":"37149:60:19","trueBody":{"expression":{"arguments":[{"id":9042,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9022,"src":"37190:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9043,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9024,"src":"37196:2:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9044,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9026,"src":"37200:2:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9045,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9028,"src":"37204:4:19","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":9041,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"37167:22:19","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":9046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37167:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9047,"nodeType":"ExpressionStatement","src":"37167:42:19"}}]},"documentation":{"id":9018,"nodeType":"StructuredDocumentation","src":"36441:527:19","text":"@dev Transfers token `id` from `from` to `to`.\n Requirements:\n - Token `id` must exist.\n - `from` must be the owner of the token.\n - `to` cannot be the zero address.\n - If `by` is not the zero address,\n it must be the owner of the token, or be approved to manage the token.\n - If `to` refers to a smart contract, it must implement\n {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9050,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"36982:13:19","nodeType":"FunctionDefinition","parameters":{"id":9029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"mutability":"mutable","name":"by","nameLocation":"37004:2:19","nodeType":"VariableDeclaration","scope":9050,"src":"36996:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9019,"name":"address","nodeType":"ElementaryTypeName","src":"36996:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9022,"mutability":"mutable","name":"from","nameLocation":"37016:4:19","nodeType":"VariableDeclaration","scope":9050,"src":"37008:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9021,"name":"address","nodeType":"ElementaryTypeName","src":"37008:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9024,"mutability":"mutable","name":"to","nameLocation":"37030:2:19","nodeType":"VariableDeclaration","scope":9050,"src":"37022:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9023,"name":"address","nodeType":"ElementaryTypeName","src":"37022:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9026,"mutability":"mutable","name":"id","nameLocation":"37042:2:19","nodeType":"VariableDeclaration","scope":9050,"src":"37034:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9025,"name":"uint256","nodeType":"ElementaryTypeName","src":"37034:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9028,"mutability":"mutable","name":"data","nameLocation":"37059:4:19","nodeType":"VariableDeclaration","scope":9050,"src":"37046:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9027,"name":"bytes","nodeType":"ElementaryTypeName","src":"37046:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36995:69:19"},"returnParameters":{"id":9030,"nodeType":"ParameterList","parameters":[],"src":"37102:0:19"},"scope":9097,"src":"36973:243:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9060,"nodeType":"Block","src":"37682:2:19","statements":[]},"documentation":{"id":9051,"nodeType":"StructuredDocumentation","src":"37505:87:19","text":"@dev Hook that is called before any token transfers, including minting and burning."},"id":9061,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"37606:20:19","nodeType":"FunctionDefinition","parameters":{"id":9058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9053,"mutability":"mutable","name":"from","nameLocation":"37635:4:19","nodeType":"VariableDeclaration","scope":9061,"src":"37627:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9052,"name":"address","nodeType":"ElementaryTypeName","src":"37627:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9055,"mutability":"mutable","name":"to","nameLocation":"37649:2:19","nodeType":"VariableDeclaration","scope":9061,"src":"37641:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9054,"name":"address","nodeType":"ElementaryTypeName","src":"37641:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9057,"mutability":"mutable","name":"id","nameLocation":"37661:2:19","nodeType":"VariableDeclaration","scope":9061,"src":"37653:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9056,"name":"uint256","nodeType":"ElementaryTypeName","src":"37653:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37626:38:19"},"returnParameters":{"id":9059,"nodeType":"ParameterList","parameters":[],"src":"37682:0:19"},"scope":9097,"src":"37597:87:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9071,"nodeType":"Block","src":"37865:2:19","statements":[]},"documentation":{"id":9062,"nodeType":"StructuredDocumentation","src":"37690:86:19","text":"@dev Hook that is called after any token transfers, including minting and burning."},"id":9072,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"37790:19:19","nodeType":"FunctionDefinition","parameters":{"id":9069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9064,"mutability":"mutable","name":"from","nameLocation":"37818:4:19","nodeType":"VariableDeclaration","scope":9072,"src":"37810:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9063,"name":"address","nodeType":"ElementaryTypeName","src":"37810:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9066,"mutability":"mutable","name":"to","nameLocation":"37832:2:19","nodeType":"VariableDeclaration","scope":9072,"src":"37824:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9065,"name":"address","nodeType":"ElementaryTypeName","src":"37824:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9068,"mutability":"mutable","name":"id","nameLocation":"37844:2:19","nodeType":"VariableDeclaration","scope":9072,"src":"37836:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9067,"name":"uint256","nodeType":"ElementaryTypeName","src":"37836:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37809:38:19"},"returnParameters":{"id":9070,"nodeType":"ParameterList","parameters":[],"src":"37865:0:19"},"scope":9097,"src":"37781:86:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9081,"nodeType":"Block","src":"38281:148:19","statements":[{"AST":{"nativeSrc":"38343:80:19","nodeType":"YulBlock","src":"38343:80:19","statements":[{"nativeSrc":"38357:24:19","nodeType":"YulAssignment","src":"38357:24:19","value":{"arguments":[{"name":"a","nativeSrc":"38379:1:19","nodeType":"YulIdentifier","src":"38379:1:19"}],"functionName":{"name":"extcodesize","nativeSrc":"38367:11:19","nodeType":"YulIdentifier","src":"38367:11:19"},"nativeSrc":"38367:14:19","nodeType":"YulFunctionCall","src":"38367:14:19"},"variableNames":[{"name":"result","nativeSrc":"38357:6:19","nodeType":"YulIdentifier","src":"38357:6:19"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9075,"isOffset":false,"isSlot":false,"src":"38379:1:19","valueSize":1},{"declaration":9078,"isOffset":false,"isSlot":false,"src":"38357:6:19","valueSize":1}],"id":9080,"nodeType":"InlineAssembly","src":"38334:89:19"}]},"documentation":{"id":9073,"nodeType":"StructuredDocumentation","src":"38156:56:19","text":"@dev Returns if `a` has bytecode of non-zero length."},"id":9082,"implemented":true,"kind":"function","modifiers":[],"name":"_hasCode","nameLocation":"38226:8:19","nodeType":"FunctionDefinition","parameters":{"id":9076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9075,"mutability":"mutable","name":"a","nameLocation":"38243:1:19","nodeType":"VariableDeclaration","scope":9082,"src":"38235:9:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9074,"name":"address","nodeType":"ElementaryTypeName","src":"38235:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38234:11:19"},"returnParameters":{"id":9079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"result","nameLocation":"38273:6:19","nodeType":"VariableDeclaration","scope":9082,"src":"38268:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9077,"name":"bool","nodeType":"ElementaryTypeName","src":"38268:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38267:13:19"},"scope":9097,"src":"38217:212:19","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":9095,"nodeType":"Block","src":"38697:1261:19","statements":[{"AST":{"nativeSrc":"38759:1193:19","nodeType":"YulBlock","src":"38759:1193:19","statements":[{"nativeSrc":"38810:20:19","nodeType":"YulVariableDeclaration","src":"38810:20:19","value":{"arguments":[{"kind":"number","nativeSrc":"38825:4:19","nodeType":"YulLiteral","src":"38825:4:19","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"38819:5:19","nodeType":"YulIdentifier","src":"38819:5:19"},"nativeSrc":"38819:11:19","nodeType":"YulFunctionCall","src":"38819:11:19"},"variables":[{"name":"m","nativeSrc":"38814:1:19","nodeType":"YulTypedName","src":"38814:1:19","type":""}]},{"nativeSrc":"38843:42:19","nodeType":"YulVariableDeclaration","src":"38843:42:19","value":{"kind":"number","nativeSrc":"38875:10:19","nodeType":"YulLiteral","src":"38875:10:19","type":"","value":"0x150b7a02"},"variables":[{"name":"onERC721ReceivedSelector","nativeSrc":"38847:24:19","nodeType":"YulTypedName","src":"38847:24:19","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"38905:1:19","nodeType":"YulIdentifier","src":"38905:1:19"},{"name":"onERC721ReceivedSelector","nativeSrc":"38908:24:19","nodeType":"YulIdentifier","src":"38908:24:19"}],"functionName":{"name":"mstore","nativeSrc":"38898:6:19","nodeType":"YulIdentifier","src":"38898:6:19"},"nativeSrc":"38898:35:19","nodeType":"YulFunctionCall","src":"38898:35:19"},"nativeSrc":"38898:35:19","nodeType":"YulExpressionStatement","src":"38898:35:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"38957:1:19","nodeType":"YulIdentifier","src":"38957:1:19"},{"kind":"number","nativeSrc":"38960:4:19","nodeType":"YulLiteral","src":"38960:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38953:3:19","nodeType":"YulIdentifier","src":"38953:3:19"},"nativeSrc":"38953:12:19","nodeType":"YulFunctionCall","src":"38953:12:19"},{"arguments":[],"functionName":{"name":"caller","nativeSrc":"38967:6:19","nodeType":"YulIdentifier","src":"38967:6:19"},"nativeSrc":"38967:8:19","nodeType":"YulFunctionCall","src":"38967:8:19"}],"functionName":{"name":"mstore","nativeSrc":"38946:6:19","nodeType":"YulIdentifier","src":"38946:6:19"},"nativeSrc":"38946:30:19","nodeType":"YulFunctionCall","src":"38946:30:19"},"nativeSrc":"38946:30:19","nodeType":"YulExpressionStatement","src":"38946:30:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39049:1:19","nodeType":"YulIdentifier","src":"39049:1:19"},{"kind":"number","nativeSrc":"39052:4:19","nodeType":"YulLiteral","src":"39052:4:19","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"39045:3:19","nodeType":"YulIdentifier","src":"39045:3:19"},"nativeSrc":"39045:12:19","nodeType":"YulFunctionCall","src":"39045:12:19"},{"arguments":[{"kind":"number","nativeSrc":"39063:2:19","nodeType":"YulLiteral","src":"39063:2:19","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"39071:2:19","nodeType":"YulLiteral","src":"39071:2:19","type":"","value":"96"},{"name":"from","nativeSrc":"39075:4:19","nodeType":"YulIdentifier","src":"39075:4:19"}],"functionName":{"name":"shl","nativeSrc":"39067:3:19","nodeType":"YulIdentifier","src":"39067:3:19"},"nativeSrc":"39067:13:19","nodeType":"YulFunctionCall","src":"39067:13:19"}],"functionName":{"name":"shr","nativeSrc":"39059:3:19","nodeType":"YulIdentifier","src":"39059:3:19"},"nativeSrc":"39059:22:19","nodeType":"YulFunctionCall","src":"39059:22:19"}],"functionName":{"name":"mstore","nativeSrc":"39038:6:19","nodeType":"YulIdentifier","src":"39038:6:19"},"nativeSrc":"39038:44:19","nodeType":"YulFunctionCall","src":"39038:44:19"},"nativeSrc":"39038:44:19","nodeType":"YulExpressionStatement","src":"39038:44:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39106:1:19","nodeType":"YulIdentifier","src":"39106:1:19"},{"kind":"number","nativeSrc":"39109:4:19","nodeType":"YulLiteral","src":"39109:4:19","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"39102:3:19","nodeType":"YulIdentifier","src":"39102:3:19"},"nativeSrc":"39102:12:19","nodeType":"YulFunctionCall","src":"39102:12:19"},{"name":"id","nativeSrc":"39116:2:19","nodeType":"YulIdentifier","src":"39116:2:19"}],"functionName":{"name":"mstore","nativeSrc":"39095:6:19","nodeType":"YulIdentifier","src":"39095:6:19"},"nativeSrc":"39095:24:19","nodeType":"YulFunctionCall","src":"39095:24:19"},"nativeSrc":"39095:24:19","nodeType":"YulExpressionStatement","src":"39095:24:19"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39143:1:19","nodeType":"YulIdentifier","src":"39143:1:19"},{"kind":"number","nativeSrc":"39146:4:19","nodeType":"YulLiteral","src":"39146:4:19","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"39139:3:19","nodeType":"YulIdentifier","src":"39139:3:19"},"nativeSrc":"39139:12:19","nodeType":"YulFunctionCall","src":"39139:12:19"},{"kind":"number","nativeSrc":"39153:4:19","nodeType":"YulLiteral","src":"39153:4:19","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"39132:6:19","nodeType":"YulIdentifier","src":"39132:6:19"},"nativeSrc":"39132:26:19","nodeType":"YulFunctionCall","src":"39132:26:19"},"nativeSrc":"39132:26:19","nodeType":"YulExpressionStatement","src":"39132:26:19"},{"nativeSrc":"39171:20:19","nodeType":"YulVariableDeclaration","src":"39171:20:19","value":{"arguments":[{"name":"data","nativeSrc":"39186:4:19","nodeType":"YulIdentifier","src":"39186:4:19"}],"functionName":{"name":"mload","nativeSrc":"39180:5:19","nodeType":"YulIdentifier","src":"39180:5:19"},"nativeSrc":"39180:11:19","nodeType":"YulFunctionCall","src":"39180:11:19"},"variables":[{"name":"n","nativeSrc":"39175:1:19","nodeType":"YulTypedName","src":"39175:1:19","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39215:1:19","nodeType":"YulIdentifier","src":"39215:1:19"},{"kind":"number","nativeSrc":"39218:4:19","nodeType":"YulLiteral","src":"39218:4:19","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"39211:3:19","nodeType":"YulIdentifier","src":"39211:3:19"},"nativeSrc":"39211:12:19","nodeType":"YulFunctionCall","src":"39211:12:19"},{"name":"n","nativeSrc":"39225:1:19","nodeType":"YulIdentifier","src":"39225:1:19"}],"functionName":{"name":"mstore","nativeSrc":"39204:6:19","nodeType":"YulIdentifier","src":"39204:6:19"},"nativeSrc":"39204:23:19","nodeType":"YulFunctionCall","src":"39204:23:19"},"nativeSrc":"39204:23:19","nodeType":"YulExpressionStatement","src":"39204:23:19"},{"body":{"nativeSrc":"39245:66:19","nodeType":"YulBlock","src":"39245:66:19","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"39262:3:19","nodeType":"YulIdentifier","src":"39262:3:19"},"nativeSrc":"39262:5:19","nodeType":"YulFunctionCall","src":"39262:5:19"},{"kind":"number","nativeSrc":"39269:1:19","nodeType":"YulLiteral","src":"39269:1:19","type":"","value":"4"},{"arguments":[{"name":"data","nativeSrc":"39276:4:19","nodeType":"YulIdentifier","src":"39276:4:19"},{"kind":"number","nativeSrc":"39282:4:19","nodeType":"YulLiteral","src":"39282:4:19","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39272:3:19","nodeType":"YulIdentifier","src":"39272:3:19"},"nativeSrc":"39272:15:19","nodeType":"YulFunctionCall","src":"39272:15:19"},{"name":"n","nativeSrc":"39289:1:19","nodeType":"YulIdentifier","src":"39289:1:19"},{"arguments":[{"name":"m","nativeSrc":"39296:1:19","nodeType":"YulIdentifier","src":"39296:1:19"},{"kind":"number","nativeSrc":"39299:4:19","nodeType":"YulLiteral","src":"39299:4:19","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"39292:3:19","nodeType":"YulIdentifier","src":"39292:3:19"},"nativeSrc":"39292:12:19","nodeType":"YulFunctionCall","src":"39292:12:19"},{"name":"n","nativeSrc":"39306:1:19","nodeType":"YulIdentifier","src":"39306:1:19"}],"functionName":{"name":"staticcall","nativeSrc":"39251:10:19","nodeType":"YulIdentifier","src":"39251:10:19"},"nativeSrc":"39251:57:19","nodeType":"YulFunctionCall","src":"39251:57:19"}],"functionName":{"name":"pop","nativeSrc":"39247:3:19","nodeType":"YulIdentifier","src":"39247:3:19"},"nativeSrc":"39247:62:19","nodeType":"YulFunctionCall","src":"39247:62:19"},"nativeSrc":"39247:62:19","nodeType":"YulExpressionStatement","src":"39247:62:19"}]},"condition":{"name":"n","nativeSrc":"39243:1:19","nodeType":"YulIdentifier","src":"39243:1:19"},"nativeSrc":"39240:71:19","nodeType":"YulIf","src":"39240:71:19"},{"body":{"nativeSrc":"39434:246:19","nodeType":"YulBlock","src":"39434:246:19","statements":[{"body":{"nativeSrc":"39472:194:19","nodeType":"YulBlock","src":"39472:194:19","statements":[{"expression":{"arguments":[{"name":"m","nativeSrc":"39574:1:19","nodeType":"YulIdentifier","src":"39574:1:19"},{"kind":"number","nativeSrc":"39577:4:19","nodeType":"YulLiteral","src":"39577:4:19","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39583:14:19","nodeType":"YulIdentifier","src":"39583:14:19"},"nativeSrc":"39583:16:19","nodeType":"YulFunctionCall","src":"39583:16:19"}],"functionName":{"name":"returndatacopy","nativeSrc":"39559:14:19","nodeType":"YulIdentifier","src":"39559:14:19"},"nativeSrc":"39559:41:19","nodeType":"YulFunctionCall","src":"39559:41:19"},"nativeSrc":"39559:41:19","nodeType":"YulExpressionStatement","src":"39559:41:19"},{"expression":{"arguments":[{"name":"m","nativeSrc":"39628:1:19","nodeType":"YulIdentifier","src":"39628:1:19"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39631:14:19","nodeType":"YulIdentifier","src":"39631:14:19"},"nativeSrc":"39631:16:19","nodeType":"YulFunctionCall","src":"39631:16:19"}],"functionName":{"name":"revert","nativeSrc":"39621:6:19","nodeType":"YulIdentifier","src":"39621:6:19"},"nativeSrc":"39621:27:19","nodeType":"YulFunctionCall","src":"39621:27:19"},"nativeSrc":"39621:27:19","nodeType":"YulExpressionStatement","src":"39621:27:19"}]},"condition":{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39455:14:19","nodeType":"YulIdentifier","src":"39455:14:19"},"nativeSrc":"39455:16:19","nodeType":"YulFunctionCall","src":"39455:16:19"},"nativeSrc":"39452:214:19","nodeType":"YulIf","src":"39452:214:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"39382:3:19","nodeType":"YulIdentifier","src":"39382:3:19"},"nativeSrc":"39382:5:19","nodeType":"YulFunctionCall","src":"39382:5:19"},{"name":"to","nativeSrc":"39389:2:19","nodeType":"YulIdentifier","src":"39389:2:19"},{"kind":"number","nativeSrc":"39393:1:19","nodeType":"YulLiteral","src":"39393:1:19","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"39400:1:19","nodeType":"YulIdentifier","src":"39400:1:19"},{"kind":"number","nativeSrc":"39403:4:19","nodeType":"YulLiteral","src":"39403:4:19","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"39396:3:19","nodeType":"YulIdentifier","src":"39396:3:19"},"nativeSrc":"39396:12:19","nodeType":"YulFunctionCall","src":"39396:12:19"},{"arguments":[{"name":"n","nativeSrc":"39414:1:19","nodeType":"YulIdentifier","src":"39414:1:19"},{"kind":"number","nativeSrc":"39417:4:19","nodeType":"YulLiteral","src":"39417:4:19","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"39410:3:19","nodeType":"YulIdentifier","src":"39410:3:19"},"nativeSrc":"39410:12:19","nodeType":"YulFunctionCall","src":"39410:12:19"},{"name":"m","nativeSrc":"39424:1:19","nodeType":"YulIdentifier","src":"39424:1:19"},{"kind":"number","nativeSrc":"39427:4:19","nodeType":"YulLiteral","src":"39427:4:19","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"39377:4:19","nodeType":"YulIdentifier","src":"39377:4:19"},"nativeSrc":"39377:55:19","nodeType":"YulFunctionCall","src":"39377:55:19"}],"functionName":{"name":"iszero","nativeSrc":"39370:6:19","nodeType":"YulIdentifier","src":"39370:6:19"},"nativeSrc":"39370:63:19","nodeType":"YulFunctionCall","src":"39370:63:19"},"nativeSrc":"39367:313:19","nodeType":"YulIf","src":"39367:313:19"},{"body":{"nativeSrc":"39804:138:19","nodeType":"YulBlock","src":"39804:138:19","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39829:4:19","nodeType":"YulLiteral","src":"39829:4:19","type":"","value":"0x00"},{"kind":"number","nativeSrc":"39835:10:19","nodeType":"YulLiteral","src":"39835:10:19","type":"","value":"0xd1a57ed6"}],"functionName":{"name":"mstore","nativeSrc":"39822:6:19","nodeType":"YulIdentifier","src":"39822:6:19"},"nativeSrc":"39822:24:19","nodeType":"YulFunctionCall","src":"39822:24:19"},"nativeSrc":"39822:24:19","nodeType":"YulExpressionStatement","src":"39822:24:19"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39917:4:19","nodeType":"YulLiteral","src":"39917:4:19","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"39923:4:19","nodeType":"YulLiteral","src":"39923:4:19","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"39910:6:19","nodeType":"YulIdentifier","src":"39910:6:19"},"nativeSrc":"39910:18:19","nodeType":"YulFunctionCall","src":"39910:18:19"},"nativeSrc":"39910:18:19","nodeType":"YulExpressionStatement","src":"39910:18:19"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"m","nativeSrc":"39763:1:19","nodeType":"YulIdentifier","src":"39763:1:19"}],"functionName":{"name":"mload","nativeSrc":"39757:5:19","nodeType":"YulIdentifier","src":"39757:5:19"},"nativeSrc":"39757:8:19","nodeType":"YulFunctionCall","src":"39757:8:19"},{"arguments":[{"kind":"number","nativeSrc":"39771:3:19","nodeType":"YulLiteral","src":"39771:3:19","type":"","value":"224"},{"name":"onERC721ReceivedSelector","nativeSrc":"39776:24:19","nodeType":"YulIdentifier","src":"39776:24:19"}],"functionName":{"name":"shl","nativeSrc":"39767:3:19","nodeType":"YulIdentifier","src":"39767:3:19"},"nativeSrc":"39767:34:19","nodeType":"YulFunctionCall","src":"39767:34:19"}],"functionName":{"name":"eq","nativeSrc":"39754:2:19","nodeType":"YulIdentifier","src":"39754:2:19"},"nativeSrc":"39754:48:19","nodeType":"YulFunctionCall","src":"39754:48:19"}],"functionName":{"name":"iszero","nativeSrc":"39747:6:19","nodeType":"YulIdentifier","src":"39747:6:19"},"nativeSrc":"39747:56:19","nodeType":"YulFunctionCall","src":"39747:56:19"},"nativeSrc":"39744:198:19","nodeType":"YulIf","src":"39744:198:19"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9091,"isOffset":false,"isSlot":false,"src":"39186:4:19","valueSize":1},{"declaration":9091,"isOffset":false,"isSlot":false,"src":"39276:4:19","valueSize":1},{"declaration":9085,"isOffset":false,"isSlot":false,"src":"39075:4:19","valueSize":1},{"declaration":9089,"isOffset":false,"isSlot":false,"src":"39116:2:19","valueSize":1},{"declaration":9087,"isOffset":false,"isSlot":false,"src":"39389:2:19","valueSize":1}],"id":9094,"nodeType":"InlineAssembly","src":"38750:1202:19"}]},"documentation":{"id":9083,"nodeType":"StructuredDocumentation","src":"38435:148:19","text":"@dev Perform a call to invoke {IERC721Receiver-onERC721Received} on `to`.\n Reverts if the target does not support the function correctly."},"id":9096,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"38597:22:19","nodeType":"FunctionDefinition","parameters":{"id":9092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9085,"mutability":"mutable","name":"from","nameLocation":"38628:4:19","nodeType":"VariableDeclaration","scope":9096,"src":"38620:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9084,"name":"address","nodeType":"ElementaryTypeName","src":"38620:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9087,"mutability":"mutable","name":"to","nameLocation":"38642:2:19","nodeType":"VariableDeclaration","scope":9096,"src":"38634:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9086,"name":"address","nodeType":"ElementaryTypeName","src":"38634:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9089,"mutability":"mutable","name":"id","nameLocation":"38654:2:19","nodeType":"VariableDeclaration","scope":9096,"src":"38646:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9088,"name":"uint256","nodeType":"ElementaryTypeName","src":"38646:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"data","nameLocation":"38671:4:19","nodeType":"VariableDeclaration","scope":9096,"src":"38658:17:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9090,"name":"bytes","nodeType":"ElementaryTypeName","src":"38658:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"38619:57:19"},"returnParameters":{"id":9093,"nodeType":"ParameterList","parameters":[],"src":"38697:0:19"},"scope":9097,"src":"38588:1370:19","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":9098,"src":"1441:38519:19","usedErrors":[8365,8368,8371,8374,8377,8380,8383,8386],"usedEvents":[8395,8404,8413]}],"src":"32:39929:19"},"id":19},"@solady/utils/Initializable.sol":{"ast":{"absolutePath":"@solady/utils/Initializable.sol","exportedSymbols":{"Initializable":[9211]},"id":9212,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9099,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:20"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":9100,"nodeType":"StructuredDocumentation","src":"57:307:20","text":"@notice Initializable mixin for the upgradeable contracts.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)"},"fullyImplemented":true,"id":9211,"linearizedBaseContracts":[9211],"name":"Initializable","nameLocation":"382:13:20","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":9101,"nodeType":"StructuredDocumentation","src":"685:45:20","text":"@dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":9103,"name":"InvalidInitialization","nameLocation":"741:21:20","nodeType":"ErrorDefinition","parameters":{"id":9102,"nodeType":"ParameterList","parameters":[],"src":"762:2:20"},"src":"735:30:20"},{"documentation":{"id":9104,"nodeType":"StructuredDocumentation","src":"771:42:20","text":"@dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":9106,"name":"NotInitializing","nameLocation":"824:15:20","nodeType":"ErrorDefinition","parameters":{"id":9105,"nodeType":"ParameterList","parameters":[],"src":"839:2:20"},"src":"818:24:20"},{"anonymous":false,"documentation":{"id":9107,"nodeType":"StructuredDocumentation","src":"1131:58:20","text":"@dev Triggered when the contract has been initialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":9111,"name":"Initialized","nameLocation":"1200:11:20","nodeType":"EventDefinition","parameters":{"id":9110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9109,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"1219:7:20","nodeType":"VariableDeclaration","scope":9111,"src":"1212:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9108,"name":"uint64","nodeType":"ElementaryTypeName","src":"1212:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1211:16:20"},"src":"1194:34:20"},{"constant":true,"documentation":{"id":9112,"nodeType":"StructuredDocumentation","src":"1234:51:20","text":"@dev `keccak256(bytes(\"Initialized(uint64)\"))`."},"id":9115,"mutability":"constant","name":"_INTIALIZED_EVENT_SIGNATURE","nameLocation":"1315:27:20","nodeType":"VariableDeclaration","scope":9211,"src":"1290:129:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1290:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863376635303562326633373161653231373565653439313366343439396531663236333361376235393336333231656564316364616562363131353138316432","id":9114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1353:66:20","typeDescriptions":{"typeIdentifier":"t_rational_90443173732180608349131670025767709961475889821310342433215831881459516408274_by_1","typeString":"int_const 9044...(69 digits omitted)...8274"},"value":"0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"},"visibility":"private"},{"constant":true,"documentation":{"id":9116,"nodeType":"StructuredDocumentation","src":"1709:232:20","text":"@dev The default initializable slot is given by:\n `bytes32(~uint256(uint32(bytes4(keccak256(\"_INITIALIZABLE_SLOT\")))))`.\n Bits Layout:\n - [0] `initializing`\n - [1..64] `initializedVersion`"},"id":9119,"mutability":"constant","name":"_INITIALIZABLE_SLOT","nameLocation":"1971:19:20","nodeType":"VariableDeclaration","scope":9211,"src":"1946:121:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1946:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666266363031313332","id":9118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2001:66:20","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007912045416754_by_1","typeString":"int_const 1157...(70 digits omitted)...6754"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf601132"},"visibility":"private"},{"body":{"id":9127,"nodeType":"Block","src":"2494:43:20","statements":[{"expression":{"id":9125,"name":"_INITIALIZABLE_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"2511:19:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9124,"id":9126,"nodeType":"Return","src":"2504:26:20"}]},"documentation":{"id":9120,"nodeType":"StructuredDocumentation","src":"2357:62:20","text":"@dev Override to return a custom storage slot if required."},"id":9128,"implemented":true,"kind":"function","modifiers":[],"name":"_initializableSlot","nameLocation":"2433:18:20","nodeType":"FunctionDefinition","parameters":{"id":9121,"nodeType":"ParameterList","parameters":[],"src":"2451:2:20"},"returnParameters":{"id":9124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9128,"src":"2485:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2485:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2484:9:20"},"scope":9211,"src":"2424:113:20","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":9139,"nodeType":"Block","src":"3112:1082:20","statements":[{"assignments":[9132],"declarations":[{"constant":false,"id":9132,"mutability":"mutable","name":"s","nameLocation":"3130:1:20","nodeType":"VariableDeclaration","scope":9139,"src":"3122:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3122:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9135,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9133,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"3134:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3134:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3122:32:20"},{"AST":{"nativeSrc":"3216:613:20","nodeType":"YulBlock","src":"3216:613:20","statements":[{"nativeSrc":"3230:17:20","nodeType":"YulVariableDeclaration","src":"3230:17:20","value":{"arguments":[{"name":"s","nativeSrc":"3245:1:20","nodeType":"YulIdentifier","src":"3245:1:20"}],"functionName":{"name":"sload","nativeSrc":"3239:5:20","nodeType":"YulIdentifier","src":"3239:5:20"},"nativeSrc":"3239:8:20","nodeType":"YulFunctionCall","src":"3239:8:20"},"variables":[{"name":"i","nativeSrc":"3234:1:20","nodeType":"YulTypedName","src":"3234:1:20","type":""}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"3334:1:20","nodeType":"YulIdentifier","src":"3334:1:20"},{"kind":"number","nativeSrc":"3337:1:20","nodeType":"YulLiteral","src":"3337:1:20","type":"","value":"3"}],"functionName":{"name":"sstore","nativeSrc":"3327:6:20","nodeType":"YulIdentifier","src":"3327:6:20"},"nativeSrc":"3327:12:20","nodeType":"YulFunctionCall","src":"3327:12:20"},"nativeSrc":"3327:12:20","nodeType":"YulExpressionStatement","src":"3327:12:20"},{"body":{"nativeSrc":"3426:393:20","nodeType":"YulBlock","src":"3426:393:20","statements":[{"body":{"nativeSrc":"3586:133:20","nodeType":"YulBlock","src":"3586:133:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3615:4:20","nodeType":"YulLiteral","src":"3615:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3621:10:20","nodeType":"YulLiteral","src":"3621:10:20","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"3608:6:20","nodeType":"YulIdentifier","src":"3608:6:20"},"nativeSrc":"3608:24:20","nodeType":"YulFunctionCall","src":"3608:24:20"},"nativeSrc":"3608:24:20","nodeType":"YulExpressionStatement","src":"3608:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3690:4:20","nodeType":"YulLiteral","src":"3690:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"3696:4:20","nodeType":"YulLiteral","src":"3696:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"3683:6:20","nodeType":"YulIdentifier","src":"3683:6:20"},"nativeSrc":"3683:18:20","nodeType":"YulFunctionCall","src":"3683:18:20"},"nativeSrc":"3683:18:20","nodeType":"YulExpressionStatement","src":"3683:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"address","nativeSrc":"3555:7:20","nodeType":"YulIdentifier","src":"3555:7:20"},"nativeSrc":"3555:9:20","nodeType":"YulFunctionCall","src":"3555:9:20"}],"functionName":{"name":"extcodesize","nativeSrc":"3543:11:20","nodeType":"YulIdentifier","src":"3543:11:20"},"nativeSrc":"3543:22:20","nodeType":"YulFunctionCall","src":"3543:22:20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3574:1:20","nodeType":"YulLiteral","src":"3574:1:20","type":"","value":"1"},{"name":"i","nativeSrc":"3577:1:20","nodeType":"YulIdentifier","src":"3577:1:20"}],"functionName":{"name":"shr","nativeSrc":"3570:3:20","nodeType":"YulIdentifier","src":"3570:3:20"},"nativeSrc":"3570:9:20","nodeType":"YulFunctionCall","src":"3570:9:20"},{"kind":"number","nativeSrc":"3581:1:20","nodeType":"YulLiteral","src":"3581:1:20","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"3567:2:20","nodeType":"YulIdentifier","src":"3567:2:20"},"nativeSrc":"3567:16:20","nodeType":"YulFunctionCall","src":"3567:16:20"}],"functionName":{"name":"lt","nativeSrc":"3540:2:20","nodeType":"YulIdentifier","src":"3540:2:20"},"nativeSrc":"3540:44:20","nodeType":"YulFunctionCall","src":"3540:44:20"}],"functionName":{"name":"iszero","nativeSrc":"3533:6:20","nodeType":"YulIdentifier","src":"3533:6:20"},"nativeSrc":"3533:52:20","nodeType":"YulFunctionCall","src":"3533:52:20"},"nativeSrc":"3530:189:20","nodeType":"YulIf","src":"3530:189:20"},{"nativeSrc":"3736:24:20","nodeType":"YulAssignment","src":"3736:24:20","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3749:3:20","nodeType":"YulLiteral","src":"3749:3:20","type":"","value":"255"},{"name":"i","nativeSrc":"3754:1:20","nodeType":"YulIdentifier","src":"3754:1:20"}],"functionName":{"name":"shl","nativeSrc":"3745:3:20","nodeType":"YulIdentifier","src":"3745:3:20"},"nativeSrc":"3745:11:20","nodeType":"YulFunctionCall","src":"3745:11:20"},{"name":"s","nativeSrc":"3758:1:20","nodeType":"YulIdentifier","src":"3758:1:20"}],"functionName":{"name":"shl","nativeSrc":"3741:3:20","nodeType":"YulIdentifier","src":"3741:3:20"},"nativeSrc":"3741:19:20","nodeType":"YulFunctionCall","src":"3741:19:20"},"variableNames":[{"name":"s","nativeSrc":"3736:1:20","nodeType":"YulIdentifier","src":"3736:1:20"}]}]},"condition":{"name":"i","nativeSrc":"3424:1:20","nodeType":"YulIdentifier","src":"3424:1:20"},"nativeSrc":"3421:398:20","nodeType":"YulIf","src":"3421:398:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9132,"isOffset":false,"isSlot":false,"src":"3245:1:20","valueSize":1},{"declaration":9132,"isOffset":false,"isSlot":false,"src":"3334:1:20","valueSize":1},{"declaration":9132,"isOffset":false,"isSlot":false,"src":"3736:1:20","valueSize":1},{"declaration":9132,"isOffset":false,"isSlot":false,"src":"3758:1:20","valueSize":1}],"id":9136,"nodeType":"InlineAssembly","src":"3207:622:20"},{"id":9137,"nodeType":"PlaceholderStatement","src":"3838:1:20"},{"AST":{"nativeSrc":"3901:287:20","nodeType":"YulBlock","src":"3901:287:20","statements":[{"body":{"nativeSrc":"3920:258:20","nodeType":"YulBlock","src":"3920:258:20","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"4016:1:20","nodeType":"YulIdentifier","src":"4016:1:20"},{"kind":"number","nativeSrc":"4019:1:20","nodeType":"YulLiteral","src":"4019:1:20","type":"","value":"2"}],"functionName":{"name":"sstore","nativeSrc":"4009:6:20","nodeType":"YulIdentifier","src":"4009:6:20"},"nativeSrc":"4009:12:20","nodeType":"YulFunctionCall","src":"4009:12:20"},"nativeSrc":"4009:12:20","nodeType":"YulExpressionStatement","src":"4009:12:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4094:4:20","nodeType":"YulLiteral","src":"4094:4:20","type":"","value":"0x20"},{"kind":"number","nativeSrc":"4100:1:20","nodeType":"YulLiteral","src":"4100:1:20","type":"","value":"1"}],"functionName":{"name":"mstore","nativeSrc":"4087:6:20","nodeType":"YulIdentifier","src":"4087:6:20"},"nativeSrc":"4087:15:20","nodeType":"YulFunctionCall","src":"4087:15:20"},"nativeSrc":"4087:15:20","nodeType":"YulExpressionStatement","src":"4087:15:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4124:4:20","nodeType":"YulLiteral","src":"4124:4:20","type":"","value":"0x20"},{"kind":"number","nativeSrc":"4130:4:20","nodeType":"YulLiteral","src":"4130:4:20","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"4136:27:20","nodeType":"YulIdentifier","src":"4136:27:20"}],"functionName":{"name":"log1","nativeSrc":"4119:4:20","nodeType":"YulIdentifier","src":"4119:4:20"},"nativeSrc":"4119:45:20","nodeType":"YulFunctionCall","src":"4119:45:20"},"nativeSrc":"4119:45:20","nodeType":"YulExpressionStatement","src":"4119:45:20"}]},"condition":{"name":"s","nativeSrc":"3918:1:20","nodeType":"YulIdentifier","src":"3918:1:20"},"nativeSrc":"3915:263:20","nodeType":"YulIf","src":"3915:263:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9115,"isOffset":false,"isSlot":false,"src":"4136:27:20","valueSize":1},{"declaration":9132,"isOffset":false,"isSlot":false,"src":"3918:1:20","valueSize":1},{"declaration":9132,"isOffset":false,"isSlot":false,"src":"4016:1:20","valueSize":1}],"id":9138,"nodeType":"InlineAssembly","src":"3892:296:20"}]},"documentation":{"id":9129,"nodeType":"StructuredDocumentation","src":"2543:533:20","text":"@dev Guards an initializer function so that it can be invoked at most once.\n You can guard a function with `onlyInitializing` such that it can be called\n through a function guarded with `initializer`.\n This is similar to `reinitializer(1)`, except that in the context of a constructor,\n an `initializer` guarded function can be invoked multiple times.\n This can be useful during testing and is not expected to be used in production.\n Emits an {Initialized} event."},"id":9140,"name":"initializer","nameLocation":"3090:11:20","nodeType":"ModifierDefinition","parameters":{"id":9130,"nodeType":"ParameterList","parameters":[],"src":"3101:2:20"},"src":"3081:1113:20","virtual":true,"visibility":"internal"},{"body":{"id":9153,"nodeType":"Block","src":"4527:938:20","statements":[{"assignments":[9146],"declarations":[{"constant":false,"id":9146,"mutability":"mutable","name":"s","nameLocation":"4545:1:20","nodeType":"VariableDeclaration","scope":9153,"src":"4537:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4537:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9149,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9147,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"4549:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4549:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4537:32:20"},{"AST":{"nativeSrc":"4631:494:20","nodeType":"YulBlock","src":"4631:494:20","statements":[{"nativeSrc":"4645:43:20","nodeType":"YulAssignment","src":"4645:43:20","value":{"arguments":[{"name":"version","nativeSrc":"4660:7:20","nodeType":"YulIdentifier","src":"4660:7:20"},{"kind":"number","nativeSrc":"4669:18:20","nodeType":"YulLiteral","src":"4669:18:20","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4656:3:20","nodeType":"YulIdentifier","src":"4656:3:20"},"nativeSrc":"4656:32:20","nodeType":"YulFunctionCall","src":"4656:32:20"},"variableNames":[{"name":"version","nativeSrc":"4645:7:20","nodeType":"YulIdentifier","src":"4645:7:20"}]},{"nativeSrc":"4722:17:20","nodeType":"YulVariableDeclaration","src":"4722:17:20","value":{"arguments":[{"name":"s","nativeSrc":"4737:1:20","nodeType":"YulIdentifier","src":"4737:1:20"}],"functionName":{"name":"sload","nativeSrc":"4731:5:20","nodeType":"YulIdentifier","src":"4731:5:20"},"nativeSrc":"4731:8:20","nodeType":"YulFunctionCall","src":"4731:8:20"},"variables":[{"name":"i","nativeSrc":"4726:1:20","nodeType":"YulTypedName","src":"4726:1:20","type":""}]},{"body":{"nativeSrc":"4873:121:20","nodeType":"YulBlock","src":"4873:121:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4898:4:20","nodeType":"YulLiteral","src":"4898:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4904:10:20","nodeType":"YulLiteral","src":"4904:10:20","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"4891:6:20","nodeType":"YulIdentifier","src":"4891:6:20"},"nativeSrc":"4891:24:20","nodeType":"YulFunctionCall","src":"4891:24:20"},"nativeSrc":"4891:24:20","nodeType":"YulExpressionStatement","src":"4891:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4969:4:20","nodeType":"YulLiteral","src":"4969:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4975:4:20","nodeType":"YulLiteral","src":"4975:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4962:6:20","nodeType":"YulIdentifier","src":"4962:6:20"},"nativeSrc":"4962:18:20","nodeType":"YulFunctionCall","src":"4962:18:20"},"nativeSrc":"4962:18:20","nodeType":"YulExpressionStatement","src":"4962:18:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"i","nativeSrc":"4841:1:20","nodeType":"YulIdentifier","src":"4841:1:20"},{"kind":"number","nativeSrc":"4844:1:20","nodeType":"YulLiteral","src":"4844:1:20","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"4837:3:20","nodeType":"YulIdentifier","src":"4837:3:20"},"nativeSrc":"4837:9:20","nodeType":"YulFunctionCall","src":"4837:9:20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4855:1:20","nodeType":"YulLiteral","src":"4855:1:20","type":"","value":"1"},{"name":"i","nativeSrc":"4858:1:20","nodeType":"YulIdentifier","src":"4858:1:20"}],"functionName":{"name":"shr","nativeSrc":"4851:3:20","nodeType":"YulIdentifier","src":"4851:3:20"},"nativeSrc":"4851:9:20","nodeType":"YulFunctionCall","src":"4851:9:20"},{"name":"version","nativeSrc":"4862:7:20","nodeType":"YulIdentifier","src":"4862:7:20"}],"functionName":{"name":"lt","nativeSrc":"4848:2:20","nodeType":"YulIdentifier","src":"4848:2:20"},"nativeSrc":"4848:22:20","nodeType":"YulFunctionCall","src":"4848:22:20"}],"functionName":{"name":"lt","nativeSrc":"4834:2:20","nodeType":"YulIdentifier","src":"4834:2:20"},"nativeSrc":"4834:37:20","nodeType":"YulFunctionCall","src":"4834:37:20"}],"functionName":{"name":"iszero","nativeSrc":"4827:6:20","nodeType":"YulIdentifier","src":"4827:6:20"},"nativeSrc":"4827:45:20","nodeType":"YulFunctionCall","src":"4827:45:20"},"nativeSrc":"4824:170:20","nodeType":"YulIf","src":"4824:170:20"},{"expression":{"arguments":[{"name":"s","nativeSrc":"5089:1:20","nodeType":"YulIdentifier","src":"5089:1:20"},{"arguments":[{"kind":"number","nativeSrc":"5095:1:20","nodeType":"YulLiteral","src":"5095:1:20","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"5102:1:20","nodeType":"YulLiteral","src":"5102:1:20","type":"","value":"1"},{"name":"version","nativeSrc":"5105:7:20","nodeType":"YulIdentifier","src":"5105:7:20"}],"functionName":{"name":"shl","nativeSrc":"5098:3:20","nodeType":"YulIdentifier","src":"5098:3:20"},"nativeSrc":"5098:15:20","nodeType":"YulFunctionCall","src":"5098:15:20"}],"functionName":{"name":"or","nativeSrc":"5092:2:20","nodeType":"YulIdentifier","src":"5092:2:20"},"nativeSrc":"5092:22:20","nodeType":"YulFunctionCall","src":"5092:22:20"}],"functionName":{"name":"sstore","nativeSrc":"5082:6:20","nodeType":"YulIdentifier","src":"5082:6:20"},"nativeSrc":"5082:33:20","nodeType":"YulFunctionCall","src":"5082:33:20"},"nativeSrc":"5082:33:20","nodeType":"YulExpressionStatement","src":"5082:33:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9146,"isOffset":false,"isSlot":false,"src":"4737:1:20","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"5089:1:20","valueSize":1},{"declaration":9143,"isOffset":false,"isSlot":false,"src":"4645:7:20","valueSize":1},{"declaration":9143,"isOffset":false,"isSlot":false,"src":"4660:7:20","valueSize":1},{"declaration":9143,"isOffset":false,"isSlot":false,"src":"4862:7:20","valueSize":1},{"declaration":9143,"isOffset":false,"isSlot":false,"src":"5105:7:20","valueSize":1}],"id":9150,"nodeType":"InlineAssembly","src":"4622:503:20"},{"id":9151,"nodeType":"PlaceholderStatement","src":"5134:1:20"},{"AST":{"nativeSrc":"5197:262:20","nodeType":"YulBlock","src":"5197:262:20","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"5293:1:20","nodeType":"YulIdentifier","src":"5293:1:20"},{"arguments":[{"kind":"number","nativeSrc":"5300:1:20","nodeType":"YulLiteral","src":"5300:1:20","type":"","value":"1"},{"name":"version","nativeSrc":"5303:7:20","nodeType":"YulIdentifier","src":"5303:7:20"}],"functionName":{"name":"shl","nativeSrc":"5296:3:20","nodeType":"YulIdentifier","src":"5296:3:20"},"nativeSrc":"5296:15:20","nodeType":"YulFunctionCall","src":"5296:15:20"}],"functionName":{"name":"sstore","nativeSrc":"5286:6:20","nodeType":"YulIdentifier","src":"5286:6:20"},"nativeSrc":"5286:26:20","nodeType":"YulFunctionCall","src":"5286:26:20"},"nativeSrc":"5286:26:20","nodeType":"YulExpressionStatement","src":"5286:26:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5377:4:20","nodeType":"YulLiteral","src":"5377:4:20","type":"","value":"0x20"},{"name":"version","nativeSrc":"5383:7:20","nodeType":"YulIdentifier","src":"5383:7:20"}],"functionName":{"name":"mstore","nativeSrc":"5370:6:20","nodeType":"YulIdentifier","src":"5370:6:20"},"nativeSrc":"5370:21:20","nodeType":"YulFunctionCall","src":"5370:21:20"},"nativeSrc":"5370:21:20","nodeType":"YulExpressionStatement","src":"5370:21:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5409:4:20","nodeType":"YulLiteral","src":"5409:4:20","type":"","value":"0x20"},{"kind":"number","nativeSrc":"5415:4:20","nodeType":"YulLiteral","src":"5415:4:20","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"5421:27:20","nodeType":"YulIdentifier","src":"5421:27:20"}],"functionName":{"name":"log1","nativeSrc":"5404:4:20","nodeType":"YulIdentifier","src":"5404:4:20"},"nativeSrc":"5404:45:20","nodeType":"YulFunctionCall","src":"5404:45:20"},"nativeSrc":"5404:45:20","nodeType":"YulExpressionStatement","src":"5404:45:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9115,"isOffset":false,"isSlot":false,"src":"5421:27:20","valueSize":1},{"declaration":9146,"isOffset":false,"isSlot":false,"src":"5293:1:20","valueSize":1},{"declaration":9143,"isOffset":false,"isSlot":false,"src":"5303:7:20","valueSize":1},{"declaration":9143,"isOffset":false,"isSlot":false,"src":"5383:7:20","valueSize":1}],"id":9152,"nodeType":"InlineAssembly","src":"5188:271:20"}]},"documentation":{"id":9141,"nodeType":"StructuredDocumentation","src":"4200:275:20","text":"@dev Guards an reinitialzer function so that it can be invoked at most once.\n You can guard a function with `onlyInitializing` such that it can be called\n through a function guarded with `reinitializer`.\n Emits an {Initialized} event."},"id":9154,"name":"reinitializer","nameLocation":"4489:13:20","nodeType":"ModifierDefinition","parameters":{"id":9144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9143,"mutability":"mutable","name":"version","nameLocation":"4510:7:20","nodeType":"VariableDeclaration","scope":9154,"src":"4503:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9142,"name":"uint64","nodeType":"ElementaryTypeName","src":"4503:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4502:16:20"},"src":"4480:985:20","virtual":true,"visibility":"internal"},{"body":{"id":9161,"nodeType":"Block","src":"5652:48:20","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":9157,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"5662:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":9158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5662:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9159,"nodeType":"ExpressionStatement","src":"5662:20:20"},{"id":9160,"nodeType":"PlaceholderStatement","src":"5692:1:20"}]},"documentation":{"id":9155,"nodeType":"StructuredDocumentation","src":"5471:140:20","text":"@dev Guards a function such that it can only be called in the scope\n of a function guarded with `initializer` or `reinitializer`."},"id":9162,"name":"onlyInitializing","nameLocation":"5625:16:20","nodeType":"ModifierDefinition","parameters":{"id":9156,"nodeType":"ParameterList","parameters":[],"src":"5641:2:20"},"src":"5616:84:20","virtual":true,"visibility":"internal"},{"body":{"id":9172,"nodeType":"Block","src":"5816:277:20","statements":[{"assignments":[9167],"declarations":[{"constant":false,"id":9167,"mutability":"mutable","name":"s","nameLocation":"5834:1:20","nodeType":"VariableDeclaration","scope":9172,"src":"5826:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5826:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9170,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9168,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"5838:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5838:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5826:32:20"},{"AST":{"nativeSrc":"5920:167:20","nodeType":"YulBlock","src":"5920:167:20","statements":[{"body":{"nativeSrc":"5962:115:20","nodeType":"YulBlock","src":"5962:115:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5987:4:20","nodeType":"YulLiteral","src":"5987:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5993:10:20","nodeType":"YulLiteral","src":"5993:10:20","type":"","value":"0xd7e6bcf8"}],"functionName":{"name":"mstore","nativeSrc":"5980:6:20","nodeType":"YulIdentifier","src":"5980:6:20"},"nativeSrc":"5980:24:20","nodeType":"YulFunctionCall","src":"5980:24:20"},"nativeSrc":"5980:24:20","nodeType":"YulExpressionStatement","src":"5980:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6052:4:20","nodeType":"YulLiteral","src":"6052:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6058:4:20","nodeType":"YulLiteral","src":"6058:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6045:6:20","nodeType":"YulIdentifier","src":"6045:6:20"},"nativeSrc":"6045:18:20","nodeType":"YulFunctionCall","src":"6045:18:20"},"nativeSrc":"6045:18:20","nodeType":"YulExpressionStatement","src":"6045:18:20"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5948:1:20","nodeType":"YulLiteral","src":"5948:1:20","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"5957:1:20","nodeType":"YulIdentifier","src":"5957:1:20"}],"functionName":{"name":"sload","nativeSrc":"5951:5:20","nodeType":"YulIdentifier","src":"5951:5:20"},"nativeSrc":"5951:8:20","nodeType":"YulFunctionCall","src":"5951:8:20"}],"functionName":{"name":"and","nativeSrc":"5944:3:20","nodeType":"YulIdentifier","src":"5944:3:20"},"nativeSrc":"5944:16:20","nodeType":"YulFunctionCall","src":"5944:16:20"}],"functionName":{"name":"iszero","nativeSrc":"5937:6:20","nodeType":"YulIdentifier","src":"5937:6:20"},"nativeSrc":"5937:24:20","nodeType":"YulFunctionCall","src":"5937:24:20"},"nativeSrc":"5934:143:20","nodeType":"YulIf","src":"5934:143:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9167,"isOffset":false,"isSlot":false,"src":"5957:1:20","valueSize":1}],"id":9171,"nodeType":"InlineAssembly","src":"5911:176:20"}]},"documentation":{"id":9163,"nodeType":"StructuredDocumentation","src":"5706:53:20","text":"@dev Reverts if the contract is not initializing."},"id":9173,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"5773:18:20","nodeType":"FunctionDefinition","parameters":{"id":9164,"nodeType":"ParameterList","parameters":[],"src":"5791:2:20"},"returnParameters":{"id":9165,"nodeType":"ParameterList","parameters":[],"src":"5816:0:20"},"scope":9211,"src":"5764:329:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9183,"nodeType":"Block","src":"6574:710:20","statements":[{"assignments":[9178],"declarations":[{"constant":false,"id":9178,"mutability":"mutable","name":"s","nameLocation":"6592:1:20","nodeType":"VariableDeclaration","scope":9183,"src":"6584:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6584:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9181,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9179,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"6596:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6596:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6584:32:20"},{"AST":{"nativeSrc":"6678:600:20","nodeType":"YulBlock","src":"6678:600:20","statements":[{"nativeSrc":"6692:17:20","nodeType":"YulVariableDeclaration","src":"6692:17:20","value":{"arguments":[{"name":"s","nativeSrc":"6707:1:20","nodeType":"YulIdentifier","src":"6707:1:20"}],"functionName":{"name":"sload","nativeSrc":"6701:5:20","nodeType":"YulIdentifier","src":"6701:5:20"},"nativeSrc":"6701:8:20","nodeType":"YulFunctionCall","src":"6701:8:20"},"variables":[{"name":"i","nativeSrc":"6696:1:20","nodeType":"YulTypedName","src":"6696:1:20","type":""}]},{"body":{"nativeSrc":"6735:121:20","nodeType":"YulBlock","src":"6735:121:20","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6760:4:20","nodeType":"YulLiteral","src":"6760:4:20","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6766:10:20","nodeType":"YulLiteral","src":"6766:10:20","type":"","value":"0xf92ee8a9"}],"functionName":{"name":"mstore","nativeSrc":"6753:6:20","nodeType":"YulIdentifier","src":"6753:6:20"},"nativeSrc":"6753:24:20","nodeType":"YulFunctionCall","src":"6753:24:20"},"nativeSrc":"6753:24:20","nodeType":"YulExpressionStatement","src":"6753:24:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6831:4:20","nodeType":"YulLiteral","src":"6831:4:20","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6837:4:20","nodeType":"YulLiteral","src":"6837:4:20","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6824:6:20","nodeType":"YulIdentifier","src":"6824:6:20"},"nativeSrc":"6824:18:20","nodeType":"YulFunctionCall","src":"6824:18:20"},"nativeSrc":"6824:18:20","nodeType":"YulExpressionStatement","src":"6824:18:20"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"6729:1:20","nodeType":"YulIdentifier","src":"6729:1:20"},{"kind":"number","nativeSrc":"6732:1:20","nodeType":"YulLiteral","src":"6732:1:20","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"6725:3:20","nodeType":"YulIdentifier","src":"6725:3:20"},"nativeSrc":"6725:9:20","nodeType":"YulFunctionCall","src":"6725:9:20"},"nativeSrc":"6722:134:20","nodeType":"YulIf","src":"6722:134:20"},{"nativeSrc":"6869:28:20","nodeType":"YulVariableDeclaration","src":"6869:28:20","value":{"arguments":[{"kind":"number","nativeSrc":"6890:3:20","nodeType":"YulLiteral","src":"6890:3:20","type":"","value":"192"},{"name":"s","nativeSrc":"6895:1:20","nodeType":"YulIdentifier","src":"6895:1:20"}],"functionName":{"name":"shr","nativeSrc":"6886:3:20","nodeType":"YulIdentifier","src":"6886:3:20"},"nativeSrc":"6886:11:20","nodeType":"YulFunctionCall","src":"6886:11:20"},"variables":[{"name":"uint64max","nativeSrc":"6873:9:20","nodeType":"YulTypedName","src":"6873:9:20","type":""}]},{"body":{"nativeSrc":"6976:292:20","nodeType":"YulBlock","src":"6976:292:20","statements":[{"expression":{"arguments":[{"name":"s","nativeSrc":"7082:1:20","nodeType":"YulIdentifier","src":"7082:1:20"},{"arguments":[{"kind":"number","nativeSrc":"7089:1:20","nodeType":"YulLiteral","src":"7089:1:20","type":"","value":"1"},{"name":"uint64max","nativeSrc":"7092:9:20","nodeType":"YulIdentifier","src":"7092:9:20"}],"functionName":{"name":"shl","nativeSrc":"7085:3:20","nodeType":"YulIdentifier","src":"7085:3:20"},"nativeSrc":"7085:17:20","nodeType":"YulFunctionCall","src":"7085:17:20"}],"functionName":{"name":"sstore","nativeSrc":"7075:6:20","nodeType":"YulIdentifier","src":"7075:6:20"},"nativeSrc":"7075:28:20","nodeType":"YulFunctionCall","src":"7075:28:20"},"nativeSrc":"7075:28:20","nodeType":"YulExpressionStatement","src":"7075:28:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7176:4:20","nodeType":"YulLiteral","src":"7176:4:20","type":"","value":"0x20"},{"name":"uint64max","nativeSrc":"7182:9:20","nodeType":"YulIdentifier","src":"7182:9:20"}],"functionName":{"name":"mstore","nativeSrc":"7169:6:20","nodeType":"YulIdentifier","src":"7169:6:20"},"nativeSrc":"7169:23:20","nodeType":"YulFunctionCall","src":"7169:23:20"},"nativeSrc":"7169:23:20","nodeType":"YulExpressionStatement","src":"7169:23:20"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7214:4:20","nodeType":"YulLiteral","src":"7214:4:20","type":"","value":"0x20"},{"kind":"number","nativeSrc":"7220:4:20","nodeType":"YulLiteral","src":"7220:4:20","type":"","value":"0x20"},{"name":"_INTIALIZED_EVENT_SIGNATURE","nativeSrc":"7226:27:20","nodeType":"YulIdentifier","src":"7226:27:20"}],"functionName":{"name":"log1","nativeSrc":"7209:4:20","nodeType":"YulIdentifier","src":"7209:4:20"},"nativeSrc":"7209:45:20","nodeType":"YulFunctionCall","src":"7209:45:20"},"nativeSrc":"7209:45:20","nodeType":"YulExpressionStatement","src":"7209:45:20"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6957:1:20","nodeType":"YulLiteral","src":"6957:1:20","type":"","value":"1"},{"name":"i","nativeSrc":"6960:1:20","nodeType":"YulIdentifier","src":"6960:1:20"}],"functionName":{"name":"shr","nativeSrc":"6953:3:20","nodeType":"YulIdentifier","src":"6953:3:20"},"nativeSrc":"6953:9:20","nodeType":"YulFunctionCall","src":"6953:9:20"},{"name":"uint64max","nativeSrc":"6964:9:20","nodeType":"YulIdentifier","src":"6964:9:20"}],"functionName":{"name":"eq","nativeSrc":"6950:2:20","nodeType":"YulIdentifier","src":"6950:2:20"},"nativeSrc":"6950:24:20","nodeType":"YulFunctionCall","src":"6950:24:20"}],"functionName":{"name":"iszero","nativeSrc":"6943:6:20","nodeType":"YulIdentifier","src":"6943:6:20"},"nativeSrc":"6943:32:20","nodeType":"YulFunctionCall","src":"6943:32:20"},"nativeSrc":"6940:328:20","nodeType":"YulIf","src":"6940:328:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9115,"isOffset":false,"isSlot":false,"src":"7226:27:20","valueSize":1},{"declaration":9178,"isOffset":false,"isSlot":false,"src":"6707:1:20","valueSize":1},{"declaration":9178,"isOffset":false,"isSlot":false,"src":"6895:1:20","valueSize":1},{"declaration":9178,"isOffset":false,"isSlot":false,"src":"7082:1:20","valueSize":1}],"id":9182,"nodeType":"InlineAssembly","src":"6669:609:20"}]},"documentation":{"id":9174,"nodeType":"StructuredDocumentation","src":"6099:421:20","text":"@dev Locks any future initializations by setting the initialized version to `2**64 - 1`.\n Calling this in the constructor will prevent the contract from being initialized\n or reinitialized. It is recommended to use this to lock implementation contracts\n that are designed to be called through proxies.\n Emits an {Initialized} event the first time it is successfully called."},"id":9184,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"6534:20:20","nodeType":"FunctionDefinition","parameters":{"id":9175,"nodeType":"ParameterList","parameters":[],"src":"6554:2:20"},"returnParameters":{"id":9176,"nodeType":"ParameterList","parameters":[],"src":"6574:0:20"},"scope":9211,"src":"6525:759:20","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9196,"nodeType":"Block","src":"7439:161:20","statements":[{"assignments":[9191],"declarations":[{"constant":false,"id":9191,"mutability":"mutable","name":"s","nameLocation":"7457:1:20","nodeType":"VariableDeclaration","scope":9196,"src":"7449:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7449:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9194,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9192,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"7461:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7461:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7449:32:20"},{"AST":{"nativeSrc":"7543:51:20","nodeType":"YulBlock","src":"7543:51:20","statements":[{"nativeSrc":"7557:27:20","nodeType":"YulAssignment","src":"7557:27:20","value":{"arguments":[{"kind":"number","nativeSrc":"7572:1:20","nodeType":"YulLiteral","src":"7572:1:20","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"7581:1:20","nodeType":"YulIdentifier","src":"7581:1:20"}],"functionName":{"name":"sload","nativeSrc":"7575:5:20","nodeType":"YulIdentifier","src":"7575:5:20"},"nativeSrc":"7575:8:20","nodeType":"YulFunctionCall","src":"7575:8:20"}],"functionName":{"name":"shr","nativeSrc":"7568:3:20","nodeType":"YulIdentifier","src":"7568:3:20"},"nativeSrc":"7568:16:20","nodeType":"YulFunctionCall","src":"7568:16:20"},"variableNames":[{"name":"version","nativeSrc":"7557:7:20","nodeType":"YulIdentifier","src":"7557:7:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9191,"isOffset":false,"isSlot":false,"src":"7581:1:20","valueSize":1},{"declaration":9188,"isOffset":false,"isSlot":false,"src":"7557:7:20","valueSize":1}],"id":9195,"nodeType":"InlineAssembly","src":"7534:60:20"}]},"documentation":{"id":9185,"nodeType":"StructuredDocumentation","src":"7290:63:20","text":"@dev Returns the highest version that has been initialized."},"id":9197,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"7367:22:20","nodeType":"FunctionDefinition","parameters":{"id":9186,"nodeType":"ParameterList","parameters":[],"src":"7389:2:20"},"returnParameters":{"id":9189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9188,"mutability":"mutable","name":"version","nameLocation":"7430:7:20","nodeType":"VariableDeclaration","scope":9197,"src":"7423:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":9187,"name":"uint64","nodeType":"ElementaryTypeName","src":"7423:6:20","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7422:16:20"},"scope":9211,"src":"7358:242:20","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9209,"nodeType":"Block","src":"7746:160:20","statements":[{"assignments":[9204],"declarations":[{"constant":false,"id":9204,"mutability":"mutable","name":"s","nameLocation":"7764:1:20","nodeType":"VariableDeclaration","scope":9209,"src":"7756:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7756:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9207,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9205,"name":"_initializableSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9128,"src":"7768:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":9206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7768:20:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7756:32:20"},{"AST":{"nativeSrc":"7850:50:20","nodeType":"YulBlock","src":"7850:50:20","statements":[{"nativeSrc":"7864:26:20","nodeType":"YulAssignment","src":"7864:26:20","value":{"arguments":[{"kind":"number","nativeSrc":"7878:1:20","nodeType":"YulLiteral","src":"7878:1:20","type":"","value":"1"},{"arguments":[{"name":"s","nativeSrc":"7887:1:20","nodeType":"YulIdentifier","src":"7887:1:20"}],"functionName":{"name":"sload","nativeSrc":"7881:5:20","nodeType":"YulIdentifier","src":"7881:5:20"},"nativeSrc":"7881:8:20","nodeType":"YulFunctionCall","src":"7881:8:20"}],"functionName":{"name":"and","nativeSrc":"7874:3:20","nodeType":"YulIdentifier","src":"7874:3:20"},"nativeSrc":"7874:16:20","nodeType":"YulFunctionCall","src":"7874:16:20"},"variableNames":[{"name":"result","nativeSrc":"7864:6:20","nodeType":"YulIdentifier","src":"7864:6:20"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9201,"isOffset":false,"isSlot":false,"src":"7864:6:20","valueSize":1},{"declaration":9204,"isOffset":false,"isSlot":false,"src":"7887:1:20","valueSize":1}],"id":9208,"nodeType":"InlineAssembly","src":"7841:59:20"}]},"documentation":{"id":9198,"nodeType":"StructuredDocumentation","src":"7606:64:20","text":"@dev Returns whether the contract is currently initializing."},"id":9210,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"7684:15:20","nodeType":"FunctionDefinition","parameters":{"id":9199,"nodeType":"ParameterList","parameters":[],"src":"7699:2:20"},"returnParameters":{"id":9202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9201,"mutability":"mutable","name":"result","nameLocation":"7738:6:20","nodeType":"VariableDeclaration","scope":9210,"src":"7733:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9200,"name":"bool","nodeType":"ElementaryTypeName","src":"7733:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7732:13:20"},"scope":9211,"src":"7675:231:20","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":9212,"src":"364:7544:20","usedErrors":[9103,9106],"usedEvents":[9111]}],"src":"32:7877:20"},"id":20},"@solady/utils/LibClone.sol":{"ast":{"absolutePath":"@solady/utils/LibClone.sol","exportedSymbols":{"LibClone":[10078]},"id":10079,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9213,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:21"},{"abstract":false,"baseContracts":[],"canonicalName":"LibClone","contractDependencies":[],"contractKind":"library","documentation":{"id":9214,"nodeType":"StructuredDocumentation","src":"57:2160:21","text":"@notice Minimal proxy library.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)\n @author Minimal proxy by 0age (https://github.com/0age)\n @author Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie\n (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)\n @author Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\n @dev Minimal proxy:\n Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime,\n it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern,\n which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.\n @dev Minimal proxy (PUSH0 variant):\n This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai.\n It is optimized first for minimal runtime gas, then for minimal bytecode.\n The PUSH0 clone functions are intentionally postfixed with a jarring \"_PUSH0\" as\n many EVM chains may not support the PUSH0 opcode in the early months after Shanghai.\n Please use with caution.\n @dev Clones with immutable args (CWIA):\n The implementation of CWIA here implements a `receive()` method that emits the\n `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata,\n enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards\n composability. The minimal proxy implementation does not offer this feature.\n @dev Minimal ERC1967 proxy:\n An minimal ERC1967 proxy, intended to be upgraded with UUPS.\n This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic.\n This proxy is automatically verified on Etherscan.\n @dev ERC1967I proxy:\n An variant of the minimal ERC1967 proxy, with a special code path that activates\n if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the\n `implementation` address. The returned implementation is guaranteed to be valid if the\n keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`."},"fullyImplemented":true,"id":10078,"linearizedBaseContracts":[10078],"name":"LibClone","nameLocation":"2225:8:21","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":9215,"nodeType":"StructuredDocumentation","src":"2523:66:21","text":"@dev The keccak256 of the deployed code for the ERC1967 proxy."},"id":9218,"mutability":"constant","name":"ERC1967_CODE_HASH","nameLocation":"2620:17:21","nodeType":"VariableDeclaration","scope":10078,"src":"2594:120:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2594:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861616135326338636338613065336664323763653735366363366234653730633531343233653962353937623131663332643365343966386231666338393064","id":9217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2648:66:21","typeDescriptions":{"typeIdentifier":"t_rational_77185021497204156503765693158949628883174901464818108677459927010977630685453_by_1","typeString":"int_const 7718...(69 digits omitted)...5453"},"value":"0xaaa52c8cc8a0e3fd27ce756cc6b4e70c51423e9b597b11f32d3e49f8b1fc890d"},"visibility":"internal"},{"constant":true,"documentation":{"id":9219,"nodeType":"StructuredDocumentation","src":"2721:67:21","text":"@dev The keccak256 of the deployed code for the ERC1967I proxy."},"id":9222,"mutability":"constant","name":"ERC1967I_CODE_HASH","nameLocation":"2819:18:21","nodeType":"VariableDeclaration","scope":10078,"src":"2793:121:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2793:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307863653730303232336330643463656134353833343039616363666334356164616334613039336233353139393938613963626265313530346461646261366637","id":9221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2848:66:21","typeDescriptions":{"typeIdentifier":"t_rational_93374348446806385783963617675677071552231539524766885499178152025851048994551_by_1","typeString":"int_const 9337...(69 digits omitted)...4551"},"value":"0xce700223c0d4cea4583409accfc45adac4a093b3519998a9cbbe1504dadba6f7"},"visibility":"internal"},{"constant":true,"documentation":{"id":9223,"nodeType":"StructuredDocumentation","src":"2921:73:21","text":"@dev The keccak256 of the deployed code for the ERC1967 beacon proxy."},"id":9226,"mutability":"constant","name":"ERC1967_BEACON_PROXY_CODE_HASH","nameLocation":"3025:30:21","nodeType":"VariableDeclaration","scope":10078,"src":"2999:133:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2999:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307831343034343435396166313762633466306635616132663635386362363932616464373764313330326332396665326165626162303035656561396431313632","id":9225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3066:66:21","typeDescriptions":{"typeIdentifier":"t_rational_9053796096550691733351246263824737728846953073129913053479247112142852002146_by_1","typeString":"int_const 9053...(68 digits omitted)...2146"},"value":"0x14044459af17bc4f0f5aa2f658cb692add77d1302c29fe2aebab005eea9d1162"},"visibility":"internal"},{"documentation":{"id":9227,"nodeType":"StructuredDocumentation","src":"3422:36:21","text":"@dev Unable to deploy the clone."},"errorSelector":"30116425","id":9229,"name":"DeploymentFailed","nameLocation":"3469:16:21","nodeType":"ErrorDefinition","parameters":{"id":9228,"nodeType":"ParameterList","parameters":[],"src":"3485:2:21"},"src":"3463:25:21"},{"documentation":{"id":9230,"nodeType":"StructuredDocumentation","src":"3494:66:21","text":"@dev The salt must start with either the zero address or `by`."},"errorSelector":"0c4549ef","id":9232,"name":"SaltDoesNotStartWith","nameLocation":"3571:20:21","nodeType":"ErrorDefinition","parameters":{"id":9231,"nodeType":"ParameterList","parameters":[],"src":"3591:2:21"},"src":"3565:29:21"},{"documentation":{"id":9233,"nodeType":"StructuredDocumentation","src":"3600:37:21","text":"@dev The ETH transfer has failed."},"errorSelector":"b12d13eb","id":9235,"name":"ETHTransferFailed","nameLocation":"3648:17:21","nodeType":"ErrorDefinition","parameters":{"id":9234,"nodeType":"ParameterList","parameters":[],"src":"3665:2:21"},"src":"3642:26:21"},{"body":{"id":9250,"nodeType":"Block","src":"4082:52:21","statements":[{"expression":{"id":9248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9243,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9241,"src":"4092:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4109:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9246,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9238,"src":"4112:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9244,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[9251,9263,9470,9484],"referencedDeclaration":9263,"src":"4103:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4092:35:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9249,"nodeType":"ExpressionStatement","src":"4092:35:21"}]},"documentation":{"id":9236,"nodeType":"StructuredDocumentation","src":"3957:45:21","text":"@dev Deploys a clone of `implementation`."},"id":9251,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"4016:5:21","nodeType":"FunctionDefinition","parameters":{"id":9239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9238,"mutability":"mutable","name":"implementation","nameLocation":"4030:14:21","nodeType":"VariableDeclaration","scope":9251,"src":"4022:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9237,"name":"address","nodeType":"ElementaryTypeName","src":"4022:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4021:24:21"},"returnParameters":{"id":9242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9241,"mutability":"mutable","name":"instance","nameLocation":"4072:8:21","nodeType":"VariableDeclaration","scope":9251,"src":"4064:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9240,"name":"address","nodeType":"ElementaryTypeName","src":"4064:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4063:18:21"},"scope":10078,"src":"4007:127:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9262,"nodeType":"Block","src":"4328:5477:21","statements":[{"AST":{"nativeSrc":"4390:5409:21","nodeType":"YulBlock","src":"4390:5409:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9357:4:21","nodeType":"YulLiteral","src":"9357:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"9363:28:21","nodeType":"YulLiteral","src":"9363:28:21","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"9350:6:21","nodeType":"YulIdentifier","src":"9350:6:21"},"nativeSrc":"9350:42:21","nodeType":"YulFunctionCall","src":"9350:42:21"},"nativeSrc":"9350:42:21","nodeType":"YulExpressionStatement","src":"9350:42:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9412:4:21","nodeType":"YulLiteral","src":"9412:4:21","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"9418:14:21","nodeType":"YulIdentifier","src":"9418:14:21"}],"functionName":{"name":"mstore","nativeSrc":"9405:6:21","nodeType":"YulIdentifier","src":"9405:6:21"},"nativeSrc":"9405:28:21","nodeType":"YulFunctionCall","src":"9405:28:21"},"nativeSrc":"9405:28:21","nodeType":"YulExpressionStatement","src":"9405:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9453:4:21","nodeType":"YulLiteral","src":"9453:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9459:42:21","nodeType":"YulLiteral","src":"9459:42:21","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"9446:6:21","nodeType":"YulIdentifier","src":"9446:6:21"},"nativeSrc":"9446:56:21","nodeType":"YulFunctionCall","src":"9446:56:21"},"nativeSrc":"9446:56:21","nodeType":"YulExpressionStatement","src":"9446:56:21"},{"nativeSrc":"9515:37:21","nodeType":"YulAssignment","src":"9515:37:21","value":{"arguments":[{"name":"value","nativeSrc":"9534:5:21","nodeType":"YulIdentifier","src":"9534:5:21"},{"kind":"number","nativeSrc":"9541:4:21","nodeType":"YulLiteral","src":"9541:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9547:4:21","nodeType":"YulLiteral","src":"9547:4:21","type":"","value":"0x35"}],"functionName":{"name":"create","nativeSrc":"9527:6:21","nodeType":"YulIdentifier","src":"9527:6:21"},"nativeSrc":"9527:25:21","nodeType":"YulFunctionCall","src":"9527:25:21"},"variableNames":[{"name":"instance","nativeSrc":"9515:8:21","nodeType":"YulIdentifier","src":"9515:8:21"}]},{"body":{"nativeSrc":"9585:116:21","nodeType":"YulBlock","src":"9585:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9610:4:21","nodeType":"YulLiteral","src":"9610:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9616:10:21","nodeType":"YulLiteral","src":"9616:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"9603:6:21","nodeType":"YulIdentifier","src":"9603:6:21"},"nativeSrc":"9603:24:21","nodeType":"YulFunctionCall","src":"9603:24:21"},"nativeSrc":"9603:24:21","nodeType":"YulExpressionStatement","src":"9603:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9676:4:21","nodeType":"YulLiteral","src":"9676:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"9682:4:21","nodeType":"YulLiteral","src":"9682:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"9669:6:21","nodeType":"YulIdentifier","src":"9669:6:21"},"nativeSrc":"9669:18:21","nodeType":"YulFunctionCall","src":"9669:18:21"},"nativeSrc":"9669:18:21","nodeType":"YulExpressionStatement","src":"9669:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"9575:8:21","nodeType":"YulIdentifier","src":"9575:8:21"}],"functionName":{"name":"iszero","nativeSrc":"9568:6:21","nodeType":"YulIdentifier","src":"9568:6:21"},"nativeSrc":"9568:16:21","nodeType":"YulFunctionCall","src":"9568:16:21"},"nativeSrc":"9565:136:21","nodeType":"YulIf","src":"9565:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9721:4:21","nodeType":"YulLiteral","src":"9721:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"9727:1:21","nodeType":"YulLiteral","src":"9727:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9714:6:21","nodeType":"YulIdentifier","src":"9714:6:21"},"nativeSrc":"9714:15:21","nodeType":"YulFunctionCall","src":"9714:15:21"},"nativeSrc":"9714:15:21","nodeType":"YulExpressionStatement","src":"9714:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9256,"isOffset":false,"isSlot":false,"src":"9418:14:21","valueSize":1},{"declaration":9259,"isOffset":false,"isSlot":false,"src":"9515:8:21","valueSize":1},{"declaration":9259,"isOffset":false,"isSlot":false,"src":"9575:8:21","valueSize":1},{"declaration":9254,"isOffset":false,"isSlot":false,"src":"9534:5:21","valueSize":1}],"id":9261,"nodeType":"InlineAssembly","src":"4381:5418:21"}]},"documentation":{"id":9252,"nodeType":"StructuredDocumentation","src":"4140:93:21","text":"@dev Deploys a clone of `implementation`.\n Deposits `value` ETH during deployment."},"id":9263,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"4247:5:21","nodeType":"FunctionDefinition","parameters":{"id":9257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9254,"mutability":"mutable","name":"value","nameLocation":"4261:5:21","nodeType":"VariableDeclaration","scope":9263,"src":"4253:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9253,"name":"uint256","nodeType":"ElementaryTypeName","src":"4253:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9256,"mutability":"mutable","name":"implementation","nameLocation":"4276:14:21","nodeType":"VariableDeclaration","scope":9263,"src":"4268:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9255,"name":"address","nodeType":"ElementaryTypeName","src":"4268:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4252:39:21"},"returnParameters":{"id":9260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9259,"mutability":"mutable","name":"instance","nameLocation":"4318:8:21","nodeType":"VariableDeclaration","scope":9263,"src":"4310:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9258,"name":"address","nodeType":"ElementaryTypeName","src":"4310:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4309:18:21"},"scope":10078,"src":"4238:5567:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9281,"nodeType":"Block","src":"10009:71:21","statements":[{"expression":{"id":9279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9273,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9271,"src":"10019:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10049:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9276,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9266,"src":"10052:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9277,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"10068:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9274,"name":"cloneDeterministic","nodeType":"Identifier","overloadedDeclarations":[9282,9296,9506,9522],"referencedDeclaration":9296,"src":"10030:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10030:43:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10019:54:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9280,"nodeType":"ExpressionStatement","src":"10019:54:21"}]},"documentation":{"id":9264,"nodeType":"StructuredDocumentation","src":"9811:71:21","text":"@dev Deploys a deterministic clone of `implementation` with `salt`."},"id":9282,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"9896:18:21","nodeType":"FunctionDefinition","parameters":{"id":9269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9266,"mutability":"mutable","name":"implementation","nameLocation":"9923:14:21","nodeType":"VariableDeclaration","scope":9282,"src":"9915:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9265,"name":"address","nodeType":"ElementaryTypeName","src":"9915:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9268,"mutability":"mutable","name":"salt","nameLocation":"9947:4:21","nodeType":"VariableDeclaration","scope":9282,"src":"9939:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9939:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9914:38:21"},"returnParameters":{"id":9272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9271,"mutability":"mutable","name":"instance","nameLocation":"9995:8:21","nodeType":"VariableDeclaration","scope":9282,"src":"9987:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9270,"name":"address","nodeType":"ElementaryTypeName","src":"9987:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9986:18:21"},"scope":10078,"src":"9887:193:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9295,"nodeType":"Block","src":"10347:538:21","statements":[{"AST":{"nativeSrc":"10409:470:21","nodeType":"YulBlock","src":"10409:470:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10430:4:21","nodeType":"YulLiteral","src":"10430:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"10436:28:21","nodeType":"YulLiteral","src":"10436:28:21","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"10423:6:21","nodeType":"YulIdentifier","src":"10423:6:21"},"nativeSrc":"10423:42:21","nodeType":"YulFunctionCall","src":"10423:42:21"},"nativeSrc":"10423:42:21","nodeType":"YulExpressionStatement","src":"10423:42:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10485:4:21","nodeType":"YulLiteral","src":"10485:4:21","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"10491:14:21","nodeType":"YulIdentifier","src":"10491:14:21"}],"functionName":{"name":"mstore","nativeSrc":"10478:6:21","nodeType":"YulIdentifier","src":"10478:6:21"},"nativeSrc":"10478:28:21","nodeType":"YulFunctionCall","src":"10478:28:21"},"nativeSrc":"10478:28:21","nodeType":"YulExpressionStatement","src":"10478:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10526:4:21","nodeType":"YulLiteral","src":"10526:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10532:42:21","nodeType":"YulLiteral","src":"10532:42:21","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"10519:6:21","nodeType":"YulIdentifier","src":"10519:6:21"},"nativeSrc":"10519:56:21","nodeType":"YulFunctionCall","src":"10519:56:21"},"nativeSrc":"10519:56:21","nodeType":"YulExpressionStatement","src":"10519:56:21"},{"nativeSrc":"10588:44:21","nodeType":"YulAssignment","src":"10588:44:21","value":{"arguments":[{"name":"value","nativeSrc":"10608:5:21","nodeType":"YulIdentifier","src":"10608:5:21"},{"kind":"number","nativeSrc":"10615:4:21","nodeType":"YulLiteral","src":"10615:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10621:4:21","nodeType":"YulLiteral","src":"10621:4:21","type":"","value":"0x35"},{"name":"salt","nativeSrc":"10627:4:21","nodeType":"YulIdentifier","src":"10627:4:21"}],"functionName":{"name":"create2","nativeSrc":"10600:7:21","nodeType":"YulIdentifier","src":"10600:7:21"},"nativeSrc":"10600:32:21","nodeType":"YulFunctionCall","src":"10600:32:21"},"variableNames":[{"name":"instance","nativeSrc":"10588:8:21","nodeType":"YulIdentifier","src":"10588:8:21"}]},{"body":{"nativeSrc":"10665:116:21","nodeType":"YulBlock","src":"10665:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10690:4:21","nodeType":"YulLiteral","src":"10690:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10696:10:21","nodeType":"YulLiteral","src":"10696:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"10683:6:21","nodeType":"YulIdentifier","src":"10683:6:21"},"nativeSrc":"10683:24:21","nodeType":"YulFunctionCall","src":"10683:24:21"},"nativeSrc":"10683:24:21","nodeType":"YulExpressionStatement","src":"10683:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10756:4:21","nodeType":"YulLiteral","src":"10756:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10762:4:21","nodeType":"YulLiteral","src":"10762:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10749:6:21","nodeType":"YulIdentifier","src":"10749:6:21"},"nativeSrc":"10749:18:21","nodeType":"YulFunctionCall","src":"10749:18:21"},"nativeSrc":"10749:18:21","nodeType":"YulExpressionStatement","src":"10749:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"10655:8:21","nodeType":"YulIdentifier","src":"10655:8:21"}],"functionName":{"name":"iszero","nativeSrc":"10648:6:21","nodeType":"YulIdentifier","src":"10648:6:21"},"nativeSrc":"10648:16:21","nodeType":"YulFunctionCall","src":"10648:16:21"},"nativeSrc":"10645:136:21","nodeType":"YulIf","src":"10645:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10801:4:21","nodeType":"YulLiteral","src":"10801:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"10807:1:21","nodeType":"YulLiteral","src":"10807:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10794:6:21","nodeType":"YulIdentifier","src":"10794:6:21"},"nativeSrc":"10794:15:21","nodeType":"YulFunctionCall","src":"10794:15:21"},"nativeSrc":"10794:15:21","nodeType":"YulExpressionStatement","src":"10794:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9287,"isOffset":false,"isSlot":false,"src":"10491:14:21","valueSize":1},{"declaration":9292,"isOffset":false,"isSlot":false,"src":"10588:8:21","valueSize":1},{"declaration":9292,"isOffset":false,"isSlot":false,"src":"10655:8:21","valueSize":1},{"declaration":9289,"isOffset":false,"isSlot":false,"src":"10627:4:21","valueSize":1},{"declaration":9285,"isOffset":false,"isSlot":false,"src":"10608:5:21","valueSize":1}],"id":9294,"nodeType":"InlineAssembly","src":"10400:479:21"}]},"documentation":{"id":9283,"nodeType":"StructuredDocumentation","src":"10086:119:21","text":"@dev Deploys a deterministic clone of `implementation` with `salt`.\n Deposits `value` ETH during deployment."},"id":9296,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"10219:18:21","nodeType":"FunctionDefinition","parameters":{"id":9290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9285,"mutability":"mutable","name":"value","nameLocation":"10246:5:21","nodeType":"VariableDeclaration","scope":9296,"src":"10238:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9284,"name":"uint256","nodeType":"ElementaryTypeName","src":"10238:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9287,"mutability":"mutable","name":"implementation","nameLocation":"10261:14:21","nodeType":"VariableDeclaration","scope":9296,"src":"10253:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9286,"name":"address","nodeType":"ElementaryTypeName","src":"10253:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9289,"mutability":"mutable","name":"salt","nameLocation":"10285:4:21","nodeType":"VariableDeclaration","scope":9296,"src":"10277:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10277:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10237:53:21"},"returnParameters":{"id":9293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9292,"mutability":"mutable","name":"instance","nameLocation":"10333:8:21","nodeType":"VariableDeclaration","scope":9296,"src":"10325:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9291,"name":"address","nodeType":"ElementaryTypeName","src":"10325:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10324:18:21"},"scope":10078,"src":"10210:675:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9305,"nodeType":"Block","src":"11056:457:21","statements":[{"AST":{"nativeSrc":"11118:389:21","nodeType":"YulBlock","src":"11118:389:21","statements":[{"nativeSrc":"11132:21:21","nodeType":"YulAssignment","src":"11132:21:21","value":{"arguments":[{"kind":"number","nativeSrc":"11148:4:21","nodeType":"YulLiteral","src":"11148:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11142:5:21","nodeType":"YulIdentifier","src":"11142:5:21"},"nativeSrc":"11142:11:21","nodeType":"YulFunctionCall","src":"11142:11:21"},"variableNames":[{"name":"result","nativeSrc":"11132:6:21","nodeType":"YulIdentifier","src":"11132:6:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11177:6:21","nodeType":"YulIdentifier","src":"11177:6:21"},{"kind":"number","nativeSrc":"11185:4:21","nodeType":"YulLiteral","src":"11185:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11173:3:21","nodeType":"YulIdentifier","src":"11173:3:21"},"nativeSrc":"11173:17:21","nodeType":"YulFunctionCall","src":"11173:17:21"},{"kind":"number","nativeSrc":"11192:50:21","nodeType":"YulLiteral","src":"11192:50:21","type":"","value":"0x5af43d3d93803e602a57fd5bf30000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"11166:6:21","nodeType":"YulIdentifier","src":"11166:6:21"},"nativeSrc":"11166:77:21","nodeType":"YulFunctionCall","src":"11166:77:21"},"nativeSrc":"11166:77:21","nodeType":"YulExpressionStatement","src":"11166:77:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11267:6:21","nodeType":"YulIdentifier","src":"11267:6:21"},{"kind":"number","nativeSrc":"11275:4:21","nodeType":"YulLiteral","src":"11275:4:21","type":"","value":"0x28"}],"functionName":{"name":"add","nativeSrc":"11263:3:21","nodeType":"YulIdentifier","src":"11263:3:21"},"nativeSrc":"11263:17:21","nodeType":"YulFunctionCall","src":"11263:17:21"},{"name":"implementation","nativeSrc":"11282:14:21","nodeType":"YulIdentifier","src":"11282:14:21"}],"functionName":{"name":"mstore","nativeSrc":"11256:6:21","nodeType":"YulIdentifier","src":"11256:6:21"},"nativeSrc":"11256:41:21","nodeType":"YulFunctionCall","src":"11256:41:21"},"nativeSrc":"11256:41:21","nodeType":"YulExpressionStatement","src":"11256:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11321:6:21","nodeType":"YulIdentifier","src":"11321:6:21"},{"kind":"number","nativeSrc":"11329:4:21","nodeType":"YulLiteral","src":"11329:4:21","type":"","value":"0x14"}],"functionName":{"name":"add","nativeSrc":"11317:3:21","nodeType":"YulIdentifier","src":"11317:3:21"},"nativeSrc":"11317:17:21","nodeType":"YulFunctionCall","src":"11317:17:21"},{"kind":"number","nativeSrc":"11336:42:21","nodeType":"YulLiteral","src":"11336:42:21","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"11310:6:21","nodeType":"YulIdentifier","src":"11310:6:21"},"nativeSrc":"11310:69:21","nodeType":"YulFunctionCall","src":"11310:69:21"},"nativeSrc":"11310:69:21","nodeType":"YulExpressionStatement","src":"11310:69:21"},{"expression":{"arguments":[{"name":"result","nativeSrc":"11399:6:21","nodeType":"YulIdentifier","src":"11399:6:21"},{"kind":"number","nativeSrc":"11407:4:21","nodeType":"YulLiteral","src":"11407:4:21","type":"","value":"0x35"}],"functionName":{"name":"mstore","nativeSrc":"11392:6:21","nodeType":"YulIdentifier","src":"11392:6:21"},"nativeSrc":"11392:20:21","nodeType":"YulFunctionCall","src":"11392:20:21"},"nativeSrc":"11392:20:21","nodeType":"YulExpressionStatement","src":"11392:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11453:4:21","nodeType":"YulLiteral","src":"11453:4:21","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"11463:6:21","nodeType":"YulIdentifier","src":"11463:6:21"},{"kind":"number","nativeSrc":"11471:4:21","nodeType":"YulLiteral","src":"11471:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"11459:3:21","nodeType":"YulIdentifier","src":"11459:3:21"},"nativeSrc":"11459:17:21","nodeType":"YulFunctionCall","src":"11459:17:21"}],"functionName":{"name":"mstore","nativeSrc":"11446:6:21","nodeType":"YulIdentifier","src":"11446:6:21"},"nativeSrc":"11446:31:21","nodeType":"YulFunctionCall","src":"11446:31:21"},"nativeSrc":"11446:31:21","nodeType":"YulExpressionStatement","src":"11446:31:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9299,"isOffset":false,"isSlot":false,"src":"11282:14:21","valueSize":1},{"declaration":9302,"isOffset":false,"isSlot":false,"src":"11132:6:21","valueSize":1},{"declaration":9302,"isOffset":false,"isSlot":false,"src":"11177:6:21","valueSize":1},{"declaration":9302,"isOffset":false,"isSlot":false,"src":"11267:6:21","valueSize":1},{"declaration":9302,"isOffset":false,"isSlot":false,"src":"11321:6:21","valueSize":1},{"declaration":9302,"isOffset":false,"isSlot":false,"src":"11399:6:21","valueSize":1},{"declaration":9302,"isOffset":false,"isSlot":false,"src":"11463:6:21","valueSize":1}],"id":9304,"nodeType":"InlineAssembly","src":"11109:398:21"}]},"documentation":{"id":9297,"nodeType":"StructuredDocumentation","src":"10891:74:21","text":"@dev Returns the initialization code of the clone of `implementation`."},"id":9306,"implemented":true,"kind":"function","modifiers":[],"name":"initCode","nameLocation":"10979:8:21","nodeType":"FunctionDefinition","parameters":{"id":9300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9299,"mutability":"mutable","name":"implementation","nameLocation":"10996:14:21","nodeType":"VariableDeclaration","scope":9306,"src":"10988:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9298,"name":"address","nodeType":"ElementaryTypeName","src":"10988:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10987:24:21"},"returnParameters":{"id":9303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9302,"mutability":"mutable","name":"result","nameLocation":"11048:6:21","nodeType":"VariableDeclaration","scope":9306,"src":"11035:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9301,"name":"bytes","nodeType":"ElementaryTypeName","src":"11035:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11034:21:21"},"scope":10078,"src":"10970:543:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9315,"nodeType":"Block","src":"11747:374:21","statements":[{"AST":{"nativeSrc":"11809:306:21","nodeType":"YulBlock","src":"11809:306:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11830:4:21","nodeType":"YulLiteral","src":"11830:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"11836:28:21","nodeType":"YulLiteral","src":"11836:28:21","type":"","value":"0x5af43d3d93803e602a57fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"11823:6:21","nodeType":"YulIdentifier","src":"11823:6:21"},"nativeSrc":"11823:42:21","nodeType":"YulFunctionCall","src":"11823:42:21"},"nativeSrc":"11823:42:21","nodeType":"YulExpressionStatement","src":"11823:42:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11885:4:21","nodeType":"YulLiteral","src":"11885:4:21","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"11891:14:21","nodeType":"YulIdentifier","src":"11891:14:21"}],"functionName":{"name":"mstore","nativeSrc":"11878:6:21","nodeType":"YulIdentifier","src":"11878:6:21"},"nativeSrc":"11878:28:21","nodeType":"YulFunctionCall","src":"11878:28:21"},"nativeSrc":"11878:28:21","nodeType":"YulExpressionStatement","src":"11878:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11926:4:21","nodeType":"YulLiteral","src":"11926:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11932:42:21","nodeType":"YulLiteral","src":"11932:42:21","type":"","value":"0x602c3d8160093d39f33d3d3d3d363d3d37363d73"}],"functionName":{"name":"mstore","nativeSrc":"11919:6:21","nodeType":"YulIdentifier","src":"11919:6:21"},"nativeSrc":"11919:56:21","nodeType":"YulFunctionCall","src":"11919:56:21"},"nativeSrc":"11919:56:21","nodeType":"YulExpressionStatement","src":"11919:56:21"},{"nativeSrc":"11988:29:21","nodeType":"YulAssignment","src":"11988:29:21","value":{"arguments":[{"kind":"number","nativeSrc":"12006:4:21","nodeType":"YulLiteral","src":"12006:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12012:4:21","nodeType":"YulLiteral","src":"12012:4:21","type":"","value":"0x35"}],"functionName":{"name":"keccak256","nativeSrc":"11996:9:21","nodeType":"YulIdentifier","src":"11996:9:21"},"nativeSrc":"11996:21:21","nodeType":"YulFunctionCall","src":"11996:21:21"},"variableNames":[{"name":"hash","nativeSrc":"11988:4:21","nodeType":"YulIdentifier","src":"11988:4:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12037:4:21","nodeType":"YulLiteral","src":"12037:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"12043:1:21","nodeType":"YulLiteral","src":"12043:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12030:6:21","nodeType":"YulIdentifier","src":"12030:6:21"},"nativeSrc":"12030:15:21","nodeType":"YulFunctionCall","src":"12030:15:21"},"nativeSrc":"12030:15:21","nodeType":"YulExpressionStatement","src":"12030:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9312,"isOffset":false,"isSlot":false,"src":"11988:4:21","valueSize":1},{"declaration":9309,"isOffset":false,"isSlot":false,"src":"11891:14:21","valueSize":1}],"id":9314,"nodeType":"InlineAssembly","src":"11800:315:21"}]},"documentation":{"id":9307,"nodeType":"StructuredDocumentation","src":"11519:140:21","text":"@dev Returns the initialization code hash of the clone of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9316,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash","nameLocation":"11673:12:21","nodeType":"FunctionDefinition","parameters":{"id":9310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9309,"mutability":"mutable","name":"implementation","nameLocation":"11694:14:21","nodeType":"VariableDeclaration","scope":9316,"src":"11686:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9308,"name":"address","nodeType":"ElementaryTypeName","src":"11686:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11685:24:21"},"returnParameters":{"id":9313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9312,"mutability":"mutable","name":"hash","nameLocation":"11741:4:21","nodeType":"VariableDeclaration","scope":9316,"src":"11733:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11733:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11732:14:21"},"scope":10078,"src":"11664:457:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9342,"nodeType":"Block","src":"12499:131:21","statements":[{"assignments":[9329],"declarations":[{"constant":false,"id":9329,"mutability":"mutable","name":"hash","nameLocation":"12517:4:21","nodeType":"VariableDeclaration","scope":9342,"src":"12509:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12509:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9333,"initialValue":{"arguments":[{"id":9331,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9319,"src":"12537:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9330,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[9316,9546],"referencedDeclaration":9316,"src":"12524:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12524:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12509:43:21"},{"expression":{"id":9340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9334,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9326,"src":"12562:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9336,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9329,"src":"12602:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9337,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9321,"src":"12608:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9338,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9323,"src":"12614:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9335,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9343,9576,10067],"referencedDeclaration":10067,"src":"12574:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12562:61:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9341,"nodeType":"ExpressionStatement","src":"12562:61:21"}]},"documentation":{"id":9317,"nodeType":"StructuredDocumentation","src":"12127:204:21","text":"@dev Returns the address of the deterministic clone of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9343,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"12345:27:21","nodeType":"FunctionDefinition","parameters":{"id":9324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9319,"mutability":"mutable","name":"implementation","nameLocation":"12381:14:21","nodeType":"VariableDeclaration","scope":9343,"src":"12373:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9318,"name":"address","nodeType":"ElementaryTypeName","src":"12373:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9321,"mutability":"mutable","name":"salt","nameLocation":"12405:4:21","nodeType":"VariableDeclaration","scope":9343,"src":"12397:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12397:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9323,"mutability":"mutable","name":"deployer","nameLocation":"12419:8:21","nodeType":"VariableDeclaration","scope":9343,"src":"12411:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9322,"name":"address","nodeType":"ElementaryTypeName","src":"12411:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12372:56:21"},"returnParameters":{"id":9327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9326,"mutability":"mutable","name":"predicted","nameLocation":"12484:9:21","nodeType":"VariableDeclaration","scope":9343,"src":"12476:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9325,"name":"address","nodeType":"ElementaryTypeName","src":"12476:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12475:19:21"},"scope":10078,"src":"12336:294:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9358,"nodeType":"Block","src":"13056:58:21","statements":[{"expression":{"id":9356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9351,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9349,"src":"13066:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13089:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9354,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9346,"src":"13092:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9352,"name":"clone_PUSH0","nodeType":"Identifier","overloadedDeclarations":[9359,9371],"referencedDeclaration":9371,"src":"13077:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13077:30:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13066:41:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9357,"nodeType":"ExpressionStatement","src":"13066:41:21"}]},"documentation":{"id":9344,"nodeType":"StructuredDocumentation","src":"12919:51:21","text":"@dev Deploys a PUSH0 clone of `implementation`."},"id":9359,"implemented":true,"kind":"function","modifiers":[],"name":"clone_PUSH0","nameLocation":"12984:11:21","nodeType":"FunctionDefinition","parameters":{"id":9347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9346,"mutability":"mutable","name":"implementation","nameLocation":"13004:14:21","nodeType":"VariableDeclaration","scope":9359,"src":"12996:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9345,"name":"address","nodeType":"ElementaryTypeName","src":"12996:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12995:24:21"},"returnParameters":{"id":9350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9349,"mutability":"mutable","name":"instance","nameLocation":"13046:8:21","nodeType":"VariableDeclaration","scope":9359,"src":"13038:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9348,"name":"address","nodeType":"ElementaryTypeName","src":"13038:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13037:18:21"},"scope":10078,"src":"12975:139:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9370,"nodeType":"Block","src":"13340:5591:21","statements":[{"AST":{"nativeSrc":"13402:5523:21","nodeType":"YulBlock","src":"13402:5523:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18460:4:21","nodeType":"YulLiteral","src":"18460:4:21","type":"","value":"0x24"},{"kind":"number","nativeSrc":"18466:34:21","nodeType":"YulLiteral","src":"18466:34:21","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"18453:6:21","nodeType":"YulIdentifier","src":"18453:6:21"},"nativeSrc":"18453:48:21","nodeType":"YulFunctionCall","src":"18453:48:21"},"nativeSrc":"18453:48:21","nodeType":"YulExpressionStatement","src":"18453:48:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18527:4:21","nodeType":"YulLiteral","src":"18527:4:21","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"18533:14:21","nodeType":"YulIdentifier","src":"18533:14:21"}],"functionName":{"name":"mstore","nativeSrc":"18520:6:21","nodeType":"YulIdentifier","src":"18520:6:21"},"nativeSrc":"18520:28:21","nodeType":"YulFunctionCall","src":"18520:28:21"},"nativeSrc":"18520:28:21","nodeType":"YulExpressionStatement","src":"18520:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18574:4:21","nodeType":"YulLiteral","src":"18574:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18580:38:21","nodeType":"YulLiteral","src":"18580:38:21","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"18567:6:21","nodeType":"YulIdentifier","src":"18567:6:21"},"nativeSrc":"18567:52:21","nodeType":"YulFunctionCall","src":"18567:52:21"},"nativeSrc":"18567:52:21","nodeType":"YulExpressionStatement","src":"18567:52:21"},{"nativeSrc":"18641:37:21","nodeType":"YulAssignment","src":"18641:37:21","value":{"arguments":[{"name":"value","nativeSrc":"18660:5:21","nodeType":"YulIdentifier","src":"18660:5:21"},{"kind":"number","nativeSrc":"18667:4:21","nodeType":"YulLiteral","src":"18667:4:21","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"18673:4:21","nodeType":"YulLiteral","src":"18673:4:21","type":"","value":"0x36"}],"functionName":{"name":"create","nativeSrc":"18653:6:21","nodeType":"YulIdentifier","src":"18653:6:21"},"nativeSrc":"18653:25:21","nodeType":"YulFunctionCall","src":"18653:25:21"},"variableNames":[{"name":"instance","nativeSrc":"18641:8:21","nodeType":"YulIdentifier","src":"18641:8:21"}]},{"body":{"nativeSrc":"18711:116:21","nodeType":"YulBlock","src":"18711:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18736:4:21","nodeType":"YulLiteral","src":"18736:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18742:10:21","nodeType":"YulLiteral","src":"18742:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"18729:6:21","nodeType":"YulIdentifier","src":"18729:6:21"},"nativeSrc":"18729:24:21","nodeType":"YulFunctionCall","src":"18729:24:21"},"nativeSrc":"18729:24:21","nodeType":"YulExpressionStatement","src":"18729:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18802:4:21","nodeType":"YulLiteral","src":"18802:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18808:4:21","nodeType":"YulLiteral","src":"18808:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18795:6:21","nodeType":"YulIdentifier","src":"18795:6:21"},"nativeSrc":"18795:18:21","nodeType":"YulFunctionCall","src":"18795:18:21"},"nativeSrc":"18795:18:21","nodeType":"YulExpressionStatement","src":"18795:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"18701:8:21","nodeType":"YulIdentifier","src":"18701:8:21"}],"functionName":{"name":"iszero","nativeSrc":"18694:6:21","nodeType":"YulIdentifier","src":"18694:6:21"},"nativeSrc":"18694:16:21","nodeType":"YulFunctionCall","src":"18694:16:21"},"nativeSrc":"18691:136:21","nodeType":"YulIf","src":"18691:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18847:4:21","nodeType":"YulLiteral","src":"18847:4:21","type":"","value":"0x24"},{"kind":"number","nativeSrc":"18853:1:21","nodeType":"YulLiteral","src":"18853:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18840:6:21","nodeType":"YulIdentifier","src":"18840:6:21"},"nativeSrc":"18840:15:21","nodeType":"YulFunctionCall","src":"18840:15:21"},"nativeSrc":"18840:15:21","nodeType":"YulExpressionStatement","src":"18840:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9364,"isOffset":false,"isSlot":false,"src":"18533:14:21","valueSize":1},{"declaration":9367,"isOffset":false,"isSlot":false,"src":"18641:8:21","valueSize":1},{"declaration":9367,"isOffset":false,"isSlot":false,"src":"18701:8:21","valueSize":1},{"declaration":9362,"isOffset":false,"isSlot":false,"src":"18660:5:21","valueSize":1}],"id":9369,"nodeType":"InlineAssembly","src":"13393:5532:21"}]},"documentation":{"id":9360,"nodeType":"StructuredDocumentation","src":"13120:99:21","text":"@dev Deploys a PUSH0 clone of `implementation`.\n Deposits `value` ETH during deployment."},"id":9371,"implemented":true,"kind":"function","modifiers":[],"name":"clone_PUSH0","nameLocation":"13233:11:21","nodeType":"FunctionDefinition","parameters":{"id":9365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9362,"mutability":"mutable","name":"value","nameLocation":"13253:5:21","nodeType":"VariableDeclaration","scope":9371,"src":"13245:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9361,"name":"uint256","nodeType":"ElementaryTypeName","src":"13245:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9364,"mutability":"mutable","name":"implementation","nameLocation":"13268:14:21","nodeType":"VariableDeclaration","scope":9371,"src":"13260:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9363,"name":"address","nodeType":"ElementaryTypeName","src":"13260:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13244:39:21"},"returnParameters":{"id":9368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9367,"mutability":"mutable","name":"instance","nameLocation":"13326:8:21","nodeType":"VariableDeclaration","scope":9371,"src":"13318:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9366,"name":"address","nodeType":"ElementaryTypeName","src":"13318:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13317:18:21"},"scope":10078,"src":"13224:5707:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9389,"nodeType":"Block","src":"19147:77:21","statements":[{"expression":{"id":9387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9381,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9379,"src":"19157:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19193:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9384,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9374,"src":"19196:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9385,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9376,"src":"19212:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9382,"name":"cloneDeterministic_PUSH0","nodeType":"Identifier","overloadedDeclarations":[9390,9404],"referencedDeclaration":9404,"src":"19168:24:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19168:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19157:60:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9388,"nodeType":"ExpressionStatement","src":"19157:60:21"}]},"documentation":{"id":9372,"nodeType":"StructuredDocumentation","src":"18937:77:21","text":"@dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`."},"id":9390,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic_PUSH0","nameLocation":"19028:24:21","nodeType":"FunctionDefinition","parameters":{"id":9377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9374,"mutability":"mutable","name":"implementation","nameLocation":"19061:14:21","nodeType":"VariableDeclaration","scope":9390,"src":"19053:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9373,"name":"address","nodeType":"ElementaryTypeName","src":"19053:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9376,"mutability":"mutable","name":"salt","nameLocation":"19085:4:21","nodeType":"VariableDeclaration","scope":9390,"src":"19077:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19077:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19052:38:21"},"returnParameters":{"id":9380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9379,"mutability":"mutable","name":"instance","nameLocation":"19133:8:21","nodeType":"VariableDeclaration","scope":9390,"src":"19125:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9378,"name":"address","nodeType":"ElementaryTypeName","src":"19125:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19124:18:21"},"scope":10078,"src":"19019:205:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9403,"nodeType":"Block","src":"19503:561:21","statements":[{"AST":{"nativeSrc":"19565:493:21","nodeType":"YulBlock","src":"19565:493:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19586:4:21","nodeType":"YulLiteral","src":"19586:4:21","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19592:34:21","nodeType":"YulLiteral","src":"19592:34:21","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"19579:6:21","nodeType":"YulIdentifier","src":"19579:6:21"},"nativeSrc":"19579:48:21","nodeType":"YulFunctionCall","src":"19579:48:21"},"nativeSrc":"19579:48:21","nodeType":"YulExpressionStatement","src":"19579:48:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19653:4:21","nodeType":"YulLiteral","src":"19653:4:21","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"19659:14:21","nodeType":"YulIdentifier","src":"19659:14:21"}],"functionName":{"name":"mstore","nativeSrc":"19646:6:21","nodeType":"YulIdentifier","src":"19646:6:21"},"nativeSrc":"19646:28:21","nodeType":"YulFunctionCall","src":"19646:28:21"},"nativeSrc":"19646:28:21","nodeType":"YulExpressionStatement","src":"19646:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19700:4:21","nodeType":"YulLiteral","src":"19700:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19706:38:21","nodeType":"YulLiteral","src":"19706:38:21","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"19693:6:21","nodeType":"YulIdentifier","src":"19693:6:21"},"nativeSrc":"19693:52:21","nodeType":"YulFunctionCall","src":"19693:52:21"},"nativeSrc":"19693:52:21","nodeType":"YulExpressionStatement","src":"19693:52:21"},{"nativeSrc":"19767:44:21","nodeType":"YulAssignment","src":"19767:44:21","value":{"arguments":[{"name":"value","nativeSrc":"19787:5:21","nodeType":"YulIdentifier","src":"19787:5:21"},{"kind":"number","nativeSrc":"19794:4:21","nodeType":"YulLiteral","src":"19794:4:21","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"19800:4:21","nodeType":"YulLiteral","src":"19800:4:21","type":"","value":"0x36"},{"name":"salt","nativeSrc":"19806:4:21","nodeType":"YulIdentifier","src":"19806:4:21"}],"functionName":{"name":"create2","nativeSrc":"19779:7:21","nodeType":"YulIdentifier","src":"19779:7:21"},"nativeSrc":"19779:32:21","nodeType":"YulFunctionCall","src":"19779:32:21"},"variableNames":[{"name":"instance","nativeSrc":"19767:8:21","nodeType":"YulIdentifier","src":"19767:8:21"}]},{"body":{"nativeSrc":"19844:116:21","nodeType":"YulBlock","src":"19844:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19869:4:21","nodeType":"YulLiteral","src":"19869:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19875:10:21","nodeType":"YulLiteral","src":"19875:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"19862:6:21","nodeType":"YulIdentifier","src":"19862:6:21"},"nativeSrc":"19862:24:21","nodeType":"YulFunctionCall","src":"19862:24:21"},"nativeSrc":"19862:24:21","nodeType":"YulExpressionStatement","src":"19862:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19935:4:21","nodeType":"YulLiteral","src":"19935:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"19941:4:21","nodeType":"YulLiteral","src":"19941:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"19928:6:21","nodeType":"YulIdentifier","src":"19928:6:21"},"nativeSrc":"19928:18:21","nodeType":"YulFunctionCall","src":"19928:18:21"},"nativeSrc":"19928:18:21","nodeType":"YulExpressionStatement","src":"19928:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"19834:8:21","nodeType":"YulIdentifier","src":"19834:8:21"}],"functionName":{"name":"iszero","nativeSrc":"19827:6:21","nodeType":"YulIdentifier","src":"19827:6:21"},"nativeSrc":"19827:16:21","nodeType":"YulFunctionCall","src":"19827:16:21"},"nativeSrc":"19824:136:21","nodeType":"YulIf","src":"19824:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19980:4:21","nodeType":"YulLiteral","src":"19980:4:21","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19986:1:21","nodeType":"YulLiteral","src":"19986:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19973:6:21","nodeType":"YulIdentifier","src":"19973:6:21"},"nativeSrc":"19973:15:21","nodeType":"YulFunctionCall","src":"19973:15:21"},"nativeSrc":"19973:15:21","nodeType":"YulExpressionStatement","src":"19973:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9395,"isOffset":false,"isSlot":false,"src":"19659:14:21","valueSize":1},{"declaration":9400,"isOffset":false,"isSlot":false,"src":"19767:8:21","valueSize":1},{"declaration":9400,"isOffset":false,"isSlot":false,"src":"19834:8:21","valueSize":1},{"declaration":9397,"isOffset":false,"isSlot":false,"src":"19806:4:21","valueSize":1},{"declaration":9393,"isOffset":false,"isSlot":false,"src":"19787:5:21","valueSize":1}],"id":9402,"nodeType":"InlineAssembly","src":"19556:502:21"}]},"documentation":{"id":9391,"nodeType":"StructuredDocumentation","src":"19230:125:21","text":"@dev Deploys a deterministic PUSH0 clone of `implementation` with `salt`.\n Deposits `value` ETH during deployment."},"id":9404,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic_PUSH0","nameLocation":"19369:24:21","nodeType":"FunctionDefinition","parameters":{"id":9398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9393,"mutability":"mutable","name":"value","nameLocation":"19402:5:21","nodeType":"VariableDeclaration","scope":9404,"src":"19394:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9392,"name":"uint256","nodeType":"ElementaryTypeName","src":"19394:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9395,"mutability":"mutable","name":"implementation","nameLocation":"19417:14:21","nodeType":"VariableDeclaration","scope":9404,"src":"19409:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9394,"name":"address","nodeType":"ElementaryTypeName","src":"19409:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9397,"mutability":"mutable","name":"salt","nameLocation":"19441:4:21","nodeType":"VariableDeclaration","scope":9404,"src":"19433:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19433:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19393:53:21"},"returnParameters":{"id":9401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9400,"mutability":"mutable","name":"instance","nameLocation":"19489:8:21","nodeType":"VariableDeclaration","scope":9404,"src":"19481:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9399,"name":"address","nodeType":"ElementaryTypeName","src":"19481:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19480:18:21"},"scope":10078,"src":"19360:704:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9413,"nodeType":"Block","src":"20247:478:21","statements":[{"AST":{"nativeSrc":"20309:410:21","nodeType":"YulBlock","src":"20309:410:21","statements":[{"nativeSrc":"20323:21:21","nodeType":"YulAssignment","src":"20323:21:21","value":{"arguments":[{"kind":"number","nativeSrc":"20339:4:21","nodeType":"YulLiteral","src":"20339:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20333:5:21","nodeType":"YulIdentifier","src":"20333:5:21"},"nativeSrc":"20333:11:21","nodeType":"YulFunctionCall","src":"20333:11:21"},"variableNames":[{"name":"result","nativeSrc":"20323:6:21","nodeType":"YulIdentifier","src":"20323:6:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20368:6:21","nodeType":"YulIdentifier","src":"20368:6:21"},{"kind":"number","nativeSrc":"20376:4:21","nodeType":"YulLiteral","src":"20376:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20364:3:21","nodeType":"YulIdentifier","src":"20364:3:21"},"nativeSrc":"20364:17:21","nodeType":"YulFunctionCall","src":"20364:17:21"},{"kind":"number","nativeSrc":"20383:54:21","nodeType":"YulLiteral","src":"20383:54:21","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff300000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"20357:6:21","nodeType":"YulIdentifier","src":"20357:6:21"},"nativeSrc":"20357:81:21","nodeType":"YulFunctionCall","src":"20357:81:21"},"nativeSrc":"20357:81:21","nodeType":"YulExpressionStatement","src":"20357:81:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20468:6:21","nodeType":"YulIdentifier","src":"20468:6:21"},{"kind":"number","nativeSrc":"20476:4:21","nodeType":"YulLiteral","src":"20476:4:21","type":"","value":"0x26"}],"functionName":{"name":"add","nativeSrc":"20464:3:21","nodeType":"YulIdentifier","src":"20464:3:21"},"nativeSrc":"20464:17:21","nodeType":"YulFunctionCall","src":"20464:17:21"},{"name":"implementation","nativeSrc":"20483:14:21","nodeType":"YulIdentifier","src":"20483:14:21"}],"functionName":{"name":"mstore","nativeSrc":"20457:6:21","nodeType":"YulIdentifier","src":"20457:6:21"},"nativeSrc":"20457:41:21","nodeType":"YulFunctionCall","src":"20457:41:21"},"nativeSrc":"20457:41:21","nodeType":"YulExpressionStatement","src":"20457:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"20528:6:21","nodeType":"YulIdentifier","src":"20528:6:21"},{"kind":"number","nativeSrc":"20536:4:21","nodeType":"YulLiteral","src":"20536:4:21","type":"","value":"0x12"}],"functionName":{"name":"add","nativeSrc":"20524:3:21","nodeType":"YulIdentifier","src":"20524:3:21"},"nativeSrc":"20524:17:21","nodeType":"YulFunctionCall","src":"20524:17:21"},{"kind":"number","nativeSrc":"20543:38:21","nodeType":"YulLiteral","src":"20543:38:21","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"20517:6:21","nodeType":"YulIdentifier","src":"20517:6:21"},"nativeSrc":"20517:65:21","nodeType":"YulFunctionCall","src":"20517:65:21"},"nativeSrc":"20517:65:21","nodeType":"YulExpressionStatement","src":"20517:65:21"},{"expression":{"arguments":[{"name":"result","nativeSrc":"20611:6:21","nodeType":"YulIdentifier","src":"20611:6:21"},{"kind":"number","nativeSrc":"20619:4:21","nodeType":"YulLiteral","src":"20619:4:21","type":"","value":"0x36"}],"functionName":{"name":"mstore","nativeSrc":"20604:6:21","nodeType":"YulIdentifier","src":"20604:6:21"},"nativeSrc":"20604:20:21","nodeType":"YulFunctionCall","src":"20604:20:21"},"nativeSrc":"20604:20:21","nodeType":"YulExpressionStatement","src":"20604:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20665:4:21","nodeType":"YulLiteral","src":"20665:4:21","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"20675:6:21","nodeType":"YulIdentifier","src":"20675:6:21"},{"kind":"number","nativeSrc":"20683:4:21","nodeType":"YulLiteral","src":"20683:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"20671:3:21","nodeType":"YulIdentifier","src":"20671:3:21"},"nativeSrc":"20671:17:21","nodeType":"YulFunctionCall","src":"20671:17:21"}],"functionName":{"name":"mstore","nativeSrc":"20658:6:21","nodeType":"YulIdentifier","src":"20658:6:21"},"nativeSrc":"20658:31:21","nodeType":"YulFunctionCall","src":"20658:31:21"},"nativeSrc":"20658:31:21","nodeType":"YulExpressionStatement","src":"20658:31:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9407,"isOffset":false,"isSlot":false,"src":"20483:14:21","valueSize":1},{"declaration":9410,"isOffset":false,"isSlot":false,"src":"20323:6:21","valueSize":1},{"declaration":9410,"isOffset":false,"isSlot":false,"src":"20368:6:21","valueSize":1},{"declaration":9410,"isOffset":false,"isSlot":false,"src":"20468:6:21","valueSize":1},{"declaration":9410,"isOffset":false,"isSlot":false,"src":"20528:6:21","valueSize":1},{"declaration":9410,"isOffset":false,"isSlot":false,"src":"20611:6:21","valueSize":1},{"declaration":9410,"isOffset":false,"isSlot":false,"src":"20675:6:21","valueSize":1}],"id":9412,"nodeType":"InlineAssembly","src":"20300:419:21"}]},"documentation":{"id":9405,"nodeType":"StructuredDocumentation","src":"20070:80:21","text":"@dev Returns the initialization code of the PUSH0 clone of `implementation`."},"id":9414,"implemented":true,"kind":"function","modifiers":[],"name":"initCode_PUSH0","nameLocation":"20164:14:21","nodeType":"FunctionDefinition","parameters":{"id":9408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9407,"mutability":"mutable","name":"implementation","nameLocation":"20187:14:21","nodeType":"VariableDeclaration","scope":9414,"src":"20179:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9406,"name":"address","nodeType":"ElementaryTypeName","src":"20179:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20178:24:21"},"returnParameters":{"id":9411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9410,"mutability":"mutable","name":"result","nameLocation":"20239:6:21","nodeType":"VariableDeclaration","scope":9414,"src":"20226:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9409,"name":"bytes","nodeType":"ElementaryTypeName","src":"20226:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20225:21:21"},"scope":10078,"src":"20155:570:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9423,"nodeType":"Block","src":"20971:397:21","statements":[{"AST":{"nativeSrc":"21033:329:21","nodeType":"YulBlock","src":"21033:329:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21054:4:21","nodeType":"YulLiteral","src":"21054:4:21","type":"","value":"0x24"},{"kind":"number","nativeSrc":"21060:34:21","nodeType":"YulLiteral","src":"21060:34:21","type":"","value":"0x5af43d5f5f3e6029573d5ffd5b3d5ff3"}],"functionName":{"name":"mstore","nativeSrc":"21047:6:21","nodeType":"YulIdentifier","src":"21047:6:21"},"nativeSrc":"21047:48:21","nodeType":"YulFunctionCall","src":"21047:48:21"},"nativeSrc":"21047:48:21","nodeType":"YulExpressionStatement","src":"21047:48:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21121:4:21","nodeType":"YulLiteral","src":"21121:4:21","type":"","value":"0x14"},{"name":"implementation","nativeSrc":"21127:14:21","nodeType":"YulIdentifier","src":"21127:14:21"}],"functionName":{"name":"mstore","nativeSrc":"21114:6:21","nodeType":"YulIdentifier","src":"21114:6:21"},"nativeSrc":"21114:28:21","nodeType":"YulFunctionCall","src":"21114:28:21"},"nativeSrc":"21114:28:21","nodeType":"YulExpressionStatement","src":"21114:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21168:4:21","nodeType":"YulLiteral","src":"21168:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21174:38:21","nodeType":"YulLiteral","src":"21174:38:21","type":"","value":"0x602d5f8160095f39f35f5f365f5f37365f73"}],"functionName":{"name":"mstore","nativeSrc":"21161:6:21","nodeType":"YulIdentifier","src":"21161:6:21"},"nativeSrc":"21161:52:21","nodeType":"YulFunctionCall","src":"21161:52:21"},"nativeSrc":"21161:52:21","nodeType":"YulExpressionStatement","src":"21161:52:21"},{"nativeSrc":"21235:29:21","nodeType":"YulAssignment","src":"21235:29:21","value":{"arguments":[{"kind":"number","nativeSrc":"21253:4:21","nodeType":"YulLiteral","src":"21253:4:21","type":"","value":"0x0e"},{"kind":"number","nativeSrc":"21259:4:21","nodeType":"YulLiteral","src":"21259:4:21","type":"","value":"0x36"}],"functionName":{"name":"keccak256","nativeSrc":"21243:9:21","nodeType":"YulIdentifier","src":"21243:9:21"},"nativeSrc":"21243:21:21","nodeType":"YulFunctionCall","src":"21243:21:21"},"variableNames":[{"name":"hash","nativeSrc":"21235:4:21","nodeType":"YulIdentifier","src":"21235:4:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21284:4:21","nodeType":"YulLiteral","src":"21284:4:21","type":"","value":"0x24"},{"kind":"number","nativeSrc":"21290:1:21","nodeType":"YulLiteral","src":"21290:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"21277:6:21","nodeType":"YulIdentifier","src":"21277:6:21"},"nativeSrc":"21277:15:21","nodeType":"YulFunctionCall","src":"21277:15:21"},"nativeSrc":"21277:15:21","nodeType":"YulExpressionStatement","src":"21277:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9420,"isOffset":false,"isSlot":false,"src":"21235:4:21","valueSize":1},{"declaration":9417,"isOffset":false,"isSlot":false,"src":"21127:14:21","valueSize":1}],"id":9422,"nodeType":"InlineAssembly","src":"21024:338:21"}]},"documentation":{"id":9415,"nodeType":"StructuredDocumentation","src":"20731:146:21","text":"@dev Returns the initialization code hash of the PUSH0 clone of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9424,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash_PUSH0","nameLocation":"20891:18:21","nodeType":"FunctionDefinition","parameters":{"id":9418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9417,"mutability":"mutable","name":"implementation","nameLocation":"20918:14:21","nodeType":"VariableDeclaration","scope":9424,"src":"20910:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9416,"name":"address","nodeType":"ElementaryTypeName","src":"20910:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20909:24:21"},"returnParameters":{"id":9421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9420,"mutability":"mutable","name":"hash","nameLocation":"20965:4:21","nodeType":"VariableDeclaration","scope":9424,"src":"20957:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20957:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20956:14:21"},"scope":10078,"src":"20882:486:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9450,"nodeType":"Block","src":"21760:137:21","statements":[{"assignments":[9437],"declarations":[{"constant":false,"id":9437,"mutability":"mutable","name":"hash","nameLocation":"21778:4:21","nodeType":"VariableDeclaration","scope":9450,"src":"21770:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21770:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9441,"initialValue":{"arguments":[{"id":9439,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9427,"src":"21804:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9438,"name":"initCodeHash_PUSH0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9424,"src":"21785:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21785:34:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21770:49:21"},{"expression":{"id":9448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9442,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9434,"src":"21829:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9444,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9437,"src":"21869:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9445,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9429,"src":"21875:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9446,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9431,"src":"21881:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9443,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9343,9576,10067],"referencedDeclaration":10067,"src":"21841:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21841:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21829:61:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9449,"nodeType":"ExpressionStatement","src":"21829:61:21"}]},"documentation":{"id":9425,"nodeType":"StructuredDocumentation","src":"21374:210:21","text":"@dev Returns the address of the deterministic PUSH0 clone of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9451,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress_PUSH0","nameLocation":"21598:33:21","nodeType":"FunctionDefinition","parameters":{"id":9432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9427,"mutability":"mutable","name":"implementation","nameLocation":"21649:14:21","nodeType":"VariableDeclaration","scope":9451,"src":"21641:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9426,"name":"address","nodeType":"ElementaryTypeName","src":"21641:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9429,"mutability":"mutable","name":"salt","nameLocation":"21681:4:21","nodeType":"VariableDeclaration","scope":9451,"src":"21673:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21673:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9431,"mutability":"mutable","name":"deployer","nameLocation":"21703:8:21","nodeType":"VariableDeclaration","scope":9451,"src":"21695:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9430,"name":"address","nodeType":"ElementaryTypeName","src":"21695:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21631:86:21"},"returnParameters":{"id":9435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9434,"mutability":"mutable","name":"predicted","nameLocation":"21749:9:21","nodeType":"VariableDeclaration","scope":9451,"src":"21741:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9433,"name":"address","nodeType":"ElementaryTypeName","src":"21741:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21740:19:21"},"scope":10078,"src":"21589:308:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9469,"nodeType":"Block","src":"22562:58:21","statements":[{"expression":{"id":9467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9461,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"22572:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22589:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9464,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9454,"src":"22592:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9465,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9456,"src":"22608:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9462,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[9251,9263,9470,9484],"referencedDeclaration":9484,"src":"22583:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (uint256,address,bytes memory) returns (address)"}},"id":9466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22583:30:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22572:41:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9468,"nodeType":"ExpressionStatement","src":"22572:41:21"}]},"documentation":{"id":9452,"nodeType":"StructuredDocumentation","src":"22375:88:21","text":"@dev Deploys a clone of `implementation` with immutable arguments encoded in `data`."},"id":9470,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"22477:5:21","nodeType":"FunctionDefinition","parameters":{"id":9457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9454,"mutability":"mutable","name":"implementation","nameLocation":"22491:14:21","nodeType":"VariableDeclaration","scope":9470,"src":"22483:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9453,"name":"address","nodeType":"ElementaryTypeName","src":"22483:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9456,"mutability":"mutable","name":"data","nameLocation":"22520:4:21","nodeType":"VariableDeclaration","scope":9470,"src":"22507:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9455,"name":"bytes","nodeType":"ElementaryTypeName","src":"22507:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22482:43:21"},"returnParameters":{"id":9460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9459,"mutability":"mutable","name":"instance","nameLocation":"22552:8:21","nodeType":"VariableDeclaration","scope":9470,"src":"22544:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9458,"name":"address","nodeType":"ElementaryTypeName","src":"22544:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22543:18:21"},"scope":10078,"src":"22468:152:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9483,"nodeType":"Block","src":"22896:11033:21","statements":[{"AST":{"nativeSrc":"22915:11008:21","nodeType":"YulBlock","src":"22915:11008:21","statements":[{"nativeSrc":"23017:38:21","nodeType":"YulVariableDeclaration","src":"23017:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23043:4:21","nodeType":"YulIdentifier","src":"23043:4:21"},{"kind":"number","nativeSrc":"23049:4:21","nodeType":"YulLiteral","src":"23049:4:21","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"23039:3:21","nodeType":"YulIdentifier","src":"23039:3:21"},"nativeSrc":"23039:15:21","nodeType":"YulFunctionCall","src":"23039:15:21"}],"functionName":{"name":"mload","nativeSrc":"23033:5:21","nodeType":"YulIdentifier","src":"23033:5:21"},"nativeSrc":"23033:22:21","nodeType":"YulFunctionCall","src":"23033:22:21"},"variables":[{"name":"mBefore3","nativeSrc":"23021:8:21","nodeType":"YulTypedName","src":"23021:8:21","type":""}]},{"nativeSrc":"23068:38:21","nodeType":"YulVariableDeclaration","src":"23068:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23094:4:21","nodeType":"YulIdentifier","src":"23094:4:21"},{"kind":"number","nativeSrc":"23100:4:21","nodeType":"YulLiteral","src":"23100:4:21","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"23090:3:21","nodeType":"YulIdentifier","src":"23090:3:21"},"nativeSrc":"23090:15:21","nodeType":"YulFunctionCall","src":"23090:15:21"}],"functionName":{"name":"mload","nativeSrc":"23084:5:21","nodeType":"YulIdentifier","src":"23084:5:21"},"nativeSrc":"23084:22:21","nodeType":"YulFunctionCall","src":"23084:22:21"},"variables":[{"name":"mBefore2","nativeSrc":"23072:8:21","nodeType":"YulTypedName","src":"23072:8:21","type":""}]},{"nativeSrc":"23119:38:21","nodeType":"YulVariableDeclaration","src":"23119:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23145:4:21","nodeType":"YulIdentifier","src":"23145:4:21"},{"kind":"number","nativeSrc":"23151:4:21","nodeType":"YulLiteral","src":"23151:4:21","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"23141:3:21","nodeType":"YulIdentifier","src":"23141:3:21"},"nativeSrc":"23141:15:21","nodeType":"YulFunctionCall","src":"23141:15:21"}],"functionName":{"name":"mload","nativeSrc":"23135:5:21","nodeType":"YulIdentifier","src":"23135:5:21"},"nativeSrc":"23135:22:21","nodeType":"YulFunctionCall","src":"23135:22:21"},"variables":[{"name":"mBefore1","nativeSrc":"23123:8:21","nodeType":"YulTypedName","src":"23123:8:21","type":""}]},{"nativeSrc":"23170:29:21","nodeType":"YulVariableDeclaration","src":"23170:29:21","value":{"arguments":[{"name":"data","nativeSrc":"23194:4:21","nodeType":"YulIdentifier","src":"23194:4:21"}],"functionName":{"name":"mload","nativeSrc":"23188:5:21","nodeType":"YulIdentifier","src":"23188:5:21"},"nativeSrc":"23188:11:21","nodeType":"YulFunctionCall","src":"23188:11:21"},"variables":[{"name":"dataLength","nativeSrc":"23174:10:21","nodeType":"YulTypedName","src":"23174:10:21","type":""}]},{"nativeSrc":"23212:47:21","nodeType":"YulVariableDeclaration","src":"23212:47:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"23235:4:21","nodeType":"YulIdentifier","src":"23235:4:21"},{"kind":"number","nativeSrc":"23241:4:21","nodeType":"YulLiteral","src":"23241:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23231:3:21","nodeType":"YulIdentifier","src":"23231:3:21"},"nativeSrc":"23231:15:21","nodeType":"YulFunctionCall","src":"23231:15:21"},{"name":"dataLength","nativeSrc":"23248:10:21","nodeType":"YulIdentifier","src":"23248:10:21"}],"functionName":{"name":"add","nativeSrc":"23227:3:21","nodeType":"YulIdentifier","src":"23227:3:21"},"nativeSrc":"23227:32:21","nodeType":"YulFunctionCall","src":"23227:32:21"},"variables":[{"name":"dataEnd","nativeSrc":"23216:7:21","nodeType":"YulTypedName","src":"23216:7:21","type":""}]},{"nativeSrc":"23272:29:21","nodeType":"YulVariableDeclaration","src":"23272:29:21","value":{"arguments":[{"name":"dataEnd","nativeSrc":"23293:7:21","nodeType":"YulIdentifier","src":"23293:7:21"}],"functionName":{"name":"mload","nativeSrc":"23287:5:21","nodeType":"YulIdentifier","src":"23287:5:21"},"nativeSrc":"23287:14:21","nodeType":"YulFunctionCall","src":"23287:14:21"},"variables":[{"name":"mAfter1","nativeSrc":"23276:7:21","nodeType":"YulTypedName","src":"23276:7:21","type":""}]},{"nativeSrc":"23396:37:21","nodeType":"YulVariableDeclaration","src":"23396:37:21","value":{"arguments":[{"name":"dataLength","nativeSrc":"23419:10:21","nodeType":"YulIdentifier","src":"23419:10:21"},{"kind":"number","nativeSrc":"23431:1:21","nodeType":"YulLiteral","src":"23431:1:21","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"23415:3:21","nodeType":"YulIdentifier","src":"23415:3:21"},"nativeSrc":"23415:18:21","nodeType":"YulFunctionCall","src":"23415:18:21"},"variables":[{"name":"extraLength","nativeSrc":"23400:11:21","nodeType":"YulTypedName","src":"23400:11:21","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"32412:4:21","nodeType":"YulIdentifier","src":"32412:4:21"},{"kind":"number","nativeSrc":"32418:28:21","nodeType":"YulLiteral","src":"32418:28:21","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"32405:6:21","nodeType":"YulIdentifier","src":"32405:6:21"},"nativeSrc":"32405:42:21","nodeType":"YulFunctionCall","src":"32405:42:21"},"nativeSrc":"32405:42:21","nodeType":"YulExpressionStatement","src":"32405:42:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32510:4:21","nodeType":"YulIdentifier","src":"32510:4:21"},{"kind":"number","nativeSrc":"32516:4:21","nodeType":"YulLiteral","src":"32516:4:21","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"32506:3:21","nodeType":"YulIdentifier","src":"32506:3:21"},"nativeSrc":"32506:15:21","nodeType":"YulFunctionCall","src":"32506:15:21"},{"name":"implementation","nativeSrc":"32523:14:21","nodeType":"YulIdentifier","src":"32523:14:21"}],"functionName":{"name":"mstore","nativeSrc":"32499:6:21","nodeType":"YulIdentifier","src":"32499:6:21"},"nativeSrc":"32499:39:21","nodeType":"YulFunctionCall","src":"32499:39:21"},"nativeSrc":"32499:39:21","nodeType":"YulExpressionStatement","src":"32499:39:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32670:4:21","nodeType":"YulIdentifier","src":"32670:4:21"},{"kind":"number","nativeSrc":"32676:4:21","nodeType":"YulLiteral","src":"32676:4:21","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"32666:3:21","nodeType":"YulIdentifier","src":"32666:3:21"},"nativeSrc":"32666:15:21","nodeType":"YulFunctionCall","src":"32666:15:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32706:4:21","nodeType":"YulLiteral","src":"32706:4:21","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"32712:11:21","nodeType":"YulIdentifier","src":"32712:11:21"}],"functionName":{"name":"shl","nativeSrc":"32702:3:21","nodeType":"YulIdentifier","src":"32702:3:21"},"nativeSrc":"32702:22:21","nodeType":"YulFunctionCall","src":"32702:22:21"},{"kind":"number","nativeSrc":"32726:52:21","nodeType":"YulLiteral","src":"32726:52:21","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"32699:2:21","nodeType":"YulIdentifier","src":"32699:2:21"},"nativeSrc":"32699:80:21","nodeType":"YulFunctionCall","src":"32699:80:21"}],"functionName":{"name":"mstore","nativeSrc":"32642:6:21","nodeType":"YulIdentifier","src":"32642:6:21"},"nativeSrc":"32642:151:21","nodeType":"YulFunctionCall","src":"32642:151:21"},"nativeSrc":"32642:151:21","nodeType":"YulExpressionStatement","src":"32642:151:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"32884:4:21","nodeType":"YulIdentifier","src":"32884:4:21"},{"kind":"number","nativeSrc":"32890:4:21","nodeType":"YulLiteral","src":"32890:4:21","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"32880:3:21","nodeType":"YulIdentifier","src":"32880:3:21"},"nativeSrc":"32880:15:21","nodeType":"YulFunctionCall","src":"32880:15:21"},{"kind":"number","nativeSrc":"32897:66:21","nodeType":"YulLiteral","src":"32897:66:21","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"32856:6:21","nodeType":"YulIdentifier","src":"32856:6:21"},"nativeSrc":"32856:121:21","nodeType":"YulFunctionCall","src":"32856:121:21"},"nativeSrc":"32856:121:21","nodeType":"YulExpressionStatement","src":"32856:121:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33201:4:21","nodeType":"YulIdentifier","src":"33201:4:21"},{"arguments":[{"kind":"number","nativeSrc":"33211:4:21","nodeType":"YulLiteral","src":"33211:4:21","type":"","value":"0x59"},{"arguments":[{"name":"extraLength","nativeSrc":"33220:11:21","nodeType":"YulIdentifier","src":"33220:11:21"},{"kind":"number","nativeSrc":"33233:6:21","nodeType":"YulLiteral","src":"33233:6:21","type":"","value":"0xff9e"}],"functionName":{"name":"lt","nativeSrc":"33217:2:21","nodeType":"YulIdentifier","src":"33217:2:21"},"nativeSrc":"33217:23:21","nodeType":"YulFunctionCall","src":"33217:23:21"}],"functionName":{"name":"add","nativeSrc":"33207:3:21","nodeType":"YulIdentifier","src":"33207:3:21"},"nativeSrc":"33207:34:21","nodeType":"YulFunctionCall","src":"33207:34:21"}],"functionName":{"name":"sub","nativeSrc":"33197:3:21","nodeType":"YulIdentifier","src":"33197:3:21"},"nativeSrc":"33197:45:21","nodeType":"YulFunctionCall","src":"33197:45:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"33267:4:21","nodeType":"YulLiteral","src":"33267:4:21","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"33277:11:21","nodeType":"YulIdentifier","src":"33277:11:21"},{"kind":"number","nativeSrc":"33290:4:21","nodeType":"YulLiteral","src":"33290:4:21","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"33273:3:21","nodeType":"YulIdentifier","src":"33273:3:21"},"nativeSrc":"33273:22:21","nodeType":"YulFunctionCall","src":"33273:22:21"}],"functionName":{"name":"shl","nativeSrc":"33263:3:21","nodeType":"YulIdentifier","src":"33263:3:21"},"nativeSrc":"33263:33:21","nodeType":"YulFunctionCall","src":"33263:33:21"},{"kind":"number","nativeSrc":"33298:40:21","nodeType":"YulLiteral","src":"33298:40:21","type":"","value":"0xfd6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"33260:2:21","nodeType":"YulIdentifier","src":"33260:2:21"},"nativeSrc":"33260:79:21","nodeType":"YulFunctionCall","src":"33260:79:21"}],"functionName":{"name":"mstore","nativeSrc":"32990:6:21","nodeType":"YulIdentifier","src":"32990:6:21"},"nativeSrc":"32990:363:21","nodeType":"YulFunctionCall","src":"32990:363:21"},"nativeSrc":"32990:363:21","nodeType":"YulExpressionStatement","src":"32990:363:21"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"33373:7:21","nodeType":"YulIdentifier","src":"33373:7:21"},{"arguments":[{"kind":"number","nativeSrc":"33386:4:21","nodeType":"YulLiteral","src":"33386:4:21","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"33392:11:21","nodeType":"YulIdentifier","src":"33392:11:21"}],"functionName":{"name":"shl","nativeSrc":"33382:3:21","nodeType":"YulIdentifier","src":"33382:3:21"},"nativeSrc":"33382:22:21","nodeType":"YulFunctionCall","src":"33382:22:21"}],"functionName":{"name":"mstore","nativeSrc":"33366:6:21","nodeType":"YulIdentifier","src":"33366:6:21"},"nativeSrc":"33366:39:21","nodeType":"YulFunctionCall","src":"33366:39:21"},"nativeSrc":"33366:39:21","nodeType":"YulExpressionStatement","src":"33366:39:21"},{"nativeSrc":"33419:66:21","nodeType":"YulAssignment","src":"33419:66:21","value":{"arguments":[{"name":"value","nativeSrc":"33438:5:21","nodeType":"YulIdentifier","src":"33438:5:21"},{"arguments":[{"name":"data","nativeSrc":"33449:4:21","nodeType":"YulIdentifier","src":"33449:4:21"},{"kind":"number","nativeSrc":"33455:4:21","nodeType":"YulLiteral","src":"33455:4:21","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"33445:3:21","nodeType":"YulIdentifier","src":"33445:3:21"},"nativeSrc":"33445:15:21","nodeType":"YulFunctionCall","src":"33445:15:21"},{"arguments":[{"name":"extraLength","nativeSrc":"33466:11:21","nodeType":"YulIdentifier","src":"33466:11:21"},{"kind":"number","nativeSrc":"33479:4:21","nodeType":"YulLiteral","src":"33479:4:21","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"33462:3:21","nodeType":"YulIdentifier","src":"33462:3:21"},"nativeSrc":"33462:22:21","nodeType":"YulFunctionCall","src":"33462:22:21"}],"functionName":{"name":"create","nativeSrc":"33431:6:21","nodeType":"YulIdentifier","src":"33431:6:21"},"nativeSrc":"33431:54:21","nodeType":"YulFunctionCall","src":"33431:54:21"},"variableNames":[{"name":"instance","nativeSrc":"33419:8:21","nodeType":"YulIdentifier","src":"33419:8:21"}]},{"body":{"nativeSrc":"33518:116:21","nodeType":"YulBlock","src":"33518:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33543:4:21","nodeType":"YulLiteral","src":"33543:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"33549:10:21","nodeType":"YulLiteral","src":"33549:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"33536:6:21","nodeType":"YulIdentifier","src":"33536:6:21"},"nativeSrc":"33536:24:21","nodeType":"YulFunctionCall","src":"33536:24:21"},"nativeSrc":"33536:24:21","nodeType":"YulExpressionStatement","src":"33536:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33609:4:21","nodeType":"YulLiteral","src":"33609:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"33615:4:21","nodeType":"YulLiteral","src":"33615:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"33602:6:21","nodeType":"YulIdentifier","src":"33602:6:21"},"nativeSrc":"33602:18:21","nodeType":"YulFunctionCall","src":"33602:18:21"},"nativeSrc":"33602:18:21","nodeType":"YulExpressionStatement","src":"33602:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"33508:8:21","nodeType":"YulIdentifier","src":"33508:8:21"}],"functionName":{"name":"iszero","nativeSrc":"33501:6:21","nodeType":"YulIdentifier","src":"33501:6:21"},"nativeSrc":"33501:16:21","nodeType":"YulFunctionCall","src":"33501:16:21"},"nativeSrc":"33498:136:21","nodeType":"YulIf","src":"33498:136:21"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"33721:7:21","nodeType":"YulIdentifier","src":"33721:7:21"},{"name":"mAfter1","nativeSrc":"33730:7:21","nodeType":"YulIdentifier","src":"33730:7:21"}],"functionName":{"name":"mstore","nativeSrc":"33714:6:21","nodeType":"YulIdentifier","src":"33714:6:21"},"nativeSrc":"33714:24:21","nodeType":"YulFunctionCall","src":"33714:24:21"},"nativeSrc":"33714:24:21","nodeType":"YulExpressionStatement","src":"33714:24:21"},{"expression":{"arguments":[{"name":"data","nativeSrc":"33758:4:21","nodeType":"YulIdentifier","src":"33758:4:21"},{"name":"dataLength","nativeSrc":"33764:10:21","nodeType":"YulIdentifier","src":"33764:10:21"}],"functionName":{"name":"mstore","nativeSrc":"33751:6:21","nodeType":"YulIdentifier","src":"33751:6:21"},"nativeSrc":"33751:24:21","nodeType":"YulFunctionCall","src":"33751:24:21"},"nativeSrc":"33751:24:21","nodeType":"YulExpressionStatement","src":"33751:24:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33799:4:21","nodeType":"YulIdentifier","src":"33799:4:21"},{"kind":"number","nativeSrc":"33805:4:21","nodeType":"YulLiteral","src":"33805:4:21","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"33795:3:21","nodeType":"YulIdentifier","src":"33795:3:21"},"nativeSrc":"33795:15:21","nodeType":"YulFunctionCall","src":"33795:15:21"},{"name":"mBefore1","nativeSrc":"33812:8:21","nodeType":"YulIdentifier","src":"33812:8:21"}],"functionName":{"name":"mstore","nativeSrc":"33788:6:21","nodeType":"YulIdentifier","src":"33788:6:21"},"nativeSrc":"33788:33:21","nodeType":"YulFunctionCall","src":"33788:33:21"},"nativeSrc":"33788:33:21","nodeType":"YulExpressionStatement","src":"33788:33:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33845:4:21","nodeType":"YulIdentifier","src":"33845:4:21"},{"kind":"number","nativeSrc":"33851:4:21","nodeType":"YulLiteral","src":"33851:4:21","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"33841:3:21","nodeType":"YulIdentifier","src":"33841:3:21"},"nativeSrc":"33841:15:21","nodeType":"YulFunctionCall","src":"33841:15:21"},{"name":"mBefore2","nativeSrc":"33858:8:21","nodeType":"YulIdentifier","src":"33858:8:21"}],"functionName":{"name":"mstore","nativeSrc":"33834:6:21","nodeType":"YulIdentifier","src":"33834:6:21"},"nativeSrc":"33834:33:21","nodeType":"YulFunctionCall","src":"33834:33:21"},"nativeSrc":"33834:33:21","nodeType":"YulExpressionStatement","src":"33834:33:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"33891:4:21","nodeType":"YulIdentifier","src":"33891:4:21"},{"kind":"number","nativeSrc":"33897:4:21","nodeType":"YulLiteral","src":"33897:4:21","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"33887:3:21","nodeType":"YulIdentifier","src":"33887:3:21"},"nativeSrc":"33887:15:21","nodeType":"YulFunctionCall","src":"33887:15:21"},{"name":"mBefore3","nativeSrc":"33904:8:21","nodeType":"YulIdentifier","src":"33904:8:21"}],"functionName":{"name":"mstore","nativeSrc":"33880:6:21","nodeType":"YulIdentifier","src":"33880:6:21"},"nativeSrc":"33880:33:21","nodeType":"YulFunctionCall","src":"33880:33:21"},"nativeSrc":"33880:33:21","nodeType":"YulExpressionStatement","src":"33880:33:21"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9477,"isOffset":false,"isSlot":false,"src":"23043:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"23094:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"23145:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"23194:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"23235:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"32412:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"32510:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"32670:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"32884:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"33201:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"33449:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"33758:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"33799:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"33845:4:21","valueSize":1},{"declaration":9477,"isOffset":false,"isSlot":false,"src":"33891:4:21","valueSize":1},{"declaration":9475,"isOffset":false,"isSlot":false,"src":"32523:14:21","valueSize":1},{"declaration":9480,"isOffset":false,"isSlot":false,"src":"33419:8:21","valueSize":1},{"declaration":9480,"isOffset":false,"isSlot":false,"src":"33508:8:21","valueSize":1},{"declaration":9473,"isOffset":false,"isSlot":false,"src":"33438:5:21","valueSize":1}],"id":9482,"nodeType":"InlineAssembly","src":"22906:11017:21"}]},"documentation":{"id":9471,"nodeType":"StructuredDocumentation","src":"22626:136:21","text":"@dev Deploys a clone of `implementation` with immutable arguments encoded in `data`.\n Deposits `value` ETH during deployment."},"id":9484,"implemented":true,"kind":"function","modifiers":[],"name":"clone","nameLocation":"22776:5:21","nodeType":"FunctionDefinition","parameters":{"id":9478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9473,"mutability":"mutable","name":"value","nameLocation":"22790:5:21","nodeType":"VariableDeclaration","scope":9484,"src":"22782:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9472,"name":"uint256","nodeType":"ElementaryTypeName","src":"22782:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9475,"mutability":"mutable","name":"implementation","nameLocation":"22805:14:21","nodeType":"VariableDeclaration","scope":9484,"src":"22797:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9474,"name":"address","nodeType":"ElementaryTypeName","src":"22797:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9477,"mutability":"mutable","name":"data","nameLocation":"22834:4:21","nodeType":"VariableDeclaration","scope":9484,"src":"22821:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9476,"name":"bytes","nodeType":"ElementaryTypeName","src":"22821:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22781:58:21"},"returnParameters":{"id":9481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9480,"mutability":"mutable","name":"instance","nameLocation":"22882:8:21","nodeType":"VariableDeclaration","scope":9484,"src":"22874:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9479,"name":"address","nodeType":"ElementaryTypeName","src":"22874:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22873:18:21"},"scope":10078,"src":"22767:11162:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9505,"nodeType":"Block","src":"34202:77:21","statements":[{"expression":{"id":9503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9496,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"34212:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34242:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9499,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9487,"src":"34245:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9500,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9489,"src":"34261:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9501,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9491,"src":"34267:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9497,"name":"cloneDeterministic","nodeType":"Identifier","overloadedDeclarations":[9282,9296,9506,9522],"referencedDeclaration":9522,"src":"34223:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes memory,bytes32) returns (address)"}},"id":9502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34223:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34212:60:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9504,"nodeType":"ExpressionStatement","src":"34212:60:21"}]},"documentation":{"id":9485,"nodeType":"StructuredDocumentation","src":"33935:121:21","text":"@dev Deploys a deterministic clone of `implementation`\n with immutable arguments encoded in `data` and `salt`."},"id":9506,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"34070:18:21","nodeType":"FunctionDefinition","parameters":{"id":9492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9487,"mutability":"mutable","name":"implementation","nameLocation":"34097:14:21","nodeType":"VariableDeclaration","scope":9506,"src":"34089:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9486,"name":"address","nodeType":"ElementaryTypeName","src":"34089:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9489,"mutability":"mutable","name":"data","nameLocation":"34126:4:21","nodeType":"VariableDeclaration","scope":9506,"src":"34113:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9488,"name":"bytes","nodeType":"ElementaryTypeName","src":"34113:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9491,"mutability":"mutable","name":"salt","nameLocation":"34140:4:21","nodeType":"VariableDeclaration","scope":9506,"src":"34132:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34132:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34088:57:21"},"returnParameters":{"id":9495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9494,"mutability":"mutable","name":"instance","nameLocation":"34188:8:21","nodeType":"VariableDeclaration","scope":9506,"src":"34180:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9493,"name":"address","nodeType":"ElementaryTypeName","src":"34180:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34179:18:21"},"scope":10078,"src":"34061:218:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9521,"nodeType":"Block","src":"34585:2082:21","statements":[{"AST":{"nativeSrc":"34604:2057:21","nodeType":"YulBlock","src":"34604:2057:21","statements":[{"nativeSrc":"34706:38:21","nodeType":"YulVariableDeclaration","src":"34706:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34732:4:21","nodeType":"YulIdentifier","src":"34732:4:21"},{"kind":"number","nativeSrc":"34738:4:21","nodeType":"YulLiteral","src":"34738:4:21","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"34728:3:21","nodeType":"YulIdentifier","src":"34728:3:21"},"nativeSrc":"34728:15:21","nodeType":"YulFunctionCall","src":"34728:15:21"}],"functionName":{"name":"mload","nativeSrc":"34722:5:21","nodeType":"YulIdentifier","src":"34722:5:21"},"nativeSrc":"34722:22:21","nodeType":"YulFunctionCall","src":"34722:22:21"},"variables":[{"name":"mBefore3","nativeSrc":"34710:8:21","nodeType":"YulTypedName","src":"34710:8:21","type":""}]},{"nativeSrc":"34757:38:21","nodeType":"YulVariableDeclaration","src":"34757:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34783:4:21","nodeType":"YulIdentifier","src":"34783:4:21"},{"kind":"number","nativeSrc":"34789:4:21","nodeType":"YulLiteral","src":"34789:4:21","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"34779:3:21","nodeType":"YulIdentifier","src":"34779:3:21"},"nativeSrc":"34779:15:21","nodeType":"YulFunctionCall","src":"34779:15:21"}],"functionName":{"name":"mload","nativeSrc":"34773:5:21","nodeType":"YulIdentifier","src":"34773:5:21"},"nativeSrc":"34773:22:21","nodeType":"YulFunctionCall","src":"34773:22:21"},"variables":[{"name":"mBefore2","nativeSrc":"34761:8:21","nodeType":"YulTypedName","src":"34761:8:21","type":""}]},{"nativeSrc":"34808:38:21","nodeType":"YulVariableDeclaration","src":"34808:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34834:4:21","nodeType":"YulIdentifier","src":"34834:4:21"},{"kind":"number","nativeSrc":"34840:4:21","nodeType":"YulLiteral","src":"34840:4:21","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"34830:3:21","nodeType":"YulIdentifier","src":"34830:3:21"},"nativeSrc":"34830:15:21","nodeType":"YulFunctionCall","src":"34830:15:21"}],"functionName":{"name":"mload","nativeSrc":"34824:5:21","nodeType":"YulIdentifier","src":"34824:5:21"},"nativeSrc":"34824:22:21","nodeType":"YulFunctionCall","src":"34824:22:21"},"variables":[{"name":"mBefore1","nativeSrc":"34812:8:21","nodeType":"YulTypedName","src":"34812:8:21","type":""}]},{"nativeSrc":"34859:29:21","nodeType":"YulVariableDeclaration","src":"34859:29:21","value":{"arguments":[{"name":"data","nativeSrc":"34883:4:21","nodeType":"YulIdentifier","src":"34883:4:21"}],"functionName":{"name":"mload","nativeSrc":"34877:5:21","nodeType":"YulIdentifier","src":"34877:5:21"},"nativeSrc":"34877:11:21","nodeType":"YulFunctionCall","src":"34877:11:21"},"variables":[{"name":"dataLength","nativeSrc":"34863:10:21","nodeType":"YulTypedName","src":"34863:10:21","type":""}]},{"nativeSrc":"34901:47:21","nodeType":"YulVariableDeclaration","src":"34901:47:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"34924:4:21","nodeType":"YulIdentifier","src":"34924:4:21"},{"kind":"number","nativeSrc":"34930:4:21","nodeType":"YulLiteral","src":"34930:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34920:3:21","nodeType":"YulIdentifier","src":"34920:3:21"},"nativeSrc":"34920:15:21","nodeType":"YulFunctionCall","src":"34920:15:21"},{"name":"dataLength","nativeSrc":"34937:10:21","nodeType":"YulIdentifier","src":"34937:10:21"}],"functionName":{"name":"add","nativeSrc":"34916:3:21","nodeType":"YulIdentifier","src":"34916:3:21"},"nativeSrc":"34916:32:21","nodeType":"YulFunctionCall","src":"34916:32:21"},"variables":[{"name":"dataEnd","nativeSrc":"34905:7:21","nodeType":"YulTypedName","src":"34905:7:21","type":""}]},{"nativeSrc":"34961:29:21","nodeType":"YulVariableDeclaration","src":"34961:29:21","value":{"arguments":[{"name":"dataEnd","nativeSrc":"34982:7:21","nodeType":"YulIdentifier","src":"34982:7:21"}],"functionName":{"name":"mload","nativeSrc":"34976:5:21","nodeType":"YulIdentifier","src":"34976:5:21"},"nativeSrc":"34976:14:21","nodeType":"YulFunctionCall","src":"34976:14:21"},"variables":[{"name":"mAfter1","nativeSrc":"34965:7:21","nodeType":"YulTypedName","src":"34965:7:21","type":""}]},{"nativeSrc":"35085:37:21","nodeType":"YulVariableDeclaration","src":"35085:37:21","value":{"arguments":[{"name":"dataLength","nativeSrc":"35108:10:21","nodeType":"YulIdentifier","src":"35108:10:21"},{"kind":"number","nativeSrc":"35120:1:21","nodeType":"YulLiteral","src":"35120:1:21","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"35104:3:21","nodeType":"YulIdentifier","src":"35104:3:21"},"nativeSrc":"35104:18:21","nodeType":"YulFunctionCall","src":"35104:18:21"},"variables":[{"name":"extraLength","nativeSrc":"35089:11:21","nodeType":"YulTypedName","src":"35089:11:21","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"35143:4:21","nodeType":"YulIdentifier","src":"35143:4:21"},{"kind":"number","nativeSrc":"35149:28:21","nodeType":"YulLiteral","src":"35149:28:21","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"35136:6:21","nodeType":"YulIdentifier","src":"35136:6:21"},"nativeSrc":"35136:42:21","nodeType":"YulFunctionCall","src":"35136:42:21"},"nativeSrc":"35136:42:21","nodeType":"YulExpressionStatement","src":"35136:42:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35241:4:21","nodeType":"YulIdentifier","src":"35241:4:21"},{"kind":"number","nativeSrc":"35247:4:21","nodeType":"YulLiteral","src":"35247:4:21","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"35237:3:21","nodeType":"YulIdentifier","src":"35237:3:21"},"nativeSrc":"35237:15:21","nodeType":"YulFunctionCall","src":"35237:15:21"},{"name":"implementation","nativeSrc":"35254:14:21","nodeType":"YulIdentifier","src":"35254:14:21"}],"functionName":{"name":"mstore","nativeSrc":"35230:6:21","nodeType":"YulIdentifier","src":"35230:6:21"},"nativeSrc":"35230:39:21","nodeType":"YulFunctionCall","src":"35230:39:21"},"nativeSrc":"35230:39:21","nodeType":"YulExpressionStatement","src":"35230:39:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35401:4:21","nodeType":"YulIdentifier","src":"35401:4:21"},{"kind":"number","nativeSrc":"35407:4:21","nodeType":"YulLiteral","src":"35407:4:21","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"35397:3:21","nodeType":"YulIdentifier","src":"35397:3:21"},"nativeSrc":"35397:15:21","nodeType":"YulFunctionCall","src":"35397:15:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35437:4:21","nodeType":"YulLiteral","src":"35437:4:21","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"35443:11:21","nodeType":"YulIdentifier","src":"35443:11:21"}],"functionName":{"name":"shl","nativeSrc":"35433:3:21","nodeType":"YulIdentifier","src":"35433:3:21"},"nativeSrc":"35433:22:21","nodeType":"YulFunctionCall","src":"35433:22:21"},{"kind":"number","nativeSrc":"35457:52:21","nodeType":"YulLiteral","src":"35457:52:21","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"35430:2:21","nodeType":"YulIdentifier","src":"35430:2:21"},"nativeSrc":"35430:80:21","nodeType":"YulFunctionCall","src":"35430:80:21"}],"functionName":{"name":"mstore","nativeSrc":"35373:6:21","nodeType":"YulIdentifier","src":"35373:6:21"},"nativeSrc":"35373:151:21","nodeType":"YulFunctionCall","src":"35373:151:21"},"nativeSrc":"35373:151:21","nodeType":"YulExpressionStatement","src":"35373:151:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35615:4:21","nodeType":"YulIdentifier","src":"35615:4:21"},{"kind":"number","nativeSrc":"35621:4:21","nodeType":"YulLiteral","src":"35621:4:21","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"35611:3:21","nodeType":"YulIdentifier","src":"35611:3:21"},"nativeSrc":"35611:15:21","nodeType":"YulFunctionCall","src":"35611:15:21"},{"kind":"number","nativeSrc":"35628:66:21","nodeType":"YulLiteral","src":"35628:66:21","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"35587:6:21","nodeType":"YulIdentifier","src":"35587:6:21"},"nativeSrc":"35587:121:21","nodeType":"YulFunctionCall","src":"35587:121:21"},"nativeSrc":"35587:121:21","nodeType":"YulExpressionStatement","src":"35587:121:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"35932:4:21","nodeType":"YulIdentifier","src":"35932:4:21"},{"arguments":[{"kind":"number","nativeSrc":"35942:4:21","nodeType":"YulLiteral","src":"35942:4:21","type":"","value":"0x59"},{"arguments":[{"name":"extraLength","nativeSrc":"35951:11:21","nodeType":"YulIdentifier","src":"35951:11:21"},{"kind":"number","nativeSrc":"35964:6:21","nodeType":"YulLiteral","src":"35964:6:21","type":"","value":"0xff9e"}],"functionName":{"name":"lt","nativeSrc":"35948:2:21","nodeType":"YulIdentifier","src":"35948:2:21"},"nativeSrc":"35948:23:21","nodeType":"YulFunctionCall","src":"35948:23:21"}],"functionName":{"name":"add","nativeSrc":"35938:3:21","nodeType":"YulIdentifier","src":"35938:3:21"},"nativeSrc":"35938:34:21","nodeType":"YulFunctionCall","src":"35938:34:21"}],"functionName":{"name":"sub","nativeSrc":"35928:3:21","nodeType":"YulIdentifier","src":"35928:3:21"},"nativeSrc":"35928:45:21","nodeType":"YulFunctionCall","src":"35928:45:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"35998:4:21","nodeType":"YulLiteral","src":"35998:4:21","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"36008:11:21","nodeType":"YulIdentifier","src":"36008:11:21"},{"kind":"number","nativeSrc":"36021:4:21","nodeType":"YulLiteral","src":"36021:4:21","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"36004:3:21","nodeType":"YulIdentifier","src":"36004:3:21"},"nativeSrc":"36004:22:21","nodeType":"YulFunctionCall","src":"36004:22:21"}],"functionName":{"name":"shl","nativeSrc":"35994:3:21","nodeType":"YulIdentifier","src":"35994:3:21"},"nativeSrc":"35994:33:21","nodeType":"YulFunctionCall","src":"35994:33:21"},{"kind":"number","nativeSrc":"36029:40:21","nodeType":"YulLiteral","src":"36029:40:21","type":"","value":"0xfd6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"35991:2:21","nodeType":"YulIdentifier","src":"35991:2:21"},"nativeSrc":"35991:79:21","nodeType":"YulFunctionCall","src":"35991:79:21"}],"functionName":{"name":"mstore","nativeSrc":"35721:6:21","nodeType":"YulIdentifier","src":"35721:6:21"},"nativeSrc":"35721:363:21","nodeType":"YulFunctionCall","src":"35721:363:21"},"nativeSrc":"35721:363:21","nodeType":"YulExpressionStatement","src":"35721:363:21"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"36104:7:21","nodeType":"YulIdentifier","src":"36104:7:21"},{"arguments":[{"kind":"number","nativeSrc":"36117:4:21","nodeType":"YulLiteral","src":"36117:4:21","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"36123:11:21","nodeType":"YulIdentifier","src":"36123:11:21"}],"functionName":{"name":"shl","nativeSrc":"36113:3:21","nodeType":"YulIdentifier","src":"36113:3:21"},"nativeSrc":"36113:22:21","nodeType":"YulFunctionCall","src":"36113:22:21"}],"functionName":{"name":"mstore","nativeSrc":"36097:6:21","nodeType":"YulIdentifier","src":"36097:6:21"},"nativeSrc":"36097:39:21","nodeType":"YulFunctionCall","src":"36097:39:21"},"nativeSrc":"36097:39:21","nodeType":"YulExpressionStatement","src":"36097:39:21"},{"nativeSrc":"36150:73:21","nodeType":"YulAssignment","src":"36150:73:21","value":{"arguments":[{"name":"value","nativeSrc":"36170:5:21","nodeType":"YulIdentifier","src":"36170:5:21"},{"arguments":[{"name":"data","nativeSrc":"36181:4:21","nodeType":"YulIdentifier","src":"36181:4:21"},{"kind":"number","nativeSrc":"36187:4:21","nodeType":"YulLiteral","src":"36187:4:21","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"36177:3:21","nodeType":"YulIdentifier","src":"36177:3:21"},"nativeSrc":"36177:15:21","nodeType":"YulFunctionCall","src":"36177:15:21"},{"arguments":[{"name":"extraLength","nativeSrc":"36198:11:21","nodeType":"YulIdentifier","src":"36198:11:21"},{"kind":"number","nativeSrc":"36211:4:21","nodeType":"YulLiteral","src":"36211:4:21","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"36194:3:21","nodeType":"YulIdentifier","src":"36194:3:21"},"nativeSrc":"36194:22:21","nodeType":"YulFunctionCall","src":"36194:22:21"},{"name":"salt","nativeSrc":"36218:4:21","nodeType":"YulIdentifier","src":"36218:4:21"}],"functionName":{"name":"create2","nativeSrc":"36162:7:21","nodeType":"YulIdentifier","src":"36162:7:21"},"nativeSrc":"36162:61:21","nodeType":"YulFunctionCall","src":"36162:61:21"},"variableNames":[{"name":"instance","nativeSrc":"36150:8:21","nodeType":"YulIdentifier","src":"36150:8:21"}]},{"body":{"nativeSrc":"36256:116:21","nodeType":"YulBlock","src":"36256:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36281:4:21","nodeType":"YulLiteral","src":"36281:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"36287:10:21","nodeType":"YulLiteral","src":"36287:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"36274:6:21","nodeType":"YulIdentifier","src":"36274:6:21"},"nativeSrc":"36274:24:21","nodeType":"YulFunctionCall","src":"36274:24:21"},"nativeSrc":"36274:24:21","nodeType":"YulExpressionStatement","src":"36274:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36347:4:21","nodeType":"YulLiteral","src":"36347:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"36353:4:21","nodeType":"YulLiteral","src":"36353:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"36340:6:21","nodeType":"YulIdentifier","src":"36340:6:21"},"nativeSrc":"36340:18:21","nodeType":"YulFunctionCall","src":"36340:18:21"},"nativeSrc":"36340:18:21","nodeType":"YulExpressionStatement","src":"36340:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"36246:8:21","nodeType":"YulIdentifier","src":"36246:8:21"}],"functionName":{"name":"iszero","nativeSrc":"36239:6:21","nodeType":"YulIdentifier","src":"36239:6:21"},"nativeSrc":"36239:16:21","nodeType":"YulFunctionCall","src":"36239:16:21"},"nativeSrc":"36236:136:21","nodeType":"YulIf","src":"36236:136:21"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"36459:7:21","nodeType":"YulIdentifier","src":"36459:7:21"},{"name":"mAfter1","nativeSrc":"36468:7:21","nodeType":"YulIdentifier","src":"36468:7:21"}],"functionName":{"name":"mstore","nativeSrc":"36452:6:21","nodeType":"YulIdentifier","src":"36452:6:21"},"nativeSrc":"36452:24:21","nodeType":"YulFunctionCall","src":"36452:24:21"},"nativeSrc":"36452:24:21","nodeType":"YulExpressionStatement","src":"36452:24:21"},{"expression":{"arguments":[{"name":"data","nativeSrc":"36496:4:21","nodeType":"YulIdentifier","src":"36496:4:21"},{"name":"dataLength","nativeSrc":"36502:10:21","nodeType":"YulIdentifier","src":"36502:10:21"}],"functionName":{"name":"mstore","nativeSrc":"36489:6:21","nodeType":"YulIdentifier","src":"36489:6:21"},"nativeSrc":"36489:24:21","nodeType":"YulFunctionCall","src":"36489:24:21"},"nativeSrc":"36489:24:21","nodeType":"YulExpressionStatement","src":"36489:24:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36537:4:21","nodeType":"YulIdentifier","src":"36537:4:21"},{"kind":"number","nativeSrc":"36543:4:21","nodeType":"YulLiteral","src":"36543:4:21","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"36533:3:21","nodeType":"YulIdentifier","src":"36533:3:21"},"nativeSrc":"36533:15:21","nodeType":"YulFunctionCall","src":"36533:15:21"},{"name":"mBefore1","nativeSrc":"36550:8:21","nodeType":"YulIdentifier","src":"36550:8:21"}],"functionName":{"name":"mstore","nativeSrc":"36526:6:21","nodeType":"YulIdentifier","src":"36526:6:21"},"nativeSrc":"36526:33:21","nodeType":"YulFunctionCall","src":"36526:33:21"},"nativeSrc":"36526:33:21","nodeType":"YulExpressionStatement","src":"36526:33:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36583:4:21","nodeType":"YulIdentifier","src":"36583:4:21"},{"kind":"number","nativeSrc":"36589:4:21","nodeType":"YulLiteral","src":"36589:4:21","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"36579:3:21","nodeType":"YulIdentifier","src":"36579:3:21"},"nativeSrc":"36579:15:21","nodeType":"YulFunctionCall","src":"36579:15:21"},{"name":"mBefore2","nativeSrc":"36596:8:21","nodeType":"YulIdentifier","src":"36596:8:21"}],"functionName":{"name":"mstore","nativeSrc":"36572:6:21","nodeType":"YulIdentifier","src":"36572:6:21"},"nativeSrc":"36572:33:21","nodeType":"YulFunctionCall","src":"36572:33:21"},"nativeSrc":"36572:33:21","nodeType":"YulExpressionStatement","src":"36572:33:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"36629:4:21","nodeType":"YulIdentifier","src":"36629:4:21"},{"kind":"number","nativeSrc":"36635:4:21","nodeType":"YulLiteral","src":"36635:4:21","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"36625:3:21","nodeType":"YulIdentifier","src":"36625:3:21"},"nativeSrc":"36625:15:21","nodeType":"YulFunctionCall","src":"36625:15:21"},{"name":"mBefore3","nativeSrc":"36642:8:21","nodeType":"YulIdentifier","src":"36642:8:21"}],"functionName":{"name":"mstore","nativeSrc":"36618:6:21","nodeType":"YulIdentifier","src":"36618:6:21"},"nativeSrc":"36618:33:21","nodeType":"YulFunctionCall","src":"36618:33:21"},"nativeSrc":"36618:33:21","nodeType":"YulExpressionStatement","src":"36618:33:21"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9513,"isOffset":false,"isSlot":false,"src":"34732:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"34783:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"34834:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"34883:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"34924:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"35143:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"35241:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"35401:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"35615:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"35932:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"36181:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"36496:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"36537:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"36583:4:21","valueSize":1},{"declaration":9513,"isOffset":false,"isSlot":false,"src":"36629:4:21","valueSize":1},{"declaration":9511,"isOffset":false,"isSlot":false,"src":"35254:14:21","valueSize":1},{"declaration":9518,"isOffset":false,"isSlot":false,"src":"36150:8:21","valueSize":1},{"declaration":9518,"isOffset":false,"isSlot":false,"src":"36246:8:21","valueSize":1},{"declaration":9515,"isOffset":false,"isSlot":false,"src":"36218:4:21","valueSize":1},{"declaration":9509,"isOffset":false,"isSlot":false,"src":"36170:5:21","valueSize":1}],"id":9520,"nodeType":"InlineAssembly","src":"34595:2066:21"}]},"documentation":{"id":9507,"nodeType":"StructuredDocumentation","src":"34285:121:21","text":"@dev Deploys a deterministic clone of `implementation`\n with immutable arguments encoded in `data` and `salt`."},"id":9522,"implemented":true,"kind":"function","modifiers":[],"name":"cloneDeterministic","nameLocation":"34420:18:21","nodeType":"FunctionDefinition","parameters":{"id":9516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9509,"mutability":"mutable","name":"value","nameLocation":"34456:5:21","nodeType":"VariableDeclaration","scope":9522,"src":"34448:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9508,"name":"uint256","nodeType":"ElementaryTypeName","src":"34448:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9511,"mutability":"mutable","name":"implementation","nameLocation":"34479:14:21","nodeType":"VariableDeclaration","scope":9522,"src":"34471:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9510,"name":"address","nodeType":"ElementaryTypeName","src":"34471:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9513,"mutability":"mutable","name":"data","nameLocation":"34516:4:21","nodeType":"VariableDeclaration","scope":9522,"src":"34503:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9512,"name":"bytes","nodeType":"ElementaryTypeName","src":"34503:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9515,"mutability":"mutable","name":"salt","nameLocation":"34538:4:21","nodeType":"VariableDeclaration","scope":9522,"src":"34530:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34530:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34438:110:21"},"returnParameters":{"id":9519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9518,"mutability":"mutable","name":"instance","nameLocation":"34575:8:21","nodeType":"VariableDeclaration","scope":9522,"src":"34567:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9517,"name":"address","nodeType":"ElementaryTypeName","src":"34567:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34566:18:21"},"scope":10078,"src":"34411:2256:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9533,"nodeType":"Block","src":"36942:1919:21","statements":[{"AST":{"nativeSrc":"37004:1851:21","nodeType":"YulBlock","src":"37004:1851:21","statements":[{"nativeSrc":"37018:21:21","nodeType":"YulAssignment","src":"37018:21:21","value":{"arguments":[{"kind":"number","nativeSrc":"37034:4:21","nodeType":"YulLiteral","src":"37034:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37028:5:21","nodeType":"YulIdentifier","src":"37028:5:21"},"nativeSrc":"37028:11:21","nodeType":"YulFunctionCall","src":"37028:11:21"},"variableNames":[{"name":"result","nativeSrc":"37018:6:21","nodeType":"YulIdentifier","src":"37018:6:21"}]},{"nativeSrc":"37052:29:21","nodeType":"YulVariableDeclaration","src":"37052:29:21","value":{"arguments":[{"name":"data","nativeSrc":"37076:4:21","nodeType":"YulIdentifier","src":"37076:4:21"}],"functionName":{"name":"mload","nativeSrc":"37070:5:21","nodeType":"YulIdentifier","src":"37070:5:21"},"nativeSrc":"37070:11:21","nodeType":"YulFunctionCall","src":"37070:11:21"},"variables":[{"name":"dataLength","nativeSrc":"37056:10:21","nodeType":"YulTypedName","src":"37056:10:21","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"37284:14:21","nodeType":"YulIdentifier","src":"37284:14:21"},"nativeSrc":"37284:16:21","nodeType":"YulFunctionCall","src":"37284:16:21"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"37302:14:21","nodeType":"YulIdentifier","src":"37302:14:21"},"nativeSrc":"37302:16:21","nodeType":"YulFunctionCall","src":"37302:16:21"},{"arguments":[{"name":"dataLength","nativeSrc":"37323:10:21","nodeType":"YulIdentifier","src":"37323:10:21"},{"kind":"number","nativeSrc":"37335:6:21","nodeType":"YulLiteral","src":"37335:6:21","type":"","value":"0xff9b"}],"functionName":{"name":"gt","nativeSrc":"37320:2:21","nodeType":"YulIdentifier","src":"37320:2:21"},"nativeSrc":"37320:22:21","nodeType":"YulFunctionCall","src":"37320:22:21"}],"functionName":{"name":"returndatacopy","nativeSrc":"37269:14:21","nodeType":"YulIdentifier","src":"37269:14:21"},"nativeSrc":"37269:74:21","nodeType":"YulFunctionCall","src":"37269:74:21"},"nativeSrc":"37269:74:21","nodeType":"YulExpressionStatement","src":"37269:74:21"},{"nativeSrc":"37357:26:21","nodeType":"YulVariableDeclaration","src":"37357:26:21","value":{"arguments":[{"name":"result","nativeSrc":"37370:6:21","nodeType":"YulIdentifier","src":"37370:6:21"},{"kind":"number","nativeSrc":"37378:4:21","nodeType":"YulLiteral","src":"37378:4:21","type":"","value":"0x8c"}],"functionName":{"name":"add","nativeSrc":"37366:3:21","nodeType":"YulIdentifier","src":"37366:3:21"},"nativeSrc":"37366:17:21","nodeType":"YulFunctionCall","src":"37366:17:21"},"variables":[{"name":"o","nativeSrc":"37361:1:21","nodeType":"YulTypedName","src":"37361:1:21","type":""}]},{"nativeSrc":"37396:29:21","nodeType":"YulVariableDeclaration","src":"37396:29:21","value":{"arguments":[{"name":"o","nativeSrc":"37411:1:21","nodeType":"YulIdentifier","src":"37411:1:21"},{"name":"dataLength","nativeSrc":"37414:10:21","nodeType":"YulIdentifier","src":"37414:10:21"}],"functionName":{"name":"add","nativeSrc":"37407:3:21","nodeType":"YulIdentifier","src":"37407:3:21"},"nativeSrc":"37407:18:21","nodeType":"YulFunctionCall","src":"37407:18:21"},"variables":[{"name":"end","nativeSrc":"37400:3:21","nodeType":"YulTypedName","src":"37400:3:21","type":""}]},{"body":{"nativeSrc":"37531:141:21","nodeType":"YulBlock","src":"37531:141:21","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"37556:1:21","nodeType":"YulIdentifier","src":"37556:1:21"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"37569:1:21","nodeType":"YulIdentifier","src":"37569:1:21"},{"name":"d","nativeSrc":"37572:1:21","nodeType":"YulIdentifier","src":"37572:1:21"}],"functionName":{"name":"add","nativeSrc":"37565:3:21","nodeType":"YulIdentifier","src":"37565:3:21"},"nativeSrc":"37565:9:21","nodeType":"YulFunctionCall","src":"37565:9:21"}],"functionName":{"name":"mload","nativeSrc":"37559:5:21","nodeType":"YulIdentifier","src":"37559:5:21"},"nativeSrc":"37559:16:21","nodeType":"YulFunctionCall","src":"37559:16:21"}],"functionName":{"name":"mstore","nativeSrc":"37549:6:21","nodeType":"YulIdentifier","src":"37549:6:21"},"nativeSrc":"37549:27:21","nodeType":"YulFunctionCall","src":"37549:27:21"},"nativeSrc":"37549:27:21","nodeType":"YulExpressionStatement","src":"37549:27:21"},{"nativeSrc":"37593:17:21","nodeType":"YulAssignment","src":"37593:17:21","value":{"arguments":[{"name":"o","nativeSrc":"37602:1:21","nodeType":"YulIdentifier","src":"37602:1:21"},{"kind":"number","nativeSrc":"37605:4:21","nodeType":"YulLiteral","src":"37605:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37598:3:21","nodeType":"YulIdentifier","src":"37598:3:21"},"nativeSrc":"37598:12:21","nodeType":"YulFunctionCall","src":"37598:12:21"},"variableNames":[{"name":"o","nativeSrc":"37593:1:21","nodeType":"YulIdentifier","src":"37593:1:21"}]},{"body":{"nativeSrc":"37649:9:21","nodeType":"YulBlock","src":"37649:9:21","statements":[{"nativeSrc":"37651:5:21","nodeType":"YulBreak","src":"37651:5:21"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"37640:1:21","nodeType":"YulIdentifier","src":"37640:1:21"},{"name":"end","nativeSrc":"37643:3:21","nodeType":"YulIdentifier","src":"37643:3:21"}],"functionName":{"name":"lt","nativeSrc":"37637:2:21","nodeType":"YulIdentifier","src":"37637:2:21"},"nativeSrc":"37637:10:21","nodeType":"YulFunctionCall","src":"37637:10:21"}],"functionName":{"name":"iszero","nativeSrc":"37630:6:21","nodeType":"YulIdentifier","src":"37630:6:21"},"nativeSrc":"37630:18:21","nodeType":"YulFunctionCall","src":"37630:18:21"},"nativeSrc":"37627:31:21","nodeType":"YulIf","src":"37627:31:21"}]},"condition":{"kind":"number","nativeSrc":"37526:1:21","nodeType":"YulLiteral","src":"37526:1:21","type":"","value":"1"},"nativeSrc":"37485:187:21","nodeType":"YulForLoop","post":{"nativeSrc":"37528:2:21","nodeType":"YulBlock","src":"37528:2:21","statements":[]},"pre":{"nativeSrc":"37489:36:21","nodeType":"YulBlock","src":"37489:36:21","statements":[{"nativeSrc":"37491:32:21","nodeType":"YulVariableDeclaration","src":"37491:32:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"37508:4:21","nodeType":"YulIdentifier","src":"37508:4:21"},{"kind":"number","nativeSrc":"37514:4:21","nodeType":"YulLiteral","src":"37514:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37504:3:21","nodeType":"YulIdentifier","src":"37504:3:21"},"nativeSrc":"37504:15:21","nodeType":"YulFunctionCall","src":"37504:15:21"},{"name":"o","nativeSrc":"37521:1:21","nodeType":"YulIdentifier","src":"37521:1:21"}],"functionName":{"name":"sub","nativeSrc":"37500:3:21","nodeType":"YulIdentifier","src":"37500:3:21"},"nativeSrc":"37500:23:21","nodeType":"YulFunctionCall","src":"37500:23:21"},"variables":[{"name":"d","nativeSrc":"37495:1:21","nodeType":"YulTypedName","src":"37495:1:21","type":""}]}]},"src":"37485:187:21"},{"nativeSrc":"37767:37:21","nodeType":"YulVariableDeclaration","src":"37767:37:21","value":{"arguments":[{"name":"dataLength","nativeSrc":"37790:10:21","nodeType":"YulIdentifier","src":"37790:10:21"},{"kind":"number","nativeSrc":"37802:1:21","nodeType":"YulLiteral","src":"37802:1:21","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"37786:3:21","nodeType":"YulIdentifier","src":"37786:3:21"},"nativeSrc":"37786:18:21","nodeType":"YulFunctionCall","src":"37786:18:21"},"variables":[{"name":"extraLength","nativeSrc":"37771:11:21","nodeType":"YulTypedName","src":"37771:11:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37829:6:21","nodeType":"YulIdentifier","src":"37829:6:21"},{"kind":"number","nativeSrc":"37837:4:21","nodeType":"YulLiteral","src":"37837:4:21","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"37825:3:21","nodeType":"YulIdentifier","src":"37825:3:21"},"nativeSrc":"37825:17:21","nodeType":"YulFunctionCall","src":"37825:17:21"},{"kind":"number","nativeSrc":"37844:28:21","nodeType":"YulLiteral","src":"37844:28:21","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"37818:6:21","nodeType":"YulIdentifier","src":"37818:6:21"},"nativeSrc":"37818:55:21","nodeType":"YulFunctionCall","src":"37818:55:21"},"nativeSrc":"37818:55:21","nodeType":"YulExpressionStatement","src":"37818:55:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37936:6:21","nodeType":"YulIdentifier","src":"37936:6:21"},{"kind":"number","nativeSrc":"37944:4:21","nodeType":"YulLiteral","src":"37944:4:21","type":"","value":"0x5f"}],"functionName":{"name":"add","nativeSrc":"37932:3:21","nodeType":"YulIdentifier","src":"37932:3:21"},"nativeSrc":"37932:17:21","nodeType":"YulFunctionCall","src":"37932:17:21"},{"name":"implementation","nativeSrc":"37951:14:21","nodeType":"YulIdentifier","src":"37951:14:21"}],"functionName":{"name":"mstore","nativeSrc":"37925:6:21","nodeType":"YulIdentifier","src":"37925:6:21"},"nativeSrc":"37925:41:21","nodeType":"YulFunctionCall","src":"37925:41:21"},"nativeSrc":"37925:41:21","nodeType":"YulExpressionStatement","src":"37925:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38098:6:21","nodeType":"YulIdentifier","src":"38098:6:21"},{"kind":"number","nativeSrc":"38106:4:21","nodeType":"YulLiteral","src":"38106:4:21","type":"","value":"0x4b"}],"functionName":{"name":"add","nativeSrc":"38094:3:21","nodeType":"YulIdentifier","src":"38094:3:21"},"nativeSrc":"38094:17:21","nodeType":"YulFunctionCall","src":"38094:17:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38136:4:21","nodeType":"YulLiteral","src":"38136:4:21","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"38142:11:21","nodeType":"YulIdentifier","src":"38142:11:21"}],"functionName":{"name":"shl","nativeSrc":"38132:3:21","nodeType":"YulIdentifier","src":"38132:3:21"},"nativeSrc":"38132:22:21","nodeType":"YulFunctionCall","src":"38132:22:21"},{"kind":"number","nativeSrc":"38156:52:21","nodeType":"YulLiteral","src":"38156:52:21","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"38129:2:21","nodeType":"YulIdentifier","src":"38129:2:21"},"nativeSrc":"38129:80:21","nodeType":"YulFunctionCall","src":"38129:80:21"}],"functionName":{"name":"mstore","nativeSrc":"38070:6:21","nodeType":"YulIdentifier","src":"38070:6:21"},"nativeSrc":"38070:153:21","nodeType":"YulFunctionCall","src":"38070:153:21"},"nativeSrc":"38070:153:21","nodeType":"YulExpressionStatement","src":"38070:153:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38314:6:21","nodeType":"YulIdentifier","src":"38314:6:21"},{"kind":"number","nativeSrc":"38322:4:21","nodeType":"YulLiteral","src":"38322:4:21","type":"","value":"0x32"}],"functionName":{"name":"add","nativeSrc":"38310:3:21","nodeType":"YulIdentifier","src":"38310:3:21"},"nativeSrc":"38310:17:21","nodeType":"YulFunctionCall","src":"38310:17:21"},{"kind":"number","nativeSrc":"38345:66:21","nodeType":"YulLiteral","src":"38345:66:21","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"38286:6:21","nodeType":"YulIdentifier","src":"38286:6:21"},"nativeSrc":"38286:139:21","nodeType":"YulFunctionCall","src":"38286:139:21"},"nativeSrc":"38286:139:21","nodeType":"YulExpressionStatement","src":"38286:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38466:6:21","nodeType":"YulIdentifier","src":"38466:6:21"},{"kind":"number","nativeSrc":"38474:4:21","nodeType":"YulLiteral","src":"38474:4:21","type":"","value":"0x12"}],"functionName":{"name":"add","nativeSrc":"38462:3:21","nodeType":"YulIdentifier","src":"38462:3:21"},"nativeSrc":"38462:17:21","nodeType":"YulFunctionCall","src":"38462:17:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"38504:4:21","nodeType":"YulLiteral","src":"38504:4:21","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"38514:11:21","nodeType":"YulIdentifier","src":"38514:11:21"},{"kind":"number","nativeSrc":"38527:4:21","nodeType":"YulLiteral","src":"38527:4:21","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"38510:3:21","nodeType":"YulIdentifier","src":"38510:3:21"},"nativeSrc":"38510:22:21","nodeType":"YulFunctionCall","src":"38510:22:21"}],"functionName":{"name":"shl","nativeSrc":"38500:3:21","nodeType":"YulIdentifier","src":"38500:3:21"},"nativeSrc":"38500:33:21","nodeType":"YulFunctionCall","src":"38500:33:21"},{"kind":"number","nativeSrc":"38535:38:21","nodeType":"YulLiteral","src":"38535:38:21","type":"","value":"0x6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"38497:2:21","nodeType":"YulIdentifier","src":"38497:2:21"},"nativeSrc":"38497:77:21","nodeType":"YulFunctionCall","src":"38497:77:21"}],"functionName":{"name":"mstore","nativeSrc":"38438:6:21","nodeType":"YulIdentifier","src":"38438:6:21"},"nativeSrc":"38438:150:21","nodeType":"YulFunctionCall","src":"38438:150:21"},"nativeSrc":"38438:150:21","nodeType":"YulExpressionStatement","src":"38438:150:21"},{"expression":{"arguments":[{"name":"end","nativeSrc":"38608:3:21","nodeType":"YulIdentifier","src":"38608:3:21"},{"arguments":[{"kind":"number","nativeSrc":"38617:4:21","nodeType":"YulLiteral","src":"38617:4:21","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"38623:11:21","nodeType":"YulIdentifier","src":"38623:11:21"}],"functionName":{"name":"shl","nativeSrc":"38613:3:21","nodeType":"YulIdentifier","src":"38613:3:21"},"nativeSrc":"38613:22:21","nodeType":"YulFunctionCall","src":"38613:22:21"}],"functionName":{"name":"mstore","nativeSrc":"38601:6:21","nodeType":"YulIdentifier","src":"38601:6:21"},"nativeSrc":"38601:35:21","nodeType":"YulFunctionCall","src":"38601:35:21"},"nativeSrc":"38601:35:21","nodeType":"YulExpressionStatement","src":"38601:35:21"},{"expression":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"38660:3:21","nodeType":"YulIdentifier","src":"38660:3:21"},{"kind":"number","nativeSrc":"38665:4:21","nodeType":"YulLiteral","src":"38665:4:21","type":"","value":"0x02"}],"functionName":{"name":"add","nativeSrc":"38656:3:21","nodeType":"YulIdentifier","src":"38656:3:21"},"nativeSrc":"38656:14:21","nodeType":"YulFunctionCall","src":"38656:14:21"},{"kind":"number","nativeSrc":"38672:1:21","nodeType":"YulLiteral","src":"38672:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38649:6:21","nodeType":"YulIdentifier","src":"38649:6:21"},"nativeSrc":"38649:25:21","nodeType":"YulFunctionCall","src":"38649:25:21"},"nativeSrc":"38649:25:21","nodeType":"YulExpressionStatement","src":"38649:25:21"},{"expression":{"arguments":[{"name":"result","nativeSrc":"38732:6:21","nodeType":"YulIdentifier","src":"38732:6:21"},{"arguments":[{"name":"extraLength","nativeSrc":"38744:11:21","nodeType":"YulIdentifier","src":"38744:11:21"},{"kind":"number","nativeSrc":"38757:4:21","nodeType":"YulLiteral","src":"38757:4:21","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"38740:3:21","nodeType":"YulIdentifier","src":"38740:3:21"},"nativeSrc":"38740:22:21","nodeType":"YulFunctionCall","src":"38740:22:21"}],"functionName":{"name":"mstore","nativeSrc":"38725:6:21","nodeType":"YulIdentifier","src":"38725:6:21"},"nativeSrc":"38725:38:21","nodeType":"YulFunctionCall","src":"38725:38:21"},"nativeSrc":"38725:38:21","nodeType":"YulExpressionStatement","src":"38725:38:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38804:4:21","nodeType":"YulLiteral","src":"38804:4:21","type":"","value":"0x40"},{"arguments":[{"kind":"number","nativeSrc":"38814:4:21","nodeType":"YulLiteral","src":"38814:4:21","type":"","value":"0x22"},{"name":"end","nativeSrc":"38820:3:21","nodeType":"YulIdentifier","src":"38820:3:21"}],"functionName":{"name":"add","nativeSrc":"38810:3:21","nodeType":"YulIdentifier","src":"38810:3:21"},"nativeSrc":"38810:14:21","nodeType":"YulFunctionCall","src":"38810:14:21"}],"functionName":{"name":"mstore","nativeSrc":"38797:6:21","nodeType":"YulIdentifier","src":"38797:6:21"},"nativeSrc":"38797:28:21","nodeType":"YulFunctionCall","src":"38797:28:21"},"nativeSrc":"38797:28:21","nodeType":"YulExpressionStatement","src":"38797:28:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9527,"isOffset":false,"isSlot":false,"src":"37076:4:21","valueSize":1},{"declaration":9527,"isOffset":false,"isSlot":false,"src":"37508:4:21","valueSize":1},{"declaration":9525,"isOffset":false,"isSlot":false,"src":"37951:14:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"37018:6:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"37370:6:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"37829:6:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"37936:6:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"38098:6:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"38314:6:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"38466:6:21","valueSize":1},{"declaration":9530,"isOffset":false,"isSlot":false,"src":"38732:6:21","valueSize":1}],"id":9532,"nodeType":"InlineAssembly","src":"36995:1860:21"}]},"documentation":{"id":9523,"nodeType":"StructuredDocumentation","src":"36673:131:21","text":"@dev Returns the initialization code hash of the clone of `implementation`\n using immutable arguments encoded in `data`."},"id":9534,"implemented":true,"kind":"function","modifiers":[],"name":"initCode","nameLocation":"36818:8:21","nodeType":"FunctionDefinition","parameters":{"id":9528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9525,"mutability":"mutable","name":"implementation","nameLocation":"36835:14:21","nodeType":"VariableDeclaration","scope":9534,"src":"36827:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9524,"name":"address","nodeType":"ElementaryTypeName","src":"36827:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9527,"mutability":"mutable","name":"data","nameLocation":"36864:4:21","nodeType":"VariableDeclaration","scope":9534,"src":"36851:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9526,"name":"bytes","nodeType":"ElementaryTypeName","src":"36851:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36826:43:21"},"returnParameters":{"id":9531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9530,"mutability":"mutable","name":"result","nameLocation":"36930:6:21","nodeType":"VariableDeclaration","scope":9534,"src":"36917:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9529,"name":"bytes","nodeType":"ElementaryTypeName","src":"36917:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36916:21:21"},"scope":10078,"src":"36809:2052:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9545,"nodeType":"Block","src":"39194:1965:21","statements":[{"AST":{"nativeSrc":"39213:1940:21","nodeType":"YulBlock","src":"39213:1940:21","statements":[{"nativeSrc":"39315:38:21","nodeType":"YulVariableDeclaration","src":"39315:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39341:4:21","nodeType":"YulIdentifier","src":"39341:4:21"},{"kind":"number","nativeSrc":"39347:4:21","nodeType":"YulLiteral","src":"39347:4:21","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"39337:3:21","nodeType":"YulIdentifier","src":"39337:3:21"},"nativeSrc":"39337:15:21","nodeType":"YulFunctionCall","src":"39337:15:21"}],"functionName":{"name":"mload","nativeSrc":"39331:5:21","nodeType":"YulIdentifier","src":"39331:5:21"},"nativeSrc":"39331:22:21","nodeType":"YulFunctionCall","src":"39331:22:21"},"variables":[{"name":"mBefore3","nativeSrc":"39319:8:21","nodeType":"YulTypedName","src":"39319:8:21","type":""}]},{"nativeSrc":"39366:38:21","nodeType":"YulVariableDeclaration","src":"39366:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39392:4:21","nodeType":"YulIdentifier","src":"39392:4:21"},{"kind":"number","nativeSrc":"39398:4:21","nodeType":"YulLiteral","src":"39398:4:21","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"39388:3:21","nodeType":"YulIdentifier","src":"39388:3:21"},"nativeSrc":"39388:15:21","nodeType":"YulFunctionCall","src":"39388:15:21"}],"functionName":{"name":"mload","nativeSrc":"39382:5:21","nodeType":"YulIdentifier","src":"39382:5:21"},"nativeSrc":"39382:22:21","nodeType":"YulFunctionCall","src":"39382:22:21"},"variables":[{"name":"mBefore2","nativeSrc":"39370:8:21","nodeType":"YulTypedName","src":"39370:8:21","type":""}]},{"nativeSrc":"39417:38:21","nodeType":"YulVariableDeclaration","src":"39417:38:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39443:4:21","nodeType":"YulIdentifier","src":"39443:4:21"},{"kind":"number","nativeSrc":"39449:4:21","nodeType":"YulLiteral","src":"39449:4:21","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"39439:3:21","nodeType":"YulIdentifier","src":"39439:3:21"},"nativeSrc":"39439:15:21","nodeType":"YulFunctionCall","src":"39439:15:21"}],"functionName":{"name":"mload","nativeSrc":"39433:5:21","nodeType":"YulIdentifier","src":"39433:5:21"},"nativeSrc":"39433:22:21","nodeType":"YulFunctionCall","src":"39433:22:21"},"variables":[{"name":"mBefore1","nativeSrc":"39421:8:21","nodeType":"YulTypedName","src":"39421:8:21","type":""}]},{"nativeSrc":"39468:29:21","nodeType":"YulVariableDeclaration","src":"39468:29:21","value":{"arguments":[{"name":"data","nativeSrc":"39492:4:21","nodeType":"YulIdentifier","src":"39492:4:21"}],"functionName":{"name":"mload","nativeSrc":"39486:5:21","nodeType":"YulIdentifier","src":"39486:5:21"},"nativeSrc":"39486:11:21","nodeType":"YulFunctionCall","src":"39486:11:21"},"variables":[{"name":"dataLength","nativeSrc":"39472:10:21","nodeType":"YulTypedName","src":"39472:10:21","type":""}]},{"nativeSrc":"39510:47:21","nodeType":"YulVariableDeclaration","src":"39510:47:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"39533:4:21","nodeType":"YulIdentifier","src":"39533:4:21"},{"kind":"number","nativeSrc":"39539:4:21","nodeType":"YulLiteral","src":"39539:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39529:3:21","nodeType":"YulIdentifier","src":"39529:3:21"},"nativeSrc":"39529:15:21","nodeType":"YulFunctionCall","src":"39529:15:21"},{"name":"dataLength","nativeSrc":"39546:10:21","nodeType":"YulIdentifier","src":"39546:10:21"}],"functionName":{"name":"add","nativeSrc":"39525:3:21","nodeType":"YulIdentifier","src":"39525:3:21"},"nativeSrc":"39525:32:21","nodeType":"YulFunctionCall","src":"39525:32:21"},"variables":[{"name":"dataEnd","nativeSrc":"39514:7:21","nodeType":"YulTypedName","src":"39514:7:21","type":""}]},{"nativeSrc":"39570:29:21","nodeType":"YulVariableDeclaration","src":"39570:29:21","value":{"arguments":[{"name":"dataEnd","nativeSrc":"39591:7:21","nodeType":"YulIdentifier","src":"39591:7:21"}],"functionName":{"name":"mload","nativeSrc":"39585:5:21","nodeType":"YulIdentifier","src":"39585:5:21"},"nativeSrc":"39585:14:21","nodeType":"YulFunctionCall","src":"39585:14:21"},"variables":[{"name":"mAfter1","nativeSrc":"39574:7:21","nodeType":"YulTypedName","src":"39574:7:21","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39802:14:21","nodeType":"YulIdentifier","src":"39802:14:21"},"nativeSrc":"39802:16:21","nodeType":"YulFunctionCall","src":"39802:16:21"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"39820:14:21","nodeType":"YulIdentifier","src":"39820:14:21"},"nativeSrc":"39820:16:21","nodeType":"YulFunctionCall","src":"39820:16:21"},{"arguments":[{"name":"dataLength","nativeSrc":"39841:10:21","nodeType":"YulIdentifier","src":"39841:10:21"},{"kind":"number","nativeSrc":"39853:6:21","nodeType":"YulLiteral","src":"39853:6:21","type":"","value":"0xff9b"}],"functionName":{"name":"gt","nativeSrc":"39838:2:21","nodeType":"YulIdentifier","src":"39838:2:21"},"nativeSrc":"39838:22:21","nodeType":"YulFunctionCall","src":"39838:22:21"}],"functionName":{"name":"returndatacopy","nativeSrc":"39787:14:21","nodeType":"YulIdentifier","src":"39787:14:21"},"nativeSrc":"39787:74:21","nodeType":"YulFunctionCall","src":"39787:74:21"},"nativeSrc":"39787:74:21","nodeType":"YulExpressionStatement","src":"39787:74:21"},{"nativeSrc":"39956:37:21","nodeType":"YulVariableDeclaration","src":"39956:37:21","value":{"arguments":[{"name":"dataLength","nativeSrc":"39979:10:21","nodeType":"YulIdentifier","src":"39979:10:21"},{"kind":"number","nativeSrc":"39991:1:21","nodeType":"YulLiteral","src":"39991:1:21","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"39975:3:21","nodeType":"YulIdentifier","src":"39975:3:21"},"nativeSrc":"39975:18:21","nodeType":"YulFunctionCall","src":"39975:18:21"},"variables":[{"name":"extraLength","nativeSrc":"39960:11:21","nodeType":"YulTypedName","src":"39960:11:21","type":""}]},{"expression":{"arguments":[{"name":"data","nativeSrc":"40014:4:21","nodeType":"YulIdentifier","src":"40014:4:21"},{"kind":"number","nativeSrc":"40020:28:21","nodeType":"YulLiteral","src":"40020:28:21","type":"","value":"0x5af43d3d93803e606057fd5bf3"}],"functionName":{"name":"mstore","nativeSrc":"40007:6:21","nodeType":"YulIdentifier","src":"40007:6:21"},"nativeSrc":"40007:42:21","nodeType":"YulFunctionCall","src":"40007:42:21"},"nativeSrc":"40007:42:21","nodeType":"YulExpressionStatement","src":"40007:42:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40112:4:21","nodeType":"YulIdentifier","src":"40112:4:21"},{"kind":"number","nativeSrc":"40118:4:21","nodeType":"YulLiteral","src":"40118:4:21","type":"","value":"0x0d"}],"functionName":{"name":"sub","nativeSrc":"40108:3:21","nodeType":"YulIdentifier","src":"40108:3:21"},"nativeSrc":"40108:15:21","nodeType":"YulFunctionCall","src":"40108:15:21"},{"name":"implementation","nativeSrc":"40125:14:21","nodeType":"YulIdentifier","src":"40125:14:21"}],"functionName":{"name":"mstore","nativeSrc":"40101:6:21","nodeType":"YulIdentifier","src":"40101:6:21"},"nativeSrc":"40101:39:21","nodeType":"YulFunctionCall","src":"40101:39:21"},"nativeSrc":"40101:39:21","nodeType":"YulExpressionStatement","src":"40101:39:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40272:4:21","nodeType":"YulIdentifier","src":"40272:4:21"},{"kind":"number","nativeSrc":"40278:4:21","nodeType":"YulLiteral","src":"40278:4:21","type":"","value":"0x21"}],"functionName":{"name":"sub","nativeSrc":"40268:3:21","nodeType":"YulIdentifier","src":"40268:3:21"},"nativeSrc":"40268:15:21","nodeType":"YulFunctionCall","src":"40268:15:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"40308:4:21","nodeType":"YulLiteral","src":"40308:4:21","type":"","value":"0x48"},{"name":"extraLength","nativeSrc":"40314:11:21","nodeType":"YulIdentifier","src":"40314:11:21"}],"functionName":{"name":"shl","nativeSrc":"40304:3:21","nodeType":"YulIdentifier","src":"40304:3:21"},"nativeSrc":"40304:22:21","nodeType":"YulFunctionCall","src":"40304:22:21"},{"kind":"number","nativeSrc":"40328:52:21","nodeType":"YulLiteral","src":"40328:52:21","type":"","value":"0x593da1005b363d3d373d3d3d3d610000806062363936013d73"}],"functionName":{"name":"or","nativeSrc":"40301:2:21","nodeType":"YulIdentifier","src":"40301:2:21"},"nativeSrc":"40301:80:21","nodeType":"YulFunctionCall","src":"40301:80:21"}],"functionName":{"name":"mstore","nativeSrc":"40244:6:21","nodeType":"YulIdentifier","src":"40244:6:21"},"nativeSrc":"40244:151:21","nodeType":"YulFunctionCall","src":"40244:151:21"},"nativeSrc":"40244:151:21","nodeType":"YulExpressionStatement","src":"40244:151:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40486:4:21","nodeType":"YulIdentifier","src":"40486:4:21"},{"kind":"number","nativeSrc":"40492:4:21","nodeType":"YulLiteral","src":"40492:4:21","type":"","value":"0x3a"}],"functionName":{"name":"sub","nativeSrc":"40482:3:21","nodeType":"YulIdentifier","src":"40482:3:21"},"nativeSrc":"40482:15:21","nodeType":"YulFunctionCall","src":"40482:15:21"},{"kind":"number","nativeSrc":"40499:66:21","nodeType":"YulLiteral","src":"40499:66:21","type":"","value":"0x9e4ac34f21c619cefc926c8bd93b54bf5a39c7ab2127a895af1cc0691d7e3dff"}],"functionName":{"name":"mstore","nativeSrc":"40458:6:21","nodeType":"YulIdentifier","src":"40458:6:21"},"nativeSrc":"40458:121:21","nodeType":"YulFunctionCall","src":"40458:121:21"},"nativeSrc":"40458:121:21","nodeType":"YulExpressionStatement","src":"40458:121:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40620:4:21","nodeType":"YulIdentifier","src":"40620:4:21"},{"kind":"number","nativeSrc":"40626:4:21","nodeType":"YulLiteral","src":"40626:4:21","type":"","value":"0x5a"}],"functionName":{"name":"sub","nativeSrc":"40616:3:21","nodeType":"YulIdentifier","src":"40616:3:21"},"nativeSrc":"40616:15:21","nodeType":"YulFunctionCall","src":"40616:15:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"40656:4:21","nodeType":"YulLiteral","src":"40656:4:21","type":"","value":"0x78"},{"arguments":[{"name":"extraLength","nativeSrc":"40666:11:21","nodeType":"YulIdentifier","src":"40666:11:21"},{"kind":"number","nativeSrc":"40679:4:21","nodeType":"YulLiteral","src":"40679:4:21","type":"","value":"0x62"}],"functionName":{"name":"add","nativeSrc":"40662:3:21","nodeType":"YulIdentifier","src":"40662:3:21"},"nativeSrc":"40662:22:21","nodeType":"YulFunctionCall","src":"40662:22:21"}],"functionName":{"name":"shl","nativeSrc":"40652:3:21","nodeType":"YulIdentifier","src":"40652:3:21"},"nativeSrc":"40652:33:21","nodeType":"YulFunctionCall","src":"40652:33:21"},{"kind":"number","nativeSrc":"40687:38:21","nodeType":"YulLiteral","src":"40687:38:21","type":"","value":"0x6100003d81600a3d39f336602c57343d527f"}],"functionName":{"name":"or","nativeSrc":"40649:2:21","nodeType":"YulIdentifier","src":"40649:2:21"},"nativeSrc":"40649:77:21","nodeType":"YulFunctionCall","src":"40649:77:21"}],"functionName":{"name":"mstore","nativeSrc":"40592:6:21","nodeType":"YulIdentifier","src":"40592:6:21"},"nativeSrc":"40592:148:21","nodeType":"YulFunctionCall","src":"40592:148:21"},"nativeSrc":"40592:148:21","nodeType":"YulExpressionStatement","src":"40592:148:21"},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"40760:7:21","nodeType":"YulIdentifier","src":"40760:7:21"},{"arguments":[{"kind":"number","nativeSrc":"40773:4:21","nodeType":"YulLiteral","src":"40773:4:21","type":"","value":"0xf0"},{"name":"extraLength","nativeSrc":"40779:11:21","nodeType":"YulIdentifier","src":"40779:11:21"}],"functionName":{"name":"shl","nativeSrc":"40769:3:21","nodeType":"YulIdentifier","src":"40769:3:21"},"nativeSrc":"40769:22:21","nodeType":"YulFunctionCall","src":"40769:22:21"}],"functionName":{"name":"mstore","nativeSrc":"40753:6:21","nodeType":"YulIdentifier","src":"40753:6:21"},"nativeSrc":"40753:39:21","nodeType":"YulFunctionCall","src":"40753:39:21"},"nativeSrc":"40753:39:21","nodeType":"YulExpressionStatement","src":"40753:39:21"},{"nativeSrc":"40806:58:21","nodeType":"YulAssignment","src":"40806:58:21","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"40828:4:21","nodeType":"YulIdentifier","src":"40828:4:21"},{"kind":"number","nativeSrc":"40834:4:21","nodeType":"YulLiteral","src":"40834:4:21","type":"","value":"0x4c"}],"functionName":{"name":"sub","nativeSrc":"40824:3:21","nodeType":"YulIdentifier","src":"40824:3:21"},"nativeSrc":"40824:15:21","nodeType":"YulFunctionCall","src":"40824:15:21"},{"arguments":[{"name":"extraLength","nativeSrc":"40845:11:21","nodeType":"YulIdentifier","src":"40845:11:21"},{"kind":"number","nativeSrc":"40858:4:21","nodeType":"YulLiteral","src":"40858:4:21","type":"","value":"0x6c"}],"functionName":{"name":"add","nativeSrc":"40841:3:21","nodeType":"YulIdentifier","src":"40841:3:21"},"nativeSrc":"40841:22:21","nodeType":"YulFunctionCall","src":"40841:22:21"}],"functionName":{"name":"keccak256","nativeSrc":"40814:9:21","nodeType":"YulIdentifier","src":"40814:9:21"},"nativeSrc":"40814:50:21","nodeType":"YulFunctionCall","src":"40814:50:21"},"variableNames":[{"name":"hash","nativeSrc":"40806:4:21","nodeType":"YulIdentifier","src":"40806:4:21"}]},{"expression":{"arguments":[{"name":"dataEnd","nativeSrc":"40951:7:21","nodeType":"YulIdentifier","src":"40951:7:21"},{"name":"mAfter1","nativeSrc":"40960:7:21","nodeType":"YulIdentifier","src":"40960:7:21"}],"functionName":{"name":"mstore","nativeSrc":"40944:6:21","nodeType":"YulIdentifier","src":"40944:6:21"},"nativeSrc":"40944:24:21","nodeType":"YulFunctionCall","src":"40944:24:21"},"nativeSrc":"40944:24:21","nodeType":"YulExpressionStatement","src":"40944:24:21"},{"expression":{"arguments":[{"name":"data","nativeSrc":"40988:4:21","nodeType":"YulIdentifier","src":"40988:4:21"},{"name":"dataLength","nativeSrc":"40994:10:21","nodeType":"YulIdentifier","src":"40994:10:21"}],"functionName":{"name":"mstore","nativeSrc":"40981:6:21","nodeType":"YulIdentifier","src":"40981:6:21"},"nativeSrc":"40981:24:21","nodeType":"YulFunctionCall","src":"40981:24:21"},"nativeSrc":"40981:24:21","nodeType":"YulExpressionStatement","src":"40981:24:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41029:4:21","nodeType":"YulIdentifier","src":"41029:4:21"},{"kind":"number","nativeSrc":"41035:4:21","nodeType":"YulLiteral","src":"41035:4:21","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"41025:3:21","nodeType":"YulIdentifier","src":"41025:3:21"},"nativeSrc":"41025:15:21","nodeType":"YulFunctionCall","src":"41025:15:21"},{"name":"mBefore1","nativeSrc":"41042:8:21","nodeType":"YulIdentifier","src":"41042:8:21"}],"functionName":{"name":"mstore","nativeSrc":"41018:6:21","nodeType":"YulIdentifier","src":"41018:6:21"},"nativeSrc":"41018:33:21","nodeType":"YulFunctionCall","src":"41018:33:21"},"nativeSrc":"41018:33:21","nodeType":"YulExpressionStatement","src":"41018:33:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41075:4:21","nodeType":"YulIdentifier","src":"41075:4:21"},{"kind":"number","nativeSrc":"41081:4:21","nodeType":"YulLiteral","src":"41081:4:21","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"41071:3:21","nodeType":"YulIdentifier","src":"41071:3:21"},"nativeSrc":"41071:15:21","nodeType":"YulFunctionCall","src":"41071:15:21"},{"name":"mBefore2","nativeSrc":"41088:8:21","nodeType":"YulIdentifier","src":"41088:8:21"}],"functionName":{"name":"mstore","nativeSrc":"41064:6:21","nodeType":"YulIdentifier","src":"41064:6:21"},"nativeSrc":"41064:33:21","nodeType":"YulFunctionCall","src":"41064:33:21"},"nativeSrc":"41064:33:21","nodeType":"YulExpressionStatement","src":"41064:33:21"},{"expression":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"41121:4:21","nodeType":"YulIdentifier","src":"41121:4:21"},{"kind":"number","nativeSrc":"41127:4:21","nodeType":"YulLiteral","src":"41127:4:21","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"41117:3:21","nodeType":"YulIdentifier","src":"41117:3:21"},"nativeSrc":"41117:15:21","nodeType":"YulFunctionCall","src":"41117:15:21"},{"name":"mBefore3","nativeSrc":"41134:8:21","nodeType":"YulIdentifier","src":"41134:8:21"}],"functionName":{"name":"mstore","nativeSrc":"41110:6:21","nodeType":"YulIdentifier","src":"41110:6:21"},"nativeSrc":"41110:33:21","nodeType":"YulFunctionCall","src":"41110:33:21"},"nativeSrc":"41110:33:21","nodeType":"YulExpressionStatement","src":"41110:33:21"}]},"evmVersion":"cancun","externalReferences":[{"declaration":9539,"isOffset":false,"isSlot":false,"src":"39341:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"39392:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"39443:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"39492:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"39533:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"40014:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"40112:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"40272:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"40486:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"40620:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"40828:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"40988:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"41029:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"41075:4:21","valueSize":1},{"declaration":9539,"isOffset":false,"isSlot":false,"src":"41121:4:21","valueSize":1},{"declaration":9542,"isOffset":false,"isSlot":false,"src":"40806:4:21","valueSize":1},{"declaration":9537,"isOffset":false,"isSlot":false,"src":"40125:14:21","valueSize":1}],"id":9544,"nodeType":"InlineAssembly","src":"39204:1949:21"}]},"documentation":{"id":9535,"nodeType":"StructuredDocumentation","src":"38867:192:21","text":"@dev Returns the initialization code hash of the clone of `implementation`\n using immutable arguments encoded in `data`.\n Used for mining vanity addresses with create2crunch."},"id":9546,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHash","nameLocation":"39073:12:21","nodeType":"FunctionDefinition","parameters":{"id":9540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9537,"mutability":"mutable","name":"implementation","nameLocation":"39094:14:21","nodeType":"VariableDeclaration","scope":9546,"src":"39086:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9536,"name":"address","nodeType":"ElementaryTypeName","src":"39086:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9539,"mutability":"mutable","name":"data","nameLocation":"39123:4:21","nodeType":"VariableDeclaration","scope":9546,"src":"39110:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9538,"name":"bytes","nodeType":"ElementaryTypeName","src":"39110:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"39085:43:21"},"returnParameters":{"id":9543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9542,"mutability":"mutable","name":"hash","nameLocation":"39184:4:21","nodeType":"VariableDeclaration","scope":9546,"src":"39176:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39176:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39175:14:21"},"scope":10078,"src":"39064:2095:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9575,"nodeType":"Block","src":"41611:137:21","statements":[{"assignments":[9561],"declarations":[{"constant":false,"id":9561,"mutability":"mutable","name":"hash","nameLocation":"41629:4:21","nodeType":"VariableDeclaration","scope":9575,"src":"41621:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41621:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9566,"initialValue":{"arguments":[{"id":9563,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"41649:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9564,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9551,"src":"41665:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9562,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[9316,9546],"referencedDeclaration":9546,"src":"41636:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,bytes memory) pure returns (bytes32)"}},"id":9565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41636:34:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41621:49:21"},{"expression":{"id":9573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9567,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9558,"src":"41680:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9569,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9561,"src":"41720:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9570,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9553,"src":"41726:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9571,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9555,"src":"41732:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9568,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9343,9576,10067],"referencedDeclaration":10067,"src":"41692:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41692:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"41680:61:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9574,"nodeType":"ExpressionStatement","src":"41680:61:21"}]},"documentation":{"id":9547,"nodeType":"StructuredDocumentation","src":"41165:249:21","text":"@dev Returns the address of the deterministic clone of\n `implementation` using immutable arguments encoded in `data`, with `salt`, by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9576,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"41428:27:21","nodeType":"FunctionDefinition","parameters":{"id":9556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9549,"mutability":"mutable","name":"implementation","nameLocation":"41473:14:21","nodeType":"VariableDeclaration","scope":9576,"src":"41465:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9548,"name":"address","nodeType":"ElementaryTypeName","src":"41465:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9551,"mutability":"mutable","name":"data","nameLocation":"41510:4:21","nodeType":"VariableDeclaration","scope":9576,"src":"41497:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9550,"name":"bytes","nodeType":"ElementaryTypeName","src":"41497:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":9553,"mutability":"mutable","name":"salt","nameLocation":"41532:4:21","nodeType":"VariableDeclaration","scope":9576,"src":"41524:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41524:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9555,"mutability":"mutable","name":"deployer","nameLocation":"41554:8:21","nodeType":"VariableDeclaration","scope":9576,"src":"41546:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9554,"name":"address","nodeType":"ElementaryTypeName","src":"41546:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41455:113:21"},"returnParameters":{"id":9559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9558,"mutability":"mutable","name":"predicted","nameLocation":"41600:9:21","nodeType":"VariableDeclaration","scope":9576,"src":"41592:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9557,"name":"address","nodeType":"ElementaryTypeName","src":"41592:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41591:19:21"},"scope":10078,"src":"41419:329:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9591,"nodeType":"Block","src":"42358:60:21","statements":[{"expression":{"id":9589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9584,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9582,"src":"42368:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42393:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9587,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9579,"src":"42396:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9585,"name":"deployERC1967","nodeType":"Identifier","overloadedDeclarations":[9592,9604],"referencedDeclaration":9604,"src":"42379:13:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42379:32:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"42368:43:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9590,"nodeType":"ExpressionStatement","src":"42368:43:21"}]},"documentation":{"id":9577,"nodeType":"StructuredDocumentation","src":"42207:63:21","text":"@dev Deploys a minimal ERC1967 proxy with `implementation`."},"id":9592,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967","nameLocation":"42284:13:21","nodeType":"FunctionDefinition","parameters":{"id":9580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9579,"mutability":"mutable","name":"implementation","nameLocation":"42306:14:21","nodeType":"VariableDeclaration","scope":9592,"src":"42298:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9578,"name":"address","nodeType":"ElementaryTypeName","src":"42298:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42297:24:21"},"returnParameters":{"id":9583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9582,"mutability":"mutable","name":"instance","nameLocation":"42348:8:21","nodeType":"VariableDeclaration","scope":9592,"src":"42340:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9581,"name":"address","nodeType":"ElementaryTypeName","src":"42340:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42339:18:21"},"scope":10078,"src":"42275:143:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9603,"nodeType":"Block","src":"42658:6584:21","statements":[{"AST":{"nativeSrc":"42720:6516:21","nodeType":"YulBlock","src":"42720:6516:21","statements":[{"nativeSrc":"48548:20:21","nodeType":"YulVariableDeclaration","src":"48548:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"48563:4:21","nodeType":"YulLiteral","src":"48563:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"48557:5:21","nodeType":"YulIdentifier","src":"48557:5:21"},"nativeSrc":"48557:11:21","nodeType":"YulFunctionCall","src":"48557:11:21"},"variables":[{"name":"m","nativeSrc":"48552:1:21","nodeType":"YulTypedName","src":"48552:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48622:4:21","nodeType":"YulLiteral","src":"48622:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"48628:66:21","nodeType":"YulLiteral","src":"48628:66:21","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"48615:6:21","nodeType":"YulIdentifier","src":"48615:6:21"},"nativeSrc":"48615:80:21","nodeType":"YulFunctionCall","src":"48615:80:21"},"nativeSrc":"48615:80:21","nodeType":"YulExpressionStatement","src":"48615:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48715:4:21","nodeType":"YulLiteral","src":"48715:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"48721:66:21","nodeType":"YulLiteral","src":"48721:66:21","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"48708:6:21","nodeType":"YulIdentifier","src":"48708:6:21"},"nativeSrc":"48708:80:21","nodeType":"YulFunctionCall","src":"48708:80:21"},"nativeSrc":"48708:80:21","nodeType":"YulExpressionStatement","src":"48708:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48808:4:21","nodeType":"YulLiteral","src":"48808:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"48814:6:21","nodeType":"YulLiteral","src":"48814:6:21","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"48801:6:21","nodeType":"YulIdentifier","src":"48801:6:21"},"nativeSrc":"48801:20:21","nodeType":"YulFunctionCall","src":"48801:20:21"},"nativeSrc":"48801:20:21","nodeType":"YulExpressionStatement","src":"48801:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48841:4:21","nodeType":"YulLiteral","src":"48841:4:21","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"48847:14:21","nodeType":"YulIdentifier","src":"48847:14:21"}],"functionName":{"name":"mstore","nativeSrc":"48834:6:21","nodeType":"YulIdentifier","src":"48834:6:21"},"nativeSrc":"48834:28:21","nodeType":"YulFunctionCall","src":"48834:28:21"},"nativeSrc":"48834:28:21","nodeType":"YulExpressionStatement","src":"48834:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48882:4:21","nodeType":"YulLiteral","src":"48882:4:21","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"48888:20:21","nodeType":"YulLiteral","src":"48888:20:21","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"48875:6:21","nodeType":"YulIdentifier","src":"48875:6:21"},"nativeSrc":"48875:34:21","nodeType":"YulFunctionCall","src":"48875:34:21"},"nativeSrc":"48875:34:21","nodeType":"YulExpressionStatement","src":"48875:34:21"},{"nativeSrc":"48922:37:21","nodeType":"YulAssignment","src":"48922:37:21","value":{"arguments":[{"name":"value","nativeSrc":"48941:5:21","nodeType":"YulIdentifier","src":"48941:5:21"},{"kind":"number","nativeSrc":"48948:4:21","nodeType":"YulLiteral","src":"48948:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"48954:4:21","nodeType":"YulLiteral","src":"48954:4:21","type":"","value":"0x5f"}],"functionName":{"name":"create","nativeSrc":"48934:6:21","nodeType":"YulIdentifier","src":"48934:6:21"},"nativeSrc":"48934:25:21","nodeType":"YulFunctionCall","src":"48934:25:21"},"variableNames":[{"name":"instance","nativeSrc":"48922:8:21","nodeType":"YulIdentifier","src":"48922:8:21"}]},{"body":{"nativeSrc":"48992:116:21","nodeType":"YulBlock","src":"48992:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"49017:4:21","nodeType":"YulLiteral","src":"49017:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"49023:10:21","nodeType":"YulLiteral","src":"49023:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"49010:6:21","nodeType":"YulIdentifier","src":"49010:6:21"},"nativeSrc":"49010:24:21","nodeType":"YulFunctionCall","src":"49010:24:21"},"nativeSrc":"49010:24:21","nodeType":"YulExpressionStatement","src":"49010:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49083:4:21","nodeType":"YulLiteral","src":"49083:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"49089:4:21","nodeType":"YulLiteral","src":"49089:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"49076:6:21","nodeType":"YulIdentifier","src":"49076:6:21"},"nativeSrc":"49076:18:21","nodeType":"YulFunctionCall","src":"49076:18:21"},"nativeSrc":"49076:18:21","nodeType":"YulExpressionStatement","src":"49076:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"48982:8:21","nodeType":"YulIdentifier","src":"48982:8:21"}],"functionName":{"name":"iszero","nativeSrc":"48975:6:21","nodeType":"YulIdentifier","src":"48975:6:21"},"nativeSrc":"48975:16:21","nodeType":"YulFunctionCall","src":"48975:16:21"},"nativeSrc":"48972:136:21","nodeType":"YulIf","src":"48972:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49128:4:21","nodeType":"YulLiteral","src":"49128:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"49134:1:21","nodeType":"YulIdentifier","src":"49134:1:21"}],"functionName":{"name":"mstore","nativeSrc":"49121:6:21","nodeType":"YulIdentifier","src":"49121:6:21"},"nativeSrc":"49121:15:21","nodeType":"YulFunctionCall","src":"49121:15:21"},"nativeSrc":"49121:15:21","nodeType":"YulExpressionStatement","src":"49121:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49192:4:21","nodeType":"YulLiteral","src":"49192:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"49198:1:21","nodeType":"YulLiteral","src":"49198:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"49185:6:21","nodeType":"YulIdentifier","src":"49185:6:21"},"nativeSrc":"49185:15:21","nodeType":"YulFunctionCall","src":"49185:15:21"},"nativeSrc":"49185:15:21","nodeType":"YulExpressionStatement","src":"49185:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9597,"isOffset":false,"isSlot":false,"src":"48847:14:21","valueSize":1},{"declaration":9600,"isOffset":false,"isSlot":false,"src":"48922:8:21","valueSize":1},{"declaration":9600,"isOffset":false,"isSlot":false,"src":"48982:8:21","valueSize":1},{"declaration":9595,"isOffset":false,"isSlot":false,"src":"48941:5:21","valueSize":1}],"id":9602,"nodeType":"InlineAssembly","src":"42711:6525:21"}]},"documentation":{"id":9593,"nodeType":"StructuredDocumentation","src":"42424:111:21","text":"@dev Deploys a minimal ERC1967 proxy with `implementation`.\n Deposits `value` ETH during deployment."},"id":9604,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967","nameLocation":"42549:13:21","nodeType":"FunctionDefinition","parameters":{"id":9598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9595,"mutability":"mutable","name":"value","nameLocation":"42571:5:21","nodeType":"VariableDeclaration","scope":9604,"src":"42563:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9594,"name":"uint256","nodeType":"ElementaryTypeName","src":"42563:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9597,"mutability":"mutable","name":"implementation","nameLocation":"42586:14:21","nodeType":"VariableDeclaration","scope":9604,"src":"42578:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9596,"name":"address","nodeType":"ElementaryTypeName","src":"42578:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42562:39:21"},"returnParameters":{"id":9601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9600,"mutability":"mutable","name":"instance","nameLocation":"42644:8:21","nodeType":"VariableDeclaration","scope":9604,"src":"42636:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9599,"name":"address","nodeType":"ElementaryTypeName","src":"42636:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42635:18:21"},"scope":10078,"src":"42540:6702:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9622,"nodeType":"Block","src":"49471:79:21","statements":[{"expression":{"id":9620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9614,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9612,"src":"49481:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49519:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9617,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9607,"src":"49522:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9618,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"49538:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9615,"name":"deployDeterministicERC1967","nodeType":"Identifier","overloadedDeclarations":[9623,9637],"referencedDeclaration":9637,"src":"49492:26:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49492:51:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"49481:62:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9621,"nodeType":"ExpressionStatement","src":"49481:62:21"}]},"documentation":{"id":9605,"nodeType":"StructuredDocumentation","src":"49248:88:21","text":"@dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`."},"id":9623,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967","nameLocation":"49350:26:21","nodeType":"FunctionDefinition","parameters":{"id":9610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9607,"mutability":"mutable","name":"implementation","nameLocation":"49385:14:21","nodeType":"VariableDeclaration","scope":9623,"src":"49377:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9606,"name":"address","nodeType":"ElementaryTypeName","src":"49377:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9609,"mutability":"mutable","name":"salt","nameLocation":"49409:4:21","nodeType":"VariableDeclaration","scope":9623,"src":"49401:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49401:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49376:38:21"},"returnParameters":{"id":9613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9612,"mutability":"mutable","name":"instance","nameLocation":"49457:8:21","nodeType":"VariableDeclaration","scope":9623,"src":"49449:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9611,"name":"address","nodeType":"ElementaryTypeName","src":"49449:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49448:18:21"},"scope":10078,"src":"49341:209:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9636,"nodeType":"Block","src":"49842:777:21","statements":[{"AST":{"nativeSrc":"49904:709:21","nodeType":"YulBlock","src":"49904:709:21","statements":[{"nativeSrc":"49918:20:21","nodeType":"YulVariableDeclaration","src":"49918:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"49933:4:21","nodeType":"YulLiteral","src":"49933:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"49927:5:21","nodeType":"YulIdentifier","src":"49927:5:21"},"nativeSrc":"49927:11:21","nodeType":"YulFunctionCall","src":"49927:11:21"},"variables":[{"name":"m","nativeSrc":"49922:1:21","nodeType":"YulTypedName","src":"49922:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49992:4:21","nodeType":"YulLiteral","src":"49992:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"49998:66:21","nodeType":"YulLiteral","src":"49998:66:21","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"49985:6:21","nodeType":"YulIdentifier","src":"49985:6:21"},"nativeSrc":"49985:80:21","nodeType":"YulFunctionCall","src":"49985:80:21"},"nativeSrc":"49985:80:21","nodeType":"YulExpressionStatement","src":"49985:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50085:4:21","nodeType":"YulLiteral","src":"50085:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"50091:66:21","nodeType":"YulLiteral","src":"50091:66:21","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"50078:6:21","nodeType":"YulIdentifier","src":"50078:6:21"},"nativeSrc":"50078:80:21","nodeType":"YulFunctionCall","src":"50078:80:21"},"nativeSrc":"50078:80:21","nodeType":"YulExpressionStatement","src":"50078:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50178:4:21","nodeType":"YulLiteral","src":"50178:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"50184:6:21","nodeType":"YulLiteral","src":"50184:6:21","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"50171:6:21","nodeType":"YulIdentifier","src":"50171:6:21"},"nativeSrc":"50171:20:21","nodeType":"YulFunctionCall","src":"50171:20:21"},"nativeSrc":"50171:20:21","nodeType":"YulExpressionStatement","src":"50171:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50211:4:21","nodeType":"YulLiteral","src":"50211:4:21","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"50217:14:21","nodeType":"YulIdentifier","src":"50217:14:21"}],"functionName":{"name":"mstore","nativeSrc":"50204:6:21","nodeType":"YulIdentifier","src":"50204:6:21"},"nativeSrc":"50204:28:21","nodeType":"YulFunctionCall","src":"50204:28:21"},"nativeSrc":"50204:28:21","nodeType":"YulExpressionStatement","src":"50204:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50252:4:21","nodeType":"YulLiteral","src":"50252:4:21","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"50258:20:21","nodeType":"YulLiteral","src":"50258:20:21","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"50245:6:21","nodeType":"YulIdentifier","src":"50245:6:21"},"nativeSrc":"50245:34:21","nodeType":"YulFunctionCall","src":"50245:34:21"},"nativeSrc":"50245:34:21","nodeType":"YulExpressionStatement","src":"50245:34:21"},{"nativeSrc":"50292:44:21","nodeType":"YulAssignment","src":"50292:44:21","value":{"arguments":[{"name":"value","nativeSrc":"50312:5:21","nodeType":"YulIdentifier","src":"50312:5:21"},{"kind":"number","nativeSrc":"50319:4:21","nodeType":"YulLiteral","src":"50319:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"50325:4:21","nodeType":"YulLiteral","src":"50325:4:21","type":"","value":"0x5f"},{"name":"salt","nativeSrc":"50331:4:21","nodeType":"YulIdentifier","src":"50331:4:21"}],"functionName":{"name":"create2","nativeSrc":"50304:7:21","nodeType":"YulIdentifier","src":"50304:7:21"},"nativeSrc":"50304:32:21","nodeType":"YulFunctionCall","src":"50304:32:21"},"variableNames":[{"name":"instance","nativeSrc":"50292:8:21","nodeType":"YulIdentifier","src":"50292:8:21"}]},{"body":{"nativeSrc":"50369:116:21","nodeType":"YulBlock","src":"50369:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"50394:4:21","nodeType":"YulLiteral","src":"50394:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"50400:10:21","nodeType":"YulLiteral","src":"50400:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"50387:6:21","nodeType":"YulIdentifier","src":"50387:6:21"},"nativeSrc":"50387:24:21","nodeType":"YulFunctionCall","src":"50387:24:21"},"nativeSrc":"50387:24:21","nodeType":"YulExpressionStatement","src":"50387:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50460:4:21","nodeType":"YulLiteral","src":"50460:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"50466:4:21","nodeType":"YulLiteral","src":"50466:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"50453:6:21","nodeType":"YulIdentifier","src":"50453:6:21"},"nativeSrc":"50453:18:21","nodeType":"YulFunctionCall","src":"50453:18:21"},"nativeSrc":"50453:18:21","nodeType":"YulExpressionStatement","src":"50453:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"50359:8:21","nodeType":"YulIdentifier","src":"50359:8:21"}],"functionName":{"name":"iszero","nativeSrc":"50352:6:21","nodeType":"YulIdentifier","src":"50352:6:21"},"nativeSrc":"50352:16:21","nodeType":"YulFunctionCall","src":"50352:16:21"},"nativeSrc":"50349:136:21","nodeType":"YulIf","src":"50349:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50505:4:21","nodeType":"YulLiteral","src":"50505:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"50511:1:21","nodeType":"YulIdentifier","src":"50511:1:21"}],"functionName":{"name":"mstore","nativeSrc":"50498:6:21","nodeType":"YulIdentifier","src":"50498:6:21"},"nativeSrc":"50498:15:21","nodeType":"YulFunctionCall","src":"50498:15:21"},"nativeSrc":"50498:15:21","nodeType":"YulExpressionStatement","src":"50498:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50569:4:21","nodeType":"YulLiteral","src":"50569:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"50575:1:21","nodeType":"YulLiteral","src":"50575:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50562:6:21","nodeType":"YulIdentifier","src":"50562:6:21"},"nativeSrc":"50562:15:21","nodeType":"YulFunctionCall","src":"50562:15:21"},"nativeSrc":"50562:15:21","nodeType":"YulExpressionStatement","src":"50562:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9628,"isOffset":false,"isSlot":false,"src":"50217:14:21","valueSize":1},{"declaration":9633,"isOffset":false,"isSlot":false,"src":"50292:8:21","valueSize":1},{"declaration":9633,"isOffset":false,"isSlot":false,"src":"50359:8:21","valueSize":1},{"declaration":9630,"isOffset":false,"isSlot":false,"src":"50331:4:21","valueSize":1},{"declaration":9626,"isOffset":false,"isSlot":false,"src":"50312:5:21","valueSize":1}],"id":9635,"nodeType":"InlineAssembly","src":"49895:718:21"}]},"documentation":{"id":9624,"nodeType":"StructuredDocumentation","src":"49556:136:21","text":"@dev Deploys a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment."},"id":9637,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967","nameLocation":"49706:26:21","nodeType":"FunctionDefinition","parameters":{"id":9631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9626,"mutability":"mutable","name":"value","nameLocation":"49741:5:21","nodeType":"VariableDeclaration","scope":9637,"src":"49733:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9625,"name":"uint256","nodeType":"ElementaryTypeName","src":"49733:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9628,"mutability":"mutable","name":"implementation","nameLocation":"49756:14:21","nodeType":"VariableDeclaration","scope":9637,"src":"49748:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9627,"name":"address","nodeType":"ElementaryTypeName","src":"49748:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9630,"mutability":"mutable","name":"salt","nameLocation":"49780:4:21","nodeType":"VariableDeclaration","scope":9637,"src":"49772:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49772:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49732:53:21"},"returnParameters":{"id":9634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9633,"mutability":"mutable","name":"instance","nameLocation":"49828:8:21","nodeType":"VariableDeclaration","scope":9637,"src":"49820:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9632,"name":"address","nodeType":"ElementaryTypeName","src":"49820:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49819:18:21"},"scope":10078,"src":"49697:922:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9655,"nodeType":"Block","src":"51013:75:21","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51057:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9651,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"51060:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9652,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9642,"src":"51076:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9649,"name":"createDeterministicERC1967","nodeType":"Identifier","overloadedDeclarations":[9656,9672],"referencedDeclaration":9672,"src":"51030:26:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":9653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51030:51:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9648,"id":9654,"nodeType":"Return","src":"51023:58:21"}]},"documentation":{"id":9638,"nodeType":"StructuredDocumentation","src":"50625:231:21","text":"@dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9656,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967","nameLocation":"50870:26:21","nodeType":"FunctionDefinition","parameters":{"id":9643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9640,"mutability":"mutable","name":"implementation","nameLocation":"50905:14:21","nodeType":"VariableDeclaration","scope":9656,"src":"50897:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9639,"name":"address","nodeType":"ElementaryTypeName","src":"50897:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9642,"mutability":"mutable","name":"salt","nameLocation":"50929:4:21","nodeType":"VariableDeclaration","scope":9656,"src":"50921:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50921:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50896:38:21"},"returnParameters":{"id":9648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9645,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"50974:15:21","nodeType":"VariableDeclaration","scope":9656,"src":"50969:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9644,"name":"bool","nodeType":"ElementaryTypeName","src":"50969:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9647,"mutability":"mutable","name":"instance","nameLocation":"50999:8:21","nodeType":"VariableDeclaration","scope":9656,"src":"50991:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9646,"name":"address","nodeType":"ElementaryTypeName","src":"50991:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50968:40:21"},"scope":10078,"src":"50861:227:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9671,"nodeType":"Block","src":"51545:1558:21","statements":[{"AST":{"nativeSrc":"51607:1490:21","nodeType":"YulBlock","src":"51607:1490:21","statements":[{"nativeSrc":"51621:20:21","nodeType":"YulVariableDeclaration","src":"51621:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"51636:4:21","nodeType":"YulLiteral","src":"51636:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"51630:5:21","nodeType":"YulIdentifier","src":"51630:5:21"},"nativeSrc":"51630:11:21","nodeType":"YulFunctionCall","src":"51630:11:21"},"variables":[{"name":"m","nativeSrc":"51625:1:21","nodeType":"YulTypedName","src":"51625:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51695:4:21","nodeType":"YulLiteral","src":"51695:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"51701:66:21","nodeType":"YulLiteral","src":"51701:66:21","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"51688:6:21","nodeType":"YulIdentifier","src":"51688:6:21"},"nativeSrc":"51688:80:21","nodeType":"YulFunctionCall","src":"51688:80:21"},"nativeSrc":"51688:80:21","nodeType":"YulExpressionStatement","src":"51688:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51788:4:21","nodeType":"YulLiteral","src":"51788:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"51794:66:21","nodeType":"YulLiteral","src":"51794:66:21","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"51781:6:21","nodeType":"YulIdentifier","src":"51781:6:21"},"nativeSrc":"51781:80:21","nodeType":"YulFunctionCall","src":"51781:80:21"},"nativeSrc":"51781:80:21","nodeType":"YulExpressionStatement","src":"51781:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51881:4:21","nodeType":"YulLiteral","src":"51881:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"51887:6:21","nodeType":"YulLiteral","src":"51887:6:21","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"51874:6:21","nodeType":"YulIdentifier","src":"51874:6:21"},"nativeSrc":"51874:20:21","nodeType":"YulFunctionCall","src":"51874:20:21"},"nativeSrc":"51874:20:21","nodeType":"YulExpressionStatement","src":"51874:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51914:4:21","nodeType":"YulLiteral","src":"51914:4:21","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"51920:14:21","nodeType":"YulIdentifier","src":"51920:14:21"}],"functionName":{"name":"mstore","nativeSrc":"51907:6:21","nodeType":"YulIdentifier","src":"51907:6:21"},"nativeSrc":"51907:28:21","nodeType":"YulFunctionCall","src":"51907:28:21"},"nativeSrc":"51907:28:21","nodeType":"YulExpressionStatement","src":"51907:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51955:4:21","nodeType":"YulLiteral","src":"51955:4:21","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"51961:20:21","nodeType":"YulLiteral","src":"51961:20:21","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"51948:6:21","nodeType":"YulIdentifier","src":"51948:6:21"},"nativeSrc":"51948:34:21","nodeType":"YulFunctionCall","src":"51948:34:21"},"nativeSrc":"51948:34:21","nodeType":"YulExpressionStatement","src":"51948:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"52058:1:21","nodeType":"YulIdentifier","src":"52058:1:21"},{"kind":"number","nativeSrc":"52061:4:21","nodeType":"YulLiteral","src":"52061:4:21","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"52054:3:21","nodeType":"YulIdentifier","src":"52054:3:21"},"nativeSrc":"52054:12:21","nodeType":"YulFunctionCall","src":"52054:12:21"},{"arguments":[{"kind":"number","nativeSrc":"52078:4:21","nodeType":"YulLiteral","src":"52078:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"52084:4:21","nodeType":"YulLiteral","src":"52084:4:21","type":"","value":"0x5f"}],"functionName":{"name":"keccak256","nativeSrc":"52068:9:21","nodeType":"YulIdentifier","src":"52068:9:21"},"nativeSrc":"52068:21:21","nodeType":"YulFunctionCall","src":"52068:21:21"}],"functionName":{"name":"mstore","nativeSrc":"52047:6:21","nodeType":"YulIdentifier","src":"52047:6:21"},"nativeSrc":"52047:43:21","nodeType":"YulFunctionCall","src":"52047:43:21"},"nativeSrc":"52047:43:21","nodeType":"YulExpressionStatement","src":"52047:43:21"},{"expression":{"arguments":[{"name":"m","nativeSrc":"52110:1:21","nodeType":"YulIdentifier","src":"52110:1:21"},{"arguments":[{"kind":"number","nativeSrc":"52117:2:21","nodeType":"YulLiteral","src":"52117:2:21","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"52121:7:21","nodeType":"YulIdentifier","src":"52121:7:21"},"nativeSrc":"52121:9:21","nodeType":"YulFunctionCall","src":"52121:9:21"}],"functionName":{"name":"shl","nativeSrc":"52113:3:21","nodeType":"YulIdentifier","src":"52113:3:21"},"nativeSrc":"52113:18:21","nodeType":"YulFunctionCall","src":"52113:18:21"}],"functionName":{"name":"mstore","nativeSrc":"52103:6:21","nodeType":"YulIdentifier","src":"52103:6:21"},"nativeSrc":"52103:29:21","nodeType":"YulFunctionCall","src":"52103:29:21"},"nativeSrc":"52103:29:21","nodeType":"YulExpressionStatement","src":"52103:29:21"},{"expression":{"arguments":[{"name":"m","nativeSrc":"52153:1:21","nodeType":"YulIdentifier","src":"52153:1:21"},{"kind":"number","nativeSrc":"52156:4:21","nodeType":"YulLiteral","src":"52156:4:21","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"52145:7:21","nodeType":"YulIdentifier","src":"52145:7:21"},"nativeSrc":"52145:16:21","nodeType":"YulFunctionCall","src":"52145:16:21"},"nativeSrc":"52145:16:21","nodeType":"YulExpressionStatement","src":"52145:16:21"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"52206:1:21","nodeType":"YulIdentifier","src":"52206:1:21"},{"kind":"number","nativeSrc":"52209:4:21","nodeType":"YulLiteral","src":"52209:4:21","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"52202:3:21","nodeType":"YulIdentifier","src":"52202:3:21"},"nativeSrc":"52202:12:21","nodeType":"YulFunctionCall","src":"52202:12:21"},{"name":"salt","nativeSrc":"52216:4:21","nodeType":"YulIdentifier","src":"52216:4:21"}],"functionName":{"name":"mstore","nativeSrc":"52195:6:21","nodeType":"YulIdentifier","src":"52195:6:21"},"nativeSrc":"52195:26:21","nodeType":"YulFunctionCall","src":"52195:26:21"},"nativeSrc":"52195:26:21","nodeType":"YulExpressionStatement","src":"52195:26:21"},{"nativeSrc":"52234:30:21","nodeType":"YulAssignment","src":"52234:30:21","value":{"arguments":[{"name":"m","nativeSrc":"52256:1:21","nodeType":"YulIdentifier","src":"52256:1:21"},{"kind":"number","nativeSrc":"52259:4:21","nodeType":"YulLiteral","src":"52259:4:21","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"52246:9:21","nodeType":"YulIdentifier","src":"52246:9:21"},"nativeSrc":"52246:18:21","nodeType":"YulFunctionCall","src":"52246:18:21"},"variableNames":[{"name":"instance","nativeSrc":"52234:8:21","nodeType":"YulIdentifier","src":"52234:8:21"}]},{"body":{"nativeSrc":"52289:680:21","nodeType":"YulBlock","src":"52289:680:21","statements":[{"body":{"nativeSrc":"52340:291:21","nodeType":"YulBlock","src":"52340:291:21","statements":[{"nativeSrc":"52362:44:21","nodeType":"YulAssignment","src":"52362:44:21","value":{"arguments":[{"name":"value","nativeSrc":"52382:5:21","nodeType":"YulIdentifier","src":"52382:5:21"},{"kind":"number","nativeSrc":"52389:4:21","nodeType":"YulLiteral","src":"52389:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"52395:4:21","nodeType":"YulLiteral","src":"52395:4:21","type":"","value":"0x5f"},{"name":"salt","nativeSrc":"52401:4:21","nodeType":"YulIdentifier","src":"52401:4:21"}],"functionName":{"name":"create2","nativeSrc":"52374:7:21","nodeType":"YulIdentifier","src":"52374:7:21"},"nativeSrc":"52374:32:21","nodeType":"YulFunctionCall","src":"52374:32:21"},"variableNames":[{"name":"instance","nativeSrc":"52362:8:21","nodeType":"YulIdentifier","src":"52362:8:21"}]},{"body":{"nativeSrc":"52447:140:21","nodeType":"YulBlock","src":"52447:140:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52480:4:21","nodeType":"YulLiteral","src":"52480:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52486:10:21","nodeType":"YulLiteral","src":"52486:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"52473:6:21","nodeType":"YulIdentifier","src":"52473:6:21"},"nativeSrc":"52473:24:21","nodeType":"YulFunctionCall","src":"52473:24:21"},"nativeSrc":"52473:24:21","nodeType":"YulExpressionStatement","src":"52473:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52554:4:21","nodeType":"YulLiteral","src":"52554:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"52560:4:21","nodeType":"YulLiteral","src":"52560:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"52547:6:21","nodeType":"YulIdentifier","src":"52547:6:21"},"nativeSrc":"52547:18:21","nodeType":"YulFunctionCall","src":"52547:18:21"},"nativeSrc":"52547:18:21","nodeType":"YulExpressionStatement","src":"52547:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"52437:8:21","nodeType":"YulIdentifier","src":"52437:8:21"}],"functionName":{"name":"iszero","nativeSrc":"52430:6:21","nodeType":"YulIdentifier","src":"52430:6:21"},"nativeSrc":"52430:16:21","nodeType":"YulFunctionCall","src":"52430:16:21"},"nativeSrc":"52427:160:21","nodeType":"YulIf","src":"52427:160:21"},{"nativeSrc":"52608:5:21","nodeType":"YulBreak","src":"52608:5:21"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"52329:8:21","nodeType":"YulIdentifier","src":"52329:8:21"}],"functionName":{"name":"extcodesize","nativeSrc":"52317:11:21","nodeType":"YulIdentifier","src":"52317:11:21"},"nativeSrc":"52317:21:21","nodeType":"YulFunctionCall","src":"52317:21:21"}],"functionName":{"name":"iszero","nativeSrc":"52310:6:21","nodeType":"YulIdentifier","src":"52310:6:21"},"nativeSrc":"52310:29:21","nodeType":"YulFunctionCall","src":"52310:29:21"},"nativeSrc":"52307:324:21","nodeType":"YulIf","src":"52307:324:21"},{"nativeSrc":"52648:20:21","nodeType":"YulAssignment","src":"52648:20:21","value":{"kind":"number","nativeSrc":"52667:1:21","nodeType":"YulLiteral","src":"52667:1:21","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"52648:15:21","nodeType":"YulIdentifier","src":"52648:15:21"}]},{"body":{"nativeSrc":"52702:9:21","nodeType":"YulBlock","src":"52702:9:21","statements":[{"nativeSrc":"52704:5:21","nodeType":"YulBreak","src":"52704:5:21"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"52695:5:21","nodeType":"YulIdentifier","src":"52695:5:21"}],"functionName":{"name":"iszero","nativeSrc":"52688:6:21","nodeType":"YulIdentifier","src":"52688:6:21"},"nativeSrc":"52688:13:21","nodeType":"YulFunctionCall","src":"52688:13:21"},"nativeSrc":"52685:26:21","nodeType":"YulIf","src":"52685:26:21"},{"body":{"nativeSrc":"52804:129:21","nodeType":"YulBlock","src":"52804:129:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52833:4:21","nodeType":"YulLiteral","src":"52833:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52839:10:21","nodeType":"YulLiteral","src":"52839:10:21","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"52826:6:21","nodeType":"YulIdentifier","src":"52826:6:21"},"nativeSrc":"52826:24:21","nodeType":"YulFunctionCall","src":"52826:24:21"},"nativeSrc":"52826:24:21","nodeType":"YulExpressionStatement","src":"52826:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52904:4:21","nodeType":"YulLiteral","src":"52904:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"52910:4:21","nodeType":"YulLiteral","src":"52910:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"52897:6:21","nodeType":"YulIdentifier","src":"52897:6:21"},"nativeSrc":"52897:18:21","nodeType":"YulFunctionCall","src":"52897:18:21"},"nativeSrc":"52897:18:21","nodeType":"YulExpressionStatement","src":"52897:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"52743:3:21","nodeType":"YulIdentifier","src":"52743:3:21"},"nativeSrc":"52743:5:21","nodeType":"YulFunctionCall","src":"52743:5:21"},{"name":"instance","nativeSrc":"52750:8:21","nodeType":"YulIdentifier","src":"52750:8:21"},{"name":"value","nativeSrc":"52760:5:21","nodeType":"YulIdentifier","src":"52760:5:21"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"52767:8:21","nodeType":"YulIdentifier","src":"52767:8:21"},"nativeSrc":"52767:10:21","nodeType":"YulFunctionCall","src":"52767:10:21"},{"kind":"number","nativeSrc":"52779:4:21","nodeType":"YulLiteral","src":"52779:4:21","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"52785:8:21","nodeType":"YulIdentifier","src":"52785:8:21"},"nativeSrc":"52785:10:21","nodeType":"YulFunctionCall","src":"52785:10:21"},{"kind":"number","nativeSrc":"52797:4:21","nodeType":"YulLiteral","src":"52797:4:21","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"52738:4:21","nodeType":"YulIdentifier","src":"52738:4:21"},"nativeSrc":"52738:64:21","nodeType":"YulFunctionCall","src":"52738:64:21"}],"functionName":{"name":"iszero","nativeSrc":"52731:6:21","nodeType":"YulIdentifier","src":"52731:6:21"},"nativeSrc":"52731:72:21","nodeType":"YulFunctionCall","src":"52731:72:21"},"nativeSrc":"52728:205:21","nodeType":"YulIf","src":"52728:205:21"},{"nativeSrc":"52950:5:21","nodeType":"YulBreak","src":"52950:5:21"}]},"condition":{"kind":"number","nativeSrc":"52284:1:21","nodeType":"YulLiteral","src":"52284:1:21","type":"","value":"1"},"nativeSrc":"52277:692:21","nodeType":"YulForLoop","post":{"nativeSrc":"52286:2:21","nodeType":"YulBlock","src":"52286:2:21","statements":[]},"pre":{"nativeSrc":"52281:2:21","nodeType":"YulBlock","src":"52281:2:21","statements":[]},"src":"52277:692:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52989:4:21","nodeType":"YulLiteral","src":"52989:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"52995:1:21","nodeType":"YulIdentifier","src":"52995:1:21"}],"functionName":{"name":"mstore","nativeSrc":"52982:6:21","nodeType":"YulIdentifier","src":"52982:6:21"},"nativeSrc":"52982:15:21","nodeType":"YulFunctionCall","src":"52982:15:21"},"nativeSrc":"52982:15:21","nodeType":"YulExpressionStatement","src":"52982:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53053:4:21","nodeType":"YulLiteral","src":"53053:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"53059:1:21","nodeType":"YulLiteral","src":"53059:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"53046:6:21","nodeType":"YulIdentifier","src":"53046:6:21"},"nativeSrc":"53046:15:21","nodeType":"YulFunctionCall","src":"53046:15:21"},"nativeSrc":"53046:15:21","nodeType":"YulExpressionStatement","src":"53046:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9666,"isOffset":false,"isSlot":false,"src":"52648:15:21","valueSize":1},{"declaration":9661,"isOffset":false,"isSlot":false,"src":"51920:14:21","valueSize":1},{"declaration":9668,"isOffset":false,"isSlot":false,"src":"52234:8:21","valueSize":1},{"declaration":9668,"isOffset":false,"isSlot":false,"src":"52329:8:21","valueSize":1},{"declaration":9668,"isOffset":false,"isSlot":false,"src":"52362:8:21","valueSize":1},{"declaration":9668,"isOffset":false,"isSlot":false,"src":"52437:8:21","valueSize":1},{"declaration":9668,"isOffset":false,"isSlot":false,"src":"52750:8:21","valueSize":1},{"declaration":9663,"isOffset":false,"isSlot":false,"src":"52216:4:21","valueSize":1},{"declaration":9663,"isOffset":false,"isSlot":false,"src":"52401:4:21","valueSize":1},{"declaration":9659,"isOffset":false,"isSlot":false,"src":"52382:5:21","valueSize":1},{"declaration":9659,"isOffset":false,"isSlot":false,"src":"52695:5:21","valueSize":1},{"declaration":9659,"isOffset":false,"isSlot":false,"src":"52760:5:21","valueSize":1}],"id":9670,"nodeType":"InlineAssembly","src":"51598:1499:21"}]},"documentation":{"id":9657,"nodeType":"StructuredDocumentation","src":"51094:279:21","text":"@dev Creates a deterministic minimal ERC1967 proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9672,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967","nameLocation":"51387:26:21","nodeType":"FunctionDefinition","parameters":{"id":9664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9659,"mutability":"mutable","name":"value","nameLocation":"51422:5:21","nodeType":"VariableDeclaration","scope":9672,"src":"51414:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9658,"name":"uint256","nodeType":"ElementaryTypeName","src":"51414:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9661,"mutability":"mutable","name":"implementation","nameLocation":"51437:14:21","nodeType":"VariableDeclaration","scope":9672,"src":"51429:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9660,"name":"address","nodeType":"ElementaryTypeName","src":"51429:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9663,"mutability":"mutable","name":"salt","nameLocation":"51461:4:21","nodeType":"VariableDeclaration","scope":9672,"src":"51453:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51453:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"51413:53:21"},"returnParameters":{"id":9669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9666,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"51506:15:21","nodeType":"VariableDeclaration","scope":9672,"src":"51501:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9665,"name":"bool","nodeType":"ElementaryTypeName","src":"51501:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9668,"mutability":"mutable","name":"instance","nameLocation":"51531:8:21","nodeType":"VariableDeclaration","scope":9672,"src":"51523:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9667,"name":"address","nodeType":"ElementaryTypeName","src":"51523:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51500:40:21"},"scope":10078,"src":"51378:1725:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9681,"nodeType":"Block","src":"53297:672:21","statements":[{"AST":{"nativeSrc":"53359:604:21","nodeType":"YulBlock","src":"53359:604:21","statements":[{"nativeSrc":"53373:21:21","nodeType":"YulAssignment","src":"53373:21:21","value":{"arguments":[{"kind":"number","nativeSrc":"53389:4:21","nodeType":"YulLiteral","src":"53389:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"53383:5:21","nodeType":"YulIdentifier","src":"53383:5:21"},"nativeSrc":"53383:11:21","nodeType":"YulFunctionCall","src":"53383:11:21"},"variableNames":[{"name":"result","nativeSrc":"53373:6:21","nodeType":"YulIdentifier","src":"53373:6:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53435:6:21","nodeType":"YulIdentifier","src":"53435:6:21"},{"kind":"number","nativeSrc":"53443:4:21","nodeType":"YulLiteral","src":"53443:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"53431:3:21","nodeType":"YulIdentifier","src":"53431:3:21"},"nativeSrc":"53431:17:21","nodeType":"YulFunctionCall","src":"53431:17:21"},{"kind":"number","nativeSrc":"53466:66:21","nodeType":"YulLiteral","src":"53466:66:21","type":"","value":"0x3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f300"}],"functionName":{"name":"mstore","nativeSrc":"53407:6:21","nodeType":"YulIdentifier","src":"53407:6:21"},"nativeSrc":"53407:139:21","nodeType":"YulFunctionCall","src":"53407:139:21"},"nativeSrc":"53407:139:21","nodeType":"YulExpressionStatement","src":"53407:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53587:6:21","nodeType":"YulIdentifier","src":"53587:6:21"},{"kind":"number","nativeSrc":"53595:4:21","nodeType":"YulLiteral","src":"53595:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"53583:3:21","nodeType":"YulIdentifier","src":"53583:3:21"},"nativeSrc":"53583:17:21","nodeType":"YulFunctionCall","src":"53583:17:21"},{"kind":"number","nativeSrc":"53618:66:21","nodeType":"YulLiteral","src":"53618:66:21","type":"","value":"0x55f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc"}],"functionName":{"name":"mstore","nativeSrc":"53559:6:21","nodeType":"YulIdentifier","src":"53559:6:21"},"nativeSrc":"53559:139:21","nodeType":"YulFunctionCall","src":"53559:139:21"},"nativeSrc":"53559:139:21","nodeType":"YulExpressionStatement","src":"53559:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53722:6:21","nodeType":"YulIdentifier","src":"53722:6:21"},{"kind":"number","nativeSrc":"53730:4:21","nodeType":"YulLiteral","src":"53730:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"53718:3:21","nodeType":"YulIdentifier","src":"53718:3:21"},"nativeSrc":"53718:17:21","nodeType":"YulFunctionCall","src":"53718:17:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"53744:2:21","nodeType":"YulLiteral","src":"53744:2:21","type":"","value":"24"},{"name":"implementation","nativeSrc":"53748:14:21","nodeType":"YulIdentifier","src":"53748:14:21"}],"functionName":{"name":"shl","nativeSrc":"53740:3:21","nodeType":"YulIdentifier","src":"53740:3:21"},"nativeSrc":"53740:23:21","nodeType":"YulFunctionCall","src":"53740:23:21"},{"kind":"number","nativeSrc":"53765:8:21","nodeType":"YulLiteral","src":"53765:8:21","type":"","value":"0x600951"}],"functionName":{"name":"or","nativeSrc":"53737:2:21","nodeType":"YulIdentifier","src":"53737:2:21"},"nativeSrc":"53737:37:21","nodeType":"YulFunctionCall","src":"53737:37:21"}],"functionName":{"name":"mstore","nativeSrc":"53711:6:21","nodeType":"YulIdentifier","src":"53711:6:21"},"nativeSrc":"53711:64:21","nodeType":"YulFunctionCall","src":"53711:64:21"},"nativeSrc":"53711:64:21","nodeType":"YulExpressionStatement","src":"53711:64:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"53799:6:21","nodeType":"YulIdentifier","src":"53799:6:21"},{"kind":"number","nativeSrc":"53807:4:21","nodeType":"YulLiteral","src":"53807:4:21","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"53795:3:21","nodeType":"YulIdentifier","src":"53795:3:21"},"nativeSrc":"53795:17:21","nodeType":"YulFunctionCall","src":"53795:17:21"},{"kind":"number","nativeSrc":"53814:20:21","nodeType":"YulLiteral","src":"53814:20:21","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"53788:6:21","nodeType":"YulIdentifier","src":"53788:6:21"},"nativeSrc":"53788:47:21","nodeType":"YulFunctionCall","src":"53788:47:21"},"nativeSrc":"53788:47:21","nodeType":"YulExpressionStatement","src":"53788:47:21"},{"expression":{"arguments":[{"name":"result","nativeSrc":"53855:6:21","nodeType":"YulIdentifier","src":"53855:6:21"},{"kind":"number","nativeSrc":"53863:4:21","nodeType":"YulLiteral","src":"53863:4:21","type":"","value":"0x5f"}],"functionName":{"name":"mstore","nativeSrc":"53848:6:21","nodeType":"YulIdentifier","src":"53848:6:21"},"nativeSrc":"53848:20:21","nodeType":"YulFunctionCall","src":"53848:20:21"},"nativeSrc":"53848:20:21","nodeType":"YulExpressionStatement","src":"53848:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53909:4:21","nodeType":"YulLiteral","src":"53909:4:21","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"53919:6:21","nodeType":"YulIdentifier","src":"53919:6:21"},{"kind":"number","nativeSrc":"53927:4:21","nodeType":"YulLiteral","src":"53927:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"53915:3:21","nodeType":"YulIdentifier","src":"53915:3:21"},"nativeSrc":"53915:17:21","nodeType":"YulFunctionCall","src":"53915:17:21"}],"functionName":{"name":"mstore","nativeSrc":"53902:6:21","nodeType":"YulIdentifier","src":"53902:6:21"},"nativeSrc":"53902:31:21","nodeType":"YulFunctionCall","src":"53902:31:21"},"nativeSrc":"53902:31:21","nodeType":"YulExpressionStatement","src":"53902:31:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9675,"isOffset":false,"isSlot":false,"src":"53748:14:21","valueSize":1},{"declaration":9678,"isOffset":false,"isSlot":false,"src":"53373:6:21","valueSize":1},{"declaration":9678,"isOffset":false,"isSlot":false,"src":"53435:6:21","valueSize":1},{"declaration":9678,"isOffset":false,"isSlot":false,"src":"53587:6:21","valueSize":1},{"declaration":9678,"isOffset":false,"isSlot":false,"src":"53722:6:21","valueSize":1},{"declaration":9678,"isOffset":false,"isSlot":false,"src":"53799:6:21","valueSize":1},{"declaration":9678,"isOffset":false,"isSlot":false,"src":"53855:6:21","valueSize":1},{"declaration":9678,"isOffset":false,"isSlot":false,"src":"53919:6:21","valueSize":1}],"id":9680,"nodeType":"InlineAssembly","src":"53350:613:21"}]},"documentation":{"id":9673,"nodeType":"StructuredDocumentation","src":"53109:90:21","text":"@dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`."},"id":9682,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967","nameLocation":"53213:15:21","nodeType":"FunctionDefinition","parameters":{"id":9676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9675,"mutability":"mutable","name":"implementation","nameLocation":"53237:14:21","nodeType":"VariableDeclaration","scope":9682,"src":"53229:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9674,"name":"address","nodeType":"ElementaryTypeName","src":"53229:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53228:24:21"},"returnParameters":{"id":9679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9678,"mutability":"mutable","name":"result","nameLocation":"53289:6:21","nodeType":"VariableDeclaration","scope":9682,"src":"53276:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9677,"name":"bytes","nodeType":"ElementaryTypeName","src":"53276:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"53275:21:21"},"scope":10078,"src":"53204:765:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9691,"nodeType":"Block","src":"54226:613:21","statements":[{"AST":{"nativeSrc":"54288:545:21","nodeType":"YulBlock","src":"54288:545:21","statements":[{"nativeSrc":"54302:20:21","nodeType":"YulVariableDeclaration","src":"54302:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"54317:4:21","nodeType":"YulLiteral","src":"54317:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"54311:5:21","nodeType":"YulIdentifier","src":"54311:5:21"},"nativeSrc":"54311:11:21","nodeType":"YulFunctionCall","src":"54311:11:21"},"variables":[{"name":"m","nativeSrc":"54306:1:21","nodeType":"YulTypedName","src":"54306:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54376:4:21","nodeType":"YulLiteral","src":"54376:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"54382:66:21","nodeType":"YulLiteral","src":"54382:66:21","type":"","value":"0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"54369:6:21","nodeType":"YulIdentifier","src":"54369:6:21"},"nativeSrc":"54369:80:21","nodeType":"YulFunctionCall","src":"54369:80:21"},"nativeSrc":"54369:80:21","nodeType":"YulExpressionStatement","src":"54369:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54469:4:21","nodeType":"YulLiteral","src":"54469:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"54475:66:21","nodeType":"YulLiteral","src":"54475:66:21","type":"","value":"0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076"}],"functionName":{"name":"mstore","nativeSrc":"54462:6:21","nodeType":"YulIdentifier","src":"54462:6:21"},"nativeSrc":"54462:80:21","nodeType":"YulFunctionCall","src":"54462:80:21"},"nativeSrc":"54462:80:21","nodeType":"YulExpressionStatement","src":"54462:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54562:4:21","nodeType":"YulLiteral","src":"54562:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"54568:6:21","nodeType":"YulLiteral","src":"54568:6:21","type":"","value":"0x6009"}],"functionName":{"name":"mstore","nativeSrc":"54555:6:21","nodeType":"YulIdentifier","src":"54555:6:21"},"nativeSrc":"54555:20:21","nodeType":"YulFunctionCall","src":"54555:20:21"},"nativeSrc":"54555:20:21","nodeType":"YulExpressionStatement","src":"54555:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54595:4:21","nodeType":"YulLiteral","src":"54595:4:21","type":"","value":"0x1e"},{"name":"implementation","nativeSrc":"54601:14:21","nodeType":"YulIdentifier","src":"54601:14:21"}],"functionName":{"name":"mstore","nativeSrc":"54588:6:21","nodeType":"YulIdentifier","src":"54588:6:21"},"nativeSrc":"54588:28:21","nodeType":"YulFunctionCall","src":"54588:28:21"},"nativeSrc":"54588:28:21","nodeType":"YulExpressionStatement","src":"54588:28:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54636:4:21","nodeType":"YulLiteral","src":"54636:4:21","type":"","value":"0x0a"},{"kind":"number","nativeSrc":"54642:20:21","nodeType":"YulLiteral","src":"54642:20:21","type":"","value":"0x603d3d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"54629:6:21","nodeType":"YulIdentifier","src":"54629:6:21"},"nativeSrc":"54629:34:21","nodeType":"YulFunctionCall","src":"54629:34:21"},"nativeSrc":"54629:34:21","nodeType":"YulExpressionStatement","src":"54629:34:21"},{"nativeSrc":"54676:29:21","nodeType":"YulAssignment","src":"54676:29:21","value":{"arguments":[{"kind":"number","nativeSrc":"54694:4:21","nodeType":"YulLiteral","src":"54694:4:21","type":"","value":"0x21"},{"kind":"number","nativeSrc":"54700:4:21","nodeType":"YulLiteral","src":"54700:4:21","type":"","value":"0x5f"}],"functionName":{"name":"keccak256","nativeSrc":"54684:9:21","nodeType":"YulIdentifier","src":"54684:9:21"},"nativeSrc":"54684:21:21","nodeType":"YulFunctionCall","src":"54684:21:21"},"variableNames":[{"name":"hash","nativeSrc":"54676:4:21","nodeType":"YulIdentifier","src":"54676:4:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54725:4:21","nodeType":"YulLiteral","src":"54725:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"54731:1:21","nodeType":"YulIdentifier","src":"54731:1:21"}],"functionName":{"name":"mstore","nativeSrc":"54718:6:21","nodeType":"YulIdentifier","src":"54718:6:21"},"nativeSrc":"54718:15:21","nodeType":"YulFunctionCall","src":"54718:15:21"},"nativeSrc":"54718:15:21","nodeType":"YulExpressionStatement","src":"54718:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54789:4:21","nodeType":"YulLiteral","src":"54789:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"54795:1:21","nodeType":"YulLiteral","src":"54795:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"54782:6:21","nodeType":"YulIdentifier","src":"54782:6:21"},"nativeSrc":"54782:15:21","nodeType":"YulFunctionCall","src":"54782:15:21"},"nativeSrc":"54782:15:21","nodeType":"YulExpressionStatement","src":"54782:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9688,"isOffset":false,"isSlot":false,"src":"54676:4:21","valueSize":1},{"declaration":9685,"isOffset":false,"isSlot":false,"src":"54601:14:21","valueSize":1}],"id":9690,"nodeType":"InlineAssembly","src":"54279:554:21"}]},"documentation":{"id":9683,"nodeType":"StructuredDocumentation","src":"53975:156:21","text":"@dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9692,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967","nameLocation":"54145:19:21","nodeType":"FunctionDefinition","parameters":{"id":9686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9685,"mutability":"mutable","name":"implementation","nameLocation":"54173:14:21","nodeType":"VariableDeclaration","scope":9692,"src":"54165:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9684,"name":"address","nodeType":"ElementaryTypeName","src":"54165:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54164:24:21"},"returnParameters":{"id":9689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9688,"mutability":"mutable","name":"hash","nameLocation":"54220:4:21","nodeType":"VariableDeclaration","scope":9692,"src":"54212:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54212:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"54211:14:21"},"scope":10078,"src":"54136:703:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9718,"nodeType":"Block","src":"55234:138:21","statements":[{"assignments":[9705],"declarations":[{"constant":false,"id":9705,"mutability":"mutable","name":"hash","nameLocation":"55252:4:21","nodeType":"VariableDeclaration","scope":9718,"src":"55244:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55244:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9709,"initialValue":{"arguments":[{"id":9707,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9695,"src":"55279:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9706,"name":"initCodeHashERC1967","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9692,"src":"55259:19:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55259:35:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"55244:50:21"},{"expression":{"id":9716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9710,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9702,"src":"55304:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9712,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9705,"src":"55344:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9713,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9697,"src":"55350:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9714,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9699,"src":"55356:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9711,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9343,9576,10067],"referencedDeclaration":10067,"src":"55316:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55316:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"55304:61:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9717,"nodeType":"ExpressionStatement","src":"55304:61:21"}]},"documentation":{"id":9693,"nodeType":"StructuredDocumentation","src":"54845:212:21","text":"@dev Returns the address of the deterministic ERC1967 proxy of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9719,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967","nameLocation":"55071:34:21","nodeType":"FunctionDefinition","parameters":{"id":9700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9695,"mutability":"mutable","name":"implementation","nameLocation":"55123:14:21","nodeType":"VariableDeclaration","scope":9719,"src":"55115:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9694,"name":"address","nodeType":"ElementaryTypeName","src":"55115:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9697,"mutability":"mutable","name":"salt","nameLocation":"55155:4:21","nodeType":"VariableDeclaration","scope":9719,"src":"55147:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55147:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9699,"mutability":"mutable","name":"deployer","nameLocation":"55177:8:21","nodeType":"VariableDeclaration","scope":9719,"src":"55169:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9698,"name":"address","nodeType":"ElementaryTypeName","src":"55169:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55105:86:21"},"returnParameters":{"id":9703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9702,"mutability":"mutable","name":"predicted","nameLocation":"55223:9:21","nodeType":"VariableDeclaration","scope":9719,"src":"55215:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9701,"name":"address","nodeType":"ElementaryTypeName","src":"55215:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55214:19:21"},"scope":10078,"src":"55062:310:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9734,"nodeType":"Block","src":"56139:61:21","statements":[{"expression":{"id":9732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9727,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9725,"src":"56149:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"56175:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9730,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9722,"src":"56178:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9728,"name":"deployERC1967I","nodeType":"Identifier","overloadedDeclarations":[9735,9747],"referencedDeclaration":9747,"src":"56160:14:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56160:33:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"56149:44:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9733,"nodeType":"ExpressionStatement","src":"56149:44:21"}]},"documentation":{"id":9720,"nodeType":"StructuredDocumentation","src":"55986:64:21","text":"@dev Deploys a minimal ERC1967I proxy with `implementation`."},"id":9735,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967I","nameLocation":"56064:14:21","nodeType":"FunctionDefinition","parameters":{"id":9723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9722,"mutability":"mutable","name":"implementation","nameLocation":"56087:14:21","nodeType":"VariableDeclaration","scope":9735,"src":"56079:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9721,"name":"address","nodeType":"ElementaryTypeName","src":"56079:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56078:24:21"},"returnParameters":{"id":9726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9725,"mutability":"mutable","name":"instance","nameLocation":"56129:8:21","nodeType":"VariableDeclaration","scope":9735,"src":"56121:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9724,"name":"address","nodeType":"ElementaryTypeName","src":"56121:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56120:18:21"},"scope":10078,"src":"56055:145:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9746,"nodeType":"Block","src":"56434:8789:21","statements":[{"AST":{"nativeSrc":"56496:8721:21","nodeType":"YulBlock","src":"56496:8721:21","statements":[{"nativeSrc":"64480:20:21","nodeType":"YulVariableDeclaration","src":"64480:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"64495:4:21","nodeType":"YulLiteral","src":"64495:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"64489:5:21","nodeType":"YulIdentifier","src":"64489:5:21"},"nativeSrc":"64489:11:21","nodeType":"YulFunctionCall","src":"64489:11:21"},"variables":[{"name":"m","nativeSrc":"64484:1:21","nodeType":"YulTypedName","src":"64484:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64554:4:21","nodeType":"YulLiteral","src":"64554:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"64560:66:21","nodeType":"YulLiteral","src":"64560:66:21","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"64547:6:21","nodeType":"YulIdentifier","src":"64547:6:21"},"nativeSrc":"64547:80:21","nodeType":"YulFunctionCall","src":"64547:80:21"},"nativeSrc":"64547:80:21","nodeType":"YulExpressionStatement","src":"64547:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64647:4:21","nodeType":"YulLiteral","src":"64647:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"64653:66:21","nodeType":"YulLiteral","src":"64653:66:21","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"64640:6:21","nodeType":"YulIdentifier","src":"64640:6:21"},"nativeSrc":"64640:80:21","nodeType":"YulFunctionCall","src":"64640:80:21"},"nativeSrc":"64640:80:21","nodeType":"YulExpressionStatement","src":"64640:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64740:4:21","nodeType":"YulLiteral","src":"64740:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"64746:48:21","nodeType":"YulLiteral","src":"64746:48:21","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"64733:6:21","nodeType":"YulIdentifier","src":"64733:6:21"},"nativeSrc":"64733:62:21","nodeType":"YulFunctionCall","src":"64733:62:21"},"nativeSrc":"64733:62:21","nodeType":"YulExpressionStatement","src":"64733:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64815:4:21","nodeType":"YulLiteral","src":"64815:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"64828:3:21","nodeType":"YulLiteral","src":"64828:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"64833:20:21","nodeType":"YulLiteral","src":"64833:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"64824:3:21","nodeType":"YulIdentifier","src":"64824:3:21"},"nativeSrc":"64824:30:21","nodeType":"YulFunctionCall","src":"64824:30:21"},{"arguments":[{"kind":"number","nativeSrc":"64860:2:21","nodeType":"YulLiteral","src":"64860:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"64868:2:21","nodeType":"YulLiteral","src":"64868:2:21","type":"","value":"96"},{"name":"implementation","nativeSrc":"64872:14:21","nodeType":"YulIdentifier","src":"64872:14:21"}],"functionName":{"name":"shl","nativeSrc":"64864:3:21","nodeType":"YulIdentifier","src":"64864:3:21"},"nativeSrc":"64864:23:21","nodeType":"YulFunctionCall","src":"64864:23:21"}],"functionName":{"name":"shr","nativeSrc":"64856:3:21","nodeType":"YulIdentifier","src":"64856:3:21"},"nativeSrc":"64856:32:21","nodeType":"YulFunctionCall","src":"64856:32:21"}],"functionName":{"name":"or","nativeSrc":"64821:2:21","nodeType":"YulIdentifier","src":"64821:2:21"},"nativeSrc":"64821:68:21","nodeType":"YulFunctionCall","src":"64821:68:21"}],"functionName":{"name":"mstore","nativeSrc":"64808:6:21","nodeType":"YulIdentifier","src":"64808:6:21"},"nativeSrc":"64808:82:21","nodeType":"YulFunctionCall","src":"64808:82:21"},"nativeSrc":"64808:82:21","nodeType":"YulExpressionStatement","src":"64808:82:21"},{"nativeSrc":"64903:37:21","nodeType":"YulAssignment","src":"64903:37:21","value":{"arguments":[{"name":"value","nativeSrc":"64922:5:21","nodeType":"YulIdentifier","src":"64922:5:21"},{"kind":"number","nativeSrc":"64929:4:21","nodeType":"YulLiteral","src":"64929:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"64935:4:21","nodeType":"YulLiteral","src":"64935:4:21","type":"","value":"0x74"}],"functionName":{"name":"create","nativeSrc":"64915:6:21","nodeType":"YulIdentifier","src":"64915:6:21"},"nativeSrc":"64915:25:21","nodeType":"YulFunctionCall","src":"64915:25:21"},"variableNames":[{"name":"instance","nativeSrc":"64903:8:21","nodeType":"YulIdentifier","src":"64903:8:21"}]},{"body":{"nativeSrc":"64973:116:21","nodeType":"YulBlock","src":"64973:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"64998:4:21","nodeType":"YulLiteral","src":"64998:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"65004:10:21","nodeType":"YulLiteral","src":"65004:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"64991:6:21","nodeType":"YulIdentifier","src":"64991:6:21"},"nativeSrc":"64991:24:21","nodeType":"YulFunctionCall","src":"64991:24:21"},"nativeSrc":"64991:24:21","nodeType":"YulExpressionStatement","src":"64991:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65064:4:21","nodeType":"YulLiteral","src":"65064:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"65070:4:21","nodeType":"YulLiteral","src":"65070:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"65057:6:21","nodeType":"YulIdentifier","src":"65057:6:21"},"nativeSrc":"65057:18:21","nodeType":"YulFunctionCall","src":"65057:18:21"},"nativeSrc":"65057:18:21","nodeType":"YulExpressionStatement","src":"65057:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"64963:8:21","nodeType":"YulIdentifier","src":"64963:8:21"}],"functionName":{"name":"iszero","nativeSrc":"64956:6:21","nodeType":"YulIdentifier","src":"64956:6:21"},"nativeSrc":"64956:16:21","nodeType":"YulFunctionCall","src":"64956:16:21"},"nativeSrc":"64953:136:21","nodeType":"YulIf","src":"64953:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65109:4:21","nodeType":"YulLiteral","src":"65109:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"65115:1:21","nodeType":"YulIdentifier","src":"65115:1:21"}],"functionName":{"name":"mstore","nativeSrc":"65102:6:21","nodeType":"YulIdentifier","src":"65102:6:21"},"nativeSrc":"65102:15:21","nodeType":"YulFunctionCall","src":"65102:15:21"},"nativeSrc":"65102:15:21","nodeType":"YulExpressionStatement","src":"65102:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65173:4:21","nodeType":"YulLiteral","src":"65173:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"65179:1:21","nodeType":"YulLiteral","src":"65179:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"65166:6:21","nodeType":"YulIdentifier","src":"65166:6:21"},"nativeSrc":"65166:15:21","nodeType":"YulFunctionCall","src":"65166:15:21"},"nativeSrc":"65166:15:21","nodeType":"YulExpressionStatement","src":"65166:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9740,"isOffset":false,"isSlot":false,"src":"64872:14:21","valueSize":1},{"declaration":9743,"isOffset":false,"isSlot":false,"src":"64903:8:21","valueSize":1},{"declaration":9743,"isOffset":false,"isSlot":false,"src":"64963:8:21","valueSize":1},{"declaration":9738,"isOffset":false,"isSlot":false,"src":"64922:5:21","valueSize":1}],"id":9745,"nodeType":"InlineAssembly","src":"56487:8730:21"}]},"documentation":{"id":9736,"nodeType":"StructuredDocumentation","src":"56206:104:21","text":"@dev Deploys a ERC1967I proxy with `implementation`.\n Deposits `value` ETH during deployment."},"id":9747,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967I","nameLocation":"56324:14:21","nodeType":"FunctionDefinition","parameters":{"id":9741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9738,"mutability":"mutable","name":"value","nameLocation":"56347:5:21","nodeType":"VariableDeclaration","scope":9747,"src":"56339:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9737,"name":"uint256","nodeType":"ElementaryTypeName","src":"56339:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9740,"mutability":"mutable","name":"implementation","nameLocation":"56362:14:21","nodeType":"VariableDeclaration","scope":9747,"src":"56354:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9739,"name":"address","nodeType":"ElementaryTypeName","src":"56354:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56338:39:21"},"returnParameters":{"id":9744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9743,"mutability":"mutable","name":"instance","nameLocation":"56420:8:21","nodeType":"VariableDeclaration","scope":9747,"src":"56412:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9742,"name":"address","nodeType":"ElementaryTypeName","src":"56412:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56411:18:21"},"scope":10078,"src":"56315:8908:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9765,"nodeType":"Block","src":"65446:80:21","statements":[{"expression":{"id":9763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9757,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"65456:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"65495:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9760,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9750,"src":"65498:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9761,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9752,"src":"65514:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9758,"name":"deployDeterministicERC1967I","nodeType":"Identifier","overloadedDeclarations":[9766,9780],"referencedDeclaration":9780,"src":"65467:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65467:52:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"65456:63:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9764,"nodeType":"ExpressionStatement","src":"65456:63:21"}]},"documentation":{"id":9748,"nodeType":"StructuredDocumentation","src":"65229:81:21","text":"@dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`."},"id":9766,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967I","nameLocation":"65324:27:21","nodeType":"FunctionDefinition","parameters":{"id":9753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9750,"mutability":"mutable","name":"implementation","nameLocation":"65360:14:21","nodeType":"VariableDeclaration","scope":9766,"src":"65352:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9749,"name":"address","nodeType":"ElementaryTypeName","src":"65352:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9752,"mutability":"mutable","name":"salt","nameLocation":"65384:4:21","nodeType":"VariableDeclaration","scope":9766,"src":"65376:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65376:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65351:38:21"},"returnParameters":{"id":9756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9755,"mutability":"mutable","name":"instance","nameLocation":"65432:8:21","nodeType":"VariableDeclaration","scope":9766,"src":"65424:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9754,"name":"address","nodeType":"ElementaryTypeName","src":"65424:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65423:18:21"},"scope":10078,"src":"65315:211:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9779,"nodeType":"Block","src":"65812:826:21","statements":[{"AST":{"nativeSrc":"65874:758:21","nodeType":"YulBlock","src":"65874:758:21","statements":[{"nativeSrc":"65888:20:21","nodeType":"YulVariableDeclaration","src":"65888:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"65903:4:21","nodeType":"YulLiteral","src":"65903:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"65897:5:21","nodeType":"YulIdentifier","src":"65897:5:21"},"nativeSrc":"65897:11:21","nodeType":"YulFunctionCall","src":"65897:11:21"},"variables":[{"name":"m","nativeSrc":"65892:1:21","nodeType":"YulTypedName","src":"65892:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65962:4:21","nodeType":"YulLiteral","src":"65962:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"65968:66:21","nodeType":"YulLiteral","src":"65968:66:21","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"65955:6:21","nodeType":"YulIdentifier","src":"65955:6:21"},"nativeSrc":"65955:80:21","nodeType":"YulFunctionCall","src":"65955:80:21"},"nativeSrc":"65955:80:21","nodeType":"YulExpressionStatement","src":"65955:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66055:4:21","nodeType":"YulLiteral","src":"66055:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"66061:66:21","nodeType":"YulLiteral","src":"66061:66:21","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"66048:6:21","nodeType":"YulIdentifier","src":"66048:6:21"},"nativeSrc":"66048:80:21","nodeType":"YulFunctionCall","src":"66048:80:21"},"nativeSrc":"66048:80:21","nodeType":"YulExpressionStatement","src":"66048:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66148:4:21","nodeType":"YulLiteral","src":"66148:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"66154:48:21","nodeType":"YulLiteral","src":"66154:48:21","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"66141:6:21","nodeType":"YulIdentifier","src":"66141:6:21"},"nativeSrc":"66141:62:21","nodeType":"YulFunctionCall","src":"66141:62:21"},"nativeSrc":"66141:62:21","nodeType":"YulExpressionStatement","src":"66141:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66223:4:21","nodeType":"YulLiteral","src":"66223:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"66236:3:21","nodeType":"YulLiteral","src":"66236:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"66241:20:21","nodeType":"YulLiteral","src":"66241:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"66232:3:21","nodeType":"YulIdentifier","src":"66232:3:21"},"nativeSrc":"66232:30:21","nodeType":"YulFunctionCall","src":"66232:30:21"},{"arguments":[{"kind":"number","nativeSrc":"66268:2:21","nodeType":"YulLiteral","src":"66268:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"66276:2:21","nodeType":"YulLiteral","src":"66276:2:21","type":"","value":"96"},{"name":"implementation","nativeSrc":"66280:14:21","nodeType":"YulIdentifier","src":"66280:14:21"}],"functionName":{"name":"shl","nativeSrc":"66272:3:21","nodeType":"YulIdentifier","src":"66272:3:21"},"nativeSrc":"66272:23:21","nodeType":"YulFunctionCall","src":"66272:23:21"}],"functionName":{"name":"shr","nativeSrc":"66264:3:21","nodeType":"YulIdentifier","src":"66264:3:21"},"nativeSrc":"66264:32:21","nodeType":"YulFunctionCall","src":"66264:32:21"}],"functionName":{"name":"or","nativeSrc":"66229:2:21","nodeType":"YulIdentifier","src":"66229:2:21"},"nativeSrc":"66229:68:21","nodeType":"YulFunctionCall","src":"66229:68:21"}],"functionName":{"name":"mstore","nativeSrc":"66216:6:21","nodeType":"YulIdentifier","src":"66216:6:21"},"nativeSrc":"66216:82:21","nodeType":"YulFunctionCall","src":"66216:82:21"},"nativeSrc":"66216:82:21","nodeType":"YulExpressionStatement","src":"66216:82:21"},{"nativeSrc":"66311:44:21","nodeType":"YulAssignment","src":"66311:44:21","value":{"arguments":[{"name":"value","nativeSrc":"66331:5:21","nodeType":"YulIdentifier","src":"66331:5:21"},{"kind":"number","nativeSrc":"66338:4:21","nodeType":"YulLiteral","src":"66338:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"66344:4:21","nodeType":"YulLiteral","src":"66344:4:21","type":"","value":"0x74"},{"name":"salt","nativeSrc":"66350:4:21","nodeType":"YulIdentifier","src":"66350:4:21"}],"functionName":{"name":"create2","nativeSrc":"66323:7:21","nodeType":"YulIdentifier","src":"66323:7:21"},"nativeSrc":"66323:32:21","nodeType":"YulFunctionCall","src":"66323:32:21"},"variableNames":[{"name":"instance","nativeSrc":"66311:8:21","nodeType":"YulIdentifier","src":"66311:8:21"}]},{"body":{"nativeSrc":"66388:116:21","nodeType":"YulBlock","src":"66388:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"66413:4:21","nodeType":"YulLiteral","src":"66413:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"66419:10:21","nodeType":"YulLiteral","src":"66419:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"66406:6:21","nodeType":"YulIdentifier","src":"66406:6:21"},"nativeSrc":"66406:24:21","nodeType":"YulFunctionCall","src":"66406:24:21"},"nativeSrc":"66406:24:21","nodeType":"YulExpressionStatement","src":"66406:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66479:4:21","nodeType":"YulLiteral","src":"66479:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"66485:4:21","nodeType":"YulLiteral","src":"66485:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"66472:6:21","nodeType":"YulIdentifier","src":"66472:6:21"},"nativeSrc":"66472:18:21","nodeType":"YulFunctionCall","src":"66472:18:21"},"nativeSrc":"66472:18:21","nodeType":"YulExpressionStatement","src":"66472:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"66378:8:21","nodeType":"YulIdentifier","src":"66378:8:21"}],"functionName":{"name":"iszero","nativeSrc":"66371:6:21","nodeType":"YulIdentifier","src":"66371:6:21"},"nativeSrc":"66371:16:21","nodeType":"YulFunctionCall","src":"66371:16:21"},"nativeSrc":"66368:136:21","nodeType":"YulIf","src":"66368:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66524:4:21","nodeType":"YulLiteral","src":"66524:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"66530:1:21","nodeType":"YulIdentifier","src":"66530:1:21"}],"functionName":{"name":"mstore","nativeSrc":"66517:6:21","nodeType":"YulIdentifier","src":"66517:6:21"},"nativeSrc":"66517:15:21","nodeType":"YulFunctionCall","src":"66517:15:21"},"nativeSrc":"66517:15:21","nodeType":"YulExpressionStatement","src":"66517:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66588:4:21","nodeType":"YulLiteral","src":"66588:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"66594:1:21","nodeType":"YulLiteral","src":"66594:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"66581:6:21","nodeType":"YulIdentifier","src":"66581:6:21"},"nativeSrc":"66581:15:21","nodeType":"YulFunctionCall","src":"66581:15:21"},"nativeSrc":"66581:15:21","nodeType":"YulExpressionStatement","src":"66581:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9771,"isOffset":false,"isSlot":false,"src":"66280:14:21","valueSize":1},{"declaration":9776,"isOffset":false,"isSlot":false,"src":"66311:8:21","valueSize":1},{"declaration":9776,"isOffset":false,"isSlot":false,"src":"66378:8:21","valueSize":1},{"declaration":9773,"isOffset":false,"isSlot":false,"src":"66350:4:21","valueSize":1},{"declaration":9769,"isOffset":false,"isSlot":false,"src":"66331:5:21","valueSize":1}],"id":9778,"nodeType":"InlineAssembly","src":"65865:767:21"}]},"documentation":{"id":9767,"nodeType":"StructuredDocumentation","src":"65532:129:21","text":"@dev Deploys a deterministic ERC1967I proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment."},"id":9780,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967I","nameLocation":"65675:27:21","nodeType":"FunctionDefinition","parameters":{"id":9774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9769,"mutability":"mutable","name":"value","nameLocation":"65711:5:21","nodeType":"VariableDeclaration","scope":9780,"src":"65703:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9768,"name":"uint256","nodeType":"ElementaryTypeName","src":"65703:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9771,"mutability":"mutable","name":"implementation","nameLocation":"65726:14:21","nodeType":"VariableDeclaration","scope":9780,"src":"65718:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9770,"name":"address","nodeType":"ElementaryTypeName","src":"65718:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9773,"mutability":"mutable","name":"salt","nameLocation":"65750:4:21","nodeType":"VariableDeclaration","scope":9780,"src":"65742:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65742:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65702:53:21"},"returnParameters":{"id":9777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9776,"mutability":"mutable","name":"instance","nameLocation":"65798:8:21","nodeType":"VariableDeclaration","scope":9780,"src":"65790:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9775,"name":"address","nodeType":"ElementaryTypeName","src":"65790:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65789:18:21"},"scope":10078,"src":"65666:972:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9798,"nodeType":"Block","src":"67026:76:21","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"67071:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9794,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9783,"src":"67074:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9795,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9785,"src":"67090:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9792,"name":"createDeterministicERC1967I","nodeType":"Identifier","overloadedDeclarations":[9799,9815],"referencedDeclaration":9815,"src":"67043:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":9796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67043:52:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9791,"id":9797,"nodeType":"Return","src":"67036:59:21"}]},"documentation":{"id":9781,"nodeType":"StructuredDocumentation","src":"66644:224:21","text":"@dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9799,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967I","nameLocation":"66882:27:21","nodeType":"FunctionDefinition","parameters":{"id":9786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9783,"mutability":"mutable","name":"implementation","nameLocation":"66918:14:21","nodeType":"VariableDeclaration","scope":9799,"src":"66910:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9782,"name":"address","nodeType":"ElementaryTypeName","src":"66910:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9785,"mutability":"mutable","name":"salt","nameLocation":"66942:4:21","nodeType":"VariableDeclaration","scope":9799,"src":"66934:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66934:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"66909:38:21"},"returnParameters":{"id":9791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9788,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"66987:15:21","nodeType":"VariableDeclaration","scope":9799,"src":"66982:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9787,"name":"bool","nodeType":"ElementaryTypeName","src":"66982:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9790,"mutability":"mutable","name":"instance","nameLocation":"67012:8:21","nodeType":"VariableDeclaration","scope":9799,"src":"67004:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9789,"name":"address","nodeType":"ElementaryTypeName","src":"67004:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66981:40:21"},"scope":10078,"src":"66873:229:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9814,"nodeType":"Block","src":"67553:1607:21","statements":[{"AST":{"nativeSrc":"67615:1539:21","nodeType":"YulBlock","src":"67615:1539:21","statements":[{"nativeSrc":"67629:20:21","nodeType":"YulVariableDeclaration","src":"67629:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"67644:4:21","nodeType":"YulLiteral","src":"67644:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"67638:5:21","nodeType":"YulIdentifier","src":"67638:5:21"},"nativeSrc":"67638:11:21","nodeType":"YulFunctionCall","src":"67638:11:21"},"variables":[{"name":"m","nativeSrc":"67633:1:21","nodeType":"YulTypedName","src":"67633:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67703:4:21","nodeType":"YulLiteral","src":"67703:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"67709:66:21","nodeType":"YulLiteral","src":"67709:66:21","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"67696:6:21","nodeType":"YulIdentifier","src":"67696:6:21"},"nativeSrc":"67696:80:21","nodeType":"YulFunctionCall","src":"67696:80:21"},"nativeSrc":"67696:80:21","nodeType":"YulExpressionStatement","src":"67696:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67796:4:21","nodeType":"YulLiteral","src":"67796:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"67802:66:21","nodeType":"YulLiteral","src":"67802:66:21","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"67789:6:21","nodeType":"YulIdentifier","src":"67789:6:21"},"nativeSrc":"67789:80:21","nodeType":"YulFunctionCall","src":"67789:80:21"},"nativeSrc":"67789:80:21","nodeType":"YulExpressionStatement","src":"67789:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67889:4:21","nodeType":"YulLiteral","src":"67889:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"67895:48:21","nodeType":"YulLiteral","src":"67895:48:21","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"67882:6:21","nodeType":"YulIdentifier","src":"67882:6:21"},"nativeSrc":"67882:62:21","nodeType":"YulFunctionCall","src":"67882:62:21"},"nativeSrc":"67882:62:21","nodeType":"YulExpressionStatement","src":"67882:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67964:4:21","nodeType":"YulLiteral","src":"67964:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"67977:3:21","nodeType":"YulLiteral","src":"67977:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"67982:20:21","nodeType":"YulLiteral","src":"67982:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"67973:3:21","nodeType":"YulIdentifier","src":"67973:3:21"},"nativeSrc":"67973:30:21","nodeType":"YulFunctionCall","src":"67973:30:21"},{"arguments":[{"kind":"number","nativeSrc":"68009:2:21","nodeType":"YulLiteral","src":"68009:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"68017:2:21","nodeType":"YulLiteral","src":"68017:2:21","type":"","value":"96"},{"name":"implementation","nativeSrc":"68021:14:21","nodeType":"YulIdentifier","src":"68021:14:21"}],"functionName":{"name":"shl","nativeSrc":"68013:3:21","nodeType":"YulIdentifier","src":"68013:3:21"},"nativeSrc":"68013:23:21","nodeType":"YulFunctionCall","src":"68013:23:21"}],"functionName":{"name":"shr","nativeSrc":"68005:3:21","nodeType":"YulIdentifier","src":"68005:3:21"},"nativeSrc":"68005:32:21","nodeType":"YulFunctionCall","src":"68005:32:21"}],"functionName":{"name":"or","nativeSrc":"67970:2:21","nodeType":"YulIdentifier","src":"67970:2:21"},"nativeSrc":"67970:68:21","nodeType":"YulFunctionCall","src":"67970:68:21"}],"functionName":{"name":"mstore","nativeSrc":"67957:6:21","nodeType":"YulIdentifier","src":"67957:6:21"},"nativeSrc":"67957:82:21","nodeType":"YulFunctionCall","src":"67957:82:21"},"nativeSrc":"67957:82:21","nodeType":"YulExpressionStatement","src":"67957:82:21"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"68115:1:21","nodeType":"YulIdentifier","src":"68115:1:21"},{"kind":"number","nativeSrc":"68118:4:21","nodeType":"YulLiteral","src":"68118:4:21","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"68111:3:21","nodeType":"YulIdentifier","src":"68111:3:21"},"nativeSrc":"68111:12:21","nodeType":"YulFunctionCall","src":"68111:12:21"},{"arguments":[{"kind":"number","nativeSrc":"68135:4:21","nodeType":"YulLiteral","src":"68135:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"68141:4:21","nodeType":"YulLiteral","src":"68141:4:21","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"68125:9:21","nodeType":"YulIdentifier","src":"68125:9:21"},"nativeSrc":"68125:21:21","nodeType":"YulFunctionCall","src":"68125:21:21"}],"functionName":{"name":"mstore","nativeSrc":"68104:6:21","nodeType":"YulIdentifier","src":"68104:6:21"},"nativeSrc":"68104:43:21","nodeType":"YulFunctionCall","src":"68104:43:21"},"nativeSrc":"68104:43:21","nodeType":"YulExpressionStatement","src":"68104:43:21"},{"expression":{"arguments":[{"name":"m","nativeSrc":"68167:1:21","nodeType":"YulIdentifier","src":"68167:1:21"},{"arguments":[{"kind":"number","nativeSrc":"68174:2:21","nodeType":"YulLiteral","src":"68174:2:21","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"68178:7:21","nodeType":"YulIdentifier","src":"68178:7:21"},"nativeSrc":"68178:9:21","nodeType":"YulFunctionCall","src":"68178:9:21"}],"functionName":{"name":"shl","nativeSrc":"68170:3:21","nodeType":"YulIdentifier","src":"68170:3:21"},"nativeSrc":"68170:18:21","nodeType":"YulFunctionCall","src":"68170:18:21"}],"functionName":{"name":"mstore","nativeSrc":"68160:6:21","nodeType":"YulIdentifier","src":"68160:6:21"},"nativeSrc":"68160:29:21","nodeType":"YulFunctionCall","src":"68160:29:21"},"nativeSrc":"68160:29:21","nodeType":"YulExpressionStatement","src":"68160:29:21"},{"expression":{"arguments":[{"name":"m","nativeSrc":"68210:1:21","nodeType":"YulIdentifier","src":"68210:1:21"},{"kind":"number","nativeSrc":"68213:4:21","nodeType":"YulLiteral","src":"68213:4:21","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"68202:7:21","nodeType":"YulIdentifier","src":"68202:7:21"},"nativeSrc":"68202:16:21","nodeType":"YulFunctionCall","src":"68202:16:21"},"nativeSrc":"68202:16:21","nodeType":"YulExpressionStatement","src":"68202:16:21"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"68263:1:21","nodeType":"YulIdentifier","src":"68263:1:21"},{"kind":"number","nativeSrc":"68266:4:21","nodeType":"YulLiteral","src":"68266:4:21","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"68259:3:21","nodeType":"YulIdentifier","src":"68259:3:21"},"nativeSrc":"68259:12:21","nodeType":"YulFunctionCall","src":"68259:12:21"},{"name":"salt","nativeSrc":"68273:4:21","nodeType":"YulIdentifier","src":"68273:4:21"}],"functionName":{"name":"mstore","nativeSrc":"68252:6:21","nodeType":"YulIdentifier","src":"68252:6:21"},"nativeSrc":"68252:26:21","nodeType":"YulFunctionCall","src":"68252:26:21"},"nativeSrc":"68252:26:21","nodeType":"YulExpressionStatement","src":"68252:26:21"},{"nativeSrc":"68291:30:21","nodeType":"YulAssignment","src":"68291:30:21","value":{"arguments":[{"name":"m","nativeSrc":"68313:1:21","nodeType":"YulIdentifier","src":"68313:1:21"},{"kind":"number","nativeSrc":"68316:4:21","nodeType":"YulLiteral","src":"68316:4:21","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"68303:9:21","nodeType":"YulIdentifier","src":"68303:9:21"},"nativeSrc":"68303:18:21","nodeType":"YulFunctionCall","src":"68303:18:21"},"variableNames":[{"name":"instance","nativeSrc":"68291:8:21","nodeType":"YulIdentifier","src":"68291:8:21"}]},{"body":{"nativeSrc":"68346:680:21","nodeType":"YulBlock","src":"68346:680:21","statements":[{"body":{"nativeSrc":"68397:291:21","nodeType":"YulBlock","src":"68397:291:21","statements":[{"nativeSrc":"68419:44:21","nodeType":"YulAssignment","src":"68419:44:21","value":{"arguments":[{"name":"value","nativeSrc":"68439:5:21","nodeType":"YulIdentifier","src":"68439:5:21"},{"kind":"number","nativeSrc":"68446:4:21","nodeType":"YulLiteral","src":"68446:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"68452:4:21","nodeType":"YulLiteral","src":"68452:4:21","type":"","value":"0x74"},{"name":"salt","nativeSrc":"68458:4:21","nodeType":"YulIdentifier","src":"68458:4:21"}],"functionName":{"name":"create2","nativeSrc":"68431:7:21","nodeType":"YulIdentifier","src":"68431:7:21"},"nativeSrc":"68431:32:21","nodeType":"YulFunctionCall","src":"68431:32:21"},"variableNames":[{"name":"instance","nativeSrc":"68419:8:21","nodeType":"YulIdentifier","src":"68419:8:21"}]},{"body":{"nativeSrc":"68504:140:21","nodeType":"YulBlock","src":"68504:140:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68537:4:21","nodeType":"YulLiteral","src":"68537:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"68543:10:21","nodeType":"YulLiteral","src":"68543:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"68530:6:21","nodeType":"YulIdentifier","src":"68530:6:21"},"nativeSrc":"68530:24:21","nodeType":"YulFunctionCall","src":"68530:24:21"},"nativeSrc":"68530:24:21","nodeType":"YulExpressionStatement","src":"68530:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68611:4:21","nodeType":"YulLiteral","src":"68611:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"68617:4:21","nodeType":"YulLiteral","src":"68617:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"68604:6:21","nodeType":"YulIdentifier","src":"68604:6:21"},"nativeSrc":"68604:18:21","nodeType":"YulFunctionCall","src":"68604:18:21"},"nativeSrc":"68604:18:21","nodeType":"YulExpressionStatement","src":"68604:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"68494:8:21","nodeType":"YulIdentifier","src":"68494:8:21"}],"functionName":{"name":"iszero","nativeSrc":"68487:6:21","nodeType":"YulIdentifier","src":"68487:6:21"},"nativeSrc":"68487:16:21","nodeType":"YulFunctionCall","src":"68487:16:21"},"nativeSrc":"68484:160:21","nodeType":"YulIf","src":"68484:160:21"},{"nativeSrc":"68665:5:21","nodeType":"YulBreak","src":"68665:5:21"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"68386:8:21","nodeType":"YulIdentifier","src":"68386:8:21"}],"functionName":{"name":"extcodesize","nativeSrc":"68374:11:21","nodeType":"YulIdentifier","src":"68374:11:21"},"nativeSrc":"68374:21:21","nodeType":"YulFunctionCall","src":"68374:21:21"}],"functionName":{"name":"iszero","nativeSrc":"68367:6:21","nodeType":"YulIdentifier","src":"68367:6:21"},"nativeSrc":"68367:29:21","nodeType":"YulFunctionCall","src":"68367:29:21"},"nativeSrc":"68364:324:21","nodeType":"YulIf","src":"68364:324:21"},{"nativeSrc":"68705:20:21","nodeType":"YulAssignment","src":"68705:20:21","value":{"kind":"number","nativeSrc":"68724:1:21","nodeType":"YulLiteral","src":"68724:1:21","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"68705:15:21","nodeType":"YulIdentifier","src":"68705:15:21"}]},{"body":{"nativeSrc":"68759:9:21","nodeType":"YulBlock","src":"68759:9:21","statements":[{"nativeSrc":"68761:5:21","nodeType":"YulBreak","src":"68761:5:21"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"68752:5:21","nodeType":"YulIdentifier","src":"68752:5:21"}],"functionName":{"name":"iszero","nativeSrc":"68745:6:21","nodeType":"YulIdentifier","src":"68745:6:21"},"nativeSrc":"68745:13:21","nodeType":"YulFunctionCall","src":"68745:13:21"},"nativeSrc":"68742:26:21","nodeType":"YulIf","src":"68742:26:21"},{"body":{"nativeSrc":"68861:129:21","nodeType":"YulBlock","src":"68861:129:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68890:4:21","nodeType":"YulLiteral","src":"68890:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"68896:10:21","nodeType":"YulLiteral","src":"68896:10:21","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"68883:6:21","nodeType":"YulIdentifier","src":"68883:6:21"},"nativeSrc":"68883:24:21","nodeType":"YulFunctionCall","src":"68883:24:21"},"nativeSrc":"68883:24:21","nodeType":"YulExpressionStatement","src":"68883:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68961:4:21","nodeType":"YulLiteral","src":"68961:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"68967:4:21","nodeType":"YulLiteral","src":"68967:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"68954:6:21","nodeType":"YulIdentifier","src":"68954:6:21"},"nativeSrc":"68954:18:21","nodeType":"YulFunctionCall","src":"68954:18:21"},"nativeSrc":"68954:18:21","nodeType":"YulExpressionStatement","src":"68954:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"68800:3:21","nodeType":"YulIdentifier","src":"68800:3:21"},"nativeSrc":"68800:5:21","nodeType":"YulFunctionCall","src":"68800:5:21"},{"name":"instance","nativeSrc":"68807:8:21","nodeType":"YulIdentifier","src":"68807:8:21"},{"name":"value","nativeSrc":"68817:5:21","nodeType":"YulIdentifier","src":"68817:5:21"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"68824:8:21","nodeType":"YulIdentifier","src":"68824:8:21"},"nativeSrc":"68824:10:21","nodeType":"YulFunctionCall","src":"68824:10:21"},{"kind":"number","nativeSrc":"68836:4:21","nodeType":"YulLiteral","src":"68836:4:21","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"68842:8:21","nodeType":"YulIdentifier","src":"68842:8:21"},"nativeSrc":"68842:10:21","nodeType":"YulFunctionCall","src":"68842:10:21"},{"kind":"number","nativeSrc":"68854:4:21","nodeType":"YulLiteral","src":"68854:4:21","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"68795:4:21","nodeType":"YulIdentifier","src":"68795:4:21"},"nativeSrc":"68795:64:21","nodeType":"YulFunctionCall","src":"68795:64:21"}],"functionName":{"name":"iszero","nativeSrc":"68788:6:21","nodeType":"YulIdentifier","src":"68788:6:21"},"nativeSrc":"68788:72:21","nodeType":"YulFunctionCall","src":"68788:72:21"},"nativeSrc":"68785:205:21","nodeType":"YulIf","src":"68785:205:21"},{"nativeSrc":"69007:5:21","nodeType":"YulBreak","src":"69007:5:21"}]},"condition":{"kind":"number","nativeSrc":"68341:1:21","nodeType":"YulLiteral","src":"68341:1:21","type":"","value":"1"},"nativeSrc":"68334:692:21","nodeType":"YulForLoop","post":{"nativeSrc":"68343:2:21","nodeType":"YulBlock","src":"68343:2:21","statements":[]},"pre":{"nativeSrc":"68338:2:21","nodeType":"YulBlock","src":"68338:2:21","statements":[]},"src":"68334:692:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69046:4:21","nodeType":"YulLiteral","src":"69046:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"69052:1:21","nodeType":"YulIdentifier","src":"69052:1:21"}],"functionName":{"name":"mstore","nativeSrc":"69039:6:21","nodeType":"YulIdentifier","src":"69039:6:21"},"nativeSrc":"69039:15:21","nodeType":"YulFunctionCall","src":"69039:15:21"},"nativeSrc":"69039:15:21","nodeType":"YulExpressionStatement","src":"69039:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69110:4:21","nodeType":"YulLiteral","src":"69110:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"69116:1:21","nodeType":"YulLiteral","src":"69116:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"69103:6:21","nodeType":"YulIdentifier","src":"69103:6:21"},"nativeSrc":"69103:15:21","nodeType":"YulFunctionCall","src":"69103:15:21"},"nativeSrc":"69103:15:21","nodeType":"YulExpressionStatement","src":"69103:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9809,"isOffset":false,"isSlot":false,"src":"68705:15:21","valueSize":1},{"declaration":9804,"isOffset":false,"isSlot":false,"src":"68021:14:21","valueSize":1},{"declaration":9811,"isOffset":false,"isSlot":false,"src":"68291:8:21","valueSize":1},{"declaration":9811,"isOffset":false,"isSlot":false,"src":"68386:8:21","valueSize":1},{"declaration":9811,"isOffset":false,"isSlot":false,"src":"68419:8:21","valueSize":1},{"declaration":9811,"isOffset":false,"isSlot":false,"src":"68494:8:21","valueSize":1},{"declaration":9811,"isOffset":false,"isSlot":false,"src":"68807:8:21","valueSize":1},{"declaration":9806,"isOffset":false,"isSlot":false,"src":"68273:4:21","valueSize":1},{"declaration":9806,"isOffset":false,"isSlot":false,"src":"68458:4:21","valueSize":1},{"declaration":9802,"isOffset":false,"isSlot":false,"src":"68439:5:21","valueSize":1},{"declaration":9802,"isOffset":false,"isSlot":false,"src":"68752:5:21","valueSize":1},{"declaration":9802,"isOffset":false,"isSlot":false,"src":"68817:5:21","valueSize":1}],"id":9813,"nodeType":"InlineAssembly","src":"67606:1548:21"}]},"documentation":{"id":9800,"nodeType":"StructuredDocumentation","src":"67108:272:21","text":"@dev Creates a deterministic ERC1967I proxy with `implementation` and `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9815,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967I","nameLocation":"67394:27:21","nodeType":"FunctionDefinition","parameters":{"id":9807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"value","nameLocation":"67430:5:21","nodeType":"VariableDeclaration","scope":9815,"src":"67422:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9801,"name":"uint256","nodeType":"ElementaryTypeName","src":"67422:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9804,"mutability":"mutable","name":"implementation","nameLocation":"67445:14:21","nodeType":"VariableDeclaration","scope":9815,"src":"67437:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9803,"name":"address","nodeType":"ElementaryTypeName","src":"67437:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9806,"mutability":"mutable","name":"salt","nameLocation":"67469:4:21","nodeType":"VariableDeclaration","scope":9815,"src":"67461:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67461:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"67421:53:21"},"returnParameters":{"id":9812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9809,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"67514:15:21","nodeType":"VariableDeclaration","scope":9815,"src":"67509:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9808,"name":"bool","nodeType":"ElementaryTypeName","src":"67509:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9811,"mutability":"mutable","name":"instance","nameLocation":"67539:8:21","nodeType":"VariableDeclaration","scope":9815,"src":"67531:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9810,"name":"address","nodeType":"ElementaryTypeName","src":"67531:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67508:40:21"},"scope":10078,"src":"67385:1775:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9824,"nodeType":"Block","src":"69355:778:21","statements":[{"AST":{"nativeSrc":"69417:710:21","nodeType":"YulBlock","src":"69417:710:21","statements":[{"nativeSrc":"69431:21:21","nodeType":"YulAssignment","src":"69431:21:21","value":{"arguments":[{"kind":"number","nativeSrc":"69447:4:21","nodeType":"YulLiteral","src":"69447:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"69441:5:21","nodeType":"YulIdentifier","src":"69441:5:21"},"nativeSrc":"69441:11:21","nodeType":"YulFunctionCall","src":"69441:11:21"},"variableNames":[{"name":"result","nativeSrc":"69431:6:21","nodeType":"YulIdentifier","src":"69431:6:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69493:6:21","nodeType":"YulIdentifier","src":"69493:6:21"},{"kind":"number","nativeSrc":"69501:4:21","nodeType":"YulLiteral","src":"69501:4:21","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"69489:3:21","nodeType":"YulIdentifier","src":"69489:3:21"},"nativeSrc":"69489:17:21","nodeType":"YulFunctionCall","src":"69489:17:21"},{"kind":"number","nativeSrc":"69524:66:21","nodeType":"YulLiteral","src":"69524:66:21","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"69465:6:21","nodeType":"YulIdentifier","src":"69465:6:21"},"nativeSrc":"69465:139:21","nodeType":"YulFunctionCall","src":"69465:139:21"},"nativeSrc":"69465:139:21","nodeType":"YulExpressionStatement","src":"69465:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69645:6:21","nodeType":"YulIdentifier","src":"69645:6:21"},{"kind":"number","nativeSrc":"69653:4:21","nodeType":"YulLiteral","src":"69653:4:21","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"69641:3:21","nodeType":"YulIdentifier","src":"69641:3:21"},"nativeSrc":"69641:17:21","nodeType":"YulFunctionCall","src":"69641:17:21"},{"kind":"number","nativeSrc":"69676:66:21","nodeType":"YulLiteral","src":"69676:66:21","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"69617:6:21","nodeType":"YulIdentifier","src":"69617:6:21"},"nativeSrc":"69617:139:21","nodeType":"YulFunctionCall","src":"69617:139:21"},"nativeSrc":"69617:139:21","nodeType":"YulExpressionStatement","src":"69617:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69780:6:21","nodeType":"YulIdentifier","src":"69780:6:21"},{"kind":"number","nativeSrc":"69788:4:21","nodeType":"YulLiteral","src":"69788:4:21","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"69776:3:21","nodeType":"YulIdentifier","src":"69776:3:21"},"nativeSrc":"69776:17:21","nodeType":"YulFunctionCall","src":"69776:17:21"},{"kind":"number","nativeSrc":"69795:48:21","nodeType":"YulLiteral","src":"69795:48:21","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"69769:6:21","nodeType":"YulIdentifier","src":"69769:6:21"},"nativeSrc":"69769:75:21","nodeType":"YulFunctionCall","src":"69769:75:21"},"nativeSrc":"69769:75:21","nodeType":"YulExpressionStatement","src":"69769:75:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69868:6:21","nodeType":"YulIdentifier","src":"69868:6:21"},{"kind":"number","nativeSrc":"69876:4:21","nodeType":"YulLiteral","src":"69876:4:21","type":"","value":"0x1d"}],"functionName":{"name":"add","nativeSrc":"69864:3:21","nodeType":"YulIdentifier","src":"69864:3:21"},"nativeSrc":"69864:17:21","nodeType":"YulFunctionCall","src":"69864:17:21"},{"name":"implementation","nativeSrc":"69883:14:21","nodeType":"YulIdentifier","src":"69883:14:21"}],"functionName":{"name":"mstore","nativeSrc":"69857:6:21","nodeType":"YulIdentifier","src":"69857:6:21"},"nativeSrc":"69857:41:21","nodeType":"YulFunctionCall","src":"69857:41:21"},"nativeSrc":"69857:41:21","nodeType":"YulExpressionStatement","src":"69857:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69922:6:21","nodeType":"YulIdentifier","src":"69922:6:21"},{"kind":"number","nativeSrc":"69930:4:21","nodeType":"YulLiteral","src":"69930:4:21","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"69918:3:21","nodeType":"YulIdentifier","src":"69918:3:21"},"nativeSrc":"69918:17:21","nodeType":"YulFunctionCall","src":"69918:17:21"},{"kind":"number","nativeSrc":"69937:20:21","nodeType":"YulLiteral","src":"69937:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"69911:6:21","nodeType":"YulIdentifier","src":"69911:6:21"},"nativeSrc":"69911:47:21","nodeType":"YulFunctionCall","src":"69911:47:21"},"nativeSrc":"69911:47:21","nodeType":"YulExpressionStatement","src":"69911:47:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"69982:6:21","nodeType":"YulIdentifier","src":"69982:6:21"},{"kind":"number","nativeSrc":"69990:4:21","nodeType":"YulLiteral","src":"69990:4:21","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"69978:3:21","nodeType":"YulIdentifier","src":"69978:3:21"},"nativeSrc":"69978:17:21","nodeType":"YulFunctionCall","src":"69978:17:21"},{"kind":"number","nativeSrc":"69997:1:21","nodeType":"YulLiteral","src":"69997:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"69971:6:21","nodeType":"YulIdentifier","src":"69971:6:21"},"nativeSrc":"69971:28:21","nodeType":"YulFunctionCall","src":"69971:28:21"},"nativeSrc":"69971:28:21","nodeType":"YulExpressionStatement","src":"69971:28:21"},{"expression":{"arguments":[{"name":"result","nativeSrc":"70019:6:21","nodeType":"YulIdentifier","src":"70019:6:21"},{"kind":"number","nativeSrc":"70027:4:21","nodeType":"YulLiteral","src":"70027:4:21","type":"","value":"0x74"}],"functionName":{"name":"mstore","nativeSrc":"70012:6:21","nodeType":"YulIdentifier","src":"70012:6:21"},"nativeSrc":"70012:20:21","nodeType":"YulFunctionCall","src":"70012:20:21"},"nativeSrc":"70012:20:21","nodeType":"YulExpressionStatement","src":"70012:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70073:4:21","nodeType":"YulLiteral","src":"70073:4:21","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"70083:6:21","nodeType":"YulIdentifier","src":"70083:6:21"},{"kind":"number","nativeSrc":"70091:4:21","nodeType":"YulLiteral","src":"70091:4:21","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"70079:3:21","nodeType":"YulIdentifier","src":"70079:3:21"},"nativeSrc":"70079:17:21","nodeType":"YulFunctionCall","src":"70079:17:21"}],"functionName":{"name":"mstore","nativeSrc":"70066:6:21","nodeType":"YulIdentifier","src":"70066:6:21"},"nativeSrc":"70066:31:21","nodeType":"YulFunctionCall","src":"70066:31:21"},"nativeSrc":"70066:31:21","nodeType":"YulExpressionStatement","src":"70066:31:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9818,"isOffset":false,"isSlot":false,"src":"69883:14:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"69431:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"69493:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"69645:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"69780:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"69868:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"69922:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"69982:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"70019:6:21","valueSize":1},{"declaration":9821,"isOffset":false,"isSlot":false,"src":"70083:6:21","valueSize":1}],"id":9823,"nodeType":"InlineAssembly","src":"69408:719:21"}]},"documentation":{"id":9816,"nodeType":"StructuredDocumentation","src":"69166:90:21","text":"@dev Returns the initialization code of the minimal ERC1967 proxy of `implementation`."},"id":9825,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967I","nameLocation":"69270:16:21","nodeType":"FunctionDefinition","parameters":{"id":9819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9818,"mutability":"mutable","name":"implementation","nameLocation":"69295:14:21","nodeType":"VariableDeclaration","scope":9825,"src":"69287:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9817,"name":"address","nodeType":"ElementaryTypeName","src":"69287:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"69286:24:21"},"returnParameters":{"id":9822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9821,"mutability":"mutable","name":"result","nameLocation":"69347:6:21","nodeType":"VariableDeclaration","scope":9825,"src":"69334:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9820,"name":"bytes","nodeType":"ElementaryTypeName","src":"69334:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"69333:21:21"},"scope":10078,"src":"69261:872:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9834,"nodeType":"Block","src":"70391:662:21","statements":[{"AST":{"nativeSrc":"70453:594:21","nodeType":"YulBlock","src":"70453:594:21","statements":[{"nativeSrc":"70467:20:21","nodeType":"YulVariableDeclaration","src":"70467:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"70482:4:21","nodeType":"YulLiteral","src":"70482:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"70476:5:21","nodeType":"YulIdentifier","src":"70476:5:21"},"nativeSrc":"70476:11:21","nodeType":"YulFunctionCall","src":"70476:11:21"},"variables":[{"name":"m","nativeSrc":"70471:1:21","nodeType":"YulTypedName","src":"70471:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70541:4:21","nodeType":"YulLiteral","src":"70541:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"70547:66:21","nodeType":"YulLiteral","src":"70547:66:21","type":"","value":"0x3d6000803e603e573d6000fd5b3d6000f35b6020600f3d393d51543d52593df3"}],"functionName":{"name":"mstore","nativeSrc":"70534:6:21","nodeType":"YulIdentifier","src":"70534:6:21"},"nativeSrc":"70534:80:21","nodeType":"YulFunctionCall","src":"70534:80:21"},"nativeSrc":"70534:80:21","nodeType":"YulExpressionStatement","src":"70534:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70634:4:21","nodeType":"YulLiteral","src":"70634:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"70640:66:21","nodeType":"YulLiteral","src":"70640:66:21","type":"","value":"0xa13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af4"}],"functionName":{"name":"mstore","nativeSrc":"70627:6:21","nodeType":"YulIdentifier","src":"70627:6:21"},"nativeSrc":"70627:80:21","nodeType":"YulFunctionCall","src":"70627:80:21"},"nativeSrc":"70627:80:21","nodeType":"YulExpressionStatement","src":"70627:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70727:4:21","nodeType":"YulLiteral","src":"70727:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"70733:48:21","nodeType":"YulLiteral","src":"70733:48:21","type":"","value":"0x600f5155f3365814604357363d3d373d3d363d7f360894"}],"functionName":{"name":"mstore","nativeSrc":"70720:6:21","nodeType":"YulIdentifier","src":"70720:6:21"},"nativeSrc":"70720:62:21","nodeType":"YulFunctionCall","src":"70720:62:21"},"nativeSrc":"70720:62:21","nodeType":"YulExpressionStatement","src":"70720:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70802:4:21","nodeType":"YulLiteral","src":"70802:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"70815:3:21","nodeType":"YulLiteral","src":"70815:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"70820:20:21","nodeType":"YulLiteral","src":"70820:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"70811:3:21","nodeType":"YulIdentifier","src":"70811:3:21"},"nativeSrc":"70811:30:21","nodeType":"YulFunctionCall","src":"70811:30:21"},{"arguments":[{"kind":"number","nativeSrc":"70847:2:21","nodeType":"YulLiteral","src":"70847:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"70855:2:21","nodeType":"YulLiteral","src":"70855:2:21","type":"","value":"96"},{"name":"implementation","nativeSrc":"70859:14:21","nodeType":"YulIdentifier","src":"70859:14:21"}],"functionName":{"name":"shl","nativeSrc":"70851:3:21","nodeType":"YulIdentifier","src":"70851:3:21"},"nativeSrc":"70851:23:21","nodeType":"YulFunctionCall","src":"70851:23:21"}],"functionName":{"name":"shr","nativeSrc":"70843:3:21","nodeType":"YulIdentifier","src":"70843:3:21"},"nativeSrc":"70843:32:21","nodeType":"YulFunctionCall","src":"70843:32:21"}],"functionName":{"name":"or","nativeSrc":"70808:2:21","nodeType":"YulIdentifier","src":"70808:2:21"},"nativeSrc":"70808:68:21","nodeType":"YulFunctionCall","src":"70808:68:21"}],"functionName":{"name":"mstore","nativeSrc":"70795:6:21","nodeType":"YulIdentifier","src":"70795:6:21"},"nativeSrc":"70795:82:21","nodeType":"YulFunctionCall","src":"70795:82:21"},"nativeSrc":"70795:82:21","nodeType":"YulExpressionStatement","src":"70795:82:21"},{"nativeSrc":"70890:29:21","nodeType":"YulAssignment","src":"70890:29:21","value":{"arguments":[{"kind":"number","nativeSrc":"70908:4:21","nodeType":"YulLiteral","src":"70908:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"70914:4:21","nodeType":"YulLiteral","src":"70914:4:21","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"70898:9:21","nodeType":"YulIdentifier","src":"70898:9:21"},"nativeSrc":"70898:21:21","nodeType":"YulFunctionCall","src":"70898:21:21"},"variableNames":[{"name":"hash","nativeSrc":"70890:4:21","nodeType":"YulIdentifier","src":"70890:4:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70939:4:21","nodeType":"YulLiteral","src":"70939:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"70945:1:21","nodeType":"YulIdentifier","src":"70945:1:21"}],"functionName":{"name":"mstore","nativeSrc":"70932:6:21","nodeType":"YulIdentifier","src":"70932:6:21"},"nativeSrc":"70932:15:21","nodeType":"YulFunctionCall","src":"70932:15:21"},"nativeSrc":"70932:15:21","nodeType":"YulExpressionStatement","src":"70932:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"71003:4:21","nodeType":"YulLiteral","src":"71003:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"71009:1:21","nodeType":"YulLiteral","src":"71009:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"70996:6:21","nodeType":"YulIdentifier","src":"70996:6:21"},"nativeSrc":"70996:15:21","nodeType":"YulFunctionCall","src":"70996:15:21"},"nativeSrc":"70996:15:21","nodeType":"YulExpressionStatement","src":"70996:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9831,"isOffset":false,"isSlot":false,"src":"70890:4:21","valueSize":1},{"declaration":9828,"isOffset":false,"isSlot":false,"src":"70859:14:21","valueSize":1}],"id":9833,"nodeType":"InlineAssembly","src":"70444:603:21"}]},"documentation":{"id":9826,"nodeType":"StructuredDocumentation","src":"70139:156:21","text":"@dev Returns the initialization code hash of the minimal ERC1967 proxy of `implementation`.\n Used for mining vanity addresses with create2crunch."},"id":9835,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967I","nameLocation":"70309:20:21","nodeType":"FunctionDefinition","parameters":{"id":9829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9828,"mutability":"mutable","name":"implementation","nameLocation":"70338:14:21","nodeType":"VariableDeclaration","scope":9835,"src":"70330:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9827,"name":"address","nodeType":"ElementaryTypeName","src":"70330:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"70329:24:21"},"returnParameters":{"id":9832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9831,"mutability":"mutable","name":"hash","nameLocation":"70385:4:21","nodeType":"VariableDeclaration","scope":9835,"src":"70377:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70377:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70376:14:21"},"scope":10078,"src":"70300:753:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9861,"nodeType":"Block","src":"71450:139:21","statements":[{"assignments":[9848],"declarations":[{"constant":false,"id":9848,"mutability":"mutable","name":"hash","nameLocation":"71468:4:21","nodeType":"VariableDeclaration","scope":9861,"src":"71460:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71460:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9852,"initialValue":{"arguments":[{"id":9850,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9838,"src":"71496:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9849,"name":"initCodeHashERC1967I","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9835,"src":"71475:20:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":9851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"71475:36:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"71460:51:21"},{"expression":{"id":9859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9853,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9845,"src":"71521:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9855,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9848,"src":"71561:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9856,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9840,"src":"71567:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9857,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9842,"src":"71573:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9854,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9343,9576,10067],"referencedDeclaration":10067,"src":"71533:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"71533:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"71521:61:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9860,"nodeType":"ExpressionStatement","src":"71521:61:21"}]},"documentation":{"id":9836,"nodeType":"StructuredDocumentation","src":"71059:213:21","text":"@dev Returns the address of the deterministic ERC1967I proxy of `implementation`,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":9862,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967I","nameLocation":"71286:35:21","nodeType":"FunctionDefinition","parameters":{"id":9843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9838,"mutability":"mutable","name":"implementation","nameLocation":"71339:14:21","nodeType":"VariableDeclaration","scope":9862,"src":"71331:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9837,"name":"address","nodeType":"ElementaryTypeName","src":"71331:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9840,"mutability":"mutable","name":"salt","nameLocation":"71371:4:21","nodeType":"VariableDeclaration","scope":9862,"src":"71363:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71363:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9842,"mutability":"mutable","name":"deployer","nameLocation":"71393:8:21","nodeType":"VariableDeclaration","scope":9862,"src":"71385:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9841,"name":"address","nodeType":"ElementaryTypeName","src":"71385:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71321:86:21"},"returnParameters":{"id":9846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9845,"mutability":"mutable","name":"predicted","nameLocation":"71439:9:21","nodeType":"VariableDeclaration","scope":9862,"src":"71431:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9844,"name":"address","nodeType":"ElementaryTypeName","src":"71431:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71430:19:21"},"scope":10078,"src":"71277:312:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9874,"nodeType":"Block","src":"72410:534:21","statements":[{"expression":{"id":9871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9868,"name":"bootstrap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9866,"src":"72420:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":9869,"name":"constantERC1967BootstrapAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9900,"src":"72432:31:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"72432:33:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"72420:45:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9872,"nodeType":"ExpressionStatement","src":"72420:45:21"},{"AST":{"nativeSrc":"72527:411:21","nodeType":"YulBlock","src":"72527:411:21","statements":[{"body":{"nativeSrc":"72575:353:21","nodeType":"YulBlock","src":"72575:353:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72600:4:21","nodeType":"YulLiteral","src":"72600:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"72606:66:21","nodeType":"YulLiteral","src":"72606:66:21","type":"","value":"0x0894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55"}],"functionName":{"name":"mstore","nativeSrc":"72593:6:21","nodeType":"YulIdentifier","src":"72593:6:21"},"nativeSrc":"72593:80:21","nodeType":"YulFunctionCall","src":"72593:80:21"},"nativeSrc":"72593:80:21","nodeType":"YulExpressionStatement","src":"72593:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72697:4:21","nodeType":"YulLiteral","src":"72697:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"72703:28:21","nodeType":"YulLiteral","src":"72703:28:21","type":"","value":"0x60258060093d393df358357f36"}],"functionName":{"name":"mstore","nativeSrc":"72690:6:21","nodeType":"YulIdentifier","src":"72690:6:21"},"nativeSrc":"72690:42:21","nodeType":"YulFunctionCall","src":"72690:42:21"},"nativeSrc":"72690:42:21","nodeType":"YulExpressionStatement","src":"72690:42:21"},{"body":{"nativeSrc":"72786:128:21","nodeType":"YulBlock","src":"72786:128:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72815:4:21","nodeType":"YulLiteral","src":"72815:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"72821:10:21","nodeType":"YulLiteral","src":"72821:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"72808:6:21","nodeType":"YulIdentifier","src":"72808:6:21"},"nativeSrc":"72808:24:21","nodeType":"YulFunctionCall","src":"72808:24:21"},"nativeSrc":"72808:24:21","nodeType":"YulExpressionStatement","src":"72808:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72885:4:21","nodeType":"YulLiteral","src":"72885:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"72891:4:21","nodeType":"YulLiteral","src":"72891:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"72878:6:21","nodeType":"YulIdentifier","src":"72878:6:21"},"nativeSrc":"72878:18:21","nodeType":"YulFunctionCall","src":"72878:18:21"},"nativeSrc":"72878:18:21","nodeType":"YulExpressionStatement","src":"72878:18:21"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"72767:1:21","nodeType":"YulLiteral","src":"72767:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"72770:4:21","nodeType":"YulLiteral","src":"72770:4:21","type":"","value":"0x13"},{"kind":"number","nativeSrc":"72776:4:21","nodeType":"YulLiteral","src":"72776:4:21","type":"","value":"0x2e"},{"kind":"number","nativeSrc":"72782:1:21","nodeType":"YulLiteral","src":"72782:1:21","type":"","value":"0"}],"functionName":{"name":"create2","nativeSrc":"72759:7:21","nodeType":"YulIdentifier","src":"72759:7:21"},"nativeSrc":"72759:25:21","nodeType":"YulFunctionCall","src":"72759:25:21"}],"functionName":{"name":"iszero","nativeSrc":"72752:6:21","nodeType":"YulIdentifier","src":"72752:6:21"},"nativeSrc":"72752:33:21","nodeType":"YulFunctionCall","src":"72752:33:21"},"nativeSrc":"72749:165:21","nodeType":"YulIf","src":"72749:165:21"}]},"condition":{"arguments":[{"arguments":[{"name":"bootstrap","nativeSrc":"72563:9:21","nodeType":"YulIdentifier","src":"72563:9:21"}],"functionName":{"name":"extcodesize","nativeSrc":"72551:11:21","nodeType":"YulIdentifier","src":"72551:11:21"},"nativeSrc":"72551:22:21","nodeType":"YulFunctionCall","src":"72551:22:21"}],"functionName":{"name":"iszero","nativeSrc":"72544:6:21","nodeType":"YulIdentifier","src":"72544:6:21"},"nativeSrc":"72544:30:21","nodeType":"YulFunctionCall","src":"72544:30:21"},"nativeSrc":"72541:387:21","nodeType":"YulIf","src":"72541:387:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9866,"isOffset":false,"isSlot":false,"src":"72563:9:21","valueSize":1}],"id":9873,"nodeType":"InlineAssembly","src":"72518:420:21"}]},"documentation":{"id":9863,"nodeType":"StructuredDocumentation","src":"72256:76:21","text":"@dev Deploys the constant ERC1967 bootstrap if it has not been deployed."},"id":9875,"implemented":true,"kind":"function","modifiers":[],"name":"constantERC1967Bootstrap","nameLocation":"72346:24:21","nodeType":"FunctionDefinition","parameters":{"id":9864,"nodeType":"ParameterList","parameters":[],"src":"72370:2:21"},"returnParameters":{"id":9867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9866,"mutability":"mutable","name":"bootstrap","nameLocation":"72399:9:21","nodeType":"VariableDeclaration","scope":9875,"src":"72391:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9865,"name":"address","nodeType":"ElementaryTypeName","src":"72391:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"72390:19:21"},"scope":10078,"src":"72337:607:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9899,"nodeType":"Block","src":"73127:180:21","statements":[{"assignments":[9882],"declarations":[{"constant":false,"id":9882,"mutability":"mutable","name":"hash","nameLocation":"73145:4:21","nodeType":"VariableDeclaration","scope":9899,"src":"73137:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9881,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73137:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9884,"initialValue":{"hexValue":"307866653161343262396335373161366138633038336339346163363762396366643734653235383239323334323661613362373632653334333164373137636431","id":9883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73152:66:21","typeDescriptions":{"typeIdentifier":"t_rational_114933862087476197012910812439233746999477611380613810828400768283705108167889_by_1","typeString":"int_const 1149...(70 digits omitted)...7889"},"value":"0xfe1a42b9c571a6a8c083c94ac67b9cfd74e2582923426aa3b762e3431d717cd1"},"nodeType":"VariableDeclarationStatement","src":"73137:81:21"},{"expression":{"id":9897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9885,"name":"bootstrap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9879,"src":"73228:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":9887,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9882,"src":"73268:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":9890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73282:1:21","typeDescriptions":{"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":9889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"73274:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73274:7:21","typeDescriptions":{}}},"id":9891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73274:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":9894,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"73294:4:21","typeDescriptions":{"typeIdentifier":"t_contract$_LibClone_$10078","typeString":"library LibClone"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibClone_$10078","typeString":"library LibClone"}],"id":9893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"73286:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9892,"name":"address","nodeType":"ElementaryTypeName","src":"73286:7:21","typeDescriptions":{}}},"id":9895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73286:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9886,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9343,9576,10067],"referencedDeclaration":10067,"src":"73240:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":9896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73240:60:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"73228:72:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9898,"nodeType":"ExpressionStatement","src":"73228:72:21"}]},"documentation":{"id":9876,"nodeType":"StructuredDocumentation","src":"72950:87:21","text":"@dev Returns the implementation address of the ERC1967 bootstrap for this contract."},"id":9900,"implemented":true,"kind":"function","modifiers":[],"name":"constantERC1967BootstrapAddress","nameLocation":"73051:31:21","nodeType":"FunctionDefinition","parameters":{"id":9877,"nodeType":"ParameterList","parameters":[],"src":"73082:2:21"},"returnParameters":{"id":9880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9879,"mutability":"mutable","name":"bootstrap","nameLocation":"73116:9:21","nodeType":"VariableDeclaration","scope":9900,"src":"73108:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9878,"name":"address","nodeType":"ElementaryTypeName","src":"73108:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"73107:19:21"},"scope":10078,"src":"73042:265:21","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":9909,"nodeType":"Block","src":"73446:333:21","statements":[{"AST":{"nativeSrc":"73508:265:21","nodeType":"YulBlock","src":"73508:265:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73529:4:21","nodeType":"YulLiteral","src":"73529:4:21","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"73539:2:21","nodeType":"YulLiteral","src":"73539:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"73547:2:21","nodeType":"YulLiteral","src":"73547:2:21","type":"","value":"96"},{"name":"implementation","nativeSrc":"73551:14:21","nodeType":"YulIdentifier","src":"73551:14:21"}],"functionName":{"name":"shl","nativeSrc":"73543:3:21","nodeType":"YulIdentifier","src":"73543:3:21"},"nativeSrc":"73543:23:21","nodeType":"YulFunctionCall","src":"73543:23:21"}],"functionName":{"name":"shr","nativeSrc":"73535:3:21","nodeType":"YulIdentifier","src":"73535:3:21"},"nativeSrc":"73535:32:21","nodeType":"YulFunctionCall","src":"73535:32:21"}],"functionName":{"name":"mstore","nativeSrc":"73522:6:21","nodeType":"YulIdentifier","src":"73522:6:21"},"nativeSrc":"73522:46:21","nodeType":"YulFunctionCall","src":"73522:46:21"},"nativeSrc":"73522:46:21","nodeType":"YulExpressionStatement","src":"73522:46:21"},{"body":{"nativeSrc":"73647:116:21","nodeType":"YulBlock","src":"73647:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73672:4:21","nodeType":"YulLiteral","src":"73672:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"73678:10:21","nodeType":"YulLiteral","src":"73678:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"73665:6:21","nodeType":"YulIdentifier","src":"73665:6:21"},"nativeSrc":"73665:24:21","nodeType":"YulFunctionCall","src":"73665:24:21"},"nativeSrc":"73665:24:21","nodeType":"YulExpressionStatement","src":"73665:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73738:4:21","nodeType":"YulLiteral","src":"73738:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"73744:4:21","nodeType":"YulLiteral","src":"73744:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"73731:6:21","nodeType":"YulIdentifier","src":"73731:6:21"},"nativeSrc":"73731:18:21","nodeType":"YulFunctionCall","src":"73731:18:21"},"nativeSrc":"73731:18:21","nodeType":"YulExpressionStatement","src":"73731:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"73596:3:21","nodeType":"YulIdentifier","src":"73596:3:21"},"nativeSrc":"73596:5:21","nodeType":"YulFunctionCall","src":"73596:5:21"},{"name":"instance","nativeSrc":"73603:8:21","nodeType":"YulIdentifier","src":"73603:8:21"},{"kind":"number","nativeSrc":"73613:1:21","nodeType":"YulLiteral","src":"73613:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"73616:4:21","nodeType":"YulLiteral","src":"73616:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"73622:4:21","nodeType":"YulLiteral","src":"73622:4:21","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"73628:8:21","nodeType":"YulIdentifier","src":"73628:8:21"},"nativeSrc":"73628:10:21","nodeType":"YulFunctionCall","src":"73628:10:21"},{"kind":"number","nativeSrc":"73640:4:21","nodeType":"YulLiteral","src":"73640:4:21","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"73591:4:21","nodeType":"YulIdentifier","src":"73591:4:21"},"nativeSrc":"73591:54:21","nodeType":"YulFunctionCall","src":"73591:54:21"}],"functionName":{"name":"iszero","nativeSrc":"73584:6:21","nodeType":"YulIdentifier","src":"73584:6:21"},"nativeSrc":"73584:62:21","nodeType":"YulFunctionCall","src":"73584:62:21"},"nativeSrc":"73581:182:21","nodeType":"YulIf","src":"73581:182:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9905,"isOffset":false,"isSlot":false,"src":"73551:14:21","valueSize":1},{"declaration":9903,"isOffset":false,"isSlot":false,"src":"73603:8:21","valueSize":1}],"id":9908,"nodeType":"InlineAssembly","src":"73499:274:21"}]},"documentation":{"id":9901,"nodeType":"StructuredDocumentation","src":"73313:51:21","text":"@dev Replaces the implementation at `instance`."},"id":9910,"implemented":true,"kind":"function","modifiers":[],"name":"bootstrapERC1967","nameLocation":"73378:16:21","nodeType":"FunctionDefinition","parameters":{"id":9906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9903,"mutability":"mutable","name":"instance","nameLocation":"73403:8:21","nodeType":"VariableDeclaration","scope":9910,"src":"73395:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9902,"name":"address","nodeType":"ElementaryTypeName","src":"73395:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9905,"mutability":"mutable","name":"implementation","nameLocation":"73421:14:21","nodeType":"VariableDeclaration","scope":9910,"src":"73413:22:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9904,"name":"address","nodeType":"ElementaryTypeName","src":"73413:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"73394:42:21"},"returnParameters":{"id":9907,"nodeType":"ParameterList","parameters":[],"src":"73446:0:21"},"scope":10078,"src":"73369:410:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9925,"nodeType":"Block","src":"74582:63:21","statements":[{"expression":{"id":9923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9918,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9916,"src":"74592:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"74628:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9921,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9913,"src":"74631:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9919,"name":"deployERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[9926,9938],"referencedDeclaration":9938,"src":"74603:24:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_address_$","typeString":"function (uint256,address) returns (address)"}},"id":9922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"74603:35:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"74592:46:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9924,"nodeType":"ExpressionStatement","src":"74592:46:21"}]},"documentation":{"id":9911,"nodeType":"StructuredDocumentation","src":"74443:48:21","text":"@dev Deploys a minimal ERC1967 beacon proxy."},"id":9926,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967BeaconProxy","nameLocation":"74505:24:21","nodeType":"FunctionDefinition","parameters":{"id":9914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9913,"mutability":"mutable","name":"beacon","nameLocation":"74538:6:21","nodeType":"VariableDeclaration","scope":9926,"src":"74530:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9912,"name":"address","nodeType":"ElementaryTypeName","src":"74530:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74529:16:21"},"returnParameters":{"id":9917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9916,"mutability":"mutable","name":"instance","nameLocation":"74572:8:21","nodeType":"VariableDeclaration","scope":9926,"src":"74564:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9915,"name":"address","nodeType":"ElementaryTypeName","src":"74564:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74563:18:21"},"scope":10078,"src":"74496:149:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9937,"nodeType":"Block","src":"74873:8291:21","statements":[{"AST":{"nativeSrc":"74935:8223:21","nodeType":"YulBlock","src":"74935:8223:21","statements":[{"nativeSrc":"82429:20:21","nodeType":"YulVariableDeclaration","src":"82429:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"82444:4:21","nodeType":"YulLiteral","src":"82444:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"82438:5:21","nodeType":"YulIdentifier","src":"82438:5:21"},"nativeSrc":"82438:11:21","nodeType":"YulFunctionCall","src":"82438:11:21"},"variables":[{"name":"m","nativeSrc":"82433:1:21","nodeType":"YulTypedName","src":"82433:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82503:4:21","nodeType":"YulLiteral","src":"82503:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"82509:66:21","nodeType":"YulLiteral","src":"82509:66:21","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"82496:6:21","nodeType":"YulIdentifier","src":"82496:6:21"},"nativeSrc":"82496:80:21","nodeType":"YulFunctionCall","src":"82496:80:21"},"nativeSrc":"82496:80:21","nodeType":"YulExpressionStatement","src":"82496:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82596:4:21","nodeType":"YulLiteral","src":"82596:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"82602:66:21","nodeType":"YulLiteral","src":"82602:66:21","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"82589:6:21","nodeType":"YulIdentifier","src":"82589:6:21"},"nativeSrc":"82589:80:21","nodeType":"YulFunctionCall","src":"82589:80:21"},"nativeSrc":"82589:80:21","nodeType":"YulExpressionStatement","src":"82589:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82689:4:21","nodeType":"YulLiteral","src":"82689:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"82695:48:21","nodeType":"YulLiteral","src":"82695:48:21","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"82682:6:21","nodeType":"YulIdentifier","src":"82682:6:21"},"nativeSrc":"82682:62:21","nodeType":"YulFunctionCall","src":"82682:62:21"},"nativeSrc":"82682:62:21","nodeType":"YulExpressionStatement","src":"82682:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82764:4:21","nodeType":"YulLiteral","src":"82764:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"82777:3:21","nodeType":"YulLiteral","src":"82777:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"82782:20:21","nodeType":"YulLiteral","src":"82782:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"82773:3:21","nodeType":"YulIdentifier","src":"82773:3:21"},"nativeSrc":"82773:30:21","nodeType":"YulFunctionCall","src":"82773:30:21"},{"arguments":[{"kind":"number","nativeSrc":"82809:2:21","nodeType":"YulLiteral","src":"82809:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"82817:2:21","nodeType":"YulLiteral","src":"82817:2:21","type":"","value":"96"},{"name":"beacon","nativeSrc":"82821:6:21","nodeType":"YulIdentifier","src":"82821:6:21"}],"functionName":{"name":"shl","nativeSrc":"82813:3:21","nodeType":"YulIdentifier","src":"82813:3:21"},"nativeSrc":"82813:15:21","nodeType":"YulFunctionCall","src":"82813:15:21"}],"functionName":{"name":"shr","nativeSrc":"82805:3:21","nodeType":"YulIdentifier","src":"82805:3:21"},"nativeSrc":"82805:24:21","nodeType":"YulFunctionCall","src":"82805:24:21"}],"functionName":{"name":"or","nativeSrc":"82770:2:21","nodeType":"YulIdentifier","src":"82770:2:21"},"nativeSrc":"82770:60:21","nodeType":"YulFunctionCall","src":"82770:60:21"}],"functionName":{"name":"mstore","nativeSrc":"82757:6:21","nodeType":"YulIdentifier","src":"82757:6:21"},"nativeSrc":"82757:74:21","nodeType":"YulFunctionCall","src":"82757:74:21"},"nativeSrc":"82757:74:21","nodeType":"YulExpressionStatement","src":"82757:74:21"},{"nativeSrc":"82844:37:21","nodeType":"YulAssignment","src":"82844:37:21","value":{"arguments":[{"name":"value","nativeSrc":"82863:5:21","nodeType":"YulIdentifier","src":"82863:5:21"},{"kind":"number","nativeSrc":"82870:4:21","nodeType":"YulLiteral","src":"82870:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"82876:4:21","nodeType":"YulLiteral","src":"82876:4:21","type":"","value":"0x74"}],"functionName":{"name":"create","nativeSrc":"82856:6:21","nodeType":"YulIdentifier","src":"82856:6:21"},"nativeSrc":"82856:25:21","nodeType":"YulFunctionCall","src":"82856:25:21"},"variableNames":[{"name":"instance","nativeSrc":"82844:8:21","nodeType":"YulIdentifier","src":"82844:8:21"}]},{"body":{"nativeSrc":"82914:116:21","nodeType":"YulBlock","src":"82914:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"82939:4:21","nodeType":"YulLiteral","src":"82939:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"82945:10:21","nodeType":"YulLiteral","src":"82945:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"82932:6:21","nodeType":"YulIdentifier","src":"82932:6:21"},"nativeSrc":"82932:24:21","nodeType":"YulFunctionCall","src":"82932:24:21"},"nativeSrc":"82932:24:21","nodeType":"YulExpressionStatement","src":"82932:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83005:4:21","nodeType":"YulLiteral","src":"83005:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"83011:4:21","nodeType":"YulLiteral","src":"83011:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"82998:6:21","nodeType":"YulIdentifier","src":"82998:6:21"},"nativeSrc":"82998:18:21","nodeType":"YulFunctionCall","src":"82998:18:21"},"nativeSrc":"82998:18:21","nodeType":"YulExpressionStatement","src":"82998:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"82904:8:21","nodeType":"YulIdentifier","src":"82904:8:21"}],"functionName":{"name":"iszero","nativeSrc":"82897:6:21","nodeType":"YulIdentifier","src":"82897:6:21"},"nativeSrc":"82897:16:21","nodeType":"YulFunctionCall","src":"82897:16:21"},"nativeSrc":"82894:136:21","nodeType":"YulIf","src":"82894:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83050:4:21","nodeType":"YulLiteral","src":"83050:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"83056:1:21","nodeType":"YulIdentifier","src":"83056:1:21"}],"functionName":{"name":"mstore","nativeSrc":"83043:6:21","nodeType":"YulIdentifier","src":"83043:6:21"},"nativeSrc":"83043:15:21","nodeType":"YulFunctionCall","src":"83043:15:21"},"nativeSrc":"83043:15:21","nodeType":"YulExpressionStatement","src":"83043:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83114:4:21","nodeType":"YulLiteral","src":"83114:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"83120:1:21","nodeType":"YulLiteral","src":"83120:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"83107:6:21","nodeType":"YulIdentifier","src":"83107:6:21"},"nativeSrc":"83107:15:21","nodeType":"YulFunctionCall","src":"83107:15:21"},"nativeSrc":"83107:15:21","nodeType":"YulExpressionStatement","src":"83107:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9931,"isOffset":false,"isSlot":false,"src":"82821:6:21","valueSize":1},{"declaration":9934,"isOffset":false,"isSlot":false,"src":"82844:8:21","valueSize":1},{"declaration":9934,"isOffset":false,"isSlot":false,"src":"82904:8:21","valueSize":1},{"declaration":9929,"isOffset":false,"isSlot":false,"src":"82863:5:21","valueSize":1}],"id":9936,"nodeType":"InlineAssembly","src":"74926:8232:21"}]},"documentation":{"id":9927,"nodeType":"StructuredDocumentation","src":"74651:96:21","text":"@dev Deploys a minimal ERC1967 beacon proxy.\n Deposits `value` ETH during deployment."},"id":9938,"implemented":true,"kind":"function","modifiers":[],"name":"deployERC1967BeaconProxy","nameLocation":"74761:24:21","nodeType":"FunctionDefinition","parameters":{"id":9932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9929,"mutability":"mutable","name":"value","nameLocation":"74794:5:21","nodeType":"VariableDeclaration","scope":9938,"src":"74786:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9928,"name":"uint256","nodeType":"ElementaryTypeName","src":"74786:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9931,"mutability":"mutable","name":"beacon","nameLocation":"74809:6:21","nodeType":"VariableDeclaration","scope":9938,"src":"74801:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9930,"name":"address","nodeType":"ElementaryTypeName","src":"74801:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74785:31:21"},"returnParameters":{"id":9935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9934,"mutability":"mutable","name":"instance","nameLocation":"74859:8:21","nodeType":"VariableDeclaration","scope":9938,"src":"74851:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9933,"name":"address","nodeType":"ElementaryTypeName","src":"74851:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74850:18:21"},"scope":10078,"src":"74752:8412:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9956,"nodeType":"Block","src":"83382:82:21","statements":[{"expression":{"id":9954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9948,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9946,"src":"83392:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":9950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"83441:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9951,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9941,"src":"83444:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9952,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9943,"src":"83452:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9949,"name":"deployDeterministicERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[9957,9971],"referencedDeclaration":9971,"src":"83403:37:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (uint256,address,bytes32) returns (address)"}},"id":9953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"83403:54:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"83392:65:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9955,"nodeType":"ExpressionStatement","src":"83392:65:21"}]},"documentation":{"id":9939,"nodeType":"StructuredDocumentation","src":"83170:74:21","text":"@dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`."},"id":9957,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967BeaconProxy","nameLocation":"83258:37:21","nodeType":"FunctionDefinition","parameters":{"id":9944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9941,"mutability":"mutable","name":"beacon","nameLocation":"83304:6:21","nodeType":"VariableDeclaration","scope":9957,"src":"83296:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9940,"name":"address","nodeType":"ElementaryTypeName","src":"83296:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9943,"mutability":"mutable","name":"salt","nameLocation":"83320:4:21","nodeType":"VariableDeclaration","scope":9957,"src":"83312:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83312:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"83295:30:21"},"returnParameters":{"id":9947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9946,"mutability":"mutable","name":"instance","nameLocation":"83368:8:21","nodeType":"VariableDeclaration","scope":9957,"src":"83360:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9945,"name":"address","nodeType":"ElementaryTypeName","src":"83360:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83359:18:21"},"scope":10078,"src":"83249:215:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9970,"nodeType":"Block","src":"83745:818:21","statements":[{"AST":{"nativeSrc":"83807:750:21","nodeType":"YulBlock","src":"83807:750:21","statements":[{"nativeSrc":"83821:20:21","nodeType":"YulVariableDeclaration","src":"83821:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"83836:4:21","nodeType":"YulLiteral","src":"83836:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"83830:5:21","nodeType":"YulIdentifier","src":"83830:5:21"},"nativeSrc":"83830:11:21","nodeType":"YulFunctionCall","src":"83830:11:21"},"variables":[{"name":"m","nativeSrc":"83825:1:21","nodeType":"YulTypedName","src":"83825:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83895:4:21","nodeType":"YulLiteral","src":"83895:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"83901:66:21","nodeType":"YulLiteral","src":"83901:66:21","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"83888:6:21","nodeType":"YulIdentifier","src":"83888:6:21"},"nativeSrc":"83888:80:21","nodeType":"YulFunctionCall","src":"83888:80:21"},"nativeSrc":"83888:80:21","nodeType":"YulExpressionStatement","src":"83888:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83988:4:21","nodeType":"YulLiteral","src":"83988:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"83994:66:21","nodeType":"YulLiteral","src":"83994:66:21","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"83981:6:21","nodeType":"YulIdentifier","src":"83981:6:21"},"nativeSrc":"83981:80:21","nodeType":"YulFunctionCall","src":"83981:80:21"},"nativeSrc":"83981:80:21","nodeType":"YulExpressionStatement","src":"83981:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84081:4:21","nodeType":"YulLiteral","src":"84081:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"84087:48:21","nodeType":"YulLiteral","src":"84087:48:21","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"84074:6:21","nodeType":"YulIdentifier","src":"84074:6:21"},"nativeSrc":"84074:62:21","nodeType":"YulFunctionCall","src":"84074:62:21"},"nativeSrc":"84074:62:21","nodeType":"YulExpressionStatement","src":"84074:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84156:4:21","nodeType":"YulLiteral","src":"84156:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"84169:3:21","nodeType":"YulLiteral","src":"84169:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"84174:20:21","nodeType":"YulLiteral","src":"84174:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"84165:3:21","nodeType":"YulIdentifier","src":"84165:3:21"},"nativeSrc":"84165:30:21","nodeType":"YulFunctionCall","src":"84165:30:21"},{"arguments":[{"kind":"number","nativeSrc":"84201:2:21","nodeType":"YulLiteral","src":"84201:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"84209:2:21","nodeType":"YulLiteral","src":"84209:2:21","type":"","value":"96"},{"name":"beacon","nativeSrc":"84213:6:21","nodeType":"YulIdentifier","src":"84213:6:21"}],"functionName":{"name":"shl","nativeSrc":"84205:3:21","nodeType":"YulIdentifier","src":"84205:3:21"},"nativeSrc":"84205:15:21","nodeType":"YulFunctionCall","src":"84205:15:21"}],"functionName":{"name":"shr","nativeSrc":"84197:3:21","nodeType":"YulIdentifier","src":"84197:3:21"},"nativeSrc":"84197:24:21","nodeType":"YulFunctionCall","src":"84197:24:21"}],"functionName":{"name":"or","nativeSrc":"84162:2:21","nodeType":"YulIdentifier","src":"84162:2:21"},"nativeSrc":"84162:60:21","nodeType":"YulFunctionCall","src":"84162:60:21"}],"functionName":{"name":"mstore","nativeSrc":"84149:6:21","nodeType":"YulIdentifier","src":"84149:6:21"},"nativeSrc":"84149:74:21","nodeType":"YulFunctionCall","src":"84149:74:21"},"nativeSrc":"84149:74:21","nodeType":"YulExpressionStatement","src":"84149:74:21"},{"nativeSrc":"84236:44:21","nodeType":"YulAssignment","src":"84236:44:21","value":{"arguments":[{"name":"value","nativeSrc":"84256:5:21","nodeType":"YulIdentifier","src":"84256:5:21"},{"kind":"number","nativeSrc":"84263:4:21","nodeType":"YulLiteral","src":"84263:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"84269:4:21","nodeType":"YulLiteral","src":"84269:4:21","type":"","value":"0x74"},{"name":"salt","nativeSrc":"84275:4:21","nodeType":"YulIdentifier","src":"84275:4:21"}],"functionName":{"name":"create2","nativeSrc":"84248:7:21","nodeType":"YulIdentifier","src":"84248:7:21"},"nativeSrc":"84248:32:21","nodeType":"YulFunctionCall","src":"84248:32:21"},"variableNames":[{"name":"instance","nativeSrc":"84236:8:21","nodeType":"YulIdentifier","src":"84236:8:21"}]},{"body":{"nativeSrc":"84313:116:21","nodeType":"YulBlock","src":"84313:116:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"84338:4:21","nodeType":"YulLiteral","src":"84338:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"84344:10:21","nodeType":"YulLiteral","src":"84344:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"84331:6:21","nodeType":"YulIdentifier","src":"84331:6:21"},"nativeSrc":"84331:24:21","nodeType":"YulFunctionCall","src":"84331:24:21"},"nativeSrc":"84331:24:21","nodeType":"YulExpressionStatement","src":"84331:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84404:4:21","nodeType":"YulLiteral","src":"84404:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"84410:4:21","nodeType":"YulLiteral","src":"84410:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"84397:6:21","nodeType":"YulIdentifier","src":"84397:6:21"},"nativeSrc":"84397:18:21","nodeType":"YulFunctionCall","src":"84397:18:21"},"nativeSrc":"84397:18:21","nodeType":"YulExpressionStatement","src":"84397:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"84303:8:21","nodeType":"YulIdentifier","src":"84303:8:21"}],"functionName":{"name":"iszero","nativeSrc":"84296:6:21","nodeType":"YulIdentifier","src":"84296:6:21"},"nativeSrc":"84296:16:21","nodeType":"YulFunctionCall","src":"84296:16:21"},"nativeSrc":"84293:136:21","nodeType":"YulIf","src":"84293:136:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84449:4:21","nodeType":"YulLiteral","src":"84449:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"84455:1:21","nodeType":"YulIdentifier","src":"84455:1:21"}],"functionName":{"name":"mstore","nativeSrc":"84442:6:21","nodeType":"YulIdentifier","src":"84442:6:21"},"nativeSrc":"84442:15:21","nodeType":"YulFunctionCall","src":"84442:15:21"},"nativeSrc":"84442:15:21","nodeType":"YulExpressionStatement","src":"84442:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84513:4:21","nodeType":"YulLiteral","src":"84513:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"84519:1:21","nodeType":"YulLiteral","src":"84519:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"84506:6:21","nodeType":"YulIdentifier","src":"84506:6:21"},"nativeSrc":"84506:15:21","nodeType":"YulFunctionCall","src":"84506:15:21"},"nativeSrc":"84506:15:21","nodeType":"YulExpressionStatement","src":"84506:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":9962,"isOffset":false,"isSlot":false,"src":"84213:6:21","valueSize":1},{"declaration":9967,"isOffset":false,"isSlot":false,"src":"84236:8:21","valueSize":1},{"declaration":9967,"isOffset":false,"isSlot":false,"src":"84303:8:21","valueSize":1},{"declaration":9964,"isOffset":false,"isSlot":false,"src":"84275:4:21","valueSize":1},{"declaration":9960,"isOffset":false,"isSlot":false,"src":"84256:5:21","valueSize":1}],"id":9969,"nodeType":"InlineAssembly","src":"83798:759:21"}]},"documentation":{"id":9958,"nodeType":"StructuredDocumentation","src":"83470:122:21","text":"@dev Deploys a deterministic minimal ERC1967 beacon proxy with `salt`.\n Deposits `value` ETH during deployment."},"id":9971,"implemented":true,"kind":"function","modifiers":[],"name":"deployDeterministicERC1967BeaconProxy","nameLocation":"83606:37:21","nodeType":"FunctionDefinition","parameters":{"id":9965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9960,"mutability":"mutable","name":"value","nameLocation":"83652:5:21","nodeType":"VariableDeclaration","scope":9971,"src":"83644:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9959,"name":"uint256","nodeType":"ElementaryTypeName","src":"83644:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9962,"mutability":"mutable","name":"beacon","nameLocation":"83667:6:21","nodeType":"VariableDeclaration","scope":9971,"src":"83659:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9961,"name":"address","nodeType":"ElementaryTypeName","src":"83659:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9964,"mutability":"mutable","name":"salt","nameLocation":"83683:4:21","nodeType":"VariableDeclaration","scope":9971,"src":"83675:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83675:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"83643:45:21"},"returnParameters":{"id":9968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9967,"mutability":"mutable","name":"instance","nameLocation":"83731:8:21","nodeType":"VariableDeclaration","scope":9971,"src":"83723:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9966,"name":"address","nodeType":"ElementaryTypeName","src":"83723:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83722:18:21"},"scope":10078,"src":"83597:966:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9989,"nodeType":"Block","src":"84946:78:21","statements":[{"expression":{"arguments":[{"hexValue":"30","id":9984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"85001:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":9985,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9974,"src":"85004:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9986,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9976,"src":"85012:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9983,"name":"createDeterministicERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[9990,10006],"referencedDeclaration":10006,"src":"84963:37:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$_t_address_$","typeString":"function (uint256,address,bytes32) returns (bool,address)"}},"id":9987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"84963:54:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"functionReturnParameters":9982,"id":9988,"nodeType":"Return","src":"84956:61:21"}]},"documentation":{"id":9972,"nodeType":"StructuredDocumentation","src":"84569:217:21","text":"@dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":9990,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967BeaconProxy","nameLocation":"84800:37:21","nodeType":"FunctionDefinition","parameters":{"id":9977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9974,"mutability":"mutable","name":"beacon","nameLocation":"84846:6:21","nodeType":"VariableDeclaration","scope":9990,"src":"84838:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9973,"name":"address","nodeType":"ElementaryTypeName","src":"84838:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9976,"mutability":"mutable","name":"salt","nameLocation":"84862:4:21","nodeType":"VariableDeclaration","scope":9990,"src":"84854:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84854:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"84837:30:21"},"returnParameters":{"id":9982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9979,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"84907:15:21","nodeType":"VariableDeclaration","scope":9990,"src":"84902:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9978,"name":"bool","nodeType":"ElementaryTypeName","src":"84902:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9981,"mutability":"mutable","name":"instance","nameLocation":"84932:8:21","nodeType":"VariableDeclaration","scope":9990,"src":"84924:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9980,"name":"address","nodeType":"ElementaryTypeName","src":"84924:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"84901:40:21"},"scope":10078,"src":"84791:233:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10005,"nodeType":"Block","src":"85470:1599:21","statements":[{"AST":{"nativeSrc":"85532:1531:21","nodeType":"YulBlock","src":"85532:1531:21","statements":[{"nativeSrc":"85546:20:21","nodeType":"YulVariableDeclaration","src":"85546:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"85561:4:21","nodeType":"YulLiteral","src":"85561:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"85555:5:21","nodeType":"YulIdentifier","src":"85555:5:21"},"nativeSrc":"85555:11:21","nodeType":"YulFunctionCall","src":"85555:11:21"},"variables":[{"name":"m","nativeSrc":"85550:1:21","nodeType":"YulTypedName","src":"85550:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85620:4:21","nodeType":"YulLiteral","src":"85620:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"85626:66:21","nodeType":"YulLiteral","src":"85626:66:21","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"85613:6:21","nodeType":"YulIdentifier","src":"85613:6:21"},"nativeSrc":"85613:80:21","nodeType":"YulFunctionCall","src":"85613:80:21"},"nativeSrc":"85613:80:21","nodeType":"YulExpressionStatement","src":"85613:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85713:4:21","nodeType":"YulLiteral","src":"85713:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"85719:66:21","nodeType":"YulLiteral","src":"85719:66:21","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"85706:6:21","nodeType":"YulIdentifier","src":"85706:6:21"},"nativeSrc":"85706:80:21","nodeType":"YulFunctionCall","src":"85706:80:21"},"nativeSrc":"85706:80:21","nodeType":"YulExpressionStatement","src":"85706:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85806:4:21","nodeType":"YulLiteral","src":"85806:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"85812:48:21","nodeType":"YulLiteral","src":"85812:48:21","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"85799:6:21","nodeType":"YulIdentifier","src":"85799:6:21"},"nativeSrc":"85799:62:21","nodeType":"YulFunctionCall","src":"85799:62:21"},"nativeSrc":"85799:62:21","nodeType":"YulExpressionStatement","src":"85799:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85881:4:21","nodeType":"YulLiteral","src":"85881:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"85894:3:21","nodeType":"YulLiteral","src":"85894:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"85899:20:21","nodeType":"YulLiteral","src":"85899:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"85890:3:21","nodeType":"YulIdentifier","src":"85890:3:21"},"nativeSrc":"85890:30:21","nodeType":"YulFunctionCall","src":"85890:30:21"},{"arguments":[{"kind":"number","nativeSrc":"85926:2:21","nodeType":"YulLiteral","src":"85926:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"85934:2:21","nodeType":"YulLiteral","src":"85934:2:21","type":"","value":"96"},{"name":"beacon","nativeSrc":"85938:6:21","nodeType":"YulIdentifier","src":"85938:6:21"}],"functionName":{"name":"shl","nativeSrc":"85930:3:21","nodeType":"YulIdentifier","src":"85930:3:21"},"nativeSrc":"85930:15:21","nodeType":"YulFunctionCall","src":"85930:15:21"}],"functionName":{"name":"shr","nativeSrc":"85922:3:21","nodeType":"YulIdentifier","src":"85922:3:21"},"nativeSrc":"85922:24:21","nodeType":"YulFunctionCall","src":"85922:24:21"}],"functionName":{"name":"or","nativeSrc":"85887:2:21","nodeType":"YulIdentifier","src":"85887:2:21"},"nativeSrc":"85887:60:21","nodeType":"YulFunctionCall","src":"85887:60:21"}],"functionName":{"name":"mstore","nativeSrc":"85874:6:21","nodeType":"YulIdentifier","src":"85874:6:21"},"nativeSrc":"85874:74:21","nodeType":"YulFunctionCall","src":"85874:74:21"},"nativeSrc":"85874:74:21","nodeType":"YulExpressionStatement","src":"85874:74:21"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"86024:1:21","nodeType":"YulIdentifier","src":"86024:1:21"},{"kind":"number","nativeSrc":"86027:4:21","nodeType":"YulLiteral","src":"86027:4:21","type":"","value":"0x35"}],"functionName":{"name":"add","nativeSrc":"86020:3:21","nodeType":"YulIdentifier","src":"86020:3:21"},"nativeSrc":"86020:12:21","nodeType":"YulFunctionCall","src":"86020:12:21"},{"arguments":[{"kind":"number","nativeSrc":"86044:4:21","nodeType":"YulLiteral","src":"86044:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"86050:4:21","nodeType":"YulLiteral","src":"86050:4:21","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"86034:9:21","nodeType":"YulIdentifier","src":"86034:9:21"},"nativeSrc":"86034:21:21","nodeType":"YulFunctionCall","src":"86034:21:21"}],"functionName":{"name":"mstore","nativeSrc":"86013:6:21","nodeType":"YulIdentifier","src":"86013:6:21"},"nativeSrc":"86013:43:21","nodeType":"YulFunctionCall","src":"86013:43:21"},"nativeSrc":"86013:43:21","nodeType":"YulExpressionStatement","src":"86013:43:21"},{"expression":{"arguments":[{"name":"m","nativeSrc":"86076:1:21","nodeType":"YulIdentifier","src":"86076:1:21"},{"arguments":[{"kind":"number","nativeSrc":"86083:2:21","nodeType":"YulLiteral","src":"86083:2:21","type":"","value":"88"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"86087:7:21","nodeType":"YulIdentifier","src":"86087:7:21"},"nativeSrc":"86087:9:21","nodeType":"YulFunctionCall","src":"86087:9:21"}],"functionName":{"name":"shl","nativeSrc":"86079:3:21","nodeType":"YulIdentifier","src":"86079:3:21"},"nativeSrc":"86079:18:21","nodeType":"YulFunctionCall","src":"86079:18:21"}],"functionName":{"name":"mstore","nativeSrc":"86069:6:21","nodeType":"YulIdentifier","src":"86069:6:21"},"nativeSrc":"86069:29:21","nodeType":"YulFunctionCall","src":"86069:29:21"},"nativeSrc":"86069:29:21","nodeType":"YulExpressionStatement","src":"86069:29:21"},{"expression":{"arguments":[{"name":"m","nativeSrc":"86119:1:21","nodeType":"YulIdentifier","src":"86119:1:21"},{"kind":"number","nativeSrc":"86122:4:21","nodeType":"YulLiteral","src":"86122:4:21","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"86111:7:21","nodeType":"YulIdentifier","src":"86111:7:21"},"nativeSrc":"86111:16:21","nodeType":"YulFunctionCall","src":"86111:16:21"},"nativeSrc":"86111:16:21","nodeType":"YulExpressionStatement","src":"86111:16:21"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"86172:1:21","nodeType":"YulIdentifier","src":"86172:1:21"},{"kind":"number","nativeSrc":"86175:4:21","nodeType":"YulLiteral","src":"86175:4:21","type":"","value":"0x15"}],"functionName":{"name":"add","nativeSrc":"86168:3:21","nodeType":"YulIdentifier","src":"86168:3:21"},"nativeSrc":"86168:12:21","nodeType":"YulFunctionCall","src":"86168:12:21"},{"name":"salt","nativeSrc":"86182:4:21","nodeType":"YulIdentifier","src":"86182:4:21"}],"functionName":{"name":"mstore","nativeSrc":"86161:6:21","nodeType":"YulIdentifier","src":"86161:6:21"},"nativeSrc":"86161:26:21","nodeType":"YulFunctionCall","src":"86161:26:21"},"nativeSrc":"86161:26:21","nodeType":"YulExpressionStatement","src":"86161:26:21"},{"nativeSrc":"86200:30:21","nodeType":"YulAssignment","src":"86200:30:21","value":{"arguments":[{"name":"m","nativeSrc":"86222:1:21","nodeType":"YulIdentifier","src":"86222:1:21"},{"kind":"number","nativeSrc":"86225:4:21","nodeType":"YulLiteral","src":"86225:4:21","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"86212:9:21","nodeType":"YulIdentifier","src":"86212:9:21"},"nativeSrc":"86212:18:21","nodeType":"YulFunctionCall","src":"86212:18:21"},"variableNames":[{"name":"instance","nativeSrc":"86200:8:21","nodeType":"YulIdentifier","src":"86200:8:21"}]},{"body":{"nativeSrc":"86255:680:21","nodeType":"YulBlock","src":"86255:680:21","statements":[{"body":{"nativeSrc":"86306:291:21","nodeType":"YulBlock","src":"86306:291:21","statements":[{"nativeSrc":"86328:44:21","nodeType":"YulAssignment","src":"86328:44:21","value":{"arguments":[{"name":"value","nativeSrc":"86348:5:21","nodeType":"YulIdentifier","src":"86348:5:21"},{"kind":"number","nativeSrc":"86355:4:21","nodeType":"YulLiteral","src":"86355:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"86361:4:21","nodeType":"YulLiteral","src":"86361:4:21","type":"","value":"0x74"},{"name":"salt","nativeSrc":"86367:4:21","nodeType":"YulIdentifier","src":"86367:4:21"}],"functionName":{"name":"create2","nativeSrc":"86340:7:21","nodeType":"YulIdentifier","src":"86340:7:21"},"nativeSrc":"86340:32:21","nodeType":"YulFunctionCall","src":"86340:32:21"},"variableNames":[{"name":"instance","nativeSrc":"86328:8:21","nodeType":"YulIdentifier","src":"86328:8:21"}]},{"body":{"nativeSrc":"86413:140:21","nodeType":"YulBlock","src":"86413:140:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"86446:4:21","nodeType":"YulLiteral","src":"86446:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"86452:10:21","nodeType":"YulLiteral","src":"86452:10:21","type":"","value":"0x30116425"}],"functionName":{"name":"mstore","nativeSrc":"86439:6:21","nodeType":"YulIdentifier","src":"86439:6:21"},"nativeSrc":"86439:24:21","nodeType":"YulFunctionCall","src":"86439:24:21"},"nativeSrc":"86439:24:21","nodeType":"YulExpressionStatement","src":"86439:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86520:4:21","nodeType":"YulLiteral","src":"86520:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"86526:4:21","nodeType":"YulLiteral","src":"86526:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"86513:6:21","nodeType":"YulIdentifier","src":"86513:6:21"},"nativeSrc":"86513:18:21","nodeType":"YulFunctionCall","src":"86513:18:21"},"nativeSrc":"86513:18:21","nodeType":"YulExpressionStatement","src":"86513:18:21"}]},"condition":{"arguments":[{"name":"instance","nativeSrc":"86403:8:21","nodeType":"YulIdentifier","src":"86403:8:21"}],"functionName":{"name":"iszero","nativeSrc":"86396:6:21","nodeType":"YulIdentifier","src":"86396:6:21"},"nativeSrc":"86396:16:21","nodeType":"YulFunctionCall","src":"86396:16:21"},"nativeSrc":"86393:160:21","nodeType":"YulIf","src":"86393:160:21"},{"nativeSrc":"86574:5:21","nodeType":"YulBreak","src":"86574:5:21"}]},"condition":{"arguments":[{"arguments":[{"name":"instance","nativeSrc":"86295:8:21","nodeType":"YulIdentifier","src":"86295:8:21"}],"functionName":{"name":"extcodesize","nativeSrc":"86283:11:21","nodeType":"YulIdentifier","src":"86283:11:21"},"nativeSrc":"86283:21:21","nodeType":"YulFunctionCall","src":"86283:21:21"}],"functionName":{"name":"iszero","nativeSrc":"86276:6:21","nodeType":"YulIdentifier","src":"86276:6:21"},"nativeSrc":"86276:29:21","nodeType":"YulFunctionCall","src":"86276:29:21"},"nativeSrc":"86273:324:21","nodeType":"YulIf","src":"86273:324:21"},{"nativeSrc":"86614:20:21","nodeType":"YulAssignment","src":"86614:20:21","value":{"kind":"number","nativeSrc":"86633:1:21","nodeType":"YulLiteral","src":"86633:1:21","type":"","value":"1"},"variableNames":[{"name":"alreadyDeployed","nativeSrc":"86614:15:21","nodeType":"YulIdentifier","src":"86614:15:21"}]},{"body":{"nativeSrc":"86668:9:21","nodeType":"YulBlock","src":"86668:9:21","statements":[{"nativeSrc":"86670:5:21","nodeType":"YulBreak","src":"86670:5:21"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"86661:5:21","nodeType":"YulIdentifier","src":"86661:5:21"}],"functionName":{"name":"iszero","nativeSrc":"86654:6:21","nodeType":"YulIdentifier","src":"86654:6:21"},"nativeSrc":"86654:13:21","nodeType":"YulFunctionCall","src":"86654:13:21"},"nativeSrc":"86651:26:21","nodeType":"YulIf","src":"86651:26:21"},{"body":{"nativeSrc":"86770:129:21","nodeType":"YulBlock","src":"86770:129:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"86799:4:21","nodeType":"YulLiteral","src":"86799:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"86805:10:21","nodeType":"YulLiteral","src":"86805:10:21","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"86792:6:21","nodeType":"YulIdentifier","src":"86792:6:21"},"nativeSrc":"86792:24:21","nodeType":"YulFunctionCall","src":"86792:24:21"},"nativeSrc":"86792:24:21","nodeType":"YulExpressionStatement","src":"86792:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86870:4:21","nodeType":"YulLiteral","src":"86870:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"86876:4:21","nodeType":"YulLiteral","src":"86876:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"86863:6:21","nodeType":"YulIdentifier","src":"86863:6:21"},"nativeSrc":"86863:18:21","nodeType":"YulFunctionCall","src":"86863:18:21"},"nativeSrc":"86863:18:21","nodeType":"YulExpressionStatement","src":"86863:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"86709:3:21","nodeType":"YulIdentifier","src":"86709:3:21"},"nativeSrc":"86709:5:21","nodeType":"YulFunctionCall","src":"86709:5:21"},{"name":"instance","nativeSrc":"86716:8:21","nodeType":"YulIdentifier","src":"86716:8:21"},{"name":"value","nativeSrc":"86726:5:21","nodeType":"YulIdentifier","src":"86726:5:21"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"86733:8:21","nodeType":"YulIdentifier","src":"86733:8:21"},"nativeSrc":"86733:10:21","nodeType":"YulFunctionCall","src":"86733:10:21"},{"kind":"number","nativeSrc":"86745:4:21","nodeType":"YulLiteral","src":"86745:4:21","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"86751:8:21","nodeType":"YulIdentifier","src":"86751:8:21"},"nativeSrc":"86751:10:21","nodeType":"YulFunctionCall","src":"86751:10:21"},{"kind":"number","nativeSrc":"86763:4:21","nodeType":"YulLiteral","src":"86763:4:21","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"86704:4:21","nodeType":"YulIdentifier","src":"86704:4:21"},"nativeSrc":"86704:64:21","nodeType":"YulFunctionCall","src":"86704:64:21"}],"functionName":{"name":"iszero","nativeSrc":"86697:6:21","nodeType":"YulIdentifier","src":"86697:6:21"},"nativeSrc":"86697:72:21","nodeType":"YulFunctionCall","src":"86697:72:21"},"nativeSrc":"86694:205:21","nodeType":"YulIf","src":"86694:205:21"},{"nativeSrc":"86916:5:21","nodeType":"YulBreak","src":"86916:5:21"}]},"condition":{"kind":"number","nativeSrc":"86250:1:21","nodeType":"YulLiteral","src":"86250:1:21","type":"","value":"1"},"nativeSrc":"86243:692:21","nodeType":"YulForLoop","post":{"nativeSrc":"86252:2:21","nodeType":"YulBlock","src":"86252:2:21","statements":[]},"pre":{"nativeSrc":"86247:2:21","nodeType":"YulBlock","src":"86247:2:21","statements":[]},"src":"86243:692:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86955:4:21","nodeType":"YulLiteral","src":"86955:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"86961:1:21","nodeType":"YulIdentifier","src":"86961:1:21"}],"functionName":{"name":"mstore","nativeSrc":"86948:6:21","nodeType":"YulIdentifier","src":"86948:6:21"},"nativeSrc":"86948:15:21","nodeType":"YulFunctionCall","src":"86948:15:21"},"nativeSrc":"86948:15:21","nodeType":"YulExpressionStatement","src":"86948:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87019:4:21","nodeType":"YulLiteral","src":"87019:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"87025:1:21","nodeType":"YulLiteral","src":"87025:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"87012:6:21","nodeType":"YulIdentifier","src":"87012:6:21"},"nativeSrc":"87012:15:21","nodeType":"YulFunctionCall","src":"87012:15:21"},"nativeSrc":"87012:15:21","nodeType":"YulExpressionStatement","src":"87012:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10000,"isOffset":false,"isSlot":false,"src":"86614:15:21","valueSize":1},{"declaration":9995,"isOffset":false,"isSlot":false,"src":"85938:6:21","valueSize":1},{"declaration":10002,"isOffset":false,"isSlot":false,"src":"86200:8:21","valueSize":1},{"declaration":10002,"isOffset":false,"isSlot":false,"src":"86295:8:21","valueSize":1},{"declaration":10002,"isOffset":false,"isSlot":false,"src":"86328:8:21","valueSize":1},{"declaration":10002,"isOffset":false,"isSlot":false,"src":"86403:8:21","valueSize":1},{"declaration":10002,"isOffset":false,"isSlot":false,"src":"86716:8:21","valueSize":1},{"declaration":9997,"isOffset":false,"isSlot":false,"src":"86182:4:21","valueSize":1},{"declaration":9997,"isOffset":false,"isSlot":false,"src":"86367:4:21","valueSize":1},{"declaration":9993,"isOffset":false,"isSlot":false,"src":"86348:5:21","valueSize":1},{"declaration":9993,"isOffset":false,"isSlot":false,"src":"86661:5:21","valueSize":1},{"declaration":9993,"isOffset":false,"isSlot":false,"src":"86726:5:21","valueSize":1}],"id":10004,"nodeType":"InlineAssembly","src":"85523:1540:21"}]},"documentation":{"id":9991,"nodeType":"StructuredDocumentation","src":"85030:265:21","text":"@dev Creates a deterministic minimal ERC1967 beacon proxy with `salt`.\n Deposits `value` ETH during deployment.\n Note: This method is intended for use in ERC4337 factories,\n which are expected to NOT revert if the proxy is already deployed."},"id":10006,"implemented":true,"kind":"function","modifiers":[],"name":"createDeterministicERC1967BeaconProxy","nameLocation":"85309:37:21","nodeType":"FunctionDefinition","parameters":{"id":9998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9993,"mutability":"mutable","name":"value","nameLocation":"85355:5:21","nodeType":"VariableDeclaration","scope":10006,"src":"85347:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9992,"name":"uint256","nodeType":"ElementaryTypeName","src":"85347:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9995,"mutability":"mutable","name":"beacon","nameLocation":"85370:6:21","nodeType":"VariableDeclaration","scope":10006,"src":"85362:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9994,"name":"address","nodeType":"ElementaryTypeName","src":"85362:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9997,"mutability":"mutable","name":"salt","nameLocation":"85386:4:21","nodeType":"VariableDeclaration","scope":10006,"src":"85378:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85378:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"85346:45:21"},"returnParameters":{"id":10003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10000,"mutability":"mutable","name":"alreadyDeployed","nameLocation":"85431:15:21","nodeType":"VariableDeclaration","scope":10006,"src":"85426:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9999,"name":"bool","nodeType":"ElementaryTypeName","src":"85426:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10002,"mutability":"mutable","name":"instance","nameLocation":"85456:8:21","nodeType":"VariableDeclaration","scope":10006,"src":"85448:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10001,"name":"address","nodeType":"ElementaryTypeName","src":"85448:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"85425:40:21"},"scope":10078,"src":"85300:1769:21","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10015,"nodeType":"Block","src":"87281:770:21","statements":[{"AST":{"nativeSrc":"87343:702:21","nodeType":"YulBlock","src":"87343:702:21","statements":[{"nativeSrc":"87357:21:21","nodeType":"YulAssignment","src":"87357:21:21","value":{"arguments":[{"kind":"number","nativeSrc":"87373:4:21","nodeType":"YulLiteral","src":"87373:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"87367:5:21","nodeType":"YulIdentifier","src":"87367:5:21"},"nativeSrc":"87367:11:21","nodeType":"YulFunctionCall","src":"87367:11:21"},"variableNames":[{"name":"result","nativeSrc":"87357:6:21","nodeType":"YulIdentifier","src":"87357:6:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87419:6:21","nodeType":"YulIdentifier","src":"87419:6:21"},{"kind":"number","nativeSrc":"87427:4:21","nodeType":"YulLiteral","src":"87427:4:21","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"87415:3:21","nodeType":"YulIdentifier","src":"87415:3:21"},"nativeSrc":"87415:17:21","nodeType":"YulFunctionCall","src":"87415:17:21"},{"kind":"number","nativeSrc":"87450:66:21","nodeType":"YulLiteral","src":"87450:66:21","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"87391:6:21","nodeType":"YulIdentifier","src":"87391:6:21"},"nativeSrc":"87391:139:21","nodeType":"YulFunctionCall","src":"87391:139:21"},"nativeSrc":"87391:139:21","nodeType":"YulExpressionStatement","src":"87391:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87571:6:21","nodeType":"YulIdentifier","src":"87571:6:21"},{"kind":"number","nativeSrc":"87579:4:21","nodeType":"YulLiteral","src":"87579:4:21","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"87567:3:21","nodeType":"YulIdentifier","src":"87567:3:21"},"nativeSrc":"87567:17:21","nodeType":"YulFunctionCall","src":"87567:17:21"},{"kind":"number","nativeSrc":"87602:66:21","nodeType":"YulLiteral","src":"87602:66:21","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"87543:6:21","nodeType":"YulIdentifier","src":"87543:6:21"},"nativeSrc":"87543:139:21","nodeType":"YulFunctionCall","src":"87543:139:21"},"nativeSrc":"87543:139:21","nodeType":"YulExpressionStatement","src":"87543:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87706:6:21","nodeType":"YulIdentifier","src":"87706:6:21"},{"kind":"number","nativeSrc":"87714:4:21","nodeType":"YulLiteral","src":"87714:4:21","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"87702:3:21","nodeType":"YulIdentifier","src":"87702:3:21"},"nativeSrc":"87702:17:21","nodeType":"YulFunctionCall","src":"87702:17:21"},{"kind":"number","nativeSrc":"87721:48:21","nodeType":"YulLiteral","src":"87721:48:21","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"87695:6:21","nodeType":"YulIdentifier","src":"87695:6:21"},"nativeSrc":"87695:75:21","nodeType":"YulFunctionCall","src":"87695:75:21"},"nativeSrc":"87695:75:21","nodeType":"YulExpressionStatement","src":"87695:75:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87794:6:21","nodeType":"YulIdentifier","src":"87794:6:21"},{"kind":"number","nativeSrc":"87802:4:21","nodeType":"YulLiteral","src":"87802:4:21","type":"","value":"0x1d"}],"functionName":{"name":"add","nativeSrc":"87790:3:21","nodeType":"YulIdentifier","src":"87790:3:21"},"nativeSrc":"87790:17:21","nodeType":"YulFunctionCall","src":"87790:17:21"},{"name":"beacon","nativeSrc":"87809:6:21","nodeType":"YulIdentifier","src":"87809:6:21"}],"functionName":{"name":"mstore","nativeSrc":"87783:6:21","nodeType":"YulIdentifier","src":"87783:6:21"},"nativeSrc":"87783:33:21","nodeType":"YulFunctionCall","src":"87783:33:21"},"nativeSrc":"87783:33:21","nodeType":"YulExpressionStatement","src":"87783:33:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87840:6:21","nodeType":"YulIdentifier","src":"87840:6:21"},{"kind":"number","nativeSrc":"87848:4:21","nodeType":"YulLiteral","src":"87848:4:21","type":"","value":"0x09"}],"functionName":{"name":"add","nativeSrc":"87836:3:21","nodeType":"YulIdentifier","src":"87836:3:21"},"nativeSrc":"87836:17:21","nodeType":"YulFunctionCall","src":"87836:17:21"},{"kind":"number","nativeSrc":"87855:20:21","nodeType":"YulLiteral","src":"87855:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"mstore","nativeSrc":"87829:6:21","nodeType":"YulIdentifier","src":"87829:6:21"},"nativeSrc":"87829:47:21","nodeType":"YulFunctionCall","src":"87829:47:21"},"nativeSrc":"87829:47:21","nodeType":"YulExpressionStatement","src":"87829:47:21"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"87900:6:21","nodeType":"YulIdentifier","src":"87900:6:21"},{"kind":"number","nativeSrc":"87908:4:21","nodeType":"YulLiteral","src":"87908:4:21","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"87896:3:21","nodeType":"YulIdentifier","src":"87896:3:21"},"nativeSrc":"87896:17:21","nodeType":"YulFunctionCall","src":"87896:17:21"},{"kind":"number","nativeSrc":"87915:1:21","nodeType":"YulLiteral","src":"87915:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"87889:6:21","nodeType":"YulIdentifier","src":"87889:6:21"},"nativeSrc":"87889:28:21","nodeType":"YulFunctionCall","src":"87889:28:21"},"nativeSrc":"87889:28:21","nodeType":"YulExpressionStatement","src":"87889:28:21"},{"expression":{"arguments":[{"name":"result","nativeSrc":"87937:6:21","nodeType":"YulIdentifier","src":"87937:6:21"},{"kind":"number","nativeSrc":"87945:4:21","nodeType":"YulLiteral","src":"87945:4:21","type":"","value":"0x74"}],"functionName":{"name":"mstore","nativeSrc":"87930:6:21","nodeType":"YulIdentifier","src":"87930:6:21"},"nativeSrc":"87930:20:21","nodeType":"YulFunctionCall","src":"87930:20:21"},"nativeSrc":"87930:20:21","nodeType":"YulExpressionStatement","src":"87930:20:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87991:4:21","nodeType":"YulLiteral","src":"87991:4:21","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"88001:6:21","nodeType":"YulIdentifier","src":"88001:6:21"},{"kind":"number","nativeSrc":"88009:4:21","nodeType":"YulLiteral","src":"88009:4:21","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"87997:3:21","nodeType":"YulIdentifier","src":"87997:3:21"},"nativeSrc":"87997:17:21","nodeType":"YulFunctionCall","src":"87997:17:21"}],"functionName":{"name":"mstore","nativeSrc":"87984:6:21","nodeType":"YulIdentifier","src":"87984:6:21"},"nativeSrc":"87984:31:21","nodeType":"YulFunctionCall","src":"87984:31:21"},"nativeSrc":"87984:31:21","nodeType":"YulExpressionStatement","src":"87984:31:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10009,"isOffset":false,"isSlot":false,"src":"87809:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87357:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87419:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87571:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87706:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87794:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87840:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87900:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"87937:6:21","valueSize":1},{"declaration":10012,"isOffset":false,"isSlot":false,"src":"88001:6:21","valueSize":1}],"id":10014,"nodeType":"InlineAssembly","src":"87334:711:21"}]},"documentation":{"id":10007,"nodeType":"StructuredDocumentation","src":"87075:77:21","text":"@dev Returns the initialization code of the minimal ERC1967 beacon proxy."},"id":10016,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeERC1967BeaconProxy","nameLocation":"87166:26:21","nodeType":"FunctionDefinition","parameters":{"id":10010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10009,"mutability":"mutable","name":"beacon","nameLocation":"87201:6:21","nodeType":"VariableDeclaration","scope":10016,"src":"87193:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10008,"name":"address","nodeType":"ElementaryTypeName","src":"87193:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"87192:16:21"},"returnParameters":{"id":10013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10012,"mutability":"mutable","name":"result","nameLocation":"87269:6:21","nodeType":"VariableDeclaration","scope":10016,"src":"87256:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10011,"name":"bytes","nodeType":"ElementaryTypeName","src":"87256:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"87255:21:21"},"scope":10078,"src":"87157:894:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10025,"nodeType":"Block","src":"88298:654:21","statements":[{"AST":{"nativeSrc":"88360:586:21","nodeType":"YulBlock","src":"88360:586:21","statements":[{"nativeSrc":"88374:20:21","nodeType":"YulVariableDeclaration","src":"88374:20:21","value":{"arguments":[{"kind":"number","nativeSrc":"88389:4:21","nodeType":"YulLiteral","src":"88389:4:21","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"88383:5:21","nodeType":"YulIdentifier","src":"88383:5:21"},"nativeSrc":"88383:11:21","nodeType":"YulFunctionCall","src":"88383:11:21"},"variables":[{"name":"m","nativeSrc":"88378:1:21","nodeType":"YulTypedName","src":"88378:1:21","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88448:4:21","nodeType":"YulLiteral","src":"88448:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"88454:66:21","nodeType":"YulLiteral","src":"88454:66:21","type":"","value":"0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3"}],"functionName":{"name":"mstore","nativeSrc":"88441:6:21","nodeType":"YulIdentifier","src":"88441:6:21"},"nativeSrc":"88441:80:21","nodeType":"YulFunctionCall","src":"88441:80:21"},"nativeSrc":"88441:80:21","nodeType":"YulExpressionStatement","src":"88441:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88541:4:21","nodeType":"YulLiteral","src":"88541:4:21","type":"","value":"0x40"},{"kind":"number","nativeSrc":"88547:66:21","nodeType":"YulLiteral","src":"88547:66:21","type":"","value":"0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c"}],"functionName":{"name":"mstore","nativeSrc":"88534:6:21","nodeType":"YulIdentifier","src":"88534:6:21"},"nativeSrc":"88534:80:21","nodeType":"YulFunctionCall","src":"88534:80:21"},"nativeSrc":"88534:80:21","nodeType":"YulExpressionStatement","src":"88534:80:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88634:4:21","nodeType":"YulLiteral","src":"88634:4:21","type":"","value":"0x20"},{"kind":"number","nativeSrc":"88640:48:21","nodeType":"YulLiteral","src":"88640:48:21","type":"","value":"0x60195155f3363d3d373d3d363d602036600436635c60da"}],"functionName":{"name":"mstore","nativeSrc":"88627:6:21","nodeType":"YulIdentifier","src":"88627:6:21"},"nativeSrc":"88627:62:21","nodeType":"YulFunctionCall","src":"88627:62:21"},"nativeSrc":"88627:62:21","nodeType":"YulExpressionStatement","src":"88627:62:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88709:4:21","nodeType":"YulLiteral","src":"88709:4:21","type":"","value":"0x09"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"88722:3:21","nodeType":"YulLiteral","src":"88722:3:21","type":"","value":"160"},{"kind":"number","nativeSrc":"88727:20:21","nodeType":"YulLiteral","src":"88727:20:21","type":"","value":"0x60523d8160223d3973"}],"functionName":{"name":"shl","nativeSrc":"88718:3:21","nodeType":"YulIdentifier","src":"88718:3:21"},"nativeSrc":"88718:30:21","nodeType":"YulFunctionCall","src":"88718:30:21"},{"arguments":[{"kind":"number","nativeSrc":"88754:2:21","nodeType":"YulLiteral","src":"88754:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"88762:2:21","nodeType":"YulLiteral","src":"88762:2:21","type":"","value":"96"},{"name":"beacon","nativeSrc":"88766:6:21","nodeType":"YulIdentifier","src":"88766:6:21"}],"functionName":{"name":"shl","nativeSrc":"88758:3:21","nodeType":"YulIdentifier","src":"88758:3:21"},"nativeSrc":"88758:15:21","nodeType":"YulFunctionCall","src":"88758:15:21"}],"functionName":{"name":"shr","nativeSrc":"88750:3:21","nodeType":"YulIdentifier","src":"88750:3:21"},"nativeSrc":"88750:24:21","nodeType":"YulFunctionCall","src":"88750:24:21"}],"functionName":{"name":"or","nativeSrc":"88715:2:21","nodeType":"YulIdentifier","src":"88715:2:21"},"nativeSrc":"88715:60:21","nodeType":"YulFunctionCall","src":"88715:60:21"}],"functionName":{"name":"mstore","nativeSrc":"88702:6:21","nodeType":"YulIdentifier","src":"88702:6:21"},"nativeSrc":"88702:74:21","nodeType":"YulFunctionCall","src":"88702:74:21"},"nativeSrc":"88702:74:21","nodeType":"YulExpressionStatement","src":"88702:74:21"},{"nativeSrc":"88789:29:21","nodeType":"YulAssignment","src":"88789:29:21","value":{"arguments":[{"kind":"number","nativeSrc":"88807:4:21","nodeType":"YulLiteral","src":"88807:4:21","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"88813:4:21","nodeType":"YulLiteral","src":"88813:4:21","type":"","value":"0x74"}],"functionName":{"name":"keccak256","nativeSrc":"88797:9:21","nodeType":"YulIdentifier","src":"88797:9:21"},"nativeSrc":"88797:21:21","nodeType":"YulFunctionCall","src":"88797:21:21"},"variableNames":[{"name":"hash","nativeSrc":"88789:4:21","nodeType":"YulIdentifier","src":"88789:4:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88838:4:21","nodeType":"YulLiteral","src":"88838:4:21","type":"","value":"0x40"},{"name":"m","nativeSrc":"88844:1:21","nodeType":"YulIdentifier","src":"88844:1:21"}],"functionName":{"name":"mstore","nativeSrc":"88831:6:21","nodeType":"YulIdentifier","src":"88831:6:21"},"nativeSrc":"88831:15:21","nodeType":"YulFunctionCall","src":"88831:15:21"},"nativeSrc":"88831:15:21","nodeType":"YulExpressionStatement","src":"88831:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88902:4:21","nodeType":"YulLiteral","src":"88902:4:21","type":"","value":"0x60"},{"kind":"number","nativeSrc":"88908:1:21","nodeType":"YulLiteral","src":"88908:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"88895:6:21","nodeType":"YulIdentifier","src":"88895:6:21"},"nativeSrc":"88895:15:21","nodeType":"YulFunctionCall","src":"88895:15:21"},"nativeSrc":"88895:15:21","nodeType":"YulExpressionStatement","src":"88895:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10019,"isOffset":false,"isSlot":false,"src":"88766:6:21","valueSize":1},{"declaration":10022,"isOffset":false,"isSlot":false,"src":"88789:4:21","valueSize":1}],"id":10024,"nodeType":"InlineAssembly","src":"88351:595:21"}]},"documentation":{"id":10017,"nodeType":"StructuredDocumentation","src":"88057:143:21","text":"@dev Returns the initialization code hash of the minimal ERC1967 beacon proxy.\n Used for mining vanity addresses with create2crunch."},"id":10026,"implemented":true,"kind":"function","modifiers":[],"name":"initCodeHashERC1967BeaconProxy","nameLocation":"88214:30:21","nodeType":"FunctionDefinition","parameters":{"id":10020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10019,"mutability":"mutable","name":"beacon","nameLocation":"88253:6:21","nodeType":"VariableDeclaration","scope":10026,"src":"88245:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10018,"name":"address","nodeType":"ElementaryTypeName","src":"88245:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"88244:16:21"},"returnParameters":{"id":10023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10022,"mutability":"mutable","name":"hash","nameLocation":"88292:4:21","nodeType":"VariableDeclaration","scope":10026,"src":"88284:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88284:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"88283:14:21"},"scope":10078,"src":"88205:747:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10052,"nodeType":"Block","src":"89337:141:21","statements":[{"assignments":[10039],"declarations":[{"constant":false,"id":10039,"mutability":"mutable","name":"hash","nameLocation":"89355:4:21","nodeType":"VariableDeclaration","scope":10052,"src":"89347:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89347:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10043,"initialValue":{"arguments":[{"id":10041,"name":"beacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10029,"src":"89393:6:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10040,"name":"initCodeHashERC1967BeaconProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10026,"src":"89362:30:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_bytes32_$","typeString":"function (address) pure returns (bytes32)"}},"id":10042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"89362:38:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"89347:53:21"},{"expression":{"id":10050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10044,"name":"predicted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10036,"src":"89410:9:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10046,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10039,"src":"89450:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10047,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10031,"src":"89456:4:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":10048,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10033,"src":"89462:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":10045,"name":"predictDeterministicAddress","nodeType":"Identifier","overloadedDeclarations":[9343,9576,10067],"referencedDeclaration":10067,"src":"89422:27:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"89422:49:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"89410:61:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10051,"nodeType":"ExpressionStatement","src":"89410:61:21"}]},"documentation":{"id":10027,"nodeType":"StructuredDocumentation","src":"88958:199:21","text":"@dev Returns the address of the deterministic ERC1967 beacon proxy,\n with `salt` by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":10053,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddressERC1967BeaconProxy","nameLocation":"89171:45:21","nodeType":"FunctionDefinition","parameters":{"id":10034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10029,"mutability":"mutable","name":"beacon","nameLocation":"89234:6:21","nodeType":"VariableDeclaration","scope":10053,"src":"89226:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10028,"name":"address","nodeType":"ElementaryTypeName","src":"89226:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10031,"mutability":"mutable","name":"salt","nameLocation":"89258:4:21","nodeType":"VariableDeclaration","scope":10053,"src":"89250:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89250:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10033,"mutability":"mutable","name":"deployer","nameLocation":"89280:8:21","nodeType":"VariableDeclaration","scope":10053,"src":"89272:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10032,"name":"address","nodeType":"ElementaryTypeName","src":"89272:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"89216:78:21"},"returnParameters":{"id":10037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10036,"mutability":"mutable","name":"predicted","nameLocation":"89326:9:21","nodeType":"VariableDeclaration","scope":10053,"src":"89318:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10035,"name":"address","nodeType":"ElementaryTypeName","src":"89318:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"89317:19:21"},"scope":10078,"src":"89162:316:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10066,"nodeType":"Block","src":"90149:425:21","statements":[{"AST":{"nativeSrc":"90211:357:21","nodeType":"YulBlock","src":"90211:357:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"90285:4:21","nodeType":"YulLiteral","src":"90285:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90291:4:21","nodeType":"YulLiteral","src":"90291:4:21","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"90277:7:21","nodeType":"YulIdentifier","src":"90277:7:21"},"nativeSrc":"90277:19:21","nodeType":"YulFunctionCall","src":"90277:19:21"},"nativeSrc":"90277:19:21","nodeType":"YulExpressionStatement","src":"90277:19:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90337:4:21","nodeType":"YulLiteral","src":"90337:4:21","type":"","value":"0x35"},{"name":"hash","nativeSrc":"90343:4:21","nodeType":"YulIdentifier","src":"90343:4:21"}],"functionName":{"name":"mstore","nativeSrc":"90330:6:21","nodeType":"YulIdentifier","src":"90330:6:21"},"nativeSrc":"90330:18:21","nodeType":"YulFunctionCall","src":"90330:18:21"},"nativeSrc":"90330:18:21","nodeType":"YulExpressionStatement","src":"90330:18:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90368:4:21","nodeType":"YulLiteral","src":"90368:4:21","type":"","value":"0x01"},{"arguments":[{"kind":"number","nativeSrc":"90378:2:21","nodeType":"YulLiteral","src":"90378:2:21","type":"","value":"96"},{"name":"deployer","nativeSrc":"90382:8:21","nodeType":"YulIdentifier","src":"90382:8:21"}],"functionName":{"name":"shl","nativeSrc":"90374:3:21","nodeType":"YulIdentifier","src":"90374:3:21"},"nativeSrc":"90374:17:21","nodeType":"YulFunctionCall","src":"90374:17:21"}],"functionName":{"name":"mstore","nativeSrc":"90361:6:21","nodeType":"YulIdentifier","src":"90361:6:21"},"nativeSrc":"90361:31:21","nodeType":"YulFunctionCall","src":"90361:31:21"},"nativeSrc":"90361:31:21","nodeType":"YulExpressionStatement","src":"90361:31:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90412:4:21","nodeType":"YulLiteral","src":"90412:4:21","type":"","value":"0x15"},{"name":"salt","nativeSrc":"90418:4:21","nodeType":"YulIdentifier","src":"90418:4:21"}],"functionName":{"name":"mstore","nativeSrc":"90405:6:21","nodeType":"YulIdentifier","src":"90405:6:21"},"nativeSrc":"90405:18:21","nodeType":"YulFunctionCall","src":"90405:18:21"},"nativeSrc":"90405:18:21","nodeType":"YulExpressionStatement","src":"90405:18:21"},{"nativeSrc":"90436:34:21","nodeType":"YulAssignment","src":"90436:34:21","value":{"arguments":[{"kind":"number","nativeSrc":"90459:4:21","nodeType":"YulLiteral","src":"90459:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90465:4:21","nodeType":"YulLiteral","src":"90465:4:21","type":"","value":"0x55"}],"functionName":{"name":"keccak256","nativeSrc":"90449:9:21","nodeType":"YulIdentifier","src":"90449:9:21"},"nativeSrc":"90449:21:21","nodeType":"YulFunctionCall","src":"90449:21:21"},"variableNames":[{"name":"predicted","nativeSrc":"90436:9:21","nodeType":"YulIdentifier","src":"90436:9:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90490:4:21","nodeType":"YulLiteral","src":"90490:4:21","type":"","value":"0x35"},{"kind":"number","nativeSrc":"90496:1:21","nodeType":"YulLiteral","src":"90496:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"90483:6:21","nodeType":"YulIdentifier","src":"90483:6:21"},"nativeSrc":"90483:15:21","nodeType":"YulFunctionCall","src":"90483:15:21"},"nativeSrc":"90483:15:21","nodeType":"YulExpressionStatement","src":"90483:15:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10060,"isOffset":false,"isSlot":false,"src":"90382:8:21","valueSize":1},{"declaration":10056,"isOffset":false,"isSlot":false,"src":"90343:4:21","valueSize":1},{"declaration":10063,"isOffset":false,"isSlot":false,"src":"90436:9:21","valueSize":1},{"declaration":10058,"isOffset":false,"isSlot":false,"src":"90418:4:21","valueSize":1}],"id":10065,"nodeType":"InlineAssembly","src":"90202:366:21"}]},"documentation":{"id":10054,"nodeType":"StructuredDocumentation","src":"89767:224:21","text":"@dev Returns the address when a contract with initialization code hash,\n `hash`, is deployed with `salt`, by `deployer`.\n Note: The returned result has dirty upper 96 bits. Please clean if used in assembly."},"id":10067,"implemented":true,"kind":"function","modifiers":[],"name":"predictDeterministicAddress","nameLocation":"90005:27:21","nodeType":"FunctionDefinition","parameters":{"id":10061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10056,"mutability":"mutable","name":"hash","nameLocation":"90041:4:21","nodeType":"VariableDeclaration","scope":10067,"src":"90033:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90033:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10058,"mutability":"mutable","name":"salt","nameLocation":"90055:4:21","nodeType":"VariableDeclaration","scope":10067,"src":"90047:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90047:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10060,"mutability":"mutable","name":"deployer","nameLocation":"90069:8:21","nodeType":"VariableDeclaration","scope":10067,"src":"90061:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10059,"name":"address","nodeType":"ElementaryTypeName","src":"90061:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90032:46:21"},"returnParameters":{"id":10064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10063,"mutability":"mutable","name":"predicted","nameLocation":"90134:9:21","nodeType":"VariableDeclaration","scope":10067,"src":"90126:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10062,"name":"address","nodeType":"ElementaryTypeName","src":"90126:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90125:19:21"},"scope":10078,"src":"89996:578:21","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10076,"nodeType":"Block","src":"90724:363:21","statements":[{"AST":{"nativeSrc":"90786:295:21","nodeType":"YulBlock","src":"90786:295:21","statements":[{"body":{"nativeSrc":"90951:120:21","nodeType":"YulBlock","src":"90951:120:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"90976:4:21","nodeType":"YulLiteral","src":"90976:4:21","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90982:10:21","nodeType":"YulLiteral","src":"90982:10:21","type":"","value":"0x0c4549ef"}],"functionName":{"name":"mstore","nativeSrc":"90969:6:21","nodeType":"YulIdentifier","src":"90969:6:21"},"nativeSrc":"90969:24:21","nodeType":"YulFunctionCall","src":"90969:24:21"},"nativeSrc":"90969:24:21","nodeType":"YulExpressionStatement","src":"90969:24:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91046:4:21","nodeType":"YulLiteral","src":"91046:4:21","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"91052:4:21","nodeType":"YulLiteral","src":"91052:4:21","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"91039:6:21","nodeType":"YulIdentifier","src":"91039:6:21"},"nativeSrc":"91039:18:21","nodeType":"YulFunctionCall","src":"91039:18:21"},"nativeSrc":"91039:18:21","nodeType":"YulExpressionStatement","src":"91039:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"90897:2:21","nodeType":"YulLiteral","src":"90897:2:21","type":"","value":"96"},{"name":"salt","nativeSrc":"90901:4:21","nodeType":"YulIdentifier","src":"90901:4:21"}],"functionName":{"name":"shr","nativeSrc":"90893:3:21","nodeType":"YulIdentifier","src":"90893:3:21"},"nativeSrc":"90893:13:21","nodeType":"YulFunctionCall","src":"90893:13:21"}],"functionName":{"name":"iszero","nativeSrc":"90886:6:21","nodeType":"YulIdentifier","src":"90886:6:21"},"nativeSrc":"90886:21:21","nodeType":"YulFunctionCall","src":"90886:21:21"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"90916:2:21","nodeType":"YulLiteral","src":"90916:2:21","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"90924:2:21","nodeType":"YulLiteral","src":"90924:2:21","type":"","value":"96"},{"name":"by","nativeSrc":"90928:2:21","nodeType":"YulIdentifier","src":"90928:2:21"}],"functionName":{"name":"shl","nativeSrc":"90920:3:21","nodeType":"YulIdentifier","src":"90920:3:21"},"nativeSrc":"90920:11:21","nodeType":"YulFunctionCall","src":"90920:11:21"}],"functionName":{"name":"shr","nativeSrc":"90912:3:21","nodeType":"YulIdentifier","src":"90912:3:21"},"nativeSrc":"90912:20:21","nodeType":"YulFunctionCall","src":"90912:20:21"},{"arguments":[{"kind":"number","nativeSrc":"90938:2:21","nodeType":"YulLiteral","src":"90938:2:21","type":"","value":"96"},{"name":"salt","nativeSrc":"90942:4:21","nodeType":"YulIdentifier","src":"90942:4:21"}],"functionName":{"name":"shr","nativeSrc":"90934:3:21","nodeType":"YulIdentifier","src":"90934:3:21"},"nativeSrc":"90934:13:21","nodeType":"YulFunctionCall","src":"90934:13:21"}],"functionName":{"name":"eq","nativeSrc":"90909:2:21","nodeType":"YulIdentifier","src":"90909:2:21"},"nativeSrc":"90909:39:21","nodeType":"YulFunctionCall","src":"90909:39:21"}],"functionName":{"name":"or","nativeSrc":"90883:2:21","nodeType":"YulIdentifier","src":"90883:2:21"},"nativeSrc":"90883:66:21","nodeType":"YulFunctionCall","src":"90883:66:21"}],"functionName":{"name":"iszero","nativeSrc":"90876:6:21","nodeType":"YulIdentifier","src":"90876:6:21"},"nativeSrc":"90876:74:21","nodeType":"YulFunctionCall","src":"90876:74:21"},"nativeSrc":"90873:198:21","nodeType":"YulIf","src":"90873:198:21"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10072,"isOffset":false,"isSlot":false,"src":"90928:2:21","valueSize":1},{"declaration":10070,"isOffset":false,"isSlot":false,"src":"90901:4:21","valueSize":1},{"declaration":10070,"isOffset":false,"isSlot":false,"src":"90942:4:21","valueSize":1}],"id":10075,"nodeType":"InlineAssembly","src":"90777:304:21"}]},"documentation":{"id":10068,"nodeType":"StructuredDocumentation","src":"90580:74:21","text":"@dev Requires that `salt` starts with either the zero address or `by`."},"id":10077,"implemented":true,"kind":"function","modifiers":[],"name":"checkStartsWith","nameLocation":"90668:15:21","nodeType":"FunctionDefinition","parameters":{"id":10073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10070,"mutability":"mutable","name":"salt","nameLocation":"90692:4:21","nodeType":"VariableDeclaration","scope":10077,"src":"90684:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90684:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":10072,"mutability":"mutable","name":"by","nameLocation":"90706:2:21","nodeType":"VariableDeclaration","scope":10077,"src":"90698:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10071,"name":"address","nodeType":"ElementaryTypeName","src":"90698:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90683:26:21"},"returnParameters":{"id":10074,"nodeType":"ParameterList","parameters":[],"src":"90724:0:21"},"scope":10078,"src":"90659:428:21","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10079,"src":"2217:88872:21","usedErrors":[9229,9232,9235],"usedEvents":[]}],"src":"32:91058:21"},"id":21},"@solady/utils/LibPRNG.sol":{"ast":{"absolutePath":"@solady/utils/LibPRNG.sol","exportedSymbols":{"LibPRNG":[10293]},"id":10294,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10080,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:22"},{"abstract":false,"baseContracts":[],"canonicalName":"LibPRNG","contractDependencies":[],"contractKind":"library","documentation":{"id":10081,"nodeType":"StructuredDocumentation","src":"57:318:22","text":"@notice Library for generating pseudorandom numbers.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)\n @author LazyShuffler based on NextShuffler by aschlosberg (divergencearran)\n (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)"},"fullyImplemented":true,"id":10293,"linearizedBaseContracts":[10293],"name":"LibPRNG","nameLocation":"383:7:22","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10082,"nodeType":"StructuredDocumentation","src":"680:80:22","text":"@dev The initial length must be greater than zero and less than `2**32 - 1`."},"errorSelector":"83b53941","id":10084,"name":"InvalidInitialLazyShufflerLength","nameLocation":"771:32:22","nodeType":"ErrorDefinition","parameters":{"id":10083,"nodeType":"ParameterList","parameters":[],"src":"803:2:22"},"src":"765:41:22"},{"documentation":{"id":10085,"nodeType":"StructuredDocumentation","src":"812:65:22","text":"@dev The new length must not be less than the current length."},"errorSelector":"bed37c6e","id":10087,"name":"InvalidNewLazyShufflerLength","nameLocation":"888:28:22","nodeType":"ErrorDefinition","parameters":{"id":10086,"nodeType":"ParameterList","parameters":[],"src":"916:2:22"},"src":"882:37:22"},{"documentation":{"id":10088,"nodeType":"StructuredDocumentation","src":"925:52:22","text":"@dev The lazy shuffler has not been initialized."},"errorSelector":"1ead2566","id":10090,"name":"LazyShufflerNotInitialized","nameLocation":"988:26:22","nodeType":"ErrorDefinition","parameters":{"id":10089,"nodeType":"ParameterList","parameters":[],"src":"1014:2:22"},"src":"982:35:22"},{"documentation":{"id":10091,"nodeType":"StructuredDocumentation","src":"1023:52:22","text":"@dev Cannot double initialize the lazy shuffler."},"errorSelector":"0c9f11f2","id":10093,"name":"LazyShufflerAlreadyInitialized","nameLocation":"1086:30:22","nodeType":"ErrorDefinition","parameters":{"id":10092,"nodeType":"ParameterList","parameters":[],"src":"1116:2:22"},"src":"1080:39:22"},{"documentation":{"id":10094,"nodeType":"StructuredDocumentation","src":"1125:39:22","text":"@dev The lazy shuffle has finished."},"errorSelector":"51065f79","id":10096,"name":"LazyShuffleFinished","nameLocation":"1175:19:22","nodeType":"ErrorDefinition","parameters":{"id":10095,"nodeType":"ParameterList","parameters":[],"src":"1194:2:22"},"src":"1169:28:22"},{"documentation":{"id":10097,"nodeType":"StructuredDocumentation","src":"1203:44:22","text":"@dev The queried index is out of bounds."},"errorSelector":"61367cc4","id":10099,"name":"LazyShufflerGetOutOfBounds","nameLocation":"1258:26:22","nodeType":"ErrorDefinition","parameters":{"id":10098,"nodeType":"ParameterList","parameters":[],"src":"1284:2:22"},"src":"1252:35:22"},{"constant":true,"documentation":{"id":10100,"nodeType":"StructuredDocumentation","src":"1576:43:22","text":"@dev The scalar of ETH and most ERC20s."},"id":10103,"mutability":"constant","name":"WAD","nameLocation":"1650:3:22","nodeType":"VariableDeclaration","scope":10293,"src":"1624:36:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1624:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31653138","id":10102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1656:4:22","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"visibility":"internal"},{"canonicalName":"LibPRNG.PRNG","documentation":{"id":10104,"nodeType":"StructuredDocumentation","src":"1950:47:22","text":"@dev A pseudorandom number state in memory."},"id":10107,"members":[{"constant":false,"id":10106,"mutability":"mutable","name":"state","nameLocation":"2032:5:22","nodeType":"VariableDeclaration","scope":10107,"src":"2024:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10105,"name":"uint256","nodeType":"ElementaryTypeName","src":"2024:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PRNG","nameLocation":"2009:4:22","nodeType":"StructDefinition","scope":10293,"src":"2002:42:22","visibility":"public"},{"canonicalName":"LibPRNG.LazyShuffler","documentation":{"id":10108,"nodeType":"StructuredDocumentation","src":"2050:70:22","text":"@dev A lazy Fisher-Yates shuffler for a range `[0..n)` in storage."},"id":10111,"members":[{"constant":false,"id":10110,"mutability":"mutable","name":"_state","nameLocation":"2300:6:22","nodeType":"VariableDeclaration","scope":10111,"src":"2292:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10109,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"LazyShuffler","nameLocation":"2132:12:22","nodeType":"StructDefinition","scope":10293,"src":"2125:188:22","visibility":"public"},{"body":{"id":10121,"nodeType":"Block","src":"2707:111:22","statements":[{"AST":{"nativeSrc":"2769:43:22","nodeType":"YulBlock","src":"2769:43:22","statements":[{"expression":{"arguments":[{"name":"prng","nativeSrc":"2790:4:22","nodeType":"YulIdentifier","src":"2790:4:22"},{"name":"state","nativeSrc":"2796:5:22","nodeType":"YulIdentifier","src":"2796:5:22"}],"functionName":{"name":"mstore","nativeSrc":"2783:6:22","nodeType":"YulIdentifier","src":"2783:6:22"},"nativeSrc":"2783:19:22","nodeType":"YulFunctionCall","src":"2783:19:22"},"nativeSrc":"2783:19:22","nodeType":"YulExpressionStatement","src":"2783:19:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10115,"isOffset":false,"isSlot":false,"src":"2790:4:22","valueSize":1},{"declaration":10117,"isOffset":false,"isSlot":false,"src":"2796:5:22","valueSize":1}],"id":10120,"nodeType":"InlineAssembly","src":"2760:52:22"}]},"documentation":{"id":10112,"nodeType":"StructuredDocumentation","src":"2602:39:22","text":"@dev Seeds the `prng` with `state`."},"id":10122,"implemented":true,"kind":"function","modifiers":[],"name":"seed","nameLocation":"2655:4:22","nodeType":"FunctionDefinition","parameters":{"id":10118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10115,"mutability":"mutable","name":"prng","nameLocation":"2672:4:22","nodeType":"VariableDeclaration","scope":10122,"src":"2660:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10114,"nodeType":"UserDefinedTypeName","pathNode":{"id":10113,"name":"PRNG","nameLocations":["2660:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"2660:4:22"},"referencedDeclaration":10107,"src":"2660:4:22","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10117,"mutability":"mutable","name":"state","nameLocation":"2686:5:22","nodeType":"VariableDeclaration","scope":10122,"src":"2678:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10116,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2659:33:22"},"returnParameters":{"id":10119,"nodeType":"ParameterList","parameters":[],"src":"2707:0:22"},"scope":10293,"src":"2646:172:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10132,"nodeType":"Block","src":"3026:685:22","statements":[{"AST":{"nativeSrc":"3617:88:22","nodeType":"YulBlock","src":"3617:88:22","statements":[{"nativeSrc":"3631:31:22","nodeType":"YulAssignment","src":"3631:31:22","value":{"arguments":[{"name":"prng","nativeSrc":"3651:4:22","nodeType":"YulIdentifier","src":"3651:4:22"},{"kind":"number","nativeSrc":"3657:4:22","nodeType":"YulLiteral","src":"3657:4:22","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"3641:9:22","nodeType":"YulIdentifier","src":"3641:9:22"},"nativeSrc":"3641:21:22","nodeType":"YulFunctionCall","src":"3641:21:22"},"variableNames":[{"name":"result","nativeSrc":"3631:6:22","nodeType":"YulIdentifier","src":"3631:6:22"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"3682:4:22","nodeType":"YulIdentifier","src":"3682:4:22"},{"name":"result","nativeSrc":"3688:6:22","nodeType":"YulIdentifier","src":"3688:6:22"}],"functionName":{"name":"mstore","nativeSrc":"3675:6:22","nodeType":"YulIdentifier","src":"3675:6:22"},"nativeSrc":"3675:20:22","nodeType":"YulFunctionCall","src":"3675:20:22"},"nativeSrc":"3675:20:22","nodeType":"YulExpressionStatement","src":"3675:20:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10126,"isOffset":false,"isSlot":false,"src":"3651:4:22","valueSize":1},{"declaration":10126,"isOffset":false,"isSlot":false,"src":"3682:4:22","valueSize":1},{"declaration":10129,"isOffset":false,"isSlot":false,"src":"3631:6:22","valueSize":1},{"declaration":10129,"isOffset":false,"isSlot":false,"src":"3688:6:22","valueSize":1}],"id":10131,"nodeType":"InlineAssembly","src":"3608:97:22"}]},"documentation":{"id":10123,"nodeType":"StructuredDocumentation","src":"2824:126:22","text":"@dev Returns the next pseudorandom uint256.\n All bits of the returned uint256 pass the NIST Statistical Test Suite."},"id":10133,"implemented":true,"kind":"function","modifiers":[],"name":"next","nameLocation":"2964:4:22","nodeType":"FunctionDefinition","parameters":{"id":10127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10126,"mutability":"mutable","name":"prng","nameLocation":"2981:4:22","nodeType":"VariableDeclaration","scope":10133,"src":"2969:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10125,"nodeType":"UserDefinedTypeName","pathNode":{"id":10124,"name":"PRNG","nameLocations":["2969:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"2969:4:22"},"referencedDeclaration":10107,"src":"2969:4:22","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"2968:18:22"},"returnParameters":{"id":10130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10129,"mutability":"mutable","name":"result","nameLocation":"3018:6:22","nodeType":"VariableDeclaration","scope":10133,"src":"3010:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10128,"name":"uint256","nodeType":"ElementaryTypeName","src":"3010:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3009:16:22"},"scope":10293,"src":"2955:756:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10145,"nodeType":"Block","src":"4190:320:22","statements":[{"AST":{"nativeSrc":"4252:252:22","nodeType":"YulBlock","src":"4252:252:22","statements":[{"body":{"nativeSrc":"4278:175:22","nodeType":"YulBlock","src":"4278:175:22","statements":[{"nativeSrc":"4296:31:22","nodeType":"YulAssignment","src":"4296:31:22","value":{"arguments":[{"name":"prng","nativeSrc":"4316:4:22","nodeType":"YulIdentifier","src":"4316:4:22"},{"kind":"number","nativeSrc":"4322:4:22","nodeType":"YulLiteral","src":"4322:4:22","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"4306:9:22","nodeType":"YulIdentifier","src":"4306:9:22"},"nativeSrc":"4306:21:22","nodeType":"YulFunctionCall","src":"4306:21:22"},"variableNames":[{"name":"result","nativeSrc":"4296:6:22","nodeType":"YulIdentifier","src":"4296:6:22"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"4351:4:22","nodeType":"YulIdentifier","src":"4351:4:22"},{"name":"result","nativeSrc":"4357:6:22","nodeType":"YulIdentifier","src":"4357:6:22"}],"functionName":{"name":"mstore","nativeSrc":"4344:6:22","nodeType":"YulIdentifier","src":"4344:6:22"},"nativeSrc":"4344:20:22","nodeType":"YulFunctionCall","src":"4344:20:22"},"nativeSrc":"4344:20:22","nodeType":"YulExpressionStatement","src":"4344:20:22"},{"body":{"nativeSrc":"4430:9:22","nodeType":"YulBlock","src":"4430:9:22","statements":[{"nativeSrc":"4432:5:22","nodeType":"YulBreak","src":"4432:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"4394:6:22","nodeType":"YulIdentifier","src":"4394:6:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"4410:1:22","nodeType":"YulLiteral","src":"4410:1:22","type":"","value":"0"},{"name":"upper","nativeSrc":"4413:5:22","nodeType":"YulIdentifier","src":"4413:5:22"}],"functionName":{"name":"sub","nativeSrc":"4406:3:22","nodeType":"YulIdentifier","src":"4406:3:22"},"nativeSrc":"4406:13:22","nodeType":"YulFunctionCall","src":"4406:13:22"},{"name":"upper","nativeSrc":"4421:5:22","nodeType":"YulIdentifier","src":"4421:5:22"}],"functionName":{"name":"mod","nativeSrc":"4402:3:22","nodeType":"YulIdentifier","src":"4402:3:22"},"nativeSrc":"4402:25:22","nodeType":"YulFunctionCall","src":"4402:25:22"}],"functionName":{"name":"lt","nativeSrc":"4391:2:22","nodeType":"YulIdentifier","src":"4391:2:22"},"nativeSrc":"4391:37:22","nodeType":"YulFunctionCall","src":"4391:37:22"}],"functionName":{"name":"iszero","nativeSrc":"4384:6:22","nodeType":"YulIdentifier","src":"4384:6:22"},"nativeSrc":"4384:45:22","nodeType":"YulFunctionCall","src":"4384:45:22"},"nativeSrc":"4381:58:22","nodeType":"YulIf","src":"4381:58:22"}]},"condition":{"kind":"number","nativeSrc":"4273:1:22","nodeType":"YulLiteral","src":"4273:1:22","type":"","value":"1"},"nativeSrc":"4266:187:22","nodeType":"YulForLoop","post":{"nativeSrc":"4275:2:22","nodeType":"YulBlock","src":"4275:2:22","statements":[]},"pre":{"nativeSrc":"4270:2:22","nodeType":"YulBlock","src":"4270:2:22","statements":[]},"src":"4266:187:22"},{"nativeSrc":"4466:28:22","nodeType":"YulAssignment","src":"4466:28:22","value":{"arguments":[{"name":"result","nativeSrc":"4480:6:22","nodeType":"YulIdentifier","src":"4480:6:22"},{"name":"upper","nativeSrc":"4488:5:22","nodeType":"YulIdentifier","src":"4488:5:22"}],"functionName":{"name":"mod","nativeSrc":"4476:3:22","nodeType":"YulIdentifier","src":"4476:3:22"},"nativeSrc":"4476:18:22","nodeType":"YulFunctionCall","src":"4476:18:22"},"variableNames":[{"name":"result","nativeSrc":"4466:6:22","nodeType":"YulIdentifier","src":"4466:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10137,"isOffset":false,"isSlot":false,"src":"4316:4:22","valueSize":1},{"declaration":10137,"isOffset":false,"isSlot":false,"src":"4351:4:22","valueSize":1},{"declaration":10142,"isOffset":false,"isSlot":false,"src":"4296:6:22","valueSize":1},{"declaration":10142,"isOffset":false,"isSlot":false,"src":"4357:6:22","valueSize":1},{"declaration":10142,"isOffset":false,"isSlot":false,"src":"4394:6:22","valueSize":1},{"declaration":10142,"isOffset":false,"isSlot":false,"src":"4466:6:22","valueSize":1},{"declaration":10142,"isOffset":false,"isSlot":false,"src":"4480:6:22","valueSize":1},{"declaration":10139,"isOffset":false,"isSlot":false,"src":"4413:5:22","valueSize":1},{"declaration":10139,"isOffset":false,"isSlot":false,"src":"4421:5:22","valueSize":1},{"declaration":10139,"isOffset":false,"isSlot":false,"src":"4488:5:22","valueSize":1}],"id":10144,"nodeType":"InlineAssembly","src":"4243:261:22"}]},"documentation":{"id":10134,"nodeType":"StructuredDocumentation","src":"3717:379:22","text":"@dev Returns a pseudorandom uint256, uniformly distributed\n between 0 (inclusive) and `upper` (exclusive).\n If your modulus is big, this method is recommended\n for uniform sampling to avoid modulo bias.\n For uniform sampling across all uint256 values,\n or for small enough moduli such that the bias is neligible,\n use {next} instead."},"id":10146,"implemented":true,"kind":"function","modifiers":[],"name":"uniform","nameLocation":"4110:7:22","nodeType":"FunctionDefinition","parameters":{"id":10140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10137,"mutability":"mutable","name":"prng","nameLocation":"4130:4:22","nodeType":"VariableDeclaration","scope":10146,"src":"4118:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10136,"nodeType":"UserDefinedTypeName","pathNode":{"id":10135,"name":"PRNG","nameLocations":["4118:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"4118:4:22"},"referencedDeclaration":10107,"src":"4118:4:22","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10139,"mutability":"mutable","name":"upper","nameLocation":"4144:5:22","nodeType":"VariableDeclaration","scope":10146,"src":"4136:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10138,"name":"uint256","nodeType":"ElementaryTypeName","src":"4136:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4117:33:22"},"returnParameters":{"id":10143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10142,"mutability":"mutable","name":"result","nameLocation":"4182:6:22","nodeType":"VariableDeclaration","scope":10146,"src":"4174:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10141,"name":"uint256","nodeType":"ElementaryTypeName","src":"4174:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4173:16:22"},"scope":10293,"src":"4101:409:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10157,"nodeType":"Block","src":"4653:1550:22","statements":[{"AST":{"nativeSrc":"4715:1482:22","nodeType":"YulBlock","src":"4715:1482:22","statements":[{"nativeSrc":"4729:17:22","nodeType":"YulVariableDeclaration","src":"4729:17:22","value":{"arguments":[{"name":"a","nativeSrc":"4744:1:22","nodeType":"YulIdentifier","src":"4744:1:22"}],"functionName":{"name":"mload","nativeSrc":"4738:5:22","nodeType":"YulIdentifier","src":"4738:5:22"},"nativeSrc":"4738:8:22","nodeType":"YulFunctionCall","src":"4738:8:22"},"variables":[{"name":"n","nativeSrc":"4733:1:22","nodeType":"YulTypedName","src":"4733:1:22","type":""}]},{"nativeSrc":"4759:15:22","nodeType":"YulVariableDeclaration","src":"4759:15:22","value":{"arguments":[{"kind":"number","nativeSrc":"4772:1:22","nodeType":"YulLiteral","src":"4772:1:22","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"4768:3:22","nodeType":"YulIdentifier","src":"4768:3:22"},"nativeSrc":"4768:6:22","nodeType":"YulFunctionCall","src":"4768:6:22"},"variables":[{"name":"w","nativeSrc":"4763:1:22","nodeType":"YulTypedName","src":"4763:1:22","type":""}]},{"nativeSrc":"4787:23:22","nodeType":"YulVariableDeclaration","src":"4787:23:22","value":{"arguments":[{"kind":"number","nativeSrc":"4803:3:22","nodeType":"YulLiteral","src":"4803:3:22","type":"","value":"128"},{"name":"w","nativeSrc":"4808:1:22","nodeType":"YulIdentifier","src":"4808:1:22"}],"functionName":{"name":"shr","nativeSrc":"4799:3:22","nodeType":"YulIdentifier","src":"4799:3:22"},"nativeSrc":"4799:11:22","nodeType":"YulFunctionCall","src":"4799:11:22"},"variables":[{"name":"mask","nativeSrc":"4791:4:22","nodeType":"YulTypedName","src":"4791:4:22","type":""}]},{"body":{"nativeSrc":"4828:1359:22","nodeType":"YulBlock","src":"4828:1359:22","statements":[{"body":{"nativeSrc":"4877:1296:22","nodeType":"YulBlock","src":"4877:1296:22","statements":[{"nativeSrc":"5025:30:22","nodeType":"YulVariableDeclaration","src":"5025:30:22","value":{"arguments":[{"name":"prng","nativeSrc":"5044:4:22","nodeType":"YulIdentifier","src":"5044:4:22"},{"kind":"number","nativeSrc":"5050:4:22","nodeType":"YulLiteral","src":"5050:4:22","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"5034:9:22","nodeType":"YulIdentifier","src":"5034:9:22"},"nativeSrc":"5034:21:22","nodeType":"YulFunctionCall","src":"5034:21:22"},"variables":[{"name":"r","nativeSrc":"5029:1:22","nodeType":"YulTypedName","src":"5029:1:22","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"5083:4:22","nodeType":"YulIdentifier","src":"5083:4:22"},{"name":"r","nativeSrc":"5089:1:22","nodeType":"YulIdentifier","src":"5089:1:22"}],"functionName":{"name":"mstore","nativeSrc":"5076:6:22","nodeType":"YulIdentifier","src":"5076:6:22"},"nativeSrc":"5076:15:22","nodeType":"YulFunctionCall","src":"5076:15:22"},"nativeSrc":"5076:15:22","nodeType":"YulExpressionStatement","src":"5076:15:22"},{"nativeSrc":"5394:369:22","nodeType":"YulBlock","src":"5394:369:22","statements":[{"nativeSrc":"5420:44:22","nodeType":"YulVariableDeclaration","src":"5420:44:22","value":{"arguments":[{"name":"a","nativeSrc":"5433:1:22","nodeType":"YulIdentifier","src":"5433:1:22"},{"arguments":[{"kind":"number","nativeSrc":"5440:1:22","nodeType":"YulLiteral","src":"5440:1:22","type":"","value":"5"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5451:3:22","nodeType":"YulLiteral","src":"5451:3:22","type":"","value":"128"},{"name":"r","nativeSrc":"5456:1:22","nodeType":"YulIdentifier","src":"5456:1:22"}],"functionName":{"name":"shr","nativeSrc":"5447:3:22","nodeType":"YulIdentifier","src":"5447:3:22"},"nativeSrc":"5447:11:22","nodeType":"YulFunctionCall","src":"5447:11:22"},{"name":"n","nativeSrc":"5460:1:22","nodeType":"YulIdentifier","src":"5460:1:22"}],"functionName":{"name":"mod","nativeSrc":"5443:3:22","nodeType":"YulIdentifier","src":"5443:3:22"},"nativeSrc":"5443:19:22","nodeType":"YulFunctionCall","src":"5443:19:22"}],"functionName":{"name":"shl","nativeSrc":"5436:3:22","nodeType":"YulIdentifier","src":"5436:3:22"},"nativeSrc":"5436:27:22","nodeType":"YulFunctionCall","src":"5436:27:22"}],"functionName":{"name":"add","nativeSrc":"5429:3:22","nodeType":"YulIdentifier","src":"5429:3:22"},"nativeSrc":"5429:35:22","nodeType":"YulFunctionCall","src":"5429:35:22"},"variables":[{"name":"j","nativeSrc":"5424:1:22","nodeType":"YulTypedName","src":"5424:1:22","type":""}]},{"nativeSrc":"5489:14:22","nodeType":"YulAssignment","src":"5489:14:22","value":{"arguments":[{"name":"n","nativeSrc":"5498:1:22","nodeType":"YulIdentifier","src":"5498:1:22"},{"name":"w","nativeSrc":"5501:1:22","nodeType":"YulIdentifier","src":"5501:1:22"}],"functionName":{"name":"add","nativeSrc":"5494:3:22","nodeType":"YulIdentifier","src":"5494:3:22"},"nativeSrc":"5494:9:22","nodeType":"YulFunctionCall","src":"5494:9:22"},"variableNames":[{"name":"n","nativeSrc":"5489:1:22","nodeType":"YulIdentifier","src":"5489:1:22"}]},{"body":{"nativeSrc":"5557:9:22","nodeType":"YulBlock","src":"5557:9:22","statements":[{"nativeSrc":"5559:5:22","nodeType":"YulBreak","src":"5559:5:22"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"5554:1:22","nodeType":"YulIdentifier","src":"5554:1:22"}],"functionName":{"name":"iszero","nativeSrc":"5547:6:22","nodeType":"YulIdentifier","src":"5547:6:22"},"nativeSrc":"5547:9:22","nodeType":"YulFunctionCall","src":"5547:9:22"},"nativeSrc":"5544:22:22","nodeType":"YulIf","src":"5544:22:22"},{"nativeSrc":"5592:26:22","nodeType":"YulVariableDeclaration","src":"5592:26:22","value":{"arguments":[{"name":"a","nativeSrc":"5605:1:22","nodeType":"YulIdentifier","src":"5605:1:22"},{"arguments":[{"kind":"number","nativeSrc":"5612:1:22","nodeType":"YulLiteral","src":"5612:1:22","type":"","value":"5"},{"name":"n","nativeSrc":"5615:1:22","nodeType":"YulIdentifier","src":"5615:1:22"}],"functionName":{"name":"shl","nativeSrc":"5608:3:22","nodeType":"YulIdentifier","src":"5608:3:22"},"nativeSrc":"5608:9:22","nodeType":"YulFunctionCall","src":"5608:9:22"}],"functionName":{"name":"add","nativeSrc":"5601:3:22","nodeType":"YulIdentifier","src":"5601:3:22"},"nativeSrc":"5601:17:22","nodeType":"YulFunctionCall","src":"5601:17:22"},"variables":[{"name":"i","nativeSrc":"5596:1:22","nodeType":"YulTypedName","src":"5596:1:22","type":""}]},{"nativeSrc":"5643:17:22","nodeType":"YulVariableDeclaration","src":"5643:17:22","value":{"arguments":[{"name":"i","nativeSrc":"5658:1:22","nodeType":"YulIdentifier","src":"5658:1:22"}],"functionName":{"name":"mload","nativeSrc":"5652:5:22","nodeType":"YulIdentifier","src":"5652:5:22"},"nativeSrc":"5652:8:22","nodeType":"YulFunctionCall","src":"5652:8:22"},"variables":[{"name":"t","nativeSrc":"5647:1:22","nodeType":"YulTypedName","src":"5647:1:22","type":""}]},{"expression":{"arguments":[{"name":"i","nativeSrc":"5692:1:22","nodeType":"YulIdentifier","src":"5692:1:22"},{"arguments":[{"name":"j","nativeSrc":"5701:1:22","nodeType":"YulIdentifier","src":"5701:1:22"}],"functionName":{"name":"mload","nativeSrc":"5695:5:22","nodeType":"YulIdentifier","src":"5695:5:22"},"nativeSrc":"5695:8:22","nodeType":"YulFunctionCall","src":"5695:8:22"}],"functionName":{"name":"mstore","nativeSrc":"5685:6:22","nodeType":"YulIdentifier","src":"5685:6:22"},"nativeSrc":"5685:19:22","nodeType":"YulFunctionCall","src":"5685:19:22"},"nativeSrc":"5685:19:22","nodeType":"YulExpressionStatement","src":"5685:19:22"},{"expression":{"arguments":[{"name":"j","nativeSrc":"5736:1:22","nodeType":"YulIdentifier","src":"5736:1:22"},{"name":"t","nativeSrc":"5739:1:22","nodeType":"YulIdentifier","src":"5739:1:22"}],"functionName":{"name":"mstore","nativeSrc":"5729:6:22","nodeType":"YulIdentifier","src":"5729:6:22"},"nativeSrc":"5729:12:22","nodeType":"YulFunctionCall","src":"5729:12:22"},"nativeSrc":"5729:12:22","nodeType":"YulExpressionStatement","src":"5729:12:22"}]},{"nativeSrc":"5785:370:22","nodeType":"YulBlock","src":"5785:370:22","statements":[{"nativeSrc":"5811:45:22","nodeType":"YulVariableDeclaration","src":"5811:45:22","value":{"arguments":[{"name":"a","nativeSrc":"5824:1:22","nodeType":"YulIdentifier","src":"5824:1:22"},{"arguments":[{"kind":"number","nativeSrc":"5831:1:22","nodeType":"YulLiteral","src":"5831:1:22","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"5842:1:22","nodeType":"YulIdentifier","src":"5842:1:22"},{"name":"mask","nativeSrc":"5845:4:22","nodeType":"YulIdentifier","src":"5845:4:22"}],"functionName":{"name":"and","nativeSrc":"5838:3:22","nodeType":"YulIdentifier","src":"5838:3:22"},"nativeSrc":"5838:12:22","nodeType":"YulFunctionCall","src":"5838:12:22"},{"name":"n","nativeSrc":"5852:1:22","nodeType":"YulIdentifier","src":"5852:1:22"}],"functionName":{"name":"mod","nativeSrc":"5834:3:22","nodeType":"YulIdentifier","src":"5834:3:22"},"nativeSrc":"5834:20:22","nodeType":"YulFunctionCall","src":"5834:20:22"}],"functionName":{"name":"shl","nativeSrc":"5827:3:22","nodeType":"YulIdentifier","src":"5827:3:22"},"nativeSrc":"5827:28:22","nodeType":"YulFunctionCall","src":"5827:28:22"}],"functionName":{"name":"add","nativeSrc":"5820:3:22","nodeType":"YulIdentifier","src":"5820:3:22"},"nativeSrc":"5820:36:22","nodeType":"YulFunctionCall","src":"5820:36:22"},"variables":[{"name":"j","nativeSrc":"5815:1:22","nodeType":"YulTypedName","src":"5815:1:22","type":""}]},{"nativeSrc":"5881:14:22","nodeType":"YulAssignment","src":"5881:14:22","value":{"arguments":[{"name":"n","nativeSrc":"5890:1:22","nodeType":"YulIdentifier","src":"5890:1:22"},{"name":"w","nativeSrc":"5893:1:22","nodeType":"YulIdentifier","src":"5893:1:22"}],"functionName":{"name":"add","nativeSrc":"5886:3:22","nodeType":"YulIdentifier","src":"5886:3:22"},"nativeSrc":"5886:9:22","nodeType":"YulFunctionCall","src":"5886:9:22"},"variableNames":[{"name":"n","nativeSrc":"5881:1:22","nodeType":"YulIdentifier","src":"5881:1:22"}]},{"body":{"nativeSrc":"5949:9:22","nodeType":"YulBlock","src":"5949:9:22","statements":[{"nativeSrc":"5951:5:22","nodeType":"YulBreak","src":"5951:5:22"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"5946:1:22","nodeType":"YulIdentifier","src":"5946:1:22"}],"functionName":{"name":"iszero","nativeSrc":"5939:6:22","nodeType":"YulIdentifier","src":"5939:6:22"},"nativeSrc":"5939:9:22","nodeType":"YulFunctionCall","src":"5939:9:22"},"nativeSrc":"5936:22:22","nodeType":"YulIf","src":"5936:22:22"},{"nativeSrc":"5984:26:22","nodeType":"YulVariableDeclaration","src":"5984:26:22","value":{"arguments":[{"name":"a","nativeSrc":"5997:1:22","nodeType":"YulIdentifier","src":"5997:1:22"},{"arguments":[{"kind":"number","nativeSrc":"6004:1:22","nodeType":"YulLiteral","src":"6004:1:22","type":"","value":"5"},{"name":"n","nativeSrc":"6007:1:22","nodeType":"YulIdentifier","src":"6007:1:22"}],"functionName":{"name":"shl","nativeSrc":"6000:3:22","nodeType":"YulIdentifier","src":"6000:3:22"},"nativeSrc":"6000:9:22","nodeType":"YulFunctionCall","src":"6000:9:22"}],"functionName":{"name":"add","nativeSrc":"5993:3:22","nodeType":"YulIdentifier","src":"5993:3:22"},"nativeSrc":"5993:17:22","nodeType":"YulFunctionCall","src":"5993:17:22"},"variables":[{"name":"i","nativeSrc":"5988:1:22","nodeType":"YulTypedName","src":"5988:1:22","type":""}]},{"nativeSrc":"6035:17:22","nodeType":"YulVariableDeclaration","src":"6035:17:22","value":{"arguments":[{"name":"i","nativeSrc":"6050:1:22","nodeType":"YulIdentifier","src":"6050:1:22"}],"functionName":{"name":"mload","nativeSrc":"6044:5:22","nodeType":"YulIdentifier","src":"6044:5:22"},"nativeSrc":"6044:8:22","nodeType":"YulFunctionCall","src":"6044:8:22"},"variables":[{"name":"t","nativeSrc":"6039:1:22","nodeType":"YulTypedName","src":"6039:1:22","type":""}]},{"expression":{"arguments":[{"name":"i","nativeSrc":"6084:1:22","nodeType":"YulIdentifier","src":"6084:1:22"},{"arguments":[{"name":"j","nativeSrc":"6093:1:22","nodeType":"YulIdentifier","src":"6093:1:22"}],"functionName":{"name":"mload","nativeSrc":"6087:5:22","nodeType":"YulIdentifier","src":"6087:5:22"},"nativeSrc":"6087:8:22","nodeType":"YulFunctionCall","src":"6087:8:22"}],"functionName":{"name":"mstore","nativeSrc":"6077:6:22","nodeType":"YulIdentifier","src":"6077:6:22"},"nativeSrc":"6077:19:22","nodeType":"YulFunctionCall","src":"6077:19:22"},"nativeSrc":"6077:19:22","nodeType":"YulExpressionStatement","src":"6077:19:22"},{"expression":{"arguments":[{"name":"j","nativeSrc":"6128:1:22","nodeType":"YulIdentifier","src":"6128:1:22"},{"name":"t","nativeSrc":"6131:1:22","nodeType":"YulIdentifier","src":"6131:1:22"}],"functionName":{"name":"mstore","nativeSrc":"6121:6:22","nodeType":"YulIdentifier","src":"6121:6:22"},"nativeSrc":"6121:12:22","nodeType":"YulFunctionCall","src":"6121:12:22"},"nativeSrc":"6121:12:22","nodeType":"YulExpressionStatement","src":"6121:12:22"}]}]},"condition":{"kind":"number","nativeSrc":"4872:1:22","nodeType":"YulLiteral","src":"4872:1:22","type":"","value":"1"},"nativeSrc":"4846:1327:22","nodeType":"YulForLoop","post":{"nativeSrc":"4874:2:22","nodeType":"YulBlock","src":"4874:2:22","statements":[]},"pre":{"nativeSrc":"4850:21:22","nodeType":"YulBlock","src":"4850:21:22","statements":[{"nativeSrc":"4852:17:22","nodeType":"YulAssignment","src":"4852:17:22","value":{"arguments":[{"name":"a","nativeSrc":"4861:1:22","nodeType":"YulIdentifier","src":"4861:1:22"},{"kind":"number","nativeSrc":"4864:4:22","nodeType":"YulLiteral","src":"4864:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4857:3:22","nodeType":"YulIdentifier","src":"4857:3:22"},"nativeSrc":"4857:12:22","nodeType":"YulFunctionCall","src":"4857:12:22"},"variableNames":[{"name":"a","nativeSrc":"4852:1:22","nodeType":"YulIdentifier","src":"4852:1:22"}]}]},"src":"4846:1327:22"}]},"condition":{"name":"n","nativeSrc":"4826:1:22","nodeType":"YulIdentifier","src":"4826:1:22"},"nativeSrc":"4823:1364:22","nodeType":"YulIf","src":"4823:1364:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4744:1:22","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4852:1:22","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"4861:1:22","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"5433:1:22","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"5605:1:22","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"5824:1:22","valueSize":1},{"declaration":10153,"isOffset":false,"isSlot":false,"src":"5997:1:22","valueSize":1},{"declaration":10150,"isOffset":false,"isSlot":false,"src":"5044:4:22","valueSize":1},{"declaration":10150,"isOffset":false,"isSlot":false,"src":"5083:4:22","valueSize":1}],"id":10156,"nodeType":"InlineAssembly","src":"4706:1491:22"}]},"documentation":{"id":10147,"nodeType":"StructuredDocumentation","src":"4516:63:22","text":"@dev Shuffles the array in-place with Fisher-Yates shuffle."},"id":10158,"implemented":true,"kind":"function","modifiers":[],"name":"shuffle","nameLocation":"4593:7:22","nodeType":"FunctionDefinition","parameters":{"id":10154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10150,"mutability":"mutable","name":"prng","nameLocation":"4613:4:22","nodeType":"VariableDeclaration","scope":10158,"src":"4601:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10149,"nodeType":"UserDefinedTypeName","pathNode":{"id":10148,"name":"PRNG","nameLocations":["4601:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"4601:4:22"},"referencedDeclaration":10107,"src":"4601:4:22","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10153,"mutability":"mutable","name":"a","nameLocation":"4636:1:22","nodeType":"VariableDeclaration","scope":10158,"src":"4619:18:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10151,"name":"uint256","nodeType":"ElementaryTypeName","src":"4619:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10152,"nodeType":"ArrayTypeName","src":"4619:9:22","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"4600:38:22"},"returnParameters":{"id":10155,"nodeType":"ParameterList","parameters":[],"src":"4653:0:22"},"scope":10293,"src":"4584:1619:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10168,"nodeType":"Block","src":"6342:1522:22","statements":[{"AST":{"nativeSrc":"6404:1454:22","nodeType":"YulBlock","src":"6404:1454:22","statements":[{"nativeSrc":"6418:17:22","nodeType":"YulVariableDeclaration","src":"6418:17:22","value":{"arguments":[{"name":"a","nativeSrc":"6433:1:22","nodeType":"YulIdentifier","src":"6433:1:22"}],"functionName":{"name":"mload","nativeSrc":"6427:5:22","nodeType":"YulIdentifier","src":"6427:5:22"},"nativeSrc":"6427:8:22","nodeType":"YulFunctionCall","src":"6427:8:22"},"variables":[{"name":"n","nativeSrc":"6422:1:22","nodeType":"YulTypedName","src":"6422:1:22","type":""}]},{"nativeSrc":"6448:15:22","nodeType":"YulVariableDeclaration","src":"6448:15:22","value":{"arguments":[{"kind":"number","nativeSrc":"6461:1:22","nodeType":"YulLiteral","src":"6461:1:22","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"6457:3:22","nodeType":"YulIdentifier","src":"6457:3:22"},"nativeSrc":"6457:6:22","nodeType":"YulFunctionCall","src":"6457:6:22"},"variables":[{"name":"w","nativeSrc":"6452:1:22","nodeType":"YulTypedName","src":"6452:1:22","type":""}]},{"nativeSrc":"6476:23:22","nodeType":"YulVariableDeclaration","src":"6476:23:22","value":{"arguments":[{"kind":"number","nativeSrc":"6492:3:22","nodeType":"YulLiteral","src":"6492:3:22","type":"","value":"128"},{"name":"w","nativeSrc":"6497:1:22","nodeType":"YulIdentifier","src":"6497:1:22"}],"functionName":{"name":"shr","nativeSrc":"6488:3:22","nodeType":"YulIdentifier","src":"6488:3:22"},"nativeSrc":"6488:11:22","nodeType":"YulFunctionCall","src":"6488:11:22"},"variables":[{"name":"mask","nativeSrc":"6480:4:22","nodeType":"YulTypedName","src":"6480:4:22","type":""}]},{"body":{"nativeSrc":"6517:1331:22","nodeType":"YulBlock","src":"6517:1331:22","statements":[{"nativeSrc":"6535:21:22","nodeType":"YulVariableDeclaration","src":"6535:21:22","value":{"arguments":[{"name":"a","nativeSrc":"6548:1:22","nodeType":"YulIdentifier","src":"6548:1:22"},{"kind":"number","nativeSrc":"6551:4:22","nodeType":"YulLiteral","src":"6551:4:22","type":"","value":"0x01"}],"functionName":{"name":"add","nativeSrc":"6544:3:22","nodeType":"YulIdentifier","src":"6544:3:22"},"nativeSrc":"6544:12:22","nodeType":"YulFunctionCall","src":"6544:12:22"},"variables":[{"name":"b","nativeSrc":"6539:1:22","nodeType":"YulTypedName","src":"6539:1:22","type":""}]},{"body":{"nativeSrc":"6604:1230:22","nodeType":"YulBlock","src":"6604:1230:22","statements":[{"nativeSrc":"6752:30:22","nodeType":"YulVariableDeclaration","src":"6752:30:22","value":{"arguments":[{"name":"prng","nativeSrc":"6771:4:22","nodeType":"YulIdentifier","src":"6771:4:22"},{"kind":"number","nativeSrc":"6777:4:22","nodeType":"YulLiteral","src":"6777:4:22","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"6761:9:22","nodeType":"YulIdentifier","src":"6761:9:22"},"nativeSrc":"6761:21:22","nodeType":"YulFunctionCall","src":"6761:21:22"},"variables":[{"name":"r","nativeSrc":"6756:1:22","nodeType":"YulTypedName","src":"6756:1:22","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"6810:4:22","nodeType":"YulIdentifier","src":"6810:4:22"},{"name":"r","nativeSrc":"6816:1:22","nodeType":"YulIdentifier","src":"6816:1:22"}],"functionName":{"name":"mstore","nativeSrc":"6803:6:22","nodeType":"YulIdentifier","src":"6803:6:22"},"nativeSrc":"6803:15:22","nodeType":"YulFunctionCall","src":"6803:15:22"},"nativeSrc":"6803:15:22","nodeType":"YulExpressionStatement","src":"6803:15:22"},{"nativeSrc":"7121:336:22","nodeType":"YulBlock","src":"7121:336:22","statements":[{"nativeSrc":"7147:28:22","nodeType":"YulVariableDeclaration","src":"7147:28:22","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7164:3:22","nodeType":"YulLiteral","src":"7164:3:22","type":"","value":"128"},{"name":"r","nativeSrc":"7169:1:22","nodeType":"YulIdentifier","src":"7169:1:22"}],"functionName":{"name":"shr","nativeSrc":"7160:3:22","nodeType":"YulIdentifier","src":"7160:3:22"},"nativeSrc":"7160:11:22","nodeType":"YulFunctionCall","src":"7160:11:22"},{"name":"n","nativeSrc":"7173:1:22","nodeType":"YulIdentifier","src":"7173:1:22"}],"functionName":{"name":"mod","nativeSrc":"7156:3:22","nodeType":"YulIdentifier","src":"7156:3:22"},"nativeSrc":"7156:19:22","nodeType":"YulFunctionCall","src":"7156:19:22"},"variables":[{"name":"o","nativeSrc":"7151:1:22","nodeType":"YulTypedName","src":"7151:1:22","type":""}]},{"nativeSrc":"7200:14:22","nodeType":"YulAssignment","src":"7200:14:22","value":{"arguments":[{"name":"n","nativeSrc":"7209:1:22","nodeType":"YulIdentifier","src":"7209:1:22"},{"name":"w","nativeSrc":"7212:1:22","nodeType":"YulIdentifier","src":"7212:1:22"}],"functionName":{"name":"add","nativeSrc":"7205:3:22","nodeType":"YulIdentifier","src":"7205:3:22"},"nativeSrc":"7205:9:22","nodeType":"YulFunctionCall","src":"7205:9:22"},"variableNames":[{"name":"n","nativeSrc":"7200:1:22","nodeType":"YulIdentifier","src":"7200:1:22"}]},{"body":{"nativeSrc":"7268:9:22","nodeType":"YulBlock","src":"7268:9:22","statements":[{"nativeSrc":"7270:5:22","nodeType":"YulBreak","src":"7270:5:22"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"7265:1:22","nodeType":"YulIdentifier","src":"7265:1:22"}],"functionName":{"name":"iszero","nativeSrc":"7258:6:22","nodeType":"YulIdentifier","src":"7258:6:22"},"nativeSrc":"7258:9:22","nodeType":"YulFunctionCall","src":"7258:9:22"},"nativeSrc":"7255:22:22","nodeType":"YulIf","src":"7255:22:22"},{"nativeSrc":"7303:25:22","nodeType":"YulVariableDeclaration","src":"7303:25:22","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7322:1:22","nodeType":"YulIdentifier","src":"7322:1:22"},{"name":"n","nativeSrc":"7325:1:22","nodeType":"YulIdentifier","src":"7325:1:22"}],"functionName":{"name":"add","nativeSrc":"7318:3:22","nodeType":"YulIdentifier","src":"7318:3:22"},"nativeSrc":"7318:9:22","nodeType":"YulFunctionCall","src":"7318:9:22"}],"functionName":{"name":"mload","nativeSrc":"7312:5:22","nodeType":"YulIdentifier","src":"7312:5:22"},"nativeSrc":"7312:16:22","nodeType":"YulFunctionCall","src":"7312:16:22"},"variables":[{"name":"t","nativeSrc":"7307:1:22","nodeType":"YulTypedName","src":"7307:1:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7365:1:22","nodeType":"YulIdentifier","src":"7365:1:22"},{"name":"n","nativeSrc":"7368:1:22","nodeType":"YulIdentifier","src":"7368:1:22"}],"functionName":{"name":"add","nativeSrc":"7361:3:22","nodeType":"YulIdentifier","src":"7361:3:22"},"nativeSrc":"7361:9:22","nodeType":"YulFunctionCall","src":"7361:9:22"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7382:1:22","nodeType":"YulIdentifier","src":"7382:1:22"},{"name":"o","nativeSrc":"7385:1:22","nodeType":"YulIdentifier","src":"7385:1:22"}],"functionName":{"name":"add","nativeSrc":"7378:3:22","nodeType":"YulIdentifier","src":"7378:3:22"},"nativeSrc":"7378:9:22","nodeType":"YulFunctionCall","src":"7378:9:22"}],"functionName":{"name":"mload","nativeSrc":"7372:5:22","nodeType":"YulIdentifier","src":"7372:5:22"},"nativeSrc":"7372:16:22","nodeType":"YulFunctionCall","src":"7372:16:22"}],"functionName":{"name":"mstore8","nativeSrc":"7353:7:22","nodeType":"YulIdentifier","src":"7353:7:22"},"nativeSrc":"7353:36:22","nodeType":"YulFunctionCall","src":"7353:36:22"},"nativeSrc":"7353:36:22","nodeType":"YulExpressionStatement","src":"7353:36:22"},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7426:1:22","nodeType":"YulIdentifier","src":"7426:1:22"},{"name":"o","nativeSrc":"7429:1:22","nodeType":"YulIdentifier","src":"7429:1:22"}],"functionName":{"name":"add","nativeSrc":"7422:3:22","nodeType":"YulIdentifier","src":"7422:3:22"},"nativeSrc":"7422:9:22","nodeType":"YulFunctionCall","src":"7422:9:22"},{"name":"t","nativeSrc":"7433:1:22","nodeType":"YulIdentifier","src":"7433:1:22"}],"functionName":{"name":"mstore8","nativeSrc":"7414:7:22","nodeType":"YulIdentifier","src":"7414:7:22"},"nativeSrc":"7414:21:22","nodeType":"YulFunctionCall","src":"7414:21:22"},"nativeSrc":"7414:21:22","nodeType":"YulExpressionStatement","src":"7414:21:22"}]},{"nativeSrc":"7479:337:22","nodeType":"YulBlock","src":"7479:337:22","statements":[{"nativeSrc":"7505:29:22","nodeType":"YulVariableDeclaration","src":"7505:29:22","value":{"arguments":[{"arguments":[{"name":"r","nativeSrc":"7522:1:22","nodeType":"YulIdentifier","src":"7522:1:22"},{"name":"mask","nativeSrc":"7525:4:22","nodeType":"YulIdentifier","src":"7525:4:22"}],"functionName":{"name":"and","nativeSrc":"7518:3:22","nodeType":"YulIdentifier","src":"7518:3:22"},"nativeSrc":"7518:12:22","nodeType":"YulFunctionCall","src":"7518:12:22"},{"name":"n","nativeSrc":"7532:1:22","nodeType":"YulIdentifier","src":"7532:1:22"}],"functionName":{"name":"mod","nativeSrc":"7514:3:22","nodeType":"YulIdentifier","src":"7514:3:22"},"nativeSrc":"7514:20:22","nodeType":"YulFunctionCall","src":"7514:20:22"},"variables":[{"name":"o","nativeSrc":"7509:1:22","nodeType":"YulTypedName","src":"7509:1:22","type":""}]},{"nativeSrc":"7559:14:22","nodeType":"YulAssignment","src":"7559:14:22","value":{"arguments":[{"name":"n","nativeSrc":"7568:1:22","nodeType":"YulIdentifier","src":"7568:1:22"},{"name":"w","nativeSrc":"7571:1:22","nodeType":"YulIdentifier","src":"7571:1:22"}],"functionName":{"name":"add","nativeSrc":"7564:3:22","nodeType":"YulIdentifier","src":"7564:3:22"},"nativeSrc":"7564:9:22","nodeType":"YulFunctionCall","src":"7564:9:22"},"variableNames":[{"name":"n","nativeSrc":"7559:1:22","nodeType":"YulIdentifier","src":"7559:1:22"}]},{"body":{"nativeSrc":"7627:9:22","nodeType":"YulBlock","src":"7627:9:22","statements":[{"nativeSrc":"7629:5:22","nodeType":"YulBreak","src":"7629:5:22"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"7624:1:22","nodeType":"YulIdentifier","src":"7624:1:22"}],"functionName":{"name":"iszero","nativeSrc":"7617:6:22","nodeType":"YulIdentifier","src":"7617:6:22"},"nativeSrc":"7617:9:22","nodeType":"YulFunctionCall","src":"7617:9:22"},"nativeSrc":"7614:22:22","nodeType":"YulIf","src":"7614:22:22"},{"nativeSrc":"7662:25:22","nodeType":"YulVariableDeclaration","src":"7662:25:22","value":{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7681:1:22","nodeType":"YulIdentifier","src":"7681:1:22"},{"name":"n","nativeSrc":"7684:1:22","nodeType":"YulIdentifier","src":"7684:1:22"}],"functionName":{"name":"add","nativeSrc":"7677:3:22","nodeType":"YulIdentifier","src":"7677:3:22"},"nativeSrc":"7677:9:22","nodeType":"YulFunctionCall","src":"7677:9:22"}],"functionName":{"name":"mload","nativeSrc":"7671:5:22","nodeType":"YulIdentifier","src":"7671:5:22"},"nativeSrc":"7671:16:22","nodeType":"YulFunctionCall","src":"7671:16:22"},"variables":[{"name":"t","nativeSrc":"7666:1:22","nodeType":"YulTypedName","src":"7666:1:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7724:1:22","nodeType":"YulIdentifier","src":"7724:1:22"},{"name":"n","nativeSrc":"7727:1:22","nodeType":"YulIdentifier","src":"7727:1:22"}],"functionName":{"name":"add","nativeSrc":"7720:3:22","nodeType":"YulIdentifier","src":"7720:3:22"},"nativeSrc":"7720:9:22","nodeType":"YulFunctionCall","src":"7720:9:22"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"7741:1:22","nodeType":"YulIdentifier","src":"7741:1:22"},{"name":"o","nativeSrc":"7744:1:22","nodeType":"YulIdentifier","src":"7744:1:22"}],"functionName":{"name":"add","nativeSrc":"7737:3:22","nodeType":"YulIdentifier","src":"7737:3:22"},"nativeSrc":"7737:9:22","nodeType":"YulFunctionCall","src":"7737:9:22"}],"functionName":{"name":"mload","nativeSrc":"7731:5:22","nodeType":"YulIdentifier","src":"7731:5:22"},"nativeSrc":"7731:16:22","nodeType":"YulFunctionCall","src":"7731:16:22"}],"functionName":{"name":"mstore8","nativeSrc":"7712:7:22","nodeType":"YulIdentifier","src":"7712:7:22"},"nativeSrc":"7712:36:22","nodeType":"YulFunctionCall","src":"7712:36:22"},"nativeSrc":"7712:36:22","nodeType":"YulExpressionStatement","src":"7712:36:22"},{"expression":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"7785:1:22","nodeType":"YulIdentifier","src":"7785:1:22"},{"name":"o","nativeSrc":"7788:1:22","nodeType":"YulIdentifier","src":"7788:1:22"}],"functionName":{"name":"add","nativeSrc":"7781:3:22","nodeType":"YulIdentifier","src":"7781:3:22"},"nativeSrc":"7781:9:22","nodeType":"YulFunctionCall","src":"7781:9:22"},{"name":"t","nativeSrc":"7792:1:22","nodeType":"YulIdentifier","src":"7792:1:22"}],"functionName":{"name":"mstore8","nativeSrc":"7773:7:22","nodeType":"YulIdentifier","src":"7773:7:22"},"nativeSrc":"7773:21:22","nodeType":"YulFunctionCall","src":"7773:21:22"},"nativeSrc":"7773:21:22","nodeType":"YulExpressionStatement","src":"7773:21:22"}]}]},"condition":{"kind":"number","nativeSrc":"6599:1:22","nodeType":"YulLiteral","src":"6599:1:22","type":"","value":"1"},"nativeSrc":"6573:1261:22","nodeType":"YulForLoop","post":{"nativeSrc":"6601:2:22","nodeType":"YulBlock","src":"6601:2:22","statements":[]},"pre":{"nativeSrc":"6577:21:22","nodeType":"YulBlock","src":"6577:21:22","statements":[{"nativeSrc":"6579:17:22","nodeType":"YulAssignment","src":"6579:17:22","value":{"arguments":[{"name":"a","nativeSrc":"6588:1:22","nodeType":"YulIdentifier","src":"6588:1:22"},{"kind":"number","nativeSrc":"6591:4:22","nodeType":"YulLiteral","src":"6591:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6584:3:22","nodeType":"YulIdentifier","src":"6584:3:22"},"nativeSrc":"6584:12:22","nodeType":"YulFunctionCall","src":"6584:12:22"},"variableNames":[{"name":"a","nativeSrc":"6579:1:22","nodeType":"YulIdentifier","src":"6579:1:22"}]}]},"src":"6573:1261:22"}]},"condition":{"name":"n","nativeSrc":"6515:1:22","nodeType":"YulIdentifier","src":"6515:1:22"},"nativeSrc":"6512:1336:22","nodeType":"YulIf","src":"6512:1336:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10164,"isOffset":false,"isSlot":false,"src":"6433:1:22","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"6548:1:22","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"6579:1:22","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"6588:1:22","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"7365:1:22","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"7426:1:22","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"7724:1:22","valueSize":1},{"declaration":10164,"isOffset":false,"isSlot":false,"src":"7785:1:22","valueSize":1},{"declaration":10162,"isOffset":false,"isSlot":false,"src":"6771:4:22","valueSize":1},{"declaration":10162,"isOffset":false,"isSlot":false,"src":"6810:4:22","valueSize":1}],"id":10167,"nodeType":"InlineAssembly","src":"6395:1463:22"}]},"documentation":{"id":10159,"nodeType":"StructuredDocumentation","src":"6209:63:22","text":"@dev Shuffles the bytes in-place with Fisher-Yates shuffle."},"id":10169,"implemented":true,"kind":"function","modifiers":[],"name":"shuffle","nameLocation":"6286:7:22","nodeType":"FunctionDefinition","parameters":{"id":10165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10162,"mutability":"mutable","name":"prng","nameLocation":"6306:4:22","nodeType":"VariableDeclaration","scope":10169,"src":"6294:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10161,"nodeType":"UserDefinedTypeName","pathNode":{"id":10160,"name":"PRNG","nameLocations":["6294:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"6294:4:22"},"referencedDeclaration":10107,"src":"6294:4:22","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"},{"constant":false,"id":10164,"mutability":"mutable","name":"a","nameLocation":"6325:1:22","nodeType":"VariableDeclaration","scope":10169,"src":"6312:14:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10163,"name":"bytes","nodeType":"ElementaryTypeName","src":"6312:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6293:34:22"},"returnParameters":{"id":10166,"nodeType":"ParameterList","parameters":[],"src":"6342:0:22"},"scope":10293,"src":"6277:1587:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10179,"nodeType":"Block","src":"8043:1335:22","statements":[{"AST":{"nativeSrc":"8105:1267:22","nodeType":"YulBlock","src":"8105:1267:22","statements":[{"nativeSrc":"8488:31:22","nodeType":"YulAssignment","src":"8488:31:22","value":{"arguments":[{"name":"prng","nativeSrc":"8508:4:22","nodeType":"YulIdentifier","src":"8508:4:22"},{"kind":"number","nativeSrc":"8514:4:22","nodeType":"YulLiteral","src":"8514:4:22","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"8498:9:22","nodeType":"YulIdentifier","src":"8498:9:22"},"nativeSrc":"8498:21:22","nodeType":"YulFunctionCall","src":"8498:21:22"},"variableNames":[{"name":"result","nativeSrc":"8488:6:22","nodeType":"YulIdentifier","src":"8488:6:22"}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"8539:4:22","nodeType":"YulIdentifier","src":"8539:4:22"},{"name":"result","nativeSrc":"8545:6:22","nodeType":"YulIdentifier","src":"8545:6:22"}],"functionName":{"name":"mstore","nativeSrc":"8532:6:22","nodeType":"YulIdentifier","src":"8532:6:22"},"nativeSrc":"8532:20:22","nodeType":"YulFunctionCall","src":"8532:20:22"},"nativeSrc":"8532:20:22","nodeType":"YulExpressionStatement","src":"8532:20:22"},{"nativeSrc":"8565:75:22","nodeType":"YulVariableDeclaration","src":"8565:75:22","value":{"kind":"number","nativeSrc":"8574:66:22","nodeType":"YulLiteral","src":"8574:66:22","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43"},"variables":[{"name":"n","nativeSrc":"8569:1:22","nodeType":"YulTypedName","src":"8569:1:22","type":""}]},{"nativeSrc":"8663:44:22","nodeType":"YulVariableDeclaration","src":"8663:44:22","value":{"kind":"number","nativeSrc":"8672:35:22","nodeType":"YulLiteral","src":"8672:35:22","type":"","value":"0x100000000000000000000000000000051"},"variables":[{"name":"a","nativeSrc":"8667:1:22","nodeType":"YulTypedName","src":"8667:1:22","type":""}]},{"nativeSrc":"8758:75:22","nodeType":"YulVariableDeclaration","src":"8758:75:22","value":{"kind":"number","nativeSrc":"8767:66:22","nodeType":"YulLiteral","src":"8767:66:22","type":"","value":"0x1fffffffffffffff1fffffffffffffff1fffffffffffffff1fffffffffffffff"},"variables":[{"name":"m","nativeSrc":"8762:1:22","nodeType":"YulTypedName","src":"8762:1:22","type":""}]},{"nativeSrc":"8846:60:22","nodeType":"YulVariableDeclaration","src":"8846:60:22","value":{"kind":"number","nativeSrc":"8855:51:22","nodeType":"YulLiteral","src":"8855:51:22","type":"","value":"0x1000000000000000100000000000000010000000000000001"},"variables":[{"name":"s","nativeSrc":"8850:1:22","nodeType":"YulTypedName","src":"8850:1:22","type":""}]},{"nativeSrc":"8919:30:22","nodeType":"YulVariableDeclaration","src":"8919:30:22","value":{"arguments":[{"name":"result","nativeSrc":"8936:6:22","nodeType":"YulIdentifier","src":"8936:6:22"},{"name":"a","nativeSrc":"8944:1:22","nodeType":"YulIdentifier","src":"8944:1:22"},{"name":"n","nativeSrc":"8947:1:22","nodeType":"YulIdentifier","src":"8947:1:22"}],"functionName":{"name":"mulmod","nativeSrc":"8929:6:22","nodeType":"YulIdentifier","src":"8929:6:22"},"nativeSrc":"8929:20:22","nodeType":"YulFunctionCall","src":"8929:20:22"},"variables":[{"name":"r1","nativeSrc":"8923:2:22","nodeType":"YulTypedName","src":"8923:2:22","type":""}]},{"nativeSrc":"8962:26:22","nodeType":"YulVariableDeclaration","src":"8962:26:22","value":{"arguments":[{"name":"r1","nativeSrc":"8979:2:22","nodeType":"YulIdentifier","src":"8979:2:22"},{"name":"a","nativeSrc":"8983:1:22","nodeType":"YulIdentifier","src":"8983:1:22"},{"name":"n","nativeSrc":"8986:1:22","nodeType":"YulIdentifier","src":"8986:1:22"}],"functionName":{"name":"mulmod","nativeSrc":"8972:6:22","nodeType":"YulIdentifier","src":"8972:6:22"},"nativeSrc":"8972:16:22","nodeType":"YulFunctionCall","src":"8972:16:22"},"variables":[{"name":"r2","nativeSrc":"8966:2:22","nodeType":"YulTypedName","src":"8966:2:22","type":""}]},{"nativeSrc":"9001:26:22","nodeType":"YulVariableDeclaration","src":"9001:26:22","value":{"arguments":[{"name":"r2","nativeSrc":"9018:2:22","nodeType":"YulIdentifier","src":"9018:2:22"},{"name":"a","nativeSrc":"9022:1:22","nodeType":"YulIdentifier","src":"9022:1:22"},{"name":"n","nativeSrc":"9025:1:22","nodeType":"YulIdentifier","src":"9025:1:22"}],"functionName":{"name":"mulmod","nativeSrc":"9011:6:22","nodeType":"YulIdentifier","src":"9011:6:22"},"nativeSrc":"9011:16:22","nodeType":"YulFunctionCall","src":"9011:16:22"},"variables":[{"name":"r3","nativeSrc":"9005:2:22","nodeType":"YulTypedName","src":"9005:2:22","type":""}]},{"nativeSrc":"9083:279:22","nodeType":"YulAssignment","src":"9083:279:22","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9101:2:22","nodeType":"YulLiteral","src":"9101:2:22","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"9109:29:22","nodeType":"YulLiteral","src":"9109:29:22","type":"","value":"26614938895861601847173011183"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9168:3:22","nodeType":"YulLiteral","src":"9168:3:22","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9177:1:22","nodeType":"YulIdentifier","src":"9177:1:22"},{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9188:1:22","nodeType":"YulIdentifier","src":"9188:1:22"},{"name":"result","nativeSrc":"9191:6:22","nodeType":"YulIdentifier","src":"9191:6:22"}],"functionName":{"name":"and","nativeSrc":"9184:3:22","nodeType":"YulIdentifier","src":"9184:3:22"},"nativeSrc":"9184:14:22","nodeType":"YulFunctionCall","src":"9184:14:22"},{"arguments":[{"name":"m","nativeSrc":"9204:1:22","nodeType":"YulIdentifier","src":"9204:1:22"},{"name":"r1","nativeSrc":"9207:2:22","nodeType":"YulIdentifier","src":"9207:2:22"}],"functionName":{"name":"and","nativeSrc":"9200:3:22","nodeType":"YulIdentifier","src":"9200:3:22"},"nativeSrc":"9200:10:22","nodeType":"YulFunctionCall","src":"9200:10:22"}],"functionName":{"name":"add","nativeSrc":"9180:3:22","nodeType":"YulIdentifier","src":"9180:3:22"},"nativeSrc":"9180:31:22","nodeType":"YulFunctionCall","src":"9180:31:22"}],"functionName":{"name":"mul","nativeSrc":"9173:3:22","nodeType":"YulIdentifier","src":"9173:3:22"},"nativeSrc":"9173:39:22","nodeType":"YulFunctionCall","src":"9173:39:22"}],"functionName":{"name":"shr","nativeSrc":"9164:3:22","nodeType":"YulIdentifier","src":"9164:3:22"},"nativeSrc":"9164:49:22","nodeType":"YulFunctionCall","src":"9164:49:22"},{"arguments":[{"kind":"number","nativeSrc":"9235:3:22","nodeType":"YulLiteral","src":"9235:3:22","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9244:1:22","nodeType":"YulIdentifier","src":"9244:1:22"},{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9255:1:22","nodeType":"YulIdentifier","src":"9255:1:22"},{"name":"r2","nativeSrc":"9258:2:22","nodeType":"YulIdentifier","src":"9258:2:22"}],"functionName":{"name":"and","nativeSrc":"9251:3:22","nodeType":"YulIdentifier","src":"9251:3:22"},"nativeSrc":"9251:10:22","nodeType":"YulFunctionCall","src":"9251:10:22"},{"arguments":[{"name":"m","nativeSrc":"9267:1:22","nodeType":"YulIdentifier","src":"9267:1:22"},{"name":"r3","nativeSrc":"9270:2:22","nodeType":"YulIdentifier","src":"9270:2:22"}],"functionName":{"name":"and","nativeSrc":"9263:3:22","nodeType":"YulIdentifier","src":"9263:3:22"},"nativeSrc":"9263:10:22","nodeType":"YulFunctionCall","src":"9263:10:22"}],"functionName":{"name":"add","nativeSrc":"9247:3:22","nodeType":"YulIdentifier","src":"9247:3:22"},"nativeSrc":"9247:27:22","nodeType":"YulFunctionCall","src":"9247:27:22"}],"functionName":{"name":"mul","nativeSrc":"9240:3:22","nodeType":"YulIdentifier","src":"9240:3:22"},"nativeSrc":"9240:35:22","nodeType":"YulFunctionCall","src":"9240:35:22"}],"functionName":{"name":"shr","nativeSrc":"9231:3:22","nodeType":"YulIdentifier","src":"9231:3:22"},"nativeSrc":"9231:45:22","nodeType":"YulFunctionCall","src":"9231:45:22"}],"functionName":{"name":"add","nativeSrc":"9160:3:22","nodeType":"YulIdentifier","src":"9160:3:22"},"nativeSrc":"9160:117:22","nodeType":"YulFunctionCall","src":"9160:117:22"},{"arguments":[{"kind":"number","nativeSrc":"9299:3:22","nodeType":"YulLiteral","src":"9299:3:22","type":"","value":"192"},{"arguments":[{"name":"s","nativeSrc":"9308:1:22","nodeType":"YulIdentifier","src":"9308:1:22"},{"arguments":[{"name":"m","nativeSrc":"9315:1:22","nodeType":"YulIdentifier","src":"9315:1:22"},{"arguments":[{"name":"r3","nativeSrc":"9325:2:22","nodeType":"YulIdentifier","src":"9325:2:22"},{"name":"a","nativeSrc":"9329:1:22","nodeType":"YulIdentifier","src":"9329:1:22"},{"name":"n","nativeSrc":"9332:1:22","nodeType":"YulIdentifier","src":"9332:1:22"}],"functionName":{"name":"mulmod","nativeSrc":"9318:6:22","nodeType":"YulIdentifier","src":"9318:6:22"},"nativeSrc":"9318:16:22","nodeType":"YulFunctionCall","src":"9318:16:22"}],"functionName":{"name":"and","nativeSrc":"9311:3:22","nodeType":"YulIdentifier","src":"9311:3:22"},"nativeSrc":"9311:24:22","nodeType":"YulFunctionCall","src":"9311:24:22"}],"functionName":{"name":"mul","nativeSrc":"9304:3:22","nodeType":"YulIdentifier","src":"9304:3:22"},"nativeSrc":"9304:32:22","nodeType":"YulFunctionCall","src":"9304:32:22"}],"functionName":{"name":"shr","nativeSrc":"9295:3:22","nodeType":"YulIdentifier","src":"9295:3:22"},"nativeSrc":"9295:42:22","nodeType":"YulFunctionCall","src":"9295:42:22"}],"functionName":{"name":"add","nativeSrc":"9156:3:22","nodeType":"YulIdentifier","src":"9156:3:22"},"nativeSrc":"9156:182:22","nodeType":"YulFunctionCall","src":"9156:182:22"}],"functionName":{"name":"mul","nativeSrc":"9105:3:22","nodeType":"YulIdentifier","src":"9105:3:22"},"nativeSrc":"9105:234:22","nodeType":"YulFunctionCall","src":"9105:234:22"}],"functionName":{"name":"sar","nativeSrc":"9097:3:22","nodeType":"YulIdentifier","src":"9097:3:22"},"nativeSrc":"9097:243:22","nodeType":"YulFunctionCall","src":"9097:243:22"},{"kind":"number","nativeSrc":"9342:19:22","nodeType":"YulLiteral","src":"9342:19:22","type":"","value":"7745966692414833770"}],"functionName":{"name":"sub","nativeSrc":"9093:3:22","nodeType":"YulIdentifier","src":"9093:3:22"},"nativeSrc":"9093:269:22","nodeType":"YulFunctionCall","src":"9093:269:22"},"variableNames":[{"name":"result","nativeSrc":"9083:6:22","nodeType":"YulIdentifier","src":"9083:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10173,"isOffset":false,"isSlot":false,"src":"8508:4:22","valueSize":1},{"declaration":10173,"isOffset":false,"isSlot":false,"src":"8539:4:22","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"8488:6:22","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"8545:6:22","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"8936:6:22","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"9083:6:22","valueSize":1},{"declaration":10176,"isOffset":false,"isSlot":false,"src":"9191:6:22","valueSize":1}],"id":10178,"nodeType":"InlineAssembly","src":"8096:1276:22"}]},"documentation":{"id":10170,"nodeType":"StructuredDocumentation","src":"7870:85:22","text":"@dev Returns a sample from the standard normal distribution denominated in `WAD`."},"id":10180,"implemented":true,"kind":"function","modifiers":[],"name":"standardNormalWad","nameLocation":"7969:17:22","nodeType":"FunctionDefinition","parameters":{"id":10174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10173,"mutability":"mutable","name":"prng","nameLocation":"7999:4:22","nodeType":"VariableDeclaration","scope":10180,"src":"7987:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10172,"nodeType":"UserDefinedTypeName","pathNode":{"id":10171,"name":"PRNG","nameLocations":["7987:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"7987:4:22"},"referencedDeclaration":10107,"src":"7987:4:22","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"7986:18:22"},"returnParameters":{"id":10177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10176,"mutability":"mutable","name":"result","nameLocation":"8035:6:22","nodeType":"VariableDeclaration","scope":10180,"src":"8028:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10175,"name":"int256","nodeType":"ElementaryTypeName","src":"8028:6:22","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8027:15:22"},"scope":10293,"src":"7960:1418:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10190,"nodeType":"Block","src":"9556:1206:22","statements":[{"AST":{"nativeSrc":"9618:1138:22","nodeType":"YulBlock","src":"9618:1138:22","statements":[{"nativeSrc":"9763:30:22","nodeType":"YulVariableDeclaration","src":"9763:30:22","value":{"arguments":[{"name":"prng","nativeSrc":"9782:4:22","nodeType":"YulIdentifier","src":"9782:4:22"},{"kind":"number","nativeSrc":"9788:4:22","nodeType":"YulLiteral","src":"9788:4:22","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"9772:9:22","nodeType":"YulIdentifier","src":"9772:9:22"},"nativeSrc":"9772:21:22","nodeType":"YulFunctionCall","src":"9772:21:22"},"variables":[{"name":"r","nativeSrc":"9767:1:22","nodeType":"YulTypedName","src":"9767:1:22","type":""}]},{"expression":{"arguments":[{"name":"prng","nativeSrc":"9813:4:22","nodeType":"YulIdentifier","src":"9813:4:22"},{"name":"r","nativeSrc":"9819:1:22","nodeType":"YulIdentifier","src":"9819:1:22"}],"functionName":{"name":"mstore","nativeSrc":"9806:6:22","nodeType":"YulIdentifier","src":"9806:6:22"},"nativeSrc":"9806:15:22","nodeType":"YulFunctionCall","src":"9806:15:22"},"nativeSrc":"9806:15:22","nodeType":"YulExpressionStatement","src":"9806:15:22"},{"nativeSrc":"9834:20:22","nodeType":"YulVariableDeclaration","src":"9834:20:22","value":{"arguments":[{"kind":"number","nativeSrc":"9847:3:22","nodeType":"YulLiteral","src":"9847:3:22","type":"","value":"129"},{"name":"r","nativeSrc":"9852:1:22","nodeType":"YulIdentifier","src":"9852:1:22"}],"functionName":{"name":"shl","nativeSrc":"9843:3:22","nodeType":"YulIdentifier","src":"9843:3:22"},"nativeSrc":"9843:11:22","nodeType":"YulFunctionCall","src":"9843:11:22"},"variables":[{"name":"p","nativeSrc":"9838:1:22","nodeType":"YulTypedName","src":"9838:1:22","type":""}]},{"nativeSrc":"9867:18:22","nodeType":"YulVariableDeclaration","src":"9867:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"9880:1:22","nodeType":"YulLiteral","src":"9880:1:22","type":"","value":"1"},{"name":"r","nativeSrc":"9883:1:22","nodeType":"YulIdentifier","src":"9883:1:22"}],"functionName":{"name":"shl","nativeSrc":"9876:3:22","nodeType":"YulIdentifier","src":"9876:3:22"},"nativeSrc":"9876:9:22","nodeType":"YulFunctionCall","src":"9876:9:22"},"variables":[{"name":"w","nativeSrc":"9871:1:22","nodeType":"YulTypedName","src":"9871:1:22","type":""}]},{"body":{"nativeSrc":"9918:753:22","nodeType":"YulBlock","src":"9918:753:22","statements":[{"nativeSrc":"9936:75:22","nodeType":"YulVariableDeclaration","src":"9936:75:22","value":{"kind":"number","nativeSrc":"9945:66:22","nodeType":"YulLiteral","src":"9945:66:22","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43"},"variables":[{"name":"n","nativeSrc":"9940:1:22","nodeType":"YulTypedName","src":"9940:1:22","type":""}]},{"nativeSrc":"10038:44:22","nodeType":"YulVariableDeclaration","src":"10038:44:22","value":{"kind":"number","nativeSrc":"10047:35:22","nodeType":"YulLiteral","src":"10047:35:22","type":"","value":"0x100000000000000000000000000000051"},"variables":[{"name":"a","nativeSrc":"10042:1:22","nodeType":"YulTypedName","src":"10042:1:22","type":""}]},{"body":{"nativeSrc":"10149:508:22","nodeType":"YulBlock","src":"10149:508:22","statements":[{"nativeSrc":"10171:20:22","nodeType":"YulAssignment","src":"10171:20:22","value":{"arguments":[{"name":"r","nativeSrc":"10183:1:22","nodeType":"YulIdentifier","src":"10183:1:22"},{"name":"a","nativeSrc":"10186:1:22","nodeType":"YulIdentifier","src":"10186:1:22"},{"name":"n","nativeSrc":"10189:1:22","nodeType":"YulIdentifier","src":"10189:1:22"}],"functionName":{"name":"mulmod","nativeSrc":"10176:6:22","nodeType":"YulIdentifier","src":"10176:6:22"},"nativeSrc":"10176:15:22","nodeType":"YulFunctionCall","src":"10176:15:22"},"variableNames":[{"name":"r","nativeSrc":"10171:1:22","nodeType":"YulIdentifier","src":"10171:1:22"}]},{"body":{"nativeSrc":"10242:302:22","nodeType":"YulBlock","src":"10242:302:22","statements":[{"nativeSrc":"10268:20:22","nodeType":"YulAssignment","src":"10268:20:22","value":{"arguments":[{"name":"r","nativeSrc":"10280:1:22","nodeType":"YulIdentifier","src":"10280:1:22"},{"name":"a","nativeSrc":"10283:1:22","nodeType":"YulIdentifier","src":"10283:1:22"},{"name":"n","nativeSrc":"10286:1:22","nodeType":"YulIdentifier","src":"10286:1:22"}],"functionName":{"name":"mulmod","nativeSrc":"10273:6:22","nodeType":"YulIdentifier","src":"10273:6:22"},"nativeSrc":"10273:15:22","nodeType":"YulFunctionCall","src":"10273:15:22"},"variableNames":[{"name":"r","nativeSrc":"10268:1:22","nodeType":"YulIdentifier","src":"10268:1:22"}]},{"nativeSrc":"10313:42:22","nodeType":"YulAssignment","src":"10313:42:22","value":{"arguments":[{"kind":"number","nativeSrc":"10327:19:22","nodeType":"YulLiteral","src":"10327:19:22","type":"","value":"1000000000000000000"},{"name":"result","nativeSrc":"10348:6:22","nodeType":"YulIdentifier","src":"10348:6:22"}],"functionName":{"name":"add","nativeSrc":"10323:3:22","nodeType":"YulIdentifier","src":"10323:3:22"},"nativeSrc":"10323:32:22","nodeType":"YulFunctionCall","src":"10323:32:22"},"variableNames":[{"name":"result","nativeSrc":"10313:6:22","nodeType":"YulIdentifier","src":"10313:6:22"}]},{"nativeSrc":"10380:14:22","nodeType":"YulAssignment","src":"10380:14:22","value":{"arguments":[{"kind":"number","nativeSrc":"10389:1:22","nodeType":"YulLiteral","src":"10389:1:22","type":"","value":"1"},{"name":"r","nativeSrc":"10392:1:22","nodeType":"YulIdentifier","src":"10392:1:22"}],"functionName":{"name":"shl","nativeSrc":"10385:3:22","nodeType":"YulIdentifier","src":"10385:3:22"},"nativeSrc":"10385:9:22","nodeType":"YulFunctionCall","src":"10385:9:22"},"variableNames":[{"name":"w","nativeSrc":"10380:1:22","nodeType":"YulIdentifier","src":"10380:1:22"}]},{"nativeSrc":"10419:16:22","nodeType":"YulAssignment","src":"10419:16:22","value":{"arguments":[{"kind":"number","nativeSrc":"10428:3:22","nodeType":"YulLiteral","src":"10428:3:22","type":"","value":"129"},{"name":"r","nativeSrc":"10433:1:22","nodeType":"YulIdentifier","src":"10433:1:22"}],"functionName":{"name":"shl","nativeSrc":"10424:3:22","nodeType":"YulIdentifier","src":"10424:3:22"},"nativeSrc":"10424:11:22","nodeType":"YulFunctionCall","src":"10424:11:22"},"variableNames":[{"name":"p","nativeSrc":"10419:1:22","nodeType":"YulIdentifier","src":"10419:1:22"}]},{"body":{"nativeSrc":"10480:9:22","nodeType":"YulBlock","src":"10480:9:22","statements":[{"nativeSrc":"10482:5:22","nodeType":"YulBreak","src":"10482:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"10473:1:22","nodeType":"YulIdentifier","src":"10473:1:22"},{"name":"p","nativeSrc":"10476:1:22","nodeType":"YulIdentifier","src":"10476:1:22"}],"functionName":{"name":"lt","nativeSrc":"10470:2:22","nodeType":"YulIdentifier","src":"10470:2:22"},"nativeSrc":"10470:8:22","nodeType":"YulFunctionCall","src":"10470:8:22"}],"functionName":{"name":"iszero","nativeSrc":"10463:6:22","nodeType":"YulIdentifier","src":"10463:6:22"},"nativeSrc":"10463:16:22","nodeType":"YulFunctionCall","src":"10463:16:22"},"nativeSrc":"10460:29:22","nodeType":"YulIf","src":"10460:29:22"},{"nativeSrc":"10514:8:22","nodeType":"YulContinue","src":"10514:8:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10229:3:22","nodeType":"YulLiteral","src":"10229:3:22","type":"","value":"129"},{"name":"r","nativeSrc":"10234:1:22","nodeType":"YulIdentifier","src":"10234:1:22"}],"functionName":{"name":"shl","nativeSrc":"10225:3:22","nodeType":"YulIdentifier","src":"10225:3:22"},"nativeSrc":"10225:11:22","nodeType":"YulFunctionCall","src":"10225:11:22"},{"name":"w","nativeSrc":"10238:1:22","nodeType":"YulIdentifier","src":"10238:1:22"}],"functionName":{"name":"lt","nativeSrc":"10222:2:22","nodeType":"YulIdentifier","src":"10222:2:22"},"nativeSrc":"10222:18:22","nodeType":"YulFunctionCall","src":"10222:18:22"}],"functionName":{"name":"iszero","nativeSrc":"10215:6:22","nodeType":"YulIdentifier","src":"10215:6:22"},"nativeSrc":"10215:26:22","nodeType":"YulFunctionCall","src":"10215:26:22"},"nativeSrc":"10212:332:22","nodeType":"YulIf","src":"10212:332:22"},{"nativeSrc":"10565:14:22","nodeType":"YulAssignment","src":"10565:14:22","value":{"arguments":[{"kind":"number","nativeSrc":"10574:1:22","nodeType":"YulLiteral","src":"10574:1:22","type":"","value":"1"},{"name":"r","nativeSrc":"10577:1:22","nodeType":"YulIdentifier","src":"10577:1:22"}],"functionName":{"name":"shl","nativeSrc":"10570:3:22","nodeType":"YulIdentifier","src":"10570:3:22"},"nativeSrc":"10570:9:22","nodeType":"YulFunctionCall","src":"10570:9:22"},"variableNames":[{"name":"w","nativeSrc":"10565:1:22","nodeType":"YulIdentifier","src":"10565:1:22"}]},{"body":{"nativeSrc":"10630:9:22","nodeType":"YulBlock","src":"10630:9:22","statements":[{"nativeSrc":"10632:5:22","nodeType":"YulBreak","src":"10632:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"10613:1:22","nodeType":"YulIdentifier","src":"10613:1:22"},{"arguments":[{"kind":"number","nativeSrc":"10620:3:22","nodeType":"YulLiteral","src":"10620:3:22","type":"","value":"129"},{"name":"r","nativeSrc":"10625:1:22","nodeType":"YulIdentifier","src":"10625:1:22"}],"functionName":{"name":"shl","nativeSrc":"10616:3:22","nodeType":"YulIdentifier","src":"10616:3:22"},"nativeSrc":"10616:11:22","nodeType":"YulFunctionCall","src":"10616:11:22"}],"functionName":{"name":"lt","nativeSrc":"10610:2:22","nodeType":"YulIdentifier","src":"10610:2:22"},"nativeSrc":"10610:18:22","nodeType":"YulFunctionCall","src":"10610:18:22"}],"functionName":{"name":"iszero","nativeSrc":"10603:6:22","nodeType":"YulIdentifier","src":"10603:6:22"},"nativeSrc":"10603:26:22","nodeType":"YulFunctionCall","src":"10603:26:22"},"nativeSrc":"10600:39:22","nodeType":"YulIf","src":"10600:39:22"}]},"condition":{"kind":"number","nativeSrc":"10144:1:22","nodeType":"YulLiteral","src":"10144:1:22","type":"","value":"1"},"nativeSrc":"10137:520:22","nodeType":"YulForLoop","post":{"nativeSrc":"10146:2:22","nodeType":"YulBlock","src":"10146:2:22","statements":[]},"pre":{"nativeSrc":"10141:2:22","nodeType":"YulBlock","src":"10141:2:22","statements":[]},"src":"10137:520:22"}]},"condition":{"arguments":[{"arguments":[{"name":"w","nativeSrc":"9911:1:22","nodeType":"YulIdentifier","src":"9911:1:22"},{"name":"p","nativeSrc":"9914:1:22","nodeType":"YulIdentifier","src":"9914:1:22"}],"functionName":{"name":"gt","nativeSrc":"9908:2:22","nodeType":"YulIdentifier","src":"9908:2:22"},"nativeSrc":"9908:8:22","nodeType":"YulFunctionCall","src":"9908:8:22"}],"functionName":{"name":"iszero","nativeSrc":"9901:6:22","nodeType":"YulIdentifier","src":"9901:6:22"},"nativeSrc":"9901:16:22","nodeType":"YulFunctionCall","src":"9901:16:22"},"nativeSrc":"9898:773:22","nodeType":"YulIf","src":"9898:773:22"},{"nativeSrc":"10684:62:22","nodeType":"YulAssignment","src":"10684:62:22","value":{"arguments":[{"arguments":[{"name":"p","nativeSrc":"10702:1:22","nodeType":"YulIdentifier","src":"10702:1:22"},{"arguments":[{"kind":"number","nativeSrc":"10709:3:22","nodeType":"YulLiteral","src":"10709:3:22","type":"","value":"129"},{"kind":"number","nativeSrc":"10714:21:22","nodeType":"YulLiteral","src":"10714:21:22","type":"","value":"170141183460469231732"}],"functionName":{"name":"shl","nativeSrc":"10705:3:22","nodeType":"YulIdentifier","src":"10705:3:22"},"nativeSrc":"10705:31:22","nodeType":"YulFunctionCall","src":"10705:31:22"}],"functionName":{"name":"div","nativeSrc":"10698:3:22","nodeType":"YulIdentifier","src":"10698:3:22"},"nativeSrc":"10698:39:22","nodeType":"YulFunctionCall","src":"10698:39:22"},{"name":"result","nativeSrc":"10739:6:22","nodeType":"YulIdentifier","src":"10739:6:22"}],"functionName":{"name":"add","nativeSrc":"10694:3:22","nodeType":"YulIdentifier","src":"10694:3:22"},"nativeSrc":"10694:52:22","nodeType":"YulFunctionCall","src":"10694:52:22"},"variableNames":[{"name":"result","nativeSrc":"10684:6:22","nodeType":"YulIdentifier","src":"10684:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10184,"isOffset":false,"isSlot":false,"src":"9782:4:22","valueSize":1},{"declaration":10184,"isOffset":false,"isSlot":false,"src":"9813:4:22","valueSize":1},{"declaration":10187,"isOffset":false,"isSlot":false,"src":"10313:6:22","valueSize":1},{"declaration":10187,"isOffset":false,"isSlot":false,"src":"10348:6:22","valueSize":1},{"declaration":10187,"isOffset":false,"isSlot":false,"src":"10684:6:22","valueSize":1},{"declaration":10187,"isOffset":false,"isSlot":false,"src":"10739:6:22","valueSize":1}],"id":10189,"nodeType":"InlineAssembly","src":"9609:1147:22"}]},"documentation":{"id":10181,"nodeType":"StructuredDocumentation","src":"9384:86:22","text":"@dev Returns a sample from the unit exponential distribution denominated in `WAD`."},"id":10191,"implemented":true,"kind":"function","modifiers":[],"name":"exponentialWad","nameLocation":"9484:14:22","nodeType":"FunctionDefinition","parameters":{"id":10185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10184,"mutability":"mutable","name":"prng","nameLocation":"9511:4:22","nodeType":"VariableDeclaration","scope":10191,"src":"9499:16:22","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":10183,"nodeType":"UserDefinedTypeName","pathNode":{"id":10182,"name":"PRNG","nameLocations":["9499:4:22"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"9499:4:22"},"referencedDeclaration":10107,"src":"9499:4:22","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"src":"9498:18:22"},"returnParameters":{"id":10188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10187,"mutability":"mutable","name":"result","nameLocation":"9548:6:22","nodeType":"VariableDeclaration","scope":10191,"src":"9540:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10186,"name":"uint256","nodeType":"ElementaryTypeName","src":"9540:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9539:16:22"},"scope":10293,"src":"9475:1287:22","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10201,"nodeType":"Block","src":"11378:539:22","statements":[{"AST":{"nativeSrc":"11440:471:22","nodeType":"YulBlock","src":"11440:471:22","statements":[{"body":{"nativeSrc":"11491:132:22","nodeType":"YulBlock","src":"11491:132:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11516:4:22","nodeType":"YulLiteral","src":"11516:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11522:10:22","nodeType":"YulLiteral","src":"11522:10:22","type":"","value":"0x83b53941"}],"functionName":{"name":"mstore","nativeSrc":"11509:6:22","nodeType":"YulIdentifier","src":"11509:6:22"},"nativeSrc":"11509:24:22","nodeType":"YulFunctionCall","src":"11509:24:22"},"nativeSrc":"11509:24:22","nodeType":"YulExpressionStatement","src":"11509:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11598:4:22","nodeType":"YulLiteral","src":"11598:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11604:4:22","nodeType":"YulLiteral","src":"11604:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11591:6:22","nodeType":"YulIdentifier","src":"11591:6:22"},"nativeSrc":"11591:18:22","nodeType":"YulFunctionCall","src":"11591:18:22"},"nativeSrc":"11591:18:22","nodeType":"YulExpressionStatement","src":"11591:18:22"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"n","nativeSrc":"11471:1:22","nodeType":"YulIdentifier","src":"11471:1:22"},{"kind":"number","nativeSrc":"11474:1:22","nodeType":"YulLiteral","src":"11474:1:22","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"11467:3:22","nodeType":"YulIdentifier","src":"11467:3:22"},"nativeSrc":"11467:9:22","nodeType":"YulFunctionCall","src":"11467:9:22"},{"kind":"number","nativeSrc":"11478:10:22","nodeType":"YulLiteral","src":"11478:10:22","type":"","value":"0xfffffffe"}],"functionName":{"name":"lt","nativeSrc":"11464:2:22","nodeType":"YulIdentifier","src":"11464:2:22"},"nativeSrc":"11464:25:22","nodeType":"YulFunctionCall","src":"11464:25:22"}],"functionName":{"name":"iszero","nativeSrc":"11457:6:22","nodeType":"YulIdentifier","src":"11457:6:22"},"nativeSrc":"11457:33:22","nodeType":"YulFunctionCall","src":"11457:33:22"},"nativeSrc":"11454:169:22","nodeType":"YulIf","src":"11454:169:22"},{"body":{"nativeSrc":"11653:130:22","nodeType":"YulBlock","src":"11653:130:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11678:4:22","nodeType":"YulLiteral","src":"11678:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11684:10:22","nodeType":"YulLiteral","src":"11684:10:22","type":"","value":"0x0c9f11f2"}],"functionName":{"name":"mstore","nativeSrc":"11671:6:22","nodeType":"YulIdentifier","src":"11671:6:22"},"nativeSrc":"11671:24:22","nodeType":"YulFunctionCall","src":"11671:24:22"},"nativeSrc":"11671:24:22","nodeType":"YulExpressionStatement","src":"11671:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11758:4:22","nodeType":"YulLiteral","src":"11758:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11764:4:22","nodeType":"YulLiteral","src":"11764:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"11751:6:22","nodeType":"YulIdentifier","src":"11751:6:22"},"nativeSrc":"11751:18:22","nodeType":"YulFunctionCall","src":"11751:18:22"},"nativeSrc":"11751:18:22","nodeType":"YulExpressionStatement","src":"11751:18:22"}]},"condition":{"arguments":[{"name":"$.slot","nativeSrc":"11645:6:22","nodeType":"YulIdentifier","src":"11645:6:22"}],"functionName":{"name":"sload","nativeSrc":"11639:5:22","nodeType":"YulIdentifier","src":"11639:5:22"},"nativeSrc":"11639:13:22","nodeType":"YulFunctionCall","src":"11639:13:22"},"nativeSrc":"11636:147:22","nodeType":"YulIf","src":"11636:147:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11803:4:22","nodeType":"YulLiteral","src":"11803:4:22","type":"","value":"0x00"},{"name":"$.slot","nativeSrc":"11809:6:22","nodeType":"YulIdentifier","src":"11809:6:22"}],"functionName":{"name":"mstore","nativeSrc":"11796:6:22","nodeType":"YulIdentifier","src":"11796:6:22"},"nativeSrc":"11796:20:22","nodeType":"YulFunctionCall","src":"11796:20:22"},"nativeSrc":"11796:20:22","nodeType":"YulExpressionStatement","src":"11796:20:22"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"11836:6:22","nodeType":"YulIdentifier","src":"11836:6:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11851:3:22","nodeType":"YulLiteral","src":"11851:3:22","type":"","value":"224"},{"name":"n","nativeSrc":"11856:1:22","nodeType":"YulIdentifier","src":"11856:1:22"}],"functionName":{"name":"shl","nativeSrc":"11847:3:22","nodeType":"YulIdentifier","src":"11847:3:22"},"nativeSrc":"11847:11:22","nodeType":"YulFunctionCall","src":"11847:11:22"},{"arguments":[{"kind":"number","nativeSrc":"11864:2:22","nodeType":"YulLiteral","src":"11864:2:22","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"11872:2:22","nodeType":"YulLiteral","src":"11872:2:22","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"11886:4:22","nodeType":"YulLiteral","src":"11886:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11892:4:22","nodeType":"YulLiteral","src":"11892:4:22","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"11876:9:22","nodeType":"YulIdentifier","src":"11876:9:22"},"nativeSrc":"11876:21:22","nodeType":"YulFunctionCall","src":"11876:21:22"}],"functionName":{"name":"shr","nativeSrc":"11868:3:22","nodeType":"YulIdentifier","src":"11868:3:22"},"nativeSrc":"11868:30:22","nodeType":"YulFunctionCall","src":"11868:30:22"}],"functionName":{"name":"shl","nativeSrc":"11860:3:22","nodeType":"YulIdentifier","src":"11860:3:22"},"nativeSrc":"11860:39:22","nodeType":"YulFunctionCall","src":"11860:39:22"}],"functionName":{"name":"or","nativeSrc":"11844:2:22","nodeType":"YulIdentifier","src":"11844:2:22"},"nativeSrc":"11844:56:22","nodeType":"YulFunctionCall","src":"11844:56:22"}],"functionName":{"name":"sstore","nativeSrc":"11829:6:22","nodeType":"YulIdentifier","src":"11829:6:22"},"nativeSrc":"11829:72:22","nodeType":"YulFunctionCall","src":"11829:72:22"},"nativeSrc":"11829:72:22","nodeType":"YulExpressionStatement","src":"11829:72:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10195,"isOffset":false,"isSlot":true,"src":"11645:6:22","suffix":"slot","valueSize":1},{"declaration":10195,"isOffset":false,"isSlot":true,"src":"11809:6:22","suffix":"slot","valueSize":1},{"declaration":10195,"isOffset":false,"isSlot":true,"src":"11836:6:22","suffix":"slot","valueSize":1},{"declaration":10197,"isOffset":false,"isSlot":false,"src":"11471:1:22","valueSize":1},{"declaration":10197,"isOffset":false,"isSlot":false,"src":"11856:1:22","valueSize":1}],"id":10200,"nodeType":"InlineAssembly","src":"11431:480:22"}]},"documentation":{"id":10192,"nodeType":"StructuredDocumentation","src":"11051:258:22","text":"@dev Initializes the state for lazy-shuffling the range `[0..n)`.\n Reverts if `n == 0 || n >= 2**32 - 1`.\n Reverts if `$` has already been initialized.\n If you need to reduce the length after initialization, just use a fresh new `$`."},"id":10202,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"11323:10:22","nodeType":"FunctionDefinition","parameters":{"id":10198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10195,"mutability":"mutable","name":"$","nameLocation":"11355:1:22","nodeType":"VariableDeclaration","scope":10202,"src":"11334:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10194,"nodeType":"UserDefinedTypeName","pathNode":{"id":10193,"name":"LazyShuffler","nameLocations":["11334:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"11334:12:22"},"referencedDeclaration":10111,"src":"11334:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10197,"mutability":"mutable","name":"n","nameLocation":"11366:1:22","nodeType":"VariableDeclaration","scope":10202,"src":"11358:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10196,"name":"uint256","nodeType":"ElementaryTypeName","src":"11358:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11333:35:22"},"returnParameters":{"id":10199,"nodeType":"ParameterList","parameters":[],"src":"11378:0:22"},"scope":10293,"src":"11314:603:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10212,"nodeType":"Block","src":"12072:611:22","statements":[{"AST":{"nativeSrc":"12134:543:22","nodeType":"YulBlock","src":"12134:543:22","statements":[{"nativeSrc":"12148:26:22","nodeType":"YulVariableDeclaration","src":"12148:26:22","value":{"arguments":[{"name":"$.slot","nativeSrc":"12167:6:22","nodeType":"YulIdentifier","src":"12167:6:22"}],"functionName":{"name":"sload","nativeSrc":"12161:5:22","nodeType":"YulIdentifier","src":"12161:5:22"},"nativeSrc":"12161:13:22","nodeType":"YulFunctionCall","src":"12161:13:22"},"variables":[{"name":"state","nativeSrc":"12152:5:22","nodeType":"YulTypedName","src":"12152:5:22","type":""}]},{"body":{"nativeSrc":"12314:128:22","nodeType":"YulBlock","src":"12314:128:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12339:4:22","nodeType":"YulLiteral","src":"12339:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12345:10:22","nodeType":"YulLiteral","src":"12345:10:22","type":"","value":"0xbed37c6e"}],"functionName":{"name":"mstore","nativeSrc":"12332:6:22","nodeType":"YulIdentifier","src":"12332:6:22"},"nativeSrc":"12332:24:22","nodeType":"YulFunctionCall","src":"12332:24:22"},"nativeSrc":"12332:24:22","nodeType":"YulExpressionStatement","src":"12332:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12417:4:22","nodeType":"YulLiteral","src":"12417:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12423:4:22","nodeType":"YulLiteral","src":"12423:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12410:6:22","nodeType":"YulIdentifier","src":"12410:6:22"},"nativeSrc":"12410:18:22","nodeType":"YulFunctionCall","src":"12410:18:22"},"nativeSrc":"12410:18:22","nodeType":"YulExpressionStatement","src":"12410:18:22"}]},"condition":{"arguments":[{"name":"n","nativeSrc":"12294:1:22","nodeType":"YulIdentifier","src":"12294:1:22"},{"arguments":[{"kind":"number","nativeSrc":"12301:3:22","nodeType":"YulLiteral","src":"12301:3:22","type":"","value":"224"},{"name":"state","nativeSrc":"12306:5:22","nodeType":"YulIdentifier","src":"12306:5:22"}],"functionName":{"name":"shr","nativeSrc":"12297:3:22","nodeType":"YulIdentifier","src":"12297:3:22"},"nativeSrc":"12297:15:22","nodeType":"YulFunctionCall","src":"12297:15:22"}],"functionName":{"name":"lt","nativeSrc":"12291:2:22","nodeType":"YulIdentifier","src":"12291:2:22"},"nativeSrc":"12291:22:22","nodeType":"YulFunctionCall","src":"12291:22:22"},"nativeSrc":"12288:154:22","nodeType":"YulIf","src":"12288:154:22"},{"body":{"nativeSrc":"12472:126:22","nodeType":"YulBlock","src":"12472:126:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12497:4:22","nodeType":"YulLiteral","src":"12497:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12503:10:22","nodeType":"YulLiteral","src":"12503:10:22","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"12490:6:22","nodeType":"YulIdentifier","src":"12490:6:22"},"nativeSrc":"12490:24:22","nodeType":"YulFunctionCall","src":"12490:24:22"},"nativeSrc":"12490:24:22","nodeType":"YulExpressionStatement","src":"12490:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12573:4:22","nodeType":"YulLiteral","src":"12573:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12579:4:22","nodeType":"YulLiteral","src":"12579:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12566:6:22","nodeType":"YulIdentifier","src":"12566:6:22"},"nativeSrc":"12566:18:22","nodeType":"YulFunctionCall","src":"12566:18:22"},"nativeSrc":"12566:18:22","nodeType":"YulExpressionStatement","src":"12566:18:22"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"12465:5:22","nodeType":"YulIdentifier","src":"12465:5:22"}],"functionName":{"name":"iszero","nativeSrc":"12458:6:22","nodeType":"YulIdentifier","src":"12458:6:22"},"nativeSrc":"12458:13:22","nodeType":"YulFunctionCall","src":"12458:13:22"},"nativeSrc":"12455:143:22","nodeType":"YulIf","src":"12455:143:22"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"12618:6:22","nodeType":"YulIdentifier","src":"12618:6:22"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12633:3:22","nodeType":"YulLiteral","src":"12633:3:22","type":"","value":"224"},{"name":"n","nativeSrc":"12638:1:22","nodeType":"YulIdentifier","src":"12638:1:22"}],"functionName":{"name":"shl","nativeSrc":"12629:3:22","nodeType":"YulIdentifier","src":"12629:3:22"},"nativeSrc":"12629:11:22","nodeType":"YulFunctionCall","src":"12629:11:22"},{"arguments":[{"kind":"number","nativeSrc":"12646:2:22","nodeType":"YulLiteral","src":"12646:2:22","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"12654:2:22","nodeType":"YulLiteral","src":"12654:2:22","type":"","value":"32"},{"name":"state","nativeSrc":"12658:5:22","nodeType":"YulIdentifier","src":"12658:5:22"}],"functionName":{"name":"shl","nativeSrc":"12650:3:22","nodeType":"YulIdentifier","src":"12650:3:22"},"nativeSrc":"12650:14:22","nodeType":"YulFunctionCall","src":"12650:14:22"}],"functionName":{"name":"shr","nativeSrc":"12642:3:22","nodeType":"YulIdentifier","src":"12642:3:22"},"nativeSrc":"12642:23:22","nodeType":"YulFunctionCall","src":"12642:23:22"}],"functionName":{"name":"or","nativeSrc":"12626:2:22","nodeType":"YulIdentifier","src":"12626:2:22"},"nativeSrc":"12626:40:22","nodeType":"YulFunctionCall","src":"12626:40:22"}],"functionName":{"name":"sstore","nativeSrc":"12611:6:22","nodeType":"YulIdentifier","src":"12611:6:22"},"nativeSrc":"12611:56:22","nodeType":"YulFunctionCall","src":"12611:56:22"},"nativeSrc":"12611:56:22","nodeType":"YulExpressionStatement","src":"12611:56:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10206,"isOffset":false,"isSlot":true,"src":"12167:6:22","suffix":"slot","valueSize":1},{"declaration":10206,"isOffset":false,"isSlot":true,"src":"12618:6:22","suffix":"slot","valueSize":1},{"declaration":10208,"isOffset":false,"isSlot":false,"src":"12294:1:22","valueSize":1},{"declaration":10208,"isOffset":false,"isSlot":false,"src":"12638:1:22","valueSize":1}],"id":10211,"nodeType":"InlineAssembly","src":"12125:552:22"}]},"documentation":{"id":10203,"nodeType":"StructuredDocumentation","src":"11923:86:22","text":"@dev Increases the length of `$`.\n Reverts if `$` has not been initialized."},"id":10213,"implemented":true,"kind":"function","modifiers":[],"name":"grow","nameLocation":"12023:4:22","nodeType":"FunctionDefinition","parameters":{"id":10209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10206,"mutability":"mutable","name":"$","nameLocation":"12049:1:22","nodeType":"VariableDeclaration","scope":10213,"src":"12028:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10205,"nodeType":"UserDefinedTypeName","pathNode":{"id":10204,"name":"LazyShuffler","nameLocations":["12028:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"12028:12:22"},"referencedDeclaration":10111,"src":"12028:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10208,"mutability":"mutable","name":"n","nameLocation":"12060:1:22","nodeType":"VariableDeclaration","scope":10213,"src":"12052:9:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10207,"name":"uint256","nodeType":"ElementaryTypeName","src":"12052:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12027:35:22"},"returnParameters":{"id":10210,"nodeType":"ParameterList","parameters":[],"src":"12072:0:22"},"scope":10293,"src":"12014:669:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10221,"nodeType":"Block","src":"13035:326:22","statements":[{"AST":{"nativeSrc":"13097:258:22","nodeType":"YulBlock","src":"13097:258:22","statements":[{"nativeSrc":"13111:26:22","nodeType":"YulVariableDeclaration","src":"13111:26:22","value":{"arguments":[{"name":"$.slot","nativeSrc":"13130:6:22","nodeType":"YulIdentifier","src":"13130:6:22"}],"functionName":{"name":"sload","nativeSrc":"13124:5:22","nodeType":"YulIdentifier","src":"13124:5:22"},"nativeSrc":"13124:13:22","nodeType":"YulFunctionCall","src":"13124:13:22"},"variables":[{"name":"state","nativeSrc":"13115:5:22","nodeType":"YulTypedName","src":"13115:5:22","type":""}]},{"body":{"nativeSrc":"13167:126:22","nodeType":"YulBlock","src":"13167:126:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13192:4:22","nodeType":"YulLiteral","src":"13192:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13198:10:22","nodeType":"YulLiteral","src":"13198:10:22","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"13185:6:22","nodeType":"YulIdentifier","src":"13185:6:22"},"nativeSrc":"13185:24:22","nodeType":"YulFunctionCall","src":"13185:24:22"},"nativeSrc":"13185:24:22","nodeType":"YulExpressionStatement","src":"13185:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13268:4:22","nodeType":"YulLiteral","src":"13268:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13274:4:22","nodeType":"YulLiteral","src":"13274:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13261:6:22","nodeType":"YulIdentifier","src":"13261:6:22"},"nativeSrc":"13261:18:22","nodeType":"YulFunctionCall","src":"13261:18:22"},"nativeSrc":"13261:18:22","nodeType":"YulExpressionStatement","src":"13261:18:22"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"13160:5:22","nodeType":"YulIdentifier","src":"13160:5:22"}],"functionName":{"name":"iszero","nativeSrc":"13153:6:22","nodeType":"YulIdentifier","src":"13153:6:22"},"nativeSrc":"13153:13:22","nodeType":"YulFunctionCall","src":"13153:13:22"},"nativeSrc":"13150:143:22","nodeType":"YulIf","src":"13150:143:22"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"13313:6:22","nodeType":"YulIdentifier","src":"13313:6:22"},{"arguments":[{"kind":"number","nativeSrc":"13325:2:22","nodeType":"YulLiteral","src":"13325:2:22","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"13333:2:22","nodeType":"YulLiteral","src":"13333:2:22","type":"","value":"32"},{"name":"state","nativeSrc":"13337:5:22","nodeType":"YulIdentifier","src":"13337:5:22"}],"functionName":{"name":"shr","nativeSrc":"13329:3:22","nodeType":"YulIdentifier","src":"13329:3:22"},"nativeSrc":"13329:14:22","nodeType":"YulFunctionCall","src":"13329:14:22"}],"functionName":{"name":"shl","nativeSrc":"13321:3:22","nodeType":"YulIdentifier","src":"13321:3:22"},"nativeSrc":"13321:23:22","nodeType":"YulFunctionCall","src":"13321:23:22"}],"functionName":{"name":"sstore","nativeSrc":"13306:6:22","nodeType":"YulIdentifier","src":"13306:6:22"},"nativeSrc":"13306:39:22","nodeType":"YulFunctionCall","src":"13306:39:22"},"nativeSrc":"13306:39:22","nodeType":"YulExpressionStatement","src":"13306:39:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10217,"isOffset":false,"isSlot":true,"src":"13130:6:22","suffix":"slot","valueSize":1},{"declaration":10217,"isOffset":false,"isSlot":true,"src":"13313:6:22","suffix":"slot","valueSize":1}],"id":10220,"nodeType":"InlineAssembly","src":"13088:267:22"}]},"documentation":{"id":10214,"nodeType":"StructuredDocumentation","src":"12689:291:22","text":"@dev Restarts the shuffler by setting `numShuffled` to zero,\n such that all elements can be drawn again.\n Restarting does NOT clear the internal permutation, nor changes the length.\n Even with the same sequence of randomness, reshuffling can yield different results."},"id":10222,"implemented":true,"kind":"function","modifiers":[],"name":"restart","nameLocation":"12994:7:22","nodeType":"FunctionDefinition","parameters":{"id":10218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10217,"mutability":"mutable","name":"$","nameLocation":"13023:1:22","nodeType":"VariableDeclaration","scope":10222,"src":"13002:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10216,"nodeType":"UserDefinedTypeName","pathNode":{"id":10215,"name":"LazyShuffler","nameLocations":["13002:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"13002:12:22"},"referencedDeclaration":10111,"src":"13002:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13001:24:22"},"returnParameters":{"id":10219,"nodeType":"ParameterList","parameters":[],"src":"13035:0:22"},"scope":10293,"src":"12985:376:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10232,"nodeType":"Block","src":"13520:132:22","statements":[{"AST":{"nativeSrc":"13582:64:22","nodeType":"YulBlock","src":"13582:64:22","statements":[{"nativeSrc":"13596:40:22","nodeType":"YulAssignment","src":"13596:40:22","value":{"arguments":[{"kind":"number","nativeSrc":"13610:10:22","nodeType":"YulLiteral","src":"13610:10:22","type":"","value":"0xffffffff"},{"arguments":[{"name":"$.slot","nativeSrc":"13628:6:22","nodeType":"YulIdentifier","src":"13628:6:22"}],"functionName":{"name":"sload","nativeSrc":"13622:5:22","nodeType":"YulIdentifier","src":"13622:5:22"},"nativeSrc":"13622:13:22","nodeType":"YulFunctionCall","src":"13622:13:22"}],"functionName":{"name":"and","nativeSrc":"13606:3:22","nodeType":"YulIdentifier","src":"13606:3:22"},"nativeSrc":"13606:30:22","nodeType":"YulFunctionCall","src":"13606:30:22"},"variableNames":[{"name":"result","nativeSrc":"13596:6:22","nodeType":"YulIdentifier","src":"13596:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10226,"isOffset":false,"isSlot":true,"src":"13628:6:22","suffix":"slot","valueSize":1},{"declaration":10229,"isOffset":false,"isSlot":false,"src":"13596:6:22","valueSize":1}],"id":10231,"nodeType":"InlineAssembly","src":"13573:73:22"}]},"documentation":{"id":10223,"nodeType":"StructuredDocumentation","src":"13367:64:22","text":"@dev Returns the number of elements that have been shuffled."},"id":10233,"implemented":true,"kind":"function","modifiers":[],"name":"numShuffled","nameLocation":"13445:11:22","nodeType":"FunctionDefinition","parameters":{"id":10227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10226,"mutability":"mutable","name":"$","nameLocation":"13478:1:22","nodeType":"VariableDeclaration","scope":10233,"src":"13457:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10225,"nodeType":"UserDefinedTypeName","pathNode":{"id":10224,"name":"LazyShuffler","nameLocations":["13457:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"13457:12:22"},"referencedDeclaration":10111,"src":"13457:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13456:24:22"},"returnParameters":{"id":10230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10229,"mutability":"mutable","name":"result","nameLocation":"13512:6:22","nodeType":"VariableDeclaration","scope":10233,"src":"13504:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10228,"name":"uint256","nodeType":"ElementaryTypeName","src":"13504:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13503:16:22"},"scope":10293,"src":"13436:216:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10243,"nodeType":"Block","src":"13870:125:22","statements":[{"AST":{"nativeSrc":"13932:57:22","nodeType":"YulBlock","src":"13932:57:22","statements":[{"nativeSrc":"13946:33:22","nodeType":"YulAssignment","src":"13946:33:22","value":{"arguments":[{"kind":"number","nativeSrc":"13960:3:22","nodeType":"YulLiteral","src":"13960:3:22","type":"","value":"224"},{"arguments":[{"name":"$.slot","nativeSrc":"13971:6:22","nodeType":"YulIdentifier","src":"13971:6:22"}],"functionName":{"name":"sload","nativeSrc":"13965:5:22","nodeType":"YulIdentifier","src":"13965:5:22"},"nativeSrc":"13965:13:22","nodeType":"YulFunctionCall","src":"13965:13:22"}],"functionName":{"name":"shr","nativeSrc":"13956:3:22","nodeType":"YulIdentifier","src":"13956:3:22"},"nativeSrc":"13956:23:22","nodeType":"YulFunctionCall","src":"13956:23:22"},"variableNames":[{"name":"result","nativeSrc":"13946:6:22","nodeType":"YulIdentifier","src":"13946:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10237,"isOffset":false,"isSlot":true,"src":"13971:6:22","suffix":"slot","valueSize":1},{"declaration":10240,"isOffset":false,"isSlot":false,"src":"13946:6:22","valueSize":1}],"id":10242,"nodeType":"InlineAssembly","src":"13923:66:22"}]},"documentation":{"id":10234,"nodeType":"StructuredDocumentation","src":"13658:128:22","text":"@dev Returns the length of `$`.\n Returns zero if `$` is not initialized, else a non-zero value less than `2**32 - 1`."},"id":10244,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"13800:6:22","nodeType":"FunctionDefinition","parameters":{"id":10238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10237,"mutability":"mutable","name":"$","nameLocation":"13828:1:22","nodeType":"VariableDeclaration","scope":10244,"src":"13807:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10236,"nodeType":"UserDefinedTypeName","pathNode":{"id":10235,"name":"LazyShuffler","nameLocations":["13807:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"13807:12:22"},"referencedDeclaration":10111,"src":"13807:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"13806:24:22"},"returnParameters":{"id":10241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10240,"mutability":"mutable","name":"result","nameLocation":"13862:6:22","nodeType":"VariableDeclaration","scope":10244,"src":"13854:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10239,"name":"uint256","nodeType":"ElementaryTypeName","src":"13854:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13853:16:22"},"scope":10293,"src":"13791:204:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10254,"nodeType":"Block","src":"14132:131:22","statements":[{"AST":{"nativeSrc":"14194:63:22","nodeType":"YulBlock","src":"14194:63:22","statements":[{"nativeSrc":"14208:39:22","nodeType":"YulAssignment","src":"14208:39:22","value":{"arguments":[{"arguments":[{"arguments":[{"name":"$.slot","nativeSrc":"14238:6:22","nodeType":"YulIdentifier","src":"14238:6:22"}],"functionName":{"name":"sload","nativeSrc":"14232:5:22","nodeType":"YulIdentifier","src":"14232:5:22"},"nativeSrc":"14232:13:22","nodeType":"YulFunctionCall","src":"14232:13:22"}],"functionName":{"name":"iszero","nativeSrc":"14225:6:22","nodeType":"YulIdentifier","src":"14225:6:22"},"nativeSrc":"14225:21:22","nodeType":"YulFunctionCall","src":"14225:21:22"}],"functionName":{"name":"iszero","nativeSrc":"14218:6:22","nodeType":"YulIdentifier","src":"14218:6:22"},"nativeSrc":"14218:29:22","nodeType":"YulFunctionCall","src":"14218:29:22"},"variableNames":[{"name":"result","nativeSrc":"14208:6:22","nodeType":"YulIdentifier","src":"14208:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10248,"isOffset":false,"isSlot":true,"src":"14238:6:22","suffix":"slot","valueSize":1},{"declaration":10251,"isOffset":false,"isSlot":false,"src":"14208:6:22","valueSize":1}],"id":10253,"nodeType":"InlineAssembly","src":"14185:72:22"}]},"documentation":{"id":10245,"nodeType":"StructuredDocumentation","src":"14001:45:22","text":"@dev Returns if `$` has been initialized."},"id":10255,"implemented":true,"kind":"function","modifiers":[],"name":"initialized","nameLocation":"14060:11:22","nodeType":"FunctionDefinition","parameters":{"id":10249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10248,"mutability":"mutable","name":"$","nameLocation":"14093:1:22","nodeType":"VariableDeclaration","scope":10255,"src":"14072:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10247,"nodeType":"UserDefinedTypeName","pathNode":{"id":10246,"name":"LazyShuffler","nameLocations":["14072:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"14072:12:22"},"referencedDeclaration":10111,"src":"14072:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"14071:24:22"},"returnParameters":{"id":10252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10251,"mutability":"mutable","name":"result","nameLocation":"14124:6:22","nodeType":"VariableDeclaration","scope":10255,"src":"14119:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10250,"name":"bool","nodeType":"ElementaryTypeName","src":"14119:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14118:13:22"},"scope":10293,"src":"14051:212:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10265,"nodeType":"Block","src":"14459:368:22","statements":[{"AST":{"nativeSrc":"14521:300:22","nodeType":"YulBlock","src":"14521:300:22","statements":[{"nativeSrc":"14535:26:22","nodeType":"YulVariableDeclaration","src":"14535:26:22","value":{"arguments":[{"name":"$.slot","nativeSrc":"14554:6:22","nodeType":"YulIdentifier","src":"14554:6:22"}],"functionName":{"name":"sload","nativeSrc":"14548:5:22","nodeType":"YulIdentifier","src":"14548:5:22"},"nativeSrc":"14548:13:22","nodeType":"YulFunctionCall","src":"14548:13:22"},"variables":[{"name":"state","nativeSrc":"14539:5:22","nodeType":"YulTypedName","src":"14539:5:22","type":""}]},{"body":{"nativeSrc":"14619:126:22","nodeType":"YulBlock","src":"14619:126:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14644:4:22","nodeType":"YulLiteral","src":"14644:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14650:10:22","nodeType":"YulLiteral","src":"14650:10:22","type":"","value":"0x1ead2566"}],"functionName":{"name":"mstore","nativeSrc":"14637:6:22","nodeType":"YulIdentifier","src":"14637:6:22"},"nativeSrc":"14637:24:22","nodeType":"YulFunctionCall","src":"14637:24:22"},"nativeSrc":"14637:24:22","nodeType":"YulExpressionStatement","src":"14637:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14720:4:22","nodeType":"YulLiteral","src":"14720:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14726:4:22","nodeType":"YulLiteral","src":"14726:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"14713:6:22","nodeType":"YulIdentifier","src":"14713:6:22"},"nativeSrc":"14713:18:22","nodeType":"YulFunctionCall","src":"14713:18:22"},"nativeSrc":"14713:18:22","nodeType":"YulExpressionStatement","src":"14713:18:22"}]},"condition":{"arguments":[{"name":"state","nativeSrc":"14612:5:22","nodeType":"YulIdentifier","src":"14612:5:22"}],"functionName":{"name":"iszero","nativeSrc":"14605:6:22","nodeType":"YulIdentifier","src":"14605:6:22"},"nativeSrc":"14605:13:22","nodeType":"YulFunctionCall","src":"14605:13:22"},"nativeSrc":"14602:143:22","nodeType":"YulIf","src":"14602:143:22"},{"nativeSrc":"14758:53:22","nodeType":"YulAssignment","src":"14758:53:22","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14775:3:22","nodeType":"YulLiteral","src":"14775:3:22","type":"","value":"224"},{"name":"state","nativeSrc":"14780:5:22","nodeType":"YulIdentifier","src":"14780:5:22"}],"functionName":{"name":"shr","nativeSrc":"14771:3:22","nodeType":"YulIdentifier","src":"14771:3:22"},"nativeSrc":"14771:15:22","nodeType":"YulFunctionCall","src":"14771:15:22"},{"arguments":[{"kind":"number","nativeSrc":"14792:10:22","nodeType":"YulLiteral","src":"14792:10:22","type":"","value":"0xffffffff"},{"name":"state","nativeSrc":"14804:5:22","nodeType":"YulIdentifier","src":"14804:5:22"}],"functionName":{"name":"and","nativeSrc":"14788:3:22","nodeType":"YulIdentifier","src":"14788:3:22"},"nativeSrc":"14788:22:22","nodeType":"YulFunctionCall","src":"14788:22:22"}],"functionName":{"name":"eq","nativeSrc":"14768:2:22","nodeType":"YulIdentifier","src":"14768:2:22"},"nativeSrc":"14768:43:22","nodeType":"YulFunctionCall","src":"14768:43:22"},"variableNames":[{"name":"result","nativeSrc":"14758:6:22","nodeType":"YulIdentifier","src":"14758:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10259,"isOffset":false,"isSlot":true,"src":"14554:6:22","suffix":"slot","valueSize":1},{"declaration":10262,"isOffset":false,"isSlot":false,"src":"14758:6:22","valueSize":1}],"id":10264,"nodeType":"InlineAssembly","src":"14512:309:22"}]},"documentation":{"id":10256,"nodeType":"StructuredDocumentation","src":"14269:107:22","text":"@dev Returns if there are any more elements left to shuffle.\n Reverts if `$` is not initialized."},"id":10266,"implemented":true,"kind":"function","modifiers":[],"name":"finished","nameLocation":"14390:8:22","nodeType":"FunctionDefinition","parameters":{"id":10260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10259,"mutability":"mutable","name":"$","nameLocation":"14420:1:22","nodeType":"VariableDeclaration","scope":10266,"src":"14399:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10258,"nodeType":"UserDefinedTypeName","pathNode":{"id":10257,"name":"LazyShuffler","nameLocations":["14399:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"14399:12:22"},"referencedDeclaration":10111,"src":"14399:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"}],"src":"14398:24:22"},"returnParameters":{"id":10263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"mutability":"mutable","name":"result","nameLocation":"14451:6:22","nodeType":"VariableDeclaration","scope":10266,"src":"14446:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10261,"name":"bool","nodeType":"ElementaryTypeName","src":"14446:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14445:13:22"},"scope":10293,"src":"14381:446:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10278,"nodeType":"Block","src":"15099:788:22","statements":[{"AST":{"nativeSrc":"15161:720:22","nodeType":"YulBlock","src":"15161:720:22","statements":[{"nativeSrc":"15175:26:22","nodeType":"YulVariableDeclaration","src":"15175:26:22","value":{"arguments":[{"name":"$.slot","nativeSrc":"15194:6:22","nodeType":"YulIdentifier","src":"15194:6:22"}],"functionName":{"name":"sload","nativeSrc":"15188:5:22","nodeType":"YulIdentifier","src":"15188:5:22"},"nativeSrc":"15188:13:22","nodeType":"YulFunctionCall","src":"15188:13:22"},"variables":[{"name":"state","nativeSrc":"15179:5:22","nodeType":"YulTypedName","src":"15179:5:22","type":""}]},{"nativeSrc":"15242:24:22","nodeType":"YulVariableDeclaration","src":"15242:24:22","value":{"arguments":[{"kind":"number","nativeSrc":"15255:3:22","nodeType":"YulLiteral","src":"15255:3:22","type":"","value":"224"},{"name":"state","nativeSrc":"15260:5:22","nodeType":"YulIdentifier","src":"15260:5:22"}],"functionName":{"name":"shr","nativeSrc":"15251:3:22","nodeType":"YulIdentifier","src":"15251:3:22"},"nativeSrc":"15251:15:22","nodeType":"YulFunctionCall","src":"15251:15:22"},"variables":[{"name":"n","nativeSrc":"15246:1:22","nodeType":"YulTypedName","src":"15246:1:22","type":""}]},{"body":{"nativeSrc":"15321:126:22","nodeType":"YulBlock","src":"15321:126:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15346:4:22","nodeType":"YulLiteral","src":"15346:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15352:10:22","nodeType":"YulLiteral","src":"15352:10:22","type":"","value":"0x61367cc4"}],"functionName":{"name":"mstore","nativeSrc":"15339:6:22","nodeType":"YulIdentifier","src":"15339:6:22"},"nativeSrc":"15339:24:22","nodeType":"YulFunctionCall","src":"15339:24:22"},"nativeSrc":"15339:24:22","nodeType":"YulExpressionStatement","src":"15339:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15422:4:22","nodeType":"YulLiteral","src":"15422:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15428:4:22","nodeType":"YulLiteral","src":"15428:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15415:6:22","nodeType":"YulIdentifier","src":"15415:6:22"},"nativeSrc":"15415:18:22","nodeType":"YulFunctionCall","src":"15415:18:22"},"nativeSrc":"15415:18:22","nodeType":"YulExpressionStatement","src":"15415:18:22"}]},"condition":{"arguments":[{"arguments":[{"name":"index","nativeSrc":"15310:5:22","nodeType":"YulIdentifier","src":"15310:5:22"},{"name":"n","nativeSrc":"15317:1:22","nodeType":"YulIdentifier","src":"15317:1:22"}],"functionName":{"name":"lt","nativeSrc":"15307:2:22","nodeType":"YulIdentifier","src":"15307:2:22"},"nativeSrc":"15307:12:22","nodeType":"YulFunctionCall","src":"15307:12:22"}],"functionName":{"name":"iszero","nativeSrc":"15300:6:22","nodeType":"YulIdentifier","src":"15300:6:22"},"nativeSrc":"15300:20:22","nodeType":"YulFunctionCall","src":"15300:20:22"},"nativeSrc":"15297:150:22","nodeType":"YulIf","src":"15297:150:22"},{"nativeSrc":"15460:24:22","nodeType":"YulVariableDeclaration","src":"15460:24:22","value":{"arguments":[{"name":"n","nativeSrc":"15474:1:22","nodeType":"YulIdentifier","src":"15474:1:22"},{"kind":"number","nativeSrc":"15477:6:22","nodeType":"YulLiteral","src":"15477:6:22","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"15471:2:22","nodeType":"YulIdentifier","src":"15471:2:22"},"nativeSrc":"15471:13:22","nodeType":"YulFunctionCall","src":"15471:13:22"},"variables":[{"name":"u32","nativeSrc":"15464:3:22","nodeType":"YulTypedName","src":"15464:3:22","type":""}]},{"nativeSrc":"15497:62:22","nodeType":"YulVariableDeclaration","src":"15497:62:22","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15518:1:22","nodeType":"YulLiteral","src":"15518:1:22","type":"","value":"4"},{"name":"u32","nativeSrc":"15521:3:22","nodeType":"YulIdentifier","src":"15521:3:22"}],"functionName":{"name":"sub","nativeSrc":"15514:3:22","nodeType":"YulIdentifier","src":"15514:3:22"},"nativeSrc":"15514:11:22","nodeType":"YulFunctionCall","src":"15514:11:22"},{"name":"index","nativeSrc":"15527:5:22","nodeType":"YulIdentifier","src":"15527:5:22"}],"functionName":{"name":"shr","nativeSrc":"15510:3:22","nodeType":"YulIdentifier","src":"15510:3:22"},"nativeSrc":"15510:23:22","nodeType":"YulFunctionCall","src":"15510:23:22"},{"arguments":[{"kind":"number","nativeSrc":"15539:2:22","nodeType":"YulLiteral","src":"15539:2:22","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"15547:2:22","nodeType":"YulLiteral","src":"15547:2:22","type":"","value":"32"},{"name":"state","nativeSrc":"15551:5:22","nodeType":"YulIdentifier","src":"15551:5:22"}],"functionName":{"name":"shl","nativeSrc":"15543:3:22","nodeType":"YulIdentifier","src":"15543:3:22"},"nativeSrc":"15543:14:22","nodeType":"YulFunctionCall","src":"15543:14:22"}],"functionName":{"name":"shr","nativeSrc":"15535:3:22","nodeType":"YulIdentifier","src":"15535:3:22"},"nativeSrc":"15535:23:22","nodeType":"YulFunctionCall","src":"15535:23:22"}],"functionName":{"name":"add","nativeSrc":"15506:3:22","nodeType":"YulIdentifier","src":"15506:3:22"},"nativeSrc":"15506:53:22","nodeType":"YulFunctionCall","src":"15506:53:22"},"variables":[{"name":"s","nativeSrc":"15501:1:22","nodeType":"YulTypedName","src":"15501:1:22","type":""}]},{"nativeSrc":"15588:51:22","nodeType":"YulVariableDeclaration","src":"15588:51:22","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15605:1:22","nodeType":"YulLiteral","src":"15605:1:22","type":"","value":"4"},{"name":"u32","nativeSrc":"15608:3:22","nodeType":"YulIdentifier","src":"15608:3:22"}],"functionName":{"name":"add","nativeSrc":"15601:3:22","nodeType":"YulIdentifier","src":"15601:3:22"},"nativeSrc":"15601:11:22","nodeType":"YulFunctionCall","src":"15601:11:22"},{"arguments":[{"name":"index","nativeSrc":"15618:5:22","nodeType":"YulIdentifier","src":"15618:5:22"},{"arguments":[{"name":"u32","nativeSrc":"15629:3:22","nodeType":"YulIdentifier","src":"15629:3:22"},{"kind":"number","nativeSrc":"15634:2:22","nodeType":"YulLiteral","src":"15634:2:22","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"15625:3:22","nodeType":"YulIdentifier","src":"15625:3:22"},"nativeSrc":"15625:12:22","nodeType":"YulFunctionCall","src":"15625:12:22"}],"functionName":{"name":"and","nativeSrc":"15614:3:22","nodeType":"YulIdentifier","src":"15614:3:22"},"nativeSrc":"15614:24:22","nodeType":"YulFunctionCall","src":"15614:24:22"}],"functionName":{"name":"shl","nativeSrc":"15597:3:22","nodeType":"YulIdentifier","src":"15597:3:22"},"nativeSrc":"15597:42:22","nodeType":"YulFunctionCall","src":"15597:42:22"},"variables":[{"name":"o","nativeSrc":"15592:1:22","nodeType":"YulTypedName","src":"15592:1:22","type":""}]},{"nativeSrc":"15682:37:22","nodeType":"YulVariableDeclaration","src":"15682:37:22","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32","nativeSrc":"15703:3:22","nodeType":"YulIdentifier","src":"15703:3:22"},{"kind":"number","nativeSrc":"15708:2:22","nodeType":"YulLiteral","src":"15708:2:22","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"15699:3:22","nodeType":"YulIdentifier","src":"15699:3:22"},"nativeSrc":"15699:12:22","nodeType":"YulFunctionCall","src":"15699:12:22"},{"kind":"number","nativeSrc":"15713:1:22","nodeType":"YulLiteral","src":"15713:1:22","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"15695:3:22","nodeType":"YulIdentifier","src":"15695:3:22"},"nativeSrc":"15695:20:22","nodeType":"YulFunctionCall","src":"15695:20:22"},{"kind":"number","nativeSrc":"15717:1:22","nodeType":"YulLiteral","src":"15717:1:22","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15691:3:22","nodeType":"YulIdentifier","src":"15691:3:22"},"nativeSrc":"15691:28:22","nodeType":"YulFunctionCall","src":"15691:28:22"},"variables":[{"name":"m","nativeSrc":"15686:1:22","nodeType":"YulTypedName","src":"15686:1:22","type":""}]},{"nativeSrc":"15747:34:22","nodeType":"YulAssignment","src":"15747:34:22","value":{"arguments":[{"name":"m","nativeSrc":"15761:1:22","nodeType":"YulIdentifier","src":"15761:1:22"},{"arguments":[{"name":"o","nativeSrc":"15768:1:22","nodeType":"YulIdentifier","src":"15768:1:22"},{"arguments":[{"name":"s","nativeSrc":"15777:1:22","nodeType":"YulIdentifier","src":"15777:1:22"}],"functionName":{"name":"sload","nativeSrc":"15771:5:22","nodeType":"YulIdentifier","src":"15771:5:22"},"nativeSrc":"15771:8:22","nodeType":"YulFunctionCall","src":"15771:8:22"}],"functionName":{"name":"shr","nativeSrc":"15764:3:22","nodeType":"YulIdentifier","src":"15764:3:22"},"nativeSrc":"15764:16:22","nodeType":"YulFunctionCall","src":"15764:16:22"}],"functionName":{"name":"and","nativeSrc":"15757:3:22","nodeType":"YulIdentifier","src":"15757:3:22"},"nativeSrc":"15757:24:22","nodeType":"YulFunctionCall","src":"15757:24:22"},"variableNames":[{"name":"result","nativeSrc":"15747:6:22","nodeType":"YulIdentifier","src":"15747:6:22"}]},{"nativeSrc":"15794:77:22","nodeType":"YulAssignment","src":"15794:77:22","value":{"arguments":[{"name":"index","nativeSrc":"15808:5:22","nodeType":"YulIdentifier","src":"15808:5:22"},{"arguments":[{"arguments":[{"name":"index","nativeSrc":"15823:5:22","nodeType":"YulIdentifier","src":"15823:5:22"},{"arguments":[{"name":"result","nativeSrc":"15834:6:22","nodeType":"YulIdentifier","src":"15834:6:22"},{"kind":"number","nativeSrc":"15842:1:22","nodeType":"YulLiteral","src":"15842:1:22","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"15830:3:22","nodeType":"YulIdentifier","src":"15830:3:22"},"nativeSrc":"15830:14:22","nodeType":"YulFunctionCall","src":"15830:14:22"}],"functionName":{"name":"xor","nativeSrc":"15819:3:22","nodeType":"YulIdentifier","src":"15819:3:22"},"nativeSrc":"15819:26:22","nodeType":"YulFunctionCall","src":"15819:26:22"},{"arguments":[{"arguments":[{"name":"result","nativeSrc":"15861:6:22","nodeType":"YulIdentifier","src":"15861:6:22"}],"functionName":{"name":"iszero","nativeSrc":"15854:6:22","nodeType":"YulIdentifier","src":"15854:6:22"},"nativeSrc":"15854:14:22","nodeType":"YulFunctionCall","src":"15854:14:22"}],"functionName":{"name":"iszero","nativeSrc":"15847:6:22","nodeType":"YulIdentifier","src":"15847:6:22"},"nativeSrc":"15847:22:22","nodeType":"YulFunctionCall","src":"15847:22:22"}],"functionName":{"name":"mul","nativeSrc":"15815:3:22","nodeType":"YulIdentifier","src":"15815:3:22"},"nativeSrc":"15815:55:22","nodeType":"YulFunctionCall","src":"15815:55:22"}],"functionName":{"name":"xor","nativeSrc":"15804:3:22","nodeType":"YulIdentifier","src":"15804:3:22"},"nativeSrc":"15804:67:22","nodeType":"YulFunctionCall","src":"15804:67:22"},"variableNames":[{"name":"result","nativeSrc":"15794:6:22","nodeType":"YulIdentifier","src":"15794:6:22"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10270,"isOffset":false,"isSlot":true,"src":"15194:6:22","suffix":"slot","valueSize":1},{"declaration":10272,"isOffset":false,"isSlot":false,"src":"15310:5:22","valueSize":1},{"declaration":10272,"isOffset":false,"isSlot":false,"src":"15527:5:22","valueSize":1},{"declaration":10272,"isOffset":false,"isSlot":false,"src":"15618:5:22","valueSize":1},{"declaration":10272,"isOffset":false,"isSlot":false,"src":"15808:5:22","valueSize":1},{"declaration":10272,"isOffset":false,"isSlot":false,"src":"15823:5:22","valueSize":1},{"declaration":10275,"isOffset":false,"isSlot":false,"src":"15747:6:22","valueSize":1},{"declaration":10275,"isOffset":false,"isSlot":false,"src":"15794:6:22","valueSize":1},{"declaration":10275,"isOffset":false,"isSlot":false,"src":"15834:6:22","valueSize":1},{"declaration":10275,"isOffset":false,"isSlot":false,"src":"15861:6:22","valueSize":1}],"id":10277,"nodeType":"InlineAssembly","src":"15152:729:22"}]},"documentation":{"id":10267,"nodeType":"StructuredDocumentation","src":"14833:170:22","text":"@dev Returns the current value stored at `index`, accounting for all historical shuffling.\n Reverts if `index` is greater than or equal to the `length` of `$`."},"id":10279,"implemented":true,"kind":"function","modifiers":[],"name":"get","nameLocation":"15017:3:22","nodeType":"FunctionDefinition","parameters":{"id":10273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10270,"mutability":"mutable","name":"$","nameLocation":"15042:1:22","nodeType":"VariableDeclaration","scope":10279,"src":"15021:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10269,"nodeType":"UserDefinedTypeName","pathNode":{"id":10268,"name":"LazyShuffler","nameLocations":["15021:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"15021:12:22"},"referencedDeclaration":10111,"src":"15021:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10272,"mutability":"mutable","name":"index","nameLocation":"15053:5:22","nodeType":"VariableDeclaration","scope":10279,"src":"15045:13:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10271,"name":"uint256","nodeType":"ElementaryTypeName","src":"15045:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15020:39:22"},"returnParameters":{"id":10276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10275,"mutability":"mutable","name":"result","nameLocation":"15091:6:22","nodeType":"VariableDeclaration","scope":10279,"src":"15083:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10274,"name":"uint256","nodeType":"ElementaryTypeName","src":"15083:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15082:16:22"},"scope":10293,"src":"15008:879:22","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10291,"nodeType":"Block","src":"16339:2072:22","statements":[{"AST":{"nativeSrc":"16401:2004:22","nodeType":"YulBlock","src":"16401:2004:22","statements":[{"body":{"nativeSrc":"16457:421:22","nodeType":"YulBlock","src":"16457:421:22","statements":[{"nativeSrc":"16475:62:22","nodeType":"YulVariableDeclaration","src":"16475:62:22","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16497:1:22","nodeType":"YulLiteral","src":"16497:1:22","type":"","value":"4"},{"name":"u32_","nativeSrc":"16500:4:22","nodeType":"YulIdentifier","src":"16500:4:22"}],"functionName":{"name":"sub","nativeSrc":"16493:3:22","nodeType":"YulIdentifier","src":"16493:3:22"},"nativeSrc":"16493:12:22","nodeType":"YulFunctionCall","src":"16493:12:22"},{"name":"i_","nativeSrc":"16507:2:22","nodeType":"YulIdentifier","src":"16507:2:22"}],"functionName":{"name":"shr","nativeSrc":"16489:3:22","nodeType":"YulIdentifier","src":"16489:3:22"},"nativeSrc":"16489:21:22","nodeType":"YulFunctionCall","src":"16489:21:22"},{"arguments":[{"kind":"number","nativeSrc":"16516:2:22","nodeType":"YulLiteral","src":"16516:2:22","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"16524:2:22","nodeType":"YulLiteral","src":"16524:2:22","type":"","value":"32"},{"name":"state_","nativeSrc":"16528:6:22","nodeType":"YulIdentifier","src":"16528:6:22"}],"functionName":{"name":"shl","nativeSrc":"16520:3:22","nodeType":"YulIdentifier","src":"16520:3:22"},"nativeSrc":"16520:15:22","nodeType":"YulFunctionCall","src":"16520:15:22"}],"functionName":{"name":"shr","nativeSrc":"16512:3:22","nodeType":"YulIdentifier","src":"16512:3:22"},"nativeSrc":"16512:24:22","nodeType":"YulFunctionCall","src":"16512:24:22"}],"functionName":{"name":"add","nativeSrc":"16485:3:22","nodeType":"YulIdentifier","src":"16485:3:22"},"nativeSrc":"16485:52:22","nodeType":"YulFunctionCall","src":"16485:52:22"},"variables":[{"name":"s_","nativeSrc":"16479:2:22","nodeType":"YulTypedName","src":"16479:2:22","type":""}]},{"nativeSrc":"16570:51:22","nodeType":"YulVariableDeclaration","src":"16570:51:22","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16588:1:22","nodeType":"YulLiteral","src":"16588:1:22","type":"","value":"4"},{"name":"u32_","nativeSrc":"16591:4:22","nodeType":"YulIdentifier","src":"16591:4:22"}],"functionName":{"name":"add","nativeSrc":"16584:3:22","nodeType":"YulIdentifier","src":"16584:3:22"},"nativeSrc":"16584:12:22","nodeType":"YulFunctionCall","src":"16584:12:22"},{"arguments":[{"name":"i_","nativeSrc":"16602:2:22","nodeType":"YulIdentifier","src":"16602:2:22"},{"arguments":[{"name":"u32_","nativeSrc":"16610:4:22","nodeType":"YulIdentifier","src":"16610:4:22"},{"kind":"number","nativeSrc":"16616:2:22","nodeType":"YulLiteral","src":"16616:2:22","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"16606:3:22","nodeType":"YulIdentifier","src":"16606:3:22"},"nativeSrc":"16606:13:22","nodeType":"YulFunctionCall","src":"16606:13:22"}],"functionName":{"name":"and","nativeSrc":"16598:3:22","nodeType":"YulIdentifier","src":"16598:3:22"},"nativeSrc":"16598:22:22","nodeType":"YulFunctionCall","src":"16598:22:22"}],"functionName":{"name":"shl","nativeSrc":"16580:3:22","nodeType":"YulIdentifier","src":"16580:3:22"},"nativeSrc":"16580:41:22","nodeType":"YulFunctionCall","src":"16580:41:22"},"variables":[{"name":"o_","nativeSrc":"16574:2:22","nodeType":"YulTypedName","src":"16574:2:22","type":""}]},{"nativeSrc":"16668:39:22","nodeType":"YulVariableDeclaration","src":"16668:39:22","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32_","nativeSrc":"16690:4:22","nodeType":"YulIdentifier","src":"16690:4:22"},{"kind":"number","nativeSrc":"16696:2:22","nodeType":"YulLiteral","src":"16696:2:22","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"16686:3:22","nodeType":"YulIdentifier","src":"16686:3:22"},"nativeSrc":"16686:13:22","nodeType":"YulFunctionCall","src":"16686:13:22"},{"kind":"number","nativeSrc":"16701:1:22","nodeType":"YulLiteral","src":"16701:1:22","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"16682:3:22","nodeType":"YulIdentifier","src":"16682:3:22"},"nativeSrc":"16682:21:22","nodeType":"YulFunctionCall","src":"16682:21:22"},{"kind":"number","nativeSrc":"16705:1:22","nodeType":"YulLiteral","src":"16705:1:22","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16678:3:22","nodeType":"YulIdentifier","src":"16678:3:22"},"nativeSrc":"16678:29:22","nodeType":"YulFunctionCall","src":"16678:29:22"},"variables":[{"name":"m_","nativeSrc":"16672:2:22","nodeType":"YulTypedName","src":"16672:2:22","type":""}]},{"nativeSrc":"16739:37:22","nodeType":"YulAssignment","src":"16739:37:22","value":{"arguments":[{"name":"m_","nativeSrc":"16753:2:22","nodeType":"YulIdentifier","src":"16753:2:22"},{"arguments":[{"name":"o_","nativeSrc":"16761:2:22","nodeType":"YulIdentifier","src":"16761:2:22"},{"arguments":[{"name":"s_","nativeSrc":"16771:2:22","nodeType":"YulIdentifier","src":"16771:2:22"}],"functionName":{"name":"sload","nativeSrc":"16765:5:22","nodeType":"YulIdentifier","src":"16765:5:22"},"nativeSrc":"16765:9:22","nodeType":"YulFunctionCall","src":"16765:9:22"}],"functionName":{"name":"shr","nativeSrc":"16757:3:22","nodeType":"YulIdentifier","src":"16757:3:22"},"nativeSrc":"16757:18:22","nodeType":"YulFunctionCall","src":"16757:18:22"}],"functionName":{"name":"and","nativeSrc":"16749:3:22","nodeType":"YulIdentifier","src":"16749:3:22"},"nativeSrc":"16749:27:22","nodeType":"YulFunctionCall","src":"16749:27:22"},"variableNames":[{"name":"_value","nativeSrc":"16739:6:22","nodeType":"YulIdentifier","src":"16739:6:22"}]},{"nativeSrc":"16793:71:22","nodeType":"YulAssignment","src":"16793:71:22","value":{"arguments":[{"name":"i_","nativeSrc":"16807:2:22","nodeType":"YulIdentifier","src":"16807:2:22"},{"arguments":[{"arguments":[{"name":"i_","nativeSrc":"16819:2:22","nodeType":"YulIdentifier","src":"16819:2:22"},{"arguments":[{"name":"_value","nativeSrc":"16827:6:22","nodeType":"YulIdentifier","src":"16827:6:22"},{"kind":"number","nativeSrc":"16835:1:22","nodeType":"YulLiteral","src":"16835:1:22","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"16823:3:22","nodeType":"YulIdentifier","src":"16823:3:22"},"nativeSrc":"16823:14:22","nodeType":"YulFunctionCall","src":"16823:14:22"}],"functionName":{"name":"xor","nativeSrc":"16815:3:22","nodeType":"YulIdentifier","src":"16815:3:22"},"nativeSrc":"16815:23:22","nodeType":"YulFunctionCall","src":"16815:23:22"},{"arguments":[{"arguments":[{"name":"_value","nativeSrc":"16854:6:22","nodeType":"YulIdentifier","src":"16854:6:22"}],"functionName":{"name":"iszero","nativeSrc":"16847:6:22","nodeType":"YulIdentifier","src":"16847:6:22"},"nativeSrc":"16847:14:22","nodeType":"YulFunctionCall","src":"16847:14:22"}],"functionName":{"name":"iszero","nativeSrc":"16840:6:22","nodeType":"YulIdentifier","src":"16840:6:22"},"nativeSrc":"16840:22:22","nodeType":"YulFunctionCall","src":"16840:22:22"}],"functionName":{"name":"mul","nativeSrc":"16811:3:22","nodeType":"YulIdentifier","src":"16811:3:22"},"nativeSrc":"16811:52:22","nodeType":"YulFunctionCall","src":"16811:52:22"}],"functionName":{"name":"xor","nativeSrc":"16803:3:22","nodeType":"YulIdentifier","src":"16803:3:22"},"nativeSrc":"16803:61:22","nodeType":"YulFunctionCall","src":"16803:61:22"},"variableNames":[{"name":"_value","nativeSrc":"16793:6:22","nodeType":"YulIdentifier","src":"16793:6:22"}]}]},"name":"_get","nativeSrc":"16415:463:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"u32_","nativeSrc":"16429:4:22","nodeType":"YulTypedName","src":"16429:4:22","type":""},{"name":"state_","nativeSrc":"16435:6:22","nodeType":"YulTypedName","src":"16435:6:22","type":""},{"name":"i_","nativeSrc":"16443:2:22","nodeType":"YulTypedName","src":"16443:2:22","type":""}],"returnVariables":[{"name":"_value","nativeSrc":"16450:6:22","nodeType":"YulTypedName","src":"16450:6:22","type":""}],"src":"16415:463:22"},{"body":{"nativeSrc":"16931:487:22","nodeType":"YulBlock","src":"16931:487:22","statements":[{"nativeSrc":"16949:62:22","nodeType":"YulVariableDeclaration","src":"16949:62:22","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16971:1:22","nodeType":"YulLiteral","src":"16971:1:22","type":"","value":"4"},{"name":"u32_","nativeSrc":"16974:4:22","nodeType":"YulIdentifier","src":"16974:4:22"}],"functionName":{"name":"sub","nativeSrc":"16967:3:22","nodeType":"YulIdentifier","src":"16967:3:22"},"nativeSrc":"16967:12:22","nodeType":"YulFunctionCall","src":"16967:12:22"},{"name":"i_","nativeSrc":"16981:2:22","nodeType":"YulIdentifier","src":"16981:2:22"}],"functionName":{"name":"shr","nativeSrc":"16963:3:22","nodeType":"YulIdentifier","src":"16963:3:22"},"nativeSrc":"16963:21:22","nodeType":"YulFunctionCall","src":"16963:21:22"},{"arguments":[{"kind":"number","nativeSrc":"16990:2:22","nodeType":"YulLiteral","src":"16990:2:22","type":"","value":"64"},{"arguments":[{"kind":"number","nativeSrc":"16998:2:22","nodeType":"YulLiteral","src":"16998:2:22","type":"","value":"32"},{"name":"state_","nativeSrc":"17002:6:22","nodeType":"YulIdentifier","src":"17002:6:22"}],"functionName":{"name":"shl","nativeSrc":"16994:3:22","nodeType":"YulIdentifier","src":"16994:3:22"},"nativeSrc":"16994:15:22","nodeType":"YulFunctionCall","src":"16994:15:22"}],"functionName":{"name":"shr","nativeSrc":"16986:3:22","nodeType":"YulIdentifier","src":"16986:3:22"},"nativeSrc":"16986:24:22","nodeType":"YulFunctionCall","src":"16986:24:22"}],"functionName":{"name":"add","nativeSrc":"16959:3:22","nodeType":"YulIdentifier","src":"16959:3:22"},"nativeSrc":"16959:52:22","nodeType":"YulFunctionCall","src":"16959:52:22"},"variables":[{"name":"s_","nativeSrc":"16953:2:22","nodeType":"YulTypedName","src":"16953:2:22","type":""}]},{"nativeSrc":"17044:51:22","nodeType":"YulVariableDeclaration","src":"17044:51:22","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17062:1:22","nodeType":"YulLiteral","src":"17062:1:22","type":"","value":"4"},{"name":"u32_","nativeSrc":"17065:4:22","nodeType":"YulIdentifier","src":"17065:4:22"}],"functionName":{"name":"add","nativeSrc":"17058:3:22","nodeType":"YulIdentifier","src":"17058:3:22"},"nativeSrc":"17058:12:22","nodeType":"YulFunctionCall","src":"17058:12:22"},{"arguments":[{"name":"i_","nativeSrc":"17076:2:22","nodeType":"YulIdentifier","src":"17076:2:22"},{"arguments":[{"name":"u32_","nativeSrc":"17084:4:22","nodeType":"YulIdentifier","src":"17084:4:22"},{"kind":"number","nativeSrc":"17090:2:22","nodeType":"YulLiteral","src":"17090:2:22","type":"","value":"15"}],"functionName":{"name":"shr","nativeSrc":"17080:3:22","nodeType":"YulIdentifier","src":"17080:3:22"},"nativeSrc":"17080:13:22","nodeType":"YulFunctionCall","src":"17080:13:22"}],"functionName":{"name":"and","nativeSrc":"17072:3:22","nodeType":"YulIdentifier","src":"17072:3:22"},"nativeSrc":"17072:22:22","nodeType":"YulFunctionCall","src":"17072:22:22"}],"functionName":{"name":"shl","nativeSrc":"17054:3:22","nodeType":"YulIdentifier","src":"17054:3:22"},"nativeSrc":"17054:41:22","nodeType":"YulFunctionCall","src":"17054:41:22"},"variables":[{"name":"o_","nativeSrc":"17048:2:22","nodeType":"YulTypedName","src":"17048:2:22","type":""}]},{"nativeSrc":"17142:39:22","nodeType":"YulVariableDeclaration","src":"17142:39:22","value":{"arguments":[{"arguments":[{"arguments":[{"name":"u32_","nativeSrc":"17164:4:22","nodeType":"YulIdentifier","src":"17164:4:22"},{"kind":"number","nativeSrc":"17170:2:22","nodeType":"YulLiteral","src":"17170:2:22","type":"","value":"16"}],"functionName":{"name":"shl","nativeSrc":"17160:3:22","nodeType":"YulIdentifier","src":"17160:3:22"},"nativeSrc":"17160:13:22","nodeType":"YulFunctionCall","src":"17160:13:22"},{"kind":"number","nativeSrc":"17175:1:22","nodeType":"YulLiteral","src":"17175:1:22","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"17156:3:22","nodeType":"YulIdentifier","src":"17156:3:22"},"nativeSrc":"17156:21:22","nodeType":"YulFunctionCall","src":"17156:21:22"},{"kind":"number","nativeSrc":"17179:1:22","nodeType":"YulLiteral","src":"17179:1:22","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"17152:3:22","nodeType":"YulIdentifier","src":"17152:3:22"},"nativeSrc":"17152:29:22","nodeType":"YulFunctionCall","src":"17152:29:22"},"variables":[{"name":"m_","nativeSrc":"17146:2:22","nodeType":"YulTypedName","src":"17146:2:22","type":""}]},{"nativeSrc":"17213:19:22","nodeType":"YulVariableDeclaration","src":"17213:19:22","value":{"arguments":[{"name":"s_","nativeSrc":"17229:2:22","nodeType":"YulIdentifier","src":"17229:2:22"}],"functionName":{"name":"sload","nativeSrc":"17223:5:22","nodeType":"YulIdentifier","src":"17223:5:22"},"nativeSrc":"17223:9:22","nodeType":"YulFunctionCall","src":"17223:9:22"},"variables":[{"name":"v_","nativeSrc":"17217:2:22","nodeType":"YulTypedName","src":"17217:2:22","type":""}]},{"nativeSrc":"17271:53:22","nodeType":"YulAssignment","src":"17271:53:22","value":{"arguments":[{"arguments":[{"arguments":[{"name":"i_","nativeSrc":"17295:2:22","nodeType":"YulIdentifier","src":"17295:2:22"},{"name":"value_","nativeSrc":"17299:6:22","nodeType":"YulIdentifier","src":"17299:6:22"}],"functionName":{"name":"eq","nativeSrc":"17292:2:22","nodeType":"YulIdentifier","src":"17292:2:22"},"nativeSrc":"17292:14:22","nodeType":"YulFunctionCall","src":"17292:14:22"}],"functionName":{"name":"iszero","nativeSrc":"17285:6:22","nodeType":"YulIdentifier","src":"17285:6:22"},"nativeSrc":"17285:22:22","nodeType":"YulFunctionCall","src":"17285:22:22"},{"arguments":[{"name":"value_","nativeSrc":"17313:6:22","nodeType":"YulIdentifier","src":"17313:6:22"},{"kind":"number","nativeSrc":"17321:1:22","nodeType":"YulLiteral","src":"17321:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17309:3:22","nodeType":"YulIdentifier","src":"17309:3:22"},"nativeSrc":"17309:14:22","nodeType":"YulFunctionCall","src":"17309:14:22"}],"functionName":{"name":"mul","nativeSrc":"17281:3:22","nodeType":"YulIdentifier","src":"17281:3:22"},"nativeSrc":"17281:43:22","nodeType":"YulFunctionCall","src":"17281:43:22"},"variableNames":[{"name":"value_","nativeSrc":"17271:6:22","nodeType":"YulIdentifier","src":"17271:6:22"}]},{"expression":{"arguments":[{"name":"s_","nativeSrc":"17348:2:22","nodeType":"YulIdentifier","src":"17348:2:22"},{"arguments":[{"name":"v_","nativeSrc":"17356:2:22","nodeType":"YulIdentifier","src":"17356:2:22"},{"arguments":[{"name":"o_","nativeSrc":"17364:2:22","nodeType":"YulIdentifier","src":"17364:2:22"},{"arguments":[{"name":"m_","nativeSrc":"17372:2:22","nodeType":"YulIdentifier","src":"17372:2:22"},{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"17384:2:22","nodeType":"YulIdentifier","src":"17384:2:22"},{"name":"v_","nativeSrc":"17388:2:22","nodeType":"YulIdentifier","src":"17388:2:22"}],"functionName":{"name":"shr","nativeSrc":"17380:3:22","nodeType":"YulIdentifier","src":"17380:3:22"},"nativeSrc":"17380:11:22","nodeType":"YulFunctionCall","src":"17380:11:22"},{"name":"value_","nativeSrc":"17393:6:22","nodeType":"YulIdentifier","src":"17393:6:22"}],"functionName":{"name":"xor","nativeSrc":"17376:3:22","nodeType":"YulIdentifier","src":"17376:3:22"},"nativeSrc":"17376:24:22","nodeType":"YulFunctionCall","src":"17376:24:22"}],"functionName":{"name":"and","nativeSrc":"17368:3:22","nodeType":"YulIdentifier","src":"17368:3:22"},"nativeSrc":"17368:33:22","nodeType":"YulFunctionCall","src":"17368:33:22"}],"functionName":{"name":"shl","nativeSrc":"17360:3:22","nodeType":"YulIdentifier","src":"17360:3:22"},"nativeSrc":"17360:42:22","nodeType":"YulFunctionCall","src":"17360:42:22"}],"functionName":{"name":"xor","nativeSrc":"17352:3:22","nodeType":"YulIdentifier","src":"17352:3:22"},"nativeSrc":"17352:51:22","nodeType":"YulFunctionCall","src":"17352:51:22"}],"functionName":{"name":"sstore","nativeSrc":"17341:6:22","nodeType":"YulIdentifier","src":"17341:6:22"},"nativeSrc":"17341:63:22","nodeType":"YulFunctionCall","src":"17341:63:22"},"nativeSrc":"17341:63:22","nodeType":"YulExpressionStatement","src":"17341:63:22"}]},"name":"_set","nativeSrc":"16891:527:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"u32_","nativeSrc":"16905:4:22","nodeType":"YulTypedName","src":"16905:4:22","type":""},{"name":"state_","nativeSrc":"16911:6:22","nodeType":"YulTypedName","src":"16911:6:22","type":""},{"name":"i_","nativeSrc":"16919:2:22","nodeType":"YulTypedName","src":"16919:2:22","type":""},{"name":"value_","nativeSrc":"16923:6:22","nodeType":"YulTypedName","src":"16923:6:22","type":""}],"src":"16891:527:22"},{"nativeSrc":"17431:26:22","nodeType":"YulVariableDeclaration","src":"17431:26:22","value":{"arguments":[{"name":"$.slot","nativeSrc":"17450:6:22","nodeType":"YulIdentifier","src":"17450:6:22"}],"functionName":{"name":"sload","nativeSrc":"17444:5:22","nodeType":"YulIdentifier","src":"17444:5:22"},"nativeSrc":"17444:13:22","nodeType":"YulFunctionCall","src":"17444:13:22"},"variables":[{"name":"state","nativeSrc":"17435:5:22","nodeType":"YulTypedName","src":"17435:5:22","type":""}]},{"nativeSrc":"17498:38:22","nodeType":"YulVariableDeclaration","src":"17498:38:22","value":{"arguments":[{"kind":"number","nativeSrc":"17518:10:22","nodeType":"YulLiteral","src":"17518:10:22","type":"","value":"0xffffffff"},{"name":"state","nativeSrc":"17530:5:22","nodeType":"YulIdentifier","src":"17530:5:22"}],"functionName":{"name":"and","nativeSrc":"17514:3:22","nodeType":"YulIdentifier","src":"17514:3:22"},"nativeSrc":"17514:22:22","nodeType":"YulFunctionCall","src":"17514:22:22"},"variables":[{"name":"shuffled","nativeSrc":"17502:8:22","nodeType":"YulTypedName","src":"17502:8:22","type":""}]},{"nativeSrc":"17581:24:22","nodeType":"YulVariableDeclaration","src":"17581:24:22","value":{"arguments":[{"kind":"number","nativeSrc":"17594:3:22","nodeType":"YulLiteral","src":"17594:3:22","type":"","value":"224"},{"name":"state","nativeSrc":"17599:5:22","nodeType":"YulIdentifier","src":"17599:5:22"}],"functionName":{"name":"shr","nativeSrc":"17590:3:22","nodeType":"YulIdentifier","src":"17590:3:22"},"nativeSrc":"17590:15:22","nodeType":"YulFunctionCall","src":"17590:15:22"},"variables":[{"name":"n","nativeSrc":"17585:1:22","nodeType":"YulTypedName","src":"17585:1:22","type":""}]},{"nativeSrc":"17636:33:22","nodeType":"YulVariableDeclaration","src":"17636:33:22","value":{"arguments":[{"name":"n","nativeSrc":"17657:1:22","nodeType":"YulIdentifier","src":"17657:1:22"},{"name":"shuffled","nativeSrc":"17660:8:22","nodeType":"YulIdentifier","src":"17660:8:22"}],"functionName":{"name":"sub","nativeSrc":"17653:3:22","nodeType":"YulIdentifier","src":"17653:3:22"},"nativeSrc":"17653:16:22","nodeType":"YulFunctionCall","src":"17653:16:22"},"variables":[{"name":"remainder","nativeSrc":"17640:9:22","nodeType":"YulTypedName","src":"17640:9:22","type":""}]},{"body":{"nativeSrc":"17742:119:22","nodeType":"YulBlock","src":"17742:119:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17767:4:22","nodeType":"YulLiteral","src":"17767:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17773:10:22","nodeType":"YulLiteral","src":"17773:10:22","type":"","value":"0x51065f79"}],"functionName":{"name":"mstore","nativeSrc":"17760:6:22","nodeType":"YulIdentifier","src":"17760:6:22"},"nativeSrc":"17760:24:22","nodeType":"YulFunctionCall","src":"17760:24:22"},"nativeSrc":"17760:24:22","nodeType":"YulExpressionStatement","src":"17760:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17836:4:22","nodeType":"YulLiteral","src":"17836:4:22","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"17842:4:22","nodeType":"YulLiteral","src":"17842:4:22","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"17829:6:22","nodeType":"YulIdentifier","src":"17829:6:22"},"nativeSrc":"17829:18:22","nodeType":"YulFunctionCall","src":"17829:18:22"},"nativeSrc":"17829:18:22","nodeType":"YulExpressionStatement","src":"17829:18:22"}]},"condition":{"arguments":[{"name":"remainder","nativeSrc":"17731:9:22","nodeType":"YulIdentifier","src":"17731:9:22"}],"functionName":{"name":"iszero","nativeSrc":"17724:6:22","nodeType":"YulIdentifier","src":"17724:6:22"},"nativeSrc":"17724:17:22","nodeType":"YulFunctionCall","src":"17724:17:22"},"nativeSrc":"17721:140:22","nodeType":"YulIf","src":"17721:140:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17881:4:22","nodeType":"YulLiteral","src":"17881:4:22","type":"","value":"0x00"},{"name":"randomness","nativeSrc":"17887:10:22","nodeType":"YulIdentifier","src":"17887:10:22"}],"functionName":{"name":"mstore","nativeSrc":"17874:6:22","nodeType":"YulIdentifier","src":"17874:6:22"},"nativeSrc":"17874:24:22","nodeType":"YulFunctionCall","src":"17874:24:22"},"nativeSrc":"17874:24:22","nodeType":"YulExpressionStatement","src":"17874:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17962:4:22","nodeType":"YulLiteral","src":"17962:4:22","type":"","value":"0x20"},{"name":"shuffled","nativeSrc":"17968:8:22","nodeType":"YulIdentifier","src":"17968:8:22"}],"functionName":{"name":"mstore","nativeSrc":"17955:6:22","nodeType":"YulIdentifier","src":"17955:6:22"},"nativeSrc":"17955:22:22","nodeType":"YulFunctionCall","src":"17955:22:22"},"nativeSrc":"17955:22:22","nodeType":"YulExpressionStatement","src":"17955:22:22"},{"nativeSrc":"18040:65:22","nodeType":"YulVariableDeclaration","src":"18040:65:22","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18071:4:22","nodeType":"YulLiteral","src":"18071:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18077:4:22","nodeType":"YulLiteral","src":"18077:4:22","type":"","value":"0x40"}],"functionName":{"name":"keccak256","nativeSrc":"18061:9:22","nodeType":"YulIdentifier","src":"18061:9:22"},"nativeSrc":"18061:21:22","nodeType":"YulFunctionCall","src":"18061:21:22"},{"name":"remainder","nativeSrc":"18084:9:22","nodeType":"YulIdentifier","src":"18084:9:22"}],"functionName":{"name":"mod","nativeSrc":"18057:3:22","nodeType":"YulIdentifier","src":"18057:3:22"},"nativeSrc":"18057:37:22","nodeType":"YulFunctionCall","src":"18057:37:22"},{"name":"shuffled","nativeSrc":"18096:8:22","nodeType":"YulIdentifier","src":"18096:8:22"}],"functionName":{"name":"add","nativeSrc":"18053:3:22","nodeType":"YulIdentifier","src":"18053:3:22"},"nativeSrc":"18053:52:22","nodeType":"YulFunctionCall","src":"18053:52:22"},"variables":[{"name":"index","nativeSrc":"18044:5:22","nodeType":"YulTypedName","src":"18044:5:22","type":""}]},{"nativeSrc":"18118:43:22","nodeType":"YulAssignment","src":"18118:43:22","value":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18136:1:22","nodeType":"YulIdentifier","src":"18136:1:22"},{"kind":"number","nativeSrc":"18139:6:22","nodeType":"YulLiteral","src":"18139:6:22","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18133:2:22","nodeType":"YulIdentifier","src":"18133:2:22"},"nativeSrc":"18133:13:22","nodeType":"YulFunctionCall","src":"18133:13:22"},{"name":"state","nativeSrc":"18148:5:22","nodeType":"YulIdentifier","src":"18148:5:22"},{"name":"index","nativeSrc":"18155:5:22","nodeType":"YulIdentifier","src":"18155:5:22"}],"functionName":{"name":"_get","nativeSrc":"18128:4:22","nodeType":"YulIdentifier","src":"18128:4:22"},"nativeSrc":"18128:33:22","nodeType":"YulFunctionCall","src":"18128:33:22"},"variableNames":[{"name":"chosen","nativeSrc":"18118:6:22","nodeType":"YulIdentifier","src":"18118:6:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18182:1:22","nodeType":"YulIdentifier","src":"18182:1:22"},{"kind":"number","nativeSrc":"18185:6:22","nodeType":"YulLiteral","src":"18185:6:22","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18179:2:22","nodeType":"YulIdentifier","src":"18179:2:22"},"nativeSrc":"18179:13:22","nodeType":"YulFunctionCall","src":"18179:13:22"},{"name":"state","nativeSrc":"18194:5:22","nodeType":"YulIdentifier","src":"18194:5:22"},{"name":"index","nativeSrc":"18201:5:22","nodeType":"YulIdentifier","src":"18201:5:22"},{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18216:1:22","nodeType":"YulIdentifier","src":"18216:1:22"},{"kind":"number","nativeSrc":"18219:6:22","nodeType":"YulLiteral","src":"18219:6:22","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18213:2:22","nodeType":"YulIdentifier","src":"18213:2:22"},"nativeSrc":"18213:13:22","nodeType":"YulFunctionCall","src":"18213:13:22"},{"name":"state","nativeSrc":"18228:5:22","nodeType":"YulIdentifier","src":"18228:5:22"},{"name":"shuffled","nativeSrc":"18235:8:22","nodeType":"YulIdentifier","src":"18235:8:22"}],"functionName":{"name":"_get","nativeSrc":"18208:4:22","nodeType":"YulIdentifier","src":"18208:4:22"},"nativeSrc":"18208:36:22","nodeType":"YulFunctionCall","src":"18208:36:22"}],"functionName":{"name":"_set","nativeSrc":"18174:4:22","nodeType":"YulIdentifier","src":"18174:4:22"},"nativeSrc":"18174:71:22","nodeType":"YulFunctionCall","src":"18174:71:22"},"nativeSrc":"18174:71:22","nodeType":"YulExpressionStatement","src":"18174:71:22"},{"expression":{"arguments":[{"arguments":[{"name":"n","nativeSrc":"18266:1:22","nodeType":"YulIdentifier","src":"18266:1:22"},{"kind":"number","nativeSrc":"18269:6:22","nodeType":"YulLiteral","src":"18269:6:22","type":"","value":"0xfffe"}],"functionName":{"name":"gt","nativeSrc":"18263:2:22","nodeType":"YulIdentifier","src":"18263:2:22"},"nativeSrc":"18263:13:22","nodeType":"YulFunctionCall","src":"18263:13:22"},{"name":"state","nativeSrc":"18278:5:22","nodeType":"YulIdentifier","src":"18278:5:22"},{"name":"shuffled","nativeSrc":"18285:8:22","nodeType":"YulIdentifier","src":"18285:8:22"},{"name":"chosen","nativeSrc":"18295:6:22","nodeType":"YulIdentifier","src":"18295:6:22"}],"functionName":{"name":"_set","nativeSrc":"18258:4:22","nodeType":"YulIdentifier","src":"18258:4:22"},"nativeSrc":"18258:44:22","nodeType":"YulFunctionCall","src":"18258:44:22"},"nativeSrc":"18258:44:22","nodeType":"YulExpressionStatement","src":"18258:44:22"},{"expression":{"arguments":[{"name":"$.slot","nativeSrc":"18322:6:22","nodeType":"YulIdentifier","src":"18322:6:22"},{"arguments":[{"kind":"number","nativeSrc":"18334:1:22","nodeType":"YulLiteral","src":"18334:1:22","type":"","value":"1"},{"name":"state","nativeSrc":"18337:5:22","nodeType":"YulIdentifier","src":"18337:5:22"}],"functionName":{"name":"add","nativeSrc":"18330:3:22","nodeType":"YulIdentifier","src":"18330:3:22"},"nativeSrc":"18330:13:22","nodeType":"YulFunctionCall","src":"18330:13:22"}],"functionName":{"name":"sstore","nativeSrc":"18315:6:22","nodeType":"YulIdentifier","src":"18315:6:22"},"nativeSrc":"18315:29:22","nodeType":"YulFunctionCall","src":"18315:29:22"},"nativeSrc":"18315:29:22","nodeType":"YulExpressionStatement","src":"18315:29:22"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10283,"isOffset":false,"isSlot":true,"src":"17450:6:22","suffix":"slot","valueSize":1},{"declaration":10283,"isOffset":false,"isSlot":true,"src":"18322:6:22","suffix":"slot","valueSize":1},{"declaration":10288,"isOffset":false,"isSlot":false,"src":"18118:6:22","valueSize":1},{"declaration":10288,"isOffset":false,"isSlot":false,"src":"18295:6:22","valueSize":1},{"declaration":10285,"isOffset":false,"isSlot":false,"src":"17887:10:22","valueSize":1}],"id":10290,"nodeType":"InlineAssembly","src":"16392:2013:22"}]},"documentation":{"id":10280,"nodeType":"StructuredDocumentation","src":"15893:349:22","text":"@dev Does a single Fisher-Yates shuffle step, increments the `numShuffled` in `$`,\n and returns the next value in the shuffled range.\n `randomness` can be taken from a good-enough source, or a higher quality source like VRF.\n Reverts if there are no more values to shuffle, which includes the case if `$` is not initialized."},"id":10292,"implemented":true,"kind":"function","modifiers":[],"name":"next","nameLocation":"16256:4:22","nodeType":"FunctionDefinition","parameters":{"id":10286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10283,"mutability":"mutable","name":"$","nameLocation":"16282:1:22","nodeType":"VariableDeclaration","scope":10292,"src":"16261:22:22","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"},"typeName":{"id":10282,"nodeType":"UserDefinedTypeName","pathNode":{"id":10281,"name":"LazyShuffler","nameLocations":["16261:12:22"],"nodeType":"IdentifierPath","referencedDeclaration":10111,"src":"16261:12:22"},"referencedDeclaration":10111,"src":"16261:12:22","typeDescriptions":{"typeIdentifier":"t_struct$_LazyShuffler_$10111_storage_ptr","typeString":"struct LibPRNG.LazyShuffler"}},"visibility":"internal"},{"constant":false,"id":10285,"mutability":"mutable","name":"randomness","nameLocation":"16293:10:22","nodeType":"VariableDeclaration","scope":10292,"src":"16285:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10284,"name":"uint256","nodeType":"ElementaryTypeName","src":"16285:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16260:44:22"},"returnParameters":{"id":10289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10288,"mutability":"mutable","name":"chosen","nameLocation":"16331:6:22","nodeType":"VariableDeclaration","scope":10292,"src":"16323:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10287,"name":"uint256","nodeType":"ElementaryTypeName","src":"16323:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16322:16:22"},"scope":10293,"src":"16247:2164:22","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":10294,"src":"375:18038:22","usedErrors":[10084,10087,10090,10093,10096,10099],"usedEvents":[]}],"src":"32:18382:22"},"id":22},"@solady/utils/LibString.sol":{"ast":{"absolutePath":"@solady/utils/LibString.sol","exportedSymbols":{"LibString":[10950]},"id":10951,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10295,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:23"},{"abstract":false,"baseContracts":[],"canonicalName":"LibString","contractDependencies":[],"contractKind":"library","documentation":{"id":10296,"nodeType":"StructuredDocumentation","src":"57:591:23","text":"@notice Library for converting numbers into strings and other string operations.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\n @dev Note:\n For performance and bytecode compactness, most of the string operations are restricted to\n byte strings (7-bit ASCII), except where otherwise specified.\n Usage of byte string operations on charsets with runes spanning two or more bytes\n can lead to undefined behavior."},"fullyImplemented":true,"id":10950,"linearizedBaseContracts":[10950],"name":"LibString","nameLocation":"656:9:23","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10297,"nodeType":"StructuredDocumentation","src":"955:77:23","text":"@dev The length of the output is too small to contain all the hex digits."},"errorSelector":"2194895a","id":10299,"name":"HexLengthInsufficient","nameLocation":"1043:21:23","nodeType":"ErrorDefinition","parameters":{"id":10298,"nodeType":"ParameterList","parameters":[],"src":"1064:2:23"},"src":"1037:30:23"},{"documentation":{"id":10300,"nodeType":"StructuredDocumentation","src":"1073:56:23","text":"@dev The length of the string is more than 32 bytes."},"errorSelector":"ec92f9a3","id":10302,"name":"TooBigForSmallString","nameLocation":"1140:20:23","nodeType":"ErrorDefinition","parameters":{"id":10301,"nodeType":"ParameterList","parameters":[],"src":"1160:2:23"},"src":"1134:29:23"},{"constant":true,"documentation":{"id":10303,"nodeType":"StructuredDocumentation","src":"1452:76:23","text":"@dev The constant returned when the `search` is not found in the string."},"id":10310,"mutability":"constant","name":"NOT_FOUND","nameLocation":"1559:9:23","nodeType":"VariableDeclaration","scope":10950,"src":"1533:55:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1533:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"arguments":[{"id":10307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1576:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10306,"name":"uint256","nodeType":"ElementaryTypeName","src":"1576:7:23","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":10305,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1571:4:23","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1571:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":10309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1585:3:23","memberName":"max","nodeType":"MemberAccess","src":"1571:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"body":{"id":10319,"nodeType":"Block","src":"2021:1566:23","statements":[{"AST":{"nativeSrc":"2083:1498:23","nodeType":"YulBlock","src":"2083:1498:23","statements":[{"nativeSrc":"2423:29:23","nodeType":"YulAssignment","src":"2423:29:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2440:4:23","nodeType":"YulLiteral","src":"2440:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2434:5:23","nodeType":"YulIdentifier","src":"2434:5:23"},"nativeSrc":"2434:11:23","nodeType":"YulFunctionCall","src":"2434:11:23"},{"kind":"number","nativeSrc":"2447:4:23","nodeType":"YulLiteral","src":"2447:4:23","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"2430:3:23","nodeType":"YulIdentifier","src":"2430:3:23"},"nativeSrc":"2430:22:23","nodeType":"YulFunctionCall","src":"2430:22:23"},"variableNames":[{"name":"str","nativeSrc":"2423:3:23","nodeType":"YulIdentifier","src":"2423:3:23"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2531:4:23","nodeType":"YulLiteral","src":"2531:4:23","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"2541:3:23","nodeType":"YulIdentifier","src":"2541:3:23"},{"kind":"number","nativeSrc":"2546:4:23","nodeType":"YulLiteral","src":"2546:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2537:3:23","nodeType":"YulIdentifier","src":"2537:3:23"},"nativeSrc":"2537:14:23","nodeType":"YulFunctionCall","src":"2537:14:23"}],"functionName":{"name":"mstore","nativeSrc":"2524:6:23","nodeType":"YulIdentifier","src":"2524:6:23"},"nativeSrc":"2524:28:23","nodeType":"YulFunctionCall","src":"2524:28:23"},"nativeSrc":"2524:28:23","nodeType":"YulExpressionStatement","src":"2524:28:23"},{"expression":{"arguments":[{"name":"str","nativeSrc":"2622:3:23","nodeType":"YulIdentifier","src":"2622:3:23"},{"kind":"number","nativeSrc":"2627:1:23","nodeType":"YulLiteral","src":"2627:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2615:6:23","nodeType":"YulIdentifier","src":"2615:6:23"},"nativeSrc":"2615:14:23","nodeType":"YulFunctionCall","src":"2615:14:23"},"nativeSrc":"2615:14:23","nodeType":"YulExpressionStatement","src":"2615:14:23"},{"nativeSrc":"2717:14:23","nodeType":"YulVariableDeclaration","src":"2717:14:23","value":{"name":"str","nativeSrc":"2728:3:23","nodeType":"YulIdentifier","src":"2728:3:23"},"variables":[{"name":"end","nativeSrc":"2721:3:23","nodeType":"YulTypedName","src":"2721:3:23","type":""}]},{"nativeSrc":"2745:15:23","nodeType":"YulVariableDeclaration","src":"2745:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"2758:1:23","nodeType":"YulLiteral","src":"2758:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"2754:3:23","nodeType":"YulIdentifier","src":"2754:3:23"},"nativeSrc":"2754:6:23","nodeType":"YulFunctionCall","src":"2754:6:23"},"variables":[{"name":"w","nativeSrc":"2749:1:23","nodeType":"YulTypedName","src":"2749:1:23","type":""}]},{"body":{"nativeSrc":"2980:371:23","nodeType":"YulBlock","src":"2980:371:23","statements":[{"nativeSrc":"2998:18:23","nodeType":"YulAssignment","src":"2998:18:23","value":{"arguments":[{"name":"str","nativeSrc":"3009:3:23","nodeType":"YulIdentifier","src":"3009:3:23"},{"name":"w","nativeSrc":"3014:1:23","nodeType":"YulIdentifier","src":"3014:1:23"}],"functionName":{"name":"add","nativeSrc":"3005:3:23","nodeType":"YulIdentifier","src":"3005:3:23"},"nativeSrc":"3005:11:23","nodeType":"YulFunctionCall","src":"3005:11:23"},"variableNames":[{"name":"str","nativeSrc":"2998:3:23","nodeType":"YulIdentifier","src":"2998:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"3177:3:23","nodeType":"YulIdentifier","src":"3177:3:23"},{"arguments":[{"kind":"number","nativeSrc":"3186:2:23","nodeType":"YulLiteral","src":"3186:2:23","type":"","value":"48"},{"arguments":[{"name":"temp","nativeSrc":"3194:4:23","nodeType":"YulIdentifier","src":"3194:4:23"},{"kind":"number","nativeSrc":"3200:2:23","nodeType":"YulLiteral","src":"3200:2:23","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"3190:3:23","nodeType":"YulIdentifier","src":"3190:3:23"},"nativeSrc":"3190:13:23","nodeType":"YulFunctionCall","src":"3190:13:23"}],"functionName":{"name":"add","nativeSrc":"3182:3:23","nodeType":"YulIdentifier","src":"3182:3:23"},"nativeSrc":"3182:22:23","nodeType":"YulFunctionCall","src":"3182:22:23"}],"functionName":{"name":"mstore8","nativeSrc":"3169:7:23","nodeType":"YulIdentifier","src":"3169:7:23"},"nativeSrc":"3169:36:23","nodeType":"YulFunctionCall","src":"3169:36:23"},"nativeSrc":"3169:36:23","nodeType":"YulExpressionStatement","src":"3169:36:23"},{"nativeSrc":"3274:21:23","nodeType":"YulAssignment","src":"3274:21:23","value":{"arguments":[{"name":"temp","nativeSrc":"3286:4:23","nodeType":"YulIdentifier","src":"3286:4:23"},{"kind":"number","nativeSrc":"3292:2:23","nodeType":"YulLiteral","src":"3292:2:23","type":"","value":"10"}],"functionName":{"name":"div","nativeSrc":"3282:3:23","nodeType":"YulIdentifier","src":"3282:3:23"},"nativeSrc":"3282:13:23","nodeType":"YulFunctionCall","src":"3282:13:23"},"variableNames":[{"name":"temp","nativeSrc":"3274:4:23","nodeType":"YulIdentifier","src":"3274:4:23"}]},{"body":{"nativeSrc":"3328:9:23","nodeType":"YulBlock","src":"3328:9:23","statements":[{"nativeSrc":"3330:5:23","nodeType":"YulBreak","src":"3330:5:23"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"3322:4:23","nodeType":"YulIdentifier","src":"3322:4:23"}],"functionName":{"name":"iszero","nativeSrc":"3315:6:23","nodeType":"YulIdentifier","src":"3315:6:23"},"nativeSrc":"3315:12:23","nodeType":"YulFunctionCall","src":"3315:12:23"},"nativeSrc":"3312:25:23","nodeType":"YulIf","src":"3312:25:23"}]},"condition":{"kind":"number","nativeSrc":"2975:1:23","nodeType":"YulLiteral","src":"2975:1:23","type":"","value":"1"},"nativeSrc":"2949:402:23","nodeType":"YulForLoop","post":{"nativeSrc":"2977:2:23","nodeType":"YulBlock","src":"2977:2:23","statements":[]},"pre":{"nativeSrc":"2953:21:23","nodeType":"YulBlock","src":"2953:21:23","statements":[{"nativeSrc":"2955:17:23","nodeType":"YulVariableDeclaration","src":"2955:17:23","value":{"name":"value","nativeSrc":"2967:5:23","nodeType":"YulIdentifier","src":"2967:5:23"},"variables":[{"name":"temp","nativeSrc":"2959:4:23","nodeType":"YulTypedName","src":"2959:4:23","type":""}]}]},"src":"2949:402:23"},{"nativeSrc":"3365:27:23","nodeType":"YulVariableDeclaration","src":"3365:27:23","value":{"arguments":[{"name":"end","nativeSrc":"3383:3:23","nodeType":"YulIdentifier","src":"3383:3:23"},{"name":"str","nativeSrc":"3388:3:23","nodeType":"YulIdentifier","src":"3388:3:23"}],"functionName":{"name":"sub","nativeSrc":"3379:3:23","nodeType":"YulIdentifier","src":"3379:3:23"},"nativeSrc":"3379:13:23","nodeType":"YulFunctionCall","src":"3379:13:23"},"variables":[{"name":"length","nativeSrc":"3369:6:23","nodeType":"YulTypedName","src":"3369:6:23","type":""}]},{"nativeSrc":"3485:21:23","nodeType":"YulAssignment","src":"3485:21:23","value":{"arguments":[{"name":"str","nativeSrc":"3496:3:23","nodeType":"YulIdentifier","src":"3496:3:23"},{"kind":"number","nativeSrc":"3501:4:23","nodeType":"YulLiteral","src":"3501:4:23","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"3492:3:23","nodeType":"YulIdentifier","src":"3492:3:23"},"nativeSrc":"3492:14:23","nodeType":"YulFunctionCall","src":"3492:14:23"},"variableNames":[{"name":"str","nativeSrc":"3485:3:23","nodeType":"YulIdentifier","src":"3485:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"3559:3:23","nodeType":"YulIdentifier","src":"3559:3:23"},{"name":"length","nativeSrc":"3564:6:23","nodeType":"YulIdentifier","src":"3564:6:23"}],"functionName":{"name":"mstore","nativeSrc":"3552:6:23","nodeType":"YulIdentifier","src":"3552:6:23"},"nativeSrc":"3552:19:23","nodeType":"YulFunctionCall","src":"3552:19:23"},"nativeSrc":"3552:19:23","nodeType":"YulExpressionStatement","src":"3552:19:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10316,"isOffset":false,"isSlot":false,"src":"2423:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"2541:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"2622:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"2728:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"2998:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"3009:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"3177:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"3388:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"3485:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"3496:3:23","valueSize":1},{"declaration":10316,"isOffset":false,"isSlot":false,"src":"3559:3:23","valueSize":1},{"declaration":10313,"isOffset":false,"isSlot":false,"src":"2967:5:23","valueSize":1}],"id":10318,"nodeType":"InlineAssembly","src":"2074:1507:23"}]},"documentation":{"id":10311,"nodeType":"StructuredDocumentation","src":"1878:63:23","text":"@dev Returns the base 10 decimal representation of `value`."},"id":10320,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"1955:8:23","nodeType":"FunctionDefinition","parameters":{"id":10314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10313,"mutability":"mutable","name":"value","nameLocation":"1972:5:23","nodeType":"VariableDeclaration","scope":10320,"src":"1964:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10312,"name":"uint256","nodeType":"ElementaryTypeName","src":"1964:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1963:15:23"},"returnParameters":{"id":10317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10316,"mutability":"mutable","name":"str","nameLocation":"2016:3:23","nodeType":"VariableDeclaration","scope":10320,"src":"2002:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10315,"name":"string","nodeType":"ElementaryTypeName","src":"2002:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2001:19:23"},"scope":10950,"src":"1946:1641:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10354,"nodeType":"Block","src":"3735:646:23","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10328,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10323,"src":"3749:5:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":10329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3758:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3749:10:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10339,"nodeType":"IfStatement","src":"3745:72:23","trueBody":{"id":10338,"nodeType":"Block","src":"3761:56:23","statements":[{"expression":{"arguments":[{"arguments":[{"id":10334,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10323,"src":"3799:5:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3791:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10332,"name":"uint256","nodeType":"ElementaryTypeName","src":"3791:7:23","typeDescriptions":{}}},"id":10335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3791:14:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10331,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[10320,10355],"referencedDeclaration":10320,"src":"3782:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3782:24:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10327,"id":10337,"nodeType":"Return","src":"3775:31:23"}]}},{"id":10352,"nodeType":"UncheckedBlock","src":"3826:70:23","statements":[{"expression":{"id":10350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10340,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10326,"src":"3850:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3865:15:23","subExpression":{"arguments":[{"id":10344,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10323,"src":"3874:5:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3866:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10342,"name":"uint256","nodeType":"ElementaryTypeName","src":"3866:7:23","typeDescriptions":{}}},"id":10345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3866:14:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3883:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3865:19:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10341,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[10320,10355],"referencedDeclaration":10320,"src":"3856:8:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3856:29:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3850:35:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10351,"nodeType":"ExpressionStatement","src":"3850:35:23"}]},{"AST":{"nativeSrc":"3957:418:23","nodeType":"YulBlock","src":"3957:418:23","statements":[{"nativeSrc":"4113:24:23","nodeType":"YulVariableDeclaration","src":"4113:24:23","value":{"arguments":[{"name":"str","nativeSrc":"4133:3:23","nodeType":"YulIdentifier","src":"4133:3:23"}],"functionName":{"name":"mload","nativeSrc":"4127:5:23","nodeType":"YulIdentifier","src":"4127:5:23"},"nativeSrc":"4127:10:23","nodeType":"YulFunctionCall","src":"4127:10:23"},"variables":[{"name":"length","nativeSrc":"4117:6:23","nodeType":"YulTypedName","src":"4117:6:23","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"4184:3:23","nodeType":"YulIdentifier","src":"4184:3:23"},{"kind":"number","nativeSrc":"4189:4:23","nodeType":"YulLiteral","src":"4189:4:23","type":"","value":"0x2d"}],"functionName":{"name":"mstore","nativeSrc":"4177:6:23","nodeType":"YulIdentifier","src":"4177:6:23"},"nativeSrc":"4177:17:23","nodeType":"YulFunctionCall","src":"4177:17:23"},"nativeSrc":"4177:17:23","nodeType":"YulExpressionStatement","src":"4177:17:23"},{"nativeSrc":"4235:18:23","nodeType":"YulAssignment","src":"4235:18:23","value":{"arguments":[{"name":"str","nativeSrc":"4246:3:23","nodeType":"YulIdentifier","src":"4246:3:23"},{"kind":"number","nativeSrc":"4251:1:23","nodeType":"YulLiteral","src":"4251:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4242:3:23","nodeType":"YulIdentifier","src":"4242:3:23"},"nativeSrc":"4242:11:23","nodeType":"YulFunctionCall","src":"4242:11:23"},"variableNames":[{"name":"str","nativeSrc":"4235:3:23","nodeType":"YulIdentifier","src":"4235:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"4316:3:23","nodeType":"YulIdentifier","src":"4316:3:23"},{"arguments":[{"name":"length","nativeSrc":"4325:6:23","nodeType":"YulIdentifier","src":"4325:6:23"},{"kind":"number","nativeSrc":"4333:1:23","nodeType":"YulLiteral","src":"4333:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4321:3:23","nodeType":"YulIdentifier","src":"4321:3:23"},"nativeSrc":"4321:14:23","nodeType":"YulFunctionCall","src":"4321:14:23"}],"functionName":{"name":"mstore","nativeSrc":"4309:6:23","nodeType":"YulIdentifier","src":"4309:6:23"},"nativeSrc":"4309:27:23","nodeType":"YulFunctionCall","src":"4309:27:23"},"nativeSrc":"4309:27:23","nodeType":"YulExpressionStatement","src":"4309:27:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10326,"isOffset":false,"isSlot":false,"src":"4133:3:23","valueSize":1},{"declaration":10326,"isOffset":false,"isSlot":false,"src":"4184:3:23","valueSize":1},{"declaration":10326,"isOffset":false,"isSlot":false,"src":"4235:3:23","valueSize":1},{"declaration":10326,"isOffset":false,"isSlot":false,"src":"4246:3:23","valueSize":1},{"declaration":10326,"isOffset":false,"isSlot":false,"src":"4316:3:23","valueSize":1}],"id":10353,"nodeType":"InlineAssembly","src":"3948:427:23"}]},"documentation":{"id":10321,"nodeType":"StructuredDocumentation","src":"3593:63:23","text":"@dev Returns the base 10 decimal representation of `value`."},"id":10355,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"3670:8:23","nodeType":"FunctionDefinition","parameters":{"id":10324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10323,"mutability":"mutable","name":"value","nameLocation":"3686:5:23","nodeType":"VariableDeclaration","scope":10355,"src":"3679:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10322,"name":"int256","nodeType":"ElementaryTypeName","src":"3679:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3678:14:23"},"returnParameters":{"id":10327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10326,"mutability":"mutable","name":"str","nameLocation":"3730:3:23","nodeType":"VariableDeclaration","scope":10355,"src":"3716:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10325,"name":"string","nodeType":"ElementaryTypeName","src":"3716:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3715:19:23"},"scope":10950,"src":"3661:720:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10373,"nodeType":"Block","src":"5112:366:23","statements":[{"expression":{"id":10370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10365,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10363,"src":"5122:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10358,"src":"5148:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10368,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10360,"src":"5155:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10366,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10386,10444,10486,10512],"referencedDeclaration":10386,"src":"5128:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":10369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5128:34:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5122:40:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10371,"nodeType":"ExpressionStatement","src":"5122:40:23"},{"AST":{"nativeSrc":"5224:248:23","nodeType":"YulBlock","src":"5224:248:23","statements":[{"nativeSrc":"5238:35:23","nodeType":"YulVariableDeclaration","src":"5238:35:23","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"5265:3:23","nodeType":"YulIdentifier","src":"5265:3:23"}],"functionName":{"name":"mload","nativeSrc":"5259:5:23","nodeType":"YulIdentifier","src":"5259:5:23"},"nativeSrc":"5259:10:23","nodeType":"YulFunctionCall","src":"5259:10:23"},{"kind":"number","nativeSrc":"5271:1:23","nodeType":"YulLiteral","src":"5271:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"5255:3:23","nodeType":"YulIdentifier","src":"5255:3:23"},"nativeSrc":"5255:18:23","nodeType":"YulFunctionCall","src":"5255:18:23"},"variables":[{"name":"strLength","nativeSrc":"5242:9:23","nodeType":"YulTypedName","src":"5242:9:23","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"5316:3:23","nodeType":"YulIdentifier","src":"5316:3:23"},{"kind":"number","nativeSrc":"5321:6:23","nodeType":"YulLiteral","src":"5321:6:23","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"5309:6:23","nodeType":"YulIdentifier","src":"5309:6:23"},"nativeSrc":"5309:19:23","nodeType":"YulFunctionCall","src":"5309:19:23"},"nativeSrc":"5309:19:23","nodeType":"YulExpressionStatement","src":"5309:19:23"},{"nativeSrc":"5367:18:23","nodeType":"YulAssignment","src":"5367:18:23","value":{"arguments":[{"name":"str","nativeSrc":"5378:3:23","nodeType":"YulIdentifier","src":"5378:3:23"},{"kind":"number","nativeSrc":"5383:1:23","nodeType":"YulLiteral","src":"5383:1:23","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"5374:3:23","nodeType":"YulIdentifier","src":"5374:3:23"},"nativeSrc":"5374:11:23","nodeType":"YulFunctionCall","src":"5374:11:23"},"variableNames":[{"name":"str","nativeSrc":"5367:3:23","nodeType":"YulIdentifier","src":"5367:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"5426:3:23","nodeType":"YulIdentifier","src":"5426:3:23"},{"name":"strLength","nativeSrc":"5431:9:23","nodeType":"YulIdentifier","src":"5431:9:23"}],"functionName":{"name":"mstore","nativeSrc":"5419:6:23","nodeType":"YulIdentifier","src":"5419:6:23"},"nativeSrc":"5419:22:23","nodeType":"YulFunctionCall","src":"5419:22:23"},"nativeSrc":"5419:22:23","nodeType":"YulExpressionStatement","src":"5419:22:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10363,"isOffset":false,"isSlot":false,"src":"5265:3:23","valueSize":1},{"declaration":10363,"isOffset":false,"isSlot":false,"src":"5316:3:23","valueSize":1},{"declaration":10363,"isOffset":false,"isSlot":false,"src":"5367:3:23","valueSize":1},{"declaration":10363,"isOffset":false,"isSlot":false,"src":"5378:3:23","valueSize":1},{"declaration":10363,"isOffset":false,"isSlot":false,"src":"5426:3:23","valueSize":1}],"id":10372,"nodeType":"InlineAssembly","src":"5215:257:23"}]},"documentation":{"id":10356,"nodeType":"StructuredDocumentation","src":"4670:343:23","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2 + 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"id":10374,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"5027:11:23","nodeType":"FunctionDefinition","parameters":{"id":10361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10358,"mutability":"mutable","name":"value","nameLocation":"5047:5:23","nodeType":"VariableDeclaration","scope":10374,"src":"5039:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10357,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10360,"mutability":"mutable","name":"length","nameLocation":"5062:6:23","nodeType":"VariableDeclaration","scope":10374,"src":"5054:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10359,"name":"uint256","nodeType":"ElementaryTypeName","src":"5054:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5038:31:23"},"returnParameters":{"id":10364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10363,"mutability":"mutable","name":"str","nameLocation":"5107:3:23","nodeType":"VariableDeclaration","scope":10374,"src":"5093:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10362,"name":"string","nodeType":"ElementaryTypeName","src":"5093:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5092:19:23"},"scope":10950,"src":"5018:460:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10385,"nodeType":"Block","src":"5958:1767:23","statements":[{"AST":{"nativeSrc":"6020:1699:23","nodeType":"YulBlock","src":"6020:1699:23","statements":[{"nativeSrc":"6337:66:23","nodeType":"YulAssignment","src":"6337:66:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6354:4:23","nodeType":"YulLiteral","src":"6354:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6348:5:23","nodeType":"YulIdentifier","src":"6348:5:23"},"nativeSrc":"6348:11:23","nodeType":"YulFunctionCall","src":"6348:11:23"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6373:1:23","nodeType":"YulLiteral","src":"6373:1:23","type":"","value":"1"},{"name":"length","nativeSrc":"6376:6:23","nodeType":"YulIdentifier","src":"6376:6:23"}],"functionName":{"name":"shl","nativeSrc":"6369:3:23","nodeType":"YulIdentifier","src":"6369:3:23"},"nativeSrc":"6369:14:23","nodeType":"YulFunctionCall","src":"6369:14:23"},{"kind":"number","nativeSrc":"6385:4:23","nodeType":"YulLiteral","src":"6385:4:23","type":"","value":"0x42"}],"functionName":{"name":"add","nativeSrc":"6365:3:23","nodeType":"YulIdentifier","src":"6365:3:23"},"nativeSrc":"6365:25:23","nodeType":"YulFunctionCall","src":"6365:25:23"},{"arguments":[{"kind":"number","nativeSrc":"6396:4:23","nodeType":"YulLiteral","src":"6396:4:23","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"6392:3:23","nodeType":"YulIdentifier","src":"6392:3:23"},"nativeSrc":"6392:9:23","nodeType":"YulFunctionCall","src":"6392:9:23"}],"functionName":{"name":"and","nativeSrc":"6361:3:23","nodeType":"YulIdentifier","src":"6361:3:23"},"nativeSrc":"6361:41:23","nodeType":"YulFunctionCall","src":"6361:41:23"}],"functionName":{"name":"add","nativeSrc":"6344:3:23","nodeType":"YulIdentifier","src":"6344:3:23"},"nativeSrc":"6344:59:23","nodeType":"YulFunctionCall","src":"6344:59:23"},"variableNames":[{"name":"str","nativeSrc":"6337:3:23","nodeType":"YulIdentifier","src":"6337:3:23"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6459:4:23","nodeType":"YulLiteral","src":"6459:4:23","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"6469:3:23","nodeType":"YulIdentifier","src":"6469:3:23"},{"kind":"number","nativeSrc":"6474:4:23","nodeType":"YulLiteral","src":"6474:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6465:3:23","nodeType":"YulIdentifier","src":"6465:3:23"},"nativeSrc":"6465:14:23","nodeType":"YulFunctionCall","src":"6465:14:23"}],"functionName":{"name":"mstore","nativeSrc":"6452:6:23","nodeType":"YulIdentifier","src":"6452:6:23"},"nativeSrc":"6452:28:23","nodeType":"YulFunctionCall","src":"6452:28:23"},"nativeSrc":"6452:28:23","nodeType":"YulExpressionStatement","src":"6452:28:23"},{"expression":{"arguments":[{"name":"str","nativeSrc":"6550:3:23","nodeType":"YulIdentifier","src":"6550:3:23"},{"kind":"number","nativeSrc":"6555:1:23","nodeType":"YulLiteral","src":"6555:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6543:6:23","nodeType":"YulIdentifier","src":"6543:6:23"},"nativeSrc":"6543:14:23","nodeType":"YulFunctionCall","src":"6543:14:23"},"nativeSrc":"6543:14:23","nodeType":"YulExpressionStatement","src":"6543:14:23"},{"nativeSrc":"6631:14:23","nodeType":"YulVariableDeclaration","src":"6631:14:23","value":{"name":"str","nativeSrc":"6642:3:23","nodeType":"YulIdentifier","src":"6642:3:23"},"variables":[{"name":"end","nativeSrc":"6635:3:23","nodeType":"YulTypedName","src":"6635:3:23","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6723:4:23","nodeType":"YulLiteral","src":"6723:4:23","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"6729:34:23","nodeType":"YulLiteral","src":"6729:34:23","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"6716:6:23","nodeType":"YulIdentifier","src":"6716:6:23"},"nativeSrc":"6716:48:23","nodeType":"YulFunctionCall","src":"6716:48:23"},"nativeSrc":"6716:48:23","nodeType":"YulExpressionStatement","src":"6716:48:23"},{"nativeSrc":"6778:42:23","nodeType":"YulVariableDeclaration","src":"6778:42:23","value":{"arguments":[{"name":"str","nativeSrc":"6795:3:23","nodeType":"YulIdentifier","src":"6795:3:23"},{"arguments":[{"name":"length","nativeSrc":"6804:6:23","nodeType":"YulIdentifier","src":"6804:6:23"},{"name":"length","nativeSrc":"6812:6:23","nodeType":"YulIdentifier","src":"6812:6:23"}],"functionName":{"name":"add","nativeSrc":"6800:3:23","nodeType":"YulIdentifier","src":"6800:3:23"},"nativeSrc":"6800:19:23","nodeType":"YulFunctionCall","src":"6800:19:23"}],"functionName":{"name":"sub","nativeSrc":"6791:3:23","nodeType":"YulIdentifier","src":"6791:3:23"},"nativeSrc":"6791:29:23","nodeType":"YulFunctionCall","src":"6791:29:23"},"variables":[{"name":"start","nativeSrc":"6782:5:23","nodeType":"YulTypedName","src":"6782:5:23","type":""}]},{"nativeSrc":"6833:15:23","nodeType":"YulVariableDeclaration","src":"6833:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"6846:1:23","nodeType":"YulLiteral","src":"6846:1:23","type":"","value":"1"}],"functionName":{"name":"not","nativeSrc":"6842:3:23","nodeType":"YulIdentifier","src":"6842:3:23"},"nativeSrc":"6842:6:23","nodeType":"YulFunctionCall","src":"6842:6:23"},"variables":[{"name":"w","nativeSrc":"6837:1:23","nodeType":"YulTypedName","src":"6837:1:23","type":""}]},{"nativeSrc":"6869:17:23","nodeType":"YulVariableDeclaration","src":"6869:17:23","value":{"name":"value","nativeSrc":"6881:5:23","nodeType":"YulIdentifier","src":"6881:5:23"},"variables":[{"name":"temp","nativeSrc":"6873:4:23","nodeType":"YulTypedName","src":"6873:4:23","type":""}]},{"body":{"nativeSrc":"7079:276:23","nodeType":"YulBlock","src":"7079:276:23","statements":[{"nativeSrc":"7097:18:23","nodeType":"YulAssignment","src":"7097:18:23","value":{"arguments":[{"name":"str","nativeSrc":"7108:3:23","nodeType":"YulIdentifier","src":"7108:3:23"},{"name":"w","nativeSrc":"7113:1:23","nodeType":"YulIdentifier","src":"7113:1:23"}],"functionName":{"name":"add","nativeSrc":"7104:3:23","nodeType":"YulIdentifier","src":"7104:3:23"},"nativeSrc":"7104:11:23","nodeType":"YulFunctionCall","src":"7104:11:23"},"variableNames":[{"name":"str","nativeSrc":"7097:3:23","nodeType":"YulIdentifier","src":"7097:3:23"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"7162:3:23","nodeType":"YulIdentifier","src":"7162:3:23"},{"kind":"number","nativeSrc":"7167:1:23","nodeType":"YulLiteral","src":"7167:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7158:3:23","nodeType":"YulIdentifier","src":"7158:3:23"},"nativeSrc":"7158:11:23","nodeType":"YulFunctionCall","src":"7158:11:23"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"7181:4:23","nodeType":"YulIdentifier","src":"7181:4:23"},{"kind":"number","nativeSrc":"7187:2:23","nodeType":"YulLiteral","src":"7187:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"7177:3:23","nodeType":"YulIdentifier","src":"7177:3:23"},"nativeSrc":"7177:13:23","nodeType":"YulFunctionCall","src":"7177:13:23"}],"functionName":{"name":"mload","nativeSrc":"7171:5:23","nodeType":"YulIdentifier","src":"7171:5:23"},"nativeSrc":"7171:20:23","nodeType":"YulFunctionCall","src":"7171:20:23"}],"functionName":{"name":"mstore8","nativeSrc":"7150:7:23","nodeType":"YulIdentifier","src":"7150:7:23"},"nativeSrc":"7150:42:23","nodeType":"YulFunctionCall","src":"7150:42:23"},"nativeSrc":"7150:42:23","nodeType":"YulExpressionStatement","src":"7150:42:23"},{"expression":{"arguments":[{"name":"str","nativeSrc":"7217:3:23","nodeType":"YulIdentifier","src":"7217:3:23"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7236:1:23","nodeType":"YulLiteral","src":"7236:1:23","type":"","value":"4"},{"name":"temp","nativeSrc":"7239:4:23","nodeType":"YulIdentifier","src":"7239:4:23"}],"functionName":{"name":"shr","nativeSrc":"7232:3:23","nodeType":"YulIdentifier","src":"7232:3:23"},"nativeSrc":"7232:12:23","nodeType":"YulFunctionCall","src":"7232:12:23"},{"kind":"number","nativeSrc":"7246:2:23","nodeType":"YulLiteral","src":"7246:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"7228:3:23","nodeType":"YulIdentifier","src":"7228:3:23"},"nativeSrc":"7228:21:23","nodeType":"YulFunctionCall","src":"7228:21:23"}],"functionName":{"name":"mload","nativeSrc":"7222:5:23","nodeType":"YulIdentifier","src":"7222:5:23"},"nativeSrc":"7222:28:23","nodeType":"YulFunctionCall","src":"7222:28:23"}],"functionName":{"name":"mstore8","nativeSrc":"7209:7:23","nodeType":"YulIdentifier","src":"7209:7:23"},"nativeSrc":"7209:42:23","nodeType":"YulFunctionCall","src":"7209:42:23"},"nativeSrc":"7209:42:23","nodeType":"YulExpressionStatement","src":"7209:42:23"},{"nativeSrc":"7268:20:23","nodeType":"YulAssignment","src":"7268:20:23","value":{"arguments":[{"kind":"number","nativeSrc":"7280:1:23","nodeType":"YulLiteral","src":"7280:1:23","type":"","value":"8"},{"name":"temp","nativeSrc":"7283:4:23","nodeType":"YulIdentifier","src":"7283:4:23"}],"functionName":{"name":"shr","nativeSrc":"7276:3:23","nodeType":"YulIdentifier","src":"7276:3:23"},"nativeSrc":"7276:12:23","nodeType":"YulFunctionCall","src":"7276:12:23"},"variableNames":[{"name":"temp","nativeSrc":"7268:4:23","nodeType":"YulIdentifier","src":"7268:4:23"}]},{"body":{"nativeSrc":"7332:9:23","nodeType":"YulBlock","src":"7332:9:23","statements":[{"nativeSrc":"7334:5:23","nodeType":"YulBreak","src":"7334:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"7319:3:23","nodeType":"YulIdentifier","src":"7319:3:23"},{"name":"start","nativeSrc":"7324:5:23","nodeType":"YulIdentifier","src":"7324:5:23"}],"functionName":{"name":"xor","nativeSrc":"7315:3:23","nodeType":"YulIdentifier","src":"7315:3:23"},"nativeSrc":"7315:15:23","nodeType":"YulFunctionCall","src":"7315:15:23"}],"functionName":{"name":"iszero","nativeSrc":"7308:6:23","nodeType":"YulIdentifier","src":"7308:6:23"},"nativeSrc":"7308:23:23","nodeType":"YulFunctionCall","src":"7308:23:23"},"nativeSrc":"7305:36:23","nodeType":"YulIf","src":"7305:36:23"}]},"condition":{"kind":"number","nativeSrc":"7074:1:23","nodeType":"YulLiteral","src":"7074:1:23","type":"","value":"1"},"nativeSrc":"7067:288:23","nodeType":"YulForLoop","post":{"nativeSrc":"7076:2:23","nodeType":"YulBlock","src":"7076:2:23","statements":[]},"pre":{"nativeSrc":"7071:2:23","nodeType":"YulBlock","src":"7071:2:23","statements":[]},"src":"7067:288:23"},{"body":{"nativeSrc":"7377:121:23","nodeType":"YulBlock","src":"7377:121:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7402:4:23","nodeType":"YulLiteral","src":"7402:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7408:10:23","nodeType":"YulLiteral","src":"7408:10:23","type":"","value":"0x2194895a"}],"functionName":{"name":"mstore","nativeSrc":"7395:6:23","nodeType":"YulIdentifier","src":"7395:6:23"},"nativeSrc":"7395:24:23","nodeType":"YulFunctionCall","src":"7395:24:23"},"nativeSrc":"7395:24:23","nodeType":"YulExpressionStatement","src":"7395:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7473:4:23","nodeType":"YulLiteral","src":"7473:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"7479:4:23","nodeType":"YulLiteral","src":"7479:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"7466:6:23","nodeType":"YulIdentifier","src":"7466:6:23"},"nativeSrc":"7466:18:23","nodeType":"YulFunctionCall","src":"7466:18:23"},"nativeSrc":"7466:18:23","nodeType":"YulExpressionStatement","src":"7466:18:23"}]},"condition":{"name":"temp","nativeSrc":"7372:4:23","nodeType":"YulIdentifier","src":"7372:4:23"},"nativeSrc":"7369:129:23","nodeType":"YulIf","src":"7369:129:23"},{"nativeSrc":"7556:30:23","nodeType":"YulVariableDeclaration","src":"7556:30:23","value":{"arguments":[{"name":"end","nativeSrc":"7577:3:23","nodeType":"YulIdentifier","src":"7577:3:23"},{"name":"str","nativeSrc":"7582:3:23","nodeType":"YulIdentifier","src":"7582:3:23"}],"functionName":{"name":"sub","nativeSrc":"7573:3:23","nodeType":"YulIdentifier","src":"7573:3:23"},"nativeSrc":"7573:13:23","nodeType":"YulFunctionCall","src":"7573:13:23"},"variables":[{"name":"strLength","nativeSrc":"7560:9:23","nodeType":"YulTypedName","src":"7560:9:23","type":""}]},{"nativeSrc":"7653:21:23","nodeType":"YulAssignment","src":"7653:21:23","value":{"arguments":[{"name":"str","nativeSrc":"7664:3:23","nodeType":"YulIdentifier","src":"7664:3:23"},{"kind":"number","nativeSrc":"7669:4:23","nodeType":"YulLiteral","src":"7669:4:23","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"7660:3:23","nodeType":"YulIdentifier","src":"7660:3:23"},"nativeSrc":"7660:14:23","nodeType":"YulFunctionCall","src":"7660:14:23"},"variableNames":[{"name":"str","nativeSrc":"7653:3:23","nodeType":"YulIdentifier","src":"7653:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"7694:3:23","nodeType":"YulIdentifier","src":"7694:3:23"},{"name":"strLength","nativeSrc":"7699:9:23","nodeType":"YulIdentifier","src":"7699:9:23"}],"functionName":{"name":"mstore","nativeSrc":"7687:6:23","nodeType":"YulIdentifier","src":"7687:6:23"},"nativeSrc":"7687:22:23","nodeType":"YulFunctionCall","src":"7687:22:23"},"nativeSrc":"7687:22:23","nodeType":"YulExpressionStatement","src":"7687:22:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10379,"isOffset":false,"isSlot":false,"src":"6376:6:23","valueSize":1},{"declaration":10379,"isOffset":false,"isSlot":false,"src":"6804:6:23","valueSize":1},{"declaration":10379,"isOffset":false,"isSlot":false,"src":"6812:6:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"6337:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"6469:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"6550:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"6642:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"6795:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7097:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7108:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7162:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7217:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7319:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7582:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7653:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7664:3:23","valueSize":1},{"declaration":10382,"isOffset":false,"isSlot":false,"src":"7694:3:23","valueSize":1},{"declaration":10377,"isOffset":false,"isSlot":false,"src":"6881:5:23","valueSize":1}],"id":10384,"nodeType":"InlineAssembly","src":"6011:1708:23"}]},"documentation":{"id":10375,"nodeType":"StructuredDocumentation","src":"5484:339:23","text":"@dev Returns the hexadecimal representation of `value`,\n left-padded to an input length of `length` bytes.\n The output is prefixed with \"0x\" encoded using 2 hexadecimal digits per byte,\n giving a total length of `length * 2` bytes.\n Reverts if `length` is too small for the output to contain all the digits."},"id":10386,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"5837:19:23","nodeType":"FunctionDefinition","parameters":{"id":10380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"value","nameLocation":"5865:5:23","nodeType":"VariableDeclaration","scope":10386,"src":"5857:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10376,"name":"uint256","nodeType":"ElementaryTypeName","src":"5857:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10379,"mutability":"mutable","name":"length","nameLocation":"5880:6:23","nodeType":"VariableDeclaration","scope":10386,"src":"5872:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10378,"name":"uint256","nodeType":"ElementaryTypeName","src":"5872:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5856:31:23"},"returnParameters":{"id":10383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10382,"mutability":"mutable","name":"str","nameLocation":"5949:3:23","nodeType":"VariableDeclaration","scope":10386,"src":"5935:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10381,"name":"string","nodeType":"ElementaryTypeName","src":"5935:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5934:19:23"},"scope":10950,"src":"5828:1897:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10401,"nodeType":"Block","src":"8077:358:23","statements":[{"expression":{"id":10398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10394,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10392,"src":"8087:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10396,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10389,"src":"8113:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10395,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10386,10444,10486,10512],"referencedDeclaration":10444,"src":"8093:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8093:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8087:32:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10399,"nodeType":"ExpressionStatement","src":"8087:32:23"},{"AST":{"nativeSrc":"8181:248:23","nodeType":"YulBlock","src":"8181:248:23","statements":[{"nativeSrc":"8195:35:23","nodeType":"YulVariableDeclaration","src":"8195:35:23","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"8222:3:23","nodeType":"YulIdentifier","src":"8222:3:23"}],"functionName":{"name":"mload","nativeSrc":"8216:5:23","nodeType":"YulIdentifier","src":"8216:5:23"},"nativeSrc":"8216:10:23","nodeType":"YulFunctionCall","src":"8216:10:23"},{"kind":"number","nativeSrc":"8228:1:23","nodeType":"YulLiteral","src":"8228:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"8212:3:23","nodeType":"YulIdentifier","src":"8212:3:23"},"nativeSrc":"8212:18:23","nodeType":"YulFunctionCall","src":"8212:18:23"},"variables":[{"name":"strLength","nativeSrc":"8199:9:23","nodeType":"YulTypedName","src":"8199:9:23","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"8273:3:23","nodeType":"YulIdentifier","src":"8273:3:23"},{"kind":"number","nativeSrc":"8278:6:23","nodeType":"YulLiteral","src":"8278:6:23","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"8266:6:23","nodeType":"YulIdentifier","src":"8266:6:23"},"nativeSrc":"8266:19:23","nodeType":"YulFunctionCall","src":"8266:19:23"},"nativeSrc":"8266:19:23","nodeType":"YulExpressionStatement","src":"8266:19:23"},{"nativeSrc":"8324:18:23","nodeType":"YulAssignment","src":"8324:18:23","value":{"arguments":[{"name":"str","nativeSrc":"8335:3:23","nodeType":"YulIdentifier","src":"8335:3:23"},{"kind":"number","nativeSrc":"8340:1:23","nodeType":"YulLiteral","src":"8340:1:23","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"8331:3:23","nodeType":"YulIdentifier","src":"8331:3:23"},"nativeSrc":"8331:11:23","nodeType":"YulFunctionCall","src":"8331:11:23"},"variableNames":[{"name":"str","nativeSrc":"8324:3:23","nodeType":"YulIdentifier","src":"8324:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"8383:3:23","nodeType":"YulIdentifier","src":"8383:3:23"},{"name":"strLength","nativeSrc":"8388:9:23","nodeType":"YulIdentifier","src":"8388:9:23"}],"functionName":{"name":"mstore","nativeSrc":"8376:6:23","nodeType":"YulIdentifier","src":"8376:6:23"},"nativeSrc":"8376:22:23","nodeType":"YulFunctionCall","src":"8376:22:23"},"nativeSrc":"8376:22:23","nodeType":"YulExpressionStatement","src":"8376:22:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10392,"isOffset":false,"isSlot":false,"src":"8222:3:23","valueSize":1},{"declaration":10392,"isOffset":false,"isSlot":false,"src":"8273:3:23","valueSize":1},{"declaration":10392,"isOffset":false,"isSlot":false,"src":"8324:3:23","valueSize":1},{"declaration":10392,"isOffset":false,"isSlot":false,"src":"8335:3:23","valueSize":1},{"declaration":10392,"isOffset":false,"isSlot":false,"src":"8383:3:23","valueSize":1}],"id":10400,"nodeType":"InlineAssembly","src":"8172:257:23"}]},"documentation":{"id":10387,"nodeType":"StructuredDocumentation","src":"7731:263:23","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2 + 2` bytes."},"id":10402,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"8008:11:23","nodeType":"FunctionDefinition","parameters":{"id":10390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10389,"mutability":"mutable","name":"value","nameLocation":"8028:5:23","nodeType":"VariableDeclaration","scope":10402,"src":"8020:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10388,"name":"uint256","nodeType":"ElementaryTypeName","src":"8020:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8019:15:23"},"returnParameters":{"id":10393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10392,"mutability":"mutable","name":"str","nameLocation":"8072:3:23","nodeType":"VariableDeclaration","scope":10402,"src":"8058:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10391,"name":"string","nodeType":"ElementaryTypeName","src":"8058:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8057:19:23"},"scope":10950,"src":"7999:436:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10417,"nodeType":"Block","src":"8769:567:23","statements":[{"expression":{"id":10414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10410,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10408,"src":"8779:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10412,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10405,"src":"8805:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10411,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10386,10444,10486,10512],"referencedDeclaration":10444,"src":"8785:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8785:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8779:32:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10415,"nodeType":"ExpressionStatement","src":"8779:32:23"},{"AST":{"nativeSrc":"8873:457:23","nodeType":"YulBlock","src":"8873:457:23","statements":[{"nativeSrc":"8887:49:23","nodeType":"YulVariableDeclaration","src":"8887:49:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8904:1:23","nodeType":"YulLiteral","src":"8904:1:23","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nativeSrc":"8917:3:23","nodeType":"YulIdentifier","src":"8917:3:23"},{"kind":"number","nativeSrc":"8922:4:23","nodeType":"YulLiteral","src":"8922:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8913:3:23","nodeType":"YulIdentifier","src":"8913:3:23"},"nativeSrc":"8913:14:23","nodeType":"YulFunctionCall","src":"8913:14:23"}],"functionName":{"name":"mload","nativeSrc":"8907:5:23","nodeType":"YulIdentifier","src":"8907:5:23"},"nativeSrc":"8907:21:23","nodeType":"YulFunctionCall","src":"8907:21:23"}],"functionName":{"name":"byte","nativeSrc":"8899:4:23","nodeType":"YulIdentifier","src":"8899:4:23"},"nativeSrc":"8899:30:23","nodeType":"YulFunctionCall","src":"8899:30:23"},{"kind":"number","nativeSrc":"8931:4:23","nodeType":"YulLiteral","src":"8931:4:23","type":"","value":"0x30"}],"functionName":{"name":"eq","nativeSrc":"8896:2:23","nodeType":"YulIdentifier","src":"8896:2:23"},"nativeSrc":"8896:40:23","nodeType":"YulFunctionCall","src":"8896:40:23"},"variables":[{"name":"o","nativeSrc":"8891:1:23","nodeType":"YulTypedName","src":"8891:1:23","type":""}]},{"nativeSrc":"8985:35:23","nodeType":"YulVariableDeclaration","src":"8985:35:23","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9012:3:23","nodeType":"YulIdentifier","src":"9012:3:23"}],"functionName":{"name":"mload","nativeSrc":"9006:5:23","nodeType":"YulIdentifier","src":"9006:5:23"},"nativeSrc":"9006:10:23","nodeType":"YulFunctionCall","src":"9006:10:23"},{"kind":"number","nativeSrc":"9018:1:23","nodeType":"YulLiteral","src":"9018:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"9002:3:23","nodeType":"YulIdentifier","src":"9002:3:23"},"nativeSrc":"9002:18:23","nodeType":"YulFunctionCall","src":"9002:18:23"},"variables":[{"name":"strLength","nativeSrc":"8989:9:23","nodeType":"YulTypedName","src":"8989:9:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9067:3:23","nodeType":"YulIdentifier","src":"9067:3:23"},{"name":"o","nativeSrc":"9072:1:23","nodeType":"YulIdentifier","src":"9072:1:23"}],"functionName":{"name":"add","nativeSrc":"9063:3:23","nodeType":"YulIdentifier","src":"9063:3:23"},"nativeSrc":"9063:11:23","nodeType":"YulFunctionCall","src":"9063:11:23"},{"kind":"number","nativeSrc":"9076:6:23","nodeType":"YulLiteral","src":"9076:6:23","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"9056:6:23","nodeType":"YulIdentifier","src":"9056:6:23"},"nativeSrc":"9056:27:23","nodeType":"YulFunctionCall","src":"9056:27:23"},"nativeSrc":"9056:27:23","nodeType":"YulExpressionStatement","src":"9056:27:23"},{"nativeSrc":"9151:26:23","nodeType":"YulAssignment","src":"9151:26:23","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9166:3:23","nodeType":"YulIdentifier","src":"9166:3:23"},{"name":"o","nativeSrc":"9171:1:23","nodeType":"YulIdentifier","src":"9171:1:23"}],"functionName":{"name":"add","nativeSrc":"9162:3:23","nodeType":"YulIdentifier","src":"9162:3:23"},"nativeSrc":"9162:11:23","nodeType":"YulFunctionCall","src":"9162:11:23"},{"kind":"number","nativeSrc":"9175:1:23","nodeType":"YulLiteral","src":"9175:1:23","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"9158:3:23","nodeType":"YulIdentifier","src":"9158:3:23"},"nativeSrc":"9158:19:23","nodeType":"YulFunctionCall","src":"9158:19:23"},"variableNames":[{"name":"str","nativeSrc":"9151:3:23","nodeType":"YulIdentifier","src":"9151:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"9247:3:23","nodeType":"YulIdentifier","src":"9247:3:23"},{"arguments":[{"name":"strLength","nativeSrc":"9256:9:23","nodeType":"YulIdentifier","src":"9256:9:23"},{"name":"o","nativeSrc":"9267:1:23","nodeType":"YulIdentifier","src":"9267:1:23"}],"functionName":{"name":"sub","nativeSrc":"9252:3:23","nodeType":"YulIdentifier","src":"9252:3:23"},"nativeSrc":"9252:17:23","nodeType":"YulFunctionCall","src":"9252:17:23"}],"functionName":{"name":"mstore","nativeSrc":"9240:6:23","nodeType":"YulIdentifier","src":"9240:6:23"},"nativeSrc":"9240:30:23","nodeType":"YulFunctionCall","src":"9240:30:23"},"nativeSrc":"9240:30:23","nodeType":"YulExpressionStatement","src":"9240:30:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10408,"isOffset":false,"isSlot":false,"src":"8917:3:23","valueSize":1},{"declaration":10408,"isOffset":false,"isSlot":false,"src":"9012:3:23","valueSize":1},{"declaration":10408,"isOffset":false,"isSlot":false,"src":"9067:3:23","valueSize":1},{"declaration":10408,"isOffset":false,"isSlot":false,"src":"9151:3:23","valueSize":1},{"declaration":10408,"isOffset":false,"isSlot":false,"src":"9166:3:23","valueSize":1},{"declaration":10408,"isOffset":false,"isSlot":false,"src":"9247:3:23","valueSize":1}],"id":10416,"nodeType":"InlineAssembly","src":"8864:466:23"}]},"documentation":{"id":10403,"nodeType":"StructuredDocumentation","src":"8441:238:23","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\".\n The output excludes leading \"0\" from the `toHexString` output.\n `0x00: \"0x0\", 0x01: \"0x1\", 0x12: \"0x12\", 0x123: \"0x123\"`."},"id":10418,"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexString","nameLocation":"8693:18:23","nodeType":"FunctionDefinition","parameters":{"id":10406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10405,"mutability":"mutable","name":"value","nameLocation":"8720:5:23","nodeType":"VariableDeclaration","scope":10418,"src":"8712:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10404,"name":"uint256","nodeType":"ElementaryTypeName","src":"8712:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8711:15:23"},"returnParameters":{"id":10409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10408,"mutability":"mutable","name":"str","nameLocation":"8764:3:23","nodeType":"VariableDeclaration","scope":10418,"src":"8750:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10407,"name":"string","nodeType":"ElementaryTypeName","src":"8750:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8749:19:23"},"scope":10950,"src":"8684:652:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10433,"nodeType":"Block","src":"9636:452:23","statements":[{"expression":{"id":10430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10426,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10424,"src":"9646:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10428,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10421,"src":"9672:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10427,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10386,10444,10486,10512],"referencedDeclaration":10444,"src":"9652:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":10429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9652:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"9646:32:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10431,"nodeType":"ExpressionStatement","src":"9646:32:23"},{"AST":{"nativeSrc":"9740:342:23","nodeType":"YulBlock","src":"9740:342:23","statements":[{"nativeSrc":"9754:49:23","nodeType":"YulVariableDeclaration","src":"9754:49:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9771:1:23","nodeType":"YulLiteral","src":"9771:1:23","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"str","nativeSrc":"9784:3:23","nodeType":"YulIdentifier","src":"9784:3:23"},{"kind":"number","nativeSrc":"9789:4:23","nodeType":"YulLiteral","src":"9789:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9780:3:23","nodeType":"YulIdentifier","src":"9780:3:23"},"nativeSrc":"9780:14:23","nodeType":"YulFunctionCall","src":"9780:14:23"}],"functionName":{"name":"mload","nativeSrc":"9774:5:23","nodeType":"YulIdentifier","src":"9774:5:23"},"nativeSrc":"9774:21:23","nodeType":"YulFunctionCall","src":"9774:21:23"}],"functionName":{"name":"byte","nativeSrc":"9766:4:23","nodeType":"YulIdentifier","src":"9766:4:23"},"nativeSrc":"9766:30:23","nodeType":"YulFunctionCall","src":"9766:30:23"},{"kind":"number","nativeSrc":"9798:4:23","nodeType":"YulLiteral","src":"9798:4:23","type":"","value":"0x30"}],"functionName":{"name":"eq","nativeSrc":"9763:2:23","nodeType":"YulIdentifier","src":"9763:2:23"},"nativeSrc":"9763:40:23","nodeType":"YulFunctionCall","src":"9763:40:23"},"variables":[{"name":"o","nativeSrc":"9758:1:23","nodeType":"YulTypedName","src":"9758:1:23","type":""}]},{"nativeSrc":"9852:27:23","nodeType":"YulVariableDeclaration","src":"9852:27:23","value":{"arguments":[{"name":"str","nativeSrc":"9875:3:23","nodeType":"YulIdentifier","src":"9875:3:23"}],"functionName":{"name":"mload","nativeSrc":"9869:5:23","nodeType":"YulIdentifier","src":"9869:5:23"},"nativeSrc":"9869:10:23","nodeType":"YulFunctionCall","src":"9869:10:23"},"variables":[{"name":"strLength","nativeSrc":"9856:9:23","nodeType":"YulTypedName","src":"9856:9:23","type":""}]},{"nativeSrc":"9911:18:23","nodeType":"YulAssignment","src":"9911:18:23","value":{"arguments":[{"name":"str","nativeSrc":"9922:3:23","nodeType":"YulIdentifier","src":"9922:3:23"},{"name":"o","nativeSrc":"9927:1:23","nodeType":"YulIdentifier","src":"9927:1:23"}],"functionName":{"name":"add","nativeSrc":"9918:3:23","nodeType":"YulIdentifier","src":"9918:3:23"},"nativeSrc":"9918:11:23","nodeType":"YulFunctionCall","src":"9918:11:23"},"variableNames":[{"name":"str","nativeSrc":"9911:3:23","nodeType":"YulIdentifier","src":"9911:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"9999:3:23","nodeType":"YulIdentifier","src":"9999:3:23"},{"arguments":[{"name":"strLength","nativeSrc":"10008:9:23","nodeType":"YulIdentifier","src":"10008:9:23"},{"name":"o","nativeSrc":"10019:1:23","nodeType":"YulIdentifier","src":"10019:1:23"}],"functionName":{"name":"sub","nativeSrc":"10004:3:23","nodeType":"YulIdentifier","src":"10004:3:23"},"nativeSrc":"10004:17:23","nodeType":"YulFunctionCall","src":"10004:17:23"}],"functionName":{"name":"mstore","nativeSrc":"9992:6:23","nodeType":"YulIdentifier","src":"9992:6:23"},"nativeSrc":"9992:30:23","nodeType":"YulFunctionCall","src":"9992:30:23"},"nativeSrc":"9992:30:23","nodeType":"YulExpressionStatement","src":"9992:30:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10424,"isOffset":false,"isSlot":false,"src":"9784:3:23","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"9875:3:23","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"9911:3:23","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"9922:3:23","valueSize":1},{"declaration":10424,"isOffset":false,"isSlot":false,"src":"9999:3:23","valueSize":1}],"id":10432,"nodeType":"InlineAssembly","src":"9731:351:23"}]},"documentation":{"id":10419,"nodeType":"StructuredDocumentation","src":"9342:196:23","text":"@dev Returns the hexadecimal representation of `value`.\n The output excludes leading \"0\" from the `toHexStringNoPrefix` output.\n `0x00: \"0\", 0x01: \"1\", 0x12: \"12\", 0x123: \"123\"`."},"id":10434,"implemented":true,"kind":"function","modifiers":[],"name":"toMinimalHexStringNoPrefix","nameLocation":"9552:26:23","nodeType":"FunctionDefinition","parameters":{"id":10422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10421,"mutability":"mutable","name":"value","nameLocation":"9587:5:23","nodeType":"VariableDeclaration","scope":10434,"src":"9579:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10420,"name":"uint256","nodeType":"ElementaryTypeName","src":"9579:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9578:15:23"},"returnParameters":{"id":10425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10424,"mutability":"mutable","name":"str","nameLocation":"9631:3:23","nodeType":"VariableDeclaration","scope":10434,"src":"9617:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10423,"name":"string","nodeType":"ElementaryTypeName","src":"9617:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9616:19:23"},"scope":10950,"src":"9543:545:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10443,"nodeType":"Block","src":"10421:1457:23","statements":[{"AST":{"nativeSrc":"10483:1389:23","nodeType":"YulBlock","src":"10483:1389:23","statements":[{"nativeSrc":"10747:29:23","nodeType":"YulAssignment","src":"10747:29:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"10764:4:23","nodeType":"YulLiteral","src":"10764:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10758:5:23","nodeType":"YulIdentifier","src":"10758:5:23"},"nativeSrc":"10758:11:23","nodeType":"YulFunctionCall","src":"10758:11:23"},{"kind":"number","nativeSrc":"10771:4:23","nodeType":"YulLiteral","src":"10771:4:23","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10754:3:23","nodeType":"YulIdentifier","src":"10754:3:23"},"nativeSrc":"10754:22:23","nodeType":"YulFunctionCall","src":"10754:22:23"},"variableNames":[{"name":"str","nativeSrc":"10747:3:23","nodeType":"YulIdentifier","src":"10747:3:23"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10832:4:23","nodeType":"YulLiteral","src":"10832:4:23","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"10842:3:23","nodeType":"YulIdentifier","src":"10842:3:23"},{"kind":"number","nativeSrc":"10847:4:23","nodeType":"YulLiteral","src":"10847:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10838:3:23","nodeType":"YulIdentifier","src":"10838:3:23"},"nativeSrc":"10838:14:23","nodeType":"YulFunctionCall","src":"10838:14:23"}],"functionName":{"name":"mstore","nativeSrc":"10825:6:23","nodeType":"YulIdentifier","src":"10825:6:23"},"nativeSrc":"10825:28:23","nodeType":"YulFunctionCall","src":"10825:28:23"},"nativeSrc":"10825:28:23","nodeType":"YulExpressionStatement","src":"10825:28:23"},{"expression":{"arguments":[{"name":"str","nativeSrc":"10923:3:23","nodeType":"YulIdentifier","src":"10923:3:23"},{"kind":"number","nativeSrc":"10928:1:23","nodeType":"YulLiteral","src":"10928:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10916:6:23","nodeType":"YulIdentifier","src":"10916:6:23"},"nativeSrc":"10916:14:23","nodeType":"YulFunctionCall","src":"10916:14:23"},"nativeSrc":"10916:14:23","nodeType":"YulExpressionStatement","src":"10916:14:23"},{"nativeSrc":"11004:14:23","nodeType":"YulVariableDeclaration","src":"11004:14:23","value":{"name":"str","nativeSrc":"11015:3:23","nodeType":"YulIdentifier","src":"11015:3:23"},"variables":[{"name":"end","nativeSrc":"11008:3:23","nodeType":"YulTypedName","src":"11008:3:23","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11096:4:23","nodeType":"YulLiteral","src":"11096:4:23","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"11102:34:23","nodeType":"YulLiteral","src":"11102:34:23","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"11089:6:23","nodeType":"YulIdentifier","src":"11089:6:23"},"nativeSrc":"11089:48:23","nodeType":"YulFunctionCall","src":"11089:48:23"},"nativeSrc":"11089:48:23","nodeType":"YulExpressionStatement","src":"11089:48:23"},{"nativeSrc":"11151:15:23","nodeType":"YulVariableDeclaration","src":"11151:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"11164:1:23","nodeType":"YulLiteral","src":"11164:1:23","type":"","value":"1"}],"functionName":{"name":"not","nativeSrc":"11160:3:23","nodeType":"YulIdentifier","src":"11160:3:23"},"nativeSrc":"11160:6:23","nodeType":"YulFunctionCall","src":"11160:6:23"},"variables":[{"name":"w","nativeSrc":"11155:1:23","nodeType":"YulTypedName","src":"11155:1:23","type":""}]},{"body":{"nativeSrc":"11386:265:23","nodeType":"YulBlock","src":"11386:265:23","statements":[{"nativeSrc":"11404:18:23","nodeType":"YulAssignment","src":"11404:18:23","value":{"arguments":[{"name":"str","nativeSrc":"11415:3:23","nodeType":"YulIdentifier","src":"11415:3:23"},{"name":"w","nativeSrc":"11420:1:23","nodeType":"YulIdentifier","src":"11420:1:23"}],"functionName":{"name":"add","nativeSrc":"11411:3:23","nodeType":"YulIdentifier","src":"11411:3:23"},"nativeSrc":"11411:11:23","nodeType":"YulFunctionCall","src":"11411:11:23"},"variableNames":[{"name":"str","nativeSrc":"11404:3:23","nodeType":"YulIdentifier","src":"11404:3:23"}]},{"expression":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"11469:3:23","nodeType":"YulIdentifier","src":"11469:3:23"},{"kind":"number","nativeSrc":"11474:1:23","nodeType":"YulLiteral","src":"11474:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11465:3:23","nodeType":"YulIdentifier","src":"11465:3:23"},"nativeSrc":"11465:11:23","nodeType":"YulFunctionCall","src":"11465:11:23"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"11488:4:23","nodeType":"YulIdentifier","src":"11488:4:23"},{"kind":"number","nativeSrc":"11494:2:23","nodeType":"YulLiteral","src":"11494:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"11484:3:23","nodeType":"YulIdentifier","src":"11484:3:23"},"nativeSrc":"11484:13:23","nodeType":"YulFunctionCall","src":"11484:13:23"}],"functionName":{"name":"mload","nativeSrc":"11478:5:23","nodeType":"YulIdentifier","src":"11478:5:23"},"nativeSrc":"11478:20:23","nodeType":"YulFunctionCall","src":"11478:20:23"}],"functionName":{"name":"mstore8","nativeSrc":"11457:7:23","nodeType":"YulIdentifier","src":"11457:7:23"},"nativeSrc":"11457:42:23","nodeType":"YulFunctionCall","src":"11457:42:23"},"nativeSrc":"11457:42:23","nodeType":"YulExpressionStatement","src":"11457:42:23"},{"expression":{"arguments":[{"name":"str","nativeSrc":"11524:3:23","nodeType":"YulIdentifier","src":"11524:3:23"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11543:1:23","nodeType":"YulLiteral","src":"11543:1:23","type":"","value":"4"},{"name":"temp","nativeSrc":"11546:4:23","nodeType":"YulIdentifier","src":"11546:4:23"}],"functionName":{"name":"shr","nativeSrc":"11539:3:23","nodeType":"YulIdentifier","src":"11539:3:23"},"nativeSrc":"11539:12:23","nodeType":"YulFunctionCall","src":"11539:12:23"},{"kind":"number","nativeSrc":"11553:2:23","nodeType":"YulLiteral","src":"11553:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"11535:3:23","nodeType":"YulIdentifier","src":"11535:3:23"},"nativeSrc":"11535:21:23","nodeType":"YulFunctionCall","src":"11535:21:23"}],"functionName":{"name":"mload","nativeSrc":"11529:5:23","nodeType":"YulIdentifier","src":"11529:5:23"},"nativeSrc":"11529:28:23","nodeType":"YulFunctionCall","src":"11529:28:23"}],"functionName":{"name":"mstore8","nativeSrc":"11516:7:23","nodeType":"YulIdentifier","src":"11516:7:23"},"nativeSrc":"11516:42:23","nodeType":"YulFunctionCall","src":"11516:42:23"},"nativeSrc":"11516:42:23","nodeType":"YulExpressionStatement","src":"11516:42:23"},{"nativeSrc":"11575:20:23","nodeType":"YulAssignment","src":"11575:20:23","value":{"arguments":[{"kind":"number","nativeSrc":"11587:1:23","nodeType":"YulLiteral","src":"11587:1:23","type":"","value":"8"},{"name":"temp","nativeSrc":"11590:4:23","nodeType":"YulIdentifier","src":"11590:4:23"}],"functionName":{"name":"shr","nativeSrc":"11583:3:23","nodeType":"YulIdentifier","src":"11583:3:23"},"nativeSrc":"11583:12:23","nodeType":"YulFunctionCall","src":"11583:12:23"},"variableNames":[{"name":"temp","nativeSrc":"11575:4:23","nodeType":"YulIdentifier","src":"11575:4:23"}]},{"body":{"nativeSrc":"11628:9:23","nodeType":"YulBlock","src":"11628:9:23","statements":[{"nativeSrc":"11630:5:23","nodeType":"YulBreak","src":"11630:5:23"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"11622:4:23","nodeType":"YulIdentifier","src":"11622:4:23"}],"functionName":{"name":"iszero","nativeSrc":"11615:6:23","nodeType":"YulIdentifier","src":"11615:6:23"},"nativeSrc":"11615:12:23","nodeType":"YulFunctionCall","src":"11615:12:23"},"nativeSrc":"11612:25:23","nodeType":"YulIf","src":"11612:25:23"}]},"condition":{"kind":"number","nativeSrc":"11381:1:23","nodeType":"YulLiteral","src":"11381:1:23","type":"","value":"1"},"nativeSrc":"11355:296:23","nodeType":"YulForLoop","post":{"nativeSrc":"11383:2:23","nodeType":"YulBlock","src":"11383:2:23","statements":[]},"pre":{"nativeSrc":"11359:21:23","nodeType":"YulBlock","src":"11359:21:23","statements":[{"nativeSrc":"11361:17:23","nodeType":"YulVariableDeclaration","src":"11361:17:23","value":{"name":"value","nativeSrc":"11373:5:23","nodeType":"YulIdentifier","src":"11373:5:23"},"variables":[{"name":"temp","nativeSrc":"11365:4:23","nodeType":"YulTypedName","src":"11365:4:23","type":""}]}]},"src":"11355:296:23"},{"nativeSrc":"11709:30:23","nodeType":"YulVariableDeclaration","src":"11709:30:23","value":{"arguments":[{"name":"end","nativeSrc":"11730:3:23","nodeType":"YulIdentifier","src":"11730:3:23"},{"name":"str","nativeSrc":"11735:3:23","nodeType":"YulIdentifier","src":"11735:3:23"}],"functionName":{"name":"sub","nativeSrc":"11726:3:23","nodeType":"YulIdentifier","src":"11726:3:23"},"nativeSrc":"11726:13:23","nodeType":"YulFunctionCall","src":"11726:13:23"},"variables":[{"name":"strLength","nativeSrc":"11713:9:23","nodeType":"YulTypedName","src":"11713:9:23","type":""}]},{"nativeSrc":"11806:21:23","nodeType":"YulAssignment","src":"11806:21:23","value":{"arguments":[{"name":"str","nativeSrc":"11817:3:23","nodeType":"YulIdentifier","src":"11817:3:23"},{"kind":"number","nativeSrc":"11822:4:23","nodeType":"YulLiteral","src":"11822:4:23","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"11813:3:23","nodeType":"YulIdentifier","src":"11813:3:23"},"nativeSrc":"11813:14:23","nodeType":"YulFunctionCall","src":"11813:14:23"},"variableNames":[{"name":"str","nativeSrc":"11806:3:23","nodeType":"YulIdentifier","src":"11806:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"11847:3:23","nodeType":"YulIdentifier","src":"11847:3:23"},{"name":"strLength","nativeSrc":"11852:9:23","nodeType":"YulIdentifier","src":"11852:9:23"}],"functionName":{"name":"mstore","nativeSrc":"11840:6:23","nodeType":"YulIdentifier","src":"11840:6:23"},"nativeSrc":"11840:22:23","nodeType":"YulFunctionCall","src":"11840:22:23"},"nativeSrc":"11840:22:23","nodeType":"YulExpressionStatement","src":"11840:22:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10440,"isOffset":false,"isSlot":false,"src":"10747:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"10842:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"10923:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11015:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11404:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11415:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11469:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11524:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11735:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11806:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11817:3:23","valueSize":1},{"declaration":10440,"isOffset":false,"isSlot":false,"src":"11847:3:23","valueSize":1},{"declaration":10437,"isOffset":false,"isSlot":false,"src":"11373:5:23","valueSize":1}],"id":10442,"nodeType":"InlineAssembly","src":"10474:1398:23"}]},"documentation":{"id":10435,"nodeType":"StructuredDocumentation","src":"10094:236:23","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte.\n As address are 20 bytes long, the output will left-padded to have\n a length of `20 * 2` bytes."},"id":10444,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"10344:19:23","nodeType":"FunctionDefinition","parameters":{"id":10438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10437,"mutability":"mutable","name":"value","nameLocation":"10372:5:23","nodeType":"VariableDeclaration","scope":10444,"src":"10364:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10436,"name":"uint256","nodeType":"ElementaryTypeName","src":"10364:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10363:15:23"},"returnParameters":{"id":10441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10440,"mutability":"mutable","name":"str","nameLocation":"10416:3:23","nodeType":"VariableDeclaration","scope":10444,"src":"10402:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10439,"name":"string","nodeType":"ElementaryTypeName","src":"10402:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10401:19:23"},"scope":10950,"src":"10335:1543:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10459,"nodeType":"Block","src":"12239:749:23","statements":[{"expression":{"id":10456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10452,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10450,"src":"12249:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10454,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10447,"src":"12267:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10453,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[10374,10402,10476,10502],"referencedDeclaration":10476,"src":"12255:11:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":10455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12255:18:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12249:24:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10457,"nodeType":"ExpressionStatement","src":"12249:24:23"},{"AST":{"nativeSrc":"12335:647:23","nodeType":"YulBlock","src":"12335:647:23","statements":[{"nativeSrc":"12349:36:23","nodeType":"YulVariableDeclaration","src":"12349:36:23","value":{"arguments":[{"kind":"number","nativeSrc":"12365:1:23","nodeType":"YulLiteral","src":"12365:1:23","type":"","value":"6"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12376:1:23","nodeType":"YulLiteral","src":"12376:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"12372:3:23","nodeType":"YulIdentifier","src":"12372:3:23"},"nativeSrc":"12372:6:23","nodeType":"YulFunctionCall","src":"12372:6:23"},{"kind":"number","nativeSrc":"12380:3:23","nodeType":"YulLiteral","src":"12380:3:23","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"12368:3:23","nodeType":"YulIdentifier","src":"12368:3:23"},"nativeSrc":"12368:16:23","nodeType":"YulFunctionCall","src":"12368:16:23"}],"functionName":{"name":"shl","nativeSrc":"12361:3:23","nodeType":"YulIdentifier","src":"12361:3:23"},"nativeSrc":"12361:24:23","nodeType":"YulFunctionCall","src":"12361:24:23"},"variables":[{"name":"mask","nativeSrc":"12353:4:23","nodeType":"YulTypedName","src":"12353:4:23","type":""}]},{"nativeSrc":"12428:23:23","nodeType":"YulVariableDeclaration","src":"12428:23:23","value":{"arguments":[{"name":"str","nativeSrc":"12441:3:23","nodeType":"YulIdentifier","src":"12441:3:23"},{"kind":"number","nativeSrc":"12446:4:23","nodeType":"YulLiteral","src":"12446:4:23","type":"","value":"0x22"}],"functionName":{"name":"add","nativeSrc":"12437:3:23","nodeType":"YulIdentifier","src":"12437:3:23"},"nativeSrc":"12437:14:23","nodeType":"YulFunctionCall","src":"12437:14:23"},"variables":[{"name":"o","nativeSrc":"12432:1:23","nodeType":"YulTypedName","src":"12432:1:23","type":""}]},{"nativeSrc":"12464:50:23","nodeType":"YulVariableDeclaration","src":"12464:50:23","value":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12492:1:23","nodeType":"YulIdentifier","src":"12492:1:23"},{"kind":"number","nativeSrc":"12495:2:23","nodeType":"YulLiteral","src":"12495:2:23","type":"","value":"40"}],"functionName":{"name":"keccak256","nativeSrc":"12482:9:23","nodeType":"YulIdentifier","src":"12482:9:23"},"nativeSrc":"12482:16:23","nodeType":"YulFunctionCall","src":"12482:16:23"},{"arguments":[{"kind":"number","nativeSrc":"12504:2:23","nodeType":"YulLiteral","src":"12504:2:23","type":"","value":"34"},{"name":"mask","nativeSrc":"12508:4:23","nodeType":"YulIdentifier","src":"12508:4:23"}],"functionName":{"name":"mul","nativeSrc":"12500:3:23","nodeType":"YulIdentifier","src":"12500:3:23"},"nativeSrc":"12500:13:23","nodeType":"YulFunctionCall","src":"12500:13:23"}],"functionName":{"name":"and","nativeSrc":"12478:3:23","nodeType":"YulIdentifier","src":"12478:3:23"},"nativeSrc":"12478:36:23","nodeType":"YulFunctionCall","src":"12478:36:23"},"variables":[{"name":"hashed","nativeSrc":"12468:6:23","nodeType":"YulTypedName","src":"12468:6:23","type":""}]},{"nativeSrc":"12548:22:23","nodeType":"YulVariableDeclaration","src":"12548:22:23","value":{"arguments":[{"kind":"number","nativeSrc":"12561:3:23","nodeType":"YulLiteral","src":"12561:3:23","type":"","value":"240"},{"kind":"number","nativeSrc":"12566:3:23","nodeType":"YulLiteral","src":"12566:3:23","type":"","value":"136"}],"functionName":{"name":"shl","nativeSrc":"12557:3:23","nodeType":"YulIdentifier","src":"12557:3:23"},"nativeSrc":"12557:13:23","nodeType":"YulFunctionCall","src":"12557:13:23"},"variables":[{"name":"t","nativeSrc":"12552:1:23","nodeType":"YulTypedName","src":"12552:1:23","type":""}]},{"body":{"nativeSrc":"12630:144:23","nodeType":"YulBlock","src":"12630:144:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"i","nativeSrc":"12659:1:23","nodeType":"YulIdentifier","src":"12659:1:23"},{"name":"i","nativeSrc":"12662:1:23","nodeType":"YulIdentifier","src":"12662:1:23"}],"functionName":{"name":"add","nativeSrc":"12655:3:23","nodeType":"YulIdentifier","src":"12655:3:23"},"nativeSrc":"12655:9:23","nodeType":"YulFunctionCall","src":"12655:9:23"},{"arguments":[{"name":"t","nativeSrc":"12670:1:23","nodeType":"YulIdentifier","src":"12670:1:23"},{"arguments":[{"name":"i","nativeSrc":"12678:1:23","nodeType":"YulIdentifier","src":"12678:1:23"},{"name":"hashed","nativeSrc":"12681:6:23","nodeType":"YulIdentifier","src":"12681:6:23"}],"functionName":{"name":"byte","nativeSrc":"12673:4:23","nodeType":"YulIdentifier","src":"12673:4:23"},"nativeSrc":"12673:15:23","nodeType":"YulFunctionCall","src":"12673:15:23"}],"functionName":{"name":"mul","nativeSrc":"12666:3:23","nodeType":"YulIdentifier","src":"12666:3:23"},"nativeSrc":"12666:23:23","nodeType":"YulFunctionCall","src":"12666:23:23"}],"functionName":{"name":"mstore","nativeSrc":"12648:6:23","nodeType":"YulIdentifier","src":"12648:6:23"},"nativeSrc":"12648:42:23","nodeType":"YulFunctionCall","src":"12648:42:23"},"nativeSrc":"12648:42:23","nodeType":"YulExpressionStatement","src":"12648:42:23"},{"nativeSrc":"12707:14:23","nodeType":"YulAssignment","src":"12707:14:23","value":{"arguments":[{"name":"i","nativeSrc":"12716:1:23","nodeType":"YulIdentifier","src":"12716:1:23"},{"kind":"number","nativeSrc":"12719:1:23","nodeType":"YulLiteral","src":"12719:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12712:3:23","nodeType":"YulIdentifier","src":"12712:3:23"},"nativeSrc":"12712:9:23","nodeType":"YulFunctionCall","src":"12712:9:23"},"variableNames":[{"name":"i","nativeSrc":"12707:1:23","nodeType":"YulIdentifier","src":"12707:1:23"}]},{"body":{"nativeSrc":"12751:9:23","nodeType":"YulBlock","src":"12751:9:23","statements":[{"nativeSrc":"12753:5:23","nodeType":"YulBreak","src":"12753:5:23"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"12744:1:23","nodeType":"YulIdentifier","src":"12744:1:23"},{"kind":"number","nativeSrc":"12747:2:23","nodeType":"YulLiteral","src":"12747:2:23","type":"","value":"20"}],"functionName":{"name":"eq","nativeSrc":"12741:2:23","nodeType":"YulIdentifier","src":"12741:2:23"},"nativeSrc":"12741:9:23","nodeType":"YulFunctionCall","src":"12741:9:23"},"nativeSrc":"12738:22:23","nodeType":"YulIf","src":"12738:22:23"}]},"condition":{"kind":"number","nativeSrc":"12625:1:23","nodeType":"YulLiteral","src":"12625:1:23","type":"","value":"1"},"nativeSrc":"12606:168:23","nodeType":"YulForLoop","post":{"nativeSrc":"12627:2:23","nodeType":"YulBlock","src":"12627:2:23","statements":[]},"pre":{"nativeSrc":"12610:14:23","nodeType":"YulBlock","src":"12610:14:23","statements":[{"nativeSrc":"12612:10:23","nodeType":"YulVariableDeclaration","src":"12612:10:23","value":{"kind":"number","nativeSrc":"12621:1:23","nodeType":"YulLiteral","src":"12621:1:23","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"12616:1:23","nodeType":"YulTypedName","src":"12616:1:23","type":""}]}]},"src":"12606:168:23"},{"expression":{"arguments":[{"name":"o","nativeSrc":"12794:1:23","nodeType":"YulIdentifier","src":"12794:1:23"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12807:1:23","nodeType":"YulIdentifier","src":"12807:1:23"}],"functionName":{"name":"mload","nativeSrc":"12801:5:23","nodeType":"YulIdentifier","src":"12801:5:23"},"nativeSrc":"12801:8:23","nodeType":"YulFunctionCall","src":"12801:8:23"},{"arguments":[{"kind":"number","nativeSrc":"12815:1:23","nodeType":"YulLiteral","src":"12815:1:23","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12828:4:23","nodeType":"YulLiteral","src":"12828:4:23","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"12822:5:23","nodeType":"YulIdentifier","src":"12822:5:23"},"nativeSrc":"12822:11:23","nodeType":"YulFunctionCall","src":"12822:11:23"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12845:1:23","nodeType":"YulIdentifier","src":"12845:1:23"}],"functionName":{"name":"mload","nativeSrc":"12839:5:23","nodeType":"YulIdentifier","src":"12839:5:23"},"nativeSrc":"12839:8:23","nodeType":"YulFunctionCall","src":"12839:8:23"},{"name":"mask","nativeSrc":"12849:4:23","nodeType":"YulIdentifier","src":"12849:4:23"}],"functionName":{"name":"and","nativeSrc":"12835:3:23","nodeType":"YulIdentifier","src":"12835:3:23"},"nativeSrc":"12835:19:23","nodeType":"YulFunctionCall","src":"12835:19:23"}],"functionName":{"name":"and","nativeSrc":"12818:3:23","nodeType":"YulIdentifier","src":"12818:3:23"},"nativeSrc":"12818:37:23","nodeType":"YulFunctionCall","src":"12818:37:23"}],"functionName":{"name":"shr","nativeSrc":"12811:3:23","nodeType":"YulIdentifier","src":"12811:3:23"},"nativeSrc":"12811:45:23","nodeType":"YulFunctionCall","src":"12811:45:23"}],"functionName":{"name":"xor","nativeSrc":"12797:3:23","nodeType":"YulIdentifier","src":"12797:3:23"},"nativeSrc":"12797:60:23","nodeType":"YulFunctionCall","src":"12797:60:23"}],"functionName":{"name":"mstore","nativeSrc":"12787:6:23","nodeType":"YulIdentifier","src":"12787:6:23"},"nativeSrc":"12787:71:23","nodeType":"YulFunctionCall","src":"12787:71:23"},"nativeSrc":"12787:71:23","nodeType":"YulExpressionStatement","src":"12787:71:23"},{"nativeSrc":"12871:17:23","nodeType":"YulAssignment","src":"12871:17:23","value":{"arguments":[{"name":"o","nativeSrc":"12880:1:23","nodeType":"YulIdentifier","src":"12880:1:23"},{"kind":"number","nativeSrc":"12883:4:23","nodeType":"YulLiteral","src":"12883:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12876:3:23","nodeType":"YulIdentifier","src":"12876:3:23"},"nativeSrc":"12876:12:23","nodeType":"YulFunctionCall","src":"12876:12:23"},"variableNames":[{"name":"o","nativeSrc":"12871:1:23","nodeType":"YulIdentifier","src":"12871:1:23"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"12908:1:23","nodeType":"YulIdentifier","src":"12908:1:23"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12921:1:23","nodeType":"YulIdentifier","src":"12921:1:23"}],"functionName":{"name":"mload","nativeSrc":"12915:5:23","nodeType":"YulIdentifier","src":"12915:5:23"},"nativeSrc":"12915:8:23","nodeType":"YulFunctionCall","src":"12915:8:23"},{"arguments":[{"kind":"number","nativeSrc":"12929:1:23","nodeType":"YulLiteral","src":"12929:1:23","type":"","value":"1"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12942:4:23","nodeType":"YulLiteral","src":"12942:4:23","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"12936:5:23","nodeType":"YulIdentifier","src":"12936:5:23"},"nativeSrc":"12936:11:23","nodeType":"YulFunctionCall","src":"12936:11:23"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"12959:1:23","nodeType":"YulIdentifier","src":"12959:1:23"}],"functionName":{"name":"mload","nativeSrc":"12953:5:23","nodeType":"YulIdentifier","src":"12953:5:23"},"nativeSrc":"12953:8:23","nodeType":"YulFunctionCall","src":"12953:8:23"},{"name":"mask","nativeSrc":"12963:4:23","nodeType":"YulIdentifier","src":"12963:4:23"}],"functionName":{"name":"and","nativeSrc":"12949:3:23","nodeType":"YulIdentifier","src":"12949:3:23"},"nativeSrc":"12949:19:23","nodeType":"YulFunctionCall","src":"12949:19:23"}],"functionName":{"name":"and","nativeSrc":"12932:3:23","nodeType":"YulIdentifier","src":"12932:3:23"},"nativeSrc":"12932:37:23","nodeType":"YulFunctionCall","src":"12932:37:23"}],"functionName":{"name":"shr","nativeSrc":"12925:3:23","nodeType":"YulIdentifier","src":"12925:3:23"},"nativeSrc":"12925:45:23","nodeType":"YulFunctionCall","src":"12925:45:23"}],"functionName":{"name":"xor","nativeSrc":"12911:3:23","nodeType":"YulIdentifier","src":"12911:3:23"},"nativeSrc":"12911:60:23","nodeType":"YulFunctionCall","src":"12911:60:23"}],"functionName":{"name":"mstore","nativeSrc":"12901:6:23","nodeType":"YulIdentifier","src":"12901:6:23"},"nativeSrc":"12901:71:23","nodeType":"YulFunctionCall","src":"12901:71:23"},"nativeSrc":"12901:71:23","nodeType":"YulExpressionStatement","src":"12901:71:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10450,"isOffset":false,"isSlot":false,"src":"12441:3:23","valueSize":1}],"id":10458,"nodeType":"InlineAssembly","src":"12326:656:23"}]},"documentation":{"id":10445,"nodeType":"StructuredDocumentation","src":"11884:261:23","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\", encoded using 2 hexadecimal digits per byte,\n and the alphabets are capitalized conditionally according to\n https://eips.ethereum.org/EIPS/eip-55"},"id":10460,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringChecksummed","nameLocation":"12159:22:23","nodeType":"FunctionDefinition","parameters":{"id":10448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10447,"mutability":"mutable","name":"value","nameLocation":"12190:5:23","nodeType":"VariableDeclaration","scope":10460,"src":"12182:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10446,"name":"address","nodeType":"ElementaryTypeName","src":"12182:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12181:15:23"},"returnParameters":{"id":10451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10450,"mutability":"mutable","name":"str","nameLocation":"12234:3:23","nodeType":"VariableDeclaration","scope":10460,"src":"12220:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10449,"name":"string","nodeType":"ElementaryTypeName","src":"12220:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12219:19:23"},"scope":10950,"src":"12150:838:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10475,"nodeType":"Block","src":"13226:358:23","statements":[{"expression":{"id":10472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10468,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10466,"src":"13236:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10470,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10463,"src":"13262:5:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10469,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10386,10444,10486,10512],"referencedDeclaration":10486,"src":"13242:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":10471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13242:26:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13236:32:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10473,"nodeType":"ExpressionStatement","src":"13236:32:23"},{"AST":{"nativeSrc":"13330:248:23","nodeType":"YulBlock","src":"13330:248:23","statements":[{"nativeSrc":"13344:35:23","nodeType":"YulVariableDeclaration","src":"13344:35:23","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"13371:3:23","nodeType":"YulIdentifier","src":"13371:3:23"}],"functionName":{"name":"mload","nativeSrc":"13365:5:23","nodeType":"YulIdentifier","src":"13365:5:23"},"nativeSrc":"13365:10:23","nodeType":"YulFunctionCall","src":"13365:10:23"},{"kind":"number","nativeSrc":"13377:1:23","nodeType":"YulLiteral","src":"13377:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"13361:3:23","nodeType":"YulIdentifier","src":"13361:3:23"},"nativeSrc":"13361:18:23","nodeType":"YulFunctionCall","src":"13361:18:23"},"variables":[{"name":"strLength","nativeSrc":"13348:9:23","nodeType":"YulTypedName","src":"13348:9:23","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"13422:3:23","nodeType":"YulIdentifier","src":"13422:3:23"},{"kind":"number","nativeSrc":"13427:6:23","nodeType":"YulLiteral","src":"13427:6:23","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"13415:6:23","nodeType":"YulIdentifier","src":"13415:6:23"},"nativeSrc":"13415:19:23","nodeType":"YulFunctionCall","src":"13415:19:23"},"nativeSrc":"13415:19:23","nodeType":"YulExpressionStatement","src":"13415:19:23"},{"nativeSrc":"13473:18:23","nodeType":"YulAssignment","src":"13473:18:23","value":{"arguments":[{"name":"str","nativeSrc":"13484:3:23","nodeType":"YulIdentifier","src":"13484:3:23"},{"kind":"number","nativeSrc":"13489:1:23","nodeType":"YulLiteral","src":"13489:1:23","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"13480:3:23","nodeType":"YulIdentifier","src":"13480:3:23"},"nativeSrc":"13480:11:23","nodeType":"YulFunctionCall","src":"13480:11:23"},"variableNames":[{"name":"str","nativeSrc":"13473:3:23","nodeType":"YulIdentifier","src":"13473:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"13532:3:23","nodeType":"YulIdentifier","src":"13532:3:23"},{"name":"strLength","nativeSrc":"13537:9:23","nodeType":"YulIdentifier","src":"13537:9:23"}],"functionName":{"name":"mstore","nativeSrc":"13525:6:23","nodeType":"YulIdentifier","src":"13525:6:23"},"nativeSrc":"13525:22:23","nodeType":"YulFunctionCall","src":"13525:22:23"},"nativeSrc":"13525:22:23","nodeType":"YulExpressionStatement","src":"13525:22:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10466,"isOffset":false,"isSlot":false,"src":"13371:3:23","valueSize":1},{"declaration":10466,"isOffset":false,"isSlot":false,"src":"13422:3:23","valueSize":1},{"declaration":10466,"isOffset":false,"isSlot":false,"src":"13473:3:23","valueSize":1},{"declaration":10466,"isOffset":false,"isSlot":false,"src":"13484:3:23","valueSize":1},{"declaration":10466,"isOffset":false,"isSlot":false,"src":"13532:3:23","valueSize":1}],"id":10474,"nodeType":"InlineAssembly","src":"13321:257:23"}]},"documentation":{"id":10461,"nodeType":"StructuredDocumentation","src":"12994:149:23","text":"@dev Returns the hexadecimal representation of `value`.\n The output is prefixed with \"0x\" and encoded using 2 hexadecimal digits per byte."},"id":10476,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"13157:11:23","nodeType":"FunctionDefinition","parameters":{"id":10464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10463,"mutability":"mutable","name":"value","nameLocation":"13177:5:23","nodeType":"VariableDeclaration","scope":10476,"src":"13169:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10462,"name":"address","nodeType":"ElementaryTypeName","src":"13169:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13168:15:23"},"returnParameters":{"id":10467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10466,"mutability":"mutable","name":"str","nameLocation":"13221:3:23","nodeType":"VariableDeclaration","scope":10476,"src":"13207:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10465,"name":"string","nodeType":"ElementaryTypeName","src":"13207:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13206:19:23"},"scope":10950,"src":"13148:436:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10485,"nodeType":"Block","src":"13807:1208:23","statements":[{"AST":{"nativeSrc":"13869:1140:23","nodeType":"YulBlock","src":"13869:1140:23","statements":[{"nativeSrc":"13883:18:23","nodeType":"YulAssignment","src":"13883:18:23","value":{"arguments":[{"kind":"number","nativeSrc":"13896:4:23","nodeType":"YulLiteral","src":"13896:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13890:5:23","nodeType":"YulIdentifier","src":"13890:5:23"},"nativeSrc":"13890:11:23","nodeType":"YulFunctionCall","src":"13890:11:23"},"variableNames":[{"name":"str","nativeSrc":"13883:3:23","nodeType":"YulIdentifier","src":"13883:3:23"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14208:4:23","nodeType":"YulLiteral","src":"14208:4:23","type":"","value":"0x40"},{"arguments":[{"name":"str","nativeSrc":"14218:3:23","nodeType":"YulIdentifier","src":"14218:3:23"},{"kind":"number","nativeSrc":"14223:4:23","nodeType":"YulLiteral","src":"14223:4:23","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"14214:3:23","nodeType":"YulIdentifier","src":"14214:3:23"},"nativeSrc":"14214:14:23","nodeType":"YulFunctionCall","src":"14214:14:23"}],"functionName":{"name":"mstore","nativeSrc":"14201:6:23","nodeType":"YulIdentifier","src":"14201:6:23"},"nativeSrc":"14201:28:23","nodeType":"YulFunctionCall","src":"14201:28:23"},"nativeSrc":"14201:28:23","nodeType":"YulExpressionStatement","src":"14201:28:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14308:4:23","nodeType":"YulLiteral","src":"14308:4:23","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"14314:34:23","nodeType":"YulLiteral","src":"14314:34:23","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"14301:6:23","nodeType":"YulIdentifier","src":"14301:6:23"},"nativeSrc":"14301:48:23","nodeType":"YulFunctionCall","src":"14301:48:23"},"nativeSrc":"14301:48:23","nodeType":"YulExpressionStatement","src":"14301:48:23"},{"nativeSrc":"14363:18:23","nodeType":"YulAssignment","src":"14363:18:23","value":{"arguments":[{"name":"str","nativeSrc":"14374:3:23","nodeType":"YulIdentifier","src":"14374:3:23"},{"kind":"number","nativeSrc":"14379:1:23","nodeType":"YulLiteral","src":"14379:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"14370:3:23","nodeType":"YulIdentifier","src":"14370:3:23"},"nativeSrc":"14370:11:23","nodeType":"YulFunctionCall","src":"14370:11:23"},"variableNames":[{"name":"str","nativeSrc":"14363:3:23","nodeType":"YulIdentifier","src":"14363:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"14401:3:23","nodeType":"YulIdentifier","src":"14401:3:23"},{"kind":"number","nativeSrc":"14406:2:23","nodeType":"YulLiteral","src":"14406:2:23","type":"","value":"40"}],"functionName":{"name":"mstore","nativeSrc":"14394:6:23","nodeType":"YulIdentifier","src":"14394:6:23"},"nativeSrc":"14394:15:23","nodeType":"YulFunctionCall","src":"14394:15:23"},"nativeSrc":"14394:15:23","nodeType":"YulExpressionStatement","src":"14394:15:23"},{"nativeSrc":"14423:23:23","nodeType":"YulVariableDeclaration","src":"14423:23:23","value":{"arguments":[{"name":"str","nativeSrc":"14436:3:23","nodeType":"YulIdentifier","src":"14436:3:23"},{"kind":"number","nativeSrc":"14441:4:23","nodeType":"YulLiteral","src":"14441:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14432:3:23","nodeType":"YulIdentifier","src":"14432:3:23"},"nativeSrc":"14432:14:23","nodeType":"YulFunctionCall","src":"14432:14:23"},"variables":[{"name":"o","nativeSrc":"14427:1:23","nodeType":"YulTypedName","src":"14427:1:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"14470:1:23","nodeType":"YulIdentifier","src":"14470:1:23"},{"kind":"number","nativeSrc":"14473:2:23","nodeType":"YulLiteral","src":"14473:2:23","type":"","value":"40"}],"functionName":{"name":"add","nativeSrc":"14466:3:23","nodeType":"YulIdentifier","src":"14466:3:23"},"nativeSrc":"14466:10:23","nodeType":"YulFunctionCall","src":"14466:10:23"},{"kind":"number","nativeSrc":"14478:1:23","nodeType":"YulLiteral","src":"14478:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14459:6:23","nodeType":"YulIdentifier","src":"14459:6:23"},"nativeSrc":"14459:21:23","nodeType":"YulFunctionCall","src":"14459:21:23"},"nativeSrc":"14459:21:23","nodeType":"YulExpressionStatement","src":"14459:21:23"},{"nativeSrc":"14494:23:23","nodeType":"YulAssignment","src":"14494:23:23","value":{"arguments":[{"kind":"number","nativeSrc":"14507:2:23","nodeType":"YulLiteral","src":"14507:2:23","type":"","value":"96"},{"name":"value","nativeSrc":"14511:5:23","nodeType":"YulIdentifier","src":"14511:5:23"}],"functionName":{"name":"shl","nativeSrc":"14503:3:23","nodeType":"YulIdentifier","src":"14503:3:23"},"nativeSrc":"14503:14:23","nodeType":"YulFunctionCall","src":"14503:14:23"},"variableNames":[{"name":"value","nativeSrc":"14494:5:23","nodeType":"YulIdentifier","src":"14494:5:23"}]},{"body":{"nativeSrc":"14723:276:23","nodeType":"YulBlock","src":"14723:276:23","statements":[{"nativeSrc":"14741:26:23","nodeType":"YulVariableDeclaration","src":"14741:26:23","value":{"arguments":[{"name":"o","nativeSrc":"14754:1:23","nodeType":"YulIdentifier","src":"14754:1:23"},{"arguments":[{"name":"i","nativeSrc":"14761:1:23","nodeType":"YulIdentifier","src":"14761:1:23"},{"name":"i","nativeSrc":"14764:1:23","nodeType":"YulIdentifier","src":"14764:1:23"}],"functionName":{"name":"add","nativeSrc":"14757:3:23","nodeType":"YulIdentifier","src":"14757:3:23"},"nativeSrc":"14757:9:23","nodeType":"YulFunctionCall","src":"14757:9:23"}],"functionName":{"name":"add","nativeSrc":"14750:3:23","nodeType":"YulIdentifier","src":"14750:3:23"},"nativeSrc":"14750:17:23","nodeType":"YulFunctionCall","src":"14750:17:23"},"variables":[{"name":"p","nativeSrc":"14745:1:23","nodeType":"YulTypedName","src":"14745:1:23","type":""}]},{"nativeSrc":"14784:26:23","nodeType":"YulVariableDeclaration","src":"14784:26:23","value":{"arguments":[{"name":"i","nativeSrc":"14801:1:23","nodeType":"YulIdentifier","src":"14801:1:23"},{"name":"value","nativeSrc":"14804:5:23","nodeType":"YulIdentifier","src":"14804:5:23"}],"functionName":{"name":"byte","nativeSrc":"14796:4:23","nodeType":"YulIdentifier","src":"14796:4:23"},"nativeSrc":"14796:14:23","nodeType":"YulFunctionCall","src":"14796:14:23"},"variables":[{"name":"temp","nativeSrc":"14788:4:23","nodeType":"YulTypedName","src":"14788:4:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"p","nativeSrc":"14839:1:23","nodeType":"YulIdentifier","src":"14839:1:23"},{"kind":"number","nativeSrc":"14842:1:23","nodeType":"YulLiteral","src":"14842:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14835:3:23","nodeType":"YulIdentifier","src":"14835:3:23"},"nativeSrc":"14835:9:23","nodeType":"YulFunctionCall","src":"14835:9:23"},{"arguments":[{"arguments":[{"name":"temp","nativeSrc":"14856:4:23","nodeType":"YulIdentifier","src":"14856:4:23"},{"kind":"number","nativeSrc":"14862:2:23","nodeType":"YulLiteral","src":"14862:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"14852:3:23","nodeType":"YulIdentifier","src":"14852:3:23"},"nativeSrc":"14852:13:23","nodeType":"YulFunctionCall","src":"14852:13:23"}],"functionName":{"name":"mload","nativeSrc":"14846:5:23","nodeType":"YulIdentifier","src":"14846:5:23"},"nativeSrc":"14846:20:23","nodeType":"YulFunctionCall","src":"14846:20:23"}],"functionName":{"name":"mstore8","nativeSrc":"14827:7:23","nodeType":"YulIdentifier","src":"14827:7:23"},"nativeSrc":"14827:40:23","nodeType":"YulFunctionCall","src":"14827:40:23"},"nativeSrc":"14827:40:23","nodeType":"YulExpressionStatement","src":"14827:40:23"},{"expression":{"arguments":[{"name":"p","nativeSrc":"14892:1:23","nodeType":"YulIdentifier","src":"14892:1:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14905:1:23","nodeType":"YulLiteral","src":"14905:1:23","type":"","value":"4"},{"name":"temp","nativeSrc":"14908:4:23","nodeType":"YulIdentifier","src":"14908:4:23"}],"functionName":{"name":"shr","nativeSrc":"14901:3:23","nodeType":"YulIdentifier","src":"14901:3:23"},"nativeSrc":"14901:12:23","nodeType":"YulFunctionCall","src":"14901:12:23"}],"functionName":{"name":"mload","nativeSrc":"14895:5:23","nodeType":"YulIdentifier","src":"14895:5:23"},"nativeSrc":"14895:19:23","nodeType":"YulFunctionCall","src":"14895:19:23"}],"functionName":{"name":"mstore8","nativeSrc":"14884:7:23","nodeType":"YulIdentifier","src":"14884:7:23"},"nativeSrc":"14884:31:23","nodeType":"YulFunctionCall","src":"14884:31:23"},"nativeSrc":"14884:31:23","nodeType":"YulExpressionStatement","src":"14884:31:23"},{"nativeSrc":"14932:14:23","nodeType":"YulAssignment","src":"14932:14:23","value":{"arguments":[{"name":"i","nativeSrc":"14941:1:23","nodeType":"YulIdentifier","src":"14941:1:23"},{"kind":"number","nativeSrc":"14944:1:23","nodeType":"YulLiteral","src":"14944:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14937:3:23","nodeType":"YulIdentifier","src":"14937:3:23"},"nativeSrc":"14937:9:23","nodeType":"YulFunctionCall","src":"14937:9:23"},"variableNames":[{"name":"i","nativeSrc":"14932:1:23","nodeType":"YulIdentifier","src":"14932:1:23"}]},{"body":{"nativeSrc":"14976:9:23","nodeType":"YulBlock","src":"14976:9:23","statements":[{"nativeSrc":"14978:5:23","nodeType":"YulBreak","src":"14978:5:23"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14969:1:23","nodeType":"YulIdentifier","src":"14969:1:23"},{"kind":"number","nativeSrc":"14972:2:23","nodeType":"YulLiteral","src":"14972:2:23","type":"","value":"20"}],"functionName":{"name":"eq","nativeSrc":"14966:2:23","nodeType":"YulIdentifier","src":"14966:2:23"},"nativeSrc":"14966:9:23","nodeType":"YulFunctionCall","src":"14966:9:23"},"nativeSrc":"14963:22:23","nodeType":"YulIf","src":"14963:22:23"}]},"condition":{"kind":"number","nativeSrc":"14718:1:23","nodeType":"YulLiteral","src":"14718:1:23","type":"","value":"1"},"nativeSrc":"14699:300:23","nodeType":"YulForLoop","post":{"nativeSrc":"14720:2:23","nodeType":"YulBlock","src":"14720:2:23","statements":[]},"pre":{"nativeSrc":"14703:14:23","nodeType":"YulBlock","src":"14703:14:23","statements":[{"nativeSrc":"14705:10:23","nodeType":"YulVariableDeclaration","src":"14705:10:23","value":{"kind":"number","nativeSrc":"14714:1:23","nodeType":"YulLiteral","src":"14714:1:23","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14709:1:23","nodeType":"YulTypedName","src":"14709:1:23","type":""}]}]},"src":"14699:300:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10482,"isOffset":false,"isSlot":false,"src":"13883:3:23","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"14218:3:23","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"14363:3:23","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"14374:3:23","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"14401:3:23","valueSize":1},{"declaration":10482,"isOffset":false,"isSlot":false,"src":"14436:3:23","valueSize":1},{"declaration":10479,"isOffset":false,"isSlot":false,"src":"14494:5:23","valueSize":1},{"declaration":10479,"isOffset":false,"isSlot":false,"src":"14511:5:23","valueSize":1},{"declaration":10479,"isOffset":false,"isSlot":false,"src":"14804:5:23","valueSize":1}],"id":10484,"nodeType":"InlineAssembly","src":"13860:1149:23"}]},"documentation":{"id":10477,"nodeType":"StructuredDocumentation","src":"13590:126:23","text":"@dev Returns the hexadecimal representation of `value`.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10486,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"13730:19:23","nodeType":"FunctionDefinition","parameters":{"id":10480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10479,"mutability":"mutable","name":"value","nameLocation":"13758:5:23","nodeType":"VariableDeclaration","scope":10486,"src":"13750:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10478,"name":"address","nodeType":"ElementaryTypeName","src":"13750:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13749:15:23"},"returnParameters":{"id":10483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10482,"mutability":"mutable","name":"str","nameLocation":"13802:3:23","nodeType":"VariableDeclaration","scope":10486,"src":"13788:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10481,"name":"string","nodeType":"ElementaryTypeName","src":"13788:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13787:19:23"},"scope":10950,"src":"13721:1294:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10501,"nodeType":"Block","src":"15233:356:23","statements":[{"expression":{"id":10498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10494,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"15243:3:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10496,"name":"raw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10489,"src":"15269:3:23","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10495,"name":"toHexStringNoPrefix","nodeType":"Identifier","overloadedDeclarations":[10386,10444,10486,10512],"referencedDeclaration":10512,"src":"15249:19:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":10497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15249:24:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"15243:30:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10499,"nodeType":"ExpressionStatement","src":"15243:30:23"},{"AST":{"nativeSrc":"15335:248:23","nodeType":"YulBlock","src":"15335:248:23","statements":[{"nativeSrc":"15349:35:23","nodeType":"YulVariableDeclaration","src":"15349:35:23","value":{"arguments":[{"arguments":[{"name":"str","nativeSrc":"15376:3:23","nodeType":"YulIdentifier","src":"15376:3:23"}],"functionName":{"name":"mload","nativeSrc":"15370:5:23","nodeType":"YulIdentifier","src":"15370:5:23"},"nativeSrc":"15370:10:23","nodeType":"YulFunctionCall","src":"15370:10:23"},{"kind":"number","nativeSrc":"15382:1:23","nodeType":"YulLiteral","src":"15382:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"15366:3:23","nodeType":"YulIdentifier","src":"15366:3:23"},"nativeSrc":"15366:18:23","nodeType":"YulFunctionCall","src":"15366:18:23"},"variables":[{"name":"strLength","nativeSrc":"15353:9:23","nodeType":"YulTypedName","src":"15353:9:23","type":""}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"15427:3:23","nodeType":"YulIdentifier","src":"15427:3:23"},{"kind":"number","nativeSrc":"15432:6:23","nodeType":"YulLiteral","src":"15432:6:23","type":"","value":"0x3078"}],"functionName":{"name":"mstore","nativeSrc":"15420:6:23","nodeType":"YulIdentifier","src":"15420:6:23"},"nativeSrc":"15420:19:23","nodeType":"YulFunctionCall","src":"15420:19:23"},"nativeSrc":"15420:19:23","nodeType":"YulExpressionStatement","src":"15420:19:23"},{"nativeSrc":"15478:18:23","nodeType":"YulAssignment","src":"15478:18:23","value":{"arguments":[{"name":"str","nativeSrc":"15489:3:23","nodeType":"YulIdentifier","src":"15489:3:23"},{"kind":"number","nativeSrc":"15494:1:23","nodeType":"YulLiteral","src":"15494:1:23","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"15485:3:23","nodeType":"YulIdentifier","src":"15485:3:23"},"nativeSrc":"15485:11:23","nodeType":"YulFunctionCall","src":"15485:11:23"},"variableNames":[{"name":"str","nativeSrc":"15478:3:23","nodeType":"YulIdentifier","src":"15478:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"15537:3:23","nodeType":"YulIdentifier","src":"15537:3:23"},{"name":"strLength","nativeSrc":"15542:9:23","nodeType":"YulIdentifier","src":"15542:9:23"}],"functionName":{"name":"mstore","nativeSrc":"15530:6:23","nodeType":"YulIdentifier","src":"15530:6:23"},"nativeSrc":"15530:22:23","nodeType":"YulFunctionCall","src":"15530:22:23"},"nativeSrc":"15530:22:23","nodeType":"YulExpressionStatement","src":"15530:22:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10492,"isOffset":false,"isSlot":false,"src":"15376:3:23","valueSize":1},{"declaration":10492,"isOffset":false,"isSlot":false,"src":"15427:3:23","valueSize":1},{"declaration":10492,"isOffset":false,"isSlot":false,"src":"15478:3:23","valueSize":1},{"declaration":10492,"isOffset":false,"isSlot":false,"src":"15489:3:23","valueSize":1},{"declaration":10492,"isOffset":false,"isSlot":false,"src":"15537:3:23","valueSize":1}],"id":10500,"nodeType":"InlineAssembly","src":"15326:257:23"}]},"documentation":{"id":10487,"nodeType":"StructuredDocumentation","src":"15021:126:23","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10502,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"15161:11:23","nodeType":"FunctionDefinition","parameters":{"id":10490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10489,"mutability":"mutable","name":"raw","nameLocation":"15186:3:23","nodeType":"VariableDeclaration","scope":10502,"src":"15173:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10488,"name":"bytes","nodeType":"ElementaryTypeName","src":"15173:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15172:18:23"},"returnParameters":{"id":10493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10492,"mutability":"mutable","name":"str","nameLocation":"15228:3:23","nodeType":"VariableDeclaration","scope":10502,"src":"15214:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10491,"name":"string","nodeType":"ElementaryTypeName","src":"15214:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15213:19:23"},"scope":10950,"src":"15152:437:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10511,"nodeType":"Block","src":"15815:851:23","statements":[{"AST":{"nativeSrc":"15877:783:23","nodeType":"YulBlock","src":"15877:783:23","statements":[{"nativeSrc":"15891:24:23","nodeType":"YulVariableDeclaration","src":"15891:24:23","value":{"arguments":[{"name":"raw","nativeSrc":"15911:3:23","nodeType":"YulIdentifier","src":"15911:3:23"}],"functionName":{"name":"mload","nativeSrc":"15905:5:23","nodeType":"YulIdentifier","src":"15905:5:23"},"nativeSrc":"15905:10:23","nodeType":"YulFunctionCall","src":"15905:10:23"},"variables":[{"name":"length","nativeSrc":"15895:6:23","nodeType":"YulTypedName","src":"15895:6:23","type":""}]},{"nativeSrc":"15928:26:23","nodeType":"YulAssignment","src":"15928:26:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15945:4:23","nodeType":"YulLiteral","src":"15945:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"15939:5:23","nodeType":"YulIdentifier","src":"15939:5:23"},"nativeSrc":"15939:11:23","nodeType":"YulFunctionCall","src":"15939:11:23"},{"kind":"number","nativeSrc":"15952:1:23","nodeType":"YulLiteral","src":"15952:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"15935:3:23","nodeType":"YulIdentifier","src":"15935:3:23"},"nativeSrc":"15935:19:23","nodeType":"YulFunctionCall","src":"15935:19:23"},"variableNames":[{"name":"str","nativeSrc":"15928:3:23","nodeType":"YulIdentifier","src":"15928:3:23"}]},{"expression":{"arguments":[{"name":"str","nativeSrc":"16015:3:23","nodeType":"YulIdentifier","src":"16015:3:23"},{"arguments":[{"name":"length","nativeSrc":"16024:6:23","nodeType":"YulIdentifier","src":"16024:6:23"},{"name":"length","nativeSrc":"16032:6:23","nodeType":"YulIdentifier","src":"16032:6:23"}],"functionName":{"name":"add","nativeSrc":"16020:3:23","nodeType":"YulIdentifier","src":"16020:3:23"},"nativeSrc":"16020:19:23","nodeType":"YulFunctionCall","src":"16020:19:23"}],"functionName":{"name":"mstore","nativeSrc":"16008:6:23","nodeType":"YulIdentifier","src":"16008:6:23"},"nativeSrc":"16008:32:23","nodeType":"YulFunctionCall","src":"16008:32:23"},"nativeSrc":"16008:32:23","nodeType":"YulExpressionStatement","src":"16008:32:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16154:4:23","nodeType":"YulLiteral","src":"16154:4:23","type":"","value":"0x0f"},{"kind":"number","nativeSrc":"16160:34:23","nodeType":"YulLiteral","src":"16160:34:23","type":"","value":"0x30313233343536373839616263646566"}],"functionName":{"name":"mstore","nativeSrc":"16147:6:23","nodeType":"YulIdentifier","src":"16147:6:23"},"nativeSrc":"16147:48:23","nodeType":"YulFunctionCall","src":"16147:48:23"},"nativeSrc":"16147:48:23","nodeType":"YulExpressionStatement","src":"16147:48:23"},{"nativeSrc":"16209:23:23","nodeType":"YulVariableDeclaration","src":"16209:23:23","value":{"arguments":[{"name":"str","nativeSrc":"16222:3:23","nodeType":"YulIdentifier","src":"16222:3:23"},{"kind":"number","nativeSrc":"16227:4:23","nodeType":"YulLiteral","src":"16227:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16218:3:23","nodeType":"YulIdentifier","src":"16218:3:23"},"nativeSrc":"16218:14:23","nodeType":"YulFunctionCall","src":"16218:14:23"},"variables":[{"name":"o","nativeSrc":"16213:1:23","nodeType":"YulTypedName","src":"16213:1:23","type":""}]},{"nativeSrc":"16245:27:23","nodeType":"YulVariableDeclaration","src":"16245:27:23","value":{"arguments":[{"name":"raw","nativeSrc":"16260:3:23","nodeType":"YulIdentifier","src":"16260:3:23"},{"name":"length","nativeSrc":"16265:6:23","nodeType":"YulIdentifier","src":"16265:6:23"}],"functionName":{"name":"add","nativeSrc":"16256:3:23","nodeType":"YulIdentifier","src":"16256:3:23"},"nativeSrc":"16256:16:23","nodeType":"YulFunctionCall","src":"16256:16:23"},"variables":[{"name":"end","nativeSrc":"16249:3:23","nodeType":"YulTypedName","src":"16249:3:23","type":""}]},{"body":{"nativeSrc":"16317:207:23","nodeType":"YulBlock","src":"16317:207:23","statements":[{"nativeSrc":"16335:18:23","nodeType":"YulAssignment","src":"16335:18:23","value":{"arguments":[{"name":"raw","nativeSrc":"16346:3:23","nodeType":"YulIdentifier","src":"16346:3:23"},{"kind":"number","nativeSrc":"16351:1:23","nodeType":"YulLiteral","src":"16351:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16342:3:23","nodeType":"YulIdentifier","src":"16342:3:23"},"nativeSrc":"16342:11:23","nodeType":"YulFunctionCall","src":"16342:11:23"},"variableNames":[{"name":"raw","nativeSrc":"16335:3:23","nodeType":"YulIdentifier","src":"16335:3:23"}]},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"16382:1:23","nodeType":"YulIdentifier","src":"16382:1:23"},{"kind":"number","nativeSrc":"16385:1:23","nodeType":"YulLiteral","src":"16385:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16378:3:23","nodeType":"YulIdentifier","src":"16378:3:23"},"nativeSrc":"16378:9:23","nodeType":"YulFunctionCall","src":"16378:9:23"},{"arguments":[{"arguments":[{"arguments":[{"name":"raw","nativeSrc":"16405:3:23","nodeType":"YulIdentifier","src":"16405:3:23"}],"functionName":{"name":"mload","nativeSrc":"16399:5:23","nodeType":"YulIdentifier","src":"16399:5:23"},"nativeSrc":"16399:10:23","nodeType":"YulFunctionCall","src":"16399:10:23"},{"kind":"number","nativeSrc":"16411:2:23","nodeType":"YulLiteral","src":"16411:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"16395:3:23","nodeType":"YulIdentifier","src":"16395:3:23"},"nativeSrc":"16395:19:23","nodeType":"YulFunctionCall","src":"16395:19:23"}],"functionName":{"name":"mload","nativeSrc":"16389:5:23","nodeType":"YulIdentifier","src":"16389:5:23"},"nativeSrc":"16389:26:23","nodeType":"YulFunctionCall","src":"16389:26:23"}],"functionName":{"name":"mstore8","nativeSrc":"16370:7:23","nodeType":"YulIdentifier","src":"16370:7:23"},"nativeSrc":"16370:46:23","nodeType":"YulFunctionCall","src":"16370:46:23"},"nativeSrc":"16370:46:23","nodeType":"YulExpressionStatement","src":"16370:46:23"},{"expression":{"arguments":[{"name":"o","nativeSrc":"16441:1:23","nodeType":"YulIdentifier","src":"16441:1:23"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16458:1:23","nodeType":"YulLiteral","src":"16458:1:23","type":"","value":"4"},{"arguments":[{"name":"raw","nativeSrc":"16467:3:23","nodeType":"YulIdentifier","src":"16467:3:23"}],"functionName":{"name":"mload","nativeSrc":"16461:5:23","nodeType":"YulIdentifier","src":"16461:5:23"},"nativeSrc":"16461:10:23","nodeType":"YulFunctionCall","src":"16461:10:23"}],"functionName":{"name":"shr","nativeSrc":"16454:3:23","nodeType":"YulIdentifier","src":"16454:3:23"},"nativeSrc":"16454:18:23","nodeType":"YulFunctionCall","src":"16454:18:23"},{"kind":"number","nativeSrc":"16474:2:23","nodeType":"YulLiteral","src":"16474:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"16450:3:23","nodeType":"YulIdentifier","src":"16450:3:23"},"nativeSrc":"16450:27:23","nodeType":"YulFunctionCall","src":"16450:27:23"}],"functionName":{"name":"mload","nativeSrc":"16444:5:23","nodeType":"YulIdentifier","src":"16444:5:23"},"nativeSrc":"16444:34:23","nodeType":"YulFunctionCall","src":"16444:34:23"}],"functionName":{"name":"mstore8","nativeSrc":"16433:7:23","nodeType":"YulIdentifier","src":"16433:7:23"},"nativeSrc":"16433:46:23","nodeType":"YulFunctionCall","src":"16433:46:23"},"nativeSrc":"16433:46:23","nodeType":"YulExpressionStatement","src":"16433:46:23"},{"nativeSrc":"16496:14:23","nodeType":"YulAssignment","src":"16496:14:23","value":{"arguments":[{"name":"o","nativeSrc":"16505:1:23","nodeType":"YulIdentifier","src":"16505:1:23"},{"kind":"number","nativeSrc":"16508:1:23","nodeType":"YulLiteral","src":"16508:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"16501:3:23","nodeType":"YulIdentifier","src":"16501:3:23"},"nativeSrc":"16501:9:23","nodeType":"YulFunctionCall","src":"16501:9:23"},"variableNames":[{"name":"o","nativeSrc":"16496:1:23","nodeType":"YulIdentifier","src":"16496:1:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"raw","nativeSrc":"16303:3:23","nodeType":"YulIdentifier","src":"16303:3:23"},{"name":"end","nativeSrc":"16308:3:23","nodeType":"YulIdentifier","src":"16308:3:23"}],"functionName":{"name":"eq","nativeSrc":"16300:2:23","nodeType":"YulIdentifier","src":"16300:2:23"},"nativeSrc":"16300:12:23","nodeType":"YulFunctionCall","src":"16300:12:23"}],"functionName":{"name":"iszero","nativeSrc":"16293:6:23","nodeType":"YulIdentifier","src":"16293:6:23"},"nativeSrc":"16293:20:23","nodeType":"YulFunctionCall","src":"16293:20:23"},"nativeSrc":"16286:238:23","nodeType":"YulForLoop","post":{"nativeSrc":"16314:2:23","nodeType":"YulBlock","src":"16314:2:23","statements":[]},"pre":{"nativeSrc":"16290:2:23","nodeType":"YulBlock","src":"16290:2:23","statements":[]},"src":"16286:238:23"},{"expression":{"arguments":[{"name":"o","nativeSrc":"16544:1:23","nodeType":"YulIdentifier","src":"16544:1:23"},{"kind":"number","nativeSrc":"16547:1:23","nodeType":"YulLiteral","src":"16547:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16537:6:23","nodeType":"YulIdentifier","src":"16537:6:23"},"nativeSrc":"16537:12:23","nodeType":"YulFunctionCall","src":"16537:12:23"},"nativeSrc":"16537:12:23","nodeType":"YulExpressionStatement","src":"16537:12:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16607:4:23","nodeType":"YulLiteral","src":"16607:4:23","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"16617:1:23","nodeType":"YulIdentifier","src":"16617:1:23"},{"kind":"number","nativeSrc":"16620:4:23","nodeType":"YulLiteral","src":"16620:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16613:3:23","nodeType":"YulIdentifier","src":"16613:3:23"},"nativeSrc":"16613:12:23","nodeType":"YulFunctionCall","src":"16613:12:23"}],"functionName":{"name":"mstore","nativeSrc":"16600:6:23","nodeType":"YulIdentifier","src":"16600:6:23"},"nativeSrc":"16600:26:23","nodeType":"YulFunctionCall","src":"16600:26:23"},"nativeSrc":"16600:26:23","nodeType":"YulExpressionStatement","src":"16600:26:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10505,"isOffset":false,"isSlot":false,"src":"15911:3:23","valueSize":1},{"declaration":10505,"isOffset":false,"isSlot":false,"src":"16260:3:23","valueSize":1},{"declaration":10505,"isOffset":false,"isSlot":false,"src":"16303:3:23","valueSize":1},{"declaration":10505,"isOffset":false,"isSlot":false,"src":"16335:3:23","valueSize":1},{"declaration":10505,"isOffset":false,"isSlot":false,"src":"16346:3:23","valueSize":1},{"declaration":10505,"isOffset":false,"isSlot":false,"src":"16405:3:23","valueSize":1},{"declaration":10505,"isOffset":false,"isSlot":false,"src":"16467:3:23","valueSize":1},{"declaration":10508,"isOffset":false,"isSlot":false,"src":"15928:3:23","valueSize":1},{"declaration":10508,"isOffset":false,"isSlot":false,"src":"16015:3:23","valueSize":1},{"declaration":10508,"isOffset":false,"isSlot":false,"src":"16222:3:23","valueSize":1}],"id":10510,"nodeType":"InlineAssembly","src":"15868:792:23"}]},"documentation":{"id":10503,"nodeType":"StructuredDocumentation","src":"15595:126:23","text":"@dev Returns the hex encoded string from the raw bytes.\n The output is encoded using 2 hexadecimal digits per byte."},"id":10512,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nameLocation":"15735:19:23","nodeType":"FunctionDefinition","parameters":{"id":10506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10505,"mutability":"mutable","name":"raw","nameLocation":"15768:3:23","nodeType":"VariableDeclaration","scope":10512,"src":"15755:16:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10504,"name":"bytes","nodeType":"ElementaryTypeName","src":"15755:5:23","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15754:18:23"},"returnParameters":{"id":10509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10508,"mutability":"mutable","name":"str","nameLocation":"15810:3:23","nodeType":"VariableDeclaration","scope":10512,"src":"15796:17:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10507,"name":"string","nodeType":"ElementaryTypeName","src":"15796:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15795:19:23"},"scope":10950,"src":"15726:940:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10521,"nodeType":"Block","src":"17095:552:23","statements":[{"AST":{"nativeSrc":"17157:484:23","nodeType":"YulBlock","src":"17157:484:23","statements":[{"body":{"nativeSrc":"17183:448:23","nodeType":"YulBlock","src":"17183:448:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17208:4:23","nodeType":"YulLiteral","src":"17208:4:23","type":"","value":"0x00"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17222:1:23","nodeType":"YulLiteral","src":"17222:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"17218:3:23","nodeType":"YulIdentifier","src":"17218:3:23"},"nativeSrc":"17218:6:23","nodeType":"YulFunctionCall","src":"17218:6:23"},{"kind":"number","nativeSrc":"17226:3:23","nodeType":"YulLiteral","src":"17226:3:23","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"17214:3:23","nodeType":"YulIdentifier","src":"17214:3:23"},"nativeSrc":"17214:16:23","nodeType":"YulFunctionCall","src":"17214:16:23"}],"functionName":{"name":"mstore","nativeSrc":"17201:6:23","nodeType":"YulIdentifier","src":"17201:6:23"},"nativeSrc":"17201:30:23","nodeType":"YulFunctionCall","src":"17201:30:23"},"nativeSrc":"17201:30:23","nodeType":"YulExpressionStatement","src":"17201:30:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17255:4:23","nodeType":"YulLiteral","src":"17255:4:23","type":"","value":"0x20"},{"kind":"number","nativeSrc":"17261:66:23","nodeType":"YulLiteral","src":"17261:66:23","type":"","value":"0x0202020202020202020202020202020202020202020202020303030304040506"}],"functionName":{"name":"mstore","nativeSrc":"17248:6:23","nodeType":"YulIdentifier","src":"17248:6:23"},"nativeSrc":"17248:80:23","nodeType":"YulFunctionCall","src":"17248:80:23"},"nativeSrc":"17248:80:23","nodeType":"YulExpressionStatement","src":"17248:80:23"},{"nativeSrc":"17345:21:23","nodeType":"YulVariableDeclaration","src":"17345:21:23","value":{"arguments":[{"name":"s","nativeSrc":"17358:1:23","nodeType":"YulIdentifier","src":"17358:1:23"},{"kind":"number","nativeSrc":"17361:4:23","nodeType":"YulLiteral","src":"17361:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17354:3:23","nodeType":"YulIdentifier","src":"17354:3:23"},"nativeSrc":"17354:12:23","nodeType":"YulFunctionCall","src":"17354:12:23"},"variables":[{"name":"o","nativeSrc":"17349:1:23","nodeType":"YulTypedName","src":"17349:1:23","type":""}]},{"nativeSrc":"17383:27:23","nodeType":"YulVariableDeclaration","src":"17383:27:23","value":{"arguments":[{"name":"o","nativeSrc":"17398:1:23","nodeType":"YulIdentifier","src":"17398:1:23"},{"arguments":[{"name":"s","nativeSrc":"17407:1:23","nodeType":"YulIdentifier","src":"17407:1:23"}],"functionName":{"name":"mload","nativeSrc":"17401:5:23","nodeType":"YulIdentifier","src":"17401:5:23"},"nativeSrc":"17401:8:23","nodeType":"YulFunctionCall","src":"17401:8:23"}],"functionName":{"name":"add","nativeSrc":"17394:3:23","nodeType":"YulIdentifier","src":"17394:3:23"},"nativeSrc":"17394:16:23","nodeType":"YulFunctionCall","src":"17394:16:23"},"variables":[{"name":"end","nativeSrc":"17387:3:23","nodeType":"YulTypedName","src":"17387:3:23","type":""}]},{"body":{"nativeSrc":"17478:139:23","nodeType":"YulBlock","src":"17478:139:23","statements":[{"nativeSrc":"17500:47:23","nodeType":"YulAssignment","src":"17500:47:23","value":{"arguments":[{"name":"o","nativeSrc":"17509:1:23","nodeType":"YulIdentifier","src":"17509:1:23"},{"arguments":[{"kind":"number","nativeSrc":"17517:1:23","nodeType":"YulLiteral","src":"17517:1:23","type":"","value":"0"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17530:3:23","nodeType":"YulLiteral","src":"17530:3:23","type":"","value":"250"},{"arguments":[{"name":"o","nativeSrc":"17541:1:23","nodeType":"YulIdentifier","src":"17541:1:23"}],"functionName":{"name":"mload","nativeSrc":"17535:5:23","nodeType":"YulIdentifier","src":"17535:5:23"},"nativeSrc":"17535:8:23","nodeType":"YulFunctionCall","src":"17535:8:23"}],"functionName":{"name":"shr","nativeSrc":"17526:3:23","nodeType":"YulIdentifier","src":"17526:3:23"},"nativeSrc":"17526:18:23","nodeType":"YulFunctionCall","src":"17526:18:23"}],"functionName":{"name":"mload","nativeSrc":"17520:5:23","nodeType":"YulIdentifier","src":"17520:5:23"},"nativeSrc":"17520:25:23","nodeType":"YulFunctionCall","src":"17520:25:23"}],"functionName":{"name":"byte","nativeSrc":"17512:4:23","nodeType":"YulIdentifier","src":"17512:4:23"},"nativeSrc":"17512:34:23","nodeType":"YulFunctionCall","src":"17512:34:23"}],"functionName":{"name":"add","nativeSrc":"17505:3:23","nodeType":"YulIdentifier","src":"17505:3:23"},"nativeSrc":"17505:42:23","nodeType":"YulFunctionCall","src":"17505:42:23"},"variableNames":[{"name":"o","nativeSrc":"17500:1:23","nodeType":"YulIdentifier","src":"17500:1:23"}]},{"body":{"nativeSrc":"17590:9:23","nodeType":"YulBlock","src":"17590:9:23","statements":[{"nativeSrc":"17592:5:23","nodeType":"YulBreak","src":"17592:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"17581:1:23","nodeType":"YulIdentifier","src":"17581:1:23"},{"name":"end","nativeSrc":"17584:3:23","nodeType":"YulIdentifier","src":"17584:3:23"}],"functionName":{"name":"lt","nativeSrc":"17578:2:23","nodeType":"YulIdentifier","src":"17578:2:23"},"nativeSrc":"17578:10:23","nodeType":"YulFunctionCall","src":"17578:10:23"}],"functionName":{"name":"iszero","nativeSrc":"17571:6:23","nodeType":"YulIdentifier","src":"17571:6:23"},"nativeSrc":"17571:18:23","nodeType":"YulFunctionCall","src":"17571:18:23"},"nativeSrc":"17568:31:23","nodeType":"YulIf","src":"17568:31:23"}]},"condition":{"kind":"number","nativeSrc":"17447:1:23","nodeType":"YulLiteral","src":"17447:1:23","type":"","value":"1"},"nativeSrc":"17427:190:23","nodeType":"YulForLoop","post":{"nativeSrc":"17449:28:23","nodeType":"YulBlock","src":"17449:28:23","statements":[{"nativeSrc":"17451:24:23","nodeType":"YulAssignment","src":"17451:24:23","value":{"arguments":[{"name":"result","nativeSrc":"17465:6:23","nodeType":"YulIdentifier","src":"17465:6:23"},{"kind":"number","nativeSrc":"17473:1:23","nodeType":"YulLiteral","src":"17473:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17461:3:23","nodeType":"YulIdentifier","src":"17461:3:23"},"nativeSrc":"17461:14:23","nodeType":"YulFunctionCall","src":"17461:14:23"},"variableNames":[{"name":"result","nativeSrc":"17451:6:23","nodeType":"YulIdentifier","src":"17451:6:23"}]}]},"pre":{"nativeSrc":"17431:15:23","nodeType":"YulBlock","src":"17431:15:23","statements":[{"nativeSrc":"17433:11:23","nodeType":"YulAssignment","src":"17433:11:23","value":{"kind":"number","nativeSrc":"17443:1:23","nodeType":"YulLiteral","src":"17443:1:23","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"17433:6:23","nodeType":"YulIdentifier","src":"17433:6:23"}]}]},"src":"17427:190:23"}]},"condition":{"arguments":[{"name":"s","nativeSrc":"17180:1:23","nodeType":"YulIdentifier","src":"17180:1:23"}],"functionName":{"name":"mload","nativeSrc":"17174:5:23","nodeType":"YulIdentifier","src":"17174:5:23"},"nativeSrc":"17174:8:23","nodeType":"YulFunctionCall","src":"17174:8:23"},"nativeSrc":"17171:460:23","nodeType":"YulIf","src":"17171:460:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10518,"isOffset":false,"isSlot":false,"src":"17433:6:23","valueSize":1},{"declaration":10518,"isOffset":false,"isSlot":false,"src":"17451:6:23","valueSize":1},{"declaration":10518,"isOffset":false,"isSlot":false,"src":"17465:6:23","valueSize":1},{"declaration":10515,"isOffset":false,"isSlot":false,"src":"17180:1:23","valueSize":1},{"declaration":10515,"isOffset":false,"isSlot":false,"src":"17358:1:23","valueSize":1},{"declaration":10515,"isOffset":false,"isSlot":false,"src":"17407:1:23","valueSize":1}],"id":10520,"nodeType":"InlineAssembly","src":"17148:493:23"}]},"documentation":{"id":10513,"nodeType":"StructuredDocumentation","src":"16955:60:23","text":"@dev Returns the number of UTF characters in the string."},"id":10522,"implemented":true,"kind":"function","modifiers":[],"name":"runeCount","nameLocation":"17029:9:23","nodeType":"FunctionDefinition","parameters":{"id":10516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10515,"mutability":"mutable","name":"s","nameLocation":"17053:1:23","nodeType":"VariableDeclaration","scope":10522,"src":"17039:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10514,"name":"string","nodeType":"ElementaryTypeName","src":"17039:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17038:17:23"},"returnParameters":{"id":10519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10518,"mutability":"mutable","name":"result","nameLocation":"17087:6:23","nodeType":"VariableDeclaration","scope":10522,"src":"17079:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10517,"name":"uint256","nodeType":"ElementaryTypeName","src":"17079:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17078:16:23"},"scope":10950,"src":"17020:627:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10531,"nodeType":"Block","src":"17840:665:23","statements":[{"AST":{"nativeSrc":"17902:597:23","nodeType":"YulBlock","src":"17902:597:23","statements":[{"nativeSrc":"17916:36:23","nodeType":"YulVariableDeclaration","src":"17916:36:23","value":{"arguments":[{"kind":"number","nativeSrc":"17932:1:23","nodeType":"YulLiteral","src":"17932:1:23","type":"","value":"7"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"17943:1:23","nodeType":"YulLiteral","src":"17943:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"17939:3:23","nodeType":"YulIdentifier","src":"17939:3:23"},"nativeSrc":"17939:6:23","nodeType":"YulFunctionCall","src":"17939:6:23"},{"kind":"number","nativeSrc":"17947:3:23","nodeType":"YulLiteral","src":"17947:3:23","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"17935:3:23","nodeType":"YulIdentifier","src":"17935:3:23"},"nativeSrc":"17935:16:23","nodeType":"YulFunctionCall","src":"17935:16:23"}],"functionName":{"name":"shl","nativeSrc":"17928:3:23","nodeType":"YulIdentifier","src":"17928:3:23"},"nativeSrc":"17928:24:23","nodeType":"YulFunctionCall","src":"17928:24:23"},"variables":[{"name":"mask","nativeSrc":"17920:4:23","nodeType":"YulTypedName","src":"17920:4:23","type":""}]},{"nativeSrc":"17965:11:23","nodeType":"YulAssignment","src":"17965:11:23","value":{"kind":"number","nativeSrc":"17975:1:23","nodeType":"YulLiteral","src":"17975:1:23","type":"","value":"1"},"variableNames":[{"name":"result","nativeSrc":"17965:6:23","nodeType":"YulIdentifier","src":"17965:6:23"}]},{"nativeSrc":"17989:17:23","nodeType":"YulVariableDeclaration","src":"17989:17:23","value":{"arguments":[{"name":"s","nativeSrc":"18004:1:23","nodeType":"YulIdentifier","src":"18004:1:23"}],"functionName":{"name":"mload","nativeSrc":"17998:5:23","nodeType":"YulIdentifier","src":"17998:5:23"},"nativeSrc":"17998:8:23","nodeType":"YulFunctionCall","src":"17998:8:23"},"variables":[{"name":"n","nativeSrc":"17993:1:23","nodeType":"YulTypedName","src":"17993:1:23","type":""}]},{"body":{"nativeSrc":"18024:465:23","nodeType":"YulBlock","src":"18024:465:23","statements":[{"nativeSrc":"18042:21:23","nodeType":"YulVariableDeclaration","src":"18042:21:23","value":{"arguments":[{"name":"s","nativeSrc":"18055:1:23","nodeType":"YulIdentifier","src":"18055:1:23"},{"kind":"number","nativeSrc":"18058:4:23","nodeType":"YulLiteral","src":"18058:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18051:3:23","nodeType":"YulIdentifier","src":"18051:3:23"},"nativeSrc":"18051:12:23","nodeType":"YulFunctionCall","src":"18051:12:23"},"variables":[{"name":"o","nativeSrc":"18046:1:23","nodeType":"YulTypedName","src":"18046:1:23","type":""}]},{"nativeSrc":"18080:20:23","nodeType":"YulVariableDeclaration","src":"18080:20:23","value":{"arguments":[{"name":"o","nativeSrc":"18095:1:23","nodeType":"YulIdentifier","src":"18095:1:23"},{"name":"n","nativeSrc":"18098:1:23","nodeType":"YulIdentifier","src":"18098:1:23"}],"functionName":{"name":"add","nativeSrc":"18091:3:23","nodeType":"YulIdentifier","src":"18091:3:23"},"nativeSrc":"18091:9:23","nodeType":"YulFunctionCall","src":"18091:9:23"},"variables":[{"name":"end","nativeSrc":"18084:3:23","nodeType":"YulTypedName","src":"18084:3:23","type":""}]},{"nativeSrc":"18117:22:23","nodeType":"YulVariableDeclaration","src":"18117:22:23","value":{"arguments":[{"name":"end","nativeSrc":"18135:3:23","nodeType":"YulIdentifier","src":"18135:3:23"}],"functionName":{"name":"mload","nativeSrc":"18129:5:23","nodeType":"YulIdentifier","src":"18129:5:23"},"nativeSrc":"18129:10:23","nodeType":"YulFunctionCall","src":"18129:10:23"},"variables":[{"name":"last","nativeSrc":"18121:4:23","nodeType":"YulTypedName","src":"18121:4:23","type":""}]},{"expression":{"arguments":[{"name":"end","nativeSrc":"18163:3:23","nodeType":"YulIdentifier","src":"18163:3:23"},{"kind":"number","nativeSrc":"18168:1:23","nodeType":"YulLiteral","src":"18168:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18156:6:23","nodeType":"YulIdentifier","src":"18156:6:23"},"nativeSrc":"18156:14:23","nodeType":"YulFunctionCall","src":"18156:14:23"},"nativeSrc":"18156:14:23","nodeType":"YulExpressionStatement","src":"18156:14:23"},{"body":{"nativeSrc":"18199:242:23","nodeType":"YulBlock","src":"18199:242:23","statements":[{"body":{"nativeSrc":"18244:89:23","nodeType":"YulBlock","src":"18244:89:23","statements":[{"nativeSrc":"18270:11:23","nodeType":"YulAssignment","src":"18270:11:23","value":{"kind":"number","nativeSrc":"18280:1:23","nodeType":"YulLiteral","src":"18280:1:23","type":"","value":"0"},"variableNames":[{"name":"result","nativeSrc":"18270:6:23","nodeType":"YulIdentifier","src":"18270:6:23"}]},{"nativeSrc":"18306:5:23","nodeType":"YulBreak","src":"18306:5:23"}]},"condition":{"arguments":[{"name":"mask","nativeSrc":"18228:4:23","nodeType":"YulIdentifier","src":"18228:4:23"},{"arguments":[{"name":"o","nativeSrc":"18240:1:23","nodeType":"YulIdentifier","src":"18240:1:23"}],"functionName":{"name":"mload","nativeSrc":"18234:5:23","nodeType":"YulIdentifier","src":"18234:5:23"},"nativeSrc":"18234:8:23","nodeType":"YulFunctionCall","src":"18234:8:23"}],"functionName":{"name":"and","nativeSrc":"18224:3:23","nodeType":"YulIdentifier","src":"18224:3:23"},"nativeSrc":"18224:19:23","nodeType":"YulFunctionCall","src":"18224:19:23"},"nativeSrc":"18221:112:23","nodeType":"YulIf","src":"18221:112:23"},{"nativeSrc":"18354:17:23","nodeType":"YulAssignment","src":"18354:17:23","value":{"arguments":[{"name":"o","nativeSrc":"18363:1:23","nodeType":"YulIdentifier","src":"18363:1:23"},{"kind":"number","nativeSrc":"18366:4:23","nodeType":"YulLiteral","src":"18366:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18359:3:23","nodeType":"YulIdentifier","src":"18359:3:23"},"nativeSrc":"18359:12:23","nodeType":"YulFunctionCall","src":"18359:12:23"},"variableNames":[{"name":"o","nativeSrc":"18354:1:23","nodeType":"YulIdentifier","src":"18354:1:23"}]},{"body":{"nativeSrc":"18414:9:23","nodeType":"YulBlock","src":"18414:9:23","statements":[{"nativeSrc":"18416:5:23","nodeType":"YulBreak","src":"18416:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"18405:1:23","nodeType":"YulIdentifier","src":"18405:1:23"},{"name":"end","nativeSrc":"18408:3:23","nodeType":"YulIdentifier","src":"18408:3:23"}],"functionName":{"name":"lt","nativeSrc":"18402:2:23","nodeType":"YulIdentifier","src":"18402:2:23"},"nativeSrc":"18402:10:23","nodeType":"YulFunctionCall","src":"18402:10:23"}],"functionName":{"name":"iszero","nativeSrc":"18395:6:23","nodeType":"YulIdentifier","src":"18395:6:23"},"nativeSrc":"18395:18:23","nodeType":"YulFunctionCall","src":"18395:18:23"},"nativeSrc":"18392:31:23","nodeType":"YulIf","src":"18392:31:23"}]},"condition":{"kind":"number","nativeSrc":"18194:1:23","nodeType":"YulLiteral","src":"18194:1:23","type":"","value":"1"},"nativeSrc":"18187:254:23","nodeType":"YulForLoop","post":{"nativeSrc":"18196:2:23","nodeType":"YulBlock","src":"18196:2:23","statements":[]},"pre":{"nativeSrc":"18191:2:23","nodeType":"YulBlock","src":"18191:2:23","statements":[]},"src":"18187:254:23"},{"expression":{"arguments":[{"name":"end","nativeSrc":"18465:3:23","nodeType":"YulIdentifier","src":"18465:3:23"},{"name":"last","nativeSrc":"18470:4:23","nodeType":"YulIdentifier","src":"18470:4:23"}],"functionName":{"name":"mstore","nativeSrc":"18458:6:23","nodeType":"YulIdentifier","src":"18458:6:23"},"nativeSrc":"18458:17:23","nodeType":"YulFunctionCall","src":"18458:17:23"},"nativeSrc":"18458:17:23","nodeType":"YulExpressionStatement","src":"18458:17:23"}]},"condition":{"name":"n","nativeSrc":"18022:1:23","nodeType":"YulIdentifier","src":"18022:1:23"},"nativeSrc":"18019:470:23","nodeType":"YulIf","src":"18019:470:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10528,"isOffset":false,"isSlot":false,"src":"17965:6:23","valueSize":1},{"declaration":10528,"isOffset":false,"isSlot":false,"src":"18270:6:23","valueSize":1},{"declaration":10525,"isOffset":false,"isSlot":false,"src":"18004:1:23","valueSize":1},{"declaration":10525,"isOffset":false,"isSlot":false,"src":"18055:1:23","valueSize":1}],"id":10530,"nodeType":"InlineAssembly","src":"17893:606:23"}]},"documentation":{"id":10523,"nodeType":"StructuredDocumentation","src":"17653:108:23","text":"@dev Returns if this string is a 7-bit ASCII string.\n (i.e. all characters codes are in [0..127])"},"id":10532,"implemented":true,"kind":"function","modifiers":[],"name":"is7BitASCII","nameLocation":"17775:11:23","nodeType":"FunctionDefinition","parameters":{"id":10526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10525,"mutability":"mutable","name":"s","nameLocation":"17801:1:23","nodeType":"VariableDeclaration","scope":10532,"src":"17787:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10524,"name":"string","nodeType":"ElementaryTypeName","src":"17787:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17786:17:23"},"returnParameters":{"id":10529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10528,"mutability":"mutable","name":"result","nameLocation":"17832:6:23","nodeType":"VariableDeclaration","scope":10532,"src":"17827:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10527,"name":"bool","nodeType":"ElementaryTypeName","src":"17827:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17826:13:23"},"scope":10950,"src":"17766:739:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10545,"nodeType":"Block","src":"19348:3176:23","statements":[{"AST":{"nativeSrc":"19410:3108:23","nodeType":"YulBlock","src":"19410:3108:23","statements":[{"nativeSrc":"19424:35:23","nodeType":"YulVariableDeclaration","src":"19424:35:23","value":{"arguments":[{"name":"subject","nativeSrc":"19451:7:23","nodeType":"YulIdentifier","src":"19451:7:23"}],"functionName":{"name":"mload","nativeSrc":"19445:5:23","nodeType":"YulIdentifier","src":"19445:5:23"},"nativeSrc":"19445:14:23","nodeType":"YulFunctionCall","src":"19445:14:23"},"variables":[{"name":"subjectLength","nativeSrc":"19428:13:23","nodeType":"YulTypedName","src":"19428:13:23","type":""}]},{"nativeSrc":"19472:33:23","nodeType":"YulVariableDeclaration","src":"19472:33:23","value":{"arguments":[{"name":"search","nativeSrc":"19498:6:23","nodeType":"YulIdentifier","src":"19498:6:23"}],"functionName":{"name":"mload","nativeSrc":"19492:5:23","nodeType":"YulIdentifier","src":"19492:5:23"},"nativeSrc":"19492:13:23","nodeType":"YulFunctionCall","src":"19492:13:23"},"variables":[{"name":"searchLength","nativeSrc":"19476:12:23","nodeType":"YulTypedName","src":"19476:12:23","type":""}]},{"nativeSrc":"19518:43:23","nodeType":"YulVariableDeclaration","src":"19518:43:23","value":{"arguments":[{"name":"replacement","nativeSrc":"19549:11:23","nodeType":"YulIdentifier","src":"19549:11:23"}],"functionName":{"name":"mload","nativeSrc":"19543:5:23","nodeType":"YulIdentifier","src":"19543:5:23"},"nativeSrc":"19543:18:23","nodeType":"YulFunctionCall","src":"19543:18:23"},"variables":[{"name":"replacementLength","nativeSrc":"19522:17:23","nodeType":"YulTypedName","src":"19522:17:23","type":""}]},{"nativeSrc":"19575:29:23","nodeType":"YulAssignment","src":"19575:29:23","value":{"arguments":[{"name":"subject","nativeSrc":"19590:7:23","nodeType":"YulIdentifier","src":"19590:7:23"},{"kind":"number","nativeSrc":"19599:4:23","nodeType":"YulLiteral","src":"19599:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19586:3:23","nodeType":"YulIdentifier","src":"19586:3:23"},"nativeSrc":"19586:18:23","nodeType":"YulFunctionCall","src":"19586:18:23"},"variableNames":[{"name":"subject","nativeSrc":"19575:7:23","nodeType":"YulIdentifier","src":"19575:7:23"}]},{"nativeSrc":"19617:27:23","nodeType":"YulAssignment","src":"19617:27:23","value":{"arguments":[{"name":"search","nativeSrc":"19631:6:23","nodeType":"YulIdentifier","src":"19631:6:23"},{"kind":"number","nativeSrc":"19639:4:23","nodeType":"YulLiteral","src":"19639:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19627:3:23","nodeType":"YulIdentifier","src":"19627:3:23"},"nativeSrc":"19627:17:23","nodeType":"YulFunctionCall","src":"19627:17:23"},"variableNames":[{"name":"search","nativeSrc":"19617:6:23","nodeType":"YulIdentifier","src":"19617:6:23"}]},{"nativeSrc":"19657:37:23","nodeType":"YulAssignment","src":"19657:37:23","value":{"arguments":[{"name":"replacement","nativeSrc":"19676:11:23","nodeType":"YulIdentifier","src":"19676:11:23"},{"kind":"number","nativeSrc":"19689:4:23","nodeType":"YulLiteral","src":"19689:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19672:3:23","nodeType":"YulIdentifier","src":"19672:3:23"},"nativeSrc":"19672:22:23","nodeType":"YulFunctionCall","src":"19672:22:23"},"variableNames":[{"name":"replacement","nativeSrc":"19657:11:23","nodeType":"YulIdentifier","src":"19657:11:23"}]},{"nativeSrc":"19707:32:23","nodeType":"YulAssignment","src":"19707:32:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19727:4:23","nodeType":"YulLiteral","src":"19727:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19721:5:23","nodeType":"YulIdentifier","src":"19721:5:23"},"nativeSrc":"19721:11:23","nodeType":"YulFunctionCall","src":"19721:11:23"},{"kind":"number","nativeSrc":"19734:4:23","nodeType":"YulLiteral","src":"19734:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19717:3:23","nodeType":"YulIdentifier","src":"19717:3:23"},"nativeSrc":"19717:22:23","nodeType":"YulFunctionCall","src":"19717:22:23"},"variableNames":[{"name":"result","nativeSrc":"19707:6:23","nodeType":"YulIdentifier","src":"19707:6:23"}]},{"nativeSrc":"19753:45:23","nodeType":"YulVariableDeclaration","src":"19753:45:23","value":{"arguments":[{"name":"subject","nativeSrc":"19775:7:23","nodeType":"YulIdentifier","src":"19775:7:23"},{"name":"subjectLength","nativeSrc":"19784:13:23","nodeType":"YulIdentifier","src":"19784:13:23"}],"functionName":{"name":"add","nativeSrc":"19771:3:23","nodeType":"YulIdentifier","src":"19771:3:23"},"nativeSrc":"19771:27:23","nodeType":"YulFunctionCall","src":"19771:27:23"},"variables":[{"name":"subjectEnd","nativeSrc":"19757:10:23","nodeType":"YulTypedName","src":"19757:10:23","type":""}]},{"body":{"nativeSrc":"19854:1923:23","nodeType":"YulBlock","src":"19854:1923:23","statements":[{"nativeSrc":"19872:61:23","nodeType":"YulVariableDeclaration","src":"19872:61:23","value":{"arguments":[{"arguments":[{"name":"subjectEnd","nativeSrc":"19904:10:23","nodeType":"YulIdentifier","src":"19904:10:23"},{"name":"searchLength","nativeSrc":"19916:12:23","nodeType":"YulIdentifier","src":"19916:12:23"}],"functionName":{"name":"sub","nativeSrc":"19900:3:23","nodeType":"YulIdentifier","src":"19900:3:23"},"nativeSrc":"19900:29:23","nodeType":"YulFunctionCall","src":"19900:29:23"},{"kind":"number","nativeSrc":"19931:1:23","nodeType":"YulLiteral","src":"19931:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19896:3:23","nodeType":"YulIdentifier","src":"19896:3:23"},"nativeSrc":"19896:37:23","nodeType":"YulFunctionCall","src":"19896:37:23"},"variables":[{"name":"subjectSearchEnd","nativeSrc":"19876:16:23","nodeType":"YulTypedName","src":"19876:16:23","type":""}]},{"nativeSrc":"19950:10:23","nodeType":"YulVariableDeclaration","src":"19950:10:23","value":{"kind":"number","nativeSrc":"19959:1:23","nodeType":"YulLiteral","src":"19959:1:23","type":"","value":"0"},"variables":[{"name":"h","nativeSrc":"19954:1:23","nodeType":"YulTypedName","src":"19954:1:23","type":""}]},{"body":{"nativeSrc":"20011:40:23","nodeType":"YulBlock","src":"20011:40:23","statements":[{"nativeSrc":"20013:36:23","nodeType":"YulAssignment","src":"20013:36:23","value":{"arguments":[{"name":"search","nativeSrc":"20028:6:23","nodeType":"YulIdentifier","src":"20028:6:23"},{"name":"searchLength","nativeSrc":"20036:12:23","nodeType":"YulIdentifier","src":"20036:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"20018:9:23","nodeType":"YulIdentifier","src":"20018:9:23"},"nativeSrc":"20018:31:23","nodeType":"YulFunctionCall","src":"20018:31:23"},"variableNames":[{"name":"h","nativeSrc":"20013:1:23","nodeType":"YulIdentifier","src":"20013:1:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"19990:12:23","nodeType":"YulIdentifier","src":"19990:12:23"},{"kind":"number","nativeSrc":"20004:4:23","nodeType":"YulLiteral","src":"20004:4:23","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"19987:2:23","nodeType":"YulIdentifier","src":"19987:2:23"},"nativeSrc":"19987:22:23","nodeType":"YulFunctionCall","src":"19987:22:23"}],"functionName":{"name":"iszero","nativeSrc":"19980:6:23","nodeType":"YulIdentifier","src":"19980:6:23"},"nativeSrc":"19980:30:23","nodeType":"YulFunctionCall","src":"19980:30:23"},"nativeSrc":"19977:74:23","nodeType":"YulIf","src":"19977:74:23"},{"nativeSrc":"20068:51:23","nodeType":"YulVariableDeclaration","src":"20068:51:23","value":{"arguments":[{"kind":"number","nativeSrc":"20081:1:23","nodeType":"YulLiteral","src":"20081:1:23","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"20088:4:23","nodeType":"YulLiteral","src":"20088:4:23","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"20098:12:23","nodeType":"YulIdentifier","src":"20098:12:23"},{"kind":"number","nativeSrc":"20112:4:23","nodeType":"YulLiteral","src":"20112:4:23","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"20094:3:23","nodeType":"YulIdentifier","src":"20094:3:23"},"nativeSrc":"20094:23:23","nodeType":"YulFunctionCall","src":"20094:23:23"}],"functionName":{"name":"sub","nativeSrc":"20084:3:23","nodeType":"YulIdentifier","src":"20084:3:23"},"nativeSrc":"20084:34:23","nodeType":"YulFunctionCall","src":"20084:34:23"}],"functionName":{"name":"shl","nativeSrc":"20077:3:23","nodeType":"YulIdentifier","src":"20077:3:23"},"nativeSrc":"20077:42:23","nodeType":"YulFunctionCall","src":"20077:42:23"},"variables":[{"name":"m","nativeSrc":"20072:1:23","nodeType":"YulTypedName","src":"20072:1:23","type":""}]},{"nativeSrc":"20136:22:23","nodeType":"YulVariableDeclaration","src":"20136:22:23","value":{"arguments":[{"name":"search","nativeSrc":"20151:6:23","nodeType":"YulIdentifier","src":"20151:6:23"}],"functionName":{"name":"mload","nativeSrc":"20145:5:23","nodeType":"YulIdentifier","src":"20145:5:23"},"nativeSrc":"20145:13:23","nodeType":"YulFunctionCall","src":"20145:13:23"},"variables":[{"name":"s","nativeSrc":"20140:1:23","nodeType":"YulTypedName","src":"20140:1:23","type":""}]},{"body":{"nativeSrc":"20187:1576:23","nodeType":"YulBlock","src":"20187:1576:23","statements":[{"nativeSrc":"20209:23:23","nodeType":"YulVariableDeclaration","src":"20209:23:23","value":{"arguments":[{"name":"subject","nativeSrc":"20224:7:23","nodeType":"YulIdentifier","src":"20224:7:23"}],"functionName":{"name":"mload","nativeSrc":"20218:5:23","nodeType":"YulIdentifier","src":"20218:5:23"},"nativeSrc":"20218:14:23","nodeType":"YulFunctionCall","src":"20218:14:23"},"variables":[{"name":"t","nativeSrc":"20213:1:23","nodeType":"YulTypedName","src":"20213:1:23","type":""}]},{"body":{"nativeSrc":"20407:1137:23","nodeType":"YulBlock","src":"20407:1137:23","statements":[{"body":{"nativeSrc":"20438:428:23","nodeType":"YulBlock","src":"20438:428:23","statements":[{"body":{"nativeSrc":"20519:321:23","nodeType":"YulBlock","src":"20519:321:23","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"20560:6:23","nodeType":"YulIdentifier","src":"20560:6:23"},{"name":"t","nativeSrc":"20568:1:23","nodeType":"YulIdentifier","src":"20568:1:23"}],"functionName":{"name":"mstore","nativeSrc":"20553:6:23","nodeType":"YulIdentifier","src":"20553:6:23"},"nativeSrc":"20553:17:23","nodeType":"YulFunctionCall","src":"20553:17:23"},"nativeSrc":"20553:17:23","nodeType":"YulExpressionStatement","src":"20553:17:23"},{"nativeSrc":"20603:24:23","nodeType":"YulAssignment","src":"20603:24:23","value":{"arguments":[{"name":"result","nativeSrc":"20617:6:23","nodeType":"YulIdentifier","src":"20617:6:23"},{"kind":"number","nativeSrc":"20625:1:23","nodeType":"YulLiteral","src":"20625:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20613:3:23","nodeType":"YulIdentifier","src":"20613:3:23"},"nativeSrc":"20613:14:23","nodeType":"YulFunctionCall","src":"20613:14:23"},"variableNames":[{"name":"result","nativeSrc":"20603:6:23","nodeType":"YulIdentifier","src":"20603:6:23"}]},{"nativeSrc":"20660:26:23","nodeType":"YulAssignment","src":"20660:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"20675:7:23","nodeType":"YulIdentifier","src":"20675:7:23"},{"kind":"number","nativeSrc":"20684:1:23","nodeType":"YulLiteral","src":"20684:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20671:3:23","nodeType":"YulIdentifier","src":"20671:3:23"},"nativeSrc":"20671:15:23","nodeType":"YulFunctionCall","src":"20671:15:23"},"variableNames":[{"name":"subject","nativeSrc":"20660:7:23","nodeType":"YulIdentifier","src":"20660:7:23"}]},{"body":{"nativeSrc":"20760:9:23","nodeType":"YulBlock","src":"20760:9:23","statements":[{"nativeSrc":"20762:5:23","nodeType":"YulBreak","src":"20762:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"20732:7:23","nodeType":"YulIdentifier","src":"20732:7:23"},{"name":"subjectSearchEnd","nativeSrc":"20741:16:23","nodeType":"YulIdentifier","src":"20741:16:23"}],"functionName":{"name":"lt","nativeSrc":"20729:2:23","nodeType":"YulIdentifier","src":"20729:2:23"},"nativeSrc":"20729:29:23","nodeType":"YulFunctionCall","src":"20729:29:23"}],"functionName":{"name":"iszero","nativeSrc":"20722:6:23","nodeType":"YulIdentifier","src":"20722:6:23"},"nativeSrc":"20722:37:23","nodeType":"YulFunctionCall","src":"20722:37:23"},"nativeSrc":"20719:50:23","nodeType":"YulIf","src":"20719:50:23"},{"nativeSrc":"20802:8:23","nodeType":"YulContinue","src":"20802:8:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"20491:7:23","nodeType":"YulIdentifier","src":"20491:7:23"},{"name":"searchLength","nativeSrc":"20500:12:23","nodeType":"YulIdentifier","src":"20500:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"20481:9:23","nodeType":"YulIdentifier","src":"20481:9:23"},"nativeSrc":"20481:32:23","nodeType":"YulFunctionCall","src":"20481:32:23"},{"name":"h","nativeSrc":"20515:1:23","nodeType":"YulIdentifier","src":"20515:1:23"}],"functionName":{"name":"eq","nativeSrc":"20478:2:23","nodeType":"YulIdentifier","src":"20478:2:23"},"nativeSrc":"20478:39:23","nodeType":"YulFunctionCall","src":"20478:39:23"}],"functionName":{"name":"iszero","nativeSrc":"20471:6:23","nodeType":"YulIdentifier","src":"20471:6:23"},"nativeSrc":"20471:47:23","nodeType":"YulFunctionCall","src":"20471:47:23"},"nativeSrc":"20468:372:23","nodeType":"YulIf","src":"20468:372:23"}]},"condition":{"name":"h","nativeSrc":"20436:1:23","nodeType":"YulIdentifier","src":"20436:1:23"},"nativeSrc":"20433:433:23","nodeType":"YulIf","src":"20433:433:23"},{"body":{"nativeSrc":"20985:226:23","nodeType":"YulBlock","src":"20985:226:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"21026:6:23","nodeType":"YulIdentifier","src":"21026:6:23"},{"name":"o","nativeSrc":"21034:1:23","nodeType":"YulIdentifier","src":"21034:1:23"}],"functionName":{"name":"add","nativeSrc":"21022:3:23","nodeType":"YulIdentifier","src":"21022:3:23"},"nativeSrc":"21022:14:23","nodeType":"YulFunctionCall","src":"21022:14:23"},{"arguments":[{"arguments":[{"name":"replacement","nativeSrc":"21048:11:23","nodeType":"YulIdentifier","src":"21048:11:23"},{"name":"o","nativeSrc":"21061:1:23","nodeType":"YulIdentifier","src":"21061:1:23"}],"functionName":{"name":"add","nativeSrc":"21044:3:23","nodeType":"YulIdentifier","src":"21044:3:23"},"nativeSrc":"21044:19:23","nodeType":"YulFunctionCall","src":"21044:19:23"}],"functionName":{"name":"mload","nativeSrc":"21038:5:23","nodeType":"YulIdentifier","src":"21038:5:23"},"nativeSrc":"21038:26:23","nodeType":"YulFunctionCall","src":"21038:26:23"}],"functionName":{"name":"mstore","nativeSrc":"21015:6:23","nodeType":"YulIdentifier","src":"21015:6:23"},"nativeSrc":"21015:50:23","nodeType":"YulFunctionCall","src":"21015:50:23"},"nativeSrc":"21015:50:23","nodeType":"YulExpressionStatement","src":"21015:50:23"},{"nativeSrc":"21094:17:23","nodeType":"YulAssignment","src":"21094:17:23","value":{"arguments":[{"name":"o","nativeSrc":"21103:1:23","nodeType":"YulIdentifier","src":"21103:1:23"},{"kind":"number","nativeSrc":"21106:4:23","nodeType":"YulLiteral","src":"21106:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21099:3:23","nodeType":"YulIdentifier","src":"21099:3:23"},"nativeSrc":"21099:12:23","nodeType":"YulFunctionCall","src":"21099:12:23"},"variableNames":[{"name":"o","nativeSrc":"21094:1:23","nodeType":"YulIdentifier","src":"21094:1:23"}]},{"body":{"nativeSrc":"21176:9:23","nodeType":"YulBlock","src":"21176:9:23","statements":[{"nativeSrc":"21178:5:23","nodeType":"YulBreak","src":"21178:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"21153:1:23","nodeType":"YulIdentifier","src":"21153:1:23"},{"name":"replacementLength","nativeSrc":"21156:17:23","nodeType":"YulIdentifier","src":"21156:17:23"}],"functionName":{"name":"lt","nativeSrc":"21150:2:23","nodeType":"YulIdentifier","src":"21150:2:23"},"nativeSrc":"21150:24:23","nodeType":"YulFunctionCall","src":"21150:24:23"}],"functionName":{"name":"iszero","nativeSrc":"21143:6:23","nodeType":"YulIdentifier","src":"21143:6:23"},"nativeSrc":"21143:32:23","nodeType":"YulFunctionCall","src":"21143:32:23"},"nativeSrc":"21140:45:23","nodeType":"YulIf","src":"21140:45:23"}]},"condition":{"kind":"number","nativeSrc":"20980:1:23","nodeType":"YulLiteral","src":"20980:1:23","type":"","value":"1"},"nativeSrc":"20961:250:23","nodeType":"YulForLoop","post":{"nativeSrc":"20982:2:23","nodeType":"YulBlock","src":"20982:2:23","statements":[]},"pre":{"nativeSrc":"20965:14:23","nodeType":"YulBlock","src":"20965:14:23","statements":[{"nativeSrc":"20967:10:23","nodeType":"YulVariableDeclaration","src":"20967:10:23","value":{"kind":"number","nativeSrc":"20976:1:23","nodeType":"YulLiteral","src":"20976:1:23","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"20971:1:23","nodeType":"YulTypedName","src":"20971:1:23","type":""}]}]},"src":"20961:250:23"},{"nativeSrc":"21236:40:23","nodeType":"YulAssignment","src":"21236:40:23","value":{"arguments":[{"name":"result","nativeSrc":"21250:6:23","nodeType":"YulIdentifier","src":"21250:6:23"},{"name":"replacementLength","nativeSrc":"21258:17:23","nodeType":"YulIdentifier","src":"21258:17:23"}],"functionName":{"name":"add","nativeSrc":"21246:3:23","nodeType":"YulIdentifier","src":"21246:3:23"},"nativeSrc":"21246:30:23","nodeType":"YulFunctionCall","src":"21246:30:23"},"variableNames":[{"name":"result","nativeSrc":"21236:6:23","nodeType":"YulIdentifier","src":"21236:6:23"}]},{"nativeSrc":"21301:37:23","nodeType":"YulAssignment","src":"21301:37:23","value":{"arguments":[{"name":"subject","nativeSrc":"21316:7:23","nodeType":"YulIdentifier","src":"21316:7:23"},{"name":"searchLength","nativeSrc":"21325:12:23","nodeType":"YulIdentifier","src":"21325:12:23"}],"functionName":{"name":"add","nativeSrc":"21312:3:23","nodeType":"YulIdentifier","src":"21312:3:23"},"nativeSrc":"21312:26:23","nodeType":"YulFunctionCall","src":"21312:26:23"},"variableNames":[{"name":"subject","nativeSrc":"21301:7:23","nodeType":"YulIdentifier","src":"21301:7:23"}]},{"body":{"nativeSrc":"21379:143:23","nodeType":"YulBlock","src":"21379:143:23","statements":[{"body":{"nativeSrc":"21450:9:23","nodeType":"YulBlock","src":"21450:9:23","statements":[{"nativeSrc":"21452:5:23","nodeType":"YulBreak","src":"21452:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"21422:7:23","nodeType":"YulIdentifier","src":"21422:7:23"},{"name":"subjectSearchEnd","nativeSrc":"21431:16:23","nodeType":"YulIdentifier","src":"21431:16:23"}],"functionName":{"name":"lt","nativeSrc":"21419:2:23","nodeType":"YulIdentifier","src":"21419:2:23"},"nativeSrc":"21419:29:23","nodeType":"YulFunctionCall","src":"21419:29:23"}],"functionName":{"name":"iszero","nativeSrc":"21412:6:23","nodeType":"YulIdentifier","src":"21412:6:23"},"nativeSrc":"21412:37:23","nodeType":"YulFunctionCall","src":"21412:37:23"},"nativeSrc":"21409:50:23","nodeType":"YulIf","src":"21409:50:23"},{"nativeSrc":"21488:8:23","nodeType":"YulContinue","src":"21488:8:23"}]},"condition":{"name":"searchLength","nativeSrc":"21366:12:23","nodeType":"YulIdentifier","src":"21366:12:23"},"nativeSrc":"21363:159:23","nodeType":"YulIf","src":"21363:159:23"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20392:1:23","nodeType":"YulIdentifier","src":"20392:1:23"},{"arguments":[{"name":"t","nativeSrc":"20399:1:23","nodeType":"YulIdentifier","src":"20399:1:23"},{"name":"s","nativeSrc":"20402:1:23","nodeType":"YulIdentifier","src":"20402:1:23"}],"functionName":{"name":"xor","nativeSrc":"20395:3:23","nodeType":"YulIdentifier","src":"20395:3:23"},"nativeSrc":"20395:9:23","nodeType":"YulFunctionCall","src":"20395:9:23"}],"functionName":{"name":"shr","nativeSrc":"20388:3:23","nodeType":"YulIdentifier","src":"20388:3:23"},"nativeSrc":"20388:17:23","nodeType":"YulFunctionCall","src":"20388:17:23"}],"functionName":{"name":"iszero","nativeSrc":"20381:6:23","nodeType":"YulIdentifier","src":"20381:6:23"},"nativeSrc":"20381:25:23","nodeType":"YulFunctionCall","src":"20381:25:23"},"nativeSrc":"20378:1166:23","nodeType":"YulIf","src":"20378:1166:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"21572:6:23","nodeType":"YulIdentifier","src":"21572:6:23"},{"name":"t","nativeSrc":"21580:1:23","nodeType":"YulIdentifier","src":"21580:1:23"}],"functionName":{"name":"mstore","nativeSrc":"21565:6:23","nodeType":"YulIdentifier","src":"21565:6:23"},"nativeSrc":"21565:17:23","nodeType":"YulFunctionCall","src":"21565:17:23"},"nativeSrc":"21565:17:23","nodeType":"YulExpressionStatement","src":"21565:17:23"},{"nativeSrc":"21603:24:23","nodeType":"YulAssignment","src":"21603:24:23","value":{"arguments":[{"name":"result","nativeSrc":"21617:6:23","nodeType":"YulIdentifier","src":"21617:6:23"},{"kind":"number","nativeSrc":"21625:1:23","nodeType":"YulLiteral","src":"21625:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21613:3:23","nodeType":"YulIdentifier","src":"21613:3:23"},"nativeSrc":"21613:14:23","nodeType":"YulFunctionCall","src":"21613:14:23"},"variableNames":[{"name":"result","nativeSrc":"21603:6:23","nodeType":"YulIdentifier","src":"21603:6:23"}]},{"nativeSrc":"21648:26:23","nodeType":"YulAssignment","src":"21648:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"21663:7:23","nodeType":"YulIdentifier","src":"21663:7:23"},{"kind":"number","nativeSrc":"21672:1:23","nodeType":"YulLiteral","src":"21672:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"21659:3:23","nodeType":"YulIdentifier","src":"21659:3:23"},"nativeSrc":"21659:15:23","nodeType":"YulFunctionCall","src":"21659:15:23"},"variableNames":[{"name":"subject","nativeSrc":"21648:7:23","nodeType":"YulIdentifier","src":"21648:7:23"}]},{"body":{"nativeSrc":"21736:9:23","nodeType":"YulBlock","src":"21736:9:23","statements":[{"nativeSrc":"21738:5:23","nodeType":"YulBreak","src":"21738:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"21708:7:23","nodeType":"YulIdentifier","src":"21708:7:23"},{"name":"subjectSearchEnd","nativeSrc":"21717:16:23","nodeType":"YulIdentifier","src":"21717:16:23"}],"functionName":{"name":"lt","nativeSrc":"21705:2:23","nodeType":"YulIdentifier","src":"21705:2:23"},"nativeSrc":"21705:29:23","nodeType":"YulFunctionCall","src":"21705:29:23"}],"functionName":{"name":"iszero","nativeSrc":"21698:6:23","nodeType":"YulIdentifier","src":"21698:6:23"},"nativeSrc":"21698:37:23","nodeType":"YulFunctionCall","src":"21698:37:23"},"nativeSrc":"21695:50:23","nodeType":"YulIf","src":"21695:50:23"}]},"condition":{"kind":"number","nativeSrc":"20182:1:23","nodeType":"YulLiteral","src":"20182:1:23","type":"","value":"1"},"nativeSrc":"20175:1588:23","nodeType":"YulForLoop","post":{"nativeSrc":"20184:2:23","nodeType":"YulBlock","src":"20184:2:23","statements":[]},"pre":{"nativeSrc":"20179:2:23","nodeType":"YulBlock","src":"20179:2:23","statements":[]},"src":"20175:1588:23"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"19824:12:23","nodeType":"YulIdentifier","src":"19824:12:23"},{"name":"subjectLength","nativeSrc":"19838:13:23","nodeType":"YulIdentifier","src":"19838:13:23"}],"functionName":{"name":"gt","nativeSrc":"19821:2:23","nodeType":"YulIdentifier","src":"19821:2:23"},"nativeSrc":"19821:31:23","nodeType":"YulFunctionCall","src":"19821:31:23"}],"functionName":{"name":"iszero","nativeSrc":"19814:6:23","nodeType":"YulIdentifier","src":"19814:6:23"},"nativeSrc":"19814:39:23","nodeType":"YulFunctionCall","src":"19814:39:23"},"nativeSrc":"19811:1966:23","nodeType":"YulIf","src":"19811:1966:23"},{"nativeSrc":"21791:29:23","nodeType":"YulVariableDeclaration","src":"21791:29:23","value":{"name":"result","nativeSrc":"21814:6:23","nodeType":"YulIdentifier","src":"21814:6:23"},"variables":[{"name":"resultRemainder","nativeSrc":"21795:15:23","nodeType":"YulTypedName","src":"21795:15:23","type":""}]},{"nativeSrc":"21833:32:23","nodeType":"YulAssignment","src":"21833:32:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21853:4:23","nodeType":"YulLiteral","src":"21853:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"21847:5:23","nodeType":"YulIdentifier","src":"21847:5:23"},"nativeSrc":"21847:11:23","nodeType":"YulFunctionCall","src":"21847:11:23"},{"kind":"number","nativeSrc":"21860:4:23","nodeType":"YulLiteral","src":"21860:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21843:3:23","nodeType":"YulIdentifier","src":"21843:3:23"},"nativeSrc":"21843:22:23","nodeType":"YulFunctionCall","src":"21843:22:23"},"variableNames":[{"name":"result","nativeSrc":"21833:6:23","nodeType":"YulIdentifier","src":"21833:6:23"}]},{"nativeSrc":"21878:68:23","nodeType":"YulVariableDeclaration","src":"21878:68:23","value":{"arguments":[{"arguments":[{"name":"resultRemainder","nativeSrc":"21895:15:23","nodeType":"YulIdentifier","src":"21895:15:23"},{"name":"result","nativeSrc":"21912:6:23","nodeType":"YulIdentifier","src":"21912:6:23"}],"functionName":{"name":"sub","nativeSrc":"21891:3:23","nodeType":"YulIdentifier","src":"21891:3:23"},"nativeSrc":"21891:28:23","nodeType":"YulFunctionCall","src":"21891:28:23"},{"arguments":[{"name":"subjectEnd","nativeSrc":"21925:10:23","nodeType":"YulIdentifier","src":"21925:10:23"},{"name":"subject","nativeSrc":"21937:7:23","nodeType":"YulIdentifier","src":"21937:7:23"}],"functionName":{"name":"sub","nativeSrc":"21921:3:23","nodeType":"YulIdentifier","src":"21921:3:23"},"nativeSrc":"21921:24:23","nodeType":"YulFunctionCall","src":"21921:24:23"}],"functionName":{"name":"add","nativeSrc":"21887:3:23","nodeType":"YulIdentifier","src":"21887:3:23"},"nativeSrc":"21887:59:23","nodeType":"YulFunctionCall","src":"21887:59:23"},"variables":[{"name":"k","nativeSrc":"21882:1:23","nodeType":"YulTypedName","src":"21882:1:23","type":""}]},{"body":{"nativeSrc":"22056:179:23","nodeType":"YulBlock","src":"22056:179:23","statements":[{"expression":{"arguments":[{"name":"resultRemainder","nativeSrc":"22081:15:23","nodeType":"YulIdentifier","src":"22081:15:23"},{"arguments":[{"name":"subject","nativeSrc":"22104:7:23","nodeType":"YulIdentifier","src":"22104:7:23"}],"functionName":{"name":"mload","nativeSrc":"22098:5:23","nodeType":"YulIdentifier","src":"22098:5:23"},"nativeSrc":"22098:14:23","nodeType":"YulFunctionCall","src":"22098:14:23"}],"functionName":{"name":"mstore","nativeSrc":"22074:6:23","nodeType":"YulIdentifier","src":"22074:6:23"},"nativeSrc":"22074:39:23","nodeType":"YulFunctionCall","src":"22074:39:23"},"nativeSrc":"22074:39:23","nodeType":"YulExpressionStatement","src":"22074:39:23"},{"nativeSrc":"22130:45:23","nodeType":"YulAssignment","src":"22130:45:23","value":{"arguments":[{"name":"resultRemainder","nativeSrc":"22153:15:23","nodeType":"YulIdentifier","src":"22153:15:23"},{"kind":"number","nativeSrc":"22170:4:23","nodeType":"YulLiteral","src":"22170:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22149:3:23","nodeType":"YulIdentifier","src":"22149:3:23"},"nativeSrc":"22149:26:23","nodeType":"YulFunctionCall","src":"22149:26:23"},"variableNames":[{"name":"resultRemainder","nativeSrc":"22130:15:23","nodeType":"YulIdentifier","src":"22130:15:23"}]},{"nativeSrc":"22192:29:23","nodeType":"YulAssignment","src":"22192:29:23","value":{"arguments":[{"name":"subject","nativeSrc":"22207:7:23","nodeType":"YulIdentifier","src":"22207:7:23"},{"kind":"number","nativeSrc":"22216:4:23","nodeType":"YulLiteral","src":"22216:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22203:3:23","nodeType":"YulIdentifier","src":"22203:3:23"},"nativeSrc":"22203:18:23","nodeType":"YulFunctionCall","src":"22203:18:23"},"variableNames":[{"name":"subject","nativeSrc":"22192:7:23","nodeType":"YulIdentifier","src":"22192:7:23"}]}]},"condition":{"arguments":[{"name":"subject","nativeSrc":"22032:7:23","nodeType":"YulIdentifier","src":"22032:7:23"},{"name":"subjectEnd","nativeSrc":"22041:10:23","nodeType":"YulIdentifier","src":"22041:10:23"}],"functionName":{"name":"lt","nativeSrc":"22029:2:23","nodeType":"YulIdentifier","src":"22029:2:23"},"nativeSrc":"22029:23:23","nodeType":"YulFunctionCall","src":"22029:23:23"},"nativeSrc":"22022:213:23","nodeType":"YulForLoop","post":{"nativeSrc":"22053:2:23","nodeType":"YulBlock","src":"22053:2:23","statements":[]},"pre":{"nativeSrc":"22026:2:23","nodeType":"YulBlock","src":"22026:2:23","statements":[]},"src":"22022:213:23"},{"nativeSrc":"22248:27:23","nodeType":"YulAssignment","src":"22248:27:23","value":{"arguments":[{"name":"result","nativeSrc":"22262:6:23","nodeType":"YulIdentifier","src":"22262:6:23"},{"kind":"number","nativeSrc":"22270:4:23","nodeType":"YulLiteral","src":"22270:4:23","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"22258:3:23","nodeType":"YulIdentifier","src":"22258:3:23"},"nativeSrc":"22258:17:23","nodeType":"YulFunctionCall","src":"22258:17:23"},"variableNames":[{"name":"result","nativeSrc":"22248:6:23","nodeType":"YulIdentifier","src":"22248:6:23"}]},{"nativeSrc":"22288:37:23","nodeType":"YulVariableDeclaration","src":"22288:37:23","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"22308:6:23","nodeType":"YulIdentifier","src":"22308:6:23"},{"kind":"number","nativeSrc":"22316:4:23","nodeType":"YulLiteral","src":"22316:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22304:3:23","nodeType":"YulIdentifier","src":"22304:3:23"},"nativeSrc":"22304:17:23","nodeType":"YulFunctionCall","src":"22304:17:23"},{"name":"k","nativeSrc":"22323:1:23","nodeType":"YulIdentifier","src":"22323:1:23"}],"functionName":{"name":"add","nativeSrc":"22300:3:23","nodeType":"YulIdentifier","src":"22300:3:23"},"nativeSrc":"22300:25:23","nodeType":"YulFunctionCall","src":"22300:25:23"},"variables":[{"name":"last","nativeSrc":"22292:4:23","nodeType":"YulTypedName","src":"22292:4:23","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"22383:4:23","nodeType":"YulIdentifier","src":"22383:4:23"},{"kind":"number","nativeSrc":"22389:1:23","nodeType":"YulLiteral","src":"22389:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"22376:6:23","nodeType":"YulIdentifier","src":"22376:6:23"},"nativeSrc":"22376:15:23","nodeType":"YulFunctionCall","src":"22376:15:23"},"nativeSrc":"22376:15:23","nodeType":"YulExpressionStatement","src":"22376:15:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22411:4:23","nodeType":"YulLiteral","src":"22411:4:23","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"22421:4:23","nodeType":"YulIdentifier","src":"22421:4:23"},{"kind":"number","nativeSrc":"22427:4:23","nodeType":"YulLiteral","src":"22427:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22417:3:23","nodeType":"YulIdentifier","src":"22417:3:23"},"nativeSrc":"22417:15:23","nodeType":"YulFunctionCall","src":"22417:15:23"}],"functionName":{"name":"mstore","nativeSrc":"22404:6:23","nodeType":"YulIdentifier","src":"22404:6:23"},"nativeSrc":"22404:29:23","nodeType":"YulFunctionCall","src":"22404:29:23"},"nativeSrc":"22404:29:23","nodeType":"YulExpressionStatement","src":"22404:29:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"22477:6:23","nodeType":"YulIdentifier","src":"22477:6:23"},{"name":"k","nativeSrc":"22485:1:23","nodeType":"YulIdentifier","src":"22485:1:23"}],"functionName":{"name":"mstore","nativeSrc":"22470:6:23","nodeType":"YulIdentifier","src":"22470:6:23"},"nativeSrc":"22470:17:23","nodeType":"YulFunctionCall","src":"22470:17:23"},"nativeSrc":"22470:17:23","nodeType":"YulExpressionStatement","src":"22470:17:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10539,"isOffset":false,"isSlot":false,"src":"19549:11:23","valueSize":1},{"declaration":10539,"isOffset":false,"isSlot":false,"src":"19657:11:23","valueSize":1},{"declaration":10539,"isOffset":false,"isSlot":false,"src":"19676:11:23","valueSize":1},{"declaration":10539,"isOffset":false,"isSlot":false,"src":"21048:11:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"19707:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"20560:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"20603:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"20617:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21026:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21236:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21250:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21572:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21603:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21617:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21814:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21833:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"21912:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"22248:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"22262:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"22308:6:23","valueSize":1},{"declaration":10542,"isOffset":false,"isSlot":false,"src":"22477:6:23","valueSize":1},{"declaration":10537,"isOffset":false,"isSlot":false,"src":"19498:6:23","valueSize":1},{"declaration":10537,"isOffset":false,"isSlot":false,"src":"19617:6:23","valueSize":1},{"declaration":10537,"isOffset":false,"isSlot":false,"src":"19631:6:23","valueSize":1},{"declaration":10537,"isOffset":false,"isSlot":false,"src":"20028:6:23","valueSize":1},{"declaration":10537,"isOffset":false,"isSlot":false,"src":"20151:6:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"19451:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"19575:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"19590:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"19775:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"20224:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"20491:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"20660:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"20675:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"20732:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"21301:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"21316:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"21422:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"21648:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"21663:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"21708:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"21937:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"22032:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"22104:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"22192:7:23","valueSize":1},{"declaration":10535,"isOffset":false,"isSlot":false,"src":"22207:7:23","valueSize":1}],"id":10544,"nodeType":"InlineAssembly","src":"19401:3117:23"}]},"documentation":{"id":10533,"nodeType":"StructuredDocumentation","src":"19098:83:23","text":"@dev Returns `subject` all occurrences of `search` replaced with `replacement`."},"id":10546,"implemented":true,"kind":"function","modifiers":[],"name":"replace","nameLocation":"19195:7:23","nodeType":"FunctionDefinition","parameters":{"id":10540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10535,"mutability":"mutable","name":"subject","nameLocation":"19217:7:23","nodeType":"VariableDeclaration","scope":10546,"src":"19203:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10534,"name":"string","nodeType":"ElementaryTypeName","src":"19203:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10537,"mutability":"mutable","name":"search","nameLocation":"19240:6:23","nodeType":"VariableDeclaration","scope":10546,"src":"19226:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10536,"name":"string","nodeType":"ElementaryTypeName","src":"19226:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10539,"mutability":"mutable","name":"replacement","nameLocation":"19262:11:23","nodeType":"VariableDeclaration","scope":10546,"src":"19248:25:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10538,"name":"string","nodeType":"ElementaryTypeName","src":"19248:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19202:72:23"},"returnParameters":{"id":10543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10542,"mutability":"mutable","name":"result","nameLocation":"19336:6:23","nodeType":"VariableDeclaration","scope":10546,"src":"19322:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10541,"name":"string","nodeType":"ElementaryTypeName","src":"19322:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19321:22:23"},"scope":10950,"src":"19186:3338:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10559,"nodeType":"Block","src":"22902:1922:23","statements":[{"AST":{"nativeSrc":"22964:1854:23","nodeType":"YulBlock","src":"22964:1854:23","statements":[{"body":{"nativeSrc":"23027:1781:23","nodeType":"YulBlock","src":"23027:1781:23","statements":[{"body":{"nativeSrc":"23070:237:23","nodeType":"YulBlock","src":"23070:237:23","statements":[{"body":{"nativeSrc":"23127:92:23","nodeType":"YulBlock","src":"23127:92:23","statements":[{"nativeSrc":"23153:14:23","nodeType":"YulAssignment","src":"23153:14:23","value":{"name":"from","nativeSrc":"23163:4:23","nodeType":"YulIdentifier","src":"23163:4:23"},"variableNames":[{"name":"result","nativeSrc":"23153:6:23","nodeType":"YulIdentifier","src":"23153:6:23"}]},{"nativeSrc":"23192:5:23","nodeType":"YulBreak","src":"23192:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"from","nativeSrc":"23105:4:23","nodeType":"YulIdentifier","src":"23105:4:23"},{"name":"subjectLength","nativeSrc":"23111:13:23","nodeType":"YulIdentifier","src":"23111:13:23"}],"functionName":{"name":"gt","nativeSrc":"23102:2:23","nodeType":"YulIdentifier","src":"23102:2:23"},"nativeSrc":"23102:23:23","nodeType":"YulFunctionCall","src":"23102:23:23"}],"functionName":{"name":"iszero","nativeSrc":"23095:6:23","nodeType":"YulIdentifier","src":"23095:6:23"},"nativeSrc":"23095:31:23","nodeType":"YulFunctionCall","src":"23095:31:23"},"nativeSrc":"23092:127:23","nodeType":"YulIf","src":"23092:127:23"},{"nativeSrc":"23240:23:23","nodeType":"YulAssignment","src":"23240:23:23","value":{"name":"subjectLength","nativeSrc":"23250:13:23","nodeType":"YulIdentifier","src":"23250:13:23"},"variableNames":[{"name":"result","nativeSrc":"23240:6:23","nodeType":"YulIdentifier","src":"23240:6:23"}]},{"nativeSrc":"23284:5:23","nodeType":"YulBreak","src":"23284:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23061:6:23","nodeType":"YulIdentifier","src":"23061:6:23"}],"functionName":{"name":"mload","nativeSrc":"23055:5:23","nodeType":"YulIdentifier","src":"23055:5:23"},"nativeSrc":"23055:13:23","nodeType":"YulFunctionCall","src":"23055:13:23"}],"functionName":{"name":"iszero","nativeSrc":"23048:6:23","nodeType":"YulIdentifier","src":"23048:6:23"},"nativeSrc":"23048:21:23","nodeType":"YulFunctionCall","src":"23048:21:23"},"nativeSrc":"23045:262:23","nodeType":"YulIf","src":"23045:262:23"},{"nativeSrc":"23324:33:23","nodeType":"YulVariableDeclaration","src":"23324:33:23","value":{"arguments":[{"name":"search","nativeSrc":"23350:6:23","nodeType":"YulIdentifier","src":"23350:6:23"}],"functionName":{"name":"mload","nativeSrc":"23344:5:23","nodeType":"YulIdentifier","src":"23344:5:23"},"nativeSrc":"23344:13:23","nodeType":"YulFunctionCall","src":"23344:13:23"},"variables":[{"name":"searchLength","nativeSrc":"23328:12:23","nodeType":"YulTypedName","src":"23328:12:23","type":""}]},{"nativeSrc":"23374:38:23","nodeType":"YulVariableDeclaration","src":"23374:38:23","value":{"arguments":[{"name":"subject","nativeSrc":"23398:7:23","nodeType":"YulIdentifier","src":"23398:7:23"},{"kind":"number","nativeSrc":"23407:4:23","nodeType":"YulLiteral","src":"23407:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23394:3:23","nodeType":"YulIdentifier","src":"23394:3:23"},"nativeSrc":"23394:18:23","nodeType":"YulFunctionCall","src":"23394:18:23"},"variables":[{"name":"subjectStart","nativeSrc":"23378:12:23","nodeType":"YulTypedName","src":"23378:12:23","type":""}]},{"nativeSrc":"23430:16:23","nodeType":"YulAssignment","src":"23430:16:23","value":{"arguments":[{"kind":"number","nativeSrc":"23444:1:23","nodeType":"YulLiteral","src":"23444:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23440:3:23","nodeType":"YulIdentifier","src":"23440:3:23"},"nativeSrc":"23440:6:23","nodeType":"YulFunctionCall","src":"23440:6:23"},"variableNames":[{"name":"result","nativeSrc":"23430:6:23","nodeType":"YulIdentifier","src":"23430:6:23"}]},{"nativeSrc":"23494:34:23","nodeType":"YulAssignment","src":"23494:34:23","value":{"arguments":[{"name":"subjectStart","nativeSrc":"23509:12:23","nodeType":"YulIdentifier","src":"23509:12:23"},{"name":"from","nativeSrc":"23523:4:23","nodeType":"YulIdentifier","src":"23523:4:23"}],"functionName":{"name":"add","nativeSrc":"23505:3:23","nodeType":"YulIdentifier","src":"23505:3:23"},"nativeSrc":"23505:23:23","nodeType":"YulFunctionCall","src":"23505:23:23"},"variableNames":[{"name":"subject","nativeSrc":"23494:7:23","nodeType":"YulIdentifier","src":"23494:7:23"}]},{"nativeSrc":"23545:70:23","nodeType":"YulVariableDeclaration","src":"23545:70:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subjectStart","nativeSrc":"23568:12:23","nodeType":"YulIdentifier","src":"23568:12:23"},{"name":"subjectLength","nativeSrc":"23582:13:23","nodeType":"YulIdentifier","src":"23582:13:23"}],"functionName":{"name":"add","nativeSrc":"23564:3:23","nodeType":"YulIdentifier","src":"23564:3:23"},"nativeSrc":"23564:32:23","nodeType":"YulFunctionCall","src":"23564:32:23"},{"name":"searchLength","nativeSrc":"23598:12:23","nodeType":"YulIdentifier","src":"23598:12:23"}],"functionName":{"name":"sub","nativeSrc":"23560:3:23","nodeType":"YulIdentifier","src":"23560:3:23"},"nativeSrc":"23560:51:23","nodeType":"YulFunctionCall","src":"23560:51:23"},{"kind":"number","nativeSrc":"23613:1:23","nodeType":"YulLiteral","src":"23613:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23556:3:23","nodeType":"YulIdentifier","src":"23556:3:23"},"nativeSrc":"23556:59:23","nodeType":"YulFunctionCall","src":"23556:59:23"},"variables":[{"name":"end","nativeSrc":"23549:3:23","nodeType":"YulTypedName","src":"23549:3:23","type":""}]},{"nativeSrc":"23633:51:23","nodeType":"YulVariableDeclaration","src":"23633:51:23","value":{"arguments":[{"kind":"number","nativeSrc":"23646:1:23","nodeType":"YulLiteral","src":"23646:1:23","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"23653:4:23","nodeType":"YulLiteral","src":"23653:4:23","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"23663:12:23","nodeType":"YulIdentifier","src":"23663:12:23"},{"kind":"number","nativeSrc":"23677:4:23","nodeType":"YulLiteral","src":"23677:4:23","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"23659:3:23","nodeType":"YulIdentifier","src":"23659:3:23"},"nativeSrc":"23659:23:23","nodeType":"YulFunctionCall","src":"23659:23:23"}],"functionName":{"name":"sub","nativeSrc":"23649:3:23","nodeType":"YulIdentifier","src":"23649:3:23"},"nativeSrc":"23649:34:23","nodeType":"YulFunctionCall","src":"23649:34:23"}],"functionName":{"name":"shl","nativeSrc":"23642:3:23","nodeType":"YulIdentifier","src":"23642:3:23"},"nativeSrc":"23642:42:23","nodeType":"YulFunctionCall","src":"23642:42:23"},"variables":[{"name":"m","nativeSrc":"23637:1:23","nodeType":"YulTypedName","src":"23637:1:23","type":""}]},{"nativeSrc":"23701:33:23","nodeType":"YulVariableDeclaration","src":"23701:33:23","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23720:6:23","nodeType":"YulIdentifier","src":"23720:6:23"},{"kind":"number","nativeSrc":"23728:4:23","nodeType":"YulLiteral","src":"23728:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23716:3:23","nodeType":"YulIdentifier","src":"23716:3:23"},"nativeSrc":"23716:17:23","nodeType":"YulFunctionCall","src":"23716:17:23"}],"functionName":{"name":"mload","nativeSrc":"23710:5:23","nodeType":"YulIdentifier","src":"23710:5:23"},"nativeSrc":"23710:24:23","nodeType":"YulFunctionCall","src":"23710:24:23"},"variables":[{"name":"s","nativeSrc":"23705:1:23","nodeType":"YulTypedName","src":"23705:1:23","type":""}]},{"body":{"nativeSrc":"23810:9:23","nodeType":"YulBlock","src":"23810:9:23","statements":[{"nativeSrc":"23812:5:23","nodeType":"YulBreak","src":"23812:5:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"23769:7:23","nodeType":"YulIdentifier","src":"23769:7:23"},{"name":"end","nativeSrc":"23778:3:23","nodeType":"YulIdentifier","src":"23778:3:23"}],"functionName":{"name":"lt","nativeSrc":"23766:2:23","nodeType":"YulIdentifier","src":"23766:2:23"},"nativeSrc":"23766:16:23","nodeType":"YulFunctionCall","src":"23766:16:23"},{"arguments":[{"name":"from","nativeSrc":"23787:4:23","nodeType":"YulIdentifier","src":"23787:4:23"},{"name":"subjectLength","nativeSrc":"23793:13:23","nodeType":"YulIdentifier","src":"23793:13:23"}],"functionName":{"name":"lt","nativeSrc":"23784:2:23","nodeType":"YulIdentifier","src":"23784:2:23"},"nativeSrc":"23784:23:23","nodeType":"YulFunctionCall","src":"23784:23:23"}],"functionName":{"name":"and","nativeSrc":"23762:3:23","nodeType":"YulIdentifier","src":"23762:3:23"},"nativeSrc":"23762:46:23","nodeType":"YulFunctionCall","src":"23762:46:23"}],"functionName":{"name":"iszero","nativeSrc":"23755:6:23","nodeType":"YulIdentifier","src":"23755:6:23"},"nativeSrc":"23755:54:23","nodeType":"YulFunctionCall","src":"23755:54:23"},"nativeSrc":"23752:67:23","nodeType":"YulIf","src":"23752:67:23"},{"body":{"nativeSrc":"23871:571:23","nodeType":"YulBlock","src":"23871:571:23","statements":[{"body":{"nativeSrc":"23958:440:23","nodeType":"YulBlock","src":"23958:440:23","statements":[{"body":{"nativeSrc":"24026:237:23","nodeType":"YulBlock","src":"24026:237:23","statements":[{"body":{"nativeSrc":"24099:138:23","nodeType":"YulBlock","src":"24099:138:23","statements":[{"nativeSrc":"24133:36:23","nodeType":"YulAssignment","src":"24133:36:23","value":{"arguments":[{"name":"subject","nativeSrc":"24147:7:23","nodeType":"YulIdentifier","src":"24147:7:23"},{"name":"subjectStart","nativeSrc":"24156:12:23","nodeType":"YulIdentifier","src":"24156:12:23"}],"functionName":{"name":"sub","nativeSrc":"24143:3:23","nodeType":"YulIdentifier","src":"24143:3:23"},"nativeSrc":"24143:26:23","nodeType":"YulFunctionCall","src":"24143:26:23"},"variableNames":[{"name":"result","nativeSrc":"24133:6:23","nodeType":"YulIdentifier","src":"24133:6:23"}]},{"nativeSrc":"24202:5:23","nodeType":"YulBreak","src":"24202:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24072:7:23","nodeType":"YulIdentifier","src":"24072:7:23"},{"name":"searchLength","nativeSrc":"24081:12:23","nodeType":"YulIdentifier","src":"24081:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"24062:9:23","nodeType":"YulIdentifier","src":"24062:9:23"},"nativeSrc":"24062:32:23","nodeType":"YulFunctionCall","src":"24062:32:23"},{"name":"h","nativeSrc":"24096:1:23","nodeType":"YulIdentifier","src":"24096:1:23"}],"functionName":{"name":"eq","nativeSrc":"24059:2:23","nodeType":"YulIdentifier","src":"24059:2:23"},"nativeSrc":"24059:39:23","nodeType":"YulFunctionCall","src":"24059:39:23"},"nativeSrc":"24056:181:23","nodeType":"YulIf","src":"24056:181:23"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23998:1:23","nodeType":"YulIdentifier","src":"23998:1:23"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24011:7:23","nodeType":"YulIdentifier","src":"24011:7:23"}],"functionName":{"name":"mload","nativeSrc":"24005:5:23","nodeType":"YulIdentifier","src":"24005:5:23"},"nativeSrc":"24005:14:23","nodeType":"YulFunctionCall","src":"24005:14:23"},{"name":"s","nativeSrc":"24021:1:23","nodeType":"YulIdentifier","src":"24021:1:23"}],"functionName":{"name":"xor","nativeSrc":"24001:3:23","nodeType":"YulIdentifier","src":"24001:3:23"},"nativeSrc":"24001:22:23","nodeType":"YulFunctionCall","src":"24001:22:23"}],"functionName":{"name":"shr","nativeSrc":"23994:3:23","nodeType":"YulIdentifier","src":"23994:3:23"},"nativeSrc":"23994:30:23","nodeType":"YulFunctionCall","src":"23994:30:23"}],"functionName":{"name":"iszero","nativeSrc":"23987:6:23","nodeType":"YulIdentifier","src":"23987:6:23"},"nativeSrc":"23987:38:23","nodeType":"YulFunctionCall","src":"23987:38:23"},"nativeSrc":"23984:279:23","nodeType":"YulIf","src":"23984:279:23"},{"nativeSrc":"24288:26:23","nodeType":"YulAssignment","src":"24288:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"24303:7:23","nodeType":"YulIdentifier","src":"24303:7:23"},{"kind":"number","nativeSrc":"24312:1:23","nodeType":"YulLiteral","src":"24312:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24299:3:23","nodeType":"YulIdentifier","src":"24299:3:23"},"nativeSrc":"24299:15:23","nodeType":"YulFunctionCall","src":"24299:15:23"},"variableNames":[{"name":"subject","nativeSrc":"24288:7:23","nodeType":"YulIdentifier","src":"24288:7:23"}]},{"body":{"nativeSrc":"24367:9:23","nodeType":"YulBlock","src":"24367:9:23","statements":[{"nativeSrc":"24369:5:23","nodeType":"YulBreak","src":"24369:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24352:7:23","nodeType":"YulIdentifier","src":"24352:7:23"},{"name":"end","nativeSrc":"24361:3:23","nodeType":"YulIdentifier","src":"24361:3:23"}],"functionName":{"name":"lt","nativeSrc":"24349:2:23","nodeType":"YulIdentifier","src":"24349:2:23"},"nativeSrc":"24349:16:23","nodeType":"YulFunctionCall","src":"24349:16:23"}],"functionName":{"name":"iszero","nativeSrc":"24342:6:23","nodeType":"YulIdentifier","src":"24342:6:23"},"nativeSrc":"24342:24:23","nodeType":"YulFunctionCall","src":"24342:24:23"},"nativeSrc":"24339:37:23","nodeType":"YulIf","src":"24339:37:23"}]},"condition":{"kind":"number","nativeSrc":"23953:1:23","nodeType":"YulLiteral","src":"23953:1:23","type":"","value":"1"},"nativeSrc":"23893:505:23","nodeType":"YulForLoop","post":{"nativeSrc":"23955:2:23","nodeType":"YulBlock","src":"23955:2:23","statements":[]},"pre":{"nativeSrc":"23897:55:23","nodeType":"YulBlock","src":"23897:55:23","statements":[{"nativeSrc":"23899:51:23","nodeType":"YulVariableDeclaration","src":"23899:51:23","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"23922:6:23","nodeType":"YulIdentifier","src":"23922:6:23"},{"kind":"number","nativeSrc":"23930:4:23","nodeType":"YulLiteral","src":"23930:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23918:3:23","nodeType":"YulIdentifier","src":"23918:3:23"},"nativeSrc":"23918:17:23","nodeType":"YulFunctionCall","src":"23918:17:23"},{"name":"searchLength","nativeSrc":"23937:12:23","nodeType":"YulIdentifier","src":"23937:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"23908:9:23","nodeType":"YulIdentifier","src":"23908:9:23"},"nativeSrc":"23908:42:23","nodeType":"YulFunctionCall","src":"23908:42:23"},"variables":[{"name":"h","nativeSrc":"23903:1:23","nodeType":"YulTypedName","src":"23903:1:23","type":""}]}]},"src":"23893:505:23"},{"nativeSrc":"24419:5:23","nodeType":"YulBreak","src":"24419:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"23850:12:23","nodeType":"YulIdentifier","src":"23850:12:23"},{"kind":"number","nativeSrc":"23864:4:23","nodeType":"YulLiteral","src":"23864:4:23","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"23847:2:23","nodeType":"YulIdentifier","src":"23847:2:23"},"nativeSrc":"23847:22:23","nodeType":"YulFunctionCall","src":"23847:22:23"}],"functionName":{"name":"iszero","nativeSrc":"23840:6:23","nodeType":"YulIdentifier","src":"23840:6:23"},"nativeSrc":"23840:30:23","nodeType":"YulFunctionCall","src":"23840:30:23"},"nativeSrc":"23837:605:23","nodeType":"YulIf","src":"23837:605:23"},{"body":{"nativeSrc":"24471:301:23","nodeType":"YulBlock","src":"24471:301:23","statements":[{"body":{"nativeSrc":"24535:114:23","nodeType":"YulBlock","src":"24535:114:23","statements":[{"nativeSrc":"24561:36:23","nodeType":"YulAssignment","src":"24561:36:23","value":{"arguments":[{"name":"subject","nativeSrc":"24575:7:23","nodeType":"YulIdentifier","src":"24575:7:23"},{"name":"subjectStart","nativeSrc":"24584:12:23","nodeType":"YulIdentifier","src":"24584:12:23"}],"functionName":{"name":"sub","nativeSrc":"24571:3:23","nodeType":"YulIdentifier","src":"24571:3:23"},"nativeSrc":"24571:26:23","nodeType":"YulFunctionCall","src":"24571:26:23"},"variableNames":[{"name":"result","nativeSrc":"24561:6:23","nodeType":"YulIdentifier","src":"24561:6:23"}]},{"nativeSrc":"24622:5:23","nodeType":"YulBreak","src":"24622:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24507:1:23","nodeType":"YulIdentifier","src":"24507:1:23"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24520:7:23","nodeType":"YulIdentifier","src":"24520:7:23"}],"functionName":{"name":"mload","nativeSrc":"24514:5:23","nodeType":"YulIdentifier","src":"24514:5:23"},"nativeSrc":"24514:14:23","nodeType":"YulFunctionCall","src":"24514:14:23"},{"name":"s","nativeSrc":"24530:1:23","nodeType":"YulIdentifier","src":"24530:1:23"}],"functionName":{"name":"xor","nativeSrc":"24510:3:23","nodeType":"YulIdentifier","src":"24510:3:23"},"nativeSrc":"24510:22:23","nodeType":"YulFunctionCall","src":"24510:22:23"}],"functionName":{"name":"shr","nativeSrc":"24503:3:23","nodeType":"YulIdentifier","src":"24503:3:23"},"nativeSrc":"24503:30:23","nodeType":"YulFunctionCall","src":"24503:30:23"}],"functionName":{"name":"iszero","nativeSrc":"24496:6:23","nodeType":"YulIdentifier","src":"24496:6:23"},"nativeSrc":"24496:38:23","nodeType":"YulFunctionCall","src":"24496:38:23"},"nativeSrc":"24493:156:23","nodeType":"YulIf","src":"24493:156:23"},{"nativeSrc":"24670:26:23","nodeType":"YulAssignment","src":"24670:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"24685:7:23","nodeType":"YulIdentifier","src":"24685:7:23"},{"kind":"number","nativeSrc":"24694:1:23","nodeType":"YulLiteral","src":"24694:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24681:3:23","nodeType":"YulIdentifier","src":"24681:3:23"},"nativeSrc":"24681:15:23","nodeType":"YulFunctionCall","src":"24681:15:23"},"variableNames":[{"name":"subject","nativeSrc":"24670:7:23","nodeType":"YulIdentifier","src":"24670:7:23"}]},{"body":{"nativeSrc":"24745:9:23","nodeType":"YulBlock","src":"24745:9:23","statements":[{"nativeSrc":"24747:5:23","nodeType":"YulBreak","src":"24747:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"24730:7:23","nodeType":"YulIdentifier","src":"24730:7:23"},{"name":"end","nativeSrc":"24739:3:23","nodeType":"YulIdentifier","src":"24739:3:23"}],"functionName":{"name":"lt","nativeSrc":"24727:2:23","nodeType":"YulIdentifier","src":"24727:2:23"},"nativeSrc":"24727:16:23","nodeType":"YulFunctionCall","src":"24727:16:23"}],"functionName":{"name":"iszero","nativeSrc":"24720:6:23","nodeType":"YulIdentifier","src":"24720:6:23"},"nativeSrc":"24720:24:23","nodeType":"YulFunctionCall","src":"24720:24:23"},"nativeSrc":"24717:37:23","nodeType":"YulIf","src":"24717:37:23"}]},"condition":{"kind":"number","nativeSrc":"24466:1:23","nodeType":"YulLiteral","src":"24466:1:23","type":"","value":"1"},"nativeSrc":"24459:313:23","nodeType":"YulForLoop","post":{"nativeSrc":"24468:2:23","nodeType":"YulBlock","src":"24468:2:23","statements":[]},"pre":{"nativeSrc":"24463:2:23","nodeType":"YulBlock","src":"24463:2:23","statements":[]},"src":"24459:313:23"},{"nativeSrc":"24789:5:23","nodeType":"YulBreak","src":"24789:5:23"}]},"condition":{"kind":"number","nativeSrc":"23022:1:23","nodeType":"YulLiteral","src":"23022:1:23","type":"","value":"1"},"nativeSrc":"22978:1830:23","nodeType":"YulForLoop","post":{"nativeSrc":"23024:2:23","nodeType":"YulBlock","src":"23024:2:23","statements":[]},"pre":{"nativeSrc":"22982:39:23","nodeType":"YulBlock","src":"22982:39:23","statements":[{"nativeSrc":"22984:35:23","nodeType":"YulVariableDeclaration","src":"22984:35:23","value":{"arguments":[{"name":"subject","nativeSrc":"23011:7:23","nodeType":"YulIdentifier","src":"23011:7:23"}],"functionName":{"name":"mload","nativeSrc":"23005:5:23","nodeType":"YulIdentifier","src":"23005:5:23"},"nativeSrc":"23005:14:23","nodeType":"YulFunctionCall","src":"23005:14:23"},"variables":[{"name":"subjectLength","nativeSrc":"22988:13:23","nodeType":"YulTypedName","src":"22988:13:23","type":""}]}]},"src":"22978:1830:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10553,"isOffset":false,"isSlot":false,"src":"23105:4:23","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"23163:4:23","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"23523:4:23","valueSize":1},{"declaration":10553,"isOffset":false,"isSlot":false,"src":"23787:4:23","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"23153:6:23","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"23240:6:23","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"23430:6:23","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"24133:6:23","valueSize":1},{"declaration":10556,"isOffset":false,"isSlot":false,"src":"24561:6:23","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"23061:6:23","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"23350:6:23","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"23720:6:23","valueSize":1},{"declaration":10551,"isOffset":false,"isSlot":false,"src":"23922:6:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"23011:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"23398:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"23494:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"23769:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24011:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24072:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24147:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24288:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24303:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24352:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24520:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24575:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24670:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24685:7:23","valueSize":1},{"declaration":10549,"isOffset":false,"isSlot":false,"src":"24730:7:23","valueSize":1}],"id":10558,"nodeType":"InlineAssembly","src":"22955:1863:23"}]},"documentation":{"id":10547,"nodeType":"StructuredDocumentation","src":"22530:224:23","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10560,"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"22768:7:23","nodeType":"FunctionDefinition","parameters":{"id":10554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10549,"mutability":"mutable","name":"subject","nameLocation":"22790:7:23","nodeType":"VariableDeclaration","scope":10560,"src":"22776:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10548,"name":"string","nodeType":"ElementaryTypeName","src":"22776:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10551,"mutability":"mutable","name":"search","nameLocation":"22813:6:23","nodeType":"VariableDeclaration","scope":10560,"src":"22799:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10550,"name":"string","nodeType":"ElementaryTypeName","src":"22799:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10553,"mutability":"mutable","name":"from","nameLocation":"22829:4:23","nodeType":"VariableDeclaration","scope":10560,"src":"22821:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10552,"name":"uint256","nodeType":"ElementaryTypeName","src":"22821:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22775:59:23"},"returnParameters":{"id":10557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10556,"mutability":"mutable","name":"result","nameLocation":"22890:6:23","nodeType":"VariableDeclaration","scope":10560,"src":"22882:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10555,"name":"uint256","nodeType":"ElementaryTypeName","src":"22882:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22881:16:23"},"scope":10950,"src":"22759:2065:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10578,"nodeType":"Block","src":"25166:53:23","statements":[{"expression":{"id":10576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10570,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10568,"src":"25176:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10572,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10563,"src":"25193:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10573,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10565,"src":"25202:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"30","id":10574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25210:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10571,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[10560,10579],"referencedDeclaration":10560,"src":"25185:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":10575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25185:27:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25176:36:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10577,"nodeType":"ExpressionStatement","src":"25176:36:23"}]},"documentation":{"id":10561,"nodeType":"StructuredDocumentation","src":"24830:202:23","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from left to right.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10579,"implemented":true,"kind":"function","modifiers":[],"name":"indexOf","nameLocation":"25046:7:23","nodeType":"FunctionDefinition","parameters":{"id":10566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10563,"mutability":"mutable","name":"subject","nameLocation":"25068:7:23","nodeType":"VariableDeclaration","scope":10579,"src":"25054:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10562,"name":"string","nodeType":"ElementaryTypeName","src":"25054:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10565,"mutability":"mutable","name":"search","nameLocation":"25091:6:23","nodeType":"VariableDeclaration","scope":10579,"src":"25077:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10564,"name":"string","nodeType":"ElementaryTypeName","src":"25077:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25053:45:23"},"returnParameters":{"id":10569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10568,"mutability":"mutable","name":"result","nameLocation":"25154:6:23","nodeType":"VariableDeclaration","scope":10579,"src":"25146:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10567,"name":"uint256","nodeType":"ElementaryTypeName","src":"25146:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25145:16:23"},"scope":10950,"src":"25037:182:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10592,"nodeType":"Block","src":"25601:1185:23","statements":[{"AST":{"nativeSrc":"25663:1117:23","nodeType":"YulBlock","src":"25663:1117:23","statements":[{"body":{"nativeSrc":"25689:1081:23","nodeType":"YulBlock","src":"25689:1081:23","statements":[{"nativeSrc":"25707:16:23","nodeType":"YulAssignment","src":"25707:16:23","value":{"arguments":[{"kind":"number","nativeSrc":"25721:1:23","nodeType":"YulLiteral","src":"25721:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"25717:3:23","nodeType":"YulIdentifier","src":"25717:3:23"},"nativeSrc":"25717:6:23","nodeType":"YulFunctionCall","src":"25717:6:23"},"variableNames":[{"name":"result","nativeSrc":"25707:6:23","nodeType":"YulIdentifier","src":"25707:6:23"}]},{"nativeSrc":"25770:33:23","nodeType":"YulVariableDeclaration","src":"25770:33:23","value":{"arguments":[{"name":"search","nativeSrc":"25796:6:23","nodeType":"YulIdentifier","src":"25796:6:23"}],"functionName":{"name":"mload","nativeSrc":"25790:5:23","nodeType":"YulIdentifier","src":"25790:5:23"},"nativeSrc":"25790:13:23","nodeType":"YulFunctionCall","src":"25790:13:23"},"variables":[{"name":"searchLength","nativeSrc":"25774:12:23","nodeType":"YulTypedName","src":"25774:12:23","type":""}]},{"body":{"nativeSrc":"25856:9:23","nodeType":"YulBlock","src":"25856:9:23","statements":[{"nativeSrc":"25858:5:23","nodeType":"YulBreak","src":"25858:5:23"}]},"condition":{"arguments":[{"name":"searchLength","nativeSrc":"25826:12:23","nodeType":"YulIdentifier","src":"25826:12:23"},{"arguments":[{"name":"subject","nativeSrc":"25846:7:23","nodeType":"YulIdentifier","src":"25846:7:23"}],"functionName":{"name":"mload","nativeSrc":"25840:5:23","nodeType":"YulIdentifier","src":"25840:5:23"},"nativeSrc":"25840:14:23","nodeType":"YulFunctionCall","src":"25840:14:23"}],"functionName":{"name":"gt","nativeSrc":"25823:2:23","nodeType":"YulIdentifier","src":"25823:2:23"},"nativeSrc":"25823:32:23","nodeType":"YulFunctionCall","src":"25823:32:23"},"nativeSrc":"25820:45:23","nodeType":"YulIf","src":"25820:45:23"},{"nativeSrc":"25882:15:23","nodeType":"YulVariableDeclaration","src":"25882:15:23","value":{"name":"result","nativeSrc":"25891:6:23","nodeType":"YulIdentifier","src":"25891:6:23"},"variables":[{"name":"w","nativeSrc":"25886:1:23","nodeType":"YulTypedName","src":"25886:1:23","type":""}]},{"nativeSrc":"25915:48:23","nodeType":"YulVariableDeclaration","src":"25915:48:23","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"25940:7:23","nodeType":"YulIdentifier","src":"25940:7:23"}],"functionName":{"name":"mload","nativeSrc":"25934:5:23","nodeType":"YulIdentifier","src":"25934:5:23"},"nativeSrc":"25934:14:23","nodeType":"YulFunctionCall","src":"25934:14:23"},{"name":"searchLength","nativeSrc":"25950:12:23","nodeType":"YulIdentifier","src":"25950:12:23"}],"functionName":{"name":"sub","nativeSrc":"25930:3:23","nodeType":"YulIdentifier","src":"25930:3:23"},"nativeSrc":"25930:33:23","nodeType":"YulFunctionCall","src":"25930:33:23"},"variables":[{"name":"fromMax","nativeSrc":"25919:7:23","nodeType":"YulTypedName","src":"25919:7:23","type":""}]},{"body":{"nativeSrc":"26009:19:23","nodeType":"YulBlock","src":"26009:19:23","statements":[{"nativeSrc":"26011:15:23","nodeType":"YulAssignment","src":"26011:15:23","value":{"name":"fromMax","nativeSrc":"26019:7:23","nodeType":"YulIdentifier","src":"26019:7:23"},"variableNames":[{"name":"from","nativeSrc":"26011:4:23","nodeType":"YulIdentifier","src":"26011:4:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"fromMax","nativeSrc":"25993:7:23","nodeType":"YulIdentifier","src":"25993:7:23"},{"name":"from","nativeSrc":"26002:4:23","nodeType":"YulIdentifier","src":"26002:4:23"}],"functionName":{"name":"gt","nativeSrc":"25990:2:23","nodeType":"YulIdentifier","src":"25990:2:23"},"nativeSrc":"25990:17:23","nodeType":"YulFunctionCall","src":"25990:17:23"}],"functionName":{"name":"iszero","nativeSrc":"25983:6:23","nodeType":"YulIdentifier","src":"25983:6:23"},"nativeSrc":"25983:25:23","nodeType":"YulFunctionCall","src":"25983:25:23"},"nativeSrc":"25980:48:23","nodeType":"YulIf","src":"25980:48:23"},{"nativeSrc":"26046:37:23","nodeType":"YulVariableDeclaration","src":"26046:37:23","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26065:7:23","nodeType":"YulIdentifier","src":"26065:7:23"},{"kind":"number","nativeSrc":"26074:4:23","nodeType":"YulLiteral","src":"26074:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26061:3:23","nodeType":"YulIdentifier","src":"26061:3:23"},"nativeSrc":"26061:18:23","nodeType":"YulFunctionCall","src":"26061:18:23"},{"name":"w","nativeSrc":"26081:1:23","nodeType":"YulIdentifier","src":"26081:1:23"}],"functionName":{"name":"add","nativeSrc":"26057:3:23","nodeType":"YulIdentifier","src":"26057:3:23"},"nativeSrc":"26057:26:23","nodeType":"YulFunctionCall","src":"26057:26:23"},"variables":[{"name":"end","nativeSrc":"26050:3:23","nodeType":"YulTypedName","src":"26050:3:23","type":""}]},{"nativeSrc":"26100:40:23","nodeType":"YulAssignment","src":"26100:40:23","value":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26119:7:23","nodeType":"YulIdentifier","src":"26119:7:23"},{"kind":"number","nativeSrc":"26128:4:23","nodeType":"YulLiteral","src":"26128:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26115:3:23","nodeType":"YulIdentifier","src":"26115:3:23"},"nativeSrc":"26115:18:23","nodeType":"YulFunctionCall","src":"26115:18:23"},{"name":"from","nativeSrc":"26135:4:23","nodeType":"YulIdentifier","src":"26135:4:23"}],"functionName":{"name":"add","nativeSrc":"26111:3:23","nodeType":"YulIdentifier","src":"26111:3:23"},"nativeSrc":"26111:29:23","nodeType":"YulFunctionCall","src":"26111:29:23"},"variableNames":[{"name":"subject","nativeSrc":"26100:7:23","nodeType":"YulIdentifier","src":"26100:7:23"}]},{"body":{"nativeSrc":"26185:9:23","nodeType":"YulBlock","src":"26185:9:23","statements":[{"nativeSrc":"26187:5:23","nodeType":"YulBreak","src":"26187:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26170:7:23","nodeType":"YulIdentifier","src":"26170:7:23"},{"name":"end","nativeSrc":"26179:3:23","nodeType":"YulIdentifier","src":"26179:3:23"}],"functionName":{"name":"gt","nativeSrc":"26167:2:23","nodeType":"YulIdentifier","src":"26167:2:23"},"nativeSrc":"26167:16:23","nodeType":"YulFunctionCall","src":"26167:16:23"}],"functionName":{"name":"iszero","nativeSrc":"26160:6:23","nodeType":"YulIdentifier","src":"26160:6:23"},"nativeSrc":"26160:24:23","nodeType":"YulFunctionCall","src":"26160:24:23"},"nativeSrc":"26157:37:23","nodeType":"YulIf","src":"26157:37:23"},{"body":{"nativeSrc":"26411:323:23","nodeType":"YulBlock","src":"26411:323:23","statements":[{"body":{"nativeSrc":"26476:113:23","nodeType":"YulBlock","src":"26476:113:23","statements":[{"nativeSrc":"26502:35:23","nodeType":"YulAssignment","src":"26502:35:23","value":{"arguments":[{"name":"subject","nativeSrc":"26516:7:23","nodeType":"YulIdentifier","src":"26516:7:23"},{"arguments":[{"name":"end","nativeSrc":"26529:3:23","nodeType":"YulIdentifier","src":"26529:3:23"},{"kind":"number","nativeSrc":"26534:1:23","nodeType":"YulLiteral","src":"26534:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26525:3:23","nodeType":"YulIdentifier","src":"26525:3:23"},"nativeSrc":"26525:11:23","nodeType":"YulFunctionCall","src":"26525:11:23"}],"functionName":{"name":"sub","nativeSrc":"26512:3:23","nodeType":"YulIdentifier","src":"26512:3:23"},"nativeSrc":"26512:25:23","nodeType":"YulFunctionCall","src":"26512:25:23"},"variableNames":[{"name":"result","nativeSrc":"26502:6:23","nodeType":"YulIdentifier","src":"26502:6:23"}]},{"nativeSrc":"26562:5:23","nodeType":"YulBreak","src":"26562:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26449:7:23","nodeType":"YulIdentifier","src":"26449:7:23"},{"name":"searchLength","nativeSrc":"26458:12:23","nodeType":"YulIdentifier","src":"26458:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"26439:9:23","nodeType":"YulIdentifier","src":"26439:9:23"},"nativeSrc":"26439:32:23","nodeType":"YulFunctionCall","src":"26439:32:23"},{"name":"h","nativeSrc":"26473:1:23","nodeType":"YulIdentifier","src":"26473:1:23"}],"functionName":{"name":"eq","nativeSrc":"26436:2:23","nodeType":"YulIdentifier","src":"26436:2:23"},"nativeSrc":"26436:39:23","nodeType":"YulFunctionCall","src":"26436:39:23"},"nativeSrc":"26433:156:23","nodeType":"YulIf","src":"26433:156:23"},{"nativeSrc":"26610:26:23","nodeType":"YulAssignment","src":"26610:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"26625:7:23","nodeType":"YulIdentifier","src":"26625:7:23"},{"name":"w","nativeSrc":"26634:1:23","nodeType":"YulIdentifier","src":"26634:1:23"}],"functionName":{"name":"add","nativeSrc":"26621:3:23","nodeType":"YulIdentifier","src":"26621:3:23"},"nativeSrc":"26621:15:23","nodeType":"YulFunctionCall","src":"26621:15:23"},"variableNames":[{"name":"subject","nativeSrc":"26610:7:23","nodeType":"YulIdentifier","src":"26610:7:23"}]},{"body":{"nativeSrc":"26707:9:23","nodeType":"YulBlock","src":"26707:9:23","statements":[{"nativeSrc":"26709:5:23","nodeType":"YulBreak","src":"26709:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"26692:7:23","nodeType":"YulIdentifier","src":"26692:7:23"},{"name":"end","nativeSrc":"26701:3:23","nodeType":"YulIdentifier","src":"26701:3:23"}],"functionName":{"name":"gt","nativeSrc":"26689:2:23","nodeType":"YulIdentifier","src":"26689:2:23"},"nativeSrc":"26689:16:23","nodeType":"YulFunctionCall","src":"26689:16:23"}],"functionName":{"name":"iszero","nativeSrc":"26682:6:23","nodeType":"YulIdentifier","src":"26682:6:23"},"nativeSrc":"26682:24:23","nodeType":"YulFunctionCall","src":"26682:24:23"},"nativeSrc":"26679:37:23","nodeType":"YulIf","src":"26679:37:23"}]},"condition":{"kind":"number","nativeSrc":"26406:1:23","nodeType":"YulLiteral","src":"26406:1:23","type":"","value":"1"},"nativeSrc":"26346:388:23","nodeType":"YulForLoop","post":{"nativeSrc":"26408:2:23","nodeType":"YulBlock","src":"26408:2:23","statements":[]},"pre":{"nativeSrc":"26350:55:23","nodeType":"YulBlock","src":"26350:55:23","statements":[{"nativeSrc":"26352:51:23","nodeType":"YulVariableDeclaration","src":"26352:51:23","value":{"arguments":[{"arguments":[{"name":"search","nativeSrc":"26375:6:23","nodeType":"YulIdentifier","src":"26375:6:23"},{"kind":"number","nativeSrc":"26383:4:23","nodeType":"YulLiteral","src":"26383:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26371:3:23","nodeType":"YulIdentifier","src":"26371:3:23"},"nativeSrc":"26371:17:23","nodeType":"YulFunctionCall","src":"26371:17:23"},{"name":"searchLength","nativeSrc":"26390:12:23","nodeType":"YulIdentifier","src":"26390:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"26361:9:23","nodeType":"YulIdentifier","src":"26361:9:23"},"nativeSrc":"26361:42:23","nodeType":"YulFunctionCall","src":"26361:42:23"},"variables":[{"name":"h","nativeSrc":"26356:1:23","nodeType":"YulTypedName","src":"26356:1:23","type":""}]}]},"src":"26346:388:23"},{"nativeSrc":"26751:5:23","nodeType":"YulBreak","src":"26751:5:23"}]},"condition":{"kind":"number","nativeSrc":"25684:1:23","nodeType":"YulLiteral","src":"25684:1:23","type":"","value":"1"},"nativeSrc":"25677:1093:23","nodeType":"YulForLoop","post":{"nativeSrc":"25686:2:23","nodeType":"YulBlock","src":"25686:2:23","statements":[]},"pre":{"nativeSrc":"25681:2:23","nodeType":"YulBlock","src":"25681:2:23","statements":[]},"src":"25677:1093:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10586,"isOffset":false,"isSlot":false,"src":"26002:4:23","valueSize":1},{"declaration":10586,"isOffset":false,"isSlot":false,"src":"26011:4:23","valueSize":1},{"declaration":10586,"isOffset":false,"isSlot":false,"src":"26135:4:23","valueSize":1},{"declaration":10589,"isOffset":false,"isSlot":false,"src":"25707:6:23","valueSize":1},{"declaration":10589,"isOffset":false,"isSlot":false,"src":"25891:6:23","valueSize":1},{"declaration":10589,"isOffset":false,"isSlot":false,"src":"26502:6:23","valueSize":1},{"declaration":10584,"isOffset":false,"isSlot":false,"src":"25796:6:23","valueSize":1},{"declaration":10584,"isOffset":false,"isSlot":false,"src":"26375:6:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"25846:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"25940:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26065:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26100:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26119:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26170:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26449:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26516:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26610:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26625:7:23","valueSize":1},{"declaration":10582,"isOffset":false,"isSlot":false,"src":"26692:7:23","valueSize":1}],"id":10591,"nodeType":"InlineAssembly","src":"25654:1126:23"}]},"documentation":{"id":10580,"nodeType":"StructuredDocumentation","src":"25225:224:23","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left, starting from `from`.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10593,"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"25463:11:23","nodeType":"FunctionDefinition","parameters":{"id":10587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10582,"mutability":"mutable","name":"subject","nameLocation":"25489:7:23","nodeType":"VariableDeclaration","scope":10593,"src":"25475:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10581,"name":"string","nodeType":"ElementaryTypeName","src":"25475:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10584,"mutability":"mutable","name":"search","nameLocation":"25512:6:23","nodeType":"VariableDeclaration","scope":10593,"src":"25498:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10583,"name":"string","nodeType":"ElementaryTypeName","src":"25498:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10586,"mutability":"mutable","name":"from","nameLocation":"25528:4:23","nodeType":"VariableDeclaration","scope":10593,"src":"25520:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10585,"name":"uint256","nodeType":"ElementaryTypeName","src":"25520:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25474:59:23"},"returnParameters":{"id":10590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10589,"mutability":"mutable","name":"result","nameLocation":"25589:6:23","nodeType":"VariableDeclaration","scope":10593,"src":"25581:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10588,"name":"uint256","nodeType":"ElementaryTypeName","src":"25581:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25580:16:23"},"scope":10950,"src":"25454:1332:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10618,"nodeType":"Block","src":"27132:75:23","statements":[{"expression":{"id":10616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10603,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10601,"src":"27142:6:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10605,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10596,"src":"27163:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10606,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10598,"src":"27172:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":10612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"27195:2:23","subExpression":{"hexValue":"31","id":10611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27196:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":10610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27188:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10609,"name":"int256","nodeType":"ElementaryTypeName","src":"27188:6:23","typeDescriptions":{}}},"id":10613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27188:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27180:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10607,"name":"uint256","nodeType":"ElementaryTypeName","src":"27180:7:23","typeDescriptions":{}}},"id":10614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27180:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10604,"name":"lastIndexOf","nodeType":"Identifier","overloadedDeclarations":[10593,10619],"referencedDeclaration":10593,"src":"27151:11:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (string memory,string memory,uint256) pure returns (uint256)"}},"id":10615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27151:49:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27142:58:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10617,"nodeType":"ExpressionStatement","src":"27142:58:23"}]},"documentation":{"id":10594,"nodeType":"StructuredDocumentation","src":"26792:202:23","text":"@dev Returns the byte index of the first location of `search` in `subject`,\n searching from right to left.\n Returns `NOT_FOUND` (i.e. `type(uint256).max`) if the `search` is not found."},"id":10619,"implemented":true,"kind":"function","modifiers":[],"name":"lastIndexOf","nameLocation":"27008:11:23","nodeType":"FunctionDefinition","parameters":{"id":10599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10596,"mutability":"mutable","name":"subject","nameLocation":"27034:7:23","nodeType":"VariableDeclaration","scope":10619,"src":"27020:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10595,"name":"string","nodeType":"ElementaryTypeName","src":"27020:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10598,"mutability":"mutable","name":"search","nameLocation":"27057:6:23","nodeType":"VariableDeclaration","scope":10619,"src":"27043:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10597,"name":"string","nodeType":"ElementaryTypeName","src":"27043:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27019:45:23"},"returnParameters":{"id":10602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10601,"mutability":"mutable","name":"result","nameLocation":"27120:6:23","nodeType":"VariableDeclaration","scope":10619,"src":"27112:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10600,"name":"uint256","nodeType":"ElementaryTypeName","src":"27112:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27111:16:23"},"scope":10950,"src":"26999:208:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10636,"nodeType":"Block","src":"27383:61:23","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":10630,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10622,"src":"27408:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10631,"name":"search","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10624,"src":"27417:6:23","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":10629,"name":"indexOf","nodeType":"Identifier","overloadedDeclarations":[10560,10579],"referencedDeclaration":10579,"src":"27400:7:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory,string memory) pure returns (uint256)"}},"id":10632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27400:24:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10633,"name":"NOT_FOUND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10310,"src":"27428:9:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27400:37:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10628,"id":10635,"nodeType":"Return","src":"27393:44:23"}]},"documentation":{"id":10620,"nodeType":"StructuredDocumentation","src":"27213:73:23","text":"@dev Returns true if `search` is found in `subject`, false otherwise."},"id":10637,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"27300:8:23","nodeType":"FunctionDefinition","parameters":{"id":10625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10622,"mutability":"mutable","name":"subject","nameLocation":"27323:7:23","nodeType":"VariableDeclaration","scope":10637,"src":"27309:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10621,"name":"string","nodeType":"ElementaryTypeName","src":"27309:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10624,"mutability":"mutable","name":"search","nameLocation":"27346:6:23","nodeType":"VariableDeclaration","scope":10637,"src":"27332:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10623,"name":"string","nodeType":"ElementaryTypeName","src":"27332:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27308:45:23"},"returnParameters":{"id":10628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10637,"src":"27377:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10626,"name":"bool","nodeType":"ElementaryTypeName","src":"27377:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27376:6:23"},"scope":10950,"src":"27291:153:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10648,"nodeType":"Block","src":"27640:499:23","statements":[{"AST":{"nativeSrc":"27702:431:23","nodeType":"YulBlock","src":"27702:431:23","statements":[{"nativeSrc":"27716:33:23","nodeType":"YulVariableDeclaration","src":"27716:33:23","value":{"arguments":[{"name":"search","nativeSrc":"27742:6:23","nodeType":"YulIdentifier","src":"27742:6:23"}],"functionName":{"name":"mload","nativeSrc":"27736:5:23","nodeType":"YulIdentifier","src":"27736:5:23"},"nativeSrc":"27736:13:23","nodeType":"YulFunctionCall","src":"27736:13:23"},"variables":[{"name":"searchLength","nativeSrc":"27720:12:23","nodeType":"YulTypedName","src":"27720:12:23","type":""}]},{"nativeSrc":"27871:252:23","nodeType":"YulAssignment","src":"27871:252:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"27912:12:23","nodeType":"YulIdentifier","src":"27912:12:23"},{"arguments":[{"name":"subject","nativeSrc":"27932:7:23","nodeType":"YulIdentifier","src":"27932:7:23"}],"functionName":{"name":"mload","nativeSrc":"27926:5:23","nodeType":"YulIdentifier","src":"27926:5:23"},"nativeSrc":"27926:14:23","nodeType":"YulFunctionCall","src":"27926:14:23"}],"functionName":{"name":"gt","nativeSrc":"27909:2:23","nodeType":"YulIdentifier","src":"27909:2:23"},"nativeSrc":"27909:32:23","nodeType":"YulFunctionCall","src":"27909:32:23"}],"functionName":{"name":"iszero","nativeSrc":"27902:6:23","nodeType":"YulIdentifier","src":"27902:6:23"},"nativeSrc":"27902:40:23","nodeType":"YulFunctionCall","src":"27902:40:23"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"27998:7:23","nodeType":"YulIdentifier","src":"27998:7:23"},{"kind":"number","nativeSrc":"28007:4:23","nodeType":"YulLiteral","src":"28007:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27994:3:23","nodeType":"YulIdentifier","src":"27994:3:23"},"nativeSrc":"27994:18:23","nodeType":"YulFunctionCall","src":"27994:18:23"},{"name":"searchLength","nativeSrc":"28014:12:23","nodeType":"YulIdentifier","src":"28014:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"27984:9:23","nodeType":"YulIdentifier","src":"27984:9:23"},"nativeSrc":"27984:43:23","nodeType":"YulFunctionCall","src":"27984:43:23"},{"arguments":[{"arguments":[{"name":"search","nativeSrc":"28063:6:23","nodeType":"YulIdentifier","src":"28063:6:23"},{"kind":"number","nativeSrc":"28071:4:23","nodeType":"YulLiteral","src":"28071:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28059:3:23","nodeType":"YulIdentifier","src":"28059:3:23"},"nativeSrc":"28059:17:23","nodeType":"YulFunctionCall","src":"28059:17:23"},{"name":"searchLength","nativeSrc":"28078:12:23","nodeType":"YulIdentifier","src":"28078:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"28049:9:23","nodeType":"YulIdentifier","src":"28049:9:23"},"nativeSrc":"28049:42:23","nodeType":"YulFunctionCall","src":"28049:42:23"}],"functionName":{"name":"eq","nativeSrc":"27960:2:23","nodeType":"YulIdentifier","src":"27960:2:23"},"nativeSrc":"27960:149:23","nodeType":"YulFunctionCall","src":"27960:149:23"}],"functionName":{"name":"and","nativeSrc":"27881:3:23","nodeType":"YulIdentifier","src":"27881:3:23"},"nativeSrc":"27881:242:23","nodeType":"YulFunctionCall","src":"27881:242:23"},"variableNames":[{"name":"result","nativeSrc":"27871:6:23","nodeType":"YulIdentifier","src":"27871:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10645,"isOffset":false,"isSlot":false,"src":"27871:6:23","valueSize":1},{"declaration":10642,"isOffset":false,"isSlot":false,"src":"27742:6:23","valueSize":1},{"declaration":10642,"isOffset":false,"isSlot":false,"src":"28063:6:23","valueSize":1},{"declaration":10640,"isOffset":false,"isSlot":false,"src":"27932:7:23","valueSize":1},{"declaration":10640,"isOffset":false,"isSlot":false,"src":"27998:7:23","valueSize":1}],"id":10647,"nodeType":"InlineAssembly","src":"27693:440:23"}]},"documentation":{"id":10638,"nodeType":"StructuredDocumentation","src":"27450:56:23","text":"@dev Returns whether `subject` starts with `search`."},"id":10649,"implemented":true,"kind":"function","modifiers":[],"name":"startsWith","nameLocation":"27520:10:23","nodeType":"FunctionDefinition","parameters":{"id":10643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10640,"mutability":"mutable","name":"subject","nameLocation":"27545:7:23","nodeType":"VariableDeclaration","scope":10649,"src":"27531:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10639,"name":"string","nodeType":"ElementaryTypeName","src":"27531:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10642,"mutability":"mutable","name":"search","nameLocation":"27568:6:23","nodeType":"VariableDeclaration","scope":10649,"src":"27554:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10641,"name":"string","nodeType":"ElementaryTypeName","src":"27554:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27530:45:23"},"returnParameters":{"id":10646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10645,"mutability":"mutable","name":"result","nameLocation":"27628:6:23","nodeType":"VariableDeclaration","scope":10649,"src":"27623:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10644,"name":"bool","nodeType":"ElementaryTypeName","src":"27623:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27622:13:23"},"scope":10950,"src":"27511:628:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10660,"nodeType":"Block","src":"28331:862:23","statements":[{"AST":{"nativeSrc":"28393:794:23","nodeType":"YulBlock","src":"28393:794:23","statements":[{"nativeSrc":"28407:33:23","nodeType":"YulVariableDeclaration","src":"28407:33:23","value":{"arguments":[{"name":"search","nativeSrc":"28433:6:23","nodeType":"YulIdentifier","src":"28433:6:23"}],"functionName":{"name":"mload","nativeSrc":"28427:5:23","nodeType":"YulIdentifier","src":"28427:5:23"},"nativeSrc":"28427:13:23","nodeType":"YulFunctionCall","src":"28427:13:23"},"variables":[{"name":"searchLength","nativeSrc":"28411:12:23","nodeType":"YulTypedName","src":"28411:12:23","type":""}]},{"nativeSrc":"28453:35:23","nodeType":"YulVariableDeclaration","src":"28453:35:23","value":{"arguments":[{"name":"subject","nativeSrc":"28480:7:23","nodeType":"YulIdentifier","src":"28480:7:23"}],"functionName":{"name":"mload","nativeSrc":"28474:5:23","nodeType":"YulIdentifier","src":"28474:5:23"},"nativeSrc":"28474:14:23","nodeType":"YulFunctionCall","src":"28474:14:23"},"variables":[{"name":"subjectLength","nativeSrc":"28457:13:23","nodeType":"YulTypedName","src":"28457:13:23","type":""}]},{"nativeSrc":"28563:58:23","nodeType":"YulVariableDeclaration","src":"28563:58:23","value":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"28592:12:23","nodeType":"YulIdentifier","src":"28592:12:23"},{"name":"subjectLength","nativeSrc":"28606:13:23","nodeType":"YulIdentifier","src":"28606:13:23"}],"functionName":{"name":"gt","nativeSrc":"28589:2:23","nodeType":"YulIdentifier","src":"28589:2:23"},"nativeSrc":"28589:31:23","nodeType":"YulFunctionCall","src":"28589:31:23"}],"functionName":{"name":"iszero","nativeSrc":"28582:6:23","nodeType":"YulIdentifier","src":"28582:6:23"},"nativeSrc":"28582:39:23","nodeType":"YulFunctionCall","src":"28582:39:23"},"variables":[{"name":"withinRange","nativeSrc":"28567:11:23","nodeType":"YulTypedName","src":"28567:11:23","type":""}]},{"nativeSrc":"28743:434:23","nodeType":"YulAssignment","src":"28743:434:23","value":{"arguments":[{"name":"withinRange","nativeSrc":"28774:11:23","nodeType":"YulIdentifier","src":"28774:11:23"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"28954:7:23","nodeType":"YulIdentifier","src":"28954:7:23"},{"kind":"number","nativeSrc":"28963:4:23","nodeType":"YulLiteral","src":"28963:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28950:3:23","nodeType":"YulIdentifier","src":"28950:3:23"},"nativeSrc":"28950:18:23","nodeType":"YulFunctionCall","src":"28950:18:23"},{"arguments":[{"name":"withinRange","nativeSrc":"28974:11:23","nodeType":"YulIdentifier","src":"28974:11:23"},{"arguments":[{"name":"subjectLength","nativeSrc":"28991:13:23","nodeType":"YulIdentifier","src":"28991:13:23"},{"name":"searchLength","nativeSrc":"29006:12:23","nodeType":"YulIdentifier","src":"29006:12:23"}],"functionName":{"name":"sub","nativeSrc":"28987:3:23","nodeType":"YulIdentifier","src":"28987:3:23"},"nativeSrc":"28987:32:23","nodeType":"YulFunctionCall","src":"28987:32:23"}],"functionName":{"name":"mul","nativeSrc":"28970:3:23","nodeType":"YulIdentifier","src":"28970:3:23"},"nativeSrc":"28970:50:23","nodeType":"YulFunctionCall","src":"28970:50:23"}],"functionName":{"name":"add","nativeSrc":"28946:3:23","nodeType":"YulIdentifier","src":"28946:3:23"},"nativeSrc":"28946:75:23","nodeType":"YulFunctionCall","src":"28946:75:23"},{"name":"searchLength","nativeSrc":"29047:12:23","nodeType":"YulIdentifier","src":"29047:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"28827:9:23","nodeType":"YulIdentifier","src":"28827:9:23"},"nativeSrc":"28827:254:23","nodeType":"YulFunctionCall","src":"28827:254:23"},{"arguments":[{"arguments":[{"name":"search","nativeSrc":"29117:6:23","nodeType":"YulIdentifier","src":"29117:6:23"},{"kind":"number","nativeSrc":"29125:4:23","nodeType":"YulLiteral","src":"29125:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29113:3:23","nodeType":"YulIdentifier","src":"29113:3:23"},"nativeSrc":"29113:17:23","nodeType":"YulFunctionCall","src":"29113:17:23"},{"name":"searchLength","nativeSrc":"29132:12:23","nodeType":"YulIdentifier","src":"29132:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"29103:9:23","nodeType":"YulIdentifier","src":"29103:9:23"},"nativeSrc":"29103:42:23","nodeType":"YulFunctionCall","src":"29103:42:23"}],"functionName":{"name":"eq","nativeSrc":"28803:2:23","nodeType":"YulIdentifier","src":"28803:2:23"},"nativeSrc":"28803:360:23","nodeType":"YulFunctionCall","src":"28803:360:23"}],"functionName":{"name":"and","nativeSrc":"28753:3:23","nodeType":"YulIdentifier","src":"28753:3:23"},"nativeSrc":"28753:424:23","nodeType":"YulFunctionCall","src":"28753:424:23"},"variableNames":[{"name":"result","nativeSrc":"28743:6:23","nodeType":"YulIdentifier","src":"28743:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10657,"isOffset":false,"isSlot":false,"src":"28743:6:23","valueSize":1},{"declaration":10654,"isOffset":false,"isSlot":false,"src":"28433:6:23","valueSize":1},{"declaration":10654,"isOffset":false,"isSlot":false,"src":"29117:6:23","valueSize":1},{"declaration":10652,"isOffset":false,"isSlot":false,"src":"28480:7:23","valueSize":1},{"declaration":10652,"isOffset":false,"isSlot":false,"src":"28954:7:23","valueSize":1}],"id":10659,"nodeType":"InlineAssembly","src":"28384:803:23"}]},"documentation":{"id":10650,"nodeType":"StructuredDocumentation","src":"28145:54:23","text":"@dev Returns whether `subject` ends with `search`."},"id":10661,"implemented":true,"kind":"function","modifiers":[],"name":"endsWith","nameLocation":"28213:8:23","nodeType":"FunctionDefinition","parameters":{"id":10655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10652,"mutability":"mutable","name":"subject","nameLocation":"28236:7:23","nodeType":"VariableDeclaration","scope":10661,"src":"28222:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10651,"name":"string","nodeType":"ElementaryTypeName","src":"28222:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10654,"mutability":"mutable","name":"search","nameLocation":"28259:6:23","nodeType":"VariableDeclaration","scope":10661,"src":"28245:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10653,"name":"string","nodeType":"ElementaryTypeName","src":"28245:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28221:45:23"},"returnParameters":{"id":10658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10657,"mutability":"mutable","name":"result","nameLocation":"28319:6:23","nodeType":"VariableDeclaration","scope":10661,"src":"28314:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10656,"name":"bool","nodeType":"ElementaryTypeName","src":"28314:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28313:13:23"},"scope":10950,"src":"28204:989:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10672,"nodeType":"Block","src":"29375:1155:23","statements":[{"AST":{"nativeSrc":"29437:1087:23","nodeType":"YulBlock","src":"29437:1087:23","statements":[{"nativeSrc":"29451:35:23","nodeType":"YulVariableDeclaration","src":"29451:35:23","value":{"arguments":[{"name":"subject","nativeSrc":"29478:7:23","nodeType":"YulIdentifier","src":"29478:7:23"}],"functionName":{"name":"mload","nativeSrc":"29472:5:23","nodeType":"YulIdentifier","src":"29472:5:23"},"nativeSrc":"29472:14:23","nodeType":"YulFunctionCall","src":"29472:14:23"},"variables":[{"name":"subjectLength","nativeSrc":"29455:13:23","nodeType":"YulTypedName","src":"29455:13:23","type":""}]},{"body":{"nativeSrc":"29551:963:23","nodeType":"YulBlock","src":"29551:963:23","statements":[{"nativeSrc":"29569:29:23","nodeType":"YulAssignment","src":"29569:29:23","value":{"arguments":[{"name":"subject","nativeSrc":"29584:7:23","nodeType":"YulIdentifier","src":"29584:7:23"},{"kind":"number","nativeSrc":"29593:4:23","nodeType":"YulLiteral","src":"29593:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29580:3:23","nodeType":"YulIdentifier","src":"29580:3:23"},"nativeSrc":"29580:18:23","nodeType":"YulFunctionCall","src":"29580:18:23"},"variableNames":[{"name":"subject","nativeSrc":"29569:7:23","nodeType":"YulIdentifier","src":"29569:7:23"}]},{"nativeSrc":"29615:21:23","nodeType":"YulAssignment","src":"29615:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"29631:4:23","nodeType":"YulLiteral","src":"29631:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"29625:5:23","nodeType":"YulIdentifier","src":"29625:5:23"},"nativeSrc":"29625:11:23","nodeType":"YulFunctionCall","src":"29625:11:23"},"variableNames":[{"name":"result","nativeSrc":"29615:6:23","nodeType":"YulIdentifier","src":"29615:6:23"}]},{"nativeSrc":"29653:31:23","nodeType":"YulVariableDeclaration","src":"29653:31:23","value":{"arguments":[{"name":"result","nativeSrc":"29671:6:23","nodeType":"YulIdentifier","src":"29671:6:23"},{"kind":"number","nativeSrc":"29679:4:23","nodeType":"YulLiteral","src":"29679:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29667:3:23","nodeType":"YulIdentifier","src":"29667:3:23"},"nativeSrc":"29667:17:23","nodeType":"YulFunctionCall","src":"29667:17:23"},"variables":[{"name":"output","nativeSrc":"29657:6:23","nodeType":"YulTypedName","src":"29657:6:23","type":""}]},{"body":{"nativeSrc":"29713:475:23","nodeType":"YulBlock","src":"29713:475:23","statements":[{"body":{"nativeSrc":"29821:202:23","nodeType":"YulBlock","src":"29821:202:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nativeSrc":"29858:6:23","nodeType":"YulIdentifier","src":"29858:6:23"},{"name":"o","nativeSrc":"29866:1:23","nodeType":"YulIdentifier","src":"29866:1:23"}],"functionName":{"name":"add","nativeSrc":"29854:3:23","nodeType":"YulIdentifier","src":"29854:3:23"},"nativeSrc":"29854:14:23","nodeType":"YulFunctionCall","src":"29854:14:23"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"29880:7:23","nodeType":"YulIdentifier","src":"29880:7:23"},{"name":"o","nativeSrc":"29889:1:23","nodeType":"YulIdentifier","src":"29889:1:23"}],"functionName":{"name":"add","nativeSrc":"29876:3:23","nodeType":"YulIdentifier","src":"29876:3:23"},"nativeSrc":"29876:15:23","nodeType":"YulFunctionCall","src":"29876:15:23"}],"functionName":{"name":"mload","nativeSrc":"29870:5:23","nodeType":"YulIdentifier","src":"29870:5:23"},"nativeSrc":"29870:22:23","nodeType":"YulFunctionCall","src":"29870:22:23"}],"functionName":{"name":"mstore","nativeSrc":"29847:6:23","nodeType":"YulIdentifier","src":"29847:6:23"},"nativeSrc":"29847:46:23","nodeType":"YulFunctionCall","src":"29847:46:23"},"nativeSrc":"29847:46:23","nodeType":"YulExpressionStatement","src":"29847:46:23"},{"nativeSrc":"29918:17:23","nodeType":"YulAssignment","src":"29918:17:23","value":{"arguments":[{"name":"o","nativeSrc":"29927:1:23","nodeType":"YulIdentifier","src":"29927:1:23"},{"kind":"number","nativeSrc":"29930:4:23","nodeType":"YulLiteral","src":"29930:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29923:3:23","nodeType":"YulIdentifier","src":"29923:3:23"},"nativeSrc":"29923:12:23","nodeType":"YulFunctionCall","src":"29923:12:23"},"variableNames":[{"name":"o","nativeSrc":"29918:1:23","nodeType":"YulIdentifier","src":"29918:1:23"}]},{"body":{"nativeSrc":"29992:9:23","nodeType":"YulBlock","src":"29992:9:23","statements":[{"nativeSrc":"29994:5:23","nodeType":"YulBreak","src":"29994:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"29973:1:23","nodeType":"YulIdentifier","src":"29973:1:23"},{"name":"subjectLength","nativeSrc":"29976:13:23","nodeType":"YulIdentifier","src":"29976:13:23"}],"functionName":{"name":"lt","nativeSrc":"29970:2:23","nodeType":"YulIdentifier","src":"29970:2:23"},"nativeSrc":"29970:20:23","nodeType":"YulFunctionCall","src":"29970:20:23"}],"functionName":{"name":"iszero","nativeSrc":"29963:6:23","nodeType":"YulIdentifier","src":"29963:6:23"},"nativeSrc":"29963:28:23","nodeType":"YulFunctionCall","src":"29963:28:23"},"nativeSrc":"29960:41:23","nodeType":"YulIf","src":"29960:41:23"}]},"condition":{"kind":"number","nativeSrc":"29816:1:23","nodeType":"YulLiteral","src":"29816:1:23","type":"","value":"1"},"nativeSrc":"29797:226:23","nodeType":"YulForLoop","post":{"nativeSrc":"29818:2:23","nodeType":"YulBlock","src":"29818:2:23","statements":[]},"pre":{"nativeSrc":"29801:14:23","nodeType":"YulBlock","src":"29801:14:23","statements":[{"nativeSrc":"29803:10:23","nodeType":"YulVariableDeclaration","src":"29803:10:23","value":{"kind":"number","nativeSrc":"29812:1:23","nodeType":"YulLiteral","src":"29812:1:23","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"29807:1:23","nodeType":"YulTypedName","src":"29807:1:23","type":""}]}]},"src":"29797:226:23"},{"nativeSrc":"30044:36:23","nodeType":"YulAssignment","src":"30044:36:23","value":{"arguments":[{"name":"output","nativeSrc":"30058:6:23","nodeType":"YulIdentifier","src":"30058:6:23"},{"name":"subjectLength","nativeSrc":"30066:13:23","nodeType":"YulIdentifier","src":"30066:13:23"}],"functionName":{"name":"add","nativeSrc":"30054:3:23","nodeType":"YulIdentifier","src":"30054:3:23"},"nativeSrc":"30054:26:23","nodeType":"YulFunctionCall","src":"30054:26:23"},"variableNames":[{"name":"output","nativeSrc":"30044:6:23","nodeType":"YulIdentifier","src":"30044:6:23"}]},{"nativeSrc":"30101:22:23","nodeType":"YulAssignment","src":"30101:22:23","value":{"arguments":[{"name":"times","nativeSrc":"30114:5:23","nodeType":"YulIdentifier","src":"30114:5:23"},{"kind":"number","nativeSrc":"30121:1:23","nodeType":"YulLiteral","src":"30121:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"30110:3:23","nodeType":"YulIdentifier","src":"30110:3:23"},"nativeSrc":"30110:13:23","nodeType":"YulFunctionCall","src":"30110:13:23"},"variableNames":[{"name":"times","nativeSrc":"30101:5:23","nodeType":"YulIdentifier","src":"30101:5:23"}]},{"body":{"nativeSrc":"30161:9:23","nodeType":"YulBlock","src":"30161:9:23","statements":[{"nativeSrc":"30163:5:23","nodeType":"YulBreak","src":"30163:5:23"}]},"condition":{"arguments":[{"name":"times","nativeSrc":"30154:5:23","nodeType":"YulIdentifier","src":"30154:5:23"}],"functionName":{"name":"iszero","nativeSrc":"30147:6:23","nodeType":"YulIdentifier","src":"30147:6:23"},"nativeSrc":"30147:13:23","nodeType":"YulFunctionCall","src":"30147:13:23"},"nativeSrc":"30144:26:23","nodeType":"YulIf","src":"30144:26:23"}]},"condition":{"kind":"number","nativeSrc":"29708:1:23","nodeType":"YulLiteral","src":"29708:1:23","type":"","value":"1"},"nativeSrc":"29701:487:23","nodeType":"YulForLoop","post":{"nativeSrc":"29710:2:23","nodeType":"YulBlock","src":"29710:2:23","statements":[]},"pre":{"nativeSrc":"29705:2:23","nodeType":"YulBlock","src":"29705:2:23","statements":[]},"src":"29701:487:23"},{"expression":{"arguments":[{"name":"output","nativeSrc":"30212:6:23","nodeType":"YulIdentifier","src":"30212:6:23"},{"kind":"number","nativeSrc":"30220:1:23","nodeType":"YulLiteral","src":"30220:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"30205:6:23","nodeType":"YulIdentifier","src":"30205:6:23"},"nativeSrc":"30205:17:23","nodeType":"YulFunctionCall","src":"30205:17:23"},"nativeSrc":"30205:17:23","nodeType":"YulExpressionStatement","src":"30205:17:23"},{"nativeSrc":"30277:50:23","nodeType":"YulVariableDeclaration","src":"30277:50:23","value":{"arguments":[{"name":"output","nativeSrc":"30301:6:23","nodeType":"YulIdentifier","src":"30301:6:23"},{"arguments":[{"name":"result","nativeSrc":"30313:6:23","nodeType":"YulIdentifier","src":"30313:6:23"},{"kind":"number","nativeSrc":"30321:4:23","nodeType":"YulLiteral","src":"30321:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30309:3:23","nodeType":"YulIdentifier","src":"30309:3:23"},"nativeSrc":"30309:17:23","nodeType":"YulFunctionCall","src":"30309:17:23"}],"functionName":{"name":"sub","nativeSrc":"30297:3:23","nodeType":"YulIdentifier","src":"30297:3:23"},"nativeSrc":"30297:30:23","nodeType":"YulFunctionCall","src":"30297:30:23"},"variables":[{"name":"resultLength","nativeSrc":"30281:12:23","nodeType":"YulTypedName","src":"30281:12:23","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"30351:6:23","nodeType":"YulIdentifier","src":"30351:6:23"},{"name":"resultLength","nativeSrc":"30359:12:23","nodeType":"YulIdentifier","src":"30359:12:23"}],"functionName":{"name":"mstore","nativeSrc":"30344:6:23","nodeType":"YulIdentifier","src":"30344:6:23"},"nativeSrc":"30344:28:23","nodeType":"YulFunctionCall","src":"30344:28:23"},"nativeSrc":"30344:28:23","nodeType":"YulExpressionStatement","src":"30344:28:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30457:4:23","nodeType":"YulLiteral","src":"30457:4:23","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"30467:6:23","nodeType":"YulIdentifier","src":"30467:6:23"},{"arguments":[{"name":"resultLength","nativeSrc":"30479:12:23","nodeType":"YulIdentifier","src":"30479:12:23"},{"kind":"number","nativeSrc":"30493:4:23","nodeType":"YulLiteral","src":"30493:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30475:3:23","nodeType":"YulIdentifier","src":"30475:3:23"},"nativeSrc":"30475:23:23","nodeType":"YulFunctionCall","src":"30475:23:23"}],"functionName":{"name":"add","nativeSrc":"30463:3:23","nodeType":"YulIdentifier","src":"30463:3:23"},"nativeSrc":"30463:36:23","nodeType":"YulFunctionCall","src":"30463:36:23"}],"functionName":{"name":"mstore","nativeSrc":"30450:6:23","nodeType":"YulIdentifier","src":"30450:6:23"},"nativeSrc":"30450:50:23","nodeType":"YulFunctionCall","src":"30450:50:23"},"nativeSrc":"30450:50:23","nodeType":"YulExpressionStatement","src":"30450:50:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"times","nativeSrc":"29519:5:23","nodeType":"YulIdentifier","src":"29519:5:23"}],"functionName":{"name":"iszero","nativeSrc":"29512:6:23","nodeType":"YulIdentifier","src":"29512:6:23"},"nativeSrc":"29512:13:23","nodeType":"YulFunctionCall","src":"29512:13:23"},{"arguments":[{"name":"subjectLength","nativeSrc":"29534:13:23","nodeType":"YulIdentifier","src":"29534:13:23"}],"functionName":{"name":"iszero","nativeSrc":"29527:6:23","nodeType":"YulIdentifier","src":"29527:6:23"},"nativeSrc":"29527:21:23","nodeType":"YulFunctionCall","src":"29527:21:23"}],"functionName":{"name":"or","nativeSrc":"29509:2:23","nodeType":"YulIdentifier","src":"29509:2:23"},"nativeSrc":"29509:40:23","nodeType":"YulFunctionCall","src":"29509:40:23"}],"functionName":{"name":"iszero","nativeSrc":"29502:6:23","nodeType":"YulIdentifier","src":"29502:6:23"},"nativeSrc":"29502:48:23","nodeType":"YulFunctionCall","src":"29502:48:23"},"nativeSrc":"29499:1015:23","nodeType":"YulIf","src":"29499:1015:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10669,"isOffset":false,"isSlot":false,"src":"29615:6:23","valueSize":1},{"declaration":10669,"isOffset":false,"isSlot":false,"src":"29671:6:23","valueSize":1},{"declaration":10669,"isOffset":false,"isSlot":false,"src":"30313:6:23","valueSize":1},{"declaration":10669,"isOffset":false,"isSlot":false,"src":"30351:6:23","valueSize":1},{"declaration":10669,"isOffset":false,"isSlot":false,"src":"30467:6:23","valueSize":1},{"declaration":10664,"isOffset":false,"isSlot":false,"src":"29478:7:23","valueSize":1},{"declaration":10664,"isOffset":false,"isSlot":false,"src":"29569:7:23","valueSize":1},{"declaration":10664,"isOffset":false,"isSlot":false,"src":"29584:7:23","valueSize":1},{"declaration":10664,"isOffset":false,"isSlot":false,"src":"29880:7:23","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"29519:5:23","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"30101:5:23","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"30114:5:23","valueSize":1},{"declaration":10666,"isOffset":false,"isSlot":false,"src":"30154:5:23","valueSize":1}],"id":10671,"nodeType":"InlineAssembly","src":"29428:1096:23"}]},"documentation":{"id":10662,"nodeType":"StructuredDocumentation","src":"29199:44:23","text":"@dev Returns `subject` repeated `times`."},"id":10673,"implemented":true,"kind":"function","modifiers":[],"name":"repeat","nameLocation":"29257:6:23","nodeType":"FunctionDefinition","parameters":{"id":10667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10664,"mutability":"mutable","name":"subject","nameLocation":"29278:7:23","nodeType":"VariableDeclaration","scope":10673,"src":"29264:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10663,"name":"string","nodeType":"ElementaryTypeName","src":"29264:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10666,"mutability":"mutable","name":"times","nameLocation":"29295:5:23","nodeType":"VariableDeclaration","scope":10673,"src":"29287:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10665,"name":"uint256","nodeType":"ElementaryTypeName","src":"29287:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29263:38:23"},"returnParameters":{"id":10670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10669,"mutability":"mutable","name":"result","nameLocation":"29363:6:23","nodeType":"VariableDeclaration","scope":10673,"src":"29349:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10668,"name":"string","nodeType":"ElementaryTypeName","src":"29349:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29348:22:23"},"scope":10950,"src":"29248:1282:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10686,"nodeType":"Block","src":"30802:1168:23","statements":[{"AST":{"nativeSrc":"30864:1100:23","nodeType":"YulBlock","src":"30864:1100:23","statements":[{"nativeSrc":"30878:35:23","nodeType":"YulVariableDeclaration","src":"30878:35:23","value":{"arguments":[{"name":"subject","nativeSrc":"30905:7:23","nodeType":"YulIdentifier","src":"30905:7:23"}],"functionName":{"name":"mload","nativeSrc":"30899:5:23","nodeType":"YulIdentifier","src":"30899:5:23"},"nativeSrc":"30899:14:23","nodeType":"YulFunctionCall","src":"30899:14:23"},"variables":[{"name":"subjectLength","nativeSrc":"30882:13:23","nodeType":"YulTypedName","src":"30882:13:23","type":""}]},{"body":{"nativeSrc":"30960:24:23","nodeType":"YulBlock","src":"30960:24:23","statements":[{"nativeSrc":"30962:20:23","nodeType":"YulAssignment","src":"30962:20:23","value":{"name":"subjectLength","nativeSrc":"30969:13:23","nodeType":"YulIdentifier","src":"30969:13:23"},"variableNames":[{"name":"end","nativeSrc":"30962:3:23","nodeType":"YulIdentifier","src":"30962:3:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nativeSrc":"30939:13:23","nodeType":"YulIdentifier","src":"30939:13:23"},{"name":"end","nativeSrc":"30954:3:23","nodeType":"YulIdentifier","src":"30954:3:23"}],"functionName":{"name":"gt","nativeSrc":"30936:2:23","nodeType":"YulIdentifier","src":"30936:2:23"},"nativeSrc":"30936:22:23","nodeType":"YulFunctionCall","src":"30936:22:23"}],"functionName":{"name":"iszero","nativeSrc":"30929:6:23","nodeType":"YulIdentifier","src":"30929:6:23"},"nativeSrc":"30929:30:23","nodeType":"YulFunctionCall","src":"30929:30:23"},"nativeSrc":"30926:58:23","nodeType":"YulIf","src":"30926:58:23"},{"body":{"nativeSrc":"31033:26:23","nodeType":"YulBlock","src":"31033:26:23","statements":[{"nativeSrc":"31035:22:23","nodeType":"YulAssignment","src":"31035:22:23","value":{"name":"subjectLength","nativeSrc":"31044:13:23","nodeType":"YulIdentifier","src":"31044:13:23"},"variableNames":[{"name":"start","nativeSrc":"31035:5:23","nodeType":"YulIdentifier","src":"31035:5:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"subjectLength","nativeSrc":"31010:13:23","nodeType":"YulIdentifier","src":"31010:13:23"},{"name":"start","nativeSrc":"31025:5:23","nodeType":"YulIdentifier","src":"31025:5:23"}],"functionName":{"name":"gt","nativeSrc":"31007:2:23","nodeType":"YulIdentifier","src":"31007:2:23"},"nativeSrc":"31007:24:23","nodeType":"YulFunctionCall","src":"31007:24:23"}],"functionName":{"name":"iszero","nativeSrc":"31000:6:23","nodeType":"YulIdentifier","src":"31000:6:23"},"nativeSrc":"31000:32:23","nodeType":"YulFunctionCall","src":"31000:32:23"},"nativeSrc":"30997:62:23","nodeType":"YulIf","src":"30997:62:23"},{"body":{"nativeSrc":"31090:864:23","nodeType":"YulBlock","src":"31090:864:23","statements":[{"nativeSrc":"31108:21:23","nodeType":"YulAssignment","src":"31108:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"31124:4:23","nodeType":"YulLiteral","src":"31124:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"31118:5:23","nodeType":"YulIdentifier","src":"31118:5:23"},"nativeSrc":"31118:11:23","nodeType":"YulFunctionCall","src":"31118:11:23"},"variableNames":[{"name":"result","nativeSrc":"31108:6:23","nodeType":"YulIdentifier","src":"31108:6:23"}]},{"nativeSrc":"31146:35:23","nodeType":"YulVariableDeclaration","src":"31146:35:23","value":{"arguments":[{"name":"end","nativeSrc":"31170:3:23","nodeType":"YulIdentifier","src":"31170:3:23"},{"name":"start","nativeSrc":"31175:5:23","nodeType":"YulIdentifier","src":"31175:5:23"}],"functionName":{"name":"sub","nativeSrc":"31166:3:23","nodeType":"YulIdentifier","src":"31166:3:23"},"nativeSrc":"31166:15:23","nodeType":"YulFunctionCall","src":"31166:15:23"},"variables":[{"name":"resultLength","nativeSrc":"31150:12:23","nodeType":"YulTypedName","src":"31150:12:23","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"31205:6:23","nodeType":"YulIdentifier","src":"31205:6:23"},{"name":"resultLength","nativeSrc":"31213:12:23","nodeType":"YulIdentifier","src":"31213:12:23"}],"functionName":{"name":"mstore","nativeSrc":"31198:6:23","nodeType":"YulIdentifier","src":"31198:6:23"},"nativeSrc":"31198:28:23","nodeType":"YulFunctionCall","src":"31198:28:23"},"nativeSrc":"31198:28:23","nodeType":"YulExpressionStatement","src":"31198:28:23"},{"nativeSrc":"31243:30:23","nodeType":"YulAssignment","src":"31243:30:23","value":{"arguments":[{"name":"subject","nativeSrc":"31258:7:23","nodeType":"YulIdentifier","src":"31258:7:23"},{"name":"start","nativeSrc":"31267:5:23","nodeType":"YulIdentifier","src":"31267:5:23"}],"functionName":{"name":"add","nativeSrc":"31254:3:23","nodeType":"YulIdentifier","src":"31254:3:23"},"nativeSrc":"31254:19:23","nodeType":"YulFunctionCall","src":"31254:19:23"},"variableNames":[{"name":"subject","nativeSrc":"31243:7:23","nodeType":"YulIdentifier","src":"31243:7:23"}]},{"nativeSrc":"31290:18:23","nodeType":"YulVariableDeclaration","src":"31290:18:23","value":{"arguments":[{"kind":"number","nativeSrc":"31303:4:23","nodeType":"YulLiteral","src":"31303:4:23","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"31299:3:23","nodeType":"YulIdentifier","src":"31299:3:23"},"nativeSrc":"31299:9:23","nodeType":"YulFunctionCall","src":"31299:9:23"},"variables":[{"name":"w","nativeSrc":"31294:1:23","nodeType":"YulTypedName","src":"31294:1:23","type":""}]},{"body":{"nativeSrc":"31448:183:23","nodeType":"YulBlock","src":"31448:183:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"31481:6:23","nodeType":"YulIdentifier","src":"31481:6:23"},{"name":"o","nativeSrc":"31489:1:23","nodeType":"YulIdentifier","src":"31489:1:23"}],"functionName":{"name":"add","nativeSrc":"31477:3:23","nodeType":"YulIdentifier","src":"31477:3:23"},"nativeSrc":"31477:14:23","nodeType":"YulFunctionCall","src":"31477:14:23"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"31503:7:23","nodeType":"YulIdentifier","src":"31503:7:23"},{"name":"o","nativeSrc":"31512:1:23","nodeType":"YulIdentifier","src":"31512:1:23"}],"functionName":{"name":"add","nativeSrc":"31499:3:23","nodeType":"YulIdentifier","src":"31499:3:23"},"nativeSrc":"31499:15:23","nodeType":"YulFunctionCall","src":"31499:15:23"}],"functionName":{"name":"mload","nativeSrc":"31493:5:23","nodeType":"YulIdentifier","src":"31493:5:23"},"nativeSrc":"31493:22:23","nodeType":"YulFunctionCall","src":"31493:22:23"}],"functionName":{"name":"mstore","nativeSrc":"31470:6:23","nodeType":"YulIdentifier","src":"31470:6:23"},"nativeSrc":"31470:46:23","nodeType":"YulFunctionCall","src":"31470:46:23"},"nativeSrc":"31470:46:23","nodeType":"YulExpressionStatement","src":"31470:46:23"},{"nativeSrc":"31537:14:23","nodeType":"YulAssignment","src":"31537:14:23","value":{"arguments":[{"name":"o","nativeSrc":"31546:1:23","nodeType":"YulIdentifier","src":"31546:1:23"},{"name":"w","nativeSrc":"31549:1:23","nodeType":"YulIdentifier","src":"31549:1:23"}],"functionName":{"name":"add","nativeSrc":"31542:3:23","nodeType":"YulIdentifier","src":"31542:3:23"},"nativeSrc":"31542:9:23","nodeType":"YulFunctionCall","src":"31542:9:23"},"variableNames":[{"name":"o","nativeSrc":"31537:1:23","nodeType":"YulIdentifier","src":"31537:1:23"}]},{"body":{"nativeSrc":"31604:9:23","nodeType":"YulBlock","src":"31604:9:23","statements":[{"nativeSrc":"31606:5:23","nodeType":"YulBreak","src":"31606:5:23"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"31601:1:23","nodeType":"YulIdentifier","src":"31601:1:23"}],"functionName":{"name":"iszero","nativeSrc":"31594:6:23","nodeType":"YulIdentifier","src":"31594:6:23"},"nativeSrc":"31594:9:23","nodeType":"YulFunctionCall","src":"31594:9:23"},"nativeSrc":"31591:22:23","nodeType":"YulIf","src":"31591:22:23"}]},"condition":{"kind":"number","nativeSrc":"31443:1:23","nodeType":"YulLiteral","src":"31443:1:23","type":"","value":"1"},"nativeSrc":"31394:237:23","nodeType":"YulForLoop","post":{"nativeSrc":"31445:2:23","nodeType":"YulBlock","src":"31445:2:23","statements":[]},"pre":{"nativeSrc":"31398:44:23","nodeType":"YulBlock","src":"31398:44:23","statements":[{"nativeSrc":"31400:40:23","nodeType":"YulVariableDeclaration","src":"31400:40:23","value":{"arguments":[{"arguments":[{"name":"resultLength","nativeSrc":"31417:12:23","nodeType":"YulIdentifier","src":"31417:12:23"},{"kind":"number","nativeSrc":"31431:4:23","nodeType":"YulLiteral","src":"31431:4:23","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"31413:3:23","nodeType":"YulIdentifier","src":"31413:3:23"},"nativeSrc":"31413:23:23","nodeType":"YulFunctionCall","src":"31413:23:23"},{"name":"w","nativeSrc":"31438:1:23","nodeType":"YulIdentifier","src":"31438:1:23"}],"functionName":{"name":"and","nativeSrc":"31409:3:23","nodeType":"YulIdentifier","src":"31409:3:23"},"nativeSrc":"31409:31:23","nodeType":"YulFunctionCall","src":"31409:31:23"},"variables":[{"name":"o","nativeSrc":"31404:1:23","nodeType":"YulTypedName","src":"31404:1:23","type":""}]}]},"src":"31394:237:23"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"31717:6:23","nodeType":"YulIdentifier","src":"31717:6:23"},{"kind":"number","nativeSrc":"31725:4:23","nodeType":"YulLiteral","src":"31725:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31713:3:23","nodeType":"YulIdentifier","src":"31713:3:23"},"nativeSrc":"31713:17:23","nodeType":"YulFunctionCall","src":"31713:17:23"},{"name":"resultLength","nativeSrc":"31732:12:23","nodeType":"YulIdentifier","src":"31732:12:23"}],"functionName":{"name":"add","nativeSrc":"31709:3:23","nodeType":"YulIdentifier","src":"31709:3:23"},"nativeSrc":"31709:36:23","nodeType":"YulFunctionCall","src":"31709:36:23"},{"kind":"number","nativeSrc":"31747:1:23","nodeType":"YulLiteral","src":"31747:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"31702:6:23","nodeType":"YulIdentifier","src":"31702:6:23"},"nativeSrc":"31702:47:23","nodeType":"YulFunctionCall","src":"31702:47:23"},"nativeSrc":"31702:47:23","nodeType":"YulExpressionStatement","src":"31702:47:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31889:4:23","nodeType":"YulLiteral","src":"31889:4:23","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"31899:6:23","nodeType":"YulIdentifier","src":"31899:6:23"},{"arguments":[{"arguments":[{"name":"resultLength","nativeSrc":"31915:12:23","nodeType":"YulIdentifier","src":"31915:12:23"},{"kind":"number","nativeSrc":"31929:4:23","nodeType":"YulLiteral","src":"31929:4:23","type":"","value":"0x3f"}],"functionName":{"name":"add","nativeSrc":"31911:3:23","nodeType":"YulIdentifier","src":"31911:3:23"},"nativeSrc":"31911:23:23","nodeType":"YulFunctionCall","src":"31911:23:23"},{"name":"w","nativeSrc":"31936:1:23","nodeType":"YulIdentifier","src":"31936:1:23"}],"functionName":{"name":"and","nativeSrc":"31907:3:23","nodeType":"YulIdentifier","src":"31907:3:23"},"nativeSrc":"31907:31:23","nodeType":"YulFunctionCall","src":"31907:31:23"}],"functionName":{"name":"add","nativeSrc":"31895:3:23","nodeType":"YulIdentifier","src":"31895:3:23"},"nativeSrc":"31895:44:23","nodeType":"YulFunctionCall","src":"31895:44:23"}],"functionName":{"name":"mstore","nativeSrc":"31882:6:23","nodeType":"YulIdentifier","src":"31882:6:23"},"nativeSrc":"31882:58:23","nodeType":"YulFunctionCall","src":"31882:58:23"},"nativeSrc":"31882:58:23","nodeType":"YulExpressionStatement","src":"31882:58:23"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"31078:5:23","nodeType":"YulIdentifier","src":"31078:5:23"},{"name":"end","nativeSrc":"31085:3:23","nodeType":"YulIdentifier","src":"31085:3:23"}],"functionName":{"name":"lt","nativeSrc":"31075:2:23","nodeType":"YulIdentifier","src":"31075:2:23"},"nativeSrc":"31075:14:23","nodeType":"YulFunctionCall","src":"31075:14:23"},"nativeSrc":"31072:882:23","nodeType":"YulIf","src":"31072:882:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30954:3:23","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"30962:3:23","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"31085:3:23","valueSize":1},{"declaration":10680,"isOffset":false,"isSlot":false,"src":"31170:3:23","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"31108:6:23","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"31205:6:23","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"31481:6:23","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"31717:6:23","valueSize":1},{"declaration":10683,"isOffset":false,"isSlot":false,"src":"31899:6:23","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"31025:5:23","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"31035:5:23","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"31078:5:23","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"31175:5:23","valueSize":1},{"declaration":10678,"isOffset":false,"isSlot":false,"src":"31267:5:23","valueSize":1},{"declaration":10676,"isOffset":false,"isSlot":false,"src":"30905:7:23","valueSize":1},{"declaration":10676,"isOffset":false,"isSlot":false,"src":"31243:7:23","valueSize":1},{"declaration":10676,"isOffset":false,"isSlot":false,"src":"31258:7:23","valueSize":1},{"declaration":10676,"isOffset":false,"isSlot":false,"src":"31503:7:23","valueSize":1}],"id":10685,"nodeType":"InlineAssembly","src":"30855:1109:23"}]},"documentation":{"id":10674,"nodeType":"StructuredDocumentation","src":"30536:122:23","text":"@dev Returns a copy of `subject` sliced from `start` to `end` (exclusive).\n `start` and `end` are byte offsets."},"id":10687,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"30672:5:23","nodeType":"FunctionDefinition","parameters":{"id":10681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10676,"mutability":"mutable","name":"subject","nameLocation":"30692:7:23","nodeType":"VariableDeclaration","scope":10687,"src":"30678:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10675,"name":"string","nodeType":"ElementaryTypeName","src":"30678:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10678,"mutability":"mutable","name":"start","nameLocation":"30709:5:23","nodeType":"VariableDeclaration","scope":10687,"src":"30701:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10677,"name":"uint256","nodeType":"ElementaryTypeName","src":"30701:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10680,"mutability":"mutable","name":"end","nameLocation":"30724:3:23","nodeType":"VariableDeclaration","scope":10687,"src":"30716:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10679,"name":"uint256","nodeType":"ElementaryTypeName","src":"30716:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30677:51:23"},"returnParameters":{"id":10684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10683,"mutability":"mutable","name":"result","nameLocation":"30790:6:23","nodeType":"VariableDeclaration","scope":10687,"src":"30776:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10682,"name":"string","nodeType":"ElementaryTypeName","src":"30776:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30775:22:23"},"scope":10950,"src":"30663:1307:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10712,"nodeType":"Block","src":"32223:68:23","statements":[{"expression":{"id":10710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10697,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10695,"src":"32233:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10699,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10690,"src":"32248:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10700,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10692,"src":"32257:5:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":10706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"32279:2:23","subExpression":{"hexValue":"31","id":10705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32280:1:23","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}],"id":10704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32272:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":10703,"name":"int256","nodeType":"ElementaryTypeName","src":"32272:6:23","typeDescriptions":{}}},"id":10707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32272:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32264:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10701,"name":"uint256","nodeType":"ElementaryTypeName","src":"32264:7:23","typeDescriptions":{}}},"id":10708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32264:19:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10698,"name":"slice","nodeType":"Identifier","overloadedDeclarations":[10687,10713],"referencedDeclaration":10687,"src":"32242:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,uint256,uint256) pure returns (string memory)"}},"id":10709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32242:42:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"32233:51:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10711,"nodeType":"ExpressionStatement","src":"32233:51:23"}]},"documentation":{"id":10688,"nodeType":"StructuredDocumentation","src":"31976:116:23","text":"@dev Returns a copy of `subject` sliced from `start` to the end of the string.\n `start` is a byte offset."},"id":10713,"implemented":true,"kind":"function","modifiers":[],"name":"slice","nameLocation":"32106:5:23","nodeType":"FunctionDefinition","parameters":{"id":10693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10690,"mutability":"mutable","name":"subject","nameLocation":"32126:7:23","nodeType":"VariableDeclaration","scope":10713,"src":"32112:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10689,"name":"string","nodeType":"ElementaryTypeName","src":"32112:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10692,"mutability":"mutable","name":"start","nameLocation":"32143:5:23","nodeType":"VariableDeclaration","scope":10713,"src":"32135:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10691,"name":"uint256","nodeType":"ElementaryTypeName","src":"32135:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32111:38:23"},"returnParameters":{"id":10696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10695,"mutability":"mutable","name":"result","nameLocation":"32211:6:23","nodeType":"VariableDeclaration","scope":10713,"src":"32197:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10694,"name":"string","nodeType":"ElementaryTypeName","src":"32197:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32196:22:23"},"scope":10950,"src":"32097:194:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10725,"nodeType":"Block","src":"32538:2435:23","statements":[{"AST":{"nativeSrc":"32600:2367:23","nodeType":"YulBlock","src":"32600:2367:23","statements":[{"nativeSrc":"32614:35:23","nodeType":"YulVariableDeclaration","src":"32614:35:23","value":{"arguments":[{"name":"subject","nativeSrc":"32641:7:23","nodeType":"YulIdentifier","src":"32641:7:23"}],"functionName":{"name":"mload","nativeSrc":"32635:5:23","nodeType":"YulIdentifier","src":"32635:5:23"},"nativeSrc":"32635:14:23","nodeType":"YulFunctionCall","src":"32635:14:23"},"variables":[{"name":"subjectLength","nativeSrc":"32618:13:23","nodeType":"YulTypedName","src":"32618:13:23","type":""}]},{"nativeSrc":"32662:33:23","nodeType":"YulVariableDeclaration","src":"32662:33:23","value":{"arguments":[{"name":"search","nativeSrc":"32688:6:23","nodeType":"YulIdentifier","src":"32688:6:23"}],"functionName":{"name":"mload","nativeSrc":"32682:5:23","nodeType":"YulIdentifier","src":"32682:5:23"},"nativeSrc":"32682:13:23","nodeType":"YulFunctionCall","src":"32682:13:23"},"variables":[{"name":"searchLength","nativeSrc":"32666:12:23","nodeType":"YulTypedName","src":"32666:12:23","type":""}]},{"body":{"nativeSrc":"32752:2205:23","nodeType":"YulBlock","src":"32752:2205:23","statements":[{"nativeSrc":"32770:29:23","nodeType":"YulAssignment","src":"32770:29:23","value":{"arguments":[{"name":"subject","nativeSrc":"32785:7:23","nodeType":"YulIdentifier","src":"32785:7:23"},{"kind":"number","nativeSrc":"32794:4:23","nodeType":"YulLiteral","src":"32794:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32781:3:23","nodeType":"YulIdentifier","src":"32781:3:23"},"nativeSrc":"32781:18:23","nodeType":"YulFunctionCall","src":"32781:18:23"},"variableNames":[{"name":"subject","nativeSrc":"32770:7:23","nodeType":"YulIdentifier","src":"32770:7:23"}]},{"nativeSrc":"32816:27:23","nodeType":"YulAssignment","src":"32816:27:23","value":{"arguments":[{"name":"search","nativeSrc":"32830:6:23","nodeType":"YulIdentifier","src":"32830:6:23"},{"kind":"number","nativeSrc":"32838:4:23","nodeType":"YulLiteral","src":"32838:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32826:3:23","nodeType":"YulIdentifier","src":"32826:3:23"},"nativeSrc":"32826:17:23","nodeType":"YulFunctionCall","src":"32826:17:23"},"variableNames":[{"name":"search","nativeSrc":"32816:6:23","nodeType":"YulIdentifier","src":"32816:6:23"}]},{"nativeSrc":"32860:32:23","nodeType":"YulAssignment","src":"32860:32:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"32880:4:23","nodeType":"YulLiteral","src":"32880:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"32874:5:23","nodeType":"YulIdentifier","src":"32874:5:23"},"nativeSrc":"32874:11:23","nodeType":"YulFunctionCall","src":"32874:11:23"},{"kind":"number","nativeSrc":"32887:4:23","nodeType":"YulLiteral","src":"32887:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32870:3:23","nodeType":"YulIdentifier","src":"32870:3:23"},"nativeSrc":"32870:22:23","nodeType":"YulFunctionCall","src":"32870:22:23"},"variableNames":[{"name":"result","nativeSrc":"32860:6:23","nodeType":"YulIdentifier","src":"32860:6:23"}]},{"nativeSrc":"32910:27:23","nodeType":"YulVariableDeclaration","src":"32910:27:23","value":{"name":"subject","nativeSrc":"32930:7:23","nodeType":"YulIdentifier","src":"32930:7:23"},"variables":[{"name":"subjectStart","nativeSrc":"32914:12:23","nodeType":"YulTypedName","src":"32914:12:23","type":""}]},{"nativeSrc":"32954:78:23","nodeType":"YulVariableDeclaration","src":"32954:78:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"32990:7:23","nodeType":"YulIdentifier","src":"32990:7:23"},{"name":"subjectLength","nativeSrc":"32999:13:23","nodeType":"YulIdentifier","src":"32999:13:23"}],"functionName":{"name":"add","nativeSrc":"32986:3:23","nodeType":"YulIdentifier","src":"32986:3:23"},"nativeSrc":"32986:27:23","nodeType":"YulFunctionCall","src":"32986:27:23"},{"name":"searchLength","nativeSrc":"33015:12:23","nodeType":"YulIdentifier","src":"33015:12:23"}],"functionName":{"name":"sub","nativeSrc":"32982:3:23","nodeType":"YulIdentifier","src":"32982:3:23"},"nativeSrc":"32982:46:23","nodeType":"YulFunctionCall","src":"32982:46:23"},{"kind":"number","nativeSrc":"33030:1:23","nodeType":"YulLiteral","src":"33030:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"32978:3:23","nodeType":"YulIdentifier","src":"32978:3:23"},"nativeSrc":"32978:54:23","nodeType":"YulFunctionCall","src":"32978:54:23"},"variables":[{"name":"subjectSearchEnd","nativeSrc":"32958:16:23","nodeType":"YulTypedName","src":"32958:16:23","type":""}]},{"nativeSrc":"33049:10:23","nodeType":"YulVariableDeclaration","src":"33049:10:23","value":{"kind":"number","nativeSrc":"33058:1:23","nodeType":"YulLiteral","src":"33058:1:23","type":"","value":"0"},"variables":[{"name":"h","nativeSrc":"33053:1:23","nodeType":"YulTypedName","src":"33053:1:23","type":""}]},{"body":{"nativeSrc":"33110:40:23","nodeType":"YulBlock","src":"33110:40:23","statements":[{"nativeSrc":"33112:36:23","nodeType":"YulAssignment","src":"33112:36:23","value":{"arguments":[{"name":"search","nativeSrc":"33127:6:23","nodeType":"YulIdentifier","src":"33127:6:23"},{"name":"searchLength","nativeSrc":"33135:12:23","nodeType":"YulIdentifier","src":"33135:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"33117:9:23","nodeType":"YulIdentifier","src":"33117:9:23"},"nativeSrc":"33117:31:23","nodeType":"YulFunctionCall","src":"33117:31:23"},"variableNames":[{"name":"h","nativeSrc":"33112:1:23","nodeType":"YulIdentifier","src":"33112:1:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"33089:12:23","nodeType":"YulIdentifier","src":"33089:12:23"},{"kind":"number","nativeSrc":"33103:4:23","nodeType":"YulLiteral","src":"33103:4:23","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"33086:2:23","nodeType":"YulIdentifier","src":"33086:2:23"},"nativeSrc":"33086:22:23","nodeType":"YulFunctionCall","src":"33086:22:23"}],"functionName":{"name":"iszero","nativeSrc":"33079:6:23","nodeType":"YulIdentifier","src":"33079:6:23"},"nativeSrc":"33079:30:23","nodeType":"YulFunctionCall","src":"33079:30:23"},"nativeSrc":"33076:74:23","nodeType":"YulIf","src":"33076:74:23"},{"nativeSrc":"33167:51:23","nodeType":"YulVariableDeclaration","src":"33167:51:23","value":{"arguments":[{"kind":"number","nativeSrc":"33180:1:23","nodeType":"YulLiteral","src":"33180:1:23","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"33187:4:23","nodeType":"YulLiteral","src":"33187:4:23","type":"","value":"0x20"},{"arguments":[{"name":"searchLength","nativeSrc":"33197:12:23","nodeType":"YulIdentifier","src":"33197:12:23"},{"kind":"number","nativeSrc":"33211:4:23","nodeType":"YulLiteral","src":"33211:4:23","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"33193:3:23","nodeType":"YulIdentifier","src":"33193:3:23"},"nativeSrc":"33193:23:23","nodeType":"YulFunctionCall","src":"33193:23:23"}],"functionName":{"name":"sub","nativeSrc":"33183:3:23","nodeType":"YulIdentifier","src":"33183:3:23"},"nativeSrc":"33183:34:23","nodeType":"YulFunctionCall","src":"33183:34:23"}],"functionName":{"name":"shl","nativeSrc":"33176:3:23","nodeType":"YulIdentifier","src":"33176:3:23"},"nativeSrc":"33176:42:23","nodeType":"YulFunctionCall","src":"33176:42:23"},"variables":[{"name":"m","nativeSrc":"33171:1:23","nodeType":"YulTypedName","src":"33171:1:23","type":""}]},{"nativeSrc":"33235:22:23","nodeType":"YulVariableDeclaration","src":"33235:22:23","value":{"arguments":[{"name":"search","nativeSrc":"33250:6:23","nodeType":"YulIdentifier","src":"33250:6:23"}],"functionName":{"name":"mload","nativeSrc":"33244:5:23","nodeType":"YulIdentifier","src":"33244:5:23"},"nativeSrc":"33244:13:23","nodeType":"YulFunctionCall","src":"33244:13:23"},"variables":[{"name":"s","nativeSrc":"33239:1:23","nodeType":"YulTypedName","src":"33239:1:23","type":""}]},{"body":{"nativeSrc":"33286:1206:23","nodeType":"YulBlock","src":"33286:1206:23","statements":[{"nativeSrc":"33308:23:23","nodeType":"YulVariableDeclaration","src":"33308:23:23","value":{"arguments":[{"name":"subject","nativeSrc":"33323:7:23","nodeType":"YulIdentifier","src":"33323:7:23"}],"functionName":{"name":"mload","nativeSrc":"33317:5:23","nodeType":"YulIdentifier","src":"33317:5:23"},"nativeSrc":"33317:14:23","nodeType":"YulFunctionCall","src":"33317:14:23"},"variables":[{"name":"t","nativeSrc":"33312:1:23","nodeType":"YulTypedName","src":"33312:1:23","type":""}]},{"body":{"nativeSrc":"33506:850:23","nodeType":"YulBlock","src":"33506:850:23","statements":[{"body":{"nativeSrc":"33537:321:23","nodeType":"YulBlock","src":"33537:321:23","statements":[{"body":{"nativeSrc":"33618:214:23","nodeType":"YulBlock","src":"33618:214:23","statements":[{"nativeSrc":"33652:26:23","nodeType":"YulAssignment","src":"33652:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"33667:7:23","nodeType":"YulIdentifier","src":"33667:7:23"},{"kind":"number","nativeSrc":"33676:1:23","nodeType":"YulLiteral","src":"33676:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"33663:3:23","nodeType":"YulIdentifier","src":"33663:3:23"},"nativeSrc":"33663:15:23","nodeType":"YulFunctionCall","src":"33663:15:23"},"variableNames":[{"name":"subject","nativeSrc":"33652:7:23","nodeType":"YulIdentifier","src":"33652:7:23"}]},{"body":{"nativeSrc":"33752:9:23","nodeType":"YulBlock","src":"33752:9:23","statements":[{"nativeSrc":"33754:5:23","nodeType":"YulBreak","src":"33754:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"33724:7:23","nodeType":"YulIdentifier","src":"33724:7:23"},{"name":"subjectSearchEnd","nativeSrc":"33733:16:23","nodeType":"YulIdentifier","src":"33733:16:23"}],"functionName":{"name":"lt","nativeSrc":"33721:2:23","nodeType":"YulIdentifier","src":"33721:2:23"},"nativeSrc":"33721:29:23","nodeType":"YulFunctionCall","src":"33721:29:23"}],"functionName":{"name":"iszero","nativeSrc":"33714:6:23","nodeType":"YulIdentifier","src":"33714:6:23"},"nativeSrc":"33714:37:23","nodeType":"YulFunctionCall","src":"33714:37:23"},"nativeSrc":"33711:50:23","nodeType":"YulIf","src":"33711:50:23"},{"nativeSrc":"33794:8:23","nodeType":"YulContinue","src":"33794:8:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"33590:7:23","nodeType":"YulIdentifier","src":"33590:7:23"},{"name":"searchLength","nativeSrc":"33599:12:23","nodeType":"YulIdentifier","src":"33599:12:23"}],"functionName":{"name":"keccak256","nativeSrc":"33580:9:23","nodeType":"YulIdentifier","src":"33580:9:23"},"nativeSrc":"33580:32:23","nodeType":"YulFunctionCall","src":"33580:32:23"},{"name":"h","nativeSrc":"33614:1:23","nodeType":"YulIdentifier","src":"33614:1:23"}],"functionName":{"name":"eq","nativeSrc":"33577:2:23","nodeType":"YulIdentifier","src":"33577:2:23"},"nativeSrc":"33577:39:23","nodeType":"YulFunctionCall","src":"33577:39:23"}],"functionName":{"name":"iszero","nativeSrc":"33570:6:23","nodeType":"YulIdentifier","src":"33570:6:23"},"nativeSrc":"33570:47:23","nodeType":"YulFunctionCall","src":"33570:47:23"},"nativeSrc":"33567:265:23","nodeType":"YulIf","src":"33567:265:23"}]},"condition":{"name":"h","nativeSrc":"33535:1:23","nodeType":"YulIdentifier","src":"33535:1:23"},"nativeSrc":"33532:326:23","nodeType":"YulIf","src":"33532:326:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"33937:6:23","nodeType":"YulIdentifier","src":"33937:6:23"},{"arguments":[{"name":"subject","nativeSrc":"33949:7:23","nodeType":"YulIdentifier","src":"33949:7:23"},{"name":"subjectStart","nativeSrc":"33958:12:23","nodeType":"YulIdentifier","src":"33958:12:23"}],"functionName":{"name":"sub","nativeSrc":"33945:3:23","nodeType":"YulIdentifier","src":"33945:3:23"},"nativeSrc":"33945:26:23","nodeType":"YulFunctionCall","src":"33945:26:23"}],"functionName":{"name":"mstore","nativeSrc":"33930:6:23","nodeType":"YulIdentifier","src":"33930:6:23"},"nativeSrc":"33930:42:23","nodeType":"YulFunctionCall","src":"33930:42:23"},"nativeSrc":"33930:42:23","nodeType":"YulExpressionStatement","src":"33930:42:23"},{"nativeSrc":"33997:27:23","nodeType":"YulAssignment","src":"33997:27:23","value":{"arguments":[{"name":"result","nativeSrc":"34011:6:23","nodeType":"YulIdentifier","src":"34011:6:23"},{"kind":"number","nativeSrc":"34019:4:23","nodeType":"YulLiteral","src":"34019:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34007:3:23","nodeType":"YulIdentifier","src":"34007:3:23"},"nativeSrc":"34007:17:23","nodeType":"YulFunctionCall","src":"34007:17:23"},"variableNames":[{"name":"result","nativeSrc":"33997:6:23","nodeType":"YulIdentifier","src":"33997:6:23"}]},{"nativeSrc":"34113:37:23","nodeType":"YulAssignment","src":"34113:37:23","value":{"arguments":[{"name":"subject","nativeSrc":"34128:7:23","nodeType":"YulIdentifier","src":"34128:7:23"},{"name":"searchLength","nativeSrc":"34137:12:23","nodeType":"YulIdentifier","src":"34137:12:23"}],"functionName":{"name":"add","nativeSrc":"34124:3:23","nodeType":"YulIdentifier","src":"34124:3:23"},"nativeSrc":"34124:26:23","nodeType":"YulFunctionCall","src":"34124:26:23"},"variableNames":[{"name":"subject","nativeSrc":"34113:7:23","nodeType":"YulIdentifier","src":"34113:7:23"}]},{"body":{"nativeSrc":"34191:143:23","nodeType":"YulBlock","src":"34191:143:23","statements":[{"body":{"nativeSrc":"34262:9:23","nodeType":"YulBlock","src":"34262:9:23","statements":[{"nativeSrc":"34264:5:23","nodeType":"YulBreak","src":"34264:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"34234:7:23","nodeType":"YulIdentifier","src":"34234:7:23"},{"name":"subjectSearchEnd","nativeSrc":"34243:16:23","nodeType":"YulIdentifier","src":"34243:16:23"}],"functionName":{"name":"lt","nativeSrc":"34231:2:23","nodeType":"YulIdentifier","src":"34231:2:23"},"nativeSrc":"34231:29:23","nodeType":"YulFunctionCall","src":"34231:29:23"}],"functionName":{"name":"iszero","nativeSrc":"34224:6:23","nodeType":"YulIdentifier","src":"34224:6:23"},"nativeSrc":"34224:37:23","nodeType":"YulFunctionCall","src":"34224:37:23"},"nativeSrc":"34221:50:23","nodeType":"YulIf","src":"34221:50:23"},{"nativeSrc":"34300:8:23","nodeType":"YulContinue","src":"34300:8:23"}]},"condition":{"name":"searchLength","nativeSrc":"34178:12:23","nodeType":"YulIdentifier","src":"34178:12:23"},"nativeSrc":"34175:159:23","nodeType":"YulIf","src":"34175:159:23"}]},"condition":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"33491:1:23","nodeType":"YulIdentifier","src":"33491:1:23"},{"arguments":[{"name":"t","nativeSrc":"33498:1:23","nodeType":"YulIdentifier","src":"33498:1:23"},{"name":"s","nativeSrc":"33501:1:23","nodeType":"YulIdentifier","src":"33501:1:23"}],"functionName":{"name":"xor","nativeSrc":"33494:3:23","nodeType":"YulIdentifier","src":"33494:3:23"},"nativeSrc":"33494:9:23","nodeType":"YulFunctionCall","src":"33494:9:23"}],"functionName":{"name":"shr","nativeSrc":"33487:3:23","nodeType":"YulIdentifier","src":"33487:3:23"},"nativeSrc":"33487:17:23","nodeType":"YulFunctionCall","src":"33487:17:23"}],"functionName":{"name":"iszero","nativeSrc":"33480:6:23","nodeType":"YulIdentifier","src":"33480:6:23"},"nativeSrc":"33480:25:23","nodeType":"YulFunctionCall","src":"33480:25:23"},"nativeSrc":"33477:879:23","nodeType":"YulIf","src":"33477:879:23"},{"nativeSrc":"34377:26:23","nodeType":"YulAssignment","src":"34377:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"34392:7:23","nodeType":"YulIdentifier","src":"34392:7:23"},{"kind":"number","nativeSrc":"34401:1:23","nodeType":"YulLiteral","src":"34401:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"34388:3:23","nodeType":"YulIdentifier","src":"34388:3:23"},"nativeSrc":"34388:15:23","nodeType":"YulFunctionCall","src":"34388:15:23"},"variableNames":[{"name":"subject","nativeSrc":"34377:7:23","nodeType":"YulIdentifier","src":"34377:7:23"}]},{"body":{"nativeSrc":"34465:9:23","nodeType":"YulBlock","src":"34465:9:23","statements":[{"nativeSrc":"34467:5:23","nodeType":"YulBreak","src":"34467:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"34437:7:23","nodeType":"YulIdentifier","src":"34437:7:23"},{"name":"subjectSearchEnd","nativeSrc":"34446:16:23","nodeType":"YulIdentifier","src":"34446:16:23"}],"functionName":{"name":"lt","nativeSrc":"34434:2:23","nodeType":"YulIdentifier","src":"34434:2:23"},"nativeSrc":"34434:29:23","nodeType":"YulFunctionCall","src":"34434:29:23"}],"functionName":{"name":"iszero","nativeSrc":"34427:6:23","nodeType":"YulIdentifier","src":"34427:6:23"},"nativeSrc":"34427:37:23","nodeType":"YulFunctionCall","src":"34427:37:23"},"nativeSrc":"34424:50:23","nodeType":"YulIf","src":"34424:50:23"}]},"condition":{"kind":"number","nativeSrc":"33281:1:23","nodeType":"YulLiteral","src":"33281:1:23","type":"","value":"1"},"nativeSrc":"33274:1218:23","nodeType":"YulForLoop","post":{"nativeSrc":"33283:2:23","nodeType":"YulBlock","src":"33283:2:23","statements":[]},"pre":{"nativeSrc":"33278:2:23","nodeType":"YulBlock","src":"33278:2:23","statements":[]},"src":"33274:1218:23"},{"nativeSrc":"34509:23:23","nodeType":"YulVariableDeclaration","src":"34509:23:23","value":{"name":"result","nativeSrc":"34526:6:23","nodeType":"YulIdentifier","src":"34526:6:23"},"variables":[{"name":"resultEnd","nativeSrc":"34513:9:23","nodeType":"YulTypedName","src":"34513:9:23","type":""}]},{"nativeSrc":"34612:21:23","nodeType":"YulAssignment","src":"34612:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"34628:4:23","nodeType":"YulLiteral","src":"34628:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"34622:5:23","nodeType":"YulIdentifier","src":"34622:5:23"},"nativeSrc":"34622:11:23","nodeType":"YulFunctionCall","src":"34622:11:23"},"variableNames":[{"name":"result","nativeSrc":"34612:6:23","nodeType":"YulIdentifier","src":"34612:6:23"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"34706:6:23","nodeType":"YulIdentifier","src":"34706:6:23"},{"arguments":[{"kind":"number","nativeSrc":"34718:1:23","nodeType":"YulLiteral","src":"34718:1:23","type":"","value":"5"},{"arguments":[{"name":"resultEnd","nativeSrc":"34725:9:23","nodeType":"YulIdentifier","src":"34725:9:23"},{"arguments":[{"name":"result","nativeSrc":"34740:6:23","nodeType":"YulIdentifier","src":"34740:6:23"},{"kind":"number","nativeSrc":"34748:4:23","nodeType":"YulLiteral","src":"34748:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34736:3:23","nodeType":"YulIdentifier","src":"34736:3:23"},"nativeSrc":"34736:17:23","nodeType":"YulFunctionCall","src":"34736:17:23"}],"functionName":{"name":"sub","nativeSrc":"34721:3:23","nodeType":"YulIdentifier","src":"34721:3:23"},"nativeSrc":"34721:33:23","nodeType":"YulFunctionCall","src":"34721:33:23"}],"functionName":{"name":"shr","nativeSrc":"34714:3:23","nodeType":"YulIdentifier","src":"34714:3:23"},"nativeSrc":"34714:41:23","nodeType":"YulFunctionCall","src":"34714:41:23"}],"functionName":{"name":"mstore","nativeSrc":"34699:6:23","nodeType":"YulIdentifier","src":"34699:6:23"},"nativeSrc":"34699:57:23","nodeType":"YulFunctionCall","src":"34699:57:23"},"nativeSrc":"34699:57:23","nodeType":"YulExpressionStatement","src":"34699:57:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34916:4:23","nodeType":"YulLiteral","src":"34916:4:23","type":"","value":"0x40"},{"arguments":[{"name":"resultEnd","nativeSrc":"34926:9:23","nodeType":"YulIdentifier","src":"34926:9:23"},{"kind":"number","nativeSrc":"34937:4:23","nodeType":"YulLiteral","src":"34937:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34922:3:23","nodeType":"YulIdentifier","src":"34922:3:23"},"nativeSrc":"34922:20:23","nodeType":"YulFunctionCall","src":"34922:20:23"}],"functionName":{"name":"mstore","nativeSrc":"34909:6:23","nodeType":"YulIdentifier","src":"34909:6:23"},"nativeSrc":"34909:34:23","nodeType":"YulFunctionCall","src":"34909:34:23"},"nativeSrc":"34909:34:23","nodeType":"YulExpressionStatement","src":"34909:34:23"}]},"condition":{"arguments":[{"arguments":[{"name":"searchLength","nativeSrc":"32722:12:23","nodeType":"YulIdentifier","src":"32722:12:23"},{"name":"subjectLength","nativeSrc":"32736:13:23","nodeType":"YulIdentifier","src":"32736:13:23"}],"functionName":{"name":"gt","nativeSrc":"32719:2:23","nodeType":"YulIdentifier","src":"32719:2:23"},"nativeSrc":"32719:31:23","nodeType":"YulFunctionCall","src":"32719:31:23"}],"functionName":{"name":"iszero","nativeSrc":"32712:6:23","nodeType":"YulIdentifier","src":"32712:6:23"},"nativeSrc":"32712:39:23","nodeType":"YulFunctionCall","src":"32712:39:23"},"nativeSrc":"32709:2248:23","nodeType":"YulIf","src":"32709:2248:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10722,"isOffset":false,"isSlot":false,"src":"32860:6:23","valueSize":1},{"declaration":10722,"isOffset":false,"isSlot":false,"src":"33937:6:23","valueSize":1},{"declaration":10722,"isOffset":false,"isSlot":false,"src":"33997:6:23","valueSize":1},{"declaration":10722,"isOffset":false,"isSlot":false,"src":"34011:6:23","valueSize":1},{"declaration":10722,"isOffset":false,"isSlot":false,"src":"34526:6:23","valueSize":1},{"declaration":10722,"isOffset":false,"isSlot":false,"src":"34612:6:23","valueSize":1},{"declaration":10722,"isOffset":false,"isSlot":false,"src":"34706:6:23","valueSize":1},{"declaration":10722,"isOffset":false,"isSlot":false,"src":"34740:6:23","valueSize":1},{"declaration":10718,"isOffset":false,"isSlot":false,"src":"32688:6:23","valueSize":1},{"declaration":10718,"isOffset":false,"isSlot":false,"src":"32816:6:23","valueSize":1},{"declaration":10718,"isOffset":false,"isSlot":false,"src":"32830:6:23","valueSize":1},{"declaration":10718,"isOffset":false,"isSlot":false,"src":"33127:6:23","valueSize":1},{"declaration":10718,"isOffset":false,"isSlot":false,"src":"33250:6:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"32641:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"32770:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"32785:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"32930:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"32990:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"33323:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"33590:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"33652:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"33667:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"33724:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"33949:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"34113:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"34128:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"34234:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"34377:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"34392:7:23","valueSize":1},{"declaration":10716,"isOffset":false,"isSlot":false,"src":"34437:7:23","valueSize":1}],"id":10724,"nodeType":"InlineAssembly","src":"32591:2376:23"}]},"documentation":{"id":10714,"nodeType":"StructuredDocumentation","src":"32297:96:23","text":"@dev Returns all the indices of `search` in `subject`.\n The indices are byte offsets."},"id":10726,"implemented":true,"kind":"function","modifiers":[],"name":"indicesOf","nameLocation":"32407:9:23","nodeType":"FunctionDefinition","parameters":{"id":10719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10716,"mutability":"mutable","name":"subject","nameLocation":"32431:7:23","nodeType":"VariableDeclaration","scope":10726,"src":"32417:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10715,"name":"string","nodeType":"ElementaryTypeName","src":"32417:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10718,"mutability":"mutable","name":"search","nameLocation":"32454:6:23","nodeType":"VariableDeclaration","scope":10726,"src":"32440:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10717,"name":"string","nodeType":"ElementaryTypeName","src":"32440:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32416:45:23"},"returnParameters":{"id":10723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10722,"mutability":"mutable","name":"result","nameLocation":"32526:6:23","nodeType":"VariableDeclaration","scope":10726,"src":"32509:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10720,"name":"uint256","nodeType":"ElementaryTypeName","src":"32509:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10721,"nodeType":"ArrayTypeName","src":"32509:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"32508:25:23"},"scope":10950,"src":"32398:2575:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10748,"nodeType":"Block","src":"35215:1947:23","statements":[{"assignments":[10741],"declarations":[{"constant":false,"id":10741,"mutability":"mutable","name":"indices","nameLocation":"35242:7:23","nodeType":"VariableDeclaration","scope":10748,"src":"35225:24:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10739,"name":"uint256","nodeType":"ElementaryTypeName","src":"35225:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10740,"nodeType":"ArrayTypeName","src":"35225:9:23","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":10746,"initialValue":{"arguments":[{"id":10743,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10729,"src":"35262:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10744,"name":"delimiter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10731,"src":"35271:9:23","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":10742,"name":"indicesOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10726,"src":"35252:9:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (uint256[] memory)"}},"id":10745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:29:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"35225:56:23"},{"AST":{"nativeSrc":"35343:1813:23","nodeType":"YulBlock","src":"35343:1813:23","statements":[{"nativeSrc":"35357:18:23","nodeType":"YulVariableDeclaration","src":"35357:18:23","value":{"arguments":[{"kind":"number","nativeSrc":"35370:4:23","nodeType":"YulLiteral","src":"35370:4:23","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"35366:3:23","nodeType":"YulIdentifier","src":"35366:3:23"},"nativeSrc":"35366:9:23","nodeType":"YulFunctionCall","src":"35366:9:23"},"variables":[{"name":"w","nativeSrc":"35361:1:23","nodeType":"YulTypedName","src":"35361:1:23","type":""}]},{"nativeSrc":"35388:34:23","nodeType":"YulVariableDeclaration","src":"35388:34:23","value":{"arguments":[{"name":"indices","nativeSrc":"35408:7:23","nodeType":"YulIdentifier","src":"35408:7:23"},{"kind":"number","nativeSrc":"35417:4:23","nodeType":"YulLiteral","src":"35417:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35404:3:23","nodeType":"YulIdentifier","src":"35404:3:23"},"nativeSrc":"35404:18:23","nodeType":"YulFunctionCall","src":"35404:18:23"},"variables":[{"name":"indexPtr","nativeSrc":"35392:8:23","nodeType":"YulTypedName","src":"35392:8:23","type":""}]},{"nativeSrc":"35435:63:23","nodeType":"YulVariableDeclaration","src":"35435:63:23","value":{"arguments":[{"name":"indexPtr","nativeSrc":"35457:8:23","nodeType":"YulIdentifier","src":"35457:8:23"},{"arguments":[{"kind":"number","nativeSrc":"35471:1:23","nodeType":"YulLiteral","src":"35471:1:23","type":"","value":"5"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"35484:7:23","nodeType":"YulIdentifier","src":"35484:7:23"}],"functionName":{"name":"mload","nativeSrc":"35478:5:23","nodeType":"YulIdentifier","src":"35478:5:23"},"nativeSrc":"35478:14:23","nodeType":"YulFunctionCall","src":"35478:14:23"},{"kind":"number","nativeSrc":"35494:1:23","nodeType":"YulLiteral","src":"35494:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35474:3:23","nodeType":"YulIdentifier","src":"35474:3:23"},"nativeSrc":"35474:22:23","nodeType":"YulFunctionCall","src":"35474:22:23"}],"functionName":{"name":"shl","nativeSrc":"35467:3:23","nodeType":"YulIdentifier","src":"35467:3:23"},"nativeSrc":"35467:30:23","nodeType":"YulFunctionCall","src":"35467:30:23"}],"functionName":{"name":"add","nativeSrc":"35453:3:23","nodeType":"YulIdentifier","src":"35453:3:23"},"nativeSrc":"35453:45:23","nodeType":"YulFunctionCall","src":"35453:45:23"},"variables":[{"name":"indicesEnd","nativeSrc":"35439:10:23","nodeType":"YulTypedName","src":"35439:10:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"indicesEnd","nativeSrc":"35522:10:23","nodeType":"YulIdentifier","src":"35522:10:23"},{"name":"w","nativeSrc":"35534:1:23","nodeType":"YulIdentifier","src":"35534:1:23"}],"functionName":{"name":"add","nativeSrc":"35518:3:23","nodeType":"YulIdentifier","src":"35518:3:23"},"nativeSrc":"35518:18:23","nodeType":"YulFunctionCall","src":"35518:18:23"},{"arguments":[{"name":"subject","nativeSrc":"35544:7:23","nodeType":"YulIdentifier","src":"35544:7:23"}],"functionName":{"name":"mload","nativeSrc":"35538:5:23","nodeType":"YulIdentifier","src":"35538:5:23"},"nativeSrc":"35538:14:23","nodeType":"YulFunctionCall","src":"35538:14:23"}],"functionName":{"name":"mstore","nativeSrc":"35511:6:23","nodeType":"YulIdentifier","src":"35511:6:23"},"nativeSrc":"35511:42:23","nodeType":"YulFunctionCall","src":"35511:42:23"},"nativeSrc":"35511:42:23","nodeType":"YulExpressionStatement","src":"35511:42:23"},{"expression":{"arguments":[{"name":"indices","nativeSrc":"35573:7:23","nodeType":"YulIdentifier","src":"35573:7:23"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"35592:7:23","nodeType":"YulIdentifier","src":"35592:7:23"}],"functionName":{"name":"mload","nativeSrc":"35586:5:23","nodeType":"YulIdentifier","src":"35586:5:23"},"nativeSrc":"35586:14:23","nodeType":"YulFunctionCall","src":"35586:14:23"},{"kind":"number","nativeSrc":"35602:1:23","nodeType":"YulLiteral","src":"35602:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35582:3:23","nodeType":"YulIdentifier","src":"35582:3:23"},"nativeSrc":"35582:22:23","nodeType":"YulFunctionCall","src":"35582:22:23"}],"functionName":{"name":"mstore","nativeSrc":"35566:6:23","nodeType":"YulIdentifier","src":"35566:6:23"},"nativeSrc":"35566:39:23","nodeType":"YulFunctionCall","src":"35566:39:23"},"nativeSrc":"35566:39:23","nodeType":"YulExpressionStatement","src":"35566:39:23"},{"nativeSrc":"35618:18:23","nodeType":"YulVariableDeclaration","src":"35618:18:23","value":{"kind":"number","nativeSrc":"35635:1:23","nodeType":"YulLiteral","src":"35635:1:23","type":"","value":"0"},"variables":[{"name":"prevIndex","nativeSrc":"35622:9:23","nodeType":"YulTypedName","src":"35622:9:23","type":""}]},{"body":{"nativeSrc":"35661:1299:23","nodeType":"YulBlock","src":"35661:1299:23","statements":[{"nativeSrc":"35679:28:23","nodeType":"YulVariableDeclaration","src":"35679:28:23","value":{"arguments":[{"name":"indexPtr","nativeSrc":"35698:8:23","nodeType":"YulIdentifier","src":"35698:8:23"}],"functionName":{"name":"mload","nativeSrc":"35692:5:23","nodeType":"YulIdentifier","src":"35692:5:23"},"nativeSrc":"35692:15:23","nodeType":"YulFunctionCall","src":"35692:15:23"},"variables":[{"name":"index","nativeSrc":"35683:5:23","nodeType":"YulTypedName","src":"35683:5:23","type":""}]},{"expression":{"arguments":[{"name":"indexPtr","nativeSrc":"35731:8:23","nodeType":"YulIdentifier","src":"35731:8:23"},{"kind":"number","nativeSrc":"35741:4:23","nodeType":"YulLiteral","src":"35741:4:23","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"35724:6:23","nodeType":"YulIdentifier","src":"35724:6:23"},"nativeSrc":"35724:22:23","nodeType":"YulFunctionCall","src":"35724:22:23"},"nativeSrc":"35724:22:23","nodeType":"YulExpressionStatement","src":"35724:22:23"},{"body":{"nativeSrc":"35795:983:23","nodeType":"YulBlock","src":"35795:983:23","statements":[{"nativeSrc":"35817:26:23","nodeType":"YulVariableDeclaration","src":"35817:26:23","value":{"arguments":[{"kind":"number","nativeSrc":"35838:4:23","nodeType":"YulLiteral","src":"35838:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"35832:5:23","nodeType":"YulIdentifier","src":"35832:5:23"},"nativeSrc":"35832:11:23","nodeType":"YulFunctionCall","src":"35832:11:23"},"variables":[{"name":"element","nativeSrc":"35821:7:23","nodeType":"YulTypedName","src":"35821:7:23","type":""}]},{"nativeSrc":"35864:42:23","nodeType":"YulVariableDeclaration","src":"35864:42:23","value":{"arguments":[{"name":"index","nativeSrc":"35889:5:23","nodeType":"YulIdentifier","src":"35889:5:23"},{"name":"prevIndex","nativeSrc":"35896:9:23","nodeType":"YulIdentifier","src":"35896:9:23"}],"functionName":{"name":"sub","nativeSrc":"35885:3:23","nodeType":"YulIdentifier","src":"35885:3:23"},"nativeSrc":"35885:21:23","nodeType":"YulFunctionCall","src":"35885:21:23"},"variables":[{"name":"elementLength","nativeSrc":"35868:13:23","nodeType":"YulTypedName","src":"35868:13:23","type":""}]},{"expression":{"arguments":[{"name":"element","nativeSrc":"35934:7:23","nodeType":"YulIdentifier","src":"35934:7:23"},{"name":"elementLength","nativeSrc":"35943:13:23","nodeType":"YulIdentifier","src":"35943:13:23"}],"functionName":{"name":"mstore","nativeSrc":"35927:6:23","nodeType":"YulIdentifier","src":"35927:6:23"},"nativeSrc":"35927:30:23","nodeType":"YulFunctionCall","src":"35927:30:23"},"nativeSrc":"35927:30:23","nodeType":"YulExpressionStatement","src":"35927:30:23"},{"body":{"nativeSrc":"36106:216:23","nodeType":"YulBlock","src":"36106:216:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"element","nativeSrc":"36143:7:23","nodeType":"YulIdentifier","src":"36143:7:23"},{"name":"o","nativeSrc":"36152:1:23","nodeType":"YulIdentifier","src":"36152:1:23"}],"functionName":{"name":"add","nativeSrc":"36139:3:23","nodeType":"YulIdentifier","src":"36139:3:23"},"nativeSrc":"36139:15:23","nodeType":"YulFunctionCall","src":"36139:15:23"},{"arguments":[{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"36170:7:23","nodeType":"YulIdentifier","src":"36170:7:23"},{"name":"prevIndex","nativeSrc":"36179:9:23","nodeType":"YulIdentifier","src":"36179:9:23"}],"functionName":{"name":"add","nativeSrc":"36166:3:23","nodeType":"YulIdentifier","src":"36166:3:23"},"nativeSrc":"36166:23:23","nodeType":"YulFunctionCall","src":"36166:23:23"},{"name":"o","nativeSrc":"36191:1:23","nodeType":"YulIdentifier","src":"36191:1:23"}],"functionName":{"name":"add","nativeSrc":"36162:3:23","nodeType":"YulIdentifier","src":"36162:3:23"},"nativeSrc":"36162:31:23","nodeType":"YulFunctionCall","src":"36162:31:23"}],"functionName":{"name":"mload","nativeSrc":"36156:5:23","nodeType":"YulIdentifier","src":"36156:5:23"},"nativeSrc":"36156:38:23","nodeType":"YulFunctionCall","src":"36156:38:23"}],"functionName":{"name":"mstore","nativeSrc":"36132:6:23","nodeType":"YulIdentifier","src":"36132:6:23"},"nativeSrc":"36132:63:23","nodeType":"YulFunctionCall","src":"36132:63:23"},"nativeSrc":"36132:63:23","nodeType":"YulExpressionStatement","src":"36132:63:23"},{"nativeSrc":"36220:14:23","nodeType":"YulAssignment","src":"36220:14:23","value":{"arguments":[{"name":"o","nativeSrc":"36229:1:23","nodeType":"YulIdentifier","src":"36229:1:23"},{"name":"w","nativeSrc":"36232:1:23","nodeType":"YulIdentifier","src":"36232:1:23"}],"functionName":{"name":"add","nativeSrc":"36225:3:23","nodeType":"YulIdentifier","src":"36225:3:23"},"nativeSrc":"36225:9:23","nodeType":"YulFunctionCall","src":"36225:9:23"},"variableNames":[{"name":"o","nativeSrc":"36220:1:23","nodeType":"YulIdentifier","src":"36220:1:23"}]},{"body":{"nativeSrc":"36291:9:23","nodeType":"YulBlock","src":"36291:9:23","statements":[{"nativeSrc":"36293:5:23","nodeType":"YulBreak","src":"36293:5:23"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"36288:1:23","nodeType":"YulIdentifier","src":"36288:1:23"}],"functionName":{"name":"iszero","nativeSrc":"36281:6:23","nodeType":"YulIdentifier","src":"36281:6:23"},"nativeSrc":"36281:9:23","nodeType":"YulFunctionCall","src":"36281:9:23"},"nativeSrc":"36278:22:23","nodeType":"YulIf","src":"36278:22:23"}]},"condition":{"kind":"number","nativeSrc":"36101:1:23","nodeType":"YulLiteral","src":"36101:1:23","type":"","value":"1"},"nativeSrc":"36051:271:23","nodeType":"YulForLoop","post":{"nativeSrc":"36103:2:23","nodeType":"YulBlock","src":"36103:2:23","statements":[]},"pre":{"nativeSrc":"36055:45:23","nodeType":"YulBlock","src":"36055:45:23","statements":[{"nativeSrc":"36057:41:23","nodeType":"YulVariableDeclaration","src":"36057:41:23","value":{"arguments":[{"arguments":[{"name":"elementLength","nativeSrc":"36074:13:23","nodeType":"YulIdentifier","src":"36074:13:23"},{"kind":"number","nativeSrc":"36089:4:23","nodeType":"YulLiteral","src":"36089:4:23","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"36070:3:23","nodeType":"YulIdentifier","src":"36070:3:23"},"nativeSrc":"36070:24:23","nodeType":"YulFunctionCall","src":"36070:24:23"},{"name":"w","nativeSrc":"36096:1:23","nodeType":"YulIdentifier","src":"36096:1:23"}],"functionName":{"name":"and","nativeSrc":"36066:3:23","nodeType":"YulIdentifier","src":"36066:3:23"},"nativeSrc":"36066:32:23","nodeType":"YulFunctionCall","src":"36066:32:23"},"variables":[{"name":"o","nativeSrc":"36061:1:23","nodeType":"YulTypedName","src":"36061:1:23","type":""}]}]},"src":"36051:271:23"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"element","nativeSrc":"36416:7:23","nodeType":"YulIdentifier","src":"36416:7:23"},{"kind":"number","nativeSrc":"36425:4:23","nodeType":"YulLiteral","src":"36425:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36412:3:23","nodeType":"YulIdentifier","src":"36412:3:23"},"nativeSrc":"36412:18:23","nodeType":"YulFunctionCall","src":"36412:18:23"},{"name":"elementLength","nativeSrc":"36432:13:23","nodeType":"YulIdentifier","src":"36432:13:23"}],"functionName":{"name":"add","nativeSrc":"36408:3:23","nodeType":"YulIdentifier","src":"36408:3:23"},"nativeSrc":"36408:38:23","nodeType":"YulFunctionCall","src":"36408:38:23"},{"kind":"number","nativeSrc":"36448:1:23","nodeType":"YulLiteral","src":"36448:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"36401:6:23","nodeType":"YulIdentifier","src":"36401:6:23"},"nativeSrc":"36401:49:23","nodeType":"YulFunctionCall","src":"36401:49:23"},"nativeSrc":"36401:49:23","nodeType":"YulExpressionStatement","src":"36401:49:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36602:4:23","nodeType":"YulLiteral","src":"36602:4:23","type":"","value":"0x40"},{"arguments":[{"name":"element","nativeSrc":"36612:7:23","nodeType":"YulIdentifier","src":"36612:7:23"},{"arguments":[{"arguments":[{"name":"elementLength","nativeSrc":"36629:13:23","nodeType":"YulIdentifier","src":"36629:13:23"},{"kind":"number","nativeSrc":"36644:4:23","nodeType":"YulLiteral","src":"36644:4:23","type":"","value":"0x3f"}],"functionName":{"name":"add","nativeSrc":"36625:3:23","nodeType":"YulIdentifier","src":"36625:3:23"},"nativeSrc":"36625:24:23","nodeType":"YulFunctionCall","src":"36625:24:23"},{"name":"w","nativeSrc":"36651:1:23","nodeType":"YulIdentifier","src":"36651:1:23"}],"functionName":{"name":"and","nativeSrc":"36621:3:23","nodeType":"YulIdentifier","src":"36621:3:23"},"nativeSrc":"36621:32:23","nodeType":"YulFunctionCall","src":"36621:32:23"}],"functionName":{"name":"add","nativeSrc":"36608:3:23","nodeType":"YulIdentifier","src":"36608:3:23"},"nativeSrc":"36608:46:23","nodeType":"YulFunctionCall","src":"36608:46:23"}],"functionName":{"name":"mstore","nativeSrc":"36595:6:23","nodeType":"YulIdentifier","src":"36595:6:23"},"nativeSrc":"36595:60:23","nodeType":"YulFunctionCall","src":"36595:60:23"},"nativeSrc":"36595:60:23","nodeType":"YulExpressionStatement","src":"36595:60:23"},{"expression":{"arguments":[{"name":"indexPtr","nativeSrc":"36742:8:23","nodeType":"YulIdentifier","src":"36742:8:23"},{"name":"element","nativeSrc":"36752:7:23","nodeType":"YulIdentifier","src":"36752:7:23"}],"functionName":{"name":"mstore","nativeSrc":"36735:6:23","nodeType":"YulIdentifier","src":"36735:6:23"},"nativeSrc":"36735:25:23","nodeType":"YulFunctionCall","src":"36735:25:23"},"nativeSrc":"36735:25:23","nodeType":"YulExpressionStatement","src":"36735:25:23"}]},"condition":{"arguments":[{"arguments":[{"name":"index","nativeSrc":"35776:5:23","nodeType":"YulIdentifier","src":"35776:5:23"},{"name":"prevIndex","nativeSrc":"35783:9:23","nodeType":"YulIdentifier","src":"35783:9:23"}],"functionName":{"name":"eq","nativeSrc":"35773:2:23","nodeType":"YulIdentifier","src":"35773:2:23"},"nativeSrc":"35773:20:23","nodeType":"YulFunctionCall","src":"35773:20:23"}],"functionName":{"name":"iszero","nativeSrc":"35766:6:23","nodeType":"YulIdentifier","src":"35766:6:23"},"nativeSrc":"35766:28:23","nodeType":"YulFunctionCall","src":"35766:28:23"},"nativeSrc":"35763:1015:23","nodeType":"YulIf","src":"35763:1015:23"},{"nativeSrc":"36795:41:23","nodeType":"YulAssignment","src":"36795:41:23","value":{"arguments":[{"name":"index","nativeSrc":"36812:5:23","nodeType":"YulIdentifier","src":"36812:5:23"},{"arguments":[{"name":"delimiter","nativeSrc":"36825:9:23","nodeType":"YulIdentifier","src":"36825:9:23"}],"functionName":{"name":"mload","nativeSrc":"36819:5:23","nodeType":"YulIdentifier","src":"36819:5:23"},"nativeSrc":"36819:16:23","nodeType":"YulFunctionCall","src":"36819:16:23"}],"functionName":{"name":"add","nativeSrc":"36808:3:23","nodeType":"YulIdentifier","src":"36808:3:23"},"nativeSrc":"36808:28:23","nodeType":"YulFunctionCall","src":"36808:28:23"},"variableNames":[{"name":"prevIndex","nativeSrc":"36795:9:23","nodeType":"YulIdentifier","src":"36795:9:23"}]},{"nativeSrc":"36853:31:23","nodeType":"YulAssignment","src":"36853:31:23","value":{"arguments":[{"name":"indexPtr","nativeSrc":"36869:8:23","nodeType":"YulIdentifier","src":"36869:8:23"},{"kind":"number","nativeSrc":"36879:4:23","nodeType":"YulLiteral","src":"36879:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36865:3:23","nodeType":"YulIdentifier","src":"36865:3:23"},"nativeSrc":"36865:19:23","nodeType":"YulFunctionCall","src":"36865:19:23"},"variableNames":[{"name":"indexPtr","nativeSrc":"36853:8:23","nodeType":"YulIdentifier","src":"36853:8:23"}]},{"body":{"nativeSrc":"36937:9:23","nodeType":"YulBlock","src":"36937:9:23","statements":[{"nativeSrc":"36939:5:23","nodeType":"YulBreak","src":"36939:5:23"}]},"condition":{"arguments":[{"arguments":[{"name":"indexPtr","nativeSrc":"36914:8:23","nodeType":"YulIdentifier","src":"36914:8:23"},{"name":"indicesEnd","nativeSrc":"36924:10:23","nodeType":"YulIdentifier","src":"36924:10:23"}],"functionName":{"name":"lt","nativeSrc":"36911:2:23","nodeType":"YulIdentifier","src":"36911:2:23"},"nativeSrc":"36911:24:23","nodeType":"YulFunctionCall","src":"36911:24:23"}],"functionName":{"name":"iszero","nativeSrc":"36904:6:23","nodeType":"YulIdentifier","src":"36904:6:23"},"nativeSrc":"36904:32:23","nodeType":"YulFunctionCall","src":"36904:32:23"},"nativeSrc":"36901:45:23","nodeType":"YulIf","src":"36901:45:23"}]},"condition":{"kind":"number","nativeSrc":"35656:1:23","nodeType":"YulLiteral","src":"35656:1:23","type":"","value":"1"},"nativeSrc":"35649:1311:23","nodeType":"YulForLoop","post":{"nativeSrc":"35658:2:23","nodeType":"YulBlock","src":"35658:2:23","statements":[]},"pre":{"nativeSrc":"35653:2:23","nodeType":"YulBlock","src":"35653:2:23","statements":[]},"src":"35649:1311:23"},{"nativeSrc":"36973:17:23","nodeType":"YulAssignment","src":"36973:17:23","value":{"name":"indices","nativeSrc":"36983:7:23","nodeType":"YulIdentifier","src":"36983:7:23"},"variableNames":[{"name":"result","nativeSrc":"36973:6:23","nodeType":"YulIdentifier","src":"36973:6:23"}]},{"body":{"nativeSrc":"37031:115:23","nodeType":"YulBlock","src":"37031:115:23","statements":[{"nativeSrc":"37049:28:23","nodeType":"YulAssignment","src":"37049:28:23","value":{"arguments":[{"name":"indices","nativeSrc":"37063:7:23","nodeType":"YulIdentifier","src":"37063:7:23"},{"kind":"number","nativeSrc":"37072:4:23","nodeType":"YulLiteral","src":"37072:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37059:3:23","nodeType":"YulIdentifier","src":"37059:3:23"},"nativeSrc":"37059:18:23","nodeType":"YulFunctionCall","src":"37059:18:23"},"variableNames":[{"name":"result","nativeSrc":"37049:6:23","nodeType":"YulIdentifier","src":"37049:6:23"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"37101:6:23","nodeType":"YulIdentifier","src":"37101:6:23"},{"arguments":[{"arguments":[{"name":"indices","nativeSrc":"37119:7:23","nodeType":"YulIdentifier","src":"37119:7:23"}],"functionName":{"name":"mload","nativeSrc":"37113:5:23","nodeType":"YulIdentifier","src":"37113:5:23"},"nativeSrc":"37113:14:23","nodeType":"YulFunctionCall","src":"37113:14:23"},{"kind":"number","nativeSrc":"37129:1:23","nodeType":"YulLiteral","src":"37129:1:23","type":"","value":"2"}],"functionName":{"name":"sub","nativeSrc":"37109:3:23","nodeType":"YulIdentifier","src":"37109:3:23"},"nativeSrc":"37109:22:23","nodeType":"YulFunctionCall","src":"37109:22:23"}],"functionName":{"name":"mstore","nativeSrc":"37094:6:23","nodeType":"YulIdentifier","src":"37094:6:23"},"nativeSrc":"37094:38:23","nodeType":"YulFunctionCall","src":"37094:38:23"},"nativeSrc":"37094:38:23","nodeType":"YulExpressionStatement","src":"37094:38:23"}]},"condition":{"arguments":[{"arguments":[{"name":"delimiter","nativeSrc":"37019:9:23","nodeType":"YulIdentifier","src":"37019:9:23"}],"functionName":{"name":"mload","nativeSrc":"37013:5:23","nodeType":"YulIdentifier","src":"37013:5:23"},"nativeSrc":"37013:16:23","nodeType":"YulFunctionCall","src":"37013:16:23"}],"functionName":{"name":"iszero","nativeSrc":"37006:6:23","nodeType":"YulIdentifier","src":"37006:6:23"},"nativeSrc":"37006:24:23","nodeType":"YulFunctionCall","src":"37006:24:23"},"nativeSrc":"37003:143:23","nodeType":"YulIf","src":"37003:143:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10731,"isOffset":false,"isSlot":false,"src":"36825:9:23","valueSize":1},{"declaration":10731,"isOffset":false,"isSlot":false,"src":"37019:9:23","valueSize":1},{"declaration":10741,"isOffset":false,"isSlot":false,"src":"35408:7:23","valueSize":1},{"declaration":10741,"isOffset":false,"isSlot":false,"src":"35484:7:23","valueSize":1},{"declaration":10741,"isOffset":false,"isSlot":false,"src":"35573:7:23","valueSize":1},{"declaration":10741,"isOffset":false,"isSlot":false,"src":"35592:7:23","valueSize":1},{"declaration":10741,"isOffset":false,"isSlot":false,"src":"36983:7:23","valueSize":1},{"declaration":10741,"isOffset":false,"isSlot":false,"src":"37063:7:23","valueSize":1},{"declaration":10741,"isOffset":false,"isSlot":false,"src":"37119:7:23","valueSize":1},{"declaration":10735,"isOffset":false,"isSlot":false,"src":"36973:6:23","valueSize":1},{"declaration":10735,"isOffset":false,"isSlot":false,"src":"37049:6:23","valueSize":1},{"declaration":10735,"isOffset":false,"isSlot":false,"src":"37101:6:23","valueSize":1},{"declaration":10729,"isOffset":false,"isSlot":false,"src":"35544:7:23","valueSize":1},{"declaration":10729,"isOffset":false,"isSlot":false,"src":"36170:7:23","valueSize":1}],"id":10747,"nodeType":"InlineAssembly","src":"35334:1822:23"}]},"documentation":{"id":10727,"nodeType":"StructuredDocumentation","src":"34979:93:23","text":"@dev Returns a arrays of strings based on the `delimiter` inside of the `subject` string."},"id":10749,"implemented":true,"kind":"function","modifiers":[],"name":"split","nameLocation":"35086:5:23","nodeType":"FunctionDefinition","parameters":{"id":10732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10729,"mutability":"mutable","name":"subject","nameLocation":"35106:7:23","nodeType":"VariableDeclaration","scope":10749,"src":"35092:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10728,"name":"string","nodeType":"ElementaryTypeName","src":"35092:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10731,"mutability":"mutable","name":"delimiter","nameLocation":"35129:9:23","nodeType":"VariableDeclaration","scope":10749,"src":"35115:23:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10730,"name":"string","nodeType":"ElementaryTypeName","src":"35115:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35091:48:23"},"returnParameters":{"id":10736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10735,"mutability":"mutable","name":"result","nameLocation":"35203:6:23","nodeType":"VariableDeclaration","scope":10749,"src":"35187:22:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":10733,"name":"string","nodeType":"ElementaryTypeName","src":"35187:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":10734,"nodeType":"ArrayTypeName","src":"35187:8:23","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"35186:24:23"},"scope":10950,"src":"35077:2085:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10760,"nodeType":"Block","src":"37436:1242:23","statements":[{"AST":{"nativeSrc":"37498:1174:23","nodeType":"YulBlock","src":"37498:1174:23","statements":[{"nativeSrc":"37512:18:23","nodeType":"YulVariableDeclaration","src":"37512:18:23","value":{"arguments":[{"kind":"number","nativeSrc":"37525:4:23","nodeType":"YulLiteral","src":"37525:4:23","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"37521:3:23","nodeType":"YulIdentifier","src":"37521:3:23"},"nativeSrc":"37521:9:23","nodeType":"YulFunctionCall","src":"37521:9:23"},"variables":[{"name":"w","nativeSrc":"37516:1:23","nodeType":"YulTypedName","src":"37516:1:23","type":""}]},{"nativeSrc":"37543:21:23","nodeType":"YulAssignment","src":"37543:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"37559:4:23","nodeType":"YulLiteral","src":"37559:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37553:5:23","nodeType":"YulIdentifier","src":"37553:5:23"},"nativeSrc":"37553:11:23","nodeType":"YulFunctionCall","src":"37553:11:23"},"variableNames":[{"name":"result","nativeSrc":"37543:6:23","nodeType":"YulIdentifier","src":"37543:6:23"}]},{"nativeSrc":"37577:23:23","nodeType":"YulVariableDeclaration","src":"37577:23:23","value":{"arguments":[{"name":"a","nativeSrc":"37598:1:23","nodeType":"YulIdentifier","src":"37598:1:23"}],"functionName":{"name":"mload","nativeSrc":"37592:5:23","nodeType":"YulIdentifier","src":"37592:5:23"},"nativeSrc":"37592:8:23","nodeType":"YulFunctionCall","src":"37592:8:23"},"variables":[{"name":"aLength","nativeSrc":"37581:7:23","nodeType":"YulTypedName","src":"37581:7:23","type":""}]},{"body":{"nativeSrc":"37717:161:23","nodeType":"YulBlock","src":"37717:161:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"37746:6:23","nodeType":"YulIdentifier","src":"37746:6:23"},{"name":"o","nativeSrc":"37754:1:23","nodeType":"YulIdentifier","src":"37754:1:23"}],"functionName":{"name":"add","nativeSrc":"37742:3:23","nodeType":"YulIdentifier","src":"37742:3:23"},"nativeSrc":"37742:14:23","nodeType":"YulFunctionCall","src":"37742:14:23"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"37768:1:23","nodeType":"YulIdentifier","src":"37768:1:23"},{"name":"o","nativeSrc":"37771:1:23","nodeType":"YulIdentifier","src":"37771:1:23"}],"functionName":{"name":"add","nativeSrc":"37764:3:23","nodeType":"YulIdentifier","src":"37764:3:23"},"nativeSrc":"37764:9:23","nodeType":"YulFunctionCall","src":"37764:9:23"}],"functionName":{"name":"mload","nativeSrc":"37758:5:23","nodeType":"YulIdentifier","src":"37758:5:23"},"nativeSrc":"37758:16:23","nodeType":"YulFunctionCall","src":"37758:16:23"}],"functionName":{"name":"mstore","nativeSrc":"37735:6:23","nodeType":"YulIdentifier","src":"37735:6:23"},"nativeSrc":"37735:40:23","nodeType":"YulFunctionCall","src":"37735:40:23"},"nativeSrc":"37735:40:23","nodeType":"YulExpressionStatement","src":"37735:40:23"},{"nativeSrc":"37792:14:23","nodeType":"YulAssignment","src":"37792:14:23","value":{"arguments":[{"name":"o","nativeSrc":"37801:1:23","nodeType":"YulIdentifier","src":"37801:1:23"},{"name":"w","nativeSrc":"37804:1:23","nodeType":"YulIdentifier","src":"37804:1:23"}],"functionName":{"name":"add","nativeSrc":"37797:3:23","nodeType":"YulIdentifier","src":"37797:3:23"},"nativeSrc":"37797:9:23","nodeType":"YulFunctionCall","src":"37797:9:23"},"variableNames":[{"name":"o","nativeSrc":"37792:1:23","nodeType":"YulIdentifier","src":"37792:1:23"}]},{"body":{"nativeSrc":"37855:9:23","nodeType":"YulBlock","src":"37855:9:23","statements":[{"nativeSrc":"37857:5:23","nodeType":"YulBreak","src":"37857:5:23"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"37852:1:23","nodeType":"YulIdentifier","src":"37852:1:23"}],"functionName":{"name":"iszero","nativeSrc":"37845:6:23","nodeType":"YulIdentifier","src":"37845:6:23"},"nativeSrc":"37845:9:23","nodeType":"YulFunctionCall","src":"37845:9:23"},"nativeSrc":"37842:22:23","nodeType":"YulIf","src":"37842:22:23"}]},"condition":{"kind":"number","nativeSrc":"37712:1:23","nodeType":"YulLiteral","src":"37712:1:23","type":"","value":"1"},"nativeSrc":"37668:210:23","nodeType":"YulForLoop","post":{"nativeSrc":"37714:2:23","nodeType":"YulBlock","src":"37714:2:23","statements":[]},"pre":{"nativeSrc":"37672:39:23","nodeType":"YulBlock","src":"37672:39:23","statements":[{"nativeSrc":"37674:35:23","nodeType":"YulVariableDeclaration","src":"37674:35:23","value":{"arguments":[{"arguments":[{"name":"aLength","nativeSrc":"37691:7:23","nodeType":"YulIdentifier","src":"37691:7:23"},{"kind":"number","nativeSrc":"37700:4:23","nodeType":"YulLiteral","src":"37700:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37687:3:23","nodeType":"YulIdentifier","src":"37687:3:23"},"nativeSrc":"37687:18:23","nodeType":"YulFunctionCall","src":"37687:18:23"},{"name":"w","nativeSrc":"37707:1:23","nodeType":"YulIdentifier","src":"37707:1:23"}],"functionName":{"name":"and","nativeSrc":"37683:3:23","nodeType":"YulIdentifier","src":"37683:3:23"},"nativeSrc":"37683:26:23","nodeType":"YulFunctionCall","src":"37683:26:23"},"variables":[{"name":"o","nativeSrc":"37678:1:23","nodeType":"YulTypedName","src":"37678:1:23","type":""}]}]},"src":"37668:210:23"},{"nativeSrc":"37891:23:23","nodeType":"YulVariableDeclaration","src":"37891:23:23","value":{"arguments":[{"name":"b","nativeSrc":"37912:1:23","nodeType":"YulIdentifier","src":"37912:1:23"}],"functionName":{"name":"mload","nativeSrc":"37906:5:23","nodeType":"YulIdentifier","src":"37906:5:23"},"nativeSrc":"37906:8:23","nodeType":"YulFunctionCall","src":"37906:8:23"},"variables":[{"name":"bLength","nativeSrc":"37895:7:23","nodeType":"YulTypedName","src":"37895:7:23","type":""}]},{"nativeSrc":"37927:34:23","nodeType":"YulVariableDeclaration","src":"37927:34:23","value":{"arguments":[{"name":"result","nativeSrc":"37945:6:23","nodeType":"YulIdentifier","src":"37945:6:23"},{"name":"aLength","nativeSrc":"37953:7:23","nodeType":"YulIdentifier","src":"37953:7:23"}],"functionName":{"name":"add","nativeSrc":"37941:3:23","nodeType":"YulIdentifier","src":"37941:3:23"},"nativeSrc":"37941:20:23","nodeType":"YulFunctionCall","src":"37941:20:23"},"variables":[{"name":"output","nativeSrc":"37931:6:23","nodeType":"YulTypedName","src":"37931:6:23","type":""}]},{"body":{"nativeSrc":"38078:161:23","nodeType":"YulBlock","src":"38078:161:23","statements":[{"expression":{"arguments":[{"arguments":[{"name":"output","nativeSrc":"38107:6:23","nodeType":"YulIdentifier","src":"38107:6:23"},{"name":"o","nativeSrc":"38115:1:23","nodeType":"YulIdentifier","src":"38115:1:23"}],"functionName":{"name":"add","nativeSrc":"38103:3:23","nodeType":"YulIdentifier","src":"38103:3:23"},"nativeSrc":"38103:14:23","nodeType":"YulFunctionCall","src":"38103:14:23"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"38129:1:23","nodeType":"YulIdentifier","src":"38129:1:23"},{"name":"o","nativeSrc":"38132:1:23","nodeType":"YulIdentifier","src":"38132:1:23"}],"functionName":{"name":"add","nativeSrc":"38125:3:23","nodeType":"YulIdentifier","src":"38125:3:23"},"nativeSrc":"38125:9:23","nodeType":"YulFunctionCall","src":"38125:9:23"}],"functionName":{"name":"mload","nativeSrc":"38119:5:23","nodeType":"YulIdentifier","src":"38119:5:23"},"nativeSrc":"38119:16:23","nodeType":"YulFunctionCall","src":"38119:16:23"}],"functionName":{"name":"mstore","nativeSrc":"38096:6:23","nodeType":"YulIdentifier","src":"38096:6:23"},"nativeSrc":"38096:40:23","nodeType":"YulFunctionCall","src":"38096:40:23"},"nativeSrc":"38096:40:23","nodeType":"YulExpressionStatement","src":"38096:40:23"},{"nativeSrc":"38153:14:23","nodeType":"YulAssignment","src":"38153:14:23","value":{"arguments":[{"name":"o","nativeSrc":"38162:1:23","nodeType":"YulIdentifier","src":"38162:1:23"},{"name":"w","nativeSrc":"38165:1:23","nodeType":"YulIdentifier","src":"38165:1:23"}],"functionName":{"name":"add","nativeSrc":"38158:3:23","nodeType":"YulIdentifier","src":"38158:3:23"},"nativeSrc":"38158:9:23","nodeType":"YulFunctionCall","src":"38158:9:23"},"variableNames":[{"name":"o","nativeSrc":"38153:1:23","nodeType":"YulIdentifier","src":"38153:1:23"}]},{"body":{"nativeSrc":"38216:9:23","nodeType":"YulBlock","src":"38216:9:23","statements":[{"nativeSrc":"38218:5:23","nodeType":"YulBreak","src":"38218:5:23"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"38213:1:23","nodeType":"YulIdentifier","src":"38213:1:23"}],"functionName":{"name":"iszero","nativeSrc":"38206:6:23","nodeType":"YulIdentifier","src":"38206:6:23"},"nativeSrc":"38206:9:23","nodeType":"YulFunctionCall","src":"38206:9:23"},"nativeSrc":"38203:22:23","nodeType":"YulIf","src":"38203:22:23"}]},"condition":{"kind":"number","nativeSrc":"38073:1:23","nodeType":"YulLiteral","src":"38073:1:23","type":"","value":"1"},"nativeSrc":"38029:210:23","nodeType":"YulForLoop","post":{"nativeSrc":"38075:2:23","nodeType":"YulBlock","src":"38075:2:23","statements":[]},"pre":{"nativeSrc":"38033:39:23","nodeType":"YulBlock","src":"38033:39:23","statements":[{"nativeSrc":"38035:35:23","nodeType":"YulVariableDeclaration","src":"38035:35:23","value":{"arguments":[{"arguments":[{"name":"bLength","nativeSrc":"38052:7:23","nodeType":"YulIdentifier","src":"38052:7:23"},{"kind":"number","nativeSrc":"38061:4:23","nodeType":"YulLiteral","src":"38061:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38048:3:23","nodeType":"YulIdentifier","src":"38048:3:23"},"nativeSrc":"38048:18:23","nodeType":"YulFunctionCall","src":"38048:18:23"},{"name":"w","nativeSrc":"38068:1:23","nodeType":"YulIdentifier","src":"38068:1:23"}],"functionName":{"name":"and","nativeSrc":"38044:3:23","nodeType":"YulIdentifier","src":"38044:3:23"},"nativeSrc":"38044:26:23","nodeType":"YulFunctionCall","src":"38044:26:23"},"variables":[{"name":"o","nativeSrc":"38039:1:23","nodeType":"YulTypedName","src":"38039:1:23","type":""}]}]},"src":"38029:210:23"},{"nativeSrc":"38252:40:23","nodeType":"YulVariableDeclaration","src":"38252:40:23","value":{"arguments":[{"name":"aLength","nativeSrc":"38275:7:23","nodeType":"YulIdentifier","src":"38275:7:23"},{"name":"bLength","nativeSrc":"38284:7:23","nodeType":"YulIdentifier","src":"38284:7:23"}],"functionName":{"name":"add","nativeSrc":"38271:3:23","nodeType":"YulIdentifier","src":"38271:3:23"},"nativeSrc":"38271:21:23","nodeType":"YulFunctionCall","src":"38271:21:23"},"variables":[{"name":"totalLength","nativeSrc":"38256:11:23","nodeType":"YulTypedName","src":"38256:11:23","type":""}]},{"nativeSrc":"38305:47:23","nodeType":"YulVariableDeclaration","src":"38305:47:23","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"38325:6:23","nodeType":"YulIdentifier","src":"38325:6:23"},{"kind":"number","nativeSrc":"38333:4:23","nodeType":"YulLiteral","src":"38333:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38321:3:23","nodeType":"YulIdentifier","src":"38321:3:23"},"nativeSrc":"38321:17:23","nodeType":"YulFunctionCall","src":"38321:17:23"},{"name":"totalLength","nativeSrc":"38340:11:23","nodeType":"YulIdentifier","src":"38340:11:23"}],"functionName":{"name":"add","nativeSrc":"38317:3:23","nodeType":"YulIdentifier","src":"38317:3:23"},"nativeSrc":"38317:35:23","nodeType":"YulFunctionCall","src":"38317:35:23"},"variables":[{"name":"last","nativeSrc":"38309:4:23","nodeType":"YulTypedName","src":"38309:4:23","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"38422:4:23","nodeType":"YulIdentifier","src":"38422:4:23"},{"kind":"number","nativeSrc":"38428:1:23","nodeType":"YulLiteral","src":"38428:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"38415:6:23","nodeType":"YulIdentifier","src":"38415:6:23"},"nativeSrc":"38415:15:23","nodeType":"YulFunctionCall","src":"38415:15:23"},"nativeSrc":"38415:15:23","nodeType":"YulExpressionStatement","src":"38415:15:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"38484:6:23","nodeType":"YulIdentifier","src":"38484:6:23"},{"name":"totalLength","nativeSrc":"38492:11:23","nodeType":"YulIdentifier","src":"38492:11:23"}],"functionName":{"name":"mstore","nativeSrc":"38477:6:23","nodeType":"YulIdentifier","src":"38477:6:23"},"nativeSrc":"38477:27:23","nodeType":"YulFunctionCall","src":"38477:27:23"},"nativeSrc":"38477:27:23","nodeType":"YulExpressionStatement","src":"38477:27:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38632:4:23","nodeType":"YulLiteral","src":"38632:4:23","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"last","nativeSrc":"38646:4:23","nodeType":"YulIdentifier","src":"38646:4:23"},{"kind":"number","nativeSrc":"38652:4:23","nodeType":"YulLiteral","src":"38652:4:23","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"38642:3:23","nodeType":"YulIdentifier","src":"38642:3:23"},"nativeSrc":"38642:15:23","nodeType":"YulFunctionCall","src":"38642:15:23"},{"name":"w","nativeSrc":"38659:1:23","nodeType":"YulIdentifier","src":"38659:1:23"}],"functionName":{"name":"and","nativeSrc":"38638:3:23","nodeType":"YulIdentifier","src":"38638:3:23"},"nativeSrc":"38638:23:23","nodeType":"YulFunctionCall","src":"38638:23:23"}],"functionName":{"name":"mstore","nativeSrc":"38625:6:23","nodeType":"YulIdentifier","src":"38625:6:23"},"nativeSrc":"38625:37:23","nodeType":"YulFunctionCall","src":"38625:37:23"},"nativeSrc":"38625:37:23","nodeType":"YulExpressionStatement","src":"38625:37:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10752,"isOffset":false,"isSlot":false,"src":"37598:1:23","valueSize":1},{"declaration":10752,"isOffset":false,"isSlot":false,"src":"37768:1:23","valueSize":1},{"declaration":10754,"isOffset":false,"isSlot":false,"src":"37912:1:23","valueSize":1},{"declaration":10754,"isOffset":false,"isSlot":false,"src":"38129:1:23","valueSize":1},{"declaration":10757,"isOffset":false,"isSlot":false,"src":"37543:6:23","valueSize":1},{"declaration":10757,"isOffset":false,"isSlot":false,"src":"37746:6:23","valueSize":1},{"declaration":10757,"isOffset":false,"isSlot":false,"src":"37945:6:23","valueSize":1},{"declaration":10757,"isOffset":false,"isSlot":false,"src":"38325:6:23","valueSize":1},{"declaration":10757,"isOffset":false,"isSlot":false,"src":"38484:6:23","valueSize":1}],"id":10759,"nodeType":"InlineAssembly","src":"37489:1183:23"}]},"documentation":{"id":10750,"nodeType":"StructuredDocumentation","src":"37168:140:23","text":"@dev Returns a concatenated string of `a` and `b`.\n Cheaper than `string.concat()` and does not de-align the free memory pointer."},"id":10761,"implemented":true,"kind":"function","modifiers":[],"name":"concat","nameLocation":"37322:6:23","nodeType":"FunctionDefinition","parameters":{"id":10755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10752,"mutability":"mutable","name":"a","nameLocation":"37343:1:23","nodeType":"VariableDeclaration","scope":10761,"src":"37329:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10751,"name":"string","nodeType":"ElementaryTypeName","src":"37329:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10754,"mutability":"mutable","name":"b","nameLocation":"37360:1:23","nodeType":"VariableDeclaration","scope":10761,"src":"37346:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10753,"name":"string","nodeType":"ElementaryTypeName","src":"37346:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37328:34:23"},"returnParameters":{"id":10758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10757,"mutability":"mutable","name":"result","nameLocation":"37424:6:23","nodeType":"VariableDeclaration","scope":10761,"src":"37410:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10756,"name":"string","nodeType":"ElementaryTypeName","src":"37410:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37409:22:23"},"scope":10950,"src":"37313:1365:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10772,"nodeType":"Block","src":"38962:933:23","statements":[{"AST":{"nativeSrc":"39024:865:23","nodeType":"YulBlock","src":"39024:865:23","statements":[{"nativeSrc":"39038:28:23","nodeType":"YulVariableDeclaration","src":"39038:28:23","value":{"arguments":[{"name":"subject","nativeSrc":"39058:7:23","nodeType":"YulIdentifier","src":"39058:7:23"}],"functionName":{"name":"mload","nativeSrc":"39052:5:23","nodeType":"YulIdentifier","src":"39052:5:23"},"nativeSrc":"39052:14:23","nodeType":"YulFunctionCall","src":"39052:14:23"},"variables":[{"name":"length","nativeSrc":"39042:6:23","nodeType":"YulTypedName","src":"39042:6:23","type":""}]},{"body":{"nativeSrc":"39089:790:23","nodeType":"YulBlock","src":"39089:790:23","statements":[{"nativeSrc":"39107:32:23","nodeType":"YulAssignment","src":"39107:32:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39127:4:23","nodeType":"YulLiteral","src":"39127:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"39121:5:23","nodeType":"YulIdentifier","src":"39121:5:23"},"nativeSrc":"39121:11:23","nodeType":"YulFunctionCall","src":"39121:11:23"},{"kind":"number","nativeSrc":"39134:4:23","nodeType":"YulLiteral","src":"39134:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39117:3:23","nodeType":"YulIdentifier","src":"39117:3:23"},"nativeSrc":"39117:22:23","nodeType":"YulFunctionCall","src":"39117:22:23"},"variableNames":[{"name":"result","nativeSrc":"39107:6:23","nodeType":"YulIdentifier","src":"39107:6:23"}]},{"nativeSrc":"39156:26:23","nodeType":"YulAssignment","src":"39156:26:23","value":{"arguments":[{"name":"subject","nativeSrc":"39171:7:23","nodeType":"YulIdentifier","src":"39171:7:23"},{"kind":"number","nativeSrc":"39180:1:23","nodeType":"YulLiteral","src":"39180:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"39167:3:23","nodeType":"YulIdentifier","src":"39167:3:23"},"nativeSrc":"39167:15:23","nodeType":"YulFunctionCall","src":"39167:15:23"},"variableNames":[{"name":"subject","nativeSrc":"39156:7:23","nodeType":"YulIdentifier","src":"39156:7:23"}]},{"nativeSrc":"39199:53:23","nodeType":"YulVariableDeclaration","src":"39199:53:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"39220:2:23","nodeType":"YulLiteral","src":"39220:2:23","type":"","value":"70"},{"arguments":[{"kind":"number","nativeSrc":"39228:1:23","nodeType":"YulLiteral","src":"39228:1:23","type":"","value":"5"},{"name":"toUpper","nativeSrc":"39231:7:23","nodeType":"YulIdentifier","src":"39231:7:23"}],"functionName":{"name":"shl","nativeSrc":"39224:3:23","nodeType":"YulIdentifier","src":"39224:3:23"},"nativeSrc":"39224:15:23","nodeType":"YulFunctionCall","src":"39224:15:23"}],"functionName":{"name":"add","nativeSrc":"39216:3:23","nodeType":"YulIdentifier","src":"39216:3:23"},"nativeSrc":"39216:24:23","nodeType":"YulFunctionCall","src":"39216:24:23"},{"kind":"number","nativeSrc":"39242:9:23","nodeType":"YulLiteral","src":"39242:9:23","type":"","value":"0x3ffffff"}],"functionName":{"name":"shl","nativeSrc":"39212:3:23","nodeType":"YulIdentifier","src":"39212:3:23"},"nativeSrc":"39212:40:23","nodeType":"YulFunctionCall","src":"39212:40:23"},"variables":[{"name":"flags","nativeSrc":"39203:5:23","nodeType":"YulTypedName","src":"39203:5:23","type":""}]},{"nativeSrc":"39269:15:23","nodeType":"YulVariableDeclaration","src":"39269:15:23","value":{"arguments":[{"kind":"number","nativeSrc":"39282:1:23","nodeType":"YulLiteral","src":"39282:1:23","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"39278:3:23","nodeType":"YulIdentifier","src":"39278:3:23"},"nativeSrc":"39278:6:23","nodeType":"YulFunctionCall","src":"39278:6:23"},"variables":[{"name":"w","nativeSrc":"39273:1:23","nodeType":"YulTypedName","src":"39273:1:23","type":""}]},{"body":{"nativeSrc":"39330:238:23","nodeType":"YulBlock","src":"39330:238:23","statements":[{"nativeSrc":"39352:14:23","nodeType":"YulAssignment","src":"39352:14:23","value":{"arguments":[{"name":"o","nativeSrc":"39361:1:23","nodeType":"YulIdentifier","src":"39361:1:23"},{"name":"w","nativeSrc":"39364:1:23","nodeType":"YulIdentifier","src":"39364:1:23"}],"functionName":{"name":"add","nativeSrc":"39357:3:23","nodeType":"YulIdentifier","src":"39357:3:23"},"nativeSrc":"39357:9:23","nodeType":"YulFunctionCall","src":"39357:9:23"},"variableNames":[{"name":"o","nativeSrc":"39352:1:23","nodeType":"YulIdentifier","src":"39352:1:23"}]},{"nativeSrc":"39387:42:23","nodeType":"YulVariableDeclaration","src":"39387:42:23","value":{"arguments":[{"kind":"number","nativeSrc":"39400:4:23","nodeType":"YulLiteral","src":"39400:4:23","type":"","value":"0xff"},{"arguments":[{"arguments":[{"name":"subject","nativeSrc":"39416:7:23","nodeType":"YulIdentifier","src":"39416:7:23"},{"name":"o","nativeSrc":"39425:1:23","nodeType":"YulIdentifier","src":"39425:1:23"}],"functionName":{"name":"add","nativeSrc":"39412:3:23","nodeType":"YulIdentifier","src":"39412:3:23"},"nativeSrc":"39412:15:23","nodeType":"YulFunctionCall","src":"39412:15:23"}],"functionName":{"name":"mload","nativeSrc":"39406:5:23","nodeType":"YulIdentifier","src":"39406:5:23"},"nativeSrc":"39406:22:23","nodeType":"YulFunctionCall","src":"39406:22:23"}],"functionName":{"name":"and","nativeSrc":"39396:3:23","nodeType":"YulIdentifier","src":"39396:3:23"},"nativeSrc":"39396:33:23","nodeType":"YulFunctionCall","src":"39396:33:23"},"variables":[{"name":"b","nativeSrc":"39391:1:23","nodeType":"YulTypedName","src":"39391:1:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"39462:6:23","nodeType":"YulIdentifier","src":"39462:6:23"},{"name":"o","nativeSrc":"39470:1:23","nodeType":"YulIdentifier","src":"39470:1:23"}],"functionName":{"name":"add","nativeSrc":"39458:3:23","nodeType":"YulIdentifier","src":"39458:3:23"},"nativeSrc":"39458:14:23","nodeType":"YulFunctionCall","src":"39458:14:23"},{"arguments":[{"name":"b","nativeSrc":"39478:1:23","nodeType":"YulIdentifier","src":"39478:1:23"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"39489:1:23","nodeType":"YulIdentifier","src":"39489:1:23"},{"name":"flags","nativeSrc":"39492:5:23","nodeType":"YulIdentifier","src":"39492:5:23"}],"functionName":{"name":"shr","nativeSrc":"39485:3:23","nodeType":"YulIdentifier","src":"39485:3:23"},"nativeSrc":"39485:13:23","nodeType":"YulFunctionCall","src":"39485:13:23"},{"kind":"number","nativeSrc":"39500:4:23","nodeType":"YulLiteral","src":"39500:4:23","type":"","value":"0x20"}],"functionName":{"name":"and","nativeSrc":"39481:3:23","nodeType":"YulIdentifier","src":"39481:3:23"},"nativeSrc":"39481:24:23","nodeType":"YulFunctionCall","src":"39481:24:23"}],"functionName":{"name":"xor","nativeSrc":"39474:3:23","nodeType":"YulIdentifier","src":"39474:3:23"},"nativeSrc":"39474:32:23","nodeType":"YulFunctionCall","src":"39474:32:23"}],"functionName":{"name":"mstore8","nativeSrc":"39450:7:23","nodeType":"YulIdentifier","src":"39450:7:23"},"nativeSrc":"39450:57:23","nodeType":"YulFunctionCall","src":"39450:57:23"},"nativeSrc":"39450:57:23","nodeType":"YulExpressionStatement","src":"39450:57:23"},{"body":{"nativeSrc":"39541:9:23","nodeType":"YulBlock","src":"39541:9:23","statements":[{"nativeSrc":"39543:5:23","nodeType":"YulBreak","src":"39543:5:23"}]},"condition":{"arguments":[{"name":"o","nativeSrc":"39538:1:23","nodeType":"YulIdentifier","src":"39538:1:23"}],"functionName":{"name":"iszero","nativeSrc":"39531:6:23","nodeType":"YulIdentifier","src":"39531:6:23"},"nativeSrc":"39531:9:23","nodeType":"YulFunctionCall","src":"39531:9:23"},"nativeSrc":"39528:22:23","nodeType":"YulIf","src":"39528:22:23"}]},"condition":{"kind":"number","nativeSrc":"39325:1:23","nodeType":"YulLiteral","src":"39325:1:23","type":"","value":"1"},"nativeSrc":"39301:267:23","nodeType":"YulForLoop","post":{"nativeSrc":"39327:2:23","nodeType":"YulBlock","src":"39327:2:23","statements":[]},"pre":{"nativeSrc":"39305:19:23","nodeType":"YulBlock","src":"39305:19:23","statements":[{"nativeSrc":"39307:15:23","nodeType":"YulVariableDeclaration","src":"39307:15:23","value":{"name":"length","nativeSrc":"39316:6:23","nodeType":"YulIdentifier","src":"39316:6:23"},"variables":[{"name":"o","nativeSrc":"39311:1:23","nodeType":"YulTypedName","src":"39311:1:23","type":""}]}]},"src":"39301:267:23"},{"nativeSrc":"39585:21:23","nodeType":"YulAssignment","src":"39585:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"39601:4:23","nodeType":"YulLiteral","src":"39601:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"39595:5:23","nodeType":"YulIdentifier","src":"39595:5:23"},"nativeSrc":"39595:11:23","nodeType":"YulFunctionCall","src":"39595:11:23"},"variableNames":[{"name":"result","nativeSrc":"39585:6:23","nodeType":"YulIdentifier","src":"39585:6:23"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"39630:6:23","nodeType":"YulIdentifier","src":"39630:6:23"},{"name":"length","nativeSrc":"39638:6:23","nodeType":"YulIdentifier","src":"39638:6:23"}],"functionName":{"name":"mstore","nativeSrc":"39623:6:23","nodeType":"YulIdentifier","src":"39623:6:23"},"nativeSrc":"39623:22:23","nodeType":"YulFunctionCall","src":"39623:22:23"},"nativeSrc":"39623:22:23","nodeType":"YulExpressionStatement","src":"39623:22:23"},{"nativeSrc":"39683:42:23","nodeType":"YulVariableDeclaration","src":"39683:42:23","value":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"39703:6:23","nodeType":"YulIdentifier","src":"39703:6:23"},{"kind":"number","nativeSrc":"39711:4:23","nodeType":"YulLiteral","src":"39711:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39699:3:23","nodeType":"YulIdentifier","src":"39699:3:23"},"nativeSrc":"39699:17:23","nodeType":"YulFunctionCall","src":"39699:17:23"},{"name":"length","nativeSrc":"39718:6:23","nodeType":"YulIdentifier","src":"39718:6:23"}],"functionName":{"name":"add","nativeSrc":"39695:3:23","nodeType":"YulIdentifier","src":"39695:3:23"},"nativeSrc":"39695:30:23","nodeType":"YulFunctionCall","src":"39695:30:23"},"variables":[{"name":"last","nativeSrc":"39687:4:23","nodeType":"YulTypedName","src":"39687:4:23","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"39749:4:23","nodeType":"YulIdentifier","src":"39749:4:23"},{"kind":"number","nativeSrc":"39755:1:23","nodeType":"YulLiteral","src":"39755:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"39742:6:23","nodeType":"YulIdentifier","src":"39742:6:23"},"nativeSrc":"39742:15:23","nodeType":"YulFunctionCall","src":"39742:15:23"},"nativeSrc":"39742:15:23","nodeType":"YulExpressionStatement","src":"39742:15:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39819:4:23","nodeType":"YulLiteral","src":"39819:4:23","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"39829:4:23","nodeType":"YulIdentifier","src":"39829:4:23"},{"kind":"number","nativeSrc":"39835:4:23","nodeType":"YulLiteral","src":"39835:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39825:3:23","nodeType":"YulIdentifier","src":"39825:3:23"},"nativeSrc":"39825:15:23","nodeType":"YulFunctionCall","src":"39825:15:23"}],"functionName":{"name":"mstore","nativeSrc":"39812:6:23","nodeType":"YulIdentifier","src":"39812:6:23"},"nativeSrc":"39812:29:23","nodeType":"YulFunctionCall","src":"39812:29:23"},"nativeSrc":"39812:29:23","nodeType":"YulExpressionStatement","src":"39812:29:23"}]},"condition":{"name":"length","nativeSrc":"39082:6:23","nodeType":"YulIdentifier","src":"39082:6:23"},"nativeSrc":"39079:800:23","nodeType":"YulIf","src":"39079:800:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10769,"isOffset":false,"isSlot":false,"src":"39107:6:23","valueSize":1},{"declaration":10769,"isOffset":false,"isSlot":false,"src":"39462:6:23","valueSize":1},{"declaration":10769,"isOffset":false,"isSlot":false,"src":"39585:6:23","valueSize":1},{"declaration":10769,"isOffset":false,"isSlot":false,"src":"39630:6:23","valueSize":1},{"declaration":10769,"isOffset":false,"isSlot":false,"src":"39703:6:23","valueSize":1},{"declaration":10764,"isOffset":false,"isSlot":false,"src":"39058:7:23","valueSize":1},{"declaration":10764,"isOffset":false,"isSlot":false,"src":"39156:7:23","valueSize":1},{"declaration":10764,"isOffset":false,"isSlot":false,"src":"39171:7:23","valueSize":1},{"declaration":10764,"isOffset":false,"isSlot":false,"src":"39416:7:23","valueSize":1},{"declaration":10766,"isOffset":false,"isSlot":false,"src":"39231:7:23","valueSize":1}],"id":10771,"nodeType":"InlineAssembly","src":"39015:874:23"}]},"documentation":{"id":10762,"nodeType":"StructuredDocumentation","src":"38684:147:23","text":"@dev Returns a copy of the string in either lowercase or UPPERCASE.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10773,"implemented":true,"kind":"function","modifiers":[],"name":"toCase","nameLocation":"38845:6:23","nodeType":"FunctionDefinition","parameters":{"id":10767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10764,"mutability":"mutable","name":"subject","nameLocation":"38866:7:23","nodeType":"VariableDeclaration","scope":10773,"src":"38852:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10763,"name":"string","nodeType":"ElementaryTypeName","src":"38852:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10766,"mutability":"mutable","name":"toUpper","nameLocation":"38880:7:23","nodeType":"VariableDeclaration","scope":10773,"src":"38875:12:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10765,"name":"bool","nodeType":"ElementaryTypeName","src":"38875:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38851:37:23"},"returnParameters":{"id":10770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10769,"mutability":"mutable","name":"result","nameLocation":"38950:6:23","nodeType":"VariableDeclaration","scope":10773,"src":"38936:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10768,"name":"string","nodeType":"ElementaryTypeName","src":"38936:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38935:22:23"},"scope":10950,"src":"38836:1059:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10782,"nodeType":"Block","src":"40109:377:23","statements":[{"AST":{"nativeSrc":"40171:309:23","nodeType":"YulBlock","src":"40171:309:23","statements":[{"nativeSrc":"40185:21:23","nodeType":"YulAssignment","src":"40185:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"40201:4:23","nodeType":"YulLiteral","src":"40201:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"40195:5:23","nodeType":"YulIdentifier","src":"40195:5:23"},"nativeSrc":"40195:11:23","nodeType":"YulFunctionCall","src":"40195:11:23"},"variableNames":[{"name":"result","nativeSrc":"40185:6:23","nodeType":"YulIdentifier","src":"40185:6:23"}]},{"nativeSrc":"40219:10:23","nodeType":"YulVariableDeclaration","src":"40219:10:23","value":{"kind":"number","nativeSrc":"40228:1:23","nodeType":"YulLiteral","src":"40228:1:23","type":"","value":"0"},"variables":[{"name":"n","nativeSrc":"40223:1:23","nodeType":"YulTypedName","src":"40223:1:23","type":""}]},{"body":{"nativeSrc":"40279:2:23","nodeType":"YulBlock","src":"40279:2:23","statements":[]},"condition":{"arguments":[{"name":"n","nativeSrc":"40254:1:23","nodeType":"YulIdentifier","src":"40254:1:23"},{"name":"s","nativeSrc":"40257:1:23","nodeType":"YulIdentifier","src":"40257:1:23"}],"functionName":{"name":"byte","nativeSrc":"40249:4:23","nodeType":"YulIdentifier","src":"40249:4:23"},"nativeSrc":"40249:10:23","nodeType":"YulFunctionCall","src":"40249:10:23"},"nativeSrc":"40242:39:23","nodeType":"YulForLoop","post":{"nativeSrc":"40260:18:23","nodeType":"YulBlock","src":"40260:18:23","statements":[{"nativeSrc":"40262:14:23","nodeType":"YulAssignment","src":"40262:14:23","value":{"arguments":[{"name":"n","nativeSrc":"40271:1:23","nodeType":"YulIdentifier","src":"40271:1:23"},{"kind":"number","nativeSrc":"40274:1:23","nodeType":"YulLiteral","src":"40274:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"40267:3:23","nodeType":"YulIdentifier","src":"40267:3:23"},"nativeSrc":"40267:9:23","nodeType":"YulFunctionCall","src":"40267:9:23"},"variableNames":[{"name":"n","nativeSrc":"40262:1:23","nodeType":"YulIdentifier","src":"40262:1:23"}]}]},"pre":{"nativeSrc":"40246:2:23","nodeType":"YulBlock","src":"40246:2:23","statements":[]},"src":"40242:39:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"40319:6:23","nodeType":"YulIdentifier","src":"40319:6:23"},{"name":"n","nativeSrc":"40327:1:23","nodeType":"YulIdentifier","src":"40327:1:23"}],"functionName":{"name":"mstore","nativeSrc":"40312:6:23","nodeType":"YulIdentifier","src":"40312:6:23"},"nativeSrc":"40312:17:23","nodeType":"YulFunctionCall","src":"40312:17:23"},"nativeSrc":"40312:17:23","nodeType":"YulExpressionStatement","src":"40312:17:23"},{"nativeSrc":"40342:26:23","nodeType":"YulVariableDeclaration","src":"40342:26:23","value":{"arguments":[{"name":"result","nativeSrc":"40355:6:23","nodeType":"YulIdentifier","src":"40355:6:23"},{"kind":"number","nativeSrc":"40363:4:23","nodeType":"YulLiteral","src":"40363:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"40351:3:23","nodeType":"YulIdentifier","src":"40351:3:23"},"nativeSrc":"40351:17:23","nodeType":"YulFunctionCall","src":"40351:17:23"},"variables":[{"name":"o","nativeSrc":"40346:1:23","nodeType":"YulTypedName","src":"40346:1:23","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"40388:1:23","nodeType":"YulIdentifier","src":"40388:1:23"},{"name":"s","nativeSrc":"40391:1:23","nodeType":"YulIdentifier","src":"40391:1:23"}],"functionName":{"name":"mstore","nativeSrc":"40381:6:23","nodeType":"YulIdentifier","src":"40381:6:23"},"nativeSrc":"40381:12:23","nodeType":"YulFunctionCall","src":"40381:12:23"},"nativeSrc":"40381:12:23","nodeType":"YulExpressionStatement","src":"40381:12:23"},{"expression":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"40417:1:23","nodeType":"YulIdentifier","src":"40417:1:23"},{"name":"n","nativeSrc":"40420:1:23","nodeType":"YulIdentifier","src":"40420:1:23"}],"functionName":{"name":"add","nativeSrc":"40413:3:23","nodeType":"YulIdentifier","src":"40413:3:23"},"nativeSrc":"40413:9:23","nodeType":"YulFunctionCall","src":"40413:9:23"},{"kind":"number","nativeSrc":"40424:1:23","nodeType":"YulLiteral","src":"40424:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"40406:6:23","nodeType":"YulIdentifier","src":"40406:6:23"},"nativeSrc":"40406:20:23","nodeType":"YulFunctionCall","src":"40406:20:23"},"nativeSrc":"40406:20:23","nodeType":"YulExpressionStatement","src":"40406:20:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40446:4:23","nodeType":"YulLiteral","src":"40446:4:23","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"40456:6:23","nodeType":"YulIdentifier","src":"40456:6:23"},{"kind":"number","nativeSrc":"40464:4:23","nodeType":"YulLiteral","src":"40464:4:23","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"40452:3:23","nodeType":"YulIdentifier","src":"40452:3:23"},"nativeSrc":"40452:17:23","nodeType":"YulFunctionCall","src":"40452:17:23"}],"functionName":{"name":"mstore","nativeSrc":"40439:6:23","nodeType":"YulIdentifier","src":"40439:6:23"},"nativeSrc":"40439:31:23","nodeType":"YulFunctionCall","src":"40439:31:23"},"nativeSrc":"40439:31:23","nodeType":"YulExpressionStatement","src":"40439:31:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10779,"isOffset":false,"isSlot":false,"src":"40185:6:23","valueSize":1},{"declaration":10779,"isOffset":false,"isSlot":false,"src":"40319:6:23","valueSize":1},{"declaration":10779,"isOffset":false,"isSlot":false,"src":"40355:6:23","valueSize":1},{"declaration":10779,"isOffset":false,"isSlot":false,"src":"40456:6:23","valueSize":1},{"declaration":10776,"isOffset":false,"isSlot":false,"src":"40257:1:23","valueSize":1},{"declaration":10776,"isOffset":false,"isSlot":false,"src":"40391:1:23","valueSize":1}],"id":10781,"nodeType":"InlineAssembly","src":"40162:318:23"}]},"documentation":{"id":10774,"nodeType":"StructuredDocumentation","src":"39901:122:23","text":"@dev Returns a string from a small bytes32 string.\n `s` must be null-terminated, or behavior will be undefined."},"id":10783,"implemented":true,"kind":"function","modifiers":[],"name":"fromSmallString","nameLocation":"40037:15:23","nodeType":"FunctionDefinition","parameters":{"id":10777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10776,"mutability":"mutable","name":"s","nameLocation":"40061:1:23","nodeType":"VariableDeclaration","scope":10783,"src":"40053:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40053:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40052:11:23"},"returnParameters":{"id":10780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10779,"mutability":"mutable","name":"result","nameLocation":"40101:6:23","nodeType":"VariableDeclaration","scope":10783,"src":"40087:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10778,"name":"string","nodeType":"ElementaryTypeName","src":"40087:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40086:22:23"},"scope":10950,"src":"40028:458:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10792,"nodeType":"Block","src":"40662:259:23","statements":[{"AST":{"nativeSrc":"40724:191:23","nodeType":"YulBlock","src":"40724:191:23","statements":[{"body":{"nativeSrc":"40790:2:23","nodeType":"YulBlock","src":"40790:2:23","statements":[]},"condition":{"arguments":[{"name":"result","nativeSrc":"40750:6:23","nodeType":"YulIdentifier","src":"40750:6:23"},{"name":"s","nativeSrc":"40758:1:23","nodeType":"YulIdentifier","src":"40758:1:23"}],"functionName":{"name":"byte","nativeSrc":"40745:4:23","nodeType":"YulIdentifier","src":"40745:4:23"},"nativeSrc":"40745:15:23","nodeType":"YulFunctionCall","src":"40745:15:23"},"nativeSrc":"40738:54:23","nodeType":"YulForLoop","post":{"nativeSrc":"40761:28:23","nodeType":"YulBlock","src":"40761:28:23","statements":[{"nativeSrc":"40763:24:23","nodeType":"YulAssignment","src":"40763:24:23","value":{"arguments":[{"name":"result","nativeSrc":"40777:6:23","nodeType":"YulIdentifier","src":"40777:6:23"},{"kind":"number","nativeSrc":"40785:1:23","nodeType":"YulLiteral","src":"40785:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"40773:3:23","nodeType":"YulIdentifier","src":"40773:3:23"},"nativeSrc":"40773:14:23","nodeType":"YulFunctionCall","src":"40773:14:23"},"variableNames":[{"name":"result","nativeSrc":"40763:6:23","nodeType":"YulIdentifier","src":"40763:6:23"}]}]},"pre":{"nativeSrc":"40742:2:23","nodeType":"YulBlock","src":"40742:2:23","statements":[]},"src":"40738:54:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40830:4:23","nodeType":"YulLiteral","src":"40830:4:23","type":"","value":"0x00"},{"name":"s","nativeSrc":"40836:1:23","nodeType":"YulIdentifier","src":"40836:1:23"}],"functionName":{"name":"mstore","nativeSrc":"40823:6:23","nodeType":"YulIdentifier","src":"40823:6:23"},"nativeSrc":"40823:15:23","nodeType":"YulFunctionCall","src":"40823:15:23"},"nativeSrc":"40823:15:23","nodeType":"YulExpressionStatement","src":"40823:15:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"40858:6:23","nodeType":"YulIdentifier","src":"40858:6:23"},{"kind":"number","nativeSrc":"40866:4:23","nodeType":"YulLiteral","src":"40866:4:23","type":"","value":"0x00"}],"functionName":{"name":"mstore","nativeSrc":"40851:6:23","nodeType":"YulIdentifier","src":"40851:6:23"},"nativeSrc":"40851:20:23","nodeType":"YulFunctionCall","src":"40851:20:23"},"nativeSrc":"40851:20:23","nodeType":"YulExpressionStatement","src":"40851:20:23"},{"nativeSrc":"40884:21:23","nodeType":"YulAssignment","src":"40884:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"40900:4:23","nodeType":"YulLiteral","src":"40900:4:23","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"40894:5:23","nodeType":"YulIdentifier","src":"40894:5:23"},"nativeSrc":"40894:11:23","nodeType":"YulFunctionCall","src":"40894:11:23"},"variableNames":[{"name":"result","nativeSrc":"40884:6:23","nodeType":"YulIdentifier","src":"40884:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10789,"isOffset":false,"isSlot":false,"src":"40750:6:23","valueSize":1},{"declaration":10789,"isOffset":false,"isSlot":false,"src":"40763:6:23","valueSize":1},{"declaration":10789,"isOffset":false,"isSlot":false,"src":"40777:6:23","valueSize":1},{"declaration":10789,"isOffset":false,"isSlot":false,"src":"40858:6:23","valueSize":1},{"declaration":10789,"isOffset":false,"isSlot":false,"src":"40884:6:23","valueSize":1},{"declaration":10786,"isOffset":false,"isSlot":false,"src":"40758:1:23","valueSize":1},{"declaration":10786,"isOffset":false,"isSlot":false,"src":"40836:1:23","valueSize":1}],"id":10791,"nodeType":"InlineAssembly","src":"40715:200:23"}]},"documentation":{"id":10784,"nodeType":"StructuredDocumentation","src":"40492:85:23","text":"@dev Returns the small string, with all bytes after the first null byte zeroized."},"id":10793,"implemented":true,"kind":"function","modifiers":[],"name":"normalizeSmallString","nameLocation":"40591:20:23","nodeType":"FunctionDefinition","parameters":{"id":10787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10786,"mutability":"mutable","name":"s","nameLocation":"40620:1:23","nodeType":"VariableDeclaration","scope":10793,"src":"40612:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40612:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40611:11:23"},"returnParameters":{"id":10790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10789,"mutability":"mutable","name":"result","nameLocation":"40654:6:23","nodeType":"VariableDeclaration","scope":10793,"src":"40646:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40646:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40645:16:23"},"scope":10950,"src":"40582:339:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10802,"nodeType":"Block","src":"41084:343:23","statements":[{"AST":{"nativeSrc":"41146:275:23","nodeType":"YulBlock","src":"41146:275:23","statements":[{"nativeSrc":"41160:18:23","nodeType":"YulAssignment","src":"41160:18:23","value":{"arguments":[{"name":"s","nativeSrc":"41176:1:23","nodeType":"YulIdentifier","src":"41176:1:23"}],"functionName":{"name":"mload","nativeSrc":"41170:5:23","nodeType":"YulIdentifier","src":"41170:5:23"},"nativeSrc":"41170:8:23","nodeType":"YulFunctionCall","src":"41170:8:23"},"variableNames":[{"name":"result","nativeSrc":"41160:6:23","nodeType":"YulIdentifier","src":"41160:6:23"}]},{"body":{"nativeSrc":"41217:120:23","nodeType":"YulBlock","src":"41217:120:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41242:4:23","nodeType":"YulLiteral","src":"41242:4:23","type":"","value":"0x00"},{"kind":"number","nativeSrc":"41248:10:23","nodeType":"YulLiteral","src":"41248:10:23","type":"","value":"0xec92f9a3"}],"functionName":{"name":"mstore","nativeSrc":"41235:6:23","nodeType":"YulIdentifier","src":"41235:6:23"},"nativeSrc":"41235:24:23","nodeType":"YulFunctionCall","src":"41235:24:23"},"nativeSrc":"41235:24:23","nodeType":"YulExpressionStatement","src":"41235:24:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41312:4:23","nodeType":"YulLiteral","src":"41312:4:23","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"41318:4:23","nodeType":"YulLiteral","src":"41318:4:23","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"41305:6:23","nodeType":"YulIdentifier","src":"41305:6:23"},"nativeSrc":"41305:18:23","nodeType":"YulFunctionCall","src":"41305:18:23"},"nativeSrc":"41305:18:23","nodeType":"YulExpressionStatement","src":"41305:18:23"}]},"condition":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"41204:6:23","nodeType":"YulIdentifier","src":"41204:6:23"},{"kind":"number","nativeSrc":"41212:2:23","nodeType":"YulLiteral","src":"41212:2:23","type":"","value":"33"}],"functionName":{"name":"lt","nativeSrc":"41201:2:23","nodeType":"YulIdentifier","src":"41201:2:23"},"nativeSrc":"41201:14:23","nodeType":"YulFunctionCall","src":"41201:14:23"}],"functionName":{"name":"iszero","nativeSrc":"41194:6:23","nodeType":"YulIdentifier","src":"41194:6:23"},"nativeSrc":"41194:22:23","nodeType":"YulFunctionCall","src":"41194:22:23"},"nativeSrc":"41191:146:23","nodeType":"YulIf","src":"41191:146:23"},{"nativeSrc":"41350:61:23","nodeType":"YulAssignment","src":"41350:61:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"41368:1:23","nodeType":"YulLiteral","src":"41368:1:23","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"41375:2:23","nodeType":"YulLiteral","src":"41375:2:23","type":"","value":"32"},{"name":"result","nativeSrc":"41379:6:23","nodeType":"YulIdentifier","src":"41379:6:23"}],"functionName":{"name":"sub","nativeSrc":"41371:3:23","nodeType":"YulIdentifier","src":"41371:3:23"},"nativeSrc":"41371:15:23","nodeType":"YulFunctionCall","src":"41371:15:23"}],"functionName":{"name":"shl","nativeSrc":"41364:3:23","nodeType":"YulIdentifier","src":"41364:3:23"},"nativeSrc":"41364:23:23","nodeType":"YulFunctionCall","src":"41364:23:23"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"41399:1:23","nodeType":"YulIdentifier","src":"41399:1:23"},{"name":"result","nativeSrc":"41402:6:23","nodeType":"YulIdentifier","src":"41402:6:23"}],"functionName":{"name":"add","nativeSrc":"41395:3:23","nodeType":"YulIdentifier","src":"41395:3:23"},"nativeSrc":"41395:14:23","nodeType":"YulFunctionCall","src":"41395:14:23"}],"functionName":{"name":"mload","nativeSrc":"41389:5:23","nodeType":"YulIdentifier","src":"41389:5:23"},"nativeSrc":"41389:21:23","nodeType":"YulFunctionCall","src":"41389:21:23"}],"functionName":{"name":"shl","nativeSrc":"41360:3:23","nodeType":"YulIdentifier","src":"41360:3:23"},"nativeSrc":"41360:51:23","nodeType":"YulFunctionCall","src":"41360:51:23"},"variableNames":[{"name":"result","nativeSrc":"41350:6:23","nodeType":"YulIdentifier","src":"41350:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10799,"isOffset":false,"isSlot":false,"src":"41160:6:23","valueSize":1},{"declaration":10799,"isOffset":false,"isSlot":false,"src":"41204:6:23","valueSize":1},{"declaration":10799,"isOffset":false,"isSlot":false,"src":"41350:6:23","valueSize":1},{"declaration":10799,"isOffset":false,"isSlot":false,"src":"41379:6:23","valueSize":1},{"declaration":10799,"isOffset":false,"isSlot":false,"src":"41402:6:23","valueSize":1},{"declaration":10796,"isOffset":false,"isSlot":false,"src":"41176:1:23","valueSize":1},{"declaration":10796,"isOffset":false,"isSlot":false,"src":"41399:1:23","valueSize":1}],"id":10801,"nodeType":"InlineAssembly","src":"41137:284:23"}]},"documentation":{"id":10794,"nodeType":"StructuredDocumentation","src":"40927:73:23","text":"@dev Returns the string as a normalized null-terminated small string."},"id":10803,"implemented":true,"kind":"function","modifiers":[],"name":"toSmallString","nameLocation":"41014:13:23","nodeType":"FunctionDefinition","parameters":{"id":10797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10796,"mutability":"mutable","name":"s","nameLocation":"41042:1:23","nodeType":"VariableDeclaration","scope":10803,"src":"41028:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10795,"name":"string","nodeType":"ElementaryTypeName","src":"41028:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41027:17:23"},"returnParameters":{"id":10800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10799,"mutability":"mutable","name":"result","nameLocation":"41076:6:23","nodeType":"VariableDeclaration","scope":10803,"src":"41068:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41068:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41067:16:23"},"scope":10950,"src":"41005:422:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10818,"nodeType":"Block","src":"41646:48:23","statements":[{"expression":{"id":10816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10811,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10809,"src":"41656:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10813,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10806,"src":"41672:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":10814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41681:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10812,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"41665:6:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41665:22:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41656:31:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10817,"nodeType":"ExpressionStatement","src":"41656:31:23"}]},"documentation":{"id":10804,"nodeType":"StructuredDocumentation","src":"41433:125:23","text":"@dev Returns a lowercased copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10819,"implemented":true,"kind":"function","modifiers":[],"name":"lower","nameLocation":"41572:5:23","nodeType":"FunctionDefinition","parameters":{"id":10807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10806,"mutability":"mutable","name":"subject","nameLocation":"41592:7:23","nodeType":"VariableDeclaration","scope":10819,"src":"41578:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10805,"name":"string","nodeType":"ElementaryTypeName","src":"41578:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41577:23:23"},"returnParameters":{"id":10810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10809,"mutability":"mutable","name":"result","nameLocation":"41638:6:23","nodeType":"VariableDeclaration","scope":10819,"src":"41624:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10808,"name":"string","nodeType":"ElementaryTypeName","src":"41624:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41623:22:23"},"scope":10950,"src":"41563:131:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10834,"nodeType":"Block","src":"41914:47:23","statements":[{"expression":{"id":10832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10827,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10825,"src":"41924:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10829,"name":"subject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10822,"src":"41940:7:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"74727565","id":10830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"41949:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10828,"name":"toCase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"41933:6:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41933:21:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"41924:30:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10833,"nodeType":"ExpressionStatement","src":"41924:30:23"}]},"documentation":{"id":10820,"nodeType":"StructuredDocumentation","src":"41700:126:23","text":"@dev Returns an UPPERCASED copy of the string.\n WARNING! This function is only compatible with 7-bit ASCII strings."},"id":10835,"implemented":true,"kind":"function","modifiers":[],"name":"upper","nameLocation":"41840:5:23","nodeType":"FunctionDefinition","parameters":{"id":10823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10822,"mutability":"mutable","name":"subject","nameLocation":"41860:7:23","nodeType":"VariableDeclaration","scope":10835,"src":"41846:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10821,"name":"string","nodeType":"ElementaryTypeName","src":"41846:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41845:23:23"},"returnParameters":{"id":10826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10825,"mutability":"mutable","name":"result","nameLocation":"41906:6:23","nodeType":"VariableDeclaration","scope":10835,"src":"41892:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10824,"name":"string","nodeType":"ElementaryTypeName","src":"41892:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41891:22:23"},"scope":10950,"src":"41831:130:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10844,"nodeType":"Block","src":"42110:1372:23","statements":[{"AST":{"nativeSrc":"42172:1304:23","nodeType":"YulBlock","src":"42172:1304:23","statements":[{"nativeSrc":"42186:27:23","nodeType":"YulVariableDeclaration","src":"42186:27:23","value":{"arguments":[{"name":"s","nativeSrc":"42201:1:23","nodeType":"YulIdentifier","src":"42201:1:23"},{"arguments":[{"name":"s","nativeSrc":"42210:1:23","nodeType":"YulIdentifier","src":"42210:1:23"}],"functionName":{"name":"mload","nativeSrc":"42204:5:23","nodeType":"YulIdentifier","src":"42204:5:23"},"nativeSrc":"42204:8:23","nodeType":"YulFunctionCall","src":"42204:8:23"}],"functionName":{"name":"add","nativeSrc":"42197:3:23","nodeType":"YulIdentifier","src":"42197:3:23"},"nativeSrc":"42197:16:23","nodeType":"YulFunctionCall","src":"42197:16:23"},"variables":[{"name":"end","nativeSrc":"42190:3:23","nodeType":"YulTypedName","src":"42190:3:23","type":""}]},{"nativeSrc":"42226:32:23","nodeType":"YulAssignment","src":"42226:32:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"42246:4:23","nodeType":"YulLiteral","src":"42246:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"42240:5:23","nodeType":"YulIdentifier","src":"42240:5:23"},"nativeSrc":"42240:11:23","nodeType":"YulFunctionCall","src":"42240:11:23"},{"kind":"number","nativeSrc":"42253:4:23","nodeType":"YulLiteral","src":"42253:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"42236:3:23","nodeType":"YulIdentifier","src":"42236:3:23"},"nativeSrc":"42236:22:23","nodeType":"YulFunctionCall","src":"42236:22:23"},"variableNames":[{"name":"result","nativeSrc":"42226:6:23","nodeType":"YulIdentifier","src":"42226:6:23"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42452:4:23","nodeType":"YulLiteral","src":"42452:4:23","type":"","value":"0x1f"},{"kind":"number","nativeSrc":"42458:8:23","nodeType":"YulLiteral","src":"42458:8:23","type":"","value":"0x900094"}],"functionName":{"name":"mstore","nativeSrc":"42445:6:23","nodeType":"YulIdentifier","src":"42445:6:23"},"nativeSrc":"42445:22:23","nodeType":"YulFunctionCall","src":"42445:22:23"},"nativeSrc":"42445:22:23","nodeType":"YulExpressionStatement","src":"42445:22:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42487:4:23","nodeType":"YulLiteral","src":"42487:4:23","type":"","value":"0x08"},{"kind":"number","nativeSrc":"42493:14:23","nodeType":"YulLiteral","src":"42493:14:23","type":"","value":"0xc0000000a6ab"}],"functionName":{"name":"mstore","nativeSrc":"42480:6:23","nodeType":"YulIdentifier","src":"42480:6:23"},"nativeSrc":"42480:28:23","nodeType":"YulFunctionCall","src":"42480:28:23"},"nativeSrc":"42480:28:23","nodeType":"YulExpressionStatement","src":"42480:28:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42600:4:23","nodeType":"YulLiteral","src":"42600:4:23","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"42610:2:23","nodeType":"YulLiteral","src":"42610:2:23","type":"","value":"64"},{"kind":"number","nativeSrc":"42614:50:23","nodeType":"YulLiteral","src":"42614:50:23","type":"","value":"0x2671756f743b26616d703b262333393b266c743b2667743b"}],"functionName":{"name":"shl","nativeSrc":"42606:3:23","nodeType":"YulIdentifier","src":"42606:3:23"},"nativeSrc":"42606:59:23","nodeType":"YulFunctionCall","src":"42606:59:23"}],"functionName":{"name":"mstore","nativeSrc":"42593:6:23","nodeType":"YulIdentifier","src":"42593:6:23"},"nativeSrc":"42593:73:23","nodeType":"YulFunctionCall","src":"42593:73:23"},"nativeSrc":"42593:73:23","nodeType":"YulExpressionStatement","src":"42593:73:23"},{"body":{"nativeSrc":"42708:483:23","nodeType":"YulBlock","src":"42708:483:23","statements":[{"nativeSrc":"42726:14:23","nodeType":"YulAssignment","src":"42726:14:23","value":{"arguments":[{"name":"s","nativeSrc":"42735:1:23","nodeType":"YulIdentifier","src":"42735:1:23"},{"kind":"number","nativeSrc":"42738:1:23","nodeType":"YulLiteral","src":"42738:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"42731:3:23","nodeType":"YulIdentifier","src":"42731:3:23"},"nativeSrc":"42731:9:23","nodeType":"YulFunctionCall","src":"42731:9:23"},"variableNames":[{"name":"s","nativeSrc":"42726:1:23","nodeType":"YulIdentifier","src":"42726:1:23"}]},{"nativeSrc":"42757:28:23","nodeType":"YulVariableDeclaration","src":"42757:28:23","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"42776:1:23","nodeType":"YulIdentifier","src":"42776:1:23"}],"functionName":{"name":"mload","nativeSrc":"42770:5:23","nodeType":"YulIdentifier","src":"42770:5:23"},"nativeSrc":"42770:8:23","nodeType":"YulFunctionCall","src":"42770:8:23"},{"kind":"number","nativeSrc":"42780:4:23","nodeType":"YulLiteral","src":"42780:4:23","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"42766:3:23","nodeType":"YulIdentifier","src":"42766:3:23"},"nativeSrc":"42766:19:23","nodeType":"YulFunctionCall","src":"42766:19:23"},"variables":[{"name":"c","nativeSrc":"42761:1:23","nodeType":"YulTypedName","src":"42761:1:23","type":""}]},{"body":{"nativeSrc":"42900:132:23","nodeType":"YulBlock","src":"42900:132:23","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"42930:6:23","nodeType":"YulIdentifier","src":"42930:6:23"},{"name":"c","nativeSrc":"42938:1:23","nodeType":"YulIdentifier","src":"42938:1:23"}],"functionName":{"name":"mstore8","nativeSrc":"42922:7:23","nodeType":"YulIdentifier","src":"42922:7:23"},"nativeSrc":"42922:18:23","nodeType":"YulFunctionCall","src":"42922:18:23"},"nativeSrc":"42922:18:23","nodeType":"YulExpressionStatement","src":"42922:18:23"},{"nativeSrc":"42961:24:23","nodeType":"YulAssignment","src":"42961:24:23","value":{"arguments":[{"name":"result","nativeSrc":"42975:6:23","nodeType":"YulIdentifier","src":"42975:6:23"},{"kind":"number","nativeSrc":"42983:1:23","nodeType":"YulLiteral","src":"42983:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"42971:3:23","nodeType":"YulIdentifier","src":"42971:3:23"},"nativeSrc":"42971:14:23","nodeType":"YulFunctionCall","src":"42971:14:23"},"variableNames":[{"name":"result","nativeSrc":"42961:6:23","nodeType":"YulIdentifier","src":"42961:6:23"}]},{"nativeSrc":"43006:8:23","nodeType":"YulContinue","src":"43006:8:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"42872:1:23","nodeType":"YulIdentifier","src":"42872:1:23"},{"kind":"number","nativeSrc":"42875:1:23","nodeType":"YulLiteral","src":"42875:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"42868:3:23","nodeType":"YulIdentifier","src":"42868:3:23"},"nativeSrc":"42868:9:23","nodeType":"YulFunctionCall","src":"42868:9:23"},{"kind":"number","nativeSrc":"42879:18:23","nodeType":"YulLiteral","src":"42879:18:23","type":"","value":"0x500000c400000000"}],"functionName":{"name":"and","nativeSrc":"42864:3:23","nodeType":"YulIdentifier","src":"42864:3:23"},"nativeSrc":"42864:34:23","nodeType":"YulFunctionCall","src":"42864:34:23"}],"functionName":{"name":"iszero","nativeSrc":"42857:6:23","nodeType":"YulIdentifier","src":"42857:6:23"},"nativeSrc":"42857:42:23","nodeType":"YulFunctionCall","src":"42857:42:23"},"nativeSrc":"42854:178:23","nodeType":"YulIf","src":"42854:178:23"},{"nativeSrc":"43049:27:23","nodeType":"YulVariableDeclaration","src":"43049:27:23","value":{"arguments":[{"kind":"number","nativeSrc":"43062:3:23","nodeType":"YulLiteral","src":"43062:3:23","type":"","value":"248"},{"arguments":[{"name":"c","nativeSrc":"43073:1:23","nodeType":"YulIdentifier","src":"43073:1:23"}],"functionName":{"name":"mload","nativeSrc":"43067:5:23","nodeType":"YulIdentifier","src":"43067:5:23"},"nativeSrc":"43067:8:23","nodeType":"YulFunctionCall","src":"43067:8:23"}],"functionName":{"name":"shr","nativeSrc":"43058:3:23","nodeType":"YulIdentifier","src":"43058:3:23"},"nativeSrc":"43058:18:23","nodeType":"YulFunctionCall","src":"43058:18:23"},"variables":[{"name":"t","nativeSrc":"43053:1:23","nodeType":"YulTypedName","src":"43053:1:23","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"43100:6:23","nodeType":"YulIdentifier","src":"43100:6:23"},{"arguments":[{"arguments":[{"name":"t","nativeSrc":"43118:1:23","nodeType":"YulIdentifier","src":"43118:1:23"},{"kind":"number","nativeSrc":"43121:4:23","nodeType":"YulLiteral","src":"43121:4:23","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"43114:3:23","nodeType":"YulIdentifier","src":"43114:3:23"},"nativeSrc":"43114:12:23","nodeType":"YulFunctionCall","src":"43114:12:23"}],"functionName":{"name":"mload","nativeSrc":"43108:5:23","nodeType":"YulIdentifier","src":"43108:5:23"},"nativeSrc":"43108:19:23","nodeType":"YulFunctionCall","src":"43108:19:23"}],"functionName":{"name":"mstore","nativeSrc":"43093:6:23","nodeType":"YulIdentifier","src":"43093:6:23"},"nativeSrc":"43093:35:23","nodeType":"YulFunctionCall","src":"43093:35:23"},"nativeSrc":"43093:35:23","nodeType":"YulExpressionStatement","src":"43093:35:23"},{"nativeSrc":"43145:32:23","nodeType":"YulAssignment","src":"43145:32:23","value":{"arguments":[{"name":"result","nativeSrc":"43159:6:23","nodeType":"YulIdentifier","src":"43159:6:23"},{"arguments":[{"kind":"number","nativeSrc":"43171:1:23","nodeType":"YulLiteral","src":"43171:1:23","type":"","value":"5"},{"name":"t","nativeSrc":"43174:1:23","nodeType":"YulIdentifier","src":"43174:1:23"}],"functionName":{"name":"shr","nativeSrc":"43167:3:23","nodeType":"YulIdentifier","src":"43167:3:23"},"nativeSrc":"43167:9:23","nodeType":"YulFunctionCall","src":"43167:9:23"}],"functionName":{"name":"add","nativeSrc":"43155:3:23","nodeType":"YulIdentifier","src":"43155:3:23"},"nativeSrc":"43155:22:23","nodeType":"YulFunctionCall","src":"43155:22:23"},"variableNames":[{"name":"result","nativeSrc":"43145:6:23","nodeType":"YulIdentifier","src":"43145:6:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"42696:1:23","nodeType":"YulIdentifier","src":"42696:1:23"},{"name":"end","nativeSrc":"42699:3:23","nodeType":"YulIdentifier","src":"42699:3:23"}],"functionName":{"name":"eq","nativeSrc":"42693:2:23","nodeType":"YulIdentifier","src":"42693:2:23"},"nativeSrc":"42693:10:23","nodeType":"YulFunctionCall","src":"42693:10:23"}],"functionName":{"name":"iszero","nativeSrc":"42686:6:23","nodeType":"YulIdentifier","src":"42686:6:23"},"nativeSrc":"42686:18:23","nodeType":"YulFunctionCall","src":"42686:18:23"},"nativeSrc":"42679:512:23","nodeType":"YulForLoop","post":{"nativeSrc":"42705:2:23","nodeType":"YulBlock","src":"42705:2:23","statements":[]},"pre":{"nativeSrc":"42683:2:23","nodeType":"YulBlock","src":"42683:2:23","statements":[]},"src":"42679:512:23"},{"nativeSrc":"43204:18:23","nodeType":"YulVariableDeclaration","src":"43204:18:23","value":{"name":"result","nativeSrc":"43216:6:23","nodeType":"YulIdentifier","src":"43216:6:23"},"variables":[{"name":"last","nativeSrc":"43208:4:23","nodeType":"YulTypedName","src":"43208:4:23","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"43242:4:23","nodeType":"YulIdentifier","src":"43242:4:23"},{"kind":"number","nativeSrc":"43248:1:23","nodeType":"YulLiteral","src":"43248:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"43235:6:23","nodeType":"YulIdentifier","src":"43235:6:23"},"nativeSrc":"43235:15:23","nodeType":"YulFunctionCall","src":"43235:15:23"},"nativeSrc":"43235:15:23","nodeType":"YulExpressionStatement","src":"43235:15:23"},{"nativeSrc":"43301:21:23","nodeType":"YulAssignment","src":"43301:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"43317:4:23","nodeType":"YulLiteral","src":"43317:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"43311:5:23","nodeType":"YulIdentifier","src":"43311:5:23"},"nativeSrc":"43311:11:23","nodeType":"YulFunctionCall","src":"43311:11:23"},"variableNames":[{"name":"result","nativeSrc":"43301:6:23","nodeType":"YulIdentifier","src":"43301:6:23"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"43342:6:23","nodeType":"YulIdentifier","src":"43342:6:23"},{"arguments":[{"name":"last","nativeSrc":"43354:4:23","nodeType":"YulIdentifier","src":"43354:4:23"},{"arguments":[{"name":"result","nativeSrc":"43364:6:23","nodeType":"YulIdentifier","src":"43364:6:23"},{"kind":"number","nativeSrc":"43372:4:23","nodeType":"YulLiteral","src":"43372:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43360:3:23","nodeType":"YulIdentifier","src":"43360:3:23"},"nativeSrc":"43360:17:23","nodeType":"YulFunctionCall","src":"43360:17:23"}],"functionName":{"name":"sub","nativeSrc":"43350:3:23","nodeType":"YulIdentifier","src":"43350:3:23"},"nativeSrc":"43350:28:23","nodeType":"YulFunctionCall","src":"43350:28:23"}],"functionName":{"name":"mstore","nativeSrc":"43335:6:23","nodeType":"YulIdentifier","src":"43335:6:23"},"nativeSrc":"43335:44:23","nodeType":"YulFunctionCall","src":"43335:44:23"},"nativeSrc":"43335:44:23","nodeType":"YulExpressionStatement","src":"43335:44:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43420:4:23","nodeType":"YulLiteral","src":"43420:4:23","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"43430:4:23","nodeType":"YulIdentifier","src":"43430:4:23"},{"kind":"number","nativeSrc":"43436:4:23","nodeType":"YulLiteral","src":"43436:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43426:3:23","nodeType":"YulIdentifier","src":"43426:3:23"},"nativeSrc":"43426:15:23","nodeType":"YulFunctionCall","src":"43426:15:23"}],"functionName":{"name":"mstore","nativeSrc":"43413:6:23","nodeType":"YulIdentifier","src":"43413:6:23"},"nativeSrc":"43413:29:23","nodeType":"YulFunctionCall","src":"43413:29:23"},"nativeSrc":"43413:29:23","nodeType":"YulExpressionStatement","src":"43413:29:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10841,"isOffset":false,"isSlot":false,"src":"42226:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"42930:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"42961:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"42975:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"43100:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"43145:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"43159:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"43216:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"43301:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"43342:6:23","valueSize":1},{"declaration":10841,"isOffset":false,"isSlot":false,"src":"43364:6:23","valueSize":1},{"declaration":10838,"isOffset":false,"isSlot":false,"src":"42201:1:23","valueSize":1},{"declaration":10838,"isOffset":false,"isSlot":false,"src":"42210:1:23","valueSize":1},{"declaration":10838,"isOffset":false,"isSlot":false,"src":"42696:1:23","valueSize":1},{"declaration":10838,"isOffset":false,"isSlot":false,"src":"42726:1:23","valueSize":1},{"declaration":10838,"isOffset":false,"isSlot":false,"src":"42735:1:23","valueSize":1},{"declaration":10838,"isOffset":false,"isSlot":false,"src":"42776:1:23","valueSize":1}],"id":10843,"nodeType":"InlineAssembly","src":"42163:1313:23"}]},"documentation":{"id":10836,"nodeType":"StructuredDocumentation","src":"41967:56:23","text":"@dev Escapes the string to be used within HTML tags."},"id":10845,"implemented":true,"kind":"function","modifiers":[],"name":"escapeHTML","nameLocation":"42037:10:23","nodeType":"FunctionDefinition","parameters":{"id":10839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10838,"mutability":"mutable","name":"s","nameLocation":"42062:1:23","nodeType":"VariableDeclaration","scope":10845,"src":"42048:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10837,"name":"string","nodeType":"ElementaryTypeName","src":"42048:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42047:17:23"},"returnParameters":{"id":10842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10841,"mutability":"mutable","name":"result","nameLocation":"42102:6:23","nodeType":"VariableDeclaration","scope":10845,"src":"42088:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10840,"name":"string","nodeType":"ElementaryTypeName","src":"42088:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42087:22:23"},"scope":10950,"src":"42028:1454:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10856,"nodeType":"Block","src":"43779:2259:23","statements":[{"AST":{"nativeSrc":"43841:2191:23","nodeType":"YulBlock","src":"43841:2191:23","statements":[{"nativeSrc":"43855:27:23","nodeType":"YulVariableDeclaration","src":"43855:27:23","value":{"arguments":[{"name":"s","nativeSrc":"43870:1:23","nodeType":"YulIdentifier","src":"43870:1:23"},{"arguments":[{"name":"s","nativeSrc":"43879:1:23","nodeType":"YulIdentifier","src":"43879:1:23"}],"functionName":{"name":"mload","nativeSrc":"43873:5:23","nodeType":"YulIdentifier","src":"43873:5:23"},"nativeSrc":"43873:8:23","nodeType":"YulFunctionCall","src":"43873:8:23"}],"functionName":{"name":"add","nativeSrc":"43866:3:23","nodeType":"YulIdentifier","src":"43866:3:23"},"nativeSrc":"43866:16:23","nodeType":"YulFunctionCall","src":"43866:16:23"},"variables":[{"name":"end","nativeSrc":"43859:3:23","nodeType":"YulTypedName","src":"43859:3:23","type":""}]},{"nativeSrc":"43895:32:23","nodeType":"YulAssignment","src":"43895:32:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"43915:4:23","nodeType":"YulLiteral","src":"43915:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"43909:5:23","nodeType":"YulIdentifier","src":"43909:5:23"},"nativeSrc":"43909:11:23","nodeType":"YulFunctionCall","src":"43909:11:23"},{"kind":"number","nativeSrc":"43922:4:23","nodeType":"YulLiteral","src":"43922:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43905:3:23","nodeType":"YulIdentifier","src":"43905:3:23"},"nativeSrc":"43905:22:23","nodeType":"YulFunctionCall","src":"43905:22:23"},"variableNames":[{"name":"result","nativeSrc":"43895:6:23","nodeType":"YulIdentifier","src":"43895:6:23"}]},{"body":{"nativeSrc":"43959:92:23","nodeType":"YulBlock","src":"43959:92:23","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"43985:6:23","nodeType":"YulIdentifier","src":"43985:6:23"},{"kind":"number","nativeSrc":"43993:2:23","nodeType":"YulLiteral","src":"43993:2:23","type":"","value":"34"}],"functionName":{"name":"mstore8","nativeSrc":"43977:7:23","nodeType":"YulIdentifier","src":"43977:7:23"},"nativeSrc":"43977:19:23","nodeType":"YulFunctionCall","src":"43977:19:23"},"nativeSrc":"43977:19:23","nodeType":"YulExpressionStatement","src":"43977:19:23"},{"nativeSrc":"44013:24:23","nodeType":"YulAssignment","src":"44013:24:23","value":{"arguments":[{"kind":"number","nativeSrc":"44027:1:23","nodeType":"YulLiteral","src":"44027:1:23","type":"","value":"1"},{"name":"result","nativeSrc":"44030:6:23","nodeType":"YulIdentifier","src":"44030:6:23"}],"functionName":{"name":"add","nativeSrc":"44023:3:23","nodeType":"YulIdentifier","src":"44023:3:23"},"nativeSrc":"44023:14:23","nodeType":"YulFunctionCall","src":"44023:14:23"},"variableNames":[{"name":"result","nativeSrc":"44013:6:23","nodeType":"YulIdentifier","src":"44013:6:23"}]}]},"condition":{"name":"addDoubleQuotes","nativeSrc":"43943:15:23","nodeType":"YulIdentifier","src":"43943:15:23"},"nativeSrc":"43940:111:23","nodeType":"YulIf","src":"43940:111:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44298:4:23","nodeType":"YulLiteral","src":"44298:4:23","type":"","value":"0x15"},{"kind":"number","nativeSrc":"44304:58:23","nodeType":"YulLiteral","src":"44304:58:23","type":"","value":"0x5c75303030303031323334353637383961626364656662746e006672"}],"functionName":{"name":"mstore","nativeSrc":"44291:6:23","nodeType":"YulIdentifier","src":"44291:6:23"},"nativeSrc":"44291:72:23","nodeType":"YulFunctionCall","src":"44291:72:23"},"nativeSrc":"44291:72:23","nodeType":"YulExpressionStatement","src":"44291:72:23"},{"nativeSrc":"44428:39:23","nodeType":"YulVariableDeclaration","src":"44428:39:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"44444:4:23","nodeType":"YulLiteral","src":"44444:4:23","type":"","value":"0x22"},{"kind":"number","nativeSrc":"44450:1:23","nodeType":"YulLiteral","src":"44450:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44440:3:23","nodeType":"YulIdentifier","src":"44440:3:23"},"nativeSrc":"44440:12:23","nodeType":"YulFunctionCall","src":"44440:12:23"},{"arguments":[{"kind":"number","nativeSrc":"44458:4:23","nodeType":"YulLiteral","src":"44458:4:23","type":"","value":"0x5c"},{"kind":"number","nativeSrc":"44464:1:23","nodeType":"YulLiteral","src":"44464:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44454:3:23","nodeType":"YulIdentifier","src":"44454:3:23"},"nativeSrc":"44454:12:23","nodeType":"YulFunctionCall","src":"44454:12:23"}],"functionName":{"name":"or","nativeSrc":"44437:2:23","nodeType":"YulIdentifier","src":"44437:2:23"},"nativeSrc":"44437:30:23","nodeType":"YulFunctionCall","src":"44437:30:23"},"variables":[{"name":"e","nativeSrc":"44432:1:23","nodeType":"YulTypedName","src":"44432:1:23","type":""}]},{"body":{"nativeSrc":"44509:1114:23","nodeType":"YulBlock","src":"44509:1114:23","statements":[{"nativeSrc":"44527:14:23","nodeType":"YulAssignment","src":"44527:14:23","value":{"arguments":[{"name":"s","nativeSrc":"44536:1:23","nodeType":"YulIdentifier","src":"44536:1:23"},{"kind":"number","nativeSrc":"44539:1:23","nodeType":"YulLiteral","src":"44539:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44532:3:23","nodeType":"YulIdentifier","src":"44532:3:23"},"nativeSrc":"44532:9:23","nodeType":"YulFunctionCall","src":"44532:9:23"},"variableNames":[{"name":"s","nativeSrc":"44527:1:23","nodeType":"YulIdentifier","src":"44527:1:23"}]},{"nativeSrc":"44558:28:23","nodeType":"YulVariableDeclaration","src":"44558:28:23","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"44577:1:23","nodeType":"YulIdentifier","src":"44577:1:23"}],"functionName":{"name":"mload","nativeSrc":"44571:5:23","nodeType":"YulIdentifier","src":"44571:5:23"},"nativeSrc":"44571:8:23","nodeType":"YulFunctionCall","src":"44571:8:23"},{"kind":"number","nativeSrc":"44581:4:23","nodeType":"YulLiteral","src":"44581:4:23","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"44567:3:23","nodeType":"YulIdentifier","src":"44567:3:23"},"nativeSrc":"44567:19:23","nodeType":"YulFunctionCall","src":"44567:19:23"},"variables":[{"name":"c","nativeSrc":"44562:1:23","nodeType":"YulTypedName","src":"44562:1:23","type":""}]},{"body":{"nativeSrc":"44626:438:23","nodeType":"YulBlock","src":"44626:438:23","statements":[{"body":{"nativeSrc":"44677:197:23","nodeType":"YulBlock","src":"44677:197:23","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"44760:6:23","nodeType":"YulIdentifier","src":"44760:6:23"},{"name":"c","nativeSrc":"44768:1:23","nodeType":"YulIdentifier","src":"44768:1:23"}],"functionName":{"name":"mstore8","nativeSrc":"44752:7:23","nodeType":"YulIdentifier","src":"44752:7:23"},"nativeSrc":"44752:18:23","nodeType":"YulFunctionCall","src":"44752:18:23"},"nativeSrc":"44752:18:23","nodeType":"YulExpressionStatement","src":"44752:18:23"},{"nativeSrc":"44795:24:23","nodeType":"YulAssignment","src":"44795:24:23","value":{"arguments":[{"name":"result","nativeSrc":"44809:6:23","nodeType":"YulIdentifier","src":"44809:6:23"},{"kind":"number","nativeSrc":"44817:1:23","nodeType":"YulLiteral","src":"44817:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44805:3:23","nodeType":"YulIdentifier","src":"44805:3:23"},"nativeSrc":"44805:14:23","nodeType":"YulFunctionCall","src":"44805:14:23"},"variableNames":[{"name":"result","nativeSrc":"44795:6:23","nodeType":"YulIdentifier","src":"44795:6:23"}]},{"nativeSrc":"44844:8:23","nodeType":"YulContinue","src":"44844:8:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"44666:1:23","nodeType":"YulIdentifier","src":"44666:1:23"},{"kind":"number","nativeSrc":"44669:1:23","nodeType":"YulLiteral","src":"44669:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"44662:3:23","nodeType":"YulIdentifier","src":"44662:3:23"},"nativeSrc":"44662:9:23","nodeType":"YulFunctionCall","src":"44662:9:23"},{"name":"e","nativeSrc":"44673:1:23","nodeType":"YulIdentifier","src":"44673:1:23"}],"functionName":{"name":"and","nativeSrc":"44658:3:23","nodeType":"YulIdentifier","src":"44658:3:23"},"nativeSrc":"44658:17:23","nodeType":"YulFunctionCall","src":"44658:17:23"}],"functionName":{"name":"iszero","nativeSrc":"44651:6:23","nodeType":"YulIdentifier","src":"44651:6:23"},"nativeSrc":"44651:25:23","nodeType":"YulFunctionCall","src":"44651:25:23"},"nativeSrc":"44648:226:23","nodeType":"YulIf","src":"44648:226:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"44903:6:23","nodeType":"YulIdentifier","src":"44903:6:23"},{"kind":"number","nativeSrc":"44911:4:23","nodeType":"YulLiteral","src":"44911:4:23","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nativeSrc":"44895:7:23","nodeType":"YulIdentifier","src":"44895:7:23"},"nativeSrc":"44895:21:23","nodeType":"YulFunctionCall","src":"44895:21:23"},"nativeSrc":"44895:21:23","nodeType":"YulExpressionStatement","src":"44895:21:23"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"44958:6:23","nodeType":"YulIdentifier","src":"44958:6:23"},{"kind":"number","nativeSrc":"44966:1:23","nodeType":"YulLiteral","src":"44966:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44954:3:23","nodeType":"YulIdentifier","src":"44954:3:23"},"nativeSrc":"44954:14:23","nodeType":"YulFunctionCall","src":"44954:14:23"},{"name":"c","nativeSrc":"44970:1:23","nodeType":"YulIdentifier","src":"44970:1:23"}],"functionName":{"name":"mstore8","nativeSrc":"44946:7:23","nodeType":"YulIdentifier","src":"44946:7:23"},"nativeSrc":"44946:26:23","nodeType":"YulFunctionCall","src":"44946:26:23"},"nativeSrc":"44946:26:23","nodeType":"YulExpressionStatement","src":"44946:26:23"},{"nativeSrc":"44993:24:23","nodeType":"YulAssignment","src":"44993:24:23","value":{"arguments":[{"name":"result","nativeSrc":"45007:6:23","nodeType":"YulIdentifier","src":"45007:6:23"},{"kind":"number","nativeSrc":"45015:1:23","nodeType":"YulLiteral","src":"45015:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"45003:3:23","nodeType":"YulIdentifier","src":"45003:3:23"},"nativeSrc":"45003:14:23","nodeType":"YulFunctionCall","src":"45003:14:23"},"variableNames":[{"name":"result","nativeSrc":"44993:6:23","nodeType":"YulIdentifier","src":"44993:6:23"}]},{"nativeSrc":"45038:8:23","nodeType":"YulContinue","src":"45038:8:23"}]},"condition":{"arguments":[{"arguments":[{"name":"c","nativeSrc":"44616:1:23","nodeType":"YulIdentifier","src":"44616:1:23"},{"kind":"number","nativeSrc":"44619:4:23","nodeType":"YulLiteral","src":"44619:4:23","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"44613:2:23","nodeType":"YulIdentifier","src":"44613:2:23"},"nativeSrc":"44613:11:23","nodeType":"YulFunctionCall","src":"44613:11:23"}],"functionName":{"name":"iszero","nativeSrc":"44606:6:23","nodeType":"YulIdentifier","src":"44606:6:23"},"nativeSrc":"44606:19:23","nodeType":"YulFunctionCall","src":"44606:19:23"},"nativeSrc":"44603:461:23","nodeType":"YulIf","src":"44603:461:23"},{"body":{"nativeSrc":"45115:348:23","nodeType":"YulBlock","src":"45115:348:23","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"45205:4:23","nodeType":"YulLiteral","src":"45205:4:23","type":"","value":"0x1d"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"45221:1:23","nodeType":"YulLiteral","src":"45221:1:23","type":"","value":"4"},{"name":"c","nativeSrc":"45224:1:23","nodeType":"YulIdentifier","src":"45224:1:23"}],"functionName":{"name":"shr","nativeSrc":"45217:3:23","nodeType":"YulIdentifier","src":"45217:3:23"},"nativeSrc":"45217:9:23","nodeType":"YulFunctionCall","src":"45217:9:23"}],"functionName":{"name":"mload","nativeSrc":"45211:5:23","nodeType":"YulIdentifier","src":"45211:5:23"},"nativeSrc":"45211:16:23","nodeType":"YulFunctionCall","src":"45211:16:23"}],"functionName":{"name":"mstore8","nativeSrc":"45197:7:23","nodeType":"YulIdentifier","src":"45197:7:23"},"nativeSrc":"45197:31:23","nodeType":"YulFunctionCall","src":"45197:31:23"},"nativeSrc":"45197:31:23","nodeType":"YulExpressionStatement","src":"45197:31:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45271:4:23","nodeType":"YulLiteral","src":"45271:4:23","type":"","value":"0x1e"},{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45287:1:23","nodeType":"YulIdentifier","src":"45287:1:23"},{"kind":"number","nativeSrc":"45290:2:23","nodeType":"YulLiteral","src":"45290:2:23","type":"","value":"15"}],"functionName":{"name":"and","nativeSrc":"45283:3:23","nodeType":"YulIdentifier","src":"45283:3:23"},"nativeSrc":"45283:10:23","nodeType":"YulFunctionCall","src":"45283:10:23"}],"functionName":{"name":"mload","nativeSrc":"45277:5:23","nodeType":"YulIdentifier","src":"45277:5:23"},"nativeSrc":"45277:17:23","nodeType":"YulFunctionCall","src":"45277:17:23"}],"functionName":{"name":"mstore8","nativeSrc":"45263:7:23","nodeType":"YulIdentifier","src":"45263:7:23"},"nativeSrc":"45263:32:23","nodeType":"YulFunctionCall","src":"45263:32:23"},"nativeSrc":"45263:32:23","nodeType":"YulExpressionStatement","src":"45263:32:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"45337:6:23","nodeType":"YulIdentifier","src":"45337:6:23"},{"arguments":[{"kind":"number","nativeSrc":"45351:4:23","nodeType":"YulLiteral","src":"45351:4:23","type":"","value":"0x19"}],"functionName":{"name":"mload","nativeSrc":"45345:5:23","nodeType":"YulIdentifier","src":"45345:5:23"},"nativeSrc":"45345:11:23","nodeType":"YulFunctionCall","src":"45345:11:23"}],"functionName":{"name":"mstore","nativeSrc":"45330:6:23","nodeType":"YulIdentifier","src":"45330:6:23"},"nativeSrc":"45330:27:23","nodeType":"YulFunctionCall","src":"45330:27:23"},"nativeSrc":"45330:27:23","nodeType":"YulExpressionStatement","src":"45330:27:23"},{"nativeSrc":"45392:24:23","nodeType":"YulAssignment","src":"45392:24:23","value":{"arguments":[{"name":"result","nativeSrc":"45406:6:23","nodeType":"YulIdentifier","src":"45406:6:23"},{"kind":"number","nativeSrc":"45414:1:23","nodeType":"YulLiteral","src":"45414:1:23","type":"","value":"6"}],"functionName":{"name":"add","nativeSrc":"45402:3:23","nodeType":"YulIdentifier","src":"45402:3:23"},"nativeSrc":"45402:14:23","nodeType":"YulFunctionCall","src":"45402:14:23"},"variableNames":[{"name":"result","nativeSrc":"45392:6:23","nodeType":"YulIdentifier","src":"45392:6:23"}]},{"nativeSrc":"45437:8:23","nodeType":"YulContinue","src":"45437:8:23"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45099:1:23","nodeType":"YulIdentifier","src":"45099:1:23"},{"kind":"number","nativeSrc":"45102:1:23","nodeType":"YulLiteral","src":"45102:1:23","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"45095:3:23","nodeType":"YulIdentifier","src":"45095:3:23"},"nativeSrc":"45095:9:23","nodeType":"YulFunctionCall","src":"45095:9:23"},{"kind":"number","nativeSrc":"45106:6:23","nodeType":"YulLiteral","src":"45106:6:23","type":"","value":"0x3700"}],"functionName":{"name":"and","nativeSrc":"45091:3:23","nodeType":"YulIdentifier","src":"45091:3:23"},"nativeSrc":"45091:22:23","nodeType":"YulFunctionCall","src":"45091:22:23"}],"functionName":{"name":"iszero","nativeSrc":"45084:6:23","nodeType":"YulIdentifier","src":"45084:6:23"},"nativeSrc":"45084:30:23","nodeType":"YulFunctionCall","src":"45084:30:23"},"nativeSrc":"45081:382:23","nodeType":"YulIf","src":"45081:382:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"45488:6:23","nodeType":"YulIdentifier","src":"45488:6:23"},{"kind":"number","nativeSrc":"45496:4:23","nodeType":"YulLiteral","src":"45496:4:23","type":"","value":"0x5c"}],"functionName":{"name":"mstore8","nativeSrc":"45480:7:23","nodeType":"YulIdentifier","src":"45480:7:23"},"nativeSrc":"45480:21:23","nodeType":"YulFunctionCall","src":"45480:21:23"},"nativeSrc":"45480:21:23","nodeType":"YulExpressionStatement","src":"45480:21:23"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"45539:6:23","nodeType":"YulIdentifier","src":"45539:6:23"},{"kind":"number","nativeSrc":"45547:1:23","nodeType":"YulLiteral","src":"45547:1:23","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45535:3:23","nodeType":"YulIdentifier","src":"45535:3:23"},"nativeSrc":"45535:14:23","nodeType":"YulFunctionCall","src":"45535:14:23"},{"arguments":[{"arguments":[{"name":"c","nativeSrc":"45561:1:23","nodeType":"YulIdentifier","src":"45561:1:23"},{"kind":"number","nativeSrc":"45564:1:23","nodeType":"YulLiteral","src":"45564:1:23","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"45557:3:23","nodeType":"YulIdentifier","src":"45557:3:23"},"nativeSrc":"45557:9:23","nodeType":"YulFunctionCall","src":"45557:9:23"}],"functionName":{"name":"mload","nativeSrc":"45551:5:23","nodeType":"YulIdentifier","src":"45551:5:23"},"nativeSrc":"45551:16:23","nodeType":"YulFunctionCall","src":"45551:16:23"}],"functionName":{"name":"mstore8","nativeSrc":"45527:7:23","nodeType":"YulIdentifier","src":"45527:7:23"},"nativeSrc":"45527:41:23","nodeType":"YulFunctionCall","src":"45527:41:23"},"nativeSrc":"45527:41:23","nodeType":"YulExpressionStatement","src":"45527:41:23"},{"nativeSrc":"45585:24:23","nodeType":"YulAssignment","src":"45585:24:23","value":{"arguments":[{"name":"result","nativeSrc":"45599:6:23","nodeType":"YulIdentifier","src":"45599:6:23"},{"kind":"number","nativeSrc":"45607:1:23","nodeType":"YulLiteral","src":"45607:1:23","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"45595:3:23","nodeType":"YulIdentifier","src":"45595:3:23"},"nativeSrc":"45595:14:23","nodeType":"YulFunctionCall","src":"45595:14:23"},"variableNames":[{"name":"result","nativeSrc":"45585:6:23","nodeType":"YulIdentifier","src":"45585:6:23"}]}]},"condition":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"44497:1:23","nodeType":"YulIdentifier","src":"44497:1:23"},{"name":"end","nativeSrc":"44500:3:23","nodeType":"YulIdentifier","src":"44500:3:23"}],"functionName":{"name":"eq","nativeSrc":"44494:2:23","nodeType":"YulIdentifier","src":"44494:2:23"},"nativeSrc":"44494:10:23","nodeType":"YulFunctionCall","src":"44494:10:23"}],"functionName":{"name":"iszero","nativeSrc":"44487:6:23","nodeType":"YulIdentifier","src":"44487:6:23"},"nativeSrc":"44487:18:23","nodeType":"YulFunctionCall","src":"44487:18:23"},"nativeSrc":"44480:1143:23","nodeType":"YulForLoop","post":{"nativeSrc":"44506:2:23","nodeType":"YulBlock","src":"44506:2:23","statements":[]},"pre":{"nativeSrc":"44484:2:23","nodeType":"YulBlock","src":"44484:2:23","statements":[]},"src":"44480:1143:23"},{"body":{"nativeSrc":"45655:92:23","nodeType":"YulBlock","src":"45655:92:23","statements":[{"expression":{"arguments":[{"name":"result","nativeSrc":"45681:6:23","nodeType":"YulIdentifier","src":"45681:6:23"},{"kind":"number","nativeSrc":"45689:2:23","nodeType":"YulLiteral","src":"45689:2:23","type":"","value":"34"}],"functionName":{"name":"mstore8","nativeSrc":"45673:7:23","nodeType":"YulIdentifier","src":"45673:7:23"},"nativeSrc":"45673:19:23","nodeType":"YulFunctionCall","src":"45673:19:23"},"nativeSrc":"45673:19:23","nodeType":"YulExpressionStatement","src":"45673:19:23"},{"nativeSrc":"45709:24:23","nodeType":"YulAssignment","src":"45709:24:23","value":{"arguments":[{"kind":"number","nativeSrc":"45723:1:23","nodeType":"YulLiteral","src":"45723:1:23","type":"","value":"1"},{"name":"result","nativeSrc":"45726:6:23","nodeType":"YulIdentifier","src":"45726:6:23"}],"functionName":{"name":"add","nativeSrc":"45719:3:23","nodeType":"YulIdentifier","src":"45719:3:23"},"nativeSrc":"45719:14:23","nodeType":"YulFunctionCall","src":"45719:14:23"},"variableNames":[{"name":"result","nativeSrc":"45709:6:23","nodeType":"YulIdentifier","src":"45709:6:23"}]}]},"condition":{"name":"addDoubleQuotes","nativeSrc":"45639:15:23","nodeType":"YulIdentifier","src":"45639:15:23"},"nativeSrc":"45636:111:23","nodeType":"YulIf","src":"45636:111:23"},{"nativeSrc":"45760:18:23","nodeType":"YulVariableDeclaration","src":"45760:18:23","value":{"name":"result","nativeSrc":"45772:6:23","nodeType":"YulIdentifier","src":"45772:6:23"},"variables":[{"name":"last","nativeSrc":"45764:4:23","nodeType":"YulTypedName","src":"45764:4:23","type":""}]},{"expression":{"arguments":[{"name":"last","nativeSrc":"45798:4:23","nodeType":"YulIdentifier","src":"45798:4:23"},{"kind":"number","nativeSrc":"45804:1:23","nodeType":"YulLiteral","src":"45804:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"45791:6:23","nodeType":"YulIdentifier","src":"45791:6:23"},"nativeSrc":"45791:15:23","nodeType":"YulFunctionCall","src":"45791:15:23"},"nativeSrc":"45791:15:23","nodeType":"YulExpressionStatement","src":"45791:15:23"},{"nativeSrc":"45857:21:23","nodeType":"YulAssignment","src":"45857:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"45873:4:23","nodeType":"YulLiteral","src":"45873:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"45867:5:23","nodeType":"YulIdentifier","src":"45867:5:23"},"nativeSrc":"45867:11:23","nodeType":"YulFunctionCall","src":"45867:11:23"},"variableNames":[{"name":"result","nativeSrc":"45857:6:23","nodeType":"YulIdentifier","src":"45857:6:23"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"45898:6:23","nodeType":"YulIdentifier","src":"45898:6:23"},{"arguments":[{"name":"last","nativeSrc":"45910:4:23","nodeType":"YulIdentifier","src":"45910:4:23"},{"arguments":[{"name":"result","nativeSrc":"45920:6:23","nodeType":"YulIdentifier","src":"45920:6:23"},{"kind":"number","nativeSrc":"45928:4:23","nodeType":"YulLiteral","src":"45928:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45916:3:23","nodeType":"YulIdentifier","src":"45916:3:23"},"nativeSrc":"45916:17:23","nodeType":"YulFunctionCall","src":"45916:17:23"}],"functionName":{"name":"sub","nativeSrc":"45906:3:23","nodeType":"YulIdentifier","src":"45906:3:23"},"nativeSrc":"45906:28:23","nodeType":"YulFunctionCall","src":"45906:28:23"}],"functionName":{"name":"mstore","nativeSrc":"45891:6:23","nodeType":"YulIdentifier","src":"45891:6:23"},"nativeSrc":"45891:44:23","nodeType":"YulFunctionCall","src":"45891:44:23"},"nativeSrc":"45891:44:23","nodeType":"YulExpressionStatement","src":"45891:44:23"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45976:4:23","nodeType":"YulLiteral","src":"45976:4:23","type":"","value":"0x40"},{"arguments":[{"name":"last","nativeSrc":"45986:4:23","nodeType":"YulIdentifier","src":"45986:4:23"},{"kind":"number","nativeSrc":"45992:4:23","nodeType":"YulLiteral","src":"45992:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45982:3:23","nodeType":"YulIdentifier","src":"45982:3:23"},"nativeSrc":"45982:15:23","nodeType":"YulFunctionCall","src":"45982:15:23"}],"functionName":{"name":"mstore","nativeSrc":"45969:6:23","nodeType":"YulIdentifier","src":"45969:6:23"},"nativeSrc":"45969:29:23","nodeType":"YulFunctionCall","src":"45969:29:23"},"nativeSrc":"45969:29:23","nodeType":"YulExpressionStatement","src":"45969:29:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10850,"isOffset":false,"isSlot":false,"src":"43943:15:23","valueSize":1},{"declaration":10850,"isOffset":false,"isSlot":false,"src":"45639:15:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"43895:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"43985:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44013:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44030:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44760:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44795:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44809:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44903:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44958:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"44993:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45007:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45337:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45392:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45406:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45488:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45539:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45585:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45599:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45681:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45709:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45726:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45772:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45857:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45898:6:23","valueSize":1},{"declaration":10853,"isOffset":false,"isSlot":false,"src":"45920:6:23","valueSize":1},{"declaration":10848,"isOffset":false,"isSlot":false,"src":"43870:1:23","valueSize":1},{"declaration":10848,"isOffset":false,"isSlot":false,"src":"43879:1:23","valueSize":1},{"declaration":10848,"isOffset":false,"isSlot":false,"src":"44497:1:23","valueSize":1},{"declaration":10848,"isOffset":false,"isSlot":false,"src":"44527:1:23","valueSize":1},{"declaration":10848,"isOffset":false,"isSlot":false,"src":"44536:1:23","valueSize":1},{"declaration":10848,"isOffset":false,"isSlot":false,"src":"44577:1:23","valueSize":1}],"id":10855,"nodeType":"InlineAssembly","src":"43832:2200:23"}]},"documentation":{"id":10846,"nodeType":"StructuredDocumentation","src":"43488:154:23","text":"@dev Escapes the string to be used within double-quotes in a JSON.\n If `addDoubleQuotes` is true, the result will be enclosed in double-quotes."},"id":10857,"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"43656:10:23","nodeType":"FunctionDefinition","parameters":{"id":10851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10848,"mutability":"mutable","name":"s","nameLocation":"43681:1:23","nodeType":"VariableDeclaration","scope":10857,"src":"43667:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10847,"name":"string","nodeType":"ElementaryTypeName","src":"43667:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10850,"mutability":"mutable","name":"addDoubleQuotes","nameLocation":"43689:15:23","nodeType":"VariableDeclaration","scope":10857,"src":"43684:20:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10849,"name":"bool","nodeType":"ElementaryTypeName","src":"43684:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43666:39:23"},"returnParameters":{"id":10854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10853,"mutability":"mutable","name":"result","nameLocation":"43767:6:23","nodeType":"VariableDeclaration","scope":10857,"src":"43753:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10852,"name":"string","nodeType":"ElementaryTypeName","src":"43753:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43752:22:23"},"scope":10950,"src":"43647:2391:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10872,"nodeType":"Block","src":"46201:46:23","statements":[{"expression":{"id":10870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10865,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10863,"src":"46211:6:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":10867,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10860,"src":"46231:1:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"66616c7365","id":10868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"46234:5:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10866,"name":"escapeJSON","nodeType":"Identifier","overloadedDeclarations":[10857,10873],"referencedDeclaration":10857,"src":"46220:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,bool) pure returns (string memory)"}},"id":10869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46220:20:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"46211:29:23","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":10871,"nodeType":"ExpressionStatement","src":"46211:29:23"}]},"documentation":{"id":10858,"nodeType":"StructuredDocumentation","src":"46044:70:23","text":"@dev Escapes the string to be used within double-quotes in a JSON."},"id":10873,"implemented":true,"kind":"function","modifiers":[],"name":"escapeJSON","nameLocation":"46128:10:23","nodeType":"FunctionDefinition","parameters":{"id":10861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10860,"mutability":"mutable","name":"s","nameLocation":"46153:1:23","nodeType":"VariableDeclaration","scope":10873,"src":"46139:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10859,"name":"string","nodeType":"ElementaryTypeName","src":"46139:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46138:17:23"},"returnParameters":{"id":10864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10863,"mutability":"mutable","name":"result","nameLocation":"46193:6:23","nodeType":"VariableDeclaration","scope":10873,"src":"46179:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10862,"name":"string","nodeType":"ElementaryTypeName","src":"46179:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46178:22:23"},"scope":10950,"src":"46119:128:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10884,"nodeType":"Block","src":"46380:174:23","statements":[{"AST":{"nativeSrc":"46442:106:23","nodeType":"YulBlock","src":"46442:106:23","statements":[{"nativeSrc":"46456:82:23","nodeType":"YulAssignment","src":"46456:82:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"46483:1:23","nodeType":"YulIdentifier","src":"46483:1:23"},{"kind":"number","nativeSrc":"46486:4:23","nodeType":"YulLiteral","src":"46486:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46479:3:23","nodeType":"YulIdentifier","src":"46479:3:23"},"nativeSrc":"46479:12:23","nodeType":"YulFunctionCall","src":"46479:12:23"},{"arguments":[{"name":"a","nativeSrc":"46499:1:23","nodeType":"YulIdentifier","src":"46499:1:23"}],"functionName":{"name":"mload","nativeSrc":"46493:5:23","nodeType":"YulIdentifier","src":"46493:5:23"},"nativeSrc":"46493:8:23","nodeType":"YulFunctionCall","src":"46493:8:23"}],"functionName":{"name":"keccak256","nativeSrc":"46469:9:23","nodeType":"YulIdentifier","src":"46469:9:23"},"nativeSrc":"46469:33:23","nodeType":"YulFunctionCall","src":"46469:33:23"},{"arguments":[{"arguments":[{"name":"b","nativeSrc":"46518:1:23","nodeType":"YulIdentifier","src":"46518:1:23"},{"kind":"number","nativeSrc":"46521:4:23","nodeType":"YulLiteral","src":"46521:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46514:3:23","nodeType":"YulIdentifier","src":"46514:3:23"},"nativeSrc":"46514:12:23","nodeType":"YulFunctionCall","src":"46514:12:23"},{"arguments":[{"name":"b","nativeSrc":"46534:1:23","nodeType":"YulIdentifier","src":"46534:1:23"}],"functionName":{"name":"mload","nativeSrc":"46528:5:23","nodeType":"YulIdentifier","src":"46528:5:23"},"nativeSrc":"46528:8:23","nodeType":"YulFunctionCall","src":"46528:8:23"}],"functionName":{"name":"keccak256","nativeSrc":"46504:9:23","nodeType":"YulIdentifier","src":"46504:9:23"},"nativeSrc":"46504:33:23","nodeType":"YulFunctionCall","src":"46504:33:23"}],"functionName":{"name":"eq","nativeSrc":"46466:2:23","nodeType":"YulIdentifier","src":"46466:2:23"},"nativeSrc":"46466:72:23","nodeType":"YulFunctionCall","src":"46466:72:23"},"variableNames":[{"name":"result","nativeSrc":"46456:6:23","nodeType":"YulIdentifier","src":"46456:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10876,"isOffset":false,"isSlot":false,"src":"46483:1:23","valueSize":1},{"declaration":10876,"isOffset":false,"isSlot":false,"src":"46499:1:23","valueSize":1},{"declaration":10878,"isOffset":false,"isSlot":false,"src":"46518:1:23","valueSize":1},{"declaration":10878,"isOffset":false,"isSlot":false,"src":"46534:1:23","valueSize":1},{"declaration":10881,"isOffset":false,"isSlot":false,"src":"46456:6:23","valueSize":1}],"id":10883,"nodeType":"InlineAssembly","src":"46433:115:23"}]},"documentation":{"id":10874,"nodeType":"StructuredDocumentation","src":"46253:40:23","text":"@dev Returns whether `a` equals `b`."},"id":10885,"implemented":true,"kind":"function","modifiers":[],"name":"eq","nameLocation":"46307:2:23","nodeType":"FunctionDefinition","parameters":{"id":10879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10876,"mutability":"mutable","name":"a","nameLocation":"46324:1:23","nodeType":"VariableDeclaration","scope":10885,"src":"46310:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10875,"name":"string","nodeType":"ElementaryTypeName","src":"46310:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10878,"mutability":"mutable","name":"b","nameLocation":"46341:1:23","nodeType":"VariableDeclaration","scope":10885,"src":"46327:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10877,"name":"string","nodeType":"ElementaryTypeName","src":"46327:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46309:34:23"},"returnParameters":{"id":10882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10881,"mutability":"mutable","name":"result","nameLocation":"46372:6:23","nodeType":"VariableDeclaration","scope":10885,"src":"46367:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10880,"name":"bool","nodeType":"ElementaryTypeName","src":"46367:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46366:13:23"},"scope":10950,"src":"46298:256:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10896,"nodeType":"Block","src":"46727:774:23","statements":[{"AST":{"nativeSrc":"46789:706:23","nodeType":"YulBlock","src":"46789:706:23","statements":[{"nativeSrc":"46881:46:23","nodeType":"YulVariableDeclaration","src":"46881:46:23","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"46898:1:23","nodeType":"YulLiteral","src":"46898:1:23","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"46916:1:23","nodeType":"YulIdentifier","src":"46916:1:23"}],"functionName":{"name":"iszero","nativeSrc":"46909:6:23","nodeType":"YulIdentifier","src":"46909:6:23"},"nativeSrc":"46909:9:23","nodeType":"YulFunctionCall","src":"46909:9:23"}],"functionName":{"name":"not","nativeSrc":"46905:3:23","nodeType":"YulIdentifier","src":"46905:3:23"},"nativeSrc":"46905:14:23","nodeType":"YulFunctionCall","src":"46905:14:23"},{"kind":"number","nativeSrc":"46921:3:23","nodeType":"YulLiteral","src":"46921:3:23","type":"","value":"255"}],"functionName":{"name":"div","nativeSrc":"46901:3:23","nodeType":"YulIdentifier","src":"46901:3:23"},"nativeSrc":"46901:24:23","nodeType":"YulFunctionCall","src":"46901:24:23"}],"functionName":{"name":"shl","nativeSrc":"46894:3:23","nodeType":"YulIdentifier","src":"46894:3:23"},"nativeSrc":"46894:32:23","nodeType":"YulFunctionCall","src":"46894:32:23"}],"functionName":{"name":"not","nativeSrc":"46890:3:23","nodeType":"YulIdentifier","src":"46890:3:23"},"nativeSrc":"46890:37:23","nodeType":"YulFunctionCall","src":"46890:37:23"},"variables":[{"name":"m","nativeSrc":"46885:1:23","nodeType":"YulTypedName","src":"46885:1:23","type":""}]},{"nativeSrc":"46957:45:23","nodeType":"YulVariableDeclaration","src":"46957:45:23","value":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"46973:1:23","nodeType":"YulIdentifier","src":"46973:1:23"},{"arguments":[{"name":"b","nativeSrc":"46979:1:23","nodeType":"YulIdentifier","src":"46979:1:23"},{"arguments":[{"name":"m","nativeSrc":"46986:1:23","nodeType":"YulIdentifier","src":"46986:1:23"},{"arguments":[{"name":"b","nativeSrc":"46993:1:23","nodeType":"YulIdentifier","src":"46993:1:23"},{"name":"m","nativeSrc":"46996:1:23","nodeType":"YulIdentifier","src":"46996:1:23"}],"functionName":{"name":"and","nativeSrc":"46989:3:23","nodeType":"YulIdentifier","src":"46989:3:23"},"nativeSrc":"46989:9:23","nodeType":"YulFunctionCall","src":"46989:9:23"}],"functionName":{"name":"add","nativeSrc":"46982:3:23","nodeType":"YulIdentifier","src":"46982:3:23"},"nativeSrc":"46982:17:23","nodeType":"YulFunctionCall","src":"46982:17:23"}],"functionName":{"name":"or","nativeSrc":"46976:2:23","nodeType":"YulIdentifier","src":"46976:2:23"},"nativeSrc":"46976:24:23","nodeType":"YulFunctionCall","src":"46976:24:23"}],"functionName":{"name":"or","nativeSrc":"46970:2:23","nodeType":"YulIdentifier","src":"46970:2:23"},"nativeSrc":"46970:31:23","nodeType":"YulFunctionCall","src":"46970:31:23"}],"functionName":{"name":"not","nativeSrc":"46966:3:23","nodeType":"YulIdentifier","src":"46966:3:23"},"nativeSrc":"46966:36:23","nodeType":"YulFunctionCall","src":"46966:36:23"},"variables":[{"name":"x","nativeSrc":"46961:1:23","nodeType":"YulTypedName","src":"46961:1:23","type":""}]},{"nativeSrc":"47015:44:23","nodeType":"YulVariableDeclaration","src":"47015:44:23","value":{"arguments":[{"kind":"number","nativeSrc":"47028:1:23","nodeType":"YulLiteral","src":"47028:1:23","type":"","value":"7"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47049:3:23","nodeType":"YulLiteral","src":"47049:3:23","type":"","value":"128"},{"name":"x","nativeSrc":"47054:1:23","nodeType":"YulIdentifier","src":"47054:1:23"}],"functionName":{"name":"shr","nativeSrc":"47045:3:23","nodeType":"YulIdentifier","src":"47045:3:23"},"nativeSrc":"47045:11:23","nodeType":"YulFunctionCall","src":"47045:11:23"}],"functionName":{"name":"iszero","nativeSrc":"47038:6:23","nodeType":"YulIdentifier","src":"47038:6:23"},"nativeSrc":"47038:19:23","nodeType":"YulFunctionCall","src":"47038:19:23"}],"functionName":{"name":"iszero","nativeSrc":"47031:6:23","nodeType":"YulIdentifier","src":"47031:6:23"},"nativeSrc":"47031:27:23","nodeType":"YulFunctionCall","src":"47031:27:23"}],"functionName":{"name":"shl","nativeSrc":"47024:3:23","nodeType":"YulIdentifier","src":"47024:3:23"},"nativeSrc":"47024:35:23","nodeType":"YulFunctionCall","src":"47024:35:23"},"variables":[{"name":"r","nativeSrc":"47019:1:23","nodeType":"YulTypedName","src":"47019:1:23","type":""}]},{"nativeSrc":"47072:54:23","nodeType":"YulAssignment","src":"47072:54:23","value":{"arguments":[{"name":"r","nativeSrc":"47080:1:23","nodeType":"YulIdentifier","src":"47080:1:23"},{"arguments":[{"kind":"number","nativeSrc":"47087:1:23","nodeType":"YulLiteral","src":"47087:1:23","type":"","value":"6"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47108:2:23","nodeType":"YulLiteral","src":"47108:2:23","type":"","value":"64"},{"arguments":[{"name":"r","nativeSrc":"47116:1:23","nodeType":"YulIdentifier","src":"47116:1:23"},{"name":"x","nativeSrc":"47119:1:23","nodeType":"YulIdentifier","src":"47119:1:23"}],"functionName":{"name":"shr","nativeSrc":"47112:3:23","nodeType":"YulIdentifier","src":"47112:3:23"},"nativeSrc":"47112:9:23","nodeType":"YulFunctionCall","src":"47112:9:23"}],"functionName":{"name":"shr","nativeSrc":"47104:3:23","nodeType":"YulIdentifier","src":"47104:3:23"},"nativeSrc":"47104:18:23","nodeType":"YulFunctionCall","src":"47104:18:23"}],"functionName":{"name":"iszero","nativeSrc":"47097:6:23","nodeType":"YulIdentifier","src":"47097:6:23"},"nativeSrc":"47097:26:23","nodeType":"YulFunctionCall","src":"47097:26:23"}],"functionName":{"name":"iszero","nativeSrc":"47090:6:23","nodeType":"YulIdentifier","src":"47090:6:23"},"nativeSrc":"47090:34:23","nodeType":"YulFunctionCall","src":"47090:34:23"}],"functionName":{"name":"shl","nativeSrc":"47083:3:23","nodeType":"YulIdentifier","src":"47083:3:23"},"nativeSrc":"47083:42:23","nodeType":"YulFunctionCall","src":"47083:42:23"}],"functionName":{"name":"or","nativeSrc":"47077:2:23","nodeType":"YulIdentifier","src":"47077:2:23"},"nativeSrc":"47077:49:23","nodeType":"YulFunctionCall","src":"47077:49:23"},"variableNames":[{"name":"r","nativeSrc":"47072:1:23","nodeType":"YulIdentifier","src":"47072:1:23"}]},{"nativeSrc":"47139:45:23","nodeType":"YulAssignment","src":"47139:45:23","value":{"arguments":[{"name":"r","nativeSrc":"47147:1:23","nodeType":"YulIdentifier","src":"47147:1:23"},{"arguments":[{"kind":"number","nativeSrc":"47154:1:23","nodeType":"YulLiteral","src":"47154:1:23","type":"","value":"5"},{"arguments":[{"kind":"number","nativeSrc":"47160:10:23","nodeType":"YulLiteral","src":"47160:10:23","type":"","value":"0xffffffff"},{"arguments":[{"name":"r","nativeSrc":"47176:1:23","nodeType":"YulIdentifier","src":"47176:1:23"},{"name":"x","nativeSrc":"47179:1:23","nodeType":"YulIdentifier","src":"47179:1:23"}],"functionName":{"name":"shr","nativeSrc":"47172:3:23","nodeType":"YulIdentifier","src":"47172:3:23"},"nativeSrc":"47172:9:23","nodeType":"YulFunctionCall","src":"47172:9:23"}],"functionName":{"name":"lt","nativeSrc":"47157:2:23","nodeType":"YulIdentifier","src":"47157:2:23"},"nativeSrc":"47157:25:23","nodeType":"YulFunctionCall","src":"47157:25:23"}],"functionName":{"name":"shl","nativeSrc":"47150:3:23","nodeType":"YulIdentifier","src":"47150:3:23"},"nativeSrc":"47150:33:23","nodeType":"YulFunctionCall","src":"47150:33:23"}],"functionName":{"name":"or","nativeSrc":"47144:2:23","nodeType":"YulIdentifier","src":"47144:2:23"},"nativeSrc":"47144:40:23","nodeType":"YulFunctionCall","src":"47144:40:23"},"variableNames":[{"name":"r","nativeSrc":"47139:1:23","nodeType":"YulIdentifier","src":"47139:1:23"}]},{"nativeSrc":"47197:41:23","nodeType":"YulAssignment","src":"47197:41:23","value":{"arguments":[{"name":"r","nativeSrc":"47205:1:23","nodeType":"YulIdentifier","src":"47205:1:23"},{"arguments":[{"kind":"number","nativeSrc":"47212:1:23","nodeType":"YulLiteral","src":"47212:1:23","type":"","value":"4"},{"arguments":[{"kind":"number","nativeSrc":"47218:6:23","nodeType":"YulLiteral","src":"47218:6:23","type":"","value":"0xffff"},{"arguments":[{"name":"r","nativeSrc":"47230:1:23","nodeType":"YulIdentifier","src":"47230:1:23"},{"name":"x","nativeSrc":"47233:1:23","nodeType":"YulIdentifier","src":"47233:1:23"}],"functionName":{"name":"shr","nativeSrc":"47226:3:23","nodeType":"YulIdentifier","src":"47226:3:23"},"nativeSrc":"47226:9:23","nodeType":"YulFunctionCall","src":"47226:9:23"}],"functionName":{"name":"lt","nativeSrc":"47215:2:23","nodeType":"YulIdentifier","src":"47215:2:23"},"nativeSrc":"47215:21:23","nodeType":"YulFunctionCall","src":"47215:21:23"}],"functionName":{"name":"shl","nativeSrc":"47208:3:23","nodeType":"YulIdentifier","src":"47208:3:23"},"nativeSrc":"47208:29:23","nodeType":"YulFunctionCall","src":"47208:29:23"}],"functionName":{"name":"or","nativeSrc":"47202:2:23","nodeType":"YulIdentifier","src":"47202:2:23"},"nativeSrc":"47202:36:23","nodeType":"YulFunctionCall","src":"47202:36:23"},"variableNames":[{"name":"r","nativeSrc":"47197:1:23","nodeType":"YulIdentifier","src":"47197:1:23"}]},{"nativeSrc":"47251:39:23","nodeType":"YulAssignment","src":"47251:39:23","value":{"arguments":[{"name":"r","nativeSrc":"47259:1:23","nodeType":"YulIdentifier","src":"47259:1:23"},{"arguments":[{"kind":"number","nativeSrc":"47266:1:23","nodeType":"YulLiteral","src":"47266:1:23","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"47272:4:23","nodeType":"YulLiteral","src":"47272:4:23","type":"","value":"0xff"},{"arguments":[{"name":"r","nativeSrc":"47282:1:23","nodeType":"YulIdentifier","src":"47282:1:23"},{"name":"x","nativeSrc":"47285:1:23","nodeType":"YulIdentifier","src":"47285:1:23"}],"functionName":{"name":"shr","nativeSrc":"47278:3:23","nodeType":"YulIdentifier","src":"47278:3:23"},"nativeSrc":"47278:9:23","nodeType":"YulFunctionCall","src":"47278:9:23"}],"functionName":{"name":"lt","nativeSrc":"47269:2:23","nodeType":"YulIdentifier","src":"47269:2:23"},"nativeSrc":"47269:19:23","nodeType":"YulFunctionCall","src":"47269:19:23"}],"functionName":{"name":"shl","nativeSrc":"47262:3:23","nodeType":"YulIdentifier","src":"47262:3:23"},"nativeSrc":"47262:27:23","nodeType":"YulFunctionCall","src":"47262:27:23"}],"functionName":{"name":"or","nativeSrc":"47256:2:23","nodeType":"YulIdentifier","src":"47256:2:23"},"nativeSrc":"47256:34:23","nodeType":"YulFunctionCall","src":"47256:34:23"},"variableNames":[{"name":"r","nativeSrc":"47251:1:23","nodeType":"YulIdentifier","src":"47251:1:23"}]},{"nativeSrc":"47346:139:23","nodeType":"YulAssignment","src":"47346:139:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"47368:1:23","nodeType":"YulIdentifier","src":"47368:1:23"}],"functionName":{"name":"mload","nativeSrc":"47362:5:23","nodeType":"YulIdentifier","src":"47362:5:23"},"nativeSrc":"47362:8:23","nodeType":"YulFunctionCall","src":"47362:8:23"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"47383:1:23","nodeType":"YulIdentifier","src":"47383:1:23"}],"functionName":{"name":"iszero","nativeSrc":"47376:6:23","nodeType":"YulIdentifier","src":"47376:6:23"},"nativeSrc":"47376:9:23","nodeType":"YulFunctionCall","src":"47376:9:23"},{"arguments":[{"kind":"number","nativeSrc":"47391:2:23","nodeType":"YulLiteral","src":"47391:2:23","type":"","value":"31"},{"arguments":[{"kind":"number","nativeSrc":"47399:1:23","nodeType":"YulLiteral","src":"47399:1:23","type":"","value":"3"},{"name":"r","nativeSrc":"47402:1:23","nodeType":"YulIdentifier","src":"47402:1:23"}],"functionName":{"name":"shr","nativeSrc":"47395:3:23","nodeType":"YulIdentifier","src":"47395:3:23"},"nativeSrc":"47395:9:23","nodeType":"YulFunctionCall","src":"47395:9:23"}],"functionName":{"name":"xor","nativeSrc":"47387:3:23","nodeType":"YulIdentifier","src":"47387:3:23"},"nativeSrc":"47387:18:23","nodeType":"YulFunctionCall","src":"47387:18:23"}],"functionName":{"name":"add","nativeSrc":"47372:3:23","nodeType":"YulIdentifier","src":"47372:3:23"},"nativeSrc":"47372:34:23","nodeType":"YulFunctionCall","src":"47372:34:23"}],"functionName":{"name":"eq","nativeSrc":"47359:2:23","nodeType":"YulIdentifier","src":"47359:2:23"},"nativeSrc":"47359:48:23","nodeType":"YulFunctionCall","src":"47359:48:23"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47437:1:23","nodeType":"YulLiteral","src":"47437:1:23","type":"","value":"8"},{"name":"r","nativeSrc":"47440:1:23","nodeType":"YulIdentifier","src":"47440:1:23"}],"functionName":{"name":"add","nativeSrc":"47433:3:23","nodeType":"YulIdentifier","src":"47433:3:23"},"nativeSrc":"47433:9:23","nodeType":"YulFunctionCall","src":"47433:9:23"},{"name":"b","nativeSrc":"47444:1:23","nodeType":"YulIdentifier","src":"47444:1:23"}],"functionName":{"name":"shr","nativeSrc":"47429:3:23","nodeType":"YulIdentifier","src":"47429:3:23"},"nativeSrc":"47429:17:23","nodeType":"YulFunctionCall","src":"47429:17:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"47456:1:23","nodeType":"YulLiteral","src":"47456:1:23","type":"","value":"8"},{"name":"r","nativeSrc":"47459:1:23","nodeType":"YulIdentifier","src":"47459:1:23"}],"functionName":{"name":"add","nativeSrc":"47452:3:23","nodeType":"YulIdentifier","src":"47452:3:23"},"nativeSrc":"47452:9:23","nodeType":"YulFunctionCall","src":"47452:9:23"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"47473:1:23","nodeType":"YulIdentifier","src":"47473:1:23"},{"kind":"number","nativeSrc":"47476:4:23","nodeType":"YulLiteral","src":"47476:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"47469:3:23","nodeType":"YulIdentifier","src":"47469:3:23"},"nativeSrc":"47469:12:23","nodeType":"YulFunctionCall","src":"47469:12:23"}],"functionName":{"name":"mload","nativeSrc":"47463:5:23","nodeType":"YulIdentifier","src":"47463:5:23"},"nativeSrc":"47463:19:23","nodeType":"YulFunctionCall","src":"47463:19:23"}],"functionName":{"name":"shr","nativeSrc":"47448:3:23","nodeType":"YulIdentifier","src":"47448:3:23"},"nativeSrc":"47448:35:23","nodeType":"YulFunctionCall","src":"47448:35:23"}],"functionName":{"name":"xor","nativeSrc":"47425:3:23","nodeType":"YulIdentifier","src":"47425:3:23"},"nativeSrc":"47425:59:23","nodeType":"YulFunctionCall","src":"47425:59:23"}],"functionName":{"name":"gt","nativeSrc":"47356:2:23","nodeType":"YulIdentifier","src":"47356:2:23"},"nativeSrc":"47356:129:23","nodeType":"YulFunctionCall","src":"47356:129:23"},"variableNames":[{"name":"result","nativeSrc":"47346:6:23","nodeType":"YulIdentifier","src":"47346:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10888,"isOffset":false,"isSlot":false,"src":"47368:1:23","valueSize":1},{"declaration":10888,"isOffset":false,"isSlot":false,"src":"47473:1:23","valueSize":1},{"declaration":10890,"isOffset":false,"isSlot":false,"src":"46916:1:23","valueSize":1},{"declaration":10890,"isOffset":false,"isSlot":false,"src":"46979:1:23","valueSize":1},{"declaration":10890,"isOffset":false,"isSlot":false,"src":"46993:1:23","valueSize":1},{"declaration":10890,"isOffset":false,"isSlot":false,"src":"47444:1:23","valueSize":1},{"declaration":10893,"isOffset":false,"isSlot":false,"src":"47346:6:23","valueSize":1}],"id":10895,"nodeType":"InlineAssembly","src":"46780:715:23"}]},"documentation":{"id":10886,"nodeType":"StructuredDocumentation","src":"46560:85:23","text":"@dev Returns whether `a` equals `b`, where `b` is a null-terminated small string."},"id":10897,"implemented":true,"kind":"function","modifiers":[],"name":"eqs","nameLocation":"46659:3:23","nodeType":"FunctionDefinition","parameters":{"id":10891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10888,"mutability":"mutable","name":"a","nameLocation":"46677:1:23","nodeType":"VariableDeclaration","scope":10897,"src":"46663:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10887,"name":"string","nodeType":"ElementaryTypeName","src":"46663:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10890,"mutability":"mutable","name":"b","nameLocation":"46688:1:23","nodeType":"VariableDeclaration","scope":10897,"src":"46680:9:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46680:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46662:28:23"},"returnParameters":{"id":10894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10893,"mutability":"mutable","name":"result","nameLocation":"46719:6:23","nodeType":"VariableDeclaration","scope":10897,"src":"46714:11:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10892,"name":"bool","nodeType":"ElementaryTypeName","src":"46714:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46713:13:23"},"scope":10950,"src":"46650:851:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10906,"nodeType":"Block","src":"47722:573:23","statements":[{"AST":{"nativeSrc":"47784:505:23","nodeType":"YulBlock","src":"47784:505:23","statements":[{"nativeSrc":"47930:349:23","nodeType":"YulAssignment","src":"47930:349:23","value":{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"48045:1:23","nodeType":"YulIdentifier","src":"48045:1:23"},{"kind":"number","nativeSrc":"48048:4:23","nodeType":"YulLiteral","src":"48048:4:23","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"48041:3:23","nodeType":"YulIdentifier","src":"48041:3:23"},"nativeSrc":"48041:12:23","nodeType":"YulFunctionCall","src":"48041:12:23"}],"functionName":{"name":"mload","nativeSrc":"48035:5:23","nodeType":"YulIdentifier","src":"48035:5:23"},"nativeSrc":"48035:19:23","nodeType":"YulFunctionCall","src":"48035:19:23"},{"arguments":[{"arguments":[{"arguments":[{"name":"a","nativeSrc":"48248:1:23","nodeType":"YulIdentifier","src":"48248:1:23"}],"functionName":{"name":"mload","nativeSrc":"48242:5:23","nodeType":"YulIdentifier","src":"48242:5:23"},"nativeSrc":"48242:8:23","nodeType":"YulFunctionCall","src":"48242:8:23"},{"kind":"number","nativeSrc":"48252:1:23","nodeType":"YulLiteral","src":"48252:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"48238:3:23","nodeType":"YulIdentifier","src":"48238:3:23"},"nativeSrc":"48238:16:23","nodeType":"YulFunctionCall","src":"48238:16:23"},{"kind":"number","nativeSrc":"48256:4:23","nodeType":"YulLiteral","src":"48256:4:23","type":"","value":"0x1f"}],"functionName":{"name":"lt","nativeSrc":"48235:2:23","nodeType":"YulIdentifier","src":"48235:2:23"},"nativeSrc":"48235:26:23","nodeType":"YulFunctionCall","src":"48235:26:23"}],"functionName":{"name":"mul","nativeSrc":"47956:3:23","nodeType":"YulIdentifier","src":"47956:3:23"},"nativeSrc":"47956:323:23","nodeType":"YulFunctionCall","src":"47956:323:23"},"variableNames":[{"name":"result","nativeSrc":"47930:6:23","nodeType":"YulIdentifier","src":"47930:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10900,"isOffset":false,"isSlot":false,"src":"48045:1:23","valueSize":1},{"declaration":10900,"isOffset":false,"isSlot":false,"src":"48248:1:23","valueSize":1},{"declaration":10903,"isOffset":false,"isSlot":false,"src":"47930:6:23","valueSize":1}],"id":10905,"nodeType":"InlineAssembly","src":"47775:514:23"}]},"documentation":{"id":10898,"nodeType":"StructuredDocumentation","src":"47507:137:23","text":"@dev Packs a single string with its length into a single word.\n Returns `bytes32(0)` if the length is zero or greater than 31."},"id":10907,"implemented":true,"kind":"function","modifiers":[],"name":"packOne","nameLocation":"47658:7:23","nodeType":"FunctionDefinition","parameters":{"id":10901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10900,"mutability":"mutable","name":"a","nameLocation":"47680:1:23","nodeType":"VariableDeclaration","scope":10907,"src":"47666:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10899,"name":"string","nodeType":"ElementaryTypeName","src":"47666:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47665:17:23"},"returnParameters":{"id":10904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10903,"mutability":"mutable","name":"result","nameLocation":"47714:6:23","nodeType":"VariableDeclaration","scope":10907,"src":"47706:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47706:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"47705:16:23"},"scope":10950,"src":"47649:646:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10916,"nodeType":"Block","src":"48582:529:23","statements":[{"AST":{"nativeSrc":"48644:461:23","nodeType":"YulBlock","src":"48644:461:23","statements":[{"nativeSrc":"48703:21:23","nodeType":"YulAssignment","src":"48703:21:23","value":{"arguments":[{"kind":"number","nativeSrc":"48719:4:23","nodeType":"YulLiteral","src":"48719:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"48713:5:23","nodeType":"YulIdentifier","src":"48713:5:23"},"nativeSrc":"48713:11:23","nodeType":"YulFunctionCall","src":"48713:11:23"},"variableNames":[{"name":"result","nativeSrc":"48703:6:23","nodeType":"YulIdentifier","src":"48703:6:23"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48813:4:23","nodeType":"YulLiteral","src":"48813:4:23","type":"","value":"0x40"},{"arguments":[{"name":"result","nativeSrc":"48823:6:23","nodeType":"YulIdentifier","src":"48823:6:23"},{"kind":"number","nativeSrc":"48831:4:23","nodeType":"YulLiteral","src":"48831:4:23","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"48819:3:23","nodeType":"YulIdentifier","src":"48819:3:23"},"nativeSrc":"48819:17:23","nodeType":"YulFunctionCall","src":"48819:17:23"}],"functionName":{"name":"mstore","nativeSrc":"48806:6:23","nodeType":"YulIdentifier","src":"48806:6:23"},"nativeSrc":"48806:31:23","nodeType":"YulFunctionCall","src":"48806:31:23"},"nativeSrc":"48806:31:23","nodeType":"YulExpressionStatement","src":"48806:31:23"},{"expression":{"arguments":[{"name":"result","nativeSrc":"48897:6:23","nodeType":"YulIdentifier","src":"48897:6:23"},{"kind":"number","nativeSrc":"48905:1:23","nodeType":"YulLiteral","src":"48905:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"48890:6:23","nodeType":"YulIdentifier","src":"48890:6:23"},"nativeSrc":"48890:17:23","nodeType":"YulFunctionCall","src":"48890:17:23"},"nativeSrc":"48890:17:23","nodeType":"YulExpressionStatement","src":"48890:17:23"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"48974:6:23","nodeType":"YulIdentifier","src":"48974:6:23"},{"kind":"number","nativeSrc":"48982:4:23","nodeType":"YulLiteral","src":"48982:4:23","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"48970:3:23","nodeType":"YulIdentifier","src":"48970:3:23"},"nativeSrc":"48970:17:23","nodeType":"YulFunctionCall","src":"48970:17:23"},{"name":"packed","nativeSrc":"48989:6:23","nodeType":"YulIdentifier","src":"48989:6:23"}],"functionName":{"name":"mstore","nativeSrc":"48963:6:23","nodeType":"YulIdentifier","src":"48963:6:23"},"nativeSrc":"48963:33:23","nodeType":"YulFunctionCall","src":"48963:33:23"},"nativeSrc":"48963:33:23","nodeType":"YulExpressionStatement","src":"48963:33:23"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"49062:6:23","nodeType":"YulIdentifier","src":"49062:6:23"},{"kind":"number","nativeSrc":"49070:4:23","nodeType":"YulLiteral","src":"49070:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"49058:3:23","nodeType":"YulIdentifier","src":"49058:3:23"},"nativeSrc":"49058:17:23","nodeType":"YulFunctionCall","src":"49058:17:23"},{"arguments":[{"name":"result","nativeSrc":"49083:6:23","nodeType":"YulIdentifier","src":"49083:6:23"}],"functionName":{"name":"mload","nativeSrc":"49077:5:23","nodeType":"YulIdentifier","src":"49077:5:23"},"nativeSrc":"49077:13:23","nodeType":"YulFunctionCall","src":"49077:13:23"}],"functionName":{"name":"add","nativeSrc":"49054:3:23","nodeType":"YulIdentifier","src":"49054:3:23"},"nativeSrc":"49054:37:23","nodeType":"YulFunctionCall","src":"49054:37:23"},{"kind":"number","nativeSrc":"49093:1:23","nodeType":"YulLiteral","src":"49093:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"49047:6:23","nodeType":"YulIdentifier","src":"49047:6:23"},"nativeSrc":"49047:48:23","nodeType":"YulFunctionCall","src":"49047:48:23"},"nativeSrc":"49047:48:23","nodeType":"YulExpressionStatement","src":"49047:48:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10910,"isOffset":false,"isSlot":false,"src":"48989:6:23","valueSize":1},{"declaration":10913,"isOffset":false,"isSlot":false,"src":"48703:6:23","valueSize":1},{"declaration":10913,"isOffset":false,"isSlot":false,"src":"48823:6:23","valueSize":1},{"declaration":10913,"isOffset":false,"isSlot":false,"src":"48897:6:23","valueSize":1},{"declaration":10913,"isOffset":false,"isSlot":false,"src":"48974:6:23","valueSize":1},{"declaration":10913,"isOffset":false,"isSlot":false,"src":"49062:6:23","valueSize":1},{"declaration":10913,"isOffset":false,"isSlot":false,"src":"49083:6:23","valueSize":1}],"id":10915,"nodeType":"InlineAssembly","src":"48635:470:23"}]},"documentation":{"id":10908,"nodeType":"StructuredDocumentation","src":"48301:196:23","text":"@dev Unpacks a string packed using {packOne}.\n Returns the empty string if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packOne}, the output behavior is undefined."},"id":10917,"implemented":true,"kind":"function","modifiers":[],"name":"unpackOne","nameLocation":"48511:9:23","nodeType":"FunctionDefinition","parameters":{"id":10911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10910,"mutability":"mutable","name":"packed","nameLocation":"48529:6:23","nodeType":"VariableDeclaration","scope":10917,"src":"48521:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48521:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48520:16:23"},"returnParameters":{"id":10914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10913,"mutability":"mutable","name":"result","nameLocation":"48574:6:23","nodeType":"VariableDeclaration","scope":10917,"src":"48560:20:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10912,"name":"string","nodeType":"ElementaryTypeName","src":"48560:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48559:22:23"},"scope":10950,"src":"48502:609:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10928,"nodeType":"Block","src":"49353:796:23","statements":[{"AST":{"nativeSrc":"49415:728:23","nodeType":"YulBlock","src":"49415:728:23","statements":[{"nativeSrc":"49429:23:23","nodeType":"YulVariableDeclaration","src":"49429:23:23","value":{"arguments":[{"name":"a","nativeSrc":"49450:1:23","nodeType":"YulIdentifier","src":"49450:1:23"}],"functionName":{"name":"mload","nativeSrc":"49444:5:23","nodeType":"YulIdentifier","src":"49444:5:23"},"nativeSrc":"49444:8:23","nodeType":"YulFunctionCall","src":"49444:8:23"},"variables":[{"name":"aLength","nativeSrc":"49433:7:23","nodeType":"YulTypedName","src":"49433:7:23","type":""}]},{"nativeSrc":"49598:535:23","nodeType":"YulAssignment","src":"49598:535:23","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"49754:1:23","nodeType":"YulLiteral","src":"49754:1:23","type":"","value":"3"},{"arguments":[{"kind":"number","nativeSrc":"49761:4:23","nodeType":"YulLiteral","src":"49761:4:23","type":"","value":"0x1f"},{"name":"aLength","nativeSrc":"49767:7:23","nodeType":"YulIdentifier","src":"49767:7:23"}],"functionName":{"name":"sub","nativeSrc":"49757:3:23","nodeType":"YulIdentifier","src":"49757:3:23"},"nativeSrc":"49757:18:23","nodeType":"YulFunctionCall","src":"49757:18:23"}],"functionName":{"name":"shl","nativeSrc":"49750:3:23","nodeType":"YulIdentifier","src":"49750:3:23"},"nativeSrc":"49750:26:23","nodeType":"YulFunctionCall","src":"49750:26:23"},{"arguments":[{"arguments":[{"name":"a","nativeSrc":"49788:1:23","nodeType":"YulIdentifier","src":"49788:1:23"},{"name":"aLength","nativeSrc":"49791:7:23","nodeType":"YulIdentifier","src":"49791:7:23"}],"functionName":{"name":"add","nativeSrc":"49784:3:23","nodeType":"YulIdentifier","src":"49784:3:23"},"nativeSrc":"49784:15:23","nodeType":"YulFunctionCall","src":"49784:15:23"}],"functionName":{"name":"mload","nativeSrc":"49778:5:23","nodeType":"YulIdentifier","src":"49778:5:23"},"nativeSrc":"49778:22:23","nodeType":"YulFunctionCall","src":"49778:22:23"}],"functionName":{"name":"shl","nativeSrc":"49746:3:23","nodeType":"YulIdentifier","src":"49746:3:23"},"nativeSrc":"49746:55:23","nodeType":"YulFunctionCall","src":"49746:55:23"},{"arguments":[{"arguments":[{"arguments":[{"name":"b","nativeSrc":"49841:1:23","nodeType":"YulIdentifier","src":"49841:1:23"},{"kind":"number","nativeSrc":"49844:4:23","nodeType":"YulLiteral","src":"49844:4:23","type":"","value":"0x1e"}],"functionName":{"name":"add","nativeSrc":"49837:3:23","nodeType":"YulIdentifier","src":"49837:3:23"},"nativeSrc":"49837:12:23","nodeType":"YulFunctionCall","src":"49837:12:23"},{"name":"aLength","nativeSrc":"49851:7:23","nodeType":"YulIdentifier","src":"49851:7:23"}],"functionName":{"name":"sub","nativeSrc":"49833:3:23","nodeType":"YulIdentifier","src":"49833:3:23"},"nativeSrc":"49833:26:23","nodeType":"YulFunctionCall","src":"49833:26:23"}],"functionName":{"name":"mload","nativeSrc":"49827:5:23","nodeType":"YulIdentifier","src":"49827:5:23"},"nativeSrc":"49827:33:23","nodeType":"YulFunctionCall","src":"49827:33:23"}],"functionName":{"name":"or","nativeSrc":"49718:2:23","nodeType":"YulIdentifier","src":"49718:2:23"},"nativeSrc":"49718:164:23","nodeType":"YulFunctionCall","src":"49718:164:23"},{"arguments":[{"arguments":[{"arguments":[{"name":"aLength","nativeSrc":"50086:7:23","nodeType":"YulIdentifier","src":"50086:7:23"},{"arguments":[{"name":"b","nativeSrc":"50101:1:23","nodeType":"YulIdentifier","src":"50101:1:23"}],"functionName":{"name":"mload","nativeSrc":"50095:5:23","nodeType":"YulIdentifier","src":"50095:5:23"},"nativeSrc":"50095:8:23","nodeType":"YulFunctionCall","src":"50095:8:23"}],"functionName":{"name":"add","nativeSrc":"50082:3:23","nodeType":"YulIdentifier","src":"50082:3:23"},"nativeSrc":"50082:22:23","nodeType":"YulFunctionCall","src":"50082:22:23"},{"kind":"number","nativeSrc":"50106:1:23","nodeType":"YulLiteral","src":"50106:1:23","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"50078:3:23","nodeType":"YulIdentifier","src":"50078:3:23"},"nativeSrc":"50078:30:23","nodeType":"YulFunctionCall","src":"50078:30:23"},{"kind":"number","nativeSrc":"50110:4:23","nodeType":"YulLiteral","src":"50110:4:23","type":"","value":"0x1e"}],"functionName":{"name":"lt","nativeSrc":"50075:2:23","nodeType":"YulIdentifier","src":"50075:2:23"},"nativeSrc":"50075:40:23","nodeType":"YulFunctionCall","src":"50075:40:23"}],"functionName":{"name":"mul","nativeSrc":"49624:3:23","nodeType":"YulIdentifier","src":"49624:3:23"},"nativeSrc":"49624:509:23","nodeType":"YulFunctionCall","src":"49624:509:23"},"variableNames":[{"name":"result","nativeSrc":"49598:6:23","nodeType":"YulIdentifier","src":"49598:6:23"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10920,"isOffset":false,"isSlot":false,"src":"49450:1:23","valueSize":1},{"declaration":10920,"isOffset":false,"isSlot":false,"src":"49788:1:23","valueSize":1},{"declaration":10922,"isOffset":false,"isSlot":false,"src":"49841:1:23","valueSize":1},{"declaration":10922,"isOffset":false,"isSlot":false,"src":"50101:1:23","valueSize":1},{"declaration":10925,"isOffset":false,"isSlot":false,"src":"49598:6:23","valueSize":1}],"id":10927,"nodeType":"InlineAssembly","src":"49406:737:23"}]},"documentation":{"id":10918,"nodeType":"StructuredDocumentation","src":"49117:141:23","text":"@dev Packs two strings with their lengths into a single word.\n Returns `bytes32(0)` if combined length is zero or greater than 30."},"id":10929,"implemented":true,"kind":"function","modifiers":[],"name":"packTwo","nameLocation":"49272:7:23","nodeType":"FunctionDefinition","parameters":{"id":10923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10920,"mutability":"mutable","name":"a","nameLocation":"49294:1:23","nodeType":"VariableDeclaration","scope":10929,"src":"49280:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10919,"name":"string","nodeType":"ElementaryTypeName","src":"49280:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10922,"mutability":"mutable","name":"b","nameLocation":"49311:1:23","nodeType":"VariableDeclaration","scope":10929,"src":"49297:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10921,"name":"string","nodeType":"ElementaryTypeName","src":"49297:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49279:34:23"},"returnParameters":{"id":10926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10925,"mutability":"mutable","name":"result","nameLocation":"49345:6:23","nodeType":"VariableDeclaration","scope":10929,"src":"49337:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49337:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49336:16:23"},"scope":10950,"src":"49263:886:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10940,"nodeType":"Block","src":"50488:790:23","statements":[{"AST":{"nativeSrc":"50550:722:23","nodeType":"YulBlock","src":"50550:722:23","statements":[{"nativeSrc":"50609:22:23","nodeType":"YulAssignment","src":"50609:22:23","value":{"arguments":[{"kind":"number","nativeSrc":"50626:4:23","nodeType":"YulLiteral","src":"50626:4:23","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"50620:5:23","nodeType":"YulIdentifier","src":"50620:5:23"},"nativeSrc":"50620:11:23","nodeType":"YulFunctionCall","src":"50620:11:23"},"variableNames":[{"name":"resultA","nativeSrc":"50609:7:23","nodeType":"YulIdentifier","src":"50609:7:23"}]},{"nativeSrc":"50644:29:23","nodeType":"YulAssignment","src":"50644:29:23","value":{"arguments":[{"name":"resultA","nativeSrc":"50659:7:23","nodeType":"YulIdentifier","src":"50659:7:23"},{"kind":"number","nativeSrc":"50668:4:23","nodeType":"YulLiteral","src":"50668:4:23","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"50655:3:23","nodeType":"YulIdentifier","src":"50655:3:23"},"nativeSrc":"50655:18:23","nodeType":"YulFunctionCall","src":"50655:18:23"},"variableNames":[{"name":"resultB","nativeSrc":"50644:7:23","nodeType":"YulIdentifier","src":"50644:7:23"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50792:4:23","nodeType":"YulLiteral","src":"50792:4:23","type":"","value":"0x40"},{"arguments":[{"name":"resultB","nativeSrc":"50802:7:23","nodeType":"YulIdentifier","src":"50802:7:23"},{"kind":"number","nativeSrc":"50811:4:23","nodeType":"YulLiteral","src":"50811:4:23","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"50798:3:23","nodeType":"YulIdentifier","src":"50798:3:23"},"nativeSrc":"50798:18:23","nodeType":"YulFunctionCall","src":"50798:18:23"}],"functionName":{"name":"mstore","nativeSrc":"50785:6:23","nodeType":"YulIdentifier","src":"50785:6:23"},"nativeSrc":"50785:32:23","nodeType":"YulFunctionCall","src":"50785:32:23"},"nativeSrc":"50785:32:23","nodeType":"YulExpressionStatement","src":"50785:32:23"},{"expression":{"arguments":[{"name":"resultA","nativeSrc":"50878:7:23","nodeType":"YulIdentifier","src":"50878:7:23"},{"kind":"number","nativeSrc":"50887:1:23","nodeType":"YulLiteral","src":"50887:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50871:6:23","nodeType":"YulIdentifier","src":"50871:6:23"},"nativeSrc":"50871:18:23","nodeType":"YulFunctionCall","src":"50871:18:23"},"nativeSrc":"50871:18:23","nodeType":"YulExpressionStatement","src":"50871:18:23"},{"expression":{"arguments":[{"name":"resultB","nativeSrc":"50909:7:23","nodeType":"YulIdentifier","src":"50909:7:23"},{"kind":"number","nativeSrc":"50918:1:23","nodeType":"YulLiteral","src":"50918:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"50902:6:23","nodeType":"YulIdentifier","src":"50902:6:23"},"nativeSrc":"50902:18:23","nodeType":"YulFunctionCall","src":"50902:18:23"},"nativeSrc":"50902:18:23","nodeType":"YulExpressionStatement","src":"50902:18:23"},{"expression":{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"50988:7:23","nodeType":"YulIdentifier","src":"50988:7:23"},{"kind":"number","nativeSrc":"50997:4:23","nodeType":"YulLiteral","src":"50997:4:23","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"50984:3:23","nodeType":"YulIdentifier","src":"50984:3:23"},"nativeSrc":"50984:18:23","nodeType":"YulFunctionCall","src":"50984:18:23"},{"name":"packed","nativeSrc":"51004:6:23","nodeType":"YulIdentifier","src":"51004:6:23"}],"functionName":{"name":"mstore","nativeSrc":"50977:6:23","nodeType":"YulIdentifier","src":"50977:6:23"},"nativeSrc":"50977:34:23","nodeType":"YulFunctionCall","src":"50977:34:23"},"nativeSrc":"50977:34:23","nodeType":"YulExpressionStatement","src":"50977:34:23"},{"expression":{"arguments":[{"arguments":[{"name":"resultB","nativeSrc":"51035:7:23","nodeType":"YulIdentifier","src":"51035:7:23"},{"kind":"number","nativeSrc":"51044:4:23","nodeType":"YulLiteral","src":"51044:4:23","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"51031:3:23","nodeType":"YulIdentifier","src":"51031:3:23"},"nativeSrc":"51031:18:23","nodeType":"YulFunctionCall","src":"51031:18:23"},{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"51065:7:23","nodeType":"YulIdentifier","src":"51065:7:23"},{"kind":"number","nativeSrc":"51074:4:23","nodeType":"YulLiteral","src":"51074:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51061:3:23","nodeType":"YulIdentifier","src":"51061:3:23"},"nativeSrc":"51061:18:23","nodeType":"YulFunctionCall","src":"51061:18:23"},{"arguments":[{"name":"resultA","nativeSrc":"51087:7:23","nodeType":"YulIdentifier","src":"51087:7:23"}],"functionName":{"name":"mload","nativeSrc":"51081:5:23","nodeType":"YulIdentifier","src":"51081:5:23"},"nativeSrc":"51081:14:23","nodeType":"YulFunctionCall","src":"51081:14:23"}],"functionName":{"name":"add","nativeSrc":"51057:3:23","nodeType":"YulIdentifier","src":"51057:3:23"},"nativeSrc":"51057:39:23","nodeType":"YulFunctionCall","src":"51057:39:23"}],"functionName":{"name":"mload","nativeSrc":"51051:5:23","nodeType":"YulIdentifier","src":"51051:5:23"},"nativeSrc":"51051:46:23","nodeType":"YulFunctionCall","src":"51051:46:23"}],"functionName":{"name":"mstore","nativeSrc":"51024:6:23","nodeType":"YulIdentifier","src":"51024:6:23"},"nativeSrc":"51024:74:23","nodeType":"YulFunctionCall","src":"51024:74:23"},"nativeSrc":"51024:74:23","nodeType":"YulExpressionStatement","src":"51024:74:23"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultA","nativeSrc":"51164:7:23","nodeType":"YulIdentifier","src":"51164:7:23"},{"kind":"number","nativeSrc":"51173:4:23","nodeType":"YulLiteral","src":"51173:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51160:3:23","nodeType":"YulIdentifier","src":"51160:3:23"},"nativeSrc":"51160:18:23","nodeType":"YulFunctionCall","src":"51160:18:23"},{"arguments":[{"name":"resultA","nativeSrc":"51186:7:23","nodeType":"YulIdentifier","src":"51186:7:23"}],"functionName":{"name":"mload","nativeSrc":"51180:5:23","nodeType":"YulIdentifier","src":"51180:5:23"},"nativeSrc":"51180:14:23","nodeType":"YulFunctionCall","src":"51180:14:23"}],"functionName":{"name":"add","nativeSrc":"51156:3:23","nodeType":"YulIdentifier","src":"51156:3:23"},"nativeSrc":"51156:39:23","nodeType":"YulFunctionCall","src":"51156:39:23"},{"kind":"number","nativeSrc":"51197:1:23","nodeType":"YulLiteral","src":"51197:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51149:6:23","nodeType":"YulIdentifier","src":"51149:6:23"},"nativeSrc":"51149:50:23","nodeType":"YulFunctionCall","src":"51149:50:23"},"nativeSrc":"51149:50:23","nodeType":"YulExpressionStatement","src":"51149:50:23"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"resultB","nativeSrc":"51227:7:23","nodeType":"YulIdentifier","src":"51227:7:23"},{"kind":"number","nativeSrc":"51236:4:23","nodeType":"YulLiteral","src":"51236:4:23","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"51223:3:23","nodeType":"YulIdentifier","src":"51223:3:23"},"nativeSrc":"51223:18:23","nodeType":"YulFunctionCall","src":"51223:18:23"},{"arguments":[{"name":"resultB","nativeSrc":"51249:7:23","nodeType":"YulIdentifier","src":"51249:7:23"}],"functionName":{"name":"mload","nativeSrc":"51243:5:23","nodeType":"YulIdentifier","src":"51243:5:23"},"nativeSrc":"51243:14:23","nodeType":"YulFunctionCall","src":"51243:14:23"}],"functionName":{"name":"add","nativeSrc":"51219:3:23","nodeType":"YulIdentifier","src":"51219:3:23"},"nativeSrc":"51219:39:23","nodeType":"YulFunctionCall","src":"51219:39:23"},{"kind":"number","nativeSrc":"51260:1:23","nodeType":"YulLiteral","src":"51260:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51212:6:23","nodeType":"YulIdentifier","src":"51212:6:23"},"nativeSrc":"51212:50:23","nodeType":"YulFunctionCall","src":"51212:50:23"},"nativeSrc":"51212:50:23","nodeType":"YulExpressionStatement","src":"51212:50:23"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10932,"isOffset":false,"isSlot":false,"src":"51004:6:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"50609:7:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"50659:7:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"50878:7:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"50988:7:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"51065:7:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"51087:7:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"51164:7:23","valueSize":1},{"declaration":10935,"isOffset":false,"isSlot":false,"src":"51186:7:23","valueSize":1},{"declaration":10937,"isOffset":false,"isSlot":false,"src":"50644:7:23","valueSize":1},{"declaration":10937,"isOffset":false,"isSlot":false,"src":"50802:7:23","valueSize":1},{"declaration":10937,"isOffset":false,"isSlot":false,"src":"50909:7:23","valueSize":1},{"declaration":10937,"isOffset":false,"isSlot":false,"src":"51035:7:23","valueSize":1},{"declaration":10937,"isOffset":false,"isSlot":false,"src":"51227:7:23","valueSize":1},{"declaration":10937,"isOffset":false,"isSlot":false,"src":"51249:7:23","valueSize":1}],"id":10939,"nodeType":"InlineAssembly","src":"50541:731:23"}]},"documentation":{"id":10930,"nodeType":"StructuredDocumentation","src":"50155:196:23","text":"@dev Unpacks strings packed using {packTwo}.\n Returns the empty strings if `packed` is `bytes32(0)`.\n If `packed` is not an output of {packTwo}, the output behavior is undefined."},"id":10941,"implemented":true,"kind":"function","modifiers":[],"name":"unpackTwo","nameLocation":"50365:9:23","nodeType":"FunctionDefinition","parameters":{"id":10933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10932,"mutability":"mutable","name":"packed","nameLocation":"50383:6:23","nodeType":"VariableDeclaration","scope":10941,"src":"50375:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50375:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"50374:16:23"},"returnParameters":{"id":10938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10935,"mutability":"mutable","name":"resultA","nameLocation":"50452:7:23","nodeType":"VariableDeclaration","scope":10941,"src":"50438:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10934,"name":"string","nodeType":"ElementaryTypeName","src":"50438:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10937,"mutability":"mutable","name":"resultB","nameLocation":"50475:7:23","nodeType":"VariableDeclaration","scope":10941,"src":"50461:21:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10936,"name":"string","nodeType":"ElementaryTypeName","src":"50461:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50437:46:23"},"scope":10950,"src":"50356:922:23","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10948,"nodeType":"Block","src":"51388:600:23","statements":[{"AST":{"nativeSrc":"51407:575:23","nodeType":"YulBlock","src":"51407:575:23","statements":[{"nativeSrc":"51499:28:23","nodeType":"YulVariableDeclaration","src":"51499:28:23","value":{"arguments":[{"name":"a","nativeSrc":"51519:1:23","nodeType":"YulIdentifier","src":"51519:1:23"},{"kind":"number","nativeSrc":"51522:4:23","nodeType":"YulLiteral","src":"51522:4:23","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"51515:3:23","nodeType":"YulIdentifier","src":"51515:3:23"},"nativeSrc":"51515:12:23","nodeType":"YulFunctionCall","src":"51515:12:23"},"variables":[{"name":"retStart","nativeSrc":"51503:8:23","nodeType":"YulTypedName","src":"51503:8:23","type":""}]},{"nativeSrc":"51540:42:23","nodeType":"YulVariableDeclaration","src":"51540:42:23","value":{"arguments":[{"arguments":[{"name":"a","nativeSrc":"51573:1:23","nodeType":"YulIdentifier","src":"51573:1:23"}],"functionName":{"name":"mload","nativeSrc":"51567:5:23","nodeType":"YulIdentifier","src":"51567:5:23"},"nativeSrc":"51567:8:23","nodeType":"YulFunctionCall","src":"51567:8:23"},{"kind":"number","nativeSrc":"51577:4:23","nodeType":"YulLiteral","src":"51577:4:23","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"51563:3:23","nodeType":"YulIdentifier","src":"51563:3:23"},"nativeSrc":"51563:19:23","nodeType":"YulFunctionCall","src":"51563:19:23"},"variables":[{"name":"retUnpaddedSize","nativeSrc":"51544:15:23","nodeType":"YulTypedName","src":"51544:15:23","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"retStart","nativeSrc":"51736:8:23","nodeType":"YulIdentifier","src":"51736:8:23"},{"name":"retUnpaddedSize","nativeSrc":"51746:15:23","nodeType":"YulIdentifier","src":"51746:15:23"}],"functionName":{"name":"add","nativeSrc":"51732:3:23","nodeType":"YulIdentifier","src":"51732:3:23"},"nativeSrc":"51732:30:23","nodeType":"YulFunctionCall","src":"51732:30:23"},{"kind":"number","nativeSrc":"51764:1:23","nodeType":"YulLiteral","src":"51764:1:23","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"51725:6:23","nodeType":"YulIdentifier","src":"51725:6:23"},"nativeSrc":"51725:41:23","nodeType":"YulFunctionCall","src":"51725:41:23"},"nativeSrc":"51725:41:23","nodeType":"YulExpressionStatement","src":"51725:41:23"},{"expression":{"arguments":[{"name":"retStart","nativeSrc":"51826:8:23","nodeType":"YulIdentifier","src":"51826:8:23"},{"kind":"number","nativeSrc":"51836:4:23","nodeType":"YulLiteral","src":"51836:4:23","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"51819:6:23","nodeType":"YulIdentifier","src":"51819:6:23"},"nativeSrc":"51819:22:23","nodeType":"YulFunctionCall","src":"51819:22:23"},"nativeSrc":"51819:22:23","nodeType":"YulExpressionStatement","src":"51819:22:23"},{"expression":{"arguments":[{"name":"retStart","nativeSrc":"51919:8:23","nodeType":"YulIdentifier","src":"51919:8:23"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"51937:4:23","nodeType":"YulLiteral","src":"51937:4:23","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"51933:3:23","nodeType":"YulIdentifier","src":"51933:3:23"},"nativeSrc":"51933:9:23","nodeType":"YulFunctionCall","src":"51933:9:23"},{"arguments":[{"kind":"number","nativeSrc":"51948:4:23","nodeType":"YulLiteral","src":"51948:4:23","type":"","value":"0x1f"},{"name":"retUnpaddedSize","nativeSrc":"51954:15:23","nodeType":"YulIdentifier","src":"51954:15:23"}],"functionName":{"name":"add","nativeSrc":"51944:3:23","nodeType":"YulIdentifier","src":"51944:3:23"},"nativeSrc":"51944:26:23","nodeType":"YulFunctionCall","src":"51944:26:23"}],"functionName":{"name":"and","nativeSrc":"51929:3:23","nodeType":"YulIdentifier","src":"51929:3:23"},"nativeSrc":"51929:42:23","nodeType":"YulFunctionCall","src":"51929:42:23"}],"functionName":{"name":"return","nativeSrc":"51912:6:23","nodeType":"YulIdentifier","src":"51912:6:23"},"nativeSrc":"51912:60:23","nodeType":"YulFunctionCall","src":"51912:60:23"},"nativeSrc":"51912:60:23","nodeType":"YulExpressionStatement","src":"51912:60:23"}]},"evmVersion":"cancun","externalReferences":[{"declaration":10944,"isOffset":false,"isSlot":false,"src":"51519:1:23","valueSize":1},{"declaration":10944,"isOffset":false,"isSlot":false,"src":"51573:1:23","valueSize":1}],"id":10947,"nodeType":"InlineAssembly","src":"51398:584:23"}]},"documentation":{"id":10942,"nodeType":"StructuredDocumentation","src":"51284:46:23","text":"@dev Directly returns `a` without copying."},"id":10949,"implemented":true,"kind":"function","modifiers":[],"name":"directReturn","nameLocation":"51344:12:23","nodeType":"FunctionDefinition","parameters":{"id":10945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10944,"mutability":"mutable","name":"a","nameLocation":"51371:1:23","nodeType":"VariableDeclaration","scope":10949,"src":"51357:15:23","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10943,"name":"string","nodeType":"ElementaryTypeName","src":"51357:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51356:17:23"},"returnParameters":{"id":10946,"nodeType":"ParameterList","parameters":[],"src":"51388:0:23"},"scope":10950,"src":"51335:653:23","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10951,"src":"648:51342:23","usedErrors":[10299,10302],"usedEvents":[]}],"src":"32:51959:23"},"id":23},"@solady/utils/LibZip.sol":{"ast":{"absolutePath":"@solady/utils/LibZip.sol","exportedSymbols":{"LibZip":[11000]},"id":11001,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10952,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:24"},{"abstract":false,"baseContracts":[],"canonicalName":"LibZip","contractDependencies":[],"contractKind":"library","documentation":{"id":10953,"nodeType":"StructuredDocumentation","src":"57:435:24","text":"@notice Library for compressing and decompressing bytes.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)\n @author Calldata compression by clabby (https://github.com/clabby/op-kompressor)\n @author FastLZ by ariya (https://github.com/ariya/FastLZ)\n @dev Note:\n The accompanying solady.js library includes implementations of\n FastLZ and calldata operations for convenience."},"fullyImplemented":true,"id":11000,"linearizedBaseContracts":[11000],"name":"LibZip","nameLocation":"500:6:24","nodeType":"ContractDefinition","nodes":[{"body":{"id":10962,"nodeType":"Block","src":"1186:3866:24","statements":[{"AST":{"nativeSrc":"1248:3798:24","nodeType":"YulBlock","src":"1248:3798:24","statements":[{"body":{"nativeSrc":"1289:80:24","nodeType":"YulBlock","src":"1289:80:24","statements":[{"expression":{"arguments":[{"name":"d_","nativeSrc":"1315:2:24","nodeType":"YulIdentifier","src":"1315:2:24"},{"name":"v_","nativeSrc":"1319:2:24","nodeType":"YulIdentifier","src":"1319:2:24"}],"functionName":{"name":"mstore8","nativeSrc":"1307:7:24","nodeType":"YulIdentifier","src":"1307:7:24"},"nativeSrc":"1307:15:24","nodeType":"YulFunctionCall","src":"1307:15:24"},"nativeSrc":"1307:15:24","nodeType":"YulExpressionStatement","src":"1307:15:24"},{"nativeSrc":"1339:16:24","nodeType":"YulAssignment","src":"1339:16:24","value":{"arguments":[{"name":"d_","nativeSrc":"1349:2:24","nodeType":"YulIdentifier","src":"1349:2:24"},{"kind":"number","nativeSrc":"1353:1:24","nodeType":"YulLiteral","src":"1353:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1345:3:24","nodeType":"YulIdentifier","src":"1345:3:24"},"nativeSrc":"1345:10:24","nodeType":"YulFunctionCall","src":"1345:10:24"},"variableNames":[{"name":"_d","nativeSrc":"1339:2:24","nodeType":"YulIdentifier","src":"1339:2:24"}]}]},"name":"ms8","nativeSrc":"1262:107:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"d_","nativeSrc":"1275:2:24","nodeType":"YulTypedName","src":"1275:2:24","type":""},{"name":"v_","nativeSrc":"1279:2:24","nodeType":"YulTypedName","src":"1279:2:24","type":""}],"returnVariables":[{"name":"_d","nativeSrc":"1286:2:24","nodeType":"YulTypedName","src":"1286:2:24","type":""}],"src":"1262:107:24"},{"body":{"nativeSrc":"1405:132:24","nodeType":"YulBlock","src":"1405:132:24","statements":[{"nativeSrc":"1423:15:24","nodeType":"YulAssignment","src":"1423:15:24","value":{"arguments":[{"name":"p_","nativeSrc":"1435:2:24","nodeType":"YulIdentifier","src":"1435:2:24"}],"functionName":{"name":"mload","nativeSrc":"1429:5:24","nodeType":"YulIdentifier","src":"1429:5:24"},"nativeSrc":"1429:9:24","nodeType":"YulFunctionCall","src":"1429:9:24"},"variableNames":[{"name":"_u","nativeSrc":"1423:2:24","nodeType":"YulIdentifier","src":"1423:2:24"}]},{"nativeSrc":"1455:68:24","nodeType":"YulAssignment","src":"1455:68:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1468:2:24","nodeType":"YulLiteral","src":"1468:2:24","type":"","value":"16"},{"arguments":[{"kind":"number","nativeSrc":"1477:1:24","nodeType":"YulLiteral","src":"1477:1:24","type":"","value":"2"},{"name":"_u","nativeSrc":"1480:2:24","nodeType":"YulIdentifier","src":"1480:2:24"}],"functionName":{"name":"byte","nativeSrc":"1472:4:24","nodeType":"YulIdentifier","src":"1472:4:24"},"nativeSrc":"1472:11:24","nodeType":"YulFunctionCall","src":"1472:11:24"}],"functionName":{"name":"shl","nativeSrc":"1464:3:24","nodeType":"YulIdentifier","src":"1464:3:24"},"nativeSrc":"1464:20:24","nodeType":"YulFunctionCall","src":"1464:20:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1493:1:24","nodeType":"YulLiteral","src":"1493:1:24","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"1501:1:24","nodeType":"YulLiteral","src":"1501:1:24","type":"","value":"1"},{"name":"_u","nativeSrc":"1504:2:24","nodeType":"YulIdentifier","src":"1504:2:24"}],"functionName":{"name":"byte","nativeSrc":"1496:4:24","nodeType":"YulIdentifier","src":"1496:4:24"},"nativeSrc":"1496:11:24","nodeType":"YulFunctionCall","src":"1496:11:24"}],"functionName":{"name":"shl","nativeSrc":"1489:3:24","nodeType":"YulIdentifier","src":"1489:3:24"},"nativeSrc":"1489:19:24","nodeType":"YulFunctionCall","src":"1489:19:24"},{"arguments":[{"kind":"number","nativeSrc":"1515:1:24","nodeType":"YulLiteral","src":"1515:1:24","type":"","value":"0"},{"name":"_u","nativeSrc":"1518:2:24","nodeType":"YulIdentifier","src":"1518:2:24"}],"functionName":{"name":"byte","nativeSrc":"1510:4:24","nodeType":"YulIdentifier","src":"1510:4:24"},"nativeSrc":"1510:11:24","nodeType":"YulFunctionCall","src":"1510:11:24"}],"functionName":{"name":"or","nativeSrc":"1486:2:24","nodeType":"YulIdentifier","src":"1486:2:24"},"nativeSrc":"1486:36:24","nodeType":"YulFunctionCall","src":"1486:36:24"}],"functionName":{"name":"or","nativeSrc":"1461:2:24","nodeType":"YulIdentifier","src":"1461:2:24"},"nativeSrc":"1461:62:24","nodeType":"YulFunctionCall","src":"1461:62:24"},"variableNames":[{"name":"_u","nativeSrc":"1455:2:24","nodeType":"YulIdentifier","src":"1455:2:24"}]}]},"name":"u24","nativeSrc":"1382:155:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"p_","nativeSrc":"1395:2:24","nodeType":"YulTypedName","src":"1395:2:24","type":""}],"returnVariables":[{"name":"_u","nativeSrc":"1402:2:24","nodeType":"YulTypedName","src":"1402:2:24","type":""}],"src":"1382:155:24"},{"body":{"nativeSrc":"1581:205:24","nodeType":"YulBlock","src":"1581:205:24","statements":[{"body":{"nativeSrc":"1657:115:24","nodeType":"YulBlock","src":"1657:115:24","statements":[{"nativeSrc":"1679:75:24","nodeType":"YulAssignment","src":"1679:75:24","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"1701:1:24","nodeType":"YulLiteral","src":"1701:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"arguments":[{"name":"p_","nativeSrc":"1718:2:24","nodeType":"YulIdentifier","src":"1718:2:24"},{"name":"_l","nativeSrc":"1722:2:24","nodeType":"YulIdentifier","src":"1722:2:24"}],"functionName":{"name":"add","nativeSrc":"1714:3:24","nodeType":"YulIdentifier","src":"1714:3:24"},"nativeSrc":"1714:11:24","nodeType":"YulFunctionCall","src":"1714:11:24"}],"functionName":{"name":"mload","nativeSrc":"1708:5:24","nodeType":"YulIdentifier","src":"1708:5:24"},"nativeSrc":"1708:18:24","nodeType":"YulFunctionCall","src":"1708:18:24"},{"arguments":[{"arguments":[{"name":"q_","nativeSrc":"1738:2:24","nodeType":"YulIdentifier","src":"1738:2:24"},{"name":"_l","nativeSrc":"1742:2:24","nodeType":"YulIdentifier","src":"1742:2:24"}],"functionName":{"name":"add","nativeSrc":"1734:3:24","nodeType":"YulIdentifier","src":"1734:3:24"},"nativeSrc":"1734:11:24","nodeType":"YulFunctionCall","src":"1734:11:24"}],"functionName":{"name":"mload","nativeSrc":"1728:5:24","nodeType":"YulIdentifier","src":"1728:5:24"},"nativeSrc":"1728:18:24","nodeType":"YulFunctionCall","src":"1728:18:24"}],"functionName":{"name":"xor","nativeSrc":"1704:3:24","nodeType":"YulIdentifier","src":"1704:3:24"},"nativeSrc":"1704:43:24","nodeType":"YulFunctionCall","src":"1704:43:24"}],"functionName":{"name":"byte","nativeSrc":"1696:4:24","nodeType":"YulIdentifier","src":"1696:4:24"},"nativeSrc":"1696:52:24","nodeType":"YulFunctionCall","src":"1696:52:24"}],"functionName":{"name":"iszero","nativeSrc":"1689:6:24","nodeType":"YulIdentifier","src":"1689:6:24"},"nativeSrc":"1689:60:24","nodeType":"YulFunctionCall","src":"1689:60:24"},{"name":"e_","nativeSrc":"1751:2:24","nodeType":"YulIdentifier","src":"1751:2:24"}],"functionName":{"name":"mul","nativeSrc":"1685:3:24","nodeType":"YulIdentifier","src":"1685:3:24"},"nativeSrc":"1685:69:24","nodeType":"YulFunctionCall","src":"1685:69:24"},"variableNames":[{"name":"e_","nativeSrc":"1679:2:24","nodeType":"YulIdentifier","src":"1679:2:24"}]}]},"condition":{"arguments":[{"name":"_l","nativeSrc":"1628:2:24","nodeType":"YulIdentifier","src":"1628:2:24"},{"name":"e_","nativeSrc":"1632:2:24","nodeType":"YulIdentifier","src":"1632:2:24"}],"functionName":{"name":"lt","nativeSrc":"1625:2:24","nodeType":"YulIdentifier","src":"1625:2:24"},"nativeSrc":"1625:10:24","nodeType":"YulFunctionCall","src":"1625:10:24"},"nativeSrc":"1599:173:24","nodeType":"YulForLoop","post":{"nativeSrc":"1636:20:24","nodeType":"YulBlock","src":"1636:20:24","statements":[{"nativeSrc":"1638:16:24","nodeType":"YulAssignment","src":"1638:16:24","value":{"arguments":[{"name":"_l","nativeSrc":"1648:2:24","nodeType":"YulIdentifier","src":"1648:2:24"},{"kind":"number","nativeSrc":"1652:1:24","nodeType":"YulLiteral","src":"1652:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"1644:3:24","nodeType":"YulIdentifier","src":"1644:3:24"},"nativeSrc":"1644:10:24","nodeType":"YulFunctionCall","src":"1644:10:24"},"variableNames":[{"name":"_l","nativeSrc":"1638:2:24","nodeType":"YulIdentifier","src":"1638:2:24"}]}]},"pre":{"nativeSrc":"1603:21:24","nodeType":"YulBlock","src":"1603:21:24","statements":[{"nativeSrc":"1605:17:24","nodeType":"YulAssignment","src":"1605:17:24","value":{"arguments":[{"name":"e_","nativeSrc":"1615:2:24","nodeType":"YulIdentifier","src":"1615:2:24"},{"name":"q_","nativeSrc":"1619:2:24","nodeType":"YulIdentifier","src":"1619:2:24"}],"functionName":{"name":"sub","nativeSrc":"1611:3:24","nodeType":"YulIdentifier","src":"1611:3:24"},"nativeSrc":"1611:11:24","nodeType":"YulFunctionCall","src":"1611:11:24"},"variableNames":[{"name":"e_","nativeSrc":"1605:2:24","nodeType":"YulIdentifier","src":"1605:2:24"}]}]},"src":"1599:173:24"}]},"name":"cmp","nativeSrc":"1550:236:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"p_","nativeSrc":"1563:2:24","nodeType":"YulTypedName","src":"1563:2:24","type":""},{"name":"q_","nativeSrc":"1567:2:24","nodeType":"YulTypedName","src":"1567:2:24","type":""},{"name":"e_","nativeSrc":"1571:2:24","nodeType":"YulTypedName","src":"1571:2:24","type":""}],"returnVariables":[{"name":"_l","nativeSrc":"1578:2:24","nodeType":"YulTypedName","src":"1578:2:24","type":""}],"src":"1550:236:24"},{"body":{"nativeSrc":"1843:410:24","nodeType":"YulBlock","src":"1843:410:24","statements":[{"body":{"nativeSrc":"1935:156:24","nodeType":"YulBlock","src":"1935:156:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"_o","nativeSrc":"1968:2:24","nodeType":"YulIdentifier","src":"1968:2:24"},{"kind":"number","nativeSrc":"1972:2:24","nodeType":"YulLiteral","src":"1972:2:24","type":"","value":"31"}],"functionName":{"name":"ms8","nativeSrc":"1964:3:24","nodeType":"YulIdentifier","src":"1964:3:24"},"nativeSrc":"1964:11:24","nodeType":"YulFunctionCall","src":"1964:11:24"},{"arguments":[{"name":"src_","nativeSrc":"1983:4:24","nodeType":"YulIdentifier","src":"1983:4:24"}],"functionName":{"name":"mload","nativeSrc":"1977:5:24","nodeType":"YulIdentifier","src":"1977:5:24"},"nativeSrc":"1977:11:24","nodeType":"YulFunctionCall","src":"1977:11:24"}],"functionName":{"name":"mstore","nativeSrc":"1957:6:24","nodeType":"YulIdentifier","src":"1957:6:24"},"nativeSrc":"1957:32:24","nodeType":"YulFunctionCall","src":"1957:32:24"},"nativeSrc":"1957:32:24","nodeType":"YulExpressionStatement","src":"1957:32:24"},{"nativeSrc":"2010:19:24","nodeType":"YulAssignment","src":"2010:19:24","value":{"arguments":[{"name":"_o","nativeSrc":"2020:2:24","nodeType":"YulIdentifier","src":"2020:2:24"},{"kind":"number","nativeSrc":"2024:4:24","nodeType":"YulLiteral","src":"2024:4:24","type":"","value":"0x21"}],"functionName":{"name":"add","nativeSrc":"2016:3:24","nodeType":"YulIdentifier","src":"2016:3:24"},"nativeSrc":"2016:13:24","nodeType":"YulFunctionCall","src":"2016:13:24"},"variableNames":[{"name":"_o","nativeSrc":"2010:2:24","nodeType":"YulIdentifier","src":"2010:2:24"}]},{"nativeSrc":"2050:23:24","nodeType":"YulAssignment","src":"2050:23:24","value":{"arguments":[{"name":"src_","nativeSrc":"2062:4:24","nodeType":"YulIdentifier","src":"2062:4:24"},{"kind":"number","nativeSrc":"2068:4:24","nodeType":"YulLiteral","src":"2068:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2058:3:24","nodeType":"YulIdentifier","src":"2058:3:24"},"nativeSrc":"2058:15:24","nodeType":"YulFunctionCall","src":"2058:15:24"},"variableNames":[{"name":"src_","nativeSrc":"2050:4:24","nodeType":"YulIdentifier","src":"2050:4:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"runs_","nativeSrc":"1891:5:24","nodeType":"YulIdentifier","src":"1891:5:24"},{"kind":"number","nativeSrc":"1898:4:24","nodeType":"YulLiteral","src":"1898:4:24","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"1888:2:24","nodeType":"YulIdentifier","src":"1888:2:24"},"nativeSrc":"1888:15:24","nodeType":"YulFunctionCall","src":"1888:15:24"}],"functionName":{"name":"iszero","nativeSrc":"1881:6:24","nodeType":"YulIdentifier","src":"1881:6:24"},"nativeSrc":"1881:23:24","nodeType":"YulFunctionCall","src":"1881:23:24"},"nativeSrc":"1861:230:24","nodeType":"YulForLoop","post":{"nativeSrc":"1905:29:24","nodeType":"YulBlock","src":"1905:29:24","statements":[{"nativeSrc":"1907:25:24","nodeType":"YulAssignment","src":"1907:25:24","value":{"arguments":[{"name":"runs_","nativeSrc":"1920:5:24","nodeType":"YulIdentifier","src":"1920:5:24"},{"kind":"number","nativeSrc":"1927:4:24","nodeType":"YulLiteral","src":"1927:4:24","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"1916:3:24","nodeType":"YulIdentifier","src":"1916:3:24"},"nativeSrc":"1916:16:24","nodeType":"YulFunctionCall","src":"1916:16:24"},"variableNames":[{"name":"runs_","nativeSrc":"1907:5:24","nodeType":"YulIdentifier","src":"1907:5:24"}]}]},"pre":{"nativeSrc":"1865:15:24","nodeType":"YulBlock","src":"1865:15:24","statements":[{"nativeSrc":"1867:11:24","nodeType":"YulAssignment","src":"1867:11:24","value":{"name":"dest_","nativeSrc":"1873:5:24","nodeType":"YulIdentifier","src":"1873:5:24"},"variableNames":[{"name":"_o","nativeSrc":"1867:2:24","nodeType":"YulIdentifier","src":"1867:2:24"}]}]},"src":"1861:230:24"},{"body":{"nativeSrc":"2125:9:24","nodeType":"YulBlock","src":"2125:9:24","statements":[{"nativeSrc":"2127:5:24","nodeType":"YulLeave","src":"2127:5:24"}]},"condition":{"arguments":[{"name":"runs_","nativeSrc":"2118:5:24","nodeType":"YulIdentifier","src":"2118:5:24"}],"functionName":{"name":"iszero","nativeSrc":"2111:6:24","nodeType":"YulIdentifier","src":"2111:6:24"},"nativeSrc":"2111:13:24","nodeType":"YulFunctionCall","src":"2111:13:24"},"nativeSrc":"2108:26:24","nodeType":"YulIf","src":"2108:26:24"},{"expression":{"arguments":[{"arguments":[{"name":"_o","nativeSrc":"2162:2:24","nodeType":"YulIdentifier","src":"2162:2:24"},{"arguments":[{"name":"runs_","nativeSrc":"2170:5:24","nodeType":"YulIdentifier","src":"2170:5:24"},{"kind":"number","nativeSrc":"2177:1:24","nodeType":"YulLiteral","src":"2177:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2166:3:24","nodeType":"YulIdentifier","src":"2166:3:24"},"nativeSrc":"2166:13:24","nodeType":"YulFunctionCall","src":"2166:13:24"}],"functionName":{"name":"ms8","nativeSrc":"2158:3:24","nodeType":"YulIdentifier","src":"2158:3:24"},"nativeSrc":"2158:22:24","nodeType":"YulFunctionCall","src":"2158:22:24"},{"arguments":[{"name":"src_","nativeSrc":"2188:4:24","nodeType":"YulIdentifier","src":"2188:4:24"}],"functionName":{"name":"mload","nativeSrc":"2182:5:24","nodeType":"YulIdentifier","src":"2182:5:24"},"nativeSrc":"2182:11:24","nodeType":"YulFunctionCall","src":"2182:11:24"}],"functionName":{"name":"mstore","nativeSrc":"2151:6:24","nodeType":"YulIdentifier","src":"2151:6:24"},"nativeSrc":"2151:43:24","nodeType":"YulFunctionCall","src":"2151:43:24"},"nativeSrc":"2151:43:24","nodeType":"YulExpressionStatement","src":"2151:43:24"},{"nativeSrc":"2211:28:24","nodeType":"YulAssignment","src":"2211:28:24","value":{"arguments":[{"kind":"number","nativeSrc":"2221:1:24","nodeType":"YulLiteral","src":"2221:1:24","type":"","value":"1"},{"arguments":[{"name":"_o","nativeSrc":"2228:2:24","nodeType":"YulIdentifier","src":"2228:2:24"},{"name":"runs_","nativeSrc":"2232:5:24","nodeType":"YulIdentifier","src":"2232:5:24"}],"functionName":{"name":"add","nativeSrc":"2224:3:24","nodeType":"YulIdentifier","src":"2224:3:24"},"nativeSrc":"2224:14:24","nodeType":"YulFunctionCall","src":"2224:14:24"}],"functionName":{"name":"add","nativeSrc":"2217:3:24","nodeType":"YulIdentifier","src":"2217:3:24"},"nativeSrc":"2217:22:24","nodeType":"YulFunctionCall","src":"2217:22:24"},"variableNames":[{"name":"_o","nativeSrc":"2211:2:24","nodeType":"YulIdentifier","src":"2211:2:24"}]}]},"name":"literals","nativeSrc":"1799:454:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"runs_","nativeSrc":"1817:5:24","nodeType":"YulTypedName","src":"1817:5:24","type":""},{"name":"src_","nativeSrc":"1824:4:24","nodeType":"YulTypedName","src":"1824:4:24","type":""},{"name":"dest_","nativeSrc":"1830:5:24","nodeType":"YulTypedName","src":"1830:5:24","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"1840:2:24","nodeType":"YulTypedName","src":"1840:2:24","type":""}],"src":"1799:454:24"},{"body":{"nativeSrc":"2296:460:24","nodeType":"YulBlock","src":"2296:460:24","statements":[{"body":{"nativeSrc":"2382:105:24","nodeType":"YulBlock","src":"2382:105:24","statements":[{"nativeSrc":"2404:65:24","nodeType":"YulAssignment","src":"2404:65:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2422:2:24","nodeType":"YulIdentifier","src":"2422:2:24"},{"arguments":[{"kind":"number","nativeSrc":"2430:3:24","nodeType":"YulLiteral","src":"2430:3:24","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"2439:1:24","nodeType":"YulLiteral","src":"2439:1:24","type":"","value":"8"},{"name":"d_","nativeSrc":"2442:2:24","nodeType":"YulIdentifier","src":"2442:2:24"}],"functionName":{"name":"shr","nativeSrc":"2435:3:24","nodeType":"YulIdentifier","src":"2435:3:24"},"nativeSrc":"2435:10:24","nodeType":"YulFunctionCall","src":"2435:10:24"}],"functionName":{"name":"add","nativeSrc":"2426:3:24","nodeType":"YulIdentifier","src":"2426:3:24"},"nativeSrc":"2426:20:24","nodeType":"YulFunctionCall","src":"2426:20:24"}],"functionName":{"name":"ms8","nativeSrc":"2418:3:24","nodeType":"YulIdentifier","src":"2418:3:24"},"nativeSrc":"2418:29:24","nodeType":"YulFunctionCall","src":"2418:29:24"},{"kind":"number","nativeSrc":"2449:3:24","nodeType":"YulLiteral","src":"2449:3:24","type":"","value":"253"}],"functionName":{"name":"ms8","nativeSrc":"2414:3:24","nodeType":"YulIdentifier","src":"2414:3:24"},"nativeSrc":"2414:39:24","nodeType":"YulFunctionCall","src":"2414:39:24"},{"arguments":[{"kind":"number","nativeSrc":"2459:4:24","nodeType":"YulLiteral","src":"2459:4:24","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2465:2:24","nodeType":"YulIdentifier","src":"2465:2:24"}],"functionName":{"name":"and","nativeSrc":"2455:3:24","nodeType":"YulIdentifier","src":"2455:3:24"},"nativeSrc":"2455:13:24","nodeType":"YulFunctionCall","src":"2455:13:24"}],"functionName":{"name":"ms8","nativeSrc":"2410:3:24","nodeType":"YulIdentifier","src":"2410:3:24"},"nativeSrc":"2410:59:24","nodeType":"YulFunctionCall","src":"2410:59:24"},"variableNames":[{"name":"o_","nativeSrc":"2404:2:24","nodeType":"YulIdentifier","src":"2404:2:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"l_","nativeSrc":"2349:2:24","nodeType":"YulIdentifier","src":"2349:2:24"},{"kind":"number","nativeSrc":"2353:3:24","nodeType":"YulLiteral","src":"2353:3:24","type":"","value":"263"}],"functionName":{"name":"lt","nativeSrc":"2346:2:24","nodeType":"YulIdentifier","src":"2346:2:24"},"nativeSrc":"2346:11:24","nodeType":"YulFunctionCall","src":"2346:11:24"}],"functionName":{"name":"iszero","nativeSrc":"2339:6:24","nodeType":"YulIdentifier","src":"2339:6:24"},"nativeSrc":"2339:19:24","nodeType":"YulFunctionCall","src":"2339:19:24"},"nativeSrc":"2314:173:24","nodeType":"YulForLoop","post":{"nativeSrc":"2359:22:24","nodeType":"YulBlock","src":"2359:22:24","statements":[{"nativeSrc":"2361:18:24","nodeType":"YulAssignment","src":"2361:18:24","value":{"arguments":[{"name":"l_","nativeSrc":"2371:2:24","nodeType":"YulIdentifier","src":"2371:2:24"},{"kind":"number","nativeSrc":"2375:3:24","nodeType":"YulLiteral","src":"2375:3:24","type":"","value":"262"}],"functionName":{"name":"sub","nativeSrc":"2367:3:24","nodeType":"YulIdentifier","src":"2367:3:24"},"nativeSrc":"2367:12:24","nodeType":"YulFunctionCall","src":"2367:12:24"},"variableNames":[{"name":"l_","nativeSrc":"2361:2:24","nodeType":"YulIdentifier","src":"2361:2:24"}]}]},"pre":{"nativeSrc":"2318:20:24","nodeType":"YulBlock","src":"2318:20:24","statements":[{"nativeSrc":"2320:16:24","nodeType":"YulAssignment","src":"2320:16:24","value":{"arguments":[{"name":"d_","nativeSrc":"2330:2:24","nodeType":"YulIdentifier","src":"2330:2:24"},{"kind":"number","nativeSrc":"2334:1:24","nodeType":"YulLiteral","src":"2334:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2326:3:24","nodeType":"YulIdentifier","src":"2326:3:24"},"nativeSrc":"2326:10:24","nodeType":"YulFunctionCall","src":"2326:10:24"},"variableNames":[{"name":"d_","nativeSrc":"2320:2:24","nodeType":"YulIdentifier","src":"2320:2:24"}]}]},"src":"2314:173:24"},{"body":{"nativeSrc":"2525:138:24","nodeType":"YulBlock","src":"2525:138:24","statements":[{"nativeSrc":"2547:72:24","nodeType":"YulAssignment","src":"2547:72:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2565:2:24","nodeType":"YulIdentifier","src":"2565:2:24"},{"arguments":[{"kind":"number","nativeSrc":"2573:3:24","nodeType":"YulLiteral","src":"2573:3:24","type":"","value":"224"},{"arguments":[{"kind":"number","nativeSrc":"2582:1:24","nodeType":"YulLiteral","src":"2582:1:24","type":"","value":"8"},{"name":"d_","nativeSrc":"2585:2:24","nodeType":"YulIdentifier","src":"2585:2:24"}],"functionName":{"name":"shr","nativeSrc":"2578:3:24","nodeType":"YulIdentifier","src":"2578:3:24"},"nativeSrc":"2578:10:24","nodeType":"YulFunctionCall","src":"2578:10:24"}],"functionName":{"name":"add","nativeSrc":"2569:3:24","nodeType":"YulIdentifier","src":"2569:3:24"},"nativeSrc":"2569:20:24","nodeType":"YulFunctionCall","src":"2569:20:24"}],"functionName":{"name":"ms8","nativeSrc":"2561:3:24","nodeType":"YulIdentifier","src":"2561:3:24"},"nativeSrc":"2561:29:24","nodeType":"YulFunctionCall","src":"2561:29:24"},{"arguments":[{"name":"l_","nativeSrc":"2596:2:24","nodeType":"YulIdentifier","src":"2596:2:24"},{"kind":"number","nativeSrc":"2600:1:24","nodeType":"YulLiteral","src":"2600:1:24","type":"","value":"7"}],"functionName":{"name":"sub","nativeSrc":"2592:3:24","nodeType":"YulIdentifier","src":"2592:3:24"},"nativeSrc":"2592:10:24","nodeType":"YulFunctionCall","src":"2592:10:24"}],"functionName":{"name":"ms8","nativeSrc":"2557:3:24","nodeType":"YulIdentifier","src":"2557:3:24"},"nativeSrc":"2557:46:24","nodeType":"YulFunctionCall","src":"2557:46:24"},{"arguments":[{"kind":"number","nativeSrc":"2609:4:24","nodeType":"YulLiteral","src":"2609:4:24","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2615:2:24","nodeType":"YulIdentifier","src":"2615:2:24"}],"functionName":{"name":"and","nativeSrc":"2605:3:24","nodeType":"YulIdentifier","src":"2605:3:24"},"nativeSrc":"2605:13:24","nodeType":"YulFunctionCall","src":"2605:13:24"}],"functionName":{"name":"ms8","nativeSrc":"2553:3:24","nodeType":"YulIdentifier","src":"2553:3:24"},"nativeSrc":"2553:66:24","nodeType":"YulFunctionCall","src":"2553:66:24"},"variableNames":[{"name":"_o","nativeSrc":"2547:2:24","nodeType":"YulIdentifier","src":"2547:2:24"}]},{"nativeSrc":"2640:5:24","nodeType":"YulLeave","src":"2640:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"l_","nativeSrc":"2517:2:24","nodeType":"YulIdentifier","src":"2517:2:24"},{"kind":"number","nativeSrc":"2521:1:24","nodeType":"YulLiteral","src":"2521:1:24","type":"","value":"7"}],"functionName":{"name":"lt","nativeSrc":"2514:2:24","nodeType":"YulIdentifier","src":"2514:2:24"},"nativeSrc":"2514:9:24","nodeType":"YulFunctionCall","src":"2514:9:24"}],"functionName":{"name":"iszero","nativeSrc":"2507:6:24","nodeType":"YulIdentifier","src":"2507:6:24"},"nativeSrc":"2507:17:24","nodeType":"YulFunctionCall","src":"2507:17:24"},"nativeSrc":"2504:159:24","nodeType":"YulIf","src":"2504:159:24"},{"nativeSrc":"2680:62:24","nodeType":"YulAssignment","src":"2680:62:24","value":{"arguments":[{"arguments":[{"name":"o_","nativeSrc":"2694:2:24","nodeType":"YulIdentifier","src":"2694:2:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2706:1:24","nodeType":"YulLiteral","src":"2706:1:24","type":"","value":"5"},{"name":"l_","nativeSrc":"2709:2:24","nodeType":"YulIdentifier","src":"2709:2:24"}],"functionName":{"name":"shl","nativeSrc":"2702:3:24","nodeType":"YulIdentifier","src":"2702:3:24"},"nativeSrc":"2702:10:24","nodeType":"YulFunctionCall","src":"2702:10:24"},{"arguments":[{"kind":"number","nativeSrc":"2718:1:24","nodeType":"YulLiteral","src":"2718:1:24","type":"","value":"8"},{"name":"d_","nativeSrc":"2721:2:24","nodeType":"YulIdentifier","src":"2721:2:24"}],"functionName":{"name":"shr","nativeSrc":"2714:3:24","nodeType":"YulIdentifier","src":"2714:3:24"},"nativeSrc":"2714:10:24","nodeType":"YulFunctionCall","src":"2714:10:24"}],"functionName":{"name":"add","nativeSrc":"2698:3:24","nodeType":"YulIdentifier","src":"2698:3:24"},"nativeSrc":"2698:27:24","nodeType":"YulFunctionCall","src":"2698:27:24"}],"functionName":{"name":"ms8","nativeSrc":"2690:3:24","nodeType":"YulIdentifier","src":"2690:3:24"},"nativeSrc":"2690:36:24","nodeType":"YulFunctionCall","src":"2690:36:24"},{"arguments":[{"kind":"number","nativeSrc":"2732:4:24","nodeType":"YulLiteral","src":"2732:4:24","type":"","value":"0xff"},{"name":"d_","nativeSrc":"2738:2:24","nodeType":"YulIdentifier","src":"2738:2:24"}],"functionName":{"name":"and","nativeSrc":"2728:3:24","nodeType":"YulIdentifier","src":"2728:3:24"},"nativeSrc":"2728:13:24","nodeType":"YulFunctionCall","src":"2728:13:24"}],"functionName":{"name":"ms8","nativeSrc":"2686:3:24","nodeType":"YulIdentifier","src":"2686:3:24"},"nativeSrc":"2686:56:24","nodeType":"YulFunctionCall","src":"2686:56:24"},"variableNames":[{"name":"_o","nativeSrc":"2680:2:24","nodeType":"YulIdentifier","src":"2680:2:24"}]}]},"name":"mt","nativeSrc":"2266:490:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"l_","nativeSrc":"2278:2:24","nodeType":"YulTypedName","src":"2278:2:24","type":""},{"name":"d_","nativeSrc":"2282:2:24","nodeType":"YulTypedName","src":"2282:2:24","type":""},{"name":"o_","nativeSrc":"2286:2:24","nodeType":"YulTypedName","src":"2286:2:24","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"2293:2:24","nodeType":"YulTypedName","src":"2293:2:24","type":""}],"src":"2266:490:24"},{"body":{"nativeSrc":"2794:153:24","nodeType":"YulBlock","src":"2794:153:24","statements":[{"nativeSrc":"2812:38:24","nodeType":"YulVariableDeclaration","src":"2812:38:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2832:4:24","nodeType":"YulLiteral","src":"2832:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2826:5:24","nodeType":"YulIdentifier","src":"2826:5:24"},"nativeSrc":"2826:11:24","nodeType":"YulFunctionCall","src":"2826:11:24"},{"arguments":[{"kind":"number","nativeSrc":"2843:1:24","nodeType":"YulLiteral","src":"2843:1:24","type":"","value":"2"},{"name":"i_","nativeSrc":"2846:2:24","nodeType":"YulIdentifier","src":"2846:2:24"}],"functionName":{"name":"shl","nativeSrc":"2839:3:24","nodeType":"YulIdentifier","src":"2839:3:24"},"nativeSrc":"2839:10:24","nodeType":"YulFunctionCall","src":"2839:10:24"}],"functionName":{"name":"add","nativeSrc":"2822:3:24","nodeType":"YulIdentifier","src":"2822:3:24"},"nativeSrc":"2822:28:24","nodeType":"YulFunctionCall","src":"2822:28:24"},"variables":[{"name":"p_","nativeSrc":"2816:2:24","nodeType":"YulTypedName","src":"2816:2:24","type":""}]},{"expression":{"arguments":[{"name":"p_","nativeSrc":"2874:2:24","nodeType":"YulIdentifier","src":"2874:2:24"},{"arguments":[{"arguments":[{"name":"p_","nativeSrc":"2888:2:24","nodeType":"YulIdentifier","src":"2888:2:24"}],"functionName":{"name":"mload","nativeSrc":"2882:5:24","nodeType":"YulIdentifier","src":"2882:5:24"},"nativeSrc":"2882:9:24","nodeType":"YulFunctionCall","src":"2882:9:24"},{"arguments":[{"kind":"number","nativeSrc":"2897:3:24","nodeType":"YulLiteral","src":"2897:3:24","type":"","value":"224"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2910:3:24","nodeType":"YulLiteral","src":"2910:3:24","type":"","value":"224"},{"arguments":[{"name":"p_","nativeSrc":"2921:2:24","nodeType":"YulIdentifier","src":"2921:2:24"}],"functionName":{"name":"mload","nativeSrc":"2915:5:24","nodeType":"YulIdentifier","src":"2915:5:24"},"nativeSrc":"2915:9:24","nodeType":"YulFunctionCall","src":"2915:9:24"}],"functionName":{"name":"shr","nativeSrc":"2906:3:24","nodeType":"YulIdentifier","src":"2906:3:24"},"nativeSrc":"2906:19:24","nodeType":"YulFunctionCall","src":"2906:19:24"},{"name":"v_","nativeSrc":"2927:2:24","nodeType":"YulIdentifier","src":"2927:2:24"}],"functionName":{"name":"xor","nativeSrc":"2902:3:24","nodeType":"YulIdentifier","src":"2902:3:24"},"nativeSrc":"2902:28:24","nodeType":"YulFunctionCall","src":"2902:28:24"}],"functionName":{"name":"shl","nativeSrc":"2893:3:24","nodeType":"YulIdentifier","src":"2893:3:24"},"nativeSrc":"2893:38:24","nodeType":"YulFunctionCall","src":"2893:38:24"}],"functionName":{"name":"xor","nativeSrc":"2878:3:24","nodeType":"YulIdentifier","src":"2878:3:24"},"nativeSrc":"2878:54:24","nodeType":"YulFunctionCall","src":"2878:54:24"}],"functionName":{"name":"mstore","nativeSrc":"2867:6:24","nodeType":"YulIdentifier","src":"2867:6:24"},"nativeSrc":"2867:66:24","nodeType":"YulFunctionCall","src":"2867:66:24"},"nativeSrc":"2867:66:24","nodeType":"YulExpressionStatement","src":"2867:66:24"}]},"name":"setHash","nativeSrc":"2769:178:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"i_","nativeSrc":"2786:2:24","nodeType":"YulTypedName","src":"2786:2:24","type":""},{"name":"v_","nativeSrc":"2790:2:24","nodeType":"YulTypedName","src":"2790:2:24","type":""}],"src":"2769:178:24"},{"body":{"nativeSrc":"2987:83:24","nodeType":"YulBlock","src":"2987:83:24","statements":[{"nativeSrc":"3005:51:24","nodeType":"YulAssignment","src":"3005:51:24","value":{"arguments":[{"kind":"number","nativeSrc":"3015:3:24","nodeType":"YulLiteral","src":"3015:3:24","type":"","value":"224"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3036:4:24","nodeType":"YulLiteral","src":"3036:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"3030:5:24","nodeType":"YulIdentifier","src":"3030:5:24"},"nativeSrc":"3030:11:24","nodeType":"YulFunctionCall","src":"3030:11:24"},{"arguments":[{"kind":"number","nativeSrc":"3047:1:24","nodeType":"YulLiteral","src":"3047:1:24","type":"","value":"2"},{"name":"i_","nativeSrc":"3050:2:24","nodeType":"YulIdentifier","src":"3050:2:24"}],"functionName":{"name":"shl","nativeSrc":"3043:3:24","nodeType":"YulIdentifier","src":"3043:3:24"},"nativeSrc":"3043:10:24","nodeType":"YulFunctionCall","src":"3043:10:24"}],"functionName":{"name":"add","nativeSrc":"3026:3:24","nodeType":"YulIdentifier","src":"3026:3:24"},"nativeSrc":"3026:28:24","nodeType":"YulFunctionCall","src":"3026:28:24"}],"functionName":{"name":"mload","nativeSrc":"3020:5:24","nodeType":"YulIdentifier","src":"3020:5:24"},"nativeSrc":"3020:35:24","nodeType":"YulFunctionCall","src":"3020:35:24"}],"functionName":{"name":"shr","nativeSrc":"3011:3:24","nodeType":"YulIdentifier","src":"3011:3:24"},"nativeSrc":"3011:45:24","nodeType":"YulFunctionCall","src":"3011:45:24"},"variableNames":[{"name":"_h","nativeSrc":"3005:2:24","nodeType":"YulIdentifier","src":"3005:2:24"}]}]},"name":"getHash","nativeSrc":"2960:110:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"i_","nativeSrc":"2977:2:24","nodeType":"YulTypedName","src":"2977:2:24","type":""}],"returnVariables":[{"name":"_h","nativeSrc":"2984:2:24","nodeType":"YulTypedName","src":"2984:2:24","type":""}],"src":"2960:110:24"},{"body":{"nativeSrc":"3107:79:24","nodeType":"YulBlock","src":"3107:79:24","statements":[{"nativeSrc":"3125:47:24","nodeType":"YulAssignment","src":"3125:47:24","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3139:2:24","nodeType":"YulLiteral","src":"3139:2:24","type":"","value":"19"},{"arguments":[{"kind":"number","nativeSrc":"3147:10:24","nodeType":"YulLiteral","src":"3147:10:24","type":"","value":"2654435769"},{"name":"v_","nativeSrc":"3159:2:24","nodeType":"YulIdentifier","src":"3159:2:24"}],"functionName":{"name":"mul","nativeSrc":"3143:3:24","nodeType":"YulIdentifier","src":"3143:3:24"},"nativeSrc":"3143:19:24","nodeType":"YulFunctionCall","src":"3143:19:24"}],"functionName":{"name":"shr","nativeSrc":"3135:3:24","nodeType":"YulIdentifier","src":"3135:3:24"},"nativeSrc":"3135:28:24","nodeType":"YulFunctionCall","src":"3135:28:24"},{"kind":"number","nativeSrc":"3165:6:24","nodeType":"YulLiteral","src":"3165:6:24","type":"","value":"0x1fff"}],"functionName":{"name":"and","nativeSrc":"3131:3:24","nodeType":"YulIdentifier","src":"3131:3:24"},"nativeSrc":"3131:41:24","nodeType":"YulFunctionCall","src":"3131:41:24"},"variableNames":[{"name":"_r","nativeSrc":"3125:2:24","nodeType":"YulIdentifier","src":"3125:2:24"}]}]},"name":"hash","nativeSrc":"3083:103:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"v_","nativeSrc":"3097:2:24","nodeType":"YulTypedName","src":"3097:2:24","type":""}],"returnVariables":[{"name":"_r","nativeSrc":"3104:2:24","nodeType":"YulTypedName","src":"3104:2:24","type":""}],"src":"3083:103:24"},{"body":{"nativeSrc":"3242:110:24","nodeType":"YulBlock","src":"3242:110:24","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"ip_","nativeSrc":"3277:3:24","nodeType":"YulIdentifier","src":"3277:3:24"}],"functionName":{"name":"u24","nativeSrc":"3273:3:24","nodeType":"YulIdentifier","src":"3273:3:24"},"nativeSrc":"3273:8:24","nodeType":"YulFunctionCall","src":"3273:8:24"}],"functionName":{"name":"hash","nativeSrc":"3268:4:24","nodeType":"YulIdentifier","src":"3268:4:24"},"nativeSrc":"3268:14:24","nodeType":"YulFunctionCall","src":"3268:14:24"},{"arguments":[{"name":"ip_","nativeSrc":"3288:3:24","nodeType":"YulIdentifier","src":"3288:3:24"},{"name":"ipStart_","nativeSrc":"3293:8:24","nodeType":"YulIdentifier","src":"3293:8:24"}],"functionName":{"name":"sub","nativeSrc":"3284:3:24","nodeType":"YulIdentifier","src":"3284:3:24"},"nativeSrc":"3284:18:24","nodeType":"YulFunctionCall","src":"3284:18:24"}],"functionName":{"name":"setHash","nativeSrc":"3260:7:24","nodeType":"YulIdentifier","src":"3260:7:24"},"nativeSrc":"3260:43:24","nodeType":"YulFunctionCall","src":"3260:43:24"},"nativeSrc":"3260:43:24","nodeType":"YulExpressionStatement","src":"3260:43:24"},{"nativeSrc":"3320:18:24","nodeType":"YulAssignment","src":"3320:18:24","value":{"arguments":[{"name":"ip_","nativeSrc":"3331:3:24","nodeType":"YulIdentifier","src":"3331:3:24"},{"kind":"number","nativeSrc":"3336:1:24","nodeType":"YulLiteral","src":"3336:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"3327:3:24","nodeType":"YulIdentifier","src":"3327:3:24"},"nativeSrc":"3327:11:24","nodeType":"YulFunctionCall","src":"3327:11:24"},"variableNames":[{"name":"_ip","nativeSrc":"3320:3:24","nodeType":"YulIdentifier","src":"3320:3:24"}]}]},"name":"setNextHash","nativeSrc":"3199:153:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"ip_","nativeSrc":"3220:3:24","nodeType":"YulTypedName","src":"3220:3:24","type":""},{"name":"ipStart_","nativeSrc":"3225:8:24","nodeType":"YulTypedName","src":"3225:8:24","type":""}],"returnVariables":[{"name":"_ip","nativeSrc":"3238:3:24","nodeType":"YulTypedName","src":"3238:3:24","type":""}],"src":"3199:153:24"},{"nativeSrc":"3365:21:24","nodeType":"YulAssignment","src":"3365:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"3381:4:24","nodeType":"YulLiteral","src":"3381:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"3375:5:24","nodeType":"YulIdentifier","src":"3375:5:24"},"nativeSrc":"3375:11:24","nodeType":"YulFunctionCall","src":"3375:11:24"},"variableNames":[{"name":"result","nativeSrc":"3365:6:24","nodeType":"YulIdentifier","src":"3365:6:24"}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"3408:6:24","nodeType":"YulIdentifier","src":"3408:6:24"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"3416:8:24","nodeType":"YulIdentifier","src":"3416:8:24"},"nativeSrc":"3416:10:24","nodeType":"YulFunctionCall","src":"3416:10:24"},{"kind":"number","nativeSrc":"3428:6:24","nodeType":"YulLiteral","src":"3428:6:24","type":"","value":"0x8000"}],"functionName":{"name":"codecopy","nativeSrc":"3399:8:24","nodeType":"YulIdentifier","src":"3399:8:24"},"nativeSrc":"3399:36:24","nodeType":"YulFunctionCall","src":"3399:36:24"},"nativeSrc":"3399:36:24","nodeType":"YulExpressionStatement","src":"3399:36:24"},{"nativeSrc":"3472:29:24","nodeType":"YulVariableDeclaration","src":"3472:29:24","value":{"arguments":[{"name":"result","nativeSrc":"3486:6:24","nodeType":"YulIdentifier","src":"3486:6:24"},{"kind":"number","nativeSrc":"3494:6:24","nodeType":"YulLiteral","src":"3494:6:24","type":"","value":"0x8000"}],"functionName":{"name":"add","nativeSrc":"3482:3:24","nodeType":"YulIdentifier","src":"3482:3:24"},"nativeSrc":"3482:19:24","nodeType":"YulFunctionCall","src":"3482:19:24"},"variables":[{"name":"op","nativeSrc":"3476:2:24","nodeType":"YulTypedName","src":"3476:2:24","type":""}]},{"nativeSrc":"3514:24:24","nodeType":"YulVariableDeclaration","src":"3514:24:24","value":{"arguments":[{"name":"data","nativeSrc":"3527:4:24","nodeType":"YulIdentifier","src":"3527:4:24"},{"kind":"number","nativeSrc":"3533:4:24","nodeType":"YulLiteral","src":"3533:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3523:3:24","nodeType":"YulIdentifier","src":"3523:3:24"},"nativeSrc":"3523:15:24","nodeType":"YulFunctionCall","src":"3523:15:24"},"variables":[{"name":"a","nativeSrc":"3518:1:24","nodeType":"YulTypedName","src":"3518:1:24","type":""}]},{"nativeSrc":"3551:16:24","nodeType":"YulVariableDeclaration","src":"3551:16:24","value":{"name":"a","nativeSrc":"3566:1:24","nodeType":"YulIdentifier","src":"3566:1:24"},"variables":[{"name":"ipStart","nativeSrc":"3555:7:24","nodeType":"YulTypedName","src":"3555:7:24","type":""}]},{"nativeSrc":"3580:49:24","nodeType":"YulVariableDeclaration","src":"3580:49:24","value":{"arguments":[{"arguments":[{"name":"ipStart","nativeSrc":"3603:7:24","nodeType":"YulIdentifier","src":"3603:7:24"},{"arguments":[{"name":"data","nativeSrc":"3618:4:24","nodeType":"YulIdentifier","src":"3618:4:24"}],"functionName":{"name":"mload","nativeSrc":"3612:5:24","nodeType":"YulIdentifier","src":"3612:5:24"},"nativeSrc":"3612:11:24","nodeType":"YulFunctionCall","src":"3612:11:24"}],"functionName":{"name":"add","nativeSrc":"3599:3:24","nodeType":"YulIdentifier","src":"3599:3:24"},"nativeSrc":"3599:25:24","nodeType":"YulFunctionCall","src":"3599:25:24"},{"kind":"number","nativeSrc":"3626:2:24","nodeType":"YulLiteral","src":"3626:2:24","type":"","value":"13"}],"functionName":{"name":"sub","nativeSrc":"3595:3:24","nodeType":"YulIdentifier","src":"3595:3:24"},"nativeSrc":"3595:34:24","nodeType":"YulFunctionCall","src":"3595:34:24"},"variables":[{"name":"ipLimit","nativeSrc":"3584:7:24","nodeType":"YulTypedName","src":"3584:7:24","type":""}]},{"body":{"nativeSrc":"3689:854:24","nodeType":"YulBlock","src":"3689:854:24","statements":[{"nativeSrc":"3707:10:24","nodeType":"YulVariableDeclaration","src":"3707:10:24","value":{"kind":"number","nativeSrc":"3716:1:24","nodeType":"YulLiteral","src":"3716:1:24","type":"","value":"0"},"variables":[{"name":"r","nativeSrc":"3711:1:24","nodeType":"YulTypedName","src":"3711:1:24","type":""}]},{"nativeSrc":"3734:10:24","nodeType":"YulVariableDeclaration","src":"3734:10:24","value":{"kind":"number","nativeSrc":"3743:1:24","nodeType":"YulLiteral","src":"3743:1:24","type":"","value":"0"},"variables":[{"name":"d","nativeSrc":"3738:1:24","nodeType":"YulTypedName","src":"3738:1:24","type":""}]},{"body":{"nativeSrc":"3773:398:24","nodeType":"YulBlock","src":"3773:398:24","statements":[{"nativeSrc":"3795:16:24","nodeType":"YulVariableDeclaration","src":"3795:16:24","value":{"arguments":[{"name":"ip","nativeSrc":"3808:2:24","nodeType":"YulIdentifier","src":"3808:2:24"}],"functionName":{"name":"u24","nativeSrc":"3804:3:24","nodeType":"YulIdentifier","src":"3804:3:24"},"nativeSrc":"3804:7:24","nodeType":"YulFunctionCall","src":"3804:7:24"},"variables":[{"name":"s","nativeSrc":"3799:1:24","nodeType":"YulTypedName","src":"3799:1:24","type":""}]},{"nativeSrc":"3832:16:24","nodeType":"YulVariableDeclaration","src":"3832:16:24","value":{"arguments":[{"name":"s","nativeSrc":"3846:1:24","nodeType":"YulIdentifier","src":"3846:1:24"}],"functionName":{"name":"hash","nativeSrc":"3841:4:24","nodeType":"YulIdentifier","src":"3841:4:24"},"nativeSrc":"3841:7:24","nodeType":"YulFunctionCall","src":"3841:7:24"},"variables":[{"name":"h","nativeSrc":"3836:1:24","nodeType":"YulTypedName","src":"3836:1:24","type":""}]},{"nativeSrc":"3869:29:24","nodeType":"YulAssignment","src":"3869:29:24","value":{"arguments":[{"name":"ipStart","nativeSrc":"3878:7:24","nodeType":"YulIdentifier","src":"3878:7:24"},{"arguments":[{"name":"h","nativeSrc":"3895:1:24","nodeType":"YulIdentifier","src":"3895:1:24"}],"functionName":{"name":"getHash","nativeSrc":"3887:7:24","nodeType":"YulIdentifier","src":"3887:7:24"},"nativeSrc":"3887:10:24","nodeType":"YulFunctionCall","src":"3887:10:24"}],"functionName":{"name":"add","nativeSrc":"3874:3:24","nodeType":"YulIdentifier","src":"3874:3:24"},"nativeSrc":"3874:24:24","nodeType":"YulFunctionCall","src":"3874:24:24"},"variableNames":[{"name":"r","nativeSrc":"3869:1:24","nodeType":"YulIdentifier","src":"3869:1:24"}]},{"expression":{"arguments":[{"name":"h","nativeSrc":"3927:1:24","nodeType":"YulIdentifier","src":"3927:1:24"},{"arguments":[{"name":"ip","nativeSrc":"3934:2:24","nodeType":"YulIdentifier","src":"3934:2:24"},{"name":"ipStart","nativeSrc":"3938:7:24","nodeType":"YulIdentifier","src":"3938:7:24"}],"functionName":{"name":"sub","nativeSrc":"3930:3:24","nodeType":"YulIdentifier","src":"3930:3:24"},"nativeSrc":"3930:16:24","nodeType":"YulFunctionCall","src":"3930:16:24"}],"functionName":{"name":"setHash","nativeSrc":"3919:7:24","nodeType":"YulIdentifier","src":"3919:7:24"},"nativeSrc":"3919:28:24","nodeType":"YulFunctionCall","src":"3919:28:24"},"nativeSrc":"3919:28:24","nodeType":"YulExpressionStatement","src":"3919:28:24"},{"nativeSrc":"3968:15:24","nodeType":"YulAssignment","src":"3968:15:24","value":{"arguments":[{"name":"ip","nativeSrc":"3977:2:24","nodeType":"YulIdentifier","src":"3977:2:24"},{"name":"r","nativeSrc":"3981:1:24","nodeType":"YulIdentifier","src":"3981:1:24"}],"functionName":{"name":"sub","nativeSrc":"3973:3:24","nodeType":"YulIdentifier","src":"3973:3:24"},"nativeSrc":"3973:10:24","nodeType":"YulFunctionCall","src":"3973:10:24"},"variableNames":[{"name":"d","nativeSrc":"3968:1:24","nodeType":"YulIdentifier","src":"3968:1:24"}]},{"body":{"nativeSrc":"4031:9:24","nodeType":"YulBlock","src":"4031:9:24","statements":[{"nativeSrc":"4033:5:24","nodeType":"YulBreak","src":"4033:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4017:2:24","nodeType":"YulIdentifier","src":"4017:2:24"},{"name":"ipLimit","nativeSrc":"4021:7:24","nodeType":"YulIdentifier","src":"4021:7:24"}],"functionName":{"name":"lt","nativeSrc":"4014:2:24","nodeType":"YulIdentifier","src":"4014:2:24"},"nativeSrc":"4014:15:24","nodeType":"YulFunctionCall","src":"4014:15:24"}],"functionName":{"name":"iszero","nativeSrc":"4007:6:24","nodeType":"YulIdentifier","src":"4007:6:24"},"nativeSrc":"4007:23:24","nodeType":"YulFunctionCall","src":"4007:23:24"},"nativeSrc":"4004:36:24","nodeType":"YulIf","src":"4004:36:24"},{"nativeSrc":"4061:16:24","nodeType":"YulAssignment","src":"4061:16:24","value":{"arguments":[{"name":"ip","nativeSrc":"4071:2:24","nodeType":"YulIdentifier","src":"4071:2:24"},{"kind":"number","nativeSrc":"4075:1:24","nodeType":"YulLiteral","src":"4075:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4067:3:24","nodeType":"YulIdentifier","src":"4067:3:24"},"nativeSrc":"4067:10:24","nodeType":"YulFunctionCall","src":"4067:10:24"},"variableNames":[{"name":"ip","nativeSrc":"4061:2:24","nodeType":"YulIdentifier","src":"4061:2:24"}]},{"body":{"nativeSrc":"4123:30:24","nodeType":"YulBlock","src":"4123:30:24","statements":[{"body":{"nativeSrc":"4142:9:24","nodeType":"YulBlock","src":"4142:9:24","statements":[{"nativeSrc":"4144:5:24","nodeType":"YulBreak","src":"4144:5:24"}]},"condition":{"arguments":[{"name":"s","nativeSrc":"4131:1:24","nodeType":"YulIdentifier","src":"4131:1:24"},{"arguments":[{"name":"r","nativeSrc":"4138:1:24","nodeType":"YulIdentifier","src":"4138:1:24"}],"functionName":{"name":"u24","nativeSrc":"4134:3:24","nodeType":"YulIdentifier","src":"4134:3:24"},"nativeSrc":"4134:6:24","nodeType":"YulFunctionCall","src":"4134:6:24"}],"functionName":{"name":"eq","nativeSrc":"4128:2:24","nodeType":"YulIdentifier","src":"4128:2:24"},"nativeSrc":"4128:13:24","nodeType":"YulFunctionCall","src":"4128:13:24"},"nativeSrc":"4125:26:24","nodeType":"YulIf","src":"4125:26:24"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"4111:1:24","nodeType":"YulIdentifier","src":"4111:1:24"},{"kind":"number","nativeSrc":"4114:6:24","nodeType":"YulLiteral","src":"4114:6:24","type":"","value":"0x1fff"}],"functionName":{"name":"gt","nativeSrc":"4108:2:24","nodeType":"YulIdentifier","src":"4108:2:24"},"nativeSrc":"4108:13:24","nodeType":"YulFunctionCall","src":"4108:13:24"}],"functionName":{"name":"iszero","nativeSrc":"4101:6:24","nodeType":"YulIdentifier","src":"4101:6:24"},"nativeSrc":"4101:21:24","nodeType":"YulFunctionCall","src":"4101:21:24"},"nativeSrc":"4098:55:24","nodeType":"YulIf","src":"4098:55:24"}]},"condition":{"kind":"number","nativeSrc":"3768:1:24","nodeType":"YulLiteral","src":"3768:1:24","type":"","value":"1"},"nativeSrc":"3761:410:24","nodeType":"YulForLoop","post":{"nativeSrc":"3770:2:24","nodeType":"YulBlock","src":"3770:2:24","statements":[]},"pre":{"nativeSrc":"3765:2:24","nodeType":"YulBlock","src":"3765:2:24","statements":[]},"src":"3761:410:24"},{"body":{"nativeSrc":"4215:9:24","nodeType":"YulBlock","src":"4215:9:24","statements":[{"nativeSrc":"4217:5:24","nodeType":"YulBreak","src":"4217:5:24"}]},"condition":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4201:2:24","nodeType":"YulIdentifier","src":"4201:2:24"},{"name":"ipLimit","nativeSrc":"4205:7:24","nodeType":"YulIdentifier","src":"4205:7:24"}],"functionName":{"name":"lt","nativeSrc":"4198:2:24","nodeType":"YulIdentifier","src":"4198:2:24"},"nativeSrc":"4198:15:24","nodeType":"YulFunctionCall","src":"4198:15:24"}],"functionName":{"name":"iszero","nativeSrc":"4191:6:24","nodeType":"YulIdentifier","src":"4191:6:24"},"nativeSrc":"4191:23:24","nodeType":"YulFunctionCall","src":"4191:23:24"},"nativeSrc":"4188:36:24","nodeType":"YulIf","src":"4188:36:24"},{"nativeSrc":"4241:16:24","nodeType":"YulAssignment","src":"4241:16:24","value":{"arguments":[{"name":"ip","nativeSrc":"4251:2:24","nodeType":"YulIdentifier","src":"4251:2:24"},{"kind":"number","nativeSrc":"4255:1:24","nodeType":"YulLiteral","src":"4255:1:24","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"4247:3:24","nodeType":"YulIdentifier","src":"4247:3:24"},"nativeSrc":"4247:10:24","nodeType":"YulFunctionCall","src":"4247:10:24"},"variableNames":[{"name":"ip","nativeSrc":"4241:2:24","nodeType":"YulIdentifier","src":"4241:2:24"}]},{"body":{"nativeSrc":"4287:37:24","nodeType":"YulBlock","src":"4287:37:24","statements":[{"nativeSrc":"4289:33:24","nodeType":"YulAssignment","src":"4289:33:24","value":{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4308:2:24","nodeType":"YulIdentifier","src":"4308:2:24"},{"name":"a","nativeSrc":"4312:1:24","nodeType":"YulIdentifier","src":"4312:1:24"}],"functionName":{"name":"sub","nativeSrc":"4304:3:24","nodeType":"YulIdentifier","src":"4304:3:24"},"nativeSrc":"4304:10:24","nodeType":"YulFunctionCall","src":"4304:10:24"},{"name":"a","nativeSrc":"4316:1:24","nodeType":"YulIdentifier","src":"4316:1:24"},{"name":"op","nativeSrc":"4319:2:24","nodeType":"YulIdentifier","src":"4319:2:24"}],"functionName":{"name":"literals","nativeSrc":"4295:8:24","nodeType":"YulIdentifier","src":"4295:8:24"},"nativeSrc":"4295:27:24","nodeType":"YulFunctionCall","src":"4295:27:24"},"variableNames":[{"name":"op","nativeSrc":"4289:2:24","nodeType":"YulIdentifier","src":"4289:2:24"}]}]},"condition":{"arguments":[{"name":"ip","nativeSrc":"4280:2:24","nodeType":"YulIdentifier","src":"4280:2:24"},{"name":"a","nativeSrc":"4284:1:24","nodeType":"YulIdentifier","src":"4284:1:24"}],"functionName":{"name":"gt","nativeSrc":"4277:2:24","nodeType":"YulIdentifier","src":"4277:2:24"},"nativeSrc":"4277:9:24","nodeType":"YulFunctionCall","src":"4277:9:24"},"nativeSrc":"4274:50:24","nodeType":"YulIf","src":"4274:50:24"},{"nativeSrc":"4341:52:24","nodeType":"YulVariableDeclaration","src":"4341:52:24","value":{"arguments":[{"arguments":[{"name":"r","nativeSrc":"4358:1:24","nodeType":"YulIdentifier","src":"4358:1:24"},{"kind":"number","nativeSrc":"4361:1:24","nodeType":"YulLiteral","src":"4361:1:24","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"4354:3:24","nodeType":"YulIdentifier","src":"4354:3:24"},"nativeSrc":"4354:9:24","nodeType":"YulFunctionCall","src":"4354:9:24"},{"arguments":[{"name":"ip","nativeSrc":"4369:2:24","nodeType":"YulIdentifier","src":"4369:2:24"},{"kind":"number","nativeSrc":"4373:1:24","nodeType":"YulLiteral","src":"4373:1:24","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"4365:3:24","nodeType":"YulIdentifier","src":"4365:3:24"},"nativeSrc":"4365:10:24","nodeType":"YulFunctionCall","src":"4365:10:24"},{"arguments":[{"name":"ipLimit","nativeSrc":"4381:7:24","nodeType":"YulIdentifier","src":"4381:7:24"},{"kind":"number","nativeSrc":"4390:1:24","nodeType":"YulLiteral","src":"4390:1:24","type":"","value":"9"}],"functionName":{"name":"add","nativeSrc":"4377:3:24","nodeType":"YulIdentifier","src":"4377:3:24"},"nativeSrc":"4377:15:24","nodeType":"YulFunctionCall","src":"4377:15:24"}],"functionName":{"name":"cmp","nativeSrc":"4350:3:24","nodeType":"YulIdentifier","src":"4350:3:24"},"nativeSrc":"4350:43:24","nodeType":"YulFunctionCall","src":"4350:43:24"},"variables":[{"name":"l","nativeSrc":"4345:1:24","nodeType":"YulTypedName","src":"4345:1:24","type":""}]},{"nativeSrc":"4410:18:24","nodeType":"YulAssignment","src":"4410:18:24","value":{"arguments":[{"name":"l","nativeSrc":"4419:1:24","nodeType":"YulIdentifier","src":"4419:1:24"},{"name":"d","nativeSrc":"4422:1:24","nodeType":"YulIdentifier","src":"4422:1:24"},{"name":"op","nativeSrc":"4425:2:24","nodeType":"YulIdentifier","src":"4425:2:24"}],"functionName":{"name":"mt","nativeSrc":"4416:2:24","nodeType":"YulIdentifier","src":"4416:2:24"},"nativeSrc":"4416:12:24","nodeType":"YulFunctionCall","src":"4416:12:24"},"variableNames":[{"name":"op","nativeSrc":"4410:2:24","nodeType":"YulIdentifier","src":"4410:2:24"}]},{"nativeSrc":"4445:60:24","nodeType":"YulAssignment","src":"4445:60:24","value":{"arguments":[{"arguments":[{"arguments":[{"name":"ip","nativeSrc":"4479:2:24","nodeType":"YulIdentifier","src":"4479:2:24"},{"name":"l","nativeSrc":"4483:1:24","nodeType":"YulIdentifier","src":"4483:1:24"}],"functionName":{"name":"add","nativeSrc":"4475:3:24","nodeType":"YulIdentifier","src":"4475:3:24"},"nativeSrc":"4475:10:24","nodeType":"YulFunctionCall","src":"4475:10:24"},{"name":"ipStart","nativeSrc":"4487:7:24","nodeType":"YulIdentifier","src":"4487:7:24"}],"functionName":{"name":"setNextHash","nativeSrc":"4463:11:24","nodeType":"YulIdentifier","src":"4463:11:24"},"nativeSrc":"4463:32:24","nodeType":"YulFunctionCall","src":"4463:32:24"},{"name":"ipStart","nativeSrc":"4497:7:24","nodeType":"YulIdentifier","src":"4497:7:24"}],"functionName":{"name":"setNextHash","nativeSrc":"4451:11:24","nodeType":"YulIdentifier","src":"4451:11:24"},"nativeSrc":"4451:54:24","nodeType":"YulFunctionCall","src":"4451:54:24"},"variableNames":[{"name":"ip","nativeSrc":"4445:2:24","nodeType":"YulIdentifier","src":"4445:2:24"}]},{"nativeSrc":"4522:7:24","nodeType":"YulAssignment","src":"4522:7:24","value":{"name":"ip","nativeSrc":"4527:2:24","nodeType":"YulIdentifier","src":"4527:2:24"},"variableNames":[{"name":"a","nativeSrc":"4522:1:24","nodeType":"YulIdentifier","src":"4522:1:24"}]}]},"condition":{"arguments":[{"name":"ip","nativeSrc":"3673:2:24","nodeType":"YulIdentifier","src":"3673:2:24"},{"name":"ipLimit","nativeSrc":"3677:7:24","nodeType":"YulIdentifier","src":"3677:7:24"}],"functionName":{"name":"lt","nativeSrc":"3670:2:24","nodeType":"YulIdentifier","src":"3670:2:24"},"nativeSrc":"3670:15:24","nodeType":"YulFunctionCall","src":"3670:15:24"},"nativeSrc":"3642:901:24","nodeType":"YulForLoop","post":{"nativeSrc":"3686:2:24","nodeType":"YulBlock","src":"3686:2:24","statements":[]},"pre":{"nativeSrc":"3646:23:24","nodeType":"YulBlock","src":"3646:23:24","statements":[{"nativeSrc":"3648:19:24","nodeType":"YulVariableDeclaration","src":"3648:19:24","value":{"arguments":[{"kind":"number","nativeSrc":"3662:1:24","nodeType":"YulLiteral","src":"3662:1:24","type":"","value":"2"},{"name":"a","nativeSrc":"3665:1:24","nodeType":"YulIdentifier","src":"3665:1:24"}],"functionName":{"name":"add","nativeSrc":"3658:3:24","nodeType":"YulIdentifier","src":"3658:3:24"},"nativeSrc":"3658:9:24","nodeType":"YulFunctionCall","src":"3658:9:24"},"variables":[{"name":"ip","nativeSrc":"3652:2:24","nodeType":"YulTypedName","src":"3652:2:24","type":""}]}]},"src":"3642:901:24"},{"nativeSrc":"4635:74:24","nodeType":"YulVariableDeclaration","src":"4635:74:24","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"ipStart","nativeSrc":"4667:7:24","nodeType":"YulIdentifier","src":"4667:7:24"},{"arguments":[{"name":"data","nativeSrc":"4682:4:24","nodeType":"YulIdentifier","src":"4682:4:24"}],"functionName":{"name":"mload","nativeSrc":"4676:5:24","nodeType":"YulIdentifier","src":"4676:5:24"},"nativeSrc":"4676:11:24","nodeType":"YulFunctionCall","src":"4676:11:24"}],"functionName":{"name":"add","nativeSrc":"4663:3:24","nodeType":"YulIdentifier","src":"4663:3:24"},"nativeSrc":"4663:25:24","nodeType":"YulFunctionCall","src":"4663:25:24"},{"name":"a","nativeSrc":"4690:1:24","nodeType":"YulIdentifier","src":"4690:1:24"}],"functionName":{"name":"sub","nativeSrc":"4659:3:24","nodeType":"YulIdentifier","src":"4659:3:24"},"nativeSrc":"4659:33:24","nodeType":"YulFunctionCall","src":"4659:33:24"},{"name":"a","nativeSrc":"4694:1:24","nodeType":"YulIdentifier","src":"4694:1:24"},{"name":"op","nativeSrc":"4697:2:24","nodeType":"YulIdentifier","src":"4697:2:24"}],"functionName":{"name":"literals","nativeSrc":"4650:8:24","nodeType":"YulIdentifier","src":"4650:8:24"},"nativeSrc":"4650:50:24","nodeType":"YulFunctionCall","src":"4650:50:24"},{"kind":"number","nativeSrc":"4702:6:24","nodeType":"YulLiteral","src":"4702:6:24","type":"","value":"0x7fe0"}],"functionName":{"name":"sub","nativeSrc":"4646:3:24","nodeType":"YulIdentifier","src":"4646:3:24"},"nativeSrc":"4646:63:24","nodeType":"YulFunctionCall","src":"4646:63:24"},"variables":[{"name":"end","nativeSrc":"4639:3:24","nodeType":"YulTypedName","src":"4639:3:24","type":""}]},{"nativeSrc":"4722:26:24","nodeType":"YulVariableDeclaration","src":"4722:26:24","value":{"arguments":[{"name":"result","nativeSrc":"4735:6:24","nodeType":"YulIdentifier","src":"4735:6:24"},{"kind":"number","nativeSrc":"4743:4:24","nodeType":"YulLiteral","src":"4743:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4731:3:24","nodeType":"YulIdentifier","src":"4731:3:24"},"nativeSrc":"4731:17:24","nodeType":"YulFunctionCall","src":"4731:17:24"},"variables":[{"name":"o","nativeSrc":"4726:1:24","nodeType":"YulTypedName","src":"4726:1:24","type":""}]},{"expression":{"arguments":[{"name":"result","nativeSrc":"4768:6:24","nodeType":"YulIdentifier","src":"4768:6:24"},{"arguments":[{"name":"end","nativeSrc":"4780:3:24","nodeType":"YulIdentifier","src":"4780:3:24"},{"name":"o","nativeSrc":"4785:1:24","nodeType":"YulIdentifier","src":"4785:1:24"}],"functionName":{"name":"sub","nativeSrc":"4776:3:24","nodeType":"YulIdentifier","src":"4776:3:24"},"nativeSrc":"4776:11:24","nodeType":"YulFunctionCall","src":"4776:11:24"}],"functionName":{"name":"mstore","nativeSrc":"4761:6:24","nodeType":"YulIdentifier","src":"4761:6:24"},"nativeSrc":"4761:27:24","nodeType":"YulFunctionCall","src":"4761:27:24"},"nativeSrc":"4761:27:24","nodeType":"YulExpressionStatement","src":"4761:27:24"},{"body":{"nativeSrc":"4870:36:24","nodeType":"YulBlock","src":"4870:36:24","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"4879:1:24","nodeType":"YulIdentifier","src":"4879:1:24"},{"arguments":[{"arguments":[{"name":"o","nativeSrc":"4892:1:24","nodeType":"YulIdentifier","src":"4892:1:24"},{"kind":"number","nativeSrc":"4895:6:24","nodeType":"YulLiteral","src":"4895:6:24","type":"","value":"0x7fe0"}],"functionName":{"name":"add","nativeSrc":"4888:3:24","nodeType":"YulIdentifier","src":"4888:3:24"},"nativeSrc":"4888:14:24","nodeType":"YulFunctionCall","src":"4888:14:24"}],"functionName":{"name":"mload","nativeSrc":"4882:5:24","nodeType":"YulIdentifier","src":"4882:5:24"},"nativeSrc":"4882:21:24","nodeType":"YulFunctionCall","src":"4882:21:24"}],"functionName":{"name":"mstore","nativeSrc":"4872:6:24","nodeType":"YulIdentifier","src":"4872:6:24"},"nativeSrc":"4872:32:24","nodeType":"YulFunctionCall","src":"4872:32:24"},"nativeSrc":"4872:32:24","nodeType":"YulExpressionStatement","src":"4872:32:24"}]},"condition":{"arguments":[{"arguments":[{"name":"o","nativeSrc":"4839:1:24","nodeType":"YulIdentifier","src":"4839:1:24"},{"name":"end","nativeSrc":"4842:3:24","nodeType":"YulIdentifier","src":"4842:3:24"}],"functionName":{"name":"gt","nativeSrc":"4836:2:24","nodeType":"YulIdentifier","src":"4836:2:24"},"nativeSrc":"4836:10:24","nodeType":"YulFunctionCall","src":"4836:10:24"}],"functionName":{"name":"iszero","nativeSrc":"4829:6:24","nodeType":"YulIdentifier","src":"4829:6:24"},"nativeSrc":"4829:18:24","nodeType":"YulFunctionCall","src":"4829:18:24"},"nativeSrc":"4822:84:24","nodeType":"YulForLoop","post":{"nativeSrc":"4848:21:24","nodeType":"YulBlock","src":"4848:21:24","statements":[{"nativeSrc":"4850:17:24","nodeType":"YulAssignment","src":"4850:17:24","value":{"arguments":[{"name":"o","nativeSrc":"4859:1:24","nodeType":"YulIdentifier","src":"4859:1:24"},{"kind":"number","nativeSrc":"4862:4:24","nodeType":"YulLiteral","src":"4862:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4855:3:24","nodeType":"YulIdentifier","src":"4855:3:24"},"nativeSrc":"4855:12:24","nodeType":"YulFunctionCall","src":"4855:12:24"},"variableNames":[{"name":"o","nativeSrc":"4850:1:24","nodeType":"YulIdentifier","src":"4850:1:24"}]}]},"pre":{"nativeSrc":"4826:2:24","nodeType":"YulBlock","src":"4826:2:24","statements":[]},"src":"4822:84:24"},{"expression":{"arguments":[{"name":"end","nativeSrc":"4926:3:24","nodeType":"YulIdentifier","src":"4926:3:24"},{"kind":"number","nativeSrc":"4931:1:24","nodeType":"YulLiteral","src":"4931:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4919:6:24","nodeType":"YulIdentifier","src":"4919:6:24"},"nativeSrc":"4919:14:24","nodeType":"YulFunctionCall","src":"4919:14:24"},"nativeSrc":"4919:14:24","nodeType":"YulExpressionStatement","src":"4919:14:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4991:4:24","nodeType":"YulLiteral","src":"4991:4:24","type":"","value":"0x40"},{"arguments":[{"name":"end","nativeSrc":"5001:3:24","nodeType":"YulIdentifier","src":"5001:3:24"},{"kind":"number","nativeSrc":"5006:4:24","nodeType":"YulLiteral","src":"5006:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4997:3:24","nodeType":"YulIdentifier","src":"4997:3:24"},"nativeSrc":"4997:14:24","nodeType":"YulFunctionCall","src":"4997:14:24"}],"functionName":{"name":"mstore","nativeSrc":"4984:6:24","nodeType":"YulIdentifier","src":"4984:6:24"},"nativeSrc":"4984:28:24","nodeType":"YulFunctionCall","src":"4984:28:24"},"nativeSrc":"4984:28:24","nodeType":"YulExpressionStatement","src":"4984:28:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10956,"isOffset":false,"isSlot":false,"src":"3527:4:24","valueSize":1},{"declaration":10956,"isOffset":false,"isSlot":false,"src":"3618:4:24","valueSize":1},{"declaration":10956,"isOffset":false,"isSlot":false,"src":"4682:4:24","valueSize":1},{"declaration":10959,"isOffset":false,"isSlot":false,"src":"3365:6:24","valueSize":1},{"declaration":10959,"isOffset":false,"isSlot":false,"src":"3408:6:24","valueSize":1},{"declaration":10959,"isOffset":false,"isSlot":false,"src":"3486:6:24","valueSize":1},{"declaration":10959,"isOffset":false,"isSlot":false,"src":"4735:6:24","valueSize":1},{"declaration":10959,"isOffset":false,"isSlot":false,"src":"4768:6:24","valueSize":1}],"id":10961,"nodeType":"InlineAssembly","src":"1239:3807:24"}]},"documentation":{"id":10954,"nodeType":"StructuredDocumentation","src":"1058:39:24","text":"@dev Returns the compressed `data`."},"id":10963,"implemented":true,"kind":"function","modifiers":[],"name":"flzCompress","nameLocation":"1111:11:24","nodeType":"FunctionDefinition","parameters":{"id":10957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10956,"mutability":"mutable","name":"data","nameLocation":"1136:4:24","nodeType":"VariableDeclaration","scope":10963,"src":"1123:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10955,"name":"bytes","nodeType":"ElementaryTypeName","src":"1123:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1122:19:24"},"returnParameters":{"id":10960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10959,"mutability":"mutable","name":"result","nameLocation":"1178:6:24","nodeType":"VariableDeclaration","scope":10963,"src":"1165:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10958,"name":"bytes","nodeType":"ElementaryTypeName","src":"1165:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1164:21:24"},"scope":11000,"src":"1102:3950:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10972,"nodeType":"Block","src":"5190:1487:24","statements":[{"AST":{"nativeSrc":"5252:1419:24","nodeType":"YulBlock","src":"5252:1419:24","statements":[{"nativeSrc":"5266:21:24","nodeType":"YulAssignment","src":"5266:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"5282:4:24","nodeType":"YulLiteral","src":"5282:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"5276:5:24","nodeType":"YulIdentifier","src":"5276:5:24"},"nativeSrc":"5276:11:24","nodeType":"YulFunctionCall","src":"5276:11:24"},"variableNames":[{"name":"result","nativeSrc":"5266:6:24","nodeType":"YulIdentifier","src":"5266:6:24"}]},{"nativeSrc":"5300:27:24","nodeType":"YulVariableDeclaration","src":"5300:27:24","value":{"arguments":[{"name":"result","nativeSrc":"5314:6:24","nodeType":"YulIdentifier","src":"5314:6:24"},{"kind":"number","nativeSrc":"5322:4:24","nodeType":"YulLiteral","src":"5322:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5310:3:24","nodeType":"YulIdentifier","src":"5310:3:24"},"nativeSrc":"5310:17:24","nodeType":"YulFunctionCall","src":"5310:17:24"},"variables":[{"name":"op","nativeSrc":"5304:2:24","nodeType":"YulTypedName","src":"5304:2:24","type":""}]},{"nativeSrc":"5340:44:24","nodeType":"YulVariableDeclaration","src":"5340:44:24","value":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"5359:4:24","nodeType":"YulIdentifier","src":"5359:4:24"},{"kind":"number","nativeSrc":"5365:4:24","nodeType":"YulLiteral","src":"5365:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5355:3:24","nodeType":"YulIdentifier","src":"5355:3:24"},"nativeSrc":"5355:15:24","nodeType":"YulFunctionCall","src":"5355:15:24"},{"arguments":[{"name":"data","nativeSrc":"5378:4:24","nodeType":"YulIdentifier","src":"5378:4:24"}],"functionName":{"name":"mload","nativeSrc":"5372:5:24","nodeType":"YulIdentifier","src":"5372:5:24"},"nativeSrc":"5372:11:24","nodeType":"YulFunctionCall","src":"5372:11:24"}],"functionName":{"name":"add","nativeSrc":"5351:3:24","nodeType":"YulIdentifier","src":"5351:3:24"},"nativeSrc":"5351:33:24","nodeType":"YulFunctionCall","src":"5351:33:24"},"variables":[{"name":"end","nativeSrc":"5344:3:24","nodeType":"YulTypedName","src":"5344:3:24","type":""}]},{"body":{"nativeSrc":"5446:1011:24","nodeType":"YulBlock","src":"5446:1011:24","statements":[{"nativeSrc":"5464:20:24","nodeType":"YulVariableDeclaration","src":"5464:20:24","value":{"arguments":[{"name":"data","nativeSrc":"5479:4:24","nodeType":"YulIdentifier","src":"5479:4:24"}],"functionName":{"name":"mload","nativeSrc":"5473:5:24","nodeType":"YulIdentifier","src":"5473:5:24"},"nativeSrc":"5473:11:24","nodeType":"YulFunctionCall","src":"5473:11:24"},"variables":[{"name":"w","nativeSrc":"5468:1:24","nodeType":"YulTypedName","src":"5468:1:24","type":""}]},{"nativeSrc":"5501:19:24","nodeType":"YulVariableDeclaration","src":"5501:19:24","value":{"arguments":[{"kind":"number","nativeSrc":"5515:1:24","nodeType":"YulLiteral","src":"5515:1:24","type":"","value":"0"},{"name":"w","nativeSrc":"5518:1:24","nodeType":"YulIdentifier","src":"5518:1:24"}],"functionName":{"name":"byte","nativeSrc":"5510:4:24","nodeType":"YulIdentifier","src":"5510:4:24"},"nativeSrc":"5510:10:24","nodeType":"YulFunctionCall","src":"5510:10:24"},"variables":[{"name":"c","nativeSrc":"5505:1:24","nodeType":"YulTypedName","src":"5505:1:24","type":""}]},{"nativeSrc":"5537:18:24","nodeType":"YulVariableDeclaration","src":"5537:18:24","value":{"arguments":[{"kind":"number","nativeSrc":"5550:1:24","nodeType":"YulLiteral","src":"5550:1:24","type":"","value":"5"},{"name":"c","nativeSrc":"5553:1:24","nodeType":"YulIdentifier","src":"5553:1:24"}],"functionName":{"name":"shr","nativeSrc":"5546:3:24","nodeType":"YulIdentifier","src":"5546:3:24"},"nativeSrc":"5546:9:24","nodeType":"YulFunctionCall","src":"5546:9:24"},"variables":[{"name":"t","nativeSrc":"5541:1:24","nodeType":"YulTypedName","src":"5541:1:24","type":""}]},{"body":{"nativeSrc":"5585:194:24","nodeType":"YulBlock","src":"5585:194:24","statements":[{"expression":{"arguments":[{"name":"op","nativeSrc":"5614:2:24","nodeType":"YulIdentifier","src":"5614:2:24"},{"arguments":[{"arguments":[{"name":"data","nativeSrc":"5628:4:24","nodeType":"YulIdentifier","src":"5628:4:24"},{"kind":"number","nativeSrc":"5634:1:24","nodeType":"YulLiteral","src":"5634:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5624:3:24","nodeType":"YulIdentifier","src":"5624:3:24"},"nativeSrc":"5624:12:24","nodeType":"YulFunctionCall","src":"5624:12:24"}],"functionName":{"name":"mload","nativeSrc":"5618:5:24","nodeType":"YulIdentifier","src":"5618:5:24"},"nativeSrc":"5618:19:24","nodeType":"YulFunctionCall","src":"5618:19:24"}],"functionName":{"name":"mstore","nativeSrc":"5607:6:24","nodeType":"YulIdentifier","src":"5607:6:24"},"nativeSrc":"5607:31:24","nodeType":"YulFunctionCall","src":"5607:31:24"},"nativeSrc":"5607:31:24","nodeType":"YulExpressionStatement","src":"5607:31:24"},{"nativeSrc":"5659:28:24","nodeType":"YulAssignment","src":"5659:28:24","value":{"arguments":[{"name":"data","nativeSrc":"5671:4:24","nodeType":"YulIdentifier","src":"5671:4:24"},{"arguments":[{"kind":"number","nativeSrc":"5681:1:24","nodeType":"YulLiteral","src":"5681:1:24","type":"","value":"2"},{"name":"c","nativeSrc":"5684:1:24","nodeType":"YulIdentifier","src":"5684:1:24"}],"functionName":{"name":"add","nativeSrc":"5677:3:24","nodeType":"YulIdentifier","src":"5677:3:24"},"nativeSrc":"5677:9:24","nodeType":"YulFunctionCall","src":"5677:9:24"}],"functionName":{"name":"add","nativeSrc":"5667:3:24","nodeType":"YulIdentifier","src":"5667:3:24"},"nativeSrc":"5667:20:24","nodeType":"YulFunctionCall","src":"5667:20:24"},"variableNames":[{"name":"data","nativeSrc":"5659:4:24","nodeType":"YulIdentifier","src":"5659:4:24"}]},{"nativeSrc":"5708:24:24","nodeType":"YulAssignment","src":"5708:24:24","value":{"arguments":[{"name":"op","nativeSrc":"5718:2:24","nodeType":"YulIdentifier","src":"5718:2:24"},{"arguments":[{"kind":"number","nativeSrc":"5726:1:24","nodeType":"YulLiteral","src":"5726:1:24","type":"","value":"1"},{"name":"c","nativeSrc":"5729:1:24","nodeType":"YulIdentifier","src":"5729:1:24"}],"functionName":{"name":"add","nativeSrc":"5722:3:24","nodeType":"YulIdentifier","src":"5722:3:24"},"nativeSrc":"5722:9:24","nodeType":"YulFunctionCall","src":"5722:9:24"}],"functionName":{"name":"add","nativeSrc":"5714:3:24","nodeType":"YulIdentifier","src":"5714:3:24"},"nativeSrc":"5714:18:24","nodeType":"YulFunctionCall","src":"5714:18:24"},"variableNames":[{"name":"op","nativeSrc":"5708:2:24","nodeType":"YulIdentifier","src":"5708:2:24"}]},{"nativeSrc":"5753:8:24","nodeType":"YulContinue","src":"5753:8:24"}]},"condition":{"arguments":[{"name":"t","nativeSrc":"5582:1:24","nodeType":"YulIdentifier","src":"5582:1:24"}],"functionName":{"name":"iszero","nativeSrc":"5575:6:24","nodeType":"YulIdentifier","src":"5575:6:24"},"nativeSrc":"5575:9:24","nodeType":"YulFunctionCall","src":"5575:9:24"},"nativeSrc":"5572:207:24","nodeType":"YulIf","src":"5572:207:24"},{"body":{"nativeSrc":"6175:268:24","nodeType":"YulBlock","src":"6175:268:24","statements":[{"expression":{"arguments":[{"arguments":[{"name":"op","nativeSrc":"6208:2:24","nodeType":"YulIdentifier","src":"6208:2:24"},{"name":"j","nativeSrc":"6212:1:24","nodeType":"YulIdentifier","src":"6212:1:24"}],"functionName":{"name":"add","nativeSrc":"6204:3:24","nodeType":"YulIdentifier","src":"6204:3:24"},"nativeSrc":"6204:10:24","nodeType":"YulFunctionCall","src":"6204:10:24"},{"arguments":[{"arguments":[{"name":"r","nativeSrc":"6226:1:24","nodeType":"YulIdentifier","src":"6226:1:24"},{"name":"j","nativeSrc":"6229:1:24","nodeType":"YulIdentifier","src":"6229:1:24"}],"functionName":{"name":"add","nativeSrc":"6222:3:24","nodeType":"YulIdentifier","src":"6222:3:24"},"nativeSrc":"6222:9:24","nodeType":"YulFunctionCall","src":"6222:9:24"}],"functionName":{"name":"mload","nativeSrc":"6216:5:24","nodeType":"YulIdentifier","src":"6216:5:24"},"nativeSrc":"6216:16:24","nodeType":"YulFunctionCall","src":"6216:16:24"}],"functionName":{"name":"mstore","nativeSrc":"6197:6:24","nodeType":"YulIdentifier","src":"6197:6:24"},"nativeSrc":"6197:36:24","nodeType":"YulFunctionCall","src":"6197:36:24"},"nativeSrc":"6197:36:24","nodeType":"YulExpressionStatement","src":"6197:36:24"},{"nativeSrc":"6254:14:24","nodeType":"YulAssignment","src":"6254:14:24","value":{"arguments":[{"name":"j","nativeSrc":"6263:1:24","nodeType":"YulIdentifier","src":"6263:1:24"},{"name":"f","nativeSrc":"6266:1:24","nodeType":"YulIdentifier","src":"6266:1:24"}],"functionName":{"name":"add","nativeSrc":"6259:3:24","nodeType":"YulIdentifier","src":"6259:3:24"},"nativeSrc":"6259:9:24","nodeType":"YulFunctionCall","src":"6259:9:24"},"variableNames":[{"name":"j","nativeSrc":"6254:1:24","nodeType":"YulIdentifier","src":"6254:1:24"}]},{"body":{"nativeSrc":"6301:12:24","nodeType":"YulBlock","src":"6301:12:24","statements":[{"nativeSrc":"6303:8:24","nodeType":"YulContinue","src":"6303:8:24"}]},"condition":{"arguments":[{"name":"j","nativeSrc":"6295:1:24","nodeType":"YulIdentifier","src":"6295:1:24"},{"name":"l","nativeSrc":"6298:1:24","nodeType":"YulIdentifier","src":"6298:1:24"}],"functionName":{"name":"lt","nativeSrc":"6292:2:24","nodeType":"YulIdentifier","src":"6292:2:24"},"nativeSrc":"6292:8:24","nodeType":"YulFunctionCall","src":"6292:8:24"},"nativeSrc":"6289:24:24","nodeType":"YulIf","src":"6289:24:24"},{"nativeSrc":"6334:28:24","nodeType":"YulAssignment","src":"6334:28:24","value":{"arguments":[{"name":"data","nativeSrc":"6346:4:24","nodeType":"YulIdentifier","src":"6346:4:24"},{"arguments":[{"kind":"number","nativeSrc":"6356:1:24","nodeType":"YulLiteral","src":"6356:1:24","type":"","value":"2"},{"name":"g","nativeSrc":"6359:1:24","nodeType":"YulIdentifier","src":"6359:1:24"}],"functionName":{"name":"add","nativeSrc":"6352:3:24","nodeType":"YulIdentifier","src":"6352:3:24"},"nativeSrc":"6352:9:24","nodeType":"YulFunctionCall","src":"6352:9:24"}],"functionName":{"name":"add","nativeSrc":"6342:3:24","nodeType":"YulIdentifier","src":"6342:3:24"},"nativeSrc":"6342:20:24","nodeType":"YulFunctionCall","src":"6342:20:24"},"variableNames":[{"name":"data","nativeSrc":"6334:4:24","nodeType":"YulIdentifier","src":"6334:4:24"}]},{"nativeSrc":"6383:16:24","nodeType":"YulAssignment","src":"6383:16:24","value":{"arguments":[{"name":"op","nativeSrc":"6393:2:24","nodeType":"YulIdentifier","src":"6393:2:24"},{"name":"l","nativeSrc":"6397:1:24","nodeType":"YulIdentifier","src":"6397:1:24"}],"functionName":{"name":"add","nativeSrc":"6389:3:24","nodeType":"YulIdentifier","src":"6389:3:24"},"nativeSrc":"6389:10:24","nodeType":"YulFunctionCall","src":"6389:10:24"},"variableNames":[{"name":"op","nativeSrc":"6383:2:24","nodeType":"YulIdentifier","src":"6383:2:24"}]},{"nativeSrc":"6420:5:24","nodeType":"YulBreak","src":"6420:5:24"}]},"condition":{"kind":"number","nativeSrc":"6170:1:24","nodeType":"YulLiteral","src":"6170:1:24","type":"","value":"1"},"nativeSrc":"5796:647:24","nodeType":"YulForLoop","post":{"nativeSrc":"6172:2:24","nodeType":"YulBlock","src":"6172:2:24","statements":[]},"pre":{"nativeSrc":"5800:369:24","nodeType":"YulBlock","src":"5800:369:24","statements":[{"nativeSrc":"5822:17:24","nodeType":"YulVariableDeclaration","src":"5822:17:24","value":{"arguments":[{"name":"t","nativeSrc":"5834:1:24","nodeType":"YulIdentifier","src":"5834:1:24"},{"kind":"number","nativeSrc":"5837:1:24","nodeType":"YulLiteral","src":"5837:1:24","type":"","value":"7"}],"functionName":{"name":"eq","nativeSrc":"5831:2:24","nodeType":"YulIdentifier","src":"5831:2:24"},"nativeSrc":"5831:8:24","nodeType":"YulFunctionCall","src":"5831:8:24"},"variables":[{"name":"g","nativeSrc":"5826:1:24","nodeType":"YulTypedName","src":"5826:1:24","type":""}]},{"nativeSrc":"5860:59:24","nodeType":"YulVariableDeclaration","src":"5860:59:24","value":{"arguments":[{"kind":"number","nativeSrc":"5873:1:24","nodeType":"YulLiteral","src":"5873:1:24","type":"","value":"2"},{"arguments":[{"name":"t","nativeSrc":"5880:1:24","nodeType":"YulIdentifier","src":"5880:1:24"},{"arguments":[{"name":"g","nativeSrc":"5887:1:24","nodeType":"YulIdentifier","src":"5887:1:24"},{"arguments":[{"name":"t","nativeSrc":"5894:1:24","nodeType":"YulIdentifier","src":"5894:1:24"},{"arguments":[{"kind":"number","nativeSrc":"5901:1:24","nodeType":"YulLiteral","src":"5901:1:24","type":"","value":"7"},{"arguments":[{"kind":"number","nativeSrc":"5909:1:24","nodeType":"YulLiteral","src":"5909:1:24","type":"","value":"1"},{"name":"w","nativeSrc":"5912:1:24","nodeType":"YulIdentifier","src":"5912:1:24"}],"functionName":{"name":"byte","nativeSrc":"5904:4:24","nodeType":"YulIdentifier","src":"5904:4:24"},"nativeSrc":"5904:10:24","nodeType":"YulFunctionCall","src":"5904:10:24"}],"functionName":{"name":"add","nativeSrc":"5897:3:24","nodeType":"YulIdentifier","src":"5897:3:24"},"nativeSrc":"5897:18:24","nodeType":"YulFunctionCall","src":"5897:18:24"}],"functionName":{"name":"xor","nativeSrc":"5890:3:24","nodeType":"YulIdentifier","src":"5890:3:24"},"nativeSrc":"5890:26:24","nodeType":"YulFunctionCall","src":"5890:26:24"}],"functionName":{"name":"mul","nativeSrc":"5883:3:24","nodeType":"YulIdentifier","src":"5883:3:24"},"nativeSrc":"5883:34:24","nodeType":"YulFunctionCall","src":"5883:34:24"}],"functionName":{"name":"xor","nativeSrc":"5876:3:24","nodeType":"YulIdentifier","src":"5876:3:24"},"nativeSrc":"5876:42:24","nodeType":"YulFunctionCall","src":"5876:42:24"}],"functionName":{"name":"add","nativeSrc":"5869:3:24","nodeType":"YulIdentifier","src":"5869:3:24"},"nativeSrc":"5869:50:24","nodeType":"YulFunctionCall","src":"5869:50:24"},"variables":[{"name":"l","nativeSrc":"5864:1:24","nodeType":"YulTypedName","src":"5864:1:24","type":""}]},{"nativeSrc":"5945:62:24","nodeType":"YulVariableDeclaration","src":"5945:62:24","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5966:1:24","nodeType":"YulLiteral","src":"5966:1:24","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"5973:4:24","nodeType":"YulLiteral","src":"5973:4:24","type":"","value":"0x1f"},{"name":"c","nativeSrc":"5979:1:24","nodeType":"YulIdentifier","src":"5979:1:24"}],"functionName":{"name":"and","nativeSrc":"5969:3:24","nodeType":"YulIdentifier","src":"5969:3:24"},"nativeSrc":"5969:12:24","nodeType":"YulFunctionCall","src":"5969:12:24"}],"functionName":{"name":"shl","nativeSrc":"5962:3:24","nodeType":"YulIdentifier","src":"5962:3:24"},"nativeSrc":"5962:20:24","nodeType":"YulFunctionCall","src":"5962:20:24"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"5993:1:24","nodeType":"YulLiteral","src":"5993:1:24","type":"","value":"1"},{"name":"g","nativeSrc":"5996:1:24","nodeType":"YulIdentifier","src":"5996:1:24"}],"functionName":{"name":"add","nativeSrc":"5989:3:24","nodeType":"YulIdentifier","src":"5989:3:24"},"nativeSrc":"5989:9:24","nodeType":"YulFunctionCall","src":"5989:9:24"},{"name":"w","nativeSrc":"6000:1:24","nodeType":"YulIdentifier","src":"6000:1:24"}],"functionName":{"name":"byte","nativeSrc":"5984:4:24","nodeType":"YulIdentifier","src":"5984:4:24"},"nativeSrc":"5984:18:24","nodeType":"YulFunctionCall","src":"5984:18:24"}],"functionName":{"name":"add","nativeSrc":"5958:3:24","nodeType":"YulIdentifier","src":"5958:3:24"},"nativeSrc":"5958:45:24","nodeType":"YulFunctionCall","src":"5958:45:24"},{"kind":"number","nativeSrc":"6005:1:24","nodeType":"YulLiteral","src":"6005:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"5954:3:24","nodeType":"YulIdentifier","src":"5954:3:24"},"nativeSrc":"5954:53:24","nodeType":"YulFunctionCall","src":"5954:53:24"},"variables":[{"name":"s","nativeSrc":"5949:1:24","nodeType":"YulTypedName","src":"5949:1:24","type":""}]},{"nativeSrc":"6033:19:24","nodeType":"YulVariableDeclaration","src":"6033:19:24","value":{"arguments":[{"name":"op","nativeSrc":"6046:2:24","nodeType":"YulIdentifier","src":"6046:2:24"},{"name":"s","nativeSrc":"6050:1:24","nodeType":"YulIdentifier","src":"6050:1:24"}],"functionName":{"name":"sub","nativeSrc":"6042:3:24","nodeType":"YulIdentifier","src":"6042:3:24"},"nativeSrc":"6042:10:24","nodeType":"YulFunctionCall","src":"6042:10:24"},"variables":[{"name":"r","nativeSrc":"6037:1:24","nodeType":"YulTypedName","src":"6037:1:24","type":""}]},{"nativeSrc":"6073:47:24","nodeType":"YulVariableDeclaration","src":"6073:47:24","value":{"arguments":[{"name":"s","nativeSrc":"6086:1:24","nodeType":"YulIdentifier","src":"6086:1:24"},{"arguments":[{"arguments":[{"name":"s","nativeSrc":"6096:1:24","nodeType":"YulIdentifier","src":"6096:1:24"},{"kind":"number","nativeSrc":"6099:4:24","nodeType":"YulLiteral","src":"6099:4:24","type":"","value":"0x20"}],"functionName":{"name":"gt","nativeSrc":"6093:2:24","nodeType":"YulIdentifier","src":"6093:2:24"},"nativeSrc":"6093:11:24","nodeType":"YulFunctionCall","src":"6093:11:24"},{"arguments":[{"name":"s","nativeSrc":"6110:1:24","nodeType":"YulIdentifier","src":"6110:1:24"},{"kind":"number","nativeSrc":"6113:4:24","nodeType":"YulLiteral","src":"6113:4:24","type":"","value":"0x20"}],"functionName":{"name":"xor","nativeSrc":"6106:3:24","nodeType":"YulIdentifier","src":"6106:3:24"},"nativeSrc":"6106:12:24","nodeType":"YulFunctionCall","src":"6106:12:24"}],"functionName":{"name":"mul","nativeSrc":"6089:3:24","nodeType":"YulIdentifier","src":"6089:3:24"},"nativeSrc":"6089:30:24","nodeType":"YulFunctionCall","src":"6089:30:24"}],"functionName":{"name":"xor","nativeSrc":"6082:3:24","nodeType":"YulIdentifier","src":"6082:3:24"},"nativeSrc":"6082:38:24","nodeType":"YulFunctionCall","src":"6082:38:24"},"variables":[{"name":"f","nativeSrc":"6077:1:24","nodeType":"YulTypedName","src":"6077:1:24","type":""}]},{"nativeSrc":"6141:10:24","nodeType":"YulVariableDeclaration","src":"6141:10:24","value":{"kind":"number","nativeSrc":"6150:1:24","nodeType":"YulLiteral","src":"6150:1:24","type":"","value":"0"},"variables":[{"name":"j","nativeSrc":"6145:1:24","nodeType":"YulTypedName","src":"6145:1:24","type":""}]}]},"src":"5796:647:24"}]},"condition":{"arguments":[{"name":"data","nativeSrc":"5432:4:24","nodeType":"YulIdentifier","src":"5432:4:24"},{"name":"end","nativeSrc":"5438:3:24","nodeType":"YulIdentifier","src":"5438:3:24"}],"functionName":{"name":"lt","nativeSrc":"5429:2:24","nodeType":"YulIdentifier","src":"5429:2:24"},"nativeSrc":"5429:13:24","nodeType":"YulFunctionCall","src":"5429:13:24"},"nativeSrc":"5397:1060:24","nodeType":"YulForLoop","post":{"nativeSrc":"5443:2:24","nodeType":"YulBlock","src":"5443:2:24","statements":[]},"pre":{"nativeSrc":"5401:27:24","nodeType":"YulBlock","src":"5401:27:24","statements":[{"nativeSrc":"5403:23:24","nodeType":"YulAssignment","src":"5403:23:24","value":{"arguments":[{"name":"data","nativeSrc":"5415:4:24","nodeType":"YulIdentifier","src":"5415:4:24"},{"kind":"number","nativeSrc":"5421:4:24","nodeType":"YulLiteral","src":"5421:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5411:3:24","nodeType":"YulIdentifier","src":"5411:3:24"},"nativeSrc":"5411:15:24","nodeType":"YulFunctionCall","src":"5411:15:24"},"variableNames":[{"name":"data","nativeSrc":"5403:4:24","nodeType":"YulIdentifier","src":"5403:4:24"}]}]},"src":"5397:1060:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"6477:6:24","nodeType":"YulIdentifier","src":"6477:6:24"},{"arguments":[{"name":"op","nativeSrc":"6489:2:24","nodeType":"YulIdentifier","src":"6489:2:24"},{"arguments":[{"name":"result","nativeSrc":"6497:6:24","nodeType":"YulIdentifier","src":"6497:6:24"},{"kind":"number","nativeSrc":"6505:4:24","nodeType":"YulLiteral","src":"6505:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6493:3:24","nodeType":"YulIdentifier","src":"6493:3:24"},"nativeSrc":"6493:17:24","nodeType":"YulFunctionCall","src":"6493:17:24"}],"functionName":{"name":"sub","nativeSrc":"6485:3:24","nodeType":"YulIdentifier","src":"6485:3:24"},"nativeSrc":"6485:26:24","nodeType":"YulFunctionCall","src":"6485:26:24"}],"functionName":{"name":"mstore","nativeSrc":"6470:6:24","nodeType":"YulIdentifier","src":"6470:6:24"},"nativeSrc":"6470:42:24","nodeType":"YulFunctionCall","src":"6470:42:24"},"nativeSrc":"6470:42:24","nodeType":"YulExpressionStatement","src":"6470:42:24"},{"expression":{"arguments":[{"name":"op","nativeSrc":"6553:2:24","nodeType":"YulIdentifier","src":"6553:2:24"},{"kind":"number","nativeSrc":"6557:1:24","nodeType":"YulLiteral","src":"6557:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"6546:6:24","nodeType":"YulIdentifier","src":"6546:6:24"},"nativeSrc":"6546:13:24","nodeType":"YulFunctionCall","src":"6546:13:24"},"nativeSrc":"6546:13:24","nodeType":"YulExpressionStatement","src":"6546:13:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6617:4:24","nodeType":"YulLiteral","src":"6617:4:24","type":"","value":"0x40"},{"arguments":[{"name":"op","nativeSrc":"6627:2:24","nodeType":"YulIdentifier","src":"6627:2:24"},{"kind":"number","nativeSrc":"6631:4:24","nodeType":"YulLiteral","src":"6631:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6623:3:24","nodeType":"YulIdentifier","src":"6623:3:24"},"nativeSrc":"6623:13:24","nodeType":"YulFunctionCall","src":"6623:13:24"}],"functionName":{"name":"mstore","nativeSrc":"6610:6:24","nodeType":"YulIdentifier","src":"6610:6:24"},"nativeSrc":"6610:27:24","nodeType":"YulFunctionCall","src":"6610:27:24"},"nativeSrc":"6610:27:24","nodeType":"YulExpressionStatement","src":"6610:27:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5359:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5378:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5403:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5415:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5432:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5479:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5628:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5659:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"5671:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"6334:4:24","valueSize":1},{"declaration":10966,"isOffset":false,"isSlot":false,"src":"6346:4:24","valueSize":1},{"declaration":10969,"isOffset":false,"isSlot":false,"src":"5266:6:24","valueSize":1},{"declaration":10969,"isOffset":false,"isSlot":false,"src":"5314:6:24","valueSize":1},{"declaration":10969,"isOffset":false,"isSlot":false,"src":"6477:6:24","valueSize":1},{"declaration":10969,"isOffset":false,"isSlot":false,"src":"6497:6:24","valueSize":1}],"id":10971,"nodeType":"InlineAssembly","src":"5243:1428:24"}]},"documentation":{"id":10964,"nodeType":"StructuredDocumentation","src":"5058:41:24","text":"@dev Returns the decompressed `data`."},"id":10973,"implemented":true,"kind":"function","modifiers":[],"name":"flzDecompress","nameLocation":"5113:13:24","nodeType":"FunctionDefinition","parameters":{"id":10967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10966,"mutability":"mutable","name":"data","nameLocation":"5140:4:24","nodeType":"VariableDeclaration","scope":10973,"src":"5127:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10965,"name":"bytes","nodeType":"ElementaryTypeName","src":"5127:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5126:19:24"},"returnParameters":{"id":10970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10969,"mutability":"mutable","name":"result","nameLocation":"5182:6:24","nodeType":"VariableDeclaration","scope":10973,"src":"5169:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10968,"name":"bytes","nodeType":"ElementaryTypeName","src":"5169:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5168:21:24"},"scope":11000,"src":"5104:1573:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10982,"nodeType":"Block","src":"7650:1645:24","statements":[{"AST":{"nativeSrc":"7712:1577:24","nodeType":"YulBlock","src":"7712:1577:24","statements":[{"body":{"nativeSrc":"7761:130:24","nodeType":"YulBlock","src":"7761:130:24","statements":[{"expression":{"arguments":[{"name":"o_","nativeSrc":"7786:2:24","nodeType":"YulIdentifier","src":"7786:2:24"},{"arguments":[{"kind":"number","nativeSrc":"7794:3:24","nodeType":"YulLiteral","src":"7794:3:24","type":"","value":"240"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"7806:4:24","nodeType":"YulLiteral","src":"7806:4:24","type":"","value":"0xff"},{"arguments":[{"name":"d_","nativeSrc":"7816:2:24","nodeType":"YulIdentifier","src":"7816:2:24"},{"kind":"number","nativeSrc":"7820:4:24","nodeType":"YulLiteral","src":"7820:4:24","type":"","value":"0xff"}],"functionName":{"name":"add","nativeSrc":"7812:3:24","nodeType":"YulIdentifier","src":"7812:3:24"},"nativeSrc":"7812:13:24","nodeType":"YulFunctionCall","src":"7812:13:24"}],"functionName":{"name":"and","nativeSrc":"7802:3:24","nodeType":"YulIdentifier","src":"7802:3:24"},"nativeSrc":"7802:24:24","nodeType":"YulFunctionCall","src":"7802:24:24"},{"arguments":[{"kind":"number","nativeSrc":"7832:4:24","nodeType":"YulLiteral","src":"7832:4:24","type":"","value":"0x80"},{"name":"v_","nativeSrc":"7838:2:24","nodeType":"YulIdentifier","src":"7838:2:24"}],"functionName":{"name":"and","nativeSrc":"7828:3:24","nodeType":"YulIdentifier","src":"7828:3:24"},"nativeSrc":"7828:13:24","nodeType":"YulFunctionCall","src":"7828:13:24"}],"functionName":{"name":"or","nativeSrc":"7799:2:24","nodeType":"YulIdentifier","src":"7799:2:24"},"nativeSrc":"7799:43:24","nodeType":"YulFunctionCall","src":"7799:43:24"}],"functionName":{"name":"shl","nativeSrc":"7790:3:24","nodeType":"YulIdentifier","src":"7790:3:24"},"nativeSrc":"7790:53:24","nodeType":"YulFunctionCall","src":"7790:53:24"}],"functionName":{"name":"mstore","nativeSrc":"7779:6:24","nodeType":"YulIdentifier","src":"7779:6:24"},"nativeSrc":"7779:65:24","nodeType":"YulFunctionCall","src":"7779:65:24"},"nativeSrc":"7779:65:24","nodeType":"YulExpressionStatement","src":"7779:65:24"},{"nativeSrc":"7861:16:24","nodeType":"YulAssignment","src":"7861:16:24","value":{"arguments":[{"name":"o_","nativeSrc":"7871:2:24","nodeType":"YulIdentifier","src":"7871:2:24"},{"kind":"number","nativeSrc":"7875:1:24","nodeType":"YulLiteral","src":"7875:1:24","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"7867:3:24","nodeType":"YulIdentifier","src":"7867:3:24"},"nativeSrc":"7867:10:24","nodeType":"YulFunctionCall","src":"7867:10:24"},"variableNames":[{"name":"_o","nativeSrc":"7861:2:24","nodeType":"YulIdentifier","src":"7861:2:24"}]}]},"name":"rle","nativeSrc":"7726:165:24","nodeType":"YulFunctionDefinition","parameters":[{"name":"v_","nativeSrc":"7739:2:24","nodeType":"YulTypedName","src":"7739:2:24","type":""},{"name":"o_","nativeSrc":"7743:2:24","nodeType":"YulTypedName","src":"7743:2:24","type":""},{"name":"d_","nativeSrc":"7747:2:24","nodeType":"YulTypedName","src":"7747:2:24","type":""}],"returnVariables":[{"name":"_o","nativeSrc":"7754:2:24","nodeType":"YulTypedName","src":"7754:2:24","type":""},{"name":"_d","nativeSrc":"7758:2:24","nodeType":"YulTypedName","src":"7758:2:24","type":""}],"src":"7726:165:24"},{"nativeSrc":"7904:21:24","nodeType":"YulAssignment","src":"7904:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"7920:4:24","nodeType":"YulLiteral","src":"7920:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"7914:5:24","nodeType":"YulIdentifier","src":"7914:5:24"},"nativeSrc":"7914:11:24","nodeType":"YulFunctionCall","src":"7914:11:24"},"variableNames":[{"name":"result","nativeSrc":"7904:6:24","nodeType":"YulIdentifier","src":"7904:6:24"}]},{"nativeSrc":"7938:26:24","nodeType":"YulVariableDeclaration","src":"7938:26:24","value":{"arguments":[{"name":"result","nativeSrc":"7951:6:24","nodeType":"YulIdentifier","src":"7951:6:24"},{"kind":"number","nativeSrc":"7959:4:24","nodeType":"YulLiteral","src":"7959:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7947:3:24","nodeType":"YulIdentifier","src":"7947:3:24"},"nativeSrc":"7947:17:24","nodeType":"YulFunctionCall","src":"7947:17:24"},"variables":[{"name":"o","nativeSrc":"7942:1:24","nodeType":"YulTypedName","src":"7942:1:24","type":""}]},{"nativeSrc":"7977:10:24","nodeType":"YulVariableDeclaration","src":"7977:10:24","value":{"kind":"number","nativeSrc":"7986:1:24","nodeType":"YulLiteral","src":"7986:1:24","type":"","value":"0"},"variables":[{"name":"z","nativeSrc":"7981:1:24","nodeType":"YulTypedName","src":"7981:1:24","type":""}]},{"nativeSrc":"8031:10:24","nodeType":"YulVariableDeclaration","src":"8031:10:24","value":{"kind":"number","nativeSrc":"8040:1:24","nodeType":"YulLiteral","src":"8040:1:24","type":"","value":"0"},"variables":[{"name":"y","nativeSrc":"8035:1:24","nodeType":"YulTypedName","src":"8035:1:24","type":""}]},{"body":{"nativeSrc":"8152:724:24","nodeType":"YulBlock","src":"8152:724:24","statements":[{"nativeSrc":"8170:20:24","nodeType":"YulAssignment","src":"8170:20:24","value":{"arguments":[{"name":"data","nativeSrc":"8182:4:24","nodeType":"YulIdentifier","src":"8182:4:24"},{"kind":"number","nativeSrc":"8188:1:24","nodeType":"YulLiteral","src":"8188:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8178:3:24","nodeType":"YulIdentifier","src":"8178:3:24"},"nativeSrc":"8178:12:24","nodeType":"YulFunctionCall","src":"8178:12:24"},"variableNames":[{"name":"data","nativeSrc":"8170:4:24","nodeType":"YulIdentifier","src":"8170:4:24"}]},{"nativeSrc":"8207:30:24","nodeType":"YulVariableDeclaration","src":"8207:30:24","value":{"arguments":[{"kind":"number","nativeSrc":"8221:2:24","nodeType":"YulLiteral","src":"8221:2:24","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"8231:4:24","nodeType":"YulIdentifier","src":"8231:4:24"}],"functionName":{"name":"mload","nativeSrc":"8225:5:24","nodeType":"YulIdentifier","src":"8225:5:24"},"nativeSrc":"8225:11:24","nodeType":"YulFunctionCall","src":"8225:11:24"}],"functionName":{"name":"byte","nativeSrc":"8216:4:24","nodeType":"YulIdentifier","src":"8216:4:24"},"nativeSrc":"8216:21:24","nodeType":"YulFunctionCall","src":"8216:21:24"},"variables":[{"name":"c","nativeSrc":"8211:1:24","nodeType":"YulTypedName","src":"8211:1:24","type":""}]},{"body":{"nativeSrc":"8267:202:24","nodeType":"YulBlock","src":"8267:202:24","statements":[{"body":{"nativeSrc":"8294:27:24","nodeType":"YulBlock","src":"8294:27:24","statements":[{"nativeSrc":"8296:23:24","nodeType":"YulAssignment","src":"8296:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"8308:4:24","nodeType":"YulLiteral","src":"8308:4:24","type":"","value":"0xff"},{"name":"o","nativeSrc":"8314:1:24","nodeType":"YulIdentifier","src":"8314:1:24"},{"name":"y","nativeSrc":"8317:1:24","nodeType":"YulIdentifier","src":"8317:1:24"}],"functionName":{"name":"rle","nativeSrc":"8304:3:24","nodeType":"YulIdentifier","src":"8304:3:24"},"nativeSrc":"8304:15:24","nodeType":"YulFunctionCall","src":"8304:15:24"},"variableNames":[{"name":"o","nativeSrc":"8296:1:24","nodeType":"YulIdentifier","src":"8296:1:24"},{"name":"y","nativeSrc":"8299:1:24","nodeType":"YulIdentifier","src":"8299:1:24"}]}]},"condition":{"name":"y","nativeSrc":"8292:1:24","nodeType":"YulIdentifier","src":"8292:1:24"},"nativeSrc":"8289:32:24","nodeType":"YulIf","src":"8289:32:24"},{"nativeSrc":"8342:14:24","nodeType":"YulAssignment","src":"8342:14:24","value":{"arguments":[{"name":"z","nativeSrc":"8351:1:24","nodeType":"YulIdentifier","src":"8351:1:24"},{"kind":"number","nativeSrc":"8354:1:24","nodeType":"YulLiteral","src":"8354:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8347:3:24","nodeType":"YulIdentifier","src":"8347:3:24"},"nativeSrc":"8347:9:24","nodeType":"YulFunctionCall","src":"8347:9:24"},"variableNames":[{"name":"z","nativeSrc":"8342:1:24","nodeType":"YulIdentifier","src":"8342:1:24"}]},{"body":{"nativeSrc":"8392:30:24","nodeType":"YulBlock","src":"8392:30:24","statements":[{"nativeSrc":"8394:26:24","nodeType":"YulAssignment","src":"8394:26:24","value":{"arguments":[{"kind":"number","nativeSrc":"8406:4:24","nodeType":"YulLiteral","src":"8406:4:24","type":"","value":"0x00"},{"name":"o","nativeSrc":"8412:1:24","nodeType":"YulIdentifier","src":"8412:1:24"},{"kind":"number","nativeSrc":"8415:4:24","nodeType":"YulLiteral","src":"8415:4:24","type":"","value":"0x80"}],"functionName":{"name":"rle","nativeSrc":"8402:3:24","nodeType":"YulIdentifier","src":"8402:3:24"},"nativeSrc":"8402:18:24","nodeType":"YulFunctionCall","src":"8402:18:24"},"variableNames":[{"name":"o","nativeSrc":"8394:1:24","nodeType":"YulIdentifier","src":"8394:1:24"},{"name":"z","nativeSrc":"8397:1:24","nodeType":"YulIdentifier","src":"8397:1:24"}]}]},"condition":{"arguments":[{"name":"z","nativeSrc":"8383:1:24","nodeType":"YulIdentifier","src":"8383:1:24"},{"kind":"number","nativeSrc":"8386:4:24","nodeType":"YulLiteral","src":"8386:4:24","type":"","value":"0x80"}],"functionName":{"name":"eq","nativeSrc":"8380:2:24","nodeType":"YulIdentifier","src":"8380:2:24"},"nativeSrc":"8380:11:24","nodeType":"YulFunctionCall","src":"8380:11:24"},"nativeSrc":"8377:45:24","nodeType":"YulIf","src":"8377:45:24"},{"nativeSrc":"8443:8:24","nodeType":"YulContinue","src":"8443:8:24"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"8264:1:24","nodeType":"YulIdentifier","src":"8264:1:24"}],"functionName":{"name":"iszero","nativeSrc":"8257:6:24","nodeType":"YulIdentifier","src":"8257:6:24"},"nativeSrc":"8257:9:24","nodeType":"YulFunctionCall","src":"8257:9:24"},"nativeSrc":"8254:215:24","nodeType":"YulIf","src":"8254:215:24"},{"body":{"nativeSrc":"8501:202:24","nodeType":"YulBlock","src":"8501:202:24","statements":[{"body":{"nativeSrc":"8528:27:24","nodeType":"YulBlock","src":"8528:27:24","statements":[{"nativeSrc":"8530:23:24","nodeType":"YulAssignment","src":"8530:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"8542:4:24","nodeType":"YulLiteral","src":"8542:4:24","type":"","value":"0x00"},{"name":"o","nativeSrc":"8548:1:24","nodeType":"YulIdentifier","src":"8548:1:24"},{"name":"z","nativeSrc":"8551:1:24","nodeType":"YulIdentifier","src":"8551:1:24"}],"functionName":{"name":"rle","nativeSrc":"8538:3:24","nodeType":"YulIdentifier","src":"8538:3:24"},"nativeSrc":"8538:15:24","nodeType":"YulFunctionCall","src":"8538:15:24"},"variableNames":[{"name":"o","nativeSrc":"8530:1:24","nodeType":"YulIdentifier","src":"8530:1:24"},{"name":"z","nativeSrc":"8533:1:24","nodeType":"YulIdentifier","src":"8533:1:24"}]}]},"condition":{"name":"z","nativeSrc":"8526:1:24","nodeType":"YulIdentifier","src":"8526:1:24"},"nativeSrc":"8523:32:24","nodeType":"YulIf","src":"8523:32:24"},{"nativeSrc":"8576:14:24","nodeType":"YulAssignment","src":"8576:14:24","value":{"arguments":[{"name":"y","nativeSrc":"8585:1:24","nodeType":"YulIdentifier","src":"8585:1:24"},{"kind":"number","nativeSrc":"8588:1:24","nodeType":"YulLiteral","src":"8588:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8581:3:24","nodeType":"YulIdentifier","src":"8581:3:24"},"nativeSrc":"8581:9:24","nodeType":"YulFunctionCall","src":"8581:9:24"},"variableNames":[{"name":"y","nativeSrc":"8576:1:24","nodeType":"YulIdentifier","src":"8576:1:24"}]},{"body":{"nativeSrc":"8626:30:24","nodeType":"YulBlock","src":"8626:30:24","statements":[{"nativeSrc":"8628:26:24","nodeType":"YulAssignment","src":"8628:26:24","value":{"arguments":[{"kind":"number","nativeSrc":"8640:4:24","nodeType":"YulLiteral","src":"8640:4:24","type":"","value":"0xff"},{"name":"o","nativeSrc":"8646:1:24","nodeType":"YulIdentifier","src":"8646:1:24"},{"kind":"number","nativeSrc":"8649:4:24","nodeType":"YulLiteral","src":"8649:4:24","type":"","value":"0x20"}],"functionName":{"name":"rle","nativeSrc":"8636:3:24","nodeType":"YulIdentifier","src":"8636:3:24"},"nativeSrc":"8636:18:24","nodeType":"YulFunctionCall","src":"8636:18:24"},"variableNames":[{"name":"o","nativeSrc":"8628:1:24","nodeType":"YulIdentifier","src":"8628:1:24"},{"name":"y","nativeSrc":"8631:1:24","nodeType":"YulIdentifier","src":"8631:1:24"}]}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8617:1:24","nodeType":"YulIdentifier","src":"8617:1:24"},{"kind":"number","nativeSrc":"8620:4:24","nodeType":"YulLiteral","src":"8620:4:24","type":"","value":"0x20"}],"functionName":{"name":"eq","nativeSrc":"8614:2:24","nodeType":"YulIdentifier","src":"8614:2:24"},"nativeSrc":"8614:11:24","nodeType":"YulFunctionCall","src":"8614:11:24"},"nativeSrc":"8611:45:24","nodeType":"YulIf","src":"8611:45:24"},{"nativeSrc":"8677:8:24","nodeType":"YulContinue","src":"8677:8:24"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"8492:1:24","nodeType":"YulIdentifier","src":"8492:1:24"},{"kind":"number","nativeSrc":"8495:4:24","nodeType":"YulLiteral","src":"8495:4:24","type":"","value":"0xff"}],"functionName":{"name":"eq","nativeSrc":"8489:2:24","nodeType":"YulIdentifier","src":"8489:2:24"},"nativeSrc":"8489:11:24","nodeType":"YulFunctionCall","src":"8489:11:24"},"nativeSrc":"8486:217:24","nodeType":"YulIf","src":"8486:217:24"},{"body":{"nativeSrc":"8725:27:24","nodeType":"YulBlock","src":"8725:27:24","statements":[{"nativeSrc":"8727:23:24","nodeType":"YulAssignment","src":"8727:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"8739:4:24","nodeType":"YulLiteral","src":"8739:4:24","type":"","value":"0xff"},{"name":"o","nativeSrc":"8745:1:24","nodeType":"YulIdentifier","src":"8745:1:24"},{"name":"y","nativeSrc":"8748:1:24","nodeType":"YulIdentifier","src":"8748:1:24"}],"functionName":{"name":"rle","nativeSrc":"8735:3:24","nodeType":"YulIdentifier","src":"8735:3:24"},"nativeSrc":"8735:15:24","nodeType":"YulFunctionCall","src":"8735:15:24"},"variableNames":[{"name":"o","nativeSrc":"8727:1:24","nodeType":"YulIdentifier","src":"8727:1:24"},{"name":"y","nativeSrc":"8730:1:24","nodeType":"YulIdentifier","src":"8730:1:24"}]}]},"condition":{"name":"y","nativeSrc":"8723:1:24","nodeType":"YulIdentifier","src":"8723:1:24"},"nativeSrc":"8720:32:24","nodeType":"YulIf","src":"8720:32:24"},{"body":{"nativeSrc":"8774:27:24","nodeType":"YulBlock","src":"8774:27:24","statements":[{"nativeSrc":"8776:23:24","nodeType":"YulAssignment","src":"8776:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"8788:4:24","nodeType":"YulLiteral","src":"8788:4:24","type":"","value":"0x00"},{"name":"o","nativeSrc":"8794:1:24","nodeType":"YulIdentifier","src":"8794:1:24"},{"name":"z","nativeSrc":"8797:1:24","nodeType":"YulIdentifier","src":"8797:1:24"}],"functionName":{"name":"rle","nativeSrc":"8784:3:24","nodeType":"YulIdentifier","src":"8784:3:24"},"nativeSrc":"8784:15:24","nodeType":"YulFunctionCall","src":"8784:15:24"},"variableNames":[{"name":"o","nativeSrc":"8776:1:24","nodeType":"YulIdentifier","src":"8776:1:24"},{"name":"z","nativeSrc":"8779:1:24","nodeType":"YulIdentifier","src":"8779:1:24"}]}]},"condition":{"name":"z","nativeSrc":"8772:1:24","nodeType":"YulIdentifier","src":"8772:1:24"},"nativeSrc":"8769:32:24","nodeType":"YulIf","src":"8769:32:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"8826:1:24","nodeType":"YulIdentifier","src":"8826:1:24"},{"name":"c","nativeSrc":"8829:1:24","nodeType":"YulIdentifier","src":"8829:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"8818:7:24","nodeType":"YulIdentifier","src":"8818:7:24"},"nativeSrc":"8818:13:24","nodeType":"YulFunctionCall","src":"8818:13:24"},"nativeSrc":"8818:13:24","nodeType":"YulExpressionStatement","src":"8818:13:24"},{"nativeSrc":"8848:14:24","nodeType":"YulAssignment","src":"8848:14:24","value":{"arguments":[{"name":"o","nativeSrc":"8857:1:24","nodeType":"YulIdentifier","src":"8857:1:24"},{"kind":"number","nativeSrc":"8860:1:24","nodeType":"YulLiteral","src":"8860:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8853:3:24","nodeType":"YulIdentifier","src":"8853:3:24"},"nativeSrc":"8853:9:24","nodeType":"YulFunctionCall","src":"8853:9:24"},"variableNames":[{"name":"o","nativeSrc":"8848:1:24","nodeType":"YulIdentifier","src":"8848:1:24"}]}]},"condition":{"arguments":[{"arguments":[{"name":"data","nativeSrc":"8137:4:24","nodeType":"YulIdentifier","src":"8137:4:24"},{"name":"end","nativeSrc":"8143:3:24","nodeType":"YulIdentifier","src":"8143:3:24"}],"functionName":{"name":"eq","nativeSrc":"8134:2:24","nodeType":"YulIdentifier","src":"8134:2:24"},"nativeSrc":"8134:13:24","nodeType":"YulFunctionCall","src":"8134:13:24"}],"functionName":{"name":"iszero","nativeSrc":"8127:6:24","nodeType":"YulIdentifier","src":"8127:6:24"},"nativeSrc":"8127:21:24","nodeType":"YulFunctionCall","src":"8127:21:24"},"nativeSrc":"8085:791:24","nodeType":"YulForLoop","post":{"nativeSrc":"8149:2:24","nodeType":"YulBlock","src":"8149:2:24","statements":[]},"pre":{"nativeSrc":"8089:37:24","nodeType":"YulBlock","src":"8089:37:24","statements":[{"nativeSrc":"8091:33:24","nodeType":"YulVariableDeclaration","src":"8091:33:24","value":{"arguments":[{"name":"data","nativeSrc":"8106:4:24","nodeType":"YulIdentifier","src":"8106:4:24"},{"arguments":[{"name":"data","nativeSrc":"8118:4:24","nodeType":"YulIdentifier","src":"8118:4:24"}],"functionName":{"name":"mload","nativeSrc":"8112:5:24","nodeType":"YulIdentifier","src":"8112:5:24"},"nativeSrc":"8112:11:24","nodeType":"YulFunctionCall","src":"8112:11:24"}],"functionName":{"name":"add","nativeSrc":"8102:3:24","nodeType":"YulIdentifier","src":"8102:3:24"},"nativeSrc":"8102:22:24","nodeType":"YulFunctionCall","src":"8102:22:24"},"variables":[{"name":"end","nativeSrc":"8095:3:24","nodeType":"YulTypedName","src":"8095:3:24","type":""}]}]},"src":"8085:791:24"},{"body":{"nativeSrc":"8894:27:24","nodeType":"YulBlock","src":"8894:27:24","statements":[{"nativeSrc":"8896:23:24","nodeType":"YulAssignment","src":"8896:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"8908:4:24","nodeType":"YulLiteral","src":"8908:4:24","type":"","value":"0xff"},{"name":"o","nativeSrc":"8914:1:24","nodeType":"YulIdentifier","src":"8914:1:24"},{"name":"y","nativeSrc":"8917:1:24","nodeType":"YulIdentifier","src":"8917:1:24"}],"functionName":{"name":"rle","nativeSrc":"8904:3:24","nodeType":"YulIdentifier","src":"8904:3:24"},"nativeSrc":"8904:15:24","nodeType":"YulFunctionCall","src":"8904:15:24"},"variableNames":[{"name":"o","nativeSrc":"8896:1:24","nodeType":"YulIdentifier","src":"8896:1:24"},{"name":"y","nativeSrc":"8899:1:24","nodeType":"YulIdentifier","src":"8899:1:24"}]}]},"condition":{"name":"y","nativeSrc":"8892:1:24","nodeType":"YulIdentifier","src":"8892:1:24"},"nativeSrc":"8889:32:24","nodeType":"YulIf","src":"8889:32:24"},{"body":{"nativeSrc":"8939:27:24","nodeType":"YulBlock","src":"8939:27:24","statements":[{"nativeSrc":"8941:23:24","nodeType":"YulAssignment","src":"8941:23:24","value":{"arguments":[{"kind":"number","nativeSrc":"8953:4:24","nodeType":"YulLiteral","src":"8953:4:24","type":"","value":"0x00"},{"name":"o","nativeSrc":"8959:1:24","nodeType":"YulIdentifier","src":"8959:1:24"},{"name":"z","nativeSrc":"8962:1:24","nodeType":"YulIdentifier","src":"8962:1:24"}],"functionName":{"name":"rle","nativeSrc":"8949:3:24","nodeType":"YulIdentifier","src":"8949:3:24"},"nativeSrc":"8949:15:24","nodeType":"YulFunctionCall","src":"8949:15:24"},"variableNames":[{"name":"o","nativeSrc":"8941:1:24","nodeType":"YulIdentifier","src":"8941:1:24"},{"name":"z","nativeSrc":"8944:1:24","nodeType":"YulIdentifier","src":"8944:1:24"}]}]},"condition":{"name":"z","nativeSrc":"8937:1:24","nodeType":"YulIdentifier","src":"8937:1:24"},"nativeSrc":"8934:32:24","nodeType":"YulIf","src":"8934:32:24"},{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"9039:6:24","nodeType":"YulIdentifier","src":"9039:6:24"},{"kind":"number","nativeSrc":"9047:1:24","nodeType":"YulLiteral","src":"9047:1:24","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9035:3:24","nodeType":"YulIdentifier","src":"9035:3:24"},"nativeSrc":"9035:14:24","nodeType":"YulFunctionCall","src":"9035:14:24"},{"arguments":[{"arguments":[{"arguments":[{"name":"result","nativeSrc":"9065:6:24","nodeType":"YulIdentifier","src":"9065:6:24"},{"kind":"number","nativeSrc":"9073:1:24","nodeType":"YulLiteral","src":"9073:1:24","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9061:3:24","nodeType":"YulIdentifier","src":"9061:3:24"},"nativeSrc":"9061:14:24","nodeType":"YulFunctionCall","src":"9061:14:24"}],"functionName":{"name":"mload","nativeSrc":"9055:5:24","nodeType":"YulIdentifier","src":"9055:5:24"},"nativeSrc":"9055:21:24","nodeType":"YulFunctionCall","src":"9055:21:24"}],"functionName":{"name":"not","nativeSrc":"9051:3:24","nodeType":"YulIdentifier","src":"9051:3:24"},"nativeSrc":"9051:26:24","nodeType":"YulFunctionCall","src":"9051:26:24"}],"functionName":{"name":"mstore","nativeSrc":"9028:6:24","nodeType":"YulIdentifier","src":"9028:6:24"},"nativeSrc":"9028:50:24","nodeType":"YulFunctionCall","src":"9028:50:24"},"nativeSrc":"9028:50:24","nodeType":"YulExpressionStatement","src":"9028:50:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"9098:6:24","nodeType":"YulIdentifier","src":"9098:6:24"},{"arguments":[{"name":"o","nativeSrc":"9110:1:24","nodeType":"YulIdentifier","src":"9110:1:24"},{"arguments":[{"name":"result","nativeSrc":"9117:6:24","nodeType":"YulIdentifier","src":"9117:6:24"},{"kind":"number","nativeSrc":"9125:4:24","nodeType":"YulLiteral","src":"9125:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9113:3:24","nodeType":"YulIdentifier","src":"9113:3:24"},"nativeSrc":"9113:17:24","nodeType":"YulFunctionCall","src":"9113:17:24"}],"functionName":{"name":"sub","nativeSrc":"9106:3:24","nodeType":"YulIdentifier","src":"9106:3:24"},"nativeSrc":"9106:25:24","nodeType":"YulFunctionCall","src":"9106:25:24"}],"functionName":{"name":"mstore","nativeSrc":"9091:6:24","nodeType":"YulIdentifier","src":"9091:6:24"},"nativeSrc":"9091:41:24","nodeType":"YulFunctionCall","src":"9091:41:24"},"nativeSrc":"9091:41:24","nodeType":"YulExpressionStatement","src":"9091:41:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"9173:1:24","nodeType":"YulIdentifier","src":"9173:1:24"},{"kind":"number","nativeSrc":"9176:1:24","nodeType":"YulLiteral","src":"9176:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9166:6:24","nodeType":"YulIdentifier","src":"9166:6:24"},"nativeSrc":"9166:12:24","nodeType":"YulFunctionCall","src":"9166:12:24"},"nativeSrc":"9166:12:24","nodeType":"YulExpressionStatement","src":"9166:12:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9236:4:24","nodeType":"YulLiteral","src":"9236:4:24","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"9246:1:24","nodeType":"YulIdentifier","src":"9246:1:24"},{"kind":"number","nativeSrc":"9249:4:24","nodeType":"YulLiteral","src":"9249:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9242:3:24","nodeType":"YulIdentifier","src":"9242:3:24"},"nativeSrc":"9242:12:24","nodeType":"YulFunctionCall","src":"9242:12:24"}],"functionName":{"name":"mstore","nativeSrc":"9229:6:24","nodeType":"YulIdentifier","src":"9229:6:24"},"nativeSrc":"9229:26:24","nodeType":"YulFunctionCall","src":"9229:26:24"},"nativeSrc":"9229:26:24","nodeType":"YulExpressionStatement","src":"9229:26:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10976,"isOffset":false,"isSlot":false,"src":"8106:4:24","valueSize":1},{"declaration":10976,"isOffset":false,"isSlot":false,"src":"8118:4:24","valueSize":1},{"declaration":10976,"isOffset":false,"isSlot":false,"src":"8137:4:24","valueSize":1},{"declaration":10976,"isOffset":false,"isSlot":false,"src":"8170:4:24","valueSize":1},{"declaration":10976,"isOffset":false,"isSlot":false,"src":"8182:4:24","valueSize":1},{"declaration":10976,"isOffset":false,"isSlot":false,"src":"8231:4:24","valueSize":1},{"declaration":10979,"isOffset":false,"isSlot":false,"src":"7904:6:24","valueSize":1},{"declaration":10979,"isOffset":false,"isSlot":false,"src":"7951:6:24","valueSize":1},{"declaration":10979,"isOffset":false,"isSlot":false,"src":"9039:6:24","valueSize":1},{"declaration":10979,"isOffset":false,"isSlot":false,"src":"9065:6:24","valueSize":1},{"declaration":10979,"isOffset":false,"isSlot":false,"src":"9098:6:24","valueSize":1},{"declaration":10979,"isOffset":false,"isSlot":false,"src":"9117:6:24","valueSize":1}],"id":10981,"nodeType":"InlineAssembly","src":"7703:1586:24"}]},"documentation":{"id":10974,"nodeType":"StructuredDocumentation","src":"7523:39:24","text":"@dev Returns the compressed `data`."},"id":10983,"implemented":true,"kind":"function","modifiers":[],"name":"cdCompress","nameLocation":"7576:10:24","nodeType":"FunctionDefinition","parameters":{"id":10977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10976,"mutability":"mutable","name":"data","nameLocation":"7600:4:24","nodeType":"VariableDeclaration","scope":10983,"src":"7587:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10975,"name":"bytes","nodeType":"ElementaryTypeName","src":"7587:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7586:19:24"},"returnParameters":{"id":10980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10979,"mutability":"mutable","name":"result","nameLocation":"7642:6:24","nodeType":"VariableDeclaration","scope":10983,"src":"7629:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10978,"name":"bytes","nodeType":"ElementaryTypeName","src":"7629:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7628:21:24"},"scope":11000,"src":"7567:1728:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10992,"nodeType":"Block","src":"9432:1323:24","statements":[{"AST":{"nativeSrc":"9494:1255:24","nodeType":"YulBlock","src":"9494:1255:24","statements":[{"body":{"nativeSrc":"9523:1216:24","nodeType":"YulBlock","src":"9523:1216:24","statements":[{"nativeSrc":"9541:21:24","nodeType":"YulAssignment","src":"9541:21:24","value":{"arguments":[{"kind":"number","nativeSrc":"9557:4:24","nodeType":"YulLiteral","src":"9557:4:24","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9551:5:24","nodeType":"YulIdentifier","src":"9551:5:24"},"nativeSrc":"9551:11:24","nodeType":"YulFunctionCall","src":"9551:11:24"},"variableNames":[{"name":"result","nativeSrc":"9541:6:24","nodeType":"YulIdentifier","src":"9541:6:24"}]},{"nativeSrc":"9579:26:24","nodeType":"YulVariableDeclaration","src":"9579:26:24","value":{"arguments":[{"name":"result","nativeSrc":"9592:6:24","nodeType":"YulIdentifier","src":"9592:6:24"},{"kind":"number","nativeSrc":"9600:4:24","nodeType":"YulLiteral","src":"9600:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9588:3:24","nodeType":"YulIdentifier","src":"9588:3:24"},"nativeSrc":"9588:17:24","nodeType":"YulFunctionCall","src":"9588:17:24"},"variables":[{"name":"o","nativeSrc":"9583:1:24","nodeType":"YulTypedName","src":"9583:1:24","type":""}]},{"nativeSrc":"9622:21:24","nodeType":"YulVariableDeclaration","src":"9622:21:24","value":{"arguments":[{"name":"data","nativeSrc":"9635:4:24","nodeType":"YulIdentifier","src":"9635:4:24"},{"kind":"number","nativeSrc":"9641:1:24","nodeType":"YulLiteral","src":"9641:1:24","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"9631:3:24","nodeType":"YulIdentifier","src":"9631:3:24"},"nativeSrc":"9631:12:24","nodeType":"YulFunctionCall","src":"9631:12:24"},"variables":[{"name":"s","nativeSrc":"9626:1:24","nodeType":"YulTypedName","src":"9626:1:24","type":""}]},{"nativeSrc":"9660:17:24","nodeType":"YulVariableDeclaration","src":"9660:17:24","value":{"arguments":[{"name":"s","nativeSrc":"9675:1:24","nodeType":"YulIdentifier","src":"9675:1:24"}],"functionName":{"name":"mload","nativeSrc":"9669:5:24","nodeType":"YulIdentifier","src":"9669:5:24"},"nativeSrc":"9669:8:24","nodeType":"YulFunctionCall","src":"9669:8:24"},"variables":[{"name":"v","nativeSrc":"9664:1:24","nodeType":"YulTypedName","src":"9664:1:24","type":""}]},{"nativeSrc":"9694:33:24","nodeType":"YulVariableDeclaration","src":"9694:33:24","value":{"arguments":[{"name":"data","nativeSrc":"9709:4:24","nodeType":"YulIdentifier","src":"9709:4:24"},{"arguments":[{"name":"data","nativeSrc":"9721:4:24","nodeType":"YulIdentifier","src":"9721:4:24"}],"functionName":{"name":"mload","nativeSrc":"9715:5:24","nodeType":"YulIdentifier","src":"9715:5:24"},"nativeSrc":"9715:11:24","nodeType":"YulFunctionCall","src":"9715:11:24"}],"functionName":{"name":"add","nativeSrc":"9705:3:24","nodeType":"YulIdentifier","src":"9705:3:24"},"nativeSrc":"9705:22:24","nodeType":"YulFunctionCall","src":"9705:22:24"},"variables":[{"name":"end","nativeSrc":"9698:3:24","nodeType":"YulTypedName","src":"9698:3:24","type":""}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"9751:1:24","nodeType":"YulIdentifier","src":"9751:1:24"},{"arguments":[{"name":"v","nativeSrc":"9758:1:24","nodeType":"YulIdentifier","src":"9758:1:24"}],"functionName":{"name":"not","nativeSrc":"9754:3:24","nodeType":"YulIdentifier","src":"9754:3:24"},"nativeSrc":"9754:6:24","nodeType":"YulFunctionCall","src":"9754:6:24"}],"functionName":{"name":"mstore","nativeSrc":"9744:6:24","nodeType":"YulIdentifier","src":"9744:6:24"},"nativeSrc":"9744:17:24","nodeType":"YulFunctionCall","src":"9744:17:24"},"nativeSrc":"9744:17:24","nodeType":"YulExpressionStatement","src":"9744:17:24"},{"body":{"nativeSrc":"9839:614:24","nodeType":"YulBlock","src":"9839:614:24","statements":[{"nativeSrc":"9861:20:24","nodeType":"YulAssignment","src":"9861:20:24","value":{"arguments":[{"name":"data","nativeSrc":"9873:4:24","nodeType":"YulIdentifier","src":"9873:4:24"},{"kind":"number","nativeSrc":"9879:1:24","nodeType":"YulLiteral","src":"9879:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"9869:3:24","nodeType":"YulIdentifier","src":"9869:3:24"},"nativeSrc":"9869:12:24","nodeType":"YulFunctionCall","src":"9869:12:24"},"variableNames":[{"name":"data","nativeSrc":"9861:4:24","nodeType":"YulIdentifier","src":"9861:4:24"}]},{"nativeSrc":"9902:30:24","nodeType":"YulVariableDeclaration","src":"9902:30:24","value":{"arguments":[{"kind":"number","nativeSrc":"9916:2:24","nodeType":"YulLiteral","src":"9916:2:24","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"9926:4:24","nodeType":"YulIdentifier","src":"9926:4:24"}],"functionName":{"name":"mload","nativeSrc":"9920:5:24","nodeType":"YulIdentifier","src":"9920:5:24"},"nativeSrc":"9920:11:24","nodeType":"YulFunctionCall","src":"9920:11:24"}],"functionName":{"name":"byte","nativeSrc":"9911:4:24","nodeType":"YulIdentifier","src":"9911:4:24"},"nativeSrc":"9911:21:24","nodeType":"YulFunctionCall","src":"9911:21:24"},"variables":[{"name":"c","nativeSrc":"9906:1:24","nodeType":"YulTypedName","src":"9906:1:24","type":""}]},{"body":{"nativeSrc":"9966:400:24","nodeType":"YulBlock","src":"9966:400:24","statements":[{"nativeSrc":"9992:20:24","nodeType":"YulAssignment","src":"9992:20:24","value":{"arguments":[{"name":"data","nativeSrc":"10004:4:24","nodeType":"YulIdentifier","src":"10004:4:24"},{"kind":"number","nativeSrc":"10010:1:24","nodeType":"YulLiteral","src":"10010:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10000:3:24","nodeType":"YulIdentifier","src":"10000:3:24"},"nativeSrc":"10000:12:24","nodeType":"YulFunctionCall","src":"10000:12:24"},"variableNames":[{"name":"data","nativeSrc":"9992:4:24","nodeType":"YulIdentifier","src":"9992:4:24"}]},{"nativeSrc":"10037:30:24","nodeType":"YulVariableDeclaration","src":"10037:30:24","value":{"arguments":[{"kind":"number","nativeSrc":"10051:2:24","nodeType":"YulLiteral","src":"10051:2:24","type":"","value":"31"},{"arguments":[{"name":"data","nativeSrc":"10061:4:24","nodeType":"YulIdentifier","src":"10061:4:24"}],"functionName":{"name":"mload","nativeSrc":"10055:5:24","nodeType":"YulIdentifier","src":"10055:5:24"},"nativeSrc":"10055:11:24","nodeType":"YulFunctionCall","src":"10055:11:24"}],"functionName":{"name":"byte","nativeSrc":"10046:4:24","nodeType":"YulIdentifier","src":"10046:4:24"},"nativeSrc":"10046:21:24","nodeType":"YulFunctionCall","src":"10046:21:24"},"variables":[{"name":"d","nativeSrc":"10041:1:24","nodeType":"YulTypedName","src":"10041:1:24","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"10157:1:24","nodeType":"YulIdentifier","src":"10157:1:24"},{"arguments":[{"kind":"number","nativeSrc":"10164:1:24","nodeType":"YulLiteral","src":"10164:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"10160:3:24","nodeType":"YulIdentifier","src":"10160:3:24"},"nativeSrc":"10160:6:24","nodeType":"YulFunctionCall","src":"10160:6:24"}],"functionName":{"name":"mstore","nativeSrc":"10150:6:24","nodeType":"YulIdentifier","src":"10150:6:24"},"nativeSrc":"10150:17:24","nodeType":"YulFunctionCall","src":"10150:17:24"},"nativeSrc":"10150:17:24","nodeType":"YulExpressionStatement","src":"10150:17:24"},{"body":{"nativeSrc":"10215:38:24","nodeType":"YulBlock","src":"10215:38:24","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"10226:1:24","nodeType":"YulIdentifier","src":"10226:1:24"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"10229:8:24","nodeType":"YulIdentifier","src":"10229:8:24"},"nativeSrc":"10229:10:24","nodeType":"YulFunctionCall","src":"10229:10:24"},{"arguments":[{"name":"d","nativeSrc":"10245:1:24","nodeType":"YulIdentifier","src":"10245:1:24"},{"kind":"number","nativeSrc":"10248:1:24","nodeType":"YulLiteral","src":"10248:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10241:3:24","nodeType":"YulIdentifier","src":"10241:3:24"},"nativeSrc":"10241:9:24","nodeType":"YulFunctionCall","src":"10241:9:24"}],"functionName":{"name":"codecopy","nativeSrc":"10217:8:24","nodeType":"YulIdentifier","src":"10217:8:24"},"nativeSrc":"10217:34:24","nodeType":"YulFunctionCall","src":"10217:34:24"},"nativeSrc":"10217:34:24","nodeType":"YulExpressionStatement","src":"10217:34:24"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"10205:1:24","nodeType":"YulIdentifier","src":"10205:1:24"},{"kind":"number","nativeSrc":"10208:4:24","nodeType":"YulLiteral","src":"10208:4:24","type":"","value":"0x7f"}],"functionName":{"name":"gt","nativeSrc":"10202:2:24","nodeType":"YulIdentifier","src":"10202:2:24"},"nativeSrc":"10202:11:24","nodeType":"YulFunctionCall","src":"10202:11:24"}],"functionName":{"name":"iszero","nativeSrc":"10195:6:24","nodeType":"YulIdentifier","src":"10195:6:24"},"nativeSrc":"10195:19:24","nodeType":"YulFunctionCall","src":"10195:19:24"},"nativeSrc":"10192:61:24","nodeType":"YulIf","src":"10192:61:24"},{"nativeSrc":"10278:33:24","nodeType":"YulAssignment","src":"10278:33:24","value":{"arguments":[{"name":"o","nativeSrc":"10287:1:24","nodeType":"YulIdentifier","src":"10287:1:24"},{"arguments":[{"arguments":[{"name":"d","nativeSrc":"10298:1:24","nodeType":"YulIdentifier","src":"10298:1:24"},{"kind":"number","nativeSrc":"10301:4:24","nodeType":"YulLiteral","src":"10301:4:24","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"10294:3:24","nodeType":"YulIdentifier","src":"10294:3:24"},"nativeSrc":"10294:12:24","nodeType":"YulFunctionCall","src":"10294:12:24"},{"kind":"number","nativeSrc":"10308:1:24","nodeType":"YulLiteral","src":"10308:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10290:3:24","nodeType":"YulIdentifier","src":"10290:3:24"},"nativeSrc":"10290:20:24","nodeType":"YulFunctionCall","src":"10290:20:24"}],"functionName":{"name":"add","nativeSrc":"10283:3:24","nodeType":"YulIdentifier","src":"10283:3:24"},"nativeSrc":"10283:28:24","nodeType":"YulFunctionCall","src":"10283:28:24"},"variableNames":[{"name":"o","nativeSrc":"10278:1:24","nodeType":"YulIdentifier","src":"10278:1:24"}]},{"nativeSrc":"10336:8:24","nodeType":"YulContinue","src":"10336:8:24"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"9963:1:24","nodeType":"YulIdentifier","src":"9963:1:24"}],"functionName":{"name":"iszero","nativeSrc":"9956:6:24","nodeType":"YulIdentifier","src":"9956:6:24"},"nativeSrc":"9956:9:24","nodeType":"YulFunctionCall","src":"9956:9:24"},"nativeSrc":"9953:413:24","nodeType":"YulIf","src":"9953:413:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"10395:1:24","nodeType":"YulIdentifier","src":"10395:1:24"},{"name":"c","nativeSrc":"10398:1:24","nodeType":"YulIdentifier","src":"10398:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"10387:7:24","nodeType":"YulIdentifier","src":"10387:7:24"},"nativeSrc":"10387:13:24","nodeType":"YulFunctionCall","src":"10387:13:24"},"nativeSrc":"10387:13:24","nodeType":"YulExpressionStatement","src":"10387:13:24"},{"nativeSrc":"10421:14:24","nodeType":"YulAssignment","src":"10421:14:24","value":{"arguments":[{"name":"o","nativeSrc":"10430:1:24","nodeType":"YulIdentifier","src":"10430:1:24"},{"kind":"number","nativeSrc":"10433:1:24","nodeType":"YulLiteral","src":"10433:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10426:3:24","nodeType":"YulIdentifier","src":"10426:3:24"},"nativeSrc":"10426:9:24","nodeType":"YulFunctionCall","src":"10426:9:24"},"variableNames":[{"name":"o","nativeSrc":"10421:1:24","nodeType":"YulIdentifier","src":"10421:1:24"}]}]},"condition":{"arguments":[{"name":"data","nativeSrc":"9825:4:24","nodeType":"YulIdentifier","src":"9825:4:24"},{"name":"end","nativeSrc":"9831:3:24","nodeType":"YulIdentifier","src":"9831:3:24"}],"functionName":{"name":"lt","nativeSrc":"9822:2:24","nodeType":"YulIdentifier","src":"9822:2:24"},"nativeSrc":"9822:13:24","nodeType":"YulFunctionCall","src":"9822:13:24"},"nativeSrc":"9815:638:24","nodeType":"YulForLoop","post":{"nativeSrc":"9836:2:24","nodeType":"YulBlock","src":"9836:2:24","statements":[]},"pre":{"nativeSrc":"9819:2:24","nodeType":"YulBlock","src":"9819:2:24","statements":[]},"src":"9815:638:24"},{"expression":{"arguments":[{"name":"s","nativeSrc":"10477:1:24","nodeType":"YulIdentifier","src":"10477:1:24"},{"name":"v","nativeSrc":"10480:1:24","nodeType":"YulIdentifier","src":"10480:1:24"}],"functionName":{"name":"mstore","nativeSrc":"10470:6:24","nodeType":"YulIdentifier","src":"10470:6:24"},"nativeSrc":"10470:12:24","nodeType":"YulFunctionCall","src":"10470:12:24"},"nativeSrc":"10470:12:24","nodeType":"YulExpressionStatement","src":"10470:12:24"},{"expression":{"arguments":[{"name":"result","nativeSrc":"10536:6:24","nodeType":"YulIdentifier","src":"10536:6:24"},{"arguments":[{"name":"o","nativeSrc":"10548:1:24","nodeType":"YulIdentifier","src":"10548:1:24"},{"arguments":[{"name":"result","nativeSrc":"10555:6:24","nodeType":"YulIdentifier","src":"10555:6:24"},{"kind":"number","nativeSrc":"10563:4:24","nodeType":"YulLiteral","src":"10563:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10551:3:24","nodeType":"YulIdentifier","src":"10551:3:24"},"nativeSrc":"10551:17:24","nodeType":"YulFunctionCall","src":"10551:17:24"}],"functionName":{"name":"sub","nativeSrc":"10544:3:24","nodeType":"YulIdentifier","src":"10544:3:24"},"nativeSrc":"10544:25:24","nodeType":"YulFunctionCall","src":"10544:25:24"}],"functionName":{"name":"mstore","nativeSrc":"10529:6:24","nodeType":"YulIdentifier","src":"10529:6:24"},"nativeSrc":"10529:41:24","nodeType":"YulFunctionCall","src":"10529:41:24"},"nativeSrc":"10529:41:24","nodeType":"YulExpressionStatement","src":"10529:41:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"10615:1:24","nodeType":"YulIdentifier","src":"10615:1:24"},{"kind":"number","nativeSrc":"10618:1:24","nodeType":"YulLiteral","src":"10618:1:24","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10608:6:24","nodeType":"YulIdentifier","src":"10608:6:24"},"nativeSrc":"10608:12:24","nodeType":"YulFunctionCall","src":"10608:12:24"},"nativeSrc":"10608:12:24","nodeType":"YulExpressionStatement","src":"10608:12:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10682:4:24","nodeType":"YulLiteral","src":"10682:4:24","type":"","value":"0x40"},{"arguments":[{"name":"o","nativeSrc":"10692:1:24","nodeType":"YulIdentifier","src":"10692:1:24"},{"kind":"number","nativeSrc":"10695:4:24","nodeType":"YulLiteral","src":"10695:4:24","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10688:3:24","nodeType":"YulIdentifier","src":"10688:3:24"},"nativeSrc":"10688:12:24","nodeType":"YulFunctionCall","src":"10688:12:24"}],"functionName":{"name":"mstore","nativeSrc":"10675:6:24","nodeType":"YulIdentifier","src":"10675:6:24"},"nativeSrc":"10675:26:24","nodeType":"YulFunctionCall","src":"10675:26:24"},"nativeSrc":"10675:26:24","nodeType":"YulExpressionStatement","src":"10675:26:24"}]},"condition":{"arguments":[{"name":"data","nativeSrc":"9517:4:24","nodeType":"YulIdentifier","src":"9517:4:24"}],"functionName":{"name":"mload","nativeSrc":"9511:5:24","nodeType":"YulIdentifier","src":"9511:5:24"},"nativeSrc":"9511:11:24","nodeType":"YulFunctionCall","src":"9511:11:24"},"nativeSrc":"9508:1231:24","nodeType":"YulIf","src":"9508:1231:24"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":10986,"isOffset":false,"isSlot":false,"src":"10004:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"10061:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9517:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9635:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9709:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9721:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9825:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9861:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9873:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9926:4:24","valueSize":1},{"declaration":10986,"isOffset":false,"isSlot":false,"src":"9992:4:24","valueSize":1},{"declaration":10989,"isOffset":false,"isSlot":false,"src":"10536:6:24","valueSize":1},{"declaration":10989,"isOffset":false,"isSlot":false,"src":"10555:6:24","valueSize":1},{"declaration":10989,"isOffset":false,"isSlot":false,"src":"9541:6:24","valueSize":1},{"declaration":10989,"isOffset":false,"isSlot":false,"src":"9592:6:24","valueSize":1}],"id":10991,"nodeType":"InlineAssembly","src":"9485:1264:24"}]},"documentation":{"id":10984,"nodeType":"StructuredDocumentation","src":"9301:41:24","text":"@dev Returns the decompressed `data`."},"id":10993,"implemented":true,"kind":"function","modifiers":[],"name":"cdDecompress","nameLocation":"9356:12:24","nodeType":"FunctionDefinition","parameters":{"id":10987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10986,"mutability":"mutable","name":"data","nameLocation":"9382:4:24","nodeType":"VariableDeclaration","scope":10993,"src":"9369:17:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10985,"name":"bytes","nodeType":"ElementaryTypeName","src":"9369:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9368:19:24"},"returnParameters":{"id":10990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10989,"mutability":"mutable","name":"result","nameLocation":"9424:6:24","nodeType":"VariableDeclaration","scope":10993,"src":"9411:19:24","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10988,"name":"bytes","nodeType":"ElementaryTypeName","src":"9411:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9410:21:24"},"scope":11000,"src":"9347:1408:24","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10998,"nodeType":"Block","src":"11207:1095:24","statements":[{"AST":{"nativeSrc":"11226:1070:24","nodeType":"YulBlock","src":"11226:1070:24","statements":[{"body":{"nativeSrc":"11266:42:24","nodeType":"YulBlock","src":"11266:42:24","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11275:12:24","nodeType":"YulIdentifier","src":"11275:12:24"},"nativeSrc":"11275:14:24","nodeType":"YulFunctionCall","src":"11275:14:24"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11291:12:24","nodeType":"YulIdentifier","src":"11291:12:24"},"nativeSrc":"11291:14:24","nodeType":"YulFunctionCall","src":"11291:14:24"}],"functionName":{"name":"return","nativeSrc":"11268:6:24","nodeType":"YulIdentifier","src":"11268:6:24"},"nativeSrc":"11268:38:24","nodeType":"YulFunctionCall","src":"11268:38:24"},"nativeSrc":"11268:38:24","nodeType":"YulExpressionStatement","src":"11268:38:24"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11250:12:24","nodeType":"YulIdentifier","src":"11250:12:24"},"nativeSrc":"11250:14:24","nodeType":"YulFunctionCall","src":"11250:14:24"}],"functionName":{"name":"iszero","nativeSrc":"11243:6:24","nodeType":"YulIdentifier","src":"11243:6:24"},"nativeSrc":"11243:22:24","nodeType":"YulFunctionCall","src":"11243:22:24"},"nativeSrc":"11240:68:24","nodeType":"YulIf","src":"11240:68:24"},{"nativeSrc":"11321:10:24","nodeType":"YulVariableDeclaration","src":"11321:10:24","value":{"kind":"number","nativeSrc":"11330:1:24","nodeType":"YulLiteral","src":"11330:1:24","type":"","value":"0"},"variables":[{"name":"o","nativeSrc":"11325:1:24","nodeType":"YulTypedName","src":"11325:1:24","type":""}]},{"nativeSrc":"11344:15:24","nodeType":"YulVariableDeclaration","src":"11344:15:24","value":{"arguments":[{"kind":"number","nativeSrc":"11357:1:24","nodeType":"YulLiteral","src":"11357:1:24","type":"","value":"3"}],"functionName":{"name":"not","nativeSrc":"11353:3:24","nodeType":"YulIdentifier","src":"11353:3:24"},"nativeSrc":"11353:6:24","nodeType":"YulFunctionCall","src":"11353:6:24"},"variables":[{"name":"f","nativeSrc":"11348:1:24","nodeType":"YulTypedName","src":"11348:1:24","type":""}]},{"body":{"nativeSrc":"11451:584:24","nodeType":"YulBlock","src":"11451:584:24","statements":[{"nativeSrc":"11469:49:24","nodeType":"YulVariableDeclaration","src":"11469:49:24","value":{"arguments":[{"kind":"number","nativeSrc":"11483:1:24","nodeType":"YulLiteral","src":"11483:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"i","nativeSrc":"11494:1:24","nodeType":"YulIdentifier","src":"11494:1:24"},{"name":"f","nativeSrc":"11497:1:24","nodeType":"YulIdentifier","src":"11497:1:24"}],"functionName":{"name":"add","nativeSrc":"11490:3:24","nodeType":"YulIdentifier","src":"11490:3:24"},"nativeSrc":"11490:9:24","nodeType":"YulFunctionCall","src":"11490:9:24"},{"arguments":[{"name":"i","nativeSrc":"11514:1:24","nodeType":"YulIdentifier","src":"11514:1:24"}],"functionName":{"name":"calldataload","nativeSrc":"11501:12:24","nodeType":"YulIdentifier","src":"11501:12:24"},"nativeSrc":"11501:15:24","nodeType":"YulFunctionCall","src":"11501:15:24"}],"functionName":{"name":"xor","nativeSrc":"11486:3:24","nodeType":"YulIdentifier","src":"11486:3:24"},"nativeSrc":"11486:31:24","nodeType":"YulFunctionCall","src":"11486:31:24"}],"functionName":{"name":"byte","nativeSrc":"11478:4:24","nodeType":"YulIdentifier","src":"11478:4:24"},"nativeSrc":"11478:40:24","nodeType":"YulFunctionCall","src":"11478:40:24"},"variables":[{"name":"c","nativeSrc":"11473:1:24","nodeType":"YulTypedName","src":"11473:1:24","type":""}]},{"nativeSrc":"11535:14:24","nodeType":"YulAssignment","src":"11535:14:24","value":{"arguments":[{"name":"i","nativeSrc":"11544:1:24","nodeType":"YulIdentifier","src":"11544:1:24"},{"kind":"number","nativeSrc":"11547:1:24","nodeType":"YulLiteral","src":"11547:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11540:3:24","nodeType":"YulIdentifier","src":"11540:3:24"},"nativeSrc":"11540:9:24","nodeType":"YulFunctionCall","src":"11540:9:24"},"variableNames":[{"name":"i","nativeSrc":"11535:1:24","nodeType":"YulIdentifier","src":"11535:1:24"}]},{"body":{"nativeSrc":"11579:381:24","nodeType":"YulBlock","src":"11579:381:24","statements":[{"nativeSrc":"11601:49:24","nodeType":"YulVariableDeclaration","src":"11601:49:24","value":{"arguments":[{"kind":"number","nativeSrc":"11615:1:24","nodeType":"YulLiteral","src":"11615:1:24","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"i","nativeSrc":"11626:1:24","nodeType":"YulIdentifier","src":"11626:1:24"},{"name":"f","nativeSrc":"11629:1:24","nodeType":"YulIdentifier","src":"11629:1:24"}],"functionName":{"name":"add","nativeSrc":"11622:3:24","nodeType":"YulIdentifier","src":"11622:3:24"},"nativeSrc":"11622:9:24","nodeType":"YulFunctionCall","src":"11622:9:24"},{"arguments":[{"name":"i","nativeSrc":"11646:1:24","nodeType":"YulIdentifier","src":"11646:1:24"}],"functionName":{"name":"calldataload","nativeSrc":"11633:12:24","nodeType":"YulIdentifier","src":"11633:12:24"},"nativeSrc":"11633:15:24","nodeType":"YulFunctionCall","src":"11633:15:24"}],"functionName":{"name":"xor","nativeSrc":"11618:3:24","nodeType":"YulIdentifier","src":"11618:3:24"},"nativeSrc":"11618:31:24","nodeType":"YulFunctionCall","src":"11618:31:24"}],"functionName":{"name":"byte","nativeSrc":"11610:4:24","nodeType":"YulIdentifier","src":"11610:4:24"},"nativeSrc":"11610:40:24","nodeType":"YulFunctionCall","src":"11610:40:24"},"variables":[{"name":"d","nativeSrc":"11605:1:24","nodeType":"YulTypedName","src":"11605:1:24","type":""}]},{"nativeSrc":"11671:14:24","nodeType":"YulAssignment","src":"11671:14:24","value":{"arguments":[{"name":"i","nativeSrc":"11680:1:24","nodeType":"YulIdentifier","src":"11680:1:24"},{"kind":"number","nativeSrc":"11683:1:24","nodeType":"YulLiteral","src":"11683:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11676:3:24","nodeType":"YulIdentifier","src":"11676:3:24"},"nativeSrc":"11676:9:24","nodeType":"YulFunctionCall","src":"11676:9:24"},"variableNames":[{"name":"i","nativeSrc":"11671:1:24","nodeType":"YulIdentifier","src":"11671:1:24"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"11767:1:24","nodeType":"YulIdentifier","src":"11767:1:24"},{"arguments":[{"kind":"number","nativeSrc":"11774:1:24","nodeType":"YulLiteral","src":"11774:1:24","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"11770:3:24","nodeType":"YulIdentifier","src":"11770:3:24"},"nativeSrc":"11770:6:24","nodeType":"YulFunctionCall","src":"11770:6:24"}],"functionName":{"name":"mstore","nativeSrc":"11760:6:24","nodeType":"YulIdentifier","src":"11760:6:24"},"nativeSrc":"11760:17:24","nodeType":"YulFunctionCall","src":"11760:17:24"},"nativeSrc":"11760:17:24","nodeType":"YulExpressionStatement","src":"11760:17:24"},{"body":{"nativeSrc":"11821:38:24","nodeType":"YulBlock","src":"11821:38:24","statements":[{"expression":{"arguments":[{"name":"o","nativeSrc":"11832:1:24","nodeType":"YulIdentifier","src":"11832:1:24"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"11835:8:24","nodeType":"YulIdentifier","src":"11835:8:24"},"nativeSrc":"11835:10:24","nodeType":"YulFunctionCall","src":"11835:10:24"},{"arguments":[{"name":"d","nativeSrc":"11851:1:24","nodeType":"YulIdentifier","src":"11851:1:24"},{"kind":"number","nativeSrc":"11854:1:24","nodeType":"YulLiteral","src":"11854:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11847:3:24","nodeType":"YulIdentifier","src":"11847:3:24"},"nativeSrc":"11847:9:24","nodeType":"YulFunctionCall","src":"11847:9:24"}],"functionName":{"name":"codecopy","nativeSrc":"11823:8:24","nodeType":"YulIdentifier","src":"11823:8:24"},"nativeSrc":"11823:34:24","nodeType":"YulFunctionCall","src":"11823:34:24"},"nativeSrc":"11823:34:24","nodeType":"YulExpressionStatement","src":"11823:34:24"}]},"condition":{"arguments":[{"arguments":[{"name":"d","nativeSrc":"11811:1:24","nodeType":"YulIdentifier","src":"11811:1:24"},{"kind":"number","nativeSrc":"11814:4:24","nodeType":"YulLiteral","src":"11814:4:24","type":"","value":"0x7f"}],"functionName":{"name":"gt","nativeSrc":"11808:2:24","nodeType":"YulIdentifier","src":"11808:2:24"},"nativeSrc":"11808:11:24","nodeType":"YulFunctionCall","src":"11808:11:24"}],"functionName":{"name":"iszero","nativeSrc":"11801:6:24","nodeType":"YulIdentifier","src":"11801:6:24"},"nativeSrc":"11801:19:24","nodeType":"YulFunctionCall","src":"11801:19:24"},"nativeSrc":"11798:61:24","nodeType":"YulIf","src":"11798:61:24"},{"nativeSrc":"11880:33:24","nodeType":"YulAssignment","src":"11880:33:24","value":{"arguments":[{"name":"o","nativeSrc":"11889:1:24","nodeType":"YulIdentifier","src":"11889:1:24"},{"arguments":[{"arguments":[{"name":"d","nativeSrc":"11900:1:24","nodeType":"YulIdentifier","src":"11900:1:24"},{"kind":"number","nativeSrc":"11903:4:24","nodeType":"YulLiteral","src":"11903:4:24","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11896:3:24","nodeType":"YulIdentifier","src":"11896:3:24"},"nativeSrc":"11896:12:24","nodeType":"YulFunctionCall","src":"11896:12:24"},{"kind":"number","nativeSrc":"11910:1:24","nodeType":"YulLiteral","src":"11910:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11892:3:24","nodeType":"YulIdentifier","src":"11892:3:24"},"nativeSrc":"11892:20:24","nodeType":"YulFunctionCall","src":"11892:20:24"}],"functionName":{"name":"add","nativeSrc":"11885:3:24","nodeType":"YulIdentifier","src":"11885:3:24"},"nativeSrc":"11885:28:24","nodeType":"YulFunctionCall","src":"11885:28:24"},"variableNames":[{"name":"o","nativeSrc":"11880:1:24","nodeType":"YulIdentifier","src":"11880:1:24"}]},{"nativeSrc":"11934:8:24","nodeType":"YulContinue","src":"11934:8:24"}]},"condition":{"arguments":[{"name":"c","nativeSrc":"11576:1:24","nodeType":"YulIdentifier","src":"11576:1:24"}],"functionName":{"name":"iszero","nativeSrc":"11569:6:24","nodeType":"YulIdentifier","src":"11569:6:24"},"nativeSrc":"11569:9:24","nodeType":"YulFunctionCall","src":"11569:9:24"},"nativeSrc":"11566:394:24","nodeType":"YulIf","src":"11566:394:24"},{"expression":{"arguments":[{"name":"o","nativeSrc":"11985:1:24","nodeType":"YulIdentifier","src":"11985:1:24"},{"name":"c","nativeSrc":"11988:1:24","nodeType":"YulIdentifier","src":"11988:1:24"}],"functionName":{"name":"mstore8","nativeSrc":"11977:7:24","nodeType":"YulIdentifier","src":"11977:7:24"},"nativeSrc":"11977:13:24","nodeType":"YulFunctionCall","src":"11977:13:24"},"nativeSrc":"11977:13:24","nodeType":"YulExpressionStatement","src":"11977:13:24"},{"nativeSrc":"12007:14:24","nodeType":"YulAssignment","src":"12007:14:24","value":{"arguments":[{"name":"o","nativeSrc":"12016:1:24","nodeType":"YulIdentifier","src":"12016:1:24"},{"kind":"number","nativeSrc":"12019:1:24","nodeType":"YulLiteral","src":"12019:1:24","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12012:3:24","nodeType":"YulIdentifier","src":"12012:3:24"},"nativeSrc":"12012:9:24","nodeType":"YulFunctionCall","src":"12012:9:24"},"variableNames":[{"name":"o","nativeSrc":"12007:1:24","nodeType":"YulIdentifier","src":"12007:1:24"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"11429:1:24","nodeType":"YulIdentifier","src":"11429:1:24"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"11432:12:24","nodeType":"YulIdentifier","src":"11432:12:24"},"nativeSrc":"11432:14:24","nodeType":"YulFunctionCall","src":"11432:14:24"}],"functionName":{"name":"lt","nativeSrc":"11426:2:24","nodeType":"YulIdentifier","src":"11426:2:24"},"nativeSrc":"11426:21:24","nodeType":"YulFunctionCall","src":"11426:21:24"},"nativeSrc":"11407:628:24","nodeType":"YulForLoop","post":{"nativeSrc":"11448:2:24","nodeType":"YulBlock","src":"11448:2:24","statements":[]},"pre":{"nativeSrc":"11411:14:24","nodeType":"YulBlock","src":"11411:14:24","statements":[{"nativeSrc":"11413:10:24","nodeType":"YulVariableDeclaration","src":"11413:10:24","value":{"kind":"number","nativeSrc":"11422:1:24","nodeType":"YulLiteral","src":"11422:1:24","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"11417:1:24","nodeType":"YulTypedName","src":"11417:1:24","type":""}]}]},"src":"11407:628:24"},{"nativeSrc":"12048:72:24","nodeType":"YulVariableDeclaration","src":"12048:72:24","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"12076:3:24","nodeType":"YulIdentifier","src":"12076:3:24"},"nativeSrc":"12076:5:24","nodeType":"YulFunctionCall","src":"12076:5:24"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"12083:7:24","nodeType":"YulIdentifier","src":"12083:7:24"},"nativeSrc":"12083:9:24","nodeType":"YulFunctionCall","src":"12083:9:24"},{"kind":"number","nativeSrc":"12094:4:24","nodeType":"YulLiteral","src":"12094:4:24","type":"","value":"0x00"},{"name":"o","nativeSrc":"12100:1:24","nodeType":"YulIdentifier","src":"12100:1:24"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"12103:8:24","nodeType":"YulIdentifier","src":"12103:8:24"},"nativeSrc":"12103:10:24","nodeType":"YulFunctionCall","src":"12103:10:24"},{"kind":"number","nativeSrc":"12115:4:24","nodeType":"YulLiteral","src":"12115:4:24","type":"","value":"0x00"}],"functionName":{"name":"delegatecall","nativeSrc":"12063:12:24","nodeType":"YulIdentifier","src":"12063:12:24"},"nativeSrc":"12063:57:24","nodeType":"YulFunctionCall","src":"12063:57:24"},"variables":[{"name":"success","nativeSrc":"12052:7:24","nodeType":"YulTypedName","src":"12052:7:24","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12148:4:24","nodeType":"YulLiteral","src":"12148:4:24","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12154:4:24","nodeType":"YulLiteral","src":"12154:4:24","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12160:14:24","nodeType":"YulIdentifier","src":"12160:14:24"},"nativeSrc":"12160:16:24","nodeType":"YulFunctionCall","src":"12160:16:24"}],"functionName":{"name":"returndatacopy","nativeSrc":"12133:14:24","nodeType":"YulIdentifier","src":"12133:14:24"},"nativeSrc":"12133:44:24","nodeType":"YulFunctionCall","src":"12133:44:24"},"nativeSrc":"12133:44:24","nodeType":"YulExpressionStatement","src":"12133:44:24"},{"body":{"nativeSrc":"12209:34:24","nodeType":"YulBlock","src":"12209:34:24","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12218:4:24","nodeType":"YulLiteral","src":"12218:4:24","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12224:14:24","nodeType":"YulIdentifier","src":"12224:14:24"},"nativeSrc":"12224:16:24","nodeType":"YulFunctionCall","src":"12224:16:24"}],"functionName":{"name":"revert","nativeSrc":"12211:6:24","nodeType":"YulIdentifier","src":"12211:6:24"},"nativeSrc":"12211:30:24","nodeType":"YulFunctionCall","src":"12211:30:24"},"nativeSrc":"12211:30:24","nodeType":"YulExpressionStatement","src":"12211:30:24"}]},"condition":{"arguments":[{"name":"success","nativeSrc":"12200:7:24","nodeType":"YulIdentifier","src":"12200:7:24"}],"functionName":{"name":"iszero","nativeSrc":"12193:6:24","nodeType":"YulIdentifier","src":"12193:6:24"},"nativeSrc":"12193:15:24","nodeType":"YulFunctionCall","src":"12193:15:24"},"nativeSrc":"12190:53:24","nodeType":"YulIf","src":"12190:53:24"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12263:4:24","nodeType":"YulLiteral","src":"12263:4:24","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12269:14:24","nodeType":"YulIdentifier","src":"12269:14:24"},"nativeSrc":"12269:16:24","nodeType":"YulFunctionCall","src":"12269:16:24"}],"functionName":{"name":"return","nativeSrc":"12256:6:24","nodeType":"YulIdentifier","src":"12256:6:24"},"nativeSrc":"12256:30:24","nodeType":"YulFunctionCall","src":"12256:30:24"},"nativeSrc":"12256:30:24","nodeType":"YulExpressionStatement","src":"12256:30:24"}]},"evmVersion":"cancun","externalReferences":[],"id":10997,"nodeType":"InlineAssembly","src":"11217:1079:24"}]},"documentation":{"id":10994,"nodeType":"StructuredDocumentation","src":"10761:410:24","text":"@dev To be called in the `fallback` function.\n ```\n fallback() external payable { LibZip.cdFallback(); }\n receive() external payable {} // Silence compiler warning to add a `receive` function.\n ```\n For efficiency, this function will directly return the results, terminating the context.\n If called internally, it must be called at the end of the function."},"id":10999,"implemented":true,"kind":"function","modifiers":[],"name":"cdFallback","nameLocation":"11185:10:24","nodeType":"FunctionDefinition","parameters":{"id":10995,"nodeType":"ParameterList","parameters":[],"src":"11195:2:24"},"returnParameters":{"id":10996,"nodeType":"ParameterList","parameters":[],"src":"11207:0:24"},"scope":11000,"src":"11176:1126:24","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11001,"src":"492:11812:24","usedErrors":[],"usedEvents":[]}],"src":"32:12273:24"},"id":24},"@solady/utils/ReentrancyGuard.sol":{"ast":{"absolutePath":"@solady/utils/ReentrancyGuard.sol","exportedSymbols":{"ReentrancyGuard":[11024]},"id":11025,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11002,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:25"},{"abstract":true,"baseContracts":[],"canonicalName":"ReentrancyGuard","contractDependencies":[],"contractKind":"contract","documentation":{"id":11003,"nodeType":"StructuredDocumentation","src":"57:134:25","text":"@notice Reentrancy guard mixin.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)"},"fullyImplemented":true,"id":11024,"linearizedBaseContracts":[11024],"name":"ReentrancyGuard","nameLocation":"209:15:25","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":11004,"nodeType":"StructuredDocumentation","src":"514:37:25","text":"@dev Unauthorized reentrant call."},"errorSelector":"ab143c06","id":11006,"name":"Reentrancy","nameLocation":"562:10:25","nodeType":"ErrorDefinition","parameters":{"id":11005,"nodeType":"ParameterList","parameters":[],"src":"572:2:25"},"src":"556:19:25"},{"constant":true,"documentation":{"id":11007,"nodeType":"StructuredDocumentation","src":"864:213:25","text":"@dev Equivalent to: `uint72(bytes9(keccak256(\"_REENTRANCY_GUARD_SLOT\")))`.\n 9 bytes is large enough to avoid collisions with lower slots,\n but not too large to result in excessive bytecode bloat."},"id":11010,"mutability":"constant","name":"_REENTRANCY_GUARD_SLOT","nameLocation":"1107:22:25","nodeType":"VariableDeclaration","scope":11024,"src":"1082:70:25","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11008,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078393239656565313439623462643231323638","id":11009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1132:20:25","typeDescriptions":{"typeIdentifier":"t_rational_2704676748321268830824_by_1","typeString":"int_const 2704676748321268830824"},"value":"0x929eee149b4bd21268"},"visibility":"private"},{"body":{"id":11016,"nodeType":"Block","src":"1522:442:25","statements":[{"AST":{"nativeSrc":"1584:236:25","nodeType":"YulBlock","src":"1584:236:25","statements":[{"body":{"nativeSrc":"1646:110:25","nodeType":"YulBlock","src":"1646:110:25","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1671:4:25","nodeType":"YulLiteral","src":"1671:4:25","type":"","value":"0x00"},{"kind":"number","nativeSrc":"1677:10:25","nodeType":"YulLiteral","src":"1677:10:25","type":"","value":"0xab143c06"}],"functionName":{"name":"mstore","nativeSrc":"1664:6:25","nodeType":"YulIdentifier","src":"1664:6:25"},"nativeSrc":"1664:24:25","nodeType":"YulFunctionCall","src":"1664:24:25"},"nativeSrc":"1664:24:25","nodeType":"YulExpressionStatement","src":"1664:24:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1731:4:25","nodeType":"YulLiteral","src":"1731:4:25","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"1737:4:25","nodeType":"YulLiteral","src":"1737:4:25","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"1724:6:25","nodeType":"YulIdentifier","src":"1724:6:25"},"nativeSrc":"1724:18:25","nodeType":"YulFunctionCall","src":"1724:18:25"},"nativeSrc":"1724:18:25","nodeType":"YulExpressionStatement","src":"1724:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1610:22:25","nodeType":"YulIdentifier","src":"1610:22:25"}],"functionName":{"name":"sload","nativeSrc":"1604:5:25","nodeType":"YulIdentifier","src":"1604:5:25"},"nativeSrc":"1604:29:25","nodeType":"YulFunctionCall","src":"1604:29:25"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"1635:7:25","nodeType":"YulIdentifier","src":"1635:7:25"},"nativeSrc":"1635:9:25","nodeType":"YulFunctionCall","src":"1635:9:25"}],"functionName":{"name":"eq","nativeSrc":"1601:2:25","nodeType":"YulIdentifier","src":"1601:2:25"},"nativeSrc":"1601:44:25","nodeType":"YulFunctionCall","src":"1601:44:25"},"nativeSrc":"1598:158:25","nodeType":"YulIf","src":"1598:158:25"},{"expression":{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1776:22:25","nodeType":"YulIdentifier","src":"1776:22:25"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"1800:7:25","nodeType":"YulIdentifier","src":"1800:7:25"},"nativeSrc":"1800:9:25","nodeType":"YulFunctionCall","src":"1800:9:25"}],"functionName":{"name":"sstore","nativeSrc":"1769:6:25","nodeType":"YulIdentifier","src":"1769:6:25"},"nativeSrc":"1769:41:25","nodeType":"YulFunctionCall","src":"1769:41:25"},"nativeSrc":"1769:41:25","nodeType":"YulExpressionStatement","src":"1769:41:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11010,"isOffset":false,"isSlot":false,"src":"1610:22:25","valueSize":1},{"declaration":11010,"isOffset":false,"isSlot":false,"src":"1776:22:25","valueSize":1}],"id":11013,"nodeType":"InlineAssembly","src":"1575:245:25"},{"id":11014,"nodeType":"PlaceholderStatement","src":"1829:1:25"},{"AST":{"nativeSrc":"1892:66:25","nodeType":"YulBlock","src":"1892:66:25","statements":[{"expression":{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"1913:22:25","nodeType":"YulIdentifier","src":"1913:22:25"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"1937:8:25","nodeType":"YulIdentifier","src":"1937:8:25"},"nativeSrc":"1937:10:25","nodeType":"YulFunctionCall","src":"1937:10:25"}],"functionName":{"name":"sstore","nativeSrc":"1906:6:25","nodeType":"YulIdentifier","src":"1906:6:25"},"nativeSrc":"1906:42:25","nodeType":"YulFunctionCall","src":"1906:42:25"},"nativeSrc":"1906:42:25","nodeType":"YulExpressionStatement","src":"1906:42:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11010,"isOffset":false,"isSlot":false,"src":"1913:22:25","valueSize":1}],"id":11015,"nodeType":"InlineAssembly","src":"1883:75:25"}]},"documentation":{"id":11011,"nodeType":"StructuredDocumentation","src":"1442:43:25","text":"@dev Guards a function from reentrancy."},"id":11017,"name":"nonReentrant","nameLocation":"1499:12:25","nodeType":"ModifierDefinition","parameters":{"id":11012,"nodeType":"ParameterList","parameters":[],"src":"1511:2:25"},"src":"1490:474:25","virtual":true,"visibility":"internal"},{"body":{"id":11022,"nodeType":"Block","src":"2069:261:25","statements":[{"AST":{"nativeSrc":"2131:182:25","nodeType":"YulBlock","src":"2131:182:25","statements":[{"body":{"nativeSrc":"2193:110:25","nodeType":"YulBlock","src":"2193:110:25","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2218:4:25","nodeType":"YulLiteral","src":"2218:4:25","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2224:10:25","nodeType":"YulLiteral","src":"2224:10:25","type":"","value":"0xab143c06"}],"functionName":{"name":"mstore","nativeSrc":"2211:6:25","nodeType":"YulIdentifier","src":"2211:6:25"},"nativeSrc":"2211:24:25","nodeType":"YulFunctionCall","src":"2211:24:25"},"nativeSrc":"2211:24:25","nodeType":"YulExpressionStatement","src":"2211:24:25"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2278:4:25","nodeType":"YulLiteral","src":"2278:4:25","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"2284:4:25","nodeType":"YulLiteral","src":"2284:4:25","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"2271:6:25","nodeType":"YulIdentifier","src":"2271:6:25"},"nativeSrc":"2271:18:25","nodeType":"YulFunctionCall","src":"2271:18:25"},"nativeSrc":"2271:18:25","nodeType":"YulExpressionStatement","src":"2271:18:25"}]},"condition":{"arguments":[{"arguments":[{"name":"_REENTRANCY_GUARD_SLOT","nativeSrc":"2157:22:25","nodeType":"YulIdentifier","src":"2157:22:25"}],"functionName":{"name":"sload","nativeSrc":"2151:5:25","nodeType":"YulIdentifier","src":"2151:5:25"},"nativeSrc":"2151:29:25","nodeType":"YulFunctionCall","src":"2151:29:25"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"2182:7:25","nodeType":"YulIdentifier","src":"2182:7:25"},"nativeSrc":"2182:9:25","nodeType":"YulFunctionCall","src":"2182:9:25"}],"functionName":{"name":"eq","nativeSrc":"2148:2:25","nodeType":"YulIdentifier","src":"2148:2:25"},"nativeSrc":"2148:44:25","nodeType":"YulFunctionCall","src":"2148:44:25"},"nativeSrc":"2145:158:25","nodeType":"YulIf","src":"2145:158:25"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11010,"isOffset":false,"isSlot":false,"src":"2157:22:25","valueSize":1}],"id":11020,"nodeType":"InlineAssembly","src":"2122:191:25"},{"id":11021,"nodeType":"PlaceholderStatement","src":"2322:1:25"}]},"documentation":{"id":11018,"nodeType":"StructuredDocumentation","src":"1970:58:25","text":"@dev Guards a view function from read-only reentrancy."},"id":11023,"name":"nonReadReentrant","nameLocation":"2042:16:25","nodeType":"ModifierDefinition","parameters":{"id":11019,"nodeType":"ParameterList","parameters":[],"src":"2058:2:25"},"src":"2033:297:25","virtual":true,"visibility":"internal"}],"scope":11025,"src":"191:2141:25","usedErrors":[11006],"usedEvents":[]}],"src":"32:2301:25"},"id":25},"@solady/utils/SafeTransferLib.sol":{"ast":{"absolutePath":"@solady/utils/SafeTransferLib.sol","exportedSymbols":{"SafeTransferLib":[11358]},"id":11359,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11026,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:26"},{"abstract":false,"baseContracts":[],"canonicalName":"SafeTransferLib","contractDependencies":[],"contractKind":"library","documentation":{"id":11027,"nodeType":"StructuredDocumentation","src":"57:644:26","text":"@notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)\n @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)\n @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\n @dev Note:\n - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.\n - For ERC20s, this implementation won't check that a token has code,\n responsibility is delegated to the caller."},"fullyImplemented":true,"id":11358,"linearizedBaseContracts":[11358],"name":"SafeTransferLib","nameLocation":"709:15:26","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":11028,"nodeType":"StructuredDocumentation","src":"1014:37:26","text":"@dev The ETH transfer has failed."},"errorSelector":"b12d13eb","id":11030,"name":"ETHTransferFailed","nameLocation":"1062:17:26","nodeType":"ErrorDefinition","parameters":{"id":11029,"nodeType":"ParameterList","parameters":[],"src":"1079:2:26"},"src":"1056:26:26"},{"documentation":{"id":11031,"nodeType":"StructuredDocumentation","src":"1088:45:26","text":"@dev The ERC20 `transferFrom` has failed."},"errorSelector":"7939f424","id":11033,"name":"TransferFromFailed","nameLocation":"1144:18:26","nodeType":"ErrorDefinition","parameters":{"id":11032,"nodeType":"ParameterList","parameters":[],"src":"1162:2:26"},"src":"1138:27:26"},{"documentation":{"id":11034,"nodeType":"StructuredDocumentation","src":"1171:41:26","text":"@dev The ERC20 `transfer` has failed."},"errorSelector":"90b8ec18","id":11036,"name":"TransferFailed","nameLocation":"1223:14:26","nodeType":"ErrorDefinition","parameters":{"id":11035,"nodeType":"ParameterList","parameters":[],"src":"1237:2:26"},"src":"1217:23:26"},{"documentation":{"id":11037,"nodeType":"StructuredDocumentation","src":"1246:40:26","text":"@dev The ERC20 `approve` has failed."},"errorSelector":"3e3f8f73","id":11039,"name":"ApproveFailed","nameLocation":"1297:13:26","nodeType":"ErrorDefinition","parameters":{"id":11038,"nodeType":"ParameterList","parameters":[],"src":"1310:2:26"},"src":"1291:22:26"},{"documentation":{"id":11040,"nodeType":"StructuredDocumentation","src":"1319:42:26","text":"@dev The Permit2 operation has failed."},"errorSelector":"6b836e6b","id":11042,"name":"Permit2Failed","nameLocation":"1372:13:26","nodeType":"ErrorDefinition","parameters":{"id":11041,"nodeType":"ParameterList","parameters":[],"src":"1385:2:26"},"src":"1366:22:26"},{"documentation":{"id":11043,"nodeType":"StructuredDocumentation","src":"1394:59:26","text":"@dev The Permit2 amount must be less than `2**160 - 1`."},"errorSelector":"8757f0fd","id":11045,"name":"Permit2AmountOverflow","nameLocation":"1464:21:26","nodeType":"ErrorDefinition","parameters":{"id":11044,"nodeType":"ParameterList","parameters":[],"src":"1485:2:26"},"src":"1458:30:26"},{"constant":true,"documentation":{"id":11046,"nodeType":"StructuredDocumentation","src":"1777:92:26","text":"@dev Suggested gas stipend for contract receiving ETH that disallows any storage writes."},"id":11049,"mutability":"constant","name":"GAS_STIPEND_NO_STORAGE_WRITES","nameLocation":"1900:29:26","nodeType":"VariableDeclaration","scope":11358,"src":"1874:62:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11047,"name":"uint256","nodeType":"ElementaryTypeName","src":"1874:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32333030","id":11048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1932:4:26","typeDescriptions":{"typeIdentifier":"t_rational_2300_by_1","typeString":"int_const 2300"},"value":"2300"},"visibility":"internal"},{"constant":true,"documentation":{"id":11050,"nodeType":"StructuredDocumentation","src":"1943:144:26","text":"@dev Suggested gas stipend for contract receiving ETH to perform a few\n storage reads and writes, but low enough to prevent griefing."},"id":11053,"mutability":"constant","name":"GAS_STIPEND_NO_GRIEF","nameLocation":"2118:20:26","nodeType":"VariableDeclaration","scope":11358,"src":"2092:55:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11051,"name":"uint256","nodeType":"ElementaryTypeName","src":"2092:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030303030","id":11052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2141:6:26","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"},"visibility":"internal"},{"constant":true,"documentation":{"id":11054,"nodeType":"StructuredDocumentation","src":"2154:79:26","text":"@dev The unique EIP-712 domain domain separator for the DAI token contract."},"id":11057,"mutability":"constant","name":"DAI_DOMAIN_SEPARATOR","nameLocation":"2264:20:26","nodeType":"VariableDeclaration","scope":11358,"src":"2238:123:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2238:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307864626238636634326531656362303238626533663364626339323265316438373862393633663431316463333838636564353031363031633630663763366637","id":11056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2295:66:26","typeDescriptions":{"typeIdentifier":"t_rational_99383044164297460920199564169379472118763403594000230800569066591923778078455_by_1","typeString":"int_const 9938...(69 digits omitted)...8455"},"value":"0xdbb8cf42e1ecb028be3f3dbc922e1d878b963f411dc388ced501601c60f7c6f7"},"visibility":"internal"},{"constant":true,"documentation":{"id":11058,"nodeType":"StructuredDocumentation","src":"2368:64:26","text":"@dev The address for the WETH9 contract on Ethereum mainnet."},"id":11061,"mutability":"constant","name":"WETH9","nameLocation":"2463:5:26","nodeType":"VariableDeclaration","scope":11358,"src":"2437:76:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11059,"name":"address","nodeType":"ElementaryTypeName","src":"2437:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843303261614133396232323346453844304130653543344632376541443930383343373536436332","id":11060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2471:42:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"},"visibility":"internal"},{"constant":true,"documentation":{"id":11062,"nodeType":"StructuredDocumentation","src":"2520:185:26","text":"@dev The canonical Permit2 address.\n [Github](https://github.com/Uniswap/permit2)\n [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)"},"id":11065,"mutability":"constant","name":"PERMIT2","nameLocation":"2736:7:26","nodeType":"VariableDeclaration","scope":11358,"src":"2710:78:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11063,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030323244343733303330463131366444454539463642343361433738424133","id":11064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2746:42:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000022D473030F116dDEE9F6B43aC78BA3"},"visibility":"internal"},{"body":{"id":11074,"nodeType":"Block","src":"4093:280:26","statements":[{"AST":{"nativeSrc":"4155:212:26","nodeType":"YulBlock","src":"4155:212:26","statements":[{"body":{"nativeSrc":"4240:117:26","nodeType":"YulBlock","src":"4240:117:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4265:4:26","nodeType":"YulLiteral","src":"4265:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4271:10:26","nodeType":"YulLiteral","src":"4271:10:26","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"4258:6:26","nodeType":"YulIdentifier","src":"4258:6:26"},"nativeSrc":"4258:24:26","nodeType":"YulFunctionCall","src":"4258:24:26"},"nativeSrc":"4258:24:26","nodeType":"YulExpressionStatement","src":"4258:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4332:4:26","nodeType":"YulLiteral","src":"4332:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4338:4:26","nodeType":"YulLiteral","src":"4338:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4325:6:26","nodeType":"YulIdentifier","src":"4325:6:26"},"nativeSrc":"4325:18:26","nodeType":"YulFunctionCall","src":"4325:18:26"},"nativeSrc":"4325:18:26","nodeType":"YulExpressionStatement","src":"4325:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"4184:3:26","nodeType":"YulIdentifier","src":"4184:3:26"},"nativeSrc":"4184:5:26","nodeType":"YulFunctionCall","src":"4184:5:26"},{"name":"to","nativeSrc":"4191:2:26","nodeType":"YulIdentifier","src":"4191:2:26"},{"name":"amount","nativeSrc":"4195:6:26","nodeType":"YulIdentifier","src":"4195:6:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4203:8:26","nodeType":"YulIdentifier","src":"4203:8:26"},"nativeSrc":"4203:10:26","nodeType":"YulFunctionCall","src":"4203:10:26"},{"kind":"number","nativeSrc":"4215:4:26","nodeType":"YulLiteral","src":"4215:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4221:8:26","nodeType":"YulIdentifier","src":"4221:8:26"},"nativeSrc":"4221:10:26","nodeType":"YulFunctionCall","src":"4221:10:26"},{"kind":"number","nativeSrc":"4233:4:26","nodeType":"YulLiteral","src":"4233:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"4179:4:26","nodeType":"YulIdentifier","src":"4179:4:26"},"nativeSrc":"4179:59:26","nodeType":"YulFunctionCall","src":"4179:59:26"}],"functionName":{"name":"iszero","nativeSrc":"4172:6:26","nodeType":"YulIdentifier","src":"4172:6:26"},"nativeSrc":"4172:67:26","nodeType":"YulFunctionCall","src":"4172:67:26"},"nativeSrc":"4169:188:26","nodeType":"YulIf","src":"4169:188:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11070,"isOffset":false,"isSlot":false,"src":"4195:6:26","valueSize":1},{"declaration":11068,"isOffset":false,"isSlot":false,"src":"4191:2:26","valueSize":1}],"id":11073,"nodeType":"InlineAssembly","src":"4146:221:26"}]},"documentation":{"id":11066,"nodeType":"StructuredDocumentation","src":"3981:45:26","text":"@dev Sends `amount` (in wei) ETH to `to`."},"id":11075,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferETH","nameLocation":"4040:15:26","nodeType":"FunctionDefinition","parameters":{"id":11071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11068,"mutability":"mutable","name":"to","nameLocation":"4064:2:26","nodeType":"VariableDeclaration","scope":11075,"src":"4056:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11067,"name":"address","nodeType":"ElementaryTypeName","src":"4056:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11070,"mutability":"mutable","name":"amount","nameLocation":"4076:6:26","nodeType":"VariableDeclaration","scope":11075,"src":"4068:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11069,"name":"uint256","nodeType":"ElementaryTypeName","src":"4068:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4055:28:26"},"returnParameters":{"id":11072,"nodeType":"ParameterList","parameters":[],"src":"4093:0:26"},"scope":11358,"src":"4031:342:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11082,"nodeType":"Block","src":"4492:357:26","statements":[{"AST":{"nativeSrc":"4554:289:26","nodeType":"YulBlock","src":"4554:289:26","statements":[{"body":{"nativeSrc":"4716:117:26","nodeType":"YulBlock","src":"4716:117:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4741:4:26","nodeType":"YulLiteral","src":"4741:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4747:10:26","nodeType":"YulLiteral","src":"4747:10:26","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"4734:6:26","nodeType":"YulIdentifier","src":"4734:6:26"},"nativeSrc":"4734:24:26","nodeType":"YulFunctionCall","src":"4734:24:26"},"nativeSrc":"4734:24:26","nodeType":"YulExpressionStatement","src":"4734:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4808:4:26","nodeType":"YulLiteral","src":"4808:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"4814:4:26","nodeType":"YulLiteral","src":"4814:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"4801:6:26","nodeType":"YulIdentifier","src":"4801:6:26"},"nativeSrc":"4801:18:26","nodeType":"YulFunctionCall","src":"4801:18:26"},"nativeSrc":"4801:18:26","nodeType":"YulExpressionStatement","src":"4801:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"4653:3:26","nodeType":"YulIdentifier","src":"4653:3:26"},"nativeSrc":"4653:5:26","nodeType":"YulFunctionCall","src":"4653:5:26"},{"name":"to","nativeSrc":"4660:2:26","nodeType":"YulIdentifier","src":"4660:2:26"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"4664:11:26","nodeType":"YulIdentifier","src":"4664:11:26"},"nativeSrc":"4664:13:26","nodeType":"YulFunctionCall","src":"4664:13:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4679:8:26","nodeType":"YulIdentifier","src":"4679:8:26"},"nativeSrc":"4679:10:26","nodeType":"YulFunctionCall","src":"4679:10:26"},{"kind":"number","nativeSrc":"4691:4:26","nodeType":"YulLiteral","src":"4691:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"4697:8:26","nodeType":"YulIdentifier","src":"4697:8:26"},"nativeSrc":"4697:10:26","nodeType":"YulFunctionCall","src":"4697:10:26"},{"kind":"number","nativeSrc":"4709:4:26","nodeType":"YulLiteral","src":"4709:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"4648:4:26","nodeType":"YulIdentifier","src":"4648:4:26"},"nativeSrc":"4648:66:26","nodeType":"YulFunctionCall","src":"4648:66:26"}],"functionName":{"name":"iszero","nativeSrc":"4641:6:26","nodeType":"YulIdentifier","src":"4641:6:26"},"nativeSrc":"4641:74:26","nodeType":"YulFunctionCall","src":"4641:74:26"},"nativeSrc":"4638:195:26","nodeType":"YulIf","src":"4638:195:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11078,"isOffset":false,"isSlot":false,"src":"4660:2:26","valueSize":1}],"id":11081,"nodeType":"InlineAssembly","src":"4545:298:26"}]},"documentation":{"id":11076,"nodeType":"StructuredDocumentation","src":"4379:59:26","text":"@dev Sends all the ETH in the current contract to `to`."},"id":11083,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAllETH","nameLocation":"4452:18:26","nodeType":"FunctionDefinition","parameters":{"id":11079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11078,"mutability":"mutable","name":"to","nameLocation":"4479:2:26","nodeType":"VariableDeclaration","scope":11083,"src":"4471:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11077,"name":"address","nodeType":"ElementaryTypeName","src":"4471:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4470:12:26"},"returnParameters":{"id":11080,"nodeType":"ParameterList","parameters":[],"src":"4492:0:26"},"scope":11358,"src":"4443:406:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11094,"nodeType":"Block","src":"5019:644:26","statements":[{"AST":{"nativeSrc":"5081:576:26","nodeType":"YulBlock","src":"5081:576:26","statements":[{"body":{"nativeSrc":"5124:117:26","nodeType":"YulBlock","src":"5124:117:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5149:4:26","nodeType":"YulLiteral","src":"5149:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5155:10:26","nodeType":"YulLiteral","src":"5155:10:26","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"5142:6:26","nodeType":"YulIdentifier","src":"5142:6:26"},"nativeSrc":"5142:24:26","nodeType":"YulFunctionCall","src":"5142:24:26"},"nativeSrc":"5142:24:26","nodeType":"YulExpressionStatement","src":"5142:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5216:4:26","nodeType":"YulLiteral","src":"5216:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"5222:4:26","nodeType":"YulLiteral","src":"5222:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"5209:6:26","nodeType":"YulIdentifier","src":"5209:6:26"},"nativeSrc":"5209:18:26","nodeType":"YulFunctionCall","src":"5209:18:26"},"nativeSrc":"5209:18:26","nodeType":"YulExpressionStatement","src":"5209:18:26"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"5101:11:26","nodeType":"YulIdentifier","src":"5101:11:26"},"nativeSrc":"5101:13:26","nodeType":"YulFunctionCall","src":"5101:13:26"},{"name":"amount","nativeSrc":"5116:6:26","nodeType":"YulIdentifier","src":"5116:6:26"}],"functionName":{"name":"lt","nativeSrc":"5098:2:26","nodeType":"YulIdentifier","src":"5098:2:26"},"nativeSrc":"5098:25:26","nodeType":"YulFunctionCall","src":"5098:25:26"},"nativeSrc":"5095:146:26","nodeType":"YulIf","src":"5095:146:26"},{"body":{"nativeSrc":"5330:317:26","nodeType":"YulBlock","src":"5330:317:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5355:4:26","nodeType":"YulLiteral","src":"5355:4:26","type":"","value":"0x00"},{"name":"to","nativeSrc":"5361:2:26","nodeType":"YulIdentifier","src":"5361:2:26"}],"functionName":{"name":"mstore","nativeSrc":"5348:6:26","nodeType":"YulIdentifier","src":"5348:6:26"},"nativeSrc":"5348:16:26","nodeType":"YulFunctionCall","src":"5348:16:26"},"nativeSrc":"5348:16:26","nodeType":"YulExpressionStatement","src":"5348:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5428:4:26","nodeType":"YulLiteral","src":"5428:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"5434:4:26","nodeType":"YulLiteral","src":"5434:4:26","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"5420:7:26","nodeType":"YulIdentifier","src":"5420:7:26"},"nativeSrc":"5420:19:26","nodeType":"YulFunctionCall","src":"5420:19:26"},"nativeSrc":"5420:19:26","nodeType":"YulExpressionStatement","src":"5420:19:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5484:4:26","nodeType":"YulLiteral","src":"5484:4:26","type":"","value":"0x20"},{"kind":"number","nativeSrc":"5490:4:26","nodeType":"YulLiteral","src":"5490:4:26","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"5476:7:26","nodeType":"YulIdentifier","src":"5476:7:26"},"nativeSrc":"5476:19:26","nodeType":"YulFunctionCall","src":"5476:19:26"},"nativeSrc":"5476:19:26","nodeType":"YulExpressionStatement","src":"5476:19:26"},{"body":{"nativeSrc":"5576:34:26","nodeType":"YulBlock","src":"5576:34:26","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5585:8:26","nodeType":"YulIdentifier","src":"5585:8:26"},"nativeSrc":"5585:10:26","nodeType":"YulFunctionCall","src":"5585:10:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5597:8:26","nodeType":"YulIdentifier","src":"5597:8:26"},"nativeSrc":"5597:10:26","nodeType":"YulFunctionCall","src":"5597:10:26"}],"functionName":{"name":"revert","nativeSrc":"5578:6:26","nodeType":"YulIdentifier","src":"5578:6:26"},"nativeSrc":"5578:30:26","nodeType":"YulFunctionCall","src":"5578:30:26"},"nativeSrc":"5578:30:26","nodeType":"YulExpressionStatement","src":"5578:30:26"}]},"condition":{"arguments":[{"arguments":[{"name":"amount","nativeSrc":"5555:6:26","nodeType":"YulIdentifier","src":"5555:6:26"},{"kind":"number","nativeSrc":"5563:4:26","nodeType":"YulLiteral","src":"5563:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"5569:4:26","nodeType":"YulLiteral","src":"5569:4:26","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"5548:6:26","nodeType":"YulIdentifier","src":"5548:6:26"},"nativeSrc":"5548:26:26","nodeType":"YulFunctionCall","src":"5548:26:26"}],"functionName":{"name":"iszero","nativeSrc":"5541:6:26","nodeType":"YulIdentifier","src":"5541:6:26"},"nativeSrc":"5541:34:26","nodeType":"YulFunctionCall","src":"5541:34:26"},"nativeSrc":"5538:72:26","nodeType":"YulIf","src":"5538:72:26"}]},"condition":{"arguments":[{"arguments":[{"name":"gasStipend","nativeSrc":"5269:10:26","nodeType":"YulIdentifier","src":"5269:10:26"},{"name":"to","nativeSrc":"5281:2:26","nodeType":"YulIdentifier","src":"5281:2:26"},{"name":"amount","nativeSrc":"5285:6:26","nodeType":"YulIdentifier","src":"5285:6:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5293:8:26","nodeType":"YulIdentifier","src":"5293:8:26"},"nativeSrc":"5293:10:26","nodeType":"YulFunctionCall","src":"5293:10:26"},{"kind":"number","nativeSrc":"5305:4:26","nodeType":"YulLiteral","src":"5305:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5311:8:26","nodeType":"YulIdentifier","src":"5311:8:26"},"nativeSrc":"5311:10:26","nodeType":"YulFunctionCall","src":"5311:10:26"},{"kind":"number","nativeSrc":"5323:4:26","nodeType":"YulLiteral","src":"5323:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"5264:4:26","nodeType":"YulIdentifier","src":"5264:4:26"},"nativeSrc":"5264:64:26","nodeType":"YulFunctionCall","src":"5264:64:26"}],"functionName":{"name":"iszero","nativeSrc":"5257:6:26","nodeType":"YulIdentifier","src":"5257:6:26"},"nativeSrc":"5257:72:26","nodeType":"YulFunctionCall","src":"5257:72:26"},"nativeSrc":"5254:393:26","nodeType":"YulIf","src":"5254:393:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11088,"isOffset":false,"isSlot":false,"src":"5116:6:26","valueSize":1},{"declaration":11088,"isOffset":false,"isSlot":false,"src":"5285:6:26","valueSize":1},{"declaration":11088,"isOffset":false,"isSlot":false,"src":"5555:6:26","valueSize":1},{"declaration":11090,"isOffset":false,"isSlot":false,"src":"5269:10:26","valueSize":1},{"declaration":11086,"isOffset":false,"isSlot":false,"src":"5281:2:26","valueSize":1},{"declaration":11086,"isOffset":false,"isSlot":false,"src":"5361:2:26","valueSize":1}],"id":11093,"nodeType":"InlineAssembly","src":"5072:585:26"}]},"documentation":{"id":11084,"nodeType":"StructuredDocumentation","src":"4855:72:26","text":"@dev Force sends `amount` (in wei) ETH to `to`, with a `gasStipend`."},"id":11095,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferETH","nameLocation":"4941:20:26","nodeType":"FunctionDefinition","parameters":{"id":11091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11086,"mutability":"mutable","name":"to","nameLocation":"4970:2:26","nodeType":"VariableDeclaration","scope":11095,"src":"4962:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11085,"name":"address","nodeType":"ElementaryTypeName","src":"4962:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11088,"mutability":"mutable","name":"amount","nameLocation":"4982:6:26","nodeType":"VariableDeclaration","scope":11095,"src":"4974:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11087,"name":"uint256","nodeType":"ElementaryTypeName","src":"4974:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11090,"mutability":"mutable","name":"gasStipend","nameLocation":"4998:10:26","nodeType":"VariableDeclaration","scope":11095,"src":"4990:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11089,"name":"uint256","nodeType":"ElementaryTypeName","src":"4990:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4961:48:26"},"returnParameters":{"id":11092,"nodeType":"ParameterList","parameters":[],"src":"5019:0:26"},"scope":11358,"src":"4932:731:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11104,"nodeType":"Block","src":"5834:499:26","statements":[{"AST":{"nativeSrc":"5896:431:26","nodeType":"YulBlock","src":"5896:431:26","statements":[{"body":{"nativeSrc":"5993:324:26","nodeType":"YulBlock","src":"5993:324:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6018:4:26","nodeType":"YulLiteral","src":"6018:4:26","type":"","value":"0x00"},{"name":"to","nativeSrc":"6024:2:26","nodeType":"YulIdentifier","src":"6024:2:26"}],"functionName":{"name":"mstore","nativeSrc":"6011:6:26","nodeType":"YulIdentifier","src":"6011:6:26"},"nativeSrc":"6011:16:26","nodeType":"YulFunctionCall","src":"6011:16:26"},"nativeSrc":"6011:16:26","nodeType":"YulExpressionStatement","src":"6011:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6091:4:26","nodeType":"YulLiteral","src":"6091:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6097:4:26","nodeType":"YulLiteral","src":"6097:4:26","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"6083:7:26","nodeType":"YulIdentifier","src":"6083:7:26"},"nativeSrc":"6083:19:26","nodeType":"YulFunctionCall","src":"6083:19:26"},"nativeSrc":"6083:19:26","nodeType":"YulExpressionStatement","src":"6083:19:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6147:4:26","nodeType":"YulLiteral","src":"6147:4:26","type":"","value":"0x20"},{"kind":"number","nativeSrc":"6153:4:26","nodeType":"YulLiteral","src":"6153:4:26","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"6139:7:26","nodeType":"YulIdentifier","src":"6139:7:26"},"nativeSrc":"6139:19:26","nodeType":"YulFunctionCall","src":"6139:19:26"},"nativeSrc":"6139:19:26","nodeType":"YulExpressionStatement","src":"6139:19:26"},{"body":{"nativeSrc":"6246:34:26","nodeType":"YulBlock","src":"6246:34:26","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6255:8:26","nodeType":"YulIdentifier","src":"6255:8:26"},"nativeSrc":"6255:10:26","nodeType":"YulFunctionCall","src":"6255:10:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6267:8:26","nodeType":"YulIdentifier","src":"6267:8:26"},"nativeSrc":"6267:10:26","nodeType":"YulFunctionCall","src":"6267:10:26"}],"functionName":{"name":"revert","nativeSrc":"6248:6:26","nodeType":"YulIdentifier","src":"6248:6:26"},"nativeSrc":"6248:30:26","nodeType":"YulFunctionCall","src":"6248:30:26"},"nativeSrc":"6248:30:26","nodeType":"YulExpressionStatement","src":"6248:30:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"6218:11:26","nodeType":"YulIdentifier","src":"6218:11:26"},"nativeSrc":"6218:13:26","nodeType":"YulFunctionCall","src":"6218:13:26"},{"kind":"number","nativeSrc":"6233:4:26","nodeType":"YulLiteral","src":"6233:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6239:4:26","nodeType":"YulLiteral","src":"6239:4:26","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"6211:6:26","nodeType":"YulIdentifier","src":"6211:6:26"},"nativeSrc":"6211:33:26","nodeType":"YulFunctionCall","src":"6211:33:26"}],"functionName":{"name":"iszero","nativeSrc":"6204:6:26","nodeType":"YulIdentifier","src":"6204:6:26"},"nativeSrc":"6204:41:26","nodeType":"YulFunctionCall","src":"6204:41:26"},"nativeSrc":"6201:79:26","nodeType":"YulIf","src":"6201:79:26"}]},"condition":{"arguments":[{"arguments":[{"name":"gasStipend","nativeSrc":"5925:10:26","nodeType":"YulIdentifier","src":"5925:10:26"},{"name":"to","nativeSrc":"5937:2:26","nodeType":"YulIdentifier","src":"5937:2:26"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"5941:11:26","nodeType":"YulIdentifier","src":"5941:11:26"},"nativeSrc":"5941:13:26","nodeType":"YulFunctionCall","src":"5941:13:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5956:8:26","nodeType":"YulIdentifier","src":"5956:8:26"},"nativeSrc":"5956:10:26","nodeType":"YulFunctionCall","src":"5956:10:26"},{"kind":"number","nativeSrc":"5968:4:26","nodeType":"YulLiteral","src":"5968:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"5974:8:26","nodeType":"YulIdentifier","src":"5974:8:26"},"nativeSrc":"5974:10:26","nodeType":"YulFunctionCall","src":"5974:10:26"},{"kind":"number","nativeSrc":"5986:4:26","nodeType":"YulLiteral","src":"5986:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"5920:4:26","nodeType":"YulIdentifier","src":"5920:4:26"},"nativeSrc":"5920:71:26","nodeType":"YulFunctionCall","src":"5920:71:26"}],"functionName":{"name":"iszero","nativeSrc":"5913:6:26","nodeType":"YulIdentifier","src":"5913:6:26"},"nativeSrc":"5913:79:26","nodeType":"YulFunctionCall","src":"5913:79:26"},"nativeSrc":"5910:407:26","nodeType":"YulIf","src":"5910:407:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11100,"isOffset":false,"isSlot":false,"src":"5925:10:26","valueSize":1},{"declaration":11098,"isOffset":false,"isSlot":false,"src":"5937:2:26","valueSize":1},{"declaration":11098,"isOffset":false,"isSlot":false,"src":"6024:2:26","valueSize":1}],"id":11103,"nodeType":"InlineAssembly","src":"5887:440:26"}]},"documentation":{"id":11096,"nodeType":"StructuredDocumentation","src":"5669:86:26","text":"@dev Force sends all the ETH in the current contract to `to`, with a `gasStipend`."},"id":11105,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferAllETH","nameLocation":"5769:23:26","nodeType":"FunctionDefinition","parameters":{"id":11101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11098,"mutability":"mutable","name":"to","nameLocation":"5801:2:26","nodeType":"VariableDeclaration","scope":11105,"src":"5793:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11097,"name":"address","nodeType":"ElementaryTypeName","src":"5793:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11100,"mutability":"mutable","name":"gasStipend","nameLocation":"5813:10:26","nodeType":"VariableDeclaration","scope":11105,"src":"5805:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11099,"name":"uint256","nodeType":"ElementaryTypeName","src":"5805:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5792:32:26"},"returnParameters":{"id":11102,"nodeType":"ParameterList","parameters":[],"src":"5834:0:26"},"scope":11358,"src":"5760:573:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11114,"nodeType":"Block","src":"6491:654:26","statements":[{"AST":{"nativeSrc":"6553:586:26","nodeType":"YulBlock","src":"6553:586:26","statements":[{"body":{"nativeSrc":"6596:117:26","nodeType":"YulBlock","src":"6596:117:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6621:4:26","nodeType":"YulLiteral","src":"6621:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6627:10:26","nodeType":"YulLiteral","src":"6627:10:26","type":"","value":"0xb12d13eb"}],"functionName":{"name":"mstore","nativeSrc":"6614:6:26","nodeType":"YulIdentifier","src":"6614:6:26"},"nativeSrc":"6614:24:26","nodeType":"YulFunctionCall","src":"6614:24:26"},"nativeSrc":"6614:24:26","nodeType":"YulExpressionStatement","src":"6614:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6688:4:26","nodeType":"YulLiteral","src":"6688:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"6694:4:26","nodeType":"YulLiteral","src":"6694:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"6681:6:26","nodeType":"YulIdentifier","src":"6681:6:26"},"nativeSrc":"6681:18:26","nodeType":"YulFunctionCall","src":"6681:18:26"},"nativeSrc":"6681:18:26","nodeType":"YulExpressionStatement","src":"6681:18:26"}]},"condition":{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"6573:11:26","nodeType":"YulIdentifier","src":"6573:11:26"},"nativeSrc":"6573:13:26","nodeType":"YulFunctionCall","src":"6573:13:26"},{"name":"amount","nativeSrc":"6588:6:26","nodeType":"YulIdentifier","src":"6588:6:26"}],"functionName":{"name":"lt","nativeSrc":"6570:2:26","nodeType":"YulIdentifier","src":"6570:2:26"},"nativeSrc":"6570:25:26","nodeType":"YulFunctionCall","src":"6570:25:26"},"nativeSrc":"6567:146:26","nodeType":"YulIf","src":"6567:146:26"},{"body":{"nativeSrc":"6812:317:26","nodeType":"YulBlock","src":"6812:317:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6837:4:26","nodeType":"YulLiteral","src":"6837:4:26","type":"","value":"0x00"},{"name":"to","nativeSrc":"6843:2:26","nodeType":"YulIdentifier","src":"6843:2:26"}],"functionName":{"name":"mstore","nativeSrc":"6830:6:26","nodeType":"YulIdentifier","src":"6830:6:26"},"nativeSrc":"6830:16:26","nodeType":"YulFunctionCall","src":"6830:16:26"},"nativeSrc":"6830:16:26","nodeType":"YulExpressionStatement","src":"6830:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6910:4:26","nodeType":"YulLiteral","src":"6910:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"6916:4:26","nodeType":"YulLiteral","src":"6916:4:26","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"6902:7:26","nodeType":"YulIdentifier","src":"6902:7:26"},"nativeSrc":"6902:19:26","nodeType":"YulFunctionCall","src":"6902:19:26"},"nativeSrc":"6902:19:26","nodeType":"YulExpressionStatement","src":"6902:19:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6966:4:26","nodeType":"YulLiteral","src":"6966:4:26","type":"","value":"0x20"},{"kind":"number","nativeSrc":"6972:4:26","nodeType":"YulLiteral","src":"6972:4:26","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"6958:7:26","nodeType":"YulIdentifier","src":"6958:7:26"},"nativeSrc":"6958:19:26","nodeType":"YulFunctionCall","src":"6958:19:26"},"nativeSrc":"6958:19:26","nodeType":"YulExpressionStatement","src":"6958:19:26"},{"body":{"nativeSrc":"7058:34:26","nodeType":"YulBlock","src":"7058:34:26","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7067:8:26","nodeType":"YulIdentifier","src":"7067:8:26"},"nativeSrc":"7067:10:26","nodeType":"YulFunctionCall","src":"7067:10:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7079:8:26","nodeType":"YulIdentifier","src":"7079:8:26"},"nativeSrc":"7079:10:26","nodeType":"YulFunctionCall","src":"7079:10:26"}],"functionName":{"name":"revert","nativeSrc":"7060:6:26","nodeType":"YulIdentifier","src":"7060:6:26"},"nativeSrc":"7060:30:26","nodeType":"YulFunctionCall","src":"7060:30:26"},"nativeSrc":"7060:30:26","nodeType":"YulExpressionStatement","src":"7060:30:26"}]},"condition":{"arguments":[{"arguments":[{"name":"amount","nativeSrc":"7037:6:26","nodeType":"YulIdentifier","src":"7037:6:26"},{"kind":"number","nativeSrc":"7045:4:26","nodeType":"YulLiteral","src":"7045:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7051:4:26","nodeType":"YulLiteral","src":"7051:4:26","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"7030:6:26","nodeType":"YulIdentifier","src":"7030:6:26"},"nativeSrc":"7030:26:26","nodeType":"YulFunctionCall","src":"7030:26:26"}],"functionName":{"name":"iszero","nativeSrc":"7023:6:26","nodeType":"YulIdentifier","src":"7023:6:26"},"nativeSrc":"7023:34:26","nodeType":"YulFunctionCall","src":"7023:34:26"},"nativeSrc":"7020:72:26","nodeType":"YulIf","src":"7020:72:26"}]},"condition":{"arguments":[{"arguments":[{"name":"GAS_STIPEND_NO_GRIEF","nativeSrc":"6741:20:26","nodeType":"YulIdentifier","src":"6741:20:26"},{"name":"to","nativeSrc":"6763:2:26","nodeType":"YulIdentifier","src":"6763:2:26"},{"name":"amount","nativeSrc":"6767:6:26","nodeType":"YulIdentifier","src":"6767:6:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6775:8:26","nodeType":"YulIdentifier","src":"6775:8:26"},"nativeSrc":"6775:10:26","nodeType":"YulFunctionCall","src":"6775:10:26"},{"kind":"number","nativeSrc":"6787:4:26","nodeType":"YulLiteral","src":"6787:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"6793:8:26","nodeType":"YulIdentifier","src":"6793:8:26"},"nativeSrc":"6793:10:26","nodeType":"YulFunctionCall","src":"6793:10:26"},{"kind":"number","nativeSrc":"6805:4:26","nodeType":"YulLiteral","src":"6805:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"6736:4:26","nodeType":"YulIdentifier","src":"6736:4:26"},"nativeSrc":"6736:74:26","nodeType":"YulFunctionCall","src":"6736:74:26"}],"functionName":{"name":"iszero","nativeSrc":"6729:6:26","nodeType":"YulIdentifier","src":"6729:6:26"},"nativeSrc":"6729:82:26","nodeType":"YulFunctionCall","src":"6729:82:26"},"nativeSrc":"6726:403:26","nodeType":"YulIf","src":"6726:403:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11053,"isOffset":false,"isSlot":false,"src":"6741:20:26","valueSize":1},{"declaration":11110,"isOffset":false,"isSlot":false,"src":"6588:6:26","valueSize":1},{"declaration":11110,"isOffset":false,"isSlot":false,"src":"6767:6:26","valueSize":1},{"declaration":11110,"isOffset":false,"isSlot":false,"src":"7037:6:26","valueSize":1},{"declaration":11108,"isOffset":false,"isSlot":false,"src":"6763:2:26","valueSize":1},{"declaration":11108,"isOffset":false,"isSlot":false,"src":"6843:2:26","valueSize":1}],"id":11113,"nodeType":"InlineAssembly","src":"6544:595:26"}]},"documentation":{"id":11106,"nodeType":"StructuredDocumentation","src":"6339:80:26","text":"@dev Force sends `amount` (in wei) ETH to `to`, with `GAS_STIPEND_NO_GRIEF`."},"id":11115,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferETH","nameLocation":"6433:20:26","nodeType":"FunctionDefinition","parameters":{"id":11111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11108,"mutability":"mutable","name":"to","nameLocation":"6462:2:26","nodeType":"VariableDeclaration","scope":11115,"src":"6454:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11107,"name":"address","nodeType":"ElementaryTypeName","src":"6454:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11110,"mutability":"mutable","name":"amount","nameLocation":"6474:6:26","nodeType":"VariableDeclaration","scope":11115,"src":"6466:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11109,"name":"uint256","nodeType":"ElementaryTypeName","src":"6466:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6453:28:26"},"returnParameters":{"id":11112,"nodeType":"ParameterList","parameters":[],"src":"6491:0:26"},"scope":11358,"src":"6424:721:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11122,"nodeType":"Block","src":"7304:552:26","statements":[{"AST":{"nativeSrc":"7366:484:26","nodeType":"YulBlock","src":"7366:484:26","statements":[{"body":{"nativeSrc":"7516:324:26","nodeType":"YulBlock","src":"7516:324:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7541:4:26","nodeType":"YulLiteral","src":"7541:4:26","type":"","value":"0x00"},{"name":"to","nativeSrc":"7547:2:26","nodeType":"YulIdentifier","src":"7547:2:26"}],"functionName":{"name":"mstore","nativeSrc":"7534:6:26","nodeType":"YulIdentifier","src":"7534:6:26"},"nativeSrc":"7534:16:26","nodeType":"YulFunctionCall","src":"7534:16:26"},"nativeSrc":"7534:16:26","nodeType":"YulExpressionStatement","src":"7534:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7614:4:26","nodeType":"YulLiteral","src":"7614:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7620:4:26","nodeType":"YulLiteral","src":"7620:4:26","type":"","value":"0x73"}],"functionName":{"name":"mstore8","nativeSrc":"7606:7:26","nodeType":"YulIdentifier","src":"7606:7:26"},"nativeSrc":"7606:19:26","nodeType":"YulFunctionCall","src":"7606:19:26"},"nativeSrc":"7606:19:26","nodeType":"YulExpressionStatement","src":"7606:19:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7670:4:26","nodeType":"YulLiteral","src":"7670:4:26","type":"","value":"0x20"},{"kind":"number","nativeSrc":"7676:4:26","nodeType":"YulLiteral","src":"7676:4:26","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nativeSrc":"7662:7:26","nodeType":"YulIdentifier","src":"7662:7:26"},"nativeSrc":"7662:19:26","nodeType":"YulFunctionCall","src":"7662:19:26"},"nativeSrc":"7662:19:26","nodeType":"YulExpressionStatement","src":"7662:19:26"},{"body":{"nativeSrc":"7769:34:26","nodeType":"YulBlock","src":"7769:34:26","statements":[{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7778:8:26","nodeType":"YulIdentifier","src":"7778:8:26"},"nativeSrc":"7778:10:26","nodeType":"YulFunctionCall","src":"7778:10:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7790:8:26","nodeType":"YulIdentifier","src":"7790:8:26"},"nativeSrc":"7790:10:26","nodeType":"YulFunctionCall","src":"7790:10:26"}],"functionName":{"name":"revert","nativeSrc":"7771:6:26","nodeType":"YulIdentifier","src":"7771:6:26"},"nativeSrc":"7771:30:26","nodeType":"YulFunctionCall","src":"7771:30:26"},"nativeSrc":"7771:30:26","nodeType":"YulExpressionStatement","src":"7771:30:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"7741:11:26","nodeType":"YulIdentifier","src":"7741:11:26"},"nativeSrc":"7741:13:26","nodeType":"YulFunctionCall","src":"7741:13:26"},{"kind":"number","nativeSrc":"7756:4:26","nodeType":"YulLiteral","src":"7756:4:26","type":"","value":"0x0b"},{"kind":"number","nativeSrc":"7762:4:26","nodeType":"YulLiteral","src":"7762:4:26","type":"","value":"0x16"}],"functionName":{"name":"create","nativeSrc":"7734:6:26","nodeType":"YulIdentifier","src":"7734:6:26"},"nativeSrc":"7734:33:26","nodeType":"YulFunctionCall","src":"7734:33:26"}],"functionName":{"name":"iszero","nativeSrc":"7727:6:26","nodeType":"YulIdentifier","src":"7727:6:26"},"nativeSrc":"7727:41:26","nodeType":"YulFunctionCall","src":"7727:41:26"},"nativeSrc":"7724:79:26","nodeType":"YulIf","src":"7724:79:26"}]},"condition":{"arguments":[{"arguments":[{"name":"GAS_STIPEND_NO_GRIEF","nativeSrc":"7438:20:26","nodeType":"YulIdentifier","src":"7438:20:26"},{"name":"to","nativeSrc":"7460:2:26","nodeType":"YulIdentifier","src":"7460:2:26"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"7464:11:26","nodeType":"YulIdentifier","src":"7464:11:26"},"nativeSrc":"7464:13:26","nodeType":"YulFunctionCall","src":"7464:13:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7479:8:26","nodeType":"YulIdentifier","src":"7479:8:26"},"nativeSrc":"7479:10:26","nodeType":"YulFunctionCall","src":"7479:10:26"},{"kind":"number","nativeSrc":"7491:4:26","nodeType":"YulLiteral","src":"7491:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"7497:8:26","nodeType":"YulIdentifier","src":"7497:8:26"},"nativeSrc":"7497:10:26","nodeType":"YulFunctionCall","src":"7497:10:26"},{"kind":"number","nativeSrc":"7509:4:26","nodeType":"YulLiteral","src":"7509:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"7433:4:26","nodeType":"YulIdentifier","src":"7433:4:26"},"nativeSrc":"7433:81:26","nodeType":"YulFunctionCall","src":"7433:81:26"}],"functionName":{"name":"iszero","nativeSrc":"7426:6:26","nodeType":"YulIdentifier","src":"7426:6:26"},"nativeSrc":"7426:89:26","nodeType":"YulFunctionCall","src":"7426:89:26"},"nativeSrc":"7423:417:26","nodeType":"YulIf","src":"7423:417:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11053,"isOffset":false,"isSlot":false,"src":"7438:20:26","valueSize":1},{"declaration":11118,"isOffset":false,"isSlot":false,"src":"7460:2:26","valueSize":1},{"declaration":11118,"isOffset":false,"isSlot":false,"src":"7547:2:26","valueSize":1}],"id":11121,"nodeType":"InlineAssembly","src":"7357:493:26"}]},"documentation":{"id":11116,"nodeType":"StructuredDocumentation","src":"7151:94:26","text":"@dev Force sends all the ETH in the current contract to `to`, with `GAS_STIPEND_NO_GRIEF`."},"id":11123,"implemented":true,"kind":"function","modifiers":[],"name":"forceSafeTransferAllETH","nameLocation":"7259:23:26","nodeType":"FunctionDefinition","parameters":{"id":11119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11118,"mutability":"mutable","name":"to","nameLocation":"7291:2:26","nodeType":"VariableDeclaration","scope":11123,"src":"7283:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11117,"name":"address","nodeType":"ElementaryTypeName","src":"7283:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7282:12:26"},"returnParameters":{"id":11120,"nodeType":"ParameterList","parameters":[],"src":"7304:0:26"},"scope":11358,"src":"7250:606:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11136,"nodeType":"Block","src":"8061:167:26","statements":[{"AST":{"nativeSrc":"8123:99:26","nodeType":"YulBlock","src":"8123:99:26","statements":[{"nativeSrc":"8137:75:26","nodeType":"YulAssignment","src":"8137:75:26","value":{"arguments":[{"name":"gasStipend","nativeSrc":"8153:10:26","nodeType":"YulIdentifier","src":"8153:10:26"},{"name":"to","nativeSrc":"8165:2:26","nodeType":"YulIdentifier","src":"8165:2:26"},{"name":"amount","nativeSrc":"8169:6:26","nodeType":"YulIdentifier","src":"8169:6:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8177:8:26","nodeType":"YulIdentifier","src":"8177:8:26"},"nativeSrc":"8177:10:26","nodeType":"YulFunctionCall","src":"8177:10:26"},{"kind":"number","nativeSrc":"8189:4:26","nodeType":"YulLiteral","src":"8189:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8195:8:26","nodeType":"YulIdentifier","src":"8195:8:26"},"nativeSrc":"8195:10:26","nodeType":"YulFunctionCall","src":"8195:10:26"},{"kind":"number","nativeSrc":"8207:4:26","nodeType":"YulLiteral","src":"8207:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"8148:4:26","nodeType":"YulIdentifier","src":"8148:4:26"},"nativeSrc":"8148:64:26","nodeType":"YulFunctionCall","src":"8148:64:26"},"variableNames":[{"name":"success","nativeSrc":"8137:7:26","nodeType":"YulIdentifier","src":"8137:7:26"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11128,"isOffset":false,"isSlot":false,"src":"8169:6:26","valueSize":1},{"declaration":11130,"isOffset":false,"isSlot":false,"src":"8153:10:26","valueSize":1},{"declaration":11133,"isOffset":false,"isSlot":false,"src":"8137:7:26","valueSize":1},{"declaration":11126,"isOffset":false,"isSlot":false,"src":"8165:2:26","valueSize":1}],"id":11135,"nodeType":"InlineAssembly","src":"8114:108:26"}]},"documentation":{"id":11124,"nodeType":"StructuredDocumentation","src":"7862:66:26","text":"@dev Sends `amount` (in wei) ETH to `to`, with a `gasStipend`."},"id":11137,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferETH","nameLocation":"7942:18:26","nodeType":"FunctionDefinition","parameters":{"id":11131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11126,"mutability":"mutable","name":"to","nameLocation":"7969:2:26","nodeType":"VariableDeclaration","scope":11137,"src":"7961:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11125,"name":"address","nodeType":"ElementaryTypeName","src":"7961:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11128,"mutability":"mutable","name":"amount","nameLocation":"7981:6:26","nodeType":"VariableDeclaration","scope":11137,"src":"7973:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11127,"name":"uint256","nodeType":"ElementaryTypeName","src":"7973:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11130,"mutability":"mutable","name":"gasStipend","nameLocation":"7997:10:26","nodeType":"VariableDeclaration","scope":11137,"src":"7989:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11129,"name":"uint256","nodeType":"ElementaryTypeName","src":"7989:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7960:48:26"},"returnParameters":{"id":11134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11133,"mutability":"mutable","name":"success","nameLocation":"8048:7:26","nodeType":"VariableDeclaration","scope":11137,"src":"8043:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11132,"name":"bool","nodeType":"ElementaryTypeName","src":"8043:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8042:14:26"},"scope":11358,"src":"7933:295:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11148,"nodeType":"Block","src":"8434:174:26","statements":[{"AST":{"nativeSrc":"8496:106:26","nodeType":"YulBlock","src":"8496:106:26","statements":[{"nativeSrc":"8510:82:26","nodeType":"YulAssignment","src":"8510:82:26","value":{"arguments":[{"name":"gasStipend","nativeSrc":"8526:10:26","nodeType":"YulIdentifier","src":"8526:10:26"},{"name":"to","nativeSrc":"8538:2:26","nodeType":"YulIdentifier","src":"8538:2:26"},{"arguments":[],"functionName":{"name":"selfbalance","nativeSrc":"8542:11:26","nodeType":"YulIdentifier","src":"8542:11:26"},"nativeSrc":"8542:13:26","nodeType":"YulFunctionCall","src":"8542:13:26"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8557:8:26","nodeType":"YulIdentifier","src":"8557:8:26"},"nativeSrc":"8557:10:26","nodeType":"YulFunctionCall","src":"8557:10:26"},{"kind":"number","nativeSrc":"8569:4:26","nodeType":"YulLiteral","src":"8569:4:26","type":"","value":"0x00"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"8575:8:26","nodeType":"YulIdentifier","src":"8575:8:26"},"nativeSrc":"8575:10:26","nodeType":"YulFunctionCall","src":"8575:10:26"},{"kind":"number","nativeSrc":"8587:4:26","nodeType":"YulLiteral","src":"8587:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"8521:4:26","nodeType":"YulIdentifier","src":"8521:4:26"},"nativeSrc":"8521:71:26","nodeType":"YulFunctionCall","src":"8521:71:26"},"variableNames":[{"name":"success","nativeSrc":"8510:7:26","nodeType":"YulIdentifier","src":"8510:7:26"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11142,"isOffset":false,"isSlot":false,"src":"8526:10:26","valueSize":1},{"declaration":11145,"isOffset":false,"isSlot":false,"src":"8510:7:26","valueSize":1},{"declaration":11140,"isOffset":false,"isSlot":false,"src":"8538:2:26","valueSize":1}],"id":11147,"nodeType":"InlineAssembly","src":"8487:115:26"}]},"documentation":{"id":11138,"nodeType":"StructuredDocumentation","src":"8234:80:26","text":"@dev Sends all the ETH in the current contract to `to`, with a `gasStipend`."},"id":11149,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferAllETH","nameLocation":"8328:21:26","nodeType":"FunctionDefinition","parameters":{"id":11143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11140,"mutability":"mutable","name":"to","nameLocation":"8358:2:26","nodeType":"VariableDeclaration","scope":11149,"src":"8350:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11139,"name":"address","nodeType":"ElementaryTypeName","src":"8350:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"gasStipend","nameLocation":"8370:10:26","nodeType":"VariableDeclaration","scope":11149,"src":"8362:18:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11141,"name":"uint256","nodeType":"ElementaryTypeName","src":"8362:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8349:32:26"},"returnParameters":{"id":11146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11145,"mutability":"mutable","name":"success","nameLocation":"8421:7:26","nodeType":"VariableDeclaration","scope":11149,"src":"8416:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11144,"name":"bool","nodeType":"ElementaryTypeName","src":"8416:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8415:14:26"},"scope":11358,"src":"8319:289:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11162,"nodeType":"Block","src":"9201:1047:26","statements":[{"AST":{"nativeSrc":"9263:979:26","nodeType":"YulBlock","src":"9263:979:26","statements":[{"nativeSrc":"9277:20:26","nodeType":"YulVariableDeclaration","src":"9277:20:26","value":{"arguments":[{"kind":"number","nativeSrc":"9292:4:26","nodeType":"YulLiteral","src":"9292:4:26","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9286:5:26","nodeType":"YulIdentifier","src":"9286:5:26"},"nativeSrc":"9286:11:26","nodeType":"YulFunctionCall","src":"9286:11:26"},"variables":[{"name":"m","nativeSrc":"9281:1:26","nodeType":"YulTypedName","src":"9281:1:26","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9351:4:26","nodeType":"YulLiteral","src":"9351:4:26","type":"","value":"0x60"},{"name":"amount","nativeSrc":"9357:6:26","nodeType":"YulIdentifier","src":"9357:6:26"}],"functionName":{"name":"mstore","nativeSrc":"9344:6:26","nodeType":"YulIdentifier","src":"9344:6:26"},"nativeSrc":"9344:20:26","nodeType":"YulFunctionCall","src":"9344:20:26"},"nativeSrc":"9344:20:26","nodeType":"YulExpressionStatement","src":"9344:20:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9416:4:26","nodeType":"YulLiteral","src":"9416:4:26","type":"","value":"0x40"},{"name":"to","nativeSrc":"9422:2:26","nodeType":"YulIdentifier","src":"9422:2:26"}],"functionName":{"name":"mstore","nativeSrc":"9409:6:26","nodeType":"YulIdentifier","src":"9409:6:26"},"nativeSrc":"9409:16:26","nodeType":"YulFunctionCall","src":"9409:16:26"},"nativeSrc":"9409:16:26","nodeType":"YulExpressionStatement","src":"9409:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9473:4:26","nodeType":"YulLiteral","src":"9473:4:26","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"9483:2:26","nodeType":"YulLiteral","src":"9483:2:26","type":"","value":"96"},{"name":"from","nativeSrc":"9487:4:26","nodeType":"YulIdentifier","src":"9487:4:26"}],"functionName":{"name":"shl","nativeSrc":"9479:3:26","nodeType":"YulIdentifier","src":"9479:3:26"},"nativeSrc":"9479:13:26","nodeType":"YulFunctionCall","src":"9479:13:26"}],"functionName":{"name":"mstore","nativeSrc":"9466:6:26","nodeType":"YulIdentifier","src":"9466:6:26"},"nativeSrc":"9466:27:26","nodeType":"YulFunctionCall","src":"9466:27:26"},"nativeSrc":"9466:27:26","nodeType":"YulExpressionStatement","src":"9466:27:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9543:4:26","nodeType":"YulLiteral","src":"9543:4:26","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"9549:34:26","nodeType":"YulLiteral","src":"9549:34:26","type":"","value":"0x23b872dd000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"9536:6:26","nodeType":"YulIdentifier","src":"9536:6:26"},"nativeSrc":"9536:48:26","nodeType":"YulFunctionCall","src":"9536:48:26"},"nativeSrc":"9536:48:26","nodeType":"YulExpressionStatement","src":"9536:48:26"},{"body":{"nativeSrc":"9988:118:26","nodeType":"YulBlock","src":"9988:118:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10013:4:26","nodeType":"YulLiteral","src":"10013:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10019:10:26","nodeType":"YulLiteral","src":"10019:10:26","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"10006:6:26","nodeType":"YulIdentifier","src":"10006:6:26"},"nativeSrc":"10006:24:26","nodeType":"YulFunctionCall","src":"10006:24:26"},"nativeSrc":"10006:24:26","nodeType":"YulExpressionStatement","src":"10006:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10081:4:26","nodeType":"YulLiteral","src":"10081:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"10087:4:26","nodeType":"YulLiteral","src":"10087:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"10074:6:26","nodeType":"YulIdentifier","src":"10074:6:26"},"nativeSrc":"10074:18:26","nodeType":"YulFunctionCall","src":"10074:18:26"},"nativeSrc":"10074:18:26","nodeType":"YulExpressionStatement","src":"10074:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9826:4:26","nodeType":"YulLiteral","src":"9826:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"9820:5:26","nodeType":"YulIdentifier","src":"9820:5:26"},"nativeSrc":"9820:11:26","nodeType":"YulFunctionCall","src":"9820:11:26"},{"kind":"number","nativeSrc":"9833:1:26","nodeType":"YulLiteral","src":"9833:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"9817:2:26","nodeType":"YulIdentifier","src":"9817:2:26"},"nativeSrc":"9817:18:26","nodeType":"YulFunctionCall","src":"9817:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"9844:14:26","nodeType":"YulIdentifier","src":"9844:14:26"},"nativeSrc":"9844:16:26","nodeType":"YulFunctionCall","src":"9844:16:26"}],"functionName":{"name":"iszero","nativeSrc":"9837:6:26","nodeType":"YulIdentifier","src":"9837:6:26"},"nativeSrc":"9837:24:26","nodeType":"YulFunctionCall","src":"9837:24:26"}],"functionName":{"name":"or","nativeSrc":"9814:2:26","nodeType":"YulIdentifier","src":"9814:2:26"},"nativeSrc":"9814:48:26","nodeType":"YulFunctionCall","src":"9814:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"9915:3:26","nodeType":"YulIdentifier","src":"9915:3:26"},"nativeSrc":"9915:5:26","nodeType":"YulFunctionCall","src":"9915:5:26"},{"name":"token","nativeSrc":"9922:5:26","nodeType":"YulIdentifier","src":"9922:5:26"},{"kind":"number","nativeSrc":"9929:1:26","nodeType":"YulLiteral","src":"9929:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"9932:4:26","nodeType":"YulLiteral","src":"9932:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"9938:4:26","nodeType":"YulLiteral","src":"9938:4:26","type":"","value":"0x64"},{"kind":"number","nativeSrc":"9944:4:26","nodeType":"YulLiteral","src":"9944:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9950:4:26","nodeType":"YulLiteral","src":"9950:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"9910:4:26","nodeType":"YulIdentifier","src":"9910:4:26"},"nativeSrc":"9910:45:26","nodeType":"YulFunctionCall","src":"9910:45:26"}],"functionName":{"name":"and","nativeSrc":"9729:3:26","nodeType":"YulIdentifier","src":"9729:3:26"},"nativeSrc":"9729:244:26","nodeType":"YulFunctionCall","src":"9729:244:26"}],"functionName":{"name":"iszero","nativeSrc":"9705:6:26","nodeType":"YulIdentifier","src":"9705:6:26"},"nativeSrc":"9705:282:26","nodeType":"YulFunctionCall","src":"9705:282:26"},"nativeSrc":"9702:404:26","nodeType":"YulIf","src":"9702:404:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10126:4:26","nodeType":"YulLiteral","src":"10126:4:26","type":"","value":"0x60"},{"kind":"number","nativeSrc":"10132:1:26","nodeType":"YulLiteral","src":"10132:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10119:6:26","nodeType":"YulIdentifier","src":"10119:6:26"},"nativeSrc":"10119:15:26","nodeType":"YulFunctionCall","src":"10119:15:26"},"nativeSrc":"10119:15:26","nodeType":"YulExpressionStatement","src":"10119:15:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10188:4:26","nodeType":"YulLiteral","src":"10188:4:26","type":"","value":"0x40"},{"name":"m","nativeSrc":"10194:1:26","nodeType":"YulIdentifier","src":"10194:1:26"}],"functionName":{"name":"mstore","nativeSrc":"10181:6:26","nodeType":"YulIdentifier","src":"10181:6:26"},"nativeSrc":"10181:15:26","nodeType":"YulFunctionCall","src":"10181:15:26"},"nativeSrc":"10181:15:26","nodeType":"YulExpressionStatement","src":"10181:15:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11158,"isOffset":false,"isSlot":false,"src":"9357:6:26","valueSize":1},{"declaration":11154,"isOffset":false,"isSlot":false,"src":"9487:4:26","valueSize":1},{"declaration":11156,"isOffset":false,"isSlot":false,"src":"9422:2:26","valueSize":1},{"declaration":11152,"isOffset":false,"isSlot":false,"src":"9922:5:26","valueSize":1}],"id":11161,"nodeType":"InlineAssembly","src":"9254:988:26"}]},"documentation":{"id":11150,"nodeType":"StructuredDocumentation","src":"8897:207:26","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n Reverts upon failure.\n The `from` account must have at least `amount` approved for\n the current contract to manage."},"id":11163,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"9118:16:26","nodeType":"FunctionDefinition","parameters":{"id":11159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11152,"mutability":"mutable","name":"token","nameLocation":"9143:5:26","nodeType":"VariableDeclaration","scope":11163,"src":"9135:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11151,"name":"address","nodeType":"ElementaryTypeName","src":"9135:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11154,"mutability":"mutable","name":"from","nameLocation":"9158:4:26","nodeType":"VariableDeclaration","scope":11163,"src":"9150:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11153,"name":"address","nodeType":"ElementaryTypeName","src":"9150:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11156,"mutability":"mutable","name":"to","nameLocation":"9172:2:26","nodeType":"VariableDeclaration","scope":11163,"src":"9164:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11155,"name":"address","nodeType":"ElementaryTypeName","src":"9164:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11158,"mutability":"mutable","name":"amount","nameLocation":"9184:6:26","nodeType":"VariableDeclaration","scope":11163,"src":"9176:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11157,"name":"uint256","nodeType":"ElementaryTypeName","src":"9176:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9134:57:26"},"returnParameters":{"id":11160,"nodeType":"ParameterList","parameters":[],"src":"9201:0:26"},"scope":11358,"src":"9109:1139:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11178,"nodeType":"Block","src":"10566:853:26","statements":[{"AST":{"nativeSrc":"10628:785:26","nodeType":"YulBlock","src":"10628:785:26","statements":[{"nativeSrc":"10642:20:26","nodeType":"YulVariableDeclaration","src":"10642:20:26","value":{"arguments":[{"kind":"number","nativeSrc":"10657:4:26","nodeType":"YulLiteral","src":"10657:4:26","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10651:5:26","nodeType":"YulIdentifier","src":"10651:5:26"},"nativeSrc":"10651:11:26","nodeType":"YulFunctionCall","src":"10651:11:26"},"variables":[{"name":"m","nativeSrc":"10646:1:26","nodeType":"YulTypedName","src":"10646:1:26","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10716:4:26","nodeType":"YulLiteral","src":"10716:4:26","type":"","value":"0x60"},{"name":"amount","nativeSrc":"10722:6:26","nodeType":"YulIdentifier","src":"10722:6:26"}],"functionName":{"name":"mstore","nativeSrc":"10709:6:26","nodeType":"YulIdentifier","src":"10709:6:26"},"nativeSrc":"10709:20:26","nodeType":"YulFunctionCall","src":"10709:20:26"},"nativeSrc":"10709:20:26","nodeType":"YulExpressionStatement","src":"10709:20:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10781:4:26","nodeType":"YulLiteral","src":"10781:4:26","type":"","value":"0x40"},{"name":"to","nativeSrc":"10787:2:26","nodeType":"YulIdentifier","src":"10787:2:26"}],"functionName":{"name":"mstore","nativeSrc":"10774:6:26","nodeType":"YulIdentifier","src":"10774:6:26"},"nativeSrc":"10774:16:26","nodeType":"YulFunctionCall","src":"10774:16:26"},"nativeSrc":"10774:16:26","nodeType":"YulExpressionStatement","src":"10774:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10838:4:26","nodeType":"YulLiteral","src":"10838:4:26","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"10848:2:26","nodeType":"YulLiteral","src":"10848:2:26","type":"","value":"96"},{"name":"from","nativeSrc":"10852:4:26","nodeType":"YulIdentifier","src":"10852:4:26"}],"functionName":{"name":"shl","nativeSrc":"10844:3:26","nodeType":"YulIdentifier","src":"10844:3:26"},"nativeSrc":"10844:13:26","nodeType":"YulFunctionCall","src":"10844:13:26"}],"functionName":{"name":"mstore","nativeSrc":"10831:6:26","nodeType":"YulIdentifier","src":"10831:6:26"},"nativeSrc":"10831:27:26","nodeType":"YulFunctionCall","src":"10831:27:26"},"nativeSrc":"10831:27:26","nodeType":"YulExpressionStatement","src":"10831:27:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10908:4:26","nodeType":"YulLiteral","src":"10908:4:26","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"10914:34:26","nodeType":"YulLiteral","src":"10914:34:26","type":"","value":"0x23b872dd000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"10901:6:26","nodeType":"YulIdentifier","src":"10901:6:26"},"nativeSrc":"10901:48:26","nodeType":"YulFunctionCall","src":"10901:48:26"},"nativeSrc":"10901:48:26","nodeType":"YulExpressionStatement","src":"10901:48:26"},{"nativeSrc":"11006:271:26","nodeType":"YulAssignment","src":"11006:271:26","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11130:4:26","nodeType":"YulLiteral","src":"11130:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"11124:5:26","nodeType":"YulIdentifier","src":"11124:5:26"},"nativeSrc":"11124:11:26","nodeType":"YulFunctionCall","src":"11124:11:26"},{"kind":"number","nativeSrc":"11137:1:26","nodeType":"YulLiteral","src":"11137:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"11121:2:26","nodeType":"YulIdentifier","src":"11121:2:26"},"nativeSrc":"11121:18:26","nodeType":"YulFunctionCall","src":"11121:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"11148:14:26","nodeType":"YulIdentifier","src":"11148:14:26"},"nativeSrc":"11148:16:26","nodeType":"YulFunctionCall","src":"11148:16:26"}],"functionName":{"name":"iszero","nativeSrc":"11141:6:26","nodeType":"YulIdentifier","src":"11141:6:26"},"nativeSrc":"11141:24:26","nodeType":"YulFunctionCall","src":"11141:24:26"}],"functionName":{"name":"or","nativeSrc":"11118:2:26","nodeType":"YulIdentifier","src":"11118:2:26"},"nativeSrc":"11118:48:26","nodeType":"YulFunctionCall","src":"11118:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"11219:3:26","nodeType":"YulIdentifier","src":"11219:3:26"},"nativeSrc":"11219:5:26","nodeType":"YulFunctionCall","src":"11219:5:26"},{"name":"token","nativeSrc":"11226:5:26","nodeType":"YulIdentifier","src":"11226:5:26"},{"kind":"number","nativeSrc":"11233:1:26","nodeType":"YulLiteral","src":"11233:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"11236:4:26","nodeType":"YulLiteral","src":"11236:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"11242:4:26","nodeType":"YulLiteral","src":"11242:4:26","type":"","value":"0x64"},{"kind":"number","nativeSrc":"11248:4:26","nodeType":"YulLiteral","src":"11248:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11254:4:26","nodeType":"YulLiteral","src":"11254:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"11214:4:26","nodeType":"YulIdentifier","src":"11214:4:26"},"nativeSrc":"11214:45:26","nodeType":"YulFunctionCall","src":"11214:45:26"}],"functionName":{"name":"and","nativeSrc":"11033:3:26","nodeType":"YulIdentifier","src":"11033:3:26"},"nativeSrc":"11033:244:26","nodeType":"YulFunctionCall","src":"11033:244:26"},"variableNames":[{"name":"success","nativeSrc":"11006:7:26","nodeType":"YulIdentifier","src":"11006:7:26"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11297:4:26","nodeType":"YulLiteral","src":"11297:4:26","type":"","value":"0x60"},{"kind":"number","nativeSrc":"11303:1:26","nodeType":"YulLiteral","src":"11303:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11290:6:26","nodeType":"YulIdentifier","src":"11290:6:26"},"nativeSrc":"11290:15:26","nodeType":"YulFunctionCall","src":"11290:15:26"},"nativeSrc":"11290:15:26","nodeType":"YulExpressionStatement","src":"11290:15:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11359:4:26","nodeType":"YulLiteral","src":"11359:4:26","type":"","value":"0x40"},{"name":"m","nativeSrc":"11365:1:26","nodeType":"YulIdentifier","src":"11365:1:26"}],"functionName":{"name":"mstore","nativeSrc":"11352:6:26","nodeType":"YulIdentifier","src":"11352:6:26"},"nativeSrc":"11352:15:26","nodeType":"YulFunctionCall","src":"11352:15:26"},"nativeSrc":"11352:15:26","nodeType":"YulExpressionStatement","src":"11352:15:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11172,"isOffset":false,"isSlot":false,"src":"10722:6:26","valueSize":1},{"declaration":11168,"isOffset":false,"isSlot":false,"src":"10852:4:26","valueSize":1},{"declaration":11175,"isOffset":false,"isSlot":false,"src":"11006:7:26","valueSize":1},{"declaration":11170,"isOffset":false,"isSlot":false,"src":"10787:2:26","valueSize":1},{"declaration":11166,"isOffset":false,"isSlot":false,"src":"11226:5:26","valueSize":1}],"id":11177,"nodeType":"InlineAssembly","src":"10619:794:26"}]},"documentation":{"id":11164,"nodeType":"StructuredDocumentation","src":"10254:169:26","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n The `from` account must have at least `amount` approved for the current contract to manage."},"id":11179,"implemented":true,"kind":"function","modifiers":[],"name":"trySafeTransferFrom","nameLocation":"10437:19:26","nodeType":"FunctionDefinition","parameters":{"id":11173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11166,"mutability":"mutable","name":"token","nameLocation":"10465:5:26","nodeType":"VariableDeclaration","scope":11179,"src":"10457:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11165,"name":"address","nodeType":"ElementaryTypeName","src":"10457:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11168,"mutability":"mutable","name":"from","nameLocation":"10480:4:26","nodeType":"VariableDeclaration","scope":11179,"src":"10472:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11167,"name":"address","nodeType":"ElementaryTypeName","src":"10472:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11170,"mutability":"mutable","name":"to","nameLocation":"10494:2:26","nodeType":"VariableDeclaration","scope":11179,"src":"10486:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"10486:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11172,"mutability":"mutable","name":"amount","nameLocation":"10506:6:26","nodeType":"VariableDeclaration","scope":11179,"src":"10498:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11171,"name":"uint256","nodeType":"ElementaryTypeName","src":"10498:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10456:57:26"},"returnParameters":{"id":11176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11175,"mutability":"mutable","name":"success","nameLocation":"10553:7:26","nodeType":"VariableDeclaration","scope":11179,"src":"10548:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11174,"name":"bool","nodeType":"ElementaryTypeName","src":"10548:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10547:14:26"},"scope":11358,"src":"10428:991:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11192,"nodeType":"Block","src":"11751:1599:26","statements":[{"AST":{"nativeSrc":"11813:1531:26","nodeType":"YulBlock","src":"11813:1531:26","statements":[{"nativeSrc":"11827:20:26","nodeType":"YulVariableDeclaration","src":"11827:20:26","value":{"arguments":[{"kind":"number","nativeSrc":"11842:4:26","nodeType":"YulLiteral","src":"11842:4:26","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11836:5:26","nodeType":"YulIdentifier","src":"11836:5:26"},"nativeSrc":"11836:11:26","nodeType":"YulFunctionCall","src":"11836:11:26"},"variables":[{"name":"m","nativeSrc":"11831:1:26","nodeType":"YulTypedName","src":"11831:1:26","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11901:4:26","nodeType":"YulLiteral","src":"11901:4:26","type":"","value":"0x40"},{"name":"to","nativeSrc":"11907:2:26","nodeType":"YulIdentifier","src":"11907:2:26"}],"functionName":{"name":"mstore","nativeSrc":"11894:6:26","nodeType":"YulIdentifier","src":"11894:6:26"},"nativeSrc":"11894:16:26","nodeType":"YulFunctionCall","src":"11894:16:26"},"nativeSrc":"11894:16:26","nodeType":"YulExpressionStatement","src":"11894:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11958:4:26","nodeType":"YulLiteral","src":"11958:4:26","type":"","value":"0x2c"},{"arguments":[{"kind":"number","nativeSrc":"11968:2:26","nodeType":"YulLiteral","src":"11968:2:26","type":"","value":"96"},{"name":"from","nativeSrc":"11972:4:26","nodeType":"YulIdentifier","src":"11972:4:26"}],"functionName":{"name":"shl","nativeSrc":"11964:3:26","nodeType":"YulIdentifier","src":"11964:3:26"},"nativeSrc":"11964:13:26","nodeType":"YulFunctionCall","src":"11964:13:26"}],"functionName":{"name":"mstore","nativeSrc":"11951:6:26","nodeType":"YulIdentifier","src":"11951:6:26"},"nativeSrc":"11951:27:26","nodeType":"YulFunctionCall","src":"11951:27:26"},"nativeSrc":"11951:27:26","nodeType":"YulExpressionStatement","src":"11951:27:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12028:4:26","nodeType":"YulLiteral","src":"12028:4:26","type":"","value":"0x0c"},{"kind":"number","nativeSrc":"12034:34:26","nodeType":"YulLiteral","src":"12034:34:26","type":"","value":"0x70a08231000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"12021:6:26","nodeType":"YulIdentifier","src":"12021:6:26"},"nativeSrc":"12021:48:26","nodeType":"YulFunctionCall","src":"12021:48:26"},"nativeSrc":"12021:48:26","nodeType":"YulExpressionStatement","src":"12021:48:26"},{"body":{"nativeSrc":"12436:118:26","nodeType":"YulBlock","src":"12436:118:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12461:4:26","nodeType":"YulLiteral","src":"12461:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12467:10:26","nodeType":"YulLiteral","src":"12467:10:26","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"12454:6:26","nodeType":"YulIdentifier","src":"12454:6:26"},"nativeSrc":"12454:24:26","nodeType":"YulFunctionCall","src":"12454:24:26"},"nativeSrc":"12454:24:26","nodeType":"YulExpressionStatement","src":"12454:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12529:4:26","nodeType":"YulLiteral","src":"12529:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12535:4:26","nodeType":"YulLiteral","src":"12535:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"12522:6:26","nodeType":"YulIdentifier","src":"12522:6:26"},"nativeSrc":"12522:18:26","nodeType":"YulFunctionCall","src":"12522:18:26"},"nativeSrc":"12522:18:26","nodeType":"YulExpressionStatement","src":"12522:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12279:14:26","nodeType":"YulIdentifier","src":"12279:14:26"},"nativeSrc":"12279:16:26","nodeType":"YulFunctionCall","src":"12279:16:26"},{"kind":"number","nativeSrc":"12297:4:26","nodeType":"YulLiteral","src":"12297:4:26","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"12276:2:26","nodeType":"YulIdentifier","src":"12276:2:26"},"nativeSrc":"12276:26:26","nodeType":"YulFunctionCall","src":"12276:26:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"12366:3:26","nodeType":"YulIdentifier","src":"12366:3:26"},"nativeSrc":"12366:5:26","nodeType":"YulFunctionCall","src":"12366:5:26"},{"name":"token","nativeSrc":"12373:5:26","nodeType":"YulIdentifier","src":"12373:5:26"},{"kind":"number","nativeSrc":"12380:4:26","nodeType":"YulLiteral","src":"12380:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"12386:4:26","nodeType":"YulLiteral","src":"12386:4:26","type":"","value":"0x24"},{"kind":"number","nativeSrc":"12392:4:26","nodeType":"YulLiteral","src":"12392:4:26","type":"","value":"0x60"},{"kind":"number","nativeSrc":"12398:4:26","nodeType":"YulLiteral","src":"12398:4:26","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"12355:10:26","nodeType":"YulIdentifier","src":"12355:10:26"},"nativeSrc":"12355:48:26","nodeType":"YulFunctionCall","src":"12355:48:26"}],"functionName":{"name":"and","nativeSrc":"12191:3:26","nodeType":"YulIdentifier","src":"12191:3:26"},"nativeSrc":"12191:230:26","nodeType":"YulFunctionCall","src":"12191:230:26"}],"functionName":{"name":"iszero","nativeSrc":"12167:6:26","nodeType":"YulIdentifier","src":"12167:6:26"},"nativeSrc":"12167:268:26","nodeType":"YulFunctionCall","src":"12167:268:26"},"nativeSrc":"12164:390:26","nodeType":"YulIf","src":"12164:390:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12574:4:26","nodeType":"YulLiteral","src":"12574:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12580:10:26","nodeType":"YulLiteral","src":"12580:10:26","type":"","value":"0x23b872dd"}],"functionName":{"name":"mstore","nativeSrc":"12567:6:26","nodeType":"YulIdentifier","src":"12567:6:26"},"nativeSrc":"12567:24:26","nodeType":"YulFunctionCall","src":"12567:24:26"},"nativeSrc":"12567:24:26","nodeType":"YulExpressionStatement","src":"12567:24:26"},{"nativeSrc":"12648:21:26","nodeType":"YulAssignment","src":"12648:21:26","value":{"arguments":[{"kind":"number","nativeSrc":"12664:4:26","nodeType":"YulLiteral","src":"12664:4:26","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"12658:5:26","nodeType":"YulIdentifier","src":"12658:5:26"},"nativeSrc":"12658:11:26","nodeType":"YulFunctionCall","src":"12658:11:26"},"variableNames":[{"name":"amount","nativeSrc":"12648:6:26","nodeType":"YulIdentifier","src":"12648:6:26"}]},{"body":{"nativeSrc":"13090:118:26","nodeType":"YulBlock","src":"13090:118:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13115:4:26","nodeType":"YulLiteral","src":"13115:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13121:10:26","nodeType":"YulLiteral","src":"13121:10:26","type":"","value":"0x7939f424"}],"functionName":{"name":"mstore","nativeSrc":"13108:6:26","nodeType":"YulIdentifier","src":"13108:6:26"},"nativeSrc":"13108:24:26","nodeType":"YulFunctionCall","src":"13108:24:26"},"nativeSrc":"13108:24:26","nodeType":"YulExpressionStatement","src":"13108:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13183:4:26","nodeType":"YulLiteral","src":"13183:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13189:4:26","nodeType":"YulLiteral","src":"13189:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"13176:6:26","nodeType":"YulIdentifier","src":"13176:6:26"},"nativeSrc":"13176:18:26","nodeType":"YulFunctionCall","src":"13176:18:26"},"nativeSrc":"13176:18:26","nodeType":"YulExpressionStatement","src":"13176:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12928:4:26","nodeType":"YulLiteral","src":"12928:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"12922:5:26","nodeType":"YulIdentifier","src":"12922:5:26"},"nativeSrc":"12922:11:26","nodeType":"YulFunctionCall","src":"12922:11:26"},{"kind":"number","nativeSrc":"12935:1:26","nodeType":"YulLiteral","src":"12935:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"12919:2:26","nodeType":"YulIdentifier","src":"12919:2:26"},"nativeSrc":"12919:18:26","nodeType":"YulFunctionCall","src":"12919:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"12946:14:26","nodeType":"YulIdentifier","src":"12946:14:26"},"nativeSrc":"12946:16:26","nodeType":"YulFunctionCall","src":"12946:16:26"}],"functionName":{"name":"iszero","nativeSrc":"12939:6:26","nodeType":"YulIdentifier","src":"12939:6:26"},"nativeSrc":"12939:24:26","nodeType":"YulFunctionCall","src":"12939:24:26"}],"functionName":{"name":"or","nativeSrc":"12916:2:26","nodeType":"YulIdentifier","src":"12916:2:26"},"nativeSrc":"12916:48:26","nodeType":"YulFunctionCall","src":"12916:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"13017:3:26","nodeType":"YulIdentifier","src":"13017:3:26"},"nativeSrc":"13017:5:26","nodeType":"YulFunctionCall","src":"13017:5:26"},{"name":"token","nativeSrc":"13024:5:26","nodeType":"YulIdentifier","src":"13024:5:26"},{"kind":"number","nativeSrc":"13031:1:26","nodeType":"YulLiteral","src":"13031:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"13034:4:26","nodeType":"YulLiteral","src":"13034:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"13040:4:26","nodeType":"YulLiteral","src":"13040:4:26","type":"","value":"0x64"},{"kind":"number","nativeSrc":"13046:4:26","nodeType":"YulLiteral","src":"13046:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13052:4:26","nodeType":"YulLiteral","src":"13052:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"13012:4:26","nodeType":"YulIdentifier","src":"13012:4:26"},"nativeSrc":"13012:45:26","nodeType":"YulFunctionCall","src":"13012:45:26"}],"functionName":{"name":"and","nativeSrc":"12831:3:26","nodeType":"YulIdentifier","src":"12831:3:26"},"nativeSrc":"12831:244:26","nodeType":"YulFunctionCall","src":"12831:244:26"}],"functionName":{"name":"iszero","nativeSrc":"12807:6:26","nodeType":"YulIdentifier","src":"12807:6:26"},"nativeSrc":"12807:282:26","nodeType":"YulFunctionCall","src":"12807:282:26"},"nativeSrc":"12804:404:26","nodeType":"YulIf","src":"12804:404:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13228:4:26","nodeType":"YulLiteral","src":"13228:4:26","type":"","value":"0x60"},{"kind":"number","nativeSrc":"13234:1:26","nodeType":"YulLiteral","src":"13234:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13221:6:26","nodeType":"YulIdentifier","src":"13221:6:26"},"nativeSrc":"13221:15:26","nodeType":"YulFunctionCall","src":"13221:15:26"},"nativeSrc":"13221:15:26","nodeType":"YulExpressionStatement","src":"13221:15:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13290:4:26","nodeType":"YulLiteral","src":"13290:4:26","type":"","value":"0x40"},{"name":"m","nativeSrc":"13296:1:26","nodeType":"YulIdentifier","src":"13296:1:26"}],"functionName":{"name":"mstore","nativeSrc":"13283:6:26","nodeType":"YulIdentifier","src":"13283:6:26"},"nativeSrc":"13283:15:26","nodeType":"YulFunctionCall","src":"13283:15:26"},"nativeSrc":"13283:15:26","nodeType":"YulExpressionStatement","src":"13283:15:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11189,"isOffset":false,"isSlot":false,"src":"12648:6:26","valueSize":1},{"declaration":11184,"isOffset":false,"isSlot":false,"src":"11972:4:26","valueSize":1},{"declaration":11186,"isOffset":false,"isSlot":false,"src":"11907:2:26","valueSize":1},{"declaration":11182,"isOffset":false,"isSlot":false,"src":"12373:5:26","valueSize":1},{"declaration":11182,"isOffset":false,"isSlot":false,"src":"13024:5:26","valueSize":1}],"id":11191,"nodeType":"InlineAssembly","src":"11804:1540:26"}]},"documentation":{"id":11180,"nodeType":"StructuredDocumentation","src":"11425:197:26","text":"@dev Sends all of ERC20 `token` from `from` to `to`.\n Reverts upon failure.\n The `from` account must have their entire balance approved for the current contract to manage."},"id":11193,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAllFrom","nameLocation":"11636:19:26","nodeType":"FunctionDefinition","parameters":{"id":11187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11182,"mutability":"mutable","name":"token","nameLocation":"11664:5:26","nodeType":"VariableDeclaration","scope":11193,"src":"11656:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11181,"name":"address","nodeType":"ElementaryTypeName","src":"11656:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11184,"mutability":"mutable","name":"from","nameLocation":"11679:4:26","nodeType":"VariableDeclaration","scope":11193,"src":"11671:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11183,"name":"address","nodeType":"ElementaryTypeName","src":"11671:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11186,"mutability":"mutable","name":"to","nameLocation":"11693:2:26","nodeType":"VariableDeclaration","scope":11193,"src":"11685:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11185,"name":"address","nodeType":"ElementaryTypeName","src":"11685:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11655:41:26"},"returnParameters":{"id":11190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11189,"mutability":"mutable","name":"amount","nameLocation":"11739:6:26","nodeType":"VariableDeclaration","scope":11193,"src":"11731:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11188,"name":"uint256","nodeType":"ElementaryTypeName","src":"11731:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11730:16:26"},"scope":11358,"src":"11627:1723:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11204,"nodeType":"Block","src":"13540:865:26","statements":[{"AST":{"nativeSrc":"13602:797:26","nodeType":"YulBlock","src":"13602:797:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13623:4:26","nodeType":"YulLiteral","src":"13623:4:26","type":"","value":"0x14"},{"name":"to","nativeSrc":"13629:2:26","nodeType":"YulIdentifier","src":"13629:2:26"}],"functionName":{"name":"mstore","nativeSrc":"13616:6:26","nodeType":"YulIdentifier","src":"13616:6:26"},"nativeSrc":"13616:16:26","nodeType":"YulFunctionCall","src":"13616:16:26"},"nativeSrc":"13616:16:26","nodeType":"YulExpressionStatement","src":"13616:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13680:4:26","nodeType":"YulLiteral","src":"13680:4:26","type":"","value":"0x34"},{"name":"amount","nativeSrc":"13686:6:26","nodeType":"YulIdentifier","src":"13686:6:26"}],"functionName":{"name":"mstore","nativeSrc":"13673:6:26","nodeType":"YulIdentifier","src":"13673:6:26"},"nativeSrc":"13673:20:26","nodeType":"YulFunctionCall","src":"13673:20:26"},"nativeSrc":"13673:20:26","nodeType":"YulExpressionStatement","src":"13673:20:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13745:4:26","nodeType":"YulLiteral","src":"13745:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13751:34:26","nodeType":"YulLiteral","src":"13751:34:26","type":"","value":"0xa9059cbb000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"13738:6:26","nodeType":"YulIdentifier","src":"13738:6:26"},"nativeSrc":"13738:48:26","nodeType":"YulFunctionCall","src":"13738:48:26"},"nativeSrc":"13738:48:26","nodeType":"YulExpressionStatement","src":"13738:48:26"},{"body":{"nativeSrc":"14178:114:26","nodeType":"YulBlock","src":"14178:114:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14203:4:26","nodeType":"YulLiteral","src":"14203:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14209:10:26","nodeType":"YulLiteral","src":"14209:10:26","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"14196:6:26","nodeType":"YulIdentifier","src":"14196:6:26"},"nativeSrc":"14196:24:26","nodeType":"YulFunctionCall","src":"14196:24:26"},"nativeSrc":"14196:24:26","nodeType":"YulExpressionStatement","src":"14196:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14267:4:26","nodeType":"YulLiteral","src":"14267:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"14273:4:26","nodeType":"YulLiteral","src":"14273:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"14260:6:26","nodeType":"YulIdentifier","src":"14260:6:26"},"nativeSrc":"14260:18:26","nodeType":"YulFunctionCall","src":"14260:18:26"},"nativeSrc":"14260:18:26","nodeType":"YulExpressionStatement","src":"14260:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14016:4:26","nodeType":"YulLiteral","src":"14016:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"14010:5:26","nodeType":"YulIdentifier","src":"14010:5:26"},"nativeSrc":"14010:11:26","nodeType":"YulFunctionCall","src":"14010:11:26"},{"kind":"number","nativeSrc":"14023:1:26","nodeType":"YulLiteral","src":"14023:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"14007:2:26","nodeType":"YulIdentifier","src":"14007:2:26"},"nativeSrc":"14007:18:26","nodeType":"YulFunctionCall","src":"14007:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"14034:14:26","nodeType":"YulIdentifier","src":"14034:14:26"},"nativeSrc":"14034:16:26","nodeType":"YulFunctionCall","src":"14034:16:26"}],"functionName":{"name":"iszero","nativeSrc":"14027:6:26","nodeType":"YulIdentifier","src":"14027:6:26"},"nativeSrc":"14027:24:26","nodeType":"YulFunctionCall","src":"14027:24:26"}],"functionName":{"name":"or","nativeSrc":"14004:2:26","nodeType":"YulIdentifier","src":"14004:2:26"},"nativeSrc":"14004:48:26","nodeType":"YulFunctionCall","src":"14004:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"14105:3:26","nodeType":"YulIdentifier","src":"14105:3:26"},"nativeSrc":"14105:5:26","nodeType":"YulFunctionCall","src":"14105:5:26"},{"name":"token","nativeSrc":"14112:5:26","nodeType":"YulIdentifier","src":"14112:5:26"},{"kind":"number","nativeSrc":"14119:1:26","nodeType":"YulLiteral","src":"14119:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"14122:4:26","nodeType":"YulLiteral","src":"14122:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"14128:4:26","nodeType":"YulLiteral","src":"14128:4:26","type":"","value":"0x44"},{"kind":"number","nativeSrc":"14134:4:26","nodeType":"YulLiteral","src":"14134:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14140:4:26","nodeType":"YulLiteral","src":"14140:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"14100:4:26","nodeType":"YulIdentifier","src":"14100:4:26"},"nativeSrc":"14100:45:26","nodeType":"YulFunctionCall","src":"14100:45:26"}],"functionName":{"name":"and","nativeSrc":"13919:3:26","nodeType":"YulIdentifier","src":"13919:3:26"},"nativeSrc":"13919:244:26","nodeType":"YulFunctionCall","src":"13919:244:26"}],"functionName":{"name":"iszero","nativeSrc":"13895:6:26","nodeType":"YulIdentifier","src":"13895:6:26"},"nativeSrc":"13895:282:26","nodeType":"YulFunctionCall","src":"13895:282:26"},"nativeSrc":"13892:400:26","nodeType":"YulIf","src":"13892:400:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14312:4:26","nodeType":"YulLiteral","src":"14312:4:26","type":"","value":"0x34"},{"kind":"number","nativeSrc":"14318:1:26","nodeType":"YulLiteral","src":"14318:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14305:6:26","nodeType":"YulIdentifier","src":"14305:6:26"},"nativeSrc":"14305:15:26","nodeType":"YulFunctionCall","src":"14305:15:26"},"nativeSrc":"14305:15:26","nodeType":"YulExpressionStatement","src":"14305:15:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11200,"isOffset":false,"isSlot":false,"src":"13686:6:26","valueSize":1},{"declaration":11198,"isOffset":false,"isSlot":false,"src":"13629:2:26","valueSize":1},{"declaration":11196,"isOffset":false,"isSlot":false,"src":"14112:5:26","valueSize":1}],"id":11203,"nodeType":"InlineAssembly","src":"13593:806:26"}]},"documentation":{"id":11194,"nodeType":"StructuredDocumentation","src":"13356:105:26","text":"@dev Sends `amount` of ERC20 `token` from the current contract to `to`.\n Reverts upon failure."},"id":11205,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"13475:12:26","nodeType":"FunctionDefinition","parameters":{"id":11201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11196,"mutability":"mutable","name":"token","nameLocation":"13496:5:26","nodeType":"VariableDeclaration","scope":11205,"src":"13488:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11195,"name":"address","nodeType":"ElementaryTypeName","src":"13488:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11198,"mutability":"mutable","name":"to","nameLocation":"13511:2:26","nodeType":"VariableDeclaration","scope":11205,"src":"13503:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11197,"name":"address","nodeType":"ElementaryTypeName","src":"13503:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11200,"mutability":"mutable","name":"amount","nameLocation":"13523:6:26","nodeType":"VariableDeclaration","scope":11205,"src":"13515:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11199,"name":"uint256","nodeType":"ElementaryTypeName","src":"13515:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13487:43:26"},"returnParameters":{"id":11202,"nodeType":"ParameterList","parameters":[],"src":"13540:0:26"},"scope":11358,"src":"13466:939:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11216,"nodeType":"Block","src":"14602:1526:26","statements":[{"AST":{"nativeSrc":"14664:1458:26","nodeType":"YulBlock","src":"14664:1458:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14685:4:26","nodeType":"YulLiteral","src":"14685:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14691:10:26","nodeType":"YulLiteral","src":"14691:10:26","type":"","value":"0x70a08231"}],"functionName":{"name":"mstore","nativeSrc":"14678:6:26","nodeType":"YulIdentifier","src":"14678:6:26"},"nativeSrc":"14678:24:26","nodeType":"YulFunctionCall","src":"14678:24:26"},"nativeSrc":"14678:24:26","nodeType":"YulExpressionStatement","src":"14678:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14778:4:26","nodeType":"YulLiteral","src":"14778:4:26","type":"","value":"0x20"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"14784:7:26","nodeType":"YulIdentifier","src":"14784:7:26"},"nativeSrc":"14784:9:26","nodeType":"YulFunctionCall","src":"14784:9:26"}],"functionName":{"name":"mstore","nativeSrc":"14771:6:26","nodeType":"YulIdentifier","src":"14771:6:26"},"nativeSrc":"14771:23:26","nodeType":"YulFunctionCall","src":"14771:23:26"},"nativeSrc":"14771:23:26","nodeType":"YulExpressionStatement","src":"14771:23:26"},{"body":{"nativeSrc":"15182:114:26","nodeType":"YulBlock","src":"15182:114:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15207:4:26","nodeType":"YulLiteral","src":"15207:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15213:10:26","nodeType":"YulLiteral","src":"15213:10:26","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"15200:6:26","nodeType":"YulIdentifier","src":"15200:6:26"},"nativeSrc":"15200:24:26","nodeType":"YulFunctionCall","src":"15200:24:26"},"nativeSrc":"15200:24:26","nodeType":"YulExpressionStatement","src":"15200:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15271:4:26","nodeType":"YulLiteral","src":"15271:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15277:4:26","nodeType":"YulLiteral","src":"15277:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15264:6:26","nodeType":"YulIdentifier","src":"15264:6:26"},"nativeSrc":"15264:18:26","nodeType":"YulFunctionCall","src":"15264:18:26"},"nativeSrc":"15264:18:26","nodeType":"YulExpressionStatement","src":"15264:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15025:14:26","nodeType":"YulIdentifier","src":"15025:14:26"},"nativeSrc":"15025:16:26","nodeType":"YulFunctionCall","src":"15025:16:26"},{"kind":"number","nativeSrc":"15043:4:26","nodeType":"YulLiteral","src":"15043:4:26","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"15022:2:26","nodeType":"YulIdentifier","src":"15022:2:26"},"nativeSrc":"15022:26:26","nodeType":"YulFunctionCall","src":"15022:26:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15112:3:26","nodeType":"YulIdentifier","src":"15112:3:26"},"nativeSrc":"15112:5:26","nodeType":"YulFunctionCall","src":"15112:5:26"},{"name":"token","nativeSrc":"15119:5:26","nodeType":"YulIdentifier","src":"15119:5:26"},{"kind":"number","nativeSrc":"15126:4:26","nodeType":"YulLiteral","src":"15126:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15132:4:26","nodeType":"YulLiteral","src":"15132:4:26","type":"","value":"0x24"},{"kind":"number","nativeSrc":"15138:4:26","nodeType":"YulLiteral","src":"15138:4:26","type":"","value":"0x34"},{"kind":"number","nativeSrc":"15144:4:26","nodeType":"YulLiteral","src":"15144:4:26","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"15101:10:26","nodeType":"YulIdentifier","src":"15101:10:26"},"nativeSrc":"15101:48:26","nodeType":"YulFunctionCall","src":"15101:48:26"}],"functionName":{"name":"and","nativeSrc":"14937:3:26","nodeType":"YulIdentifier","src":"14937:3:26"},"nativeSrc":"14937:230:26","nodeType":"YulFunctionCall","src":"14937:230:26"}],"functionName":{"name":"iszero","nativeSrc":"14913:6:26","nodeType":"YulIdentifier","src":"14913:6:26"},"nativeSrc":"14913:268:26","nodeType":"YulFunctionCall","src":"14913:268:26"},"nativeSrc":"14910:386:26","nodeType":"YulIf","src":"14910:386:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15316:4:26","nodeType":"YulLiteral","src":"15316:4:26","type":"","value":"0x14"},{"name":"to","nativeSrc":"15322:2:26","nodeType":"YulIdentifier","src":"15322:2:26"}],"functionName":{"name":"mstore","nativeSrc":"15309:6:26","nodeType":"YulIdentifier","src":"15309:6:26"},"nativeSrc":"15309:16:26","nodeType":"YulFunctionCall","src":"15309:16:26"},"nativeSrc":"15309:16:26","nodeType":"YulExpressionStatement","src":"15309:16:26"},{"nativeSrc":"15366:21:26","nodeType":"YulAssignment","src":"15366:21:26","value":{"arguments":[{"kind":"number","nativeSrc":"15382:4:26","nodeType":"YulLiteral","src":"15382:4:26","type":"","value":"0x34"}],"functionName":{"name":"mload","nativeSrc":"15376:5:26","nodeType":"YulIdentifier","src":"15376:5:26"},"nativeSrc":"15376:11:26","nodeType":"YulFunctionCall","src":"15376:11:26"},"variableNames":[{"name":"amount","nativeSrc":"15366:6:26","nodeType":"YulIdentifier","src":"15366:6:26"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15468:4:26","nodeType":"YulLiteral","src":"15468:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15474:34:26","nodeType":"YulLiteral","src":"15474:34:26","type":"","value":"0xa9059cbb000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"15461:6:26","nodeType":"YulIdentifier","src":"15461:6:26"},"nativeSrc":"15461:48:26","nodeType":"YulFunctionCall","src":"15461:48:26"},"nativeSrc":"15461:48:26","nodeType":"YulExpressionStatement","src":"15461:48:26"},{"body":{"nativeSrc":"15901:114:26","nodeType":"YulBlock","src":"15901:114:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15926:4:26","nodeType":"YulLiteral","src":"15926:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15932:10:26","nodeType":"YulLiteral","src":"15932:10:26","type":"","value":"0x90b8ec18"}],"functionName":{"name":"mstore","nativeSrc":"15919:6:26","nodeType":"YulIdentifier","src":"15919:6:26"},"nativeSrc":"15919:24:26","nodeType":"YulFunctionCall","src":"15919:24:26"},"nativeSrc":"15919:24:26","nodeType":"YulExpressionStatement","src":"15919:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15990:4:26","nodeType":"YulLiteral","src":"15990:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"15996:4:26","nodeType":"YulLiteral","src":"15996:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"15983:6:26","nodeType":"YulIdentifier","src":"15983:6:26"},"nativeSrc":"15983:18:26","nodeType":"YulFunctionCall","src":"15983:18:26"},"nativeSrc":"15983:18:26","nodeType":"YulExpressionStatement","src":"15983:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"15739:4:26","nodeType":"YulLiteral","src":"15739:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"15733:5:26","nodeType":"YulIdentifier","src":"15733:5:26"},"nativeSrc":"15733:11:26","nodeType":"YulFunctionCall","src":"15733:11:26"},{"kind":"number","nativeSrc":"15746:1:26","nodeType":"YulLiteral","src":"15746:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"15730:2:26","nodeType":"YulIdentifier","src":"15730:2:26"},"nativeSrc":"15730:18:26","nodeType":"YulFunctionCall","src":"15730:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15757:14:26","nodeType":"YulIdentifier","src":"15757:14:26"},"nativeSrc":"15757:16:26","nodeType":"YulFunctionCall","src":"15757:16:26"}],"functionName":{"name":"iszero","nativeSrc":"15750:6:26","nodeType":"YulIdentifier","src":"15750:6:26"},"nativeSrc":"15750:24:26","nodeType":"YulFunctionCall","src":"15750:24:26"}],"functionName":{"name":"or","nativeSrc":"15727:2:26","nodeType":"YulIdentifier","src":"15727:2:26"},"nativeSrc":"15727:48:26","nodeType":"YulFunctionCall","src":"15727:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"15828:3:26","nodeType":"YulIdentifier","src":"15828:3:26"},"nativeSrc":"15828:5:26","nodeType":"YulFunctionCall","src":"15828:5:26"},{"name":"token","nativeSrc":"15835:5:26","nodeType":"YulIdentifier","src":"15835:5:26"},{"kind":"number","nativeSrc":"15842:1:26","nodeType":"YulLiteral","src":"15842:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"15845:4:26","nodeType":"YulLiteral","src":"15845:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"15851:4:26","nodeType":"YulLiteral","src":"15851:4:26","type":"","value":"0x44"},{"kind":"number","nativeSrc":"15857:4:26","nodeType":"YulLiteral","src":"15857:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15863:4:26","nodeType":"YulLiteral","src":"15863:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"15823:4:26","nodeType":"YulIdentifier","src":"15823:4:26"},"nativeSrc":"15823:45:26","nodeType":"YulFunctionCall","src":"15823:45:26"}],"functionName":{"name":"and","nativeSrc":"15642:3:26","nodeType":"YulIdentifier","src":"15642:3:26"},"nativeSrc":"15642:244:26","nodeType":"YulFunctionCall","src":"15642:244:26"}],"functionName":{"name":"iszero","nativeSrc":"15618:6:26","nodeType":"YulIdentifier","src":"15618:6:26"},"nativeSrc":"15618:282:26","nodeType":"YulFunctionCall","src":"15618:282:26"},"nativeSrc":"15615:400:26","nodeType":"YulIf","src":"15615:400:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16035:4:26","nodeType":"YulLiteral","src":"16035:4:26","type":"","value":"0x34"},{"kind":"number","nativeSrc":"16041:1:26","nodeType":"YulLiteral","src":"16041:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16028:6:26","nodeType":"YulIdentifier","src":"16028:6:26"},"nativeSrc":"16028:15:26","nodeType":"YulFunctionCall","src":"16028:15:26"},"nativeSrc":"16028:15:26","nodeType":"YulExpressionStatement","src":"16028:15:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11213,"isOffset":false,"isSlot":false,"src":"15366:6:26","valueSize":1},{"declaration":11210,"isOffset":false,"isSlot":false,"src":"15322:2:26","valueSize":1},{"declaration":11208,"isOffset":false,"isSlot":false,"src":"15119:5:26","valueSize":1},{"declaration":11208,"isOffset":false,"isSlot":false,"src":"15835:5:26","valueSize":1}],"id":11215,"nodeType":"InlineAssembly","src":"14655:1467:26"}]},"documentation":{"id":11206,"nodeType":"StructuredDocumentation","src":"14411:100:26","text":"@dev Sends all of ERC20 `token` from the current contract to `to`.\n Reverts upon failure."},"id":11217,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferAll","nameLocation":"14525:15:26","nodeType":"FunctionDefinition","parameters":{"id":11211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11208,"mutability":"mutable","name":"token","nameLocation":"14549:5:26","nodeType":"VariableDeclaration","scope":11217,"src":"14541:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11207,"name":"address","nodeType":"ElementaryTypeName","src":"14541:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11210,"mutability":"mutable","name":"to","nameLocation":"14564:2:26","nodeType":"VariableDeclaration","scope":11217,"src":"14556:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11209,"name":"address","nodeType":"ElementaryTypeName","src":"14556:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14540:27:26"},"returnParameters":{"id":11214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11213,"mutability":"mutable","name":"amount","nameLocation":"14594:6:26","nodeType":"VariableDeclaration","scope":11217,"src":"14586:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11212,"name":"uint256","nodeType":"ElementaryTypeName","src":"14586:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14585:16:26"},"scope":11358,"src":"14516:1612:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11228,"nodeType":"Block","src":"16335:863:26","statements":[{"AST":{"nativeSrc":"16397:795:26","nodeType":"YulBlock","src":"16397:795:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16418:4:26","nodeType":"YulLiteral","src":"16418:4:26","type":"","value":"0x14"},{"name":"to","nativeSrc":"16424:2:26","nodeType":"YulIdentifier","src":"16424:2:26"}],"functionName":{"name":"mstore","nativeSrc":"16411:6:26","nodeType":"YulIdentifier","src":"16411:6:26"},"nativeSrc":"16411:16:26","nodeType":"YulFunctionCall","src":"16411:16:26"},"nativeSrc":"16411:16:26","nodeType":"YulExpressionStatement","src":"16411:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16475:4:26","nodeType":"YulLiteral","src":"16475:4:26","type":"","value":"0x34"},{"name":"amount","nativeSrc":"16481:6:26","nodeType":"YulIdentifier","src":"16481:6:26"}],"functionName":{"name":"mstore","nativeSrc":"16468:6:26","nodeType":"YulIdentifier","src":"16468:6:26"},"nativeSrc":"16468:20:26","nodeType":"YulFunctionCall","src":"16468:20:26"},"nativeSrc":"16468:20:26","nodeType":"YulExpressionStatement","src":"16468:20:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16540:4:26","nodeType":"YulLiteral","src":"16540:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16546:34:26","nodeType":"YulLiteral","src":"16546:34:26","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"16533:6:26","nodeType":"YulIdentifier","src":"16533:6:26"},"nativeSrc":"16533:48:26","nodeType":"YulFunctionCall","src":"16533:48:26"},"nativeSrc":"16533:48:26","nodeType":"YulExpressionStatement","src":"16533:48:26"},{"body":{"nativeSrc":"16972:113:26","nodeType":"YulBlock","src":"16972:113:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16997:4:26","nodeType":"YulLiteral","src":"16997:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17003:10:26","nodeType":"YulLiteral","src":"17003:10:26","type":"","value":"0x3e3f8f73"}],"functionName":{"name":"mstore","nativeSrc":"16990:6:26","nodeType":"YulIdentifier","src":"16990:6:26"},"nativeSrc":"16990:24:26","nodeType":"YulFunctionCall","src":"16990:24:26"},"nativeSrc":"16990:24:26","nodeType":"YulExpressionStatement","src":"16990:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17060:4:26","nodeType":"YulLiteral","src":"17060:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"17066:4:26","nodeType":"YulLiteral","src":"17066:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"17053:6:26","nodeType":"YulIdentifier","src":"17053:6:26"},"nativeSrc":"17053:18:26","nodeType":"YulFunctionCall","src":"17053:18:26"},"nativeSrc":"17053:18:26","nodeType":"YulExpressionStatement","src":"17053:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"16810:4:26","nodeType":"YulLiteral","src":"16810:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"16804:5:26","nodeType":"YulIdentifier","src":"16804:5:26"},"nativeSrc":"16804:11:26","nodeType":"YulFunctionCall","src":"16804:11:26"},{"kind":"number","nativeSrc":"16817:1:26","nodeType":"YulLiteral","src":"16817:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"16801:2:26","nodeType":"YulIdentifier","src":"16801:2:26"},"nativeSrc":"16801:18:26","nodeType":"YulFunctionCall","src":"16801:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"16828:14:26","nodeType":"YulIdentifier","src":"16828:14:26"},"nativeSrc":"16828:16:26","nodeType":"YulFunctionCall","src":"16828:16:26"}],"functionName":{"name":"iszero","nativeSrc":"16821:6:26","nodeType":"YulIdentifier","src":"16821:6:26"},"nativeSrc":"16821:24:26","nodeType":"YulFunctionCall","src":"16821:24:26"}],"functionName":{"name":"or","nativeSrc":"16798:2:26","nodeType":"YulIdentifier","src":"16798:2:26"},"nativeSrc":"16798:48:26","nodeType":"YulFunctionCall","src":"16798:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16899:3:26","nodeType":"YulIdentifier","src":"16899:3:26"},"nativeSrc":"16899:5:26","nodeType":"YulFunctionCall","src":"16899:5:26"},{"name":"token","nativeSrc":"16906:5:26","nodeType":"YulIdentifier","src":"16906:5:26"},{"kind":"number","nativeSrc":"16913:1:26","nodeType":"YulLiteral","src":"16913:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"16916:4:26","nodeType":"YulLiteral","src":"16916:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"16922:4:26","nodeType":"YulLiteral","src":"16922:4:26","type":"","value":"0x44"},{"kind":"number","nativeSrc":"16928:4:26","nodeType":"YulLiteral","src":"16928:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16934:4:26","nodeType":"YulLiteral","src":"16934:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"16894:4:26","nodeType":"YulIdentifier","src":"16894:4:26"},"nativeSrc":"16894:45:26","nodeType":"YulFunctionCall","src":"16894:45:26"}],"functionName":{"name":"and","nativeSrc":"16713:3:26","nodeType":"YulIdentifier","src":"16713:3:26"},"nativeSrc":"16713:244:26","nodeType":"YulFunctionCall","src":"16713:244:26"}],"functionName":{"name":"iszero","nativeSrc":"16689:6:26","nodeType":"YulIdentifier","src":"16689:6:26"},"nativeSrc":"16689:282:26","nodeType":"YulFunctionCall","src":"16689:282:26"},"nativeSrc":"16686:399:26","nodeType":"YulIf","src":"16686:399:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17105:4:26","nodeType":"YulLiteral","src":"17105:4:26","type":"","value":"0x34"},{"kind":"number","nativeSrc":"17111:1:26","nodeType":"YulLiteral","src":"17111:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17098:6:26","nodeType":"YulIdentifier","src":"17098:6:26"},"nativeSrc":"17098:15:26","nodeType":"YulFunctionCall","src":"17098:15:26"},"nativeSrc":"17098:15:26","nodeType":"YulExpressionStatement","src":"17098:15:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11224,"isOffset":false,"isSlot":false,"src":"16481:6:26","valueSize":1},{"declaration":11222,"isOffset":false,"isSlot":false,"src":"16424:2:26","valueSize":1},{"declaration":11220,"isOffset":false,"isSlot":false,"src":"16906:5:26","valueSize":1}],"id":11227,"nodeType":"InlineAssembly","src":"16388:804:26"}]},"documentation":{"id":11218,"nodeType":"StructuredDocumentation","src":"16134:123:26","text":"@dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n Reverts upon failure."},"id":11229,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"16271:11:26","nodeType":"FunctionDefinition","parameters":{"id":11225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11220,"mutability":"mutable","name":"token","nameLocation":"16291:5:26","nodeType":"VariableDeclaration","scope":11229,"src":"16283:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11219,"name":"address","nodeType":"ElementaryTypeName","src":"16283:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11222,"mutability":"mutable","name":"to","nameLocation":"16306:2:26","nodeType":"VariableDeclaration","scope":11229,"src":"16298:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11221,"name":"address","nodeType":"ElementaryTypeName","src":"16298:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11224,"mutability":"mutable","name":"amount","nameLocation":"16318:6:26","nodeType":"VariableDeclaration","scope":11229,"src":"16310:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11223,"name":"uint256","nodeType":"ElementaryTypeName","src":"16310:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16282:43:26"},"returnParameters":{"id":11226,"nodeType":"ParameterList","parameters":[],"src":"16335:0:26"},"scope":11358,"src":"16262:936:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11240,"nodeType":"Block","src":"17591:1542:26","statements":[{"AST":{"nativeSrc":"17653:1474:26","nodeType":"YulBlock","src":"17653:1474:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17674:4:26","nodeType":"YulLiteral","src":"17674:4:26","type":"","value":"0x14"},{"name":"to","nativeSrc":"17680:2:26","nodeType":"YulIdentifier","src":"17680:2:26"}],"functionName":{"name":"mstore","nativeSrc":"17667:6:26","nodeType":"YulIdentifier","src":"17667:6:26"},"nativeSrc":"17667:16:26","nodeType":"YulFunctionCall","src":"17667:16:26"},"nativeSrc":"17667:16:26","nodeType":"YulExpressionStatement","src":"17667:16:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17731:4:26","nodeType":"YulLiteral","src":"17731:4:26","type":"","value":"0x34"},{"name":"amount","nativeSrc":"17737:6:26","nodeType":"YulIdentifier","src":"17737:6:26"}],"functionName":{"name":"mstore","nativeSrc":"17724:6:26","nodeType":"YulIdentifier","src":"17724:6:26"},"nativeSrc":"17724:20:26","nodeType":"YulFunctionCall","src":"17724:20:26"},"nativeSrc":"17724:20:26","nodeType":"YulExpressionStatement","src":"17724:20:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17796:4:26","nodeType":"YulLiteral","src":"17796:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17802:34:26","nodeType":"YulLiteral","src":"17802:34:26","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"17789:6:26","nodeType":"YulIdentifier","src":"17789:6:26"},"nativeSrc":"17789:48:26","nodeType":"YulFunctionCall","src":"17789:48:26"},"nativeSrc":"17789:48:26","nodeType":"YulExpressionStatement","src":"17789:48:26"},{"body":{"nativeSrc":"18227:793:26","nodeType":"YulBlock","src":"18227:793:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18252:4:26","nodeType":"YulLiteral","src":"18252:4:26","type":"","value":"0x34"},{"kind":"number","nativeSrc":"18258:1:26","nodeType":"YulLiteral","src":"18258:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"18245:6:26","nodeType":"YulIdentifier","src":"18245:6:26"},"nativeSrc":"18245:15:26","nodeType":"YulFunctionCall","src":"18245:15:26"},"nativeSrc":"18245:15:26","nodeType":"YulExpressionStatement","src":"18245:15:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18313:4:26","nodeType":"YulLiteral","src":"18313:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18319:34:26","nodeType":"YulLiteral","src":"18319:34:26","type":"","value":"0x095ea7b3000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"18306:6:26","nodeType":"YulIdentifier","src":"18306:6:26"},"nativeSrc":"18306:48:26","nodeType":"YulFunctionCall","src":"18306:48:26"},"nativeSrc":"18306:48:26","nodeType":"YulExpressionStatement","src":"18306:48:26"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18411:3:26","nodeType":"YulIdentifier","src":"18411:3:26"},"nativeSrc":"18411:5:26","nodeType":"YulFunctionCall","src":"18411:5:26"},{"name":"token","nativeSrc":"18418:5:26","nodeType":"YulIdentifier","src":"18418:5:26"},{"kind":"number","nativeSrc":"18425:1:26","nodeType":"YulLiteral","src":"18425:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"18428:4:26","nodeType":"YulLiteral","src":"18428:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18434:4:26","nodeType":"YulLiteral","src":"18434:4:26","type":"","value":"0x44"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"18440:8:26","nodeType":"YulIdentifier","src":"18440:8:26"},"nativeSrc":"18440:10:26","nodeType":"YulFunctionCall","src":"18440:10:26"},{"kind":"number","nativeSrc":"18452:4:26","nodeType":"YulLiteral","src":"18452:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"18406:4:26","nodeType":"YulIdentifier","src":"18406:4:26"},"nativeSrc":"18406:51:26","nodeType":"YulFunctionCall","src":"18406:51:26"}],"functionName":{"name":"pop","nativeSrc":"18402:3:26","nodeType":"YulIdentifier","src":"18402:3:26"},"nativeSrc":"18402:56:26","nodeType":"YulFunctionCall","src":"18402:56:26"},"nativeSrc":"18402:56:26","nodeType":"YulExpressionStatement","src":"18402:56:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18505:4:26","nodeType":"YulLiteral","src":"18505:4:26","type":"","value":"0x34"},{"name":"amount","nativeSrc":"18511:6:26","nodeType":"YulIdentifier","src":"18511:6:26"}],"functionName":{"name":"mstore","nativeSrc":"18498:6:26","nodeType":"YulIdentifier","src":"18498:6:26"},"nativeSrc":"18498:20:26","nodeType":"YulFunctionCall","src":"18498:20:26"},"nativeSrc":"18498:20:26","nodeType":"YulExpressionStatement","src":"18498:20:26"},{"body":{"nativeSrc":"18881:125:26","nodeType":"YulBlock","src":"18881:125:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18910:4:26","nodeType":"YulLiteral","src":"18910:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18916:10:26","nodeType":"YulLiteral","src":"18916:10:26","type":"","value":"0x3e3f8f73"}],"functionName":{"name":"mstore","nativeSrc":"18903:6:26","nodeType":"YulIdentifier","src":"18903:6:26"},"nativeSrc":"18903:24:26","nodeType":"YulFunctionCall","src":"18903:24:26"},"nativeSrc":"18903:24:26","nodeType":"YulExpressionStatement","src":"18903:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18977:4:26","nodeType":"YulLiteral","src":"18977:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"18983:4:26","nodeType":"YulLiteral","src":"18983:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"18970:6:26","nodeType":"YulIdentifier","src":"18970:6:26"},"nativeSrc":"18970:18:26","nodeType":"YulFunctionCall","src":"18970:18:26"},"nativeSrc":"18970:18:26","nodeType":"YulExpressionStatement","src":"18970:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18707:4:26","nodeType":"YulLiteral","src":"18707:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18701:5:26","nodeType":"YulIdentifier","src":"18701:5:26"},"nativeSrc":"18701:11:26","nodeType":"YulFunctionCall","src":"18701:11:26"},{"kind":"number","nativeSrc":"18714:1:26","nodeType":"YulLiteral","src":"18714:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"18698:2:26","nodeType":"YulIdentifier","src":"18698:2:26"},"nativeSrc":"18698:18:26","nodeType":"YulFunctionCall","src":"18698:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18725:14:26","nodeType":"YulIdentifier","src":"18725:14:26"},"nativeSrc":"18725:16:26","nodeType":"YulFunctionCall","src":"18725:16:26"}],"functionName":{"name":"iszero","nativeSrc":"18718:6:26","nodeType":"YulIdentifier","src":"18718:6:26"},"nativeSrc":"18718:24:26","nodeType":"YulFunctionCall","src":"18718:24:26"}],"functionName":{"name":"or","nativeSrc":"18695:2:26","nodeType":"YulIdentifier","src":"18695:2:26"},"nativeSrc":"18695:48:26","nodeType":"YulFunctionCall","src":"18695:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18800:3:26","nodeType":"YulIdentifier","src":"18800:3:26"},"nativeSrc":"18800:5:26","nodeType":"YulFunctionCall","src":"18800:5:26"},{"name":"token","nativeSrc":"18807:5:26","nodeType":"YulIdentifier","src":"18807:5:26"},{"kind":"number","nativeSrc":"18814:1:26","nodeType":"YulLiteral","src":"18814:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"18817:4:26","nodeType":"YulLiteral","src":"18817:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18823:4:26","nodeType":"YulLiteral","src":"18823:4:26","type":"","value":"0x44"},{"kind":"number","nativeSrc":"18829:4:26","nodeType":"YulLiteral","src":"18829:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18835:4:26","nodeType":"YulLiteral","src":"18835:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"18795:4:26","nodeType":"YulIdentifier","src":"18795:4:26"},"nativeSrc":"18795:45:26","nodeType":"YulFunctionCall","src":"18795:45:26"}],"functionName":{"name":"and","nativeSrc":"18666:3:26","nodeType":"YulIdentifier","src":"18666:3:26"},"nativeSrc":"18666:196:26","nodeType":"YulFunctionCall","src":"18666:196:26"}],"functionName":{"name":"iszero","nativeSrc":"18638:6:26","nodeType":"YulIdentifier","src":"18638:6:26"},"nativeSrc":"18638:242:26","nodeType":"YulFunctionCall","src":"18638:242:26"},"nativeSrc":"18635:371:26","nodeType":"YulIf","src":"18635:371:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"18065:4:26","nodeType":"YulLiteral","src":"18065:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18059:5:26","nodeType":"YulIdentifier","src":"18059:5:26"},"nativeSrc":"18059:11:26","nodeType":"YulFunctionCall","src":"18059:11:26"},{"kind":"number","nativeSrc":"18072:1:26","nodeType":"YulLiteral","src":"18072:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"18056:2:26","nodeType":"YulIdentifier","src":"18056:2:26"},"nativeSrc":"18056:18:26","nodeType":"YulFunctionCall","src":"18056:18:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18083:14:26","nodeType":"YulIdentifier","src":"18083:14:26"},"nativeSrc":"18083:16:26","nodeType":"YulFunctionCall","src":"18083:16:26"}],"functionName":{"name":"iszero","nativeSrc":"18076:6:26","nodeType":"YulIdentifier","src":"18076:6:26"},"nativeSrc":"18076:24:26","nodeType":"YulFunctionCall","src":"18076:24:26"}],"functionName":{"name":"or","nativeSrc":"18053:2:26","nodeType":"YulIdentifier","src":"18053:2:26"},"nativeSrc":"18053:48:26","nodeType":"YulFunctionCall","src":"18053:48:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18154:3:26","nodeType":"YulIdentifier","src":"18154:3:26"},"nativeSrc":"18154:5:26","nodeType":"YulFunctionCall","src":"18154:5:26"},{"name":"token","nativeSrc":"18161:5:26","nodeType":"YulIdentifier","src":"18161:5:26"},{"kind":"number","nativeSrc":"18168:1:26","nodeType":"YulLiteral","src":"18168:1:26","type":"","value":"0"},{"kind":"number","nativeSrc":"18171:4:26","nodeType":"YulLiteral","src":"18171:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"18177:4:26","nodeType":"YulLiteral","src":"18177:4:26","type":"","value":"0x44"},{"kind":"number","nativeSrc":"18183:4:26","nodeType":"YulLiteral","src":"18183:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18189:4:26","nodeType":"YulLiteral","src":"18189:4:26","type":"","value":"0x20"}],"functionName":{"name":"call","nativeSrc":"18149:4:26","nodeType":"YulIdentifier","src":"18149:4:26"},"nativeSrc":"18149:45:26","nodeType":"YulFunctionCall","src":"18149:45:26"}],"functionName":{"name":"and","nativeSrc":"17968:3:26","nodeType":"YulIdentifier","src":"17968:3:26"},"nativeSrc":"17968:244:26","nodeType":"YulFunctionCall","src":"17968:244:26"}],"functionName":{"name":"iszero","nativeSrc":"17944:6:26","nodeType":"YulIdentifier","src":"17944:6:26"},"nativeSrc":"17944:282:26","nodeType":"YulFunctionCall","src":"17944:282:26"},"nativeSrc":"17941:1079:26","nodeType":"YulIf","src":"17941:1079:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19040:4:26","nodeType":"YulLiteral","src":"19040:4:26","type":"","value":"0x34"},{"kind":"number","nativeSrc":"19046:1:26","nodeType":"YulLiteral","src":"19046:1:26","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"19033:6:26","nodeType":"YulIdentifier","src":"19033:6:26"},"nativeSrc":"19033:15:26","nodeType":"YulFunctionCall","src":"19033:15:26"},"nativeSrc":"19033:15:26","nodeType":"YulExpressionStatement","src":"19033:15:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11236,"isOffset":false,"isSlot":false,"src":"17737:6:26","valueSize":1},{"declaration":11236,"isOffset":false,"isSlot":false,"src":"18511:6:26","valueSize":1},{"declaration":11234,"isOffset":false,"isSlot":false,"src":"17680:2:26","valueSize":1},{"declaration":11232,"isOffset":false,"isSlot":false,"src":"18161:5:26","valueSize":1},{"declaration":11232,"isOffset":false,"isSlot":false,"src":"18418:5:26","valueSize":1},{"declaration":11232,"isOffset":false,"isSlot":false,"src":"18807:5:26","valueSize":1}],"id":11239,"nodeType":"InlineAssembly","src":"17644:1483:26"}]},"documentation":{"id":11230,"nodeType":"StructuredDocumentation","src":"17204:300:26","text":"@dev Sets `amount` of ERC20 `token` for `to` to manage on behalf of the current contract.\n If the initial attempt to approve fails, attempts to reset the approved amount to zero,\n then retries the approval again (some tokens, e.g. USDT, requires this).\n Reverts upon failure."},"id":11241,"implemented":true,"kind":"function","modifiers":[],"name":"safeApproveWithRetry","nameLocation":"17518:20:26","nodeType":"FunctionDefinition","parameters":{"id":11237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11232,"mutability":"mutable","name":"token","nameLocation":"17547:5:26","nodeType":"VariableDeclaration","scope":11241,"src":"17539:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11231,"name":"address","nodeType":"ElementaryTypeName","src":"17539:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11234,"mutability":"mutable","name":"to","nameLocation":"17562:2:26","nodeType":"VariableDeclaration","scope":11241,"src":"17554:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11233,"name":"address","nodeType":"ElementaryTypeName","src":"17554:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11236,"mutability":"mutable","name":"amount","nameLocation":"17574:6:26","nodeType":"VariableDeclaration","scope":11241,"src":"17566:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11235,"name":"uint256","nodeType":"ElementaryTypeName","src":"17566:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17538:43:26"},"returnParameters":{"id":11238,"nodeType":"ParameterList","parameters":[],"src":"17591:0:26"},"scope":11358,"src":"17509:1624:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11252,"nodeType":"Block","src":"19350:649:26","statements":[{"AST":{"nativeSrc":"19412:581:26","nodeType":"YulBlock","src":"19412:581:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19433:4:26","nodeType":"YulLiteral","src":"19433:4:26","type":"","value":"0x14"},{"name":"account","nativeSrc":"19439:7:26","nodeType":"YulIdentifier","src":"19439:7:26"}],"functionName":{"name":"mstore","nativeSrc":"19426:6:26","nodeType":"YulIdentifier","src":"19426:6:26"},"nativeSrc":"19426:21:26","nodeType":"YulFunctionCall","src":"19426:21:26"},"nativeSrc":"19426:21:26","nodeType":"YulExpressionStatement","src":"19426:21:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19500:4:26","nodeType":"YulLiteral","src":"19500:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19506:34:26","nodeType":"YulLiteral","src":"19506:34:26","type":"","value":"0x70a08231000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"19493:6:26","nodeType":"YulIdentifier","src":"19493:6:26"},"nativeSrc":"19493:48:26","nodeType":"YulFunctionCall","src":"19493:48:26"},"nativeSrc":"19493:48:26","nodeType":"YulExpressionStatement","src":"19493:48:26"},{"nativeSrc":"19579:404:26","nodeType":"YulAssignment","src":"19579:404:26","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"19696:4:26","nodeType":"YulLiteral","src":"19696:4:26","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"19690:5:26","nodeType":"YulIdentifier","src":"19690:5:26"},"nativeSrc":"19690:11:26","nodeType":"YulFunctionCall","src":"19690:11:26"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"19815:14:26","nodeType":"YulIdentifier","src":"19815:14:26"},"nativeSrc":"19815:16:26","nodeType":"YulFunctionCall","src":"19815:16:26"},{"kind":"number","nativeSrc":"19833:4:26","nodeType":"YulLiteral","src":"19833:4:26","type":"","value":"0x1f"}],"functionName":{"name":"gt","nativeSrc":"19812:2:26","nodeType":"YulIdentifier","src":"19812:2:26"},"nativeSrc":"19812:26:26","nodeType":"YulFunctionCall","src":"19812:26:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"19906:3:26","nodeType":"YulIdentifier","src":"19906:3:26"},"nativeSrc":"19906:5:26","nodeType":"YulFunctionCall","src":"19906:5:26"},{"name":"token","nativeSrc":"19913:5:26","nodeType":"YulIdentifier","src":"19913:5:26"},{"kind":"number","nativeSrc":"19920:4:26","nodeType":"YulLiteral","src":"19920:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"19926:4:26","nodeType":"YulLiteral","src":"19926:4:26","type":"","value":"0x24"},{"kind":"number","nativeSrc":"19932:4:26","nodeType":"YulLiteral","src":"19932:4:26","type":"","value":"0x20"},{"kind":"number","nativeSrc":"19938:4:26","nodeType":"YulLiteral","src":"19938:4:26","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"19895:10:26","nodeType":"YulIdentifier","src":"19895:10:26"},"nativeSrc":"19895:48:26","nodeType":"YulFunctionCall","src":"19895:48:26"}],"functionName":{"name":"and","nativeSrc":"19723:3:26","nodeType":"YulIdentifier","src":"19723:3:26"},"nativeSrc":"19723:242:26","nodeType":"YulFunctionCall","src":"19723:242:26"}],"functionName":{"name":"mul","nativeSrc":"19605:3:26","nodeType":"YulIdentifier","src":"19605:3:26"},"nativeSrc":"19605:378:26","nodeType":"YulFunctionCall","src":"19605:378:26"},"variableNames":[{"name":"amount","nativeSrc":"19579:6:26","nodeType":"YulIdentifier","src":"19579:6:26"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11246,"isOffset":false,"isSlot":false,"src":"19439:7:26","valueSize":1},{"declaration":11249,"isOffset":false,"isSlot":false,"src":"19579:6:26","valueSize":1},{"declaration":11244,"isOffset":false,"isSlot":false,"src":"19913:5:26","valueSize":1}],"id":11251,"nodeType":"InlineAssembly","src":"19403:590:26"}]},"documentation":{"id":11242,"nodeType":"StructuredDocumentation","src":"19139:116:26","text":"@dev Returns the amount of ERC20 `token` owned by `account`.\n Returns zero if the `token` does not exist."},"id":11253,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"19269:9:26","nodeType":"FunctionDefinition","parameters":{"id":11247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11244,"mutability":"mutable","name":"token","nameLocation":"19287:5:26","nodeType":"VariableDeclaration","scope":11253,"src":"19279:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11243,"name":"address","nodeType":"ElementaryTypeName","src":"19279:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11246,"mutability":"mutable","name":"account","nameLocation":"19302:7:26","nodeType":"VariableDeclaration","scope":11253,"src":"19294:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11245,"name":"address","nodeType":"ElementaryTypeName","src":"19294:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19278:32:26"},"returnParameters":{"id":11250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11249,"mutability":"mutable","name":"amount","nameLocation":"19342:6:26","nodeType":"VariableDeclaration","scope":11253,"src":"19334:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11248,"name":"uint256","nodeType":"ElementaryTypeName","src":"19334:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19333:16:26"},"scope":11358,"src":"19260:739:26","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11281,"nodeType":"Block","src":"20382:136:26","statements":[{"condition":{"id":11271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20396:45:26","subExpression":{"arguments":[{"id":11266,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11256,"src":"20417:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11267,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11258,"src":"20424:4:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11268,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"20430:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11269,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11262,"src":"20434:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11265,"name":"trySafeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11179,"src":"20397:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,address,uint256) returns (bool)"}},"id":11270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20397:44:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11280,"nodeType":"IfStatement","src":"20392:120:26","trueBody":{"id":11279,"nodeType":"Block","src":"20443:69:26","statements":[{"expression":{"arguments":[{"id":11273,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11256,"src":"20477:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11274,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11258,"src":"20484:4:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11275,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11260,"src":"20490:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11276,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11262,"src":"20494:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11272,"name":"permit2TransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11296,"src":"20457:19:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":11277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20457:44:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11278,"nodeType":"ExpressionStatement","src":"20457:44:26"}]}}]},"documentation":{"id":11254,"nodeType":"StructuredDocumentation","src":"20005:279:26","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to`.\n If the initial attempt fails, try to use Permit2 to transfer the token.\n Reverts upon failure.\n The `from` account must have at least `amount` approved for the current contract to manage."},"id":11282,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom2","nameLocation":"20298:17:26","nodeType":"FunctionDefinition","parameters":{"id":11263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11256,"mutability":"mutable","name":"token","nameLocation":"20324:5:26","nodeType":"VariableDeclaration","scope":11282,"src":"20316:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11255,"name":"address","nodeType":"ElementaryTypeName","src":"20316:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11258,"mutability":"mutable","name":"from","nameLocation":"20339:4:26","nodeType":"VariableDeclaration","scope":11282,"src":"20331:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11257,"name":"address","nodeType":"ElementaryTypeName","src":"20331:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11260,"mutability":"mutable","name":"to","nameLocation":"20353:2:26","nodeType":"VariableDeclaration","scope":11282,"src":"20345:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11259,"name":"address","nodeType":"ElementaryTypeName","src":"20345:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11262,"mutability":"mutable","name":"amount","nameLocation":"20365:6:26","nodeType":"VariableDeclaration","scope":11282,"src":"20357:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11261,"name":"uint256","nodeType":"ElementaryTypeName","src":"20357:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20315:57:26"},"returnParameters":{"id":11264,"nodeType":"ParameterList","parameters":[],"src":"20382:0:26"},"scope":11358,"src":"20289:229:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11295,"nodeType":"Block","src":"20739:860:26","statements":[{"AST":{"nativeSrc":"20801:792:26","nodeType":"YulBlock","src":"20801:792:26","statements":[{"nativeSrc":"20815:20:26","nodeType":"YulVariableDeclaration","src":"20815:20:26","value":{"arguments":[{"kind":"number","nativeSrc":"20830:4:26","nodeType":"YulLiteral","src":"20830:4:26","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20824:5:26","nodeType":"YulIdentifier","src":"20824:5:26"},"nativeSrc":"20824:11:26","nodeType":"YulFunctionCall","src":"20824:11:26"},"variables":[{"name":"m","nativeSrc":"20819:1:26","nodeType":"YulTypedName","src":"20819:1:26","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20859:1:26","nodeType":"YulIdentifier","src":"20859:1:26"},{"kind":"number","nativeSrc":"20862:4:26","nodeType":"YulLiteral","src":"20862:4:26","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"20855:3:26","nodeType":"YulIdentifier","src":"20855:3:26"},"nativeSrc":"20855:12:26","nodeType":"YulFunctionCall","src":"20855:12:26"},{"arguments":[{"kind":"number","nativeSrc":"20873:2:26","nodeType":"YulLiteral","src":"20873:2:26","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"20881:2:26","nodeType":"YulLiteral","src":"20881:2:26","type":"","value":"96"},{"name":"token","nativeSrc":"20885:5:26","nodeType":"YulIdentifier","src":"20885:5:26"}],"functionName":{"name":"shl","nativeSrc":"20877:3:26","nodeType":"YulIdentifier","src":"20877:3:26"},"nativeSrc":"20877:14:26","nodeType":"YulFunctionCall","src":"20877:14:26"}],"functionName":{"name":"shr","nativeSrc":"20869:3:26","nodeType":"YulIdentifier","src":"20869:3:26"},"nativeSrc":"20869:23:26","nodeType":"YulFunctionCall","src":"20869:23:26"}],"functionName":{"name":"mstore","nativeSrc":"20848:6:26","nodeType":"YulIdentifier","src":"20848:6:26"},"nativeSrc":"20848:45:26","nodeType":"YulFunctionCall","src":"20848:45:26"},"nativeSrc":"20848:45:26","nodeType":"YulExpressionStatement","src":"20848:45:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20917:1:26","nodeType":"YulIdentifier","src":"20917:1:26"},{"kind":"number","nativeSrc":"20920:4:26","nodeType":"YulLiteral","src":"20920:4:26","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"20913:3:26","nodeType":"YulIdentifier","src":"20913:3:26"},"nativeSrc":"20913:12:26","nodeType":"YulFunctionCall","src":"20913:12:26"},{"name":"amount","nativeSrc":"20927:6:26","nodeType":"YulIdentifier","src":"20927:6:26"}],"functionName":{"name":"mstore","nativeSrc":"20906:6:26","nodeType":"YulIdentifier","src":"20906:6:26"},"nativeSrc":"20906:28:26","nodeType":"YulFunctionCall","src":"20906:28:26"},"nativeSrc":"20906:28:26","nodeType":"YulExpressionStatement","src":"20906:28:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20958:1:26","nodeType":"YulIdentifier","src":"20958:1:26"},{"kind":"number","nativeSrc":"20961:4:26","nodeType":"YulLiteral","src":"20961:4:26","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"20954:3:26","nodeType":"YulIdentifier","src":"20954:3:26"},"nativeSrc":"20954:12:26","nodeType":"YulFunctionCall","src":"20954:12:26"},{"name":"to","nativeSrc":"20968:2:26","nodeType":"YulIdentifier","src":"20968:2:26"}],"functionName":{"name":"mstore","nativeSrc":"20947:6:26","nodeType":"YulIdentifier","src":"20947:6:26"},"nativeSrc":"20947:24:26","nodeType":"YulFunctionCall","src":"20947:24:26"},"nativeSrc":"20947:24:26","nodeType":"YulExpressionStatement","src":"20947:24:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20995:1:26","nodeType":"YulIdentifier","src":"20995:1:26"},{"kind":"number","nativeSrc":"20998:4:26","nodeType":"YulLiteral","src":"20998:4:26","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20991:3:26","nodeType":"YulIdentifier","src":"20991:3:26"},"nativeSrc":"20991:12:26","nodeType":"YulFunctionCall","src":"20991:12:26"},{"arguments":[{"kind":"number","nativeSrc":"21009:2:26","nodeType":"YulLiteral","src":"21009:2:26","type":"","value":"96"},{"name":"from","nativeSrc":"21013:4:26","nodeType":"YulIdentifier","src":"21013:4:26"}],"functionName":{"name":"shl","nativeSrc":"21005:3:26","nodeType":"YulIdentifier","src":"21005:3:26"},"nativeSrc":"21005:13:26","nodeType":"YulFunctionCall","src":"21005:13:26"}],"functionName":{"name":"mstore","nativeSrc":"20984:6:26","nodeType":"YulIdentifier","src":"20984:6:26"},"nativeSrc":"20984:35:26","nodeType":"YulFunctionCall","src":"20984:35:26"},"nativeSrc":"20984:35:26","nodeType":"YulExpressionStatement","src":"20984:35:26"},{"expression":{"arguments":[{"name":"m","nativeSrc":"21103:1:26","nodeType":"YulIdentifier","src":"21103:1:26"},{"kind":"number","nativeSrc":"21106:34:26","nodeType":"YulLiteral","src":"21106:34:26","type":"","value":"0x36c78516000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"21096:6:26","nodeType":"YulIdentifier","src":"21096:6:26"},"nativeSrc":"21096:45:26","nodeType":"YulFunctionCall","src":"21096:45:26"},"nativeSrc":"21096:45:26","nodeType":"YulExpressionStatement","src":"21096:45:26"},{"nativeSrc":"21154:16:26","nodeType":"YulVariableDeclaration","src":"21154:16:26","value":{"name":"PERMIT2","nativeSrc":"21163:7:26","nodeType":"YulIdentifier","src":"21163:7:26"},"variables":[{"name":"p","nativeSrc":"21158:1:26","nodeType":"YulTypedName","src":"21158:1:26","type":""}]},{"nativeSrc":"21183:30:26","nodeType":"YulVariableDeclaration","src":"21183:30:26","value":{"arguments":[{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"21200:7:26","nodeType":"YulIdentifier","src":"21200:7:26"},"nativeSrc":"21200:9:26","nodeType":"YulFunctionCall","src":"21200:9:26"},{"kind":"number","nativeSrc":"21211:1:26","nodeType":"YulLiteral","src":"21211:1:26","type":"","value":"1"}],"functionName":{"name":"eq","nativeSrc":"21197:2:26","nodeType":"YulIdentifier","src":"21197:2:26"},"nativeSrc":"21197:16:26","nodeType":"YulFunctionCall","src":"21197:16:26"},"variables":[{"name":"exists","nativeSrc":"21187:6:26","nodeType":"YulTypedName","src":"21187:6:26","type":""}]},{"body":{"nativeSrc":"21244:44:26","nodeType":"YulBlock","src":"21244:44:26","statements":[{"nativeSrc":"21246:40:26","nodeType":"YulAssignment","src":"21246:40:26","value":{"arguments":[{"arguments":[{"arguments":[{"name":"p","nativeSrc":"21282:1:26","nodeType":"YulIdentifier","src":"21282:1:26"}],"functionName":{"name":"extcodesize","nativeSrc":"21270:11:26","nodeType":"YulIdentifier","src":"21270:11:26"},"nativeSrc":"21270:14:26","nodeType":"YulFunctionCall","src":"21270:14:26"}],"functionName":{"name":"iszero","nativeSrc":"21263:6:26","nodeType":"YulIdentifier","src":"21263:6:26"},"nativeSrc":"21263:22:26","nodeType":"YulFunctionCall","src":"21263:22:26"}],"functionName":{"name":"iszero","nativeSrc":"21256:6:26","nodeType":"YulIdentifier","src":"21256:6:26"},"nativeSrc":"21256:30:26","nodeType":"YulFunctionCall","src":"21256:30:26"},"variableNames":[{"name":"exists","nativeSrc":"21246:6:26","nodeType":"YulIdentifier","src":"21246:6:26"}]}]},"condition":{"arguments":[{"name":"exists","nativeSrc":"21236:6:26","nodeType":"YulIdentifier","src":"21236:6:26"}],"functionName":{"name":"iszero","nativeSrc":"21229:6:26","nodeType":"YulIdentifier","src":"21229:6:26"},"nativeSrc":"21229:14:26","nodeType":"YulFunctionCall","src":"21229:14:26"},"nativeSrc":"21226:62:26","nodeType":"YulIf","src":"21226:62:26"},{"body":{"nativeSrc":"21381:202:26","nodeType":"YulBlock","src":"21381:202:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21406:4:26","nodeType":"YulLiteral","src":"21406:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21412:18:26","nodeType":"YulLiteral","src":"21412:18:26","type":"","value":"0x7939f4248757f0fd"}],"functionName":{"name":"mstore","nativeSrc":"21399:6:26","nodeType":"YulIdentifier","src":"21399:6:26"},"nativeSrc":"21399:32:26","nodeType":"YulFunctionCall","src":"21399:32:26"},"nativeSrc":"21399:32:26","nodeType":"YulExpressionStatement","src":"21399:32:26"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21515:4:26","nodeType":"YulLiteral","src":"21515:4:26","type":"","value":"0x18"},{"arguments":[{"kind":"number","nativeSrc":"21525:1:26","nodeType":"YulLiteral","src":"21525:1:26","type":"","value":"2"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21546:3:26","nodeType":"YulLiteral","src":"21546:3:26","type":"","value":"160"},{"name":"amount","nativeSrc":"21551:6:26","nodeType":"YulIdentifier","src":"21551:6:26"}],"functionName":{"name":"shr","nativeSrc":"21542:3:26","nodeType":"YulIdentifier","src":"21542:3:26"},"nativeSrc":"21542:16:26","nodeType":"YulFunctionCall","src":"21542:16:26"}],"functionName":{"name":"iszero","nativeSrc":"21535:6:26","nodeType":"YulIdentifier","src":"21535:6:26"},"nativeSrc":"21535:24:26","nodeType":"YulFunctionCall","src":"21535:24:26"}],"functionName":{"name":"iszero","nativeSrc":"21528:6:26","nodeType":"YulIdentifier","src":"21528:6:26"},"nativeSrc":"21528:32:26","nodeType":"YulFunctionCall","src":"21528:32:26"}],"functionName":{"name":"shl","nativeSrc":"21521:3:26","nodeType":"YulIdentifier","src":"21521:3:26"},"nativeSrc":"21521:40:26","nodeType":"YulFunctionCall","src":"21521:40:26"}],"functionName":{"name":"add","nativeSrc":"21511:3:26","nodeType":"YulIdentifier","src":"21511:3:26"},"nativeSrc":"21511:51:26","nodeType":"YulFunctionCall","src":"21511:51:26"},{"kind":"number","nativeSrc":"21564:4:26","nodeType":"YulLiteral","src":"21564:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"21504:6:26","nodeType":"YulIdentifier","src":"21504:6:26"},"nativeSrc":"21504:65:26","nodeType":"YulFunctionCall","src":"21504:65:26"},"nativeSrc":"21504:65:26","nodeType":"YulExpressionStatement","src":"21504:65:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"21320:3:26","nodeType":"YulIdentifier","src":"21320:3:26"},"nativeSrc":"21320:5:26","nodeType":"YulFunctionCall","src":"21320:5:26"},{"name":"p","nativeSrc":"21327:1:26","nodeType":"YulIdentifier","src":"21327:1:26"},{"kind":"number","nativeSrc":"21330:1:26","nodeType":"YulLiteral","src":"21330:1:26","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"21337:1:26","nodeType":"YulIdentifier","src":"21337:1:26"},{"kind":"number","nativeSrc":"21340:4:26","nodeType":"YulLiteral","src":"21340:4:26","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"21333:3:26","nodeType":"YulIdentifier","src":"21333:3:26"},"nativeSrc":"21333:12:26","nodeType":"YulFunctionCall","src":"21333:12:26"},{"kind":"number","nativeSrc":"21347:4:26","nodeType":"YulLiteral","src":"21347:4:26","type":"","value":"0x84"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"21353:8:26","nodeType":"YulIdentifier","src":"21353:8:26"},"nativeSrc":"21353:10:26","nodeType":"YulFunctionCall","src":"21353:10:26"},{"kind":"number","nativeSrc":"21365:4:26","nodeType":"YulLiteral","src":"21365:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"21315:4:26","nodeType":"YulIdentifier","src":"21315:4:26"},"nativeSrc":"21315:55:26","nodeType":"YulFunctionCall","src":"21315:55:26"},{"name":"exists","nativeSrc":"21372:6:26","nodeType":"YulIdentifier","src":"21372:6:26"}],"functionName":{"name":"and","nativeSrc":"21311:3:26","nodeType":"YulIdentifier","src":"21311:3:26"},"nativeSrc":"21311:68:26","nodeType":"YulFunctionCall","src":"21311:68:26"}],"functionName":{"name":"iszero","nativeSrc":"21304:6:26","nodeType":"YulIdentifier","src":"21304:6:26"},"nativeSrc":"21304:76:26","nodeType":"YulFunctionCall","src":"21304:76:26"},"nativeSrc":"21301:282:26","nodeType":"YulIf","src":"21301:282:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11065,"isOffset":false,"isSlot":false,"src":"21163:7:26","valueSize":1},{"declaration":11291,"isOffset":false,"isSlot":false,"src":"20927:6:26","valueSize":1},{"declaration":11291,"isOffset":false,"isSlot":false,"src":"21551:6:26","valueSize":1},{"declaration":11287,"isOffset":false,"isSlot":false,"src":"21013:4:26","valueSize":1},{"declaration":11289,"isOffset":false,"isSlot":false,"src":"20968:2:26","valueSize":1},{"declaration":11285,"isOffset":false,"isSlot":false,"src":"20885:5:26","valueSize":1}],"id":11294,"nodeType":"InlineAssembly","src":"20792:801:26"}]},"documentation":{"id":11283,"nodeType":"StructuredDocumentation","src":"20524:103:26","text":"@dev Sends `amount` of ERC20 `token` from `from` to `to` via Permit2.\n Reverts upon failure."},"id":11296,"implemented":true,"kind":"function","modifiers":[],"name":"permit2TransferFrom","nameLocation":"20641:19:26","nodeType":"FunctionDefinition","parameters":{"id":11292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11285,"mutability":"mutable","name":"token","nameLocation":"20669:5:26","nodeType":"VariableDeclaration","scope":11296,"src":"20661:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11284,"name":"address","nodeType":"ElementaryTypeName","src":"20661:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11287,"mutability":"mutable","name":"from","nameLocation":"20684:4:26","nodeType":"VariableDeclaration","scope":11296,"src":"20676:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11286,"name":"address","nodeType":"ElementaryTypeName","src":"20676:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11289,"mutability":"mutable","name":"to","nameLocation":"20698:2:26","nodeType":"VariableDeclaration","scope":11296,"src":"20690:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11288,"name":"address","nodeType":"ElementaryTypeName","src":"20690:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11291,"mutability":"mutable","name":"amount","nameLocation":"20710:6:26","nodeType":"VariableDeclaration","scope":11296,"src":"20702:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11290,"name":"uint256","nodeType":"ElementaryTypeName","src":"20702:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20660:57:26"},"returnParameters":{"id":11293,"nodeType":"ParameterList","parameters":[],"src":"20739:0:26"},"scope":11358,"src":"20632:967:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11334,"nodeType":"Block","src":"22028:2261:26","statements":[{"assignments":[11317],"declarations":[{"constant":false,"id":11317,"mutability":"mutable","name":"success","nameLocation":"22043:7:26","nodeType":"VariableDeclaration","scope":11334,"src":"22038:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11316,"name":"bool","nodeType":"ElementaryTypeName","src":"22038:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":11318,"nodeType":"VariableDeclarationStatement","src":"22038:12:26"},{"AST":{"nativeSrc":"22112:2084:26","nodeType":"YulBlock","src":"22112:2084:26","statements":[{"body":{"nativeSrc":"22163:2023:26","nodeType":"YulBlock","src":"22163:2023:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22188:4:26","nodeType":"YulLiteral","src":"22188:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22194:10:26","nodeType":"YulLiteral","src":"22194:10:26","type":"","value":"0x3644e515"}],"functionName":{"name":"mstore","nativeSrc":"22181:6:26","nodeType":"YulIdentifier","src":"22181:6:26"},"nativeSrc":"22181:24:26","nodeType":"YulFunctionCall","src":"22181:24:26"},"nativeSrc":"22181:24:26","nodeType":"YulExpressionStatement","src":"22181:24:26"},{"body":{"nativeSrc":"22751:9:26","nodeType":"YulBlock","src":"22751:9:26","statements":[{"nativeSrc":"22753:5:26","nodeType":"YulBreak","src":"22753:5:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"22383:4:26","nodeType":"YulLiteral","src":"22383:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"22377:5:26","nodeType":"YulIdentifier","src":"22377:5:26"},"nativeSrc":"22377:11:26","nodeType":"YulFunctionCall","src":"22377:11:26"}],"functionName":{"name":"iszero","nativeSrc":"22370:6:26","nodeType":"YulIdentifier","src":"22370:6:26"},"nativeSrc":"22370:19:26","nodeType":"YulFunctionCall","src":"22370:19:26"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"22394:14:26","nodeType":"YulIdentifier","src":"22394:14:26"},"nativeSrc":"22394:16:26","nodeType":"YulFunctionCall","src":"22394:16:26"},{"kind":"number","nativeSrc":"22412:4:26","nodeType":"YulLiteral","src":"22412:4:26","type":"","value":"0x20"}],"functionName":{"name":"eq","nativeSrc":"22391:2:26","nodeType":"YulIdentifier","src":"22391:2:26"},"nativeSrc":"22391:26:26","nodeType":"YulFunctionCall","src":"22391:26:26"}],"functionName":{"name":"lt","nativeSrc":"22367:2:26","nodeType":"YulIdentifier","src":"22367:2:26"},"nativeSrc":"22367:51:26","nodeType":"YulFunctionCall","src":"22367:51:26"},{"arguments":[{"kind":"number","nativeSrc":"22674:4:26","nodeType":"YulLiteral","src":"22674:4:26","type":"","value":"5000"},{"name":"token","nativeSrc":"22680:5:26","nodeType":"YulIdentifier","src":"22680:5:26"},{"kind":"number","nativeSrc":"22687:4:26","nodeType":"YulLiteral","src":"22687:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"22693:4:26","nodeType":"YulLiteral","src":"22693:4:26","type":"","value":"0x04"},{"kind":"number","nativeSrc":"22699:4:26","nodeType":"YulLiteral","src":"22699:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22705:4:26","nodeType":"YulLiteral","src":"22705:4:26","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"22663:10:26","nodeType":"YulIdentifier","src":"22663:10:26"},"nativeSrc":"22663:47:26","nodeType":"YulFunctionCall","src":"22663:47:26"}],"functionName":{"name":"and","nativeSrc":"22278:3:26","nodeType":"YulIdentifier","src":"22278:3:26"},"nativeSrc":"22278:454:26","nodeType":"YulFunctionCall","src":"22278:454:26"}],"functionName":{"name":"iszero","nativeSrc":"22250:6:26","nodeType":"YulIdentifier","src":"22250:6:26"},"nativeSrc":"22250:500:26","nodeType":"YulFunctionCall","src":"22250:500:26"},"nativeSrc":"22247:513:26","nodeType":"YulIf","src":"22247:513:26"},{"nativeSrc":"22849:20:26","nodeType":"YulVariableDeclaration","src":"22849:20:26","value":{"arguments":[{"kind":"number","nativeSrc":"22864:4:26","nodeType":"YulLiteral","src":"22864:4:26","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"22858:5:26","nodeType":"YulIdentifier","src":"22858:5:26"},"nativeSrc":"22858:11:26","nodeType":"YulFunctionCall","src":"22858:11:26"},"variables":[{"name":"m","nativeSrc":"22853:1:26","nodeType":"YulTypedName","src":"22853:1:26","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22897:1:26","nodeType":"YulIdentifier","src":"22897:1:26"},{"kind":"number","nativeSrc":"22900:4:26","nodeType":"YulLiteral","src":"22900:4:26","type":"","value":"0x34"}],"functionName":{"name":"add","nativeSrc":"22893:3:26","nodeType":"YulIdentifier","src":"22893:3:26"},"nativeSrc":"22893:12:26","nodeType":"YulFunctionCall","src":"22893:12:26"},{"name":"spender","nativeSrc":"22907:7:26","nodeType":"YulIdentifier","src":"22907:7:26"}],"functionName":{"name":"mstore","nativeSrc":"22886:6:26","nodeType":"YulIdentifier","src":"22886:6:26"},"nativeSrc":"22886:29:26","nodeType":"YulFunctionCall","src":"22886:29:26"},"nativeSrc":"22886:29:26","nodeType":"YulExpressionStatement","src":"22886:29:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22943:1:26","nodeType":"YulIdentifier","src":"22943:1:26"},{"kind":"number","nativeSrc":"22946:4:26","nodeType":"YulLiteral","src":"22946:4:26","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22939:3:26","nodeType":"YulIdentifier","src":"22939:3:26"},"nativeSrc":"22939:12:26","nodeType":"YulFunctionCall","src":"22939:12:26"},{"arguments":[{"kind":"number","nativeSrc":"22957:2:26","nodeType":"YulLiteral","src":"22957:2:26","type":"","value":"96"},{"name":"owner","nativeSrc":"22961:5:26","nodeType":"YulIdentifier","src":"22961:5:26"}],"functionName":{"name":"shl","nativeSrc":"22953:3:26","nodeType":"YulIdentifier","src":"22953:3:26"},"nativeSrc":"22953:14:26","nodeType":"YulFunctionCall","src":"22953:14:26"}],"functionName":{"name":"mstore","nativeSrc":"22932:6:26","nodeType":"YulIdentifier","src":"22932:6:26"},"nativeSrc":"22932:36:26","nodeType":"YulFunctionCall","src":"22932:36:26"},"nativeSrc":"22932:36:26","nodeType":"YulExpressionStatement","src":"22932:36:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22996:1:26","nodeType":"YulIdentifier","src":"22996:1:26"},{"kind":"number","nativeSrc":"22999:4:26","nodeType":"YulLiteral","src":"22999:4:26","type":"","value":"0x74"}],"functionName":{"name":"add","nativeSrc":"22992:3:26","nodeType":"YulIdentifier","src":"22992:3:26"},"nativeSrc":"22992:12:26","nodeType":"YulFunctionCall","src":"22992:12:26"},{"name":"deadline","nativeSrc":"23006:8:26","nodeType":"YulIdentifier","src":"23006:8:26"}],"functionName":{"name":"mstore","nativeSrc":"22985:6:26","nodeType":"YulIdentifier","src":"22985:6:26"},"nativeSrc":"22985:30:26","nodeType":"YulFunctionCall","src":"22985:30:26"},"nativeSrc":"22985:30:26","nodeType":"YulExpressionStatement","src":"22985:30:26"},{"body":{"nativeSrc":"23073:726:26","nodeType":"YulBlock","src":"23073:726:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23102:4:26","nodeType":"YulLiteral","src":"23102:4:26","type":"","value":"0x14"},{"name":"owner","nativeSrc":"23108:5:26","nodeType":"YulIdentifier","src":"23108:5:26"}],"functionName":{"name":"mstore","nativeSrc":"23095:6:26","nodeType":"YulIdentifier","src":"23095:6:26"},"nativeSrc":"23095:19:26","nodeType":"YulFunctionCall","src":"23095:19:26"},"nativeSrc":"23095:19:26","nodeType":"YulExpressionStatement","src":"23095:19:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23142:4:26","nodeType":"YulLiteral","src":"23142:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"23148:34:26","nodeType":"YulLiteral","src":"23148:34:26","type":"","value":"0x7ecebe00000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23135:6:26","nodeType":"YulIdentifier","src":"23135:6:26"},"nativeSrc":"23135:48:26","nodeType":"YulFunctionCall","src":"23135:48:26"},"nativeSrc":"23135:48:26","nodeType":"YulExpressionStatement","src":"23135:48:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23237:1:26","nodeType":"YulIdentifier","src":"23237:1:26"},{"kind":"number","nativeSrc":"23240:4:26","nodeType":"YulLiteral","src":"23240:4:26","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"23233:3:26","nodeType":"YulIdentifier","src":"23233:3:26"},"nativeSrc":"23233:12:26","nodeType":"YulFunctionCall","src":"23233:12:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23258:3:26","nodeType":"YulIdentifier","src":"23258:3:26"},"nativeSrc":"23258:5:26","nodeType":"YulFunctionCall","src":"23258:5:26"},{"name":"token","nativeSrc":"23265:5:26","nodeType":"YulIdentifier","src":"23265:5:26"},{"kind":"number","nativeSrc":"23272:4:26","nodeType":"YulLiteral","src":"23272:4:26","type":"","value":"0x10"},{"kind":"number","nativeSrc":"23278:4:26","nodeType":"YulLiteral","src":"23278:4:26","type":"","value":"0x24"},{"arguments":[{"name":"m","nativeSrc":"23288:1:26","nodeType":"YulIdentifier","src":"23288:1:26"},{"kind":"number","nativeSrc":"23291:4:26","nodeType":"YulLiteral","src":"23291:4:26","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"23284:3:26","nodeType":"YulIdentifier","src":"23284:3:26"},"nativeSrc":"23284:12:26","nodeType":"YulFunctionCall","src":"23284:12:26"},{"kind":"number","nativeSrc":"23298:4:26","nodeType":"YulLiteral","src":"23298:4:26","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"23247:10:26","nodeType":"YulIdentifier","src":"23247:10:26"},"nativeSrc":"23247:56:26","nodeType":"YulFunctionCall","src":"23247:56:26"}],"functionName":{"name":"mstore","nativeSrc":"23226:6:26","nodeType":"YulIdentifier","src":"23226:6:26"},"nativeSrc":"23226:78:26","nodeType":"YulFunctionCall","src":"23226:78:26"},"nativeSrc":"23226:78:26","nodeType":"YulExpressionStatement","src":"23226:78:26"},{"expression":{"arguments":[{"name":"m","nativeSrc":"23332:1:26","nodeType":"YulIdentifier","src":"23332:1:26"},{"kind":"number","nativeSrc":"23335:34:26","nodeType":"YulLiteral","src":"23335:34:26","type":"","value":"0x8fcbaf0c000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23325:6:26","nodeType":"YulIdentifier","src":"23325:6:26"},"nativeSrc":"23325:45:26","nodeType":"YulFunctionCall","src":"23325:45:26"},"nativeSrc":"23325:45:26","nodeType":"YulExpressionStatement","src":"23325:45:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23552:1:26","nodeType":"YulIdentifier","src":"23552:1:26"},{"kind":"number","nativeSrc":"23555:4:26","nodeType":"YulLiteral","src":"23555:4:26","type":"","value":"0xb4"}],"functionName":{"name":"add","nativeSrc":"23548:3:26","nodeType":"YulIdentifier","src":"23548:3:26"},"nativeSrc":"23548:12:26","nodeType":"YulFunctionCall","src":"23548:12:26"},{"arguments":[{"kind":"number","nativeSrc":"23566:4:26","nodeType":"YulLiteral","src":"23566:4:26","type":"","value":"0xff"},{"name":"v","nativeSrc":"23572:1:26","nodeType":"YulIdentifier","src":"23572:1:26"}],"functionName":{"name":"and","nativeSrc":"23562:3:26","nodeType":"YulIdentifier","src":"23562:3:26"},"nativeSrc":"23562:12:26","nodeType":"YulFunctionCall","src":"23562:12:26"}],"functionName":{"name":"mstore","nativeSrc":"23541:6:26","nodeType":"YulIdentifier","src":"23541:6:26"},"nativeSrc":"23541:34:26","nodeType":"YulFunctionCall","src":"23541:34:26"},"nativeSrc":"23541:34:26","nodeType":"YulExpressionStatement","src":"23541:34:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23607:1:26","nodeType":"YulIdentifier","src":"23607:1:26"},{"kind":"number","nativeSrc":"23610:4:26","nodeType":"YulLiteral","src":"23610:4:26","type":"","value":"0xd4"}],"functionName":{"name":"add","nativeSrc":"23603:3:26","nodeType":"YulIdentifier","src":"23603:3:26"},"nativeSrc":"23603:12:26","nodeType":"YulFunctionCall","src":"23603:12:26"},{"name":"r","nativeSrc":"23617:1:26","nodeType":"YulIdentifier","src":"23617:1:26"}],"functionName":{"name":"mstore","nativeSrc":"23596:6:26","nodeType":"YulIdentifier","src":"23596:6:26"},"nativeSrc":"23596:23:26","nodeType":"YulFunctionCall","src":"23596:23:26"},"nativeSrc":"23596:23:26","nodeType":"YulExpressionStatement","src":"23596:23:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23651:1:26","nodeType":"YulIdentifier","src":"23651:1:26"},{"kind":"number","nativeSrc":"23654:4:26","nodeType":"YulLiteral","src":"23654:4:26","type":"","value":"0xf4"}],"functionName":{"name":"add","nativeSrc":"23647:3:26","nodeType":"YulIdentifier","src":"23647:3:26"},"nativeSrc":"23647:12:26","nodeType":"YulFunctionCall","src":"23647:12:26"},{"name":"s","nativeSrc":"23661:1:26","nodeType":"YulIdentifier","src":"23661:1:26"}],"functionName":{"name":"mstore","nativeSrc":"23640:6:26","nodeType":"YulIdentifier","src":"23640:6:26"},"nativeSrc":"23640:23:26","nodeType":"YulFunctionCall","src":"23640:23:26"},"nativeSrc":"23640:23:26","nodeType":"YulExpressionStatement","src":"23640:23:26"},{"nativeSrc":"23684:71:26","nodeType":"YulAssignment","src":"23684:71:26","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23700:3:26","nodeType":"YulIdentifier","src":"23700:3:26"},"nativeSrc":"23700:5:26","nodeType":"YulFunctionCall","src":"23700:5:26"},{"name":"token","nativeSrc":"23707:5:26","nodeType":"YulIdentifier","src":"23707:5:26"},{"kind":"number","nativeSrc":"23714:1:26","nodeType":"YulLiteral","src":"23714:1:26","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"23721:1:26","nodeType":"YulIdentifier","src":"23721:1:26"},{"kind":"number","nativeSrc":"23724:4:26","nodeType":"YulLiteral","src":"23724:4:26","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"23717:3:26","nodeType":"YulIdentifier","src":"23717:3:26"},"nativeSrc":"23717:12:26","nodeType":"YulFunctionCall","src":"23717:12:26"},{"kind":"number","nativeSrc":"23731:5:26","nodeType":"YulLiteral","src":"23731:5:26","type":"","value":"0x104"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"23738:8:26","nodeType":"YulIdentifier","src":"23738:8:26"},"nativeSrc":"23738:10:26","nodeType":"YulFunctionCall","src":"23738:10:26"},{"kind":"number","nativeSrc":"23750:4:26","nodeType":"YulLiteral","src":"23750:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"23695:4:26","nodeType":"YulIdentifier","src":"23695:4:26"},"nativeSrc":"23695:60:26","nodeType":"YulFunctionCall","src":"23695:60:26"},"variableNames":[{"name":"success","nativeSrc":"23684:7:26","nodeType":"YulIdentifier","src":"23684:7:26"}]},{"nativeSrc":"23776:5:26","nodeType":"YulBreak","src":"23776:5:26"}]},"condition":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23044:4:26","nodeType":"YulLiteral","src":"23044:4:26","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"23038:5:26","nodeType":"YulIdentifier","src":"23038:5:26"},"nativeSrc":"23038:11:26","nodeType":"YulFunctionCall","src":"23038:11:26"},{"name":"DAI_DOMAIN_SEPARATOR","nativeSrc":"23051:20:26","nodeType":"YulIdentifier","src":"23051:20:26"}],"functionName":{"name":"eq","nativeSrc":"23035:2:26","nodeType":"YulIdentifier","src":"23035:2:26"},"nativeSrc":"23035:37:26","nodeType":"YulFunctionCall","src":"23035:37:26"},"nativeSrc":"23032:767:26","nodeType":"YulIf","src":"23032:767:26"},{"expression":{"arguments":[{"name":"m","nativeSrc":"23823:1:26","nodeType":"YulIdentifier","src":"23823:1:26"},{"kind":"number","nativeSrc":"23826:34:26","nodeType":"YulLiteral","src":"23826:34:26","type":"","value":"0xd505accf000000000000000000000000"}],"functionName":{"name":"mstore","nativeSrc":"23816:6:26","nodeType":"YulIdentifier","src":"23816:6:26"},"nativeSrc":"23816:45:26","nodeType":"YulFunctionCall","src":"23816:45:26"},"nativeSrc":"23816:45:26","nodeType":"YulExpressionStatement","src":"23816:45:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23915:1:26","nodeType":"YulIdentifier","src":"23915:1:26"},{"kind":"number","nativeSrc":"23918:4:26","nodeType":"YulLiteral","src":"23918:4:26","type":"","value":"0x54"}],"functionName":{"name":"add","nativeSrc":"23911:3:26","nodeType":"YulIdentifier","src":"23911:3:26"},"nativeSrc":"23911:12:26","nodeType":"YulFunctionCall","src":"23911:12:26"},{"name":"amount","nativeSrc":"23925:6:26","nodeType":"YulIdentifier","src":"23925:6:26"}],"functionName":{"name":"mstore","nativeSrc":"23904:6:26","nodeType":"YulIdentifier","src":"23904:6:26"},"nativeSrc":"23904:28:26","nodeType":"YulFunctionCall","src":"23904:28:26"},"nativeSrc":"23904:28:26","nodeType":"YulExpressionStatement","src":"23904:28:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"23960:1:26","nodeType":"YulIdentifier","src":"23960:1:26"},{"kind":"number","nativeSrc":"23963:4:26","nodeType":"YulLiteral","src":"23963:4:26","type":"","value":"0x94"}],"functionName":{"name":"add","nativeSrc":"23956:3:26","nodeType":"YulIdentifier","src":"23956:3:26"},"nativeSrc":"23956:12:26","nodeType":"YulFunctionCall","src":"23956:12:26"},{"arguments":[{"kind":"number","nativeSrc":"23974:4:26","nodeType":"YulLiteral","src":"23974:4:26","type":"","value":"0xff"},{"name":"v","nativeSrc":"23980:1:26","nodeType":"YulIdentifier","src":"23980:1:26"}],"functionName":{"name":"and","nativeSrc":"23970:3:26","nodeType":"YulIdentifier","src":"23970:3:26"},"nativeSrc":"23970:12:26","nodeType":"YulFunctionCall","src":"23970:12:26"}],"functionName":{"name":"mstore","nativeSrc":"23949:6:26","nodeType":"YulIdentifier","src":"23949:6:26"},"nativeSrc":"23949:34:26","nodeType":"YulFunctionCall","src":"23949:34:26"},"nativeSrc":"23949:34:26","nodeType":"YulExpressionStatement","src":"23949:34:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24011:1:26","nodeType":"YulIdentifier","src":"24011:1:26"},{"kind":"number","nativeSrc":"24014:4:26","nodeType":"YulLiteral","src":"24014:4:26","type":"","value":"0xb4"}],"functionName":{"name":"add","nativeSrc":"24007:3:26","nodeType":"YulIdentifier","src":"24007:3:26"},"nativeSrc":"24007:12:26","nodeType":"YulFunctionCall","src":"24007:12:26"},{"name":"r","nativeSrc":"24021:1:26","nodeType":"YulIdentifier","src":"24021:1:26"}],"functionName":{"name":"mstore","nativeSrc":"24000:6:26","nodeType":"YulIdentifier","src":"24000:6:26"},"nativeSrc":"24000:23:26","nodeType":"YulFunctionCall","src":"24000:23:26"},"nativeSrc":"24000:23:26","nodeType":"YulExpressionStatement","src":"24000:23:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24051:1:26","nodeType":"YulIdentifier","src":"24051:1:26"},{"kind":"number","nativeSrc":"24054:4:26","nodeType":"YulLiteral","src":"24054:4:26","type":"","value":"0xd4"}],"functionName":{"name":"add","nativeSrc":"24047:3:26","nodeType":"YulIdentifier","src":"24047:3:26"},"nativeSrc":"24047:12:26","nodeType":"YulFunctionCall","src":"24047:12:26"},{"name":"s","nativeSrc":"24061:1:26","nodeType":"YulIdentifier","src":"24061:1:26"}],"functionName":{"name":"mstore","nativeSrc":"24040:6:26","nodeType":"YulIdentifier","src":"24040:6:26"},"nativeSrc":"24040:23:26","nodeType":"YulFunctionCall","src":"24040:23:26"},"nativeSrc":"24040:23:26","nodeType":"YulExpressionStatement","src":"24040:23:26"},{"nativeSrc":"24080:70:26","nodeType":"YulAssignment","src":"24080:70:26","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"24096:3:26","nodeType":"YulIdentifier","src":"24096:3:26"},"nativeSrc":"24096:5:26","nodeType":"YulFunctionCall","src":"24096:5:26"},{"name":"token","nativeSrc":"24103:5:26","nodeType":"YulIdentifier","src":"24103:5:26"},{"kind":"number","nativeSrc":"24110:1:26","nodeType":"YulLiteral","src":"24110:1:26","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"24117:1:26","nodeType":"YulIdentifier","src":"24117:1:26"},{"kind":"number","nativeSrc":"24120:4:26","nodeType":"YulLiteral","src":"24120:4:26","type":"","value":"0x10"}],"functionName":{"name":"add","nativeSrc":"24113:3:26","nodeType":"YulIdentifier","src":"24113:3:26"},"nativeSrc":"24113:12:26","nodeType":"YulFunctionCall","src":"24113:12:26"},{"kind":"number","nativeSrc":"24127:4:26","nodeType":"YulLiteral","src":"24127:4:26","type":"","value":"0xe4"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"24133:8:26","nodeType":"YulIdentifier","src":"24133:8:26"},"nativeSrc":"24133:10:26","nodeType":"YulFunctionCall","src":"24133:10:26"},{"kind":"number","nativeSrc":"24145:4:26","nodeType":"YulLiteral","src":"24145:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"24091:4:26","nodeType":"YulIdentifier","src":"24091:4:26"},"nativeSrc":"24091:59:26","nodeType":"YulFunctionCall","src":"24091:59:26"},"variableNames":[{"name":"success","nativeSrc":"24080:7:26","nodeType":"YulIdentifier","src":"24080:7:26"}]},{"nativeSrc":"24167:5:26","nodeType":"YulBreak","src":"24167:5:26"}]},"condition":{"arguments":[{"kind":"number","nativeSrc":"22137:2:26","nodeType":"YulLiteral","src":"22137:2:26","type":"","value":"96"},{"arguments":[{"name":"token","nativeSrc":"22145:5:26","nodeType":"YulIdentifier","src":"22145:5:26"},{"name":"WETH9","nativeSrc":"22152:5:26","nodeType":"YulIdentifier","src":"22152:5:26"}],"functionName":{"name":"xor","nativeSrc":"22141:3:26","nodeType":"YulIdentifier","src":"22141:3:26"},"nativeSrc":"22141:17:26","nodeType":"YulFunctionCall","src":"22141:17:26"}],"functionName":{"name":"shl","nativeSrc":"22133:3:26","nodeType":"YulIdentifier","src":"22133:3:26"},"nativeSrc":"22133:26:26","nodeType":"YulFunctionCall","src":"22133:26:26"},"nativeSrc":"22126:2060:26","nodeType":"YulForLoop","post":{"nativeSrc":"22160:2:26","nodeType":"YulBlock","src":"22160:2:26","statements":[]},"pre":{"nativeSrc":"22130:2:26","nodeType":"YulBlock","src":"22130:2:26","statements":[]},"src":"22126:2060:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11057,"isOffset":false,"isSlot":false,"src":"23051:20:26","valueSize":1},{"declaration":11061,"isOffset":false,"isSlot":false,"src":"22152:5:26","valueSize":1},{"declaration":11305,"isOffset":false,"isSlot":false,"src":"23925:6:26","valueSize":1},{"declaration":11307,"isOffset":false,"isSlot":false,"src":"23006:8:26","valueSize":1},{"declaration":11301,"isOffset":false,"isSlot":false,"src":"22961:5:26","valueSize":1},{"declaration":11301,"isOffset":false,"isSlot":false,"src":"23108:5:26","valueSize":1},{"declaration":11311,"isOffset":false,"isSlot":false,"src":"23617:1:26","valueSize":1},{"declaration":11311,"isOffset":false,"isSlot":false,"src":"24021:1:26","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"23661:1:26","valueSize":1},{"declaration":11313,"isOffset":false,"isSlot":false,"src":"24061:1:26","valueSize":1},{"declaration":11303,"isOffset":false,"isSlot":false,"src":"22907:7:26","valueSize":1},{"declaration":11317,"isOffset":false,"isSlot":false,"src":"23684:7:26","valueSize":1},{"declaration":11317,"isOffset":false,"isSlot":false,"src":"24080:7:26","valueSize":1},{"declaration":11299,"isOffset":false,"isSlot":false,"src":"22145:5:26","valueSize":1},{"declaration":11299,"isOffset":false,"isSlot":false,"src":"22680:5:26","valueSize":1},{"declaration":11299,"isOffset":false,"isSlot":false,"src":"23265:5:26","valueSize":1},{"declaration":11299,"isOffset":false,"isSlot":false,"src":"23707:5:26","valueSize":1},{"declaration":11299,"isOffset":false,"isSlot":false,"src":"24103:5:26","valueSize":1},{"declaration":11309,"isOffset":false,"isSlot":false,"src":"23572:1:26","valueSize":1},{"declaration":11309,"isOffset":false,"isSlot":false,"src":"23980:1:26","valueSize":1}],"id":11319,"nodeType":"InlineAssembly","src":"22103:2093:26"},{"condition":{"id":11321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24209:8:26","subExpression":{"id":11320,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11317,"src":"24210:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11333,"nodeType":"IfStatement","src":"24205:77:26","trueBody":{"expression":{"arguments":[{"id":11323,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11299,"src":"24233:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11324,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11301,"src":"24240:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11325,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11303,"src":"24247:7:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11326,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11305,"src":"24256:6:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11327,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11307,"src":"24264:8:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11328,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"24274:1:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":11329,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11311,"src":"24277:1:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11330,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11313,"src":"24280:1:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11322,"name":"simplePermit2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11357,"src":"24219:13:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,address,uint256,uint256,uint8,bytes32,bytes32)"}},"id":11331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24219:63:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11332,"nodeType":"ExpressionStatement","src":"24219:63:26"}}]},"documentation":{"id":11297,"nodeType":"StructuredDocumentation","src":"21605:210:26","text":"@dev Permit a user to spend a given amount of\n another user's tokens via native EIP-2612 permit if possible, falling\n back to Permit2 if native permit fails or is not implemented on the token."},"id":11335,"implemented":true,"kind":"function","modifiers":[],"name":"permit2","nameLocation":"21829:7:26","nodeType":"FunctionDefinition","parameters":{"id":11314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11299,"mutability":"mutable","name":"token","nameLocation":"21854:5:26","nodeType":"VariableDeclaration","scope":11335,"src":"21846:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11298,"name":"address","nodeType":"ElementaryTypeName","src":"21846:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11301,"mutability":"mutable","name":"owner","nameLocation":"21877:5:26","nodeType":"VariableDeclaration","scope":11335,"src":"21869:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11300,"name":"address","nodeType":"ElementaryTypeName","src":"21869:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11303,"mutability":"mutable","name":"spender","nameLocation":"21900:7:26","nodeType":"VariableDeclaration","scope":11335,"src":"21892:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11302,"name":"address","nodeType":"ElementaryTypeName","src":"21892:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11305,"mutability":"mutable","name":"amount","nameLocation":"21925:6:26","nodeType":"VariableDeclaration","scope":11335,"src":"21917:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11304,"name":"uint256","nodeType":"ElementaryTypeName","src":"21917:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11307,"mutability":"mutable","name":"deadline","nameLocation":"21949:8:26","nodeType":"VariableDeclaration","scope":11335,"src":"21941:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11306,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11309,"mutability":"mutable","name":"v","nameLocation":"21973:1:26","nodeType":"VariableDeclaration","scope":11335,"src":"21967:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11308,"name":"uint8","nodeType":"ElementaryTypeName","src":"21967:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11311,"mutability":"mutable","name":"r","nameLocation":"21992:1:26","nodeType":"VariableDeclaration","scope":11335,"src":"21984:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21984:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11313,"mutability":"mutable","name":"s","nameLocation":"22011:1:26","nodeType":"VariableDeclaration","scope":11335,"src":"22003:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22003:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21836:182:26"},"returnParameters":{"id":11315,"nodeType":"ParameterList","parameters":[],"src":"22028:0:26"},"scope":11358,"src":"21820:2469:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11356,"nodeType":"Block","src":"24561:1971:26","statements":[{"AST":{"nativeSrc":"24623:1903:26","nodeType":"YulBlock","src":"24623:1903:26","statements":[{"nativeSrc":"24637:20:26","nodeType":"YulVariableDeclaration","src":"24637:20:26","value":{"arguments":[{"kind":"number","nativeSrc":"24652:4:26","nodeType":"YulLiteral","src":"24652:4:26","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24646:5:26","nodeType":"YulIdentifier","src":"24646:5:26"},"nativeSrc":"24646:11:26","nodeType":"YulFunctionCall","src":"24646:11:26"},"variables":[{"name":"m","nativeSrc":"24641:1:26","nodeType":"YulTypedName","src":"24641:1:26","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"24677:1:26","nodeType":"YulIdentifier","src":"24677:1:26"},{"kind":"number","nativeSrc":"24680:10:26","nodeType":"YulLiteral","src":"24680:10:26","type":"","value":"0x927da105"}],"functionName":{"name":"mstore","nativeSrc":"24670:6:26","nodeType":"YulIdentifier","src":"24670:6:26"},"nativeSrc":"24670:21:26","nodeType":"YulFunctionCall","src":"24670:21:26"},"nativeSrc":"24670:21:26","nodeType":"YulExpressionStatement","src":"24670:21:26"},{"nativeSrc":"24745:318:26","nodeType":"YulBlock","src":"24745:318:26","statements":[{"nativeSrc":"24763:34:26","nodeType":"YulVariableDeclaration","src":"24763:34:26","value":{"arguments":[{"kind":"number","nativeSrc":"24786:2:26","nodeType":"YulLiteral","src":"24786:2:26","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"24794:1:26","nodeType":"YulLiteral","src":"24794:1:26","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"24790:3:26","nodeType":"YulIdentifier","src":"24790:3:26"},"nativeSrc":"24790:6:26","nodeType":"YulFunctionCall","src":"24790:6:26"}],"functionName":{"name":"shr","nativeSrc":"24782:3:26","nodeType":"YulIdentifier","src":"24782:3:26"},"nativeSrc":"24782:15:26","nodeType":"YulFunctionCall","src":"24782:15:26"},"variables":[{"name":"addressMask","nativeSrc":"24767:11:26","nodeType":"YulTypedName","src":"24767:11:26","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24825:1:26","nodeType":"YulIdentifier","src":"24825:1:26"},{"kind":"number","nativeSrc":"24828:4:26","nodeType":"YulLiteral","src":"24828:4:26","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24821:3:26","nodeType":"YulIdentifier","src":"24821:3:26"},"nativeSrc":"24821:12:26","nodeType":"YulFunctionCall","src":"24821:12:26"},{"arguments":[{"name":"addressMask","nativeSrc":"24839:11:26","nodeType":"YulIdentifier","src":"24839:11:26"},{"name":"owner","nativeSrc":"24852:5:26","nodeType":"YulIdentifier","src":"24852:5:26"}],"functionName":{"name":"and","nativeSrc":"24835:3:26","nodeType":"YulIdentifier","src":"24835:3:26"},"nativeSrc":"24835:23:26","nodeType":"YulFunctionCall","src":"24835:23:26"}],"functionName":{"name":"mstore","nativeSrc":"24814:6:26","nodeType":"YulIdentifier","src":"24814:6:26"},"nativeSrc":"24814:45:26","nodeType":"YulFunctionCall","src":"24814:45:26"},"nativeSrc":"24814:45:26","nodeType":"YulExpressionStatement","src":"24814:45:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24887:1:26","nodeType":"YulIdentifier","src":"24887:1:26"},{"kind":"number","nativeSrc":"24890:4:26","nodeType":"YulLiteral","src":"24890:4:26","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"24883:3:26","nodeType":"YulIdentifier","src":"24883:3:26"},"nativeSrc":"24883:12:26","nodeType":"YulFunctionCall","src":"24883:12:26"},{"arguments":[{"name":"addressMask","nativeSrc":"24901:11:26","nodeType":"YulIdentifier","src":"24901:11:26"},{"name":"token","nativeSrc":"24914:5:26","nodeType":"YulIdentifier","src":"24914:5:26"}],"functionName":{"name":"and","nativeSrc":"24897:3:26","nodeType":"YulIdentifier","src":"24897:3:26"},"nativeSrc":"24897:23:26","nodeType":"YulFunctionCall","src":"24897:23:26"}],"functionName":{"name":"mstore","nativeSrc":"24876:6:26","nodeType":"YulIdentifier","src":"24876:6:26"},"nativeSrc":"24876:45:26","nodeType":"YulFunctionCall","src":"24876:45:26"},"nativeSrc":"24876:45:26","nodeType":"YulExpressionStatement","src":"24876:45:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"24949:1:26","nodeType":"YulIdentifier","src":"24949:1:26"},{"kind":"number","nativeSrc":"24952:4:26","nodeType":"YulLiteral","src":"24952:4:26","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"24945:3:26","nodeType":"YulIdentifier","src":"24945:3:26"},"nativeSrc":"24945:12:26","nodeType":"YulFunctionCall","src":"24945:12:26"},{"arguments":[{"name":"addressMask","nativeSrc":"24963:11:26","nodeType":"YulIdentifier","src":"24963:11:26"},{"name":"spender","nativeSrc":"24976:7:26","nodeType":"YulIdentifier","src":"24976:7:26"}],"functionName":{"name":"and","nativeSrc":"24959:3:26","nodeType":"YulIdentifier","src":"24959:3:26"},"nativeSrc":"24959:25:26","nodeType":"YulFunctionCall","src":"24959:25:26"}],"functionName":{"name":"mstore","nativeSrc":"24938:6:26","nodeType":"YulIdentifier","src":"24938:6:26"},"nativeSrc":"24938:47:26","nodeType":"YulFunctionCall","src":"24938:47:26"},"nativeSrc":"24938:47:26","nodeType":"YulExpressionStatement","src":"24938:47:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25013:1:26","nodeType":"YulIdentifier","src":"25013:1:26"},{"kind":"number","nativeSrc":"25016:4:26","nodeType":"YulLiteral","src":"25016:4:26","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"25009:3:26","nodeType":"YulIdentifier","src":"25009:3:26"},"nativeSrc":"25009:12:26","nodeType":"YulFunctionCall","src":"25009:12:26"},{"arguments":[{"name":"addressMask","nativeSrc":"25027:11:26","nodeType":"YulIdentifier","src":"25027:11:26"},{"name":"spender","nativeSrc":"25040:7:26","nodeType":"YulIdentifier","src":"25040:7:26"}],"functionName":{"name":"and","nativeSrc":"25023:3:26","nodeType":"YulIdentifier","src":"25023:3:26"},"nativeSrc":"25023:25:26","nodeType":"YulFunctionCall","src":"25023:25:26"}],"functionName":{"name":"mstore","nativeSrc":"25002:6:26","nodeType":"YulIdentifier","src":"25002:6:26"},"nativeSrc":"25002:47:26","nodeType":"YulFunctionCall","src":"25002:47:26"},"nativeSrc":"25002:47:26","nodeType":"YulExpressionStatement","src":"25002:47:26"}]},{"nativeSrc":"25076:47:26","nodeType":"YulVariableDeclaration","src":"25076:47:26","value":{"arguments":[{"name":"PERMIT2","nativeSrc":"25089:7:26","nodeType":"YulIdentifier","src":"25089:7:26"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25109:3:26","nodeType":"YulLiteral","src":"25109:3:26","type":"","value":"160"},{"name":"amount","nativeSrc":"25114:6:26","nodeType":"YulIdentifier","src":"25114:6:26"}],"functionName":{"name":"shr","nativeSrc":"25105:3:26","nodeType":"YulIdentifier","src":"25105:3:26"},"nativeSrc":"25105:16:26","nodeType":"YulFunctionCall","src":"25105:16:26"}],"functionName":{"name":"iszero","nativeSrc":"25098:6:26","nodeType":"YulIdentifier","src":"25098:6:26"},"nativeSrc":"25098:24:26","nodeType":"YulFunctionCall","src":"25098:24:26"}],"functionName":{"name":"mul","nativeSrc":"25085:3:26","nodeType":"YulIdentifier","src":"25085:3:26"},"nativeSrc":"25085:38:26","nodeType":"YulFunctionCall","src":"25085:38:26"},"variables":[{"name":"p","nativeSrc":"25080:1:26","nodeType":"YulTypedName","src":"25080:1:26","type":""}]},{"body":{"nativeSrc":"25442:174:26","nodeType":"YulBlock","src":"25442:174:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25467:4:26","nodeType":"YulLiteral","src":"25467:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25473:18:26","nodeType":"YulLiteral","src":"25473:18:26","type":"","value":"0x6b836e6b8757f0fd"}],"functionName":{"name":"mstore","nativeSrc":"25460:6:26","nodeType":"YulIdentifier","src":"25460:6:26"},"nativeSrc":"25460:32:26","nodeType":"YulFunctionCall","src":"25460:32:26"},"nativeSrc":"25460:32:26","nodeType":"YulExpressionStatement","src":"25460:32:26"},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25571:4:26","nodeType":"YulLiteral","src":"25571:4:26","type":"","value":"0x18"},{"arguments":[{"kind":"number","nativeSrc":"25581:1:26","nodeType":"YulLiteral","src":"25581:1:26","type":"","value":"2"},{"arguments":[{"name":"p","nativeSrc":"25591:1:26","nodeType":"YulIdentifier","src":"25591:1:26"}],"functionName":{"name":"iszero","nativeSrc":"25584:6:26","nodeType":"YulIdentifier","src":"25584:6:26"},"nativeSrc":"25584:9:26","nodeType":"YulFunctionCall","src":"25584:9:26"}],"functionName":{"name":"shl","nativeSrc":"25577:3:26","nodeType":"YulIdentifier","src":"25577:3:26"},"nativeSrc":"25577:17:26","nodeType":"YulFunctionCall","src":"25577:17:26"}],"functionName":{"name":"add","nativeSrc":"25567:3:26","nodeType":"YulIdentifier","src":"25567:3:26"},"nativeSrc":"25567:28:26","nodeType":"YulFunctionCall","src":"25567:28:26"},{"kind":"number","nativeSrc":"25597:4:26","nodeType":"YulLiteral","src":"25597:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"25560:6:26","nodeType":"YulIdentifier","src":"25560:6:26"},"nativeSrc":"25560:42:26","nodeType":"YulFunctionCall","src":"25560:42:26"},"nativeSrc":"25560:42:26","nodeType":"YulExpressionStatement","src":"25560:42:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25251:14:26","nodeType":"YulIdentifier","src":"25251:14:26"},"nativeSrc":"25251:16:26","nodeType":"YulFunctionCall","src":"25251:16:26"},{"kind":"number","nativeSrc":"25269:4:26","nodeType":"YulLiteral","src":"25269:4:26","type":"","value":"0x5f"}],"functionName":{"name":"gt","nativeSrc":"25248:2:26","nodeType":"YulIdentifier","src":"25248:2:26"},"nativeSrc":"25248:26:26","nodeType":"YulFunctionCall","src":"25248:26:26"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"25360:3:26","nodeType":"YulIdentifier","src":"25360:3:26"},"nativeSrc":"25360:5:26","nodeType":"YulFunctionCall","src":"25360:5:26"},{"name":"p","nativeSrc":"25367:1:26","nodeType":"YulIdentifier","src":"25367:1:26"},{"arguments":[{"name":"m","nativeSrc":"25374:1:26","nodeType":"YulIdentifier","src":"25374:1:26"},{"kind":"number","nativeSrc":"25377:4:26","nodeType":"YulLiteral","src":"25377:4:26","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"25370:3:26","nodeType":"YulIdentifier","src":"25370:3:26"},"nativeSrc":"25370:12:26","nodeType":"YulFunctionCall","src":"25370:12:26"},{"kind":"number","nativeSrc":"25384:4:26","nodeType":"YulLiteral","src":"25384:4:26","type":"","value":"0x64"},{"arguments":[{"name":"m","nativeSrc":"25394:1:26","nodeType":"YulIdentifier","src":"25394:1:26"},{"kind":"number","nativeSrc":"25397:4:26","nodeType":"YulLiteral","src":"25397:4:26","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25390:3:26","nodeType":"YulIdentifier","src":"25390:3:26"},"nativeSrc":"25390:12:26","nodeType":"YulFunctionCall","src":"25390:12:26"},{"kind":"number","nativeSrc":"25404:4:26","nodeType":"YulLiteral","src":"25404:4:26","type":"","value":"0x60"}],"functionName":{"name":"staticcall","nativeSrc":"25349:10:26","nodeType":"YulIdentifier","src":"25349:10:26"},"nativeSrc":"25349:60:26","nodeType":"YulFunctionCall","src":"25349:60:26"}],"functionName":{"name":"and","nativeSrc":"25163:3:26","nodeType":"YulIdentifier","src":"25163:3:26"},"nativeSrc":"25163:264:26","nodeType":"YulFunctionCall","src":"25163:264:26"}],"functionName":{"name":"iszero","nativeSrc":"25139:6:26","nodeType":"YulIdentifier","src":"25139:6:26"},"nativeSrc":"25139:302:26","nodeType":"YulFunctionCall","src":"25139:302:26"},"nativeSrc":"25136:480:26","nodeType":"YulIf","src":"25136:480:26"},{"expression":{"arguments":[{"name":"m","nativeSrc":"25636:1:26","nodeType":"YulIdentifier","src":"25636:1:26"},{"kind":"number","nativeSrc":"25639:10:26","nodeType":"YulLiteral","src":"25639:10:26","type":"","value":"0x2b67b570"}],"functionName":{"name":"mstore","nativeSrc":"25629:6:26","nodeType":"YulIdentifier","src":"25629:6:26"},"nativeSrc":"25629:21:26","nodeType":"YulFunctionCall","src":"25629:21:26"},"nativeSrc":"25629:21:26","nodeType":"YulExpressionStatement","src":"25629:21:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25821:1:26","nodeType":"YulIdentifier","src":"25821:1:26"},{"kind":"number","nativeSrc":"25824:4:26","nodeType":"YulLiteral","src":"25824:4:26","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25817:3:26","nodeType":"YulIdentifier","src":"25817:3:26"},"nativeSrc":"25817:12:26","nodeType":"YulFunctionCall","src":"25817:12:26"},{"name":"amount","nativeSrc":"25831:6:26","nodeType":"YulIdentifier","src":"25831:6:26"}],"functionName":{"name":"mstore","nativeSrc":"25810:6:26","nodeType":"YulIdentifier","src":"25810:6:26"},"nativeSrc":"25810:28:26","nodeType":"YulFunctionCall","src":"25810:28:26"},"nativeSrc":"25810:28:26","nodeType":"YulExpressionStatement","src":"25810:28:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"25862:1:26","nodeType":"YulIdentifier","src":"25862:1:26"},{"kind":"number","nativeSrc":"25865:4:26","nodeType":"YulLiteral","src":"25865:4:26","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25858:3:26","nodeType":"YulIdentifier","src":"25858:3:26"},"nativeSrc":"25858:12:26","nodeType":"YulFunctionCall","src":"25858:12:26"},{"kind":"number","nativeSrc":"25872:14:26","nodeType":"YulLiteral","src":"25872:14:26","type":"","value":"0xffffffffffff"}],"functionName":{"name":"mstore","nativeSrc":"25851:6:26","nodeType":"YulIdentifier","src":"25851:6:26"},"nativeSrc":"25851:36:26","nodeType":"YulFunctionCall","src":"25851:36:26"},"nativeSrc":"25851:36:26","nodeType":"YulExpressionStatement","src":"25851:36:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26055:1:26","nodeType":"YulIdentifier","src":"26055:1:26"},{"kind":"number","nativeSrc":"26058:4:26","nodeType":"YulLiteral","src":"26058:4:26","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"26051:3:26","nodeType":"YulIdentifier","src":"26051:3:26"},"nativeSrc":"26051:12:26","nodeType":"YulFunctionCall","src":"26051:12:26"},{"name":"deadline","nativeSrc":"26065:8:26","nodeType":"YulIdentifier","src":"26065:8:26"}],"functionName":{"name":"mstore","nativeSrc":"26044:6:26","nodeType":"YulIdentifier","src":"26044:6:26"},"nativeSrc":"26044:30:26","nodeType":"YulFunctionCall","src":"26044:30:26"},"nativeSrc":"26044:30:26","nodeType":"YulExpressionStatement","src":"26044:30:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26098:1:26","nodeType":"YulIdentifier","src":"26098:1:26"},{"kind":"number","nativeSrc":"26101:5:26","nodeType":"YulLiteral","src":"26101:5:26","type":"","value":"0x100"}],"functionName":{"name":"add","nativeSrc":"26094:3:26","nodeType":"YulIdentifier","src":"26094:3:26"},"nativeSrc":"26094:13:26","nodeType":"YulFunctionCall","src":"26094:13:26"},{"kind":"number","nativeSrc":"26109:5:26","nodeType":"YulLiteral","src":"26109:5:26","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"26087:6:26","nodeType":"YulIdentifier","src":"26087:6:26"},"nativeSrc":"26087:28:26","nodeType":"YulFunctionCall","src":"26087:28:26"},"nativeSrc":"26087:28:26","nodeType":"YulExpressionStatement","src":"26087:28:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26162:1:26","nodeType":"YulIdentifier","src":"26162:1:26"},{"kind":"number","nativeSrc":"26165:5:26","nodeType":"YulLiteral","src":"26165:5:26","type":"","value":"0x120"}],"functionName":{"name":"add","nativeSrc":"26158:3:26","nodeType":"YulIdentifier","src":"26158:3:26"},"nativeSrc":"26158:13:26","nodeType":"YulFunctionCall","src":"26158:13:26"},{"kind":"number","nativeSrc":"26173:4:26","nodeType":"YulLiteral","src":"26173:4:26","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"26151:6:26","nodeType":"YulIdentifier","src":"26151:6:26"},"nativeSrc":"26151:27:26","nodeType":"YulFunctionCall","src":"26151:27:26"},"nativeSrc":"26151:27:26","nodeType":"YulExpressionStatement","src":"26151:27:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26225:1:26","nodeType":"YulIdentifier","src":"26225:1:26"},{"kind":"number","nativeSrc":"26228:5:26","nodeType":"YulLiteral","src":"26228:5:26","type":"","value":"0x140"}],"functionName":{"name":"add","nativeSrc":"26221:3:26","nodeType":"YulIdentifier","src":"26221:3:26"},"nativeSrc":"26221:13:26","nodeType":"YulFunctionCall","src":"26221:13:26"},{"name":"r","nativeSrc":"26236:1:26","nodeType":"YulIdentifier","src":"26236:1:26"}],"functionName":{"name":"mstore","nativeSrc":"26214:6:26","nodeType":"YulIdentifier","src":"26214:6:26"},"nativeSrc":"26214:24:26","nodeType":"YulFunctionCall","src":"26214:24:26"},"nativeSrc":"26214:24:26","nodeType":"YulExpressionStatement","src":"26214:24:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26262:1:26","nodeType":"YulIdentifier","src":"26262:1:26"},{"kind":"number","nativeSrc":"26265:5:26","nodeType":"YulLiteral","src":"26265:5:26","type":"","value":"0x160"}],"functionName":{"name":"add","nativeSrc":"26258:3:26","nodeType":"YulIdentifier","src":"26258:3:26"},"nativeSrc":"26258:13:26","nodeType":"YulFunctionCall","src":"26258:13:26"},{"name":"s","nativeSrc":"26273:1:26","nodeType":"YulIdentifier","src":"26273:1:26"}],"functionName":{"name":"mstore","nativeSrc":"26251:6:26","nodeType":"YulIdentifier","src":"26251:6:26"},"nativeSrc":"26251:24:26","nodeType":"YulFunctionCall","src":"26251:24:26"},"nativeSrc":"26251:24:26","nodeType":"YulExpressionStatement","src":"26251:24:26"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"26299:1:26","nodeType":"YulIdentifier","src":"26299:1:26"},{"kind":"number","nativeSrc":"26302:5:26","nodeType":"YulLiteral","src":"26302:5:26","type":"","value":"0x180"}],"functionName":{"name":"add","nativeSrc":"26295:3:26","nodeType":"YulIdentifier","src":"26295:3:26"},"nativeSrc":"26295:13:26","nodeType":"YulFunctionCall","src":"26295:13:26"},{"arguments":[{"kind":"number","nativeSrc":"26314:3:26","nodeType":"YulLiteral","src":"26314:3:26","type":"","value":"248"},{"name":"v","nativeSrc":"26319:1:26","nodeType":"YulIdentifier","src":"26319:1:26"}],"functionName":{"name":"shl","nativeSrc":"26310:3:26","nodeType":"YulIdentifier","src":"26310:3:26"},"nativeSrc":"26310:11:26","nodeType":"YulFunctionCall","src":"26310:11:26"}],"functionName":{"name":"mstore","nativeSrc":"26288:6:26","nodeType":"YulIdentifier","src":"26288:6:26"},"nativeSrc":"26288:34:26","nodeType":"YulFunctionCall","src":"26288:34:26"},"nativeSrc":"26288:34:26","nodeType":"YulExpressionStatement","src":"26288:34:26"},{"body":{"nativeSrc":"26403:113:26","nodeType":"YulBlock","src":"26403:113:26","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26428:4:26","nodeType":"YulLiteral","src":"26428:4:26","type":"","value":"0x00"},{"kind":"number","nativeSrc":"26434:10:26","nodeType":"YulLiteral","src":"26434:10:26","type":"","value":"0x6b836e6b"}],"functionName":{"name":"mstore","nativeSrc":"26421:6:26","nodeType":"YulIdentifier","src":"26421:6:26"},"nativeSrc":"26421:24:26","nodeType":"YulFunctionCall","src":"26421:24:26"},"nativeSrc":"26421:24:26","nodeType":"YulExpressionStatement","src":"26421:24:26"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26491:4:26","nodeType":"YulLiteral","src":"26491:4:26","type":"","value":"0x1c"},{"kind":"number","nativeSrc":"26497:4:26","nodeType":"YulLiteral","src":"26497:4:26","type":"","value":"0x04"}],"functionName":{"name":"revert","nativeSrc":"26484:6:26","nodeType":"YulIdentifier","src":"26484:6:26"},"nativeSrc":"26484:18:26","nodeType":"YulFunctionCall","src":"26484:18:26"},"nativeSrc":"26484:18:26","nodeType":"YulExpressionStatement","src":"26484:18:26"}]},"condition":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"26350:3:26","nodeType":"YulIdentifier","src":"26350:3:26"},"nativeSrc":"26350:5:26","nodeType":"YulFunctionCall","src":"26350:5:26"},{"name":"p","nativeSrc":"26357:1:26","nodeType":"YulIdentifier","src":"26357:1:26"},{"kind":"number","nativeSrc":"26360:1:26","nodeType":"YulLiteral","src":"26360:1:26","type":"","value":"0"},{"arguments":[{"name":"m","nativeSrc":"26367:1:26","nodeType":"YulIdentifier","src":"26367:1:26"},{"kind":"number","nativeSrc":"26370:4:26","nodeType":"YulLiteral","src":"26370:4:26","type":"","value":"0x1c"}],"functionName":{"name":"add","nativeSrc":"26363:3:26","nodeType":"YulIdentifier","src":"26363:3:26"},"nativeSrc":"26363:12:26","nodeType":"YulFunctionCall","src":"26363:12:26"},{"kind":"number","nativeSrc":"26377:5:26","nodeType":"YulLiteral","src":"26377:5:26","type":"","value":"0x184"},{"arguments":[],"functionName":{"name":"codesize","nativeSrc":"26384:8:26","nodeType":"YulIdentifier","src":"26384:8:26"},"nativeSrc":"26384:10:26","nodeType":"YulFunctionCall","src":"26384:10:26"},{"kind":"number","nativeSrc":"26396:4:26","nodeType":"YulLiteral","src":"26396:4:26","type":"","value":"0x00"}],"functionName":{"name":"call","nativeSrc":"26345:4:26","nodeType":"YulIdentifier","src":"26345:4:26"},"nativeSrc":"26345:56:26","nodeType":"YulFunctionCall","src":"26345:56:26"}],"functionName":{"name":"iszero","nativeSrc":"26338:6:26","nodeType":"YulIdentifier","src":"26338:6:26"},"nativeSrc":"26338:64:26","nodeType":"YulFunctionCall","src":"26338:64:26"},"nativeSrc":"26335:181:26","nodeType":"YulIf","src":"26335:181:26"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11065,"isOffset":false,"isSlot":false,"src":"25089:7:26","valueSize":1},{"declaration":11344,"isOffset":false,"isSlot":false,"src":"25114:6:26","valueSize":1},{"declaration":11344,"isOffset":false,"isSlot":false,"src":"25831:6:26","valueSize":1},{"declaration":11346,"isOffset":false,"isSlot":false,"src":"26065:8:26","valueSize":1},{"declaration":11340,"isOffset":false,"isSlot":false,"src":"24852:5:26","valueSize":1},{"declaration":11350,"isOffset":false,"isSlot":false,"src":"26236:1:26","valueSize":1},{"declaration":11352,"isOffset":false,"isSlot":false,"src":"26273:1:26","valueSize":1},{"declaration":11342,"isOffset":false,"isSlot":false,"src":"24976:7:26","valueSize":1},{"declaration":11342,"isOffset":false,"isSlot":false,"src":"25040:7:26","valueSize":1},{"declaration":11338,"isOffset":false,"isSlot":false,"src":"24914:5:26","valueSize":1},{"declaration":11348,"isOffset":false,"isSlot":false,"src":"26319:1:26","valueSize":1}],"id":11355,"nodeType":"InlineAssembly","src":"24614:1912:26"}]},"documentation":{"id":11336,"nodeType":"StructuredDocumentation","src":"24295:47:26","text":"@dev Simple permit on the Permit2 contract."},"id":11357,"implemented":true,"kind":"function","modifiers":[],"name":"simplePermit2","nameLocation":"24356:13:26","nodeType":"FunctionDefinition","parameters":{"id":11353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11338,"mutability":"mutable","name":"token","nameLocation":"24387:5:26","nodeType":"VariableDeclaration","scope":11357,"src":"24379:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11337,"name":"address","nodeType":"ElementaryTypeName","src":"24379:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11340,"mutability":"mutable","name":"owner","nameLocation":"24410:5:26","nodeType":"VariableDeclaration","scope":11357,"src":"24402:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11339,"name":"address","nodeType":"ElementaryTypeName","src":"24402:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11342,"mutability":"mutable","name":"spender","nameLocation":"24433:7:26","nodeType":"VariableDeclaration","scope":11357,"src":"24425:15:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11341,"name":"address","nodeType":"ElementaryTypeName","src":"24425:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11344,"mutability":"mutable","name":"amount","nameLocation":"24458:6:26","nodeType":"VariableDeclaration","scope":11357,"src":"24450:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11343,"name":"uint256","nodeType":"ElementaryTypeName","src":"24450:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11346,"mutability":"mutable","name":"deadline","nameLocation":"24482:8:26","nodeType":"VariableDeclaration","scope":11357,"src":"24474:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11345,"name":"uint256","nodeType":"ElementaryTypeName","src":"24474:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11348,"mutability":"mutable","name":"v","nameLocation":"24506:1:26","nodeType":"VariableDeclaration","scope":11357,"src":"24500:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11347,"name":"uint8","nodeType":"ElementaryTypeName","src":"24500:5:26","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11350,"mutability":"mutable","name":"r","nameLocation":"24525:1:26","nodeType":"VariableDeclaration","scope":11357,"src":"24517:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24517:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11352,"mutability":"mutable","name":"s","nameLocation":"24544:1:26","nodeType":"VariableDeclaration","scope":11357,"src":"24536:9:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24536:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24369:182:26"},"returnParameters":{"id":11354,"nodeType":"ParameterList","parameters":[],"src":"24561:0:26"},"scope":11358,"src":"24347:2185:26","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":11359,"src":"701:25833:26","usedErrors":[11030,11033,11036,11039,11042,11045],"usedEvents":[]}],"src":"32:26503:26"},"id":26},"@solady/utils/SignatureCheckerLib.sol":{"ast":{"absolutePath":"@solady/utils/SignatureCheckerLib.sol","exportedSymbols":{"SignatureCheckerLib":[11514]},"id":11515,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11360,"literals":["solidity","^","0.8",".4"],"nodeType":"PragmaDirective","src":"32:23:27"},{"abstract":false,"baseContracts":[],"canonicalName":"SignatureCheckerLib","contractDependencies":[],"contractKind":"library","documentation":{"id":11361,"nodeType":"StructuredDocumentation","src":"57:1381:27","text":"@notice Signature verification helper that supports both ECDSA signatures from EOAs\n and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\n @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)\n @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\n @dev Note:\n - The signature checking functions use the ecrecover precompile (0x1).\n - The `bytes memory signature` variants use the identity precompile (0x4)\n to copy memory internally.\n - Unlike ECDSA signatures, contract signatures are revocable.\n - As of Solady version 0.0.134, all `bytes signature` variants accept both\n regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.\n See: https://eips.ethereum.org/EIPS/eip-2098\n This is for calldata efficiency on smart accounts prevalent on L2s.\n WARNING! Do NOT use signatures as unique identifiers:\n - Use a nonce in the digest to prevent replay attacks on the same contract.\n - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.\n EIP-712 also enables readable signing of typed data for better user safety.\n This implementation does NOT check if a signature is non-malleable."},"fullyImplemented":true,"id":11514,"linearizedBaseContracts":[11514],"name":"SignatureCheckerLib","nameLocation":"1446:19:27","nodeType":"ContractDefinition","nodes":[{"body":{"id":11374,"nodeType":"Block","src":"2128:4006:27","statements":[{"AST":{"nativeSrc":"2190:3938:27","nodeType":"YulBlock","src":"2190:3938:27","statements":[{"body":{"nativeSrc":"2332:3786:27","nodeType":"YulBlock","src":"2332:3786:27","statements":[{"nativeSrc":"2350:20:27","nodeType":"YulVariableDeclaration","src":"2350:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"2365:4:27","nodeType":"YulLiteral","src":"2365:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"2359:5:27","nodeType":"YulIdentifier","src":"2359:5:27"},"nativeSrc":"2359:11:27","nodeType":"YulFunctionCall","src":"2359:11:27"},"variables":[{"name":"m","nativeSrc":"2354:1:27","nodeType":"YulTypedName","src":"2354:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2394:4:27","nodeType":"YulLiteral","src":"2394:4:27","type":"","value":"0x00"},{"name":"hash","nativeSrc":"2400:4:27","nodeType":"YulIdentifier","src":"2400:4:27"}],"functionName":{"name":"mstore","nativeSrc":"2387:6:27","nodeType":"YulIdentifier","src":"2387:6:27"},"nativeSrc":"2387:18:27","nodeType":"YulFunctionCall","src":"2387:18:27"},"nativeSrc":"2387:18:27","nodeType":"YulExpressionStatement","src":"2387:18:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2429:4:27","nodeType":"YulLiteral","src":"2429:4:27","type":"","value":"0x40"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2445:9:27","nodeType":"YulIdentifier","src":"2445:9:27"},{"kind":"number","nativeSrc":"2456:4:27","nodeType":"YulLiteral","src":"2456:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2441:3:27","nodeType":"YulIdentifier","src":"2441:3:27"},"nativeSrc":"2441:20:27","nodeType":"YulFunctionCall","src":"2441:20:27"}],"functionName":{"name":"mload","nativeSrc":"2435:5:27","nodeType":"YulIdentifier","src":"2435:5:27"},"nativeSrc":"2435:27:27","nodeType":"YulFunctionCall","src":"2435:27:27"}],"functionName":{"name":"mstore","nativeSrc":"2422:6:27","nodeType":"YulIdentifier","src":"2422:6:27"},"nativeSrc":"2422:41:27","nodeType":"YulFunctionCall","src":"2422:41:27"},"nativeSrc":"2422:41:27","nodeType":"YulExpressionStatement","src":"2422:41:27"},{"body":{"nativeSrc":"2516:1049:27","nodeType":"YulBlock","src":"2516:1049:27","statements":[{"nativeSrc":"2538:37:27","nodeType":"YulVariableDeclaration","src":"2538:37:27","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2558:9:27","nodeType":"YulIdentifier","src":"2558:9:27"},{"kind":"number","nativeSrc":"2569:4:27","nodeType":"YulLiteral","src":"2569:4:27","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"2554:3:27","nodeType":"YulIdentifier","src":"2554:3:27"},"nativeSrc":"2554:20:27","nodeType":"YulFunctionCall","src":"2554:20:27"}],"functionName":{"name":"mload","nativeSrc":"2548:5:27","nodeType":"YulIdentifier","src":"2548:5:27"},"nativeSrc":"2548:27:27","nodeType":"YulFunctionCall","src":"2548:27:27"},"variables":[{"name":"vs","nativeSrc":"2542:2:27","nodeType":"YulTypedName","src":"2542:2:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2603:4:27","nodeType":"YulLiteral","src":"2603:4:27","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2617:3:27","nodeType":"YulLiteral","src":"2617:3:27","type":"","value":"255"},{"name":"vs","nativeSrc":"2622:2:27","nodeType":"YulIdentifier","src":"2622:2:27"}],"functionName":{"name":"shr","nativeSrc":"2613:3:27","nodeType":"YulIdentifier","src":"2613:3:27"},"nativeSrc":"2613:12:27","nodeType":"YulFunctionCall","src":"2613:12:27"},{"kind":"number","nativeSrc":"2627:2:27","nodeType":"YulLiteral","src":"2627:2:27","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"2609:3:27","nodeType":"YulIdentifier","src":"2609:3:27"},"nativeSrc":"2609:21:27","nodeType":"YulFunctionCall","src":"2609:21:27"}],"functionName":{"name":"mstore","nativeSrc":"2596:6:27","nodeType":"YulIdentifier","src":"2596:6:27"},"nativeSrc":"2596:35:27","nodeType":"YulFunctionCall","src":"2596:35:27"},"nativeSrc":"2596:35:27","nodeType":"YulExpressionStatement","src":"2596:35:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2667:4:27","nodeType":"YulLiteral","src":"2667:4:27","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"2677:1:27","nodeType":"YulLiteral","src":"2677:1:27","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"2684:1:27","nodeType":"YulLiteral","src":"2684:1:27","type":"","value":"1"},{"name":"vs","nativeSrc":"2687:2:27","nodeType":"YulIdentifier","src":"2687:2:27"}],"functionName":{"name":"shl","nativeSrc":"2680:3:27","nodeType":"YulIdentifier","src":"2680:3:27"},"nativeSrc":"2680:10:27","nodeType":"YulFunctionCall","src":"2680:10:27"}],"functionName":{"name":"shr","nativeSrc":"2673:3:27","nodeType":"YulIdentifier","src":"2673:3:27"},"nativeSrc":"2673:18:27","nodeType":"YulFunctionCall","src":"2673:18:27"}],"functionName":{"name":"mstore","nativeSrc":"2660:6:27","nodeType":"YulIdentifier","src":"2660:6:27"},"nativeSrc":"2660:32:27","nodeType":"YulFunctionCall","src":"2660:32:27"},"nativeSrc":"2660:32:27","nodeType":"YulExpressionStatement","src":"2660:32:27"},{"nativeSrc":"2721:417:27","nodeType":"YulVariableDeclaration","src":"2721:417:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"2794:3:27","nodeType":"YulIdentifier","src":"2794:3:27"},"nativeSrc":"2794:5:27","nodeType":"YulFunctionCall","src":"2794:5:27"},{"kind":"number","nativeSrc":"2872:1:27","nodeType":"YulLiteral","src":"2872:1:27","type":"","value":"1"},{"kind":"number","nativeSrc":"2930:4:27","nodeType":"YulLiteral","src":"2930:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"2983:4:27","nodeType":"YulLiteral","src":"2983:4:27","type":"","value":"0x80"},{"kind":"number","nativeSrc":"3035:4:27","nodeType":"YulLiteral","src":"3035:4:27","type":"","value":"0x01"},{"kind":"number","nativeSrc":"3089:4:27","nodeType":"YulLiteral","src":"3089:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"2754:10:27","nodeType":"YulIdentifier","src":"2754:10:27"},"nativeSrc":"2754:384:27","nodeType":"YulFunctionCall","src":"2754:384:27"},"variables":[{"name":"t","nativeSrc":"2725:1:27","nodeType":"YulTypedName","src":"2725:1:27","type":""}]},{"body":{"nativeSrc":"3315:232:27","nodeType":"YulBlock","src":"3315:232:27","statements":[{"nativeSrc":"3341:12:27","nodeType":"YulAssignment","src":"3341:12:27","value":{"kind":"number","nativeSrc":"3352:1:27","nodeType":"YulLiteral","src":"3352:1:27","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"3341:7:27","nodeType":"YulIdentifier","src":"3341:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3385:4:27","nodeType":"YulLiteral","src":"3385:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"3391:1:27","nodeType":"YulLiteral","src":"3391:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3378:6:27","nodeType":"YulIdentifier","src":"3378:6:27"},"nativeSrc":"3378:15:27","nodeType":"YulFunctionCall","src":"3378:15:27"},"nativeSrc":"3378:15:27","nodeType":"YulExpressionStatement","src":"3378:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3451:4:27","nodeType":"YulLiteral","src":"3451:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"3457:1:27","nodeType":"YulIdentifier","src":"3457:1:27"}],"functionName":{"name":"mstore","nativeSrc":"3444:6:27","nodeType":"YulIdentifier","src":"3444:6:27"},"nativeSrc":"3444:15:27","nodeType":"YulFunctionCall","src":"3444:15:27"},"nativeSrc":"3444:15:27","nodeType":"YulExpressionStatement","src":"3444:15:27"},{"nativeSrc":"3520:5:27","nodeType":"YulBreak","src":"3520:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"3272:14:27","nodeType":"YulIdentifier","src":"3272:14:27"},"nativeSrc":"3272:16:27","nodeType":"YulFunctionCall","src":"3272:16:27"}],"functionName":{"name":"iszero","nativeSrc":"3265:6:27","nodeType":"YulIdentifier","src":"3265:6:27"},"nativeSrc":"3265:24:27","nodeType":"YulFunctionCall","src":"3265:24:27"},{"arguments":[{"name":"signer","nativeSrc":"3295:6:27","nodeType":"YulIdentifier","src":"3295:6:27"},{"arguments":[{"name":"t","nativeSrc":"3309:1:27","nodeType":"YulIdentifier","src":"3309:1:27"}],"functionName":{"name":"mload","nativeSrc":"3303:5:27","nodeType":"YulIdentifier","src":"3303:5:27"},"nativeSrc":"3303:8:27","nodeType":"YulFunctionCall","src":"3303:8:27"}],"functionName":{"name":"xor","nativeSrc":"3291:3:27","nodeType":"YulIdentifier","src":"3291:3:27"},"nativeSrc":"3291:21:27","nodeType":"YulFunctionCall","src":"3291:21:27"}],"functionName":{"name":"or","nativeSrc":"3262:2:27","nodeType":"YulIdentifier","src":"3262:2:27"},"nativeSrc":"3262:51:27","nodeType":"YulFunctionCall","src":"3262:51:27"}],"functionName":{"name":"iszero","nativeSrc":"3255:6:27","nodeType":"YulIdentifier","src":"3255:6:27"},"nativeSrc":"3255:59:27","nodeType":"YulFunctionCall","src":"3255:59:27"},"nativeSrc":"3252:295:27","nodeType":"YulIf","src":"3252:295:27"}]},"condition":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"2500:9:27","nodeType":"YulIdentifier","src":"2500:9:27"}],"functionName":{"name":"mload","nativeSrc":"2494:5:27","nodeType":"YulIdentifier","src":"2494:5:27"},"nativeSrc":"2494:16:27","nodeType":"YulFunctionCall","src":"2494:16:27"},{"kind":"number","nativeSrc":"2512:2:27","nodeType":"YulLiteral","src":"2512:2:27","type":"","value":"64"}],"functionName":{"name":"eq","nativeSrc":"2491:2:27","nodeType":"YulIdentifier","src":"2491:2:27"},"nativeSrc":"2491:24:27","nodeType":"YulFunctionCall","src":"2491:24:27"},"nativeSrc":"2488:1077:27","nodeType":"YulIf","src":"2488:1077:27"},{"body":{"nativeSrc":"3610:1015:27","nodeType":"YulBlock","src":"3610:1015:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3639:4:27","nodeType":"YulLiteral","src":"3639:4:27","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"3650:1:27","nodeType":"YulLiteral","src":"3650:1:27","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3663:9:27","nodeType":"YulIdentifier","src":"3663:9:27"},{"kind":"number","nativeSrc":"3674:4:27","nodeType":"YulLiteral","src":"3674:4:27","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"3659:3:27","nodeType":"YulIdentifier","src":"3659:3:27"},"nativeSrc":"3659:20:27","nodeType":"YulFunctionCall","src":"3659:20:27"}],"functionName":{"name":"mload","nativeSrc":"3653:5:27","nodeType":"YulIdentifier","src":"3653:5:27"},"nativeSrc":"3653:27:27","nodeType":"YulFunctionCall","src":"3653:27:27"}],"functionName":{"name":"byte","nativeSrc":"3645:4:27","nodeType":"YulIdentifier","src":"3645:4:27"},"nativeSrc":"3645:36:27","nodeType":"YulFunctionCall","src":"3645:36:27"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:27","nodeType":"YulIdentifier","src":"3632:6:27"},"nativeSrc":"3632:50:27","nodeType":"YulFunctionCall","src":"3632:50:27"},"nativeSrc":"3632:50:27","nodeType":"YulExpressionStatement","src":"3632:50:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3718:4:27","nodeType":"YulLiteral","src":"3718:4:27","type":"","value":"0x60"},{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3734:9:27","nodeType":"YulIdentifier","src":"3734:9:27"},{"kind":"number","nativeSrc":"3745:4:27","nodeType":"YulLiteral","src":"3745:4:27","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3730:3:27","nodeType":"YulIdentifier","src":"3730:3:27"},"nativeSrc":"3730:20:27","nodeType":"YulFunctionCall","src":"3730:20:27"}],"functionName":{"name":"mload","nativeSrc":"3724:5:27","nodeType":"YulIdentifier","src":"3724:5:27"},"nativeSrc":"3724:27:27","nodeType":"YulFunctionCall","src":"3724:27:27"}],"functionName":{"name":"mstore","nativeSrc":"3711:6:27","nodeType":"YulIdentifier","src":"3711:6:27"},"nativeSrc":"3711:41:27","nodeType":"YulFunctionCall","src":"3711:41:27"},"nativeSrc":"3711:41:27","nodeType":"YulExpressionStatement","src":"3711:41:27"},{"nativeSrc":"3781:417:27","nodeType":"YulVariableDeclaration","src":"3781:417:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"3854:3:27","nodeType":"YulIdentifier","src":"3854:3:27"},"nativeSrc":"3854:5:27","nodeType":"YulFunctionCall","src":"3854:5:27"},{"kind":"number","nativeSrc":"3932:1:27","nodeType":"YulLiteral","src":"3932:1:27","type":"","value":"1"},{"kind":"number","nativeSrc":"3990:4:27","nodeType":"YulLiteral","src":"3990:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4043:4:27","nodeType":"YulLiteral","src":"4043:4:27","type":"","value":"0x80"},{"kind":"number","nativeSrc":"4095:4:27","nodeType":"YulLiteral","src":"4095:4:27","type":"","value":"0x01"},{"kind":"number","nativeSrc":"4149:4:27","nodeType":"YulLiteral","src":"4149:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"3814:10:27","nodeType":"YulIdentifier","src":"3814:10:27"},"nativeSrc":"3814:384:27","nodeType":"YulFunctionCall","src":"3814:384:27"},"variables":[{"name":"t","nativeSrc":"3785:1:27","nodeType":"YulTypedName","src":"3785:1:27","type":""}]},{"body":{"nativeSrc":"4375:232:27","nodeType":"YulBlock","src":"4375:232:27","statements":[{"nativeSrc":"4401:12:27","nodeType":"YulAssignment","src":"4401:12:27","value":{"kind":"number","nativeSrc":"4412:1:27","nodeType":"YulLiteral","src":"4412:1:27","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"4401:7:27","nodeType":"YulIdentifier","src":"4401:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4445:4:27","nodeType":"YulLiteral","src":"4445:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"4451:1:27","nodeType":"YulLiteral","src":"4451:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4438:6:27","nodeType":"YulIdentifier","src":"4438:6:27"},"nativeSrc":"4438:15:27","nodeType":"YulFunctionCall","src":"4438:15:27"},"nativeSrc":"4438:15:27","nodeType":"YulExpressionStatement","src":"4438:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4511:4:27","nodeType":"YulLiteral","src":"4511:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"4517:1:27","nodeType":"YulIdentifier","src":"4517:1:27"}],"functionName":{"name":"mstore","nativeSrc":"4504:6:27","nodeType":"YulIdentifier","src":"4504:6:27"},"nativeSrc":"4504:15:27","nodeType":"YulFunctionCall","src":"4504:15:27"},"nativeSrc":"4504:15:27","nodeType":"YulExpressionStatement","src":"4504:15:27"},{"nativeSrc":"4580:5:27","nodeType":"YulBreak","src":"4580:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"4332:14:27","nodeType":"YulIdentifier","src":"4332:14:27"},"nativeSrc":"4332:16:27","nodeType":"YulFunctionCall","src":"4332:16:27"}],"functionName":{"name":"iszero","nativeSrc":"4325:6:27","nodeType":"YulIdentifier","src":"4325:6:27"},"nativeSrc":"4325:24:27","nodeType":"YulFunctionCall","src":"4325:24:27"},{"arguments":[{"name":"signer","nativeSrc":"4355:6:27","nodeType":"YulIdentifier","src":"4355:6:27"},{"arguments":[{"name":"t","nativeSrc":"4369:1:27","nodeType":"YulIdentifier","src":"4369:1:27"}],"functionName":{"name":"mload","nativeSrc":"4363:5:27","nodeType":"YulIdentifier","src":"4363:5:27"},"nativeSrc":"4363:8:27","nodeType":"YulFunctionCall","src":"4363:8:27"}],"functionName":{"name":"xor","nativeSrc":"4351:3:27","nodeType":"YulIdentifier","src":"4351:3:27"},"nativeSrc":"4351:21:27","nodeType":"YulFunctionCall","src":"4351:21:27"}],"functionName":{"name":"or","nativeSrc":"4322:2:27","nodeType":"YulIdentifier","src":"4322:2:27"},"nativeSrc":"4322:51:27","nodeType":"YulFunctionCall","src":"4322:51:27"}],"functionName":{"name":"iszero","nativeSrc":"4315:6:27","nodeType":"YulIdentifier","src":"4315:6:27"},"nativeSrc":"4315:59:27","nodeType":"YulFunctionCall","src":"4315:59:27"},"nativeSrc":"4312:295:27","nodeType":"YulIf","src":"4312:295:27"}]},"condition":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3594:9:27","nodeType":"YulIdentifier","src":"3594:9:27"}],"functionName":{"name":"mload","nativeSrc":"3588:5:27","nodeType":"YulIdentifier","src":"3588:5:27"},"nativeSrc":"3588:16:27","nodeType":"YulFunctionCall","src":"3588:16:27"},{"kind":"number","nativeSrc":"3606:2:27","nodeType":"YulLiteral","src":"3606:2:27","type":"","value":"65"}],"functionName":{"name":"eq","nativeSrc":"3585:2:27","nodeType":"YulIdentifier","src":"3585:2:27"},"nativeSrc":"3585:24:27","nodeType":"YulFunctionCall","src":"3585:24:27"},"nativeSrc":"3582:1043:27","nodeType":"YulIf","src":"3582:1043:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4649:4:27","nodeType":"YulLiteral","src":"4649:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"4655:1:27","nodeType":"YulLiteral","src":"4655:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4642:6:27","nodeType":"YulIdentifier","src":"4642:6:27"},"nativeSrc":"4642:15:27","nodeType":"YulFunctionCall","src":"4642:15:27"},"nativeSrc":"4642:15:27","nodeType":"YulExpressionStatement","src":"4642:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4707:4:27","nodeType":"YulLiteral","src":"4707:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"4713:1:27","nodeType":"YulIdentifier","src":"4713:1:27"}],"functionName":{"name":"mstore","nativeSrc":"4700:6:27","nodeType":"YulIdentifier","src":"4700:6:27"},"nativeSrc":"4700:15:27","nodeType":"YulFunctionCall","src":"4700:15:27"},"nativeSrc":"4700:15:27","nodeType":"YulExpressionStatement","src":"4700:15:27"},{"nativeSrc":"4769:29:27","nodeType":"YulVariableDeclaration","src":"4769:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"4782:3:27","nodeType":"YulLiteral","src":"4782:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"4787:10:27","nodeType":"YulLiteral","src":"4787:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"4778:3:27","nodeType":"YulIdentifier","src":"4778:3:27"},"nativeSrc":"4778:20:27","nodeType":"YulFunctionCall","src":"4778:20:27"},"variables":[{"name":"f","nativeSrc":"4773:1:27","nodeType":"YulTypedName","src":"4773:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"4822:1:27","nodeType":"YulIdentifier","src":"4822:1:27"},{"name":"f","nativeSrc":"4825:1:27","nodeType":"YulIdentifier","src":"4825:1:27"}],"functionName":{"name":"mstore","nativeSrc":"4815:6:27","nodeType":"YulIdentifier","src":"4815:6:27"},"nativeSrc":"4815:12:27","nodeType":"YulFunctionCall","src":"4815:12:27"},"nativeSrc":"4815:12:27","nodeType":"YulExpressionStatement","src":"4815:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"4914:1:27","nodeType":"YulIdentifier","src":"4914:1:27"},{"kind":"number","nativeSrc":"4917:4:27","nodeType":"YulLiteral","src":"4917:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"4910:3:27","nodeType":"YulIdentifier","src":"4910:3:27"},"nativeSrc":"4910:12:27","nodeType":"YulFunctionCall","src":"4910:12:27"},{"name":"hash","nativeSrc":"4924:4:27","nodeType":"YulIdentifier","src":"4924:4:27"}],"functionName":{"name":"mstore","nativeSrc":"4903:6:27","nodeType":"YulIdentifier","src":"4903:6:27"},"nativeSrc":"4903:26:27","nodeType":"YulFunctionCall","src":"4903:26:27"},"nativeSrc":"4903:26:27","nodeType":"YulExpressionStatement","src":"4903:26:27"},{"nativeSrc":"4946:21:27","nodeType":"YulVariableDeclaration","src":"4946:21:27","value":{"arguments":[{"name":"m","nativeSrc":"4959:1:27","nodeType":"YulIdentifier","src":"4959:1:27"},{"kind":"number","nativeSrc":"4962:4:27","nodeType":"YulLiteral","src":"4962:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"4955:3:27","nodeType":"YulIdentifier","src":"4955:3:27"},"nativeSrc":"4955:12:27","nodeType":"YulFunctionCall","src":"4955:12:27"},"variables":[{"name":"d","nativeSrc":"4950:1:27","nodeType":"YulTypedName","src":"4950:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"4991:1:27","nodeType":"YulIdentifier","src":"4991:1:27"},{"kind":"number","nativeSrc":"4994:4:27","nodeType":"YulLiteral","src":"4994:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"4984:6:27","nodeType":"YulIdentifier","src":"4984:6:27"},"nativeSrc":"4984:15:27","nodeType":"YulFunctionCall","src":"4984:15:27"},"nativeSrc":"4984:15:27","nodeType":"YulExpressionStatement","src":"4984:15:27"},{"nativeSrc":"5112:36:27","nodeType":"YulVariableDeclaration","src":"5112:36:27","value":{"arguments":[{"kind":"number","nativeSrc":"5125:4:27","nodeType":"YulLiteral","src":"5125:4:27","type":"","value":"0x20"},{"arguments":[{"name":"signature","nativeSrc":"5137:9:27","nodeType":"YulIdentifier","src":"5137:9:27"}],"functionName":{"name":"mload","nativeSrc":"5131:5:27","nodeType":"YulIdentifier","src":"5131:5:27"},"nativeSrc":"5131:16:27","nodeType":"YulFunctionCall","src":"5131:16:27"}],"functionName":{"name":"add","nativeSrc":"5121:3:27","nodeType":"YulIdentifier","src":"5121:3:27"},"nativeSrc":"5121:27:27","nodeType":"YulFunctionCall","src":"5121:27:27"},"variables":[{"name":"n","nativeSrc":"5116:1:27","nodeType":"YulTypedName","src":"5116:1:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"5180:3:27","nodeType":"YulIdentifier","src":"5180:3:27"},"nativeSrc":"5180:5:27","nodeType":"YulFunctionCall","src":"5180:5:27"},{"kind":"number","nativeSrc":"5187:1:27","nodeType":"YulLiteral","src":"5187:1:27","type":"","value":"4"},{"name":"signature","nativeSrc":"5190:9:27","nodeType":"YulIdentifier","src":"5190:9:27"},{"name":"n","nativeSrc":"5201:1:27","nodeType":"YulIdentifier","src":"5201:1:27"},{"arguments":[{"name":"m","nativeSrc":"5208:1:27","nodeType":"YulIdentifier","src":"5208:1:27"},{"kind":"number","nativeSrc":"5211:4:27","nodeType":"YulLiteral","src":"5211:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"5204:3:27","nodeType":"YulIdentifier","src":"5204:3:27"},"nativeSrc":"5204:12:27","nodeType":"YulFunctionCall","src":"5204:12:27"},{"name":"n","nativeSrc":"5218:1:27","nodeType":"YulIdentifier","src":"5218:1:27"}],"functionName":{"name":"staticcall","nativeSrc":"5169:10:27","nodeType":"YulIdentifier","src":"5169:10:27"},"nativeSrc":"5169:51:27","nodeType":"YulFunctionCall","src":"5169:51:27"}],"functionName":{"name":"pop","nativeSrc":"5165:3:27","nodeType":"YulIdentifier","src":"5165:3:27"},"nativeSrc":"5165:56:27","nodeType":"YulFunctionCall","src":"5165:56:27"},"nativeSrc":"5165:56:27","nodeType":"YulExpressionStatement","src":"5165:56:27"},{"nativeSrc":"5285:797:27","nodeType":"YulAssignment","src":"5285:797:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"5424:1:27","nodeType":"YulIdentifier","src":"5424:1:27"}],"functionName":{"name":"mload","nativeSrc":"5418:5:27","nodeType":"YulIdentifier","src":"5418:5:27"},"nativeSrc":"5418:8:27","nodeType":"YulFunctionCall","src":"5418:8:27"},{"name":"f","nativeSrc":"5428:1:27","nodeType":"YulIdentifier","src":"5428:1:27"}],"functionName":{"name":"eq","nativeSrc":"5415:2:27","nodeType":"YulIdentifier","src":"5415:2:27"},"nativeSrc":"5415:15:27","nodeType":"YulFunctionCall","src":"5415:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"5700:3:27","nodeType":"YulIdentifier","src":"5700:3:27"},"nativeSrc":"5700:5:27","nodeType":"YulFunctionCall","src":"5700:5:27"},{"name":"signer","nativeSrc":"5749:6:27","nodeType":"YulIdentifier","src":"5749:6:27"},{"name":"m","nativeSrc":"5806:1:27","nodeType":"YulIdentifier","src":"5806:1:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"5870:14:27","nodeType":"YulIdentifier","src":"5870:14:27"},"nativeSrc":"5870:16:27","nodeType":"YulFunctionCall","src":"5870:16:27"},{"kind":"number","nativeSrc":"5888:4:27","nodeType":"YulLiteral","src":"5888:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"5866:3:27","nodeType":"YulIdentifier","src":"5866:3:27"},"nativeSrc":"5866:27:27","nodeType":"YulFunctionCall","src":"5866:27:27"},{"name":"d","nativeSrc":"5952:1:27","nodeType":"YulIdentifier","src":"5952:1:27"},{"kind":"number","nativeSrc":"6004:4:27","nodeType":"YulLiteral","src":"6004:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"5664:10:27","nodeType":"YulIdentifier","src":"5664:10:27"},"nativeSrc":"5664:400:27","nodeType":"YulFunctionCall","src":"5664:400:27"}],"functionName":{"name":"and","nativeSrc":"5296:3:27","nodeType":"YulIdentifier","src":"5296:3:27"},"nativeSrc":"5296:786:27","nodeType":"YulFunctionCall","src":"5296:786:27"},"variableNames":[{"name":"isValid","nativeSrc":"5285:7:27","nodeType":"YulIdentifier","src":"5285:7:27"}]},{"nativeSrc":"6099:5:27","nodeType":"YulBreak","src":"6099:5:27"}]},"condition":{"name":"signer","nativeSrc":"2322:6:27","nodeType":"YulIdentifier","src":"2322:6:27"},"nativeSrc":"2279:3839:27","nodeType":"YulForLoop","post":{"nativeSrc":"2329:2:27","nodeType":"YulBlock","src":"2329:2:27","statements":[]},"pre":{"nativeSrc":"2283:38:27","nodeType":"YulBlock","src":"2283:38:27","statements":[{"nativeSrc":"2285:34:27","nodeType":"YulAssignment","src":"2285:34:27","value":{"arguments":[{"kind":"number","nativeSrc":"2299:2:27","nodeType":"YulLiteral","src":"2299:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"2307:2:27","nodeType":"YulLiteral","src":"2307:2:27","type":"","value":"96"},{"name":"signer","nativeSrc":"2311:6:27","nodeType":"YulIdentifier","src":"2311:6:27"}],"functionName":{"name":"shl","nativeSrc":"2303:3:27","nodeType":"YulIdentifier","src":"2303:3:27"},"nativeSrc":"2303:15:27","nodeType":"YulFunctionCall","src":"2303:15:27"}],"functionName":{"name":"shr","nativeSrc":"2295:3:27","nodeType":"YulIdentifier","src":"2295:3:27"},"nativeSrc":"2295:24:27","nodeType":"YulFunctionCall","src":"2295:24:27"},"variableNames":[{"name":"signer","nativeSrc":"2285:6:27","nodeType":"YulIdentifier","src":"2285:6:27"}]}]},"src":"2279:3839:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11366,"isOffset":false,"isSlot":false,"src":"2400:4:27","valueSize":1},{"declaration":11366,"isOffset":false,"isSlot":false,"src":"4924:4:27","valueSize":1},{"declaration":11371,"isOffset":false,"isSlot":false,"src":"3341:7:27","valueSize":1},{"declaration":11371,"isOffset":false,"isSlot":false,"src":"4401:7:27","valueSize":1},{"declaration":11371,"isOffset":false,"isSlot":false,"src":"5285:7:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"2445:9:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"2500:9:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"2558:9:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"3594:9:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"3663:9:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"3734:9:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"5137:9:27","valueSize":1},{"declaration":11368,"isOffset":false,"isSlot":false,"src":"5190:9:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"2285:6:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"2311:6:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"2322:6:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"3295:6:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"4355:6:27","valueSize":1},{"declaration":11364,"isOffset":false,"isSlot":false,"src":"5749:6:27","valueSize":1}],"id":11373,"nodeType":"InlineAssembly","src":"2181:3947:27"}]},"documentation":{"id":11362,"nodeType":"StructuredDocumentation","src":"1755:220:27","text":"@dev Returns whether `signature` is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11375,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"1989:19:27","nodeType":"FunctionDefinition","parameters":{"id":11369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11364,"mutability":"mutable","name":"signer","nameLocation":"2017:6:27","nodeType":"VariableDeclaration","scope":11375,"src":"2009:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11363,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11366,"mutability":"mutable","name":"hash","nameLocation":"2033:4:27","nodeType":"VariableDeclaration","scope":11375,"src":"2025:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2025:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11368,"mutability":"mutable","name":"signature","nameLocation":"2052:9:27","nodeType":"VariableDeclaration","scope":11375,"src":"2039:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11367,"name":"bytes","nodeType":"ElementaryTypeName","src":"2039:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2008:54:27"},"returnParameters":{"id":11372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11371,"mutability":"mutable","name":"isValid","nameLocation":"2115:7:27","nodeType":"VariableDeclaration","scope":11375,"src":"2110:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11370,"name":"bool","nodeType":"ElementaryTypeName","src":"2110:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2109:14:27"},"scope":11514,"src":"1980:4154:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11388,"nodeType":"Block","src":"6523:4055:27","statements":[{"AST":{"nativeSrc":"6585:3987:27","nodeType":"YulBlock","src":"6585:3987:27","statements":[{"body":{"nativeSrc":"6727:3835:27","nodeType":"YulBlock","src":"6727:3835:27","statements":[{"nativeSrc":"6745:20:27","nodeType":"YulVariableDeclaration","src":"6745:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"6760:4:27","nodeType":"YulLiteral","src":"6760:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6754:5:27","nodeType":"YulIdentifier","src":"6754:5:27"},"nativeSrc":"6754:11:27","nodeType":"YulFunctionCall","src":"6754:11:27"},"variables":[{"name":"m","nativeSrc":"6749:1:27","nodeType":"YulTypedName","src":"6749:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6789:4:27","nodeType":"YulLiteral","src":"6789:4:27","type":"","value":"0x00"},{"name":"hash","nativeSrc":"6795:4:27","nodeType":"YulIdentifier","src":"6795:4:27"}],"functionName":{"name":"mstore","nativeSrc":"6782:6:27","nodeType":"YulIdentifier","src":"6782:6:27"},"nativeSrc":"6782:18:27","nodeType":"YulFunctionCall","src":"6782:18:27"},"nativeSrc":"6782:18:27","nodeType":"YulExpressionStatement","src":"6782:18:27"},{"body":{"nativeSrc":"6845:1136:27","nodeType":"YulBlock","src":"6845:1136:27","statements":[{"nativeSrc":"6867:51:27","nodeType":"YulVariableDeclaration","src":"6867:51:27","value":{"arguments":[{"arguments":[{"name":"signature.offset","nativeSrc":"6894:16:27","nodeType":"YulIdentifier","src":"6894:16:27"},{"kind":"number","nativeSrc":"6912:4:27","nodeType":"YulLiteral","src":"6912:4:27","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6890:3:27","nodeType":"YulIdentifier","src":"6890:3:27"},"nativeSrc":"6890:27:27","nodeType":"YulFunctionCall","src":"6890:27:27"}],"functionName":{"name":"calldataload","nativeSrc":"6877:12:27","nodeType":"YulIdentifier","src":"6877:12:27"},"nativeSrc":"6877:41:27","nodeType":"YulFunctionCall","src":"6877:41:27"},"variables":[{"name":"vs","nativeSrc":"6871:2:27","nodeType":"YulTypedName","src":"6871:2:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6946:4:27","nodeType":"YulLiteral","src":"6946:4:27","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"6960:3:27","nodeType":"YulLiteral","src":"6960:3:27","type":"","value":"255"},{"name":"vs","nativeSrc":"6965:2:27","nodeType":"YulIdentifier","src":"6965:2:27"}],"functionName":{"name":"shr","nativeSrc":"6956:3:27","nodeType":"YulIdentifier","src":"6956:3:27"},"nativeSrc":"6956:12:27","nodeType":"YulFunctionCall","src":"6956:12:27"},{"kind":"number","nativeSrc":"6970:2:27","nodeType":"YulLiteral","src":"6970:2:27","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"6952:3:27","nodeType":"YulIdentifier","src":"6952:3:27"},"nativeSrc":"6952:21:27","nodeType":"YulFunctionCall","src":"6952:21:27"}],"functionName":{"name":"mstore","nativeSrc":"6939:6:27","nodeType":"YulIdentifier","src":"6939:6:27"},"nativeSrc":"6939:35:27","nodeType":"YulFunctionCall","src":"6939:35:27"},"nativeSrc":"6939:35:27","nodeType":"YulExpressionStatement","src":"6939:35:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7010:4:27","nodeType":"YulLiteral","src":"7010:4:27","type":"","value":"0x40"},{"arguments":[{"name":"signature.offset","nativeSrc":"7029:16:27","nodeType":"YulIdentifier","src":"7029:16:27"}],"functionName":{"name":"calldataload","nativeSrc":"7016:12:27","nodeType":"YulIdentifier","src":"7016:12:27"},"nativeSrc":"7016:30:27","nodeType":"YulFunctionCall","src":"7016:30:27"}],"functionName":{"name":"mstore","nativeSrc":"7003:6:27","nodeType":"YulIdentifier","src":"7003:6:27"},"nativeSrc":"7003:44:27","nodeType":"YulFunctionCall","src":"7003:44:27"},"nativeSrc":"7003:44:27","nodeType":"YulExpressionStatement","src":"7003:44:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7083:4:27","nodeType":"YulLiteral","src":"7083:4:27","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"7093:1:27","nodeType":"YulLiteral","src":"7093:1:27","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"7100:1:27","nodeType":"YulLiteral","src":"7100:1:27","type":"","value":"1"},{"name":"vs","nativeSrc":"7103:2:27","nodeType":"YulIdentifier","src":"7103:2:27"}],"functionName":{"name":"shl","nativeSrc":"7096:3:27","nodeType":"YulIdentifier","src":"7096:3:27"},"nativeSrc":"7096:10:27","nodeType":"YulFunctionCall","src":"7096:10:27"}],"functionName":{"name":"shr","nativeSrc":"7089:3:27","nodeType":"YulIdentifier","src":"7089:3:27"},"nativeSrc":"7089:18:27","nodeType":"YulFunctionCall","src":"7089:18:27"}],"functionName":{"name":"mstore","nativeSrc":"7076:6:27","nodeType":"YulIdentifier","src":"7076:6:27"},"nativeSrc":"7076:32:27","nodeType":"YulFunctionCall","src":"7076:32:27"},"nativeSrc":"7076:32:27","nodeType":"YulExpressionStatement","src":"7076:32:27"},{"nativeSrc":"7137:417:27","nodeType":"YulVariableDeclaration","src":"7137:417:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"7210:3:27","nodeType":"YulIdentifier","src":"7210:3:27"},"nativeSrc":"7210:5:27","nodeType":"YulFunctionCall","src":"7210:5:27"},{"kind":"number","nativeSrc":"7288:1:27","nodeType":"YulLiteral","src":"7288:1:27","type":"","value":"1"},{"kind":"number","nativeSrc":"7346:4:27","nodeType":"YulLiteral","src":"7346:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7399:4:27","nodeType":"YulLiteral","src":"7399:4:27","type":"","value":"0x80"},{"kind":"number","nativeSrc":"7451:4:27","nodeType":"YulLiteral","src":"7451:4:27","type":"","value":"0x01"},{"kind":"number","nativeSrc":"7505:4:27","nodeType":"YulLiteral","src":"7505:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"7170:10:27","nodeType":"YulIdentifier","src":"7170:10:27"},"nativeSrc":"7170:384:27","nodeType":"YulFunctionCall","src":"7170:384:27"},"variables":[{"name":"t","nativeSrc":"7141:1:27","nodeType":"YulTypedName","src":"7141:1:27","type":""}]},{"body":{"nativeSrc":"7731:232:27","nodeType":"YulBlock","src":"7731:232:27","statements":[{"nativeSrc":"7757:12:27","nodeType":"YulAssignment","src":"7757:12:27","value":{"kind":"number","nativeSrc":"7768:1:27","nodeType":"YulLiteral","src":"7768:1:27","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"7757:7:27","nodeType":"YulIdentifier","src":"7757:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7801:4:27","nodeType":"YulLiteral","src":"7801:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"7807:1:27","nodeType":"YulLiteral","src":"7807:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"7794:6:27","nodeType":"YulIdentifier","src":"7794:6:27"},"nativeSrc":"7794:15:27","nodeType":"YulFunctionCall","src":"7794:15:27"},"nativeSrc":"7794:15:27","nodeType":"YulExpressionStatement","src":"7794:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7867:4:27","nodeType":"YulLiteral","src":"7867:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"7873:1:27","nodeType":"YulIdentifier","src":"7873:1:27"}],"functionName":{"name":"mstore","nativeSrc":"7860:6:27","nodeType":"YulIdentifier","src":"7860:6:27"},"nativeSrc":"7860:15:27","nodeType":"YulFunctionCall","src":"7860:15:27"},"nativeSrc":"7860:15:27","nodeType":"YulExpressionStatement","src":"7860:15:27"},{"nativeSrc":"7936:5:27","nodeType":"YulBreak","src":"7936:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"7688:14:27","nodeType":"YulIdentifier","src":"7688:14:27"},"nativeSrc":"7688:16:27","nodeType":"YulFunctionCall","src":"7688:16:27"}],"functionName":{"name":"iszero","nativeSrc":"7681:6:27","nodeType":"YulIdentifier","src":"7681:6:27"},"nativeSrc":"7681:24:27","nodeType":"YulFunctionCall","src":"7681:24:27"},{"arguments":[{"name":"signer","nativeSrc":"7711:6:27","nodeType":"YulIdentifier","src":"7711:6:27"},{"arguments":[{"name":"t","nativeSrc":"7725:1:27","nodeType":"YulIdentifier","src":"7725:1:27"}],"functionName":{"name":"mload","nativeSrc":"7719:5:27","nodeType":"YulIdentifier","src":"7719:5:27"},"nativeSrc":"7719:8:27","nodeType":"YulFunctionCall","src":"7719:8:27"}],"functionName":{"name":"xor","nativeSrc":"7707:3:27","nodeType":"YulIdentifier","src":"7707:3:27"},"nativeSrc":"7707:21:27","nodeType":"YulFunctionCall","src":"7707:21:27"}],"functionName":{"name":"or","nativeSrc":"7678:2:27","nodeType":"YulIdentifier","src":"7678:2:27"},"nativeSrc":"7678:51:27","nodeType":"YulFunctionCall","src":"7678:51:27"}],"functionName":{"name":"iszero","nativeSrc":"7671:6:27","nodeType":"YulIdentifier","src":"7671:6:27"},"nativeSrc":"7671:59:27","nodeType":"YulFunctionCall","src":"7671:59:27"},"nativeSrc":"7668:295:27","nodeType":"YulIf","src":"7668:295:27"}]},"condition":{"arguments":[{"name":"signature.length","nativeSrc":"6823:16:27","nodeType":"YulIdentifier","src":"6823:16:27"},{"kind":"number","nativeSrc":"6841:2:27","nodeType":"YulLiteral","src":"6841:2:27","type":"","value":"64"}],"functionName":{"name":"eq","nativeSrc":"6820:2:27","nodeType":"YulIdentifier","src":"6820:2:27"},"nativeSrc":"6820:24:27","nodeType":"YulFunctionCall","src":"6820:24:27"},"nativeSrc":"6817:1164:27","nodeType":"YulIf","src":"6817:1164:27"},{"body":{"nativeSrc":"8026:1035:27","nodeType":"YulBlock","src":"8026:1035:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8055:4:27","nodeType":"YulLiteral","src":"8055:4:27","type":"","value":"0x20"},{"arguments":[{"kind":"number","nativeSrc":"8066:1:27","nodeType":"YulLiteral","src":"8066:1:27","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature.offset","nativeSrc":"8086:16:27","nodeType":"YulIdentifier","src":"8086:16:27"},{"kind":"number","nativeSrc":"8104:4:27","nodeType":"YulLiteral","src":"8104:4:27","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8082:3:27","nodeType":"YulIdentifier","src":"8082:3:27"},"nativeSrc":"8082:27:27","nodeType":"YulFunctionCall","src":"8082:27:27"}],"functionName":{"name":"calldataload","nativeSrc":"8069:12:27","nodeType":"YulIdentifier","src":"8069:12:27"},"nativeSrc":"8069:41:27","nodeType":"YulFunctionCall","src":"8069:41:27"}],"functionName":{"name":"byte","nativeSrc":"8061:4:27","nodeType":"YulIdentifier","src":"8061:4:27"},"nativeSrc":"8061:50:27","nodeType":"YulFunctionCall","src":"8061:50:27"}],"functionName":{"name":"mstore","nativeSrc":"8048:6:27","nodeType":"YulIdentifier","src":"8048:6:27"},"nativeSrc":"8048:64:27","nodeType":"YulFunctionCall","src":"8048:64:27"},"nativeSrc":"8048:64:27","nodeType":"YulExpressionStatement","src":"8048:64:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8154:4:27","nodeType":"YulLiteral","src":"8154:4:27","type":"","value":"0x40"},{"name":"signature.offset","nativeSrc":"8160:16:27","nodeType":"YulIdentifier","src":"8160:16:27"},{"kind":"number","nativeSrc":"8178:4:27","nodeType":"YulLiteral","src":"8178:4:27","type":"","value":"0x40"}],"functionName":{"name":"calldatacopy","nativeSrc":"8141:12:27","nodeType":"YulIdentifier","src":"8141:12:27"},"nativeSrc":"8141:42:27","nodeType":"YulFunctionCall","src":"8141:42:27"},"nativeSrc":"8141:42:27","nodeType":"YulExpressionStatement","src":"8141:42:27"},{"nativeSrc":"8217:417:27","nodeType":"YulVariableDeclaration","src":"8217:417:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"8290:3:27","nodeType":"YulIdentifier","src":"8290:3:27"},"nativeSrc":"8290:5:27","nodeType":"YulFunctionCall","src":"8290:5:27"},{"kind":"number","nativeSrc":"8368:1:27","nodeType":"YulLiteral","src":"8368:1:27","type":"","value":"1"},{"kind":"number","nativeSrc":"8426:4:27","nodeType":"YulLiteral","src":"8426:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8479:4:27","nodeType":"YulLiteral","src":"8479:4:27","type":"","value":"0x80"},{"kind":"number","nativeSrc":"8531:4:27","nodeType":"YulLiteral","src":"8531:4:27","type":"","value":"0x01"},{"kind":"number","nativeSrc":"8585:4:27","nodeType":"YulLiteral","src":"8585:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"8250:10:27","nodeType":"YulIdentifier","src":"8250:10:27"},"nativeSrc":"8250:384:27","nodeType":"YulFunctionCall","src":"8250:384:27"},"variables":[{"name":"t","nativeSrc":"8221:1:27","nodeType":"YulTypedName","src":"8221:1:27","type":""}]},{"body":{"nativeSrc":"8811:232:27","nodeType":"YulBlock","src":"8811:232:27","statements":[{"nativeSrc":"8837:12:27","nodeType":"YulAssignment","src":"8837:12:27","value":{"kind":"number","nativeSrc":"8848:1:27","nodeType":"YulLiteral","src":"8848:1:27","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"8837:7:27","nodeType":"YulIdentifier","src":"8837:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8881:4:27","nodeType":"YulLiteral","src":"8881:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"8887:1:27","nodeType":"YulLiteral","src":"8887:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8874:6:27","nodeType":"YulIdentifier","src":"8874:6:27"},"nativeSrc":"8874:15:27","nodeType":"YulFunctionCall","src":"8874:15:27"},"nativeSrc":"8874:15:27","nodeType":"YulExpressionStatement","src":"8874:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8947:4:27","nodeType":"YulLiteral","src":"8947:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"8953:1:27","nodeType":"YulIdentifier","src":"8953:1:27"}],"functionName":{"name":"mstore","nativeSrc":"8940:6:27","nodeType":"YulIdentifier","src":"8940:6:27"},"nativeSrc":"8940:15:27","nodeType":"YulFunctionCall","src":"8940:15:27"},"nativeSrc":"8940:15:27","nodeType":"YulExpressionStatement","src":"8940:15:27"},{"nativeSrc":"9016:5:27","nodeType":"YulBreak","src":"9016:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"8768:14:27","nodeType":"YulIdentifier","src":"8768:14:27"},"nativeSrc":"8768:16:27","nodeType":"YulFunctionCall","src":"8768:16:27"}],"functionName":{"name":"iszero","nativeSrc":"8761:6:27","nodeType":"YulIdentifier","src":"8761:6:27"},"nativeSrc":"8761:24:27","nodeType":"YulFunctionCall","src":"8761:24:27"},{"arguments":[{"name":"signer","nativeSrc":"8791:6:27","nodeType":"YulIdentifier","src":"8791:6:27"},{"arguments":[{"name":"t","nativeSrc":"8805:1:27","nodeType":"YulIdentifier","src":"8805:1:27"}],"functionName":{"name":"mload","nativeSrc":"8799:5:27","nodeType":"YulIdentifier","src":"8799:5:27"},"nativeSrc":"8799:8:27","nodeType":"YulFunctionCall","src":"8799:8:27"}],"functionName":{"name":"xor","nativeSrc":"8787:3:27","nodeType":"YulIdentifier","src":"8787:3:27"},"nativeSrc":"8787:21:27","nodeType":"YulFunctionCall","src":"8787:21:27"}],"functionName":{"name":"or","nativeSrc":"8758:2:27","nodeType":"YulIdentifier","src":"8758:2:27"},"nativeSrc":"8758:51:27","nodeType":"YulFunctionCall","src":"8758:51:27"}],"functionName":{"name":"iszero","nativeSrc":"8751:6:27","nodeType":"YulIdentifier","src":"8751:6:27"},"nativeSrc":"8751:59:27","nodeType":"YulFunctionCall","src":"8751:59:27"},"nativeSrc":"8748:295:27","nodeType":"YulIf","src":"8748:295:27"}]},"condition":{"arguments":[{"name":"signature.length","nativeSrc":"8004:16:27","nodeType":"YulIdentifier","src":"8004:16:27"},{"kind":"number","nativeSrc":"8022:2:27","nodeType":"YulLiteral","src":"8022:2:27","type":"","value":"65"}],"functionName":{"name":"eq","nativeSrc":"8001:2:27","nodeType":"YulIdentifier","src":"8001:2:27"},"nativeSrc":"8001:24:27","nodeType":"YulFunctionCall","src":"8001:24:27"},"nativeSrc":"7998:1063:27","nodeType":"YulIf","src":"7998:1063:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9085:4:27","nodeType":"YulLiteral","src":"9085:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"9091:1:27","nodeType":"YulLiteral","src":"9091:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9078:6:27","nodeType":"YulIdentifier","src":"9078:6:27"},"nativeSrc":"9078:15:27","nodeType":"YulFunctionCall","src":"9078:15:27"},"nativeSrc":"9078:15:27","nodeType":"YulExpressionStatement","src":"9078:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9143:4:27","nodeType":"YulLiteral","src":"9143:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"9149:1:27","nodeType":"YulIdentifier","src":"9149:1:27"}],"functionName":{"name":"mstore","nativeSrc":"9136:6:27","nodeType":"YulIdentifier","src":"9136:6:27"},"nativeSrc":"9136:15:27","nodeType":"YulFunctionCall","src":"9136:15:27"},"nativeSrc":"9136:15:27","nodeType":"YulExpressionStatement","src":"9136:15:27"},{"nativeSrc":"9205:29:27","nodeType":"YulVariableDeclaration","src":"9205:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"9218:3:27","nodeType":"YulLiteral","src":"9218:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"9223:10:27","nodeType":"YulLiteral","src":"9223:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"9214:3:27","nodeType":"YulIdentifier","src":"9214:3:27"},"nativeSrc":"9214:20:27","nodeType":"YulFunctionCall","src":"9214:20:27"},"variables":[{"name":"f","nativeSrc":"9209:1:27","nodeType":"YulTypedName","src":"9209:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"9258:1:27","nodeType":"YulIdentifier","src":"9258:1:27"},{"name":"f","nativeSrc":"9261:1:27","nodeType":"YulIdentifier","src":"9261:1:27"}],"functionName":{"name":"mstore","nativeSrc":"9251:6:27","nodeType":"YulIdentifier","src":"9251:6:27"},"nativeSrc":"9251:12:27","nodeType":"YulFunctionCall","src":"9251:12:27"},"nativeSrc":"9251:12:27","nodeType":"YulExpressionStatement","src":"9251:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9350:1:27","nodeType":"YulIdentifier","src":"9350:1:27"},{"kind":"number","nativeSrc":"9353:4:27","nodeType":"YulLiteral","src":"9353:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"9346:3:27","nodeType":"YulIdentifier","src":"9346:3:27"},"nativeSrc":"9346:12:27","nodeType":"YulFunctionCall","src":"9346:12:27"},{"name":"hash","nativeSrc":"9360:4:27","nodeType":"YulIdentifier","src":"9360:4:27"}],"functionName":{"name":"mstore","nativeSrc":"9339:6:27","nodeType":"YulIdentifier","src":"9339:6:27"},"nativeSrc":"9339:26:27","nodeType":"YulFunctionCall","src":"9339:26:27"},"nativeSrc":"9339:26:27","nodeType":"YulExpressionStatement","src":"9339:26:27"},{"nativeSrc":"9382:21:27","nodeType":"YulVariableDeclaration","src":"9382:21:27","value":{"arguments":[{"name":"m","nativeSrc":"9395:1:27","nodeType":"YulIdentifier","src":"9395:1:27"},{"kind":"number","nativeSrc":"9398:4:27","nodeType":"YulLiteral","src":"9398:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"9391:3:27","nodeType":"YulIdentifier","src":"9391:3:27"},"nativeSrc":"9391:12:27","nodeType":"YulFunctionCall","src":"9391:12:27"},"variables":[{"name":"d","nativeSrc":"9386:1:27","nodeType":"YulTypedName","src":"9386:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"9427:1:27","nodeType":"YulIdentifier","src":"9427:1:27"},{"kind":"number","nativeSrc":"9430:4:27","nodeType":"YulLiteral","src":"9430:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"9420:6:27","nodeType":"YulIdentifier","src":"9420:6:27"},"nativeSrc":"9420:15:27","nodeType":"YulFunctionCall","src":"9420:15:27"},"nativeSrc":"9420:15:27","nodeType":"YulExpressionStatement","src":"9420:15:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9513:1:27","nodeType":"YulIdentifier","src":"9513:1:27"},{"kind":"number","nativeSrc":"9516:4:27","nodeType":"YulLiteral","src":"9516:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"9509:3:27","nodeType":"YulIdentifier","src":"9509:3:27"},"nativeSrc":"9509:12:27","nodeType":"YulFunctionCall","src":"9509:12:27"},{"name":"signature.length","nativeSrc":"9523:16:27","nodeType":"YulIdentifier","src":"9523:16:27"}],"functionName":{"name":"mstore","nativeSrc":"9502:6:27","nodeType":"YulIdentifier","src":"9502:6:27"},"nativeSrc":"9502:38:27","nodeType":"YulFunctionCall","src":"9502:38:27"},"nativeSrc":"9502:38:27","nodeType":"YulExpressionStatement","src":"9502:38:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"9620:1:27","nodeType":"YulIdentifier","src":"9620:1:27"},{"kind":"number","nativeSrc":"9623:4:27","nodeType":"YulLiteral","src":"9623:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"9616:3:27","nodeType":"YulIdentifier","src":"9616:3:27"},"nativeSrc":"9616:12:27","nodeType":"YulFunctionCall","src":"9616:12:27"},{"name":"signature.offset","nativeSrc":"9630:16:27","nodeType":"YulIdentifier","src":"9630:16:27"},{"name":"signature.length","nativeSrc":"9648:16:27","nodeType":"YulIdentifier","src":"9648:16:27"}],"functionName":{"name":"calldatacopy","nativeSrc":"9603:12:27","nodeType":"YulIdentifier","src":"9603:12:27"},"nativeSrc":"9603:62:27","nodeType":"YulFunctionCall","src":"9603:62:27"},"nativeSrc":"9603:62:27","nodeType":"YulExpressionStatement","src":"9603:62:27"},{"nativeSrc":"9729:797:27","nodeType":"YulAssignment","src":"9729:797:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"9868:1:27","nodeType":"YulIdentifier","src":"9868:1:27"}],"functionName":{"name":"mload","nativeSrc":"9862:5:27","nodeType":"YulIdentifier","src":"9862:5:27"},"nativeSrc":"9862:8:27","nodeType":"YulFunctionCall","src":"9862:8:27"},{"name":"f","nativeSrc":"9872:1:27","nodeType":"YulIdentifier","src":"9872:1:27"}],"functionName":{"name":"eq","nativeSrc":"9859:2:27","nodeType":"YulIdentifier","src":"9859:2:27"},"nativeSrc":"9859:15:27","nodeType":"YulFunctionCall","src":"9859:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"10144:3:27","nodeType":"YulIdentifier","src":"10144:3:27"},"nativeSrc":"10144:5:27","nodeType":"YulFunctionCall","src":"10144:5:27"},{"name":"signer","nativeSrc":"10193:6:27","nodeType":"YulIdentifier","src":"10193:6:27"},{"name":"m","nativeSrc":"10250:1:27","nodeType":"YulIdentifier","src":"10250:1:27"},{"arguments":[{"name":"signature.length","nativeSrc":"10314:16:27","nodeType":"YulIdentifier","src":"10314:16:27"},{"kind":"number","nativeSrc":"10332:4:27","nodeType":"YulLiteral","src":"10332:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"10310:3:27","nodeType":"YulIdentifier","src":"10310:3:27"},"nativeSrc":"10310:27:27","nodeType":"YulFunctionCall","src":"10310:27:27"},{"name":"d","nativeSrc":"10396:1:27","nodeType":"YulIdentifier","src":"10396:1:27"},{"kind":"number","nativeSrc":"10448:4:27","nodeType":"YulLiteral","src":"10448:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"10108:10:27","nodeType":"YulIdentifier","src":"10108:10:27"},"nativeSrc":"10108:400:27","nodeType":"YulFunctionCall","src":"10108:400:27"}],"functionName":{"name":"and","nativeSrc":"9740:3:27","nodeType":"YulIdentifier","src":"9740:3:27"},"nativeSrc":"9740:786:27","nodeType":"YulFunctionCall","src":"9740:786:27"},"variableNames":[{"name":"isValid","nativeSrc":"9729:7:27","nodeType":"YulIdentifier","src":"9729:7:27"}]},{"nativeSrc":"10543:5:27","nodeType":"YulBreak","src":"10543:5:27"}]},"condition":{"name":"signer","nativeSrc":"6717:6:27","nodeType":"YulIdentifier","src":"6717:6:27"},"nativeSrc":"6674:3888:27","nodeType":"YulForLoop","post":{"nativeSrc":"6724:2:27","nodeType":"YulBlock","src":"6724:2:27","statements":[]},"pre":{"nativeSrc":"6678:38:27","nodeType":"YulBlock","src":"6678:38:27","statements":[{"nativeSrc":"6680:34:27","nodeType":"YulAssignment","src":"6680:34:27","value":{"arguments":[{"kind":"number","nativeSrc":"6694:2:27","nodeType":"YulLiteral","src":"6694:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"6702:2:27","nodeType":"YulLiteral","src":"6702:2:27","type":"","value":"96"},{"name":"signer","nativeSrc":"6706:6:27","nodeType":"YulIdentifier","src":"6706:6:27"}],"functionName":{"name":"shl","nativeSrc":"6698:3:27","nodeType":"YulIdentifier","src":"6698:3:27"},"nativeSrc":"6698:15:27","nodeType":"YulFunctionCall","src":"6698:15:27"}],"functionName":{"name":"shr","nativeSrc":"6690:3:27","nodeType":"YulIdentifier","src":"6690:3:27"},"nativeSrc":"6690:24:27","nodeType":"YulFunctionCall","src":"6690:24:27"},"variableNames":[{"name":"signer","nativeSrc":"6680:6:27","nodeType":"YulIdentifier","src":"6680:6:27"}]}]},"src":"6674:3888:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11380,"isOffset":false,"isSlot":false,"src":"6795:4:27","valueSize":1},{"declaration":11380,"isOffset":false,"isSlot":false,"src":"9360:4:27","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"7757:7:27","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"8837:7:27","valueSize":1},{"declaration":11385,"isOffset":false,"isSlot":false,"src":"9729:7:27","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"10314:16:27","suffix":"length","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"6823:16:27","suffix":"length","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"8004:16:27","suffix":"length","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"9523:16:27","suffix":"length","valueSize":1},{"declaration":11382,"isOffset":false,"isSlot":false,"src":"9648:16:27","suffix":"length","valueSize":1},{"declaration":11382,"isOffset":true,"isSlot":false,"src":"6894:16:27","suffix":"offset","valueSize":1},{"declaration":11382,"isOffset":true,"isSlot":false,"src":"7029:16:27","suffix":"offset","valueSize":1},{"declaration":11382,"isOffset":true,"isSlot":false,"src":"8086:16:27","suffix":"offset","valueSize":1},{"declaration":11382,"isOffset":true,"isSlot":false,"src":"8160:16:27","suffix":"offset","valueSize":1},{"declaration":11382,"isOffset":true,"isSlot":false,"src":"9630:16:27","suffix":"offset","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"10193:6:27","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"6680:6:27","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"6706:6:27","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"6717:6:27","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"7711:6:27","valueSize":1},{"declaration":11378,"isOffset":false,"isSlot":false,"src":"8791:6:27","valueSize":1}],"id":11387,"nodeType":"InlineAssembly","src":"6576:3996:27"}]},"documentation":{"id":11376,"nodeType":"StructuredDocumentation","src":"6140:220:27","text":"@dev Returns whether `signature` is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11389,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNowCalldata","nameLocation":"6374:27:27","nodeType":"FunctionDefinition","parameters":{"id":11383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11378,"mutability":"mutable","name":"signer","nameLocation":"6410:6:27","nodeType":"VariableDeclaration","scope":11389,"src":"6402:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11377,"name":"address","nodeType":"ElementaryTypeName","src":"6402:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11380,"mutability":"mutable","name":"hash","nameLocation":"6426:4:27","nodeType":"VariableDeclaration","scope":11389,"src":"6418:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6418:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11382,"mutability":"mutable","name":"signature","nameLocation":"6447:9:27","nodeType":"VariableDeclaration","scope":11389,"src":"6432:24:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11381,"name":"bytes","nodeType":"ElementaryTypeName","src":"6432:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6401:56:27"},"returnParameters":{"id":11386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11385,"mutability":"mutable","name":"isValid","nameLocation":"6510:7:27","nodeType":"VariableDeclaration","scope":11389,"src":"6505:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11384,"name":"bool","nodeType":"ElementaryTypeName","src":"6505:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6504:14:27"},"scope":11514,"src":"6365:4213:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11404,"nodeType":"Block","src":"10970:2765:27","statements":[{"AST":{"nativeSrc":"11032:2697:27","nodeType":"YulBlock","src":"11032:2697:27","statements":[{"body":{"nativeSrc":"11174:2545:27","nodeType":"YulBlock","src":"11174:2545:27","statements":[{"nativeSrc":"11192:20:27","nodeType":"YulVariableDeclaration","src":"11192:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"11207:4:27","nodeType":"YulLiteral","src":"11207:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11201:5:27","nodeType":"YulIdentifier","src":"11201:5:27"},"nativeSrc":"11201:11:27","nodeType":"YulFunctionCall","src":"11201:11:27"},"variables":[{"name":"m","nativeSrc":"11196:1:27","nodeType":"YulTypedName","src":"11196:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11236:4:27","nodeType":"YulLiteral","src":"11236:4:27","type":"","value":"0x00"},{"name":"hash","nativeSrc":"11242:4:27","nodeType":"YulIdentifier","src":"11242:4:27"}],"functionName":{"name":"mstore","nativeSrc":"11229:6:27","nodeType":"YulIdentifier","src":"11229:6:27"},"nativeSrc":"11229:18:27","nodeType":"YulFunctionCall","src":"11229:18:27"},"nativeSrc":"11229:18:27","nodeType":"YulExpressionStatement","src":"11229:18:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11271:4:27","nodeType":"YulLiteral","src":"11271:4:27","type":"","value":"0x20"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"11285:3:27","nodeType":"YulLiteral","src":"11285:3:27","type":"","value":"255"},{"name":"vs","nativeSrc":"11290:2:27","nodeType":"YulIdentifier","src":"11290:2:27"}],"functionName":{"name":"shr","nativeSrc":"11281:3:27","nodeType":"YulIdentifier","src":"11281:3:27"},"nativeSrc":"11281:12:27","nodeType":"YulFunctionCall","src":"11281:12:27"},{"kind":"number","nativeSrc":"11295:2:27","nodeType":"YulLiteral","src":"11295:2:27","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"11277:3:27","nodeType":"YulIdentifier","src":"11277:3:27"},"nativeSrc":"11277:21:27","nodeType":"YulFunctionCall","src":"11277:21:27"}],"functionName":{"name":"mstore","nativeSrc":"11264:6:27","nodeType":"YulIdentifier","src":"11264:6:27"},"nativeSrc":"11264:35:27","nodeType":"YulFunctionCall","src":"11264:35:27"},"nativeSrc":"11264:35:27","nodeType":"YulExpressionStatement","src":"11264:35:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11331:4:27","nodeType":"YulLiteral","src":"11331:4:27","type":"","value":"0x40"},{"name":"r","nativeSrc":"11337:1:27","nodeType":"YulIdentifier","src":"11337:1:27"}],"functionName":{"name":"mstore","nativeSrc":"11324:6:27","nodeType":"YulIdentifier","src":"11324:6:27"},"nativeSrc":"11324:15:27","nodeType":"YulFunctionCall","src":"11324:15:27"},"nativeSrc":"11324:15:27","nodeType":"YulExpressionStatement","src":"11324:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11371:4:27","nodeType":"YulLiteral","src":"11371:4:27","type":"","value":"0x60"},{"arguments":[{"kind":"number","nativeSrc":"11381:1:27","nodeType":"YulLiteral","src":"11381:1:27","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"11388:1:27","nodeType":"YulLiteral","src":"11388:1:27","type":"","value":"1"},{"name":"vs","nativeSrc":"11391:2:27","nodeType":"YulIdentifier","src":"11391:2:27"}],"functionName":{"name":"shl","nativeSrc":"11384:3:27","nodeType":"YulIdentifier","src":"11384:3:27"},"nativeSrc":"11384:10:27","nodeType":"YulFunctionCall","src":"11384:10:27"}],"functionName":{"name":"shr","nativeSrc":"11377:3:27","nodeType":"YulIdentifier","src":"11377:3:27"},"nativeSrc":"11377:18:27","nodeType":"YulFunctionCall","src":"11377:18:27"}],"functionName":{"name":"mstore","nativeSrc":"11364:6:27","nodeType":"YulIdentifier","src":"11364:6:27"},"nativeSrc":"11364:32:27","nodeType":"YulFunctionCall","src":"11364:32:27"},"nativeSrc":"11364:32:27","nodeType":"YulExpressionStatement","src":"11364:32:27"},{"nativeSrc":"11421:385:27","nodeType":"YulVariableDeclaration","src":"11421:385:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"11486:3:27","nodeType":"YulIdentifier","src":"11486:3:27"},"nativeSrc":"11486:5:27","nodeType":"YulFunctionCall","src":"11486:5:27"},{"kind":"number","nativeSrc":"11560:1:27","nodeType":"YulLiteral","src":"11560:1:27","type":"","value":"1"},{"kind":"number","nativeSrc":"11614:4:27","nodeType":"YulLiteral","src":"11614:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11663:4:27","nodeType":"YulLiteral","src":"11663:4:27","type":"","value":"0x80"},{"kind":"number","nativeSrc":"11711:4:27","nodeType":"YulLiteral","src":"11711:4:27","type":"","value":"0x01"},{"kind":"number","nativeSrc":"11761:4:27","nodeType":"YulLiteral","src":"11761:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"11450:10:27","nodeType":"YulIdentifier","src":"11450:10:27"},"nativeSrc":"11450:356:27","nodeType":"YulFunctionCall","src":"11450:356:27"},"variables":[{"name":"t","nativeSrc":"11425:1:27","nodeType":"YulTypedName","src":"11425:1:27","type":""}]},{"body":{"nativeSrc":"11975:212:27","nodeType":"YulBlock","src":"11975:212:27","statements":[{"nativeSrc":"11997:12:27","nodeType":"YulAssignment","src":"11997:12:27","value":{"kind":"number","nativeSrc":"12008:1:27","nodeType":"YulLiteral","src":"12008:1:27","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"11997:7:27","nodeType":"YulIdentifier","src":"11997:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12037:4:27","nodeType":"YulLiteral","src":"12037:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"12043:1:27","nodeType":"YulLiteral","src":"12043:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"12030:6:27","nodeType":"YulIdentifier","src":"12030:6:27"},"nativeSrc":"12030:15:27","nodeType":"YulFunctionCall","src":"12030:15:27"},"nativeSrc":"12030:15:27","nodeType":"YulExpressionStatement","src":"12030:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12099:4:27","nodeType":"YulLiteral","src":"12099:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"12105:1:27","nodeType":"YulIdentifier","src":"12105:1:27"}],"functionName":{"name":"mstore","nativeSrc":"12092:6:27","nodeType":"YulIdentifier","src":"12092:6:27"},"nativeSrc":"12092:15:27","nodeType":"YulFunctionCall","src":"12092:15:27"},"nativeSrc":"12092:15:27","nodeType":"YulExpressionStatement","src":"12092:15:27"},{"nativeSrc":"12164:5:27","nodeType":"YulBreak","src":"12164:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"11932:14:27","nodeType":"YulIdentifier","src":"11932:14:27"},"nativeSrc":"11932:16:27","nodeType":"YulFunctionCall","src":"11932:16:27"}],"functionName":{"name":"iszero","nativeSrc":"11925:6:27","nodeType":"YulIdentifier","src":"11925:6:27"},"nativeSrc":"11925:24:27","nodeType":"YulFunctionCall","src":"11925:24:27"},{"arguments":[{"name":"signer","nativeSrc":"11955:6:27","nodeType":"YulIdentifier","src":"11955:6:27"},{"arguments":[{"name":"t","nativeSrc":"11969:1:27","nodeType":"YulIdentifier","src":"11969:1:27"}],"functionName":{"name":"mload","nativeSrc":"11963:5:27","nodeType":"YulIdentifier","src":"11963:5:27"},"nativeSrc":"11963:8:27","nodeType":"YulFunctionCall","src":"11963:8:27"}],"functionName":{"name":"xor","nativeSrc":"11951:3:27","nodeType":"YulIdentifier","src":"11951:3:27"},"nativeSrc":"11951:21:27","nodeType":"YulFunctionCall","src":"11951:21:27"}],"functionName":{"name":"or","nativeSrc":"11922:2:27","nodeType":"YulIdentifier","src":"11922:2:27"},"nativeSrc":"11922:51:27","nodeType":"YulFunctionCall","src":"11922:51:27"}],"functionName":{"name":"iszero","nativeSrc":"11915:6:27","nodeType":"YulIdentifier","src":"11915:6:27"},"nativeSrc":"11915:59:27","nodeType":"YulFunctionCall","src":"11915:59:27"},"nativeSrc":"11912:275:27","nodeType":"YulIf","src":"11912:275:27"},{"nativeSrc":"12205:29:27","nodeType":"YulVariableDeclaration","src":"12205:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"12218:3:27","nodeType":"YulLiteral","src":"12218:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"12223:10:27","nodeType":"YulLiteral","src":"12223:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"12214:3:27","nodeType":"YulIdentifier","src":"12214:3:27"},"nativeSrc":"12214:20:27","nodeType":"YulFunctionCall","src":"12214:20:27"},"variables":[{"name":"f","nativeSrc":"12209:1:27","nodeType":"YulTypedName","src":"12209:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"12258:1:27","nodeType":"YulIdentifier","src":"12258:1:27"},{"name":"f","nativeSrc":"12261:1:27","nodeType":"YulIdentifier","src":"12261:1:27"}],"functionName":{"name":"mstore","nativeSrc":"12251:6:27","nodeType":"YulIdentifier","src":"12251:6:27"},"nativeSrc":"12251:12:27","nodeType":"YulFunctionCall","src":"12251:12:27"},"nativeSrc":"12251:12:27","nodeType":"YulExpressionStatement","src":"12251:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12350:1:27","nodeType":"YulIdentifier","src":"12350:1:27"},{"kind":"number","nativeSrc":"12353:4:27","nodeType":"YulLiteral","src":"12353:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"12346:3:27","nodeType":"YulIdentifier","src":"12346:3:27"},"nativeSrc":"12346:12:27","nodeType":"YulFunctionCall","src":"12346:12:27"},{"name":"hash","nativeSrc":"12360:4:27","nodeType":"YulIdentifier","src":"12360:4:27"}],"functionName":{"name":"mstore","nativeSrc":"12339:6:27","nodeType":"YulIdentifier","src":"12339:6:27"},"nativeSrc":"12339:26:27","nodeType":"YulFunctionCall","src":"12339:26:27"},"nativeSrc":"12339:26:27","nodeType":"YulExpressionStatement","src":"12339:26:27"},{"nativeSrc":"12382:21:27","nodeType":"YulVariableDeclaration","src":"12382:21:27","value":{"arguments":[{"name":"m","nativeSrc":"12395:1:27","nodeType":"YulIdentifier","src":"12395:1:27"},{"kind":"number","nativeSrc":"12398:4:27","nodeType":"YulLiteral","src":"12398:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"12391:3:27","nodeType":"YulIdentifier","src":"12391:3:27"},"nativeSrc":"12391:12:27","nodeType":"YulFunctionCall","src":"12391:12:27"},"variables":[{"name":"d","nativeSrc":"12386:1:27","nodeType":"YulTypedName","src":"12386:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"12427:1:27","nodeType":"YulIdentifier","src":"12427:1:27"},{"kind":"number","nativeSrc":"12430:4:27","nodeType":"YulLiteral","src":"12430:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"12420:6:27","nodeType":"YulIdentifier","src":"12420:6:27"},"nativeSrc":"12420:15:27","nodeType":"YulFunctionCall","src":"12420:15:27"},"nativeSrc":"12420:15:27","nodeType":"YulExpressionStatement","src":"12420:15:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12513:1:27","nodeType":"YulIdentifier","src":"12513:1:27"},{"kind":"number","nativeSrc":"12516:4:27","nodeType":"YulLiteral","src":"12516:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"12509:3:27","nodeType":"YulIdentifier","src":"12509:3:27"},"nativeSrc":"12509:12:27","nodeType":"YulFunctionCall","src":"12509:12:27"},{"kind":"number","nativeSrc":"12523:2:27","nodeType":"YulLiteral","src":"12523:2:27","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"12502:6:27","nodeType":"YulIdentifier","src":"12502:6:27"},"nativeSrc":"12502:24:27","nodeType":"YulFunctionCall","src":"12502:24:27"},"nativeSrc":"12502:24:27","nodeType":"YulExpressionStatement","src":"12502:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12582:1:27","nodeType":"YulIdentifier","src":"12582:1:27"},{"kind":"number","nativeSrc":"12585:4:27","nodeType":"YulLiteral","src":"12585:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"12578:3:27","nodeType":"YulIdentifier","src":"12578:3:27"},"nativeSrc":"12578:12:27","nodeType":"YulFunctionCall","src":"12578:12:27"},{"name":"r","nativeSrc":"12592:1:27","nodeType":"YulIdentifier","src":"12592:1:27"}],"functionName":{"name":"mstore","nativeSrc":"12571:6:27","nodeType":"YulIdentifier","src":"12571:6:27"},"nativeSrc":"12571:23:27","nodeType":"YulFunctionCall","src":"12571:23:27"},"nativeSrc":"12571:23:27","nodeType":"YulExpressionStatement","src":"12571:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12630:1:27","nodeType":"YulIdentifier","src":"12630:1:27"},{"kind":"number","nativeSrc":"12633:4:27","nodeType":"YulLiteral","src":"12633:4:27","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"12626:3:27","nodeType":"YulIdentifier","src":"12626:3:27"},"nativeSrc":"12626:12:27","nodeType":"YulFunctionCall","src":"12626:12:27"},{"arguments":[{"kind":"number","nativeSrc":"12646:4:27","nodeType":"YulLiteral","src":"12646:4:27","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"12640:5:27","nodeType":"YulIdentifier","src":"12640:5:27"},"nativeSrc":"12640:11:27","nodeType":"YulFunctionCall","src":"12640:11:27"}],"functionName":{"name":"mstore","nativeSrc":"12619:6:27","nodeType":"YulIdentifier","src":"12619:6:27"},"nativeSrc":"12619:33:27","nodeType":"YulFunctionCall","src":"12619:33:27"},"nativeSrc":"12619:33:27","nodeType":"YulExpressionStatement","src":"12619:33:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"12689:1:27","nodeType":"YulIdentifier","src":"12689:1:27"},{"kind":"number","nativeSrc":"12692:4:27","nodeType":"YulLiteral","src":"12692:4:27","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"12685:3:27","nodeType":"YulIdentifier","src":"12685:3:27"},"nativeSrc":"12685:12:27","nodeType":"YulFunctionCall","src":"12685:12:27"},{"arguments":[{"kind":"number","nativeSrc":"12705:4:27","nodeType":"YulLiteral","src":"12705:4:27","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"12699:5:27","nodeType":"YulIdentifier","src":"12699:5:27"},"nativeSrc":"12699:11:27","nodeType":"YulFunctionCall","src":"12699:11:27"}],"functionName":{"name":"mstore8","nativeSrc":"12677:7:27","nodeType":"YulIdentifier","src":"12677:7:27"},"nativeSrc":"12677:34:27","nodeType":"YulFunctionCall","src":"12677:34:27"},"nativeSrc":"12677:34:27","nodeType":"YulExpressionStatement","src":"12677:34:27"},{"nativeSrc":"12783:774:27","nodeType":"YulAssignment","src":"12783:774:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"12922:1:27","nodeType":"YulIdentifier","src":"12922:1:27"}],"functionName":{"name":"mload","nativeSrc":"12916:5:27","nodeType":"YulIdentifier","src":"12916:5:27"},"nativeSrc":"12916:8:27","nodeType":"YulFunctionCall","src":"12916:8:27"},{"name":"f","nativeSrc":"12926:1:27","nodeType":"YulIdentifier","src":"12926:1:27"}],"functionName":{"name":"eq","nativeSrc":"12913:2:27","nodeType":"YulIdentifier","src":"12913:2:27"},"nativeSrc":"12913:15:27","nodeType":"YulFunctionCall","src":"12913:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"13198:3:27","nodeType":"YulIdentifier","src":"13198:3:27"},"nativeSrc":"13198:5:27","nodeType":"YulFunctionCall","src":"13198:5:27"},{"name":"signer","nativeSrc":"13247:6:27","nodeType":"YulIdentifier","src":"13247:6:27"},{"name":"m","nativeSrc":"13304:1:27","nodeType":"YulIdentifier","src":"13304:1:27"},{"kind":"number","nativeSrc":"13364:4:27","nodeType":"YulLiteral","src":"13364:4:27","type":"","value":"0xa5"},{"name":"d","nativeSrc":"13427:1:27","nodeType":"YulIdentifier","src":"13427:1:27"},{"kind":"number","nativeSrc":"13479:4:27","nodeType":"YulLiteral","src":"13479:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"13162:10:27","nodeType":"YulIdentifier","src":"13162:10:27"},"nativeSrc":"13162:377:27","nodeType":"YulFunctionCall","src":"13162:377:27"}],"functionName":{"name":"and","nativeSrc":"12794:3:27","nodeType":"YulIdentifier","src":"12794:3:27"},"nativeSrc":"12794:763:27","nodeType":"YulFunctionCall","src":"12794:763:27"},"variableNames":[{"name":"isValid","nativeSrc":"12783:7:27","nodeType":"YulIdentifier","src":"12783:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13581:4:27","nodeType":"YulLiteral","src":"13581:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"13587:1:27","nodeType":"YulLiteral","src":"13587:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13574:6:27","nodeType":"YulIdentifier","src":"13574:6:27"},"nativeSrc":"13574:15:27","nodeType":"YulFunctionCall","src":"13574:15:27"},"nativeSrc":"13574:15:27","nodeType":"YulExpressionStatement","src":"13574:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13639:4:27","nodeType":"YulLiteral","src":"13639:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"13645:1:27","nodeType":"YulIdentifier","src":"13645:1:27"}],"functionName":{"name":"mstore","nativeSrc":"13632:6:27","nodeType":"YulIdentifier","src":"13632:6:27"},"nativeSrc":"13632:15:27","nodeType":"YulFunctionCall","src":"13632:15:27"},"nativeSrc":"13632:15:27","nodeType":"YulExpressionStatement","src":"13632:15:27"},{"nativeSrc":"13700:5:27","nodeType":"YulBreak","src":"13700:5:27"}]},"condition":{"name":"signer","nativeSrc":"11164:6:27","nodeType":"YulIdentifier","src":"11164:6:27"},"nativeSrc":"11121:2598:27","nodeType":"YulForLoop","post":{"nativeSrc":"11171:2:27","nodeType":"YulBlock","src":"11171:2:27","statements":[]},"pre":{"nativeSrc":"11125:38:27","nodeType":"YulBlock","src":"11125:38:27","statements":[{"nativeSrc":"11127:34:27","nodeType":"YulAssignment","src":"11127:34:27","value":{"arguments":[{"kind":"number","nativeSrc":"11141:2:27","nodeType":"YulLiteral","src":"11141:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"11149:2:27","nodeType":"YulLiteral","src":"11149:2:27","type":"","value":"96"},{"name":"signer","nativeSrc":"11153:6:27","nodeType":"YulIdentifier","src":"11153:6:27"}],"functionName":{"name":"shl","nativeSrc":"11145:3:27","nodeType":"YulIdentifier","src":"11145:3:27"},"nativeSrc":"11145:15:27","nodeType":"YulFunctionCall","src":"11145:15:27"}],"functionName":{"name":"shr","nativeSrc":"11137:3:27","nodeType":"YulIdentifier","src":"11137:3:27"},"nativeSrc":"11137:24:27","nodeType":"YulFunctionCall","src":"11137:24:27"},"variableNames":[{"name":"signer","nativeSrc":"11127:6:27","nodeType":"YulIdentifier","src":"11127:6:27"}]}]},"src":"11121:2598:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11394,"isOffset":false,"isSlot":false,"src":"11242:4:27","valueSize":1},{"declaration":11394,"isOffset":false,"isSlot":false,"src":"12360:4:27","valueSize":1},{"declaration":11401,"isOffset":false,"isSlot":false,"src":"11997:7:27","valueSize":1},{"declaration":11401,"isOffset":false,"isSlot":false,"src":"12783:7:27","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"11337:1:27","valueSize":1},{"declaration":11396,"isOffset":false,"isSlot":false,"src":"12592:1:27","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"11127:6:27","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"11153:6:27","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"11164:6:27","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"11955:6:27","valueSize":1},{"declaration":11392,"isOffset":false,"isSlot":false,"src":"13247:6:27","valueSize":1},{"declaration":11398,"isOffset":false,"isSlot":false,"src":"11290:2:27","valueSize":1},{"declaration":11398,"isOffset":false,"isSlot":false,"src":"11391:2:27","valueSize":1}],"id":11403,"nodeType":"InlineAssembly","src":"11023:2706:27"}]},"documentation":{"id":11390,"nodeType":"StructuredDocumentation","src":"10584:234:27","text":"@dev Returns whether the signature (`r`, `vs`) is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11405,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"10832:19:27","nodeType":"FunctionDefinition","parameters":{"id":11399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11392,"mutability":"mutable","name":"signer","nameLocation":"10860:6:27","nodeType":"VariableDeclaration","scope":11405,"src":"10852:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11391,"name":"address","nodeType":"ElementaryTypeName","src":"10852:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11394,"mutability":"mutable","name":"hash","nameLocation":"10876:4:27","nodeType":"VariableDeclaration","scope":11405,"src":"10868:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10868:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11396,"mutability":"mutable","name":"r","nameLocation":"10890:1:27","nodeType":"VariableDeclaration","scope":11405,"src":"10882:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10882:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11398,"mutability":"mutable","name":"vs","nameLocation":"10901:2:27","nodeType":"VariableDeclaration","scope":11405,"src":"10893:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10893:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10851:53:27"},"returnParameters":{"id":11402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11401,"mutability":"mutable","name":"isValid","nameLocation":"10957:7:27","nodeType":"VariableDeclaration","scope":11405,"src":"10952:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11400,"name":"bool","nodeType":"ElementaryTypeName","src":"10952:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10951:14:27"},"scope":11514,"src":"10823:2912:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11422,"nodeType":"Block","src":"14139:2719:27","statements":[{"AST":{"nativeSrc":"14201:2651:27","nodeType":"YulBlock","src":"14201:2651:27","statements":[{"body":{"nativeSrc":"14343:2499:27","nodeType":"YulBlock","src":"14343:2499:27","statements":[{"nativeSrc":"14361:20:27","nodeType":"YulVariableDeclaration","src":"14361:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"14376:4:27","nodeType":"YulLiteral","src":"14376:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14370:5:27","nodeType":"YulIdentifier","src":"14370:5:27"},"nativeSrc":"14370:11:27","nodeType":"YulFunctionCall","src":"14370:11:27"},"variables":[{"name":"m","nativeSrc":"14365:1:27","nodeType":"YulTypedName","src":"14365:1:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14405:4:27","nodeType":"YulLiteral","src":"14405:4:27","type":"","value":"0x00"},{"name":"hash","nativeSrc":"14411:4:27","nodeType":"YulIdentifier","src":"14411:4:27"}],"functionName":{"name":"mstore","nativeSrc":"14398:6:27","nodeType":"YulIdentifier","src":"14398:6:27"},"nativeSrc":"14398:18:27","nodeType":"YulFunctionCall","src":"14398:18:27"},"nativeSrc":"14398:18:27","nodeType":"YulExpressionStatement","src":"14398:18:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14440:4:27","nodeType":"YulLiteral","src":"14440:4:27","type":"","value":"0x20"},{"arguments":[{"name":"v","nativeSrc":"14450:1:27","nodeType":"YulIdentifier","src":"14450:1:27"},{"kind":"number","nativeSrc":"14453:4:27","nodeType":"YulLiteral","src":"14453:4:27","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"14446:3:27","nodeType":"YulIdentifier","src":"14446:3:27"},"nativeSrc":"14446:12:27","nodeType":"YulFunctionCall","src":"14446:12:27"}],"functionName":{"name":"mstore","nativeSrc":"14433:6:27","nodeType":"YulIdentifier","src":"14433:6:27"},"nativeSrc":"14433:26:27","nodeType":"YulFunctionCall","src":"14433:26:27"},"nativeSrc":"14433:26:27","nodeType":"YulExpressionStatement","src":"14433:26:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14491:4:27","nodeType":"YulLiteral","src":"14491:4:27","type":"","value":"0x40"},{"name":"r","nativeSrc":"14497:1:27","nodeType":"YulIdentifier","src":"14497:1:27"}],"functionName":{"name":"mstore","nativeSrc":"14484:6:27","nodeType":"YulIdentifier","src":"14484:6:27"},"nativeSrc":"14484:15:27","nodeType":"YulFunctionCall","src":"14484:15:27"},"nativeSrc":"14484:15:27","nodeType":"YulExpressionStatement","src":"14484:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14531:4:27","nodeType":"YulLiteral","src":"14531:4:27","type":"","value":"0x60"},{"name":"s","nativeSrc":"14537:1:27","nodeType":"YulIdentifier","src":"14537:1:27"}],"functionName":{"name":"mstore","nativeSrc":"14524:6:27","nodeType":"YulIdentifier","src":"14524:6:27"},"nativeSrc":"14524:15:27","nodeType":"YulFunctionCall","src":"14524:15:27"},"nativeSrc":"14524:15:27","nodeType":"YulExpressionStatement","src":"14524:15:27"},{"nativeSrc":"14564:385:27","nodeType":"YulVariableDeclaration","src":"14564:385:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"14629:3:27","nodeType":"YulIdentifier","src":"14629:3:27"},"nativeSrc":"14629:5:27","nodeType":"YulFunctionCall","src":"14629:5:27"},{"kind":"number","nativeSrc":"14703:1:27","nodeType":"YulLiteral","src":"14703:1:27","type":"","value":"1"},{"kind":"number","nativeSrc":"14757:4:27","nodeType":"YulLiteral","src":"14757:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14806:4:27","nodeType":"YulLiteral","src":"14806:4:27","type":"","value":"0x80"},{"kind":"number","nativeSrc":"14854:4:27","nodeType":"YulLiteral","src":"14854:4:27","type":"","value":"0x01"},{"kind":"number","nativeSrc":"14904:4:27","nodeType":"YulLiteral","src":"14904:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"14593:10:27","nodeType":"YulIdentifier","src":"14593:10:27"},"nativeSrc":"14593:356:27","nodeType":"YulFunctionCall","src":"14593:356:27"},"variables":[{"name":"t","nativeSrc":"14568:1:27","nodeType":"YulTypedName","src":"14568:1:27","type":""}]},{"body":{"nativeSrc":"15118:212:27","nodeType":"YulBlock","src":"15118:212:27","statements":[{"nativeSrc":"15140:12:27","nodeType":"YulAssignment","src":"15140:12:27","value":{"kind":"number","nativeSrc":"15151:1:27","nodeType":"YulLiteral","src":"15151:1:27","type":"","value":"1"},"variableNames":[{"name":"isValid","nativeSrc":"15140:7:27","nodeType":"YulIdentifier","src":"15140:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15180:4:27","nodeType":"YulLiteral","src":"15180:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"15186:1:27","nodeType":"YulLiteral","src":"15186:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15173:6:27","nodeType":"YulIdentifier","src":"15173:6:27"},"nativeSrc":"15173:15:27","nodeType":"YulFunctionCall","src":"15173:15:27"},"nativeSrc":"15173:15:27","nodeType":"YulExpressionStatement","src":"15173:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15242:4:27","nodeType":"YulLiteral","src":"15242:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"15248:1:27","nodeType":"YulIdentifier","src":"15248:1:27"}],"functionName":{"name":"mstore","nativeSrc":"15235:6:27","nodeType":"YulIdentifier","src":"15235:6:27"},"nativeSrc":"15235:15:27","nodeType":"YulFunctionCall","src":"15235:15:27"},"nativeSrc":"15235:15:27","nodeType":"YulExpressionStatement","src":"15235:15:27"},{"nativeSrc":"15307:5:27","nodeType":"YulBreak","src":"15307:5:27"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"15075:14:27","nodeType":"YulIdentifier","src":"15075:14:27"},"nativeSrc":"15075:16:27","nodeType":"YulFunctionCall","src":"15075:16:27"}],"functionName":{"name":"iszero","nativeSrc":"15068:6:27","nodeType":"YulIdentifier","src":"15068:6:27"},"nativeSrc":"15068:24:27","nodeType":"YulFunctionCall","src":"15068:24:27"},{"arguments":[{"name":"signer","nativeSrc":"15098:6:27","nodeType":"YulIdentifier","src":"15098:6:27"},{"arguments":[{"name":"t","nativeSrc":"15112:1:27","nodeType":"YulIdentifier","src":"15112:1:27"}],"functionName":{"name":"mload","nativeSrc":"15106:5:27","nodeType":"YulIdentifier","src":"15106:5:27"},"nativeSrc":"15106:8:27","nodeType":"YulFunctionCall","src":"15106:8:27"}],"functionName":{"name":"xor","nativeSrc":"15094:3:27","nodeType":"YulIdentifier","src":"15094:3:27"},"nativeSrc":"15094:21:27","nodeType":"YulFunctionCall","src":"15094:21:27"}],"functionName":{"name":"or","nativeSrc":"15065:2:27","nodeType":"YulIdentifier","src":"15065:2:27"},"nativeSrc":"15065:51:27","nodeType":"YulFunctionCall","src":"15065:51:27"}],"functionName":{"name":"iszero","nativeSrc":"15058:6:27","nodeType":"YulIdentifier","src":"15058:6:27"},"nativeSrc":"15058:59:27","nodeType":"YulFunctionCall","src":"15058:59:27"},"nativeSrc":"15055:275:27","nodeType":"YulIf","src":"15055:275:27"},{"nativeSrc":"15348:29:27","nodeType":"YulVariableDeclaration","src":"15348:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"15361:3:27","nodeType":"YulLiteral","src":"15361:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"15366:10:27","nodeType":"YulLiteral","src":"15366:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"15357:3:27","nodeType":"YulIdentifier","src":"15357:3:27"},"nativeSrc":"15357:20:27","nodeType":"YulFunctionCall","src":"15357:20:27"},"variables":[{"name":"f","nativeSrc":"15352:1:27","nodeType":"YulTypedName","src":"15352:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"15401:1:27","nodeType":"YulIdentifier","src":"15401:1:27"},{"name":"f","nativeSrc":"15404:1:27","nodeType":"YulIdentifier","src":"15404:1:27"}],"functionName":{"name":"mstore","nativeSrc":"15394:6:27","nodeType":"YulIdentifier","src":"15394:6:27"},"nativeSrc":"15394:12:27","nodeType":"YulFunctionCall","src":"15394:12:27"},"nativeSrc":"15394:12:27","nodeType":"YulExpressionStatement","src":"15394:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15493:1:27","nodeType":"YulIdentifier","src":"15493:1:27"},{"kind":"number","nativeSrc":"15496:4:27","nodeType":"YulLiteral","src":"15496:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"15489:3:27","nodeType":"YulIdentifier","src":"15489:3:27"},"nativeSrc":"15489:12:27","nodeType":"YulFunctionCall","src":"15489:12:27"},{"name":"hash","nativeSrc":"15503:4:27","nodeType":"YulIdentifier","src":"15503:4:27"}],"functionName":{"name":"mstore","nativeSrc":"15482:6:27","nodeType":"YulIdentifier","src":"15482:6:27"},"nativeSrc":"15482:26:27","nodeType":"YulFunctionCall","src":"15482:26:27"},"nativeSrc":"15482:26:27","nodeType":"YulExpressionStatement","src":"15482:26:27"},{"nativeSrc":"15525:21:27","nodeType":"YulVariableDeclaration","src":"15525:21:27","value":{"arguments":[{"name":"m","nativeSrc":"15538:1:27","nodeType":"YulIdentifier","src":"15538:1:27"},{"kind":"number","nativeSrc":"15541:4:27","nodeType":"YulLiteral","src":"15541:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"15534:3:27","nodeType":"YulIdentifier","src":"15534:3:27"},"nativeSrc":"15534:12:27","nodeType":"YulFunctionCall","src":"15534:12:27"},"variables":[{"name":"d","nativeSrc":"15529:1:27","nodeType":"YulTypedName","src":"15529:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"15570:1:27","nodeType":"YulIdentifier","src":"15570:1:27"},{"kind":"number","nativeSrc":"15573:4:27","nodeType":"YulLiteral","src":"15573:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"15563:6:27","nodeType":"YulIdentifier","src":"15563:6:27"},"nativeSrc":"15563:15:27","nodeType":"YulFunctionCall","src":"15563:15:27"},"nativeSrc":"15563:15:27","nodeType":"YulExpressionStatement","src":"15563:15:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15656:1:27","nodeType":"YulIdentifier","src":"15656:1:27"},{"kind":"number","nativeSrc":"15659:4:27","nodeType":"YulLiteral","src":"15659:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"15652:3:27","nodeType":"YulIdentifier","src":"15652:3:27"},"nativeSrc":"15652:12:27","nodeType":"YulFunctionCall","src":"15652:12:27"},{"kind":"number","nativeSrc":"15666:2:27","nodeType":"YulLiteral","src":"15666:2:27","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"15645:6:27","nodeType":"YulIdentifier","src":"15645:6:27"},"nativeSrc":"15645:24:27","nodeType":"YulFunctionCall","src":"15645:24:27"},"nativeSrc":"15645:24:27","nodeType":"YulExpressionStatement","src":"15645:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15725:1:27","nodeType":"YulIdentifier","src":"15725:1:27"},{"kind":"number","nativeSrc":"15728:4:27","nodeType":"YulLiteral","src":"15728:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"15721:3:27","nodeType":"YulIdentifier","src":"15721:3:27"},"nativeSrc":"15721:12:27","nodeType":"YulFunctionCall","src":"15721:12:27"},{"name":"r","nativeSrc":"15735:1:27","nodeType":"YulIdentifier","src":"15735:1:27"}],"functionName":{"name":"mstore","nativeSrc":"15714:6:27","nodeType":"YulIdentifier","src":"15714:6:27"},"nativeSrc":"15714:23:27","nodeType":"YulFunctionCall","src":"15714:23:27"},"nativeSrc":"15714:23:27","nodeType":"YulExpressionStatement","src":"15714:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15773:1:27","nodeType":"YulIdentifier","src":"15773:1:27"},{"kind":"number","nativeSrc":"15776:4:27","nodeType":"YulLiteral","src":"15776:4:27","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"15769:3:27","nodeType":"YulIdentifier","src":"15769:3:27"},"nativeSrc":"15769:12:27","nodeType":"YulFunctionCall","src":"15769:12:27"},{"name":"s","nativeSrc":"15783:1:27","nodeType":"YulIdentifier","src":"15783:1:27"}],"functionName":{"name":"mstore","nativeSrc":"15762:6:27","nodeType":"YulIdentifier","src":"15762:6:27"},"nativeSrc":"15762:23:27","nodeType":"YulFunctionCall","src":"15762:23:27"},"nativeSrc":"15762:23:27","nodeType":"YulExpressionStatement","src":"15762:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"15822:1:27","nodeType":"YulIdentifier","src":"15822:1:27"},{"kind":"number","nativeSrc":"15825:4:27","nodeType":"YulLiteral","src":"15825:4:27","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"15818:3:27","nodeType":"YulIdentifier","src":"15818:3:27"},"nativeSrc":"15818:12:27","nodeType":"YulFunctionCall","src":"15818:12:27"},{"name":"v","nativeSrc":"15832:1:27","nodeType":"YulIdentifier","src":"15832:1:27"}],"functionName":{"name":"mstore8","nativeSrc":"15810:7:27","nodeType":"YulIdentifier","src":"15810:7:27"},"nativeSrc":"15810:24:27","nodeType":"YulFunctionCall","src":"15810:24:27"},"nativeSrc":"15810:24:27","nodeType":"YulExpressionStatement","src":"15810:24:27"},{"nativeSrc":"15906:774:27","nodeType":"YulAssignment","src":"15906:774:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"16045:1:27","nodeType":"YulIdentifier","src":"16045:1:27"}],"functionName":{"name":"mload","nativeSrc":"16039:5:27","nodeType":"YulIdentifier","src":"16039:5:27"},"nativeSrc":"16039:8:27","nodeType":"YulFunctionCall","src":"16039:8:27"},{"name":"f","nativeSrc":"16049:1:27","nodeType":"YulIdentifier","src":"16049:1:27"}],"functionName":{"name":"eq","nativeSrc":"16036:2:27","nodeType":"YulIdentifier","src":"16036:2:27"},"nativeSrc":"16036:15:27","nodeType":"YulFunctionCall","src":"16036:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"16321:3:27","nodeType":"YulIdentifier","src":"16321:3:27"},"nativeSrc":"16321:5:27","nodeType":"YulFunctionCall","src":"16321:5:27"},{"name":"signer","nativeSrc":"16370:6:27","nodeType":"YulIdentifier","src":"16370:6:27"},{"name":"m","nativeSrc":"16427:1:27","nodeType":"YulIdentifier","src":"16427:1:27"},{"kind":"number","nativeSrc":"16487:4:27","nodeType":"YulLiteral","src":"16487:4:27","type":"","value":"0xa5"},{"name":"d","nativeSrc":"16550:1:27","nodeType":"YulIdentifier","src":"16550:1:27"},{"kind":"number","nativeSrc":"16602:4:27","nodeType":"YulLiteral","src":"16602:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"16285:10:27","nodeType":"YulIdentifier","src":"16285:10:27"},"nativeSrc":"16285:377:27","nodeType":"YulFunctionCall","src":"16285:377:27"}],"functionName":{"name":"and","nativeSrc":"15917:3:27","nodeType":"YulIdentifier","src":"15917:3:27"},"nativeSrc":"15917:763:27","nodeType":"YulFunctionCall","src":"15917:763:27"},"variableNames":[{"name":"isValid","nativeSrc":"15906:7:27","nodeType":"YulIdentifier","src":"15906:7:27"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16704:4:27","nodeType":"YulLiteral","src":"16704:4:27","type":"","value":"0x60"},{"kind":"number","nativeSrc":"16710:1:27","nodeType":"YulLiteral","src":"16710:1:27","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16697:6:27","nodeType":"YulIdentifier","src":"16697:6:27"},"nativeSrc":"16697:15:27","nodeType":"YulFunctionCall","src":"16697:15:27"},"nativeSrc":"16697:15:27","nodeType":"YulExpressionStatement","src":"16697:15:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16762:4:27","nodeType":"YulLiteral","src":"16762:4:27","type":"","value":"0x40"},{"name":"m","nativeSrc":"16768:1:27","nodeType":"YulIdentifier","src":"16768:1:27"}],"functionName":{"name":"mstore","nativeSrc":"16755:6:27","nodeType":"YulIdentifier","src":"16755:6:27"},"nativeSrc":"16755:15:27","nodeType":"YulFunctionCall","src":"16755:15:27"},"nativeSrc":"16755:15:27","nodeType":"YulExpressionStatement","src":"16755:15:27"},{"nativeSrc":"16823:5:27","nodeType":"YulBreak","src":"16823:5:27"}]},"condition":{"name":"signer","nativeSrc":"14333:6:27","nodeType":"YulIdentifier","src":"14333:6:27"},"nativeSrc":"14290:2552:27","nodeType":"YulForLoop","post":{"nativeSrc":"14340:2:27","nodeType":"YulBlock","src":"14340:2:27","statements":[]},"pre":{"nativeSrc":"14294:38:27","nodeType":"YulBlock","src":"14294:38:27","statements":[{"nativeSrc":"14296:34:27","nodeType":"YulAssignment","src":"14296:34:27","value":{"arguments":[{"kind":"number","nativeSrc":"14310:2:27","nodeType":"YulLiteral","src":"14310:2:27","type":"","value":"96"},{"arguments":[{"kind":"number","nativeSrc":"14318:2:27","nodeType":"YulLiteral","src":"14318:2:27","type":"","value":"96"},{"name":"signer","nativeSrc":"14322:6:27","nodeType":"YulIdentifier","src":"14322:6:27"}],"functionName":{"name":"shl","nativeSrc":"14314:3:27","nodeType":"YulIdentifier","src":"14314:3:27"},"nativeSrc":"14314:15:27","nodeType":"YulFunctionCall","src":"14314:15:27"}],"functionName":{"name":"shr","nativeSrc":"14306:3:27","nodeType":"YulIdentifier","src":"14306:3:27"},"nativeSrc":"14306:24:27","nodeType":"YulFunctionCall","src":"14306:24:27"},"variableNames":[{"name":"signer","nativeSrc":"14296:6:27","nodeType":"YulIdentifier","src":"14296:6:27"}]}]},"src":"14290:2552:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11410,"isOffset":false,"isSlot":false,"src":"14411:4:27","valueSize":1},{"declaration":11410,"isOffset":false,"isSlot":false,"src":"15503:4:27","valueSize":1},{"declaration":11419,"isOffset":false,"isSlot":false,"src":"15140:7:27","valueSize":1},{"declaration":11419,"isOffset":false,"isSlot":false,"src":"15906:7:27","valueSize":1},{"declaration":11414,"isOffset":false,"isSlot":false,"src":"14497:1:27","valueSize":1},{"declaration":11414,"isOffset":false,"isSlot":false,"src":"15735:1:27","valueSize":1},{"declaration":11416,"isOffset":false,"isSlot":false,"src":"14537:1:27","valueSize":1},{"declaration":11416,"isOffset":false,"isSlot":false,"src":"15783:1:27","valueSize":1},{"declaration":11408,"isOffset":false,"isSlot":false,"src":"14296:6:27","valueSize":1},{"declaration":11408,"isOffset":false,"isSlot":false,"src":"14322:6:27","valueSize":1},{"declaration":11408,"isOffset":false,"isSlot":false,"src":"14333:6:27","valueSize":1},{"declaration":11408,"isOffset":false,"isSlot":false,"src":"15098:6:27","valueSize":1},{"declaration":11408,"isOffset":false,"isSlot":false,"src":"16370:6:27","valueSize":1},{"declaration":11412,"isOffset":false,"isSlot":false,"src":"14450:1:27","valueSize":1},{"declaration":11412,"isOffset":false,"isSlot":false,"src":"15832:1:27","valueSize":1}],"id":11421,"nodeType":"InlineAssembly","src":"14192:2660:27"}]},"documentation":{"id":11406,"nodeType":"StructuredDocumentation","src":"13741:238:27","text":"@dev Returns whether the signature (`v`, `r`, `s`) is valid for `signer` and `hash`.\n If `signer` is a smart contract, the signature is validated with ERC1271.\n Otherwise, the signature is validated with `ECDSA.recover`."},"id":11423,"implemented":true,"kind":"function","modifiers":[],"name":"isValidSignatureNow","nameLocation":"13993:19:27","nodeType":"FunctionDefinition","parameters":{"id":11417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11408,"mutability":"mutable","name":"signer","nameLocation":"14021:6:27","nodeType":"VariableDeclaration","scope":11423,"src":"14013:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11407,"name":"address","nodeType":"ElementaryTypeName","src":"14013:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11410,"mutability":"mutable","name":"hash","nameLocation":"14037:4:27","nodeType":"VariableDeclaration","scope":11423,"src":"14029:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14029:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11412,"mutability":"mutable","name":"v","nameLocation":"14049:1:27","nodeType":"VariableDeclaration","scope":11423,"src":"14043:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11411,"name":"uint8","nodeType":"ElementaryTypeName","src":"14043:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11414,"mutability":"mutable","name":"r","nameLocation":"14060:1:27","nodeType":"VariableDeclaration","scope":11423,"src":"14052:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14052:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11416,"mutability":"mutable","name":"s","nameLocation":"14071:1:27","nodeType":"VariableDeclaration","scope":11423,"src":"14063:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14063:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14012:61:27"},"returnParameters":{"id":11420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11419,"mutability":"mutable","name":"isValid","nameLocation":"14126:7:27","nodeType":"VariableDeclaration","scope":11423,"src":"14121:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11418,"name":"bool","nodeType":"ElementaryTypeName","src":"14121:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14120:14:27"},"scope":11514,"src":"13984:2874:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11436,"nodeType":"Block","src":"17397:1346:27","statements":[{"AST":{"nativeSrc":"17459:1278:27","nodeType":"YulBlock","src":"17459:1278:27","statements":[{"nativeSrc":"17473:20:27","nodeType":"YulVariableDeclaration","src":"17473:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"17488:4:27","nodeType":"YulLiteral","src":"17488:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17482:5:27","nodeType":"YulIdentifier","src":"17482:5:27"},"nativeSrc":"17482:11:27","nodeType":"YulFunctionCall","src":"17482:11:27"},"variables":[{"name":"m","nativeSrc":"17477:1:27","nodeType":"YulTypedName","src":"17477:1:27","type":""}]},{"nativeSrc":"17506:29:27","nodeType":"YulVariableDeclaration","src":"17506:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"17519:3:27","nodeType":"YulLiteral","src":"17519:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"17524:10:27","nodeType":"YulLiteral","src":"17524:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"17515:3:27","nodeType":"YulIdentifier","src":"17515:3:27"},"nativeSrc":"17515:20:27","nodeType":"YulFunctionCall","src":"17515:20:27"},"variables":[{"name":"f","nativeSrc":"17510:1:27","nodeType":"YulTypedName","src":"17510:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"17555:1:27","nodeType":"YulIdentifier","src":"17555:1:27"},{"name":"f","nativeSrc":"17558:1:27","nodeType":"YulIdentifier","src":"17558:1:27"}],"functionName":{"name":"mstore","nativeSrc":"17548:6:27","nodeType":"YulIdentifier","src":"17548:6:27"},"nativeSrc":"17548:12:27","nodeType":"YulFunctionCall","src":"17548:12:27"},"nativeSrc":"17548:12:27","nodeType":"YulExpressionStatement","src":"17548:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"17643:1:27","nodeType":"YulIdentifier","src":"17643:1:27"},{"kind":"number","nativeSrc":"17646:4:27","nodeType":"YulLiteral","src":"17646:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"17639:3:27","nodeType":"YulIdentifier","src":"17639:3:27"},"nativeSrc":"17639:12:27","nodeType":"YulFunctionCall","src":"17639:12:27"},{"name":"hash","nativeSrc":"17653:4:27","nodeType":"YulIdentifier","src":"17653:4:27"}],"functionName":{"name":"mstore","nativeSrc":"17632:6:27","nodeType":"YulIdentifier","src":"17632:6:27"},"nativeSrc":"17632:26:27","nodeType":"YulFunctionCall","src":"17632:26:27"},"nativeSrc":"17632:26:27","nodeType":"YulExpressionStatement","src":"17632:26:27"},{"nativeSrc":"17671:21:27","nodeType":"YulVariableDeclaration","src":"17671:21:27","value":{"arguments":[{"name":"m","nativeSrc":"17684:1:27","nodeType":"YulIdentifier","src":"17684:1:27"},{"kind":"number","nativeSrc":"17687:4:27","nodeType":"YulLiteral","src":"17687:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"17680:3:27","nodeType":"YulIdentifier","src":"17680:3:27"},"nativeSrc":"17680:12:27","nodeType":"YulFunctionCall","src":"17680:12:27"},"variables":[{"name":"d","nativeSrc":"17675:1:27","nodeType":"YulTypedName","src":"17675:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"17712:1:27","nodeType":"YulIdentifier","src":"17712:1:27"},{"kind":"number","nativeSrc":"17715:4:27","nodeType":"YulLiteral","src":"17715:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"17705:6:27","nodeType":"YulIdentifier","src":"17705:6:27"},"nativeSrc":"17705:15:27","nodeType":"YulFunctionCall","src":"17705:15:27"},"nativeSrc":"17705:15:27","nodeType":"YulExpressionStatement","src":"17705:15:27"},{"nativeSrc":"17825:36:27","nodeType":"YulVariableDeclaration","src":"17825:36:27","value":{"arguments":[{"kind":"number","nativeSrc":"17838:4:27","nodeType":"YulLiteral","src":"17838:4:27","type":"","value":"0x20"},{"arguments":[{"name":"signature","nativeSrc":"17850:9:27","nodeType":"YulIdentifier","src":"17850:9:27"}],"functionName":{"name":"mload","nativeSrc":"17844:5:27","nodeType":"YulIdentifier","src":"17844:5:27"},"nativeSrc":"17844:16:27","nodeType":"YulFunctionCall","src":"17844:16:27"}],"functionName":{"name":"add","nativeSrc":"17834:3:27","nodeType":"YulIdentifier","src":"17834:3:27"},"nativeSrc":"17834:27:27","nodeType":"YulFunctionCall","src":"17834:27:27"},"variables":[{"name":"n","nativeSrc":"17829:1:27","nodeType":"YulTypedName","src":"17829:1:27","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"17889:3:27","nodeType":"YulIdentifier","src":"17889:3:27"},"nativeSrc":"17889:5:27","nodeType":"YulFunctionCall","src":"17889:5:27"},{"kind":"number","nativeSrc":"17896:1:27","nodeType":"YulLiteral","src":"17896:1:27","type":"","value":"4"},{"name":"signature","nativeSrc":"17899:9:27","nodeType":"YulIdentifier","src":"17899:9:27"},{"name":"n","nativeSrc":"17910:1:27","nodeType":"YulIdentifier","src":"17910:1:27"},{"arguments":[{"name":"m","nativeSrc":"17917:1:27","nodeType":"YulIdentifier","src":"17917:1:27"},{"kind":"number","nativeSrc":"17920:4:27","nodeType":"YulLiteral","src":"17920:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"17913:3:27","nodeType":"YulIdentifier","src":"17913:3:27"},"nativeSrc":"17913:12:27","nodeType":"YulFunctionCall","src":"17913:12:27"},{"name":"n","nativeSrc":"17927:1:27","nodeType":"YulIdentifier","src":"17927:1:27"}],"functionName":{"name":"staticcall","nativeSrc":"17878:10:27","nodeType":"YulIdentifier","src":"17878:10:27"},"nativeSrc":"17878:51:27","nodeType":"YulFunctionCall","src":"17878:51:27"}],"functionName":{"name":"pop","nativeSrc":"17874:3:27","nodeType":"YulIdentifier","src":"17874:3:27"},"nativeSrc":"17874:56:27","nodeType":"YulFunctionCall","src":"17874:56:27"},"nativeSrc":"17874:56:27","nodeType":"YulExpressionStatement","src":"17874:56:27"},{"nativeSrc":"17986:741:27","nodeType":"YulAssignment","src":"17986:741:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"18117:1:27","nodeType":"YulIdentifier","src":"18117:1:27"}],"functionName":{"name":"mload","nativeSrc":"18111:5:27","nodeType":"YulIdentifier","src":"18111:5:27"},"nativeSrc":"18111:8:27","nodeType":"YulFunctionCall","src":"18111:8:27"},{"name":"f","nativeSrc":"18121:1:27","nodeType":"YulIdentifier","src":"18121:1:27"}],"functionName":{"name":"eq","nativeSrc":"18108:2:27","nodeType":"YulIdentifier","src":"18108:2:27"},"nativeSrc":"18108:15:27","nodeType":"YulFunctionCall","src":"18108:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"18373:3:27","nodeType":"YulIdentifier","src":"18373:3:27"},"nativeSrc":"18373:5:27","nodeType":"YulFunctionCall","src":"18373:5:27"},{"name":"signer","nativeSrc":"18418:6:27","nodeType":"YulIdentifier","src":"18418:6:27"},{"name":"m","nativeSrc":"18471:1:27","nodeType":"YulIdentifier","src":"18471:1:27"},{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"18531:14:27","nodeType":"YulIdentifier","src":"18531:14:27"},"nativeSrc":"18531:16:27","nodeType":"YulFunctionCall","src":"18531:16:27"},{"kind":"number","nativeSrc":"18549:4:27","nodeType":"YulLiteral","src":"18549:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"18527:3:27","nodeType":"YulIdentifier","src":"18527:3:27"},"nativeSrc":"18527:27:27","nodeType":"YulFunctionCall","src":"18527:27:27"},{"name":"d","nativeSrc":"18609:1:27","nodeType":"YulIdentifier","src":"18609:1:27"},{"kind":"number","nativeSrc":"18657:4:27","nodeType":"YulLiteral","src":"18657:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"18341:10:27","nodeType":"YulIdentifier","src":"18341:10:27"},"nativeSrc":"18341:372:27","nodeType":"YulFunctionCall","src":"18341:372:27"}],"functionName":{"name":"and","nativeSrc":"17997:3:27","nodeType":"YulIdentifier","src":"17997:3:27"},"nativeSrc":"17997:730:27","nodeType":"YulFunctionCall","src":"17997:730:27"},"variableNames":[{"name":"isValid","nativeSrc":"17986:7:27","nodeType":"YulIdentifier","src":"17986:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11428,"isOffset":false,"isSlot":false,"src":"17653:4:27","valueSize":1},{"declaration":11433,"isOffset":false,"isSlot":false,"src":"17986:7:27","valueSize":1},{"declaration":11430,"isOffset":false,"isSlot":false,"src":"17850:9:27","valueSize":1},{"declaration":11430,"isOffset":false,"isSlot":false,"src":"17899:9:27","valueSize":1},{"declaration":11426,"isOffset":false,"isSlot":false,"src":"18418:6:27","valueSize":1}],"id":11435,"nodeType":"InlineAssembly","src":"17450:1287:27"}]},"documentation":{"id":11424,"nodeType":"StructuredDocumentation","src":"17147:90:27","text":"@dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract."},"id":11437,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"17251:26:27","nodeType":"FunctionDefinition","parameters":{"id":11431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11426,"mutability":"mutable","name":"signer","nameLocation":"17286:6:27","nodeType":"VariableDeclaration","scope":11437,"src":"17278:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11425,"name":"address","nodeType":"ElementaryTypeName","src":"17278:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11428,"mutability":"mutable","name":"hash","nameLocation":"17302:4:27","nodeType":"VariableDeclaration","scope":11437,"src":"17294:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17294:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11430,"mutability":"mutable","name":"signature","nameLocation":"17321:9:27","nodeType":"VariableDeclaration","scope":11437,"src":"17308:22:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11429,"name":"bytes","nodeType":"ElementaryTypeName","src":"17308:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17277:54:27"},"returnParameters":{"id":11434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11433,"mutability":"mutable","name":"isValid","nameLocation":"17384:7:27","nodeType":"VariableDeclaration","scope":11437,"src":"17379:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11432,"name":"bool","nodeType":"ElementaryTypeName","src":"17379:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17378:14:27"},"scope":11514,"src":"17242:1501:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11450,"nodeType":"Block","src":"19011:1354:27","statements":[{"AST":{"nativeSrc":"19073:1286:27","nodeType":"YulBlock","src":"19073:1286:27","statements":[{"nativeSrc":"19087:20:27","nodeType":"YulVariableDeclaration","src":"19087:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"19102:4:27","nodeType":"YulLiteral","src":"19102:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19096:5:27","nodeType":"YulIdentifier","src":"19096:5:27"},"nativeSrc":"19096:11:27","nodeType":"YulFunctionCall","src":"19096:11:27"},"variables":[{"name":"m","nativeSrc":"19091:1:27","nodeType":"YulTypedName","src":"19091:1:27","type":""}]},{"nativeSrc":"19120:29:27","nodeType":"YulVariableDeclaration","src":"19120:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"19133:3:27","nodeType":"YulLiteral","src":"19133:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"19138:10:27","nodeType":"YulLiteral","src":"19138:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"19129:3:27","nodeType":"YulIdentifier","src":"19129:3:27"},"nativeSrc":"19129:20:27","nodeType":"YulFunctionCall","src":"19129:20:27"},"variables":[{"name":"f","nativeSrc":"19124:1:27","nodeType":"YulTypedName","src":"19124:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"19169:1:27","nodeType":"YulIdentifier","src":"19169:1:27"},{"name":"f","nativeSrc":"19172:1:27","nodeType":"YulIdentifier","src":"19172:1:27"}],"functionName":{"name":"mstore","nativeSrc":"19162:6:27","nodeType":"YulIdentifier","src":"19162:6:27"},"nativeSrc":"19162:12:27","nodeType":"YulFunctionCall","src":"19162:12:27"},"nativeSrc":"19162:12:27","nodeType":"YulExpressionStatement","src":"19162:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19257:1:27","nodeType":"YulIdentifier","src":"19257:1:27"},{"kind":"number","nativeSrc":"19260:4:27","nodeType":"YulLiteral","src":"19260:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"19253:3:27","nodeType":"YulIdentifier","src":"19253:3:27"},"nativeSrc":"19253:12:27","nodeType":"YulFunctionCall","src":"19253:12:27"},{"name":"hash","nativeSrc":"19267:4:27","nodeType":"YulIdentifier","src":"19267:4:27"}],"functionName":{"name":"mstore","nativeSrc":"19246:6:27","nodeType":"YulIdentifier","src":"19246:6:27"},"nativeSrc":"19246:26:27","nodeType":"YulFunctionCall","src":"19246:26:27"},"nativeSrc":"19246:26:27","nodeType":"YulExpressionStatement","src":"19246:26:27"},{"nativeSrc":"19285:21:27","nodeType":"YulVariableDeclaration","src":"19285:21:27","value":{"arguments":[{"name":"m","nativeSrc":"19298:1:27","nodeType":"YulIdentifier","src":"19298:1:27"},{"kind":"number","nativeSrc":"19301:4:27","nodeType":"YulLiteral","src":"19301:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"19294:3:27","nodeType":"YulIdentifier","src":"19294:3:27"},"nativeSrc":"19294:12:27","nodeType":"YulFunctionCall","src":"19294:12:27"},"variables":[{"name":"d","nativeSrc":"19289:1:27","nodeType":"YulTypedName","src":"19289:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"19326:1:27","nodeType":"YulIdentifier","src":"19326:1:27"},{"kind":"number","nativeSrc":"19329:4:27","nodeType":"YulLiteral","src":"19329:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"19319:6:27","nodeType":"YulIdentifier","src":"19319:6:27"},"nativeSrc":"19319:15:27","nodeType":"YulFunctionCall","src":"19319:15:27"},"nativeSrc":"19319:15:27","nodeType":"YulExpressionStatement","src":"19319:15:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19408:1:27","nodeType":"YulIdentifier","src":"19408:1:27"},{"kind":"number","nativeSrc":"19411:4:27","nodeType":"YulLiteral","src":"19411:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"19404:3:27","nodeType":"YulIdentifier","src":"19404:3:27"},"nativeSrc":"19404:12:27","nodeType":"YulFunctionCall","src":"19404:12:27"},{"name":"signature.length","nativeSrc":"19418:16:27","nodeType":"YulIdentifier","src":"19418:16:27"}],"functionName":{"name":"mstore","nativeSrc":"19397:6:27","nodeType":"YulIdentifier","src":"19397:6:27"},"nativeSrc":"19397:38:27","nodeType":"YulFunctionCall","src":"19397:38:27"},"nativeSrc":"19397:38:27","nodeType":"YulExpressionStatement","src":"19397:38:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"19507:1:27","nodeType":"YulIdentifier","src":"19507:1:27"},{"kind":"number","nativeSrc":"19510:4:27","nodeType":"YulLiteral","src":"19510:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"19503:3:27","nodeType":"YulIdentifier","src":"19503:3:27"},"nativeSrc":"19503:12:27","nodeType":"YulFunctionCall","src":"19503:12:27"},{"name":"signature.offset","nativeSrc":"19517:16:27","nodeType":"YulIdentifier","src":"19517:16:27"},{"name":"signature.length","nativeSrc":"19535:16:27","nodeType":"YulIdentifier","src":"19535:16:27"}],"functionName":{"name":"calldatacopy","nativeSrc":"19490:12:27","nodeType":"YulIdentifier","src":"19490:12:27"},"nativeSrc":"19490:62:27","nodeType":"YulFunctionCall","src":"19490:62:27"},"nativeSrc":"19490:62:27","nodeType":"YulExpressionStatement","src":"19490:62:27"},{"nativeSrc":"19608:741:27","nodeType":"YulAssignment","src":"19608:741:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"19739:1:27","nodeType":"YulIdentifier","src":"19739:1:27"}],"functionName":{"name":"mload","nativeSrc":"19733:5:27","nodeType":"YulIdentifier","src":"19733:5:27"},"nativeSrc":"19733:8:27","nodeType":"YulFunctionCall","src":"19733:8:27"},{"name":"f","nativeSrc":"19743:1:27","nodeType":"YulIdentifier","src":"19743:1:27"}],"functionName":{"name":"eq","nativeSrc":"19730:2:27","nodeType":"YulIdentifier","src":"19730:2:27"},"nativeSrc":"19730:15:27","nodeType":"YulFunctionCall","src":"19730:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"19995:3:27","nodeType":"YulIdentifier","src":"19995:3:27"},"nativeSrc":"19995:5:27","nodeType":"YulFunctionCall","src":"19995:5:27"},{"name":"signer","nativeSrc":"20040:6:27","nodeType":"YulIdentifier","src":"20040:6:27"},{"name":"m","nativeSrc":"20093:1:27","nodeType":"YulIdentifier","src":"20093:1:27"},{"arguments":[{"name":"signature.length","nativeSrc":"20153:16:27","nodeType":"YulIdentifier","src":"20153:16:27"},{"kind":"number","nativeSrc":"20171:4:27","nodeType":"YulLiteral","src":"20171:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"20149:3:27","nodeType":"YulIdentifier","src":"20149:3:27"},"nativeSrc":"20149:27:27","nodeType":"YulFunctionCall","src":"20149:27:27"},{"name":"d","nativeSrc":"20231:1:27","nodeType":"YulIdentifier","src":"20231:1:27"},{"kind":"number","nativeSrc":"20279:4:27","nodeType":"YulLiteral","src":"20279:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"19963:10:27","nodeType":"YulIdentifier","src":"19963:10:27"},"nativeSrc":"19963:372:27","nodeType":"YulFunctionCall","src":"19963:372:27"}],"functionName":{"name":"and","nativeSrc":"19619:3:27","nodeType":"YulIdentifier","src":"19619:3:27"},"nativeSrc":"19619:730:27","nodeType":"YulFunctionCall","src":"19619:730:27"},"variableNames":[{"name":"isValid","nativeSrc":"19608:7:27","nodeType":"YulIdentifier","src":"19608:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11442,"isOffset":false,"isSlot":false,"src":"19267:4:27","valueSize":1},{"declaration":11447,"isOffset":false,"isSlot":false,"src":"19608:7:27","valueSize":1},{"declaration":11444,"isOffset":false,"isSlot":false,"src":"19418:16:27","suffix":"length","valueSize":1},{"declaration":11444,"isOffset":false,"isSlot":false,"src":"19535:16:27","suffix":"length","valueSize":1},{"declaration":11444,"isOffset":false,"isSlot":false,"src":"20153:16:27","suffix":"length","valueSize":1},{"declaration":11444,"isOffset":true,"isSlot":false,"src":"19517:16:27","suffix":"offset","valueSize":1},{"declaration":11440,"isOffset":false,"isSlot":false,"src":"20040:6:27","valueSize":1}],"id":11449,"nodeType":"InlineAssembly","src":"19064:1295:27"}]},"documentation":{"id":11438,"nodeType":"StructuredDocumentation","src":"18749:90:27","text":"@dev Returns whether `signature` is valid for `hash` for an ERC1271 `signer` contract."},"id":11451,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNowCalldata","nameLocation":"18853:34:27","nodeType":"FunctionDefinition","parameters":{"id":11445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11440,"mutability":"mutable","name":"signer","nameLocation":"18905:6:27","nodeType":"VariableDeclaration","scope":11451,"src":"18897:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11439,"name":"address","nodeType":"ElementaryTypeName","src":"18897:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11442,"mutability":"mutable","name":"hash","nameLocation":"18929:4:27","nodeType":"VariableDeclaration","scope":11451,"src":"18921:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18921:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11444,"mutability":"mutable","name":"signature","nameLocation":"18958:9:27","nodeType":"VariableDeclaration","scope":11451,"src":"18943:24:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11443,"name":"bytes","nodeType":"ElementaryTypeName","src":"18943:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18887:86:27"},"returnParameters":{"id":11448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11447,"mutability":"mutable","name":"isValid","nameLocation":"19002:7:27","nodeType":"VariableDeclaration","scope":11451,"src":"18997:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11446,"name":"bool","nodeType":"ElementaryTypeName","src":"18997:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18996:14:27"},"scope":11514,"src":"18844:1521:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11466,"nodeType":"Block","src":"20642:1398:27","statements":[{"AST":{"nativeSrc":"20704:1330:27","nodeType":"YulBlock","src":"20704:1330:27","statements":[{"nativeSrc":"20718:20:27","nodeType":"YulVariableDeclaration","src":"20718:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"20733:4:27","nodeType":"YulLiteral","src":"20733:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20727:5:27","nodeType":"YulIdentifier","src":"20727:5:27"},"nativeSrc":"20727:11:27","nodeType":"YulFunctionCall","src":"20727:11:27"},"variables":[{"name":"m","nativeSrc":"20722:1:27","nodeType":"YulTypedName","src":"20722:1:27","type":""}]},{"nativeSrc":"20751:29:27","nodeType":"YulVariableDeclaration","src":"20751:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"20764:3:27","nodeType":"YulLiteral","src":"20764:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"20769:10:27","nodeType":"YulLiteral","src":"20769:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"20760:3:27","nodeType":"YulIdentifier","src":"20760:3:27"},"nativeSrc":"20760:20:27","nodeType":"YulFunctionCall","src":"20760:20:27"},"variables":[{"name":"f","nativeSrc":"20755:1:27","nodeType":"YulTypedName","src":"20755:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"20800:1:27","nodeType":"YulIdentifier","src":"20800:1:27"},{"name":"f","nativeSrc":"20803:1:27","nodeType":"YulIdentifier","src":"20803:1:27"}],"functionName":{"name":"mstore","nativeSrc":"20793:6:27","nodeType":"YulIdentifier","src":"20793:6:27"},"nativeSrc":"20793:12:27","nodeType":"YulFunctionCall","src":"20793:12:27"},"nativeSrc":"20793:12:27","nodeType":"YulExpressionStatement","src":"20793:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"20888:1:27","nodeType":"YulIdentifier","src":"20888:1:27"},{"kind":"number","nativeSrc":"20891:4:27","nodeType":"YulLiteral","src":"20891:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"20884:3:27","nodeType":"YulIdentifier","src":"20884:3:27"},"nativeSrc":"20884:12:27","nodeType":"YulFunctionCall","src":"20884:12:27"},{"name":"hash","nativeSrc":"20898:4:27","nodeType":"YulIdentifier","src":"20898:4:27"}],"functionName":{"name":"mstore","nativeSrc":"20877:6:27","nodeType":"YulIdentifier","src":"20877:6:27"},"nativeSrc":"20877:26:27","nodeType":"YulFunctionCall","src":"20877:26:27"},"nativeSrc":"20877:26:27","nodeType":"YulExpressionStatement","src":"20877:26:27"},{"nativeSrc":"20916:21:27","nodeType":"YulVariableDeclaration","src":"20916:21:27","value":{"arguments":[{"name":"m","nativeSrc":"20929:1:27","nodeType":"YulIdentifier","src":"20929:1:27"},{"kind":"number","nativeSrc":"20932:4:27","nodeType":"YulLiteral","src":"20932:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"20925:3:27","nodeType":"YulIdentifier","src":"20925:3:27"},"nativeSrc":"20925:12:27","nodeType":"YulFunctionCall","src":"20925:12:27"},"variables":[{"name":"d","nativeSrc":"20920:1:27","nodeType":"YulTypedName","src":"20920:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"20957:1:27","nodeType":"YulIdentifier","src":"20957:1:27"},{"kind":"number","nativeSrc":"20960:4:27","nodeType":"YulLiteral","src":"20960:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"20950:6:27","nodeType":"YulIdentifier","src":"20950:6:27"},"nativeSrc":"20950:15:27","nodeType":"YulFunctionCall","src":"20950:15:27"},"nativeSrc":"20950:15:27","nodeType":"YulExpressionStatement","src":"20950:15:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21039:1:27","nodeType":"YulIdentifier","src":"21039:1:27"},{"kind":"number","nativeSrc":"21042:4:27","nodeType":"YulLiteral","src":"21042:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"21035:3:27","nodeType":"YulIdentifier","src":"21035:3:27"},"nativeSrc":"21035:12:27","nodeType":"YulFunctionCall","src":"21035:12:27"},{"kind":"number","nativeSrc":"21049:2:27","nodeType":"YulLiteral","src":"21049:2:27","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"21028:6:27","nodeType":"YulIdentifier","src":"21028:6:27"},"nativeSrc":"21028:24:27","nodeType":"YulFunctionCall","src":"21028:24:27"},"nativeSrc":"21028:24:27","nodeType":"YulExpressionStatement","src":"21028:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21104:1:27","nodeType":"YulIdentifier","src":"21104:1:27"},{"kind":"number","nativeSrc":"21107:4:27","nodeType":"YulLiteral","src":"21107:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"21100:3:27","nodeType":"YulIdentifier","src":"21100:3:27"},"nativeSrc":"21100:12:27","nodeType":"YulFunctionCall","src":"21100:12:27"},{"name":"r","nativeSrc":"21114:1:27","nodeType":"YulIdentifier","src":"21114:1:27"}],"functionName":{"name":"mstore","nativeSrc":"21093:6:27","nodeType":"YulIdentifier","src":"21093:6:27"},"nativeSrc":"21093:23:27","nodeType":"YulFunctionCall","src":"21093:23:27"},"nativeSrc":"21093:23:27","nodeType":"YulExpressionStatement","src":"21093:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21148:1:27","nodeType":"YulIdentifier","src":"21148:1:27"},{"kind":"number","nativeSrc":"21151:4:27","nodeType":"YulLiteral","src":"21151:4:27","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"21144:3:27","nodeType":"YulIdentifier","src":"21144:3:27"},"nativeSrc":"21144:12:27","nodeType":"YulFunctionCall","src":"21144:12:27"},{"arguments":[{"kind":"number","nativeSrc":"21162:1:27","nodeType":"YulLiteral","src":"21162:1:27","type":"","value":"1"},{"arguments":[{"kind":"number","nativeSrc":"21169:1:27","nodeType":"YulLiteral","src":"21169:1:27","type":"","value":"1"},{"name":"vs","nativeSrc":"21172:2:27","nodeType":"YulIdentifier","src":"21172:2:27"}],"functionName":{"name":"shl","nativeSrc":"21165:3:27","nodeType":"YulIdentifier","src":"21165:3:27"},"nativeSrc":"21165:10:27","nodeType":"YulFunctionCall","src":"21165:10:27"}],"functionName":{"name":"shr","nativeSrc":"21158:3:27","nodeType":"YulIdentifier","src":"21158:3:27"},"nativeSrc":"21158:18:27","nodeType":"YulFunctionCall","src":"21158:18:27"}],"functionName":{"name":"mstore","nativeSrc":"21137:6:27","nodeType":"YulIdentifier","src":"21137:6:27"},"nativeSrc":"21137:40:27","nodeType":"YulFunctionCall","src":"21137:40:27"},"nativeSrc":"21137:40:27","nodeType":"YulExpressionStatement","src":"21137:40:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"21210:1:27","nodeType":"YulIdentifier","src":"21210:1:27"},{"kind":"number","nativeSrc":"21213:4:27","nodeType":"YulLiteral","src":"21213:4:27","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"21206:3:27","nodeType":"YulIdentifier","src":"21206:3:27"},"nativeSrc":"21206:12:27","nodeType":"YulFunctionCall","src":"21206:12:27"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"21228:3:27","nodeType":"YulLiteral","src":"21228:3:27","type":"","value":"255"},{"name":"vs","nativeSrc":"21233:2:27","nodeType":"YulIdentifier","src":"21233:2:27"}],"functionName":{"name":"shr","nativeSrc":"21224:3:27","nodeType":"YulIdentifier","src":"21224:3:27"},"nativeSrc":"21224:12:27","nodeType":"YulFunctionCall","src":"21224:12:27"},{"kind":"number","nativeSrc":"21238:2:27","nodeType":"YulLiteral","src":"21238:2:27","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"21220:3:27","nodeType":"YulIdentifier","src":"21220:3:27"},"nativeSrc":"21220:21:27","nodeType":"YulFunctionCall","src":"21220:21:27"}],"functionName":{"name":"mstore8","nativeSrc":"21198:7:27","nodeType":"YulIdentifier","src":"21198:7:27"},"nativeSrc":"21198:44:27","nodeType":"YulFunctionCall","src":"21198:44:27"},"nativeSrc":"21198:44:27","nodeType":"YulExpressionStatement","src":"21198:44:27"},{"nativeSrc":"21306:718:27","nodeType":"YulAssignment","src":"21306:718:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"21437:1:27","nodeType":"YulIdentifier","src":"21437:1:27"}],"functionName":{"name":"mload","nativeSrc":"21431:5:27","nodeType":"YulIdentifier","src":"21431:5:27"},"nativeSrc":"21431:8:27","nodeType":"YulFunctionCall","src":"21431:8:27"},{"name":"f","nativeSrc":"21441:1:27","nodeType":"YulIdentifier","src":"21441:1:27"}],"functionName":{"name":"eq","nativeSrc":"21428:2:27","nodeType":"YulIdentifier","src":"21428:2:27"},"nativeSrc":"21428:15:27","nodeType":"YulFunctionCall","src":"21428:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"21693:3:27","nodeType":"YulIdentifier","src":"21693:3:27"},"nativeSrc":"21693:5:27","nodeType":"YulFunctionCall","src":"21693:5:27"},{"name":"signer","nativeSrc":"21738:6:27","nodeType":"YulIdentifier","src":"21738:6:27"},{"name":"m","nativeSrc":"21791:1:27","nodeType":"YulIdentifier","src":"21791:1:27"},{"kind":"number","nativeSrc":"21847:4:27","nodeType":"YulLiteral","src":"21847:4:27","type":"","value":"0xa5"},{"name":"d","nativeSrc":"21906:1:27","nodeType":"YulIdentifier","src":"21906:1:27"},{"kind":"number","nativeSrc":"21954:4:27","nodeType":"YulLiteral","src":"21954:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"21661:10:27","nodeType":"YulIdentifier","src":"21661:10:27"},"nativeSrc":"21661:349:27","nodeType":"YulFunctionCall","src":"21661:349:27"}],"functionName":{"name":"and","nativeSrc":"21317:3:27","nodeType":"YulIdentifier","src":"21317:3:27"},"nativeSrc":"21317:707:27","nodeType":"YulFunctionCall","src":"21317:707:27"},"variableNames":[{"name":"isValid","nativeSrc":"21306:7:27","nodeType":"YulIdentifier","src":"21306:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11456,"isOffset":false,"isSlot":false,"src":"20898:4:27","valueSize":1},{"declaration":11463,"isOffset":false,"isSlot":false,"src":"21306:7:27","valueSize":1},{"declaration":11458,"isOffset":false,"isSlot":false,"src":"21114:1:27","valueSize":1},{"declaration":11454,"isOffset":false,"isSlot":false,"src":"21738:6:27","valueSize":1},{"declaration":11460,"isOffset":false,"isSlot":false,"src":"21172:2:27","valueSize":1},{"declaration":11460,"isOffset":false,"isSlot":false,"src":"21233:2:27","valueSize":1}],"id":11465,"nodeType":"InlineAssembly","src":"20695:1339:27"}]},"documentation":{"id":11452,"nodeType":"StructuredDocumentation","src":"20371:112:27","text":"@dev Returns whether the signature (`r`, `vs`) is valid for `hash`\n for an ERC1271 `signer` contract."},"id":11467,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"20497:26:27","nodeType":"FunctionDefinition","parameters":{"id":11461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11454,"mutability":"mutable","name":"signer","nameLocation":"20532:6:27","nodeType":"VariableDeclaration","scope":11467,"src":"20524:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11453,"name":"address","nodeType":"ElementaryTypeName","src":"20524:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11456,"mutability":"mutable","name":"hash","nameLocation":"20548:4:27","nodeType":"VariableDeclaration","scope":11467,"src":"20540:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20540:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11458,"mutability":"mutable","name":"r","nameLocation":"20562:1:27","nodeType":"VariableDeclaration","scope":11467,"src":"20554:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11457,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20554:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11460,"mutability":"mutable","name":"vs","nameLocation":"20573:2:27","nodeType":"VariableDeclaration","scope":11467,"src":"20565:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20565:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20523:53:27"},"returnParameters":{"id":11464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11463,"mutability":"mutable","name":"isValid","nameLocation":"20629:7:27","nodeType":"VariableDeclaration","scope":11467,"src":"20624:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11462,"name":"bool","nodeType":"ElementaryTypeName","src":"20624:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20623:14:27"},"scope":11514,"src":"20488:1552:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11484,"nodeType":"Block","src":"22329:1361:27","statements":[{"AST":{"nativeSrc":"22391:1293:27","nodeType":"YulBlock","src":"22391:1293:27","statements":[{"nativeSrc":"22405:20:27","nodeType":"YulVariableDeclaration","src":"22405:20:27","value":{"arguments":[{"kind":"number","nativeSrc":"22420:4:27","nodeType":"YulLiteral","src":"22420:4:27","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"22414:5:27","nodeType":"YulIdentifier","src":"22414:5:27"},"nativeSrc":"22414:11:27","nodeType":"YulFunctionCall","src":"22414:11:27"},"variables":[{"name":"m","nativeSrc":"22409:1:27","nodeType":"YulTypedName","src":"22409:1:27","type":""}]},{"nativeSrc":"22438:29:27","nodeType":"YulVariableDeclaration","src":"22438:29:27","value":{"arguments":[{"kind":"number","nativeSrc":"22451:3:27","nodeType":"YulLiteral","src":"22451:3:27","type":"","value":"224"},{"kind":"number","nativeSrc":"22456:10:27","nodeType":"YulLiteral","src":"22456:10:27","type":"","value":"0x1626ba7e"}],"functionName":{"name":"shl","nativeSrc":"22447:3:27","nodeType":"YulIdentifier","src":"22447:3:27"},"nativeSrc":"22447:20:27","nodeType":"YulFunctionCall","src":"22447:20:27"},"variables":[{"name":"f","nativeSrc":"22442:1:27","nodeType":"YulTypedName","src":"22442:1:27","type":""}]},{"expression":{"arguments":[{"name":"m","nativeSrc":"22487:1:27","nodeType":"YulIdentifier","src":"22487:1:27"},{"name":"f","nativeSrc":"22490:1:27","nodeType":"YulIdentifier","src":"22490:1:27"}],"functionName":{"name":"mstore","nativeSrc":"22480:6:27","nodeType":"YulIdentifier","src":"22480:6:27"},"nativeSrc":"22480:12:27","nodeType":"YulFunctionCall","src":"22480:12:27"},"nativeSrc":"22480:12:27","nodeType":"YulExpressionStatement","src":"22480:12:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22575:1:27","nodeType":"YulIdentifier","src":"22575:1:27"},{"kind":"number","nativeSrc":"22578:4:27","nodeType":"YulLiteral","src":"22578:4:27","type":"","value":"0x04"}],"functionName":{"name":"add","nativeSrc":"22571:3:27","nodeType":"YulIdentifier","src":"22571:3:27"},"nativeSrc":"22571:12:27","nodeType":"YulFunctionCall","src":"22571:12:27"},{"name":"hash","nativeSrc":"22585:4:27","nodeType":"YulIdentifier","src":"22585:4:27"}],"functionName":{"name":"mstore","nativeSrc":"22564:6:27","nodeType":"YulIdentifier","src":"22564:6:27"},"nativeSrc":"22564:26:27","nodeType":"YulFunctionCall","src":"22564:26:27"},"nativeSrc":"22564:26:27","nodeType":"YulExpressionStatement","src":"22564:26:27"},{"nativeSrc":"22603:21:27","nodeType":"YulVariableDeclaration","src":"22603:21:27","value":{"arguments":[{"name":"m","nativeSrc":"22616:1:27","nodeType":"YulIdentifier","src":"22616:1:27"},{"kind":"number","nativeSrc":"22619:4:27","nodeType":"YulLiteral","src":"22619:4:27","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"22612:3:27","nodeType":"YulIdentifier","src":"22612:3:27"},"nativeSrc":"22612:12:27","nodeType":"YulFunctionCall","src":"22612:12:27"},"variables":[{"name":"d","nativeSrc":"22607:1:27","nodeType":"YulTypedName","src":"22607:1:27","type":""}]},{"expression":{"arguments":[{"name":"d","nativeSrc":"22644:1:27","nodeType":"YulIdentifier","src":"22644:1:27"},{"kind":"number","nativeSrc":"22647:4:27","nodeType":"YulLiteral","src":"22647:4:27","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"22637:6:27","nodeType":"YulIdentifier","src":"22637:6:27"},"nativeSrc":"22637:15:27","nodeType":"YulFunctionCall","src":"22637:15:27"},"nativeSrc":"22637:15:27","nodeType":"YulExpressionStatement","src":"22637:15:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22726:1:27","nodeType":"YulIdentifier","src":"22726:1:27"},{"kind":"number","nativeSrc":"22729:4:27","nodeType":"YulLiteral","src":"22729:4:27","type":"","value":"0x44"}],"functionName":{"name":"add","nativeSrc":"22722:3:27","nodeType":"YulIdentifier","src":"22722:3:27"},"nativeSrc":"22722:12:27","nodeType":"YulFunctionCall","src":"22722:12:27"},{"kind":"number","nativeSrc":"22736:2:27","nodeType":"YulLiteral","src":"22736:2:27","type":"","value":"65"}],"functionName":{"name":"mstore","nativeSrc":"22715:6:27","nodeType":"YulIdentifier","src":"22715:6:27"},"nativeSrc":"22715:24:27","nodeType":"YulFunctionCall","src":"22715:24:27"},"nativeSrc":"22715:24:27","nodeType":"YulExpressionStatement","src":"22715:24:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22791:1:27","nodeType":"YulIdentifier","src":"22791:1:27"},{"kind":"number","nativeSrc":"22794:4:27","nodeType":"YulLiteral","src":"22794:4:27","type":"","value":"0x64"}],"functionName":{"name":"add","nativeSrc":"22787:3:27","nodeType":"YulIdentifier","src":"22787:3:27"},"nativeSrc":"22787:12:27","nodeType":"YulFunctionCall","src":"22787:12:27"},{"name":"r","nativeSrc":"22801:1:27","nodeType":"YulIdentifier","src":"22801:1:27"}],"functionName":{"name":"mstore","nativeSrc":"22780:6:27","nodeType":"YulIdentifier","src":"22780:6:27"},"nativeSrc":"22780:23:27","nodeType":"YulFunctionCall","src":"22780:23:27"},"nativeSrc":"22780:23:27","nodeType":"YulExpressionStatement","src":"22780:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22835:1:27","nodeType":"YulIdentifier","src":"22835:1:27"},{"kind":"number","nativeSrc":"22838:4:27","nodeType":"YulLiteral","src":"22838:4:27","type":"","value":"0x84"}],"functionName":{"name":"add","nativeSrc":"22831:3:27","nodeType":"YulIdentifier","src":"22831:3:27"},"nativeSrc":"22831:12:27","nodeType":"YulFunctionCall","src":"22831:12:27"},{"name":"s","nativeSrc":"22845:1:27","nodeType":"YulIdentifier","src":"22845:1:27"}],"functionName":{"name":"mstore","nativeSrc":"22824:6:27","nodeType":"YulIdentifier","src":"22824:6:27"},"nativeSrc":"22824:23:27","nodeType":"YulFunctionCall","src":"22824:23:27"},"nativeSrc":"22824:23:27","nodeType":"YulExpressionStatement","src":"22824:23:27"},{"expression":{"arguments":[{"arguments":[{"name":"m","nativeSrc":"22880:1:27","nodeType":"YulIdentifier","src":"22880:1:27"},{"kind":"number","nativeSrc":"22883:4:27","nodeType":"YulLiteral","src":"22883:4:27","type":"","value":"0xa4"}],"functionName":{"name":"add","nativeSrc":"22876:3:27","nodeType":"YulIdentifier","src":"22876:3:27"},"nativeSrc":"22876:12:27","nodeType":"YulFunctionCall","src":"22876:12:27"},{"name":"v","nativeSrc":"22890:1:27","nodeType":"YulIdentifier","src":"22890:1:27"}],"functionName":{"name":"mstore8","nativeSrc":"22868:7:27","nodeType":"YulIdentifier","src":"22868:7:27"},"nativeSrc":"22868:24:27","nodeType":"YulFunctionCall","src":"22868:24:27"},"nativeSrc":"22868:24:27","nodeType":"YulExpressionStatement","src":"22868:24:27"},{"nativeSrc":"22956:718:27","nodeType":"YulAssignment","src":"22956:718:27","value":{"arguments":[{"arguments":[{"arguments":[{"name":"d","nativeSrc":"23087:1:27","nodeType":"YulIdentifier","src":"23087:1:27"}],"functionName":{"name":"mload","nativeSrc":"23081:5:27","nodeType":"YulIdentifier","src":"23081:5:27"},"nativeSrc":"23081:8:27","nodeType":"YulFunctionCall","src":"23081:8:27"},{"name":"f","nativeSrc":"23091:1:27","nodeType":"YulIdentifier","src":"23091:1:27"}],"functionName":{"name":"eq","nativeSrc":"23078:2:27","nodeType":"YulIdentifier","src":"23078:2:27"},"nativeSrc":"23078:15:27","nodeType":"YulFunctionCall","src":"23078:15:27"},{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"23343:3:27","nodeType":"YulIdentifier","src":"23343:3:27"},"nativeSrc":"23343:5:27","nodeType":"YulFunctionCall","src":"23343:5:27"},{"name":"signer","nativeSrc":"23388:6:27","nodeType":"YulIdentifier","src":"23388:6:27"},{"name":"m","nativeSrc":"23441:1:27","nodeType":"YulIdentifier","src":"23441:1:27"},{"kind":"number","nativeSrc":"23497:4:27","nodeType":"YulLiteral","src":"23497:4:27","type":"","value":"0xa5"},{"name":"d","nativeSrc":"23556:1:27","nodeType":"YulIdentifier","src":"23556:1:27"},{"kind":"number","nativeSrc":"23604:4:27","nodeType":"YulLiteral","src":"23604:4:27","type":"","value":"0x20"}],"functionName":{"name":"staticcall","nativeSrc":"23311:10:27","nodeType":"YulIdentifier","src":"23311:10:27"},"nativeSrc":"23311:349:27","nodeType":"YulFunctionCall","src":"23311:349:27"}],"functionName":{"name":"and","nativeSrc":"22967:3:27","nodeType":"YulIdentifier","src":"22967:3:27"},"nativeSrc":"22967:707:27","nodeType":"YulFunctionCall","src":"22967:707:27"},"variableNames":[{"name":"isValid","nativeSrc":"22956:7:27","nodeType":"YulIdentifier","src":"22956:7:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11472,"isOffset":false,"isSlot":false,"src":"22585:4:27","valueSize":1},{"declaration":11481,"isOffset":false,"isSlot":false,"src":"22956:7:27","valueSize":1},{"declaration":11476,"isOffset":false,"isSlot":false,"src":"22801:1:27","valueSize":1},{"declaration":11478,"isOffset":false,"isSlot":false,"src":"22845:1:27","valueSize":1},{"declaration":11470,"isOffset":false,"isSlot":false,"src":"23388:6:27","valueSize":1},{"declaration":11474,"isOffset":false,"isSlot":false,"src":"22890:1:27","valueSize":1}],"id":11483,"nodeType":"InlineAssembly","src":"22382:1302:27"}]},"documentation":{"id":11468,"nodeType":"StructuredDocumentation","src":"22046:116:27","text":"@dev Returns whether the signature (`v`, `r`, `s`) is valid for `hash`\n for an ERC1271 `signer` contract."},"id":11485,"implemented":true,"kind":"function","modifiers":[],"name":"isValidERC1271SignatureNow","nameLocation":"22176:26:27","nodeType":"FunctionDefinition","parameters":{"id":11479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11470,"mutability":"mutable","name":"signer","nameLocation":"22211:6:27","nodeType":"VariableDeclaration","scope":11485,"src":"22203:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11469,"name":"address","nodeType":"ElementaryTypeName","src":"22203:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11472,"mutability":"mutable","name":"hash","nameLocation":"22227:4:27","nodeType":"VariableDeclaration","scope":11485,"src":"22219:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22219:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11474,"mutability":"mutable","name":"v","nameLocation":"22239:1:27","nodeType":"VariableDeclaration","scope":11485,"src":"22233:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11473,"name":"uint8","nodeType":"ElementaryTypeName","src":"22233:5:27","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":11476,"mutability":"mutable","name":"r","nameLocation":"22250:1:27","nodeType":"VariableDeclaration","scope":11485,"src":"22242:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22242:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11478,"mutability":"mutable","name":"s","nameLocation":"22261:1:27","nodeType":"VariableDeclaration","scope":11485,"src":"22253:9:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22253:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22202:61:27"},"returnParameters":{"id":11482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11481,"mutability":"mutable","name":"isValid","nameLocation":"22316:7:27","nodeType":"VariableDeclaration","scope":11485,"src":"22311:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11480,"name":"bool","nodeType":"ElementaryTypeName","src":"22311:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22310:14:27"},"scope":11514,"src":"22167:1523:27","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11494,"nodeType":"Block","src":"24311:324:27","statements":[{"AST":{"nativeSrc":"24373:256:27","nodeType":"YulBlock","src":"24373:256:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24394:4:27","nodeType":"YulLiteral","src":"24394:4:27","type":"","value":"0x20"},{"name":"hash","nativeSrc":"24400:4:27","nodeType":"YulIdentifier","src":"24400:4:27"}],"functionName":{"name":"mstore","nativeSrc":"24387:6:27","nodeType":"YulIdentifier","src":"24387:6:27"},"nativeSrc":"24387:18:27","nodeType":"YulFunctionCall","src":"24387:18:27"},"nativeSrc":"24387:18:27","nodeType":"YulExpressionStatement","src":"24387:18:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24468:4:27","nodeType":"YulLiteral","src":"24468:4:27","type":"","value":"0x00"},{"hexValue":"0000000019457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nativeSrc":"24474:50:27","nodeType":"YulLiteral","src":"24474:50:27","type":"","value":"\u0000\u0000\u0000\u0000\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nativeSrc":"24461:6:27","nodeType":"YulIdentifier","src":"24461:6:27"},"nativeSrc":"24461:64:27","nodeType":"YulFunctionCall","src":"24461:64:27"},"nativeSrc":"24461:64:27","nodeType":"YulExpressionStatement","src":"24461:64:27"},{"nativeSrc":"24551:31:27","nodeType":"YulAssignment","src":"24551:31:27","value":{"arguments":[{"kind":"number","nativeSrc":"24571:4:27","nodeType":"YulLiteral","src":"24571:4:27","type":"","value":"0x04"},{"kind":"number","nativeSrc":"24577:4:27","nodeType":"YulLiteral","src":"24577:4:27","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nativeSrc":"24561:9:27","nodeType":"YulIdentifier","src":"24561:9:27"},"nativeSrc":"24561:21:27","nodeType":"YulFunctionCall","src":"24561:21:27"},"variableNames":[{"name":"result","nativeSrc":"24551:6:27","nodeType":"YulIdentifier","src":"24551:6:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11488,"isOffset":false,"isSlot":false,"src":"24400:4:27","valueSize":1},{"declaration":11491,"isOffset":false,"isSlot":false,"src":"24551:6:27","valueSize":1}],"id":11493,"nodeType":"InlineAssembly","src":"24364:265:27"}]},"documentation":{"id":11486,"nodeType":"StructuredDocumentation","src":"23979:242:27","text":"@dev Returns an Ethereum Signed Message, created from a `hash`.\n This produces a hash corresponding to the one signed with the\n [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n JSON-RPC method as part of EIP-191."},"id":11495,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"24235:22:27","nodeType":"FunctionDefinition","parameters":{"id":11489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11488,"mutability":"mutable","name":"hash","nameLocation":"24266:4:27","nodeType":"VariableDeclaration","scope":11495,"src":"24258:12:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24258:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24257:14:27"},"returnParameters":{"id":11492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11491,"mutability":"mutable","name":"result","nameLocation":"24303:6:27","nodeType":"VariableDeclaration","scope":11495,"src":"24295:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24295:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24294:16:27"},"scope":11514,"src":"24226:409:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11504,"nodeType":"Block","src":"25028:1019:27","statements":[{"AST":{"nativeSrc":"25090:951:27","nodeType":"YulBlock","src":"25090:951:27","statements":[{"nativeSrc":"25104:23:27","nodeType":"YulVariableDeclaration","src":"25104:23:27","value":{"arguments":[{"name":"s","nativeSrc":"25125:1:27","nodeType":"YulIdentifier","src":"25125:1:27"}],"functionName":{"name":"mload","nativeSrc":"25119:5:27","nodeType":"YulIdentifier","src":"25119:5:27"},"nativeSrc":"25119:8:27","nodeType":"YulFunctionCall","src":"25119:8:27"},"variables":[{"name":"sLength","nativeSrc":"25108:7:27","nodeType":"YulTypedName","src":"25108:7:27","type":""}]},{"nativeSrc":"25140:13:27","nodeType":"YulVariableDeclaration","src":"25140:13:27","value":{"kind":"number","nativeSrc":"25149:4:27","nodeType":"YulLiteral","src":"25149:4:27","type":"","value":"0x20"},"variables":[{"name":"o","nativeSrc":"25144:1:27","nodeType":"YulTypedName","src":"25144:1:27","type":""}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"25173:1:27","nodeType":"YulIdentifier","src":"25173:1:27"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","kind":"string","nativeSrc":"25176:32:27","nodeType":"YulLiteral","src":"25176:32:27","type":"","value":"\u0019Ethereum Signed Message:\n"}],"functionName":{"name":"mstore","nativeSrc":"25166:6:27","nodeType":"YulIdentifier","src":"25166:6:27"},"nativeSrc":"25166:43:27","nodeType":"YulFunctionCall","src":"25166:43:27"},"nativeSrc":"25166:43:27","nodeType":"YulExpressionStatement","src":"25166:43:27"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25261:4:27","nodeType":"YulLiteral","src":"25261:4:27","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25267:4:27","nodeType":"YulLiteral","src":"25267:4:27","type":"","value":"0x00"}],"functionName":{"name":"mstore","nativeSrc":"25254:6:27","nodeType":"YulIdentifier","src":"25254:6:27"},"nativeSrc":"25254:18:27","nodeType":"YulFunctionCall","src":"25254:18:27"},"nativeSrc":"25254:18:27","nodeType":"YulExpressionStatement","src":"25254:18:27"},{"body":{"nativeSrc":"25409:177:27","nodeType":"YulBlock","src":"25409:177:27","statements":[{"nativeSrc":"25427:14:27","nodeType":"YulAssignment","src":"25427:14:27","value":{"arguments":[{"name":"o","nativeSrc":"25436:1:27","nodeType":"YulIdentifier","src":"25436:1:27"},{"kind":"number","nativeSrc":"25439:1:27","nodeType":"YulLiteral","src":"25439:1:27","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"25432:3:27","nodeType":"YulIdentifier","src":"25432:3:27"},"nativeSrc":"25432:9:27","nodeType":"YulFunctionCall","src":"25432:9:27"},"variableNames":[{"name":"o","nativeSrc":"25427:1:27","nodeType":"YulIdentifier","src":"25427:1:27"}]},{"expression":{"arguments":[{"name":"o","nativeSrc":"25466:1:27","nodeType":"YulIdentifier","src":"25466:1:27"},{"arguments":[{"kind":"number","nativeSrc":"25473:2:27","nodeType":"YulLiteral","src":"25473:2:27","type":"","value":"48"},{"arguments":[{"name":"temp","nativeSrc":"25481:4:27","nodeType":"YulIdentifier","src":"25481:4:27"},{"kind":"number","nativeSrc":"25487:2:27","nodeType":"YulLiteral","src":"25487:2:27","type":"","value":"10"}],"functionName":{"name":"mod","nativeSrc":"25477:3:27","nodeType":"YulIdentifier","src":"25477:3:27"},"nativeSrc":"25477:13:27","nodeType":"YulFunctionCall","src":"25477:13:27"}],"functionName":{"name":"add","nativeSrc":"25469:3:27","nodeType":"YulIdentifier","src":"25469:3:27"},"nativeSrc":"25469:22:27","nodeType":"YulFunctionCall","src":"25469:22:27"}],"functionName":{"name":"mstore8","nativeSrc":"25458:7:27","nodeType":"YulIdentifier","src":"25458:7:27"},"nativeSrc":"25458:34:27","nodeType":"YulFunctionCall","src":"25458:34:27"},"nativeSrc":"25458:34:27","nodeType":"YulExpressionStatement","src":"25458:34:27"},{"nativeSrc":"25509:21:27","nodeType":"YulAssignment","src":"25509:21:27","value":{"arguments":[{"name":"temp","nativeSrc":"25521:4:27","nodeType":"YulIdentifier","src":"25521:4:27"},{"kind":"number","nativeSrc":"25527:2:27","nodeType":"YulLiteral","src":"25527:2:27","type":"","value":"10"}],"functionName":{"name":"div","nativeSrc":"25517:3:27","nodeType":"YulIdentifier","src":"25517:3:27"},"nativeSrc":"25517:13:27","nodeType":"YulFunctionCall","src":"25517:13:27"},"variableNames":[{"name":"temp","nativeSrc":"25509:4:27","nodeType":"YulIdentifier","src":"25509:4:27"}]},{"body":{"nativeSrc":"25563:9:27","nodeType":"YulBlock","src":"25563:9:27","statements":[{"nativeSrc":"25565:5:27","nodeType":"YulBreak","src":"25565:5:27"}]},"condition":{"arguments":[{"name":"temp","nativeSrc":"25557:4:27","nodeType":"YulIdentifier","src":"25557:4:27"}],"functionName":{"name":"iszero","nativeSrc":"25550:6:27","nodeType":"YulIdentifier","src":"25550:6:27"},"nativeSrc":"25550:12:27","nodeType":"YulFunctionCall","src":"25550:12:27"},"nativeSrc":"25547:25:27","nodeType":"YulIf","src":"25547:25:27"}]},"condition":{"kind":"number","nativeSrc":"25404:1:27","nodeType":"YulLiteral","src":"25404:1:27","type":"","value":"1"},"nativeSrc":"25376:210:27","nodeType":"YulForLoop","post":{"nativeSrc":"25406:2:27","nodeType":"YulBlock","src":"25406:2:27","statements":[]},"pre":{"nativeSrc":"25380:23:27","nodeType":"YulBlock","src":"25380:23:27","statements":[{"nativeSrc":"25382:19:27","nodeType":"YulVariableDeclaration","src":"25382:19:27","value":{"name":"sLength","nativeSrc":"25394:7:27","nodeType":"YulIdentifier","src":"25394:7:27"},"variables":[{"name":"temp","nativeSrc":"25386:4:27","nodeType":"YulTypedName","src":"25386:4:27","type":""}]}]},"src":"25376:210:27"},{"nativeSrc":"25599:21:27","nodeType":"YulVariableDeclaration","src":"25599:21:27","value":{"arguments":[{"kind":"number","nativeSrc":"25612:4:27","nodeType":"YulLiteral","src":"25612:4:27","type":"","value":"0x3a"},{"name":"o","nativeSrc":"25618:1:27","nodeType":"YulIdentifier","src":"25618:1:27"}],"functionName":{"name":"sub","nativeSrc":"25608:3:27","nodeType":"YulIdentifier","src":"25608:3:27"},"nativeSrc":"25608:12:27","nodeType":"YulFunctionCall","src":"25608:12:27"},"variables":[{"name":"n","nativeSrc":"25603:1:27","nodeType":"YulTypedName","src":"25603:1:27","type":""}]},{"expression":{"arguments":[{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25776:14:27","nodeType":"YulIdentifier","src":"25776:14:27"},"nativeSrc":"25776:16:27","nodeType":"YulFunctionCall","src":"25776:16:27"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"25794:14:27","nodeType":"YulIdentifier","src":"25794:14:27"},"nativeSrc":"25794:16:27","nodeType":"YulFunctionCall","src":"25794:16:27"},{"arguments":[{"name":"n","nativeSrc":"25815:1:27","nodeType":"YulIdentifier","src":"25815:1:27"},{"kind":"number","nativeSrc":"25818:4:27","nodeType":"YulLiteral","src":"25818:4:27","type":"","value":"0x20"}],"functionName":{"name":"gt","nativeSrc":"25812:2:27","nodeType":"YulIdentifier","src":"25812:2:27"},"nativeSrc":"25812:11:27","nodeType":"YulFunctionCall","src":"25812:11:27"}],"functionName":{"name":"returndatacopy","nativeSrc":"25761:14:27","nodeType":"YulIdentifier","src":"25761:14:27"},"nativeSrc":"25761:63:27","nodeType":"YulFunctionCall","src":"25761:63:27"},"nativeSrc":"25761:63:27","nodeType":"YulExpressionStatement","src":"25761:63:27"},{"expression":{"arguments":[{"name":"s","nativeSrc":"25844:1:27","nodeType":"YulIdentifier","src":"25844:1:27"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"25856:4:27","nodeType":"YulLiteral","src":"25856:4:27","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"25850:5:27","nodeType":"YulIdentifier","src":"25850:5:27"},"nativeSrc":"25850:11:27","nodeType":"YulFunctionCall","src":"25850:11:27"},{"arguments":[{"name":"n","nativeSrc":"25869:1:27","nodeType":"YulIdentifier","src":"25869:1:27"}],"functionName":{"name":"mload","nativeSrc":"25863:5:27","nodeType":"YulIdentifier","src":"25863:5:27"},"nativeSrc":"25863:8:27","nodeType":"YulFunctionCall","src":"25863:8:27"}],"functionName":{"name":"or","nativeSrc":"25847:2:27","nodeType":"YulIdentifier","src":"25847:2:27"},"nativeSrc":"25847:25:27","nodeType":"YulFunctionCall","src":"25847:25:27"}],"functionName":{"name":"mstore","nativeSrc":"25837:6:27","nodeType":"YulIdentifier","src":"25837:6:27"},"nativeSrc":"25837:36:27","nodeType":"YulFunctionCall","src":"25837:36:27"},"nativeSrc":"25837:36:27","nodeType":"YulExpressionStatement","src":"25837:36:27"},{"nativeSrc":"25919:58:27","nodeType":"YulAssignment","src":"25919:58:27","value":{"arguments":[{"arguments":[{"name":"s","nativeSrc":"25943:1:27","nodeType":"YulIdentifier","src":"25943:1:27"},{"arguments":[{"kind":"number","nativeSrc":"25950:4:27","nodeType":"YulLiteral","src":"25950:4:27","type":"","value":"0x20"},{"name":"n","nativeSrc":"25956:1:27","nodeType":"YulIdentifier","src":"25956:1:27"}],"functionName":{"name":"sub","nativeSrc":"25946:3:27","nodeType":"YulIdentifier","src":"25946:3:27"},"nativeSrc":"25946:12:27","nodeType":"YulFunctionCall","src":"25946:12:27"}],"functionName":{"name":"add","nativeSrc":"25939:3:27","nodeType":"YulIdentifier","src":"25939:3:27"},"nativeSrc":"25939:20:27","nodeType":"YulFunctionCall","src":"25939:20:27"},{"arguments":[{"name":"n","nativeSrc":"25965:1:27","nodeType":"YulIdentifier","src":"25965:1:27"},{"name":"sLength","nativeSrc":"25968:7:27","nodeType":"YulIdentifier","src":"25968:7:27"}],"functionName":{"name":"add","nativeSrc":"25961:3:27","nodeType":"YulIdentifier","src":"25961:3:27"},"nativeSrc":"25961:15:27","nodeType":"YulFunctionCall","src":"25961:15:27"}],"functionName":{"name":"keccak256","nativeSrc":"25929:9:27","nodeType":"YulIdentifier","src":"25929:9:27"},"nativeSrc":"25929:48:27","nodeType":"YulFunctionCall","src":"25929:48:27"},"variableNames":[{"name":"result","nativeSrc":"25919:6:27","nodeType":"YulIdentifier","src":"25919:6:27"}]},{"expression":{"arguments":[{"name":"s","nativeSrc":"25997:1:27","nodeType":"YulIdentifier","src":"25997:1:27"},{"name":"sLength","nativeSrc":"26000:7:27","nodeType":"YulIdentifier","src":"26000:7:27"}],"functionName":{"name":"mstore","nativeSrc":"25990:6:27","nodeType":"YulIdentifier","src":"25990:6:27"},"nativeSrc":"25990:18:27","nodeType":"YulFunctionCall","src":"25990:18:27"},"nativeSrc":"25990:18:27","nodeType":"YulExpressionStatement","src":"25990:18:27"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11501,"isOffset":false,"isSlot":false,"src":"25919:6:27","valueSize":1},{"declaration":11498,"isOffset":false,"isSlot":false,"src":"25125:1:27","valueSize":1},{"declaration":11498,"isOffset":false,"isSlot":false,"src":"25844:1:27","valueSize":1},{"declaration":11498,"isOffset":false,"isSlot":false,"src":"25943:1:27","valueSize":1},{"declaration":11498,"isOffset":false,"isSlot":false,"src":"25997:1:27","valueSize":1}],"id":11503,"nodeType":"InlineAssembly","src":"25081:960:27"}]},"documentation":{"id":11496,"nodeType":"StructuredDocumentation","src":"24641:295:27","text":"@dev Returns an Ethereum Signed Message, created from `s`.\n This produces a hash corresponding to the one signed with the\n [`eth_sign`](https://eth.wiki/json-rpc/API#eth_sign)\n JSON-RPC method as part of EIP-191.\n Note: Supports lengths of `s` up to 999999 bytes."},"id":11505,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"24950:22:27","nodeType":"FunctionDefinition","parameters":{"id":11499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11498,"mutability":"mutable","name":"s","nameLocation":"24986:1:27","nodeType":"VariableDeclaration","scope":11505,"src":"24973:14:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11497,"name":"bytes","nodeType":"ElementaryTypeName","src":"24973:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"24972:16:27"},"returnParameters":{"id":11502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11501,"mutability":"mutable","name":"result","nameLocation":"25020:6:27","nodeType":"VariableDeclaration","scope":11505,"src":"25012:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25012:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25011:16:27"},"scope":11514,"src":"24941:1106:27","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11512,"nodeType":"Block","src":"26457:113:27","statements":[{"AST":{"nativeSrc":"26519:45:27","nodeType":"YulBlock","src":"26519:45:27","statements":[{"nativeSrc":"26533:21:27","nodeType":"YulAssignment","src":"26533:21:27","value":{"kind":"number","nativeSrc":"26553:1:27","nodeType":"YulLiteral","src":"26553:1:27","type":"","value":"0"},"variableNames":[{"name":"signature.length","nativeSrc":"26533:16:27","nodeType":"YulIdentifier","src":"26533:16:27"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"cancun","externalReferences":[{"declaration":11509,"isOffset":false,"isSlot":false,"src":"26533:16:27","suffix":"length","valueSize":1}],"id":11511,"nodeType":"InlineAssembly","src":"26510:54:27"}]},"documentation":{"id":11506,"nodeType":"StructuredDocumentation","src":"26336:41:27","text":"@dev Returns an empty calldata bytes."},"id":11513,"implemented":true,"kind":"function","modifiers":[],"name":"emptySignature","nameLocation":"26391:14:27","nodeType":"FunctionDefinition","parameters":{"id":11507,"nodeType":"ParameterList","parameters":[],"src":"26405:2:27"},"returnParameters":{"id":11510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11509,"mutability":"mutable","name":"signature","nameLocation":"26446:9:27","nodeType":"VariableDeclaration","scope":11513,"src":"26431:24:27","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11508,"name":"bytes","nodeType":"ElementaryTypeName","src":"26431:5:27","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26430:26:27"},"scope":11514,"src":"26382:188:27","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":11515,"src":"1438:25134:27","usedErrors":[],"usedEvents":[]}],"src":"32:26541:27"},"id":27},"contracts/BoostCore.sol":{"ast":{"absolutePath":"contracts/BoostCore.sol","exportedSymbols":{"Action":[13114],"AllowList":[13587],"BoostCore":[12294],"BoostError":[18343],"BoostLib":[18429],"BoostRegistry":[12709],"Budget":[15659],"Cloneable":[18509],"Incentive":[18196],"LibClone":[10078],"LibZip":[11000],"Ownable":[6409],"ReentrancyGuard":[11024],"SafeTransferLib":[11358],"Validator":[19130]},"id":12295,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":11516,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:28"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":11518,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":6410,"src":"62:49:28","symbolAliases":[{"foreign":{"id":11517,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"70:7:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":11520,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":10079,"src":"112:52:28","symbolAliases":[{"foreign":{"id":11519,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"120:8:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibZip.sol","file":"@solady/utils/LibZip.sol","id":11522,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":11001,"src":"165:48:28","symbolAliases":[{"foreign":{"id":11521,"name":"LibZip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11000,"src":"173:6:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":11524,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":11025,"src":"214:66:28","symbolAliases":[{"foreign":{"id":11523,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11024,"src":"222:15:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":11526,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":11359,"src":"281:66:28","symbolAliases":[{"foreign":{"id":11525,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"289:15:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":11528,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":18344,"src":"349:59:28","symbolAliases":[{"foreign":{"id":11527,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"357:10:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostLib.sol","file":"contracts/shared/BoostLib.sol","id":11530,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":18430,"src":"409:55:28","symbolAliases":[{"foreign":{"id":11529,"name":"BoostLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18429,"src":"417:8:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/BoostRegistry.sol","file":"contracts/BoostRegistry.sol","id":11532,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":12710,"src":"465:58:28","symbolAliases":[{"foreign":{"id":11531,"name":"BoostRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12709,"src":"473:13:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":11534,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":18510,"src":"524:57:28","symbolAliases":[{"foreign":{"id":11533,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"532:9:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":11536,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":13115,"src":"583:52:28","symbolAliases":[{"foreign":{"id":11535,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"591:6:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":11538,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":13588,"src":"636:61:28","symbolAliases":[{"foreign":{"id":11537,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"644:9:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":11540,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":15660,"src":"698:52:28","symbolAliases":[{"foreign":{"id":11539,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"706:6:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":11542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":18197,"src":"751:61:28","symbolAliases":[{"foreign":{"id":11541,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"759:9:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":11544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12295,"sourceUnit":19131,"src":"813:61:28","symbolAliases":[{"foreign":{"id":11543,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"821:9:28","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11546,"name":"Ownable","nameLocations":["1115:7:28"],"nodeType":"IdentifierPath","referencedDeclaration":6409,"src":"1115:7:28"},"id":11547,"nodeType":"InheritanceSpecifier","src":"1115:7:28"},{"baseName":{"id":11548,"name":"ReentrancyGuard","nameLocations":["1124:15:28"],"nodeType":"IdentifierPath","referencedDeclaration":11024,"src":"1124:15:28"},"id":11549,"nodeType":"InheritanceSpecifier","src":"1124:15:28"}],"canonicalName":"BoostCore","contractDependencies":[],"contractKind":"contract","documentation":{"id":11545,"nodeType":"StructuredDocumentation","src":"876:217:28","text":"@title Boost Core\n @notice The core contract for the Boost protocol\n @dev This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA"},"fullyImplemented":true,"id":12294,"linearizedBaseContracts":[12294,11024,6409],"name":"BoostCore","nameLocation":"1102:9:28","nodeType":"ContractDefinition","nodes":[{"global":false,"id":11552,"libraryName":{"id":11550,"name":"LibClone","nameLocations":["1152:8:28"],"nodeType":"IdentifierPath","referencedDeclaration":10078,"src":"1152:8:28"},"nodeType":"UsingForDirective","src":"1146:27:28","typeName":{"id":11551,"name":"address","nodeType":"ElementaryTypeName","src":"1165:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":11555,"libraryName":{"id":11553,"name":"LibZip","nameLocations":["1184:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":11000,"src":"1184:6:28"},"nodeType":"UsingForDirective","src":"1178:23:28","typeName":{"id":11554,"name":"bytes","nodeType":"ElementaryTypeName","src":"1195:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":11558,"libraryName":{"id":11556,"name":"SafeTransferLib","nameLocations":["1212:15:28"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"1212:15:28"},"nodeType":"UsingForDirective","src":"1206:34:28","typeName":{"id":11557,"name":"address","nodeType":"ElementaryTypeName","src":"1232:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"BoostCore.InitPayload","id":11583,"members":[{"constant":false,"id":11561,"mutability":"mutable","name":"budget","nameLocation":"1282:6:28","nodeType":"VariableDeclaration","scope":11583,"src":"1275:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"},"typeName":{"id":11560,"nodeType":"UserDefinedTypeName","pathNode":{"id":11559,"name":"Budget","nameLocations":["1275:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":15659,"src":"1275:6:28"},"referencedDeclaration":15659,"src":"1275:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"visibility":"internal"},{"constant":false,"id":11564,"mutability":"mutable","name":"action","nameLocation":"1314:6:28","nodeType":"VariableDeclaration","scope":11583,"src":"1298:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11563,"nodeType":"UserDefinedTypeName","pathNode":{"id":11562,"name":"BoostLib.Target","nameLocations":["1298:8:28","1307:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":18401,"src":"1298:15:28"},"referencedDeclaration":18401,"src":"1298:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11567,"mutability":"mutable","name":"validator","nameLocation":"1346:9:28","nodeType":"VariableDeclaration","scope":11583,"src":"1330:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11566,"nodeType":"UserDefinedTypeName","pathNode":{"id":11565,"name":"BoostLib.Target","nameLocations":["1330:8:28","1339:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":18401,"src":"1330:15:28"},"referencedDeclaration":18401,"src":"1330:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11570,"mutability":"mutable","name":"allowList","nameLocation":"1381:9:28","nodeType":"VariableDeclaration","scope":11583,"src":"1365:25:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":11569,"nodeType":"UserDefinedTypeName","pathNode":{"id":11568,"name":"BoostLib.Target","nameLocations":["1365:8:28","1374:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":18401,"src":"1365:15:28"},"referencedDeclaration":18401,"src":"1365:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":11574,"mutability":"mutable","name":"incentives","nameLocation":"1418:10:28","nodeType":"VariableDeclaration","scope":11583,"src":"1400:28:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"},"typeName":{"baseType":{"id":11572,"nodeType":"UserDefinedTypeName","pathNode":{"id":11571,"name":"BoostLib.Target","nameLocations":["1400:8:28","1409:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":18401,"src":"1400:15:28"},"referencedDeclaration":18401,"src":"1400:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"}},"id":11573,"nodeType":"ArrayTypeName","src":"1400:17:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"}},"visibility":"internal"},{"constant":false,"id":11576,"mutability":"mutable","name":"protocolFee","nameLocation":"1445:11:28","nodeType":"VariableDeclaration","scope":11583,"src":"1438:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11575,"name":"uint64","nodeType":"ElementaryTypeName","src":"1438:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11578,"mutability":"mutable","name":"referralFee","nameLocation":"1473:11:28","nodeType":"VariableDeclaration","scope":11583,"src":"1466:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11577,"name":"uint64","nodeType":"ElementaryTypeName","src":"1466:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":11580,"mutability":"mutable","name":"maxParticipants","nameLocation":"1502:15:28","nodeType":"VariableDeclaration","scope":11583,"src":"1494:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11579,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11582,"mutability":"mutable","name":"owner","nameLocation":"1535:5:28","nodeType":"VariableDeclaration","scope":11583,"src":"1527:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11581,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1253:11:28","nodeType":"StructDefinition","scope":12294,"src":"1246:301:28","visibility":"public"},{"anonymous":false,"eventSelector":"560b27fd941b3e3ae813416565f72f24c408b726ad11be75e543295d8924f8df","id":11597,"name":"BoostCreated","nameLocation":"1559:12:28","nodeType":"EventDefinition","parameters":{"id":11596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11585,"indexed":true,"mutability":"mutable","name":"boostIndex","nameLocation":"1597:10:28","nodeType":"VariableDeclaration","scope":11597,"src":"1581:26:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11584,"name":"uint256","nodeType":"ElementaryTypeName","src":"1581:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11587,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1633:5:28","nodeType":"VariableDeclaration","scope":11597,"src":"1617:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11586,"name":"address","nodeType":"ElementaryTypeName","src":"1617:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11589,"indexed":true,"mutability":"mutable","name":"action","nameLocation":"1664:6:28","nodeType":"VariableDeclaration","scope":11597,"src":"1648:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11588,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11591,"indexed":false,"mutability":"mutable","name":"validator","nameLocation":"1688:9:28","nodeType":"VariableDeclaration","scope":11597,"src":"1680:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11590,"name":"address","nodeType":"ElementaryTypeName","src":"1680:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11593,"indexed":false,"mutability":"mutable","name":"allowList","nameLocation":"1715:9:28","nodeType":"VariableDeclaration","scope":11597,"src":"1707:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11592,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11595,"indexed":false,"mutability":"mutable","name":"budget","nameLocation":"1742:6:28","nodeType":"VariableDeclaration","scope":11597,"src":"1734:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11594,"name":"address","nodeType":"ElementaryTypeName","src":"1734:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1571:183:28"},"src":"1553:202:28"},{"constant":false,"documentation":{"id":11598,"nodeType":"StructuredDocumentation","src":"1761:30:28","text":"@notice The list of boosts"},"id":11602,"mutability":"mutable","name":"_boosts","nameLocation":"1821:7:28","nodeType":"VariableDeclaration","scope":12294,"src":"1796:32:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$18393_storage_$dyn_storage","typeString":"struct BoostLib.Boost[]"},"typeName":{"baseType":{"id":11600,"nodeType":"UserDefinedTypeName","pathNode":{"id":11599,"name":"BoostLib.Boost","nameLocations":["1796:8:28","1805:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":18393,"src":"1796:14:28"},"referencedDeclaration":18393,"src":"1796:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"}},"id":11601,"nodeType":"ArrayTypeName","src":"1796:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$18393_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Boost[]"}},"visibility":"private"},{"constant":false,"documentation":{"id":11603,"nodeType":"StructuredDocumentation","src":"1835:38:28","text":"@notice The BoostRegistry contract"},"functionSelector":"7b103999","id":11606,"mutability":"mutable","name":"registry","nameLocation":"1899:8:28","nodeType":"VariableDeclaration","scope":12294,"src":"1878:29:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12709","typeString":"contract BoostRegistry"},"typeName":{"id":11605,"nodeType":"UserDefinedTypeName","pathNode":{"id":11604,"name":"BoostRegistry","nameLocations":["1878:13:28"],"nodeType":"IdentifierPath","referencedDeclaration":12709,"src":"1878:13:28"},"referencedDeclaration":12709,"src":"1878:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12709","typeString":"contract BoostRegistry"}},"visibility":"public"},{"constant":false,"documentation":{"id":11607,"nodeType":"StructuredDocumentation","src":"1914:37:28","text":"@notice The protocol fee receiver"},"functionSelector":"39a51be5","id":11609,"mutability":"mutable","name":"protocolFeeReceiver","nameLocation":"1971:19:28","nodeType":"VariableDeclaration","scope":12294,"src":"1956:34:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11608,"name":"address","nodeType":"ElementaryTypeName","src":"1956:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":11610,"nodeType":"StructuredDocumentation","src":"1997:34:28","text":"@notice The claim fee (in wei)"},"functionSelector":"99d32fc4","id":11613,"mutability":"mutable","name":"claimFee","nameLocation":"2051:8:28","nodeType":"VariableDeclaration","scope":12294,"src":"2036:40:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11611,"name":"uint256","nodeType":"ElementaryTypeName","src":"2036:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303030303735","id":11612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2062:14:28","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_75000000000000_by_1","typeString":"int_const 75000000000000"},"value":"0.000075"},"visibility":"public"},{"constant":false,"documentation":{"id":11614,"nodeType":"StructuredDocumentation","src":"2083:42:28","text":"@notice The base protocol fee (in bps)"},"functionSelector":"b0e21e8a","id":11617,"mutability":"mutable","name":"protocolFee","nameLocation":"2144:11:28","nodeType":"VariableDeclaration","scope":12294,"src":"2130:33:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11615,"name":"uint64","nodeType":"ElementaryTypeName","src":"2130:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"315f303030","id":11616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2158:5:28","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"public"},{"constant":false,"documentation":{"id":11618,"nodeType":"StructuredDocumentation","src":"2177:42:28","text":"@notice The base referral fee (in bps)"},"functionSelector":"84ae2bc6","id":11621,"mutability":"mutable","name":"referralFee","nameLocation":"2238:11:28","nodeType":"VariableDeclaration","scope":12294,"src":"2224:33:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11619,"name":"uint64","nodeType":"ElementaryTypeName","src":"2224:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"315f303030","id":11620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2252:5:28","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"public"},{"constant":true,"documentation":{"id":11622,"nodeType":"StructuredDocumentation","src":"2271:66:28","text":"@notice The fee denominator (basis points, i.e. 10000 == 100%)"},"functionSelector":"d73792a9","id":11625,"mutability":"constant","name":"FEE_DENOMINATOR","nameLocation":"2365:15:28","nodeType":"VariableDeclaration","scope":12294,"src":"2342:47:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":11623,"name":"uint64","nodeType":"ElementaryTypeName","src":"2342:6:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"31305f303030","id":11624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:6:28","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"value":"10_000"},"visibility":"public"},{"body":{"id":11647,"nodeType":"Block","src":"2515:127:28","statements":[{"expression":{"arguments":[{"expression":{"id":11635,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2542:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2546:6:28","memberName":"sender","nodeType":"MemberAccess","src":"2542:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11634,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"2525:16:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:28:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11638,"nodeType":"ExpressionStatement","src":"2525:28:28"},{"expression":{"id":11641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11639,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11606,"src":"2563:8:28","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12709","typeString":"contract BoostRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11640,"name":"registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11629,"src":"2574:9:28","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12709","typeString":"contract BoostRegistry"}},"src":"2563:20:28","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12709","typeString":"contract BoostRegistry"}},"id":11642,"nodeType":"ExpressionStatement","src":"2563:20:28"},{"expression":{"id":11645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11643,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"2593:19:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11644,"name":"protocolFeeReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11631,"src":"2615:20:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2593:42:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11646,"nodeType":"ExpressionStatement","src":"2593:42:28"}]},"documentation":{"id":11626,"nodeType":"StructuredDocumentation","src":"2396:47:28","text":"@notice Constructor to initialize the owner"},"id":11648,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11629,"mutability":"mutable","name":"registry_","nameLocation":"2474:9:28","nodeType":"VariableDeclaration","scope":11648,"src":"2460:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12709","typeString":"contract BoostRegistry"},"typeName":{"id":11628,"nodeType":"UserDefinedTypeName","pathNode":{"id":11627,"name":"BoostRegistry","nameLocations":["2460:13:28"],"nodeType":"IdentifierPath","referencedDeclaration":12709,"src":"2460:13:28"},"referencedDeclaration":12709,"src":"2460:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_BoostRegistry_$12709","typeString":"contract BoostRegistry"}},"visibility":"internal"},{"constant":false,"id":11631,"mutability":"mutable","name":"protocolFeeReceiver_","nameLocation":"2493:20:28","nodeType":"VariableDeclaration","scope":11648,"src":"2485:28:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11630,"name":"address","nodeType":"ElementaryTypeName","src":"2485:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2459:55:28"},"returnParameters":{"id":11633,"nodeType":"ParameterList","parameters":[],"src":"2515:0:28"},"scope":12294,"src":"2448:194:28","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11843,"nodeType":"Block","src":"4281:1400:28","statements":[{"assignments":[11663],"declarations":[{"constant":false,"id":11663,"mutability":"mutable","name":"payload_","nameLocation":"4310:8:28","nodeType":"VariableDeclaration","scope":11843,"src":"4291:27:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload"},"typeName":{"id":11662,"nodeType":"UserDefinedTypeName","pathNode":{"id":11661,"name":"InitPayload","nameLocations":["4291:11:28"],"nodeType":"IdentifierPath","referencedDeclaration":11583,"src":"4291:11:28"},"referencedDeclaration":11583,"src":"4291:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_storage_ptr","typeString":"struct BoostCore.InitPayload"}},"visibility":"internal"}],"id":11672,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11666,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11651,"src":"4332:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":11667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4338:12:28","memberName":"cdDecompress","nodeType":"MemberAccess","referencedDeclaration":10993,"src":"4332:18:28","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes memory)"}},"id":11668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4332:20:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11669,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11583,"src":"4355:11:28","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11583_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}}],"id":11670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4354:13:28","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11583_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$11583_storage_ptr_$","typeString":"type(struct BoostCore.InitPayload storage pointer)"}],"expression":{"id":11664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4321:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4325:6:28","memberName":"decode","nodeType":"MemberAccess","src":"4321:10:28","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:47:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4291:77:28"},{"expression":{"arguments":[{"expression":{"id":11674,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4423:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4432:6:28","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11561,"src":"4423:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}],"id":11673,"name":"_checkBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12008,"src":"4410:12:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Budget_$15659_$returns$__$","typeString":"function (contract Budget) view"}},"id":11676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4410:29:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11677,"nodeType":"ExpressionStatement","src":"4410:29:28"},{"assignments":[11682],"declarations":[{"constant":false,"id":11682,"mutability":"mutable","name":"boost","nameLocation":"4505:5:28","nodeType":"VariableDeclaration","scope":11843,"src":"4482:28:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11681,"nodeType":"UserDefinedTypeName","pathNode":{"id":11680,"name":"BoostLib.Boost","nameLocations":["4482:8:28","4491:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":18393,"src":"4482:14:28"},"referencedDeclaration":18393,"src":"4482:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"id":11686,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11683,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"4513:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$18393_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4521:4:28","memberName":"push","nodeType":"MemberAccess","src":"4513:12:28","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_Boost_$18393_storage_$dyn_storage_ptr_$returns$_t_struct$_Boost_$18393_storage_$attached_to$_t_array$_t_struct$_Boost_$18393_storage_$dyn_storage_ptr_$","typeString":"function (struct BoostLib.Boost storage ref[] storage pointer) returns (struct BoostLib.Boost storage ref)"}},"id":11685,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4513:14:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage","typeString":"struct BoostLib.Boost storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4482:45:28"},{"expression":{"id":11692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11687,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4537:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4543:5:28","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":18392,"src":"4537:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11690,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4551:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4560:5:28","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":11582,"src":"4551:14:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4537:28:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11693,"nodeType":"ExpressionStatement","src":"4537:28:28"},{"expression":{"id":11699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11694,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4575:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4581:6:28","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":18380,"src":"4575:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11697,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4590:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4599:6:28","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11561,"src":"4590:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"src":"4575:30:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"id":11700,"nodeType":"ExpressionStatement","src":"4575:30:28"},{"expression":{"id":11708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11701,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4615:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4621:11:28","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":18386,"src":"4615:17:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11704,"name":"protocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11617,"src":"4635:11:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11705,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4649:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4658:11:28","memberName":"protocolFee","nodeType":"MemberAccess","referencedDeclaration":11576,"src":"4649:20:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4635:34:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4615:54:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":11709,"nodeType":"ExpressionStatement","src":"4615:54:28"},{"expression":{"id":11717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11710,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4679:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4685:11:28","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":18388,"src":"4679:17:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":11716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11713,"name":"referralFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"4699:11:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":11714,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4713:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4722:11:28","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":11578,"src":"4713:20:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4699:34:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"4679:54:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":11718,"nodeType":"ExpressionStatement","src":"4679:54:28"},{"expression":{"id":11724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11719,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4743:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4749:15:28","memberName":"maxParticipants","nodeType":"MemberAccess","referencedDeclaration":18390,"src":"4743:21:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11722,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4767:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4776:15:28","memberName":"maxParticipants","nodeType":"MemberAccess","referencedDeclaration":11580,"src":"4767:24:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4743:48:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11725,"nodeType":"ExpressionStatement","src":"4743:48:28"},{"expression":{"id":11740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11726,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4840:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4846:6:28","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":18371,"src":"4840:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":11732,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"4879:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$13114_$","typeString":"type(contract Action)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Action_$13114_$","typeString":"type(contract Action)"}],"id":11731,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4874:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4874:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Action_$13114","typeString":"type(contract Action)"}},"id":11734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4887:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"4874:24:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11735,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"4900:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4909:6:28","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":11564,"src":"4900:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4917:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11730,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"4862:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$18401_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4862:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11729,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"4855:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$13114_$","typeString":"type(contract Action)"}},"id":11739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4855:68:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}},"src":"4840:83:28","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}},"id":11741,"nodeType":"ExpressionStatement","src":"4840:83:28"},{"expression":{"id":11756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11742,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"4933:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4939:9:28","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":18377,"src":"4933:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13587","typeString":"contract AllowList"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":11748,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"4978:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13587_$","typeString":"type(contract AllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AllowList_$13587_$","typeString":"type(contract AllowList)"}],"id":11747,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4973:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4973:15:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AllowList_$13587","typeString":"type(contract AllowList)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4989:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"4973:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11751,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5002:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5011:9:28","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":11570,"src":"5002:18:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5022:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11746,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"4961:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$18401_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4961:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11745,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"4951:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13587_$","typeString":"type(contract AllowList)"}},"id":11755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4951:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13587","typeString":"contract AllowList"}},"src":"4933:95:28","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13587","typeString":"contract AllowList"}},"id":11757,"nodeType":"ExpressionStatement","src":"4933:95:28"},{"expression":{"id":11767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11758,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5038:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5044:10:28","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":18384,"src":"5038:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":11762,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5073:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5082:10:28","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":11574,"src":"5073:19:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},{"expression":{"id":11764,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5094:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5103:6:28","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":11561,"src":"5094:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"},{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}],"id":11761,"name":"_makeIncentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12189,"src":"5057:15:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_$_t_contract$_Budget_$15659_$returns$_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr_$","typeString":"function (struct BoostLib.Target memory[] memory,contract Budget) returns (contract Incentive[] memory)"}},"id":11766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5057:53:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"src":"5038:72:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"id":11768,"nodeType":"ExpressionStatement","src":"5038:72:28"},{"expression":{"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":11769,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5120:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5126:9:28","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":18374,"src":"5120:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":11773,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5161:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5170:9:28","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":11567,"src":"5161:18:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":11775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5180:8:28","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":18398,"src":"5161:27:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":11778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5200:1:28","typeDescriptions":{"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":11777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5192:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11776,"name":"address","nodeType":"ElementaryTypeName","src":"5192:7:28","typeDescriptions":{}}},"id":11779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5192:10:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5161:41:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"arguments":[{"id":11801,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"5353:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}],"id":11800,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5348:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5348:15:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$19130","typeString":"type(contract Validator)"}},"id":11803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5364:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"5348:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":11804,"name":"payload_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"5377:8:28","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$11583_memory_ptr","typeString":"struct BoostCore.InitPayload memory"}},"id":11805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5386:9:28","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":11567,"src":"5377:18:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"74727565","id":11806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5397:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11799,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"5336:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$18401_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":11807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5336:66:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5161:241:28","trueExpression":{"condition":{"arguments":[{"expression":{"arguments":[{"id":11785,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"5257:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}],"id":11784,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5252:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5252:15:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$19130","typeString":"type(contract Validator)"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5268:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"5252:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"expression":{"id":11781,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5221:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5227:6:28","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":18371,"src":"5221:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}},"id":11783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5234:17:28","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":13099,"src":"5221:30:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":11788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5221:59:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":11796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5315:1:28","typeDescriptions":{"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":11795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5307:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11794,"name":"address","nodeType":"ElementaryTypeName","src":"5307:7:28","typeDescriptions":{}}},"id":11797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5307:10:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5221:96:28","trueExpression":{"arguments":[{"expression":{"id":11791,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5291:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5297:6:28","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":18371,"src":"5291:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}],"id":11790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5283:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11789,"name":"address","nodeType":"ElementaryTypeName","src":"5283:7:28","typeDescriptions":{}}},"id":11793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5283:21:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11772,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"5138:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5138:274:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}},"src":"5120:292:28","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}},"id":11811,"nodeType":"ExpressionStatement","src":"5120:292:28"},{"eventCall":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11813,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"5453:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$18393_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5461:6:28","memberName":"length","nodeType":"MemberAccess","src":"5453:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5470:1:28","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5453:18:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":11817,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5485:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11818,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5491:5:28","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":18392,"src":"5485:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":11821,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5518:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5524:6:28","memberName":"action","nodeType":"MemberAccess","referencedDeclaration":18371,"src":"5518:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}],"id":11820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5510:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11819,"name":"address","nodeType":"ElementaryTypeName","src":"5510:7:28","typeDescriptions":{}}},"id":11823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5510:21:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":11826,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5553:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5559:9:28","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":18374,"src":"5553:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}],"id":11825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5545:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11824,"name":"address","nodeType":"ElementaryTypeName","src":"5545:7:28","typeDescriptions":{}}},"id":11828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5545:24:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":11831,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5591:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5597:9:28","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":18377,"src":"5591:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13587","typeString":"contract AllowList"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AllowList_$13587","typeString":"contract AllowList"}],"id":11830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5583:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11829,"name":"address","nodeType":"ElementaryTypeName","src":"5583:7:28","typeDescriptions":{}}},"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5583:24:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":11836,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5629:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5635:6:28","memberName":"budget","nodeType":"MemberAccess","referencedDeclaration":18380,"src":"5629:12:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}],"id":11835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5621:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11834,"name":"address","nodeType":"ElementaryTypeName","src":"5621:7:28","typeDescriptions":{}}},"id":11838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5621:21:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11812,"name":"BoostCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11597,"src":"5427:12:28","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address,address,address,address)"}},"id":11839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5427:225:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11840,"nodeType":"EmitStatement","src":"5422:230:28"},{"expression":{"id":11841,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11682,"src":"5669:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"functionReturnParameters":11660,"id":11842,"nodeType":"Return","src":"5662:12:28"}]},"documentation":{"id":11649,"nodeType":"StructuredDocumentation","src":"2648:1521:28","text":"@notice Create a new Boost\n @param data_ The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\n @dev The data is expected to:\n - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol)\n - properly decode to the following types (in order):\n - `Budget` to be used for the Boost\n - `Target` for the action\n - `Target` for the validator which is expected to be one of the following:\n - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\"SignerValidator\")`), along with the parameters for its initializer;\n - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size);\n - The zero address along with no parameter data if validation is implemented by the action;\n - `Target` for the allowList\n - `Target[]` for the incentives\n - `uint256` for the protocolFee (added to the base protocol fee)\n - `uint256` for the referralFee (added to the base referral fee)\n - `uint256` for the maxParticipants\n - `address` for the owner of the Boost"},"functionSelector":"e21ff731","id":11844,"implemented":true,"kind":"function","modifiers":[{"id":11654,"kind":"modifierInvocation","modifierName":{"id":11653,"name":"onlyOwner","nameLocations":["4226:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"4226:9:28"},"nodeType":"ModifierInvocation","src":"4226:9:28"},{"id":11656,"kind":"modifierInvocation","modifierName":{"id":11655,"name":"nonReentrant","nameLocations":["4236:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":11017,"src":"4236:12:28"},"nodeType":"ModifierInvocation","src":"4236:12:28"}],"name":"createBoost","nameLocation":"4183:11:28","nodeType":"FunctionDefinition","parameters":{"id":11652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11651,"mutability":"mutable","name":"data_","nameLocation":"4210:5:28","nodeType":"VariableDeclaration","scope":11844,"src":"4195:20:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11650,"name":"bytes","nodeType":"ElementaryTypeName","src":"4195:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4194:22:28"},"returnParameters":{"id":11660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11844,"src":"4258:21:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_memory_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11658,"nodeType":"UserDefinedTypeName","pathNode":{"id":11657,"name":"BoostLib.Boost","nameLocations":["4258:8:28","4267:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":18393,"src":"4258:14:28"},"referencedDeclaration":18393,"src":"4258:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"src":"4257:23:28"},"scope":12294,"src":"4174:1507:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11926,"nodeType":"Block","src":"6099:574:28","statements":[{"assignments":[11862],"declarations":[{"constant":false,"id":11862,"mutability":"mutable","name":"boost","nameLocation":"6132:5:28","nodeType":"VariableDeclaration","scope":11926,"src":"6109:28:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11861,"nodeType":"UserDefinedTypeName","pathNode":{"id":11860,"name":"BoostLib.Boost","nameLocations":["6109:8:28","6118:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":18393,"src":"6109:14:28"},"referencedDeclaration":18393,"src":"6109:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"id":11866,"initialValue":{"baseExpression":{"id":11863,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"6140:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$18393_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11865,"indexExpression":{"id":11864,"name":"boostId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11847,"src":"6148:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6140:17:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage","typeString":"struct BoostLib.Boost storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6109:48:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11867,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6171:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6175:5:28","memberName":"value","nodeType":"MemberAccess","src":"6171:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11869,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"6183:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6171:20:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11883,"nodeType":"IfStatement","src":"6167:94:28","trueBody":{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":11876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6237:1:28","typeDescriptions":{"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":11875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6229:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11874,"name":"address","nodeType":"ElementaryTypeName","src":"6229:7:28","typeDescriptions":{}}},"id":11877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6229:10:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":11878,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6241:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6245:5:28","memberName":"value","nodeType":"MemberAccess","src":"6241:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11880,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"6252:8:28","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":11871,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"6200:10:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":11873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6211:17:28","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":18305,"src":"6200:28:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":11881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6200:61:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11882,"nodeType":"RevertStatement","src":"6193:68:28"}},{"expression":{"arguments":[{"id":11885,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11862,"src":"6286:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},{"id":11886,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11851,"src":"6293:9:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11884,"name":"_routeClaimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12293,"src":"6271:14:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Boost_$18393_storage_ptr_$_t_address_$returns$__$","typeString":"function (struct BoostLib.Boost storage pointer,address)"}},"id":11887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6271:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11888,"nodeType":"ExpressionStatement","src":"6271:32:28"},{"condition":{"id":11894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6406:32:28","subExpression":{"arguments":[{"id":11892,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11853,"src":"6432:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":11889,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11862,"src":"6407:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6413:9:28","memberName":"validator","nodeType":"MemberAccess","referencedDeclaration":18374,"src":"6407:15:28","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}},"id":11891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6423:8:28","memberName":"validate","nodeType":"MemberAccess","referencedDeclaration":19092,"src":"6407:24:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":11893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6407:31:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11900,"nodeType":"IfStatement","src":"6402:70:28","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11895,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"6447:10:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":11897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6458:12:28","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":18342,"src":"6447:23:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":11898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6447:25:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11899,"nodeType":"RevertStatement","src":"6440:32:28"}},{"condition":{"id":11916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6499:108:28","subExpression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":11910,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6580:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6584:6:28","memberName":"sender","nodeType":"MemberAccess","src":"6580:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11912,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11853,"src":"6598:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11908,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"6548:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}},"id":11909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6558:12:28","memberName":"ClaimPayload","nodeType":"MemberAccess","referencedDeclaration":18096,"src":"6548:22:28","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}},"id":11913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6572:6:28","6592:4:28"],"names":["target","data"],"nodeType":"FunctionCall","src":"6548:57:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":11906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6537:3:28","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6541:6:28","memberName":"encode","nodeType":"MemberAccess","src":"6537:10:28","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6537:69:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"expression":{"id":11901,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11862,"src":"6500:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":11902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6506:10:28","memberName":"incentives","nodeType":"MemberAccess","referencedDeclaration":18384,"src":"6500:16:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_storage","typeString":"contract Incentive[] storage ref"}},"id":11904,"indexExpression":{"id":11903,"name":"incentiveId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11849,"src":"6517:12:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6500:30:28","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"id":11905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6531:5:28","memberName":"claim","nodeType":"MemberAccess","referencedDeclaration":18125,"src":"6500:36:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":11915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6500:107:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11925,"nodeType":"IfStatement","src":"6482:184:28","trueBody":{"errorCall":{"arguments":[{"expression":{"id":11920,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6648:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6652:6:28","memberName":"sender","nodeType":"MemberAccess","src":"6648:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11922,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11853,"src":"6660:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":11917,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"6625:10:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":11919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6636:11:28","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":18296,"src":"6625:22:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,bytes memory) pure returns (error)"}},"id":11923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6625:41:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":11924,"nodeType":"RevertStatement","src":"6618:48:28"}}]},"documentation":{"id":11845,"nodeType":"StructuredDocumentation","src":"5687:244:28","text":"@notice Claim an incentive for a Boost\n @param boostId_ The ID of the Boost\n @param incentiveId_ The ID of the Incentive\n @param referrer_ The address of the referrer (if any)\n @param data_ The data for the claim"},"functionSelector":"8fe4f523","id":11927,"implemented":true,"kind":"function","modifiers":[{"id":11856,"kind":"modifierInvocation","modifierName":{"id":11855,"name":"nonReentrant","nameLocations":["6082:12:28"],"nodeType":"IdentifierPath","referencedDeclaration":11017,"src":"6082:12:28"},"nodeType":"ModifierInvocation","src":"6082:12:28"}],"name":"claimIncentive","nameLocation":"5945:14:28","nodeType":"FunctionDefinition","parameters":{"id":11854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11847,"mutability":"mutable","name":"boostId_","nameLocation":"5968:8:28","nodeType":"VariableDeclaration","scope":11927,"src":"5960:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11846,"name":"uint256","nodeType":"ElementaryTypeName","src":"5960:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11849,"mutability":"mutable","name":"incentiveId_","nameLocation":"5986:12:28","nodeType":"VariableDeclaration","scope":11927,"src":"5978:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11848,"name":"uint256","nodeType":"ElementaryTypeName","src":"5978:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11851,"mutability":"mutable","name":"referrer_","nameLocation":"6008:9:28","nodeType":"VariableDeclaration","scope":11927,"src":"6000:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11850,"name":"address","nodeType":"ElementaryTypeName","src":"6000:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11853,"mutability":"mutable","name":"data_","nameLocation":"6034:5:28","nodeType":"VariableDeclaration","scope":11927,"src":"6019:20:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11852,"name":"bytes","nodeType":"ElementaryTypeName","src":"6019:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5959:81:28"},"returnParameters":{"id":11857,"nodeType":"ParameterList","parameters":[],"src":"6099:0:28"},"scope":12294,"src":"5936:737:28","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":11940,"nodeType":"Block","src":"6888:38:28","statements":[{"expression":{"baseExpression":{"id":11936,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"6905:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$18393_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11938,"indexExpression":{"id":11937,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"6913:5:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6905:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage","typeString":"struct BoostLib.Boost storage ref"}},"functionReturnParameters":11935,"id":11939,"nodeType":"Return","src":"6898:21:28"}]},"documentation":{"id":11928,"nodeType":"StructuredDocumentation","src":"6679:125:28","text":"@notice Get a Boost by index\n @param index The index of the Boost\n @return The Boost at the specified index"},"functionSelector":"13c8e2de","id":11941,"implemented":true,"kind":"function","modifiers":[],"name":"getBoost","nameLocation":"6818:8:28","nodeType":"FunctionDefinition","parameters":{"id":11931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11930,"mutability":"mutable","name":"index","nameLocation":"6835:5:28","nodeType":"VariableDeclaration","scope":11941,"src":"6827:13:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11929,"name":"uint256","nodeType":"ElementaryTypeName","src":"6827:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6826:15:28"},"returnParameters":{"id":11935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11934,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11941,"src":"6865:21:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_memory_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":11933,"nodeType":"UserDefinedTypeName","pathNode":{"id":11932,"name":"BoostLib.Boost","nameLocations":["6865:8:28","6874:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":18393,"src":"6865:14:28"},"referencedDeclaration":18393,"src":"6865:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"}],"src":"6864:23:28"},"scope":12294,"src":"6809:117:28","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11950,"nodeType":"Block","src":"7067:38:28","statements":[{"expression":{"expression":{"id":11947,"name":"_boosts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"7084:7:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Boost_$18393_storage_$dyn_storage","typeString":"struct BoostLib.Boost storage ref[] storage ref"}},"id":11948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7092:6:28","memberName":"length","nodeType":"MemberAccess","src":"7084:14:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11946,"id":11949,"nodeType":"Return","src":"7077:21:28"}]},"documentation":{"id":11942,"nodeType":"StructuredDocumentation","src":"6932:73:28","text":"@notice Get the number of Boosts\n @return The number of Boosts"},"functionSelector":"5edb9eb0","id":11951,"implemented":true,"kind":"function","modifiers":[],"name":"getBoostCount","nameLocation":"7019:13:28","nodeType":"FunctionDefinition","parameters":{"id":11943,"nodeType":"ParameterList","parameters":[],"src":"7032:2:28"},"returnParameters":{"id":11946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11951,"src":"7058:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11944,"name":"uint256","nodeType":"ElementaryTypeName","src":"7058:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7057:9:28"},"scope":12294,"src":"7010:95:28","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11963,"nodeType":"Block","src":"7377:59:28","statements":[{"expression":{"id":11961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11959,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"7387:19:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11960,"name":"protocolFeeReceiver_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11954,"src":"7409:20:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7387:42:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11962,"nodeType":"ExpressionStatement","src":"7387:42:28"}]},"documentation":{"id":11952,"nodeType":"StructuredDocumentation","src":"7111:180:28","text":"@notice Set the protocol fee receiver address\n @param protocolFeeReceiver_ The new protocol fee receiver address\n @dev This function is only callable by the owner"},"functionSelector":"46877b1a","id":11964,"implemented":true,"kind":"function","modifiers":[{"id":11957,"kind":"modifierInvocation","modifierName":{"id":11956,"name":"onlyOwner","nameLocations":["7367:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"7367:9:28"},"nodeType":"ModifierInvocation","src":"7367:9:28"}],"name":"setProtocolFeeReceiver","nameLocation":"7305:22:28","nodeType":"FunctionDefinition","parameters":{"id":11955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11954,"mutability":"mutable","name":"protocolFeeReceiver_","nameLocation":"7336:20:28","nodeType":"VariableDeclaration","scope":11964,"src":"7328:28:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11953,"name":"address","nodeType":"ElementaryTypeName","src":"7328:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7327:30:28"},"returnParameters":{"id":11958,"nodeType":"ParameterList","parameters":[],"src":"7377:0:28"},"scope":12294,"src":"7296:140:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11976,"nodeType":"Block","src":"7644:37:28","statements":[{"expression":{"id":11974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11972,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"7654:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11973,"name":"claimFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11967,"src":"7665:9:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7654:20:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11975,"nodeType":"ExpressionStatement","src":"7654:20:28"}]},"documentation":{"id":11965,"nodeType":"StructuredDocumentation","src":"7442:138:28","text":"@notice Set the claim fee\n @param claimFee_ The new claim fee (in wei)\n @dev This function is only callable by the owner"},"functionSelector":"2e75ab50","id":11977,"implemented":true,"kind":"function","modifiers":[{"id":11970,"kind":"modifierInvocation","modifierName":{"id":11969,"name":"onlyOwner","nameLocations":["7634:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"7634:9:28"},"nodeType":"ModifierInvocation","src":"7634:9:28"}],"name":"setClaimFee","nameLocation":"7594:11:28","nodeType":"FunctionDefinition","parameters":{"id":11968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11967,"mutability":"mutable","name":"claimFee_","nameLocation":"7614:9:28","nodeType":"VariableDeclaration","scope":11977,"src":"7606:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11966,"name":"uint256","nodeType":"ElementaryTypeName","src":"7606:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7605:19:28"},"returnParameters":{"id":11971,"nodeType":"ParameterList","parameters":[],"src":"7644:0:28"},"scope":12294,"src":"7585:96:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12007,"nodeType":"Block","src":"7976:154:28","statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":11986,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"8004:6:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}],"id":11985,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"7999:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":11987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7999:12:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Budget_$15659","typeString":"type(contract Budget)"}},"id":11988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8012:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"7999:24:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":11991,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11981,"src":"8033:7:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}],"id":11990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8025:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11989,"name":"address","nodeType":"ElementaryTypeName","src":"8025:7:28","typeDescriptions":{}}},"id":11992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8025:16:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11984,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"7986:12:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":11993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7986:56:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11994,"nodeType":"ExpressionStatement","src":"7986:56:28"},{"condition":{"id":12000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8056:33:28","subExpression":{"arguments":[{"expression":{"id":11997,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8078:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8082:6:28","memberName":"sender","nodeType":"MemberAccess","src":"8078:10:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11995,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11981,"src":"8057:7:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"id":11996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8065:12:28","memberName":"isAuthorized","nodeType":"MemberAccess","referencedDeclaration":15607,"src":"8057:20:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":11999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8057:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12006,"nodeType":"IfStatement","src":"8052:71:28","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12001,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"8098:10:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":12003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8109:12:28","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":18342,"src":"8098:23:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8098:25:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12005,"nodeType":"RevertStatement","src":"8091:32:28"}}]},"documentation":{"id":11978,"nodeType":"StructuredDocumentation","src":"7687:232:28","text":"@notice Check that the provided Budget is valid and that the caller is authorized to use it\n @param budget_ The Budget to check\n @dev This function will revert if the Budget is invalid or the caller is unauthorized"},"id":12008,"implemented":true,"kind":"function","modifiers":[],"name":"_checkBudget","nameLocation":"7933:12:28","nodeType":"FunctionDefinition","parameters":{"id":11982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11981,"mutability":"mutable","name":"budget_","nameLocation":"7953:7:28","nodeType":"VariableDeclaration","scope":12008,"src":"7946:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"},"typeName":{"id":11980,"nodeType":"UserDefinedTypeName","pathNode":{"id":11979,"name":"Budget","nameLocations":["7946:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":15659,"src":"7946:6:28"},"referencedDeclaration":15659,"src":"7946:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"visibility":"internal"}],"src":"7945:16:28"},"returnParameters":{"id":11983,"nodeType":"ParameterList","parameters":[],"src":"7976:0:28"},"scope":12294,"src":"7924:206:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12039,"nodeType":"Block","src":"8575:180:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12016,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"8589:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8609:1:28","typeDescriptions":{"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":12018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8601:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12017,"name":"address","nodeType":"ElementaryTypeName","src":"8601:7:28","typeDescriptions":{}}},"id":12020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8601:10:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8589:22:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":12028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8615:51:28","subExpression":{"arguments":[{"id":12026,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"8654:11:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":12023,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"8626:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12022,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"8616:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}},"id":12024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8616:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"id":12025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8636:17:28","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18508,"src":"8616:37:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":12027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8616:50:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8589:77:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12038,"nodeType":"IfStatement","src":"8585:164:28","trueBody":{"id":12037,"nodeType":"Block","src":"8668:81:28","statements":[{"errorCall":{"arguments":[{"id":12033,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12011,"src":"8716:11:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12034,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12013,"src":"8729:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12030,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"8689:10:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":12032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8700:15:28","memberName":"InvalidInstance","nodeType":"MemberAccess","referencedDeclaration":18312,"src":"8689:26:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$_t_address_$returns$_t_error_$","typeString":"function (bytes4,address) pure returns (error)"}},"id":12035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8689:49:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12036,"nodeType":"RevertStatement","src":"8682:56:28"}]}}]},"documentation":{"id":12009,"nodeType":"StructuredDocumentation","src":"8136:360:28","text":"@notice Check that the provided Target is valid for the specified interface\n @param interfaceId The interface ID for the target\n @param instance The instance to check\n @dev This function will revert if the Target does not implement the expected interface\n @dev This check costs ~376 gas, which is worth it to validate the target"},"id":12040,"implemented":true,"kind":"function","modifiers":[],"name":"_checkTarget","nameLocation":"8510:12:28","nodeType":"FunctionDefinition","parameters":{"id":12014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12011,"mutability":"mutable","name":"interfaceId","nameLocation":"8530:11:28","nodeType":"VariableDeclaration","scope":12040,"src":"8523:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12010,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8523:6:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12013,"mutability":"mutable","name":"instance","nameLocation":"8551:8:28","nodeType":"VariableDeclaration","scope":12040,"src":"8543:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12012,"name":"address","nodeType":"ElementaryTypeName","src":"8543:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8522:38:28"},"returnParameters":{"id":12015,"nodeType":"ParameterList","parameters":[],"src":"8575:0:28"},"scope":12294,"src":"8501:254:28","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":12066,"nodeType":"Block","src":"9296:117:28","statements":[{"expression":{"arguments":[{"id":12054,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12043,"src":"9319:11:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":12055,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"9332:6:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9339:8:28","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":18398,"src":"9332:15:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12053,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"9306:12:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":12057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9306:42:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12058,"nodeType":"ExpressionStatement","src":"9306:42:28"},{"expression":{"id":12064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12059,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12051,"src":"9358:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12061,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12046,"src":"9381:6:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"id":12062,"name":"shouldInitialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12048,"src":"9389:16:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12060,"name":"_maybeClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12227,"src":"9369:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Target_$18401_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (struct BoostLib.Target memory,bool) returns (address)"}},"id":12063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9369:37:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9358:48:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12065,"nodeType":"ExpressionStatement","src":"9358:48:28"}]},"documentation":{"id":12041,"nodeType":"StructuredDocumentation","src":"8761:379:28","text":"@notice Create a target instance and optionally initialize it\n @param interfaceId The interface ID for the target\n @param target The target to create\n @param shouldInitialize Whether or not to initialize the target\n @return instance The target instance\n @dev This function will revert if the target does not implement the expected interface"},"id":12067,"implemented":true,"kind":"function","modifiers":[],"name":"_makeTarget","nameLocation":"9154:11:28","nodeType":"FunctionDefinition","parameters":{"id":12049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12043,"mutability":"mutable","name":"interfaceId","nameLocation":"9173:11:28","nodeType":"VariableDeclaration","scope":12067,"src":"9166:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12042,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9166:6:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12046,"mutability":"mutable","name":"target","nameLocation":"9209:6:28","nodeType":"VariableDeclaration","scope":12067,"src":"9186:29:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":12045,"nodeType":"UserDefinedTypeName","pathNode":{"id":12044,"name":"BoostLib.Target","nameLocations":["9186:8:28","9195:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":18401,"src":"9186:15:28"},"referencedDeclaration":18401,"src":"9186:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":12048,"mutability":"mutable","name":"shouldInitialize","nameLocation":"9222:16:28","nodeType":"VariableDeclaration","scope":12067,"src":"9217:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12047,"name":"bool","nodeType":"ElementaryTypeName","src":"9217:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9165:74:28"},"returnParameters":{"id":12052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12051,"mutability":"mutable","name":"instance","nameLocation":"9282:8:28","nodeType":"VariableDeclaration","scope":12067,"src":"9274:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12050,"name":"address","nodeType":"ElementaryTypeName","src":"9274:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9273:18:28"},"scope":12294,"src":"9145:268:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12188,"nodeType":"Block","src":"9860:1088:28","statements":[{"expression":{"id":12090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12082,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12080,"src":"9870:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":12087,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"9899:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9908:6:28","memberName":"length","nodeType":"MemberAccess","src":"9899:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12086,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9883:15:28","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (contract Incentive[] memory)"},"typeName":{"baseType":{"id":12084,"nodeType":"UserDefinedTypeName","pathNode":{"id":12083,"name":"Incentive","nameLocations":["9887:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"9887:9:28"},"referencedDeclaration":18196,"src":"9887:9:28","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"id":12085,"nodeType":"ArrayTypeName","src":"9887:11:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_storage_ptr","typeString":"contract Incentive[]"}}},"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9883:32:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"src":"9870:45:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12091,"nodeType":"ExpressionStatement","src":"9870:45:28"},{"body":{"id":12186,"nodeType":"Block","src":"9971:971:28","statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":12105,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"10084:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}],"id":12104,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10079:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10079:15:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$18196","typeString":"type(contract Incentive)"}},"id":12107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10095:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"10079:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"baseExpression":{"id":12108,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"10108:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12110,"indexExpression":{"id":12109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10117:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10108:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10120:8:28","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":18398,"src":"10108:20:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12103,"name":"_checkTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12040,"src":"10066:12:28","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$_t_address_$returns$__$","typeString":"function (bytes4,address) view"}},"id":12112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10066:63:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12113,"nodeType":"ExpressionStatement","src":"10066:63:28"},{"condition":{"id":12118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10242:19:28","subExpression":{"expression":{"baseExpression":{"id":12114,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"10243:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12116,"indexExpression":{"id":12115,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10252:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10243:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10255:6:28","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":18396,"src":"10243:18:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12133,"nodeType":"IfStatement","src":"10238:142:28","trueBody":{"id":12132,"nodeType":"Block","src":"10263:117:28","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":12123,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"10320:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}],"id":12122,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10315:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10315:15:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$18196","typeString":"type(contract Incentive)"}},"id":12125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10331:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"10315:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"baseExpression":{"id":12126,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"10344:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12128,"indexExpression":{"id":12127,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10353:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10344:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10356:8:28","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":18398,"src":"10344:20:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12119,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"10288:10:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":12121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10299:15:28","memberName":"InvalidInstance","nodeType":"MemberAccess","referencedDeclaration":18312,"src":"10288:26:28","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes4_$_t_address_$returns$_t_error_$","typeString":"function (bytes4,address) pure returns (error)"}},"id":12130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10288:77:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12131,"nodeType":"RevertStatement","src":"10281:84:28"}]}},{"expression":{"id":12149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12134,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12080,"src":"10394:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12136,"indexExpression":{"id":12135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10405:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10394:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":12140,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"10437:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}],"id":12139,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10432:4:28","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10432:15:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$18196","typeString":"type(contract Incentive)"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10448:11:28","memberName":"interfaceId","nodeType":"MemberAccess","src":"10432:27:28","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"baseExpression":{"id":12143,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"10461:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12145,"indexExpression":{"id":12144,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10470:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10461:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},{"hexValue":"66616c7365","id":12146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10474:5:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12138,"name":"_makeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12067,"src":"10420:11:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes4_$_t_struct$_Target_$18401_memory_ptr_$_t_bool_$returns$_t_address_$","typeString":"function (bytes4,struct BoostLib.Target memory,bool) returns (address)"}},"id":12147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10420:60:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12137,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"10410:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}},"id":12148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:71:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"src":"10394:87:28","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"id":12150,"nodeType":"ExpressionStatement","src":"10394:87:28"},{"assignments":[12152],"declarations":[{"constant":false,"id":12152,"mutability":"mutable","name":"preflight","nameLocation":"10509:9:28","nodeType":"VariableDeclaration","scope":12186,"src":"10496:22:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12151,"name":"bytes","nodeType":"ElementaryTypeName","src":"10496:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12162,"initialValue":{"arguments":[{"expression":{"baseExpression":{"id":12157,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"10545:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12159,"indexExpression":{"id":12158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10554:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10545:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10557:10:28","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":18400,"src":"10545:22:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"id":12153,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12080,"src":"10521:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12155,"indexExpression":{"id":12154,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10532:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10521:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"id":12156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10535:9:28","memberName":"preflight","nodeType":"MemberAccess","referencedDeclaration":18149,"src":"10521:23:28","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view external returns (bytes memory)"}},"id":12161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10521:47:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10496:72:28"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12163,"name":"preflight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12152,"src":"10586:9:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10596:6:28","memberName":"length","nodeType":"MemberAccess","src":"10586:16:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":12165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10606:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10586:21:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12175,"nodeType":"IfStatement","src":"10582:193:28","trueBody":{"id":12174,"nodeType":"Block","src":"10609:166:28","statements":[{"expression":{"arguments":[{"arguments":[{"id":12170,"name":"preflight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12152,"src":"10749:9:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12168,"name":"budget_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12075,"src":"10732:7:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"id":12169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10740:8:28","memberName":"disburse","nodeType":"MemberAccess","referencedDeclaration":15548,"src":"10732:16:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes memory) external returns (bool)"}},"id":12171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10732:27:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12167,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"10725:6:28","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10725:35:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12173,"nodeType":"ExpressionStatement","src":"10725:35:28"}]}},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":12180,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"10908:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12182,"indexExpression":{"id":12181,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10917:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10908:11:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10920:10:28","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":18400,"src":"10908:22:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"baseExpression":{"id":12176,"name":"incentives","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12080,"src":"10883:10:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[] memory"}},"id":12178,"indexExpression":{"id":12177,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"10894:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10883:13:28","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"id":12179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10897:10:28","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":18474,"src":"10883:24:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":12184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10883:48:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12185,"nodeType":"ExpressionStatement","src":"10883:48:28"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12096,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"9945:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":12097,"name":"targets_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"9949:8:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target memory[] memory"}},"id":12098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9958:6:28","memberName":"length","nodeType":"MemberAccess","src":"9949:15:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9945:19:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12187,"initializationExpression":{"assignments":[12093],"declarations":[{"constant":false,"id":12093,"mutability":"mutable","name":"i","nameLocation":"9938:1:28","nodeType":"VariableDeclaration","scope":12187,"src":"9930:9:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12092,"name":"uint256","nodeType":"ElementaryTypeName","src":"9930:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12095,"initialValue":{"hexValue":"30","id":12094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9942:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9930:13:28"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9966:3:28","subExpression":{"id":12100,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12093,"src":"9966:1:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"9966:3:28"},"nodeType":"ForStatement","src":"9925:1017:28"}]},"documentation":{"id":12068,"nodeType":"StructuredDocumentation","src":"9419:291:28","text":"@notice Configure a set of incentives for a Boost using the given Budget\n @param targets_ The set of incentives {Target[]}\n @param budget_ The Budget from which to allocate the incentives\n @return incentives The set of initialized incentives {Incentive[]}"},"id":12189,"implemented":true,"kind":"function","modifiers":[],"name":"_makeIncentives","nameLocation":"9724:15:28","nodeType":"FunctionDefinition","parameters":{"id":12076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12072,"mutability":"mutable","name":"targets_","nameLocation":"9765:8:28","nodeType":"VariableDeclaration","scope":12189,"src":"9740:33:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","typeString":"struct BoostLib.Target[]"},"typeName":{"baseType":{"id":12070,"nodeType":"UserDefinedTypeName","pathNode":{"id":12069,"name":"BoostLib.Target","nameLocations":["9740:8:28","9749:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":18401,"src":"9740:15:28"},"referencedDeclaration":18401,"src":"9740:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"}},"id":12071,"nodeType":"ArrayTypeName","src":"9740:17:28","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Target_$18401_storage_$dyn_storage_ptr","typeString":"struct BoostLib.Target[]"}},"visibility":"internal"},{"constant":false,"id":12075,"mutability":"mutable","name":"budget_","nameLocation":"9782:7:28","nodeType":"VariableDeclaration","scope":12189,"src":"9775:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"},"typeName":{"id":12074,"nodeType":"UserDefinedTypeName","pathNode":{"id":12073,"name":"Budget","nameLocations":["9775:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":15659,"src":"9775:6:28"},"referencedDeclaration":15659,"src":"9775:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"visibility":"internal"}],"src":"9739:51:28"},"returnParameters":{"id":12081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12080,"mutability":"mutable","name":"incentives","nameLocation":"9844:10:28","nodeType":"VariableDeclaration","scope":12189,"src":"9825:29:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","typeString":"contract Incentive[]"},"typeName":{"baseType":{"id":12078,"nodeType":"UserDefinedTypeName","pathNode":{"id":12077,"name":"Incentive","nameLocations":["9825:9:28"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"9825:9:28"},"referencedDeclaration":18196,"src":"9825:9:28","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"id":12079,"nodeType":"ArrayTypeName","src":"9825:11:28","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_storage_ptr","typeString":"contract Incentive[]"}},"visibility":"internal"}],"src":"9824:31:28"},"scope":12294,"src":"9715:1233:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12226,"nodeType":"Block","src":"11171:307:28","statements":[{"expression":{"id":12210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12200,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"11181:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"expression":{"id":12201,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12193,"src":"11192:7:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11200:6:28","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":18396,"src":"11192:14:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":12207,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12193,"src":"11236:7:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11244:8:28","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":18398,"src":"11236:16:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11192:60:28","trueExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":12203,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12193,"src":"11209:7:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11217:8:28","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":18398,"src":"11209:16:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11226:5:28","memberName":"clone","nodeType":"MemberAccess","referencedDeclaration":9251,"src":"11209:22:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address) returns (address)"}},"id":12206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11209:24:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11181:71:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12211,"nodeType":"ExpressionStatement","src":"11181:71:28"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12212,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12193,"src":"11266:7:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11274:6:28","memberName":"isBase","nodeType":"MemberAccess","referencedDeclaration":18396,"src":"11266:14:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":12214,"name":"shouldInitialize_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12195,"src":"11284:17:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11266:35:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12225,"nodeType":"IfStatement","src":"11262:210:28","trueBody":{"id":12224,"nodeType":"Block","src":"11303:169:28","statements":[{"expression":{"arguments":[{"expression":{"id":12220,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12193,"src":"11442:7:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target memory"}},"id":12221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11450:10:28","memberName":"parameters","nodeType":"MemberAccess","referencedDeclaration":18400,"src":"11442:18:28","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":12217,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"11421:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12216,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"11411:9:28","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}},"id":12218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11411:19:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"id":12219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11431:10:28","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":18474,"src":"11411:30:28","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":12222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11411:50:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12223,"nodeType":"ExpressionStatement","src":"11411:50:28"}]}}]},"documentation":{"id":12190,"nodeType":"StructuredDocumentation","src":"10954:99:28","text":"@notice Get the target instance, optionally cloning and initializing from a base implementation"},"id":12227,"implemented":true,"kind":"function","modifiers":[],"name":"_maybeClone","nameLocation":"11067:11:28","nodeType":"FunctionDefinition","parameters":{"id":12196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12193,"mutability":"mutable","name":"target_","nameLocation":"11102:7:28","nodeType":"VariableDeclaration","scope":12227,"src":"11079:30:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_memory_ptr","typeString":"struct BoostLib.Target"},"typeName":{"id":12192,"nodeType":"UserDefinedTypeName","pathNode":{"id":12191,"name":"BoostLib.Target","nameLocations":["11079:8:28","11088:6:28"],"nodeType":"IdentifierPath","referencedDeclaration":18401,"src":"11079:15:28"},"referencedDeclaration":18401,"src":"11079:15:28","typeDescriptions":{"typeIdentifier":"t_struct$_Target_$18401_storage_ptr","typeString":"struct BoostLib.Target"}},"visibility":"internal"},{"constant":false,"id":12195,"mutability":"mutable","name":"shouldInitialize_","nameLocation":"11116:17:28","nodeType":"VariableDeclaration","scope":12227,"src":"11111:22:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12194,"name":"bool","nodeType":"ElementaryTypeName","src":"11111:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11078:56:28"},"returnParameters":{"id":12199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12198,"mutability":"mutable","name":"instance","nameLocation":"11161:8:28","nodeType":"VariableDeclaration","scope":12227,"src":"11153:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12197,"name":"address","nodeType":"ElementaryTypeName","src":"11153:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11152:18:28"},"scope":12294,"src":"11058:420:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":12292,"nodeType":"Block","src":"11780:576:28","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12236,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11794:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11806:1:28","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11794:13:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12240,"nodeType":"IfStatement","src":"11790:26:28","trueBody":{"functionReturnParameters":12235,"id":12239,"nodeType":"Return","src":"11809:7:28"}},{"assignments":[12242],"declarations":[{"constant":false,"id":12242,"mutability":"mutable","name":"netFee","nameLocation":"11833:6:28","nodeType":"VariableDeclaration","scope":12292,"src":"11825:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12241,"name":"uint256","nodeType":"ElementaryTypeName","src":"11825:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12244,"initialValue":{"id":12243,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"11842:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11825:25:28"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12245,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12233,"src":"11948:9:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11969:1:28","typeDescriptions":{"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":12247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11961:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12246,"name":"address","nodeType":"ElementaryTypeName","src":"11961:7:28","typeDescriptions":{}}},"id":12249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11961:10:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11948:23:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12271,"nodeType":"IfStatement","src":"11944:215:28","trueBody":{"id":12270,"nodeType":"Block","src":"11973:186:28","statements":[{"assignments":[12252],"declarations":[{"constant":false,"id":12252,"mutability":"mutable","name":"referralShare","nameLocation":"11995:13:28","nodeType":"VariableDeclaration","scope":12270,"src":"11987:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12251,"name":"uint256","nodeType":"ElementaryTypeName","src":"11987:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12259,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12253,"name":"claimFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11613,"src":"12011:8:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":12254,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12231,"src":"12022:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":12255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12028:11:28","memberName":"referralFee","nodeType":"MemberAccess","referencedDeclaration":18388,"src":"12022:17:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12011:28:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":12257,"name":"FEE_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11625,"src":"12042:15:28","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12011:46:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11987:70:28"},{"expression":{"id":12262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12260,"name":"netFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"12071:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":12261,"name":"referralShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12252,"src":"12081:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12071:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12263,"nodeType":"ExpressionStatement","src":"12071:23:28"},{"expression":{"arguments":[{"id":12267,"name":"referralShare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12252,"src":"12134:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12264,"name":"referrer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12233,"src":"12108:9:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12118:15:28","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"12108:25:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12108:40:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12269,"nodeType":"ExpressionStatement","src":"12108:40:28"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12277,"name":"netFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"12270:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":12278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12279:1:28","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12270:10:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":12272,"name":"boost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12231,"src":"12242:5:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost storage pointer"}},"id":12275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12248:5:28","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":18392,"src":"12242:11:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12254:15:28","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"12242:27:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12242:39:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12281,"nodeType":"ExpressionStatement","src":"12242:39:28"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":12287,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12335:4:28","typeDescriptions":{"typeIdentifier":"t_contract$_BoostCore_$12294","typeString":"contract BoostCore"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BoostCore_$12294","typeString":"contract BoostCore"}],"id":12286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12327:7:28","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12285,"name":"address","nodeType":"ElementaryTypeName","src":"12327:7:28","typeDescriptions":{}}},"id":12288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12327:13:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12341:7:28","memberName":"balance","nodeType":"MemberAccess","src":"12327:21:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12282,"name":"protocolFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11609,"src":"12291:19:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12311:15:28","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"12291:35:28","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256)"}},"id":12290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12291:58:28","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12291,"nodeType":"ExpressionStatement","src":"12291:58:28"}]},"documentation":{"id":12228,"nodeType":"StructuredDocumentation","src":"11484:209:28","text":"@notice Route the claim fee to the creator, referrer, and protocol fee receiver\n @param boost The Boost for which to route the claim fee\n @param referrer_ The address of the referrer (if any)"},"id":12293,"implemented":true,"kind":"function","modifiers":[],"name":"_routeClaimFee","nameLocation":"11707:14:28","nodeType":"FunctionDefinition","parameters":{"id":12234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12231,"mutability":"mutable","name":"boost","nameLocation":"11745:5:28","nodeType":"VariableDeclaration","scope":12293,"src":"11722:28:28","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"},"typeName":{"id":12230,"nodeType":"UserDefinedTypeName","pathNode":{"id":12229,"name":"BoostLib.Boost","nameLocations":["11722:8:28","11731:5:28"],"nodeType":"IdentifierPath","referencedDeclaration":18393,"src":"11722:14:28"},"referencedDeclaration":18393,"src":"11722:14:28","typeDescriptions":{"typeIdentifier":"t_struct$_Boost_$18393_storage_ptr","typeString":"struct BoostLib.Boost"}},"visibility":"internal"},{"constant":false,"id":12233,"mutability":"mutable","name":"referrer_","nameLocation":"11760:9:28","nodeType":"VariableDeclaration","scope":12293,"src":"11752:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12232,"name":"address","nodeType":"ElementaryTypeName","src":"11752:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11721:49:28"},"returnParameters":{"id":12235,"nodeType":"ParameterList","parameters":[],"src":"11780:0:28"},"scope":12294,"src":"11698:658:28","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":12295,"src":"1093:11265:28","usedErrors":[6221,6224,6227,6230,11006,18296,18305,18312,18342],"usedEvents":[6237,6242,6247,11597]}],"src":"36:12323:28"},"id":28},"contracts/BoostRegistry.sol":{"ast":{"absolutePath":"contracts/BoostRegistry.sol","exportedSymbols":{"AllowList":[13587],"BoostLib":[18429],"BoostRegistry":[12709],"Cloneable":[18509],"ERC165":[2831],"LibClone":[10078],"ReentrancyGuard":[11024]},"id":12710,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12296,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:29"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":12298,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12710,"sourceUnit":2832,"src":"62:78:29","symbolAliases":[{"foreign":{"id":12297,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"70:6:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":12300,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12710,"sourceUnit":10079,"src":"141:52:29","symbolAliases":[{"foreign":{"id":12299,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"149:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":12302,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12710,"sourceUnit":11025,"src":"194:66:29","symbolAliases":[{"foreign":{"id":12301,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11024,"src":"202:15:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostLib.sol","file":"contracts/shared/BoostLib.sol","id":12304,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12710,"sourceUnit":18430,"src":"262:55:29","symbolAliases":[{"foreign":{"id":12303,"name":"BoostLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18429,"src":"270:8:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12306,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12710,"sourceUnit":18510,"src":"318:57:29","symbolAliases":[{"foreign":{"id":12305,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"326:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":12308,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12710,"sourceUnit":13588,"src":"376:61:29","symbolAliases":[{"foreign":{"id":12307,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"384:9:29","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":12310,"name":"ERC165","nameLocations":["708:6:29"],"nodeType":"IdentifierPath","referencedDeclaration":2831,"src":"708:6:29"},"id":12311,"nodeType":"InheritanceSpecifier","src":"708:6:29"},{"baseName":{"id":12312,"name":"ReentrancyGuard","nameLocations":["716:15:29"],"nodeType":"IdentifierPath","referencedDeclaration":11024,"src":"716:15:29"},"id":12313,"nodeType":"InheritanceSpecifier","src":"716:15:29"}],"canonicalName":"BoostRegistry","contractDependencies":[],"contractKind":"contract","documentation":{"id":12309,"nodeType":"StructuredDocumentation","src":"439:243:29","text":"@title Boost Registry\n @notice A registry for base implementations and cloned instances\n @dev This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol"},"fullyImplemented":true,"id":12709,"linearizedBaseContracts":[12709,11024,2831,2843],"name":"BoostRegistry","nameLocation":"691:13:29","nodeType":"ContractDefinition","nodes":[{"global":false,"id":12316,"libraryName":{"id":12314,"name":"BoostLib","nameLocations":["744:8:29"],"nodeType":"IdentifierPath","referencedDeclaration":18429,"src":"744:8:29"},"nodeType":"UsingForDirective","src":"738:27:29","typeName":{"id":12315,"name":"address","nodeType":"ElementaryTypeName","src":"757:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"BoostRegistry.RegistryType","documentation":{"id":12317,"nodeType":"StructuredDocumentation","src":"771:53:29","text":"@notice The types of bases that can be registered"},"id":12323,"members":[{"id":12318,"name":"ACTION","nameLocation":"857:6:29","nodeType":"EnumValue","src":"857:6:29"},{"id":12319,"name":"ALLOW_LIST","nameLocation":"873:10:29","nodeType":"EnumValue","src":"873:10:29"},{"id":12320,"name":"BUDGET","nameLocation":"893:6:29","nodeType":"EnumValue","src":"893:6:29"},{"id":12321,"name":"INCENTIVE","nameLocation":"909:9:29","nodeType":"EnumValue","src":"909:9:29"},{"id":12322,"name":"VALIDATOR","nameLocation":"928:9:29","nodeType":"EnumValue","src":"928:9:29"}],"name":"RegistryType","nameLocation":"834:12:29","nodeType":"EnumDefinition","src":"829:114:29"},{"canonicalName":"BoostRegistry.Clone","documentation":{"id":12324,"nodeType":"StructuredDocumentation","src":"949:259:29","text":"@notice The data structure for a deployed clone\n @param baseType The type of base implementation\n @param name The display name for the clone\n @param instance The address of the clone\n @param deployer The address of the deployer"},"id":12335,"members":[{"constant":false,"id":12327,"mutability":"mutable","name":"baseType","nameLocation":"1249:8:29","nodeType":"VariableDeclaration","scope":12335,"src":"1236:21:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12326,"nodeType":"UserDefinedTypeName","pathNode":{"id":12325,"name":"RegistryType","nameLocations":["1236:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"1236:12:29"},"referencedDeclaration":12323,"src":"1236:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12330,"mutability":"mutable","name":"instance","nameLocation":"1277:8:29","nodeType":"VariableDeclaration","scope":12335,"src":"1267:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"},"typeName":{"id":12329,"nodeType":"UserDefinedTypeName","pathNode":{"id":12328,"name":"Cloneable","nameLocations":["1267:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1267:9:29"},"referencedDeclaration":18509,"src":"1267:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"visibility":"internal"},{"constant":false,"id":12332,"mutability":"mutable","name":"deployer","nameLocation":"1303:8:29","nodeType":"VariableDeclaration","scope":12335,"src":"1295:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12331,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12334,"mutability":"mutable","name":"name","nameLocation":"1328:4:29","nodeType":"VariableDeclaration","scope":12335,"src":"1321:11:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12333,"name":"string","nodeType":"ElementaryTypeName","src":"1321:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Clone","nameLocation":"1220:5:29","nodeType":"StructDefinition","scope":12709,"src":"1213:126:29","visibility":"public"},{"anonymous":false,"documentation":{"id":12336,"nodeType":"StructuredDocumentation","src":"1345:64:29","text":"@notice Emitted when a new base implementation is registered"},"eventSelector":"660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd80","id":12345,"name":"Registered","nameLocation":"1420:10:29","nodeType":"EventDefinition","parameters":{"id":12344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12339,"indexed":true,"mutability":"mutable","name":"registryType","nameLocation":"1452:12:29","nodeType":"VariableDeclaration","scope":12345,"src":"1431:33:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12338,"nodeType":"UserDefinedTypeName","pathNode":{"id":12337,"name":"RegistryType","nameLocations":["1431:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"1431:12:29"},"referencedDeclaration":12323,"src":"1431:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12341,"indexed":true,"mutability":"mutable","name":"identifier","nameLocation":"1482:10:29","nodeType":"VariableDeclaration","scope":12345,"src":"1466:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1466:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12343,"indexed":false,"mutability":"mutable","name":"implementation","nameLocation":"1502:14:29","nodeType":"VariableDeclaration","scope":12345,"src":"1494:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12342,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1430:87:29"},"src":"1414:104:29"},{"anonymous":false,"documentation":{"id":12346,"nodeType":"StructuredDocumentation","src":"1524:76:29","text":"@notice Emitted when a new instance of a base implementation is deployed"},"eventSelector":"2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a","id":12358,"name":"Deployed","nameLocation":"1611:8:29","nodeType":"EventDefinition","parameters":{"id":12357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12349,"indexed":true,"mutability":"mutable","name":"registryType","nameLocation":"1650:12:29","nodeType":"VariableDeclaration","scope":12358,"src":"1629:33:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12348,"nodeType":"UserDefinedTypeName","pathNode":{"id":12347,"name":"RegistryType","nameLocations":["1629:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"1629:12:29"},"referencedDeclaration":12323,"src":"1629:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12351,"indexed":true,"mutability":"mutable","name":"identifier","nameLocation":"1688:10:29","nodeType":"VariableDeclaration","scope":12358,"src":"1672:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1672:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12353,"indexed":false,"mutability":"mutable","name":"baseImplementation","nameLocation":"1716:18:29","nodeType":"VariableDeclaration","scope":12358,"src":"1708:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12352,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12356,"indexed":false,"mutability":"mutable","name":"deployedInstance","nameLocation":"1754:16:29","nodeType":"VariableDeclaration","scope":12358,"src":"1744:26:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"},"typeName":{"id":12355,"nodeType":"UserDefinedTypeName","pathNode":{"id":12354,"name":"Cloneable","nameLocations":["1744:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1744:9:29"},"referencedDeclaration":18509,"src":"1744:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"1619:157:29"},"src":"1605:172:29"},{"documentation":{"id":12359,"nodeType":"StructuredDocumentation","src":"1783:67:29","text":"@notice Thrown when a base implementation is already registered"},"errorSelector":"96b5684c","id":12366,"name":"AlreadyRegistered","nameLocation":"1861:17:29","nodeType":"ErrorDefinition","parameters":{"id":12365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12362,"mutability":"mutable","name":"registryType","nameLocation":"1892:12:29","nodeType":"VariableDeclaration","scope":12366,"src":"1879:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12361,"nodeType":"UserDefinedTypeName","pathNode":{"id":12360,"name":"RegistryType","nameLocations":["1879:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"1879:12:29"},"referencedDeclaration":12323,"src":"1879:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12364,"mutability":"mutable","name":"identifier","nameLocation":"1914:10:29","nodeType":"VariableDeclaration","scope":12366,"src":"1906:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1906:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1878:47:29"},"src":"1855:71:29"},{"documentation":{"id":12367,"nodeType":"StructuredDocumentation","src":"1932:66:29","text":"@notice Thrown when no match is found for the given identifier"},"errorSelector":"8cc00d16","id":12371,"name":"NotRegistered","nameLocation":"2009:13:29","nodeType":"ErrorDefinition","parameters":{"id":12370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12369,"mutability":"mutable","name":"identifier","nameLocation":"2031:10:29","nodeType":"VariableDeclaration","scope":12371,"src":"2023:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2023:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2022:20:29"},"src":"2003:40:29"},{"documentation":{"id":12372,"nodeType":"StructuredDocumentation","src":"2049:74:29","text":"@notice Thrown when the implementation is not a valid {Cloneable} base"},"errorSelector":"d3dd3012","id":12376,"name":"NotCloneable","nameLocation":"2134:12:29","nodeType":"ErrorDefinition","parameters":{"id":12375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12374,"mutability":"mutable","name":"implementation","nameLocation":"2155:14:29","nodeType":"VariableDeclaration","scope":12376,"src":"2147:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12373,"name":"address","nodeType":"ElementaryTypeName","src":"2147:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2146:24:29"},"src":"2128:43:29"},{"constant":false,"documentation":{"id":12377,"nodeType":"StructuredDocumentation","src":"2177:48:29","text":"@notice The registry of base implementations"},"id":12382,"mutability":"mutable","name":"_bases","nameLocation":"2268:6:29","nodeType":"VariableDeclaration","scope":12709,"src":"2230:44:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$18509_$","typeString":"mapping(bytes32 => contract Cloneable)"},"typeName":{"id":12381,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2238:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2230:29:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$18509_$","typeString":"mapping(bytes32 => contract Cloneable)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12380,"nodeType":"UserDefinedTypeName","pathNode":{"id":12379,"name":"Cloneable","nameLocations":["2249:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"2249:9:29"},"referencedDeclaration":18509,"src":"2249:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}}},"visibility":"private"},{"constant":false,"documentation":{"id":12383,"nodeType":"StructuredDocumentation","src":"2281:43:29","text":"@notice The registry of deployed clones"},"id":12388,"mutability":"mutable","name":"_clones","nameLocation":"2363:7:29","nodeType":"VariableDeclaration","scope":12709,"src":"2329:41:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12335_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone)"},"typeName":{"id":12387,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12384,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2337:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2329:25:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12335_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12386,"nodeType":"UserDefinedTypeName","pathNode":{"id":12385,"name":"Clone","nameLocations":["2348:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":12335,"src":"2348:5:29"},"referencedDeclaration":12335,"src":"2348:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_storage_ptr","typeString":"struct BoostRegistry.Clone"}}},"visibility":"private"},{"constant":false,"documentation":{"id":12389,"nodeType":"StructuredDocumentation","src":"2377:62:29","text":"@notice The registry of clones created by a given deployer"},"id":12394,"mutability":"mutable","name":"_deployedClones","nameLocation":"2482:15:29","nodeType":"VariableDeclaration","scope":12709,"src":"2444:53:29","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[])"},"typeName":{"id":12393,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12390,"name":"address","nodeType":"ElementaryTypeName","src":"2452:7:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2444:29:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":12391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2463:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12392,"nodeType":"ArrayTypeName","src":"2463:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"visibility":"private"},{"body":{"id":12416,"nodeType":"Block","src":"2713:168:29","statements":[{"condition":{"id":12408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2727:74:29","subExpression":{"arguments":[{"expression":{"arguments":[{"id":12404,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"2778:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}],"id":12403,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2773:4:29","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:15:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Cloneable_$18509","typeString":"type(contract Cloneable)"}},"id":12406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2789:11:29","memberName":"interfaceId","nodeType":"MemberAccess","src":"2773:27:29","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"id":12400,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12397,"src":"2738:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12399,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"2728:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}},"id":12401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"id":12402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2755:17:29","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18508,"src":"2728:44:29","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":12407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2728:73:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12414,"nodeType":"IfStatement","src":"2723:141:29","trueBody":{"id":12413,"nodeType":"Block","src":"2803:61:29","statements":[{"errorCall":{"arguments":[{"id":12410,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12397,"src":"2837:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12409,"name":"NotCloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"2824:12:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":12411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2824:29:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12412,"nodeType":"RevertStatement","src":"2817:36:29"}]}},{"id":12415,"nodeType":"PlaceholderStatement","src":"2873:1:29"}]},"documentation":{"id":12395,"nodeType":"StructuredDocumentation","src":"2504:155:29","text":"@notice A modifier to ensure the given address holds a valid {Cloneable} base\n @param implementation_ The address of the implementation to check"},"id":12417,"name":"onlyCloneables","nameLocation":"2673:14:29","nodeType":"ModifierDefinition","parameters":{"id":12398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12397,"mutability":"mutable","name":"implementation_","nameLocation":"2696:15:29","nodeType":"VariableDeclaration","scope":12417,"src":"2688:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12396,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2687:25:29"},"src":"2664:217:29","virtual":false,"visibility":"internal"},{"body":{"id":12469,"nodeType":"Block","src":"3548:285:29","statements":[{"assignments":[12432],"declarations":[{"constant":false,"id":12432,"mutability":"mutable","name":"identifier","nameLocation":"3566:10:29","nodeType":"VariableDeclaration","scope":12469,"src":"3558:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3558:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12437,"initialValue":{"arguments":[{"id":12434,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12421,"src":"3593:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12435,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12423,"src":"3600:5:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12433,"name":"getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12688,"src":"3579:13:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12323_$_t_string_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,string calldata) pure returns (bytes32)"}},"id":12436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3579:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3558:48:29"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":12440,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"3629:6:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$18509_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12442,"indexExpression":{"id":12441,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"3636:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3629:18:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}],"id":12439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3621:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12438,"name":"address","nodeType":"ElementaryTypeName","src":"3621:7:29","typeDescriptions":{}}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3621:27:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3660:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3652:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12444,"name":"address","nodeType":"ElementaryTypeName","src":"3652:7:29","typeDescriptions":{}}},"id":12447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3652:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3621:41:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12454,"nodeType":"IfStatement","src":"3617:90:29","trueBody":{"errorCall":{"arguments":[{"id":12450,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12421,"src":"3689:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12451,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"3696:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12449,"name":"AlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"3671:17:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_RegistryType_$12323_$_t_bytes32_$returns$_t_error_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (error)"}},"id":12452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3671:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12453,"nodeType":"RevertStatement","src":"3664:43:29"}},{"expression":{"id":12461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12455,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"3717:6:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$18509_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12457,"indexExpression":{"id":12456,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"3724:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3717:18:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12459,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12425,"src":"3748:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12458,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"3738:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}},"id":12460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3738:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"src":"3717:47:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"id":12462,"nodeType":"ExpressionStatement","src":"3717:47:29"},{"eventCall":{"arguments":[{"id":12464,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12421,"src":"3791:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12465,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12432,"src":"3798:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12466,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12425,"src":"3810:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12463,"name":"Registered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12345,"src":"3780:10:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_RegistryType_$12323_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32,address)"}},"id":12467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:46:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12468,"nodeType":"EmitStatement","src":"3775:51:29"}]},"documentation":{"id":12418,"nodeType":"StructuredDocumentation","src":"2887:509:29","text":"@notice Register a new base implementation of a given type\n @param type_ The base type for the implementation\n @param name_ A name for the implementation (must be unique within the given type)\n @param implementation_ The address of the implementation contract\n @dev This function will either emit a `Registered` event or revert if the identifier has already been registered\n @dev The given address must implement the given type interface (See {ERC165-supportsInterface})"},"functionSelector":"d12dd481","id":12470,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12428,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12425,"src":"3527:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12429,"kind":"modifierInvocation","modifierName":{"id":12427,"name":"onlyCloneables","nameLocations":["3512:14:29"],"nodeType":"IdentifierPath","referencedDeclaration":12417,"src":"3512:14:29"},"nodeType":"ModifierInvocation","src":"3512:31:29"}],"name":"register","nameLocation":"3410:8:29","nodeType":"FunctionDefinition","parameters":{"id":12426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12421,"mutability":"mutable","name":"type_","nameLocation":"3432:5:29","nodeType":"VariableDeclaration","scope":12470,"src":"3419:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12420,"nodeType":"UserDefinedTypeName","pathNode":{"id":12419,"name":"RegistryType","nameLocations":["3419:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"3419:12:29"},"referencedDeclaration":12323,"src":"3419:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12423,"mutability":"mutable","name":"name_","nameLocation":"3455:5:29","nodeType":"VariableDeclaration","scope":12470,"src":"3439:21:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12422,"name":"string","nodeType":"ElementaryTypeName","src":"3439:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12425,"mutability":"mutable","name":"implementation_","nameLocation":"3470:15:29","nodeType":"VariableDeclaration","scope":12470,"src":"3462:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12424,"name":"address","nodeType":"ElementaryTypeName","src":"3462:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3418:68:29"},"returnParameters":{"id":12430,"nodeType":"ParameterList","parameters":[],"src":"3548:0:29"},"scope":12709,"src":"3401:432:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12562,"nodeType":"Block","src":"4512:713:29","statements":[{"expression":{"id":12505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12488,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12486,"src":"4565:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":12495,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"4650:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12496,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12476,"src":"4657:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12497,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12478,"src":"4664:5:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":12498,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4671:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4675:6:29","memberName":"sender","nodeType":"MemberAccess","src":"4671:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4633:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4637:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"4633:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4633:49:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12492,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4623:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:60:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12502,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12480,"src":"4685:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12490,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12476,"src":"4598:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4604:18:29","memberName":"cloneAndInitialize","nodeType":"MemberAccess","referencedDeclaration":18428,"src":"4598:24:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address,bytes32,bytes memory) returns (address)"}},"id":12503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4598:93:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12489,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"4588:9:29","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}},"id":12504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:104:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"src":"4565:127:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"id":12506,"nodeType":"ExpressionStatement","src":"4565:127:29"},{"assignments":[12508],"declarations":[{"constant":false,"id":12508,"mutability":"mutable","name":"identifier","nameLocation":"4762:10:29","nodeType":"VariableDeclaration","scope":12562,"src":"4754:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4754:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12516,"initialValue":{"arguments":[{"id":12510,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"4794:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12511,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12476,"src":"4801:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12512,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4808:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4812:6:29","memberName":"sender","nodeType":"MemberAccess","src":"4808:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12514,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12478,"src":"4820:5:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12509,"name":"getCloneIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12666,"src":"4775:18:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12323_$_t_address_$_t_address_$_t_string_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,address,address,string calldata) pure returns (bytes32)"}},"id":12515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4775:51:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4754:72:29"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"baseExpression":{"id":12519,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12388,"src":"4848:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12335_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12521,"indexExpression":{"id":12520,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12508,"src":"4856:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4848:19:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"id":12522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4868:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":12330,"src":"4848:28:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}],"id":12518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4840:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"4840:7:29","typeDescriptions":{}}},"id":12523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4840:37:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4889:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4881:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12524,"name":"address","nodeType":"ElementaryTypeName","src":"4881:7:29","typeDescriptions":{}}},"id":12527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4881:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4840:51:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12534,"nodeType":"IfStatement","src":"4836:100:29","trueBody":{"errorCall":{"arguments":[{"id":12530,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"4918:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12531,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12508,"src":"4925:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12529,"name":"AlreadyRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"4900:17:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_enum$_RegistryType_$12323_$_t_bytes32_$returns$_t_error_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (error)"}},"id":12532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4900:36:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12533,"nodeType":"RevertStatement","src":"4893:43:29"}},{"expression":{"arguments":[{"id":12540,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12508,"src":"5036:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"id":12535,"name":"_deployedClones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"5003:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[] storage ref)"}},"id":12538,"indexExpression":{"expression":{"id":12536,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5019:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5023:6:29","memberName":"sender","nodeType":"MemberAccess","src":"5019:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5003:27:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5031:4:29","memberName":"push","nodeType":"MemberAccess","src":"5003:32:29","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5003:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12542,"nodeType":"ExpressionStatement","src":"5003:44:29"},{"expression":{"id":12553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12543,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12388,"src":"5057:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12335_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12545,"indexExpression":{"id":12544,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12508,"src":"5065:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5057:19:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12547,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"5096:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12548,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12486,"src":"5113:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},{"expression":{"id":12549,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5133:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5137:6:29","memberName":"sender","nodeType":"MemberAccess","src":"5133:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12551,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12478,"src":"5151:5:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":12546,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"5079:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Clone_$12335_storage_ptr_$","typeString":"type(struct BoostRegistry.Clone storage pointer)"}},"id":12552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5086:8:29","5103:8:29","5123:8:29","5145:4:29"],"names":["baseType","instance","deployer","name"],"nodeType":"FunctionCall","src":"5079:79:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"src":"5057:101:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"id":12554,"nodeType":"ExpressionStatement","src":"5057:101:29"},{"eventCall":{"arguments":[{"id":12556,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"5183:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12557,"name":"identifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12508,"src":"5190:10:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12558,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12476,"src":"5202:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12559,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12486,"src":"5209:8:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}],"id":12555,"name":"Deployed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12358,"src":"5174:8:29","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_enum$_RegistryType_$12323_$_t_bytes32_$_t_address_$_t_contract$_Cloneable_$18509_$returns$__$","typeString":"function (enum BoostRegistry.RegistryType,bytes32,address,contract Cloneable)"}},"id":12560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5174:44:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12561,"nodeType":"EmitStatement","src":"5169:49:29"}]},"documentation":{"id":12471,"nodeType":"StructuredDocumentation","src":"3839:488:29","text":"@notice Deploy a new instance of a registered base implementation\n @param type_ The type of base implementation to be cloned\n @param base_ The address of the base implementation to clone\n @param name_ The display name for the clone\n @param data_ The data payload for the cloned instance's initializer\n @return instance The address of the deployed instance\n @dev This function will either emit a `Deployed` event and return the clone or revert"},"functionSelector":"fd97064b","id":12563,"implemented":true,"kind":"function","modifiers":[{"id":12483,"kind":"modifierInvocation","modifierName":{"id":12482,"name":"nonReentrant","nameLocations":["4458:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":11017,"src":"4458:12:29"},"nodeType":"ModifierInvocation","src":"4458:12:29"}],"name":"deployClone","nameLocation":"4341:11:29","nodeType":"FunctionDefinition","parameters":{"id":12481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12474,"mutability":"mutable","name":"type_","nameLocation":"4366:5:29","nodeType":"VariableDeclaration","scope":12563,"src":"4353:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12473,"nodeType":"UserDefinedTypeName","pathNode":{"id":12472,"name":"RegistryType","nameLocations":["4353:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"4353:12:29"},"referencedDeclaration":12323,"src":"4353:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12476,"mutability":"mutable","name":"base_","nameLocation":"4381:5:29","nodeType":"VariableDeclaration","scope":12563,"src":"4373:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12475,"name":"address","nodeType":"ElementaryTypeName","src":"4373:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12478,"mutability":"mutable","name":"name_","nameLocation":"4404:5:29","nodeType":"VariableDeclaration","scope":12563,"src":"4388:21:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12477,"name":"string","nodeType":"ElementaryTypeName","src":"4388:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12480,"mutability":"mutable","name":"data_","nameLocation":"4426:5:29","nodeType":"VariableDeclaration","scope":12563,"src":"4411:20:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12479,"name":"bytes","nodeType":"ElementaryTypeName","src":"4411:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4352:80:29"},"returnParameters":{"id":12487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12486,"mutability":"mutable","name":"instance","nameLocation":"4498:8:29","nodeType":"VariableDeclaration","scope":12563,"src":"4488:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"},"typeName":{"id":12485,"nodeType":"UserDefinedTypeName","pathNode":{"id":12484,"name":"Cloneable","nameLocations":["4488:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"4488:9:29"},"referencedDeclaration":18509,"src":"4488:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"4487:20:29"},"scope":12709,"src":"4332:893:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12592,"nodeType":"Block","src":"5636:139:29","statements":[{"expression":{"id":12576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12572,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"5646:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12573,"name":"_bases","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"5663:6:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_contract$_Cloneable_$18509_$","typeString":"mapping(bytes32 => contract Cloneable)"}},"id":12575,"indexExpression":{"id":12574,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12566,"src":"5670:11:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5663:19:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"src":"5646:36:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"id":12577,"nodeType":"ExpressionStatement","src":"5646:36:29"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12580,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12570,"src":"5704:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}],"id":12579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5696:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12578,"name":"address","nodeType":"ElementaryTypeName","src":"5696:7:29","typeDescriptions":{}}},"id":12581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5696:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5731:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5723:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12582,"name":"address","nodeType":"ElementaryTypeName","src":"5723:7:29","typeDescriptions":{}}},"id":12585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5723:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5696:37:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12591,"nodeType":"IfStatement","src":"5692:76:29","trueBody":{"errorCall":{"arguments":[{"id":12588,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12566,"src":"5756:11:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12587,"name":"NotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"5742:13:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":12589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5742:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12590,"nodeType":"RevertStatement","src":"5735:33:29"}}]},"documentation":{"id":12564,"nodeType":"StructuredDocumentation","src":"5231:301:29","text":"@notice Get the address of a registered base implementation\n @param identifier_ The unique identifier for the implementation (see {getIdentifier})\n @return implementation The address of the implementation\n @dev This function will revert if the implementation is not registered"},"functionSelector":"83f38859","id":12593,"implemented":true,"kind":"function","modifiers":[],"name":"getBaseImplementation","nameLocation":"5546:21:29","nodeType":"FunctionDefinition","parameters":{"id":12567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12566,"mutability":"mutable","name":"identifier_","nameLocation":"5576:11:29","nodeType":"VariableDeclaration","scope":12593,"src":"5568:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5568:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5567:21:29"},"returnParameters":{"id":12571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12570,"mutability":"mutable","name":"implementation","nameLocation":"5620:14:29","nodeType":"VariableDeclaration","scope":12593,"src":"5610:24:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"},"typeName":{"id":12569,"nodeType":"UserDefinedTypeName","pathNode":{"id":12568,"name":"Cloneable","nameLocations":["5610:9:29"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"5610:9:29"},"referencedDeclaration":18509,"src":"5610:9:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"visibility":"internal"}],"src":"5609:26:29"},"scope":12709,"src":"5537:238:29","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":12623,"nodeType":"Block","src":"6088:131:29","statements":[{"expression":{"id":12606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12602,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12600,"src":"6098:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":12603,"name":"_clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12388,"src":"6106:7:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Clone_$12335_storage_$","typeString":"mapping(bytes32 => struct BoostRegistry.Clone storage ref)"}},"id":12605,"indexExpression":{"id":12604,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"6114:11:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6106:20:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_storage","typeString":"struct BoostRegistry.Clone storage ref"}},"src":"6098:28:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"id":12607,"nodeType":"ExpressionStatement","src":"6098:28:29"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":12610,"name":"clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12600,"src":"6148:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_memory_ptr","typeString":"struct BoostRegistry.Clone memory"}},"id":12611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6154:8:29","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":12330,"src":"6148:14:29","typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}],"id":12609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6140:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12608,"name":"address","nodeType":"ElementaryTypeName","src":"6140:7:29","typeDescriptions":{}}},"id":12612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":12615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6175:1:29","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6167:7:29","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12613,"name":"address","nodeType":"ElementaryTypeName","src":"6167:7:29","typeDescriptions":{}}},"id":12616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6167:10:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6140:37:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12622,"nodeType":"IfStatement","src":"6136:76:29","trueBody":{"errorCall":{"arguments":[{"id":12619,"name":"identifier_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"6200:11:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12618,"name":"NotRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12371,"src":"6186:13:29","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":12620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:26:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12621,"nodeType":"RevertStatement","src":"6179:33:29"}}]},"documentation":{"id":12594,"nodeType":"StructuredDocumentation","src":"5781:220:29","text":"@notice Get the address of a deployed clone by its identifier\n @param identifier_ The unique identifier for the deployed clone (see {getCloneIdentifier})\n @return clone The address of the deployed clone"},"functionSelector":"3aaf1626","id":12624,"implemented":true,"kind":"function","modifiers":[],"name":"getClone","nameLocation":"6015:8:29","nodeType":"FunctionDefinition","parameters":{"id":12597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12596,"mutability":"mutable","name":"identifier_","nameLocation":"6032:11:29","nodeType":"VariableDeclaration","scope":12624,"src":"6024:19:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6024:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6023:21:29"},"returnParameters":{"id":12601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12600,"mutability":"mutable","name":"clone","nameLocation":"6081:5:29","nodeType":"VariableDeclaration","scope":12624,"src":"6068:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_memory_ptr","typeString":"struct BoostRegistry.Clone"},"typeName":{"id":12599,"nodeType":"UserDefinedTypeName","pathNode":{"id":12598,"name":"Clone","nameLocations":["6068:5:29"],"nodeType":"IdentifierPath","referencedDeclaration":12335,"src":"6068:5:29"},"referencedDeclaration":12335,"src":"6068:5:29","typeDescriptions":{"typeIdentifier":"t_struct$_Clone_$12335_storage_ptr","typeString":"struct BoostRegistry.Clone"}},"visibility":"internal"}],"src":"6067:20:29"},"scope":12709,"src":"6006:213:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12637,"nodeType":"Block","src":"6672:50:29","statements":[{"expression":{"baseExpression":{"id":12633,"name":"_deployedClones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12394,"src":"6689:15:29","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(address => bytes32[] storage ref)"}},"id":12635,"indexExpression":{"id":12634,"name":"deployer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12627,"src":"6705:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6689:26:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":12632,"id":12636,"nodeType":"Return","src":"6682:33:29"}]},"documentation":{"id":12625,"nodeType":"StructuredDocumentation","src":"6225:363:29","text":"@notice Get the list of identifiers of deployed clones for a given deployer\n @param deployer_ The address of the deployer\n @return clones The list of deployed clones for the given deployer\n @dev WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic."},"functionSelector":"792aa01c","id":12638,"implemented":true,"kind":"function","modifiers":[],"name":"getClones","nameLocation":"6602:9:29","nodeType":"FunctionDefinition","parameters":{"id":12628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12627,"mutability":"mutable","name":"deployer_","nameLocation":"6620:9:29","nodeType":"VariableDeclaration","scope":12638,"src":"6612:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12626,"name":"address","nodeType":"ElementaryTypeName","src":"6612:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6611:19:29"},"returnParameters":{"id":12632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12638,"src":"6654:16:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6654:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12630,"nodeType":"ArrayTypeName","src":"6654:9:29","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"6653:18:29"},"scope":12709,"src":"6593:129:29","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":12665,"nodeType":"Block","src":"7261:99:29","statements":[{"expression":{"arguments":[{"id":12654,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12642,"src":"7293:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"arguments":[{"arguments":[{"id":12658,"name":"base_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12644,"src":"7327:5:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12659,"name":"deployer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12646,"src":"7334:9:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12660,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12648,"src":"7345:5:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":12656,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7310:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7314:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"7310:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7310:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12655,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7300:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7300:52:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12653,"name":"_getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12708,"src":"7278:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12323_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (bytes32)"}},"id":12663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7278:75:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12652,"id":12664,"nodeType":"Return","src":"7271:82:29"}]},"documentation":{"id":12639,"nodeType":"StructuredDocumentation","src":"6728:354:29","text":"@notice Build the identifier for a clone of a base implementation\n @param type_ The base type for the implementation\n @param base_ The address of the base implementation\n @param deployer_ The address of the deployer\n @param name_ The display name of the clone\n @return identifier The unique identifier for the clone"},"functionSelector":"acc83fc8","id":12666,"implemented":true,"kind":"function","modifiers":[],"name":"getCloneIdentifier","nameLocation":"7096:18:29","nodeType":"FunctionDefinition","parameters":{"id":12649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12642,"mutability":"mutable","name":"type_","nameLocation":"7128:5:29","nodeType":"VariableDeclaration","scope":12666,"src":"7115:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12641,"nodeType":"UserDefinedTypeName","pathNode":{"id":12640,"name":"RegistryType","nameLocations":["7115:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"7115:12:29"},"referencedDeclaration":12323,"src":"7115:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12644,"mutability":"mutable","name":"base_","nameLocation":"7143:5:29","nodeType":"VariableDeclaration","scope":12666,"src":"7135:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12643,"name":"address","nodeType":"ElementaryTypeName","src":"7135:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12646,"mutability":"mutable","name":"deployer_","nameLocation":"7158:9:29","nodeType":"VariableDeclaration","scope":12666,"src":"7150:17:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12645,"name":"address","nodeType":"ElementaryTypeName","src":"7150:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12648,"mutability":"mutable","name":"name_","nameLocation":"7185:5:29","nodeType":"VariableDeclaration","scope":12666,"src":"7169:21:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12647,"name":"string","nodeType":"ElementaryTypeName","src":"7169:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7114:77:29"},"returnParameters":{"id":12652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"identifier","nameLocation":"7245:10:29","nodeType":"VariableDeclaration","scope":12666,"src":"7237:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7237:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7236:20:29"},"scope":12709,"src":"7087:273:29","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12687,"nodeType":"Block","src":"7718:81:29","statements":[{"expression":{"arguments":[{"id":12678,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12670,"src":"7750:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"arguments":[{"arguments":[{"id":12682,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12672,"src":"7784:5:29","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":12680,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7767:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7771:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"7767:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7767:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12679,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7757:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7757:34:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12677,"name":"_getIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12708,"src":"7735:14:29","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RegistryType_$12323_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (enum BoostRegistry.RegistryType,bytes32) pure returns (bytes32)"}},"id":12685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7735:57:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12676,"id":12686,"nodeType":"Return","src":"7728:64:29"}]},"documentation":{"id":12667,"nodeType":"StructuredDocumentation","src":"7366:240:29","text":"@notice Build the identifier for a base implementation\n @param type_ The base type for the implementation\n @param name_ The name of the implementation\n @return identifier The unique identifier for the implementation"},"functionSelector":"f1668792","id":12688,"implemented":true,"kind":"function","modifiers":[],"name":"getIdentifier","nameLocation":"7620:13:29","nodeType":"FunctionDefinition","parameters":{"id":12673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12670,"mutability":"mutable","name":"type_","nameLocation":"7647:5:29","nodeType":"VariableDeclaration","scope":12688,"src":"7634:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12669,"nodeType":"UserDefinedTypeName","pathNode":{"id":12668,"name":"RegistryType","nameLocations":["7634:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"7634:12:29"},"referencedDeclaration":12323,"src":"7634:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12672,"mutability":"mutable","name":"name_","nameLocation":"7670:5:29","nodeType":"VariableDeclaration","scope":12688,"src":"7654:21:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12671,"name":"string","nodeType":"ElementaryTypeName","src":"7654:6:29","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7633:43:29"},"returnParameters":{"id":12676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12675,"mutability":"mutable","name":"identifier","nameLocation":"7706:10:29","nodeType":"VariableDeclaration","scope":12688,"src":"7698:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7698:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7697:20:29"},"scope":12709,"src":"7611:188:29","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12707,"nodeType":"Block","src":"8165:65:29","statements":[{"expression":{"arguments":[{"arguments":[{"id":12702,"name":"type_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12692,"src":"8209:5:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},{"id":12703,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12694,"src":"8216:5:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8192:3:29","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8196:12:29","memberName":"encodePacked","nodeType":"MemberAccess","src":"8192:16:29","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8192:30:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12699,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8182:9:29","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8182:41:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12698,"id":12706,"nodeType":"Return","src":"8175:48:29"}]},"documentation":{"id":12689,"nodeType":"StructuredDocumentation","src":"7805:253:29","text":"@notice Build a unique identifier for a given type and hash\n @param type_ The base type for the implementation\n @param hash_ The unique hash for the implementation\n @return identifier The unique identifier for the implementation"},"id":12708,"implemented":true,"kind":"function","modifiers":[],"name":"_getIdentifier","nameLocation":"8072:14:29","nodeType":"FunctionDefinition","parameters":{"id":12695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12692,"mutability":"mutable","name":"type_","nameLocation":"8100:5:29","nodeType":"VariableDeclaration","scope":12708,"src":"8087:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"},"typeName":{"id":12691,"nodeType":"UserDefinedTypeName","pathNode":{"id":12690,"name":"RegistryType","nameLocations":["8087:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":12323,"src":"8087:12:29"},"referencedDeclaration":12323,"src":"8087:12:29","typeDescriptions":{"typeIdentifier":"t_enum$_RegistryType_$12323","typeString":"enum BoostRegistry.RegistryType"}},"visibility":"internal"},{"constant":false,"id":12694,"mutability":"mutable","name":"hash_","nameLocation":"8115:5:29","nodeType":"VariableDeclaration","scope":12708,"src":"8107:13:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8107:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8086:35:29"},"returnParameters":{"id":12698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12697,"mutability":"mutable","name":"identifier","nameLocation":"8153:10:29","nodeType":"VariableDeclaration","scope":12708,"src":"8145:18:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8145:7:29","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8144:20:29"},"scope":12709,"src":"8063:167:29","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12710,"src":"682:7550:29","usedErrors":[11006,12366,12371,12376],"usedEvents":[12345,12358]}],"src":"36:8197:29"},"id":29},"contracts/actions/AContractAction.sol":{"ast":{"absolutePath":"contracts/actions/AContractAction.sol","exportedSymbols":{"AContractAction":[12848],"Action":[13114],"Cloneable":[18509],"ERC721":[9097]},"id":12849,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12711,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:30"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":12713,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12849,"sourceUnit":9098,"src":"62:49:30","symbolAliases":[{"foreign":{"id":12712,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"70:6:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12715,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12849,"sourceUnit":18510,"src":"113:57:30","symbolAliases":[{"foreign":{"id":12714,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"121:9:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":12717,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":12849,"sourceUnit":13115,"src":"172:52:30","symbolAliases":[{"foreign":{"id":12716,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"180:6:30","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":12718,"name":"Action","nameLocations":["263:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":13114,"src":"263:6:30"},"id":12719,"nodeType":"InheritanceSpecifier","src":"263:6:30"}],"canonicalName":"AContractAction","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":12848,"linearizedBaseContracts":[12848,13114,18509,2831,2843,9211],"name":"AContractAction","nameLocation":"244:15:30","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":12720,"nodeType":"StructuredDocumentation","src":"276:67:30","text":"@notice Thrown when execution on a given chain is not supported"},"errorSelector":"180098f4","id":12724,"name":"TargetChainUnsupported","nameLocation":"354:22:30","nodeType":"ErrorDefinition","parameters":{"id":12723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12722,"mutability":"mutable","name":"targetChainId","nameLocation":"385:13:30","nodeType":"VariableDeclaration","scope":12724,"src":"377:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12721,"name":"uint256","nodeType":"ElementaryTypeName","src":"377:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"376:23:30"},"src":"348:52:30"},{"constant":false,"documentation":{"id":12725,"nodeType":"StructuredDocumentation","src":"406:31:30","text":"@notice The target chain ID"},"functionSelector":"9a8a0592","id":12727,"mutability":"mutable","name":"chainId","nameLocation":"457:7:30","nodeType":"VariableDeclaration","scope":12848,"src":"442:22:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12726,"name":"uint256","nodeType":"ElementaryTypeName","src":"442:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":12728,"nodeType":"StructuredDocumentation","src":"471:31:30","text":"@notice The target contract"},"functionSelector":"d4b83992","id":12730,"mutability":"mutable","name":"target","nameLocation":"522:6:30","nodeType":"VariableDeclaration","scope":12848,"src":"507:21:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12729,"name":"address","nodeType":"ElementaryTypeName","src":"507:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":12731,"nodeType":"StructuredDocumentation","src":"535:54:30","text":"@notice The selector for the function to be called"},"functionSelector":"ea3d508a","id":12733,"mutability":"mutable","name":"selector","nameLocation":"608:8:30","nodeType":"VariableDeclaration","scope":12848,"src":"594:22:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12732,"name":"bytes4","nodeType":"ElementaryTypeName","src":"594:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"constant":false,"documentation":{"id":12734,"nodeType":"StructuredDocumentation","src":"623:65:30","text":"@notice The native token value to send with the function call"},"functionSelector":"3fa4f245","id":12736,"mutability":"mutable","name":"value","nameLocation":"708:5:30","nodeType":"VariableDeclaration","scope":12848,"src":"693:20:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12735,"name":"uint256","nodeType":"ElementaryTypeName","src":"693:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"baseFunctions":[18474],"body":{"id":12746,"nodeType":"Block","src":"913:41:30","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12743,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"930:15:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"930:17:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12745,"nodeType":"RevertStatement","src":"923:24:30"}]},"documentation":{"id":12737,"nodeType":"StructuredDocumentation","src":"720:122:30","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":12747,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"856:10:30","nodeType":"FunctionDefinition","overrides":{"id":12741,"nodeType":"OverrideSpecifier","overrides":[],"src":"904:8:30"},"parameters":{"id":12740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12739,"mutability":"mutable","name":"data_","nameLocation":"882:5:30","nodeType":"VariableDeclaration","scope":12747,"src":"867:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12738,"name":"bytes","nodeType":"ElementaryTypeName","src":"867:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"866:22:30"},"returnParameters":{"id":12742,"nodeType":"ParameterList","parameters":[],"src":"913:0:30"},"scope":12848,"src":"847:107:30","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13068],"body":{"id":12784,"nodeType":"Block","src":"1062:232:30","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12757,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12727,"src":"1076:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12758,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1087:5:30","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1093:7:30","memberName":"chainid","nodeType":"MemberAccess","src":"1087:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1076:24:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12765,"nodeType":"IfStatement","src":"1072:68:30","trueBody":{"errorCall":{"arguments":[{"id":12762,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12727,"src":"1132:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12761,"name":"TargetChainUnsupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12724,"src":"1109:22:30","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":12763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1109:31:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12764,"nodeType":"RevertStatement","src":"1102:38:30"}},{"assignments":[12767,12769],"declarations":[{"constant":false,"id":12767,"mutability":"mutable","name":"success","nameLocation":"1156:7:30","nodeType":"VariableDeclaration","scope":12784,"src":"1151:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12766,"name":"bool","nodeType":"ElementaryTypeName","src":"1151:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12769,"mutability":"mutable","name":"returnData","nameLocation":"1178:10:30","nodeType":"VariableDeclaration","scope":12784,"src":"1165:23:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12768,"name":"bytes","nodeType":"ElementaryTypeName","src":"1165:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12779,"initialValue":{"arguments":[{"arguments":[{"id":12775,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"1232:8:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12776,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12749,"src":"1242:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12774,"name":"_buildPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12810,"src":"1218:13:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4,bytes calldata) pure returns (bytes memory)"}},"id":12777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":12770,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12730,"src":"1192:6:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1199:4:30","memberName":"call","nodeType":"MemberAccess","src":"1192:11:30","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":12773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":12772,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12736,"src":"1211:5:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1192:25:30","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":12778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:57:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1150:99:30"},{"expression":{"components":[{"id":12780,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12767,"src":"1267:7:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12781,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12769,"src":"1276:10:30","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12782,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1266:21:30","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":12756,"id":12783,"nodeType":"Return","src":"1259:28:30"}]},"functionSelector":"09c5eabe","id":12785,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"969:7:30","nodeType":"FunctionDefinition","overrides":{"id":12751,"nodeType":"OverrideSpecifier","overrides":[],"src":"1024:8:30"},"parameters":{"id":12750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12749,"mutability":"mutable","name":"data_","nameLocation":"992:5:30","nodeType":"VariableDeclaration","scope":12785,"src":"977:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12748,"name":"bytes","nodeType":"ElementaryTypeName","src":"977:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"976:22:30"},"returnParameters":{"id":12756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12785,"src":"1042:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12752,"name":"bool","nodeType":"ElementaryTypeName","src":"1042:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12785,"src":"1048:12:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12754,"name":"bytes","nodeType":"ElementaryTypeName","src":"1048:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1041:20:30"},"scope":12848,"src":"960:334:30","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[13076],"body":{"id":12798,"nodeType":"Block","src":"1398:54:30","statements":[{"expression":{"arguments":[{"id":12794,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"1429:8:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":12795,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12787,"src":"1439:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":12793,"name":"_buildPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12810,"src":"1415:13:30","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4,bytes calldata) pure returns (bytes memory)"}},"id":12796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:30:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12792,"id":12797,"nodeType":"Return","src":"1408:37:30"}]},"functionSelector":"d7768c47","id":12799,"implemented":true,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"1309:7:30","nodeType":"FunctionDefinition","overrides":{"id":12789,"nodeType":"OverrideSpecifier","overrides":[],"src":"1359:8:30"},"parameters":{"id":12788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12787,"mutability":"mutable","name":"data_","nameLocation":"1332:5:30","nodeType":"VariableDeclaration","scope":12799,"src":"1317:20:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12786,"name":"bytes","nodeType":"ElementaryTypeName","src":"1317:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1316:22:30"},"returnParameters":{"id":12792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12791,"mutability":"mutable","name":"bytes_","nameLocation":"1390:6:30","nodeType":"VariableDeclaration","scope":12799,"src":"1377:19:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12790,"name":"bytes","nodeType":"ElementaryTypeName","src":"1377:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1376:21:30"},"scope":12848,"src":"1300:152:30","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":12809,"nodeType":"Block","src":"1570:457:30","statements":[{"AST":{"nativeSrc":"1589:432:30","nodeType":"YulBlock","src":"1589:432:30","statements":[{"nativeSrc":"1649:36:30","nodeType":"YulVariableDeclaration","src":"1649:36:30","value":{"arguments":[{"kind":"number","nativeSrc":"1665:1:30","nodeType":"YulLiteral","src":"1665:1:30","type":"","value":"4"},{"name":"calldata_.length","nativeSrc":"1668:16:30","nodeType":"YulIdentifier","src":"1668:16:30"}],"functionName":{"name":"add","nativeSrc":"1661:3:30","nodeType":"YulIdentifier","src":"1661:3:30"},"nativeSrc":"1661:24:30","nodeType":"YulFunctionCall","src":"1661:24:30"},"variables":[{"name":"size","nativeSrc":"1653:4:30","nodeType":"YulTypedName","src":"1653:4:30","type":""}]},{"nativeSrc":"1698:22:30","nodeType":"YulAssignment","src":"1698:22:30","value":{"arguments":[{"kind":"number","nativeSrc":"1715:4:30","nodeType":"YulLiteral","src":"1715:4:30","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"1709:5:30","nodeType":"YulIdentifier","src":"1709:5:30"},"nativeSrc":"1709:11:30","nodeType":"YulFunctionCall","src":"1709:11:30"},"variableNames":[{"name":"payload","nativeSrc":"1698:7:30","nodeType":"YulIdentifier","src":"1698:7:30"}]},{"expression":{"arguments":[{"name":"payload","nativeSrc":"1740:7:30","nodeType":"YulIdentifier","src":"1740:7:30"},{"name":"size","nativeSrc":"1749:4:30","nodeType":"YulIdentifier","src":"1749:4:30"}],"functionName":{"name":"mstore","nativeSrc":"1733:6:30","nodeType":"YulIdentifier","src":"1733:6:30"},"nativeSrc":"1733:21:30","nodeType":"YulFunctionCall","src":"1733:21:30"},"nativeSrc":"1733:21:30","nodeType":"YulExpressionStatement","src":"1733:21:30"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1774:4:30","nodeType":"YulLiteral","src":"1774:4:30","type":"","value":"0x40"},{"arguments":[{"name":"payload","nativeSrc":"1784:7:30","nodeType":"YulIdentifier","src":"1784:7:30"},{"arguments":[{"name":"size","nativeSrc":"1797:4:30","nodeType":"YulIdentifier","src":"1797:4:30"},{"kind":"number","nativeSrc":"1803:4:30","nodeType":"YulLiteral","src":"1803:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1793:3:30","nodeType":"YulIdentifier","src":"1793:3:30"},"nativeSrc":"1793:15:30","nodeType":"YulFunctionCall","src":"1793:15:30"}],"functionName":{"name":"add","nativeSrc":"1780:3:30","nodeType":"YulIdentifier","src":"1780:3:30"},"nativeSrc":"1780:29:30","nodeType":"YulFunctionCall","src":"1780:29:30"}],"functionName":{"name":"mstore","nativeSrc":"1767:6:30","nodeType":"YulIdentifier","src":"1767:6:30"},"nativeSrc":"1767:43:30","nodeType":"YulFunctionCall","src":"1767:43:30"},"nativeSrc":"1767:43:30","nodeType":"YulExpressionStatement","src":"1767:43:30"},{"expression":{"arguments":[{"arguments":[{"name":"payload","nativeSrc":"1904:7:30","nodeType":"YulIdentifier","src":"1904:7:30"},{"kind":"number","nativeSrc":"1913:4:30","nodeType":"YulLiteral","src":"1913:4:30","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1900:3:30","nodeType":"YulIdentifier","src":"1900:3:30"},"nativeSrc":"1900:18:30","nodeType":"YulFunctionCall","src":"1900:18:30"},{"name":"selector_","nativeSrc":"1920:9:30","nodeType":"YulIdentifier","src":"1920:9:30"}],"functionName":{"name":"mstore","nativeSrc":"1893:6:30","nodeType":"YulIdentifier","src":"1893:6:30"},"nativeSrc":"1893:37:30","nodeType":"YulFunctionCall","src":"1893:37:30"},"nativeSrc":"1893:37:30","nodeType":"YulExpressionStatement","src":"1893:37:30"},{"expression":{"arguments":[{"arguments":[{"name":"payload","nativeSrc":"1960:7:30","nodeType":"YulIdentifier","src":"1960:7:30"},{"kind":"number","nativeSrc":"1969:4:30","nodeType":"YulLiteral","src":"1969:4:30","type":"","value":"0x24"}],"functionName":{"name":"add","nativeSrc":"1956:3:30","nodeType":"YulIdentifier","src":"1956:3:30"},"nativeSrc":"1956:18:30","nodeType":"YulFunctionCall","src":"1956:18:30"},{"name":"calldata_.offset","nativeSrc":"1976:16:30","nodeType":"YulIdentifier","src":"1976:16:30"},{"name":"calldata_.length","nativeSrc":"1994:16:30","nodeType":"YulIdentifier","src":"1994:16:30"}],"functionName":{"name":"calldatacopy","nativeSrc":"1943:12:30","nodeType":"YulIdentifier","src":"1943:12:30"},"nativeSrc":"1943:68:30","nodeType":"YulFunctionCall","src":"1943:68:30"},"nativeSrc":"1943:68:30","nodeType":"YulExpressionStatement","src":"1943:68:30"}]},"evmVersion":"cancun","externalReferences":[{"declaration":12803,"isOffset":false,"isSlot":false,"src":"1668:16:30","suffix":"length","valueSize":1},{"declaration":12803,"isOffset":false,"isSlot":false,"src":"1994:16:30","suffix":"length","valueSize":1},{"declaration":12803,"isOffset":true,"isSlot":false,"src":"1976:16:30","suffix":"offset","valueSize":1},{"declaration":12806,"isOffset":false,"isSlot":false,"src":"1698:7:30","valueSize":1},{"declaration":12806,"isOffset":false,"isSlot":false,"src":"1740:7:30","valueSize":1},{"declaration":12806,"isOffset":false,"isSlot":false,"src":"1784:7:30","valueSize":1},{"declaration":12806,"isOffset":false,"isSlot":false,"src":"1904:7:30","valueSize":1},{"declaration":12806,"isOffset":false,"isSlot":false,"src":"1960:7:30","valueSize":1},{"declaration":12801,"isOffset":false,"isSlot":false,"src":"1920:9:30","valueSize":1}],"id":12808,"nodeType":"InlineAssembly","src":"1580:441:30"}]},"id":12810,"implemented":true,"kind":"function","modifiers":[],"name":"_buildPayload","nameLocation":"1467:13:30","nodeType":"FunctionDefinition","parameters":{"id":12804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12801,"mutability":"mutable","name":"selector_","nameLocation":"1488:9:30","nodeType":"VariableDeclaration","scope":12810,"src":"1481:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12800,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1481:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":12803,"mutability":"mutable","name":"calldata_","nameLocation":"1514:9:30","nodeType":"VariableDeclaration","scope":12810,"src":"1499:24:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12802,"name":"bytes","nodeType":"ElementaryTypeName","src":"1499:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1480:44:30"},"returnParameters":{"id":12807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12806,"mutability":"mutable","name":"payload","nameLocation":"1561:7:30","nodeType":"VariableDeclaration","scope":12810,"src":"1548:20:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12805,"name":"bytes","nodeType":"ElementaryTypeName","src":"1548:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1547:22:30"},"scope":12848,"src":"1458:569:30","stateMutability":"pure","virtual":false,"visibility":"internal"},{"baseFunctions":[13113],"body":{"id":12823,"nodeType":"Block","src":"2147:57:30","statements":[{"expression":{"expression":{"arguments":[{"id":12819,"name":"AContractAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12848,"src":"2169:15:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AContractAction_$12848_$","typeString":"type(contract AContractAction)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AContractAction_$12848_$","typeString":"type(contract AContractAction)"}],"id":12818,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2164:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2164:21:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AContractAction_$12848","typeString":"type(contract AContractAction)"}},"id":12821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2186:11:30","memberName":"interfaceId","nodeType":"MemberAccess","src":"2164:33:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":12817,"id":12822,"nodeType":"Return","src":"2157:40:30"}]},"documentation":{"id":12811,"nodeType":"StructuredDocumentation","src":"2033:22:30","text":"@inheritdoc Action"},"functionSelector":"28d6183b","id":12824,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"2069:21:30","nodeType":"FunctionDefinition","overrides":{"id":12814,"nodeType":"OverrideSpecifier","overrides":[{"id":12813,"name":"Action","nameLocations":["2122:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":13114,"src":"2122:6:30"}],"src":"2113:16:30"},"parameters":{"id":12812,"nodeType":"ParameterList","parameters":[],"src":"2090:2:30"},"returnParameters":{"id":12817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12824,"src":"2139:6:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12815,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2139:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2138:8:30"},"scope":12848,"src":"2060:144:30","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[13099],"body":{"id":12846,"nodeType":"Block","src":"2336:112:30","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":12839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12834,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12827,"src":"2353:11:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":12836,"name":"AContractAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12848,"src":"2373:15:30","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AContractAction_$12848_$","typeString":"type(contract AContractAction)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AContractAction_$12848_$","typeString":"type(contract AContractAction)"}],"id":12835,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2368:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2368:21:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AContractAction_$12848","typeString":"type(contract AContractAction)"}},"id":12838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2390:11:30","memberName":"interfaceId","nodeType":"MemberAccess","src":"2368:33:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2353:48:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":12842,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12827,"src":"2429:11:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":12840,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2405:5:30","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AContractAction_$12848_$","typeString":"type(contract super AContractAction)"}},"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2411:17:30","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":13099,"src":"2405:23:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":12843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2405:36:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2353:88:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":12833,"id":12845,"nodeType":"Return","src":"2346:95:30"}]},"documentation":{"id":12825,"nodeType":"StructuredDocumentation","src":"2210:22:30","text":"@inheritdoc Action"},"functionSelector":"01ffc9a7","id":12847,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2246:17:30","nodeType":"FunctionDefinition","overrides":{"id":12830,"nodeType":"OverrideSpecifier","overrides":[{"id":12829,"name":"Action","nameLocations":["2313:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":13114,"src":"2313:6:30"}],"src":"2304:16:30"},"parameters":{"id":12828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12827,"mutability":"mutable","name":"interfaceId","nameLocation":"2271:11:30","nodeType":"VariableDeclaration","scope":12847,"src":"2264:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12826,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2264:6:30","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2263:20:30"},"returnParameters":{"id":12833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12847,"src":"2330:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12831,"name":"bool","nodeType":"ElementaryTypeName","src":"2330:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2329:6:30"},"scope":12848,"src":"2237:211:30","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":12849,"src":"226:2224:30","usedErrors":[9103,9106,12724,18443,18446,18449],"usedEvents":[9111,13045,13054]}],"src":"36:2415:30"},"id":30},"contracts/actions/AERC721MintAction.sol":{"ast":{"absolutePath":"contracts/actions/AERC721MintAction.sol","exportedSymbols":{"AContractAction":[12848],"AERC721MintAction":[13025],"Action":[13114],"BoostError":[18343],"Cloneable":[18509],"ContractAction":[13190],"ERC721":[9097],"Validator":[19130]},"id":13026,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":12850,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:31"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":12852,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13026,"sourceUnit":9098,"src":"62:49:31","symbolAliases":[{"foreign":{"id":12851,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"70:6:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":12854,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13026,"sourceUnit":18344,"src":"113:59:31","symbolAliases":[{"foreign":{"id":12853,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"121:10:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":12856,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13026,"sourceUnit":18510,"src":"173:57:31","symbolAliases":[{"foreign":{"id":12855,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"181:9:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":12858,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13026,"sourceUnit":13115,"src":"232:52:31","symbolAliases":[{"foreign":{"id":12857,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"240:6:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/ContractAction.sol","file":"contracts/actions/ContractAction.sol","id":12860,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13026,"sourceUnit":13191,"src":"285:68:31","symbolAliases":[{"foreign":{"id":12859,"name":"ContractAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13190,"src":"293:14:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/AContractAction.sol","file":"contracts/actions/AContractAction.sol","id":12862,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13026,"sourceUnit":12849,"src":"354:70:31","symbolAliases":[{"foreign":{"id":12861,"name":"AContractAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12848,"src":"362:15:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":12864,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13026,"sourceUnit":19131,"src":"425:61:31","symbolAliases":[{"foreign":{"id":12863,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"433:9:31","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":12866,"name":"ContractAction","nameLocations":["984:14:31"],"nodeType":"IdentifierPath","referencedDeclaration":13190,"src":"984:14:31"},"id":12867,"nodeType":"InheritanceSpecifier","src":"984:14:31"},{"baseName":{"id":12868,"name":"Validator","nameLocations":["1000:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"1000:9:31"},"id":12869,"nodeType":"InheritanceSpecifier","src":"1000:9:31"}],"canonicalName":"AERC721MintAction","contractDependencies":[],"contractKind":"contract","documentation":{"id":12865,"nodeType":"StructuredDocumentation","src":"488:457:31","text":"@title ERC721 Mint Action\n @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n @dev The action is expected to be prepared with the data payload for the minting of the token\n @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n @dev It is expected that the target contract has an externally accessible mint function whose selector"},"fullyImplemented":true,"id":13025,"linearizedBaseContracts":[13025,19130,13190,12848,13114,18509,2831,2843,9211,6409],"name":"AERC721MintAction","nameLocation":"963:17:31","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":12870,"nodeType":"StructuredDocumentation","src":"1016:127:31","text":"@notice The set of validated tokens\n @dev This is intended to prevent multiple validations against the same token ID"},"functionSelector":"bec95277","id":12874,"mutability":"mutable","name":"validated","nameLocation":"1180:9:31","nodeType":"VariableDeclaration","scope":13025,"src":"1148:41:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"typeName":{"id":12873,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":12871,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1148:24:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":12872,"name":"bool","nodeType":"ElementaryTypeName","src":"1167:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"baseFunctions":[13160,18474],"body":{"id":12886,"nodeType":"Block","src":"1319:41:31","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":12883,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1336:15:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:17:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12885,"nodeType":"RevertStatement","src":"1329:24:31"}]},"documentation":{"id":12875,"nodeType":"StructuredDocumentation","src":"1196:25:31","text":"@inheritdoc Cloneable"},"functionSelector":"439fab91","id":12887,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1235:10:31","nodeType":"FunctionDefinition","overrides":{"id":12881,"nodeType":"OverrideSpecifier","overrides":[{"id":12879,"name":"Cloneable","nameLocations":["1292:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1292:9:31"},{"id":12880,"name":"ContractAction","nameLocations":["1303:14:31"],"nodeType":"IdentifierPath","referencedDeclaration":13190,"src":"1303:14:31"}],"src":"1283:35:31"},"parameters":{"id":12878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12877,"mutability":"mutable","name":"data_","nameLocation":"1261:5:31","nodeType":"VariableDeclaration","scope":12887,"src":"1246:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12876,"name":"bytes","nodeType":"ElementaryTypeName","src":"1246:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1245:22:31"},"returnParameters":{"id":12882,"nodeType":"ParameterList","parameters":[],"src":"1319:0:31"},"scope":13025,"src":"1226:134:31","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[12785],"body":{"id":12908,"nodeType":"Block","src":"1733:89:31","statements":[{"expression":{"components":[{"id":12898,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12890,"src":"1744:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":12899,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12894,"src":"1751:7:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12900,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12896,"src":"1760:10:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":12901,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1743:28:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes_calldata_ptr_$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bytes calldata,bool,bytes memory)"}},"id":12902,"nodeType":"ExpressionStatement","src":"1743:28:31"},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":12903,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1788:10:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":12905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1799:14:31","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":18321,"src":"1788:25:31","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":12906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1788:27:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":12907,"nodeType":"RevertStatement","src":"1781:34:31"}]},"documentation":{"id":12888,"nodeType":"StructuredDocumentation","src":"1366:249:31","text":"@notice Execute the action (not yet implemented)\n @param data_ The data payload for the call (not used in this implementation)\n @return success The success status of the call\n @return returnData The return data from the call"},"functionSelector":"09c5eabe","id":12909,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"1629:7:31","nodeType":"FunctionDefinition","overrides":{"id":12892,"nodeType":"OverrideSpecifier","overrides":[],"src":"1676:8:31"},"parameters":{"id":12891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12890,"mutability":"mutable","name":"data_","nameLocation":"1652:5:31","nodeType":"VariableDeclaration","scope":12909,"src":"1637:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12889,"name":"bytes","nodeType":"ElementaryTypeName","src":"1637:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1636:22:31"},"returnParameters":{"id":12897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12894,"mutability":"mutable","name":"success","nameLocation":"1699:7:31","nodeType":"VariableDeclaration","scope":12909,"src":"1694:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12893,"name":"bool","nodeType":"ElementaryTypeName","src":"1694:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12896,"mutability":"mutable","name":"returnData","nameLocation":"1721:10:31","nodeType":"VariableDeclaration","scope":12909,"src":"1708:23:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12895,"name":"bytes","nodeType":"ElementaryTypeName","src":"1708:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1693:39:31"},"scope":13025,"src":"1620:202:31","stateMutability":"payable","virtual":false,"visibility":"external"},{"baseFunctions":[12799],"body":{"id":12923,"nodeType":"Block","src":"2245:44:31","statements":[{"expression":{"arguments":[{"id":12920,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12912,"src":"2276:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":12918,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2262:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AERC721MintAction_$13025_$","typeString":"type(contract super AERC721MintAction)"}},"id":12919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2268:7:31","memberName":"prepare","nodeType":"MemberAccess","referencedDeclaration":12799,"src":"2262:13:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_calldata_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes calldata) view returns (bytes memory)"}},"id":12921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2262:20:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":12917,"id":12922,"nodeType":"Return","src":"2255:27:31"}]},"documentation":{"id":12910,"nodeType":"StructuredDocumentation","src":"1828:329:31","text":"@notice Prepare the action for execution and return the expected payload\n @param data_ The ABI-encoded payload for the target contract call\n @return The encoded payload to be sent to the target contract\n @dev Note that the mint value is NOT included in the prepared payload but must be sent with the call"},"functionSelector":"d7768c47","id":12924,"implemented":true,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"2171:7:31","nodeType":"FunctionDefinition","overrides":{"id":12914,"nodeType":"OverrideSpecifier","overrides":[],"src":"2213:8:31"},"parameters":{"id":12913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12912,"mutability":"mutable","name":"data_","nameLocation":"2194:5:31","nodeType":"VariableDeclaration","scope":12924,"src":"2179:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12911,"name":"bytes","nodeType":"ElementaryTypeName","src":"2179:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2178:22:31"},"returnParameters":{"id":12917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12924,"src":"2231:12:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12915,"name":"bytes","nodeType":"ElementaryTypeName","src":"2231:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2230:14:31"},"scope":13025,"src":"2162:127:31","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[19092],"body":{"id":12984,"nodeType":"Block","src":"2882:344:31","statements":[{"assignments":[12935,12937],"declarations":[{"constant":false,"id":12935,"mutability":"mutable","name":"holder","nameLocation":"2901:6:31","nodeType":"VariableDeclaration","scope":12984,"src":"2893:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12934,"name":"address","nodeType":"ElementaryTypeName","src":"2893:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12937,"mutability":"mutable","name":"payload","nameLocation":"2922:7:31","nodeType":"VariableDeclaration","scope":12984,"src":"2909:20:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12936,"name":"bytes","nodeType":"ElementaryTypeName","src":"2909:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12947,"initialValue":{"arguments":[{"id":12940,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12927,"src":"2944:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":12942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2952:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12941,"name":"address","nodeType":"ElementaryTypeName","src":"2952:7:31","typeDescriptions":{}}},{"id":12944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2961:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":12943,"name":"bytes","nodeType":"ElementaryTypeName","src":"2961:5:31","typeDescriptions":{}}}],"id":12945,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2951:16:31","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes storage pointer))"}],"expression":{"id":12938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2933:3:31","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2937:6:31","memberName":"decode","nodeType":"MemberAccess","src":"2933:10:31","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2933:35:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2892:76:31"},{"assignments":[12949],"declarations":[{"constant":false,"id":12949,"mutability":"mutable","name":"tokenId","nameLocation":"2986:7:31","nodeType":"VariableDeclaration","scope":12984,"src":"2978:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12948,"name":"uint256","nodeType":"ElementaryTypeName","src":"2978:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12957,"initialValue":{"arguments":[{"arguments":[{"id":12954,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12937,"src":"3012:7:31","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3004:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3004:7:31","typeDescriptions":{}}},"id":12955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3004:16:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2996:7:31","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12950,"name":"uint256","nodeType":"ElementaryTypeName","src":"2996:7:31","typeDescriptions":{}}},"id":12956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2996:25:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2978:43:31"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":12962,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12949,"src":"3059:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":12959,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12730,"src":"3043:6:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12958,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"3036:6:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$9097_$","typeString":"type(contract ERC721)"}},"id":12960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3036:14:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC721_$9097","typeString":"contract ERC721"}},"id":12961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3051:7:31","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":8471,"src":"3036:22:31","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":12963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3036:31:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12964,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12935,"src":"3071:6:31","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3036:41:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":12969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3081:19:31","subExpression":{"baseExpression":{"id":12966,"name":"validated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"3082:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":12968,"indexExpression":{"id":12967,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12949,"src":"3092:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3082:18:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3036:64:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12982,"nodeType":"Block","src":"3183:37:31","statements":[{"expression":{"hexValue":"66616c7365","id":12980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3204:5:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":12933,"id":12981,"nodeType":"Return","src":"3197:12:31"}]},"id":12983,"nodeType":"IfStatement","src":"3032:188:31","trueBody":{"id":12979,"nodeType":"Block","src":"3102:75:31","statements":[{"expression":{"id":12975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":12971,"name":"validated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12874,"src":"3116:9:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":12973,"indexExpression":{"id":12972,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12949,"src":"3126:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3116:18:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3137:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3116:25:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12976,"nodeType":"ExpressionStatement","src":"3116:25:31"},{"expression":{"hexValue":"74727565","id":12977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3162:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12933,"id":12978,"nodeType":"Return","src":"3155:11:31"}]}}]},"documentation":{"id":12925,"nodeType":"StructuredDocumentation","src":"2295:482:31","text":"@inheritdoc Validator\n @notice Validate that the action has been completed successfully\n @param data_ The data payload for the action `(address holder, (uint256 tokenId))`\n @return success True if the action has been validated for the user\n @dev The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)\n @dev Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`"},"functionSelector":"c16e50ef","id":12985,"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"2791:8:31","nodeType":"FunctionDefinition","overrides":{"id":12930,"nodeType":"OverrideSpecifier","overrides":[{"id":12929,"name":"Validator","nameLocations":["2848:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"2848:9:31"}],"src":"2839:19:31"},"parameters":{"id":12928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12927,"mutability":"mutable","name":"data_","nameLocation":"2815:5:31","nodeType":"VariableDeclaration","scope":12985,"src":"2800:20:31","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12926,"name":"bytes","nodeType":"ElementaryTypeName","src":"2800:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2799:22:31"},"returnParameters":{"id":12933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12932,"mutability":"mutable","name":"success","nameLocation":"2873:7:31","nodeType":"VariableDeclaration","scope":12985,"src":"2868:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12931,"name":"bool","nodeType":"ElementaryTypeName","src":"2868:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2867:14:31"},"scope":13025,"src":"2782:444:31","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[12824,19129],"body":{"id":12999,"nodeType":"Block","src":"3375:59:31","statements":[{"expression":{"expression":{"arguments":[{"id":12995,"name":"AERC721MintAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"3397:17:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AERC721MintAction_$13025_$","typeString":"type(contract AERC721MintAction)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AERC721MintAction_$13025_$","typeString":"type(contract AERC721MintAction)"}],"id":12994,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3392:4:31","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":12996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:23:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AERC721MintAction_$13025","typeString":"type(contract AERC721MintAction)"}},"id":12997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3416:11:31","memberName":"interfaceId","nodeType":"MemberAccess","src":"3392:35:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":12993,"id":12998,"nodeType":"Return","src":"3385:42:31"}]},"documentation":{"id":12986,"nodeType":"StructuredDocumentation","src":"3232:31:31","text":"@inheritdoc AContractAction"},"functionSelector":"28d6183b","id":13000,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"3277:21:31","nodeType":"FunctionDefinition","overrides":{"id":12990,"nodeType":"OverrideSpecifier","overrides":[{"id":12988,"name":"AContractAction","nameLocations":["3330:15:31"],"nodeType":"IdentifierPath","referencedDeclaration":12848,"src":"3330:15:31"},{"id":12989,"name":"Validator","nameLocations":["3347:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"3347:9:31"}],"src":"3321:36:31"},"parameters":{"id":12987,"nodeType":"ParameterList","parameters":[],"src":"3298:2:31"},"returnParameters":{"id":12993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13000,"src":"3367:6:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12991,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3367:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3366:8:31"},"scope":13025,"src":"3268:166:31","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[12847,19115],"body":{"id":13023,"nodeType":"Block","src":"3639:114:31","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13011,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"3656:11:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13013,"name":"AERC721MintAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"3676:17:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AERC721MintAction_$13025_$","typeString":"type(contract AERC721MintAction)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AERC721MintAction_$13025_$","typeString":"type(contract AERC721MintAction)"}],"id":13012,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3671:4:31","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3671:23:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AERC721MintAction_$13025","typeString":"type(contract AERC721MintAction)"}},"id":13015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3695:11:31","memberName":"interfaceId","nodeType":"MemberAccess","src":"3671:35:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3656:50:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13019,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13003,"src":"3734:11:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13017,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3710:5:31","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AERC721MintAction_$13025_$","typeString":"type(contract super AERC721MintAction)"}},"id":13018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3716:17:31","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":19115,"src":"3710:23:31","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3710:36:31","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3656:90:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13010,"id":13022,"nodeType":"Return","src":"3649:97:31"}]},"documentation":{"id":13001,"nodeType":"StructuredDocumentation","src":"3440:31:31","text":"@inheritdoc AContractAction"},"functionSelector":"01ffc9a7","id":13024,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3485:17:31","nodeType":"FunctionDefinition","overrides":{"id":13007,"nodeType":"OverrideSpecifier","overrides":[{"id":13005,"name":"AContractAction","nameLocations":["3584:15:31"],"nodeType":"IdentifierPath","referencedDeclaration":12848,"src":"3584:15:31"},{"id":13006,"name":"Validator","nameLocations":["3601:9:31"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"3601:9:31"}],"src":"3575:36:31"},"parameters":{"id":13004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13003,"mutability":"mutable","name":"interfaceId","nameLocation":"3510:11:31","nodeType":"VariableDeclaration","scope":13024,"src":"3503:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13002,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3503:6:31","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3502:20:31"},"returnParameters":{"id":13010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13024,"src":"3629:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13008,"name":"bool","nodeType":"ElementaryTypeName","src":"3629:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3628:6:31"},"scope":13025,"src":"3476:277:31","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":13026,"src":"945:2810:31","usedErrors":[6221,6224,6227,6230,9103,9106,12724,18321,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,13045,13054]}],"src":"36:3720:31"},"id":31},"contracts/actions/Action.sol":{"ast":{"absolutePath":"contracts/actions/Action.sol","exportedSymbols":{"Action":[13114],"Cloneable":[18509],"Validator":[19130]},"id":13115,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13027,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:32"},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13029,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13115,"sourceUnit":18510,"src":"62:57:32","symbolAliases":[{"foreign":{"id":13028,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"70:9:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":13031,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13115,"sourceUnit":19131,"src":"120:61:32","symbolAliases":[{"foreign":{"id":13030,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"128:9:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13033,"name":"Cloneable","nameLocations":["460:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"460:9:32"},"id":13034,"nodeType":"InheritanceSpecifier","src":"460:9:32"}],"canonicalName":"Action","contractDependencies":[],"contractKind":"contract","documentation":{"id":13032,"nodeType":"StructuredDocumentation","src":"183:249:32","text":"@title Boost Action\n @notice Abstract contract for a generic Action within the Boost protocol\n @dev Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":13114,"linearizedBaseContracts":[13114,18509,2831,2843,9211],"name":"Action","nameLocation":"450:6:32","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":13035,"nodeType":"StructuredDocumentation","src":"476:145:32","text":"@notice Emitted when the action is executed by a proxy.\n @dev The `data` field should contain the return data from the action, if any."},"eventSelector":"1f92ef25aeecc310b452a1367dc5386413b9e2a8ef881251566fae23cd7e73f5","id":13045,"name":"ActionExecuted","nameLocation":"632:14:32","nodeType":"EventDefinition","parameters":{"id":13044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13037,"indexed":true,"mutability":"mutable","name":"executor","nameLocation":"663:8:32","nodeType":"VariableDeclaration","scope":13045,"src":"647:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13036,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13039,"indexed":false,"mutability":"mutable","name":"caller","nameLocation":"681:6:32","nodeType":"VariableDeclaration","scope":13045,"src":"673:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13038,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13041,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"694:7:32","nodeType":"VariableDeclaration","scope":13045,"src":"689:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13040,"name":"bool","nodeType":"ElementaryTypeName","src":"689:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13043,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"709:4:32","nodeType":"VariableDeclaration","scope":13045,"src":"703:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13042,"name":"bytes","nodeType":"ElementaryTypeName","src":"703:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"646:68:32"},"src":"626:89:32"},{"anonymous":false,"documentation":{"id":13046,"nodeType":"StructuredDocumentation","src":"721:141:32","text":"@notice Emitted when the action is validated\n @dev The `data` field should contain implementation-specific context, if applicable."},"eventSelector":"2de47361bfd500dc4a9050a3ff72d4eab6a58f4772452004a90555302be271b1","id":13054,"name":"ActionValidated","nameLocation":"873:15:32","nodeType":"EventDefinition","parameters":{"id":13053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13048,"indexed":true,"mutability":"mutable","name":"user","nameLocation":"905:4:32","nodeType":"VariableDeclaration","scope":13054,"src":"889:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13047,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13050,"indexed":false,"mutability":"mutable","name":"isValidated","nameLocation":"916:11:32","nodeType":"VariableDeclaration","scope":13054,"src":"911:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13049,"name":"bool","nodeType":"ElementaryTypeName","src":"911:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13052,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"935:4:32","nodeType":"VariableDeclaration","scope":13054,"src":"929:10:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13051,"name":"bytes","nodeType":"ElementaryTypeName","src":"929:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"888:52:32"},"src":"867:74:32"},{"constant":false,"documentation":{"id":13055,"nodeType":"StructuredDocumentation","src":"947:91:32","text":"@notice The validator for the action (which may be the action itself where appropriate)"},"functionSelector":"393df8cb","id":13058,"mutability":"immutable","name":"VALIDATOR","nameLocation":"1070:9:32","nodeType":"VariableDeclaration","scope":13114,"src":"1043:36:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"},"typeName":{"id":13057,"nodeType":"UserDefinedTypeName","pathNode":{"id":13056,"name":"Validator","nameLocations":["1043:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"1043:9:32"},"referencedDeclaration":19130,"src":"1043:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}},"visibility":"public"},{"documentation":{"id":13059,"nodeType":"StructuredDocumentation","src":"1086:167:32","text":"@notice Execute the action\n @param data_ The data payload for the action\n @return (success, data) A tuple of the success status and the returned data"},"functionSelector":"09c5eabe","id":13068,"implemented":false,"kind":"function","modifiers":[],"name":"execute","nameLocation":"1267:7:32","nodeType":"FunctionDefinition","parameters":{"id":13062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13061,"mutability":"mutable","name":"data_","nameLocation":"1290:5:32","nodeType":"VariableDeclaration","scope":13068,"src":"1275:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13060,"name":"bytes","nodeType":"ElementaryTypeName","src":"1275:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1274:22:32"},"returnParameters":{"id":13067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13068,"src":"1331:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13063,"name":"bool","nodeType":"ElementaryTypeName","src":"1331:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13068,"src":"1337:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13065,"name":"bytes","nodeType":"ElementaryTypeName","src":"1337:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1330:20:32"},"scope":13114,"src":"1258:93:32","stateMutability":"payable","virtual":true,"visibility":"external"},{"documentation":{"id":13069,"nodeType":"StructuredDocumentation","src":"1357:166:32","text":"@notice Prepare the action for execution and return the expected payload\n @param data_ The data payload for the action\n @return The prepared payload"},"functionSelector":"d7768c47","id":13076,"implemented":false,"kind":"function","modifiers":[],"name":"prepare","nameLocation":"1537:7:32","nodeType":"FunctionDefinition","parameters":{"id":13072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13071,"mutability":"mutable","name":"data_","nameLocation":"1560:5:32","nodeType":"VariableDeclaration","scope":13076,"src":"1545:20:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13070,"name":"bytes","nodeType":"ElementaryTypeName","src":"1545:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1544:22:32"},"returnParameters":{"id":13075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13076,"src":"1593:12:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13073,"name":"bytes","nodeType":"ElementaryTypeName","src":"1593:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1592:14:32"},"scope":13114,"src":"1528:79:32","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[18508],"body":{"id":13098,"nodeType":"Block","src":"1745:103:32","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13086,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13079,"src":"1762:11:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13088,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"1782:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$13114_$","typeString":"type(contract Action)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Action_$13114_$","typeString":"type(contract Action)"}],"id":13087,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1777:4:32","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1777:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Action_$13114","typeString":"type(contract Action)"}},"id":13090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1790:11:32","memberName":"interfaceId","nodeType":"MemberAccess","src":"1777:24:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1762:39:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13094,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13079,"src":"1829:11:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13092,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1805:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Action_$13114_$","typeString":"type(contract super Action)"}},"id":13093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1811:17:32","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18508,"src":"1805:23:32","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:36:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1762:79:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13085,"id":13097,"nodeType":"Return","src":"1755:86:32"}]},"documentation":{"id":13077,"nodeType":"StructuredDocumentation","src":"1613:25:32","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13099,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1652:17:32","nodeType":"FunctionDefinition","overrides":{"id":13082,"nodeType":"OverrideSpecifier","overrides":[{"id":13081,"name":"Cloneable","nameLocations":["1719:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1719:9:32"}],"src":"1710:19:32"},"parameters":{"id":13080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13079,"mutability":"mutable","name":"interfaceId","nameLocation":"1677:11:32","nodeType":"VariableDeclaration","scope":13099,"src":"1670:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13078,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1670:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1669:20:32"},"returnParameters":{"id":13085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13084,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13099,"src":"1739:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13083,"name":"bool","nodeType":"ElementaryTypeName","src":"1739:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1738:6:32"},"scope":13114,"src":"1643:205:32","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[18486],"body":{"id":13112,"nodeType":"Block","src":"1974:48:32","statements":[{"expression":{"expression":{"arguments":[{"id":13108,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"1996:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Action_$13114_$","typeString":"type(contract Action)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Action_$13114_$","typeString":"type(contract Action)"}],"id":13107,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1991:4:32","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Action_$13114","typeString":"type(contract Action)"}},"id":13110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2004:11:32","memberName":"interfaceId","nodeType":"MemberAccess","src":"1991:24:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":13106,"id":13111,"nodeType":"Return","src":"1984:31:32"}]},"documentation":{"id":13100,"nodeType":"StructuredDocumentation","src":"1854:25:32","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":13113,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"1893:21:32","nodeType":"FunctionDefinition","overrides":{"id":13103,"nodeType":"OverrideSpecifier","overrides":[{"id":13102,"name":"Cloneable","nameLocations":["1946:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1946:9:32"}],"src":"1937:19:32"},"parameters":{"id":13101,"nodeType":"ParameterList","parameters":[],"src":"1914:2:32"},"returnParameters":{"id":13106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13113,"src":"1966:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13104,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1966:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1965:8:32"},"scope":13114,"src":"1884:138:32","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":13115,"src":"432:1592:32","usedErrors":[9103,9106,18443,18446,18449],"usedEvents":[9111,13045,13054]}],"src":"36:1989:32"},"id":32},"contracts/actions/ContractAction.sol":{"ast":{"absolutePath":"contracts/actions/ContractAction.sol","exportedSymbols":{"AContractAction":[12848],"Cloneable":[18509],"ContractAction":[13190],"ERC721":[9097]},"id":13191,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13116,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:33"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":13118,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13191,"sourceUnit":9098,"src":"62:49:33","symbolAliases":[{"foreign":{"id":13117,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"70:6:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13120,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13191,"sourceUnit":18510,"src":"113:57:33","symbolAliases":[{"foreign":{"id":13119,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"121:9:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/AContractAction.sol","file":"contracts/actions/AContractAction.sol","id":13122,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13191,"sourceUnit":12849,"src":"172:70:33","symbolAliases":[{"foreign":{"id":13121,"name":"AContractAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12848,"src":"180:15:33","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13123,"name":"AContractAction","nameLocations":["271:15:33"],"nodeType":"IdentifierPath","referencedDeclaration":12848,"src":"271:15:33"},"id":13124,"nodeType":"InheritanceSpecifier","src":"271:15:33"}],"canonicalName":"ContractAction","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":13190,"linearizedBaseContracts":[13190,12848,13114,18509,2831,2843,9211],"name":"ContractAction","nameLocation":"253:14:33","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ContractAction.InitPayload","documentation":{"id":13125,"nodeType":"StructuredDocumentation","src":"293:249:33","text":"@notice The payload for initializing a ContractAction\n @param target The target contract address\n @param selector The selector for the function to be called\n @param value The native token value to send with the function call"},"id":13134,"members":[{"constant":false,"id":13127,"mutability":"mutable","name":"chainId","nameLocation":"584:7:33","nodeType":"VariableDeclaration","scope":13134,"src":"576:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13126,"name":"uint256","nodeType":"ElementaryTypeName","src":"576:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13129,"mutability":"mutable","name":"target","nameLocation":"609:6:33","nodeType":"VariableDeclaration","scope":13134,"src":"601:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13128,"name":"address","nodeType":"ElementaryTypeName","src":"601:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13131,"mutability":"mutable","name":"selector","nameLocation":"632:8:33","nodeType":"VariableDeclaration","scope":13134,"src":"625:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13130,"name":"bytes4","nodeType":"ElementaryTypeName","src":"625:6:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13133,"mutability":"mutable","name":"value","nameLocation":"658:5:33","nodeType":"VariableDeclaration","scope":13134,"src":"650:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13132,"name":"uint256","nodeType":"ElementaryTypeName","src":"650:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"554:11:33","nodeType":"StructDefinition","scope":13190,"src":"547:123:33","visibility":"public"},{"body":{"id":13140,"nodeType":"Block","src":"690:39:33","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13137,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"700:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"700:22:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13139,"nodeType":"ExpressionStatement","src":"700:22:33"}]},"id":13141,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13135,"nodeType":"ParameterList","parameters":[],"src":"687:2:33"},"returnParameters":{"id":13136,"nodeType":"ParameterList","parameters":[],"src":"690:0:33"},"scope":13190,"src":"676:53:33","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[12747],"body":{"id":13159,"nodeType":"Block","src":"920:62:33","statements":[{"expression":{"arguments":[{"arguments":[{"id":13153,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13144,"src":"953:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13154,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13134,"src":"961:11:33","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13134_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"id":13155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"960:13:33","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13134_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13134_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}],"expression":{"id":13151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"942:3:33","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"946:6:33","memberName":"decode","nodeType":"MemberAccess","src":"942:10:33","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"942:32:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"id":13150,"name":"_initialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13189,"src":"930:11:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$13134_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":13157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"930:45:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13158,"nodeType":"ExpressionStatement","src":"930:45:33"}]},"documentation":{"id":13142,"nodeType":"StructuredDocumentation","src":"735:102:33","text":"@inheritdoc Cloneable\n @notice Initialize the contract with the owner and the required data"},"functionSelector":"439fab91","id":13160,"implemented":true,"kind":"function","modifiers":[{"id":13148,"kind":"modifierInvocation","modifierName":{"id":13147,"name":"initializer","nameLocations":["908:11:33"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"908:11:33"},"nodeType":"ModifierInvocation","src":"908:11:33"}],"name":"initialize","nameLocation":"851:10:33","nodeType":"FunctionDefinition","overrides":{"id":13146,"nodeType":"OverrideSpecifier","overrides":[],"src":"899:8:33"},"parameters":{"id":13145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13144,"mutability":"mutable","name":"data_","nameLocation":"877:5:33","nodeType":"VariableDeclaration","scope":13160,"src":"862:20:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13143,"name":"bytes","nodeType":"ElementaryTypeName","src":"862:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"861:22:33"},"returnParameters":{"id":13149,"nodeType":"ParameterList","parameters":[],"src":"920:0:33"},"scope":13190,"src":"842:140:33","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":13188,"nodeType":"Block","src":"1069:135:33","statements":[{"expression":{"id":13171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13168,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12727,"src":"1079:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13169,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13163,"src":"1089:5:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":13170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1095:7:33","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":13127,"src":"1089:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1079:23:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13172,"nodeType":"ExpressionStatement","src":"1079:23:33"},{"expression":{"id":13176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13173,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12730,"src":"1112:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13174,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13163,"src":"1121:5:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":13175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1127:6:33","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":13129,"src":"1121:12:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1112:21:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13177,"nodeType":"ExpressionStatement","src":"1112:21:33"},{"expression":{"id":13181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13178,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12733,"src":"1143:8:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13179,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13163,"src":"1154:5:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":13180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1160:8:33","memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":13131,"src":"1154:14:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1143:25:33","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":13182,"nodeType":"ExpressionStatement","src":"1143:25:33"},{"expression":{"id":13186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13183,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12736,"src":"1178:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":13184,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13163,"src":"1186:5:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}},"id":13185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1192:5:33","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":13133,"src":"1186:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1178:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13187,"nodeType":"ExpressionStatement","src":"1178:19:33"}]},"id":13189,"implemented":true,"kind":"function","modifiers":[{"id":13166,"kind":"modifierInvocation","modifierName":{"id":13165,"name":"onlyInitializing","nameLocations":["1052:16:33"],"nodeType":"IdentifierPath","referencedDeclaration":9162,"src":"1052:16:33"},"nodeType":"ModifierInvocation","src":"1052:16:33"}],"name":"_initialize","nameLocation":"997:11:33","nodeType":"FunctionDefinition","parameters":{"id":13164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13163,"mutability":"mutable","name":"init_","nameLocation":"1028:5:33","nodeType":"VariableDeclaration","scope":13189,"src":"1009:24:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload"},"typeName":{"id":13162,"nodeType":"UserDefinedTypeName","pathNode":{"id":13161,"name":"InitPayload","nameLocations":["1009:11:33"],"nodeType":"IdentifierPath","referencedDeclaration":13134,"src":"1009:11:33"},"referencedDeclaration":13134,"src":"1009:11:33","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_storage_ptr","typeString":"struct ContractAction.InitPayload"}},"visibility":"internal"}],"src":"1008:26:33"},"returnParameters":{"id":13167,"nodeType":"ParameterList","parameters":[],"src":"1069:0:33"},"scope":13190,"src":"988:216:33","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":13191,"src":"244:962:33","usedErrors":[9103,9106,12724,18443,18446,18449],"usedEvents":[9111,13045,13054]}],"src":"36:1171:33"},"id":33},"contracts/actions/ERC721MintAction.sol":{"ast":{"absolutePath":"contracts/actions/ERC721MintAction.sol","exportedSymbols":{"AERC721MintAction":[13025],"Cloneable":[18509],"ERC721":[9097],"ERC721MintAction":[13250]},"id":13251,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13192,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:34"},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":13194,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13251,"sourceUnit":9098,"src":"62:49:34","symbolAliases":[{"foreign":{"id":13193,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"70:6:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13196,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13251,"sourceUnit":18510,"src":"113:57:34","symbolAliases":[{"foreign":{"id":13195,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"121:9:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/AERC721MintAction.sol","file":"contracts/actions/AERC721MintAction.sol","id":13198,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13251,"sourceUnit":13026,"src":"172:74:34","symbolAliases":[{"foreign":{"id":13197,"name":"AERC721MintAction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13025,"src":"180:17:34","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13200,"name":"AERC721MintAction","nameLocations":["734:17:34"],"nodeType":"IdentifierPath","referencedDeclaration":13025,"src":"734:17:34"},"id":13201,"nodeType":"InheritanceSpecifier","src":"734:17:34"}],"canonicalName":"ERC721MintAction","contractDependencies":[],"contractKind":"contract","documentation":{"id":13199,"nodeType":"StructuredDocumentation","src":"248:457:34","text":"@title ERC721 Mint Action\n @notice A primitive action to mint and/or validate that an ERC721 token has been minted\n @dev The action is expected to be prepared with the data payload for the minting of the token\n @dev This a minimal generic implementation that should be extended if additional functionality or customizations are required\n @dev It is expected that the target contract has an externally accessible mint function whose selector"},"fullyImplemented":true,"id":13250,"linearizedBaseContracts":[13250,13025,19130,13190,12848,13114,18509,2831,2843,9211,6409],"name":"ERC721MintAction","nameLocation":"714:16:34","nodeType":"ContractDefinition","nodes":[{"body":{"id":13208,"nodeType":"Block","src":"1014:39:34","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13205,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"1024:20:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1024:22:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13207,"nodeType":"ExpressionStatement","src":"1024:22:34"}]},"documentation":{"id":13202,"nodeType":"StructuredDocumentation","src":"758:237:34","text":"@notice Construct the ERC721 Mint Action\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13209,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13203,"nodeType":"ParameterList","parameters":[],"src":"1011:2:34"},"returnParameters":{"id":13204,"nodeType":"ParameterList","parameters":[],"src":"1014:0:34"},"scope":13250,"src":"1000:53:34","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[12887],"body":{"id":13227,"nodeType":"Block","src":"1358:62:34","statements":[{"expression":{"arguments":[{"arguments":[{"id":13221,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13212,"src":"1391:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13222,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13134,"src":"1399:11:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13134_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"id":13223,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1398:13:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13134_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$13134_storage_ptr_$","typeString":"type(struct ContractAction.InitPayload storage pointer)"}],"expression":{"id":13219,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1380:3:34","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1384:6:34","memberName":"decode","nodeType":"MemberAccess","src":"1380:10:34","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1380:32:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"id":13218,"name":"_initialize","nodeType":"Identifier","overloadedDeclarations":[13249],"referencedDeclaration":13249,"src":"1368:11:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$13134_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":13225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1368:45:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13226,"nodeType":"ExpressionStatement","src":"1368:45:34"}]},"documentation":{"id":13210,"nodeType":"StructuredDocumentation","src":"1059:216:34","text":"@inheritdoc Cloneable\n @notice Initialize the contract with the owner and the required mint data\n @param data_ The data payload for the mint action `(address target, bytes4 selector, uint256 value)`"},"functionSelector":"439fab91","id":13228,"implemented":true,"kind":"function","modifiers":[{"id":13216,"kind":"modifierInvocation","modifierName":{"id":13215,"name":"initializer","nameLocations":["1346:11:34"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1346:11:34"},"nodeType":"ModifierInvocation","src":"1346:11:34"}],"name":"initialize","nameLocation":"1289:10:34","nodeType":"FunctionDefinition","overrides":{"id":13214,"nodeType":"OverrideSpecifier","overrides":[],"src":"1337:8:34"},"parameters":{"id":13213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13212,"mutability":"mutable","name":"data_","nameLocation":"1315:5:34","nodeType":"VariableDeclaration","scope":13228,"src":"1300:20:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13211,"name":"bytes","nodeType":"ElementaryTypeName","src":"1300:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1299:22:34"},"returnParameters":{"id":13217,"nodeType":"ParameterList","parameters":[],"src":"1358:0:34"},"scope":13250,"src":"1280:140:34","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13189],"body":{"id":13248,"nodeType":"Block","src":"1508:79:34","statements":[{"expression":{"arguments":[{"id":13240,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13231,"src":"1536:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload memory"}],"expression":{"id":13237,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1518:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721MintAction_$13250_$","typeString":"type(contract super ERC721MintAction)"}},"id":13239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:11:34","memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":13189,"src":"1518:17:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_InitPayload_$13134_memory_ptr_$returns$__$","typeString":"function (struct ContractAction.InitPayload memory)"}},"id":13241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:24:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13242,"nodeType":"ExpressionStatement","src":"1518:24:34"},{"expression":{"arguments":[{"expression":{"id":13244,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1569:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1573:6:34","memberName":"sender","nodeType":"MemberAccess","src":"1569:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13243,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1552:16:34","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1552:28:34","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13247,"nodeType":"ExpressionStatement","src":"1552:28:34"}]},"id":13249,"implemented":true,"kind":"function","modifiers":[{"id":13235,"kind":"modifierInvocation","modifierName":{"id":13234,"name":"onlyInitializing","nameLocations":["1491:16:34"],"nodeType":"IdentifierPath","referencedDeclaration":9162,"src":"1491:16:34"},"nodeType":"ModifierInvocation","src":"1491:16:34"}],"name":"_initialize","nameLocation":"1435:11:34","nodeType":"FunctionDefinition","overrides":{"id":13233,"nodeType":"OverrideSpecifier","overrides":[],"src":"1482:8:34"},"parameters":{"id":13232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13231,"mutability":"mutable","name":"init_","nameLocation":"1466:5:34","nodeType":"VariableDeclaration","scope":13249,"src":"1447:24:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_memory_ptr","typeString":"struct ContractAction.InitPayload"},"typeName":{"id":13230,"nodeType":"UserDefinedTypeName","pathNode":{"id":13229,"name":"InitPayload","nameLocations":["1447:11:34"],"nodeType":"IdentifierPath","referencedDeclaration":13134,"src":"1447:11:34"},"referencedDeclaration":13134,"src":"1447:11:34","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$13134_storage_ptr","typeString":"struct ContractAction.InitPayload"}},"visibility":"internal"}],"src":"1446:26:34"},"returnParameters":{"id":13236,"nodeType":"ParameterList","parameters":[],"src":"1508:0:34"},"scope":13250,"src":"1426:161:34","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":13251,"src":"705:884:34","usedErrors":[6221,6224,6227,6230,9103,9106,12724,18321,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,13045,13054]}],"src":"36:1554:34"},"id":34},"contracts/allowlists/ASimpleAllowList.sol":{"ast":{"absolutePath":"contracts/allowlists/ASimpleAllowList.sol","exportedSymbols":{"ASimpleAllowList":[13389],"AllowList":[13587],"BoostError":[18343],"Cloneable":[18509],"OwnableRoles":[7936]},"id":13390,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13252,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:35"},{"absolutePath":"@solady/auth/OwnableRoles.sol","file":"@solady/auth/OwnableRoles.sol","id":13254,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13390,"sourceUnit":7937,"src":"62:59:35","symbolAliases":[{"foreign":{"id":13253,"name":"OwnableRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7936,"src":"70:12:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13256,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13390,"sourceUnit":18510,"src":"123:57:35","symbolAliases":[{"foreign":{"id":13255,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"131:9:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13258,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13390,"sourceUnit":18344,"src":"181:59:35","symbolAliases":[{"foreign":{"id":13257,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"189:10:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":13260,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13390,"sourceUnit":13588,"src":"242:61:35","symbolAliases":[{"foreign":{"id":13259,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"250:9:35","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13262,"name":"AllowList","nameLocations":["496:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":13587,"src":"496:9:35"},"id":13263,"nodeType":"InheritanceSpecifier","src":"496:9:35"},{"baseName":{"id":13264,"name":"OwnableRoles","nameLocations":["507:12:35"],"nodeType":"IdentifierPath","referencedDeclaration":7936,"src":"507:12:35"},"id":13265,"nodeType":"InheritanceSpecifier","src":"507:12:35"}],"canonicalName":"ASimpleAllowList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13261,"nodeType":"StructuredDocumentation","src":"305:153:35","text":"@title Simple AllowList\n @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses"},"fullyImplemented":true,"id":13389,"linearizedBaseContracts":[13389,7936,13587,18509,2831,2843,9211,6409],"name":"ASimpleAllowList","nameLocation":"476:16:35","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":13266,"nodeType":"StructuredDocumentation","src":"526:48:35","text":"@notice The role for managing the allow list"},"functionSelector":"98332bbc","id":13271,"mutability":"constant","name":"LIST_MANAGER_ROLE","nameLocation":"603:17:35","nodeType":"VariableDeclaration","scope":13389,"src":"579:50:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13267,"name":"uint256","nodeType":"ElementaryTypeName","src":"579:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":13270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":13268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"623:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":13269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"628:1:35","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"623:6:35","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"public"},{"constant":false,"documentation":{"id":13272,"nodeType":"StructuredDocumentation","src":"636:48:35","text":"@dev An internal mapping of allowed statuses"},"id":13276,"mutability":"mutable","name":"_allowed","nameLocation":"723:8:35","nodeType":"VariableDeclaration","scope":13389,"src":"689:42:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13275,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13273,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"689:24:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13274,"name":"bool","nodeType":"ElementaryTypeName","src":"708:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"baseFunctions":[18474],"body":{"id":13286,"nodeType":"Block","src":"931:41:35","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13283,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"948:15:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:17:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13285,"nodeType":"RevertStatement","src":"941:24:35"}]},"documentation":{"id":13277,"nodeType":"StructuredDocumentation","src":"738:122:35","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":13287,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"874:10:35","nodeType":"FunctionDefinition","overrides":{"id":13281,"nodeType":"OverrideSpecifier","overrides":[],"src":"922:8:35"},"parameters":{"id":13280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13279,"mutability":"mutable","name":"data_","nameLocation":"900:5:35","nodeType":"VariableDeclaration","scope":13287,"src":"885:20:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13278,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"884:22:35"},"returnParameters":{"id":13282,"nodeType":"ParameterList","parameters":[],"src":"931:0:35"},"scope":13389,"src":"865:107:35","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13549],"body":{"id":13302,"nodeType":"Block","src":"1321:39:35","statements":[{"expression":{"baseExpression":{"id":13298,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13276,"src":"1338:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13300,"indexExpression":{"id":13299,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13290,"src":"1347:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1338:15:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13297,"id":13301,"nodeType":"Return","src":"1331:22:35"}]},"documentation":{"id":13288,"nodeType":"StructuredDocumentation","src":"978:228:35","text":"@notice Check if a user is authorized\n @param user_ The address of the user\n @param - The data payload for the authorization check, not used in this implementation\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13303,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"1220:9:35","nodeType":"FunctionDefinition","overrides":{"id":13294,"nodeType":"OverrideSpecifier","overrides":[],"src":"1297:8:35"},"parameters":{"id":13293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13290,"mutability":"mutable","name":"user_","nameLocation":"1238:5:35","nodeType":"VariableDeclaration","scope":13303,"src":"1230:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13289,"name":"address","nodeType":"ElementaryTypeName","src":"1230:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13303,"src":"1245:14:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13291,"name":"bytes","nodeType":"ElementaryTypeName","src":"1245:5:35","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1229:53:35"},"returnParameters":{"id":13297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13303,"src":"1315:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13295,"name":"bool","nodeType":"ElementaryTypeName","src":"1315:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1314:6:35"},"scope":13389,"src":"1211:149:35","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13350,"nodeType":"Block","src":"1770:201:35","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13316,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13307,"src":"1784:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1791:6:35","memberName":"length","nodeType":"MemberAccess","src":"1784:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13318,"name":"allowed_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13310,"src":"1801:8:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1810:6:35","memberName":"length","nodeType":"MemberAccess","src":"1801:15:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:32:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13326,"nodeType":"IfStatement","src":"1780:72:35","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13321,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1825:10:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":13323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1836:14:35","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":18318,"src":"1825:25:35","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1825:27:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13325,"nodeType":"RevertStatement","src":"1818:34:35"}},{"body":{"id":13348,"nodeType":"Block","src":"1907:58:35","statements":[{"expression":{"id":13346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13338,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13276,"src":"1921:8:35","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13342,"indexExpression":{"baseExpression":{"id":13339,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13307,"src":"1930:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13341,"indexExpression":{"id":13340,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13328,"src":"1937:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:9:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1921:19:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":13343,"name":"allowed_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13310,"src":"1943:8:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13345,"indexExpression":{"id":13344,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13328,"src":"1952:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1943:11:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1921:33:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13347,"nodeType":"ExpressionStatement","src":"1921:33:35"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13331,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13328,"src":"1883:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13332,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13307,"src":"1887:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1894:6:35","memberName":"length","nodeType":"MemberAccess","src":"1887:13:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1883:17:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13349,"initializationExpression":{"assignments":[13328],"declarations":[{"constant":false,"id":13328,"mutability":"mutable","name":"i","nameLocation":"1876:1:35","nodeType":"VariableDeclaration","scope":13349,"src":"1868:9:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13327,"name":"uint256","nodeType":"ElementaryTypeName","src":"1868:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13330,"initialValue":{"hexValue":"30","id":13329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1880:1:35","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1868:13:35"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1902:3:35","subExpression":{"id":13335,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13328,"src":"1902:1:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13337,"nodeType":"ExpressionStatement","src":"1902:3:35"},"nodeType":"ForStatement","src":"1863:102:35"}]},"documentation":{"id":13304,"nodeType":"StructuredDocumentation","src":"1366:288:35","text":"@notice Set the allowed status of a user\n @param users_ The list of users to update\n @param allowed_ The allowed status of each user\n @dev The length of the `users_` and `allowed_` arrays must be the same\n @dev This function can only be called by the owner"},"functionSelector":"3abb0604","id":13351,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13313,"name":"LIST_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13271,"src":"1751:17:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13314,"kind":"modifierInvocation","modifierName":{"id":13312,"name":"onlyRoles","nameLocations":["1741:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":6633,"src":"1741:9:35"},"nodeType":"ModifierInvocation","src":"1741:28:35"}],"name":"setAllowed","nameLocation":"1668:10:35","nodeType":"FunctionDefinition","parameters":{"id":13311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13307,"mutability":"mutable","name":"users_","nameLocation":"1698:6:35","nodeType":"VariableDeclaration","scope":13351,"src":"1679:25:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13305,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13306,"nodeType":"ArrayTypeName","src":"1679:9:35","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13310,"mutability":"mutable","name":"allowed_","nameLocation":"1722:8:35","nodeType":"VariableDeclaration","scope":13351,"src":"1706:24:35","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13308,"name":"bool","nodeType":"ElementaryTypeName","src":"1706:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13309,"nodeType":"ArrayTypeName","src":"1706:6:35","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"1678:53:35"},"returnParameters":{"id":13315,"nodeType":"ParameterList","parameters":[],"src":"1770:0:35"},"scope":13389,"src":"1659:312:35","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[13586],"body":{"id":13364,"nodeType":"Block","src":"2097:58:35","statements":[{"expression":{"expression":{"arguments":[{"id":13360,"name":"ASimpleAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13389,"src":"2119:16:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASimpleAllowList_$13389_$","typeString":"type(contract ASimpleAllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASimpleAllowList_$13389_$","typeString":"type(contract ASimpleAllowList)"}],"id":13359,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2114:4:35","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2114:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASimpleAllowList_$13389","typeString":"type(contract ASimpleAllowList)"}},"id":13362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2137:11:35","memberName":"interfaceId","nodeType":"MemberAccess","src":"2114:34:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":13358,"id":13363,"nodeType":"Return","src":"2107:41:35"}]},"documentation":{"id":13352,"nodeType":"StructuredDocumentation","src":"1977:25:35","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":13365,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"2016:21:35","nodeType":"FunctionDefinition","overrides":{"id":13355,"nodeType":"OverrideSpecifier","overrides":[{"id":13354,"name":"AllowList","nameLocations":["2069:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":13587,"src":"2069:9:35"}],"src":"2060:19:35"},"parameters":{"id":13353,"nodeType":"ParameterList","parameters":[],"src":"2037:2:35"},"returnParameters":{"id":13358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13365,"src":"2089:6:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13356,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2089:6:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2088:8:35"},"scope":13389,"src":"2007:148:35","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[13572],"body":{"id":13387,"nodeType":"Block","src":"2293:113:35","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13375,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"2310:11:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13377,"name":"ASimpleAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13389,"src":"2330:16:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASimpleAllowList_$13389_$","typeString":"type(contract ASimpleAllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASimpleAllowList_$13389_$","typeString":"type(contract ASimpleAllowList)"}],"id":13376,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2325:4:35","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2325:22:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASimpleAllowList_$13389","typeString":"type(contract ASimpleAllowList)"}},"id":13379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2348:11:35","memberName":"interfaceId","nodeType":"MemberAccess","src":"2325:34:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2310:49:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13383,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13368,"src":"2387:11:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13381,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2363:5:35","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ASimpleAllowList_$13389_$","typeString":"type(contract super ASimpleAllowList)"}},"id":13382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2369:17:35","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":13572,"src":"2363:23:35","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2363:36:35","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2310:89:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13374,"id":13386,"nodeType":"Return","src":"2303:96:35"}]},"documentation":{"id":13366,"nodeType":"StructuredDocumentation","src":"2161:25:35","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13388,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2200:17:35","nodeType":"FunctionDefinition","overrides":{"id":13371,"nodeType":"OverrideSpecifier","overrides":[{"id":13370,"name":"AllowList","nameLocations":["2267:9:35"],"nodeType":"IdentifierPath","referencedDeclaration":13587,"src":"2267:9:35"}],"src":"2258:19:35"},"parameters":{"id":13369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13368,"mutability":"mutable","name":"interfaceId","nameLocation":"2225:11:35","nodeType":"VariableDeclaration","scope":13388,"src":"2218:18:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13367,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2218:6:35","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2217:20:35"},"returnParameters":{"id":13374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13388,"src":"2287:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13372,"name":"bool","nodeType":"ElementaryTypeName","src":"2287:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2286:6:35"},"scope":13389,"src":"2191:215:35","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":13390,"src":"458:1950:35","usedErrors":[6221,6224,6227,6230,9103,9106,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,6423,9111]}],"src":"36:2373:35"},"id":35},"contracts/allowlists/ASimpleDenyList.sol":{"ast":{"absolutePath":"contracts/allowlists/ASimpleDenyList.sol","exportedSymbols":{"ASimpleDenyList":[13518],"AllowList":[13587],"BoostError":[18343],"Cloneable":[18509]},"id":13519,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13391,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:36"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13393,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13519,"sourceUnit":18344,"src":"62:59:36","symbolAliases":[{"foreign":{"id":13392,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"70:10:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13395,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13519,"sourceUnit":18510,"src":"122:57:36","symbolAliases":[{"foreign":{"id":13394,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"130:9:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":13397,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13519,"sourceUnit":13588,"src":"181:61:36","symbolAliases":[{"foreign":{"id":13396,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"189:9:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13399,"name":"AllowList","nameLocations":["443:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":13587,"src":"443:9:36"},"id":13400,"nodeType":"InheritanceSpecifier","src":"443:9:36"}],"canonicalName":"ASimpleDenyList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13398,"nodeType":"StructuredDocumentation","src":"244:162:36","text":"@title SimpleDenyList\n @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list"},"fullyImplemented":true,"id":13518,"linearizedBaseContracts":[13518,13587,18509,2831,2843,9211,6409],"name":"ASimpleDenyList","nameLocation":"424:15:36","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":13401,"nodeType":"StructuredDocumentation","src":"459:47:36","text":"@dev An internal mapping of denied statuses"},"id":13405,"mutability":"mutable","name":"_denied","nameLocation":"545:7:36","nodeType":"VariableDeclaration","scope":13518,"src":"511:41:36","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13404,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13402,"name":"address","nodeType":"ElementaryTypeName","src":"519:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"511:24:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13403,"name":"bool","nodeType":"ElementaryTypeName","src":"530:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"baseFunctions":[18474],"body":{"id":13415,"nodeType":"Block","src":"752:41:36","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13412,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"769:15:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"769:17:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13414,"nodeType":"RevertStatement","src":"762:24:36"}]},"documentation":{"id":13406,"nodeType":"StructuredDocumentation","src":"559:122:36","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":13416,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"695:10:36","nodeType":"FunctionDefinition","overrides":{"id":13410,"nodeType":"OverrideSpecifier","overrides":[],"src":"743:8:36"},"parameters":{"id":13409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13408,"mutability":"mutable","name":"data_","nameLocation":"721:5:36","nodeType":"VariableDeclaration","scope":13416,"src":"706:20:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13407,"name":"bytes","nodeType":"ElementaryTypeName","src":"706:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"705:22:36"},"returnParameters":{"id":13411,"nodeType":"ParameterList","parameters":[],"src":"752:0:36"},"scope":13518,"src":"686:107:36","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[13549],"body":{"id":13432,"nodeType":"Block","src":"1160:39:36","statements":[{"expression":{"id":13430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1177:15:36","subExpression":{"baseExpression":{"id":13427,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13405,"src":"1178:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13429,"indexExpression":{"id":13428,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13419,"src":"1186:5:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1178:14:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13426,"id":13431,"nodeType":"Return","src":"1170:22:36"}]},"documentation":{"id":13417,"nodeType":"StructuredDocumentation","src":"799:246:36","text":"@notice Check if a user is authorized (i.e. not denied)\n @param user_ The address of the user\n @param - The data payload for the authorization check, not used in this implementation\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13433,"implemented":true,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"1059:9:36","nodeType":"FunctionDefinition","overrides":{"id":13423,"nodeType":"OverrideSpecifier","overrides":[],"src":"1136:8:36"},"parameters":{"id":13422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13419,"mutability":"mutable","name":"user_","nameLocation":"1077:5:36","nodeType":"VariableDeclaration","scope":13433,"src":"1069:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13418,"name":"address","nodeType":"ElementaryTypeName","src":"1069:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13433,"src":"1084:14:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13420,"name":"bytes","nodeType":"ElementaryTypeName","src":"1084:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1068:53:36"},"returnParameters":{"id":13426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13433,"src":"1154:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13424,"name":"bool","nodeType":"ElementaryTypeName","src":"1154:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1153:6:36"},"scope":13518,"src":"1050:149:36","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13479,"nodeType":"Block","src":"1584:198:36","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13445,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13437,"src":"1598:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1605:6:36","memberName":"length","nodeType":"MemberAccess","src":"1598:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13447,"name":"denied_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13440,"src":"1615:7:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1623:6:36","memberName":"length","nodeType":"MemberAccess","src":"1615:14:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1598:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13455,"nodeType":"IfStatement","src":"1594:71:36","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":13450,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1638:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":13452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1649:14:36","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":18318,"src":"1638:25:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1638:27:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13454,"nodeType":"RevertStatement","src":"1631:34:36"}},{"body":{"id":13477,"nodeType":"Block","src":"1720:56:36","statements":[{"expression":{"id":13475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13467,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13405,"src":"1734:7:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13471,"indexExpression":{"baseExpression":{"id":13468,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13437,"src":"1742:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13470,"indexExpression":{"id":13469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"1749:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1742:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1734:18:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":13472,"name":"denied_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13440,"src":"1755:7:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":13474,"indexExpression":{"id":13473,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"1763:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1755:10:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1734:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13476,"nodeType":"ExpressionStatement","src":"1734:31:36"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13460,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"1696:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13461,"name":"users_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13437,"src":"1700:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1707:6:36","memberName":"length","nodeType":"MemberAccess","src":"1700:13:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1696:17:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13478,"initializationExpression":{"assignments":[13457],"declarations":[{"constant":false,"id":13457,"mutability":"mutable","name":"i","nameLocation":"1689:1:36","nodeType":"VariableDeclaration","scope":13478,"src":"1681:9:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13456,"name":"uint256","nodeType":"ElementaryTypeName","src":"1681:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13459,"initialValue":{"hexValue":"30","id":13458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1693:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1681:13:36"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1715:3:36","subExpression":{"id":13464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13457,"src":"1715:1:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13466,"nodeType":"ExpressionStatement","src":"1715:3:36"},"nodeType":"ForStatement","src":"1676:100:36"}]},"documentation":{"id":13434,"nodeType":"StructuredDocumentation","src":"1205:284:36","text":"@notice Set the denied status of a user\n @param users_ The list of users to update\n @param denied_ The denied status of each user\n @dev The length of the `users_` and `denied_` arrays must be the same\n @dev This function can only be called by the owner"},"functionSelector":"141973b0","id":13480,"implemented":true,"kind":"function","modifiers":[{"id":13443,"kind":"modifierInvocation","modifierName":{"id":13442,"name":"onlyOwner","nameLocations":["1574:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"1574:9:36"},"nodeType":"ModifierInvocation","src":"1574:9:36"}],"name":"setDenied","nameLocation":"1503:9:36","nodeType":"FunctionDefinition","parameters":{"id":13441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13437,"mutability":"mutable","name":"users_","nameLocation":"1532:6:36","nodeType":"VariableDeclaration","scope":13480,"src":"1513:25:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13435,"name":"address","nodeType":"ElementaryTypeName","src":"1513:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13436,"nodeType":"ArrayTypeName","src":"1513:9:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13440,"mutability":"mutable","name":"denied_","nameLocation":"1556:7:36","nodeType":"VariableDeclaration","scope":13480,"src":"1540:23:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13438,"name":"bool","nodeType":"ElementaryTypeName","src":"1540:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13439,"nodeType":"ArrayTypeName","src":"1540:6:36","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"1512:52:36"},"returnParameters":{"id":13444,"nodeType":"ParameterList","parameters":[],"src":"1584:0:36"},"scope":13518,"src":"1494:288:36","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[13586],"body":{"id":13493,"nodeType":"Block","src":"1908:57:36","statements":[{"expression":{"expression":{"arguments":[{"id":13489,"name":"ASimpleDenyList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13518,"src":"1930:15:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASimpleDenyList_$13518_$","typeString":"type(contract ASimpleDenyList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASimpleDenyList_$13518_$","typeString":"type(contract ASimpleDenyList)"}],"id":13488,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1925:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1925:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASimpleDenyList_$13518","typeString":"type(contract ASimpleDenyList)"}},"id":13491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1947:11:36","memberName":"interfaceId","nodeType":"MemberAccess","src":"1925:33:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":13487,"id":13492,"nodeType":"Return","src":"1918:40:36"}]},"documentation":{"id":13481,"nodeType":"StructuredDocumentation","src":"1788:25:36","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":13494,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"1827:21:36","nodeType":"FunctionDefinition","overrides":{"id":13484,"nodeType":"OverrideSpecifier","overrides":[{"id":13483,"name":"AllowList","nameLocations":["1880:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":13587,"src":"1880:9:36"}],"src":"1871:19:36"},"parameters":{"id":13482,"nodeType":"ParameterList","parameters":[],"src":"1848:2:36"},"returnParameters":{"id":13487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13494,"src":"1900:6:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13485,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1900:6:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1899:8:36"},"scope":13518,"src":"1818:147:36","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[13572],"body":{"id":13516,"nodeType":"Block","src":"2103:112:36","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13504,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13497,"src":"2120:11:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13506,"name":"ASimpleDenyList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13518,"src":"2140:15:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASimpleDenyList_$13518_$","typeString":"type(contract ASimpleDenyList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASimpleDenyList_$13518_$","typeString":"type(contract ASimpleDenyList)"}],"id":13505,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2135:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2135:21:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASimpleDenyList_$13518","typeString":"type(contract ASimpleDenyList)"}},"id":13508,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2157:11:36","memberName":"interfaceId","nodeType":"MemberAccess","src":"2135:33:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2120:48:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13512,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13497,"src":"2196:11:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13510,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2172:5:36","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ASimpleDenyList_$13518_$","typeString":"type(contract super ASimpleDenyList)"}},"id":13511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2178:17:36","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":13572,"src":"2172:23:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2172:36:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2120:88:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13503,"id":13515,"nodeType":"Return","src":"2113:95:36"}]},"documentation":{"id":13495,"nodeType":"StructuredDocumentation","src":"1971:25:36","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13517,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2010:17:36","nodeType":"FunctionDefinition","overrides":{"id":13500,"nodeType":"OverrideSpecifier","overrides":[{"id":13499,"name":"AllowList","nameLocations":["2077:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":13587,"src":"2077:9:36"}],"src":"2068:19:36"},"parameters":{"id":13498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13497,"mutability":"mutable","name":"interfaceId","nameLocation":"2035:11:36","nodeType":"VariableDeclaration","scope":13517,"src":"2028:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13496,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2028:6:36","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2027:20:36"},"returnParameters":{"id":13503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13517,"src":"2097:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13501,"name":"bool","nodeType":"ElementaryTypeName","src":"2097:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2096:6:36"},"scope":13518,"src":"2001:214:36","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":13519,"src":"406:1811:36","usedErrors":[6221,6224,6227,6230,9103,9106,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,9111]}],"src":"36:2182:36"},"id":36},"contracts/allowlists/AllowList.sol":{"ast":{"absolutePath":"contracts/allowlists/AllowList.sol","exportedSymbols":{"AllowList":[13587],"Cloneable":[18509],"Ownable":[6409]},"id":13588,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13520,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:37"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":13522,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13588,"sourceUnit":6410,"src":"62:49:37","symbolAliases":[{"foreign":{"id":13521,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"70:7:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13524,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13588,"sourceUnit":18510,"src":"113:57:37","symbolAliases":[{"foreign":{"id":13523,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"121:9:37","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13526,"name":"Ownable","nameLocations":["533:7:37"],"nodeType":"IdentifierPath","referencedDeclaration":6409,"src":"533:7:37"},"id":13527,"nodeType":"InheritanceSpecifier","src":"533:7:37"},{"baseName":{"id":13528,"name":"Cloneable","nameLocations":["542:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"542:9:37"},"id":13529,"nodeType":"InheritanceSpecifier","src":"542:9:37"}],"canonicalName":"AllowList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13525,"nodeType":"StructuredDocumentation","src":"172:330:37","text":"@title Boost AllowList\n @notice Abstract contract for a generic Allow List within the Boost protocol\n @dev Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":13587,"linearizedBaseContracts":[13587,18509,2831,2843,9211,6409],"name":"AllowList","nameLocation":"520:9:37","nodeType":"ContractDefinition","nodes":[{"body":{"id":13538,"nodeType":"Block","src":"624:45:37","statements":[{"expression":{"arguments":[{"expression":{"id":13534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"651:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"655:6:37","memberName":"sender","nodeType":"MemberAccess","src":"651:10:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13533,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"634:16:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"634:28:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13537,"nodeType":"ExpressionStatement","src":"634:28:37"}]},"documentation":{"id":13530,"nodeType":"StructuredDocumentation","src":"558:47:37","text":"@notice Constructor to initialize the owner"},"id":13539,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13531,"nodeType":"ParameterList","parameters":[],"src":"621:2:37"},"returnParameters":{"id":13532,"nodeType":"ParameterList","parameters":[],"src":"624:0:37"},"scope":13587,"src":"610:59:37","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":13540,"nodeType":"StructuredDocumentation","src":"675:214:37","text":"@notice Check if a user is authorized\n @param user_ The address of the user\n @param data_ The data payload for the authorization check, if applicable\n @return True if the user is authorized"},"functionSelector":"e3f756de","id":13549,"implemented":false,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"903:9:37","nodeType":"FunctionDefinition","parameters":{"id":13545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13542,"mutability":"mutable","name":"user_","nameLocation":"921:5:37","nodeType":"VariableDeclaration","scope":13549,"src":"913:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13541,"name":"address","nodeType":"ElementaryTypeName","src":"913:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13544,"mutability":"mutable","name":"data_","nameLocation":"943:5:37","nodeType":"VariableDeclaration","scope":13549,"src":"928:20:37","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13543,"name":"bytes","nodeType":"ElementaryTypeName","src":"928:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"912:37:37"},"returnParameters":{"id":13548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13549,"src":"981:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13546,"name":"bool","nodeType":"ElementaryTypeName","src":"981:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"980:6:37"},"scope":13587,"src":"894:93:37","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[18508],"body":{"id":13571,"nodeType":"Block","src":"1125:106:37","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":13564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13559,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"1142:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":13561,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"1162:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13587_$","typeString":"type(contract AllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AllowList_$13587_$","typeString":"type(contract AllowList)"}],"id":13560,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1157:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1157:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AllowList_$13587","typeString":"type(contract AllowList)"}},"id":13563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1173:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"1157:27:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1142:42:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":13567,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13552,"src":"1212:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":13565,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1188:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AllowList_$13587_$","typeString":"type(contract super AllowList)"}},"id":13566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1194:17:37","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18508,"src":"1188:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":13568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1142:82:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13558,"id":13570,"nodeType":"Return","src":"1135:89:37"}]},"documentation":{"id":13550,"nodeType":"StructuredDocumentation","src":"993:25:37","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":13572,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1032:17:37","nodeType":"FunctionDefinition","overrides":{"id":13555,"nodeType":"OverrideSpecifier","overrides":[{"id":13554,"name":"Cloneable","nameLocations":["1099:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1099:9:37"}],"src":"1090:19:37"},"parameters":{"id":13553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13552,"mutability":"mutable","name":"interfaceId","nameLocation":"1057:11:37","nodeType":"VariableDeclaration","scope":13572,"src":"1050:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13551,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1050:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1049:20:37"},"returnParameters":{"id":13558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13572,"src":"1119:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13556,"name":"bool","nodeType":"ElementaryTypeName","src":"1119:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1118:6:37"},"scope":13587,"src":"1023:208:37","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[18486],"body":{"id":13585,"nodeType":"Block","src":"1357:51:37","statements":[{"expression":{"expression":{"arguments":[{"id":13581,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"1379:9:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AllowList_$13587_$","typeString":"type(contract AllowList)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AllowList_$13587_$","typeString":"type(contract AllowList)"}],"id":13580,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1374:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":13582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1374:15:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AllowList_$13587","typeString":"type(contract AllowList)"}},"id":13583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1390:11:37","memberName":"interfaceId","nodeType":"MemberAccess","src":"1374:27:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":13579,"id":13584,"nodeType":"Return","src":"1367:34:37"}]},"documentation":{"id":13573,"nodeType":"StructuredDocumentation","src":"1237:25:37","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":13586,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"1276:21:37","nodeType":"FunctionDefinition","overrides":{"id":13576,"nodeType":"OverrideSpecifier","overrides":[{"id":13575,"name":"Cloneable","nameLocations":["1329:9:37"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1329:9:37"}],"src":"1320:19:37"},"parameters":{"id":13574,"nodeType":"ParameterList","parameters":[],"src":"1297:2:37"},"returnParameters":{"id":13579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13586,"src":"1349:6:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13577,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1349:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1348:8:37"},"scope":13587,"src":"1267:141:37","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":13588,"src":"502:908:37","usedErrors":[6221,6224,6227,6230,9103,9106,18443,18446,18449],"usedEvents":[6237,6242,6247,9111]}],"src":"36:1375:37"},"id":37},"contracts/allowlists/SimpleAllowList.sol":{"ast":{"absolutePath":"contracts/allowlists/SimpleAllowList.sol","exportedSymbols":{"ASimpleAllowList":[13389],"BoostError":[18343],"Cloneable":[18509],"OwnableRoles":[7936],"SimpleAllowList":[13665]},"id":13666,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13589,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:38"},{"absolutePath":"@solady/auth/OwnableRoles.sol","file":"@solady/auth/OwnableRoles.sol","id":13591,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13666,"sourceUnit":7937,"src":"62:59:38","symbolAliases":[{"foreign":{"id":13590,"name":"OwnableRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7936,"src":"70:12:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13593,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13666,"sourceUnit":18510,"src":"123:57:38","symbolAliases":[{"foreign":{"id":13592,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"131:9:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13595,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13666,"sourceUnit":18344,"src":"181:59:38","symbolAliases":[{"foreign":{"id":13594,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"189:10:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/ASimpleAllowList.sol","file":"contracts/allowlists/ASimpleAllowList.sol","id":13597,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13666,"sourceUnit":13390,"src":"242:75:38","symbolAliases":[{"foreign":{"id":13596,"name":"ASimpleAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13389,"src":"250:16:38","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13599,"name":"ASimpleAllowList","nameLocations":["500:16:38"],"nodeType":"IdentifierPath","referencedDeclaration":13389,"src":"500:16:38"},"id":13600,"nodeType":"InheritanceSpecifier","src":"500:16:38"}],"canonicalName":"SimpleAllowList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13598,"nodeType":"StructuredDocumentation","src":"319:153:38","text":"@title Simple AllowList\n @notice A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses"},"fullyImplemented":true,"id":13665,"linearizedBaseContracts":[13665,13389,7936,13587,18509,2831,2843,9211,6409],"name":"SimpleAllowList","nameLocation":"481:15:38","nodeType":"ContractDefinition","nodes":[{"body":{"id":13607,"nodeType":"Block","src":"778:39:38","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13604,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"788:20:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"788:22:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13606,"nodeType":"ExpressionStatement","src":"788:22:38"}]},"documentation":{"id":13601,"nodeType":"StructuredDocumentation","src":"523:236:38","text":"@notice Construct a new SimpleAllowList\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13608,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13602,"nodeType":"ParameterList","parameters":[],"src":"775:2:38"},"returnParameters":{"id":13603,"nodeType":"ParameterList","parameters":[],"src":"778:0:38"},"scope":13665,"src":"764:53:38","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[13287],"body":{"id":13663,"nodeType":"Block","src":"1071:298:38","statements":[{"assignments":[13618,13621],"declarations":[{"constant":false,"id":13618,"mutability":"mutable","name":"owner_","nameLocation":"1090:6:38","nodeType":"VariableDeclaration","scope":13663,"src":"1082:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13617,"name":"address","nodeType":"ElementaryTypeName","src":"1082:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13621,"mutability":"mutable","name":"allowList_","nameLocation":"1115:10:38","nodeType":"VariableDeclaration","scope":13663,"src":"1098:27:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13619,"name":"address","nodeType":"ElementaryTypeName","src":"1098:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13620,"nodeType":"ArrayTypeName","src":"1098:9:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":13632,"initialValue":{"arguments":[{"id":13624,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13611,"src":"1140:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1148:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13625,"name":"address","nodeType":"ElementaryTypeName","src":"1148:7:38","typeDescriptions":{}}},{"baseExpression":{"id":13628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1157:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13627,"name":"address","nodeType":"ElementaryTypeName","src":"1157:7:38","typeDescriptions":{}}},"id":13629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1157:9:38","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":13630,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1147:20:38","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}],"expression":{"id":13622,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1129:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1133:6:38","memberName":"decode","nodeType":"MemberAccess","src":"1129:10:38","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1129:39:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"tuple(address payable,address[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1081:87:38"},{"expression":{"arguments":[{"id":13634,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13618,"src":"1195:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13633,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1178:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1178:24:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13636,"nodeType":"ExpressionStatement","src":"1178:24:38"},{"expression":{"arguments":[{"id":13638,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13618,"src":"1224:6:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13639,"name":"LIST_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13271,"src":"1232:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13637,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6468,"src":"1212:11:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":13640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:38:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13641,"nodeType":"ExpressionStatement","src":"1212:38:38"},{"body":{"id":13661,"nodeType":"Block","src":"1308:55:38","statements":[{"expression":{"id":13659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13653,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13276,"src":"1322:8:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13657,"indexExpression":{"baseExpression":{"id":13654,"name":"allowList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13621,"src":"1331:10:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13656,"indexExpression":{"id":13655,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"1342:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1331:13:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1322:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1348:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1322:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13660,"nodeType":"ExpressionStatement","src":"1322:30:38"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"1280:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13647,"name":"allowList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13621,"src":"1284:10:38","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1295:6:38","memberName":"length","nodeType":"MemberAccess","src":"1284:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1280:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13662,"initializationExpression":{"assignments":[13643],"declarations":[{"constant":false,"id":13643,"mutability":"mutable","name":"i","nameLocation":"1273:1:38","nodeType":"VariableDeclaration","scope":13662,"src":"1265:9:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13642,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13645,"initialValue":{"hexValue":"30","id":13644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1277:1:38","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1265:13:38"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1303:3:38","subExpression":{"id":13650,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13643,"src":"1303:1:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13652,"nodeType":"ExpressionStatement","src":"1303:3:38"},"nodeType":"ForStatement","src":"1260:103:38"}]},"documentation":{"id":13609,"nodeType":"StructuredDocumentation","src":"823:165:38","text":"@notice Initialize the contract with the list of allowed addresses\n @param data_ The compressed initialization data `(address owner, address[] allowList)`"},"functionSelector":"439fab91","id":13664,"implemented":true,"kind":"function","modifiers":[{"id":13615,"kind":"modifierInvocation","modifierName":{"id":13614,"name":"initializer","nameLocations":["1059:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1059:11:38"},"nodeType":"ModifierInvocation","src":"1059:11:38"}],"name":"initialize","nameLocation":"1002:10:38","nodeType":"FunctionDefinition","overrides":{"id":13613,"nodeType":"OverrideSpecifier","overrides":[],"src":"1050:8:38"},"parameters":{"id":13612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13611,"mutability":"mutable","name":"data_","nameLocation":"1028:5:38","nodeType":"VariableDeclaration","scope":13664,"src":"1013:20:38","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13610,"name":"bytes","nodeType":"ElementaryTypeName","src":"1013:5:38","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1012:22:38"},"returnParameters":{"id":13616,"nodeType":"ParameterList","parameters":[],"src":"1071:0:38"},"scope":13665,"src":"993:376:38","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":13666,"src":"472:899:38","usedErrors":[6221,6224,6227,6230,9103,9106,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,6423,9111]}],"src":"36:1336:38"},"id":38},"contracts/allowlists/SimpleDenyList.sol":{"ast":{"absolutePath":"contracts/allowlists/SimpleDenyList.sol","exportedSymbols":{"ASimpleDenyList":[13518],"SimpleDenyList":[13732]},"id":13733,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13667,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:39"},{"absolutePath":"contracts/allowlists/ASimpleDenyList.sol","file":"contracts/allowlists/ASimpleDenyList.sol","id":13669,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13733,"sourceUnit":13519,"src":"62:73:39","symbolAliases":[{"foreign":{"id":13668,"name":"ASimpleDenyList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13518,"src":"70:15:39","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13671,"name":"ASimpleDenyList","nameLocations":["326:15:39"],"nodeType":"IdentifierPath","referencedDeclaration":13518,"src":"326:15:39"},"id":13672,"nodeType":"InheritanceSpecifier","src":"326:15:39"}],"canonicalName":"SimpleDenyList","contractDependencies":[],"contractKind":"contract","documentation":{"id":13670,"nodeType":"StructuredDocumentation","src":"137:162:39","text":"@title SimpleDenyList\n @notice A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list"},"fullyImplemented":true,"id":13732,"linearizedBaseContracts":[13732,13518,13587,18509,2831,2843,9211,6409],"name":"SimpleDenyList","nameLocation":"308:14:39","nodeType":"ContractDefinition","nodes":[{"body":{"id":13679,"nodeType":"Block","src":"602:39:39","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":13676,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"612:20:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":13677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"612:22:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13678,"nodeType":"ExpressionStatement","src":"612:22:39"}]},"documentation":{"id":13673,"nodeType":"StructuredDocumentation","src":"348:235:39","text":"@notice Construct a new SimpleDenyList\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":13680,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13674,"nodeType":"ParameterList","parameters":[],"src":"599:2:39"},"returnParameters":{"id":13675,"nodeType":"ParameterList","parameters":[],"src":"602:0:39"},"scope":13732,"src":"588:53:39","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[13416],"body":{"id":13730,"nodeType":"Block","src":"901:247:39","statements":[{"assignments":[13690,13693],"declarations":[{"constant":false,"id":13690,"mutability":"mutable","name":"owner_","nameLocation":"920:6:39","nodeType":"VariableDeclaration","scope":13730,"src":"912:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13689,"name":"address","nodeType":"ElementaryTypeName","src":"912:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13693,"mutability":"mutable","name":"denyList_","nameLocation":"945:9:39","nodeType":"VariableDeclaration","scope":13730,"src":"928:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13691,"name":"address","nodeType":"ElementaryTypeName","src":"928:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13692,"nodeType":"ArrayTypeName","src":"928:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":13704,"initialValue":{"arguments":[{"id":13696,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13683,"src":"969:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"977:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13697,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:39","typeDescriptions":{}}},{"baseExpression":{"id":13700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"986:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13699,"name":"address","nodeType":"ElementaryTypeName","src":"986:7:39","typeDescriptions":{}}},"id":13701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"986:9:39","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":13702,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"976:20:39","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_array$_t_address_$dyn_memory_ptr_$_$","typeString":"tuple(type(address),type(address[] memory))"}],"expression":{"id":13694,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"958:3:39","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"962:6:39","memberName":"decode","nodeType":"MemberAccess","src":"958:10:39","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"958:39:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"tuple(address payable,address[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"911:86:39"},{"expression":{"arguments":[{"id":13706,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13690,"src":"1025:6:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13705,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1008:16:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":13707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:24:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13708,"nodeType":"ExpressionStatement","src":"1008:24:39"},{"body":{"id":13728,"nodeType":"Block","src":"1089:53:39","statements":[{"expression":{"id":13726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13720,"name":"_denied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13405,"src":"1103:7:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13724,"indexExpression":{"baseExpression":{"id":13721,"name":"denyList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13693,"src":"1111:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13723,"indexExpression":{"id":13722,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13710,"src":"1121:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1111:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1103:21:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1127:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1103:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13727,"nodeType":"ExpressionStatement","src":"1103:28:39"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13710,"src":"1062:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13714,"name":"denyList_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13693,"src":"1066:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":13715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1076:6:39","memberName":"length","nodeType":"MemberAccess","src":"1066:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1062:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13729,"initializationExpression":{"assignments":[13710],"declarations":[{"constant":false,"id":13710,"mutability":"mutable","name":"i","nameLocation":"1055:1:39","nodeType":"VariableDeclaration","scope":13729,"src":"1047:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13712,"initialValue":{"hexValue":"30","id":13711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1059:1:39","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1047:13:39"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":13718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1084:3:39","subExpression":{"id":13717,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13710,"src":"1084:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13719,"nodeType":"ExpressionStatement","src":"1084:3:39"},"nodeType":"ForStatement","src":"1042:100:39"}]},"documentation":{"id":13681,"nodeType":"StructuredDocumentation","src":"647:171:39","text":"@notice Initialize the contract with the initial list of denied addresses\n @param data_ The compressed initialization data `(address owner, address[] denyList)`"},"functionSelector":"439fab91","id":13731,"implemented":true,"kind":"function","modifiers":[{"id":13687,"kind":"modifierInvocation","modifierName":{"id":13686,"name":"initializer","nameLocations":["889:11:39"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"889:11:39"},"nodeType":"ModifierInvocation","src":"889:11:39"}],"name":"initialize","nameLocation":"832:10:39","nodeType":"FunctionDefinition","overrides":{"id":13685,"nodeType":"OverrideSpecifier","overrides":[],"src":"880:8:39"},"parameters":{"id":13684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13683,"mutability":"mutable","name":"data_","nameLocation":"858:5:39","nodeType":"VariableDeclaration","scope":13731,"src":"843:20:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13682,"name":"bytes","nodeType":"ElementaryTypeName","src":"843:5:39","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"842:22:39"},"returnParameters":{"id":13688,"nodeType":"ParameterList","parameters":[],"src":"901:0:39"},"scope":13732,"src":"823:325:39","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":13733,"src":"299:851:39","usedErrors":[6221,6224,6227,6230,9103,9106,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,9111]}],"src":"36:1115:39"},"id":39},"contracts/budgets/ASimpleBudget.sol":{"ast":{"absolutePath":"contracts/budgets/ASimpleBudget.sol","exportedSymbols":{"ASimpleBudget":[14722],"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"IERC1155":[1176],"IERC1155Receiver":[1218],"IERC165":[2843],"ReentrancyGuard":[11024],"SafeTransferLib":[11358]},"id":14723,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":13734,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:40"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":13736,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":1219,"src":"62:92:40","symbolAliases":[{"foreign":{"id":13735,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"70:16:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":13738,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":1177,"src":"155:76:40","symbolAliases":[{"foreign":{"id":13737,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"163:8:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":13740,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":2844,"src":"232:80:40","symbolAliases":[{"foreign":{"id":13739,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"240:7:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":13742,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":11359,"src":"314:66:40","symbolAliases":[{"foreign":{"id":13741,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"322:15:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":13744,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":11025,"src":"381:66:40","symbolAliases":[{"foreign":{"id":13743,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11024,"src":"389:15:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":13746,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":18344,"src":"449:59:40","symbolAliases":[{"foreign":{"id":13745,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"457:10:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":13748,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":15660,"src":"509:52:40","symbolAliases":[{"foreign":{"id":13747,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"517:6:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":13750,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14723,"sourceUnit":18510,"src":"562:57:40","symbolAliases":[{"foreign":{"id":13749,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"570:9:40","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":13752,"name":"Budget","nameLocations":["873:6:40"],"nodeType":"IdentifierPath","referencedDeclaration":15659,"src":"873:6:40"},"id":13753,"nodeType":"InheritanceSpecifier","src":"873:6:40"},{"baseName":{"id":13754,"name":"IERC1155Receiver","nameLocations":["881:16:40"],"nodeType":"IdentifierPath","referencedDeclaration":1218,"src":"881:16:40"},"id":13755,"nodeType":"InheritanceSpecifier","src":"881:16:40"},{"baseName":{"id":13756,"name":"ReentrancyGuard","nameLocations":["899:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":11024,"src":"899:15:40"},"id":13757,"nodeType":"InheritanceSpecifier","src":"899:15:40"}],"canonicalName":"ASimpleBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":13751,"nodeType":"StructuredDocumentation","src":"621:217:40","text":"@title Abstract Simple Budget\n @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n @dev This type of budget supports ETH, ERC20, and ERC1155 assets only"},"fullyImplemented":true,"id":14722,"linearizedBaseContracts":[14722,11024,1218,15659,6215,18509,2831,2843,9211,6409],"name":"ASimpleBudget","nameLocation":"856:13:40","nodeType":"ContractDefinition","nodes":[{"global":false,"id":13760,"libraryName":{"id":13758,"name":"SafeTransferLib","nameLocations":["927:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"927:15:40"},"nodeType":"UsingForDirective","src":"921:34:40","typeName":{"id":13759,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":13761,"nodeType":"StructuredDocumentation","src":"961:76:40","text":"@dev The total amount of each fungible asset distributed from the budget"},"id":13765,"mutability":"mutable","name":"_distributedFungible","nameLocation":"1078:20:40","nodeType":"VariableDeclaration","scope":14722,"src":"1042:56:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":13764,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13762,"name":"address","nodeType":"ElementaryTypeName","src":"1050:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1042:27:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"documentation":{"id":13766,"nodeType":"StructuredDocumentation","src":"1105:88:40","text":"@dev The total amount of each ERC1155 asset and token ID distributed from the budget"},"id":13772,"mutability":"mutable","name":"_distributedERC1155","nameLocation":"1254:19:40","nodeType":"VariableDeclaration","scope":14722,"src":"1198:75:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"typeName":{"id":13771,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13767,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1198:47:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13770,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13768,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1217:27:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13769,"name":"uint256","nodeType":"ElementaryTypeName","src":"1236:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"documentation":{"id":13773,"nodeType":"StructuredDocumentation","src":"1280:44:40","text":"@dev The mapping of authorized addresses"},"id":13777,"mutability":"mutable","name":"_isAuthorized","nameLocation":"1363:13:40","nodeType":"VariableDeclaration","scope":14722,"src":"1329:47:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13776,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":13774,"name":"address","nodeType":"ElementaryTypeName","src":"1337:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1329:24:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":13775,"name":"bool","nodeType":"ElementaryTypeName","src":"1348:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"body":{"id":13790,"nodeType":"Block","src":"1495:80:40","statements":[{"condition":{"id":13784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1509:25:40","subExpression":{"arguments":[{"expression":{"id":13781,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1523:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1527:6:40","memberName":"sender","nodeType":"MemberAccess","src":"1523:10:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13780,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14333,"src":"1510:12:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":13783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1510:24:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13788,"nodeType":"IfStatement","src":"1505:52:40","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13785,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"1543:12:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1543:14:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13787,"nodeType":"RevertStatement","src":"1536:21:40"}},{"id":13789,"nodeType":"PlaceholderStatement","src":"1567:1:40"}]},"documentation":{"id":13778,"nodeType":"StructuredDocumentation","src":"1383:81:40","text":"@notice A modifier that allows only authorized addresses to call the function"},"id":13791,"name":"onlyAuthorized","nameLocation":"1478:14:40","nodeType":"ModifierDefinition","parameters":{"id":13779,"nodeType":"ParameterList","parameters":[],"src":"1492:2:40"},"src":"1469:106:40","virtual":false,"visibility":"internal"},{"baseFunctions":[18474],"body":{"id":13801,"nodeType":"Block","src":"1774:41:40","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":13798,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1791:15:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":13799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1791:17:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13800,"nodeType":"RevertStatement","src":"1784:24:40"}]},"documentation":{"id":13792,"nodeType":"StructuredDocumentation","src":"1581:122:40","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":13802,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1717:10:40","nodeType":"FunctionDefinition","overrides":{"id":13796,"nodeType":"OverrideSpecifier","overrides":[],"src":"1765:8:40"},"parameters":{"id":13795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13794,"mutability":"mutable","name":"data_","nameLocation":"1743:5:40","nodeType":"VariableDeclaration","scope":13802,"src":"1728:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13793,"name":"bytes","nodeType":"ElementaryTypeName","src":"1728:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1727:22:40"},"returnParameters":{"id":13797,"nodeType":"ParameterList","parameters":[],"src":"1774:0:40"},"scope":14722,"src":"1708:107:40","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[15532],"body":{"id":13972,"nodeType":"Block","src":"2257:1588:40","statements":[{"assignments":[13813],"declarations":[{"constant":false,"id":13813,"mutability":"mutable","name":"request","nameLocation":"2283:7:40","nodeType":"VariableDeclaration","scope":13972,"src":"2267:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":13812,"nodeType":"UserDefinedTypeName","pathNode":{"id":13811,"name":"Transfer","nameLocations":["2267:8:40"],"nodeType":"IdentifierPath","referencedDeclaration":15461,"src":"2267:8:40"},"referencedDeclaration":15461,"src":"2267:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":13820,"initialValue":{"arguments":[{"id":13816,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13805,"src":"2304:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13817,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"2312:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":13818,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2311:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":13814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2293:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2297:6:40","memberName":"decode","nodeType":"MemberAccess","src":"2293:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2293:29:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"2267:55:40"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":13825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13821,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"2336:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2344:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2336:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13823,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"2357:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":13824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2367:3:40","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"2357:13:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"2336:34:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":13856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13852,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"2692:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2700:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2692:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13854,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"2713:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":13855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2723:5:40","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"2713:15:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"2692:36:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":13908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13904,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3166:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3174:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"3166:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13906,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"3187:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":13907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3197:7:40","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":15449,"src":"3187:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"3166:38:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13966,"nodeType":"Block","src":"3742:75:40","statements":[{"expression":{"hexValue":"66616c7365","id":13964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3801:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13810,"id":13965,"nodeType":"Return","src":"3794:12:40"}]},"id":13967,"nodeType":"IfStatement","src":"3162:655:40","trueBody":{"id":13963,"nodeType":"Block","src":"3206:530:40","statements":[{"assignments":[13911],"declarations":[{"constant":false,"id":13911,"mutability":"mutable","name":"payload","nameLocation":"3242:7:40","nodeType":"VariableDeclaration","scope":13963,"src":"3220:29:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":13910,"nodeType":"UserDefinedTypeName","pathNode":{"id":13909,"name":"ERC1155Payload","nameLocations":["3220:14:40"],"nodeType":"IdentifierPath","referencedDeclaration":15473,"src":"3220:14:40"},"referencedDeclaration":15473,"src":"3220:14:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":13919,"initialValue":{"arguments":[{"expression":{"id":13914,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3263:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3271:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"3263:12:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13916,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15473,"src":"3278:14:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":13917,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3277:16:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":13912,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3252:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3256:6:40","memberName":"decode","nodeType":"MemberAccess","src":"3252:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3252:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"3220:74:40"},{"expression":{"arguments":[{"expression":{"id":13925,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3446:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3454:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"3446:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13929,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3470:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":13928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3462:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13927,"name":"address","nodeType":"ElementaryTypeName","src":"3462:7:40","typeDescriptions":{}}},"id":13930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3462:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13931,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13911,"src":"3477:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3485:7:40","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":15468,"src":"3477:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13933,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13911,"src":"3494:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3502:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"3494:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13935,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13911,"src":"3510:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3518:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15472,"src":"3510:12:40","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_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"expression":{"id":13921,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3397:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3405:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"3397:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13920,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"3388:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}},"id":13923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:23:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":13924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3412:16:40","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1159,"src":"3388:40:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":13937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:148:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13938,"nodeType":"ExpressionStatement","src":"3388:148:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":13946,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3596:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":13945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3588:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13944,"name":"address","nodeType":"ElementaryTypeName","src":"3588:7:40","typeDescriptions":{}}},"id":13947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3588:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13948,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13911,"src":"3603:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3611:7:40","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":15468,"src":"3603:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":13940,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3563:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3571:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"3563:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13939,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"3554:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}},"id":13942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3554:23:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":13943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3578:9:40","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1114,"src":"3554:33:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":13950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3554:65:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13951,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13911,"src":"3622:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3630:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"3622:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3554:82:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13962,"nodeType":"IfStatement","src":"3550:176:40","trueBody":{"id":13961,"nodeType":"Block","src":"3638:88:40","statements":[{"errorCall":{"arguments":[{"expression":{"id":13955,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3681:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"3681:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13957,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13911,"src":"3696:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":13958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3704:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"3696:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13954,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15496,"src":"3663:17:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":13959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3663:48:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13960,"nodeType":"RevertStatement","src":"3656:55:40"}]}}]}},"id":13968,"nodeType":"IfStatement","src":"2688:1129:40","trueBody":{"id":13903,"nodeType":"Block","src":"2730:426:40","statements":[{"assignments":[13859],"declarations":[{"constant":false,"id":13859,"mutability":"mutable","name":"payload","nameLocation":"2767:7:40","nodeType":"VariableDeclaration","scope":13903,"src":"2744:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13858,"nodeType":"UserDefinedTypeName","pathNode":{"id":13857,"name":"FungiblePayload","nameLocations":["2744:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"2744:15:40"},"referencedDeclaration":15465,"src":"2744:15:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":13867,"initialValue":{"arguments":[{"expression":{"id":13862,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"2788:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2796:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"2788:12:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13864,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"2803:15:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":13865,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2802:17:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:6:40","memberName":"decode","nodeType":"MemberAccess","src":"2777:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:43:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2744:76:40"},{"expression":{"arguments":[{"expression":{"id":13873,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"2937:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2945:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"2937:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":13877,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2961:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":13876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2953:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13875,"name":"address","nodeType":"ElementaryTypeName","src":"2953:7:40","typeDescriptions":{}}},"id":13878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2953:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13879,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13859,"src":"2968:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2976:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"2968:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":13868,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"2906:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2914:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"2906:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2920:16:40","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":11163,"src":"2906:30:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":13881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2906:77:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13882,"nodeType":"ExpressionStatement","src":"2906:77:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":13888,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3033:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":13887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3025:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13886,"name":"address","nodeType":"ElementaryTypeName","src":"3025:7:40","typeDescriptions":{}}},"id":13889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3025:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":13883,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3001:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3009:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"3001:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3015:9:40","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"3001:23:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":13890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3001:38:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13891,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13859,"src":"3042:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3050:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"3042:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3001:55:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13902,"nodeType":"IfStatement","src":"2997:149:40","trueBody":{"id":13901,"nodeType":"Block","src":"3058:88:40","statements":[{"errorCall":{"arguments":[{"expression":{"id":13895,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"3101:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3109:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"3101:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13897,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13859,"src":"3116:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3124:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"3116:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13894,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15496,"src":"3083:17:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":13899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3083:48:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13900,"nodeType":"RevertStatement","src":"3076:55:40"}]}}]}},"id":13969,"nodeType":"IfStatement","src":"2332:1485:40","trueBody":{"id":13851,"nodeType":"Block","src":"2372:310:40","statements":[{"assignments":[13828],"declarations":[{"constant":false,"id":13828,"mutability":"mutable","name":"payload","nameLocation":"2409:7:40","nodeType":"VariableDeclaration","scope":13851,"src":"2386:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":13827,"nodeType":"UserDefinedTypeName","pathNode":{"id":13826,"name":"FungiblePayload","nameLocations":["2386:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"2386:15:40"},"referencedDeclaration":15465,"src":"2386:15:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":13836,"initialValue":{"arguments":[{"expression":{"id":13831,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"2430:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2438:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"2430:12:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13833,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"2445:15:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":13834,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2444:17:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":13829,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2419:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2423:6:40","memberName":"decode","nodeType":"MemberAccess","src":"2419:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2419:43:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2386:76:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13837,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2555:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2559:5:40","memberName":"value","nodeType":"MemberAccess","src":"2555:9:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":13839,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13828,"src":"2568:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2576:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"2568:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:27:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13850,"nodeType":"IfStatement","src":"2551:121:40","trueBody":{"id":13849,"nodeType":"Block","src":"2584:88:40","statements":[{"errorCall":{"arguments":[{"expression":{"id":13843,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13813,"src":"2627:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2635:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"2627:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":13845,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13828,"src":"2642:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":13846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2650:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"2642:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13842,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15496,"src":"2609:17:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":13847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2609:48:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":13848,"nodeType":"RevertStatement","src":"2602:55:40"}]}}]}},{"expression":{"hexValue":"74727565","id":13970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3834:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13810,"id":13971,"nodeType":"Return","src":"3827:11:40"}]},"documentation":{"id":13803,"nodeType":"StructuredDocumentation","src":"1821:342:40","text":"@inheritdoc Budget\n @notice Allocates assets to the budget\n @param data_ The packed data for the {Transfer} request\n @return True if the allocation was successful\n @dev The caller must have already approved the contract to transfer the asset\n @dev If the asset transfer fails, the allocation will revert"},"functionSelector":"5aef467a","id":13973,"implemented":true,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"2177:8:40","nodeType":"FunctionDefinition","overrides":{"id":13807,"nodeType":"OverrideSpecifier","overrides":[],"src":"2233:8:40"},"parameters":{"id":13806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13805,"mutability":"mutable","name":"data_","nameLocation":"2201:5:40","nodeType":"VariableDeclaration","scope":13973,"src":"2186:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13804,"name":"bytes","nodeType":"ElementaryTypeName","src":"2186:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2185:22:40"},"returnParameters":{"id":13810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13973,"src":"2251:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13808,"name":"bool","nodeType":"ElementaryTypeName","src":"2251:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2250:6:40"},"scope":14722,"src":"2168:1677:40","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[15540],"body":{"id":14089,"nodeType":"Block","src":"4364:925:40","statements":[{"assignments":[13986],"declarations":[{"constant":false,"id":13986,"mutability":"mutable","name":"request","nameLocation":"4390:7:40","nodeType":"VariableDeclaration","scope":14089,"src":"4374:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":13985,"nodeType":"UserDefinedTypeName","pathNode":{"id":13984,"name":"Transfer","nameLocations":["4374:8:40"],"nodeType":"IdentifierPath","referencedDeclaration":15461,"src":"4374:8:40"},"referencedDeclaration":15461,"src":"4374:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":13993,"initialValue":{"arguments":[{"id":13989,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13976,"src":"4411:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":13990,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"4419:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":13991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4418:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":13987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4400:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4404:6:40","memberName":"decode","nodeType":"MemberAccess","src":"4400:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4400:29:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"4374:55:40"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":13998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13994,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4443:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":13995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4451:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"4443:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":13996,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"4464:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":13997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4474:3:40","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"4464:13:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"4443:34:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13999,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4481:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4489:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"4481:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14001,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"4502:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4512:5:40","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"4502:15:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"4481:36:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4443:74:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14035,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4787:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4795:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"4787:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14037,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"4808:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4818:7:40","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":15449,"src":"4808:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"4787:38:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14084,"nodeType":"Block","src":"5224:37:40","statements":[{"expression":{"hexValue":"66616c7365","id":14082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5245:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":13983,"id":14083,"nodeType":"Return","src":"5238:12:40"}]},"id":14085,"nodeType":"IfStatement","src":"4783:478:40","trueBody":{"id":14081,"nodeType":"Block","src":"4827:391:40","statements":[{"assignments":[14042],"declarations":[{"constant":false,"id":14042,"mutability":"mutable","name":"payload","nameLocation":"4863:7:40","nodeType":"VariableDeclaration","scope":14081,"src":"4841:29:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":14041,"nodeType":"UserDefinedTypeName","pathNode":{"id":14040,"name":"ERC1155Payload","nameLocations":["4841:14:40"],"nodeType":"IdentifierPath","referencedDeclaration":15473,"src":"4841:14:40"},"referencedDeclaration":15473,"src":"4841:14:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":14050,"initialValue":{"arguments":[{"expression":{"id":14045,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4884:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4892:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"4884:12:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14047,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15473,"src":"4899:14:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":14048,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4898:16:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":14043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4873:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4877:6:40","memberName":"decode","nodeType":"MemberAccess","src":"4873:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"4841:74:40"},{"expression":{"arguments":[{"expression":{"id":14052,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4963:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4971:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"4963:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14054,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4994:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5002:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"4994:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14056,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"5026:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5034:7:40","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":15468,"src":"5026:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14058,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"5059:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5067:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"5059:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5077:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5059:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14074,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"5149:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5157:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"5149:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5059:104:40","trueExpression":{"arguments":[{"arguments":[{"id":14069,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5123:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":14068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5115:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14067,"name":"address","nodeType":"ElementaryTypeName","src":"5115:7:40","typeDescriptions":{}}},"id":14070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5115:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14071,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"5130:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5138:7:40","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":15468,"src":"5130:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":14063,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"5090:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5098:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"5090:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14062,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"5081:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}},"id":14065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5081:23:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5105:9:40","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1114,"src":"5081:33:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5081:65:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14077,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14042,"src":"5181:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5189:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15472,"src":"5181:12:40","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_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14051,"name":"_transferERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14624,"src":"4929:16:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":14079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4929:278:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14080,"nodeType":"ExpressionStatement","src":"4929:278:40"}]}},"id":14086,"nodeType":"IfStatement","src":"4439:822:40","trueBody":{"id":14034,"nodeType":"Block","src":"4519:258:40","statements":[{"assignments":[14007],"declarations":[{"constant":false,"id":14007,"mutability":"mutable","name":"payload","nameLocation":"4556:7:40","nodeType":"VariableDeclaration","scope":14034,"src":"4533:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14006,"nodeType":"UserDefinedTypeName","pathNode":{"id":14005,"name":"FungiblePayload","nameLocations":["4533:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"4533:15:40"},"referencedDeclaration":15465,"src":"4533:15:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14015,"initialValue":{"arguments":[{"expression":{"id":14010,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4577:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4585:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"4577:12:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14012,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"4592:15:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14013,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4591:17:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4566:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4570:6:40","memberName":"decode","nodeType":"MemberAccess","src":"4566:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4566:43:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4533:76:40"},{"expression":{"arguments":[{"expression":{"id":14017,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4658:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4666:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"4658:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14019,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4673:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4681:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"4673:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14021,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14007,"src":"4689:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4697:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"4689:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4707:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4689:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14029,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14007,"src":"4738:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4746:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"4738:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4689:63:40","trueExpression":{"arguments":[{"expression":{"id":14026,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13986,"src":"4721:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4729:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"4721:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14025,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14409,14431],"referencedDeclaration":14409,"src":"4711:9:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4711:24:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14016,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14550,"src":"4623:17:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4623:143:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14033,"nodeType":"ExpressionStatement","src":"4623:143:40"}]}},{"expression":{"hexValue":"74727565","id":14087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5278:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13983,"id":14088,"nodeType":"Return","src":"5271:11:40"}]},"documentation":{"id":13974,"nodeType":"StructuredDocumentation","src":"3851:418:40","text":"@inheritdoc Budget\n @notice Reclaims assets from the budget\n @param data_ The packed {Transfer} request\n @return True if the request was successful\n @dev Only the owner can directly reclaim assets from the budget\n @dev If the amount is zero, the entire balance of the asset will be transferred to the receiver\n @dev If the asset transfer fails, the reclamation will revert"},"functionSelector":"f1c30ec0","id":14090,"implemented":true,"kind":"function","modifiers":[{"id":13980,"kind":"modifierInvocation","modifierName":{"id":13979,"name":"onlyOwner","nameLocations":["4339:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"4339:9:40"},"nodeType":"ModifierInvocation","src":"4339:9:40"}],"name":"reclaim","nameLocation":"4283:7:40","nodeType":"FunctionDefinition","overrides":{"id":13978,"nodeType":"OverrideSpecifier","overrides":[],"src":"4330:8:40"},"parameters":{"id":13977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13976,"mutability":"mutable","name":"data_","nameLocation":"4306:5:40","nodeType":"VariableDeclaration","scope":14090,"src":"4291:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13975,"name":"bytes","nodeType":"ElementaryTypeName","src":"4291:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4290:22:40"},"returnParameters":{"id":13983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14090,"src":"4358:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13981,"name":"bool","nodeType":"ElementaryTypeName","src":"4358:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4357:6:40"},"scope":14722,"src":"4274:1015:40","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[15548],"body":{"id":14230,"nodeType":"Block","src":"5665:1087:40","statements":[{"assignments":[14103],"declarations":[{"constant":false,"id":14103,"mutability":"mutable","name":"request","nameLocation":"5691:7:40","nodeType":"VariableDeclaration","scope":14230,"src":"5675:23:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14102,"nodeType":"UserDefinedTypeName","pathNode":{"id":14101,"name":"Transfer","nameLocations":["5675:8:40"],"nodeType":"IdentifierPath","referencedDeclaration":15461,"src":"5675:8:40"},"referencedDeclaration":15461,"src":"5675:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14110,"initialValue":{"arguments":[{"id":14106,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14093,"src":"5712:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14107,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"5720:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5719:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14104,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5701:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5705:6:40","memberName":"decode","nodeType":"MemberAccess","src":"5701:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5701:29:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"5675:55:40"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14111,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"5744:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5752:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5744:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14113,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"5765:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5775:5:40","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"5765:15:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"5744:36:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14116,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"5784:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5792:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5784:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14118,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"5805:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5815:3:40","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"5805:13:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"5784:34:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5744:74:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14164,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6201:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6209:9:40","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"6201:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14166,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"6222:9:40","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6232:7:40","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":15449,"src":"6222:17:40","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"6201:38:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14225,"nodeType":"Block","src":"6687:37:40","statements":[{"expression":{"hexValue":"66616c7365","id":14223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6708:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14100,"id":14224,"nodeType":"Return","src":"6701:12:40"}]},"id":14226,"nodeType":"IfStatement","src":"6197:527:40","trueBody":{"id":14222,"nodeType":"Block","src":"6241:440:40","statements":[{"assignments":[14171],"declarations":[{"constant":false,"id":14171,"mutability":"mutable","name":"payload","nameLocation":"6277:7:40","nodeType":"VariableDeclaration","scope":14222,"src":"6255:29:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload"},"typeName":{"id":14170,"nodeType":"UserDefinedTypeName","pathNode":{"id":14169,"name":"ERC1155Payload","nameLocations":["6255:14:40"],"nodeType":"IdentifierPath","referencedDeclaration":15473,"src":"6255:14:40"},"referencedDeclaration":15473,"src":"6255:14:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_storage_ptr","typeString":"struct Budget.ERC1155Payload"}},"visibility":"internal"}],"id":14179,"initialValue":{"arguments":[{"expression":{"id":14174,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6298:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6306:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"6298:12:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14176,"name":"ERC1155Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15473,"src":"6313:14:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"id":14177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6312:16:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}],"expression":{"id":14172,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6287:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6291:6:40","memberName":"decode","nodeType":"MemberAccess","src":"6287:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6287:42:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"nodeType":"VariableDeclarationStatement","src":"6255:74:40"},{"assignments":[14181],"declarations":[{"constant":false,"id":14181,"mutability":"mutable","name":"avail","nameLocation":"6352:5:40","nodeType":"VariableDeclaration","scope":14222,"src":"6344:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14180,"name":"uint256","nodeType":"ElementaryTypeName","src":"6344:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14194,"initialValue":{"arguments":[{"arguments":[{"id":14189,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6402:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":14188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6394:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14187,"name":"address","nodeType":"ElementaryTypeName","src":"6394:7:40","typeDescriptions":{}}},"id":14190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6394:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14191,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14171,"src":"6409:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6417:7:40","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":15468,"src":"6409:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"id":14183,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6369:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6377:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"6369:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14182,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"6360:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}},"id":14185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6360:23:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":14186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6384:9:40","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1114,"src":"6360:33:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6360:65:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6344:81:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14195,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14171,"src":"6443:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6451:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"6443:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14197,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14181,"src":"6460:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6443:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14208,"nodeType":"IfStatement","src":"6439:123:40","trueBody":{"id":14207,"nodeType":"Block","src":"6467:95:40","statements":[{"errorCall":{"arguments":[{"expression":{"id":14200,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6510:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6518:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"6510:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14202,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14181,"src":"6525:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14203,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14171,"src":"6532:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6540:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"6532:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14199,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"6492:17:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":14205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6492:55:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14206,"nodeType":"RevertStatement","src":"6485:62:40"}]}},{"expression":{"arguments":[{"expression":{"id":14210,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6593:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6601:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"6593:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14212,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6608:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6616:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"6608:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14214,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14171,"src":"6624:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14215,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6632:7:40","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":15468,"src":"6624:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14216,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14171,"src":"6641:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6649:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15470,"src":"6641:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14218,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14171,"src":"6657:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}},"id":14219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6665:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15472,"src":"6657:12:40","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_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14209,"name":"_transferERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14624,"src":"6576:16:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory)"}},"id":14220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6576:94:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14221,"nodeType":"ExpressionStatement","src":"6576:94:40"}]}},"id":14227,"nodeType":"IfStatement","src":"5740:984:40","trueBody":{"id":14163,"nodeType":"Block","src":"5820:371:40","statements":[{"assignments":[14124],"declarations":[{"constant":false,"id":14124,"mutability":"mutable","name":"payload","nameLocation":"5857:7:40","nodeType":"VariableDeclaration","scope":14163,"src":"5834:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14123,"nodeType":"UserDefinedTypeName","pathNode":{"id":14122,"name":"FungiblePayload","nameLocations":["5834:15:40"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"5834:15:40"},"referencedDeclaration":15465,"src":"5834:15:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14132,"initialValue":{"arguments":[{"expression":{"id":14127,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"5878:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5886:4:40","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"5878:12:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14129,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"5893:15:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14130,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5892:17:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5867:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5871:6:40","memberName":"decode","nodeType":"MemberAccess","src":"5867:10:40","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5867:43:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5834:76:40"},{"assignments":[14134],"declarations":[{"constant":false,"id":14134,"mutability":"mutable","name":"avail","nameLocation":"5933:5:40","nodeType":"VariableDeclaration","scope":14163,"src":"5925:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14133,"name":"uint256","nodeType":"ElementaryTypeName","src":"5925:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14139,"initialValue":{"arguments":[{"expression":{"id":14136,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"5951:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5959:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"5951:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14135,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14409,14431],"referencedDeclaration":14409,"src":"5941:9:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5941:24:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5925:40:40"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14140,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14124,"src":"5983:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5991:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"5983:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":14142,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"6000:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5983:22:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14153,"nodeType":"IfStatement","src":"5979:123:40","trueBody":{"id":14152,"nodeType":"Block","src":"6007:95:40","statements":[{"errorCall":{"arguments":[{"expression":{"id":14145,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6050:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6058:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"6050:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14147,"name":"avail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"6065:5:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14148,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14124,"src":"6072:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6080:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"6072:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14144,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"6032:17:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":14150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6032:55:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14151,"nodeType":"RevertStatement","src":"6025:62:40"}]}},{"expression":{"arguments":[{"expression":{"id":14155,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6134:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6142:5:40","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"6134:13:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14157,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6149:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6157:6:40","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"6149:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14159,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14124,"src":"6165:7:40","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6173:6:40","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"6165:14:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14154,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14550,"src":"6116:17:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6116:64:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14162,"nodeType":"ExpressionStatement","src":"6116:64:40"}]}},{"expression":{"hexValue":"74727565","id":14228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6741:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14100,"id":14229,"nodeType":"Return","src":"6734:11:40"}]},"documentation":{"id":14091,"nodeType":"StructuredDocumentation","src":"5295:271:40","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to a single recipient\n @param data_ The packed {Transfer} request\n @return True if the disbursement was successful\n @dev If the asset transfer fails, the disbursement will revert"},"functionSelector":"fa4ca9b1","id":14231,"implemented":true,"kind":"function","modifiers":[{"id":14097,"kind":"modifierInvocation","modifierName":{"id":14096,"name":"onlyAuthorized","nameLocations":["5635:14:40"],"nodeType":"IdentifierPath","referencedDeclaration":13791,"src":"5635:14:40"},"nodeType":"ModifierInvocation","src":"5635:14:40"}],"name":"disburse","nameLocation":"5580:8:40","nodeType":"FunctionDefinition","overrides":{"id":14095,"nodeType":"OverrideSpecifier","overrides":[],"src":"5626:8:40"},"parameters":{"id":14094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14093,"mutability":"mutable","name":"data_","nameLocation":"5604:5:40","nodeType":"VariableDeclaration","scope":14231,"src":"5589:20:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14092,"name":"bytes","nodeType":"ElementaryTypeName","src":"5589:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5588:22:40"},"returnParameters":{"id":14100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14231,"src":"5659:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14098,"name":"bool","nodeType":"ElementaryTypeName","src":"5659:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5658:6:40"},"scope":14722,"src":"5571:1181:40","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[15557],"body":{"id":14265,"nodeType":"Block","src":"7064:143:40","statements":[{"body":{"id":14261,"nodeType":"Block","src":"7117:62:40","statements":[{"condition":{"id":14257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7135:19:40","subExpression":{"arguments":[{"baseExpression":{"id":14253,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14235,"src":"7145:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":14255,"indexExpression":{"id":14254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14242,"src":"7151:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7145:8:40","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14252,"name":"disburse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14231,"src":"7136:8:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) returns (bool)"}},"id":14256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7136:18:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14260,"nodeType":"IfStatement","src":"7131:37:40","trueBody":{"expression":{"hexValue":"66616c7365","id":14258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7163:5:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14240,"id":14259,"nodeType":"Return","src":"7156:12:40"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14245,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14242,"src":"7094:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14246,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14235,"src":"7098:5:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":14247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7104:6:40","memberName":"length","nodeType":"MemberAccess","src":"7098:12:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7094:16:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14262,"initializationExpression":{"assignments":[14242],"declarations":[{"constant":false,"id":14242,"mutability":"mutable","name":"i","nameLocation":"7087:1:40","nodeType":"VariableDeclaration","scope":14262,"src":"7079:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14241,"name":"uint256","nodeType":"ElementaryTypeName","src":"7079:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14244,"initialValue":{"hexValue":"30","id":14243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7091:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7079:13:40"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7112:3:40","subExpression":{"id":14249,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14242,"src":"7112:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14251,"nodeType":"ExpressionStatement","src":"7112:3:40"},"nodeType":"ForStatement","src":"7074:105:40"},{"expression":{"hexValue":"74727565","id":14263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7196:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14240,"id":14264,"nodeType":"Return","src":"7189:11:40"}]},"documentation":{"id":14232,"nodeType":"StructuredDocumentation","src":"6758:213:40","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to multiple recipients\n @param data_ The packed array of {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":14266,"implemented":true,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"6985:13:40","nodeType":"FunctionDefinition","overrides":{"id":14237,"nodeType":"OverrideSpecifier","overrides":[],"src":"7040:8:40"},"parameters":{"id":14236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14235,"mutability":"mutable","name":"data_","nameLocation":"7016:5:40","nodeType":"VariableDeclaration","scope":14266,"src":"6999:22:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14233,"name":"bytes","nodeType":"ElementaryTypeName","src":"6999:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14234,"nodeType":"ArrayTypeName","src":"6999:7:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"6998:24:40"},"returnParameters":{"id":14240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14266,"src":"7058:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14238,"name":"bool","nodeType":"ElementaryTypeName","src":"7058:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7057:6:40"},"scope":14722,"src":"6976:231:40","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[15599],"body":{"id":14313,"nodeType":"Block","src":"7393:217:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14279,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14270,"src":"7407:8:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7416:6:40","memberName":"length","nodeType":"MemberAccess","src":"7407:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14281,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14273,"src":"7426:11:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":14282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7438:6:40","memberName":"length","nodeType":"MemberAccess","src":"7426:18:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7407:37:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14289,"nodeType":"IfStatement","src":"7403:77:40","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":14284,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"7453:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":14286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7464:14:40","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":18318,"src":"7453:25:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7453:27:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14288,"nodeType":"RevertStatement","src":"7446:34:40"}},{"body":{"id":14311,"nodeType":"Block","src":"7536:68:40","statements":[{"expression":{"id":14309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14301,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13777,"src":"7550:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14305,"indexExpression":{"baseExpression":{"id":14302,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14270,"src":"7564:8:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14304,"indexExpression":{"id":14303,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"7573:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7564:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7550:26:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":14306,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14273,"src":"7579:11:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":14308,"indexExpression":{"id":14307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"7591:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7579:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7550:43:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14310,"nodeType":"ExpressionStatement","src":"7550:43:40"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14294,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"7510:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14295,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14270,"src":"7514:8:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":14296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7523:6:40","memberName":"length","nodeType":"MemberAccess","src":"7514:15:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7510:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14312,"initializationExpression":{"assignments":[14291],"declarations":[{"constant":false,"id":14291,"mutability":"mutable","name":"i","nameLocation":"7503:1:40","nodeType":"VariableDeclaration","scope":14312,"src":"7495:9:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14290,"name":"uint256","nodeType":"ElementaryTypeName","src":"7495:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14293,"initialValue":{"hexValue":"30","id":14292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7507:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7495:13:40"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":14299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7531:3:40","subExpression":{"id":14298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"7531:1:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14300,"nodeType":"ExpressionStatement","src":"7531:3:40"},"nodeType":"ForStatement","src":"7490:114:40"}]},"documentation":{"id":14267,"nodeType":"StructuredDocumentation","src":"7213:22:40","text":"@inheritdoc Budget"},"functionSelector":"4359d28a","id":14314,"implemented":true,"kind":"function","modifiers":[{"id":14277,"kind":"modifierInvocation","modifierName":{"id":14276,"name":"onlyOwner","nameLocations":["7379:9:40"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"7379:9:40"},"nodeType":"ModifierInvocation","src":"7379:9:40"}],"name":"setAuthorized","nameLocation":"7249:13:40","nodeType":"FunctionDefinition","overrides":{"id":14275,"nodeType":"OverrideSpecifier","overrides":[],"src":"7362:8:40"},"parameters":{"id":14274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14270,"mutability":"mutable","name":"account_","nameLocation":"7282:8:40","nodeType":"VariableDeclaration","scope":14314,"src":"7263:27:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14268,"name":"address","nodeType":"ElementaryTypeName","src":"7263:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14269,"nodeType":"ArrayTypeName","src":"7263:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14273,"mutability":"mutable","name":"authorized_","nameLocation":"7308:11:40","nodeType":"VariableDeclaration","scope":14314,"src":"7292:27:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14271,"name":"bool","nodeType":"ElementaryTypeName","src":"7292:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14272,"nodeType":"ArrayTypeName","src":"7292:6:40","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"7262:58:40"},"returnParameters":{"id":14278,"nodeType":"ParameterList","parameters":[],"src":"7393:0:40"},"scope":14722,"src":"7240:370:40","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[15607],"body":{"id":14332,"nodeType":"Block","src":"7727:70:40","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":14323,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13777,"src":"7744:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":14325,"indexExpression":{"id":14324,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14317,"src":"7758:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7744:23:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14326,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14317,"src":"7771:8:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14327,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"7783:5:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7783:7:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7771:19:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7744:46:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14322,"id":14331,"nodeType":"Return","src":"7737:53:40"}]},"documentation":{"id":14315,"nodeType":"StructuredDocumentation","src":"7616:22:40","text":"@inheritdoc Budget"},"functionSelector":"fe9fbb80","id":14333,"implemented":true,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"7652:12:40","nodeType":"FunctionDefinition","overrides":{"id":14319,"nodeType":"OverrideSpecifier","overrides":[],"src":"7703:8:40"},"parameters":{"id":14318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14317,"mutability":"mutable","name":"account_","nameLocation":"7673:8:40","nodeType":"VariableDeclaration","scope":14333,"src":"7665:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14316,"name":"address","nodeType":"ElementaryTypeName","src":"7665:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7664:18:40"},"returnParameters":{"id":14322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14333,"src":"7721:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14320,"name":"bool","nodeType":"ElementaryTypeName","src":"7721:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7720:6:40"},"scope":14722,"src":"7643:154:40","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[15565],"body":{"id":14350,"nodeType":"Block","src":"8199:72:40","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14343,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14336,"src":"8226:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14342,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14409,14431],"referencedDeclaration":14409,"src":"8216:9:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8216:17:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":14345,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13765,"src":"8236:20:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14347,"indexExpression":{"id":14346,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14336,"src":"8257:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8236:28:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8216:48:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14341,"id":14349,"nodeType":"Return","src":"8209:55:40"}]},"documentation":{"id":14334,"nodeType":"StructuredDocumentation","src":"7803:311:40","text":"@inheritdoc Budget\n @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets\n @dev This is simply the sum of the current balance and the distributed amount"},"functionSelector":"d2514e84","id":14351,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"8128:5:40","nodeType":"FunctionDefinition","overrides":{"id":14338,"nodeType":"OverrideSpecifier","overrides":[],"src":"8172:8:40"},"parameters":{"id":14337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14336,"mutability":"mutable","name":"asset_","nameLocation":"8142:6:40","nodeType":"VariableDeclaration","scope":14351,"src":"8134:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14335,"name":"address","nodeType":"ElementaryTypeName","src":"8134:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8133:16:40"},"returnParameters":{"id":14341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14340,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14351,"src":"8190:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14339,"name":"uint256","nodeType":"ElementaryTypeName","src":"8190:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8189:9:40"},"scope":14722,"src":"8119:152:40","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":14378,"nodeType":"Block","src":"8621:115:40","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":14367,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8673:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":14366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8665:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14365,"name":"address","nodeType":"ElementaryTypeName","src":"8665:7:40","typeDescriptions":{}}},"id":14368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8665:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14369,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"8680:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14362,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14354,"src":"8647:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14361,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"8638:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}},"id":14363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8638:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":14364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8655:9:40","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1114,"src":"8638:26:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8638:51:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"baseExpression":{"id":14371,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13772,"src":"8692:19:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14373,"indexExpression":{"id":14372,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14354,"src":"8712:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8692:27:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14375,"indexExpression":{"id":14374,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14356,"src":"8720:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8692:37:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8638:91:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14360,"id":14377,"nodeType":"Return","src":"8631:98:40"}]},"documentation":{"id":14352,"nodeType":"StructuredDocumentation","src":"8277:250:40","text":"@notice Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The total amount of assets"},"functionSelector":"f9a802c3","id":14379,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"8541:5:40","nodeType":"FunctionDefinition","parameters":{"id":14357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14354,"mutability":"mutable","name":"asset_","nameLocation":"8555:6:40","nodeType":"VariableDeclaration","scope":14379,"src":"8547:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14353,"name":"address","nodeType":"ElementaryTypeName","src":"8547:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14356,"mutability":"mutable","name":"tokenId_","nameLocation":"8571:8:40","nodeType":"VariableDeclaration","scope":14379,"src":"8563:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14355,"name":"uint256","nodeType":"ElementaryTypeName","src":"8563:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8546:34:40"},"returnParameters":{"id":14360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14379,"src":"8612:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14358,"name":"uint256","nodeType":"ElementaryTypeName","src":"8612:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8611:9:40"},"scope":14722,"src":"8532:204:40","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[15573],"body":{"id":14408,"nodeType":"Block","src":"9225:102:40","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14388,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14382,"src":"9242:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9260:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9252:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14389,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:40","typeDescriptions":{}}},"id":14392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9252:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9242:20:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":14403,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9314:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":14402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9306:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14401,"name":"address","nodeType":"ElementaryTypeName","src":"9306:7:40","typeDescriptions":{}}},"id":14404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9306:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14399,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14382,"src":"9289:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9296:9:40","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"9289:16:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":14405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9289:31:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9242:78:40","trueExpression":{"expression":{"arguments":[{"id":14396,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9273:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":14395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9265:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14394,"name":"address","nodeType":"ElementaryTypeName","src":"9265:7:40","typeDescriptions":{}}},"id":14397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9265:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9279:7:40","memberName":"balance","nodeType":"MemberAccess","src":"9265:21:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14387,"id":14407,"nodeType":"Return","src":"9235:85:40"}]},"documentation":{"id":14380,"nodeType":"StructuredDocumentation","src":"8742:396:40","text":"@inheritdoc Budget\n @notice Get the amount of assets available for distribution from the budget\n @param asset_ The address of the asset (or the zero address for native assets)\n @return The amount of assets available\n @dev This is simply the current balance held by the budget\n @dev If the zero address is passed, this function will return the native balance"},"functionSelector":"10098ad5","id":14409,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"9152:9:40","nodeType":"FunctionDefinition","overrides":{"id":14384,"nodeType":"OverrideSpecifier","overrides":[],"src":"9198:8:40"},"parameters":{"id":14383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14382,"mutability":"mutable","name":"asset_","nameLocation":"9170:6:40","nodeType":"VariableDeclaration","scope":14409,"src":"9162:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14381,"name":"address","nodeType":"ElementaryTypeName","src":"9162:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9161:16:40"},"returnParameters":{"id":14387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14409,"src":"9216:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14385,"name":"uint256","nodeType":"ElementaryTypeName","src":"9216:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9215:9:40"},"scope":14722,"src":"9143:184:40","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":14430,"nodeType":"Block","src":"9654:75:40","statements":[{"expression":{"arguments":[{"arguments":[{"id":14425,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9706:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":14424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9698:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14423,"name":"address","nodeType":"ElementaryTypeName","src":"9698:7:40","typeDescriptions":{}}},"id":14426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9698:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14427,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14414,"src":"9713:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":14420,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14412,"src":"9680:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14419,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"9671:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}},"id":14421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9671:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":14422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9688:9:40","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1114,"src":"9671:26:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9671:51:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14418,"id":14429,"nodeType":"Return","src":"9664:58:40"}]},"documentation":{"id":14410,"nodeType":"StructuredDocumentation","src":"9333:225:40","text":"@notice Get the amount of ERC1155 assets available for distribution from the budget\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The amount of assets available"},"functionSelector":"f8724aba","id":14431,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"9572:9:40","nodeType":"FunctionDefinition","parameters":{"id":14415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14412,"mutability":"mutable","name":"asset_","nameLocation":"9590:6:40","nodeType":"VariableDeclaration","scope":14431,"src":"9582:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14411,"name":"address","nodeType":"ElementaryTypeName","src":"9582:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14414,"mutability":"mutable","name":"tokenId_","nameLocation":"9606:8:40","nodeType":"VariableDeclaration","scope":14431,"src":"9598:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14413,"name":"uint256","nodeType":"ElementaryTypeName","src":"9598:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9581:34:40"},"returnParameters":{"id":14418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14431,"src":"9645:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14416,"name":"uint256","nodeType":"ElementaryTypeName","src":"9645:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9644:9:40"},"scope":14722,"src":"9563:166:40","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[15581],"body":{"id":14444,"nodeType":"Block","src":"10028:52:40","statements":[{"expression":{"baseExpression":{"id":14440,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13765,"src":"10045:20:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14442,"indexExpression":{"id":14441,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14434,"src":"10066:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10045:28:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14439,"id":14443,"nodeType":"Return","src":"10038:35:40"}]},"documentation":{"id":14432,"nodeType":"StructuredDocumentation","src":"9735:202:40","text":"@inheritdoc Budget\n @notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":14445,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"9951:11:40","nodeType":"FunctionDefinition","overrides":{"id":14436,"nodeType":"OverrideSpecifier","overrides":[],"src":"10001:8:40"},"parameters":{"id":14435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14434,"mutability":"mutable","name":"asset_","nameLocation":"9971:6:40","nodeType":"VariableDeclaration","scope":14445,"src":"9963:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14433,"name":"address","nodeType":"ElementaryTypeName","src":"9963:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9962:16:40"},"returnParameters":{"id":14439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14445,"src":"10019:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14437,"name":"uint256","nodeType":"ElementaryTypeName","src":"10019:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10018:9:40"},"scope":14722,"src":"9942:138:40","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":14461,"nodeType":"Block","src":"10413:61:40","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":14455,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13772,"src":"10430:19:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14457,"indexExpression":{"id":14456,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14448,"src":"10450:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10430:27:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14459,"indexExpression":{"id":14458,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14450,"src":"10458:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10430:37:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14454,"id":14460,"nodeType":"Return","src":"10423:44:40"}]},"documentation":{"id":14446,"nodeType":"StructuredDocumentation","src":"10086:227:40","text":"@notice Get the amount of ERC1155 assets that have been distributed from the budget\n @param asset_ The address of the asset\n @param tokenId_ The ID of the token\n @return The amount of assets distributed"},"functionSelector":"774c33ab","id":14462,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"10327:11:40","nodeType":"FunctionDefinition","parameters":{"id":14451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14448,"mutability":"mutable","name":"asset_","nameLocation":"10347:6:40","nodeType":"VariableDeclaration","scope":14462,"src":"10339:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14447,"name":"address","nodeType":"ElementaryTypeName","src":"10339:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14450,"mutability":"mutable","name":"tokenId_","nameLocation":"10363:8:40","nodeType":"VariableDeclaration","scope":14462,"src":"10355:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14449,"name":"uint256","nodeType":"ElementaryTypeName","src":"10355:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10338:34:40"},"returnParameters":{"id":14454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14462,"src":"10404:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14452,"name":"uint256","nodeType":"ElementaryTypeName","src":"10404:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10403:9:40"},"scope":14722,"src":"10318:156:40","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[15589],"body":{"id":14473,"nodeType":"Block","src":"10657:25:40","statements":[{"expression":{"hexValue":"30","id":14471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10674:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14470,"id":14472,"nodeType":"Return","src":"10667:8:40"}]},"documentation":{"id":14463,"nodeType":"StructuredDocumentation","src":"10480:93:40","text":"@inheritdoc Budget\n @dev This is a no-op as there is no local balance to reconcile"},"functionSelector":"451cc191","id":14474,"implemented":true,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"10587:9:40","nodeType":"FunctionDefinition","overrides":{"id":14467,"nodeType":"OverrideSpecifier","overrides":[],"src":"10630:8:40"},"parameters":{"id":14466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14474,"src":"10597:14:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14464,"name":"bytes","nodeType":"ElementaryTypeName","src":"10597:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10596:16:40"},"returnParameters":{"id":14470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14474,"src":"10648:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14468,"name":"uint256","nodeType":"ElementaryTypeName","src":"10648:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10647:9:40"},"scope":14722,"src":"10578:104:40","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":14549,"nodeType":"Block","src":"11244:605:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14486,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"11337:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11352:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11344:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14487,"name":"address","nodeType":"ElementaryTypeName","src":"11344:7:40","typeDescriptions":{}}},"id":14490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11344:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11337:17:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14498,"nodeType":"IfStatement","src":"11333:66:40","trueBody":{"errorCall":{"arguments":[{"id":14493,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11378:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14494,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"11386:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14495,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"11391:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14492,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15514,"src":"11363:14:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,address,uint256) pure returns (error)"}},"id":14496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11363:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14497,"nodeType":"RevertStatement","src":"11356:43:40"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14499,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"11413:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":14501,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11433:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14500,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14409,14431],"referencedDeclaration":14409,"src":"11423:9:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11423:17:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11413:27:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14513,"nodeType":"IfStatement","src":"11409:118:40","trueBody":{"id":14512,"nodeType":"Block","src":"11442:85:40","statements":[{"errorCall":{"arguments":[{"id":14505,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11481:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14507,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11499:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14506,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14409,14431],"referencedDeclaration":14409,"src":"11489:9:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11489:17:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14509,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"11508:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14504,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"11463:17:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11463:53:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14511,"nodeType":"RevertStatement","src":"11456:60:40"}]}},{"expression":{"id":14518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14514,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13765,"src":"11537:20:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14516,"indexExpression":{"id":14515,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11558:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11537:28:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":14517,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"11569:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11537:39:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14519,"nodeType":"ExpressionStatement","src":"11537:39:40"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14520,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11638:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11656:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11648:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14521,"name":"address","nodeType":"ElementaryTypeName","src":"11648:7:40","typeDescriptions":{}}},"id":14524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11648:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11638:20:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14541,"nodeType":"Block","src":"11736:58:40","statements":[{"expression":{"arguments":[{"id":14537,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"11770:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14538,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"11775:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14534,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11750:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11757:12:40","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11205,"src":"11750:19:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":14539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14540,"nodeType":"ExpressionStatement","src":"11750:33:40"}]},"id":14542,"nodeType":"IfStatement","src":"11634:160:40","trueBody":{"id":14533,"nodeType":"Block","src":"11660:70:40","statements":[{"expression":{"arguments":[{"id":14529,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"11706:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14530,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"11711:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14526,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"11674:15:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$11358_$","typeString":"type(library SafeTransferLib)"}},"id":14528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11690:15:40","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"11674:31:40","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11674:45:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14532,"nodeType":"ExpressionStatement","src":"11674:45:40"}]}},{"eventCall":{"arguments":[{"id":14544,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14477,"src":"11821:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14545,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14479,"src":"11829:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14546,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14481,"src":"11834:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14543,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15489,"src":"11809:11:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11809:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14548,"nodeType":"EmitStatement","src":"11804:38:40"}]},"documentation":{"id":14475,"nodeType":"StructuredDocumentation","src":"10688:448:40","text":"@notice Transfer assets to the recipient\n @param asset_ The address of the asset\n @param to_ The address of the recipient\n @param amount_ The amount of the asset to transfer\n @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert"},"id":14550,"implemented":true,"kind":"function","modifiers":[{"id":14484,"kind":"modifierInvocation","modifierName":{"id":14483,"name":"nonReentrant","nameLocations":["11231:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":11017,"src":"11231:12:40"},"nodeType":"ModifierInvocation","src":"11231:12:40"}],"name":"_transferFungible","nameLocation":"11150:17:40","nodeType":"FunctionDefinition","parameters":{"id":14482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14477,"mutability":"mutable","name":"asset_","nameLocation":"11176:6:40","nodeType":"VariableDeclaration","scope":14550,"src":"11168:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14476,"name":"address","nodeType":"ElementaryTypeName","src":"11168:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14479,"mutability":"mutable","name":"to_","nameLocation":"11192:3:40","nodeType":"VariableDeclaration","scope":14550,"src":"11184:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14478,"name":"address","nodeType":"ElementaryTypeName","src":"11184:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14481,"mutability":"mutable","name":"amount_","nameLocation":"11205:7:40","nodeType":"VariableDeclaration","scope":14550,"src":"11197:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14480,"name":"uint256","nodeType":"ElementaryTypeName","src":"11197:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11167:46:40"},"returnParameters":{"id":14485,"nodeType":"ParameterList","parameters":[],"src":"11244:0:40"},"scope":14722,"src":"11141:708:40","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":14623,"nodeType":"Block","src":"12023:652:40","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14565,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"12116:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":14568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:40","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":14567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12123:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14566,"name":"address","nodeType":"ElementaryTypeName","src":"12123:7:40","typeDescriptions":{}}},"id":14569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12123:10:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12116:17:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14577,"nodeType":"IfStatement","src":"12112:66:40","trueBody":{"errorCall":{"arguments":[{"id":14572,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"12157:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14573,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"12165:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14574,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"12170:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14571,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15514,"src":"12142:14:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,address,uint256) pure returns (error)"}},"id":14575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12142:36:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14576,"nodeType":"RevertStatement","src":"12135:43:40"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14578,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"12192:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":14580,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"12212:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14581,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14556,"src":"12220:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14579,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14409,14431],"referencedDeclaration":14431,"src":"12202:9:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12202:27:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12192:37:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14594,"nodeType":"IfStatement","src":"12188:138:40","trueBody":{"id":14593,"nodeType":"Block","src":"12231:95:40","statements":[{"errorCall":{"arguments":[{"id":14585,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"12270:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14587,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"12288:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14588,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14556,"src":"12296:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14586,"name":"available","nodeType":"Identifier","overloadedDeclarations":[14409,14431],"referencedDeclaration":14431,"src":"12278:9:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12278:27:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14590,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"12307:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14584,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"12252:17:40","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12252:63:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14592,"nodeType":"RevertStatement","src":"12245:70:40"}]}},{"expression":{"id":14601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":14595,"name":"_distributedERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13772,"src":"12336:19:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$","typeString":"mapping(address => mapping(uint256 => uint256))"}},"id":14598,"indexExpression":{"id":14596,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"12356:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12336:27:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":14599,"indexExpression":{"id":14597,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14556,"src":"12364:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12336:37:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":14600,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"12377:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12336:48:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14602,"nodeType":"ExpressionStatement","src":"12336:48:40"},{"expression":{"arguments":[{"arguments":[{"id":14609,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12582:4:40","typeDescriptions":{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ASimpleBudget_$14722","typeString":"contract ASimpleBudget"}],"id":14608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12574:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14607,"name":"address","nodeType":"ElementaryTypeName","src":"12574:7:40","typeDescriptions":{}}},"id":14610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14611,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"12589:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14612,"name":"tokenId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14556,"src":"12594:8:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14613,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"12604:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14614,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14560,"src":"12613:5:40","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_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":14604,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"12549:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14603,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"12540:8:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155_$1176_$","typeString":"type(contract IERC1155)"}},"id":14605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12540:16:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":14606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12557:16:40","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1159,"src":"12540:33:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":14615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12540:79:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14616,"nodeType":"ExpressionStatement","src":"12540:79:40"},{"eventCall":{"arguments":[{"id":14618,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14552,"src":"12647:6:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14619,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"12655:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14620,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"12660:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14617,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15489,"src":"12635:11:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12635:33:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14622,"nodeType":"EmitStatement","src":"12630:38:40"}]},"id":14624,"implemented":true,"kind":"function","modifiers":[{"id":14563,"kind":"modifierInvocation","modifierName":{"id":14562,"name":"nonReentrant","nameLocations":["12006:12:40"],"nodeType":"IdentifierPath","referencedDeclaration":11017,"src":"12006:12:40"},"nodeType":"ModifierInvocation","src":"12006:12:40"}],"name":"_transferERC1155","nameLocation":"11864:16:40","nodeType":"FunctionDefinition","parameters":{"id":14561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14552,"mutability":"mutable","name":"asset_","nameLocation":"11889:6:40","nodeType":"VariableDeclaration","scope":14624,"src":"11881:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14551,"name":"address","nodeType":"ElementaryTypeName","src":"11881:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14554,"mutability":"mutable","name":"to_","nameLocation":"11905:3:40","nodeType":"VariableDeclaration","scope":14624,"src":"11897:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14553,"name":"address","nodeType":"ElementaryTypeName","src":"11897:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14556,"mutability":"mutable","name":"tokenId_","nameLocation":"11918:8:40","nodeType":"VariableDeclaration","scope":14624,"src":"11910:16:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14555,"name":"uint256","nodeType":"ElementaryTypeName","src":"11910:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14558,"mutability":"mutable","name":"amount_","nameLocation":"11936:7:40","nodeType":"VariableDeclaration","scope":14624,"src":"11928:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14557,"name":"uint256","nodeType":"ElementaryTypeName","src":"11928:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14560,"mutability":"mutable","name":"data_","nameLocation":"11958:5:40","nodeType":"VariableDeclaration","scope":14624,"src":"11945:18:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14559,"name":"bytes","nodeType":"ElementaryTypeName","src":"11945:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11880:84:40"},"returnParameters":{"id":14564,"nodeType":"ParameterList","parameters":[],"src":"12023:0:40"},"scope":14722,"src":"11855:820:40","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[1199],"body":{"id":14645,"nodeType":"Block","src":"13036:112:40","statements":[{"expression":{"expression":{"expression":{"id":14641,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"13098:16:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}},"id":14642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13115:17:40","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":1199,"src":"13098:34:40","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155Received(address,address,uint256,uint256,bytes calldata) returns (bytes4)"}},"id":14643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13133:8:40","memberName":"selector","nodeType":"MemberAccess","src":"13098:43:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":14640,"id":14644,"nodeType":"Return","src":"13091:50:40"}]},"documentation":{"id":14625,"nodeType":"StructuredDocumentation","src":"12681:195:40","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)"},"functionSelector":"f23a6e61","id":14646,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"12890:17:40","nodeType":"FunctionDefinition","overrides":{"id":14637,"nodeType":"OverrideSpecifier","overrides":[],"src":"12998:8:40"},"parameters":{"id":14636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14627,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14646,"src":"12908:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14626,"name":"address","nodeType":"ElementaryTypeName","src":"12908:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14646,"src":"12917:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14628,"name":"address","nodeType":"ElementaryTypeName","src":"12917:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14646,"src":"12926:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14630,"name":"uint256","nodeType":"ElementaryTypeName","src":"12926:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14646,"src":"12935:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14632,"name":"uint256","nodeType":"ElementaryTypeName","src":"12935:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14635,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14646,"src":"12944:14:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14634,"name":"bytes","nodeType":"ElementaryTypeName","src":"12944:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12907:52:40"},"returnParameters":{"id":14640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14646,"src":"13024:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14638,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13024:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13023:8:40"},"scope":14722,"src":"12881:267:40","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1217],"body":{"id":14669,"nodeType":"Block","src":"13536:117:40","statements":[{"expression":{"expression":{"expression":{"id":14665,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"13598:16:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}},"id":14666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13615:22:40","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":1217,"src":"13598:39:40","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC1155Receiver.onERC1155BatchReceived(address,address,uint256[] calldata,uint256[] calldata,bytes calldata) returns (bytes4)"}},"id":14667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13638:8:40","memberName":"selector","nodeType":"MemberAccess","src":"13598:48:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":14664,"id":14668,"nodeType":"Return","src":"13591:55:40"}]},"documentation":{"id":14647,"nodeType":"StructuredDocumentation","src":"13154:195:40","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)"},"functionSelector":"bc197c81","id":14670,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"13363:22:40","nodeType":"FunctionDefinition","overrides":{"id":14661,"nodeType":"OverrideSpecifier","overrides":[],"src":"13498:8:40"},"parameters":{"id":14660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14670,"src":"13386:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14648,"name":"address","nodeType":"ElementaryTypeName","src":"13386:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14670,"src":"13395:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14650,"name":"address","nodeType":"ElementaryTypeName","src":"13395:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14670,"src":"13404:18:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14652,"name":"uint256","nodeType":"ElementaryTypeName","src":"13404:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14653,"nodeType":"ArrayTypeName","src":"13404:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14670,"src":"13424:18:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14655,"name":"uint256","nodeType":"ElementaryTypeName","src":"13424:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14656,"nodeType":"ArrayTypeName","src":"13424:9:40","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14670,"src":"13444:14:40","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14658,"name":"bytes","nodeType":"ElementaryTypeName","src":"13444:5:40","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13385:74:40"},"returnParameters":{"id":14664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14670,"src":"13524:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14662,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13524:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13523:8:40"},"scope":14722,"src":"13354:299:40","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[2842,15644],"body":{"id":14707,"nodeType":"Block","src":"13797:220:40","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14681,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14673,"src":"13814:11:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14683,"name":"ASimpleBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14722,"src":"13834:13:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASimpleBudget_$14722_$","typeString":"type(contract ASimpleBudget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASimpleBudget_$14722_$","typeString":"type(contract ASimpleBudget)"}],"id":14682,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13829:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13829:19:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASimpleBudget_$14722","typeString":"type(contract ASimpleBudget)"}},"id":14685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13849:11:40","memberName":"interfaceId","nodeType":"MemberAccess","src":"13829:31:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"13814:46:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14687,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14673,"src":"13864:11:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14689,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"13884:16:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}],"id":14688,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13879:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13879:22:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$1218","typeString":"type(contract IERC1155Receiver)"}},"id":14691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13902:11:40","memberName":"interfaceId","nodeType":"MemberAccess","src":"13879:34:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"13864:49:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13814:99:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":14699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14694,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14673,"src":"13929:11:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":14696,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"13949:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$2843_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$2843_$","typeString":"type(contract IERC165)"}],"id":14695,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"13944:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13944:13:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$2843","typeString":"type(contract IERC165)"}},"id":14698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13958:11:40","memberName":"interfaceId","nodeType":"MemberAccess","src":"13944:25:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"13929:40:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13814:155:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":14703,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14673,"src":"13998:11:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":14701,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"13973:6:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":14702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13980:17:40","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":15644,"src":"13973:24:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":14704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13973:37:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13814:196:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14680,"id":14706,"nodeType":"Return","src":"13807:203:40"}]},"documentation":{"id":14671,"nodeType":"StructuredDocumentation","src":"13659:25:40","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":14708,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"13698:17:40","nodeType":"FunctionDefinition","overrides":{"id":14677,"nodeType":"OverrideSpecifier","overrides":[{"id":14675,"name":"Budget","nameLocations":["13765:6:40"],"nodeType":"IdentifierPath","referencedDeclaration":15659,"src":"13765:6:40"},{"id":14676,"name":"IERC165","nameLocations":["13773:7:40"],"nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"13773:7:40"}],"src":"13756:25:40"},"parameters":{"id":14674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14673,"mutability":"mutable","name":"interfaceId","nameLocation":"13723:11:40","nodeType":"VariableDeclaration","scope":14708,"src":"13716:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14672,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13716:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13715:20:40"},"returnParameters":{"id":14680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14708,"src":"13791:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14678,"name":"bool","nodeType":"ElementaryTypeName","src":"13791:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13790:6:40"},"scope":14722,"src":"13689:328:40","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[15621],"body":{"id":14720,"nodeType":"Block","src":"14132:55:40","statements":[{"expression":{"expression":{"arguments":[{"id":14716,"name":"ASimpleBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14722,"src":"14154:13:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASimpleBudget_$14722_$","typeString":"type(contract ASimpleBudget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASimpleBudget_$14722_$","typeString":"type(contract ASimpleBudget)"}],"id":14715,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14149:4:40","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14149:19:40","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASimpleBudget_$14722","typeString":"type(contract ASimpleBudget)"}},"id":14718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14169:11:40","memberName":"interfaceId","nodeType":"MemberAccess","src":"14149:31:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":14714,"id":14719,"nodeType":"Return","src":"14142:38:40"}]},"documentation":{"id":14709,"nodeType":"StructuredDocumentation","src":"14023:25:40","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":14721,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"14062:21:40","nodeType":"FunctionDefinition","overrides":{"id":14711,"nodeType":"OverrideSpecifier","overrides":[],"src":"14106:8:40"},"parameters":{"id":14710,"nodeType":"ParameterList","parameters":[],"src":"14083:2:40"},"returnParameters":{"id":14714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14721,"src":"14124:6:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14712,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14124:6:40","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14123:8:40"},"scope":14722,"src":"14053:134:40","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":14723,"src":"838:13351:40","usedErrors":[6221,6224,6227,6230,9103,9106,11006,15496,15505,15514,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,15480,15489]}],"src":"36:14154:40"},"id":40},"contracts/budgets/AVestingBudget.sol":{"ast":{"absolutePath":"contracts/budgets/AVestingBudget.sol","exportedSymbols":{"AVestingBudget":[15424],"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"IERC1155":[1176],"IERC1155Receiver":[1218],"IERC165":[2843],"ReentrancyGuard":[11024],"SafeTransferLib":[11358]},"id":15425,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":14724,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:41"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":14726,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":1219,"src":"62:92:41","symbolAliases":[{"foreign":{"id":14725,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"70:16:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":14728,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":1177,"src":"155:76:41","symbolAliases":[{"foreign":{"id":14727,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"163:8:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":14730,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":2844,"src":"232:80:41","symbolAliases":[{"foreign":{"id":14729,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"240:7:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":14732,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":11359,"src":"314:66:41","symbolAliases":[{"foreign":{"id":14731,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"322:15:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":14734,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":11025,"src":"381:66:41","symbolAliases":[{"foreign":{"id":14733,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11024,"src":"389:15:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":14736,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":18344,"src":"449:59:41","symbolAliases":[{"foreign":{"id":14735,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"457:10:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":14738,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":15660,"src":"509:52:41","symbolAliases":[{"foreign":{"id":14737,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"517:6:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":14740,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15425,"sourceUnit":18510,"src":"562:57:41","symbolAliases":[{"foreign":{"id":14739,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"570:9:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":14742,"name":"Budget","nameLocations":["1829:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":15659,"src":"1829:6:41"},"id":14743,"nodeType":"InheritanceSpecifier","src":"1829:6:41"},{"baseName":{"id":14744,"name":"ReentrancyGuard","nameLocations":["1837:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":11024,"src":"1837:15:41"},"id":14745,"nodeType":"InheritanceSpecifier","src":"1837:15:41"}],"canonicalName":"AVestingBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":14741,"nodeType":"StructuredDocumentation","src":"621:1172:41","text":"@title Vesting Budget\n @notice A vesting-based budget implementation that allows for the distribution of assets over time\n @dev Take note of the following when making use of this budget type:\n - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule."},"fullyImplemented":true,"id":15424,"linearizedBaseContracts":[15424,11024,15659,6215,18509,2831,2843,9211,6409],"name":"AVestingBudget","nameLocation":"1811:14:41","nodeType":"ContractDefinition","nodes":[{"global":false,"id":14748,"libraryName":{"id":14746,"name":"SafeTransferLib","nameLocations":["1865:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"1865:15:41"},"nodeType":"UsingForDirective","src":"1859:34:41","typeName":{"id":14747,"name":"address","nodeType":"ElementaryTypeName","src":"1885:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":14749,"nodeType":"StructuredDocumentation","src":"1899:76:41","text":"@dev The total amount of each fungible asset distributed from the budget"},"id":14753,"mutability":"mutable","name":"_distributedFungible","nameLocation":"2016:20:41","nodeType":"VariableDeclaration","scope":15424,"src":"1980:56:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":14752,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":14750,"name":"address","nodeType":"ElementaryTypeName","src":"1988:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1980:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":14751,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"documentation":{"id":14754,"nodeType":"StructuredDocumentation","src":"2043:44:41","text":"@dev The mapping of authorized addresses"},"id":14758,"mutability":"mutable","name":"_isAuthorized","nameLocation":"2126:13:41","nodeType":"VariableDeclaration","scope":15424,"src":"2092:47:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":14757,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":14755,"name":"address","nodeType":"ElementaryTypeName","src":"2100:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2092:24:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":14756,"name":"bool","nodeType":"ElementaryTypeName","src":"2111:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"documentation":{"id":14759,"nodeType":"StructuredDocumentation","src":"2146:62:41","text":"@notice The timestamp at which the vesting schedule begins"},"functionSelector":"be9a6555","id":14761,"mutability":"mutable","name":"start","nameLocation":"2227:5:41","nodeType":"VariableDeclaration","scope":15424,"src":"2213:19:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14760,"name":"uint64","nodeType":"ElementaryTypeName","src":"2213:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"constant":false,"documentation":{"id":14762,"nodeType":"StructuredDocumentation","src":"2239:61:41","text":"@notice The duration of the vesting schedule (in seconds)"},"functionSelector":"0fb5a6b4","id":14764,"mutability":"mutable","name":"duration","nameLocation":"2319:8:41","nodeType":"VariableDeclaration","scope":15424,"src":"2305:22:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14763,"name":"uint64","nodeType":"ElementaryTypeName","src":"2305:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"constant":false,"documentation":{"id":14765,"nodeType":"StructuredDocumentation","src":"2334:57:41","text":"@notice The duration of the cliff period (in seconds)"},"functionSelector":"13d033c0","id":14767,"mutability":"mutable","name":"cliff","nameLocation":"2410:5:41","nodeType":"VariableDeclaration","scope":15424,"src":"2396:19:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":14766,"name":"uint64","nodeType":"ElementaryTypeName","src":"2396:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"body":{"id":14780,"nodeType":"Block","src":"2534:80:41","statements":[{"condition":{"id":14774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2548:25:41","subExpression":{"arguments":[{"expression":{"id":14771,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2562:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2566:6:41","memberName":"sender","nodeType":"MemberAccess","src":"2562:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14770,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15133,"src":"2549:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":14773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2549:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14778,"nodeType":"IfStatement","src":"2544:52:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14775,"name":"Unauthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6221,"src":"2582:12:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2582:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14777,"nodeType":"RevertStatement","src":"2575:21:41"}},{"id":14779,"nodeType":"PlaceholderStatement","src":"2606:1:41"}]},"documentation":{"id":14768,"nodeType":"StructuredDocumentation","src":"2422:81:41","text":"@notice A modifier that allows only authorized addresses to call the function"},"id":14781,"name":"onlyAuthorized","nameLocation":"2517:14:41","nodeType":"ModifierDefinition","parameters":{"id":14769,"nodeType":"ParameterList","parameters":[],"src":"2531:2:41"},"src":"2508:106:41","virtual":false,"visibility":"internal"},{"baseFunctions":[18474],"body":{"id":14791,"nodeType":"Block","src":"2813:41:41","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":14788,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"2830:15:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":14789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2830:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14790,"nodeType":"RevertStatement","src":"2823:24:41"}]},"documentation":{"id":14782,"nodeType":"StructuredDocumentation","src":"2620:122:41","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":14792,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2756:10:41","nodeType":"FunctionDefinition","overrides":{"id":14786,"nodeType":"OverrideSpecifier","overrides":[],"src":"2804:8:41"},"parameters":{"id":14785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14784,"mutability":"mutable","name":"data_","nameLocation":"2782:5:41","nodeType":"VariableDeclaration","scope":14792,"src":"2767:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14783,"name":"bytes","nodeType":"ElementaryTypeName","src":"2767:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2766:22:41"},"returnParameters":{"id":14787,"nodeType":"ParameterList","parameters":[],"src":"2813:0:41"},"scope":15424,"src":"2747:107:41","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[15532],"body":{"id":14901,"nodeType":"Block","src":"3296:1008:41","statements":[{"assignments":[14803],"declarations":[{"constant":false,"id":14803,"mutability":"mutable","name":"request","nameLocation":"3322:7:41","nodeType":"VariableDeclaration","scope":14901,"src":"3306:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14802,"nodeType":"UserDefinedTypeName","pathNode":{"id":14801,"name":"Transfer","nameLocations":["3306:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":15461,"src":"3306:8:41"},"referencedDeclaration":15461,"src":"3306:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14810,"initialValue":{"arguments":[{"id":14806,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14795,"src":"3343:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14807,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"3351:8:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14808,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3350:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3332:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3336:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3332:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3332:29:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"3306:55:41"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14811,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"3375:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3383:9:41","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"3375:17:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14813,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"3396:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3406:3:41","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"3396:13:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"3375:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14842,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"3731:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3739:9:41","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"3731:17:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14844,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"3752:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3762:5:41","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"3752:15:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"3731:36:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14896,"nodeType":"Block","src":"4201:75:41","statements":[{"expression":{"hexValue":"66616c7365","id":14894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4260:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14800,"id":14895,"nodeType":"Return","src":"4253:12:41"}]},"id":14897,"nodeType":"IfStatement","src":"3727:549:41","trueBody":{"id":14893,"nodeType":"Block","src":"3769:426:41","statements":[{"assignments":[14849],"declarations":[{"constant":false,"id":14849,"mutability":"mutable","name":"payload","nameLocation":"3806:7:41","nodeType":"VariableDeclaration","scope":14893,"src":"3783:30:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14848,"nodeType":"UserDefinedTypeName","pathNode":{"id":14847,"name":"FungiblePayload","nameLocations":["3783:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"3783:15:41"},"referencedDeclaration":15465,"src":"3783:15:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14857,"initialValue":{"arguments":[{"expression":{"id":14852,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"3827:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3835:4:41","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"3827:12:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14854,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"3842:15:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14855,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3841:17:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3816:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3820:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3816:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3816:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3783:76:41"},{"expression":{"arguments":[{"expression":{"id":14863,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"3976:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14864,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3984:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"3976:14:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":14867,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4000:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}],"id":14866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3992:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14865,"name":"address","nodeType":"ElementaryTypeName","src":"3992:7:41","typeDescriptions":{}}},"id":14868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3992:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14869,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14849,"src":"4007:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4015:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"4007:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":14858,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"3945:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3953:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"3945:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3959:16:41","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":11163,"src":"3945:30:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":14871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3945:77:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14872,"nodeType":"ExpressionStatement","src":"3945:77:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":14878,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4072:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}],"id":14877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4064:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14876,"name":"address","nodeType":"ElementaryTypeName","src":"4064:7:41","typeDescriptions":{}}},"id":14879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4064:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":14873,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"4040:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4048:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"4040:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4054:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"4040:23:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":14880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:38:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":14881,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14849,"src":"4081:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4089:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"4081:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4040:55:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14892,"nodeType":"IfStatement","src":"4036:149:41","trueBody":{"id":14891,"nodeType":"Block","src":"4097:88:41","statements":[{"errorCall":{"arguments":[{"expression":{"id":14885,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"4140:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4148:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"4140:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14887,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14849,"src":"4155:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4163:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"4155:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14884,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15496,"src":"4122:17:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":14889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4122:48:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14890,"nodeType":"RevertStatement","src":"4115:55:41"}]}}]}},"id":14898,"nodeType":"IfStatement","src":"3371:905:41","trueBody":{"id":14841,"nodeType":"Block","src":"3411:310:41","statements":[{"assignments":[14818],"declarations":[{"constant":false,"id":14818,"mutability":"mutable","name":"payload","nameLocation":"3448:7:41","nodeType":"VariableDeclaration","scope":14841,"src":"3425:30:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14817,"nodeType":"UserDefinedTypeName","pathNode":{"id":14816,"name":"FungiblePayload","nameLocations":["3425:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"3425:15:41"},"referencedDeclaration":15465,"src":"3425:15:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14826,"initialValue":{"arguments":[{"expression":{"id":14821,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"3469:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3477:4:41","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"3469:12:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14823,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"3484:15:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14824,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3483:17:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14819,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3458:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3462:6:41","memberName":"decode","nodeType":"MemberAccess","src":"3458:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3458:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3425:76:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14827,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3594:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3598:5:41","memberName":"value","nodeType":"MemberAccess","src":"3594:9:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":14829,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14818,"src":"3607:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14830,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3615:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"3607:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3594:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14840,"nodeType":"IfStatement","src":"3590:121:41","trueBody":{"id":14839,"nodeType":"Block","src":"3623:88:41","statements":[{"errorCall":{"arguments":[{"expression":{"id":14833,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14803,"src":"3666:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3674:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"3666:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14835,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14818,"src":"3681:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3689:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"3681:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14832,"name":"InvalidAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15496,"src":"3648:17:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256) pure returns (error)"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3648:48:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":14838,"nodeType":"RevertStatement","src":"3641:55:41"}]}}]}},{"expression":{"hexValue":"74727565","id":14899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4293:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14800,"id":14900,"nodeType":"Return","src":"4286:11:41"}]},"documentation":{"id":14793,"nodeType":"StructuredDocumentation","src":"2860:342:41","text":"@inheritdoc Budget\n @notice Allocates assets to the budget\n @param data_ The packed data for the {Transfer} request\n @return True if the allocation was successful\n @dev The caller must have already approved the contract to transfer the asset\n @dev If the asset transfer fails, the allocation will revert"},"functionSelector":"5aef467a","id":14902,"implemented":true,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"3216:8:41","nodeType":"FunctionDefinition","overrides":{"id":14797,"nodeType":"OverrideSpecifier","overrides":[],"src":"3272:8:41"},"parameters":{"id":14796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14795,"mutability":"mutable","name":"data_","nameLocation":"3240:5:41","nodeType":"VariableDeclaration","scope":14902,"src":"3225:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14794,"name":"bytes","nodeType":"ElementaryTypeName","src":"3225:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3224:22:41"},"returnParameters":{"id":14800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14902,"src":"3290:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14798,"name":"bool","nodeType":"ElementaryTypeName","src":"3290:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3289:6:41"},"scope":15424,"src":"3207:1097:41","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[15540],"body":{"id":14970,"nodeType":"Block","src":"4901:484:41","statements":[{"assignments":[14915],"declarations":[{"constant":false,"id":14915,"mutability":"mutable","name":"request","nameLocation":"4927:7:41","nodeType":"VariableDeclaration","scope":14970,"src":"4911:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14914,"nodeType":"UserDefinedTypeName","pathNode":{"id":14913,"name":"Transfer","nameLocations":["4911:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":15461,"src":"4911:8:41"},"referencedDeclaration":15461,"src":"4911:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14922,"initialValue":{"arguments":[{"id":14918,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"4948:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14919,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"4956:8:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14920,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4955:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14916,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4937:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4941:6:41","memberName":"decode","nodeType":"MemberAccess","src":"4937:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4937:29:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"4911:55:41"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14923,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14915,"src":"4980:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4988:9:41","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"4980:17:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14925,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"5001:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5011:3:41","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"5001:13:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"4980:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14928,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14915,"src":"5018:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5026:9:41","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5018:17:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14930,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"5039:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5049:5:41","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"5039:15:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"5018:36:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4980:74:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14966,"nodeType":"Block","src":"5320:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":14964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5341:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14912,"id":14965,"nodeType":"Return","src":"5334:12:41"}]},"id":14967,"nodeType":"IfStatement","src":"4976:381:41","trueBody":{"id":14963,"nodeType":"Block","src":"5056:258:41","statements":[{"assignments":[14936],"declarations":[{"constant":false,"id":14936,"mutability":"mutable","name":"payload","nameLocation":"5093:7:41","nodeType":"VariableDeclaration","scope":14963,"src":"5070:30:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":14935,"nodeType":"UserDefinedTypeName","pathNode":{"id":14934,"name":"FungiblePayload","nameLocations":["5070:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"5070:15:41"},"referencedDeclaration":15465,"src":"5070:15:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":14944,"initialValue":{"arguments":[{"expression":{"id":14939,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14915,"src":"5114:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5122:4:41","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"5114:12:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":14941,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"5129:15:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":14942,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5128:17:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":14937,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5103:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5107:6:41","memberName":"decode","nodeType":"MemberAccess","src":"5103:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5103:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5070:76:41"},{"expression":{"arguments":[{"expression":{"id":14946,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14915,"src":"5195:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5203:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"5195:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":14948,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14915,"src":"5210:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5218:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"5210:14:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14950,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14936,"src":"5226:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5234:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"5226:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5244:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5226:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":14958,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14936,"src":"5275:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":14959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5283:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"5275:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5226:63:41","trueExpression":{"arguments":[{"expression":{"id":14955,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14915,"src":"5258:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5266:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"5258:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14954,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15205,"src":"5248:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5248:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14945,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15307,"src":"5160:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":14961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5160:143:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14962,"nodeType":"ExpressionStatement","src":"5160:143:41"}]}},{"expression":{"hexValue":"74727565","id":14968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5374:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14912,"id":14969,"nodeType":"Return","src":"5367:11:41"}]},"documentation":{"id":14903,"nodeType":"StructuredDocumentation","src":"4310:496:41","text":"@inheritdoc Budget\n @notice Reclaims assets from the budget\n @param data_ The packed {Transfer} request\n @return True if the request was successful\n @dev Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting schedule\n @dev If the amount is zero, the entire available balance of the asset will be transferred to the receiver\n @dev If the asset transfer fails for any reason, the function will revert"},"functionSelector":"f1c30ec0","id":14971,"implemented":true,"kind":"function","modifiers":[{"id":14909,"kind":"modifierInvocation","modifierName":{"id":14908,"name":"onlyOwner","nameLocations":["4876:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"4876:9:41"},"nodeType":"ModifierInvocation","src":"4876:9:41"}],"name":"reclaim","nameLocation":"4820:7:41","nodeType":"FunctionDefinition","overrides":{"id":14907,"nodeType":"OverrideSpecifier","overrides":[],"src":"4867:8:41"},"parameters":{"id":14906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14905,"mutability":"mutable","name":"data_","nameLocation":"4843:5:41","nodeType":"VariableDeclaration","scope":14971,"src":"4828:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14904,"name":"bytes","nodeType":"ElementaryTypeName","src":"4828:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4827:22:41"},"returnParameters":{"id":14912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14971,"src":"4895:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14910,"name":"bool","nodeType":"ElementaryTypeName","src":"4895:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4894:6:41"},"scope":15424,"src":"4811:574:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[15548],"body":{"id":15030,"nodeType":"Block","src":"5770:405:41","statements":[{"assignments":[14984],"declarations":[{"constant":false,"id":14984,"mutability":"mutable","name":"request","nameLocation":"5796:7:41","nodeType":"VariableDeclaration","scope":15030,"src":"5780:23:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer"},"typeName":{"id":14983,"nodeType":"UserDefinedTypeName","pathNode":{"id":14982,"name":"Transfer","nameLocations":["5780:8:41"],"nodeType":"IdentifierPath","referencedDeclaration":15461,"src":"5780:8:41"},"referencedDeclaration":15461,"src":"5780:8:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_storage_ptr","typeString":"struct Budget.Transfer"}},"visibility":"internal"}],"id":14991,"initialValue":{"arguments":[{"id":14987,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14974,"src":"5817:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":14988,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"5825:8:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"id":14989,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5824:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}],"expression":{"id":14985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5806:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5810:6:41","memberName":"decode","nodeType":"MemberAccess","src":"5806:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":14990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5806:29:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"nodeType":"VariableDeclarationStatement","src":"5780:55:41"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":14996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14992,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14984,"src":"5849:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5857:9:41","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5849:17:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14994,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"5870:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":14995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5880:5:41","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"5870:15:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"5849:36:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"id":15001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14997,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14984,"src":"5889:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":14998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5897:9:41","memberName":"assetType","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5889:17:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14999,"name":"AssetType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"5910:9:41","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":15000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5920:3:41","memberName":"ETH","nodeType":"MemberAccess","referencedDeclaration":15447,"src":"5910:13:41","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"src":"5889:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5849:74:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15026,"nodeType":"Block","src":"6110:37:41","statements":[{"expression":{"hexValue":"66616c7365","id":15024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6131:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14981,"id":15025,"nodeType":"Return","src":"6124:12:41"}]},"id":15027,"nodeType":"IfStatement","src":"5845:302:41","trueBody":{"id":15023,"nodeType":"Block","src":"5925:179:41","statements":[{"assignments":[15005],"declarations":[{"constant":false,"id":15005,"mutability":"mutable","name":"payload","nameLocation":"5962:7:41","nodeType":"VariableDeclaration","scope":15023,"src":"5939:30:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload"},"typeName":{"id":15004,"nodeType":"UserDefinedTypeName","pathNode":{"id":15003,"name":"FungiblePayload","nameLocations":["5939:15:41"],"nodeType":"IdentifierPath","referencedDeclaration":15465,"src":"5939:15:41"},"referencedDeclaration":15465,"src":"5939:15:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_storage_ptr","typeString":"struct Budget.FungiblePayload"}},"visibility":"internal"}],"id":15013,"initialValue":{"arguments":[{"expression":{"id":15008,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14984,"src":"5983:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5991:4:41","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":15460,"src":"5983:12:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":15010,"name":"FungiblePayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15465,"src":"5998:15:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"id":15011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5997:17:41","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}],"expression":{"id":15006,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5972:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5976:6:41","memberName":"decode","nodeType":"MemberAccess","src":"5972:10:41","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5972:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"nodeType":"VariableDeclarationStatement","src":"5939:76:41"},{"expression":{"arguments":[{"expression":{"id":15015,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14984,"src":"6047:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6055:5:41","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":15456,"src":"6047:13:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15017,"name":"request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14984,"src":"6062:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}},"id":15018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6070:6:41","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":15458,"src":"6062:14:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15019,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"6078:7:41","typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}},"id":15020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6086:6:41","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":15464,"src":"6078:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15014,"name":"_transferFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15307,"src":"6029:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":15021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6029:64:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15022,"nodeType":"ExpressionStatement","src":"6029:64:41"}]}},{"expression":{"hexValue":"74727565","id":15028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6164:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14981,"id":15029,"nodeType":"Return","src":"6157:11:41"}]},"documentation":{"id":14972,"nodeType":"StructuredDocumentation","src":"5391:280:41","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to a single recipient\n @param data_ The packed {Transfer} request\n @return True if the disbursement was successful\n @dev The maximum amount that can be disbursed is the {available} amount"},"functionSelector":"fa4ca9b1","id":15031,"implemented":true,"kind":"function","modifiers":[{"id":14978,"kind":"modifierInvocation","modifierName":{"id":14977,"name":"onlyAuthorized","nameLocations":["5740:14:41"],"nodeType":"IdentifierPath","referencedDeclaration":14781,"src":"5740:14:41"},"nodeType":"ModifierInvocation","src":"5740:14:41"}],"name":"disburse","nameLocation":"5685:8:41","nodeType":"FunctionDefinition","overrides":{"id":14976,"nodeType":"OverrideSpecifier","overrides":[],"src":"5731:8:41"},"parameters":{"id":14975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14974,"mutability":"mutable","name":"data_","nameLocation":"5709:5:41","nodeType":"VariableDeclaration","scope":15031,"src":"5694:20:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14973,"name":"bytes","nodeType":"ElementaryTypeName","src":"5694:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5693:22:41"},"returnParameters":{"id":14981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15031,"src":"5764:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14979,"name":"bool","nodeType":"ElementaryTypeName","src":"5764:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5763:6:41"},"scope":15424,"src":"5676:499:41","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[15557],"body":{"id":15065,"nodeType":"Block","src":"6487:143:41","statements":[{"body":{"id":15061,"nodeType":"Block","src":"6540:62:41","statements":[{"condition":{"id":15057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6558:19:41","subExpression":{"arguments":[{"baseExpression":{"id":15053,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"6568:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15055,"indexExpression":{"id":15054,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"6574:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6568:8:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":15052,"name":"disburse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15031,"src":"6559:8:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) returns (bool)"}},"id":15056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6559:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15060,"nodeType":"IfStatement","src":"6554:37:41","trueBody":{"expression":{"hexValue":"66616c7365","id":15058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6586:5:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":15040,"id":15059,"nodeType":"Return","src":"6579:12:41"}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15045,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"6517:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15046,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15035,"src":"6521:5:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":15047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6527:6:41","memberName":"length","nodeType":"MemberAccess","src":"6521:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6517:16:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15062,"initializationExpression":{"assignments":[15042],"declarations":[{"constant":false,"id":15042,"mutability":"mutable","name":"i","nameLocation":"6510:1:41","nodeType":"VariableDeclaration","scope":15062,"src":"6502:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15041,"name":"uint256","nodeType":"ElementaryTypeName","src":"6502:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15044,"initialValue":{"hexValue":"30","id":15043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6514:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6502:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6535:3:41","subExpression":{"id":15049,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15042,"src":"6535:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15051,"nodeType":"ExpressionStatement","src":"6535:3:41"},"nodeType":"ForStatement","src":"6497:105:41"},{"expression":{"hexValue":"74727565","id":15063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6619:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15040,"id":15064,"nodeType":"Return","src":"6612:11:41"}]},"documentation":{"id":15032,"nodeType":"StructuredDocumentation","src":"6181:213:41","text":"@inheritdoc Budget\n @notice Disburses assets from the budget to multiple recipients\n @param data_ The packed array of {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":15066,"implemented":true,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"6408:13:41","nodeType":"FunctionDefinition","overrides":{"id":15037,"nodeType":"OverrideSpecifier","overrides":[],"src":"6463:8:41"},"parameters":{"id":15036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15035,"mutability":"mutable","name":"data_","nameLocation":"6439:5:41","nodeType":"VariableDeclaration","scope":15066,"src":"6422:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15033,"name":"bytes","nodeType":"ElementaryTypeName","src":"6422:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15034,"nodeType":"ArrayTypeName","src":"6422:7:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"6421:24:41"},"returnParameters":{"id":15040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15066,"src":"6481:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15038,"name":"bool","nodeType":"ElementaryTypeName","src":"6481:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6480:6:41"},"scope":15424,"src":"6399:231:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[15599],"body":{"id":15113,"nodeType":"Block","src":"6816:217:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15079,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15070,"src":"6830:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6839:6:41","memberName":"length","nodeType":"MemberAccess","src":"6830:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":15081,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15073,"src":"6849:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":15082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6861:6:41","memberName":"length","nodeType":"MemberAccess","src":"6849:18:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6830:37:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15089,"nodeType":"IfStatement","src":"6826:77:41","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15084,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"6876:10:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":15086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6887:14:41","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":18318,"src":"6876:25:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6876:27:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15088,"nodeType":"RevertStatement","src":"6869:34:41"}},{"body":{"id":15111,"nodeType":"Block","src":"6959:68:41","statements":[{"expression":{"id":15109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15101,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14758,"src":"6973:13:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15105,"indexExpression":{"baseExpression":{"id":15102,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15070,"src":"6987:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15104,"indexExpression":{"id":15103,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"6996:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6987:11:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6973:26:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":15106,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15073,"src":"7002:11:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":15108,"indexExpression":{"id":15107,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"7014:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7002:14:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6973:43:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15110,"nodeType":"ExpressionStatement","src":"6973:43:41"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15094,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"6933:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":15095,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15070,"src":"6937:8:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":15096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6946:6:41","memberName":"length","nodeType":"MemberAccess","src":"6937:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6933:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15112,"initializationExpression":{"assignments":[15091],"declarations":[{"constant":false,"id":15091,"mutability":"mutable","name":"i","nameLocation":"6926:1:41","nodeType":"VariableDeclaration","scope":15112,"src":"6918:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15090,"name":"uint256","nodeType":"ElementaryTypeName","src":"6918:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15093,"initialValue":{"hexValue":"30","id":15092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6930:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6918:13:41"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6954:3:41","subExpression":{"id":15098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"6954:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15100,"nodeType":"ExpressionStatement","src":"6954:3:41"},"nodeType":"ForStatement","src":"6913:114:41"}]},"documentation":{"id":15067,"nodeType":"StructuredDocumentation","src":"6636:22:41","text":"@inheritdoc Budget"},"functionSelector":"4359d28a","id":15114,"implemented":true,"kind":"function","modifiers":[{"id":15077,"kind":"modifierInvocation","modifierName":{"id":15076,"name":"onlyOwner","nameLocations":["6802:9:41"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"6802:9:41"},"nodeType":"ModifierInvocation","src":"6802:9:41"}],"name":"setAuthorized","nameLocation":"6672:13:41","nodeType":"FunctionDefinition","overrides":{"id":15075,"nodeType":"OverrideSpecifier","overrides":[],"src":"6785:8:41"},"parameters":{"id":15074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15070,"mutability":"mutable","name":"account_","nameLocation":"6705:8:41","nodeType":"VariableDeclaration","scope":15114,"src":"6686:27:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15068,"name":"address","nodeType":"ElementaryTypeName","src":"6686:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15069,"nodeType":"ArrayTypeName","src":"6686:9:41","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15073,"mutability":"mutable","name":"authorized_","nameLocation":"6731:11:41","nodeType":"VariableDeclaration","scope":15114,"src":"6715:27:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15071,"name":"bool","nodeType":"ElementaryTypeName","src":"6715:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15072,"nodeType":"ArrayTypeName","src":"6715:6:41","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"6685:58:41"},"returnParameters":{"id":15078,"nodeType":"ParameterList","parameters":[],"src":"6816:0:41"},"scope":15424,"src":"6663:370:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[15607],"body":{"id":15132,"nodeType":"Block","src":"7150:70:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":15123,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14758,"src":"7167:13:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15125,"indexExpression":{"id":15124,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15117,"src":"7181:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7167:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15126,"name":"account_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15117,"src":"7194:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":15127,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"7206:5:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7206:7:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7194:19:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7167:46:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15122,"id":15131,"nodeType":"Return","src":"7160:53:41"}]},"documentation":{"id":15115,"nodeType":"StructuredDocumentation","src":"7039:22:41","text":"@inheritdoc Budget"},"functionSelector":"fe9fbb80","id":15133,"implemented":true,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"7075:12:41","nodeType":"FunctionDefinition","overrides":{"id":15119,"nodeType":"OverrideSpecifier","overrides":[],"src":"7126:8:41"},"parameters":{"id":15118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15117,"mutability":"mutable","name":"account_","nameLocation":"7096:8:41","nodeType":"VariableDeclaration","scope":15133,"src":"7088:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15116,"name":"address","nodeType":"ElementaryTypeName","src":"7088:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7087:18:41"},"returnParameters":{"id":15122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15133,"src":"7144:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15120,"name":"bool","nodeType":"ElementaryTypeName","src":"7144:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7143:6:41"},"scope":15424,"src":"7066:154:41","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":15143,"nodeType":"Block","src":"7391:40:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15139,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14761,"src":"7408:5:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15140,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"7416:8:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7408:16:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":15138,"id":15142,"nodeType":"Return","src":"7401:23:41"}]},"documentation":{"id":15134,"nodeType":"StructuredDocumentation","src":"7226:105:41","text":"@notice Get the end time of the vesting schedule\n @return The end time of the vesting schedule"},"functionSelector":"efbe1c1c","id":15144,"implemented":true,"kind":"function","modifiers":[],"name":"end","nameLocation":"7345:3:41","nodeType":"FunctionDefinition","parameters":{"id":15135,"nodeType":"ParameterList","parameters":[],"src":"7348:2:41"},"returnParameters":{"id":15138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15144,"src":"7382:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15136,"name":"uint256","nodeType":"ElementaryTypeName","src":"7382:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7381:9:41"},"scope":15424,"src":"7336:95:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[15565],"body":{"id":15181,"nodeType":"Block","src":"7847:168:41","statements":[{"assignments":[15154],"declarations":[{"constant":false,"id":15154,"mutability":"mutable","name":"balance","nameLocation":"7865:7:41","nodeType":"VariableDeclaration","scope":15181,"src":"7857:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15153,"name":"uint256","nodeType":"ElementaryTypeName","src":"7857:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15174,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15155,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15147,"src":"7875:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7893: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":15157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7885:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15156,"name":"address","nodeType":"ElementaryTypeName","src":"7885:7:41","typeDescriptions":{}}},"id":15159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7885:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7875:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":15170,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7947:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}],"id":15169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7939:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15168,"name":"address","nodeType":"ElementaryTypeName","src":"7939:7:41","typeDescriptions":{}}},"id":15171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7939:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15166,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15147,"src":"7922:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7929:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"7922:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7922:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7875:78:41","trueExpression":{"expression":{"arguments":[{"id":15163,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7906:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}],"id":15162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7898:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15161,"name":"address","nodeType":"ElementaryTypeName","src":"7898:7:41","typeDescriptions":{}}},"id":15164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7898:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7912:7:41","memberName":"balance","nodeType":"MemberAccess","src":"7898:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7857:96:41"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":15175,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"7970:20:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15177,"indexExpression":{"id":15176,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15147,"src":"7991:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7970:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15178,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15154,"src":"8001:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7970:38:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15152,"id":15180,"nodeType":"Return","src":"7963:45:41"}]},"documentation":{"id":15145,"nodeType":"StructuredDocumentation","src":"7437:325:41","text":"@inheritdoc Budget\n @notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets\n @dev This is equal to the sum of the total current balance and the total distributed amount"},"functionSelector":"d2514e84","id":15182,"implemented":true,"kind":"function","modifiers":[],"name":"total","nameLocation":"7776:5:41","nodeType":"FunctionDefinition","overrides":{"id":15149,"nodeType":"OverrideSpecifier","overrides":[],"src":"7820:8:41"},"parameters":{"id":15148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15147,"mutability":"mutable","name":"asset_","nameLocation":"7790:6:41","nodeType":"VariableDeclaration","scope":15182,"src":"7782:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15146,"name":"address","nodeType":"ElementaryTypeName","src":"7782:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7781:16:41"},"returnParameters":{"id":15152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15182,"src":"7838:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15150,"name":"uint256","nodeType":"ElementaryTypeName","src":"7838:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7837:9:41"},"scope":15424,"src":"7767:248:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[15573],"body":{"id":15204,"nodeType":"Block","src":"8493:105:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":15192,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15185,"src":"8528:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":15195,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8543:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8549:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"8543:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8536:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":15193,"name":"uint64","nodeType":"ElementaryTypeName","src":"8536:6:41","typeDescriptions":{}}},"id":15197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8536:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":15191,"name":"_vestedAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15349,"src":"8510:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint64_$returns$_t_uint256_$","typeString":"function (address,uint64) view returns (uint256)"}},"id":15198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8510:50:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"id":15199,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"8563:20:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15201,"indexExpression":{"id":15200,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15185,"src":"8584:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8563:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:81:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15190,"id":15203,"nodeType":"Return","src":"8503:88:41"}]},"documentation":{"id":15183,"nodeType":"StructuredDocumentation","src":"8021:385:41","text":"@inheritdoc Budget\n @notice Get the amount of assets available for distribution from the budget as of the current block timestamp\n @param asset_ The address of the asset (or the zero address for native assets)\n @return The amount of assets currently available for distribution\n @dev This is equal to the total vested amount minus any already distributed"},"functionSelector":"10098ad5","id":15205,"implemented":true,"kind":"function","modifiers":[],"name":"available","nameLocation":"8420:9:41","nodeType":"FunctionDefinition","overrides":{"id":15187,"nodeType":"OverrideSpecifier","overrides":[],"src":"8466:8:41"},"parameters":{"id":15186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15185,"mutability":"mutable","name":"asset_","nameLocation":"8438:6:41","nodeType":"VariableDeclaration","scope":15205,"src":"8430:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15184,"name":"address","nodeType":"ElementaryTypeName","src":"8430:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8429:16:41"},"returnParameters":{"id":15190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15205,"src":"8484:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15188,"name":"uint256","nodeType":"ElementaryTypeName","src":"8484:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8483:9:41"},"scope":15424,"src":"8411:187:41","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[15581],"body":{"id":15218,"nodeType":"Block","src":"8897:52:41","statements":[{"expression":{"baseExpression":{"id":15214,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"8914:20:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15216,"indexExpression":{"id":15215,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15208,"src":"8935:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8914:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15213,"id":15217,"nodeType":"Return","src":"8907:35:41"}]},"documentation":{"id":15206,"nodeType":"StructuredDocumentation","src":"8604:202:41","text":"@inheritdoc Budget\n @notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":15219,"implemented":true,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"8820:11:41","nodeType":"FunctionDefinition","overrides":{"id":15210,"nodeType":"OverrideSpecifier","overrides":[],"src":"8870:8:41"},"parameters":{"id":15209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15208,"mutability":"mutable","name":"asset_","nameLocation":"8840:6:41","nodeType":"VariableDeclaration","scope":15219,"src":"8832:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15207,"name":"address","nodeType":"ElementaryTypeName","src":"8832:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8831:16:41"},"returnParameters":{"id":15213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15219,"src":"8888:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15211,"name":"uint256","nodeType":"ElementaryTypeName","src":"8888:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8887:9:41"},"scope":15424,"src":"8811:138:41","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[15589],"body":{"id":15230,"nodeType":"Block","src":"9132:25:41","statements":[{"expression":{"hexValue":"30","id":15228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9149:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":15227,"id":15229,"nodeType":"Return","src":"9142:8:41"}]},"documentation":{"id":15220,"nodeType":"StructuredDocumentation","src":"8955:93:41","text":"@inheritdoc Budget\n @dev This is a no-op as there is no local balance to reconcile"},"functionSelector":"451cc191","id":15231,"implemented":true,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"9062:9:41","nodeType":"FunctionDefinition","overrides":{"id":15224,"nodeType":"OverrideSpecifier","overrides":[],"src":"9105:8:41"},"parameters":{"id":15223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15231,"src":"9072:14:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15221,"name":"bytes","nodeType":"ElementaryTypeName","src":"9072:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9071:16:41"},"returnParameters":{"id":15227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15231,"src":"9123:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15225,"name":"uint256","nodeType":"ElementaryTypeName","src":"9123:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9122:9:41"},"scope":15424,"src":"9053:104:41","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"body":{"id":15306,"nodeType":"Block","src":"9719:605:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15243,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15236,"src":"9812:3:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9827: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":15245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9819:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15244,"name":"address","nodeType":"ElementaryTypeName","src":"9819:7:41","typeDescriptions":{}}},"id":15247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9819:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9812:17:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15255,"nodeType":"IfStatement","src":"9808:66:41","trueBody":{"errorCall":{"arguments":[{"id":15250,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"9853:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15251,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15236,"src":"9861:3:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15252,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"9866:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15249,"name":"TransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15514,"src":"9838:14:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$_t_error_$","typeString":"function (address,address,uint256) pure returns (error)"}},"id":15253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9838:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15254,"nodeType":"RevertStatement","src":"9831:43:41"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15256,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"9888:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"id":15258,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"9908:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15257,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15205,"src":"9898:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":15259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9898:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9888:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15270,"nodeType":"IfStatement","src":"9884:118:41","trueBody":{"id":15269,"nodeType":"Block","src":"9917:85:41","statements":[{"errorCall":{"arguments":[{"id":15262,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"9956:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":15264,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"9974:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15263,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15205,"src":"9964:9:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":15265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9964:17:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15266,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"9983:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15261,"name":"InsufficientFunds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"9938:17:41","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":15267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9938:53:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15268,"nodeType":"RevertStatement","src":"9931:60:41"}]}},{"expression":{"id":15275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15271,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"10012:20:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15273,"indexExpression":{"id":15272,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"10033:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10012:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15274,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"10044:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10012:39:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15276,"nodeType":"ExpressionStatement","src":"10012:39:41"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15277,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"10113:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10131: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":15279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10123:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15278,"name":"address","nodeType":"ElementaryTypeName","src":"10123:7:41","typeDescriptions":{}}},"id":15281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10123:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10113:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15298,"nodeType":"Block","src":"10211:58:41","statements":[{"expression":{"arguments":[{"id":15294,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15236,"src":"10245:3:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15295,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"10250:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15291,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"10225:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10232:12:41","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11205,"src":"10225:19:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":15296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10225:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15297,"nodeType":"ExpressionStatement","src":"10225:33:41"}]},"id":15299,"nodeType":"IfStatement","src":"10109:160:41","trueBody":{"id":15290,"nodeType":"Block","src":"10135:70:41","statements":[{"expression":{"arguments":[{"id":15286,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15236,"src":"10181:3:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15287,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"10186:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15283,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"10149:15:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeTransferLib_$11358_$","typeString":"type(library SafeTransferLib)"}},"id":15285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10165:15:41","memberName":"safeTransferETH","nodeType":"MemberAccess","referencedDeclaration":11075,"src":"10149:31:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":15288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10149:45:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15289,"nodeType":"ExpressionStatement","src":"10149:45:41"}]}},{"eventCall":{"arguments":[{"id":15301,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15234,"src":"10296:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15302,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15236,"src":"10304:3:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15303,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15238,"src":"10309:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15300,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15489,"src":"10284:11:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":15304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10284:33:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15305,"nodeType":"EmitStatement","src":"10279:38:41"}]},"documentation":{"id":15232,"nodeType":"StructuredDocumentation","src":"9163:448:41","text":"@notice Transfer assets to the recipient\n @param asset_ The address of the asset\n @param to_ The address of the recipient\n @param amount_ The amount of the asset to transfer\n @dev This function is used to transfer assets from the budget to a given recipient (typically an incentive contract)\n @dev If the destination address is the zero address, or the transfer fails for any reason, this function will revert"},"id":15307,"implemented":true,"kind":"function","modifiers":[{"id":15241,"kind":"modifierInvocation","modifierName":{"id":15240,"name":"nonReentrant","nameLocations":["9706:12:41"],"nodeType":"IdentifierPath","referencedDeclaration":11017,"src":"9706:12:41"},"nodeType":"ModifierInvocation","src":"9706:12:41"}],"name":"_transferFungible","nameLocation":"9625:17:41","nodeType":"FunctionDefinition","parameters":{"id":15239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15234,"mutability":"mutable","name":"asset_","nameLocation":"9651:6:41","nodeType":"VariableDeclaration","scope":15307,"src":"9643:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15233,"name":"address","nodeType":"ElementaryTypeName","src":"9643:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15236,"mutability":"mutable","name":"to_","nameLocation":"9667:3:41","nodeType":"VariableDeclaration","scope":15307,"src":"9659:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15235,"name":"address","nodeType":"ElementaryTypeName","src":"9659:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15238,"mutability":"mutable","name":"amount_","nameLocation":"9680:7:41","nodeType":"VariableDeclaration","scope":15307,"src":"9672:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15237,"name":"uint256","nodeType":"ElementaryTypeName","src":"9672:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9642:46:41"},"returnParameters":{"id":15242,"nodeType":"ParameterList","parameters":[],"src":"9719:0:41"},"scope":15424,"src":"9616:708:41","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":15348,"nodeType":"Block","src":"10707:201:41","statements":[{"assignments":[15318],"declarations":[{"constant":false,"id":15318,"mutability":"mutable","name":"balance","nameLocation":"10725:7:41","nodeType":"VariableDeclaration","scope":15348,"src":"10717:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15317,"name":"uint256","nodeType":"ElementaryTypeName","src":"10717:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15338,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15319,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15310,"src":"10735:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":15322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10753: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":15321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10745:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15320,"name":"address","nodeType":"ElementaryTypeName","src":"10745:7:41","typeDescriptions":{}}},"id":15323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10745:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10735:20:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":15334,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10807:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}],"id":15333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10799:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15332,"name":"address","nodeType":"ElementaryTypeName","src":"10799:7:41","typeDescriptions":{}}},"id":15335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10799:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15330,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15310,"src":"10782:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10789:9:41","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"10782:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":15336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10782:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10735:78:41","trueExpression":{"expression":{"arguments":[{"id":15327,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10766:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AVestingBudget_$15424","typeString":"contract AVestingBudget"}],"id":15326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10758:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15325,"name":"address","nodeType":"ElementaryTypeName","src":"10758:7:41","typeDescriptions":{}}},"id":15328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10758:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10772:7:41","memberName":"balance","nodeType":"MemberAccess","src":"10758:21:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10717:96:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15340,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15318,"src":"10850:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"baseExpression":{"id":15341,"name":"_distributedFungible","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"10860:20:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":15343,"indexExpression":{"id":15342,"name":"asset_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15310,"src":"10881:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10860:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10850:38:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15345,"name":"timestamp_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15312,"src":"10890:10:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":15339,"name":"_linearVestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15388,"src":"10830:19:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint64_$returns$_t_uint256_$","typeString":"function (uint256,uint64) view returns (uint256)"}},"id":15346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10830:71:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15316,"id":15347,"nodeType":"Return","src":"10823:78:41"}]},"documentation":{"id":15308,"nodeType":"StructuredDocumentation","src":"10330:270:41","text":"@notice Calculate the portion of allocated assets vested at a given timestamp\n @param asset_ The address of the asset\n @param timestamp_ The timestamp used to calculate the vested amount\n @return The amount of assets vested at that point in time"},"id":15349,"implemented":true,"kind":"function","modifiers":[],"name":"_vestedAllocation","nameLocation":"10614:17:41","nodeType":"FunctionDefinition","parameters":{"id":15313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15310,"mutability":"mutable","name":"asset_","nameLocation":"10640:6:41","nodeType":"VariableDeclaration","scope":15349,"src":"10632:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15309,"name":"address","nodeType":"ElementaryTypeName","src":"10632:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15312,"mutability":"mutable","name":"timestamp_","nameLocation":"10655:10:41","nodeType":"VariableDeclaration","scope":15349,"src":"10648:17:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15311,"name":"uint64","nodeType":"ElementaryTypeName","src":"10648:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"10631:35:41"},"returnParameters":{"id":15316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15349,"src":"10698:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15314,"name":"uint256","nodeType":"ElementaryTypeName","src":"10698:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10697:9:41"},"scope":15424,"src":"10605:303:41","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":15387,"nodeType":"Block","src":"11391:254:41","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15359,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15354,"src":"11405:9:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15360,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14761,"src":"11417:5:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15361,"name":"cliff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14767,"src":"11425:5:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11417:13:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11405:25:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15367,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15354,"src":"11475:9:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15368,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14761,"src":"11488:5:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15369,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"11496:8:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11488:16:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11475:29:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15384,"nodeType":"Block","src":"11559:80:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15375,"name":"totalAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15352,"src":"11580:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":15378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15376,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15354,"src":"11599:9:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":15377,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14761,"src":"11611:5:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11599:17:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":15379,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11598:19:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11580:37:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":15381,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"11620:8:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"11580:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15358,"id":15383,"nodeType":"Return","src":"11573:55:41"}]},"id":15385,"nodeType":"IfStatement","src":"11471:168:41","trueBody":{"id":15374,"nodeType":"Block","src":"11506:47:41","statements":[{"expression":{"id":15372,"name":"totalAllocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15352,"src":"11527:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15358,"id":15373,"nodeType":"Return","src":"11520:22:41"}]}},"id":15386,"nodeType":"IfStatement","src":"11401:238:41","trueBody":{"id":15366,"nodeType":"Block","src":"11432:33:41","statements":[{"expression":{"hexValue":"30","id":15364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11453:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":15358,"id":15365,"nodeType":"Return","src":"11446:8:41"}]}}]},"documentation":{"id":15350,"nodeType":"StructuredDocumentation","src":"10914:360:41","text":"@notice Calculate the amount of assets vested at a given timestamp using a linear vesting schedule\n @param totalAllocation The total amount of the asset allocated to the budget (including prior distributions)\n @param timestamp The timestamp used to calculate the vested amount\n @return The amount of assets vested at that point in time"},"id":15388,"implemented":true,"kind":"function","modifiers":[],"name":"_linearVestedAmount","nameLocation":"11288:19:41","nodeType":"FunctionDefinition","parameters":{"id":15355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15352,"mutability":"mutable","name":"totalAllocation","nameLocation":"11316:15:41","nodeType":"VariableDeclaration","scope":15388,"src":"11308:23:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15351,"name":"uint256","nodeType":"ElementaryTypeName","src":"11308:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15354,"mutability":"mutable","name":"timestamp","nameLocation":"11340:9:41","nodeType":"VariableDeclaration","scope":15388,"src":"11333:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15353,"name":"uint64","nodeType":"ElementaryTypeName","src":"11333:6:41","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"11307:43:41"},"returnParameters":{"id":15358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15388,"src":"11382:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15356,"name":"uint256","nodeType":"ElementaryTypeName","src":"11382:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11381:9:41"},"scope":15424,"src":"11279:366:41","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[15644],"body":{"id":15409,"nodeType":"Block","src":"11772:112:41","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":15402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15397,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15391,"src":"11789:11:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":15399,"name":"AVestingBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15424,"src":"11809:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AVestingBudget_$15424_$","typeString":"type(contract AVestingBudget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AVestingBudget_$15424_$","typeString":"type(contract AVestingBudget)"}],"id":15398,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11804:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11804:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AVestingBudget_$15424","typeString":"type(contract AVestingBudget)"}},"id":15401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11825:11:41","memberName":"interfaceId","nodeType":"MemberAccess","src":"11804:32:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"11789:47:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":15405,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15391,"src":"11865:11:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":15403,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"11840:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":15404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11847:17:41","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":15644,"src":"11840:24:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":15406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11840:37:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11789:88:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15396,"id":15408,"nodeType":"Return","src":"11782:95:41"}]},"documentation":{"id":15389,"nodeType":"StructuredDocumentation","src":"11651:25:41","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":15410,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"11690:17:41","nodeType":"FunctionDefinition","overrides":{"id":15393,"nodeType":"OverrideSpecifier","overrides":[],"src":"11748:8:41"},"parameters":{"id":15392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15391,"mutability":"mutable","name":"interfaceId","nameLocation":"11715:11:41","nodeType":"VariableDeclaration","scope":15410,"src":"11708:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15390,"name":"bytes4","nodeType":"ElementaryTypeName","src":"11708:6:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"11707:20:41"},"returnParameters":{"id":15396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15410,"src":"11766:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15394,"name":"bool","nodeType":"ElementaryTypeName","src":"11766:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11765:6:41"},"scope":15424,"src":"11681:203:41","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[15621],"body":{"id":15422,"nodeType":"Block","src":"11999:56:41","statements":[{"expression":{"expression":{"arguments":[{"id":15418,"name":"AVestingBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15424,"src":"12021:14:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AVestingBudget_$15424_$","typeString":"type(contract AVestingBudget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AVestingBudget_$15424_$","typeString":"type(contract AVestingBudget)"}],"id":15417,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"12016:4:41","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12016:20:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AVestingBudget_$15424","typeString":"type(contract AVestingBudget)"}},"id":15420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12037:11:41","memberName":"interfaceId","nodeType":"MemberAccess","src":"12016:32:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":15416,"id":15421,"nodeType":"Return","src":"12009:39:41"}]},"documentation":{"id":15411,"nodeType":"StructuredDocumentation","src":"11890:25:41","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":15423,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"11929:21:41","nodeType":"FunctionDefinition","overrides":{"id":15413,"nodeType":"OverrideSpecifier","overrides":[],"src":"11973:8:41"},"parameters":{"id":15412,"nodeType":"ParameterList","parameters":[],"src":"11950:2:41"},"returnParameters":{"id":15416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15423,"src":"11991:6:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15414,"name":"bytes4","nodeType":"ElementaryTypeName","src":"11991:6:41","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"11990:8:41"},"scope":15424,"src":"11920:135:41","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":15425,"src":"1793:10264:41","usedErrors":[6221,6224,6227,6230,9103,9106,11006,15496,15505,15514,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,15480,15489]}],"src":"36:12022:41"},"id":41},"contracts/budgets/Budget.sol":{"ast":{"absolutePath":"contracts/budgets/Budget.sol","exportedSymbols":{"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"Ownable":[6409],"Receiver":[6215],"SafeTransferLib":[11358]},"id":15660,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15426,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:42"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":15428,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15660,"sourceUnit":6410,"src":"62:49:42","symbolAliases":[{"foreign":{"id":15427,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"70:7:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/accounts/Receiver.sol","file":"@solady/accounts/Receiver.sol","id":15430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15660,"sourceUnit":6216,"src":"112:55:42","symbolAliases":[{"foreign":{"id":15429,"name":"Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6215,"src":"120:8:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":15432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15660,"sourceUnit":11359,"src":"168:66:42","symbolAliases":[{"foreign":{"id":15431,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"176:15:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":15434,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15660,"sourceUnit":18344,"src":"236:59:42","symbolAliases":[{"foreign":{"id":15433,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"244:10:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":15436,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15660,"sourceUnit":18510,"src":"296:57:42","symbolAliases":[{"foreign":{"id":15435,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"304:9:42","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":15438,"name":"Ownable","nameLocations":["718:7:42"],"nodeType":"IdentifierPath","referencedDeclaration":6409,"src":"718:7:42"},"id":15439,"nodeType":"InheritanceSpecifier","src":"718:7:42"},{"baseName":{"id":15440,"name":"Cloneable","nameLocations":["727:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"727:9:42"},"id":15441,"nodeType":"InheritanceSpecifier","src":"727:9:42"},{"baseName":{"id":15442,"name":"Receiver","nameLocations":["738:8:42"],"nodeType":"IdentifierPath","referencedDeclaration":6215,"src":"738:8:42"},"id":15443,"nodeType":"InheritanceSpecifier","src":"738:8:42"}],"canonicalName":"Budget","contractDependencies":[],"contractKind":"contract","documentation":{"id":15437,"nodeType":"StructuredDocumentation","src":"355:335:42","text":"@title Boost Budget\n @notice Abstract contract for a generic Budget within the Boost protocol\n @dev Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.\n @dev WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future."},"fullyImplemented":false,"id":15659,"linearizedBaseContracts":[15659,6215,18509,2831,2843,9211,6409],"name":"Budget","nameLocation":"708:6:42","nodeType":"ContractDefinition","nodes":[{"global":false,"id":15446,"libraryName":{"id":15444,"name":"SafeTransferLib","nameLocations":["759:15:42"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"759:15:42"},"nodeType":"UsingForDirective","src":"753:34:42","typeName":{"id":15445,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"Budget.AssetType","id":15450,"members":[{"id":15447,"name":"ETH","nameLocation":"818:3:42","nodeType":"EnumValue","src":"818:3:42"},{"id":15448,"name":"ERC20","nameLocation":"831:5:42","nodeType":"EnumValue","src":"831:5:42"},{"id":15449,"name":"ERC1155","nameLocation":"846:7:42","nodeType":"EnumValue","src":"846:7:42"}],"name":"AssetType","nameLocation":"798:9:42","nodeType":"EnumDefinition","src":"793:66:42"},{"canonicalName":"Budget.Transfer","documentation":{"id":15451,"nodeType":"StructuredDocumentation","src":"865:369:42","text":"@notice A struct representing the inputs for an allocation\n @param assetType The type of asset to allocate\n @param asset The address of the asset to allocate\n @param target The address of the payee or payer (from or to, depending on the operation)\n @param data The implementation-specific data for the allocation (amount, token ID, etc.)"},"id":15461,"members":[{"constant":false,"id":15454,"mutability":"mutable","name":"assetType","nameLocation":"1275:9:42","nodeType":"VariableDeclaration","scope":15461,"src":"1265:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},"typeName":{"id":15453,"nodeType":"UserDefinedTypeName","pathNode":{"id":15452,"name":"AssetType","nameLocations":["1265:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":15450,"src":"1265:9:42"},"referencedDeclaration":15450,"src":"1265:9:42","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},"visibility":"internal"},{"constant":false,"id":15456,"mutability":"mutable","name":"asset","nameLocation":"1302:5:42","nodeType":"VariableDeclaration","scope":15461,"src":"1294:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15455,"name":"address","nodeType":"ElementaryTypeName","src":"1294:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15458,"mutability":"mutable","name":"target","nameLocation":"1325:6:42","nodeType":"VariableDeclaration","scope":15461,"src":"1317:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15457,"name":"address","nodeType":"ElementaryTypeName","src":"1317:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15460,"mutability":"mutable","name":"data","nameLocation":"1347:4:42","nodeType":"VariableDeclaration","scope":15461,"src":"1341:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":15459,"name":"bytes","nodeType":"ElementaryTypeName","src":"1341:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Transfer","nameLocation":"1246:8:42","nodeType":"StructDefinition","scope":15659,"src":"1239:119:42","visibility":"public"},{"canonicalName":"Budget.FungiblePayload","documentation":{"id":15462,"nodeType":"StructuredDocumentation","src":"1364:110:42","text":"@notice The payload for an ETH or ERC20 transfer\n @param amount The amount of the asset to transfer"},"id":15465,"members":[{"constant":false,"id":15464,"mutability":"mutable","name":"amount","nameLocation":"1520:6:42","nodeType":"VariableDeclaration","scope":15465,"src":"1512:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15463,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FungiblePayload","nameLocation":"1486:15:42","nodeType":"StructDefinition","scope":15659,"src":"1479:54:42","visibility":"public"},{"canonicalName":"Budget.ERC1155Payload","documentation":{"id":15466,"nodeType":"StructuredDocumentation","src":"1539:235:42","text":"@notice The payload for an ERC1155 transfer\n @param tokenId The ID of the token to transfer\n @param amount The amount of the token to transfer\n @param data Any additional data to forward to the ERC1155 contract"},"id":15473,"members":[{"constant":false,"id":15468,"mutability":"mutable","name":"tokenId","nameLocation":"1819:7:42","nodeType":"VariableDeclaration","scope":15473,"src":"1811:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15467,"name":"uint256","nodeType":"ElementaryTypeName","src":"1811:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15470,"mutability":"mutable","name":"amount","nameLocation":"1844:6:42","nodeType":"VariableDeclaration","scope":15473,"src":"1836:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15469,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15472,"mutability":"mutable","name":"data","nameLocation":"1866:4:42","nodeType":"VariableDeclaration","scope":15473,"src":"1860:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":15471,"name":"bytes","nodeType":"ElementaryTypeName","src":"1860:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ERC1155Payload","nameLocation":"1786:14:42","nodeType":"StructDefinition","scope":15659,"src":"1779:98:42","visibility":"public"},{"anonymous":false,"documentation":{"id":15474,"nodeType":"StructuredDocumentation","src":"1883:66:42","text":"@notice Emitted when an address's authorization status changes"},"eventSelector":"4c0079b9bcd37cd5d29a13938effd97c881798cbc6bd52a3026a29d94b27d1bf","id":15480,"name":"Authorized","nameLocation":"1960:10:42","nodeType":"EventDefinition","parameters":{"id":15479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15476,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1987:7:42","nodeType":"VariableDeclaration","scope":15480,"src":"1971:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15475,"name":"address","nodeType":"ElementaryTypeName","src":"1971:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15478,"indexed":false,"mutability":"mutable","name":"isAuthorized","nameLocation":"2001:12:42","nodeType":"VariableDeclaration","scope":15480,"src":"1996:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15477,"name":"bool","nodeType":"ElementaryTypeName","src":"1996:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1970:44:42"},"src":"1954:61:42"},{"anonymous":false,"documentation":{"id":15481,"nodeType":"StructuredDocumentation","src":"2021:63:42","text":"@notice Emitted when assets are distributed from the budget"},"eventSelector":"ad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542","id":15489,"name":"Distributed","nameLocation":"2095:11:42","nodeType":"EventDefinition","parameters":{"id":15488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15483,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"2123:5:42","nodeType":"VariableDeclaration","scope":15489,"src":"2107:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15482,"name":"address","nodeType":"ElementaryTypeName","src":"2107:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15485,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2138:2:42","nodeType":"VariableDeclaration","scope":15489,"src":"2130:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15484,"name":"address","nodeType":"ElementaryTypeName","src":"2130:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15487,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2150:6:42","nodeType":"VariableDeclaration","scope":15489,"src":"2142:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15486,"name":"uint256","nodeType":"ElementaryTypeName","src":"2142:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2106:51:42"},"src":"2089:69:42"},{"documentation":{"id":15490,"nodeType":"StructuredDocumentation","src":"2164:49:42","text":"@notice Thrown when the allocation is invalid"},"errorSelector":"cece04c5","id":15496,"name":"InvalidAllocation","nameLocation":"2224:17:42","nodeType":"ErrorDefinition","parameters":{"id":15495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15492,"mutability":"mutable","name":"asset","nameLocation":"2250:5:42","nodeType":"VariableDeclaration","scope":15496,"src":"2242:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15491,"name":"address","nodeType":"ElementaryTypeName","src":"2242:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15494,"mutability":"mutable","name":"amount","nameLocation":"2265:6:42","nodeType":"VariableDeclaration","scope":15496,"src":"2257:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15493,"name":"uint256","nodeType":"ElementaryTypeName","src":"2257:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2241:31:42"},"src":"2218:55:42"},{"documentation":{"id":15497,"nodeType":"StructuredDocumentation","src":"2279:69:42","text":"@notice Thrown when there are insufficient funds for an operation"},"errorSelector":"5c54305e","id":15505,"name":"InsufficientFunds","nameLocation":"2359:17:42","nodeType":"ErrorDefinition","parameters":{"id":15504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15499,"mutability":"mutable","name":"asset","nameLocation":"2385:5:42","nodeType":"VariableDeclaration","scope":15505,"src":"2377:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15498,"name":"address","nodeType":"ElementaryTypeName","src":"2377:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15501,"mutability":"mutable","name":"available","nameLocation":"2400:9:42","nodeType":"VariableDeclaration","scope":15505,"src":"2392:17:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15500,"name":"uint256","nodeType":"ElementaryTypeName","src":"2392:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15503,"mutability":"mutable","name":"required","nameLocation":"2419:8:42","nodeType":"VariableDeclaration","scope":15505,"src":"2411:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15502,"name":"uint256","nodeType":"ElementaryTypeName","src":"2411:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2376:52:42"},"src":"2353:76:42"},{"documentation":{"id":15506,"nodeType":"StructuredDocumentation","src":"2435:62:42","text":"@notice Thrown when a transfer fails for an unknown reason"},"errorSelector":"bf182be8","id":15514,"name":"TransferFailed","nameLocation":"2508:14:42","nodeType":"ErrorDefinition","parameters":{"id":15513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15508,"mutability":"mutable","name":"asset","nameLocation":"2531:5:42","nodeType":"VariableDeclaration","scope":15514,"src":"2523:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15507,"name":"address","nodeType":"ElementaryTypeName","src":"2523:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15510,"mutability":"mutable","name":"to","nameLocation":"2546:2:42","nodeType":"VariableDeclaration","scope":15514,"src":"2538:10:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15509,"name":"address","nodeType":"ElementaryTypeName","src":"2538:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15512,"mutability":"mutable","name":"amount","nameLocation":"2558:6:42","nodeType":"VariableDeclaration","scope":15514,"src":"2550:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15511,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2522:43:42"},"src":"2502:64:42"},{"body":{"id":15523,"nodeType":"Block","src":"2697:45:42","statements":[{"expression":{"arguments":[{"expression":{"id":15519,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2724:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2728:6:42","memberName":"sender","nodeType":"MemberAccess","src":"2724:10:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15518,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"2707:16:42","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:28:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15522,"nodeType":"ExpressionStatement","src":"2707:28:42"}]},"documentation":{"id":15515,"nodeType":"StructuredDocumentation","src":"2572:106:42","text":"@notice Initialize the budget and set the owner\n @dev The owner is set to the contract deployer"},"id":15524,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15516,"nodeType":"ParameterList","parameters":[],"src":"2694:2:42"},"returnParameters":{"id":15517,"nodeType":"ParameterList","parameters":[],"src":"2697:0:42"},"scope":15659,"src":"2683:59:42","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":15525,"nodeType":"StructuredDocumentation","src":"2748:195:42","text":"@notice Allocate assets to the budget\n @param data_ The compressed data for the allocation (amount, token address, token ID, etc.)\n @return True if the allocation was successful"},"functionSelector":"5aef467a","id":15532,"implemented":false,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"2957:8:42","nodeType":"FunctionDefinition","parameters":{"id":15528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15527,"mutability":"mutable","name":"data_","nameLocation":"2981:5:42","nodeType":"VariableDeclaration","scope":15532,"src":"2966:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15526,"name":"bytes","nodeType":"ElementaryTypeName","src":"2966:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2965:22:42"},"returnParameters":{"id":15531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15530,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15532,"src":"3022:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15529,"name":"bool","nodeType":"ElementaryTypeName","src":"3022:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3021:6:42"},"scope":15659,"src":"2948:80:42","stateMutability":"payable","virtual":true,"visibility":"external"},{"documentation":{"id":15533,"nodeType":"StructuredDocumentation","src":"3034:198:42","text":"@notice Reclaim assets from the budget\n @param data_ The compressed data for the reclamation (amount, token address, token ID, etc.)\n @return True if the reclamation was successful"},"functionSelector":"f1c30ec0","id":15540,"implemented":false,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"3246:7:42","nodeType":"FunctionDefinition","parameters":{"id":15536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15535,"mutability":"mutable","name":"data_","nameLocation":"3269:5:42","nodeType":"VariableDeclaration","scope":15540,"src":"3254:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15534,"name":"bytes","nodeType":"ElementaryTypeName","src":"3254:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3253:22:42"},"returnParameters":{"id":15539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15540,"src":"3302:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15537,"name":"bool","nodeType":"ElementaryTypeName","src":"3302:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3301:6:42"},"scope":15659,"src":"3237:71:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":15541,"nodeType":"StructuredDocumentation","src":"3314:176:42","text":"@notice Disburse assets from the budget to a single recipient\n @param data_ The compressed {Transfer} request\n @return True if the disbursement was successful"},"functionSelector":"fa4ca9b1","id":15548,"implemented":false,"kind":"function","modifiers":[],"name":"disburse","nameLocation":"3504:8:42","nodeType":"FunctionDefinition","parameters":{"id":15544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15543,"mutability":"mutable","name":"data_","nameLocation":"3528:5:42","nodeType":"VariableDeclaration","scope":15548,"src":"3513:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15542,"name":"bytes","nodeType":"ElementaryTypeName","src":"3513:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3512:22:42"},"returnParameters":{"id":15547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15546,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15548,"src":"3561:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15545,"name":"bool","nodeType":"ElementaryTypeName","src":"3561:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3560:6:42"},"scope":15659,"src":"3495:72:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":15549,"nodeType":"StructuredDocumentation","src":"3573:189:42","text":"@notice Disburse assets from the budget to multiple recipients\n @param data_ The array of compressed {Transfer} requests\n @return True if all disbursements were successful"},"functionSelector":"61400c99","id":15557,"implemented":false,"kind":"function","modifiers":[],"name":"disburseBatch","nameLocation":"3776:13:42","nodeType":"FunctionDefinition","parameters":{"id":15553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15552,"mutability":"mutable","name":"data_","nameLocation":"3807:5:42","nodeType":"VariableDeclaration","scope":15557,"src":"3790:22:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":15550,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":15551,"nodeType":"ArrayTypeName","src":"3790:7:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3789:24:42"},"returnParameters":{"id":15556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15557,"src":"3840:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15554,"name":"bool","nodeType":"ElementaryTypeName","src":"3840:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3839:6:42"},"scope":15659,"src":"3767:79:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":15558,"nodeType":"StructuredDocumentation","src":"3852:198:42","text":"@notice Get the total amount of assets allocated to the budget, including any that have been distributed\n @param asset_ The address of the asset\n @return The total amount of assets"},"functionSelector":"d2514e84","id":15565,"implemented":false,"kind":"function","modifiers":[],"name":"total","nameLocation":"4064:5:42","nodeType":"FunctionDefinition","parameters":{"id":15561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15560,"mutability":"mutable","name":"asset_","nameLocation":"4078:6:42","nodeType":"VariableDeclaration","scope":15565,"src":"4070:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15559,"name":"address","nodeType":"ElementaryTypeName","src":"4070:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4069:16:42"},"returnParameters":{"id":15564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15565,"src":"4117:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15562,"name":"uint256","nodeType":"ElementaryTypeName","src":"4117:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4116:9:42"},"scope":15659,"src":"4055:71:42","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":15566,"nodeType":"StructuredDocumentation","src":"4132:173:42","text":"@notice Get the amount of assets available for distribution from the budget\n @param asset_ The address of the asset\n @return The amount of assets available"},"functionSelector":"10098ad5","id":15573,"implemented":false,"kind":"function","modifiers":[],"name":"available","nameLocation":"4319:9:42","nodeType":"FunctionDefinition","parameters":{"id":15569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15568,"mutability":"mutable","name":"asset_","nameLocation":"4337:6:42","nodeType":"VariableDeclaration","scope":15573,"src":"4329:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15567,"name":"address","nodeType":"ElementaryTypeName","src":"4329:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4328:16:42"},"returnParameters":{"id":15572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15573,"src":"4376:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4376:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4375:9:42"},"scope":15659,"src":"4310:75:42","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":15574,"nodeType":"StructuredDocumentation","src":"4391:175:42","text":"@notice Get the amount of assets that have been distributed from the budget\n @param asset_ The address of the asset\n @return The amount of assets distributed"},"functionSelector":"578bcf35","id":15581,"implemented":false,"kind":"function","modifiers":[],"name":"distributed","nameLocation":"4580:11:42","nodeType":"FunctionDefinition","parameters":{"id":15577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15576,"mutability":"mutable","name":"asset_","nameLocation":"4600:6:42","nodeType":"VariableDeclaration","scope":15581,"src":"4592:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15575,"name":"address","nodeType":"ElementaryTypeName","src":"4592:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4591:16:42"},"returnParameters":{"id":15580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15581,"src":"4639:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15578,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:9:42"},"scope":15659,"src":"4571:77:42","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":15582,"nodeType":"StructuredDocumentation","src":"4654:235:42","text":"@notice Reconcile the budget to ensure the known state matches the actual state\n @param data_ The compressed data for the reconciliation (amount, token address, token ID, etc.)\n @return The amount of assets reconciled"},"functionSelector":"451cc191","id":15589,"implemented":false,"kind":"function","modifiers":[],"name":"reconcile","nameLocation":"4903:9:42","nodeType":"FunctionDefinition","parameters":{"id":15585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15584,"mutability":"mutable","name":"data_","nameLocation":"4928:5:42","nodeType":"VariableDeclaration","scope":15589,"src":"4913:20:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15583,"name":"bytes","nodeType":"ElementaryTypeName","src":"4913:5:42","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4912:22:42"},"returnParameters":{"id":15588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15589,"src":"4961:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15586,"name":"uint256","nodeType":"ElementaryTypeName","src":"4961:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4960:9:42"},"scope":15659,"src":"4894:76:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":15590,"nodeType":"StructuredDocumentation","src":"4976:291:42","text":"@notice Set the authorized status of the given accounts\n @param accounts_ The accounts to authorize or deauthorize\n @param authorized_ The authorization status for the given accounts\n @dev The mechanism for managing authorization is left to the implementing contract"},"functionSelector":"4359d28a","id":15599,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorized","nameLocation":"5281:13:42","nodeType":"FunctionDefinition","parameters":{"id":15597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15593,"mutability":"mutable","name":"accounts_","nameLocation":"5314:9:42","nodeType":"VariableDeclaration","scope":15599,"src":"5295:28:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15591,"name":"address","nodeType":"ElementaryTypeName","src":"5295:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15592,"nodeType":"ArrayTypeName","src":"5295:9:42","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15596,"mutability":"mutable","name":"authorized_","nameLocation":"5341:11:42","nodeType":"VariableDeclaration","scope":15599,"src":"5325:27:42","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15594,"name":"bool","nodeType":"ElementaryTypeName","src":"5325:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15595,"nodeType":"ArrayTypeName","src":"5325:6:42","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"5294:59:42"},"returnParameters":{"id":15598,"nodeType":"ParameterList","parameters":[],"src":"5370:0:42"},"scope":15659,"src":"5272:99:42","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":15600,"nodeType":"StructuredDocumentation","src":"5377:256:42","text":"@notice Check if the given account is authorized to use the budget\n @param account_ The account to check\n @return True if the account is authorized\n @dev The mechanism for checking authorization is left to the implementing contract"},"functionSelector":"fe9fbb80","id":15607,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorized","nameLocation":"5647:12:42","nodeType":"FunctionDefinition","parameters":{"id":15603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15602,"mutability":"mutable","name":"account_","nameLocation":"5668:8:42","nodeType":"VariableDeclaration","scope":15607,"src":"5660:16:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15601,"name":"address","nodeType":"ElementaryTypeName","src":"5660:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5659:18:42"},"returnParameters":{"id":15606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15607,"src":"5709:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15604,"name":"bool","nodeType":"ElementaryTypeName","src":"5709:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5708:6:42"},"scope":15659,"src":"5638:77:42","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[18486],"body":{"id":15620,"nodeType":"Block","src":"5841:48:42","statements":[{"expression":{"expression":{"arguments":[{"id":15616,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"5863:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}],"id":15615,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5858:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5858:12:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Budget_$15659","typeString":"type(contract Budget)"}},"id":15618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5871:11:42","memberName":"interfaceId","nodeType":"MemberAccess","src":"5858:24:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":15614,"id":15619,"nodeType":"Return","src":"5851:31:42"}]},"documentation":{"id":15608,"nodeType":"StructuredDocumentation","src":"5721:25:42","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":15621,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"5760:21:42","nodeType":"FunctionDefinition","overrides":{"id":15611,"nodeType":"OverrideSpecifier","overrides":[{"id":15610,"name":"Cloneable","nameLocations":["5813:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"5813:9:42"}],"src":"5804:19:42"},"parameters":{"id":15609,"nodeType":"ParameterList","parameters":[],"src":"5781:2:42"},"returnParameters":{"id":15614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15621,"src":"5833:6:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15612,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5833:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5832:8:42"},"scope":15659,"src":"5751:138:42","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[18508],"body":{"id":15643,"nodeType":"Block","src":"6027:103:42","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":15636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15631,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15624,"src":"6044:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":15633,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"6064:6:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}],"id":15632,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6059:4:42","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":15634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6059:12:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Budget_$15659","typeString":"type(contract Budget)"}},"id":15635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6072:11:42","memberName":"interfaceId","nodeType":"MemberAccess","src":"6059:24:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6044:39:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":15639,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15624,"src":"6111:11:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":15637,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"6087:5:42","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Budget_$15659_$","typeString":"type(contract super Budget)"}},"id":15638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6093:17:42","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18508,"src":"6087:23:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":15640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6087:36:42","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6044:79:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15630,"id":15642,"nodeType":"Return","src":"6037:86:42"}]},"documentation":{"id":15622,"nodeType":"StructuredDocumentation","src":"5895:25:42","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":15644,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5934:17:42","nodeType":"FunctionDefinition","overrides":{"id":15627,"nodeType":"OverrideSpecifier","overrides":[{"id":15626,"name":"Cloneable","nameLocations":["6001:9:42"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"6001:9:42"}],"src":"5992:19:42"},"parameters":{"id":15625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15624,"mutability":"mutable","name":"interfaceId","nameLocation":"5959:11:42","nodeType":"VariableDeclaration","scope":15644,"src":"5952:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15623,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5952:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5951:20:42"},"returnParameters":{"id":15630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15644,"src":"6021:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15628,"name":"bool","nodeType":"ElementaryTypeName","src":"6021:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6020:6:42"},"scope":15659,"src":"5925:205:42","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[6201],"body":{"id":15650,"nodeType":"Block","src":"6209:23:42","statements":[{"functionReturnParameters":15648,"id":15649,"nodeType":"Return","src":"6219:7:42"}]},"documentation":{"id":15645,"nodeType":"StructuredDocumentation","src":"6136:24:42","text":"@inheritdoc Receiver"},"id":15651,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","overrides":{"id":15647,"nodeType":"OverrideSpecifier","overrides":[],"src":"6200:8:42"},"parameters":{"id":15646,"nodeType":"ParameterList","parameters":[],"src":"6172:2:42"},"returnParameters":{"id":15648,"nodeType":"ParameterList","parameters":[],"src":"6209:0:42"},"scope":15659,"src":"6165:67:42","stateMutability":"payable","virtual":true,"visibility":"external"},{"baseFunctions":[6208],"body":{"id":15657,"nodeType":"Block","src":"6312:23:42","statements":[{"functionReturnParameters":15655,"id":15656,"nodeType":"Return","src":"6322:7:42"}]},"documentation":{"id":15652,"nodeType":"StructuredDocumentation","src":"6238:24:42","text":"@inheritdoc Receiver"},"id":15658,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","overrides":{"id":15654,"nodeType":"OverrideSpecifier","overrides":[],"src":"6303:8:42"},"parameters":{"id":15653,"nodeType":"ParameterList","parameters":[],"src":"6275:2:42"},"returnParameters":{"id":15655,"nodeType":"ParameterList","parameters":[],"src":"6312:0:42"},"scope":15659,"src":"6267:68:42","stateMutability":"payable","virtual":true,"visibility":"external"}],"scope":15660,"src":"690:5647:42","usedErrors":[6221,6224,6227,6230,9103,9106,15496,15505,15514,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,15480,15489]}],"src":"36:6302:42"},"id":42},"contracts/budgets/SimpleBudget.sol":{"ast":{"absolutePath":"contracts/budgets/SimpleBudget.sol","exportedSymbols":{"ASimpleBudget":[14722],"SimpleBudget":[15730]},"id":15731,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15661,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:43"},{"absolutePath":"contracts/budgets/ASimpleBudget.sol","file":"contracts/budgets/ASimpleBudget.sol","id":15663,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15731,"sourceUnit":14723,"src":"62:66:43","symbolAliases":[{"foreign":{"id":15662,"name":"ASimpleBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14722,"src":"70:13:43","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15665,"name":"ASimpleBudget","nameLocations":["363:13:43"],"nodeType":"IdentifierPath","referencedDeclaration":14722,"src":"363:13:43"},"id":15666,"nodeType":"InheritanceSpecifier","src":"363:13:43"}],"canonicalName":"SimpleBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":15664,"nodeType":"StructuredDocumentation","src":"130:208:43","text":"@title Simple Budget\n @notice A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\n @dev This type of budget supports ETH, ERC20, and ERC1155 assets only"},"fullyImplemented":true,"id":15730,"linearizedBaseContracts":[15730,14722,11024,1218,15659,6215,18509,2831,2843,9211,6409],"name":"SimpleBudget","nameLocation":"347:12:43","nodeType":"ContractDefinition","nodes":[{"canonicalName":"SimpleBudget.InitPayload","documentation":{"id":15667,"nodeType":"StructuredDocumentation","src":"383:55:43","text":"@notice The payload for initializing a SimpleBudget"},"id":15673,"members":[{"constant":false,"id":15669,"mutability":"mutable","name":"owner","nameLocation":"480:5:43","nodeType":"VariableDeclaration","scope":15673,"src":"472:13:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15668,"name":"address","nodeType":"ElementaryTypeName","src":"472:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15672,"mutability":"mutable","name":"authorized","nameLocation":"505:10:43","nodeType":"VariableDeclaration","scope":15673,"src":"495:20:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15670,"name":"address","nodeType":"ElementaryTypeName","src":"495:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15671,"nodeType":"ArrayTypeName","src":"495:9:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"450:11:43","nodeType":"StructDefinition","scope":15730,"src":"443:79:43","visibility":"public"},{"body":{"id":15680,"nodeType":"Block","src":"780:39:43","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15677,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"790:20:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"790:22:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15679,"nodeType":"ExpressionStatement","src":"790:22:43"}]},"documentation":{"id":15674,"nodeType":"StructuredDocumentation","src":"528:233:43","text":"@notice Construct a new SimpleBudget\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":15681,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15675,"nodeType":"ParameterList","parameters":[],"src":"777:2:43"},"returnParameters":{"id":15676,"nodeType":"ParameterList","parameters":[],"src":"780:0:43"},"scope":15730,"src":"766:53:43","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[13802],"body":{"id":15728,"nodeType":"Block","src":"1034:244:43","statements":[{"assignments":[15692],"declarations":[{"constant":false,"id":15692,"mutability":"mutable","name":"init_","nameLocation":"1063:5:43","nodeType":"VariableDeclaration","scope":15728,"src":"1044:24:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15673_memory_ptr","typeString":"struct SimpleBudget.InitPayload"},"typeName":{"id":15691,"nodeType":"UserDefinedTypeName","pathNode":{"id":15690,"name":"InitPayload","nameLocations":["1044:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"1044:11:43"},"referencedDeclaration":15673,"src":"1044:11:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15673_storage_ptr","typeString":"struct SimpleBudget.InitPayload"}},"visibility":"internal"}],"id":15699,"initialValue":{"arguments":[{"id":15695,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15684,"src":"1082:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15696,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"1090:11:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15673_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}}],"id":15697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1089:13:43","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15673_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15673_storage_ptr_$","typeString":"type(struct SimpleBudget.InitPayload storage pointer)"}],"expression":{"id":15693,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1071:3:43","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15694,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1075:6:43","memberName":"decode","nodeType":"MemberAccess","src":"1071:10:43","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1071:32:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15673_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1044:59:43"},{"expression":{"arguments":[{"expression":{"id":15701,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15692,"src":"1130:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15673_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":15702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1136:5:43","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":15669,"src":"1130:11:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15700,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1113:16:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1113:29:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15704,"nodeType":"ExpressionStatement","src":"1113:29:43"},{"body":{"id":15726,"nodeType":"Block","src":"1206:66:43","statements":[{"expression":{"id":15724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15717,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13777,"src":"1220:13:43","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15722,"indexExpression":{"baseExpression":{"expression":{"id":15718,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15692,"src":"1234:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15673_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":15719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1240:10:43","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":15672,"src":"1234:16:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15721,"indexExpression":{"id":15720,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"1251:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1234:19:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1220:34:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1257:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1220:41:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15725,"nodeType":"ExpressionStatement","src":"1220:41:43"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15709,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"1172:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":15710,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15692,"src":"1176:5:43","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15673_memory_ptr","typeString":"struct SimpleBudget.InitPayload memory"}},"id":15711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1182:10:43","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":15672,"src":"1176:16:43","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1193:6:43","memberName":"length","nodeType":"MemberAccess","src":"1176:23:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1172:27:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15727,"initializationExpression":{"assignments":[15706],"declarations":[{"constant":false,"id":15706,"mutability":"mutable","name":"i","nameLocation":"1165:1:43","nodeType":"VariableDeclaration","scope":15727,"src":"1157:9:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15705,"name":"uint256","nodeType":"ElementaryTypeName","src":"1157:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15708,"initialValue":{"hexValue":"30","id":15707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1169:1:43","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1157:13:43"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1201:3:43","subExpression":{"id":15714,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"1201:1:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15716,"nodeType":"ExpressionStatement","src":"1201:3:43"},"nodeType":"ForStatement","src":"1152:120:43"}]},"documentation":{"id":15682,"nodeType":"StructuredDocumentation","src":"825:126:43","text":"@inheritdoc ASimpleBudget\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":15729,"implemented":true,"kind":"function","modifiers":[{"id":15688,"kind":"modifierInvocation","modifierName":{"id":15687,"name":"initializer","nameLocations":["1022:11:43"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1022:11:43"},"nodeType":"ModifierInvocation","src":"1022:11:43"}],"name":"initialize","nameLocation":"965:10:43","nodeType":"FunctionDefinition","overrides":{"id":15686,"nodeType":"OverrideSpecifier","overrides":[],"src":"1013:8:43"},"parameters":{"id":15685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15684,"mutability":"mutable","name":"data_","nameLocation":"991:5:43","nodeType":"VariableDeclaration","scope":15729,"src":"976:20:43","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15683,"name":"bytes","nodeType":"ElementaryTypeName","src":"976:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"975:22:43"},"returnParameters":{"id":15689,"nodeType":"ParameterList","parameters":[],"src":"1034:0:43"},"scope":15730,"src":"956:322:43","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":15731,"src":"338:942:43","usedErrors":[6221,6224,6227,6230,9103,9106,11006,15496,15505,15514,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,15480,15489]}],"src":"36:1245:43"},"id":43},"contracts/budgets/VestingBudget.sol":{"ast":{"absolutePath":"contracts/budgets/VestingBudget.sol","exportedSymbols":{"AVestingBudget":[15424],"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"IERC1155":[1176],"IERC1155Receiver":[1218],"IERC165":[2843],"ReentrancyGuard":[11024],"SafeTransferLib":[11358],"VestingBudget":[15838]},"id":15839,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15732,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:44"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":15734,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":1219,"src":"62:92:44","symbolAliases":[{"foreign":{"id":15733,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"70:16:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":15736,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":1177,"src":"155:76:44","symbolAliases":[{"foreign":{"id":15735,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"163:8:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":15738,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":2844,"src":"232:80:44","symbolAliases":[{"foreign":{"id":15737,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"240:7:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":15740,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":11359,"src":"314:66:44","symbolAliases":[{"foreign":{"id":15739,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"322:15:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":15742,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":11025,"src":"381:66:44","symbolAliases":[{"foreign":{"id":15741,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11024,"src":"389:15:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":15744,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":18344,"src":"449:59:44","symbolAliases":[{"foreign":{"id":15743,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"457:10:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":15746,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":15660,"src":"509:52:44","symbolAliases":[{"foreign":{"id":15745,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"517:6:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":15748,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":18510,"src":"562:57:44","symbolAliases":[{"foreign":{"id":15747,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"570:9:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/AVestingBudget.sol","file":"contracts/budgets/AVestingBudget.sol","id":15750,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15839,"sourceUnit":15425,"src":"620:68:44","symbolAliases":[{"foreign":{"id":15749,"name":"AVestingBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15424,"src":"628:14:44","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15752,"name":"AVestingBudget","nameLocations":["1888:14:44"],"nodeType":"IdentifierPath","referencedDeclaration":15424,"src":"1888:14:44"},"id":15753,"nodeType":"InheritanceSpecifier","src":"1888:14:44"}],"canonicalName":"VestingBudget","contractDependencies":[],"contractKind":"contract","documentation":{"id":15751,"nodeType":"StructuredDocumentation","src":"690:1172:44","text":"@title Vesting Budget\n @notice A vesting-based budget implementation that allows for the distribution of assets over time\n @dev Take note of the following when making use of this budget type:\n - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior.\n - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution.\n - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero.\n - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule."},"fullyImplemented":true,"id":15838,"linearizedBaseContracts":[15838,15424,11024,15659,6215,18509,2831,2843,9211,6409],"name":"VestingBudget","nameLocation":"1871:13:44","nodeType":"ContractDefinition","nodes":[{"canonicalName":"VestingBudget.InitPayload","documentation":{"id":15754,"nodeType":"StructuredDocumentation","src":"1909:56:44","text":"@notice The payload for initializing a VestingBudget"},"id":15766,"members":[{"constant":false,"id":15756,"mutability":"mutable","name":"owner","nameLocation":"2007:5:44","nodeType":"VariableDeclaration","scope":15766,"src":"1999:13:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15755,"name":"address","nodeType":"ElementaryTypeName","src":"1999:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15759,"mutability":"mutable","name":"authorized","nameLocation":"2032:10:44","nodeType":"VariableDeclaration","scope":15766,"src":"2022:20:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15757,"name":"address","nodeType":"ElementaryTypeName","src":"2022:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15758,"nodeType":"ArrayTypeName","src":"2022:9:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15761,"mutability":"mutable","name":"start","nameLocation":"2059:5:44","nodeType":"VariableDeclaration","scope":15766,"src":"2052:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15760,"name":"uint64","nodeType":"ElementaryTypeName","src":"2052:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15763,"mutability":"mutable","name":"duration","nameLocation":"2081:8:44","nodeType":"VariableDeclaration","scope":15766,"src":"2074:15:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15762,"name":"uint64","nodeType":"ElementaryTypeName","src":"2074:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15765,"mutability":"mutable","name":"cliff","nameLocation":"2106:5:44","nodeType":"VariableDeclaration","scope":15766,"src":"2099:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15764,"name":"uint64","nodeType":"ElementaryTypeName","src":"2099:6:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1977:11:44","nodeType":"StructDefinition","scope":15838,"src":"1970:148:44","visibility":"public"},{"body":{"id":15773,"nodeType":"Block","src":"2376:39:44","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15770,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"2386:20:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:22:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15772,"nodeType":"ExpressionStatement","src":"2386:22:44"}]},"documentation":{"id":15767,"nodeType":"StructuredDocumentation","src":"2124:233:44","text":"@notice Construct a new SimpleBudget\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":15774,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":15768,"nodeType":"ParameterList","parameters":[],"src":"2373:2:44"},"returnParameters":{"id":15769,"nodeType":"ParameterList","parameters":[],"src":"2376:0:44"},"scope":15838,"src":"2362:53:44","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[14792],"body":{"id":15836,"nodeType":"Block","src":"2611:339:44","statements":[{"assignments":[15785],"declarations":[{"constant":false,"id":15785,"mutability":"mutable","name":"init_","nameLocation":"2640:5:44","nodeType":"VariableDeclaration","scope":15836,"src":"2621:24:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload"},"typeName":{"id":15784,"nodeType":"UserDefinedTypeName","pathNode":{"id":15783,"name":"InitPayload","nameLocations":["2621:11:44"],"nodeType":"IdentifierPath","referencedDeclaration":15766,"src":"2621:11:44"},"referencedDeclaration":15766,"src":"2621:11:44","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_storage_ptr","typeString":"struct VestingBudget.InitPayload"}},"visibility":"internal"}],"id":15792,"initialValue":{"arguments":[{"id":15788,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15777,"src":"2659:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15789,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15766,"src":"2667:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15766_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}}],"id":15790,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2666:13:44","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15766_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$15766_storage_ptr_$","typeString":"type(struct VestingBudget.InitPayload storage pointer)"}],"expression":{"id":15786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2648:3:44","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2652:6:44","memberName":"decode","nodeType":"MemberAccess","src":"2648:10:44","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2648:32:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2621:59:44"},{"expression":{"id":15796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15793,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14761,"src":"2691:5:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15794,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"2699:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":15795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2705:5:44","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":15761,"src":"2699:11:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2691:19:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":15797,"nodeType":"ExpressionStatement","src":"2691:19:44"},{"expression":{"id":15801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15798,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"2720:8:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15799,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"2731:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":15800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2737:8:44","memberName":"duration","nodeType":"MemberAccess","referencedDeclaration":15763,"src":"2731:14:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2720:25:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":15802,"nodeType":"ExpressionStatement","src":"2720:25:44"},{"expression":{"id":15806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15803,"name":"cliff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14767,"src":"2755:5:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15804,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"2763:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":15805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2769:5:44","memberName":"cliff","nodeType":"MemberAccess","referencedDeclaration":15765,"src":"2763:11:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2755:19:44","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":15807,"nodeType":"ExpressionStatement","src":"2755:19:44"},{"expression":{"arguments":[{"expression":{"id":15809,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"2802:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":15810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2808:5:44","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":15756,"src":"2802:11:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15808,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"2785:16:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2785:29:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15812,"nodeType":"ExpressionStatement","src":"2785:29:44"},{"body":{"id":15834,"nodeType":"Block","src":"2878:66:44","statements":[{"expression":{"id":15832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15825,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14758,"src":"2892:13:44","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15830,"indexExpression":{"baseExpression":{"expression":{"id":15826,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"2906:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":15827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2912:10:44","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":15759,"src":"2906:16:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15829,"indexExpression":{"id":15828,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15814,"src":"2923:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2906:19:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2892:34:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2929:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2892:41:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15833,"nodeType":"ExpressionStatement","src":"2892:41:44"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15817,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15814,"src":"2844:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":15818,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15785,"src":"2848:5:44","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$15766_memory_ptr","typeString":"struct VestingBudget.InitPayload memory"}},"id":15819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2854:10:44","memberName":"authorized","nodeType":"MemberAccess","referencedDeclaration":15759,"src":"2848:16:44","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":15820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2865:6:44","memberName":"length","nodeType":"MemberAccess","src":"2848:23:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2844:27:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15835,"initializationExpression":{"assignments":[15814],"declarations":[{"constant":false,"id":15814,"mutability":"mutable","name":"i","nameLocation":"2837:1:44","nodeType":"VariableDeclaration","scope":15835,"src":"2829:9:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15813,"name":"uint256","nodeType":"ElementaryTypeName","src":"2829:7:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15816,"initialValue":{"hexValue":"30","id":15815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2841:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2829:13:44"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":15823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2873:3:44","subExpression":{"id":15822,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15814,"src":"2873:1:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15824,"nodeType":"ExpressionStatement","src":"2873:3:44"},"nodeType":"ForStatement","src":"2824:120:44"}]},"documentation":{"id":15775,"nodeType":"StructuredDocumentation","src":"2421:107:44","text":"@inheritdoc AVestingBudget\n @param data_ The packed init data for the budget (see {InitPayload})"},"functionSelector":"439fab91","id":15837,"implemented":true,"kind":"function","modifiers":[{"id":15781,"kind":"modifierInvocation","modifierName":{"id":15780,"name":"initializer","nameLocations":["2599:11:44"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"2599:11:44"},"nodeType":"ModifierInvocation","src":"2599:11:44"}],"name":"initialize","nameLocation":"2542:10:44","nodeType":"FunctionDefinition","overrides":{"id":15779,"nodeType":"OverrideSpecifier","overrides":[],"src":"2590:8:44"},"parameters":{"id":15778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15777,"mutability":"mutable","name":"data_","nameLocation":"2568:5:44","nodeType":"VariableDeclaration","scope":15837,"src":"2553:20:44","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15776,"name":"bytes","nodeType":"ElementaryTypeName","src":"2553:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2552:22:44"},"returnParameters":{"id":15782,"nodeType":"ParameterList","parameters":[],"src":"2611:0:44"},"scope":15838,"src":"2533:417:44","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":15839,"src":"1862:1090:44","usedErrors":[6221,6224,6227,6230,9103,9106,11006,15496,15505,15514,18318,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,15480,15489]}],"src":"36:2917:44"},"id":44},"contracts/incentives/AAllowListIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/AAllowListIncentive.sol","exportedSymbols":{"AAllowListIncentive":[16090],"BoostError":[18343],"Cloneable":[18509],"Incentive":[18196],"SimpleAllowList":[13665]},"id":16091,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":15840,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:45"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":15842,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16091,"sourceUnit":18344,"src":"62:59:45","symbolAliases":[{"foreign":{"id":15841,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"70:10:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":15844,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16091,"sourceUnit":18510,"src":"122:57:45","symbolAliases":[{"foreign":{"id":15843,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"130:9:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/SimpleAllowList.sol","file":"contracts/allowlists/SimpleAllowList.sol","id":15846,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16091,"sourceUnit":13666,"src":"181:73:45","symbolAliases":[{"foreign":{"id":15845,"name":"SimpleAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13665,"src":"189:15:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":15848,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16091,"sourceUnit":18197,"src":"255:61:45","symbolAliases":[{"foreign":{"id":15847,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"263:9:45","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":15850,"name":"Incentive","nameLocations":["745:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"745:9:45"},"id":15851,"nodeType":"InheritanceSpecifier","src":"745:9:45"}],"canonicalName":"AAllowListIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":15849,"nodeType":"StructuredDocumentation","src":"318:386:45","text":"@title SimpleAllowList Incentive\n @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n @dev In order for any claim to be successful:\n - The claimer must not already be on the allow list; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to modify the allow list"},"fullyImplemented":true,"id":16090,"linearizedBaseContracts":[16090,18196,11024,18509,2831,2843,9211,6409],"name":"AAllowListIncentive","nameLocation":"722:19:45","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":15852,"nodeType":"StructuredDocumentation","src":"761:40:45","text":"@notice The SimpleAllowList contract"},"functionSelector":"87b9d25c","id":15855,"mutability":"mutable","name":"allowList","nameLocation":"829:9:45","nodeType":"VariableDeclaration","scope":16090,"src":"806:32:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"},"typeName":{"id":15854,"nodeType":"UserDefinedTypeName","pathNode":{"id":15853,"name":"SimpleAllowList","nameLocations":["806:15:45"],"nodeType":"IdentifierPath","referencedDeclaration":13665,"src":"806:15:45"},"referencedDeclaration":13665,"src":"806:15:45","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"}},"visibility":"public"},{"constant":false,"documentation":{"id":15856,"nodeType":"StructuredDocumentation","src":"845:75:45","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":15858,"mutability":"mutable","name":"limit","nameLocation":"940:5:45","nodeType":"VariableDeclaration","scope":16090,"src":"925:20:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15857,"name":"uint256","nodeType":"ElementaryTypeName","src":"925:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"baseFunctions":[18474],"body":{"id":15868,"nodeType":"Block","src":"1108:41:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15865,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1125:15:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15867,"nodeType":"RevertStatement","src":"1118:24:45"}]},"documentation":{"id":15859,"nodeType":"StructuredDocumentation","src":"952:85:45","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the allowlist"},"functionSelector":"439fab91","id":15869,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1051:10:45","nodeType":"FunctionDefinition","overrides":{"id":15863,"nodeType":"OverrideSpecifier","overrides":[],"src":"1099:8:45"},"parameters":{"id":15862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15861,"mutability":"mutable","name":"data_","nameLocation":"1077:5:45","nodeType":"VariableDeclaration","scope":15869,"src":"1062:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15860,"name":"bytes","nodeType":"ElementaryTypeName","src":"1062:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1061:22:45"},"returnParameters":{"id":15864,"nodeType":"ParameterList","parameters":[],"src":"1108:0:45"},"scope":16090,"src":"1042:107:45","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[18125],"body":{"id":15932,"nodeType":"Block","src":"1363:363:45","statements":[{"assignments":[15882],"declarations":[{"constant":false,"id":15882,"mutability":"mutable","name":"claim_","nameLocation":"1393:6:45","nodeType":"VariableDeclaration","scope":15932,"src":"1373:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15881,"nodeType":"UserDefinedTypeName","pathNode":{"id":15880,"name":"ClaimPayload","nameLocations":["1373:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"1373:12:45"},"referencedDeclaration":18096,"src":"1373:12:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15889,"initialValue":{"arguments":[{"id":15885,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15872,"src":"1413:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15886,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"1421:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15887,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1420:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1402:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1406:6:45","memberName":"decode","nodeType":"MemberAccess","src":"1402:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1402:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1373:62:45"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1449:8:45","subExpression":{"id":15890,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"1449:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":15892,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15858,"src":"1461:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1449:17:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"id":15894,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"1470:7:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15897,"indexExpression":{"expression":{"id":15895,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"1478:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1485:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1478:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1470:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1449:43:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15902,"nodeType":"IfStatement","src":"1445:70:45","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":15899,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1501:12:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1501:14:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15901,"nodeType":"RevertStatement","src":"1494:21:45"}},{"expression":{"id":15908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15903,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"1525:7:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15906,"indexExpression":{"expression":{"id":15904,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"1533:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1540:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1533:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1525:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1550:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1525:29:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15909,"nodeType":"ExpressionStatement","src":"1525:29:45"},{"assignments":[15914,15917],"declarations":[{"constant":false,"id":15914,"mutability":"mutable","name":"users","nameLocation":"1583:5:45","nodeType":"VariableDeclaration","scope":15932,"src":"1566:22:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15912,"name":"address","nodeType":"ElementaryTypeName","src":"1566:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15913,"nodeType":"ArrayTypeName","src":"1566:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":15917,"mutability":"mutable","name":"allowed","nameLocation":"1604:7:45","nodeType":"VariableDeclaration","scope":15932,"src":"1590:21:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":15915,"name":"bool","nodeType":"ElementaryTypeName","src":"1590:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15916,"nodeType":"ArrayTypeName","src":"1590:6:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":15922,"initialValue":{"arguments":[{"expression":{"id":15919,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"1637:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1644:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1637:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15918,"name":"_makeAllowListPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16052,"src":"1615:21:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (address) pure returns (address[] memory,bool[] memory)"}},"id":15921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bool[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"1565:86:45"},{"expression":{"arguments":[{"id":15926,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15914,"src":"1683:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":15927,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15917,"src":"1690:7:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":15923,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15855,"src":"1662:9:45","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"}},"id":15925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1672:10:45","memberName":"setAllowed","nodeType":"MemberAccess","referencedDeclaration":13351,"src":"1662:20:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,bool[] memory) external"}},"id":15928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1662:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15929,"nodeType":"ExpressionStatement","src":"1662:36:45"},{"expression":{"hexValue":"74727565","id":15930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1715:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15879,"id":15931,"nodeType":"Return","src":"1708:11:45"}]},"documentation":{"id":15870,"nodeType":"StructuredDocumentation","src":"1155:115:45","text":"@inheritdoc Incentive\n @notice Claim a slot on the {SimpleAllowList}\n @param data_ The claim data"},"functionSelector":"c63ff8dd","id":15933,"implemented":true,"kind":"function","modifiers":[{"id":15876,"kind":"modifierInvocation","modifierName":{"id":15875,"name":"onlyOwner","nameLocations":["1338:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"1338:9:45"},"nodeType":"ModifierInvocation","src":"1338:9:45"}],"name":"claim","nameLocation":"1284:5:45","nodeType":"FunctionDefinition","overrides":{"id":15874,"nodeType":"OverrideSpecifier","overrides":[],"src":"1329:8:45"},"parameters":{"id":15873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15872,"mutability":"mutable","name":"data_","nameLocation":"1305:5:45","nodeType":"VariableDeclaration","scope":15933,"src":"1290:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15871,"name":"bytes","nodeType":"ElementaryTypeName","src":"1290:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1289:22:45"},"returnParameters":{"id":15879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15933,"src":"1357:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15877,"name":"bool","nodeType":"ElementaryTypeName","src":"1357:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1356:6:45"},"scope":16090,"src":"1275:451:45","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[18133],"body":{"id":15947,"nodeType":"Block","src":"1895:51:45","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":15942,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1912:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":15944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1923:14:45","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":18321,"src":"1912:25:45","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":15945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:27:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":15946,"nodeType":"RevertStatement","src":"1905:34:45"}]},"documentation":{"id":15934,"nodeType":"StructuredDocumentation","src":"1732:87:45","text":"@inheritdoc Incentive\n @dev Not a valid operation for this type of incentive"},"functionSelector":"f1c30ec0","id":15948,"implemented":true,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"1833:7:45","nodeType":"FunctionDefinition","overrides":{"id":15938,"nodeType":"OverrideSpecifier","overrides":[],"src":"1871:8:45"},"parameters":{"id":15937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15948,"src":"1841:14:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15935,"name":"bytes","nodeType":"ElementaryTypeName","src":"1841:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1840:16:45"},"returnParameters":{"id":15941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15948,"src":"1889:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15939,"name":"bool","nodeType":"ElementaryTypeName","src":"1889:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1888:6:45"},"scope":16090,"src":"1824:122:45","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[18141],"body":{"id":15985,"nodeType":"Block","src":"2071:180:45","statements":[{"assignments":[15959],"declarations":[{"constant":false,"id":15959,"mutability":"mutable","name":"claim_","nameLocation":"2101:6:45","nodeType":"VariableDeclaration","scope":15985,"src":"2081:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":15958,"nodeType":"UserDefinedTypeName","pathNode":{"id":15957,"name":"ClaimPayload","nameLocations":["2081:12:45"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"2081:12:45"},"referencedDeclaration":18096,"src":"2081:12:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":15966,"initialValue":{"arguments":[{"id":15962,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15951,"src":"2121:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":15963,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"2129:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":15964,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2128:14:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":15960,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2110:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2114:6:45","memberName":"decode","nodeType":"MemberAccess","src":"2110:10:45","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":15965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:33:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2081:62:45"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15967,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"2160:6:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":15968,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15858,"src":"2169:5:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2160:14:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2178:23:45","subExpression":{"baseExpression":{"id":15970,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"2179:7:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":15973,"indexExpression":{"expression":{"id":15971,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"2187:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2194:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2187:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2179:22:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2160:41:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":15982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2205:39:45","subExpression":{"arguments":[{"expression":{"id":15978,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15959,"src":"2226:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":15979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2233:6:45","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2226:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"","id":15980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2241:2:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":15976,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15855,"src":"2206:9:45","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"}},"id":15977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2216:9:45","memberName":"isAllowed","nodeType":"MemberAccess","referencedDeclaration":13303,"src":"2206:19:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes memory) view external returns (bool)"}},"id":15981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2206:38:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2160:84:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15956,"id":15984,"nodeType":"Return","src":"2153:91:45"}]},"documentation":{"id":15949,"nodeType":"StructuredDocumentation","src":"1952:25:45","text":"@inheritdoc Incentive"},"functionSelector":"e18e6508","id":15986,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"1991:11:45","nodeType":"FunctionDefinition","overrides":{"id":15953,"nodeType":"OverrideSpecifier","overrides":[],"src":"2047:8:45"},"parameters":{"id":15952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15951,"mutability":"mutable","name":"data_","nameLocation":"2018:5:45","nodeType":"VariableDeclaration","scope":15986,"src":"2003:20:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15950,"name":"bytes","nodeType":"ElementaryTypeName","src":"2003:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2002:22:45"},"returnParameters":{"id":15956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15986,"src":"2065:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15954,"name":"bool","nodeType":"ElementaryTypeName","src":"2065:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2064:6:45"},"scope":16090,"src":"1982:269:45","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[18149],"body":{"id":16000,"nodeType":"Block","src":"2458:36:45","statements":[{"expression":{"arguments":[{"hexValue":"30","id":15997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2485:1:45","typeDescriptions":{"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":15996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2475:9:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":15995,"name":"bytes","nodeType":"ElementaryTypeName","src":"2479:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":15998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2475:12:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15994,"id":15999,"nodeType":"Return","src":"2468:19:45"}]},"documentation":{"id":15987,"nodeType":"StructuredDocumentation","src":"2257:115:45","text":"@inheritdoc Incentive\n @dev No preflight approval is required for this incentive (no tokens are handled)"},"functionSelector":"4e7165a2","id":16001,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2386:9:45","nodeType":"FunctionDefinition","overrides":{"id":15991,"nodeType":"OverrideSpecifier","overrides":[],"src":"2426:8:45"},"parameters":{"id":15990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16001,"src":"2396:14:45","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15988,"name":"bytes","nodeType":"ElementaryTypeName","src":"2396:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2395:16:45"},"returnParameters":{"id":15994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16001,"src":"2444:12:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15992,"name":"bytes","nodeType":"ElementaryTypeName","src":"2444:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2443:14:45"},"scope":16090,"src":"2377:117:45","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":16051,"nodeType":"Block","src":"2784:193:45","statements":[{"assignments":[16017],"declarations":[{"constant":false,"id":16017,"mutability":"mutable","name":"users","nameLocation":"2811:5:45","nodeType":"VariableDeclaration","scope":16051,"src":"2794:22:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16015,"name":"address","nodeType":"ElementaryTypeName","src":"2794:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16016,"nodeType":"ArrayTypeName","src":"2794:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":16023,"initialValue":{"arguments":[{"hexValue":"31","id":16021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2833:1:45","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":16020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2819:13:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":16018,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16019,"nodeType":"ArrayTypeName","src":"2823:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":16022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2819:16:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2794:41:45"},{"assignments":[16028],"declarations":[{"constant":false,"id":16028,"mutability":"mutable","name":"allowed","nameLocation":"2859:7:45","nodeType":"VariableDeclaration","scope":16051,"src":"2845:21:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":16026,"name":"bool","nodeType":"ElementaryTypeName","src":"2845:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16027,"nodeType":"ArrayTypeName","src":"2845:6:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"id":16034,"initialValue":{"arguments":[{"hexValue":"31","id":16032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2880:1:45","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":16031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2869:10:45","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bool[] memory)"},"typeName":{"baseType":{"id":16029,"name":"bool","nodeType":"ElementaryTypeName","src":"2873:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16030,"nodeType":"ArrayTypeName","src":"2873:6:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}}},"id":16033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2869:13:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2845:37:45"},{"expression":{"id":16039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16035,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16017,"src":"2892:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":16037,"indexExpression":{"hexValue":"30","id":16036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2898:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2892:8:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16038,"name":"target_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16004,"src":"2903:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2892:18:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16040,"nodeType":"ExpressionStatement","src":"2892:18:45"},{"expression":{"id":16045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16041,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16028,"src":"2920:7:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"id":16043,"indexExpression":{"hexValue":"30","id":16042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2928:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2920:10:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2933:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2920:17:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16046,"nodeType":"ExpressionStatement","src":"2920:17:45"},{"expression":{"components":[{"id":16047,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16017,"src":"2955:5:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":16048,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16028,"src":"2962:7:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"id":16049,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2954:16:45","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bool[] memory)"}},"functionReturnParameters":16012,"id":16050,"nodeType":"Return","src":"2947:23:45"}]},"documentation":{"id":16002,"nodeType":"StructuredDocumentation","src":"2500:175:45","text":"@notice Create the payload for the SimpleAllowList\n @param target_ The target address to add to the allow list\n @return A tuple of users and allowed statuses"},"id":16052,"implemented":true,"kind":"function","modifiers":[],"name":"_makeAllowListPayload","nameLocation":"2689:21:45","nodeType":"FunctionDefinition","parameters":{"id":16005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16004,"mutability":"mutable","name":"target_","nameLocation":"2719:7:45","nodeType":"VariableDeclaration","scope":16052,"src":"2711:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16003,"name":"address","nodeType":"ElementaryTypeName","src":"2711:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2710:17:45"},"returnParameters":{"id":16012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16052,"src":"2751:16:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":16006,"name":"address","nodeType":"ElementaryTypeName","src":"2751:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16007,"nodeType":"ArrayTypeName","src":"2751:9:45","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":16011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16052,"src":"2769:13:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":16009,"name":"bool","nodeType":"ElementaryTypeName","src":"2769:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16010,"nodeType":"ArrayTypeName","src":"2769:6:45","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2750:33:45"},"scope":16090,"src":"2680:297:45","stateMutability":"pure","virtual":false,"visibility":"internal"},{"baseFunctions":[18195],"body":{"id":16065,"nodeType":"Block","src":"3103:61:45","statements":[{"expression":{"expression":{"arguments":[{"id":16061,"name":"AAllowListIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16090,"src":"3125:19:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AAllowListIncentive_$16090_$","typeString":"type(contract AAllowListIncentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AAllowListIncentive_$16090_$","typeString":"type(contract AAllowListIncentive)"}],"id":16060,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3120:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3120:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AAllowListIncentive_$16090","typeString":"type(contract AAllowListIncentive)"}},"id":16063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3146:11:45","memberName":"interfaceId","nodeType":"MemberAccess","src":"3120:37:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16059,"id":16064,"nodeType":"Return","src":"3113:44:45"}]},"documentation":{"id":16053,"nodeType":"StructuredDocumentation","src":"2983:25:45","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":16066,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"3022:21:45","nodeType":"FunctionDefinition","overrides":{"id":16056,"nodeType":"OverrideSpecifier","overrides":[{"id":16055,"name":"Incentive","nameLocations":["3075:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"3075:9:45"}],"src":"3066:19:45"},"parameters":{"id":16054,"nodeType":"ParameterList","parameters":[],"src":"3043:2:45"},"returnParameters":{"id":16059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16058,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16066,"src":"3095:6:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16057,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3095:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3094:8:45"},"scope":16090,"src":"3013:151:45","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[18181],"body":{"id":16088,"nodeType":"Block","src":"3302:116:45","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16076,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16069,"src":"3319:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":16078,"name":"AAllowListIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16090,"src":"3339:19:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AAllowListIncentive_$16090_$","typeString":"type(contract AAllowListIncentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AAllowListIncentive_$16090_$","typeString":"type(contract AAllowListIncentive)"}],"id":16077,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3334:4:45","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3334:25:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AAllowListIncentive_$16090","typeString":"type(contract AAllowListIncentive)"}},"id":16080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3360:11:45","memberName":"interfaceId","nodeType":"MemberAccess","src":"3334:37:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3319:52:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":16084,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16069,"src":"3399:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16082,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3375:5:45","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AAllowListIncentive_$16090_$","typeString":"type(contract super AAllowListIncentive)"}},"id":16083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3381:17:45","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"3375:23:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3375:36:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3319:92:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16075,"id":16087,"nodeType":"Return","src":"3312:99:45"}]},"documentation":{"id":16067,"nodeType":"StructuredDocumentation","src":"3170:25:45","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":16089,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3209:17:45","nodeType":"FunctionDefinition","overrides":{"id":16072,"nodeType":"OverrideSpecifier","overrides":[{"id":16071,"name":"Incentive","nameLocations":["3276:9:45"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"3276:9:45"}],"src":"3267:19:45"},"parameters":{"id":16070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16069,"mutability":"mutable","name":"interfaceId","nameLocation":"3234:11:45","nodeType":"VariableDeclaration","scope":16089,"src":"3227:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16068,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3227:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3226:20:45"},"returnParameters":{"id":16075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16089,"src":"3296:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16073,"name":"bool","nodeType":"ElementaryTypeName","src":"3296:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3295:6:45"},"scope":16090,"src":"3200:218:45","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":16091,"src":"704:2716:45","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18321,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:3385:45"},"id":45},"contracts/incentives/ACGDAIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/ACGDAIncentive.sol","exportedSymbols":{"ACGDAIncentive":[16417],"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"Incentive":[18196],"SafeTransferLib":[11358]},"id":16418,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":16092,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:46"},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":16094,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16418,"sourceUnit":11359,"src":"62:66:46","symbolAliases":[{"foreign":{"id":16093,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"70:15:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":16096,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16418,"sourceUnit":18510,"src":"130:57:46","symbolAliases":[{"foreign":{"id":16095,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"138:9:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":16098,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16418,"sourceUnit":18344,"src":"188:59:46","symbolAliases":[{"foreign":{"id":16097,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"196:10:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":16100,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16418,"sourceUnit":15660,"src":"249:52:46","symbolAliases":[{"foreign":{"id":16099,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"257:6:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":16102,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16418,"sourceUnit":18197,"src":"303:42:46","symbolAliases":[{"foreign":{"id":16101,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"311:9:46","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":16104,"name":"Incentive","nameLocations":["548:9:46"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"548:9:46"},"id":16105,"nodeType":"InheritanceSpecifier","src":"548:9:46"}],"canonicalName":"ACGDAIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":16103,"nodeType":"StructuredDocumentation","src":"347:165:46","text":"@title Continuous Gradual Dutch Auction Incentive\n @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume."},"fullyImplemented":false,"id":16417,"linearizedBaseContracts":[16417,18196,11024,18509,2831,2843,9211,6409],"name":"ACGDAIncentive","nameLocation":"530:14:46","nodeType":"ContractDefinition","nodes":[{"global":false,"id":16108,"libraryName":{"id":16106,"name":"SafeTransferLib","nameLocations":["570:15:46"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"570:15:46"},"nodeType":"UsingForDirective","src":"564:34:46","typeName":{"id":16107,"name":"address","nodeType":"ElementaryTypeName","src":"590:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":16109,"nodeType":"StructuredDocumentation","src":"604:55:46","text":"@notice The ERC20-like token used for the incentive"},"functionSelector":"38d52e0f","id":16111,"mutability":"mutable","name":"asset","nameLocation":"679:5:46","nodeType":"VariableDeclaration","scope":16417,"src":"664:20:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16110,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"canonicalName":"ACGDAIncentive.CGDAParameters","documentation":{"id":16112,"nodeType":"StructuredDocumentation","src":"691:396:46","text":"@notice The configuration parameters for the CGDAIncentive\n @param rewardDecay The amount to subtract from the current reward after each claim\n @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n @param lastClaimTime The timestamp of the last claim\n @param currentReward The current reward amount"},"id":16121,"members":[{"constant":false,"id":16114,"mutability":"mutable","name":"rewardDecay","nameLocation":"1132:11:46","nodeType":"VariableDeclaration","scope":16121,"src":"1124:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16113,"name":"uint256","nodeType":"ElementaryTypeName","src":"1124:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16116,"mutability":"mutable","name":"rewardBoost","nameLocation":"1161:11:46","nodeType":"VariableDeclaration","scope":16121,"src":"1153:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16115,"name":"uint256","nodeType":"ElementaryTypeName","src":"1153:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16118,"mutability":"mutable","name":"lastClaimTime","nameLocation":"1190:13:46","nodeType":"VariableDeclaration","scope":16121,"src":"1182:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16117,"name":"uint256","nodeType":"ElementaryTypeName","src":"1182:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16120,"mutability":"mutable","name":"currentReward","nameLocation":"1221:13:46","nodeType":"VariableDeclaration","scope":16121,"src":"1213:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16119,"name":"uint256","nodeType":"ElementaryTypeName","src":"1213:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CGDAParameters","nameLocation":"1099:14:46","nodeType":"StructDefinition","scope":16417,"src":"1092:149:46","visibility":"public"},{"constant":false,"functionSelector":"75ef18d0","id":16124,"mutability":"mutable","name":"cgdaParams","nameLocation":"1269:10:46","nodeType":"VariableDeclaration","scope":16417,"src":"1247:32:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters"},"typeName":{"id":16123,"nodeType":"UserDefinedTypeName","pathNode":{"id":16122,"name":"CGDAParameters","nameLocations":["1247:14:46"],"nodeType":"IdentifierPath","referencedDeclaration":16121,"src":"1247:14:46"},"referencedDeclaration":16121,"src":"1247:14:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage_ptr","typeString":"struct ACGDAIncentive.CGDAParameters"}},"visibility":"public"},{"constant":false,"functionSelector":"c78da39a","id":16126,"mutability":"mutable","name":"totalBudget","nameLocation":"1300:11:46","nodeType":"VariableDeclaration","scope":16417,"src":"1285:26:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16125,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"baseFunctions":[18474],"body":{"id":16136,"nodeType":"Block","src":"1474:41:46","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16133,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1491:15:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:17:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16135,"nodeType":"RevertStatement","src":"1484:24:46"}]},"documentation":{"id":16127,"nodeType":"StructuredDocumentation","src":"1318:85:46","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the incentive"},"functionSelector":"439fab91","id":16137,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1417:10:46","nodeType":"FunctionDefinition","overrides":{"id":16131,"nodeType":"OverrideSpecifier","overrides":[],"src":"1465:8:46"},"parameters":{"id":16130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16129,"mutability":"mutable","name":"data_","nameLocation":"1443:5:46","nodeType":"VariableDeclaration","scope":16137,"src":"1428:20:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16128,"name":"bytes","nodeType":"ElementaryTypeName","src":"1428:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1427:22:46"},"returnParameters":{"id":16132,"nodeType":"ParameterList","parameters":[],"src":"1474:0:46"},"scope":16417,"src":"1408:107:46","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[18125],"body":{"id":16220,"nodeType":"Block","src":"1675:664:46","statements":[{"assignments":[16150],"declarations":[{"constant":false,"id":16150,"mutability":"mutable","name":"claim_","nameLocation":"1705:6:46","nodeType":"VariableDeclaration","scope":16220,"src":"1685:26:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16149,"nodeType":"UserDefinedTypeName","pathNode":{"id":16148,"name":"ClaimPayload","nameLocations":["1685:12:46"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"1685:12:46"},"referencedDeclaration":18096,"src":"1685:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16157,"initialValue":{"arguments":[{"id":16153,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16140,"src":"1725:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16154,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"1733:12:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1732:14:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1714:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1718:6:46","memberName":"decode","nodeType":"MemberAccess","src":"1714:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1714:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1685:62:46"},{"condition":{"id":16162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1761:28:46","subExpression":{"arguments":[{"expression":{"id":16159,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16150,"src":"1775:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1775:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16158,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16379,"src":"1762:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1762:27:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16166,"nodeType":"IfStatement","src":"1757:55:46","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16163,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1798:12:46","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1798:14:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16165,"nodeType":"RevertStatement","src":"1791:21:46"}},{"expression":{"id":16168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1822:8:46","subExpression":{"id":16167,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"1822:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16169,"nodeType":"ExpressionStatement","src":"1822:8:46"},{"assignments":[16171],"declarations":[{"constant":false,"id":16171,"mutability":"mutable","name":"reward","nameLocation":"1910:6:46","nodeType":"VariableDeclaration","scope":16220,"src":"1902:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16170,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16174,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":16172,"name":"currentReward","nodeType":"Identifier","overloadedDeclarations":[16347],"referencedDeclaration":16347,"src":"1919:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":16173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1919:15:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1902:32:46"},{"expression":{"id":16180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16175,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"1944:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1955:13:46","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":16118,"src":"1944:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16178,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1971:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1977:9:46","memberName":"timestamp","nodeType":"MemberAccess","src":"1971:15:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1944:42:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16181,"nodeType":"ExpressionStatement","src":"1944:42:46"},{"expression":{"id":16196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16182,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"1996:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2007:13:46","memberName":"currentReward","nodeType":"MemberAccess","referencedDeclaration":16120,"src":"1996:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16185,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16171,"src":"2035:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":16186,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"2044:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2055:11:46","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":16114,"src":"2044:22:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2035:31:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":16193,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"2103:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2114:11:46","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":16114,"src":"2103:22:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2035:90:46","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16189,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16171,"src":"2069:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16190,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"2078:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2089:11:46","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":16114,"src":"2078:22:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2069:31:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1996:129:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16197,"nodeType":"ExpressionStatement","src":"1996:129:46"},{"expression":{"arguments":[{"expression":{"id":16201,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16150,"src":"2203:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2210:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2203:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16203,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16171,"src":"2218:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16198,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"2184:5:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2190:12:46","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11205,"src":"2184:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":16204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2184:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16205,"nodeType":"ExpressionStatement","src":"2184:41:46"},{"eventCall":{"arguments":[{"expression":{"id":16207,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16150,"src":"2249:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2256:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2249:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16211,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"2281:5:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16212,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16150,"src":"2288:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2295:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2288:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16214,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16171,"src":"2303:6:46","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":16209,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2264:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2268:12:46","memberName":"encodePacked","nodeType":"MemberAccess","src":"2264:16:46","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2264:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16206,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"2241:7:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2241:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16217,"nodeType":"EmitStatement","src":"2236:75:46"},{"expression":{"hexValue":"74727565","id":16218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2328:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16147,"id":16219,"nodeType":"Return","src":"2321:11:46"}]},"documentation":{"id":16138,"nodeType":"StructuredDocumentation","src":"1521:61:46","text":"@inheritdoc Incentive\n @notice Claim the incentive"},"functionSelector":"c63ff8dd","id":16221,"implemented":true,"kind":"function","modifiers":[{"id":16144,"kind":"modifierInvocation","modifierName":{"id":16143,"name":"onlyOwner","nameLocations":["1650:9:46"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"1650:9:46"},"nodeType":"ModifierInvocation","src":"1650:9:46"}],"name":"claim","nameLocation":"1596:5:46","nodeType":"FunctionDefinition","overrides":{"id":16142,"nodeType":"OverrideSpecifier","overrides":[],"src":"1641:8:46"},"parameters":{"id":16141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16140,"mutability":"mutable","name":"data_","nameLocation":"1617:5:46","nodeType":"VariableDeclaration","scope":16221,"src":"1602:20:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16139,"name":"bytes","nodeType":"ElementaryTypeName","src":"1602:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1601:22:46"},"returnParameters":{"id":16147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16221,"src":"1669:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16145,"name":"bool","nodeType":"ElementaryTypeName","src":"1669:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1668:6:46"},"scope":16417,"src":"1587:752:46","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[18133],"body":{"id":16275,"nodeType":"Block","src":"2465:363:46","statements":[{"assignments":[16234],"declarations":[{"constant":false,"id":16234,"mutability":"mutable","name":"claim_","nameLocation":"2495:6:46","nodeType":"VariableDeclaration","scope":16275,"src":"2475:26:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16233,"nodeType":"UserDefinedTypeName","pathNode":{"id":16232,"name":"ClaimPayload","nameLocations":["2475:12:46"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"2475:12:46"},"referencedDeclaration":18096,"src":"2475:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16241,"initialValue":{"arguments":[{"id":16237,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16224,"src":"2515:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16238,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"2523:12:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2522:14:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16235,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2504:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2508:6:46","memberName":"decode","nodeType":"MemberAccess","src":"2504:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2504:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2475:62:46"},{"assignments":[16243],"declarations":[{"constant":false,"id":16243,"mutability":"mutable","name":"amount","nameLocation":"2556:6:46","nodeType":"VariableDeclaration","scope":16275,"src":"2548:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16242,"name":"uint256","nodeType":"ElementaryTypeName","src":"2548:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16252,"initialValue":{"arguments":[{"expression":{"id":16246,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"2577:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2584:4:46","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":18095,"src":"2577:11:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2591:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16248,"name":"uint256","nodeType":"ElementaryTypeName","src":"2591:7:46","typeDescriptions":{}}}],"id":16250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2590:9:46","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":16244,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2566:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2570:6:46","memberName":"decode","nodeType":"MemberAccess","src":"2566:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2566:34:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2547:53:46"},{"expression":{"arguments":[{"expression":{"id":16256,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"2692:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2699:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2692:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16258,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16243,"src":"2707:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16253,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"2673:5:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2679:12:46","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11205,"src":"2673:18:46","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":16259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:41:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16260,"nodeType":"ExpressionStatement","src":"2673:41:46"},{"eventCall":{"arguments":[{"expression":{"id":16262,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"2737:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2744:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2737:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16266,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"2769:5:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16267,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"2776:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2783:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2776:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16269,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16243,"src":"2791:6:46","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":16264,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2752:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2756:12:46","memberName":"encodePacked","nodeType":"MemberAccess","src":"2752:16:46","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2752:46:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16261,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"2729:7:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:70:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16272,"nodeType":"EmitStatement","src":"2724:75:46"},{"expression":{"hexValue":"74727565","id":16273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2817:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16231,"id":16274,"nodeType":"Return","src":"2810:11:46"}]},"documentation":{"id":16222,"nodeType":"StructuredDocumentation","src":"2345:25:46","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":16276,"implemented":true,"kind":"function","modifiers":[{"id":16228,"kind":"modifierInvocation","modifierName":{"id":16227,"name":"onlyOwner","nameLocations":["2440:9:46"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"2440:9:46"},"nodeType":"ModifierInvocation","src":"2440:9:46"}],"name":"reclaim","nameLocation":"2384:7:46","nodeType":"FunctionDefinition","overrides":{"id":16226,"nodeType":"OverrideSpecifier","overrides":[],"src":"2431:8:46"},"parameters":{"id":16225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16224,"mutability":"mutable","name":"data_","nameLocation":"2407:5:46","nodeType":"VariableDeclaration","scope":16276,"src":"2392:20:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16223,"name":"bytes","nodeType":"ElementaryTypeName","src":"2392:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2391:22:46"},"returnParameters":{"id":16231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16276,"src":"2459:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16229,"name":"bool","nodeType":"ElementaryTypeName","src":"2459:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2458:6:46"},"scope":16417,"src":"2375:453:46","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[18141],"body":{"id":16300,"nodeType":"Block","src":"2953:123:46","statements":[{"assignments":[16287],"declarations":[{"constant":false,"id":16287,"mutability":"mutable","name":"claim_","nameLocation":"2983:6:46","nodeType":"VariableDeclaration","scope":16300,"src":"2963:26:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16286,"nodeType":"UserDefinedTypeName","pathNode":{"id":16285,"name":"ClaimPayload","nameLocations":["2963:12:46"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"2963:12:46"},"referencedDeclaration":18096,"src":"2963:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16294,"initialValue":{"arguments":[{"id":16290,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16279,"src":"3003:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16291,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"3011:12:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3010:14:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2992:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2996:6:46","memberName":"decode","nodeType":"MemberAccess","src":"2992:10:46","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2992:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2963:62:46"},{"expression":{"arguments":[{"expression":{"id":16296,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16287,"src":"3055:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3062:6:46","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"3055:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16295,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16379,"src":"3042:12:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3042:27:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16284,"id":16299,"nodeType":"Return","src":"3035:34:46"}]},"documentation":{"id":16277,"nodeType":"StructuredDocumentation","src":"2834:25:46","text":"@inheritdoc Incentive"},"functionSelector":"e18e6508","id":16301,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"2873:11:46","nodeType":"FunctionDefinition","overrides":{"id":16281,"nodeType":"OverrideSpecifier","overrides":[],"src":"2929:8:46"},"parameters":{"id":16280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16279,"mutability":"mutable","name":"data_","nameLocation":"2900:5:46","nodeType":"VariableDeclaration","scope":16301,"src":"2885:20:46","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16278,"name":"bytes","nodeType":"ElementaryTypeName","src":"2885:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2884:22:46"},"returnParameters":{"id":16284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16301,"src":"2947:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16282,"name":"bool","nodeType":"ElementaryTypeName","src":"2947:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2946:6:46"},"scope":16417,"src":"2864:212:46","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[18158],"body":{"id":16346,"nodeType":"Block","src":"3718:514:46","statements":[{"assignments":[16309],"declarations":[{"constant":false,"id":16309,"mutability":"mutable","name":"timeSinceLastClaim","nameLocation":"3736:18:46","nodeType":"VariableDeclaration","scope":16346,"src":"3728:26:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3728:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16315,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16310,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3757:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3763:9:46","memberName":"timestamp","nodeType":"MemberAccess","src":"3757:15:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16312,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"3775:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3786:13:46","memberName":"lastClaimTime","nodeType":"MemberAccess","referencedDeclaration":16118,"src":"3775:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3757:42:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3728:71:46"},{"assignments":[16317],"declarations":[{"constant":false,"id":16317,"mutability":"mutable","name":"available","nameLocation":"3817:9:46","nodeType":"VariableDeclaration","scope":16346,"src":"3809:17:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16316,"name":"uint256","nodeType":"ElementaryTypeName","src":"3809:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16325,"initialValue":{"arguments":[{"arguments":[{"id":16322,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3853:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_ACGDAIncentive_$16417","typeString":"contract ACGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ACGDAIncentive_$16417","typeString":"contract ACGDAIncentive"}],"id":16321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3845:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16320,"name":"address","nodeType":"ElementaryTypeName","src":"3845:7:46","typeDescriptions":{}}},"id":16323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3845:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16318,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"3829:5:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3835:9:46","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"3829:15:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3829:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3809:50:46"},{"assignments":[16327],"declarations":[{"constant":false,"id":16327,"mutability":"mutable","name":"projectedReward","nameLocation":"4054:15:46","nodeType":"VariableDeclaration","scope":16346,"src":"4046:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4046:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16338,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16328,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"4072:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4083:13:46","memberName":"currentReward","nodeType":"MemberAccess","referencedDeclaration":16120,"src":"4072:24:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16330,"name":"timeSinceLastClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16309,"src":"4100:18:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":16331,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"4121:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":16332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4132:11:46","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":16116,"src":"4121:22:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4100:43:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4099:45:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33363030","id":16335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4147:4:46","typeDescriptions":{"typeIdentifier":"t_rational_3600_by_1","typeString":"int_const 3600"},"value":"3600"},"src":"4099:52:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4072:79:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4046:105:46"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16339,"name":"projectedReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"4168:15:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16340,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16317,"src":"4186:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4168:27:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":16343,"name":"projectedReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16327,"src":"4210:15:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4168:57:46","trueExpression":{"id":16342,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16317,"src":"4198:9:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16307,"id":16345,"nodeType":"Return","src":"4161:64:46"}]},"documentation":{"id":16302,"nodeType":"StructuredDocumentation","src":"3082:567:46","text":"@notice Calculates the current reward based on the time since the last claim.\n @return The current reward\n @dev The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.\n @dev For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`"},"functionSelector":"07621eca","id":16347,"implemented":true,"kind":"function","modifiers":[],"name":"currentReward","nameLocation":"3663:13:46","nodeType":"FunctionDefinition","overrides":{"id":16304,"nodeType":"OverrideSpecifier","overrides":[],"src":"3691:8:46"},"parameters":{"id":16303,"nodeType":"ParameterList","parameters":[],"src":"3676:2:46"},"returnParameters":{"id":16307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16347,"src":"3709:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16305,"name":"uint256","nodeType":"ElementaryTypeName","src":"3709:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3708:9:46"},"scope":16417,"src":"3654:578:46","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16378,"nodeType":"Block","src":"4309:144:46","statements":[{"assignments":[16355],"declarations":[{"constant":false,"id":16355,"mutability":"mutable","name":"reward","nameLocation":"4327:6:46","nodeType":"VariableDeclaration","scope":16378,"src":"4319:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16354,"name":"uint256","nodeType":"ElementaryTypeName","src":"4319:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16358,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":16356,"name":"currentReward","nodeType":"Identifier","overloadedDeclarations":[16347],"referencedDeclaration":16347,"src":"4336:13:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":16357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:15:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4319:32:46"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16359,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16355,"src":"4368:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4377:1:46","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4368:10:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":16366,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4406:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_ACGDAIncentive_$16417","typeString":"contract ACGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ACGDAIncentive_$16417","typeString":"contract ACGDAIncentive"}],"id":16365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4398:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16364,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:46","typeDescriptions":{}}},"id":16367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:13:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16362,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"4382:5:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4388:9:46","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"4382:15:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":16368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:30:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16369,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16355,"src":"4416:6:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4382:40:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4368:54:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":16375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4426:20:46","subExpression":{"baseExpression":{"id":16372,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"4427:7:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16374,"indexExpression":{"id":16373,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16349,"src":"4435:10:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4427:19:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4368:78:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16353,"id":16377,"nodeType":"Return","src":"4361:85:46"}]},"id":16379,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"4247:12:46","nodeType":"FunctionDefinition","parameters":{"id":16350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16349,"mutability":"mutable","name":"recipient_","nameLocation":"4268:10:46","nodeType":"VariableDeclaration","scope":16379,"src":"4260:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16348,"name":"address","nodeType":"ElementaryTypeName","src":"4260:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4259:20:46"},"returnParameters":{"id":16353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16379,"src":"4303:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16351,"name":"bool","nodeType":"ElementaryTypeName","src":"4303:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4302:6:46"},"scope":16417,"src":"4238:215:46","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[18195],"body":{"id":16392,"nodeType":"Block","src":"4579:56:46","statements":[{"expression":{"expression":{"arguments":[{"id":16388,"name":"ACGDAIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16417,"src":"4601:14:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ACGDAIncentive_$16417_$","typeString":"type(contract ACGDAIncentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ACGDAIncentive_$16417_$","typeString":"type(contract ACGDAIncentive)"}],"id":16387,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4596:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4596:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ACGDAIncentive_$16417","typeString":"type(contract ACGDAIncentive)"}},"id":16390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4617:11:46","memberName":"interfaceId","nodeType":"MemberAccess","src":"4596:32:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16386,"id":16391,"nodeType":"Return","src":"4589:39:46"}]},"documentation":{"id":16380,"nodeType":"StructuredDocumentation","src":"4459:25:46","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":16393,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"4498:21:46","nodeType":"FunctionDefinition","overrides":{"id":16383,"nodeType":"OverrideSpecifier","overrides":[{"id":16382,"name":"Incentive","nameLocations":["4551:9:46"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"4551:9:46"}],"src":"4542:19:46"},"parameters":{"id":16381,"nodeType":"ParameterList","parameters":[],"src":"4519:2:46"},"returnParameters":{"id":16386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16393,"src":"4571:6:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16384,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4571:6:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4570:8:46"},"scope":16417,"src":"4489:146:46","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[18181],"body":{"id":16415,"nodeType":"Block","src":"4773:111:46","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16403,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16396,"src":"4790:11:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":16405,"name":"ACGDAIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16417,"src":"4810:14:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ACGDAIncentive_$16417_$","typeString":"type(contract ACGDAIncentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ACGDAIncentive_$16417_$","typeString":"type(contract ACGDAIncentive)"}],"id":16404,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4805:4:46","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4805:20:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ACGDAIncentive_$16417","typeString":"type(contract ACGDAIncentive)"}},"id":16407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4826:11:46","memberName":"interfaceId","nodeType":"MemberAccess","src":"4805:32:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4790:47:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":16411,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16396,"src":"4865:11:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16409,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4841:5:46","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ACGDAIncentive_$16417_$","typeString":"type(contract super ACGDAIncentive)"}},"id":16410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4847:17:46","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"4841:23:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4841:36:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4790:87:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16402,"id":16414,"nodeType":"Return","src":"4783:94:46"}]},"documentation":{"id":16394,"nodeType":"StructuredDocumentation","src":"4641:25:46","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":16416,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"4680:17:46","nodeType":"FunctionDefinition","overrides":{"id":16399,"nodeType":"OverrideSpecifier","overrides":[{"id":16398,"name":"Incentive","nameLocations":["4747:9:46"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"4747:9:46"}],"src":"4738:19:46"},"parameters":{"id":16397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16396,"mutability":"mutable","name":"interfaceId","nameLocation":"4705:11:46","nodeType":"VariableDeclaration","scope":16416,"src":"4698:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16395,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4698:6:46","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4697:20:46"},"returnParameters":{"id":16402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16416,"src":"4767:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16400,"name":"bool","nodeType":"ElementaryTypeName","src":"4767:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4766:6:46"},"scope":16417,"src":"4671:213:46","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":16418,"src":"512:4374:46","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:4851:46"},"id":46},"contracts/incentives/AERC1155Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/AERC1155Incentive.sol","exportedSymbols":{"AERC1155Incentive":[16773],"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"IERC1155":[1176],"IERC1155Receiver":[1218],"IERC165":[2843],"Incentive":[18196]},"id":16774,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":16419,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:47"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol","id":16421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16774,"sourceUnit":1219,"src":"62:92:47","symbolAliases":[{"foreign":{"id":16420,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"70:16:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":16423,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16774,"sourceUnit":1177,"src":"155:76:47","symbolAliases":[{"foreign":{"id":16422,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"163:8:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","id":16425,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16774,"sourceUnit":2844,"src":"232:80:47","symbolAliases":[{"foreign":{"id":16424,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2843,"src":"240:7:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":16427,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16774,"sourceUnit":18510,"src":"314:57:47","symbolAliases":[{"foreign":{"id":16426,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"322:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":16429,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16774,"sourceUnit":18344,"src":"372:59:47","symbolAliases":[{"foreign":{"id":16428,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"380:10:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":16431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16774,"sourceUnit":15660,"src":"433:52:47","symbolAliases":[{"foreign":{"id":16430,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"441:6:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":16433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16774,"sourceUnit":18197,"src":"486:61:47","symbolAliases":[{"foreign":{"id":16432,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"494:9:47","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":16435,"name":"Incentive","nameLocations":["701:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"701:9:47"},"id":16436,"nodeType":"InheritanceSpecifier","src":"701:9:47"},{"baseName":{"id":16437,"name":"IERC1155Receiver","nameLocations":["712:16:47"],"nodeType":"IdentifierPath","referencedDeclaration":1218,"src":"712:16:47"},"id":16438,"nodeType":"InheritanceSpecifier","src":"712:16:47"}],"canonicalName":"AERC1155Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":16434,"nodeType":"StructuredDocumentation","src":"549:113:47","text":"@title ERC1155Incentive\n @notice A simple ERC1155 incentive implementation that allows claiming of tokens"},"fullyImplemented":false,"id":16773,"linearizedBaseContracts":[16773,1218,18196,11024,18509,2831,2843,9211,6409],"name":"AERC1155Incentive","nameLocation":"680:17:47","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AERC1155Incentive.Strategy","documentation":{"id":16439,"nodeType":"StructuredDocumentation","src":"735:258:47","text":"@notice The strategy for the incentive\n @dev The strategy determines how the incentive is disbursed:\n - POOL: Transfer tokens from the pool to the recipient\n - MINT: Mint tokens to the recipient directly (not yet implemented)"},"id":16442,"members":[{"id":16440,"name":"POOL","nameLocation":"1022:4:47","nodeType":"EnumValue","src":"1022:4:47"},{"id":16441,"name":"MINT","nameLocation":"1036:4:47","nodeType":"EnumValue","src":"1036:4:47"}],"name":"Strategy","nameLocation":"1003:8:47","nodeType":"EnumDefinition","src":"998:48:47"},{"constant":false,"documentation":{"id":16443,"nodeType":"StructuredDocumentation","src":"1052:57:47","text":"@notice The address of the ERC1155-compliant contract"},"functionSelector":"38d52e0f","id":16446,"mutability":"mutable","name":"asset","nameLocation":"1130:5:47","nodeType":"VariableDeclaration","scope":16773,"src":"1114:21:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"},"typeName":{"id":16445,"nodeType":"UserDefinedTypeName","pathNode":{"id":16444,"name":"IERC1155","nameLocations":["1114:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":1176,"src":"1114:8:47"},"referencedDeclaration":1176,"src":"1114:8:47","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"visibility":"public"},{"constant":false,"documentation":{"id":16447,"nodeType":"StructuredDocumentation","src":"1142:57:47","text":"@notice The strategy for the incentive (MINT or POOL)"},"functionSelector":"a8c62e76","id":16450,"mutability":"mutable","name":"strategy","nameLocation":"1220:8:47","nodeType":"VariableDeclaration","scope":16773,"src":"1204:24:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"},"typeName":{"id":16449,"nodeType":"UserDefinedTypeName","pathNode":{"id":16448,"name":"Strategy","nameLocations":["1204:8:47"],"nodeType":"IdentifierPath","referencedDeclaration":16442,"src":"1204:8:47"},"referencedDeclaration":16442,"src":"1204:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"visibility":"public"},{"constant":false,"documentation":{"id":16451,"nodeType":"StructuredDocumentation","src":"1235:75:47","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":16453,"mutability":"mutable","name":"limit","nameLocation":"1330:5:47","nodeType":"VariableDeclaration","scope":16773,"src":"1315:20:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16452,"name":"uint256","nodeType":"ElementaryTypeName","src":"1315:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16454,"nodeType":"StructuredDocumentation","src":"1342:50:47","text":"@notice The ERC1155 token ID for the incentive"},"functionSelector":"17d70f7c","id":16456,"mutability":"mutable","name":"tokenId","nameLocation":"1412:7:47","nodeType":"VariableDeclaration","scope":16773,"src":"1397:22:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16455,"name":"uint256","nodeType":"ElementaryTypeName","src":"1397:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16457,"nodeType":"StructuredDocumentation","src":"1426:59:47","text":"@notice Extra data to be passed to the ERC1155 contract"},"functionSelector":"609d3334","id":16459,"mutability":"mutable","name":"extraData","nameLocation":"1503:9:47","nodeType":"VariableDeclaration","scope":16773,"src":"1490:22:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes"},"typeName":{"id":16458,"name":"bytes","nodeType":"ElementaryTypeName","src":"1490:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"public"},{"baseFunctions":[18474],"body":{"id":16469,"nodeType":"Block","src":"1675:41:47","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16466,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1692:15:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1692:17:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16468,"nodeType":"RevertStatement","src":"1685:24:47"}]},"documentation":{"id":16460,"nodeType":"StructuredDocumentation","src":"1519:85:47","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the incentive"},"functionSelector":"439fab91","id":16470,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1618:10:47","nodeType":"FunctionDefinition","overrides":{"id":16464,"nodeType":"OverrideSpecifier","overrides":[],"src":"1666:8:47"},"parameters":{"id":16463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16462,"mutability":"mutable","name":"data_","nameLocation":"1644:5:47","nodeType":"VariableDeclaration","scope":16470,"src":"1629:20:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16461,"name":"bytes","nodeType":"ElementaryTypeName","src":"1629:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1628:22:47"},"returnParameters":{"id":16465,"nodeType":"ParameterList","parameters":[],"src":"1675:0:47"},"scope":16773,"src":"1609:107:47","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[18125],"body":{"id":16553,"nodeType":"Block","src":"1997:668:47","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"},"id":16484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16481,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16450,"src":"2087:8:47","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16482,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"2099:8:47","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16442_$","typeString":"type(enum AERC1155Incentive.Strategy)"}},"id":16483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2108:4:47","memberName":"POOL","nodeType":"MemberAccess","referencedDeclaration":16440,"src":"2099:13:47","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"src":"2087:25:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16550,"nodeType":"IfStatement","src":"2083:553:47","trueBody":{"id":16549,"nodeType":"Block","src":"2114:522:47","statements":[{"assignments":[16487],"declarations":[{"constant":false,"id":16487,"mutability":"mutable","name":"claim_","nameLocation":"2148:6:47","nodeType":"VariableDeclaration","scope":16549,"src":"2128:26:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16486,"nodeType":"UserDefinedTypeName","pathNode":{"id":16485,"name":"ClaimPayload","nameLocations":["2128:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"2128:12:47"},"referencedDeclaration":18096,"src":"2128:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16494,"initialValue":{"arguments":[{"id":16490,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16473,"src":"2168:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16491,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"2176:12:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16492,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2175:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16488,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2157:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2161:6:47","memberName":"decode","nodeType":"MemberAccess","src":"2157:10:47","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2157:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2128:62:47"},{"condition":{"id":16499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2208:28:47","subExpression":{"arguments":[{"expression":{"id":16496,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"2222:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2229:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2222:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16495,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16681,"src":"2209:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2209:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16503,"nodeType":"IfStatement","src":"2204:55:47","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16500,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"2245:12:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2245:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16502,"nodeType":"RevertStatement","src":"2238:21:47"}},{"expression":{"id":16505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2274:8:47","subExpression":{"id":16504,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"2274:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16506,"nodeType":"ExpressionStatement","src":"2274:8:47"},{"expression":{"id":16512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16507,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"2296:7:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16510,"indexExpression":{"expression":{"id":16508,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"2304:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2311:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2304:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2296:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2321:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2296:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16513,"nodeType":"ExpressionStatement","src":"2296:29:47"},{"expression":{"arguments":[{"arguments":[{"id":16519,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2438:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_AERC1155Incentive_$16773","typeString":"contract AERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AERC1155Incentive_$16773","typeString":"contract AERC1155Incentive"}],"id":16518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2430:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16517,"name":"address","nodeType":"ElementaryTypeName","src":"2430:7:47","typeDescriptions":{}}},"id":16520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2430:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16521,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"2445:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2452:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2445:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16523,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16456,"src":"2460:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":16524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2469:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"expression":{"id":16525,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"2472:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2479:4:47","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":18095,"src":"2472:11:47","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_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16514,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16446,"src":"2407:5:47","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":16516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2413:16:47","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1159,"src":"2407:22:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":16527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:77:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16528,"nodeType":"ExpressionStatement","src":"2407:77:47"},{"eventCall":{"arguments":[{"expression":{"id":16530,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"2511:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2518:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2511:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16534,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16446,"src":"2543:5:47","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},{"expression":{"id":16535,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"2550:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2557:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2550:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16537,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16456,"src":"2565:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"31","id":16540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2582:1:47","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":16539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2574:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2574:7:47","typeDescriptions":{}}},"id":16541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:10:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16542,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"2586:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2593:4:47","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":18095,"src":"2586:11:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16532,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2526:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2530:12:47","memberName":"encodePacked","nodeType":"MemberAccess","src":"2526:16:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2526:72:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16529,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"2503:7:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:96:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16546,"nodeType":"EmitStatement","src":"2498:101:47"},{"expression":{"hexValue":"74727565","id":16547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2621:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16480,"id":16548,"nodeType":"Return","src":"2614:11:47"}]}},{"expression":{"hexValue":"66616c7365","id":16551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2653:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16480,"id":16552,"nodeType":"Return","src":"2646:12:47"}]},"documentation":{"id":16471,"nodeType":"StructuredDocumentation","src":"1722:190:47","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":16554,"implemented":true,"kind":"function","modifiers":[{"id":16477,"kind":"modifierInvocation","modifierName":{"id":16476,"name":"onlyOwner","nameLocations":["1972:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"1972:9:47"},"nodeType":"ModifierInvocation","src":"1972:9:47"}],"name":"claim","nameLocation":"1926:5:47","nodeType":"FunctionDefinition","overrides":{"id":16475,"nodeType":"OverrideSpecifier","overrides":[],"src":"1963:8:47"},"parameters":{"id":16474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16473,"mutability":"mutable","name":"data_","nameLocation":"1947:5:47","nodeType":"VariableDeclaration","scope":16554,"src":"1932:20:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16472,"name":"bytes","nodeType":"ElementaryTypeName","src":"1932:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1931:22:47"},"returnParameters":{"id":16480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16479,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16554,"src":"1991:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16478,"name":"bool","nodeType":"ElementaryTypeName","src":"1991:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1990:6:47"},"scope":16773,"src":"1917:748:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[18133],"body":{"id":16637,"nodeType":"Block","src":"2783:679:47","statements":[{"assignments":[16567],"declarations":[{"constant":false,"id":16567,"mutability":"mutable","name":"claim_","nameLocation":"2813:6:47","nodeType":"VariableDeclaration","scope":16637,"src":"2793:26:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16566,"nodeType":"UserDefinedTypeName","pathNode":{"id":16565,"name":"ClaimPayload","nameLocations":["2793:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"2793:12:47"},"referencedDeclaration":18096,"src":"2793:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16574,"initialValue":{"arguments":[{"id":16570,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16557,"src":"2833:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16571,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"2841:12:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16572,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2840:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16568,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2822:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2826:6:47","memberName":"decode","nodeType":"MemberAccess","src":"2822:10:47","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2822:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2793:62:47"},{"assignments":[16576],"declarations":[{"constant":false,"id":16576,"mutability":"mutable","name":"amount","nameLocation":"2874:6:47","nodeType":"VariableDeclaration","scope":16637,"src":"2866:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16575,"name":"uint256","nodeType":"ElementaryTypeName","src":"2866:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16585,"initialValue":{"arguments":[{"expression":{"id":16579,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"2895:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2902:4:47","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":18095,"src":"2895:11:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2909:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16581,"name":"uint256","nodeType":"ElementaryTypeName","src":"2909:7:47","typeDescriptions":{}}}],"id":16583,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2908:9:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":16577,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2884:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2888:6:47","memberName":"decode","nodeType":"MemberAccess","src":"2884:10:47","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2884:34:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2865:53:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16586,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16576,"src":"3009:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":16587,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16453,"src":"3018:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3009:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16600,"nodeType":"IfStatement","src":"3005:81:47","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16592,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3055:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3059:6:47","memberName":"sender","nodeType":"MemberAccess","src":"3055:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16596,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"3078:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16594,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3067:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3071:6:47","memberName":"encode","nodeType":"MemberAccess","src":"3067:10:47","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3067:18:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16589,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"3032:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":16591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3043:11:47","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":18296,"src":"3032:22:47","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,bytes memory) pure returns (error)"}},"id":16598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3032:54:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16599,"nodeType":"RevertStatement","src":"3025:61:47"}},{"expression":{"id":16603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16601,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16453,"src":"3096:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16602,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16576,"src":"3105:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3096:15:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16604,"nodeType":"ExpressionStatement","src":"3096:15:47"},{"expression":{"arguments":[{"arguments":[{"id":16610,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3275:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_AERC1155Incentive_$16773","typeString":"contract AERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AERC1155Incentive_$16773","typeString":"contract AERC1155Incentive"}],"id":16609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3267:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":16608,"name":"address","nodeType":"ElementaryTypeName","src":"3267:7:47","typeDescriptions":{}}},"id":16611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3267:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16612,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"3282:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3289:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"3282:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16614,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16456,"src":"3297:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16615,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16576,"src":"3306:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16616,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"3314:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3321:4:47","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":18095,"src":"3314:11:47","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_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16605,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16446,"src":"3244:5:47","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":16607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3250:16:47","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":1159,"src":"3244:22:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,uint256,bytes memory) external"}},"id":16618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3244:82:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16619,"nodeType":"ExpressionStatement","src":"3244:82:47"},{"eventCall":{"arguments":[{"expression":{"id":16621,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"3349:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3356:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"3349:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16625,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16446,"src":"3381:5:47","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},{"expression":{"id":16626,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"3388:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3395:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"3388:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16628,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16456,"src":"3403:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16629,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16576,"src":"3412:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16630,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16567,"src":"3420:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3427:4:47","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":18095,"src":"3420:11:47","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16623,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3364:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3368:12:47","memberName":"encodePacked","nodeType":"MemberAccess","src":"3364:16:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3364:68:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16620,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"3341:7:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3341:92:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16634,"nodeType":"EmitStatement","src":"3336:97:47"},{"expression":{"hexValue":"74727565","id":16635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3451:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16564,"id":16636,"nodeType":"Return","src":"3444:11:47"}]},"documentation":{"id":16555,"nodeType":"StructuredDocumentation","src":"2671:25:47","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":16638,"implemented":true,"kind":"function","modifiers":[{"id":16561,"kind":"modifierInvocation","modifierName":{"id":16560,"name":"onlyOwner","nameLocations":["2758:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"2758:9:47"},"nodeType":"ModifierInvocation","src":"2758:9:47"}],"name":"reclaim","nameLocation":"2710:7:47","nodeType":"FunctionDefinition","overrides":{"id":16559,"nodeType":"OverrideSpecifier","overrides":[],"src":"2749:8:47"},"parameters":{"id":16558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16557,"mutability":"mutable","name":"data_","nameLocation":"2733:5:47","nodeType":"VariableDeclaration","scope":16638,"src":"2718:20:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16556,"name":"bytes","nodeType":"ElementaryTypeName","src":"2718:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2717:22:47"},"returnParameters":{"id":16564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16563,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16638,"src":"2777:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16562,"name":"bool","nodeType":"ElementaryTypeName","src":"2777:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2776:6:47"},"scope":16773,"src":"2701:761:47","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[18141],"body":{"id":16662,"nodeType":"Block","src":"3922:123:47","statements":[{"assignments":[16649],"declarations":[{"constant":false,"id":16649,"mutability":"mutable","name":"claim_","nameLocation":"3952:6:47","nodeType":"VariableDeclaration","scope":16662,"src":"3932:26:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16648,"nodeType":"UserDefinedTypeName","pathNode":{"id":16647,"name":"ClaimPayload","nameLocations":["3932:12:47"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"3932:12:47"},"referencedDeclaration":18096,"src":"3932:12:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16656,"initialValue":{"arguments":[{"id":16652,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"3972:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16653,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"3980:12:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3979:14:47","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16650,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3961:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3965:6:47","memberName":"decode","nodeType":"MemberAccess","src":"3961:10:47","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3932:62:47"},{"expression":{"arguments":[{"expression":{"id":16658,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16649,"src":"4024:6:47","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4031:6:47","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"4024:13:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16657,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16681,"src":"4011:12:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4011:27:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16646,"id":16661,"nodeType":"Return","src":"4004:34:47"}]},"documentation":{"id":16639,"nodeType":"StructuredDocumentation","src":"3468:370:47","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":16663,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"3852:11:47","nodeType":"FunctionDefinition","overrides":{"id":16643,"nodeType":"OverrideSpecifier","overrides":[],"src":"3898:8:47"},"parameters":{"id":16642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16641,"mutability":"mutable","name":"data_","nameLocation":"3879:5:47","nodeType":"VariableDeclaration","scope":16663,"src":"3864:20:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16640,"name":"bytes","nodeType":"ElementaryTypeName","src":"3864:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3863:22:47"},"returnParameters":{"id":16646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16663,"src":"3916:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16644,"name":"bool","nodeType":"ElementaryTypeName","src":"3916:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3915:6:47"},"scope":16773,"src":"3843:202:47","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16680,"nodeType":"Block","src":"4322:62:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4339:20:47","subExpression":{"baseExpression":{"id":16671,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"4340:7:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16673,"indexExpression":{"id":16672,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16666,"src":"4348:10:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4340:19:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16675,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"4363:6:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":16676,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16453,"src":"4372:5:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4363:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4339:38:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16670,"id":16679,"nodeType":"Return","src":"4332:45:47"}]},"documentation":{"id":16664,"nodeType":"StructuredDocumentation","src":"4051:195:47","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":16681,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"4260:12:47","nodeType":"FunctionDefinition","parameters":{"id":16667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16666,"mutability":"mutable","name":"recipient_","nameLocation":"4281:10:47","nodeType":"VariableDeclaration","scope":16681,"src":"4273:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16665,"name":"address","nodeType":"ElementaryTypeName","src":"4273:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4272:20:47"},"returnParameters":{"id":16670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16681,"src":"4316:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16668,"name":"bool","nodeType":"ElementaryTypeName","src":"4316:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4315:6:47"},"scope":16773,"src":"4251:133:47","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[1199],"body":{"id":16702,"nodeType":"Block","src":"4664:55:47","statements":[{"expression":{"expression":{"expression":{"id":16698,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4681:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_AERC1155Incentive_$16773","typeString":"contract AERC1155Incentive"}},"id":16699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4686:17:47","memberName":"onERC1155Received","nodeType":"MemberAccess","referencedDeclaration":16703,"src":"4681:22:47","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,uint256,bytes memory) pure external returns (bytes4)"}},"id":16700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4704:8:47","memberName":"selector","nodeType":"MemberAccess","src":"4681:31:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16697,"id":16701,"nodeType":"Return","src":"4674:38:47"}]},"documentation":{"id":16682,"nodeType":"StructuredDocumentation","src":"4390:114:47","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not check the token ID and will accept all tokens"},"functionSelector":"f23a6e61","id":16703,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155Received","nameLocation":"4518:17:47","nodeType":"FunctionDefinition","overrides":{"id":16694,"nodeType":"OverrideSpecifier","overrides":[],"src":"4626:8:47"},"parameters":{"id":16693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16703,"src":"4536:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16683,"name":"address","nodeType":"ElementaryTypeName","src":"4536:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16703,"src":"4545:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16685,"name":"address","nodeType":"ElementaryTypeName","src":"4545:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16703,"src":"4554:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16687,"name":"uint256","nodeType":"ElementaryTypeName","src":"4554:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16703,"src":"4563:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16689,"name":"uint256","nodeType":"ElementaryTypeName","src":"4563:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16703,"src":"4572:14:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16691,"name":"bytes","nodeType":"ElementaryTypeName","src":"4572:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4535:52:47"},"returnParameters":{"id":16697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16696,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16703,"src":"4652:6:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16695,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4652:6:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4651:8:47"},"scope":16773,"src":"4509:210:47","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[1217],"body":{"id":16726,"nodeType":"Block","src":"5027:60:47","statements":[{"expression":{"expression":{"expression":{"id":16722,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5044:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_AERC1155Incentive_$16773","typeString":"contract AERC1155Incentive"}},"id":16723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5049:22:47","memberName":"onERC1155BatchReceived","nodeType":"MemberAccess","referencedDeclaration":16727,"src":"5044:27:47","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_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) pure external returns (bytes4)"}},"id":16724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5072:8:47","memberName":"selector","nodeType":"MemberAccess","src":"5044:36:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16721,"id":16725,"nodeType":"Return","src":"5037:43:47"}]},"documentation":{"id":16704,"nodeType":"StructuredDocumentation","src":"4725:115:47","text":"@inheritdoc IERC1155Receiver\n @dev This contract does not check the token ID and will accept all batches"},"functionSelector":"bc197c81","id":16727,"implemented":true,"kind":"function","modifiers":[],"name":"onERC1155BatchReceived","nameLocation":"4854:22:47","nodeType":"FunctionDefinition","overrides":{"id":16718,"nodeType":"OverrideSpecifier","overrides":[],"src":"4989:8:47"},"parameters":{"id":16717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16727,"src":"4877:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16705,"name":"address","nodeType":"ElementaryTypeName","src":"4877:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16727,"src":"4886:7:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16707,"name":"address","nodeType":"ElementaryTypeName","src":"4886:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16711,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16727,"src":"4895:18:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16709,"name":"uint256","nodeType":"ElementaryTypeName","src":"4895:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16710,"nodeType":"ArrayTypeName","src":"4895:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":16714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16727,"src":"4915:18:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":16712,"name":"uint256","nodeType":"ElementaryTypeName","src":"4915:7:47","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16713,"nodeType":"ArrayTypeName","src":"4915:9:47","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":16716,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16727,"src":"4935:14:47","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16715,"name":"bytes","nodeType":"ElementaryTypeName","src":"4935:5:47","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4876:74:47"},"returnParameters":{"id":16721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16727,"src":"5015:6:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16719,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5015:6:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5014:8:47"},"scope":16773,"src":"4845:242:47","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[18195],"body":{"id":16740,"nodeType":"Block","src":"5213:59:47","statements":[{"expression":{"expression":{"arguments":[{"id":16736,"name":"AERC1155Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16773,"src":"5235:17:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AERC1155Incentive_$16773_$","typeString":"type(contract AERC1155Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AERC1155Incentive_$16773_$","typeString":"type(contract AERC1155Incentive)"}],"id":16735,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5230:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AERC1155Incentive_$16773","typeString":"type(contract AERC1155Incentive)"}},"id":16738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5254:11:47","memberName":"interfaceId","nodeType":"MemberAccess","src":"5230:35:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":16734,"id":16739,"nodeType":"Return","src":"5223:42:47"}]},"documentation":{"id":16728,"nodeType":"StructuredDocumentation","src":"5093:25:47","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":16741,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"5132:21:47","nodeType":"FunctionDefinition","overrides":{"id":16731,"nodeType":"OverrideSpecifier","overrides":[{"id":16730,"name":"Incentive","nameLocations":["5185:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"5185:9:47"}],"src":"5176:19:47"},"parameters":{"id":16729,"nodeType":"ParameterList","parameters":[],"src":"5153:2:47"},"returnParameters":{"id":16734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16741,"src":"5205:6:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16732,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5205:6:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5204:8:47"},"scope":16773,"src":"5123:149:47","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[2842,18181],"body":{"id":16771,"nodeType":"Block","src":"5419:179:47","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16752,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16744,"src":"5436:11:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":16754,"name":"AERC1155Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16773,"src":"5456:17:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AERC1155Incentive_$16773_$","typeString":"type(contract AERC1155Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AERC1155Incentive_$16773_$","typeString":"type(contract AERC1155Incentive)"}],"id":16753,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5451:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:23:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AERC1155Incentive_$16773","typeString":"type(contract AERC1155Incentive)"}},"id":16756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5475:11:47","memberName":"interfaceId","nodeType":"MemberAccess","src":"5451:35:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5436:50:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":16763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16758,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16744,"src":"5490:11:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":16760,"name":"IERC1155Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"5510:16:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC1155Receiver_$1218_$","typeString":"type(contract IERC1155Receiver)"}],"id":16759,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5505:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":16761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5505:22:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC1155Receiver_$1218","typeString":"type(contract IERC1155Receiver)"}},"id":16762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5528:11:47","memberName":"interfaceId","nodeType":"MemberAccess","src":"5505:34:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5490:49:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5436:103:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":16767,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16744,"src":"5579:11:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":16765,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5555:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AERC1155Incentive_$16773_$","typeString":"type(contract super AERC1155Incentive)"}},"id":16766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5561:17:47","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"5555:23:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":16768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5555:36:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5436:155:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16751,"id":16770,"nodeType":"Return","src":"5429:162:47"}]},"documentation":{"id":16742,"nodeType":"StructuredDocumentation","src":"5278:25:47","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":16772,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5317:17:47","nodeType":"FunctionDefinition","overrides":{"id":16748,"nodeType":"OverrideSpecifier","overrides":[{"id":16746,"name":"Incentive","nameLocations":["5384:9:47"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"5384:9:47"},{"id":16747,"name":"IERC165","nameLocations":["5395:7:47"],"nodeType":"IdentifierPath","referencedDeclaration":2843,"src":"5395:7:47"}],"src":"5375:28:47"},"parameters":{"id":16745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16744,"mutability":"mutable","name":"interfaceId","nameLocation":"5342:11:47","nodeType":"VariableDeclaration","scope":16772,"src":"5335:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":16743,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5335:6:47","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5334:20:47"},"returnParameters":{"id":16751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16772,"src":"5413:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16749,"name":"bool","nodeType":"ElementaryTypeName","src":"5413:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5412:6:47"},"scope":16773,"src":"5308:290:47","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":16774,"src":"662:4938:47","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18296,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:5565:47"},"id":47},"contracts/incentives/AERC20Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/AERC20Incentive.sol","exportedSymbols":{"AERC20Incentive":[17181],"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"Incentive":[18196],"LibPRNG":[10293],"SafeTransferLib":[11358]},"id":17182,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":16775,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:48"},{"absolutePath":"@solady/utils/LibPRNG.sol","file":"@solady/utils/LibPRNG.sol","id":16777,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17182,"sourceUnit":10294,"src":"62:50:48","symbolAliases":[{"foreign":{"id":16776,"name":"LibPRNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10293,"src":"70:7:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":16779,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17182,"sourceUnit":11359,"src":"113:66:48","symbolAliases":[{"foreign":{"id":16778,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"121:15:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":16781,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17182,"sourceUnit":18510,"src":"181:57:48","symbolAliases":[{"foreign":{"id":16780,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"189:9:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":16783,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17182,"sourceUnit":18344,"src":"239:59:48","symbolAliases":[{"foreign":{"id":16782,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"247:10:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":16785,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17182,"sourceUnit":15660,"src":"300:52:48","symbolAliases":[{"foreign":{"id":16784,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"308:6:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":16787,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17182,"sourceUnit":18197,"src":"353:42:48","symbolAliases":[{"foreign":{"id":16786,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"361:9:48","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":16789,"name":"Incentive","nameLocations":["544:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"544:9:48"},"id":16790,"nodeType":"InheritanceSpecifier","src":"544:9:48"}],"canonicalName":"AERC20Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":16788,"nodeType":"StructuredDocumentation","src":"397:110:48","text":"@title ERC20 Incentive\n @notice A simple ERC20 incentive implementation that allows claiming of tokens"},"fullyImplemented":false,"id":17181,"linearizedBaseContracts":[17181,18196,11024,18509,2831,2843,9211,6409],"name":"AERC20Incentive","nameLocation":"525:15:48","nodeType":"ContractDefinition","nodes":[{"global":false,"id":16794,"libraryName":{"id":16791,"name":"LibPRNG","nameLocations":["566:7:48"],"nodeType":"IdentifierPath","referencedDeclaration":10293,"src":"566:7:48"},"nodeType":"UsingForDirective","src":"560:31:48","typeName":{"id":16793,"nodeType":"UserDefinedTypeName","pathNode":{"id":16792,"name":"LibPRNG.PRNG","nameLocations":["578:7:48","586:4:48"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"578:12:48"},"referencedDeclaration":10107,"src":"578:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}}},{"global":false,"id":16797,"libraryName":{"id":16795,"name":"SafeTransferLib","nameLocations":["602:15:48"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"602:15:48"},"nodeType":"UsingForDirective","src":"596:34:48","typeName":{"id":16796,"name":"address","nodeType":"ElementaryTypeName","src":"622:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"baseFunctions":[18474],"body":{"id":16807,"nodeType":"Block","src":"829:41:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16804,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"846:15:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"846:17:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16806,"nodeType":"RevertStatement","src":"839:24:48"}]},"documentation":{"id":16798,"nodeType":"StructuredDocumentation","src":"636:122:48","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the budget `(address owner, address[] authorized)`"},"functionSelector":"439fab91","id":16808,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"772:10:48","nodeType":"FunctionDefinition","overrides":{"id":16802,"nodeType":"OverrideSpecifier","overrides":[],"src":"820:8:48"},"parameters":{"id":16801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16800,"mutability":"mutable","name":"data_","nameLocation":"798:5:48","nodeType":"VariableDeclaration","scope":16808,"src":"783:20:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16799,"name":"bytes","nodeType":"ElementaryTypeName","src":"783:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"782:22:48"},"returnParameters":{"id":16803,"nodeType":"ParameterList","parameters":[],"src":"829:0:48"},"scope":17181,"src":"763:107:48","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"anonymous":false,"documentation":{"id":16809,"nodeType":"StructuredDocumentation","src":"876:56:48","text":"@notice Emitted when an entry is added to the raffle"},"eventSelector":"f0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f153","id":16813,"name":"Entry","nameLocation":"943:5:48","nodeType":"EventDefinition","parameters":{"id":16812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16811,"indexed":true,"mutability":"mutable","name":"entry","nameLocation":"965:5:48","nodeType":"VariableDeclaration","scope":16813,"src":"949:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16810,"name":"address","nodeType":"ElementaryTypeName","src":"949:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"948:23:48"},"src":"937:35:48"},{"canonicalName":"AERC20Incentive.Strategy","documentation":{"id":16814,"nodeType":"StructuredDocumentation","src":"978:520:48","text":"@notice The strategy for the incentive\n @dev The strategy determines how the incentive is disbursed:\n - POOL: Users claim from a pool of rewards until the limit is reached, with each claim receiving an equal share of the total;\n - MINT: New tokens are minted and distributed to the recipient, with each claim receiving an equal amount of newly issued tokens;\n - RAFFLE: Users claim a slot in a raffle, and a single winner is randomly drawn to receive the entire reward amount;"},"id":16818,"members":[{"id":16815,"name":"POOL","nameLocation":"1527:4:48","nodeType":"EnumValue","src":"1527:4:48"},{"id":16816,"name":"MINT","nameLocation":"1541:4:48","nodeType":"EnumValue","src":"1541:4:48"},{"id":16817,"name":"RAFFLE","nameLocation":"1555:6:48","nodeType":"EnumValue","src":"1555:6:48"}],"name":"Strategy","nameLocation":"1508:8:48","nodeType":"EnumDefinition","src":"1503:64:48"},{"constant":false,"documentation":{"id":16819,"nodeType":"StructuredDocumentation","src":"1573:47:48","text":"@notice The address of the ERC20-like token"},"functionSelector":"38d52e0f","id":16821,"mutability":"mutable","name":"asset","nameLocation":"1640:5:48","nodeType":"VariableDeclaration","scope":17181,"src":"1625:20:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16820,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":16822,"nodeType":"StructuredDocumentation","src":"1652:57:48","text":"@notice The strategy for the incentive (MINT or POOL)"},"functionSelector":"a8c62e76","id":16825,"mutability":"mutable","name":"strategy","nameLocation":"1730:8:48","nodeType":"VariableDeclaration","scope":17181,"src":"1714:24:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"typeName":{"id":16824,"nodeType":"UserDefinedTypeName","pathNode":{"id":16823,"name":"Strategy","nameLocations":["1714:8:48"],"nodeType":"IdentifierPath","referencedDeclaration":16818,"src":"1714:8:48"},"referencedDeclaration":16818,"src":"1714:8:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"visibility":"public"},{"constant":false,"documentation":{"id":16826,"nodeType":"StructuredDocumentation","src":"1745:62:48","text":"@notice The limit (max claims, or max entries for raffles)"},"functionSelector":"a4d66daf","id":16828,"mutability":"mutable","name":"limit","nameLocation":"1827:5:48","nodeType":"VariableDeclaration","scope":17181,"src":"1812:20:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16827,"name":"uint256","nodeType":"ElementaryTypeName","src":"1812:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":16829,"nodeType":"StructuredDocumentation","src":"1839:81:48","text":"@notice The set of addresses that have claimed a slot in the incentive raffle"},"functionSelector":"b30906d4","id":16832,"mutability":"mutable","name":"entries","nameLocation":"1942:7:48","nodeType":"VariableDeclaration","scope":17181,"src":"1925:24:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":16830,"name":"address","nodeType":"ElementaryTypeName","src":"1925:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16831,"nodeType":"ArrayTypeName","src":"1925:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"baseFunctions":[18125],"body":{"id":16932,"nodeType":"Block","src":"2231:676:48","statements":[{"assignments":[16845],"declarations":[{"constant":false,"id":16845,"mutability":"mutable","name":"claim_","nameLocation":"2261:6:48","nodeType":"VariableDeclaration","scope":16932,"src":"2241:26:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16844,"nodeType":"UserDefinedTypeName","pathNode":{"id":16843,"name":"ClaimPayload","nameLocations":["2241:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"2241:12:48"},"referencedDeclaration":18096,"src":"2241:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16852,"initialValue":{"arguments":[{"id":16848,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16835,"src":"2281:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16849,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"2289:12:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16850,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2288:14:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16846,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2270:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2274:6:48","memberName":"decode","nodeType":"MemberAccess","src":"2270:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2270:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2241:62:48"},{"condition":{"id":16857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2317:28:48","subExpression":{"arguments":[{"expression":{"id":16854,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2331:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2338:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2331:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16853,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17084,"src":"2318:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":16856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2318:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16861,"nodeType":"IfStatement","src":"2313:55:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":16858,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"2354:12:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":16859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2354:14:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16860,"nodeType":"RevertStatement","src":"2347:21:48"}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"id":16865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16862,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"2383:8:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16863,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16818,"src":"2395:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16818_$","typeString":"type(enum AERC20Incentive.Strategy)"}},"id":16864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2404:4:48","memberName":"POOL","nodeType":"MemberAccess","referencedDeclaration":16815,"src":"2395:13:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"2383:25:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"id":16902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16899,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"2667:8:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16900,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16818,"src":"2679:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16818_$","typeString":"type(enum AERC20Incentive.Strategy)"}},"id":16901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2688:6:48","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16817,"src":"2679:15:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"2667:27:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16928,"nodeType":"IfStatement","src":"2663:215:48","trueBody":{"id":16927,"nodeType":"Block","src":"2696:182:48","statements":[{"expression":{"id":16904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2710:8:48","subExpression":{"id":16903,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"2710:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16905,"nodeType":"ExpressionStatement","src":"2710:8:48"},{"expression":{"id":16911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16906,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"2732:7:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16909,"indexExpression":{"expression":{"id":16907,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2740:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2747:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2740:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2732:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2757:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2732:29:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16912,"nodeType":"ExpressionStatement","src":"2732:29:48"},{"expression":{"arguments":[{"expression":{"id":16916,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2788:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2795:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2788:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16913,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16832,"src":"2775:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":16915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2783:4:48","memberName":"push","nodeType":"MemberAccess","src":"2775:12:48","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":16918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2775:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16919,"nodeType":"ExpressionStatement","src":"2775:27:48"},{"eventCall":{"arguments":[{"expression":{"id":16921,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2828:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2835:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2828:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16920,"name":"Entry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16813,"src":"2822:5:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":16923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2822:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16924,"nodeType":"EmitStatement","src":"2817:25:48"},{"expression":{"hexValue":"74727565","id":16925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2863:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16842,"id":16926,"nodeType":"Return","src":"2856:11:48"}]}},"id":16929,"nodeType":"IfStatement","src":"2379:499:48","trueBody":{"id":16898,"nodeType":"Block","src":"2410:247:48","statements":[{"expression":{"id":16867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2424:8:48","subExpression":{"id":16866,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"2424:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16868,"nodeType":"ExpressionStatement","src":"2424:8:48"},{"expression":{"id":16874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16869,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"2446:7:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":16872,"indexExpression":{"expression":{"id":16870,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2454:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2461:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2454:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2446:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":16873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2471:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2446:29:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16875,"nodeType":"ExpressionStatement","src":"2446:29:48"},{"expression":{"arguments":[{"expression":{"id":16879,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2509:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2516:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2509:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16881,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"2524:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16876,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"2490:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2496:12:48","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11205,"src":"2490:18:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":16882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2490:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16883,"nodeType":"ExpressionStatement","src":"2490:41:48"},{"eventCall":{"arguments":[{"expression":{"id":16885,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2559:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2566:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2559:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16889,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"2591:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":16890,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16845,"src":"2598:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2605:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2598:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16892,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"2613:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16887,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2574:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2578:12:48","memberName":"encodePacked","nodeType":"MemberAccess","src":"2574:16:48","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:46:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16884,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"2551:7:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":16894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:70:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16895,"nodeType":"EmitStatement","src":"2546:75:48"},{"expression":{"hexValue":"74727565","id":16896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2642:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16842,"id":16897,"nodeType":"Return","src":"2635:11:48"}]}},{"expression":{"hexValue":"66616c7365","id":16930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2895:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16842,"id":16931,"nodeType":"Return","src":"2888:12:48"}]},"documentation":{"id":16833,"nodeType":"StructuredDocumentation","src":"1956:190:48","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":16933,"implemented":true,"kind":"function","modifiers":[{"id":16839,"kind":"modifierInvocation","modifierName":{"id":16838,"name":"onlyOwner","nameLocations":["2206:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"2206:9:48"},"nodeType":"ModifierInvocation","src":"2206:9:48"}],"name":"claim","nameLocation":"2160:5:48","nodeType":"FunctionDefinition","overrides":{"id":16837,"nodeType":"OverrideSpecifier","overrides":[],"src":"2197:8:48"},"parameters":{"id":16836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16835,"mutability":"mutable","name":"data_","nameLocation":"2181:5:48","nodeType":"VariableDeclaration","scope":16933,"src":"2166:20:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16834,"name":"bytes","nodeType":"ElementaryTypeName","src":"2166:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2165:22:48"},"returnParameters":{"id":16842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16933,"src":"2225:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16840,"name":"bool","nodeType":"ElementaryTypeName","src":"2225:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2224:6:48"},"scope":17181,"src":"2151:756:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[18133],"body":{"id":17040,"nodeType":"Block","src":"3025:912:48","statements":[{"assignments":[16946],"declarations":[{"constant":false,"id":16946,"mutability":"mutable","name":"claim_","nameLocation":"3055:6:48","nodeType":"VariableDeclaration","scope":17040,"src":"3035:26:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":16945,"nodeType":"UserDefinedTypeName","pathNode":{"id":16944,"name":"ClaimPayload","nameLocations":["3035:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"3035:12:48"},"referencedDeclaration":18096,"src":"3035:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":16953,"initialValue":{"arguments":[{"id":16949,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16936,"src":"3075:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":16950,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"3083:12:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":16951,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3082:14:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":16947,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3064:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3068:6:48","memberName":"decode","nodeType":"MemberAccess","src":"3064:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3064:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3035:62:48"},{"assignments":[16955],"declarations":[{"constant":false,"id":16955,"mutability":"mutable","name":"amount","nameLocation":"3116:6:48","nodeType":"VariableDeclaration","scope":17040,"src":"3108:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16954,"name":"uint256","nodeType":"ElementaryTypeName","src":"3108:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16964,"initialValue":{"arguments":[{"expression":{"id":16958,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3137:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":16959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3144:4:48","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":18095,"src":"3137:11:48","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":16961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3151:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":16960,"name":"uint256","nodeType":"ElementaryTypeName","src":"3151:7:48","typeDescriptions":{}}}],"id":16962,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3150:9:48","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":16956,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3126:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3130:6:48","memberName":"decode","nodeType":"MemberAccess","src":"3126:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":16963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3126:34:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3107:53:48"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"id":16968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16965,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"3175:8:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16966,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16818,"src":"3187:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16818_$","typeString":"type(enum AERC20Incentive.Strategy)"}},"id":16967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3196:6:48","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16817,"src":"3187:15:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"3175:27:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17016,"nodeType":"Block","src":"3461:249:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16993,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"3578:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":16994,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"3587:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3578:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":16996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3597:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3578:20:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17009,"nodeType":"IfStatement","src":"3574:87:48","trueBody":{"errorCall":{"arguments":[{"expression":{"id":17001,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3630:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3634:6:48","memberName":"sender","nodeType":"MemberAccess","src":"3630:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17005,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3653:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":17003,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3642:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3646:6:48","memberName":"encode","nodeType":"MemberAccess","src":"3642:10:48","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3642:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16998,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"3607:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3618:11:48","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":18296,"src":"3607:22:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,bytes memory) pure returns (error)"}},"id":17007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3607:54:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17008,"nodeType":"RevertStatement","src":"3600:61:48"}},{"expression":{"id":17014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17010,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16828,"src":"3675:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17011,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"3684:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":17012,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"3693:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3684:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3675:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17015,"nodeType":"ExpressionStatement","src":"3675:24:48"}]},"id":17017,"nodeType":"IfStatement","src":"3171:539:48","trueBody":{"id":16992,"nodeType":"Block","src":"3204:251:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16969,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"3328:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":16970,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"3338:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3328:16:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16972,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"3348:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3357:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3348:10:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3328:30:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16987,"nodeType":"IfStatement","src":"3324:97:48","trueBody":{"errorCall":{"arguments":[{"expression":{"id":16979,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3390:3:48","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:6:48","memberName":"sender","nodeType":"MemberAccess","src":"3390:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":16983,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3413:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}],"expression":{"id":16981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3402:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3406:6:48","memberName":"encode","nodeType":"MemberAccess","src":"3402:10:48","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3402:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":16976,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"3367:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":16978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3378:11:48","memberName":"ClaimFailed","nodeType":"MemberAccess","referencedDeclaration":18296,"src":"3367:22:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,bytes memory) pure returns (error)"}},"id":16985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3367:54:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":16986,"nodeType":"RevertStatement","src":"3360:61:48"}},{"expression":{"id":16990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16988,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16828,"src":"3435:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3443:1:48","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3435:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16991,"nodeType":"ExpressionStatement","src":"3435:9:48"}]}},{"expression":{"arguments":[{"expression":{"id":17021,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3801:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3808:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"3801:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17023,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"3816:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17018,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"3782:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3788:12:48","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11205,"src":"3782:18:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":17024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3782:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17025,"nodeType":"ExpressionStatement","src":"3782:41:48"},{"eventCall":{"arguments":[{"expression":{"id":17027,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3846:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3853:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"3846:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17031,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"3878:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17032,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3885:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3892:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"3885:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17034,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"3900:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17029,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3861:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3865:12:48","memberName":"encodePacked","nodeType":"MemberAccess","src":"3861:16:48","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3861:46:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17026,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"3838:7:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3838:70:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17037,"nodeType":"EmitStatement","src":"3833:75:48"},{"expression":{"hexValue":"74727565","id":17038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3926:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16943,"id":17039,"nodeType":"Return","src":"3919:11:48"}]},"documentation":{"id":16934,"nodeType":"StructuredDocumentation","src":"2913:25:48","text":"@inheritdoc Incentive"},"functionSelector":"f1c30ec0","id":17041,"implemented":true,"kind":"function","modifiers":[{"id":16940,"kind":"modifierInvocation","modifierName":{"id":16939,"name":"onlyOwner","nameLocations":["3000:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"3000:9:48"},"nodeType":"ModifierInvocation","src":"3000:9:48"}],"name":"reclaim","nameLocation":"2952:7:48","nodeType":"FunctionDefinition","overrides":{"id":16938,"nodeType":"OverrideSpecifier","overrides":[],"src":"2991:8:48"},"parameters":{"id":16937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16936,"mutability":"mutable","name":"data_","nameLocation":"2975:5:48","nodeType":"VariableDeclaration","scope":17041,"src":"2960:20:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16935,"name":"bytes","nodeType":"ElementaryTypeName","src":"2960:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2959:22:48"},"returnParameters":{"id":16943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17041,"src":"3019:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16941,"name":"bool","nodeType":"ElementaryTypeName","src":"3019:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3018:6:48"},"scope":17181,"src":"2943:994:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[18141],"body":{"id":17065,"nodeType":"Block","src":"4397:123:48","statements":[{"assignments":[17052],"declarations":[{"constant":false,"id":17052,"mutability":"mutable","name":"claim_","nameLocation":"4427:6:48","nodeType":"VariableDeclaration","scope":17065,"src":"4407:26:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17051,"nodeType":"UserDefinedTypeName","pathNode":{"id":17050,"name":"ClaimPayload","nameLocations":["4407:12:48"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"4407:12:48"},"referencedDeclaration":18096,"src":"4407:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17059,"initialValue":{"arguments":[{"id":17055,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17044,"src":"4447:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17056,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"4455:12:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17057,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4454:14:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4436:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4440:6:48","memberName":"decode","nodeType":"MemberAccess","src":"4436:10:48","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4436:33:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"4407:62:48"},{"expression":{"arguments":[{"expression":{"id":17061,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17052,"src":"4499:6:48","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4506:6:48","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"4499:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17060,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17084,"src":"4486:12:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:27:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17049,"id":17064,"nodeType":"Return","src":"4479:34:48"}]},"documentation":{"id":17042,"nodeType":"StructuredDocumentation","src":"3943:370:48","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":17066,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"4327:11:48","nodeType":"FunctionDefinition","overrides":{"id":17046,"nodeType":"OverrideSpecifier","overrides":[],"src":"4373:8:48"},"parameters":{"id":17045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17044,"mutability":"mutable","name":"data_","nameLocation":"4354:5:48","nodeType":"VariableDeclaration","scope":17066,"src":"4339:20:48","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17043,"name":"bytes","nodeType":"ElementaryTypeName","src":"4339:5:48","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4338:22:48"},"returnParameters":{"id":17049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17048,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17066,"src":"4391:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17047,"name":"bool","nodeType":"ElementaryTypeName","src":"4391:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4390:6:48"},"scope":17181,"src":"4318:202:48","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17083,"nodeType":"Block","src":"4797:62:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4814:20:48","subExpression":{"baseExpression":{"id":17074,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"4815:7:48","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17076,"indexExpression":{"id":17075,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17069,"src":"4823:10:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4815:19:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17078,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"4838:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17079,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16828,"src":"4847:5:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4838:14:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4814:38:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17073,"id":17082,"nodeType":"Return","src":"4807:45:48"}]},"documentation":{"id":17067,"nodeType":"StructuredDocumentation","src":"4526:195:48","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":17084,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"4735:12:48","nodeType":"FunctionDefinition","parameters":{"id":17070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17069,"mutability":"mutable","name":"recipient_","nameLocation":"4756:10:48","nodeType":"VariableDeclaration","scope":17084,"src":"4748:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17068,"name":"address","nodeType":"ElementaryTypeName","src":"4748:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4747:20:48"},"returnParameters":{"id":17073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17084,"src":"4791:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17071,"name":"bool","nodeType":"ElementaryTypeName","src":"4791:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4790:6:48"},"scope":17181,"src":"4726:133:48","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":17142,"nodeType":"Block","src":"5022:388:48","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"id":17093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17090,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"5036:8:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17091,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16818,"src":"5048:8:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16818_$","typeString":"type(enum AERC20Incentive.Strategy)"}},"id":17092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5057:6:48","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16817,"src":"5048:15:48","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"5036:27:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17099,"nodeType":"IfStatement","src":"5032:65:48","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17094,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"5072:10:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5083:12:48","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":18342,"src":"5072:23:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5072:25:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17098,"nodeType":"RevertStatement","src":"5065:32:48"}},{"assignments":[17104],"declarations":[{"constant":false,"id":17104,"mutability":"mutable","name":"_prng","nameLocation":"5128:5:48","nodeType":"VariableDeclaration","scope":17142,"src":"5108:25:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG"},"typeName":{"id":17103,"nodeType":"UserDefinedTypeName","pathNode":{"id":17102,"name":"LibPRNG.PRNG","nameLocations":["5108:7:48","5116:4:48"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"5108:12:48"},"referencedDeclaration":10107,"src":"5108:12:48","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}},"visibility":"internal"}],"id":17113,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17107,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5157:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5163:10:48","memberName":"prevrandao","nodeType":"MemberAccess","src":"5157:16:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":17109,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5176:5:48","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:9:48","memberName":"timestamp","nodeType":"MemberAccess","src":"5176:15:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:34:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17105,"name":"LibPRNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10293,"src":"5136:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibPRNG_$10293_$","typeString":"type(library LibPRNG)"}},"id":17106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5144:4:48","memberName":"PRNG","nodeType":"MemberAccess","referencedDeclaration":10107,"src":"5136:12:48","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PRNG_$10107_storage_ptr_$","typeString":"type(struct LibPRNG.PRNG storage pointer)"}},"id":17112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5150:5:48"],"names":["state"],"nodeType":"FunctionCall","src":"5136:57:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG memory"}},"nodeType":"VariableDeclarationStatement","src":"5108:85:48"},{"assignments":[17115],"declarations":[{"constant":false,"id":17115,"mutability":"mutable","name":"winnerAddress","nameLocation":"5212:13:48","nodeType":"VariableDeclaration","scope":17142,"src":"5204:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17114,"name":"address","nodeType":"ElementaryTypeName","src":"5204:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":17124,"initialValue":{"baseExpression":{"id":17116,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16832,"src":"5228:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17123,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17117,"name":"_prng","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17104,"src":"5236:5:48","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_memory_ptr","typeString":"struct LibPRNG.PRNG memory"}},"id":17118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5242:4:48","memberName":"next","nodeType":"MemberAccess","referencedDeclaration":10133,"src":"5236:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_PRNG_$10107_memory_ptr_$returns$_t_uint256_$attached_to$_t_struct$_PRNG_$10107_memory_ptr_$","typeString":"function (struct LibPRNG.PRNG memory) pure returns (uint256)"}},"id":17119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5236:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"expression":{"id":17120,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16832,"src":"5251:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":17121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5259:6:48","memberName":"length","nodeType":"MemberAccess","src":"5251:14:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5236:29:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5228:38:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5204:62:48"},{"expression":{"arguments":[{"id":17128,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17115,"src":"5296:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17129,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"5311:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17125,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"5277:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5283:12:48","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":11205,"src":"5277:18:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":17130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5277:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17131,"nodeType":"ExpressionStatement","src":"5277:41:48"},{"eventCall":{"arguments":[{"id":17133,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17115,"src":"5341:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17136,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"5373:5:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17137,"name":"winnerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17115,"src":"5380:13:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17138,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"5395:6:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17134,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5356:3:48","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5360:12:48","memberName":"encodePacked","nodeType":"MemberAccess","src":"5356:16:48","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:46:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17132,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"5333:7:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5333:70:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17141,"nodeType":"EmitStatement","src":"5328:75:48"}]},"documentation":{"id":17085,"nodeType":"StructuredDocumentation","src":"4865:111:48","text":"@notice Draw a winner from the raffle\n @dev Only valid when the strategy is set to `Strategy.RAFFLE`"},"functionSelector":"2275aea9","id":17143,"implemented":true,"kind":"function","modifiers":[{"id":17088,"kind":"modifierInvocation","modifierName":{"id":17087,"name":"onlyOwner","nameLocations":["5012:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"5012:9:48"},"nodeType":"ModifierInvocation","src":"5012:9:48"}],"name":"drawRaffle","nameLocation":"4990:10:48","nodeType":"FunctionDefinition","parameters":{"id":17086,"nodeType":"ParameterList","parameters":[],"src":"5000:2:48"},"returnParameters":{"id":17089,"nodeType":"ParameterList","parameters":[],"src":"5022:0:48"},"scope":17181,"src":"4981:429:48","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[18195],"body":{"id":17156,"nodeType":"Block","src":"5536:57:48","statements":[{"expression":{"expression":{"arguments":[{"id":17152,"name":"AERC20Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17181,"src":"5558:15:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AERC20Incentive_$17181_$","typeString":"type(contract AERC20Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AERC20Incentive_$17181_$","typeString":"type(contract AERC20Incentive)"}],"id":17151,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5553:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5553:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AERC20Incentive_$17181","typeString":"type(contract AERC20Incentive)"}},"id":17154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5575:11:48","memberName":"interfaceId","nodeType":"MemberAccess","src":"5553:33:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":17150,"id":17155,"nodeType":"Return","src":"5546:40:48"}]},"documentation":{"id":17144,"nodeType":"StructuredDocumentation","src":"5416:25:48","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":17157,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"5455:21:48","nodeType":"FunctionDefinition","overrides":{"id":17147,"nodeType":"OverrideSpecifier","overrides":[{"id":17146,"name":"Incentive","nameLocations":["5508:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"5508:9:48"}],"src":"5499:19:48"},"parameters":{"id":17145,"nodeType":"ParameterList","parameters":[],"src":"5476:2:48"},"returnParameters":{"id":17150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17157,"src":"5528:6:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17148,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5528:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5527:8:48"},"scope":17181,"src":"5446:147:48","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[18181],"body":{"id":17179,"nodeType":"Block","src":"5731:112:48","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17167,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17160,"src":"5748:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17169,"name":"AERC20Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17181,"src":"5768:15:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AERC20Incentive_$17181_$","typeString":"type(contract AERC20Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_AERC20Incentive_$17181_$","typeString":"type(contract AERC20Incentive)"}],"id":17168,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5763:4:48","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5763:21:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_AERC20Incentive_$17181","typeString":"type(contract AERC20Incentive)"}},"id":17171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5785:11:48","memberName":"interfaceId","nodeType":"MemberAccess","src":"5763:33:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"5748:48:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":17175,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17160,"src":"5824:11:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17173,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5800:5:48","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AERC20Incentive_$17181_$","typeString":"type(contract super AERC20Incentive)"}},"id":17174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5806:17:48","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"5800:23:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":17176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5800:36:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5748:88:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17166,"id":17178,"nodeType":"Return","src":"5741:95:48"}]},"documentation":{"id":17158,"nodeType":"StructuredDocumentation","src":"5599:25:48","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":17180,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5638:17:48","nodeType":"FunctionDefinition","overrides":{"id":17163,"nodeType":"OverrideSpecifier","overrides":[{"id":17162,"name":"Incentive","nameLocations":["5705:9:48"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"5705:9:48"}],"src":"5696:19:48"},"parameters":{"id":17161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17160,"mutability":"mutable","name":"interfaceId","nameLocation":"5663:11:48","nodeType":"VariableDeclaration","scope":17180,"src":"5656:18:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17159,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5656:6:48","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5655:20:48"},"returnParameters":{"id":17166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17180,"src":"5725:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17164,"name":"bool","nodeType":"ElementaryTypeName","src":"5725:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5724:6:48"},"scope":17181,"src":"5629:214:48","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17182,"src":"507:5338:48","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18296,18342,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,16813,18084]}],"src":"36:5810:48"},"id":48},"contracts/incentives/APointsIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/APointsIncentive.sol","exportedSymbols":{"APointsIncentive":[17399],"BoostError":[18343],"Budget":[15659],"Cloneable":[18509],"Incentive":[18196]},"id":17400,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17183,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:49"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":17185,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17400,"sourceUnit":18344,"src":"62:59:49","symbolAliases":[{"foreign":{"id":17184,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"70:10:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":17187,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17400,"sourceUnit":18510,"src":"122:57:49","symbolAliases":[{"foreign":{"id":17186,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"130:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17189,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17400,"sourceUnit":15660,"src":"181:52:49","symbolAliases":[{"foreign":{"id":17188,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"189:6:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"./Incentive.sol","id":17191,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17400,"sourceUnit":18197,"src":"234:42:49","symbolAliases":[{"foreign":{"id":17190,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"242:9:49","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":17193,"name":"Incentive","nameLocations":["733:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"733:9:49"},"id":17194,"nodeType":"InheritanceSpecifier","src":"733:9:49"}],"canonicalName":"APointsIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17192,"nodeType":"StructuredDocumentation","src":"278:417:49","text":"@title Points Incentive\n @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n @dev In order for any claim to be successful:\n - The claimer must not have already claimed the incentive; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to operate the points contract's issuance function"},"fullyImplemented":true,"id":17399,"linearizedBaseContracts":[17399,18196,11024,18509,2831,2843,9211,6409],"name":"APointsIncentive","nameLocation":"713:16:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":17195,"nodeType":"StructuredDocumentation","src":"749:46:49","text":"@notice The address of the points contract"},"functionSelector":"a270a737","id":17197,"mutability":"mutable","name":"venue","nameLocation":"815:5:49","nodeType":"VariableDeclaration","scope":17399,"src":"800:20:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17196,"name":"address","nodeType":"ElementaryTypeName","src":"800:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"documentation":{"id":17198,"nodeType":"StructuredDocumentation","src":"827:75:49","text":"@notice The maximum number of claims that can be made (one per address)"},"functionSelector":"a4d66daf","id":17200,"mutability":"mutable","name":"limit","nameLocation":"922:5:49","nodeType":"VariableDeclaration","scope":17399,"src":"907:20:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17199,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":17201,"nodeType":"StructuredDocumentation","src":"934:73:49","text":"@notice The selector for the issuance function on the points contract"},"functionSelector":"ea3d508a","id":17203,"mutability":"mutable","name":"selector","nameLocation":"1026:8:49","nodeType":"VariableDeclaration","scope":17399,"src":"1012:22:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17202,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1012:6:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"baseFunctions":[18474],"body":{"id":17213,"nodeType":"Block","src":"1197:41:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17210,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1214:15:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:17:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17212,"nodeType":"RevertStatement","src":"1207:24:49"}]},"documentation":{"id":17204,"nodeType":"StructuredDocumentation","src":"1041:85:49","text":"@inheritdoc Cloneable\n @param data_ The packed init data for the incentive"},"functionSelector":"439fab91","id":17214,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"1140:10:49","nodeType":"FunctionDefinition","overrides":{"id":17208,"nodeType":"OverrideSpecifier","overrides":[],"src":"1188:8:49"},"parameters":{"id":17207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17206,"mutability":"mutable","name":"data_","nameLocation":"1166:5:49","nodeType":"VariableDeclaration","scope":17214,"src":"1151:20:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17205,"name":"bytes","nodeType":"ElementaryTypeName","src":"1151:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1150:22:49"},"returnParameters":{"id":17209,"nodeType":"ParameterList","parameters":[],"src":"1197:0:49"},"scope":17399,"src":"1131:107:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[18125],"body":{"id":17287,"nodeType":"Block","src":"1519:449:49","statements":[{"assignments":[17227],"declarations":[{"constant":false,"id":17227,"mutability":"mutable","name":"claim_","nameLocation":"1549:6:49","nodeType":"VariableDeclaration","scope":17287,"src":"1529:26:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17226,"nodeType":"UserDefinedTypeName","pathNode":{"id":17225,"name":"ClaimPayload","nameLocations":["1529:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"1529:12:49"},"referencedDeclaration":18096,"src":"1529:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17234,"initialValue":{"arguments":[{"id":17230,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17217,"src":"1569:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17231,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"1577:12:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17232,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1576:14:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1558:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1562:6:49","memberName":"decode","nodeType":"MemberAccess","src":"1558:10:49","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1558:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1529:62:49"},{"condition":{"id":17239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1605:28:49","subExpression":{"arguments":[{"expression":{"id":17236,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"1619:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17237,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1626:6:49","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1619:13:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17235,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17361,"src":"1606:12:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17243,"nodeType":"IfStatement","src":"1601:55:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17240,"name":"NotClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18090,"src":"1642:12:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1642:14:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17242,"nodeType":"RevertStatement","src":"1635:21:49"}},{"expression":{"id":17245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1667:8:49","subExpression":{"id":17244,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"1667:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17246,"nodeType":"ExpressionStatement","src":"1667:8:49"},{"expression":{"id":17252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17247,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"1685:7:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17250,"indexExpression":{"expression":{"id":17248,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"1693:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1700:6:49","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1693:13:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1685:22:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":17251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1710:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1685:29:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17253,"nodeType":"ExpressionStatement","src":"1685:29:49"},{"assignments":[17255,null],"declarations":[{"constant":false,"id":17255,"mutability":"mutable","name":"success","nameLocation":"1731:7:49","nodeType":"VariableDeclaration","scope":17287,"src":"1726:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17254,"name":"bool","nodeType":"ElementaryTypeName","src":"1726:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":17266,"initialValue":{"arguments":[{"arguments":[{"id":17260,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17203,"src":"1777:8:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":17261,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"1787:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1794:6:49","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1787:13:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17263,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"1802:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17258,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1754:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1758:18:49","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1754:22:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":17264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1754:55:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17256,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17197,"src":"1743:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1749:4:49","memberName":"call","nodeType":"MemberAccess","src":"1743:10:49","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":17265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1743:67:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1725:85:49"},{"condition":{"id":17268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1824:8:49","subExpression":{"id":17267,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17255,"src":"1825:7:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17272,"nodeType":"IfStatement","src":"1820:34:49","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":17269,"name":"ClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"1841:11:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1841:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17271,"nodeType":"RevertStatement","src":"1834:20:49"}},{"eventCall":{"arguments":[{"expression":{"id":17274,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"1878:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1885:6:49","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1878:13:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17278,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17197,"src":"1910:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17279,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17227,"src":"1917:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1924:6:49","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"1917:13:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17281,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"1932:6:49","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":17276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1893:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1897:12:49","memberName":"encodePacked","nodeType":"MemberAccess","src":"1893:16:49","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1893:46:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17273,"name":"Claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"1870:7:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":17283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1870:70:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17284,"nodeType":"EmitStatement","src":"1865:75:49"},{"expression":{"hexValue":"74727565","id":17285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1957:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":17224,"id":17286,"nodeType":"Return","src":"1950:11:49"}]},"documentation":{"id":17215,"nodeType":"StructuredDocumentation","src":"1244:190:49","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim `(address recipient, bytes data)`\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":17288,"implemented":true,"kind":"function","modifiers":[{"id":17221,"kind":"modifierInvocation","modifierName":{"id":17220,"name":"onlyOwner","nameLocations":["1494:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"1494:9:49"},"nodeType":"ModifierInvocation","src":"1494:9:49"}],"name":"claim","nameLocation":"1448:5:49","nodeType":"FunctionDefinition","overrides":{"id":17219,"nodeType":"OverrideSpecifier","overrides":[],"src":"1485:8:49"},"parameters":{"id":17218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17217,"mutability":"mutable","name":"data_","nameLocation":"1469:5:49","nodeType":"VariableDeclaration","scope":17288,"src":"1454:20:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17216,"name":"bytes","nodeType":"ElementaryTypeName","src":"1454:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1453:22:49"},"returnParameters":{"id":17224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17288,"src":"1513:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17222,"name":"bool","nodeType":"ElementaryTypeName","src":"1513:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1512:6:49"},"scope":17399,"src":"1439:529:49","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[18133],"body":{"id":17302,"nodeType":"Block","src":"2137:51:49","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17297,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"2154:10:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:14:49","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":18321,"src":"2154:25:49","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17301,"nodeType":"RevertStatement","src":"2147:34:49"}]},"documentation":{"id":17289,"nodeType":"StructuredDocumentation","src":"1974:87:49","text":"@inheritdoc Incentive\n @dev Not a valid operation for this type of incentive"},"functionSelector":"f1c30ec0","id":17303,"implemented":true,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2075:7:49","nodeType":"FunctionDefinition","overrides":{"id":17293,"nodeType":"OverrideSpecifier","overrides":[],"src":"2113:8:49"},"parameters":{"id":17292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17303,"src":"2083:14:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17290,"name":"bytes","nodeType":"ElementaryTypeName","src":"2083:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2082:16:49"},"returnParameters":{"id":17296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17303,"src":"2131:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17294,"name":"bool","nodeType":"ElementaryTypeName","src":"2131:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2130:6:49"},"scope":17399,"src":"2066:122:49","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[18149],"body":{"id":17317,"nodeType":"Block","src":"2383:36:49","statements":[{"expression":{"arguments":[{"hexValue":"30","id":17314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2410:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2400:9:49","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":17312,"name":"bytes","nodeType":"ElementaryTypeName","src":"2404:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":17315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2400:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":17311,"id":17316,"nodeType":"Return","src":"2393:19:49"}]},"documentation":{"id":17304,"nodeType":"StructuredDocumentation","src":"2194:92:49","text":"@inheritdoc Incentive\n @notice No token approvals are required for this incentive"},"functionSelector":"4e7165a2","id":17318,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2300:9:49","nodeType":"FunctionDefinition","overrides":{"id":17308,"nodeType":"OverrideSpecifier","overrides":[],"src":"2340:8:49"},"parameters":{"id":17307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17306,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17318,"src":"2310:14:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17305,"name":"bytes","nodeType":"ElementaryTypeName","src":"2310:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2309:16:49"},"returnParameters":{"id":17311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17310,"mutability":"mutable","name":"budgetData","nameLocation":"2371:10:49","nodeType":"VariableDeclaration","scope":17318,"src":"2358:23:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17309,"name":"bytes","nodeType":"ElementaryTypeName","src":"2358:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2357:25:49"},"scope":17399,"src":"2291:128:49","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[18141],"body":{"id":17342,"nodeType":"Block","src":"2879:123:49","statements":[{"assignments":[17329],"declarations":[{"constant":false,"id":17329,"mutability":"mutable","name":"claim_","nameLocation":"2909:6:49","nodeType":"VariableDeclaration","scope":17342,"src":"2889:26:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload"},"typeName":{"id":17328,"nodeType":"UserDefinedTypeName","pathNode":{"id":17327,"name":"ClaimPayload","nameLocations":["2889:12:49"],"nodeType":"IdentifierPath","referencedDeclaration":18096,"src":"2889:12:49"},"referencedDeclaration":18096,"src":"2889:12:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_storage_ptr","typeString":"struct Incentive.ClaimPayload"}},"visibility":"internal"}],"id":17336,"initialValue":{"arguments":[{"id":17332,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17321,"src":"2929:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17333,"name":"ClaimPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18096,"src":"2937:12:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"id":17334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2936:14:49","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_ClaimPayload_$18096_storage_ptr_$","typeString":"type(struct Incentive.ClaimPayload storage pointer)"}],"expression":{"id":17330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2918:3:49","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2922:6:49","memberName":"decode","nodeType":"MemberAccess","src":"2918:10:49","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2918:33:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2889:62:49"},{"expression":{"arguments":[{"expression":{"id":17338,"name":"claim_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17329,"src":"2981:6:49","typeDescriptions":{"typeIdentifier":"t_struct$_ClaimPayload_$18096_memory_ptr","typeString":"struct Incentive.ClaimPayload memory"}},"id":17339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2988:6:49","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":18093,"src":"2981:13:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17337,"name":"_isClaimable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17361,"src":"2968:12:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":17340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2968:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17326,"id":17341,"nodeType":"Return","src":"2961:34:49"}]},"documentation":{"id":17319,"nodeType":"StructuredDocumentation","src":"2425:370:49","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check `(address recipient, bytes data)`\n @return True if the incentive is claimable based on the data payload\n @dev For the POOL strategy, the `bytes data` portion of the payload ignored\n @dev The recipient must not have already claimed the incentive"},"functionSelector":"e18e6508","id":17343,"implemented":true,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"2809:11:49","nodeType":"FunctionDefinition","overrides":{"id":17323,"nodeType":"OverrideSpecifier","overrides":[],"src":"2855:8:49"},"parameters":{"id":17322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17321,"mutability":"mutable","name":"data_","nameLocation":"2836:5:49","nodeType":"VariableDeclaration","scope":17343,"src":"2821:20:49","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17320,"name":"bytes","nodeType":"ElementaryTypeName","src":"2821:5:49","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2820:22:49"},"returnParameters":{"id":17326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17343,"src":"2873:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17324,"name":"bool","nodeType":"ElementaryTypeName","src":"2873:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2872:6:49"},"scope":17399,"src":"2800:202:49","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17360,"nodeType":"Block","src":"3279:62:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3296:20:49","subExpression":{"baseExpression":{"id":17351,"name":"claimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"3297:7:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":17353,"indexExpression":{"id":17352,"name":"recipient_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17346,"src":"3305:10:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3297:19:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17355,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18099,"src":"3320:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17356,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17200,"src":"3329:5:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3320:14:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3296:38:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17350,"id":17359,"nodeType":"Return","src":"3289:45:49"}]},"documentation":{"id":17344,"nodeType":"StructuredDocumentation","src":"3008:195:49","text":"@notice Check if an incentive is claimable for a specific recipient\n @param recipient_ The address of the recipient\n @return True if the incentive is claimable for the recipient"},"id":17361,"implemented":true,"kind":"function","modifiers":[],"name":"_isClaimable","nameLocation":"3217:12:49","nodeType":"FunctionDefinition","parameters":{"id":17347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17346,"mutability":"mutable","name":"recipient_","nameLocation":"3238:10:49","nodeType":"VariableDeclaration","scope":17361,"src":"3230:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17345,"name":"address","nodeType":"ElementaryTypeName","src":"3230:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3229:20:49"},"returnParameters":{"id":17350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17361,"src":"3273:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17348,"name":"bool","nodeType":"ElementaryTypeName","src":"3273:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3272:6:49"},"scope":17399,"src":"3208:133:49","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[18195],"body":{"id":17374,"nodeType":"Block","src":"3467:58:49","statements":[{"expression":{"expression":{"arguments":[{"id":17370,"name":"APointsIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17399,"src":"3489:16:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_APointsIncentive_$17399_$","typeString":"type(contract APointsIncentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_APointsIncentive_$17399_$","typeString":"type(contract APointsIncentive)"}],"id":17369,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3484:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3484:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_APointsIncentive_$17399","typeString":"type(contract APointsIncentive)"}},"id":17372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3507:11:49","memberName":"interfaceId","nodeType":"MemberAccess","src":"3484:34:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":17368,"id":17373,"nodeType":"Return","src":"3477:41:49"}]},"documentation":{"id":17362,"nodeType":"StructuredDocumentation","src":"3347:25:49","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":17375,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"3386:21:49","nodeType":"FunctionDefinition","overrides":{"id":17365,"nodeType":"OverrideSpecifier","overrides":[{"id":17364,"name":"Incentive","nameLocations":["3439:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"3439:9:49"}],"src":"3430:19:49"},"parameters":{"id":17363,"nodeType":"ParameterList","parameters":[],"src":"3407:2:49"},"returnParameters":{"id":17368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17375,"src":"3459:6:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17366,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3459:6:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3458:8:49"},"scope":17399,"src":"3377:148:49","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[18181],"body":{"id":17397,"nodeType":"Block","src":"3663:113:49","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":17390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17385,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17378,"src":"3680:11:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":17387,"name":"APointsIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17399,"src":"3700:16:49","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_APointsIncentive_$17399_$","typeString":"type(contract APointsIncentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_APointsIncentive_$17399_$","typeString":"type(contract APointsIncentive)"}],"id":17386,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3695:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":17388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3695:22:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_APointsIncentive_$17399","typeString":"type(contract APointsIncentive)"}},"id":17389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3718:11:49","memberName":"interfaceId","nodeType":"MemberAccess","src":"3695:34:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3680:49:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":17393,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17378,"src":"3757:11:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":17391,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3733:5:49","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_APointsIncentive_$17399_$","typeString":"type(contract super APointsIncentive)"}},"id":17392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3739:17:49","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18181,"src":"3733:23:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":17394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3733:36:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3680:89:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17384,"id":17396,"nodeType":"Return","src":"3673:96:49"}]},"documentation":{"id":17376,"nodeType":"StructuredDocumentation","src":"3531:25:49","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":17398,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3570:17:49","nodeType":"FunctionDefinition","overrides":{"id":17381,"nodeType":"OverrideSpecifier","overrides":[{"id":17380,"name":"Incentive","nameLocations":["3637:9:49"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"3637:9:49"}],"src":"3628:19:49"},"parameters":{"id":17379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17378,"mutability":"mutable","name":"interfaceId","nameLocation":"3595:11:49","nodeType":"VariableDeclaration","scope":17398,"src":"3588:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":17377,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3588:6:49","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3587:20:49"},"returnParameters":{"id":17384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17398,"src":"3657:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17382,"name":"bool","nodeType":"ElementaryTypeName","src":"3657:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3656:6:49"},"scope":17399,"src":"3561:215:49","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":17400,"src":"695:3083:49","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18321,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:3743:49"},"id":49},"contracts/incentives/AllowListIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/AllowListIncentive.sol","exportedSymbols":{"AAllowListIncentive":[16090],"AllowListIncentive":[17465],"BoostError":[18343],"Cloneable":[18509],"Incentive":[18196],"SimpleAllowList":[13665]},"id":17466,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17401,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:50"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":17403,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17466,"sourceUnit":18344,"src":"62:59:50","symbolAliases":[{"foreign":{"id":17402,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"70:10:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":17405,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17466,"sourceUnit":18510,"src":"122:57:50","symbolAliases":[{"foreign":{"id":17404,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"130:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/SimpleAllowList.sol","file":"contracts/allowlists/SimpleAllowList.sol","id":17407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17466,"sourceUnit":13666,"src":"181:73:50","symbolAliases":[{"foreign":{"id":17406,"name":"SimpleAllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13665,"src":"189:15:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/AAllowListIncentive.sol","file":"contracts/incentives/AAllowListIncentive.sol","id":17409,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17466,"sourceUnit":16091,"src":"255:81:50","symbolAliases":[{"foreign":{"id":17408,"name":"AAllowListIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16090,"src":"263:19:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":17411,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17466,"sourceUnit":18197,"src":"337:61:50","symbolAliases":[{"foreign":{"id":17410,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"345:9:50","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17413,"name":"AAllowListIncentive","nameLocations":["817:19:50"],"nodeType":"IdentifierPath","referencedDeclaration":16090,"src":"817:19:50"},"id":17414,"nodeType":"InheritanceSpecifier","src":"817:19:50"}],"canonicalName":"AllowListIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17412,"nodeType":"StructuredDocumentation","src":"400:386:50","text":"@title SimpleAllowList Incentive\n @notice An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\n @dev In order for any claim to be successful:\n - The claimer must not already be on the allow list; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to modify the allow list"},"fullyImplemented":true,"id":17465,"linearizedBaseContracts":[17465,16090,18196,11024,18509,2831,2843,9211,6409],"name":"AllowListIncentive","nameLocation":"795:18:50","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AllowListIncentive.InitPayload","documentation":{"id":17415,"nodeType":"StructuredDocumentation","src":"843:62:50","text":"@notice The payload for initializing an AllowListIncentive"},"id":17421,"members":[{"constant":false,"id":17418,"mutability":"mutable","name":"allowList","nameLocation":"955:9:50","nodeType":"VariableDeclaration","scope":17421,"src":"939:25:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"},"typeName":{"id":17417,"nodeType":"UserDefinedTypeName","pathNode":{"id":17416,"name":"SimpleAllowList","nameLocations":["939:15:50"],"nodeType":"IdentifierPath","referencedDeclaration":13665,"src":"939:15:50"},"referencedDeclaration":13665,"src":"939:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"}},"visibility":"internal"},{"constant":false,"id":17420,"mutability":"mutable","name":"limit","nameLocation":"982:5:50","nodeType":"VariableDeclaration","scope":17421,"src":"974:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17419,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"917:11:50","nodeType":"StructDefinition","scope":17465,"src":"910:84:50","visibility":"public"},{"body":{"id":17428,"nodeType":"Block","src":"1258:39:50","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17425,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"1268:20:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1268:22:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17427,"nodeType":"ExpressionStatement","src":"1268:22:50"}]},"documentation":{"id":17422,"nodeType":"StructuredDocumentation","src":"1000:239:50","text":"@notice Construct a new AllowListIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":17429,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17423,"nodeType":"ParameterList","parameters":[],"src":"1255:2:50"},"returnParameters":{"id":17424,"nodeType":"ParameterList","parameters":[],"src":"1258:0:50"},"scope":17465,"src":"1244:53:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[15869],"body":{"id":17463,"nodeType":"Block","src":"1540:180:50","statements":[{"assignments":[17440],"declarations":[{"constant":false,"id":17440,"mutability":"mutable","name":"init_","nameLocation":"1569:5:50","nodeType":"VariableDeclaration","scope":17463,"src":"1550:24:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17421_memory_ptr","typeString":"struct AllowListIncentive.InitPayload"},"typeName":{"id":17439,"nodeType":"UserDefinedTypeName","pathNode":{"id":17438,"name":"InitPayload","nameLocations":["1550:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":17421,"src":"1550:11:50"},"referencedDeclaration":17421,"src":"1550:11:50","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17421_storage_ptr","typeString":"struct AllowListIncentive.InitPayload"}},"visibility":"internal"}],"id":17447,"initialValue":{"arguments":[{"id":17443,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17432,"src":"1588:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17444,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17421,"src":"1596:11:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17421_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}}],"id":17445,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1595:13:50","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17421_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17421_storage_ptr_$","typeString":"type(struct AllowListIncentive.InitPayload storage pointer)"}],"expression":{"id":17441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1577:3:50","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1581:6:50","memberName":"decode","nodeType":"MemberAccess","src":"1577:10:50","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:32:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17421_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1550:59:50"},{"expression":{"arguments":[{"expression":{"id":17449,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1636:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1640:6:50","memberName":"sender","nodeType":"MemberAccess","src":"1636:10:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17448,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1619:16:50","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1619:28:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17452,"nodeType":"ExpressionStatement","src":"1619:28:50"},{"expression":{"id":17456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17453,"name":"allowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15855,"src":"1657:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17454,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17440,"src":"1669:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17421_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"id":17455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1675:9:50","memberName":"allowList","nodeType":"MemberAccess","referencedDeclaration":17418,"src":"1669:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"}},"src":"1657:27:50","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleAllowList_$13665","typeString":"contract SimpleAllowList"}},"id":17457,"nodeType":"ExpressionStatement","src":"1657:27:50"},{"expression":{"id":17461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17458,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15858,"src":"1694:5:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17459,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17440,"src":"1702:5:50","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17421_memory_ptr","typeString":"struct AllowListIncentive.InitPayload memory"}},"id":17460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1708:5:50","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17420,"src":"1702:11:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1694:19:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17462,"nodeType":"ExpressionStatement","src":"1694:19:50"}]},"documentation":{"id":17430,"nodeType":"StructuredDocumentation","src":"1303:162:50","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The packed initialization data `(SimpleAllowList allowList, uint256 limit)`"},"functionSelector":"439fab91","id":17464,"implemented":true,"kind":"function","modifiers":[{"id":17436,"kind":"modifierInvocation","modifierName":{"id":17435,"name":"initializer","nameLocations":["1528:11:50"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1528:11:50"},"nodeType":"ModifierInvocation","src":"1528:11:50"}],"name":"initialize","nameLocation":"1479:10:50","nodeType":"FunctionDefinition","overrides":{"id":17434,"nodeType":"OverrideSpecifier","overrides":[],"src":"1519:8:50"},"parameters":{"id":17433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17432,"mutability":"mutable","name":"data_","nameLocation":"1505:5:50","nodeType":"VariableDeclaration","scope":17464,"src":"1490:20:50","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17431,"name":"bytes","nodeType":"ElementaryTypeName","src":"1490:5:50","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1489:22:50"},"returnParameters":{"id":17437,"nodeType":"ParameterList","parameters":[],"src":"1540:0:50"},"scope":17465,"src":"1470:250:50","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":17466,"src":"786:936:50","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18321,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:1687:50"},"id":50},"contracts/incentives/CGDAIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/CGDAIncentive.sol","exportedSymbols":{"ACGDAIncentive":[16417],"BoostError":[18343],"Budget":[15659],"CGDAIncentive":[17651],"Cloneable":[18509],"Incentive":[18196],"SafeTransferLib":[11358]},"id":17652,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17467,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:51"},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":17469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17652,"sourceUnit":11359,"src":"62:66:51","symbolAliases":[{"foreign":{"id":17468,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"70:15:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":17471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17652,"sourceUnit":18510,"src":"130:57:51","symbolAliases":[{"foreign":{"id":17470,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"138:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":17473,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17652,"sourceUnit":18344,"src":"188:59:51","symbolAliases":[{"foreign":{"id":17472,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"196:10:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17475,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17652,"sourceUnit":15660,"src":"249:52:51","symbolAliases":[{"foreign":{"id":17474,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"257:6:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/ACGDAIncentive.sol","file":"contracts/incentives/ACGDAIncentive.sol","id":17477,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17652,"sourceUnit":16418,"src":"302:71:51","symbolAliases":[{"foreign":{"id":17476,"name":"ACGDAIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16417,"src":"310:14:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":17479,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17652,"sourceUnit":18197,"src":"374:61:51","symbolAliases":[{"foreign":{"id":17478,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"382:9:51","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17481,"name":"ACGDAIncentive","nameLocations":["628:14:51"],"nodeType":"IdentifierPath","referencedDeclaration":16417,"src":"628:14:51"},"id":17482,"nodeType":"InheritanceSpecifier","src":"628:14:51"}],"canonicalName":"CGDAIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17480,"nodeType":"StructuredDocumentation","src":"437:165:51","text":"@title Continuous Gradual Dutch Auction Incentive\n @notice An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume."},"fullyImplemented":true,"id":17651,"linearizedBaseContracts":[17651,16417,18196,11024,18509,2831,2843,9211,6409],"name":"CGDAIncentive","nameLocation":"611:13:51","nodeType":"ContractDefinition","nodes":[{"global":false,"id":17485,"libraryName":{"id":17483,"name":"SafeTransferLib","nameLocations":["655:15:51"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"655:15:51"},"nodeType":"UsingForDirective","src":"649:34:51","typeName":{"id":17484,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"CGDAIncentive.InitPayload","documentation":{"id":17486,"nodeType":"StructuredDocumentation","src":"689:448:51","text":"@notice The payload for initializing a CGDAIncentive\n @param asset The address of the ERC20-like token\n @param initialReward The initial reward amount\n @param rewardDecay The amount to subtract from the current reward after each claim\n @param rewardBoost The amount by which the reward increases for each hour without a claim (continuous linear increase)\n @param totalBudget The total budget for the incentive"},"id":17497,"members":[{"constant":false,"id":17488,"mutability":"mutable","name":"asset","nameLocation":"1179:5:51","nodeType":"VariableDeclaration","scope":17497,"src":"1171:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17487,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17490,"mutability":"mutable","name":"initialReward","nameLocation":"1202:13:51","nodeType":"VariableDeclaration","scope":17497,"src":"1194:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1194:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17492,"mutability":"mutable","name":"rewardDecay","nameLocation":"1233:11:51","nodeType":"VariableDeclaration","scope":17497,"src":"1225:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17491,"name":"uint256","nodeType":"ElementaryTypeName","src":"1225:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17494,"mutability":"mutable","name":"rewardBoost","nameLocation":"1262:11:51","nodeType":"VariableDeclaration","scope":17497,"src":"1254:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17493,"name":"uint256","nodeType":"ElementaryTypeName","src":"1254:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17496,"mutability":"mutable","name":"totalBudget","nameLocation":"1291:11:51","nodeType":"VariableDeclaration","scope":17497,"src":"1283:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17495,"name":"uint256","nodeType":"ElementaryTypeName","src":"1283:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"1149:11:51","nodeType":"StructDefinition","scope":17651,"src":"1142:167:51","visibility":"public"},{"body":{"id":17504,"nodeType":"Block","src":"1490:39:51","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17501,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"1500:20:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:22:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17503,"nodeType":"ExpressionStatement","src":"1500:22:51"}]},"documentation":{"id":17498,"nodeType":"StructuredDocumentation","src":"1315:156:51","text":"@notice Construct a new CGDAIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor."},"id":17505,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17499,"nodeType":"ParameterList","parameters":[],"src":"1487:2:51"},"returnParameters":{"id":17500,"nodeType":"ParameterList","parameters":[],"src":"1490:0:51"},"scope":17651,"src":"1476:53:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[16137],"body":{"id":17605,"nodeType":"Block","src":"1699:844:51","statements":[{"assignments":[17516],"declarations":[{"constant":false,"id":17516,"mutability":"mutable","name":"init_","nameLocation":"1728:5:51","nodeType":"VariableDeclaration","scope":17605,"src":"1709:24:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload"},"typeName":{"id":17515,"nodeType":"UserDefinedTypeName","pathNode":{"id":17514,"name":"InitPayload","nameLocations":["1709:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":17497,"src":"1709:11:51"},"referencedDeclaration":17497,"src":"1709:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_storage_ptr","typeString":"struct CGDAIncentive.InitPayload"}},"visibility":"internal"}],"id":17523,"initialValue":{"arguments":[{"id":17519,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17508,"src":"1747:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17520,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17497,"src":"1755:11:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17497_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"id":17521,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1754:13:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17497_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17497_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}],"expression":{"id":17517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1736:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1740:6:51","memberName":"decode","nodeType":"MemberAccess","src":"1736:10:51","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1736:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1709:59:51"},{"assignments":[17525],"declarations":[{"constant":false,"id":17525,"mutability":"mutable","name":"available","nameLocation":"1787:9:51","nodeType":"VariableDeclaration","scope":17605,"src":"1779:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1779:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17534,"initialValue":{"arguments":[{"arguments":[{"id":17531,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1829:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$17651","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$17651","typeString":"contract CGDAIncentive"}],"id":17530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1821:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17529,"name":"address","nodeType":"ElementaryTypeName","src":"1821:7:51","typeDescriptions":{}}},"id":17532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1821:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":17526,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"1799:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1805:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17488,"src":"1799:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1811:9:51","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"1799:21:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":17533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1799:36:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1779:56:51"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17535,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17525,"src":"1849:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17536,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"1861:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1867:11:51","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":17496,"src":"1861:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1849:29:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17550,"nodeType":"IfStatement","src":"1845:138:51","trueBody":{"id":17549,"nodeType":"Block","src":"1880:103:51","statements":[{"errorCall":{"arguments":[{"expression":{"id":17542,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"1930:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1936:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17488,"src":"1930:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17544,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17525,"src":"1943:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17545,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"1954:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1960:11:51","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":17496,"src":"1954:17:51","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":17539,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1901:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1912:17:51","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":18305,"src":"1901:28:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":17547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:71:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17548,"nodeType":"RevertStatement","src":"1894:78:51"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17551,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2010:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2016:13:51","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"2010:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2033:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2010:24:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17555,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2038:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2044:11:51","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":17492,"src":"2038:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2059:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2038:22:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2010:50:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17560,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2064:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2070:11:51","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":17494,"src":"2064:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2085:1:51","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2064:22:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2010:76:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17565,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2106:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2112:11:51","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":17496,"src":"2106:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17567,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2126:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2132:13:51","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"2126:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2106:39:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2010:135:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17576,"nodeType":"IfStatement","src":"1993:204:51","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17571,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"2163:10:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2174:21:51","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":18315,"src":"2163:32:51","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:34:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17575,"nodeType":"RevertStatement","src":"2156:41:51"}},{"expression":{"id":17580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17577,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16111,"src":"2208:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17578,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2216:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2222:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17488,"src":"2216:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2208:19:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17581,"nodeType":"ExpressionStatement","src":"2208:19:51"},{"expression":{"id":17593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17582,"name":"cgdaParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16124,"src":"2237:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":17584,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2292:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2298:11:51","memberName":"rewardDecay","nodeType":"MemberAccess","referencedDeclaration":17492,"src":"2292:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17586,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2336:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2342:11:51","memberName":"rewardBoost","nodeType":"MemberAccess","referencedDeclaration":17494,"src":"2336:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17588,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2382:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2388:9:51","memberName":"timestamp","nodeType":"MemberAccess","src":"2382:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17590,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2426:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2432:13:51","memberName":"initialReward","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"2426:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17583,"name":"CGDAParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16121,"src":"2250:14:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CGDAParameters_$16121_storage_ptr_$","typeString":"type(struct ACGDAIncentive.CGDAParameters storage pointer)"}},"id":17592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2279:11:51","2323:11:51","2367:13:51","2411:13:51"],"names":["rewardDecay","rewardBoost","lastClaimTime","currentReward"],"nodeType":"FunctionCall","src":"2250:206:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_memory_ptr","typeString":"struct ACGDAIncentive.CGDAParameters memory"}},"src":"2237:219:51","typeDescriptions":{"typeIdentifier":"t_struct$_CGDAParameters_$16121_storage","typeString":"struct ACGDAIncentive.CGDAParameters storage ref"}},"id":17594,"nodeType":"ExpressionStatement","src":"2237:219:51"},{"expression":{"id":17598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17595,"name":"totalBudget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16126,"src":"2467:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17596,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17516,"src":"2481:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2487:11:51","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":17496,"src":"2481:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2467:31:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17599,"nodeType":"ExpressionStatement","src":"2467:31:51"},{"expression":{"arguments":[{"expression":{"id":17601,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2525:3:51","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2529:6:51","memberName":"sender","nodeType":"MemberAccess","src":"2525:10:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17600,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"2508:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:28:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17604,"nodeType":"ExpressionStatement","src":"2508:28:51"}]},"documentation":{"id":17506,"nodeType":"StructuredDocumentation","src":"1535:89:51","text":"@notice Initialize the CGDA Incentive\n @param data_ Initialization parameters."},"functionSelector":"439fab91","id":17606,"implemented":true,"kind":"function","modifiers":[{"id":17512,"kind":"modifierInvocation","modifierName":{"id":17511,"name":"initializer","nameLocations":["1687:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1687:11:51"},"nodeType":"ModifierInvocation","src":"1687:11:51"}],"name":"initialize","nameLocation":"1638:10:51","nodeType":"FunctionDefinition","overrides":{"id":17510,"nodeType":"OverrideSpecifier","overrides":[],"src":"1678:8:51"},"parameters":{"id":17509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17508,"mutability":"mutable","name":"data_","nameLocation":"1664:5:51","nodeType":"VariableDeclaration","scope":17606,"src":"1649:20:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17507,"name":"bytes","nodeType":"ElementaryTypeName","src":"1649:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1648:22:51"},"returnParameters":{"id":17513,"nodeType":"ParameterList","parameters":[],"src":"1699:0:51"},"scope":17651,"src":"1629:914:51","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[18149],"body":{"id":17649,"nodeType":"Block","src":"3020:372:51","statements":[{"assignments":[17617],"declarations":[{"constant":false,"id":17617,"mutability":"mutable","name":"init_","nameLocation":"3049:5:51","nodeType":"VariableDeclaration","scope":17649,"src":"3030:24:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload"},"typeName":{"id":17616,"nodeType":"UserDefinedTypeName","pathNode":{"id":17615,"name":"InitPayload","nameLocations":["3030:11:51"],"nodeType":"IdentifierPath","referencedDeclaration":17497,"src":"3030:11:51"},"referencedDeclaration":17497,"src":"3030:11:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_storage_ptr","typeString":"struct CGDAIncentive.InitPayload"}},"visibility":"internal"}],"id":17624,"initialValue":{"arguments":[{"id":17620,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17609,"src":"3068:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17621,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17497,"src":"3076:11:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17497_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"id":17622,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3075:13:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17497_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17497_storage_ptr_$","typeString":"type(struct CGDAIncentive.InitPayload storage pointer)"}],"expression":{"id":17618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3057:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3061:6:51","memberName":"decode","nodeType":"MemberAccess","src":"3057:10:51","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3057:32:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"3030:59:51"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":17629,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"3176:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":17630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3183:9:51","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":15450,"src":"3176:16:51","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":17631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3193:5:51","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"3176:22:51","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},{"expression":{"id":17632,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17617,"src":"3223:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3229:5:51","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17488,"src":"3223:11:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17636,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3268:4:51","typeDescriptions":{"typeIdentifier":"t_contract$_CGDAIncentive_$17651","typeString":"contract CGDAIncentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CGDAIncentive_$17651","typeString":"contract CGDAIncentive"}],"id":17635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3260:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17634,"name":"address","nodeType":"ElementaryTypeName","src":"3260:7:51","typeDescriptions":{}}},"id":17637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3260:13:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"expression":{"id":17642,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17617,"src":"3340:5:51","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17497_memory_ptr","typeString":"struct CGDAIncentive.InitPayload memory"}},"id":17643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3346:11:51","memberName":"totalBudget","nodeType":"MemberAccess","referencedDeclaration":17496,"src":"3340:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17640,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"3308:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":17641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3315:15:51","memberName":"FungiblePayload","nodeType":"MemberAccess","referencedDeclaration":15465,"src":"3308:22:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}},"id":17644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3332:6:51"],"names":["amount"],"nodeType":"FunctionCall","src":"3308:51:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}],"expression":{"id":17638,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3297:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3301:6:51","memberName":"encode","nodeType":"MemberAccess","src":"3297:10:51","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3297:63:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17627,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"3131:6:51","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":17628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3138:8:51","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":15461,"src":"3131:15:51","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":17646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3165:9:51","3216:5:51","3252:6:51","3291:4:51"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"3131:244:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":17625,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3107:3:51","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3111:6:51","memberName":"encode","nodeType":"MemberAccess","src":"3107:10:51","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3107:278:51","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":17614,"id":17648,"nodeType":"Return","src":"3100:285:51"}]},"documentation":{"id":17607,"nodeType":"StructuredDocumentation","src":"2549:371:51","text":"@inheritdoc Incentive\n @notice Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\n @param data_ The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\n @return The amount of tokens required"},"functionSelector":"4e7165a2","id":17650,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2934:9:51","nodeType":"FunctionDefinition","overrides":{"id":17611,"nodeType":"OverrideSpecifier","overrides":[],"src":"2988:8:51"},"parameters":{"id":17610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17609,"mutability":"mutable","name":"data_","nameLocation":"2959:5:51","nodeType":"VariableDeclaration","scope":17650,"src":"2944:20:51","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17608,"name":"bytes","nodeType":"ElementaryTypeName","src":"2944:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2943:22:51"},"returnParameters":{"id":17614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17650,"src":"3006:12:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17612,"name":"bytes","nodeType":"ElementaryTypeName","src":"3006:5:51","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3005:14:51"},"scope":17651,"src":"2925:467:51","stateMutability":"view","virtual":true,"visibility":"external"}],"scope":17652,"src":"602:2792:51","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18305,18315,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:3359:51"},"id":51},"contracts/incentives/ERC1155Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/ERC1155Incentive.sol","exportedSymbols":{"AERC1155Incentive":[16773],"BoostError":[18343],"Budget":[15659],"ERC1155Incentive":[17847],"IERC1155":[1176],"Incentive":[18196]},"id":17848,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17653,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:52"},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/IERC1155.sol","id":17655,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17848,"sourceUnit":1177,"src":"62:76:52","symbolAliases":[{"foreign":{"id":17654,"name":"IERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1176,"src":"70:8:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":17657,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17848,"sourceUnit":18344,"src":"140:59:52","symbolAliases":[{"foreign":{"id":17656,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"148:10:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17659,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17848,"sourceUnit":15660,"src":"201:52:52","symbolAliases":[{"foreign":{"id":17658,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"209:6:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/AERC1155Incentive.sol","file":"contracts/incentives/AERC1155Incentive.sol","id":17661,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17848,"sourceUnit":16774,"src":"254:77:52","symbolAliases":[{"foreign":{"id":17660,"name":"AERC1155Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16773,"src":"262:17:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":17663,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17848,"sourceUnit":18197,"src":"332:61:52","symbolAliases":[{"foreign":{"id":17662,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"340:9:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17665,"name":"AERC1155Incentive","nameLocations":["537:17:52"],"nodeType":"IdentifierPath","referencedDeclaration":16773,"src":"537:17:52"},"id":17666,"nodeType":"InheritanceSpecifier","src":"537:17:52"}],"canonicalName":"ERC1155Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17664,"nodeType":"StructuredDocumentation","src":"395:113:52","text":"@title ERC1155Incentive\n @notice A simple ERC1155 incentive implementation that allows claiming of tokens"},"fullyImplemented":true,"id":17847,"linearizedBaseContracts":[17847,16773,1218,18196,11024,18509,2831,2843,9211,6409],"name":"ERC1155Incentive","nameLocation":"517:16:52","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ERC1155Incentive.InitPayload","documentation":{"id":17667,"nodeType":"StructuredDocumentation","src":"561:60:52","text":"@notice The payload for initializing an ERC1155Incentive"},"id":17680,"members":[{"constant":false,"id":17670,"mutability":"mutable","name":"asset","nameLocation":"664:5:52","nodeType":"VariableDeclaration","scope":17680,"src":"655:14:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"},"typeName":{"id":17669,"nodeType":"UserDefinedTypeName","pathNode":{"id":17668,"name":"IERC1155","nameLocations":["655:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":1176,"src":"655:8:52"},"referencedDeclaration":1176,"src":"655:8:52","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"visibility":"internal"},{"constant":false,"id":17673,"mutability":"mutable","name":"strategy","nameLocation":"688:8:52","nodeType":"VariableDeclaration","scope":17680,"src":"679:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"},"typeName":{"id":17672,"nodeType":"UserDefinedTypeName","pathNode":{"id":17671,"name":"Strategy","nameLocations":["679:8:52"],"nodeType":"IdentifierPath","referencedDeclaration":16442,"src":"679:8:52"},"referencedDeclaration":16442,"src":"679:8:52","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"visibility":"internal"},{"constant":false,"id":17675,"mutability":"mutable","name":"tokenId","nameLocation":"714:7:52","nodeType":"VariableDeclaration","scope":17680,"src":"706:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17674,"name":"uint256","nodeType":"ElementaryTypeName","src":"706:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17677,"mutability":"mutable","name":"limit","nameLocation":"739:5:52","nodeType":"VariableDeclaration","scope":17680,"src":"731:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17676,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17679,"mutability":"mutable","name":"extraData","nameLocation":"760:9:52","nodeType":"VariableDeclaration","scope":17680,"src":"754:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":17678,"name":"bytes","nodeType":"ElementaryTypeName","src":"754:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"633:11:52","nodeType":"StructDefinition","scope":17847,"src":"626:150:52","visibility":"public"},{"body":{"id":17691,"nodeType":"Block","src":"1038:59:52","statements":[{"expression":{"id":17686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17684,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"1048:6:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":17685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1057:1:52","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1048:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17687,"nodeType":"ExpressionStatement","src":"1048:10:52"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17688,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"1068:20:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1068:22:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17690,"nodeType":"ExpressionStatement","src":"1068:22:52"}]},"documentation":{"id":17681,"nodeType":"StructuredDocumentation","src":"782:237:52","text":"@notice Construct a new ERC1155Incentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":17692,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17682,"nodeType":"ParameterList","parameters":[],"src":"1035:2:52"},"returnParameters":{"id":17683,"nodeType":"ParameterList","parameters":[],"src":"1038:0:52"},"scope":17847,"src":"1024:73:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[16470],"body":{"id":17794,"nodeType":"Block","src":"1302:791:52","statements":[{"assignments":[17703],"declarations":[{"constant":false,"id":17703,"mutability":"mutable","name":"init_","nameLocation":"1331:5:52","nodeType":"VariableDeclaration","scope":17794,"src":"1312:24:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload"},"typeName":{"id":17702,"nodeType":"UserDefinedTypeName","pathNode":{"id":17701,"name":"InitPayload","nameLocations":["1312:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":17680,"src":"1312:11:52"},"referencedDeclaration":17680,"src":"1312:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_storage_ptr","typeString":"struct ERC1155Incentive.InitPayload"}},"visibility":"internal"}],"id":17710,"initialValue":{"arguments":[{"id":17706,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17695,"src":"1350:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17707,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"1358:11:52","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17680_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"id":17708,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1357:13:52","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17680_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17680_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}],"expression":{"id":17704,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1339:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1343:6:52","memberName":"decode","nodeType":"MemberAccess","src":"1339:10:52","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1339:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1312:59:52"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17711,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1454:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1460:8:52","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":17673,"src":"1454:14:52","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17713,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16442,"src":"1472:8:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16442_$","typeString":"type(enum AERC1155Incentive.Strategy)"}},"id":17714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1481:4:52","memberName":"MINT","nodeType":"MemberAccess","referencedDeclaration":16441,"src":"1472:13:52","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"src":"1454:31:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17721,"nodeType":"IfStatement","src":"1450:71:52","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17716,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1494:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1505:14:52","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":18321,"src":"1494:25:52","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1494:27:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17720,"nodeType":"RevertStatement","src":"1487:34:52"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17722,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1535:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1541:5:52","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17677,"src":"1535:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1550:1:52","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1535:16:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17731,"nodeType":"IfStatement","src":"1531:63:52","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17726,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1560:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1571:21:52","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":18315,"src":"1560:32:52","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1560:34:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17730,"nodeType":"RevertStatement","src":"1553:41:52"}},{"assignments":[17733],"declarations":[{"constant":false,"id":17733,"mutability":"mutable","name":"available","nameLocation":"1676:9:52","nodeType":"VariableDeclaration","scope":17794,"src":"1668:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17732,"name":"uint256","nodeType":"ElementaryTypeName","src":"1668:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17744,"initialValue":{"arguments":[{"arguments":[{"id":17739,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1718:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$17847","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$17847","typeString":"contract ERC1155Incentive"}],"id":17738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1710:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17737,"name":"address","nodeType":"ElementaryTypeName","src":"1710:7:52","typeDescriptions":{}}},"id":17740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":17741,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1725:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1731:7:52","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":17675,"src":"1725:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":17734,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1688:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1694:5:52","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"1688:11:52","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":17736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1700:9:52","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1114,"src":"1688:21:52","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":17743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1688:51:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1668:71:52"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17745,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"1753:9:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":17746,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1765:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1771:5:52","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17677,"src":"1765:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1753:23:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17763,"nodeType":"IfStatement","src":"1749:135:52","trueBody":{"id":17762,"nodeType":"Block","src":"1778:106:52","statements":[{"errorCall":{"arguments":[{"arguments":[{"expression":{"id":17754,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1836:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1842:5:52","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"1836:11:52","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}],"id":17753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1828:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17752,"name":"address","nodeType":"ElementaryTypeName","src":"1828:7:52","typeDescriptions":{}}},"id":17756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1828:20:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17757,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17733,"src":"1850:9:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17758,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1861:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1867:5:52","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17677,"src":"1861:11:52","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":17749,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1799:10:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1810:17:52","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":18305,"src":"1799:28:52","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":17760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1799:74:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17761,"nodeType":"RevertStatement","src":"1792:81:52"}]}},{"expression":{"id":17767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17764,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16446,"src":"1894:5:52","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17765,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1902:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1908:5:52","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"1902:11:52","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"src":"1894:19:52","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}},"id":17768,"nodeType":"ExpressionStatement","src":"1894:19:52"},{"expression":{"id":17772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17769,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16450,"src":"1923:8:52","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17770,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1934:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1940:8:52","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":17673,"src":"1934:14:52","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"src":"1923:25:52","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16442","typeString":"enum AERC1155Incentive.Strategy"}},"id":17773,"nodeType":"ExpressionStatement","src":"1923:25:52"},{"expression":{"id":17777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17774,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16456,"src":"1958:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17775,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1968:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1974:7:52","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":17675,"src":"1968:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1958:23:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17778,"nodeType":"ExpressionStatement","src":"1958:23:52"},{"expression":{"id":17782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17779,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16453,"src":"1991:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17780,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"1999:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2005:5:52","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17677,"src":"1999:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1991:19:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17783,"nodeType":"ExpressionStatement","src":"1991:19:52"},{"expression":{"id":17787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17784,"name":"extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16459,"src":"2020:9:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17785,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17703,"src":"2032:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2038:9:52","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":17679,"src":"2032:15:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2020:27:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":17788,"nodeType":"ExpressionStatement","src":"2020:27:52"},{"expression":{"arguments":[{"expression":{"id":17790,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2075:3:52","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2079:6:52","memberName":"sender","nodeType":"MemberAccess","src":"2075:10:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17789,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"2058:16:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2058:28:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17793,"nodeType":"ExpressionStatement","src":"2058:28:52"}]},"documentation":{"id":17693,"nodeType":"StructuredDocumentation","src":"1103:124:52","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed initialization payload"},"functionSelector":"439fab91","id":17795,"implemented":true,"kind":"function","modifiers":[{"id":17699,"kind":"modifierInvocation","modifierName":{"id":17698,"name":"initializer","nameLocations":["1290:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1290:11:52"},"nodeType":"ModifierInvocation","src":"1290:11:52"}],"name":"initialize","nameLocation":"1241:10:52","nodeType":"FunctionDefinition","overrides":{"id":17697,"nodeType":"OverrideSpecifier","overrides":[],"src":"1281:8:52"},"parameters":{"id":17696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17695,"mutability":"mutable","name":"data_","nameLocation":"1267:5:52","nodeType":"VariableDeclaration","scope":17795,"src":"1252:20:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17694,"name":"bytes","nodeType":"ElementaryTypeName","src":"1252:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1251:22:52"},"returnParameters":{"id":17700,"nodeType":"ParameterList","parameters":[],"src":"1302:0:52"},"scope":17847,"src":"1232:861:52","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[18149],"body":{"id":17845,"nodeType":"Block","src":"2444:460:52","statements":[{"assignments":[17806],"declarations":[{"constant":false,"id":17806,"mutability":"mutable","name":"init_","nameLocation":"2473:5:52","nodeType":"VariableDeclaration","scope":17845,"src":"2454:24:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload"},"typeName":{"id":17805,"nodeType":"UserDefinedTypeName","pathNode":{"id":17804,"name":"InitPayload","nameLocations":["2454:11:52"],"nodeType":"IdentifierPath","referencedDeclaration":17680,"src":"2454:11:52"},"referencedDeclaration":17680,"src":"2454:11:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_storage_ptr","typeString":"struct ERC1155Incentive.InitPayload"}},"visibility":"internal"}],"id":17813,"initialValue":{"arguments":[{"id":17809,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17798,"src":"2492:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17810,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17680,"src":"2500:11:52","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17680_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"id":17811,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2499:13:52","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17680_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17680_storage_ptr_$","typeString":"type(struct ERC1155Incentive.InitPayload storage pointer)"}],"expression":{"id":17807,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2481:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2485:6:52","memberName":"decode","nodeType":"MemberAccess","src":"2481:10:52","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2481:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2454:59:52"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":17818,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"2599:6:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":17819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2606:9:52","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":15450,"src":"2599:16:52","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":17820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2616:7:52","memberName":"ERC1155","nodeType":"MemberAccess","referencedDeclaration":15449,"src":"2599:24:52","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},{"arguments":[{"expression":{"id":17823,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17806,"src":"2656:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2662:5:52","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"2656:11:52","typeDescriptions":{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC1155_$1176","typeString":"contract IERC1155"}],"id":17822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2648:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17821,"name":"address","nodeType":"ElementaryTypeName","src":"2648:7:52","typeDescriptions":{}}},"id":17825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2648:20:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":17828,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2702:4:52","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1155Incentive_$17847","typeString":"contract ERC1155Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1155Incentive_$17847","typeString":"contract ERC1155Incentive"}],"id":17827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2694:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17826,"name":"address","nodeType":"ElementaryTypeName","src":"2694:7:52","typeDescriptions":{}}},"id":17829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2694:13:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"expression":{"id":17834,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17806,"src":"2795:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2801:7:52","memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":17675,"src":"2795:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17836,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17806,"src":"2818:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2824:5:52","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17677,"src":"2818:11:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":17838,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17806,"src":"2837:5:52","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17680_memory_ptr","typeString":"struct ERC1155Incentive.InitPayload memory"}},"id":17839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2843:9:52","memberName":"extraData","nodeType":"MemberAccess","referencedDeclaration":17679,"src":"2837:15:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17832,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"2763:6:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":17833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2770:14:52","memberName":"ERC1155Payload","nodeType":"MemberAccess","referencedDeclaration":15473,"src":"2763:21:52","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ERC1155Payload_$15473_storage_ptr_$","typeString":"type(struct Budget.ERC1155Payload storage pointer)"}},"id":17840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2786:7:52","2810:6:52","2831:4:52"],"names":["tokenId","amount","data"],"nodeType":"FunctionCall","src":"2763:91:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ERC1155Payload_$15473_memory_ptr","typeString":"struct Budget.ERC1155Payload memory"}],"expression":{"id":17830,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2731:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2735:6:52","memberName":"encode","nodeType":"MemberAccess","src":"2731:10:52","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2731:141:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":17816,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"2554:6:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":17817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2561:8:52","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":15461,"src":"2554:15:52","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":17842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2588:9:52","2641:5:52","2686:6:52","2725:4:52"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"2554:333:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":17814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2530:3:52","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2534:6:52","memberName":"encode","nodeType":"MemberAccess","src":"2530:10:52","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2530:367:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":17803,"id":17844,"nodeType":"Return","src":"2523:374:52"}]},"documentation":{"id":17796,"nodeType":"StructuredDocumentation","src":"2099:242:52","text":"@inheritdoc Incentive\n @notice Get the required allowance for the incentive\n @param data_ The initialization payload for the incentive\n @return budgetData The data payload to be passed to the Budget for interpretation"},"functionSelector":"4e7165a2","id":17846,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2355:9:52","nodeType":"FunctionDefinition","overrides":{"id":17800,"nodeType":"OverrideSpecifier","overrides":[],"src":"2401:8:52"},"parameters":{"id":17799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17798,"mutability":"mutable","name":"data_","nameLocation":"2380:5:52","nodeType":"VariableDeclaration","scope":17846,"src":"2365:20:52","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17797,"name":"bytes","nodeType":"ElementaryTypeName","src":"2365:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2364:22:52"},"returnParameters":{"id":17803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17802,"mutability":"mutable","name":"budgetData","nameLocation":"2432:10:52","nodeType":"VariableDeclaration","scope":17846,"src":"2419:23:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":17801,"name":"bytes","nodeType":"ElementaryTypeName","src":"2419:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2418:25:52"},"scope":17847,"src":"2346:558:52","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":17848,"src":"508:2398:52","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18296,18305,18315,18321,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:2871:52"},"id":52},"contracts/incentives/ERC20Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/ERC20Incentive.sol","exportedSymbols":{"AERC20Incentive":[17181],"BoostError":[18343],"Budget":[15659],"ERC20Incentive":[18062],"Incentive":[18196],"LibPRNG":[10293],"SafeTransferLib":[11358]},"id":18063,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":17849,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:53"},{"absolutePath":"@solady/utils/LibPRNG.sol","file":"@solady/utils/LibPRNG.sol","id":17851,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":10294,"src":"62:50:53","symbolAliases":[{"foreign":{"id":17850,"name":"LibPRNG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10293,"src":"70:7:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/SafeTransferLib.sol","file":"@solady/utils/SafeTransferLib.sol","id":17853,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":11359,"src":"113:66:53","symbolAliases":[{"foreign":{"id":17852,"name":"SafeTransferLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11358,"src":"121:15:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":17855,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":18344,"src":"181:59:53","symbolAliases":[{"foreign":{"id":17854,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"189:10:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/AERC20Incentive.sol","file":"contracts/incentives/AERC20Incentive.sol","id":17857,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":17182,"src":"242:73:53","symbolAliases":[{"foreign":{"id":17856,"name":"AERC20Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17181,"src":"250:15:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":17859,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":18197,"src":"316:61:53","symbolAliases":[{"foreign":{"id":17858,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"324:9:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":17861,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":15660,"src":"378:52:53","symbolAliases":[{"foreign":{"id":17860,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"386:6:53","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17863,"name":"AERC20Incentive","nameLocations":["569:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":17181,"src":"569:15:53"},"id":17864,"nodeType":"InheritanceSpecifier","src":"569:15:53"}],"canonicalName":"ERC20Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":17862,"nodeType":"StructuredDocumentation","src":"432:110:53","text":"@title ERC20 Incentive\n @notice A simple ERC20 incentive implementation that allows claiming of tokens"},"fullyImplemented":true,"id":18062,"linearizedBaseContracts":[18062,17181,18196,11024,18509,2831,2843,9211,6409],"name":"ERC20Incentive","nameLocation":"551:14:53","nodeType":"ContractDefinition","nodes":[{"global":false,"id":17868,"libraryName":{"id":17865,"name":"LibPRNG","nameLocations":["597:7:53"],"nodeType":"IdentifierPath","referencedDeclaration":10293,"src":"597:7:53"},"nodeType":"UsingForDirective","src":"591:31:53","typeName":{"id":17867,"nodeType":"UserDefinedTypeName","pathNode":{"id":17866,"name":"LibPRNG.PRNG","nameLocations":["609:7:53","617:4:53"],"nodeType":"IdentifierPath","referencedDeclaration":10107,"src":"609:12:53"},"referencedDeclaration":10107,"src":"609:12:53","typeDescriptions":{"typeIdentifier":"t_struct$_PRNG_$10107_storage_ptr","typeString":"struct LibPRNG.PRNG"}}},{"global":false,"id":17871,"libraryName":{"id":17869,"name":"SafeTransferLib","nameLocations":["633:15:53"],"nodeType":"IdentifierPath","referencedDeclaration":11358,"src":"633:15:53"},"nodeType":"UsingForDirective","src":"627:34:53","typeName":{"id":17870,"name":"address","nodeType":"ElementaryTypeName","src":"653:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"ERC20Incentive.InitPayload","documentation":{"id":17872,"nodeType":"StructuredDocumentation","src":"667:54:53","text":"@notice The payload for initializing the incentive"},"id":17882,"members":[{"constant":false,"id":17874,"mutability":"mutable","name":"asset","nameLocation":"763:5:53","nodeType":"VariableDeclaration","scope":17882,"src":"755:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17873,"name":"address","nodeType":"ElementaryTypeName","src":"755:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17877,"mutability":"mutable","name":"strategy","nameLocation":"787:8:53","nodeType":"VariableDeclaration","scope":17882,"src":"778:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"typeName":{"id":17876,"nodeType":"UserDefinedTypeName","pathNode":{"id":17875,"name":"Strategy","nameLocations":["778:8:53"],"nodeType":"IdentifierPath","referencedDeclaration":16818,"src":"778:8:53"},"referencedDeclaration":16818,"src":"778:8:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"visibility":"internal"},{"constant":false,"id":17879,"mutability":"mutable","name":"reward","nameLocation":"813:6:53","nodeType":"VariableDeclaration","scope":17882,"src":"805:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17878,"name":"uint256","nodeType":"ElementaryTypeName","src":"805:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17881,"mutability":"mutable","name":"limit","nameLocation":"837:5:53","nodeType":"VariableDeclaration","scope":17882,"src":"829:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17880,"name":"uint256","nodeType":"ElementaryTypeName","src":"829:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"733:11:53","nodeType":"StructDefinition","scope":18062,"src":"726:123:53","visibility":"public"},{"body":{"id":17889,"nodeType":"Block","src":"1109:39:53","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":17886,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"1119:20:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":17887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1119:22:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17888,"nodeType":"ExpressionStatement","src":"1119:22:53"}]},"documentation":{"id":17883,"nodeType":"StructuredDocumentation","src":"855:235:53","text":"@notice Construct a new ERC20Incentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":17890,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":17884,"nodeType":"ParameterList","parameters":[],"src":"1106:2:53"},"returnParameters":{"id":17885,"nodeType":"ParameterList","parameters":[],"src":"1109:0:53"},"scope":18062,"src":"1095:53:53","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[16808],"body":{"id":18001,"nodeType":"Block","src":"1419:866:53","statements":[{"assignments":[17901],"declarations":[{"constant":false,"id":17901,"mutability":"mutable","name":"init_","nameLocation":"1448:5:53","nodeType":"VariableDeclaration","scope":18001,"src":"1429:24:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload"},"typeName":{"id":17900,"nodeType":"UserDefinedTypeName","pathNode":{"id":17899,"name":"InitPayload","nameLocations":["1429:11:53"],"nodeType":"IdentifierPath","referencedDeclaration":17882,"src":"1429:11:53"},"referencedDeclaration":17882,"src":"1429:11:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_storage_ptr","typeString":"struct ERC20Incentive.InitPayload"}},"visibility":"internal"}],"id":17908,"initialValue":{"arguments":[{"id":17904,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17893,"src":"1467:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":17905,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17882,"src":"1475:11:53","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17882_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"id":17906,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1474:13:53","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17882_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17882_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}],"expression":{"id":17902,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1456:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1460:6:53","memberName":"decode","nodeType":"MemberAccess","src":"1456:10:53","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":17907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1456:32:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1429:59:53"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"id":17913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17909,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1571:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1577:8:53","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":17877,"src":"1571:14:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":17911,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16818,"src":"1589:8:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16818_$","typeString":"type(enum AERC20Incentive.Strategy)"}},"id":17912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1598:4:53","memberName":"MINT","nodeType":"MemberAccess","referencedDeclaration":16816,"src":"1589:13:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"1571:31:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17919,"nodeType":"IfStatement","src":"1567:71:53","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17914,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1611:10:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:14:53","memberName":"NotImplemented","nodeType":"MemberAccess","referencedDeclaration":18321,"src":"1611:25:53","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:27:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17918,"nodeType":"RevertStatement","src":"1604:34:53"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17920,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1652:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1658:6:53","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":17879,"src":"1652:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1668:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1652:17:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17924,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1673:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1679:5:53","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17881,"src":"1673:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1688:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1673:16:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1652:37:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17934,"nodeType":"IfStatement","src":"1648:84:53","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17929,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1698:10:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1709:21:53","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":18315,"src":"1698:32:53","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":17932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1698:34:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17933,"nodeType":"RevertStatement","src":"1691:41:53"}},{"assignments":[17936],"declarations":[{"constant":false,"id":17936,"mutability":"mutable","name":"maxTotalReward","nameLocation":"1814:14:53","nodeType":"VariableDeclaration","scope":18001,"src":"1806:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17935,"name":"uint256","nodeType":"ElementaryTypeName","src":"1806:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17950,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"id":17941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17937,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1831:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1837:8:53","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":17877,"src":"1831:14:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":17939,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16818,"src":"1849:8:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16818_$","typeString":"type(enum AERC20Incentive.Strategy)"}},"id":17940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1858:6:53","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16817,"src":"1849:15:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"1831:33:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":17947,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1896:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1902:6:53","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":17879,"src":"1896:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1831:77:53","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":17942,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1867:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1873:6:53","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":17879,"src":"1867:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":17944,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1882:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1888:5:53","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17881,"src":"1882:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1867:26:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1806:102:53"},{"assignments":[17952],"declarations":[{"constant":false,"id":17952,"mutability":"mutable","name":"available","nameLocation":"1926:9:53","nodeType":"VariableDeclaration","scope":18001,"src":"1918:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17951,"name":"uint256","nodeType":"ElementaryTypeName","src":"1918:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17961,"initialValue":{"arguments":[{"arguments":[{"id":17958,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1968:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Incentive_$18062","typeString":"contract ERC20Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Incentive_$18062","typeString":"contract ERC20Incentive"}],"id":17957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17956,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:53","typeDescriptions":{}}},"id":17959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":17953,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"1938:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1944:5:53","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17874,"src":"1938:11:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1950:9:53","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":11253,"src":"1938:21:53","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,address) view returns (uint256)"}},"id":17960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1938:36:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1918:56:53"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17962,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17952,"src":"1988:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":17963,"name":"maxTotalReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17936,"src":"2000:14:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1988:26:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17975,"nodeType":"IfStatement","src":"1984:132:53","trueBody":{"id":17974,"nodeType":"Block","src":"2016:100:53","statements":[{"errorCall":{"arguments":[{"expression":{"id":17968,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"2066:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2072:5:53","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17874,"src":"2066:11:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17970,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17952,"src":"2079:9:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17971,"name":"maxTotalReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17936,"src":"2090:14:53","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":17965,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"2037:10:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":17967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2048:17:53","memberName":"InsufficientFunds","nodeType":"MemberAccess","referencedDeclaration":18305,"src":"2037:28:53","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (address,uint256,uint256) pure returns (error)"}},"id":17972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2037:68:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":17973,"nodeType":"RevertStatement","src":"2030:75:53"}]}},{"expression":{"id":17979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17976,"name":"asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16821,"src":"2126:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17977,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"2134:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2140:5:53","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17874,"src":"2134:11:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2126:19:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17980,"nodeType":"ExpressionStatement","src":"2126:19:53"},{"expression":{"id":17984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17981,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16825,"src":"2155:8:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17982,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"2166:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2172:8:53","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":17877,"src":"2166:14:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"2155:25:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"id":17985,"nodeType":"ExpressionStatement","src":"2155:25:53"},{"expression":{"id":17989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17986,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"2190:6:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17987,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"2199:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2205:6:53","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":17879,"src":"2199:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2190:21:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17990,"nodeType":"ExpressionStatement","src":"2190:21:53"},{"expression":{"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17991,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16828,"src":"2221:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":17992,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17901,"src":"2229:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":17993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2235:5:53","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17881,"src":"2229:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2221:19:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17995,"nodeType":"ExpressionStatement","src":"2221:19:53"},{"expression":{"arguments":[{"expression":{"id":17997,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2267:3:53","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2271:6:53","memberName":"sender","nodeType":"MemberAccess","src":"2267:10:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17996,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"2250:16:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":17999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:28:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18000,"nodeType":"ExpressionStatement","src":"2250:28:53"}]},"documentation":{"id":17891,"nodeType":"StructuredDocumentation","src":"1154:190:53","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`"},"functionSelector":"439fab91","id":18002,"implemented":true,"kind":"function","modifiers":[{"id":17897,"kind":"modifierInvocation","modifierName":{"id":17896,"name":"initializer","nameLocations":["1407:11:53"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1407:11:53"},"nodeType":"ModifierInvocation","src":"1407:11:53"}],"name":"initialize","nameLocation":"1358:10:53","nodeType":"FunctionDefinition","overrides":{"id":17895,"nodeType":"OverrideSpecifier","overrides":[],"src":"1398:8:53"},"parameters":{"id":17894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17893,"mutability":"mutable","name":"data_","nameLocation":"1384:5:53","nodeType":"VariableDeclaration","scope":18002,"src":"1369:20:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":17892,"name":"bytes","nodeType":"ElementaryTypeName","src":"1369:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1368:22:53"},"returnParameters":{"id":17898,"nodeType":"ParameterList","parameters":[],"src":"1419:0:53"},"scope":18062,"src":"1349:936:53","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[18149],"body":{"id":18060,"nodeType":"Block","src":"2654:465:53","statements":[{"assignments":[18013],"declarations":[{"constant":false,"id":18013,"mutability":"mutable","name":"init_","nameLocation":"2683:5:53","nodeType":"VariableDeclaration","scope":18060,"src":"2664:24:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload"},"typeName":{"id":18012,"nodeType":"UserDefinedTypeName","pathNode":{"id":18011,"name":"InitPayload","nameLocations":["2664:11:53"],"nodeType":"IdentifierPath","referencedDeclaration":17882,"src":"2664:11:53"},"referencedDeclaration":17882,"src":"2664:11:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_storage_ptr","typeString":"struct ERC20Incentive.InitPayload"}},"visibility":"internal"}],"id":18020,"initialValue":{"arguments":[{"id":18016,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18005,"src":"2702:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18017,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17882,"src":"2710:11:53","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17882_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"id":18018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2709:13:53","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17882_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$17882_storage_ptr_$","typeString":"type(struct ERC20Incentive.InitPayload storage pointer)"}],"expression":{"id":18014,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2691:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2695:6:53","memberName":"decode","nodeType":"MemberAccess","src":"2691:10:53","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2691:32:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"2664:59:53"},{"assignments":[18022],"declarations":[{"constant":false,"id":18022,"mutability":"mutable","name":"amount","nameLocation":"2741:6:53","nodeType":"VariableDeclaration","scope":18060,"src":"2733:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18021,"name":"uint256","nodeType":"ElementaryTypeName","src":"2733:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18036,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"},"id":18027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18023,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18013,"src":"2750:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":18024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2756:8:53","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":17877,"src":"2750:14:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18025,"name":"Strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16818,"src":"2768:8:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Strategy_$16818_$","typeString":"type(enum AERC20Incentive.Strategy)"}},"id":18026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2777:6:53","memberName":"RAFFLE","nodeType":"MemberAccess","referencedDeclaration":16817,"src":"2768:15:53","typeDescriptions":{"typeIdentifier":"t_enum$_Strategy_$16818","typeString":"enum AERC20Incentive.Strategy"}},"src":"2750:33:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":18033,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18013,"src":"2815:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":18034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2821:6:53","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":17879,"src":"2815:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2750:77:53","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18028,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18013,"src":"2786:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":18029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2792:6:53","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":17879,"src":"2786:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":18030,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18013,"src":"2801:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":18031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2807:5:53","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":17881,"src":"2801:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2786:26:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2733:94:53"},{"expression":{"arguments":[{"arguments":[{"expression":{"expression":{"id":18041,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"2914:6:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":18042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2921:9:53","memberName":"AssetType","nodeType":"MemberAccess","referencedDeclaration":15450,"src":"2914:16:53","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AssetType_$15450_$","typeString":"type(enum Budget.AssetType)"}},"id":18043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2931:5:53","memberName":"ERC20","nodeType":"MemberAccess","referencedDeclaration":15448,"src":"2914:22:53","typeDescriptions":{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"}},{"expression":{"id":18044,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18013,"src":"2961:5:53","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$17882_memory_ptr","typeString":"struct ERC20Incentive.InitPayload memory"}},"id":18045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2967:5:53","memberName":"asset","nodeType":"MemberAccess","referencedDeclaration":17874,"src":"2961:11:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":18048,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3006:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Incentive_$18062","typeString":"contract ERC20Incentive"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Incentive_$18062","typeString":"contract ERC20Incentive"}],"id":18047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2998:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18046,"name":"address","nodeType":"ElementaryTypeName","src":"2998:7:53","typeDescriptions":{}}},"id":18049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2998:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":18054,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18022,"src":"3078:6:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18052,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"3046:6:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":18053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3053:15:53","memberName":"FungiblePayload","nodeType":"MemberAccess","referencedDeclaration":15465,"src":"3046:22:53","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FungiblePayload_$15465_storage_ptr_$","typeString":"type(struct Budget.FungiblePayload storage pointer)"}},"id":18055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["3070:6:53"],"names":["amount"],"nodeType":"FunctionCall","src":"3046:40:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FungiblePayload_$15465_memory_ptr","typeString":"struct Budget.FungiblePayload memory"}],"expression":{"id":18050,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3035:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3039:6:53","memberName":"encode","nodeType":"MemberAccess","src":"3035:10:53","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3035:52:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_AssetType_$15450","typeString":"enum Budget.AssetType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18039,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"2869:6:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Budget_$15659_$","typeString":"type(contract Budget)"}},"id":18040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2876:8:53","memberName":"Transfer","nodeType":"MemberAccess","referencedDeclaration":15461,"src":"2869:15:53","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Transfer_$15461_storage_ptr_$","typeString":"type(struct Budget.Transfer storage pointer)"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["2903:9:53","2954:5:53","2990:6:53","3029:4:53"],"names":["assetType","asset","target","data"],"nodeType":"FunctionCall","src":"2869:233:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Transfer_$15461_memory_ptr","typeString":"struct Budget.Transfer memory"}],"expression":{"id":18037,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2845:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2849:6:53","memberName":"encode","nodeType":"MemberAccess","src":"2845:10:53","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2845:267:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":18010,"id":18059,"nodeType":"Return","src":"2838:274:53"}]},"documentation":{"id":18003,"nodeType":"StructuredDocumentation","src":"2291:260:53","text":"@inheritdoc Incentive\n @notice Preflight the incentive to determine the required budget action\n @param data_ The {InitPayload} for the incentive\n @return budgetData The {Transfer} payload to be passed to the {Budget} for interpretation"},"functionSelector":"4e7165a2","id":18061,"implemented":true,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2565:9:53","nodeType":"FunctionDefinition","overrides":{"id":18007,"nodeType":"OverrideSpecifier","overrides":[],"src":"2611:8:53"},"parameters":{"id":18006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18005,"mutability":"mutable","name":"data_","nameLocation":"2590:5:53","nodeType":"VariableDeclaration","scope":18061,"src":"2575:20:53","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18004,"name":"bytes","nodeType":"ElementaryTypeName","src":"2575:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2574:22:53"},"returnParameters":{"id":18010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18009,"mutability":"mutable","name":"budgetData","nameLocation":"2642:10:53","nodeType":"VariableDeclaration","scope":18061,"src":"2629:23:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18008,"name":"bytes","nodeType":"ElementaryTypeName","src":"2629:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2628:25:53"},"scope":18062,"src":"2556:563:53","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":18063,"src":"542:2579:53","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18296,18305,18315,18321,18342,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,16813,18084]}],"src":"36:3086:53"},"id":53},"contracts/incentives/Incentive.sol":{"ast":{"absolutePath":"contracts/incentives/Incentive.sol","exportedSymbols":{"Cloneable":[18509],"Incentive":[18196],"Ownable":[6409],"ReentrancyGuard":[11024]},"id":18197,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18064,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:54"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":18066,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18197,"sourceUnit":6410,"src":"62:49:54","symbolAliases":[{"foreign":{"id":18065,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"70:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/ReentrancyGuard.sol","file":"@solady/utils/ReentrancyGuard.sol","id":18068,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18197,"sourceUnit":11025,"src":"112:66:54","symbolAliases":[{"foreign":{"id":18067,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11024,"src":"120:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":18070,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18197,"sourceUnit":18510,"src":"180:57:54","symbolAliases":[{"foreign":{"id":18069,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"188:9:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":18072,"name":"Ownable","nameLocations":["528:7:54"],"nodeType":"IdentifierPath","referencedDeclaration":6409,"src":"528:7:54"},"id":18073,"nodeType":"InheritanceSpecifier","src":"528:7:54"},{"baseName":{"id":18074,"name":"Cloneable","nameLocations":["537:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"537:9:54"},"id":18075,"nodeType":"InheritanceSpecifier","src":"537:9:54"},{"baseName":{"id":18076,"name":"ReentrancyGuard","nameLocations":["548:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":11024,"src":"548:15:54"},"id":18077,"nodeType":"InheritanceSpecifier","src":"548:15:54"}],"canonicalName":"Incentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":18071,"nodeType":"StructuredDocumentation","src":"239:258:54","text":"@title Boost Incentive\n @notice Abstract contract for a generic Incentive within the Boost protocol\n @dev Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":18196,"linearizedBaseContracts":[18196,11024,18509,2831,2843,9211,6409],"name":"Incentive","nameLocation":"515:9:54","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":18078,"nodeType":"StructuredDocumentation","src":"570:175:54","text":"@notice Emitted when an incentive is claimed\n @dev The `data` field contains implementation-specific context. See the implementation's `claim` function for details."},"eventSelector":"9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d3","id":18084,"name":"Claimed","nameLocation":"756:7:54","nodeType":"EventDefinition","parameters":{"id":18083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18080,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"780:9:54","nodeType":"VariableDeclaration","scope":18084,"src":"764:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18079,"name":"address","nodeType":"ElementaryTypeName","src":"764:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18082,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"797:4:54","nodeType":"VariableDeclaration","scope":18084,"src":"791:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18081,"name":"bytes","nodeType":"ElementaryTypeName","src":"791:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"763:39:54"},"src":"750:53:54"},{"documentation":{"id":18085,"nodeType":"StructuredDocumentation","src":"809:37:54","text":"@notice Thrown when a claim fails"},"errorSelector":"360e42e1","id":18087,"name":"ClaimFailed","nameLocation":"857:11:54","nodeType":"ErrorDefinition","parameters":{"id":18086,"nodeType":"ParameterList","parameters":[],"src":"868:2:54"},"src":"851:20:54"},{"documentation":{"id":18088,"nodeType":"StructuredDocumentation","src":"877:54:54","text":"@notice Thrown when the incentive is not claimable"},"errorSelector":"6247a84e","id":18090,"name":"NotClaimable","nameLocation":"942:12:54","nodeType":"ErrorDefinition","parameters":{"id":18089,"nodeType":"ParameterList","parameters":[],"src":"954:2:54"},"src":"936:21:54"},{"canonicalName":"Incentive.ClaimPayload","documentation":{"id":18091,"nodeType":"StructuredDocumentation","src":"963:197:54","text":"@notice A struct representing the payload for an incentive claim\n @param target The address of the recipient\n @param data The implementation-specific data for the claim, if needed"},"id":18096,"members":[{"constant":false,"id":18093,"mutability":"mutable","name":"target","nameLocation":"1203:6:54","nodeType":"VariableDeclaration","scope":18096,"src":"1195:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18092,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18095,"mutability":"mutable","name":"data","nameLocation":"1225:4:54","nodeType":"VariableDeclaration","scope":18096,"src":"1219:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":18094,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ClaimPayload","nameLocation":"1172:12:54","nodeType":"StructDefinition","scope":18196,"src":"1165:71:54","visibility":"public"},{"constant":false,"documentation":{"id":18097,"nodeType":"StructuredDocumentation","src":"1242:52:54","text":"@notice The number of claims that have been made"},"functionSelector":"dcc59b6f","id":18099,"mutability":"mutable","name":"claims","nameLocation":"1314:6:54","nodeType":"VariableDeclaration","scope":18196,"src":"1299:21:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18098,"name":"uint256","nodeType":"ElementaryTypeName","src":"1299:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":18100,"nodeType":"StructuredDocumentation","src":"1327:51:54","text":"@notice The reward amount issued for each claim"},"functionSelector":"228cb733","id":18102,"mutability":"mutable","name":"reward","nameLocation":"1398:6:54","nodeType":"VariableDeclaration","scope":18196,"src":"1383:21:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18101,"name":"uint256","nodeType":"ElementaryTypeName","src":"1383:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"documentation":{"id":18103,"nodeType":"StructuredDocumentation","src":"1411:48:54","text":"@notice A mapping of address to claim status"},"functionSelector":"c884ef83","id":18107,"mutability":"mutable","name":"claimed","nameLocation":"1496:7:54","nodeType":"VariableDeclaration","scope":18196,"src":"1464:39:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":18106,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18104,"name":"address","nodeType":"ElementaryTypeName","src":"1472:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1464:24:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18105,"name":"bool","nodeType":"ElementaryTypeName","src":"1483:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"body":{"id":18116,"nodeType":"Block","src":"1637:45:54","statements":[{"expression":{"arguments":[{"expression":{"id":18112,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1664:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1668:6:54","memberName":"sender","nodeType":"MemberAccess","src":"1664:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18111,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1647:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:28:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18115,"nodeType":"ExpressionStatement","src":"1647:28:54"}]},"documentation":{"id":18108,"nodeType":"StructuredDocumentation","src":"1510:108:54","text":"@notice Initialize the contract and set the owner\n @dev The owner is set to the contract deployer"},"id":18117,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18109,"nodeType":"ParameterList","parameters":[],"src":"1634:2:54"},"returnParameters":{"id":18110,"nodeType":"ParameterList","parameters":[],"src":"1637:0:54"},"scope":18196,"src":"1623:59:54","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":18118,"nodeType":"StructuredDocumentation","src":"1688:156:54","text":"@notice Claim the incentive\n @param data_ The data payload for the incentive claim\n @return True if the incentive was successfully claimed"},"functionSelector":"c63ff8dd","id":18125,"implemented":false,"kind":"function","modifiers":[],"name":"claim","nameLocation":"1858:5:54","nodeType":"FunctionDefinition","parameters":{"id":18121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18120,"mutability":"mutable","name":"data_","nameLocation":"1879:5:54","nodeType":"VariableDeclaration","scope":18125,"src":"1864:20:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18119,"name":"bytes","nodeType":"ElementaryTypeName","src":"1864:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1863:22:54"},"returnParameters":{"id":18124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18125,"src":"1912:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18122,"name":"bool","nodeType":"ElementaryTypeName","src":"1912:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1911:6:54"},"scope":18196,"src":"1849:69:54","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":18126,"nodeType":"StructuredDocumentation","src":"1924:162:54","text":"@notice Reclaim assets from the incentive\n @param data_ The data payload for the reclaim\n @return True if the assets were successfully reclaimed"},"functionSelector":"f1c30ec0","id":18133,"implemented":false,"kind":"function","modifiers":[],"name":"reclaim","nameLocation":"2100:7:54","nodeType":"FunctionDefinition","parameters":{"id":18129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18128,"mutability":"mutable","name":"data_","nameLocation":"2123:5:54","nodeType":"VariableDeclaration","scope":18133,"src":"2108:20:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18127,"name":"bytes","nodeType":"ElementaryTypeName","src":"2108:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2107:22:54"},"returnParameters":{"id":18132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18131,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18133,"src":"2156:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18130,"name":"bool","nodeType":"ElementaryTypeName","src":"2156:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2155:6:54"},"scope":18196,"src":"2091:71:54","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"documentation":{"id":18134,"nodeType":"StructuredDocumentation","src":"2168:205:54","text":"@notice Check if an incentive is claimable\n @param data_ The data payload for the claim check (data, signature, etc.)\n @return True if the incentive is claimable based on the data payload"},"functionSelector":"e18e6508","id":18141,"implemented":false,"kind":"function","modifiers":[],"name":"isClaimable","nameLocation":"2387:11:54","nodeType":"FunctionDefinition","parameters":{"id":18137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18136,"mutability":"mutable","name":"data_","nameLocation":"2414:5:54","nodeType":"VariableDeclaration","scope":18141,"src":"2399:20:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18135,"name":"bytes","nodeType":"ElementaryTypeName","src":"2399:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2398:22:54"},"returnParameters":{"id":18140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18141,"src":"2452:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18138,"name":"bool","nodeType":"ElementaryTypeName","src":"2452:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2451:6:54"},"scope":18196,"src":"2378:80:54","stateMutability":"view","virtual":true,"visibility":"external"},{"documentation":{"id":18142,"nodeType":"StructuredDocumentation","src":"2464:448:54","text":"@notice Get the required allowance for the incentive\n @param data_ The initialization payload for the incentive\n @return The data payload to be passed to the {Budget} for interpretation\n @dev This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation."},"functionSelector":"4e7165a2","id":18149,"implemented":false,"kind":"function","modifiers":[],"name":"preflight","nameLocation":"2926:9:54","nodeType":"FunctionDefinition","parameters":{"id":18145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18144,"mutability":"mutable","name":"data_","nameLocation":"2951:5:54","nodeType":"VariableDeclaration","scope":18149,"src":"2936:20:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18143,"name":"bytes","nodeType":"ElementaryTypeName","src":"2936:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2935:22:54"},"returnParameters":{"id":18148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18149,"src":"2989:12:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18146,"name":"bytes","nodeType":"ElementaryTypeName","src":"2989:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2988:14:54"},"scope":18196,"src":"2917:86:54","stateMutability":"view","virtual":true,"visibility":"external"},{"body":{"id":18157,"nodeType":"Block","src":"3107:30:54","statements":[{"expression":{"id":18155,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"3124:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18154,"id":18156,"nodeType":"Return","src":"3117:13:54"}]},"documentation":{"id":18150,"nodeType":"StructuredDocumentation","src":"3009:30:54","text":"@return The current reward"},"functionSelector":"07621eca","id":18158,"implemented":true,"kind":"function","modifiers":[],"name":"currentReward","nameLocation":"3053:13:54","nodeType":"FunctionDefinition","parameters":{"id":18151,"nodeType":"ParameterList","parameters":[],"src":"3066:2:54"},"returnParameters":{"id":18154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18158,"src":"3098:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18152,"name":"uint256","nodeType":"ElementaryTypeName","src":"3098:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3097:9:54"},"scope":18196,"src":"3044:93:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[18508],"body":{"id":18180,"nodeType":"Block","src":"3275:106:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":18173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18168,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18161,"src":"3292:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":18170,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"3312:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}],"id":18169,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3307:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3307:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$18196","typeString":"type(contract Incentive)"}},"id":18172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3323:11:54","memberName":"interfaceId","nodeType":"MemberAccess","src":"3307:27:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3292:42:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":18176,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18161,"src":"3362:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":18174,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"3338:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Incentive_$18196_$","typeString":"type(contract super Incentive)"}},"id":18175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3344:17:54","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18508,"src":"3338:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":18177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3292:82:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18167,"id":18179,"nodeType":"Return","src":"3285:89:54"}]},"documentation":{"id":18159,"nodeType":"StructuredDocumentation","src":"3143:25:54","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":18181,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3182:17:54","nodeType":"FunctionDefinition","overrides":{"id":18164,"nodeType":"OverrideSpecifier","overrides":[{"id":18163,"name":"Cloneable","nameLocations":["3249:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"3249:9:54"}],"src":"3240:19:54"},"parameters":{"id":18162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18161,"mutability":"mutable","name":"interfaceId","nameLocation":"3207:11:54","nodeType":"VariableDeclaration","scope":18181,"src":"3200:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18160,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3200:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3199:20:54"},"returnParameters":{"id":18167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18181,"src":"3269:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18165,"name":"bool","nodeType":"ElementaryTypeName","src":"3269:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3268:6:54"},"scope":18196,"src":"3173:208:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[18486],"body":{"id":18194,"nodeType":"Block","src":"3507:51:54","statements":[{"expression":{"expression":{"arguments":[{"id":18190,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"3529:9:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Incentive_$18196_$","typeString":"type(contract Incentive)"}],"id":18189,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3524:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3524:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Incentive_$18196","typeString":"type(contract Incentive)"}},"id":18192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3540:11:54","memberName":"interfaceId","nodeType":"MemberAccess","src":"3524:27:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":18188,"id":18193,"nodeType":"Return","src":"3517:34:54"}]},"documentation":{"id":18182,"nodeType":"StructuredDocumentation","src":"3387:25:54","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":18195,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"3426:21:54","nodeType":"FunctionDefinition","overrides":{"id":18185,"nodeType":"OverrideSpecifier","overrides":[{"id":18184,"name":"Cloneable","nameLocations":["3479:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"3479:9:54"}],"src":"3470:19:54"},"parameters":{"id":18183,"nodeType":"ParameterList","parameters":[],"src":"3447:2:54"},"returnParameters":{"id":18188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18195,"src":"3499:6:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18186,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3499:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"3498:8:54"},"scope":18196,"src":"3417:141:54","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":18197,"src":"497:3063:54","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:3525:54"},"id":54},"contracts/incentives/PointsIncentive.sol":{"ast":{"absolutePath":"contracts/incentives/PointsIncentive.sol","exportedSymbols":{"APointsIncentive":[17399],"BoostError":[18343],"Cloneable":[18509],"PointsIncentive":[18286]},"id":18287,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18198,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:55"},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":18200,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18287,"sourceUnit":18344,"src":"62:59:55","symbolAliases":[{"foreign":{"id":18199,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"70:10:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":18202,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18287,"sourceUnit":18510,"src":"122:57:55","symbolAliases":[{"foreign":{"id":18201,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"130:9:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/APointsIncentive.sol","file":"contracts/incentives/APointsIncentive.sol","id":18204,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18287,"sourceUnit":17400,"src":"181:75:55","symbolAliases":[{"foreign":{"id":18203,"name":"APointsIncentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17399,"src":"189:16:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18206,"name":"APointsIncentive","nameLocations":["703:16:55"],"nodeType":"IdentifierPath","referencedDeclaration":17399,"src":"703:16:55"},"id":18207,"nodeType":"InheritanceSpecifier","src":"703:16:55"}],"canonicalName":"PointsIncentive","contractDependencies":[],"contractKind":"contract","documentation":{"id":18205,"nodeType":"StructuredDocumentation","src":"258:417:55","text":"@title Points Incentive\n @notice A simple on-chain points incentive implementation that allows claiming of soulbound tokens\n @dev In order for any claim to be successful:\n - The claimer must not have already claimed the incentive; and\n - The maximum number of claims must not have been reached; and\n - This contract must be authorized to operate the points contract's issuance function"},"fullyImplemented":true,"id":18286,"linearizedBaseContracts":[18286,17399,18196,11024,18509,2831,2843,9211,6409],"name":"PointsIncentive","nameLocation":"684:15:55","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PointsIncentive.InitPayload","documentation":{"id":18208,"nodeType":"StructuredDocumentation","src":"726:58:55","text":"@notice The payload for initializing a PointsIncentive"},"id":18217,"members":[{"constant":false,"id":18210,"mutability":"mutable","name":"venue","nameLocation":"826:5:55","nodeType":"VariableDeclaration","scope":18217,"src":"818:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18209,"name":"address","nodeType":"ElementaryTypeName","src":"818:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18212,"mutability":"mutable","name":"selector","nameLocation":"848:8:55","nodeType":"VariableDeclaration","scope":18217,"src":"841:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18211,"name":"bytes4","nodeType":"ElementaryTypeName","src":"841:6:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":18214,"mutability":"mutable","name":"reward","nameLocation":"874:6:55","nodeType":"VariableDeclaration","scope":18217,"src":"866:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18213,"name":"uint256","nodeType":"ElementaryTypeName","src":"866:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18216,"mutability":"mutable","name":"limit","nameLocation":"898:5:55","nodeType":"VariableDeclaration","scope":18217,"src":"890:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18215,"name":"uint256","nodeType":"ElementaryTypeName","src":"890:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"InitPayload","nameLocation":"796:11:55","nodeType":"StructDefinition","scope":18286,"src":"789:121:55","visibility":"public"},{"body":{"id":18224,"nodeType":"Block","src":"1171:39:55","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":18221,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"1181:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":18222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1181:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18223,"nodeType":"ExpressionStatement","src":"1181:22:55"}]},"documentation":{"id":18218,"nodeType":"StructuredDocumentation","src":"916:236:55","text":"@notice Construct a new PointsIncentive\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":18225,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18219,"nodeType":"ParameterList","parameters":[],"src":"1168:2:55"},"returnParameters":{"id":18220,"nodeType":"ParameterList","parameters":[],"src":"1171:0:55"},"scope":18286,"src":"1157:53:55","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[17214],"body":{"id":18284,"nodeType":"Block","src":"1463:333:55","statements":[{"assignments":[18236],"declarations":[{"constant":false,"id":18236,"mutability":"mutable","name":"init_","nameLocation":"1492:5:55","nodeType":"VariableDeclaration","scope":18284,"src":"1473:24:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload"},"typeName":{"id":18235,"nodeType":"UserDefinedTypeName","pathNode":{"id":18234,"name":"InitPayload","nameLocations":["1473:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":18217,"src":"1473:11:55"},"referencedDeclaration":18217,"src":"1473:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_storage_ptr","typeString":"struct PointsIncentive.InitPayload"}},"visibility":"internal"}],"id":18243,"initialValue":{"arguments":[{"id":18239,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18228,"src":"1511:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18240,"name":"InitPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18217,"src":"1519:11:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$18217_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}}],"id":18241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1518:13:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitPayload_$18217_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_struct$_InitPayload_$18217_storage_ptr_$","typeString":"type(struct PointsIncentive.InitPayload storage pointer)"}],"expression":{"id":18237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1500:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1504:6:55","memberName":"decode","nodeType":"MemberAccess","src":"1500:10:55","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:32:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"nodeType":"VariableDeclarationStatement","src":"1473:59:55"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18244,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"1546:5:55","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":18245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1552:6:55","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":18214,"src":"1546:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1562:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1546:17:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18248,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"1567:5:55","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":18249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1573:5:55","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":18216,"src":"1567:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1582:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1567:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1546:37:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18258,"nodeType":"IfStatement","src":"1542:84:55","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18253,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1592:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":18255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1603:21:55","memberName":"InvalidInitialization","nodeType":"MemberAccess","referencedDeclaration":18315,"src":"1592:32:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1592:34:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18257,"nodeType":"RevertStatement","src":"1585:41:55"}},{"expression":{"id":18262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18259,"name":"venue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17197,"src":"1637:5:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18260,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"1645:5:55","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":18261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1651:5:55","memberName":"venue","nodeType":"MemberAccess","referencedDeclaration":18210,"src":"1645:11:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1637:19:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18263,"nodeType":"ExpressionStatement","src":"1637:19:55"},{"expression":{"id":18267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18264,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17203,"src":"1666:8:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18265,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"1677:5:55","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":18266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1683:8:55","memberName":"selector","nodeType":"MemberAccess","referencedDeclaration":18212,"src":"1677:14:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1666:25:55","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":18268,"nodeType":"ExpressionStatement","src":"1666:25:55"},{"expression":{"id":18272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18269,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18102,"src":"1701:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18270,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"1710:5:55","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":18271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1716:6:55","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":18214,"src":"1710:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1701:21:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18273,"nodeType":"ExpressionStatement","src":"1701:21:55"},{"expression":{"id":18277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18274,"name":"limit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17200,"src":"1732:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18275,"name":"init_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18236,"src":"1740:5:55","typeDescriptions":{"typeIdentifier":"t_struct$_InitPayload_$18217_memory_ptr","typeString":"struct PointsIncentive.InitPayload memory"}},"id":18276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1746:5:55","memberName":"limit","nodeType":"MemberAccess","referencedDeclaration":18216,"src":"1740:11:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1732:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18278,"nodeType":"ExpressionStatement","src":"1732:19:55"},{"expression":{"arguments":[{"expression":{"id":18280,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1778:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1782:6:55","memberName":"sender","nodeType":"MemberAccess","src":"1778:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18279,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1761:16:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:28:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18283,"nodeType":"ExpressionStatement","src":"1761:28:55"}]},"documentation":{"id":18226,"nodeType":"StructuredDocumentation","src":"1216:172:55","text":"@notice Initialize the contract with the incentive parameters\n @param data_ The compressed incentive parameters `(address points, uint256 reward, uint256 limit)`"},"functionSelector":"439fab91","id":18285,"implemented":true,"kind":"function","modifiers":[{"id":18232,"kind":"modifierInvocation","modifierName":{"id":18231,"name":"initializer","nameLocations":["1451:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1451:11:55"},"nodeType":"ModifierInvocation","src":"1451:11:55"}],"name":"initialize","nameLocation":"1402:10:55","nodeType":"FunctionDefinition","overrides":{"id":18230,"nodeType":"OverrideSpecifier","overrides":[],"src":"1442:8:55"},"parameters":{"id":18229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18228,"mutability":"mutable","name":"data_","nameLocation":"1428:5:55","nodeType":"VariableDeclaration","scope":18285,"src":"1413:20:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18227,"name":"bytes","nodeType":"ElementaryTypeName","src":"1413:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1412:22:55"},"returnParameters":{"id":18233,"nodeType":"ParameterList","parameters":[],"src":"1463:0:55"},"scope":18286,"src":"1393:403:55","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":18287,"src":"675:1123:55","usedErrors":[6221,6224,6227,6230,9103,9106,11006,18087,18090,18315,18321,18443,18446,18449],"usedEvents":[6237,6242,6247,9111,18084]}],"src":"36:1763:55"},"id":55},"contracts/shared/BoostError.sol":{"ast":{"absolutePath":"contracts/shared/BoostError.sol","exportedSymbols":{"BoostError":[18343]},"id":18344,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18288,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:56"},{"abstract":false,"baseContracts":[],"canonicalName":"BoostError","contractDependencies":[],"contractKind":"library","documentation":{"id":18289,"nodeType":"StructuredDocumentation","src":"62:239:56","text":"@title BoostError\n @notice Standardized errors for the Boost protocol\n @dev Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing."},"fullyImplemented":true,"id":18343,"linearizedBaseContracts":[18343],"name":"BoostError","nameLocation":"309:10:56","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":18290,"nodeType":"StructuredDocumentation","src":"326:45:56","text":"@notice Thrown when a claim attempt fails"},"errorSelector":"4139d81d","id":18296,"name":"ClaimFailed","nameLocation":"382:11:56","nodeType":"ErrorDefinition","parameters":{"id":18295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18292,"mutability":"mutable","name":"caller","nameLocation":"402:6:56","nodeType":"VariableDeclaration","scope":18296,"src":"394:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18291,"name":"address","nodeType":"ElementaryTypeName","src":"394:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18294,"mutability":"mutable","name":"data","nameLocation":"416:4:56","nodeType":"VariableDeclaration","scope":18296,"src":"410:10:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18293,"name":"bytes","nodeType":"ElementaryTypeName","src":"410:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"393:28:56"},"src":"376:46:56"},{"documentation":{"id":18297,"nodeType":"StructuredDocumentation","src":"428:69:56","text":"@notice Thrown when there are insufficient funds for an operation"},"errorSelector":"5c54305e","id":18305,"name":"InsufficientFunds","nameLocation":"508:17:56","nodeType":"ErrorDefinition","parameters":{"id":18304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18299,"mutability":"mutable","name":"asset","nameLocation":"534:5:56","nodeType":"VariableDeclaration","scope":18305,"src":"526:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18298,"name":"address","nodeType":"ElementaryTypeName","src":"526:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18301,"mutability":"mutable","name":"available","nameLocation":"549:9:56","nodeType":"VariableDeclaration","scope":18305,"src":"541:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18300,"name":"uint256","nodeType":"ElementaryTypeName","src":"541:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18303,"mutability":"mutable","name":"required","nameLocation":"568:8:56","nodeType":"VariableDeclaration","scope":18305,"src":"560:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18302,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"525:52:56"},"src":"502:76:56"},{"documentation":{"id":18306,"nodeType":"StructuredDocumentation","src":"584:81:56","text":"@notice Thrown when a non-conforming instance for a given type is encountered"},"errorSelector":"e1c44448","id":18312,"name":"InvalidInstance","nameLocation":"676:15:56","nodeType":"ErrorDefinition","parameters":{"id":18311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18308,"mutability":"mutable","name":"expectedInterface","nameLocation":"699:17:56","nodeType":"VariableDeclaration","scope":18312,"src":"692:24:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18307,"name":"bytes4","nodeType":"ElementaryTypeName","src":"692:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":18310,"mutability":"mutable","name":"instance","nameLocation":"726:8:56","nodeType":"VariableDeclaration","scope":18312,"src":"718:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18309,"name":"address","nodeType":"ElementaryTypeName","src":"718:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"691:44:56"},"src":"670:66:56"},{"documentation":{"id":18313,"nodeType":"StructuredDocumentation","src":"742:62:56","text":"@notice Thrown when an invalid initialization is attempted"},"errorSelector":"f92ee8a9","id":18315,"name":"InvalidInitialization","nameLocation":"815:21:56","nodeType":"ErrorDefinition","parameters":{"id":18314,"nodeType":"ParameterList","parameters":[],"src":"836:2:56"},"src":"809:30:56"},{"documentation":{"id":18316,"nodeType":"StructuredDocumentation","src":"845:62:56","text":"@notice Thrown when the length of two arrays are not equal"},"errorSelector":"ff633a38","id":18318,"name":"LengthMismatch","nameLocation":"918:14:56","nodeType":"ErrorDefinition","parameters":{"id":18317,"nodeType":"ParameterList","parameters":[],"src":"932:2:56"},"src":"912:23:56"},{"documentation":{"id":18319,"nodeType":"StructuredDocumentation","src":"941:51:56","text":"@notice Thrown when a method is not implemented"},"errorSelector":"d6234725","id":18321,"name":"NotImplemented","nameLocation":"1003:14:56","nodeType":"ErrorDefinition","parameters":{"id":18320,"nodeType":"ParameterList","parameters":[],"src":"1017:2:56"},"src":"997:23:56"},{"documentation":{"id":18322,"nodeType":"StructuredDocumentation","src":"1026:63:56","text":"@notice Thrown when a previously used signature is replayed"},"errorSelector":"cde6ac87","id":18330,"name":"Replayed","nameLocation":"1100:8:56","nodeType":"ErrorDefinition","parameters":{"id":18329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18324,"mutability":"mutable","name":"signer","nameLocation":"1117:6:56","nodeType":"VariableDeclaration","scope":18330,"src":"1109:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18323,"name":"address","nodeType":"ElementaryTypeName","src":"1109:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18326,"mutability":"mutable","name":"hash","nameLocation":"1133:4:56","nodeType":"VariableDeclaration","scope":18330,"src":"1125:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1125:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18328,"mutability":"mutable","name":"signature","nameLocation":"1145:9:56","nodeType":"VariableDeclaration","scope":18330,"src":"1139:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18327,"name":"bytes","nodeType":"ElementaryTypeName","src":"1139:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1108:47:56"},"src":"1094:62:56"},{"documentation":{"id":18331,"nodeType":"StructuredDocumentation","src":"1162:62:56","text":"@notice Thrown when a transfer fails for an unknown reason"},"errorSelector":"bf182be8","id":18339,"name":"TransferFailed","nameLocation":"1235:14:56","nodeType":"ErrorDefinition","parameters":{"id":18338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18333,"mutability":"mutable","name":"asset","nameLocation":"1258:5:56","nodeType":"VariableDeclaration","scope":18339,"src":"1250:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18332,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18335,"mutability":"mutable","name":"to","nameLocation":"1273:2:56","nodeType":"VariableDeclaration","scope":18339,"src":"1265:10:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18334,"name":"address","nodeType":"ElementaryTypeName","src":"1265:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18337,"mutability":"mutable","name":"amount","nameLocation":"1285:6:56","nodeType":"VariableDeclaration","scope":18339,"src":"1277:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18336,"name":"uint256","nodeType":"ElementaryTypeName","src":"1277:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1249:43:56"},"src":"1229:64:56"},{"documentation":{"id":18340,"nodeType":"StructuredDocumentation","src":"1299:60:56","text":"@notice Thrown when the requested action is unauthorized"},"errorSelector":"82b42900","id":18342,"name":"Unauthorized","nameLocation":"1370:12:56","nodeType":"ErrorDefinition","parameters":{"id":18341,"nodeType":"ParameterList","parameters":[],"src":"1382:2:56"},"src":"1364:21:56"}],"scope":18344,"src":"301:1086:56","usedErrors":[18296,18305,18312,18315,18318,18321,18330,18339,18342],"usedEvents":[]}],"src":"36:1352:56"},"id":56},"contracts/shared/BoostLib.sol":{"ast":{"absolutePath":"contracts/shared/BoostLib.sol","exportedSymbols":{"Action":[13114],"AllowList":[13587],"BoostLib":[18429],"Budget":[15659],"Cloneable":[18509],"Incentive":[18196],"LibClone":[10078],"LibZip":[11000],"Validator":[19130]},"id":18430,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18345,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:57"},{"absolutePath":"@solady/utils/LibClone.sol","file":"@solady/utils/LibClone.sol","id":18347,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":10079,"src":"62:52:57","symbolAliases":[{"foreign":{"id":18346,"name":"LibClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"70:8:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/LibZip.sol","file":"@solady/utils/LibZip.sol","id":18349,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":11001,"src":"115:48:57","symbolAliases":[{"foreign":{"id":18348,"name":"LibZip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11000,"src":"123:6:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/actions/Action.sol","file":"contracts/actions/Action.sol","id":18351,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":13115,"src":"165:52:57","symbolAliases":[{"foreign":{"id":18350,"name":"Action","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13114,"src":"173:6:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/allowlists/AllowList.sol","file":"contracts/allowlists/AllowList.sol","id":18353,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":13588,"src":"218:61:57","symbolAliases":[{"foreign":{"id":18352,"name":"AllowList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13587,"src":"226:9:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/budgets/Budget.sol","file":"contracts/budgets/Budget.sol","id":18355,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":15660,"src":"280:52:57","symbolAliases":[{"foreign":{"id":18354,"name":"Budget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15659,"src":"288:6:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":18357,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":18510,"src":"333:57:57","symbolAliases":[{"foreign":{"id":18356,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"341:9:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/incentives/Incentive.sol","file":"contracts/incentives/Incentive.sol","id":18359,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":18197,"src":"391:61:57","symbolAliases":[{"foreign":{"id":18358,"name":"Incentive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18196,"src":"399:9:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":18361,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18430,"sourceUnit":19131,"src":"453:61:57","symbolAliases":[{"foreign":{"id":18360,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"461:9:57","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"BoostLib","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":18429,"linearizedBaseContracts":[18429],"name":"BoostLib","nameLocation":"524:8:57","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18364,"libraryName":{"id":18362,"name":"LibClone","nameLocations":["545:8:57"],"nodeType":"IdentifierPath","referencedDeclaration":10078,"src":"545:8:57"},"nodeType":"UsingForDirective","src":"539:27:57","typeName":{"id":18363,"name":"address","nodeType":"ElementaryTypeName","src":"558:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"global":false,"id":18367,"libraryName":{"id":18365,"name":"LibZip","nameLocations":["577:6:57"],"nodeType":"IdentifierPath","referencedDeclaration":11000,"src":"577:6:57"},"nodeType":"UsingForDirective","src":"571:23:57","typeName":{"id":18366,"name":"bytes","nodeType":"ElementaryTypeName","src":"588:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"canonicalName":"BoostLib.Boost","documentation":{"id":18368,"nodeType":"StructuredDocumentation","src":"600:48:57","text":"@notice A struct representing a single Boost"},"id":18393,"members":[{"constant":false,"id":18371,"mutability":"mutable","name":"action","nameLocation":"683:6:57","nodeType":"VariableDeclaration","scope":18393,"src":"676:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"},"typeName":{"id":18370,"nodeType":"UserDefinedTypeName","pathNode":{"id":18369,"name":"Action","nameLocations":["676:6:57"],"nodeType":"IdentifierPath","referencedDeclaration":13114,"src":"676:6:57"},"referencedDeclaration":13114,"src":"676:6:57","typeDescriptions":{"typeIdentifier":"t_contract$_Action_$13114","typeString":"contract Action"}},"visibility":"internal"},{"constant":false,"id":18374,"mutability":"mutable","name":"validator","nameLocation":"709:9:57","nodeType":"VariableDeclaration","scope":18393,"src":"699:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"},"typeName":{"id":18373,"nodeType":"UserDefinedTypeName","pathNode":{"id":18372,"name":"Validator","nameLocations":["699:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"699:9:57"},"referencedDeclaration":19130,"src":"699:9:57","typeDescriptions":{"typeIdentifier":"t_contract$_Validator_$19130","typeString":"contract Validator"}},"visibility":"internal"},{"constant":false,"id":18377,"mutability":"mutable","name":"allowList","nameLocation":"738:9:57","nodeType":"VariableDeclaration","scope":18393,"src":"728:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13587","typeString":"contract AllowList"},"typeName":{"id":18376,"nodeType":"UserDefinedTypeName","pathNode":{"id":18375,"name":"AllowList","nameLocations":["728:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":13587,"src":"728:9:57"},"referencedDeclaration":13587,"src":"728:9:57","typeDescriptions":{"typeIdentifier":"t_contract$_AllowList_$13587","typeString":"contract AllowList"}},"visibility":"internal"},{"constant":false,"id":18380,"mutability":"mutable","name":"budget","nameLocation":"764:6:57","nodeType":"VariableDeclaration","scope":18393,"src":"757:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"},"typeName":{"id":18379,"nodeType":"UserDefinedTypeName","pathNode":{"id":18378,"name":"Budget","nameLocations":["757:6:57"],"nodeType":"IdentifierPath","referencedDeclaration":15659,"src":"757:6:57"},"referencedDeclaration":15659,"src":"757:6:57","typeDescriptions":{"typeIdentifier":"t_contract$_Budget_$15659","typeString":"contract Budget"}},"visibility":"internal"},{"constant":false,"id":18384,"mutability":"mutable","name":"incentives","nameLocation":"792:10:57","nodeType":"VariableDeclaration","scope":18393,"src":"780:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_storage_ptr","typeString":"contract Incentive[]"},"typeName":{"baseType":{"id":18382,"nodeType":"UserDefinedTypeName","pathNode":{"id":18381,"name":"Incentive","nameLocations":["780:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":18196,"src":"780:9:57"},"referencedDeclaration":18196,"src":"780:9:57","typeDescriptions":{"typeIdentifier":"t_contract$_Incentive_$18196","typeString":"contract Incentive"}},"id":18383,"nodeType":"ArrayTypeName","src":"780:11:57","typeDescriptions":{"typeIdentifier":"t_array$_t_contract$_Incentive_$18196_$dyn_storage_ptr","typeString":"contract Incentive[]"}},"visibility":"internal"},{"constant":false,"id":18386,"mutability":"mutable","name":"protocolFee","nameLocation":"819:11:57","nodeType":"VariableDeclaration","scope":18393,"src":"812:18:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18385,"name":"uint64","nodeType":"ElementaryTypeName","src":"812:6:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":18388,"mutability":"mutable","name":"referralFee","nameLocation":"847:11:57","nodeType":"VariableDeclaration","scope":18393,"src":"840:18:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":18387,"name":"uint64","nodeType":"ElementaryTypeName","src":"840:6:57","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":18390,"mutability":"mutable","name":"maxParticipants","nameLocation":"876:15:57","nodeType":"VariableDeclaration","scope":18393,"src":"868:23:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18389,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18392,"mutability":"mutable","name":"owner","nameLocation":"909:5:57","nodeType":"VariableDeclaration","scope":18393,"src":"901:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18391,"name":"address","nodeType":"ElementaryTypeName","src":"901:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Boost","nameLocation":"660:5:57","nodeType":"StructDefinition","scope":18429,"src":"653:268:57","visibility":"public"},{"canonicalName":"BoostLib.Target","documentation":{"id":18394,"nodeType":"StructuredDocumentation","src":"927:183:57","text":"@notice A base struct for a contract and its initialization parameters\n @dev This is used to pass the base contract and its initialization parameters in an efficient manner"},"id":18401,"members":[{"constant":false,"id":18396,"mutability":"mutable","name":"isBase","nameLocation":"1144:6:57","nodeType":"VariableDeclaration","scope":18401,"src":"1139:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18395,"name":"bool","nodeType":"ElementaryTypeName","src":"1139:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18398,"mutability":"mutable","name":"instance","nameLocation":"1168:8:57","nodeType":"VariableDeclaration","scope":18401,"src":"1160:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18397,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18400,"mutability":"mutable","name":"parameters","nameLocation":"1192:10:57","nodeType":"VariableDeclaration","scope":18401,"src":"1186:16:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":18399,"name":"bytes","nodeType":"ElementaryTypeName","src":"1186:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Target","nameLocation":"1122:6:57","nodeType":"StructDefinition","scope":18429,"src":"1115:94:57","visibility":"public"},{"body":{"id":18427,"nodeType":"Block","src":"1638:164:57","statements":[{"expression":{"id":18418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18413,"name":"_clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18411,"src":"1648:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18416,"name":"salt_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18406,"src":"1678:5:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18414,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18404,"src":"1657:1:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1659:18:57","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":9282,"src":"1657:20:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$attached_to$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":18417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1657:27:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1648:36:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18419,"nodeType":"ExpressionStatement","src":"1648:36:57"},{"expression":{"arguments":[{"id":18424,"name":"initData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18408,"src":"1785:9:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":18421,"name":"_clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18411,"src":"1766:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18420,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"1756:9:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}},"id":18422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:17:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Cloneable_$18509","typeString":"contract Cloneable"}},"id":18423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1774:10:57","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":18474,"src":"1756:28:57","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":18425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:39:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18426,"nodeType":"ExpressionStatement","src":"1756:39:57"}]},"documentation":{"id":18402,"nodeType":"StructuredDocumentation","src":"1215:306:57","text":"@notice Clone and initialize a contract with a deterministic salt\n @param $ The contract to clone and initialize\n @param salt_ The salt for the deterministic clone\n @param initData_ The initialization data for the contract\n @return _clone The cloned and initialized contract"},"id":18428,"implemented":true,"kind":"function","modifiers":[],"name":"cloneAndInitialize","nameLocation":"1535:18:57","nodeType":"FunctionDefinition","parameters":{"id":18409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18404,"mutability":"mutable","name":"$","nameLocation":"1562:1:57","nodeType":"VariableDeclaration","scope":18428,"src":"1554:9:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18403,"name":"address","nodeType":"ElementaryTypeName","src":"1554:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18406,"mutability":"mutable","name":"salt_","nameLocation":"1573:5:57","nodeType":"VariableDeclaration","scope":18428,"src":"1565:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1565:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18408,"mutability":"mutable","name":"initData_","nameLocation":"1593:9:57","nodeType":"VariableDeclaration","scope":18428,"src":"1580:22:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18407,"name":"bytes","nodeType":"ElementaryTypeName","src":"1580:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1553:50:57"},"returnParameters":{"id":18412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18411,"mutability":"mutable","name":"_clone","nameLocation":"1630:6:57","nodeType":"VariableDeclaration","scope":18428,"src":"1622:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18410,"name":"address","nodeType":"ElementaryTypeName","src":"1622:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1621:16:57"},"scope":18429,"src":"1526:276:57","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":18430,"src":"516:1288:57","usedErrors":[],"usedEvents":[]}],"src":"36:1769:57"},"id":57},"contracts/shared/Cloneable.sol":{"ast":{"absolutePath":"contracts/shared/Cloneable.sol","exportedSymbols":{"Cloneable":[18509],"ERC165":[2831],"Initializable":[9211]},"id":18510,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18431,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:58"},{"absolutePath":"@solady/utils/Initializable.sol","file":"@solady/utils/Initializable.sol","id":18433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18510,"sourceUnit":9212,"src":"62:62:58","symbolAliases":[{"foreign":{"id":18432,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9211,"src":"70:13:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","id":18435,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18510,"sourceUnit":2832,"src":"125:78:58","symbolAliases":[{"foreign":{"id":18434,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"133:6:58","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":18437,"name":"Initializable","nameLocations":["325:13:58"],"nodeType":"IdentifierPath","referencedDeclaration":9211,"src":"325:13:58"},"id":18438,"nodeType":"InheritanceSpecifier","src":"325:13:58"},{"baseName":{"id":18439,"name":"ERC165","nameLocations":["340:6:58"],"nodeType":"IdentifierPath","referencedDeclaration":2831,"src":"340:6:58"},"id":18440,"nodeType":"InheritanceSpecifier","src":"340:6:58"}],"canonicalName":"Cloneable","contractDependencies":[],"contractKind":"contract","documentation":{"id":18436,"nodeType":"StructuredDocumentation","src":"205:89:58","text":"@title Cloneable\n @notice A contract that can be cloned and initialized only once"},"fullyImplemented":true,"id":18509,"linearizedBaseContracts":[18509,2831,2843,9211],"name":"Cloneable","nameLocation":"312:9:58","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":18441,"nodeType":"StructuredDocumentation","src":"353:90:58","text":"@notice Thrown when an inheriting contract does not implement the initializer function"},"errorSelector":"7a7da9f8","id":18443,"name":"InitializerNotImplemented","nameLocation":"454:25:58","nodeType":"ErrorDefinition","parameters":{"id":18442,"nodeType":"ParameterList","parameters":[],"src":"479:2:58"},"src":"448:34:58"},{"documentation":{"id":18444,"nodeType":"StructuredDocumentation","src":"488:202:58","text":"@notice Thrown when the provided initialization data is invalid\n @dev This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)"},"errorSelector":"69d23ad9","id":18446,"name":"InvalidInitializationData","nameLocation":"701:25:58","nodeType":"ErrorDefinition","parameters":{"id":18445,"nodeType":"ParameterList","parameters":[],"src":"726:2:58"},"src":"695:34:58"},{"documentation":{"id":18447,"nodeType":"StructuredDocumentation","src":"735:65:58","text":"@notice Thrown when the contract has already been initialized"},"errorSelector":"6947c876","id":18449,"name":"CloneAlreadyInitialized","nameLocation":"811:23:58","nodeType":"ErrorDefinition","parameters":{"id":18448,"nodeType":"ParameterList","parameters":[],"src":"834:2:58"},"src":"805:32:58"},{"body":{"id":18461,"nodeType":"Block","src":"1086:95:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":18455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":18452,"name":"_getInitializedVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9197,"src":"1100:22:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint64_$","typeString":"function () view returns (uint64)"}},"id":18453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:24:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":18454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1128:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18459,"nodeType":"IfStatement","src":"1096:67:58","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18456,"name":"CloneAlreadyInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18449,"src":"1138:23:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1138:25:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18458,"nodeType":"RevertStatement","src":"1131:32:58"}},{"id":18460,"nodeType":"PlaceholderStatement","src":"1173:1:58"}]},"documentation":{"id":18450,"nodeType":"StructuredDocumentation","src":"843:202:58","text":"@notice A modifier to restrict a function to only be called before initialization\n @dev This is intended to enforce that a function can only be called before the contract has been initialized"},"id":18462,"name":"onlyBeforeInitialization","nameLocation":"1059:24:58","nodeType":"ModifierDefinition","parameters":{"id":18451,"nodeType":"ParameterList","parameters":[],"src":"1083:2:58"},"src":"1050:131:58","virtual":false,"visibility":"internal"},{"body":{"id":18473,"nodeType":"Block","src":"1566:51:58","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18470,"name":"InitializerNotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18443,"src":"1583:25:58","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:27:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18472,"nodeType":"RevertStatement","src":"1576:34:58"}]},"documentation":{"id":18463,"nodeType":"StructuredDocumentation","src":"1187:311:58","text":"@notice Initialize the clone with the given arbitrary data\n @param - The compressed initialization data (if required)\n @dev The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}\n @dev All implementations must override this function to initialize the contract"},"functionSelector":"439fab91","id":18474,"implemented":true,"kind":"function","modifiers":[{"id":18468,"kind":"modifierInvocation","modifierName":{"id":18467,"name":"initializer","nameLocations":["1554:11:58"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"1554:11:58"},"nodeType":"ModifierInvocation","src":"1554:11:58"}],"name":"initialize","nameLocation":"1512:10:58","nodeType":"FunctionDefinition","parameters":{"id":18466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18474,"src":"1523:14:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18464,"name":"bytes","nodeType":"ElementaryTypeName","src":"1523:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1522:16:58"},"returnParameters":{"id":18469,"nodeType":"ParameterList","parameters":[],"src":"1566:0:58"},"scope":18509,"src":"1503:114:58","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":18485,"nodeType":"Block","src":"1884:51:58","statements":[{"expression":{"expression":{"arguments":[{"id":18481,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"1906:9:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}],"id":18480,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1901:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:15:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Cloneable_$18509","typeString":"type(contract Cloneable)"}},"id":18483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1917:11:58","memberName":"interfaceId","nodeType":"MemberAccess","src":"1901:27:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":18479,"id":18484,"nodeType":"Return","src":"1894:34:58"}]},"documentation":{"id":18475,"nodeType":"StructuredDocumentation","src":"1623:186:58","text":"@notice\n @param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\n @dev All implementations must override this function"},"functionSelector":"28d6183b","id":18486,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"1823:21:58","nodeType":"FunctionDefinition","parameters":{"id":18476,"nodeType":"ParameterList","parameters":[],"src":"1844:2:58"},"returnParameters":{"id":18479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18486,"src":"1876:6:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18477,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1876:6:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1875:8:58"},"scope":18509,"src":"1814:121:58","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[2830],"body":{"id":18507,"nodeType":"Block","src":"2238:106:58","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":18500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18495,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18489,"src":"2255:11:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":18497,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"2275:9:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Cloneable_$18509_$","typeString":"type(contract Cloneable)"}],"id":18496,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2270:4:58","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2270:15:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Cloneable_$18509","typeString":"type(contract Cloneable)"}},"id":18499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2286:11:58","memberName":"interfaceId","nodeType":"MemberAccess","src":"2270:27:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2255:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":18503,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18489,"src":"2325:11:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":18501,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2301:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Cloneable_$18509_$","typeString":"type(contract super Cloneable)"}},"id":18502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2307:17:58","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":2830,"src":"2301:23:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":18504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2301:36:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2255:82:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18494,"id":18506,"nodeType":"Return","src":"2248:89:58"}]},"documentation":{"id":18487,"nodeType":"StructuredDocumentation","src":"1941:201:58","text":"@inheritdoc ERC165\n @notice Check if the contract supports the given interface\n @param interfaceId The interface identifier\n @return True if the contract supports the interface"},"functionSelector":"01ffc9a7","id":18508,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2156:17:58","nodeType":"FunctionDefinition","overrides":{"id":18491,"nodeType":"OverrideSpecifier","overrides":[],"src":"2214:8:58"},"parameters":{"id":18490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18489,"mutability":"mutable","name":"interfaceId","nameLocation":"2181:11:58","nodeType":"VariableDeclaration","scope":18508,"src":"2174:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18488,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2174:6:58","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2173:20:58"},"returnParameters":{"id":18494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18508,"src":"2232:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18492,"name":"bool","nodeType":"ElementaryTypeName","src":"2232:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2231:6:58"},"scope":18509,"src":"2147:197:58","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":18510,"src":"294:2052:58","usedErrors":[9103,9106,18443,18446,18449],"usedEvents":[9111]}],"src":"36:2311:58"},"id":58},"contracts/shared/Mocks.sol":{"ast":{"absolutePath":"contracts/shared/Mocks.sol","exportedSymbols":{"ERC1155":[1053],"ERC20":[8355],"ERC721":[9097],"LibString":[10950],"MockERC1155":[18689],"MockERC20":[18645],"MockERC721":[18587]},"id":18690,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18511,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:59"},{"absolutePath":"@solady/utils/LibString.sol","file":"@solady/utils/LibString.sol","id":18513,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18690,"sourceUnit":10951,"src":"62:54:59","symbolAliases":[{"foreign":{"id":18512,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10950,"src":"70:9:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/tokens/ERC20.sol","file":"@solady/tokens/ERC20.sol","id":18515,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18690,"sourceUnit":8356,"src":"117:47:59","symbolAliases":[{"foreign":{"id":18514,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8355,"src":"125:5:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/tokens/ERC721.sol","file":"@solady/tokens/ERC721.sol","id":18517,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18690,"sourceUnit":9098,"src":"165:49:59","symbolAliases":[{"foreign":{"id":18516,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9097,"src":"173:6:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","file":"@openzeppelin/contracts/token/ERC1155/ERC1155.sol","id":18519,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18690,"sourceUnit":1054,"src":"215:74:59","symbolAliases":[{"foreign":{"id":18518,"name":"ERC1155","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1053,"src":"223:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18521,"name":"ERC721","nameLocations":["702:6:59"],"nodeType":"IdentifierPath","referencedDeclaration":9097,"src":"702:6:59"},"id":18522,"nodeType":"InheritanceSpecifier","src":"702:6:59"}],"canonicalName":"MockERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":18520,"nodeType":"StructuredDocumentation","src":"597:82:59","text":"@title MockERC721\n @notice A mock ERC721 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":18587,"linearizedBaseContracts":[18587,9097],"name":"MockERC721","nameLocation":"688:10:59","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"18160ddd","id":18524,"mutability":"mutable","name":"totalSupply","nameLocation":"730:11:59","nodeType":"VariableDeclaration","scope":18587,"src":"715:26:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18523,"name":"uint256","nodeType":"ElementaryTypeName","src":"715:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"6817c76c","id":18527,"mutability":"mutable","name":"mintPrice","nameLocation":"762:9:59","nodeType":"VariableDeclaration","scope":18587,"src":"747:36:59","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18525,"name":"uint256","nodeType":"ElementaryTypeName","src":"747:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e31","id":18526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:9:59","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000_by_1","typeString":"int_const 100000000000000000"},"value":"0.1"},"visibility":"public"},{"baseFunctions":[8441],"body":{"id":18535,"nodeType":"Block","src":"851:37:59","statements":[{"expression":{"hexValue":"4d6f636b20455243373231","id":18533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"868:13:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_54fc097defce4be279e9eebd3ed864140ee862e10a1ac2ceb77f264a0e7df328","typeString":"literal_string \"Mock ERC721\""},"value":"Mock ERC721"},"functionReturnParameters":18532,"id":18534,"nodeType":"Return","src":"861:20:59"}]},"functionSelector":"06fdde03","id":18536,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"799:4:59","nodeType":"FunctionDefinition","overrides":{"id":18529,"nodeType":"OverrideSpecifier","overrides":[],"src":"818:8:59"},"parameters":{"id":18528,"nodeType":"ParameterList","parameters":[],"src":"803:2:59"},"returnParameters":{"id":18532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18531,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18536,"src":"836:13:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18530,"name":"string","nodeType":"ElementaryTypeName","src":"836:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"835:15:59"},"scope":18587,"src":"790:98:59","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8447],"body":{"id":18544,"nodeType":"Block","src":"957:30:59","statements":[{"expression":{"hexValue":"4d4f434b","id":18542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"974:6:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c517c66587983dacbde85dde74f9eb525b7881b1753cee39b9677a9d863af0","typeString":"literal_string \"MOCK\""},"value":"MOCK"},"functionReturnParameters":18541,"id":18543,"nodeType":"Return","src":"967:13:59"}]},"functionSelector":"95d89b41","id":18545,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"903:6:59","nodeType":"FunctionDefinition","overrides":{"id":18538,"nodeType":"OverrideSpecifier","overrides":[],"src":"924:8:59"},"parameters":{"id":18537,"nodeType":"ParameterList","parameters":[],"src":"909:2:59"},"returnParameters":{"id":18541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18545,"src":"942:13:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18539,"name":"string","nodeType":"ElementaryTypeName","src":"942:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"941:15:59"},"scope":18587,"src":"894:93:59","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":18564,"nodeType":"Block","src":"1034:158:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1052:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1056:5:59","memberName":"value","nodeType":"MemberAccess","src":"1052:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":18553,"name":"mintPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18527,"src":"1065:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1052:22:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e657921","id":18555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1076:31:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","typeString":"literal_string \"MockERC721: gimme more money!\""},"value":"MockERC721: gimme more money!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","typeString":"literal_string \"MockERC721: gimme more money!\""}],"id":18550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1044:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:64:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18557,"nodeType":"ExpressionStatement","src":"1044:64:59"},{"expression":{"arguments":[{"id":18559,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18547,"src":"1167:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1171:13:59","subExpression":{"id":18560,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18524,"src":"1173:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18558,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8709,"src":"1161:5:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:24:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18563,"nodeType":"ExpressionStatement","src":"1161:24:59"}]},"functionSelector":"6a627842","id":18565,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1002:4:59","nodeType":"FunctionDefinition","parameters":{"id":18548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18547,"mutability":"mutable","name":"to","nameLocation":"1015:2:59","nodeType":"VariableDeclaration","scope":18565,"src":"1007:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18546,"name":"address","nodeType":"ElementaryTypeName","src":"1007:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1006:12:59"},"returnParameters":{"id":18549,"nodeType":"ParameterList","parameters":[],"src":"1034:0:59"},"scope":18587,"src":"993:199:59","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[8455],"body":{"id":18585,"nodeType":"Block","src":"1281:102:59","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f","id":18577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:28:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","typeString":"literal_string \"https://example.com/token/\""},"value":"https://example.com/token/"},{"arguments":[{"id":18580,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18567,"src":"1371:2:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18578,"name":"LibString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10950,"src":"1352:9:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LibString_$10950_$","typeString":"type(library LibString)"}},"id":18579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1362:8:59","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":10320,"src":"1352:18:59","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":18581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1352:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","typeString":"literal_string \"https://example.com/token/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1305:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1309:12:59","memberName":"encodePacked","nodeType":"MemberAccess","src":"1305:16:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1305:70:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1298:6:59","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":18573,"name":"string","nodeType":"ElementaryTypeName","src":"1298:6:59","typeDescriptions":{}}},"id":18583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1298:78:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":18572,"id":18584,"nodeType":"Return","src":"1291:85:59"}]},"functionSelector":"c87b56dd","id":18586,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"1207:8:59","nodeType":"FunctionDefinition","overrides":{"id":18569,"nodeType":"OverrideSpecifier","overrides":[],"src":"1248:8:59"},"parameters":{"id":18568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18567,"mutability":"mutable","name":"id","nameLocation":"1224:2:59","nodeType":"VariableDeclaration","scope":18586,"src":"1216:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18566,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:12:59"},"returnParameters":{"id":18572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18586,"src":"1266:13:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18570,"name":"string","nodeType":"ElementaryTypeName","src":"1266:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1265:15:59"},"scope":18587,"src":"1198:185:59","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":18690,"src":"679:706:59","usedErrors":[8365,8368,8371,8374,8377,8380,8383,8386],"usedEvents":[8395,8404,8413]},{"abstract":false,"baseContracts":[{"baseName":{"id":18589,"name":"ERC20","nameLocations":["1489:5:59"],"nodeType":"IdentifierPath","referencedDeclaration":8355,"src":"1489:5:59"},"id":18590,"nodeType":"InheritanceSpecifier","src":"1489:5:59"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":18588,"nodeType":"StructuredDocumentation","src":"1387:80:59","text":"@title MockERC20\n @notice A mock ERC20 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":18645,"linearizedBaseContracts":[18645,8355],"name":"MockERC20","nameLocation":"1476:9:59","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[8024],"body":{"id":18598,"nodeType":"Block","src":"1562:36:59","statements":[{"expression":{"hexValue":"4d6f636b204552433230","id":18596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1579:12:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5c9260bf133e670eeaf4d41f5c4289fc23bb146bf11ba8fa70a2ea91ba1a330","typeString":"literal_string \"Mock ERC20\""},"value":"Mock ERC20"},"functionReturnParameters":18595,"id":18597,"nodeType":"Return","src":"1572:19:59"}]},"functionSelector":"06fdde03","id":18599,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1510:4:59","nodeType":"FunctionDefinition","overrides":{"id":18592,"nodeType":"OverrideSpecifier","overrides":[],"src":"1529:8:59"},"parameters":{"id":18591,"nodeType":"ParameterList","parameters":[],"src":"1514:2:59"},"returnParameters":{"id":18595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18599,"src":"1547:13:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18593,"name":"string","nodeType":"ElementaryTypeName","src":"1547:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1546:15:59"},"scope":18645,"src":"1501:97:59","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[8030],"body":{"id":18607,"nodeType":"Block","src":"1667:30:59","statements":[{"expression":{"hexValue":"4d4f434b","id":18605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:6:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c517c66587983dacbde85dde74f9eb525b7881b1753cee39b9677a9d863af0","typeString":"literal_string \"MOCK\""},"value":"MOCK"},"functionReturnParameters":18604,"id":18606,"nodeType":"Return","src":"1677:13:59"}]},"functionSelector":"95d89b41","id":18608,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1613:6:59","nodeType":"FunctionDefinition","overrides":{"id":18601,"nodeType":"OverrideSpecifier","overrides":[],"src":"1634:8:59"},"parameters":{"id":18600,"nodeType":"ParameterList","parameters":[],"src":"1619:2:59"},"returnParameters":{"id":18604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18608,"src":"1652:13:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18602,"name":"string","nodeType":"ElementaryTypeName","src":"1652:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1651:15:59"},"scope":18645,"src":"1604:93:59","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":18620,"nodeType":"Block","src":"1752:34:59","statements":[{"expression":{"arguments":[{"id":18616,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18610,"src":"1768:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18617,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18612,"src":"1772:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18615,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"1762:5:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1762:17:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18619,"nodeType":"ExpressionStatement","src":"1762:17:59"}]},"functionSelector":"40c10f19","id":18621,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"1712:4:59","nodeType":"FunctionDefinition","parameters":{"id":18613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18610,"mutability":"mutable","name":"to","nameLocation":"1725:2:59","nodeType":"VariableDeclaration","scope":18621,"src":"1717:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18609,"name":"address","nodeType":"ElementaryTypeName","src":"1717:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18612,"mutability":"mutable","name":"amount","nameLocation":"1737:6:59","nodeType":"VariableDeclaration","scope":18621,"src":"1729:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1716:28:59"},"returnParameters":{"id":18614,"nodeType":"ParameterList","parameters":[],"src":"1752:0:59"},"scope":18645,"src":"1703:83:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18643,"nodeType":"Block","src":"1856:110:59","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18629,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1874:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1878:5:59","memberName":"value","nodeType":"MemberAccess","src":"1874:9:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18631,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"1887:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":18632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:3:59","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"1887:12:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1874:25:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921","id":18635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1901:30:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","typeString":"literal_string \"MockERC20: gimme more money!\""},"value":"MockERC20: gimme more money!"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","typeString":"literal_string \"MockERC20: gimme more money!\""}],"id":18628,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1866:7:59","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:66:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18637,"nodeType":"ExpressionStatement","src":"1866:66:59"},{"expression":{"arguments":[{"id":18639,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18623,"src":"1948:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18640,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"1952:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18638,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"1942:5:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1942:17:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18642,"nodeType":"ExpressionStatement","src":"1942:17:59"}]},"functionSelector":"17d304b0","id":18644,"implemented":true,"kind":"function","modifiers":[],"name":"mintPayable","nameLocation":"1801:11:59","nodeType":"FunctionDefinition","parameters":{"id":18626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18623,"mutability":"mutable","name":"to","nameLocation":"1821:2:59","nodeType":"VariableDeclaration","scope":18644,"src":"1813:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18622,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18625,"mutability":"mutable","name":"amount","nameLocation":"1833:6:59","nodeType":"VariableDeclaration","scope":18644,"src":"1825:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18624,"name":"uint256","nodeType":"ElementaryTypeName","src":"1825:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1812:28:59"},"returnParameters":{"id":18627,"nodeType":"ParameterList","parameters":[],"src":"1856:0:59"},"scope":18645,"src":"1792:174:59","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":18690,"src":"1467:501:59","usedErrors":[7942,7945,7948,7951,7954,7957,7960],"usedEvents":[7969,7978]},{"abstract":false,"baseContracts":[{"baseName":{"id":18647,"name":"ERC1155","nameLocations":["2078:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"2078:7:59"},"id":18648,"nodeType":"InheritanceSpecifier","src":"2078:7:59"}],"canonicalName":"MockERC1155","contractDependencies":[],"contractKind":"contract","documentation":{"id":18646,"nodeType":"StructuredDocumentation","src":"1970:84:59","text":"@title MockERC1155\n @notice A mock ERC1155 token (FOR TESTING PURPOSES ONLY)"},"fullyImplemented":true,"id":18689,"linearizedBaseContracts":[18689,1053,136,1234,1176,2831,2843,2306],"name":"MockERC1155","nameLocation":"2063:11:59","nodeType":"ContractDefinition","nodes":[{"body":{"id":18654,"nodeType":"Block","src":"2148:2:59","statements":[]},"id":18655,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f7b69647d","id":18651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2114:32:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_235f953ca31be89610a3901e42cadd905e053724b9df69362aa305b503d4ed6d","typeString":"literal_string \"https://example.com/token/{id}\""},"value":"https://example.com/token/{id}"}],"id":18652,"kind":"baseConstructorSpecifier","modifierName":{"id":18650,"name":"ERC1155","nameLocations":["2106:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"2106:7:59"},"nodeType":"ModifierInvocation","src":"2106:41:59"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":18649,"nodeType":"ParameterList","parameters":[],"src":"2103:2:59"},"returnParameters":{"id":18653,"nodeType":"ParameterList","parameters":[],"src":"2148:0:59"},"scope":18689,"src":"2092:58:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18671,"nodeType":"Block","src":"2217:42:59","statements":[{"expression":{"arguments":[{"id":18665,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18657,"src":"2233:2:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18666,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18659,"src":"2237:2:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18667,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18661,"src":"2241:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":18668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2249:2:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":18664,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"2227:5:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint256,bytes memory)"}},"id":18669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:25:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18670,"nodeType":"ExpressionStatement","src":"2227:25:59"}]},"functionSelector":"156e29f6","id":18672,"implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"2165:4:59","nodeType":"FunctionDefinition","parameters":{"id":18662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18657,"mutability":"mutable","name":"to","nameLocation":"2178:2:59","nodeType":"VariableDeclaration","scope":18672,"src":"2170:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18656,"name":"address","nodeType":"ElementaryTypeName","src":"2170:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18659,"mutability":"mutable","name":"id","nameLocation":"2190:2:59","nodeType":"VariableDeclaration","scope":18672,"src":"2182:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18658,"name":"uint256","nodeType":"ElementaryTypeName","src":"2182:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18661,"mutability":"mutable","name":"amount","nameLocation":"2202:6:59","nodeType":"VariableDeclaration","scope":18672,"src":"2194:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18660,"name":"uint256","nodeType":"ElementaryTypeName","src":"2194:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2169:40:59"},"returnParameters":{"id":18663,"nodeType":"ParameterList","parameters":[],"src":"2217:0:59"},"scope":18689,"src":"2156:103:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":18687,"nodeType":"Block","src":"2328:40:59","statements":[{"expression":{"arguments":[{"id":18682,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"2344:4:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18683,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18676,"src":"2350:2:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18678,"src":"2354:6:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18681,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":957,"src":"2338:5:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":18685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2338:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18686,"nodeType":"ExpressionStatement","src":"2338:23:59"}]},"functionSelector":"f5298aca","id":18688,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"2274:4:59","nodeType":"FunctionDefinition","parameters":{"id":18679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18674,"mutability":"mutable","name":"from","nameLocation":"2287:4:59","nodeType":"VariableDeclaration","scope":18688,"src":"2279:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18673,"name":"address","nodeType":"ElementaryTypeName","src":"2279:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18676,"mutability":"mutable","name":"id","nameLocation":"2301:2:59","nodeType":"VariableDeclaration","scope":18688,"src":"2293:10:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18675,"name":"uint256","nodeType":"ElementaryTypeName","src":"2293:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18678,"mutability":"mutable","name":"amount","nameLocation":"2313:6:59","nodeType":"VariableDeclaration","scope":18688,"src":"2305:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18677,"name":"uint256","nodeType":"ElementaryTypeName","src":"2305:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2278:42:59"},"returnParameters":{"id":18680,"nodeType":"ParameterList","parameters":[],"src":"2328:0:59"},"scope":18689,"src":"2265:103:59","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":18690,"src":"2054:316:59","usedErrors":[101,106,111,118,123,128,135],"usedEvents":[1073,1088,1097,1104]}],"src":"36:2335:59"},"id":59},"contracts/tokens/Points.sol":{"ast":{"absolutePath":"contracts/tokens/Points.sol","exportedSymbols":{"ERC20":[8355],"Initializable":[9211],"OwnableRoles":[7936],"Points":[18815]},"id":18816,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":18691,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"32:24:60"},{"absolutePath":"@solady/tokens/ERC20.sol","file":"@solady/tokens/ERC20.sol","id":18693,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18816,"sourceUnit":8356,"src":"58:47:60","symbolAliases":[{"foreign":{"id":18692,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8355,"src":"66:5:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/utils/Initializable.sol","file":"@solady/utils/Initializable.sol","id":18695,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18816,"sourceUnit":9212,"src":"106:62:60","symbolAliases":[{"foreign":{"id":18694,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9211,"src":"114:13:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@solady/auth/OwnableRoles.sol","file":"@solady/auth/OwnableRoles.sol","id":18697,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18816,"sourceUnit":7937,"src":"169:59:60","symbolAliases":[{"foreign":{"id":18696,"name":"OwnableRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7936,"src":"177:12:60","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18699,"name":"ERC20","nameLocations":["413:5:60"],"nodeType":"IdentifierPath","referencedDeclaration":8355,"src":"413:5:60"},"id":18700,"nodeType":"InheritanceSpecifier","src":"413:5:60"},{"baseName":{"id":18701,"name":"Initializable","nameLocations":["420:13:60"],"nodeType":"IdentifierPath","referencedDeclaration":9211,"src":"420:13:60"},"id":18702,"nodeType":"InheritanceSpecifier","src":"420:13:60"},{"baseName":{"id":18703,"name":"OwnableRoles","nameLocations":["435:12:60"],"nodeType":"IdentifierPath","referencedDeclaration":7936,"src":"435:12:60"},"id":18704,"nodeType":"InheritanceSpecifier","src":"435:12:60"}],"canonicalName":"Points","contractDependencies":[],"contractKind":"contract","documentation":{"id":18698,"nodeType":"StructuredDocumentation","src":"230:164:60","text":"@title Points\n @notice A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred."},"fullyImplemented":true,"id":18815,"linearizedBaseContracts":[18815,7936,6409,9211,8355],"name":"Points","nameLocation":"403:6:60","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":18706,"mutability":"mutable","name":"_name","nameLocation":"469:5:60","nodeType":"VariableDeclaration","scope":18815,"src":"454:20:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":18705,"name":"string","nodeType":"ElementaryTypeName","src":"454:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":18708,"mutability":"mutable","name":"_symbol","nameLocation":"495:7:60","nodeType":"VariableDeclaration","scope":18815,"src":"480:22:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":18707,"name":"string","nodeType":"ElementaryTypeName","src":"480:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":true,"documentation":{"id":18709,"nodeType":"StructuredDocumentation","src":"509:39:60","text":"@notice The role for issuing points"},"functionSelector":"82aefa24","id":18714,"mutability":"constant","name":"ISSUER_ROLE","nameLocation":"577:11:60","nodeType":"VariableDeclaration","scope":18815,"src":"553:44:60","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18710,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"id":18713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":18711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"591:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"31","id":18712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"596:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"591:6:60","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}},"visibility":"public"},{"documentation":{"id":18715,"nodeType":"StructuredDocumentation","src":"604:61:60","text":"@notice Thrown when an attempt is made to transfer points"},"errorSelector":"9cbe2357","id":18717,"name":"NonTransferable","nameLocation":"676:15:60","nodeType":"ErrorDefinition","parameters":{"id":18716,"nodeType":"ParameterList","parameters":[],"src":"691:2:60"},"src":"670:24:60"},{"body":{"id":18747,"nodeType":"Block","src":"1000:140:60","statements":[{"expression":{"arguments":[{"expression":{"id":18730,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1027:3:60","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1031:6:60","memberName":"sender","nodeType":"MemberAccess","src":"1027:10:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18729,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1010:16:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":18732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:28:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18733,"nodeType":"ExpressionStatement","src":"1010:28:60"},{"expression":{"id":18736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18734,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18706,"src":"1049:5:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18735,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18720,"src":"1057:5:60","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1049:13:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":18737,"nodeType":"ExpressionStatement","src":"1049:13:60"},{"expression":{"id":18740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18738,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18708,"src":"1072:7:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18739,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18722,"src":"1082:7:60","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1072:17:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":18741,"nodeType":"ExpressionStatement","src":"1072:17:60"},{"expression":{"arguments":[{"id":18743,"name":"minter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18724,"src":"1112:7:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18744,"name":"ISSUER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18714,"src":"1121:11:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18742,"name":"_grantRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6468,"src":"1100:11:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:33:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18746,"nodeType":"ExpressionStatement","src":"1100:33:60"}]},"documentation":{"id":18718,"nodeType":"StructuredDocumentation","src":"700:193:60","text":"@notice Initialize the Points contract\n @param name_ The name of the token\n @param symbol_ The symbol of the token\n @param minter_ The initial holder of the minter role"},"functionSelector":"077f224a","id":18748,"implemented":true,"kind":"function","modifiers":[{"id":18727,"kind":"modifierInvocation","modifierName":{"id":18726,"name":"initializer","nameLocations":["988:11:60"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"988:11:60"},"nodeType":"ModifierInvocation","src":"988:11:60"}],"name":"initialize","nameLocation":"907:10:60","nodeType":"FunctionDefinition","parameters":{"id":18725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18720,"mutability":"mutable","name":"name_","nameLocation":"932:5:60","nodeType":"VariableDeclaration","scope":18748,"src":"918:19:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18719,"name":"string","nodeType":"ElementaryTypeName","src":"918:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18722,"mutability":"mutable","name":"symbol_","nameLocation":"953:7:60","nodeType":"VariableDeclaration","scope":18748,"src":"939:21:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18721,"name":"string","nodeType":"ElementaryTypeName","src":"939:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18724,"mutability":"mutable","name":"minter_","nameLocation":"970:7:60","nodeType":"VariableDeclaration","scope":18748,"src":"962:15:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18723,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"917:61:60"},"returnParameters":{"id":18728,"nodeType":"ParameterList","parameters":[],"src":"1000:0:60"},"scope":18815,"src":"898:242:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18764,"nodeType":"Block","src":"1396:34:60","statements":[{"expression":{"arguments":[{"id":18760,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18751,"src":"1412:2:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18761,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18753,"src":"1416:6:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18759,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8256,"src":"1406:5:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":18762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1406:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18763,"nodeType":"ExpressionStatement","src":"1406:17:60"}]},"documentation":{"id":18749,"nodeType":"StructuredDocumentation","src":"1146:163:60","text":"@notice Issue `amount` points and assign them to `to`\n @param to The address to assign the points to\n @param amount The amount of points to issue"},"functionSelector":"867904b4","id":18765,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":18756,"name":"ISSUER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18714,"src":"1383:11:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18757,"kind":"modifierInvocation","modifierName":{"id":18755,"name":"onlyOwnerOrRoles","nameLocations":["1366:16:60"],"nodeType":"IdentifierPath","referencedDeclaration":6644,"src":"1366:16:60"},"nodeType":"ModifierInvocation","src":"1366:29:60"}],"name":"issue","nameLocation":"1323:5:60","nodeType":"FunctionDefinition","parameters":{"id":18754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18751,"mutability":"mutable","name":"to","nameLocation":"1337:2:60","nodeType":"VariableDeclaration","scope":18765,"src":"1329:10:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18750,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18753,"mutability":"mutable","name":"amount","nameLocation":"1349:6:60","nodeType":"VariableDeclaration","scope":18765,"src":"1341:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18752,"name":"uint256","nodeType":"ElementaryTypeName","src":"1341:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1328:28:60"},"returnParameters":{"id":18758,"nodeType":"ParameterList","parameters":[],"src":"1396:0:60"},"scope":18815,"src":"1314:116:60","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[8024],"body":{"id":18774,"nodeType":"Block","src":"1569:29:60","statements":[{"expression":{"id":18772,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18706,"src":"1586:5:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":18771,"id":18773,"nodeType":"Return","src":"1579:12:60"}]},"documentation":{"id":18766,"nodeType":"StructuredDocumentation","src":"1436:59:60","text":"@inheritdoc ERC20\n @return The name of the token"},"functionSelector":"06fdde03","id":18775,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"1509:4:60","nodeType":"FunctionDefinition","overrides":{"id":18768,"nodeType":"OverrideSpecifier","overrides":[],"src":"1536:8:60"},"parameters":{"id":18767,"nodeType":"ParameterList","parameters":[],"src":"1513:2:60"},"returnParameters":{"id":18771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18775,"src":"1554:13:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18769,"name":"string","nodeType":"ElementaryTypeName","src":"1554:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1553:15:60"},"scope":18815,"src":"1500:98:60","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8030],"body":{"id":18784,"nodeType":"Block","src":"1741:31:60","statements":[{"expression":{"id":18782,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18708,"src":"1758:7:60","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":18781,"id":18783,"nodeType":"Return","src":"1751:14:60"}]},"documentation":{"id":18776,"nodeType":"StructuredDocumentation","src":"1604:61:60","text":"@inheritdoc ERC20\n @return The symbol of the token"},"functionSelector":"95d89b41","id":18785,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1679:6:60","nodeType":"FunctionDefinition","overrides":{"id":18778,"nodeType":"OverrideSpecifier","overrides":[],"src":"1708:8:60"},"parameters":{"id":18777,"nodeType":"ParameterList","parameters":[],"src":"1685:2:60"},"returnParameters":{"id":18781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18785,"src":"1726:13:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18779,"name":"string","nodeType":"ElementaryTypeName","src":"1726:6:60","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1725:15:60"},"scope":18815,"src":"1670:102:60","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8343],"body":{"id":18813,"nodeType":"Block","src":"2077:85:60","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18796,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18788,"src":"2091:4:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2107:1:60","typeDescriptions":{"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":18798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2099:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18797,"name":"address","nodeType":"ElementaryTypeName","src":"2099:7:60","typeDescriptions":{}}},"id":18800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2099:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2091:18:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18802,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18790,"src":"2113:2:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:60","typeDescriptions":{"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":18804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2119:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18803,"name":"address","nodeType":"ElementaryTypeName","src":"2119:7:60","typeDescriptions":{}}},"id":18806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2119:10:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2113:16:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2091:38:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18812,"nodeType":"IfStatement","src":"2087:68:60","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":18809,"name":"NonTransferable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18717,"src":"2138:15:60","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2138:17:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18811,"nodeType":"RevertStatement","src":"2131:24:60"}}]},"documentation":{"id":18786,"nodeType":"StructuredDocumentation","src":"1778:203:60","text":"@inheritdoc ERC20\n @notice A hook that is called before any transfer of points\n @dev Reverts if the transfer is not a mint or burn (i.e. if neither `from` nor `to` are the zero address)"},"id":18814,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"1995:20:60","nodeType":"FunctionDefinition","overrides":{"id":18794,"nodeType":"OverrideSpecifier","overrides":[],"src":"2068:8:60"},"parameters":{"id":18793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18788,"mutability":"mutable","name":"from","nameLocation":"2024:4:60","nodeType":"VariableDeclaration","scope":18814,"src":"2016:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18787,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18790,"mutability":"mutable","name":"to","nameLocation":"2038:2:60","nodeType":"VariableDeclaration","scope":18814,"src":"2030:10:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18789,"name":"address","nodeType":"ElementaryTypeName","src":"2030:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18814,"src":"2042:7:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18791,"name":"uint256","nodeType":"ElementaryTypeName","src":"2042:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2015:35:60"},"returnParameters":{"id":18795,"nodeType":"ParameterList","parameters":[],"src":"2077:0:60"},"scope":18815,"src":"1986:176:60","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":18816,"src":"394:1770:60","usedErrors":[6221,6224,6227,6230,7942,7945,7948,7951,7954,7957,7960,9103,9106,18717],"usedEvents":[6237,6242,6247,6423,7969,7978,9111]}],"src":"32:2133:60"},"id":60},"contracts/validators/ASignerValidator.sol":{"ast":{"absolutePath":"contracts/validators/ASignerValidator.sol","exportedSymbols":{"ASignerValidator":[18991],"BoostError":[18343],"Cloneable":[18509],"SignatureCheckerLib":[11514],"Validator":[19130]},"id":18992,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18817,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:61"},{"absolutePath":"@solady/utils/SignatureCheckerLib.sol","file":"@solady/utils/SignatureCheckerLib.sol","id":18819,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18992,"sourceUnit":11515,"src":"62:74:61","symbolAliases":[{"foreign":{"id":18818,"name":"SignatureCheckerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"70:19:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":18821,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18992,"sourceUnit":18510,"src":"138:57:61","symbolAliases":[{"foreign":{"id":18820,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"146:9:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/BoostError.sol","file":"contracts/shared/BoostError.sol","id":18823,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18992,"sourceUnit":18344,"src":"196:59:61","symbolAliases":[{"foreign":{"id":18822,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"204:10:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/validators/Validator.sol","file":"contracts/validators/Validator.sol","id":18825,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18992,"sourceUnit":19131,"src":"257:61:61","symbolAliases":[{"foreign":{"id":18824,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"265:9:61","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":18827,"name":"Validator","nameLocations":["538:9:61"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"538:9:61"},"id":18828,"nodeType":"InheritanceSpecifier","src":"538:9:61"}],"canonicalName":"ASignerValidator","contractDependencies":[],"contractKind":"contract","documentation":{"id":18826,"nodeType":"StructuredDocumentation","src":"320:180:61","text":"@title Signer Validator\n @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers"},"fullyImplemented":true,"id":18991,"linearizedBaseContracts":[18991,19130,18509,2831,2843,9211,6409],"name":"ASignerValidator","nameLocation":"518:16:61","nodeType":"ContractDefinition","nodes":[{"global":false,"id":18831,"libraryName":{"id":18829,"name":"SignatureCheckerLib","nameLocations":["560:19:61"],"nodeType":"IdentifierPath","referencedDeclaration":11514,"src":"560:19:61"},"nodeType":"UsingForDirective","src":"554:38:61","typeName":{"id":18830,"name":"address","nodeType":"ElementaryTypeName","src":"584:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"documentation":{"id":18832,"nodeType":"StructuredDocumentation","src":"598:38:61","text":"@dev The set of authorized signers"},"functionSelector":"736c0d5b","id":18836,"mutability":"mutable","name":"signers","nameLocation":"673:7:61","nodeType":"VariableDeclaration","scope":18991,"src":"641:39:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":18835,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18833,"name":"address","nodeType":"ElementaryTypeName","src":"649:7:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"641:24:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18834,"name":"bool","nodeType":"ElementaryTypeName","src":"660:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"documentation":{"id":18837,"nodeType":"StructuredDocumentation","src":"687:55:61","text":"@dev The set of used hashes (for replay protection)"},"id":18841,"mutability":"mutable","name":"_used","nameLocation":"781:5:61","nodeType":"VariableDeclaration","scope":18991,"src":"747:39:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":18840,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":18838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"755:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"747:24:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":18839,"name":"bool","nodeType":"ElementaryTypeName","src":"766:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"baseFunctions":[19092],"body":{"id":18905,"nodeType":"Block","src":"1311:511:61","statements":[{"assignments":[18851,18853,18855],"declarations":[{"constant":false,"id":18851,"mutability":"mutable","name":"signer_","nameLocation":"1330:7:61","nodeType":"VariableDeclaration","scope":18905,"src":"1322:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18850,"name":"address","nodeType":"ElementaryTypeName","src":"1322:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18853,"mutability":"mutable","name":"hash_","nameLocation":"1347:5:61","nodeType":"VariableDeclaration","scope":18905,"src":"1339:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1339:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18855,"mutability":"mutable","name":"signature_","nameLocation":"1367:10:61","nodeType":"VariableDeclaration","scope":18905,"src":"1354:23:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":18854,"name":"bytes","nodeType":"ElementaryTypeName","src":"1354:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":18867,"initialValue":{"arguments":[{"id":18858,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18844,"src":"1392:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":18860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1400:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18859,"name":"address","nodeType":"ElementaryTypeName","src":"1400:7:61","typeDescriptions":{}}},{"id":18862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1409:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":18861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1409:7:61","typeDescriptions":{}}},{"id":18864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1418:5:61","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":18863,"name":"bytes","nodeType":"ElementaryTypeName","src":"1418:5:61","typeDescriptions":{}}}],"id":18865,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1399:25:61","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes32),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(bytes32),type(bytes storage pointer))"}],"expression":{"id":18856,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1381:3:61","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1385:6:61","memberName":"decode","nodeType":"MemberAccess","src":"1381:10:61","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":18866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1381:44:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_bytes32_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,bytes32,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1321:104:61"},{"condition":{"id":18871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1440:17:61","subExpression":{"baseExpression":{"id":18868,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18836,"src":"1441:7:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18870,"indexExpression":{"id":18869,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18851,"src":"1449:7:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1441:16:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18877,"nodeType":"IfStatement","src":"1436:55:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18872,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1466:10:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":18874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1477:12:61","memberName":"Unauthorized","nodeType":"MemberAccess","referencedDeclaration":18342,"src":"1466:23:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1466:25:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18876,"nodeType":"RevertStatement","src":"1459:32:61"}},{"condition":{"baseExpression":{"id":18878,"name":"_used","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18841,"src":"1505:5:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18880,"indexExpression":{"id":18879,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18853,"src":"1511:5:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1505:12:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18889,"nodeType":"IfStatement","src":"1501:72:61","trueBody":{"errorCall":{"arguments":[{"id":18884,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18851,"src":"1546:7:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18885,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18853,"src":"1555:5:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18886,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18855,"src":"1562:10:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18881,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"1526:10:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":18883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1537:8:61","memberName":"Replayed","nodeType":"MemberAccess","referencedDeclaration":18330,"src":"1526:19:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_error_$","typeString":"function (address,bytes32,bytes memory) pure returns (error)"}},"id":18887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1526:47:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18888,"nodeType":"RevertStatement","src":"1519:54:61"}},{"expression":{"id":18894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18890,"name":"_used","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18841,"src":"1636:5:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":18892,"indexExpression":{"id":18891,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18853,"src":"1642:5:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1636:12:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":18893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1651:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1636:19:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18895,"nodeType":"ExpressionStatement","src":"1636:19:61"},{"expression":{"arguments":[{"arguments":[{"id":18900,"name":"hash_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18853,"src":"1796:5:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":18898,"name":"SignatureCheckerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11514,"src":"1753:19:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignatureCheckerLib_$11514_$","typeString":"type(library SignatureCheckerLib)"}},"id":18899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1773:22:61","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":11495,"src":"1753:42:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":18901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:49:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18902,"name":"signature_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18855,"src":"1804:10:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":18896,"name":"signer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18851,"src":"1725:7:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1733:19:61","memberName":"isValidSignatureNow","nodeType":"MemberAccess","referencedDeclaration":11375,"src":"1725:27:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes32,bytes memory) view returns (bool)"}},"id":18903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:90:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18849,"id":18904,"nodeType":"Return","src":"1718:97:61"}]},"documentation":{"id":18842,"nodeType":"StructuredDocumentation","src":"793:440:61","text":"@notice Validate that the action has been completed successfully\n @param data_ The data payload for the validation check\n @return True if the action has been validated based on the data payload\n @dev The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)\n @dev The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer"},"functionSelector":"c16e50ef","id":18906,"implemented":true,"kind":"function","modifiers":[],"name":"validate","nameLocation":"1247:8:61","nodeType":"FunctionDefinition","overrides":{"id":18846,"nodeType":"OverrideSpecifier","overrides":[],"src":"1287:8:61"},"parameters":{"id":18845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18844,"mutability":"mutable","name":"data_","nameLocation":"1271:5:61","nodeType":"VariableDeclaration","scope":18906,"src":"1256:20:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18843,"name":"bytes","nodeType":"ElementaryTypeName","src":"1256:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1255:22:61"},"returnParameters":{"id":18849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18906,"src":"1305:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18847,"name":"bool","nodeType":"ElementaryTypeName","src":"1305:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1304:6:61"},"scope":18991,"src":"1238:584:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":18952,"nodeType":"Block","src":"2100:212:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18918,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18910,"src":"2114:8:61","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2123:6:61","memberName":"length","nodeType":"MemberAccess","src":"2114:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18920,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18913,"src":"2133:11:61","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":18921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2145:6:61","memberName":"length","nodeType":"MemberAccess","src":"2133:18:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2114:37:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18928,"nodeType":"IfStatement","src":"2110:77:61","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":18923,"name":"BoostError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18343,"src":"2160:10:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BoostError_$18343_$","typeString":"type(library BoostError)"}},"id":18925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2171:14:61","memberName":"LengthMismatch","nodeType":"MemberAccess","referencedDeclaration":18318,"src":"2160:25:61","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":18926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2160:27:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":18927,"nodeType":"RevertStatement","src":"2153:34:61"}},{"body":{"id":18950,"nodeType":"Block","src":"2244:62:61","statements":[{"expression":{"id":18948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":18940,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18836,"src":"2258:7:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":18944,"indexExpression":{"baseExpression":{"id":18941,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18910,"src":"2266:8:61","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18943,"indexExpression":{"id":18942,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18930,"src":"2275:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2266:11:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2258:20:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":18945,"name":"authorized_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18913,"src":"2281:11:61","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[] calldata"}},"id":18947,"indexExpression":{"id":18946,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18930,"src":"2293:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2281:14:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2258:37:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18949,"nodeType":"ExpressionStatement","src":"2258:37:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18933,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18930,"src":"2218:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":18934,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18910,"src":"2222:8:61","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":18935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2231:6:61","memberName":"length","nodeType":"MemberAccess","src":"2222:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2218:19:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18951,"initializationExpression":{"assignments":[18930],"declarations":[{"constant":false,"id":18930,"mutability":"mutable","name":"i","nameLocation":"2211:1:61","nodeType":"VariableDeclaration","scope":18951,"src":"2203:9:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18929,"name":"uint256","nodeType":"ElementaryTypeName","src":"2203:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":18932,"initialValue":{"hexValue":"30","id":18931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2215:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2203:13:61"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2239:3:61","subExpression":{"id":18937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18930,"src":"2239:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18939,"nodeType":"ExpressionStatement","src":"2239:3:61"},"nodeType":"ForStatement","src":"2198:108:61"}]},"documentation":{"id":18907,"nodeType":"StructuredDocumentation","src":"1828:167:61","text":"@notice Set the authorized status of a signer\n @param signers_ The list of signers to update\n @param authorized_ The authorized status of each signer"},"functionSelector":"4359d28a","id":18953,"implemented":true,"kind":"function","modifiers":[{"id":18916,"kind":"modifierInvocation","modifierName":{"id":18915,"name":"onlyOwner","nameLocations":["2090:9:61"],"nodeType":"IdentifierPath","referencedDeclaration":6408,"src":"2090:9:61"},"nodeType":"ModifierInvocation","src":"2090:9:61"}],"name":"setAuthorized","nameLocation":"2009:13:61","nodeType":"FunctionDefinition","parameters":{"id":18914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18910,"mutability":"mutable","name":"signers_","nameLocation":"2042:8:61","nodeType":"VariableDeclaration","scope":18953,"src":"2023:27:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":18908,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18909,"nodeType":"ArrayTypeName","src":"2023:9:61","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":18913,"mutability":"mutable","name":"authorized_","nameLocation":"2068:11:61","nodeType":"VariableDeclaration","scope":18953,"src":"2052:27:61","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":18911,"name":"bool","nodeType":"ElementaryTypeName","src":"2052:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18912,"nodeType":"ArrayTypeName","src":"2052:6:61","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2022:58:61"},"returnParameters":{"id":18917,"nodeType":"ParameterList","parameters":[],"src":"2100:0:61"},"scope":18991,"src":"2000:312:61","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[19129],"body":{"id":18966,"nodeType":"Block","src":"2438:58:61","statements":[{"expression":{"expression":{"arguments":[{"id":18962,"name":"ASignerValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18991,"src":"2460:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASignerValidator_$18991_$","typeString":"type(contract ASignerValidator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASignerValidator_$18991_$","typeString":"type(contract ASignerValidator)"}],"id":18961,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2455:4:61","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2455:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASignerValidator_$18991","typeString":"type(contract ASignerValidator)"}},"id":18964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2478:11:61","memberName":"interfaceId","nodeType":"MemberAccess","src":"2455:34:61","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":18960,"id":18965,"nodeType":"Return","src":"2448:41:61"}]},"documentation":{"id":18954,"nodeType":"StructuredDocumentation","src":"2318:25:61","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":18967,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"2357:21:61","nodeType":"FunctionDefinition","overrides":{"id":18957,"nodeType":"OverrideSpecifier","overrides":[{"id":18956,"name":"Validator","nameLocations":["2410:9:61"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"2410:9:61"}],"src":"2401:19:61"},"parameters":{"id":18955,"nodeType":"ParameterList","parameters":[],"src":"2378:2:61"},"returnParameters":{"id":18960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18967,"src":"2430:6:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18958,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2430:6:61","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2429:8:61"},"scope":18991,"src":"2348:148:61","stateMutability":"pure","virtual":true,"visibility":"public"},{"baseFunctions":[19115],"body":{"id":18989,"nodeType":"Block","src":"2634:113:61","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":18982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18977,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18970,"src":"2651:11:61","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":18979,"name":"ASignerValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18991,"src":"2671:16:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ASignerValidator_$18991_$","typeString":"type(contract ASignerValidator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ASignerValidator_$18991_$","typeString":"type(contract ASignerValidator)"}],"id":18978,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2666:4:61","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":18980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2666:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ASignerValidator_$18991","typeString":"type(contract ASignerValidator)"}},"id":18981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2689:11:61","memberName":"interfaceId","nodeType":"MemberAccess","src":"2666:34:61","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2651:49:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":18985,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18970,"src":"2728:11:61","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":18983,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2704:5:61","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ASignerValidator_$18991_$","typeString":"type(contract super ASignerValidator)"}},"id":18984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2710:17:61","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":19115,"src":"2704:23:61","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":18986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2704:36:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2651:89:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18976,"id":18988,"nodeType":"Return","src":"2644:96:61"}]},"documentation":{"id":18968,"nodeType":"StructuredDocumentation","src":"2502:25:61","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":18990,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2541:17:61","nodeType":"FunctionDefinition","overrides":{"id":18973,"nodeType":"OverrideSpecifier","overrides":[{"id":18972,"name":"Validator","nameLocations":["2608:9:61"],"nodeType":"IdentifierPath","referencedDeclaration":19130,"src":"2608:9:61"}],"src":"2599:19:61"},"parameters":{"id":18971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18970,"mutability":"mutable","name":"interfaceId","nameLocation":"2566:11:61","nodeType":"VariableDeclaration","scope":18990,"src":"2559:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18969,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2559:6:61","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2558:20:61"},"returnParameters":{"id":18976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18990,"src":"2628:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18974,"name":"bool","nodeType":"ElementaryTypeName","src":"2628:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2627:6:61"},"scope":18991,"src":"2532:215:61","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":18992,"src":"500:2249:61","usedErrors":[6221,6224,6227,6230,9103,9106,18318,18330,18342,18443,18446,18449],"usedEvents":[6237,6242,6247,9111]}],"src":"36:2714:61"},"id":61},"contracts/validators/SignerValidator.sol":{"ast":{"absolutePath":"contracts/validators/SignerValidator.sol","exportedSymbols":{"ASignerValidator":[18991],"SignerValidator":[19058]},"id":19059,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":18993,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:62"},{"absolutePath":"contracts/validators/ASignerValidator.sol","file":"contracts/validators/ASignerValidator.sol","id":18995,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19059,"sourceUnit":18992,"src":"62:75:62","symbolAliases":[{"foreign":{"id":18994,"name":"ASignerValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18991,"src":"70:16:62","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18997,"name":"ASignerValidator","nameLocations":["347:16:62"],"nodeType":"IdentifierPath","referencedDeclaration":18991,"src":"347:16:62"},"id":18998,"nodeType":"InheritanceSpecifier","src":"347:16:62"}],"canonicalName":"SignerValidator","contractDependencies":[],"contractKind":"contract","documentation":{"id":18996,"nodeType":"StructuredDocumentation","src":"139:180:62","text":"@title Signer Validator\n @notice A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers"},"fullyImplemented":true,"id":19058,"linearizedBaseContracts":[19058,18991,19130,18509,2831,2843,9211,6409],"name":"SignerValidator","nameLocation":"328:15:62","nodeType":"ContractDefinition","nodes":[{"body":{"id":19005,"nodeType":"Block","src":"625:39:62","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":19002,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9184,"src":"635:20:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":19003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"635:22:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19004,"nodeType":"ExpressionStatement","src":"635:22:62"}]},"documentation":{"id":18999,"nodeType":"StructuredDocumentation","src":"370:236:62","text":"@notice Construct a new SignerValidator\n @dev Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function."},"id":19006,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":19000,"nodeType":"ParameterList","parameters":[],"src":"622:2:62"},"returnParameters":{"id":19001,"nodeType":"ParameterList","parameters":[],"src":"625:0:62"},"scope":19058,"src":"611:53:62","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[18474],"body":{"id":19056,"nodeType":"Block","src":"972:223:62","statements":[{"assignments":[19019],"declarations":[{"constant":false,"id":19019,"mutability":"mutable","name":"signers_","nameLocation":"1000:8:62","nodeType":"VariableDeclaration","scope":19056,"src":"983:25:62","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":19017,"name":"address","nodeType":"ElementaryTypeName","src":"983:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":19018,"nodeType":"ArrayTypeName","src":"983:9:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":19028,"initialValue":{"arguments":[{"id":19022,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19009,"src":"1023:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"baseExpression":{"id":19024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1031:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19023,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:62","typeDescriptions":{}}},"id":19025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"1031:9:62","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"id":19026,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1030:11:62","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"type(address[] memory)"}],"expression":{"id":19020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1012:3:62","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1016:6:62","memberName":"decode","nodeType":"MemberAccess","src":"1012:10:62","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":19027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:30:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"982:60:62"},{"expression":{"arguments":[{"baseExpression":{"id":19030,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19019,"src":"1069:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":19032,"indexExpression":{"hexValue":"30","id":19031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1078:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1069:11:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19029,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"1052:16:62","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":19033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1052:29:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19034,"nodeType":"ExpressionStatement","src":"1052:29:62"},{"body":{"id":19054,"nodeType":"Block","src":"1137:52:62","statements":[{"expression":{"id":19052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":19046,"name":"signers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18836,"src":"1151:7:62","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":19050,"indexExpression":{"baseExpression":{"id":19047,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19019,"src":"1159:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":19049,"indexExpression":{"id":19048,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19036,"src":"1168:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1159:11:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1151:20:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":19051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1174:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1151:27:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19053,"nodeType":"ExpressionStatement","src":"1151:27:62"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19036,"src":"1111:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":19040,"name":"signers_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19019,"src":"1115:8:62","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":19041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1124:6:62","memberName":"length","nodeType":"MemberAccess","src":"1115:15:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1111:19:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19055,"initializationExpression":{"assignments":[19036],"declarations":[{"constant":false,"id":19036,"mutability":"mutable","name":"i","nameLocation":"1104:1:62","nodeType":"VariableDeclaration","scope":19055,"src":"1096:9:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19035,"name":"uint256","nodeType":"ElementaryTypeName","src":"1096:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":19038,"initialValue":{"hexValue":"30","id":19037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1108:1:62","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1096:13:62"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":19044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1132:3:62","subExpression":{"id":19043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19036,"src":"1132:1:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19045,"nodeType":"ExpressionStatement","src":"1132:3:62"},"nodeType":"ForStatement","src":"1091:98:62"}]},"documentation":{"id":19007,"nodeType":"StructuredDocumentation","src":"670:219:62","text":"@notice Initialize the contract with the list of authorized signers\n @param data_ The compressed list of authorized signers\n @dev The first address in the list will be the initial owner of the contract"},"functionSelector":"439fab91","id":19057,"implemented":true,"kind":"function","modifiers":[{"id":19013,"kind":"modifierInvocation","modifierName":{"id":19012,"name":"initializer","nameLocations":["960:11:62"],"nodeType":"IdentifierPath","referencedDeclaration":9140,"src":"960:11:62"},"nodeType":"ModifierInvocation","src":"960:11:62"}],"name":"initialize","nameLocation":"903:10:62","nodeType":"FunctionDefinition","overrides":{"id":19011,"nodeType":"OverrideSpecifier","overrides":[],"src":"951:8:62"},"parameters":{"id":19010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19009,"mutability":"mutable","name":"data_","nameLocation":"929:5:62","nodeType":"VariableDeclaration","scope":19057,"src":"914:20:62","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19008,"name":"bytes","nodeType":"ElementaryTypeName","src":"914:5:62","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"913:22:62"},"returnParameters":{"id":19014,"nodeType":"ParameterList","parameters":[],"src":"972:0:62"},"scope":19058,"src":"894:301:62","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":19059,"src":"319:878:62","usedErrors":[6221,6224,6227,6230,9103,9106,18318,18330,18342,18443,18446,18449],"usedEvents":[6237,6242,6247,9111]}],"src":"36:1162:62"},"id":62},"contracts/validators/Validator.sol":{"ast":{"absolutePath":"contracts/validators/Validator.sol","exportedSymbols":{"Cloneable":[18509],"Ownable":[6409],"Validator":[19130]},"id":19131,"license":"GPL-3.0","nodeType":"SourceUnit","nodes":[{"id":19060,"literals":["solidity","^","0.8",".24"],"nodeType":"PragmaDirective","src":"36:24:63"},{"absolutePath":"@solady/auth/Ownable.sol","file":"@solady/auth/Ownable.sol","id":19062,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19131,"sourceUnit":6410,"src":"62:49:63","symbolAliases":[{"foreign":{"id":19061,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6409,"src":"70:7:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"contracts/shared/Cloneable.sol","file":"contracts/shared/Cloneable.sol","id":19064,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19131,"sourceUnit":18510,"src":"113:57:63","symbolAliases":[{"foreign":{"id":19063,"name":"Cloneable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18509,"src":"121:9:63","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":19066,"name":"Ownable","nameLocations":["461:7:63"],"nodeType":"IdentifierPath","referencedDeclaration":6409,"src":"461:7:63"},"id":19067,"nodeType":"InheritanceSpecifier","src":"461:7:63"},{"baseName":{"id":19068,"name":"Cloneable","nameLocations":["470:9:63"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"470:9:63"},"id":19069,"nodeType":"InheritanceSpecifier","src":"470:9:63"}],"canonicalName":"Validator","contractDependencies":[],"contractKind":"contract","documentation":{"id":19065,"nodeType":"StructuredDocumentation","src":"172:258:63","text":"@title Boost Validator\n @notice Abstract contract for a generic Validator within the Boost protocol\n @dev Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty."},"fullyImplemented":false,"id":19130,"linearizedBaseContracts":[19130,18509,2831,2843,9211,6409],"name":"Validator","nameLocation":"448:9:63","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Validator.ValidatePayload","id":19074,"members":[{"constant":false,"id":19071,"mutability":"mutable","name":"target","nameLocation":"527:6:63","nodeType":"VariableDeclaration","scope":19074,"src":"519:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19070,"name":"address","nodeType":"ElementaryTypeName","src":"519:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19073,"mutability":"mutable","name":"data","nameLocation":"549:4:63","nodeType":"VariableDeclaration","scope":19074,"src":"543:10:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":19072,"name":"bytes","nodeType":"ElementaryTypeName","src":"543:5:63","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"ValidatePayload","nameLocation":"493:15:63","nodeType":"StructDefinition","scope":19130,"src":"486:74:63","visibility":"public"},{"body":{"id":19083,"nodeType":"Block","src":"693:45:63","statements":[{"expression":{"arguments":[{"expression":{"id":19079,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"720:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":19080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"724:6:63","memberName":"sender","nodeType":"MemberAccess","src":"720:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19078,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6288,"src":"703:16:63","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":19081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:28:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19082,"nodeType":"ExpressionStatement","src":"703:28:63"}]},"documentation":{"id":19075,"nodeType":"StructuredDocumentation","src":"566:108:63","text":"@notice Initialize the contract and set the owner\n @dev The owner is set to the contract deployer"},"id":19084,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":19076,"nodeType":"ParameterList","parameters":[],"src":"690:2:63"},"returnParameters":{"id":19077,"nodeType":"ParameterList","parameters":[],"src":"693:0:63"},"scope":19130,"src":"679:59:63","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"documentation":{"id":19085,"nodeType":"StructuredDocumentation","src":"744:655:63","text":"@notice Validate that a given user has completed an acction successfully\n @param data_ The compressed {ValidatePayload} to be validated\n @return True if the action has been validated based on the data payload\n @dev The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specific\n @dev For example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}"},"functionSelector":"c16e50ef","id":19092,"implemented":false,"kind":"function","modifiers":[],"name":"validate","nameLocation":"1413:8:63","nodeType":"FunctionDefinition","parameters":{"id":19088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19087,"mutability":"mutable","name":"data_","nameLocation":"1437:5:63","nodeType":"VariableDeclaration","scope":19092,"src":"1422:20:63","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19086,"name":"bytes","nodeType":"ElementaryTypeName","src":"1422:5:63","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1421:22:63"},"returnParameters":{"id":19091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19092,"src":"1470:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19089,"name":"bool","nodeType":"ElementaryTypeName","src":"1470:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1469:6:63"},"scope":19130,"src":"1404:72:63","stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"baseFunctions":[18508],"body":{"id":19114,"nodeType":"Block","src":"1614:106:63","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":19107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19102,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19095,"src":"1631:11:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":19104,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"1651:9:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}],"id":19103,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1646:4:63","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":19105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1646:15:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$19130","typeString":"type(contract Validator)"}},"id":19106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1662:11:63","memberName":"interfaceId","nodeType":"MemberAccess","src":"1646:27:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1631:42:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":19110,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19095,"src":"1701:11:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":19108,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1677:5:63","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Validator_$19130_$","typeString":"type(contract super Validator)"}},"id":19109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1683:17:63","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":18508,"src":"1677:23:63","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":19111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:36:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1631:82:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19101,"id":19113,"nodeType":"Return","src":"1624:89:63"}]},"documentation":{"id":19093,"nodeType":"StructuredDocumentation","src":"1482:25:63","text":"@inheritdoc Cloneable"},"functionSelector":"01ffc9a7","id":19115,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1521:17:63","nodeType":"FunctionDefinition","overrides":{"id":19098,"nodeType":"OverrideSpecifier","overrides":[{"id":19097,"name":"Cloneable","nameLocations":["1588:9:63"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1588:9:63"}],"src":"1579:19:63"},"parameters":{"id":19096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19095,"mutability":"mutable","name":"interfaceId","nameLocation":"1546:11:63","nodeType":"VariableDeclaration","scope":19115,"src":"1539:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":19094,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1539:6:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1538:20:63"},"returnParameters":{"id":19101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19115,"src":"1608:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19099,"name":"bool","nodeType":"ElementaryTypeName","src":"1608:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1607:6:63"},"scope":19130,"src":"1512:208:63","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[18486],"body":{"id":19128,"nodeType":"Block","src":"1846:51:63","statements":[{"expression":{"expression":{"arguments":[{"id":19124,"name":"Validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19130,"src":"1868:9:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Validator_$19130_$","typeString":"type(contract Validator)"}],"id":19123,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1863:4:63","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":19125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:15:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Validator_$19130","typeString":"type(contract Validator)"}},"id":19126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1879:11:63","memberName":"interfaceId","nodeType":"MemberAccess","src":"1863:27:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":19122,"id":19127,"nodeType":"Return","src":"1856:34:63"}]},"documentation":{"id":19116,"nodeType":"StructuredDocumentation","src":"1726:25:63","text":"@inheritdoc Cloneable"},"functionSelector":"28d6183b","id":19129,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentInterface","nameLocation":"1765:21:63","nodeType":"FunctionDefinition","overrides":{"id":19119,"nodeType":"OverrideSpecifier","overrides":[{"id":19118,"name":"Cloneable","nameLocations":["1818:9:63"],"nodeType":"IdentifierPath","referencedDeclaration":18509,"src":"1818:9:63"}],"src":"1809:19:63"},"parameters":{"id":19117,"nodeType":"ParameterList","parameters":[],"src":"1786:2:63"},"returnParameters":{"id":19122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19129,"src":"1838:6:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":19120,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1838:6:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1837:8:63"},"scope":19130,"src":"1756:141:63","stateMutability":"pure","virtual":true,"visibility":"public"}],"scope":19131,"src":"430:1469:63","usedErrors":[6221,6224,6227,6230,9103,9106,18443,18446,18449],"usedEvents":[6237,6242,6247,9111]}],"src":"36:1864:63"},"id":63}},"contracts":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/ERC1155.sol":{"ERC1155":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","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":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","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":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"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\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"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\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155.sol":{"IERC1155":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","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":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","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"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"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\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"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\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\"}],\"devdoc\":{\"details\":\"Required interface of an ERC-1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[ERC].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the zero address.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol":{"IERC1155Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"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.26+commit.8a97fa7a\"},\"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\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC-1155 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 ERC-1155 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[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol":{"IERC1155MetadataURI":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","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":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","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":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","isApprovedForAll(address,address)":"e985e9c5","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"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\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"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\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[ERC].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the zero address.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol":{"ERC1155Utils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212204baf5290d3c64bbebd25b60fe8446957ed848c340a310360e6f4b65f3b0293bf64736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xAF MSTORE SWAP1 0xD3 0xC6 0x4B 0xBE 0xBD 0x25 0xB6 0xF 0xE8 PREVRANDAO PUSH10 0x57ED848C340A310360E6 DELEGATECALL 0xB6 PUSH0 EXTCODESIZE MUL SWAP4 0xBF PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"322:3178:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212204baf5290d3c64bbebd25b60fe8446957ed848c340a310360e6f4b65f3b0293bf64736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B 0xAF MSTORE SWAP1 0xD3 0xC6 0x4B 0xBE 0xBD 0x25 0xB6 0xF 0xE8 PREVRANDAO PUSH10 0x57ED848C340A310360E6 DELEGATECALL 0xB6 PUSH0 EXTCODESIZE MUL SWAP4 0xBF PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"322:3178:5:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library that provide common ERC-1155 utility functions. See https://eips.ethereum.org/EIPS/eip-1155[ERC-1155].\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":\"ERC1155Utils\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Arrays.sol":{"Arrays":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dfd71bd6f5e21a4f14892aac88d7a219869a450b4187497e3319e575b29dfde064736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF 0xD7 SHL 0xD6 CREATE2 0xE2 BYTE 0x4F EQ DUP10 0x2A 0xAC DUP9 0xD7 LOG2 NOT DUP7 SWAP11 GASLIMIT SIGNEXTEND COINBASE DUP8 BLOBHASH PUSH31 0x3319E575B29DFDE064736F6C634300081A0033000000000000000000000000 ","sourceMap":"412:17845:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dfd71bd6f5e21a4f14892aac88d7a219869a450b4187497e3319e575b29dfde064736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF 0xD7 SHL 0xD6 CREATE2 0xE2 BYTE 0x4F EQ DUP10 0x2A 0xAC DUP9 0xD7 LOG2 NOT DUP7 SWAP11 GASLIMIT SIGNEXTEND COINBASE DUP8 BLOBHASH PUSH31 0x3319E575B29DFDE064736F6C634300081A0033000000000000000000000000 ","sourceMap":"412:17845:6:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Panic.sol":{"Panic":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b543e6ab8c8dfadc2c62e1e4a36294d1c074448169e6207ce1b3c0e7a5f74bfa64736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB5 NUMBER 0xE6 0xAB DUP13 DUP14 STATICCALL 0xDC 0x2C PUSH3 0xE1E4A3 PUSH3 0x94D1C0 PUSH21 0x448169E6207CE1B3C0E7A5F74BFA64736F6C634300 ADDMOD BYTE STOP CALLER ","sourceMap":"561:1342:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b543e6ab8c8dfadc2c62e1e4a36294d1c074448169e6207ce1b3c0e7a5f74bfa64736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB5 NUMBER 0xE6 0xAB DUP13 DUP14 STATICCALL 0xDC 0x2C PUSH3 0xE1E4A3 PUSH3 0x94D1C0 PUSH21 0x448169E6207CE1B3C0E7A5F74BFA64736F6C634300 ADDMOD BYTE STOP CALLER ","sourceMap":"561:1342:8:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/SlotDerivation.sol":{"SlotDerivation":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212207b531b13e273352fbefc419f7da37380dbcd01f5d099c8d775d98f7cbec61d8e64736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x531B13E273352FBEFC419F7DA37380DBCD01F5D099C8D775D98F7CBE 0xC6 SAR DUP15 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"1493:3928:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212207b531b13e273352fbefc419f7da37380dbcd01f5d099c8d775d98f7cbec61d8e64736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x531B13E273352FBEFC419F7DA37380DBCD01F5D099C8D775D98F7CBE 0xC6 SAR DUP15 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"1493:3928:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for computing storage (and transient storage) locations from namespaces and deriving slots corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by the solidity language / compiler. See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.]. Example usage: ```solidity contract Example { // Add the library methods using StorageSlot for bytes32; using SlotDerivation for bytes32; // Declare a namespace string private constant _NAMESPACE = \\\"\\\" // eg. OpenZeppelin.Slot function setValueInNamespace(uint256 key, address newValue) internal { _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue; } function getValueInNamespace(uint256 key) internal view returns (address) { return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value; } } ``` TIP: Consider using this library along with {StorageSlot}. NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking upgrade safety will ignore the slots accessed through this library.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":\"SlotDerivation\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201a237ddacca3bffde8f7d15bed17cf2b834ce3aa0a616d316b66886a4cb1376064736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x23 PUSH30 0xDACCA3BFFDE8F7D15BED17CF2B834CE3AA0A616D316B66886A4CB1376064 PUSH20 0x6F6C634300081A00330000000000000000000000 ","sourceMap":"2022:7294:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201a237ddacca3bffde8f7d15bed17cf2b834ce3aa0a616d316b66886a4cb1376064736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x23 PUSH30 0xDACCA3BFFDE8F7D15BED17CF2B834CE3AA0A616D316B66886A4CB1376064 PUSH20 0x6F6C634300081A00330000000000000000000000 ","sourceMap":"2022:7294:10:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC-1967 implementation slot: ```solidity contract ERC1967 { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` Since version 5.1, this library also support writing and reading value types to and from transient storage. * Example using transient storage: ```solidity contract Lock { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _LOCK_SLOT = 0xf4678858b2b588224636b8522b729e7722d32fc491da849ed75b3fdf3c84f542; modifier locked() { require(!_LOCK_SLOT.asBoolean().tload()); _LOCK_SLOT.asBoolean().tstore(true); _; _LOCK_SLOT.asBoolean().tstore(false); } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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 ERC-165 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); } ```\",\"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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201a7cfd59e6a914ec4b647868e704d6461bf7466a2136a8669124735d0ca2baf964736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE PUSH29 0xFD59E6A914EC4B647868E704D6461BF7466A2136A8669124735D0CA2BA 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"281:27383:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201a7cfd59e6a914ec4b647868e704d6461bf7466a2136a8669124735d0ca2baf964736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE PUSH29 0xFD59E6A914EC4B647868E704D6461BF7466A2136A8669124735D0CA2BA 0xF9 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"281:27383:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SafeCast.sol":{"SafeCast":{"abi":[{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntDowncast","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintToInt","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208719f0d98bb634f2ba56cd53719ea8ac846ce816704397d7b185f7d20ee5ae6164736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 NOT CREATE 0xD9 DUP12 0xB6 CALLVALUE CALLCODE 0xBA JUMP 0xCD MSTORE8 PUSH18 0x9EA8AC846CE816704397D7B185F7D20EE5AE PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ","sourceMap":"769:34200:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208719f0d98bb634f2ba56cd53719ea8ac846ce816704397d7b185f7d20ee5ae6164736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP8 NOT CREATE 0xD9 DUP12 0xB6 CALLVALUE CALLCODE 0xBA JUMP 0xCD MSTORE8 PUSH18 0x9EA8AC846CE816704397D7B185F7D20EE5AE PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ","sourceMap":"769:34200:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool 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.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]}},\"version\":1}"}},"@solady/accounts/Receiver.sol":{"Receiver":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/Vectorized/solady/blob/main/src/accounts/Receiver.sol)\",\"details\":\"Note: - Handles all ERC721 and ERC1155 token safety callbacks. - Collapses function table gas overhead and code size. - Utilizes fallback so unknown calldata will pass on.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Receiver mixin for ETH and safe-transferred ERC721 and ERC1155 tokens.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/accounts/Receiver.sol\":\"Receiver\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]}},\"version\":1}"}},"@solady/auth/Ownable.sol":{"Ownable":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\",\"details\":\"Note: This implementation does NOT auto-initialize the owner to `msg.sender`. You MUST call the `_initializeOwner` in the constructor / initializer. While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility, the nomenclature for the 2-step ownership handover may be unique to this codebase.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_OWNERSHIP_HANDOVER_CANCELED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipHandoverCanceled(address)\\\"))`.\"},\"_OWNERSHIP_HANDOVER_REQUESTED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipHandoverRequested(address)\\\"))`.\"},\"_OWNERSHIP_TRANSFERRED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"OwnershipTransferred(address,address)\\\"))`.\"},\"_OWNER_SLOT\":{\"details\":\"The owner slot is given by: `bytes32(~uint256(uint32(bytes4(keccak256(\\\"_OWNER_SLOT_NOT\\\")))))`. It is intentionally chosen to be a high value to avoid collision with lower slots. The choice of manual storage layout is to enable compatibility with both regular and upgradeable contracts.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/auth/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]}},\"version\":1}"}},"@solady/auth/OwnableRoles.sol":{"OwnableRoles":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)\",\"details\":\"While the ownable portion follows [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility, the nomenclature for the 2-step ownership handover and roles may be unique to this codebase.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_ROLES_UPDATED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"RolesUpdated(address,uint256)\\\"))`.\"},\"_ROLE_SLOT_SEED\":{\"details\":\"The role slot of `user` is given by: ``` mstore(0x00, or(shl(96, user), _ROLE_SLOT_SEED)) let roleSlot := keccak256(0x00, 0x20) ``` This automatically ignores the upper bits of the `user` in case they are not clean, as well as keep the `keccak256` under 32-bytes. Note: This is equivalent to `uint32(bytes4(keccak256(\\\"_OWNER_SLOT_NOT\\\")))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple single owner and multiroles authorization mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/auth/OwnableRoles.sol\":\"OwnableRoles\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]}},\"version\":1}"}},"@solady/tokens/ERC20.sol":{"ERC20":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","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":"result","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":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","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":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"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\":\"result\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"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\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\",\"details\":\"Note: - The ERC20 standard allows minting and transferring to and from the zero address, minting and transferring zero tokens, as well as self-approvals. For performance, this implementation WILL NOT revert for such actions. Please add any checks with overrides if desired. - The `permit` function uses the ecrecover precompile (0x1). If you are overriding: - NEVER violate the ERC20 invariant: the total sum of all balances must be equal to `totalSupply()`. - Check that the overridden function is actually used in the function you want to change the behavior of. Much of the code has been manually inlined for performance.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"stateVariables\":{\"_ALLOWANCE_SLOT_SEED\":{\"details\":\"The allowance slot of (`owner`, `spender`) is given by: ``` mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, owner) let allowanceSlot := keccak256(0x0c, 0x34) ```\"},\"_APPROVAL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Approval(address,address,uint256)\\\"))`.\"},\"_BALANCE_SLOT_SEED\":{\"details\":\"The balance slot of `owner` is given by: ``` mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, owner) let balanceSlot := keccak256(0x0c, 0x20) ```\"},\"_DOMAIN_TYPEHASH\":{\"details\":\"`keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\\\")`.\"},\"_NONCES_SLOT_SEED\":{\"details\":\"The nonce slot of `owner` is given by: ``` mstore(0x0c, _NONCES_SLOT_SEED) mstore(0x00, owner) let nonceSlot := keccak256(0x0c, 0x20) ```\"},\"_NONCES_SLOT_SEED_WITH_SIGNATURE_PREFIX\":{\"details\":\"`(_NONCES_SLOT_SEED << 16) | 0x1901`.\"},\"_PERMIT_TYPEHASH\":{\"details\":\"`keccak256(\\\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\\\")`.\"},\"_TOTAL_SUPPLY_SLOT\":{\"details\":\"The storage slot for the total supply.\"},\"_TRANSFER_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Transfer(address,address,uint256)\\\"))`.\"},\"_VERSION_HASH\":{\"details\":\"`keccak256(\\\"1\\\")`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/tokens/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]}},\"version\":1}"}},"@solady/tokens/ERC721.sol":{"ERC721":{"abi":[{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TokenAlreadyExists","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","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":"isApproved","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":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"result","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":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","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":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccountBalanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"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\":\"isApproved\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"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\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccountBalanceOverflow()\":[{\"details\":\"The recipient's balance has overflowed.\"}],\"BalanceQueryForZeroAddress()\":[{\"details\":\"Cannot query the balance for the zero address.\"}],\"NotOwnerNorApproved()\":[{\"details\":\"Only the token owner or an approved account can manage the token.\"}],\"TokenAlreadyExists()\":[{\"details\":\"The token already exists.\"}],\"TokenDoesNotExist()\":[{\"details\":\"The token does not exist.\"}],\"TransferFromIncorrectOwner()\":[{\"details\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"details\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"details\":\"Cannot mint or transfer to the zero address.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `account` to manage the `id` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when token `id` is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Sets `account` as the approved account to manage token `id`. Requirements: - Token `id` must exist. - The caller must be the owner of the token, or an approved operator for the token owner. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens owned by `owner`. Requirements: - `owner` must not be the zero address.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved to manage token `id`. Requirements: - Token `id` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns whether `operator` is approved to manage the tokens of `owner`.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of token `id`. Requirements: - Token `id` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, id, \\\"\\\")`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. - 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\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See: https://eips.ethereum.org/EIPS/eip-165 This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. Emits a {Transfer} event.\"}},\"stateVariables\":{\"_APPROVAL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Approval(address,address,uint256)\\\"))`.\"},\"_APPROVAL_FOR_ALL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"ApprovalForAll(address,address,bool)\\\"))`.\"},\"_ERC721_MASTER_SLOT_SEED\":{\"details\":\"The ownership data slot of `id` is given by: ``` mstore(0x00, id) mstore(0x1c, _ERC721_MASTER_SLOT_SEED) let ownershipSlot := add(id, add(id, keccak256(0x00, 0x20))) ``` Bits Layout: - [0..159] `addr` - [160..255] `extraData` The approved address slot is given by: `add(1, ownershipSlot)`. See: https://notes.ethereum.org/%40vbuterin/verkle_tree_eip The balance slot of `owner` is given by: ``` mstore(0x1c, _ERC721_MASTER_SLOT_SEED) mstore(0x00, owner) let balanceSlot := keccak256(0x0c, 0x1c) ``` Bits Layout: - [0..31] `balance` - [32..255] `aux` The `operator` approval slot of `owner` is given by: ``` mstore(0x1c, or(_ERC721_MASTER_SLOT_SEED, operator)) mstore(0x00, owner) let operatorApprovalSlot := keccak256(0x0c, 0x30) ```\"},\"_ERC721_MASTER_SLOT_SEED_MASKED\":{\"details\":\"Pre-shifted and pre-masked constant.\"},\"_MAX_ACCOUNT_BALANCE\":{\"details\":\"An account can hold up to 4294967295 tokens.\"},\"_TRANSFER_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Transfer(address,address,uint256)\\\"))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"- Check that the overridden function is actually used in the function you want to change the behavior of. Much of the code has been manually inlined for performance.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/tokens/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]}},\"version\":1}"}},"@solady/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/Initializable.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/proxy/utils/Initializable.sol)\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_INITIALIZABLE_SLOT\":{\"details\":\"The default initializable slot is given by: `bytes32(~uint256(uint32(bytes4(keccak256(\\\"_INITIALIZABLE_SLOT\\\")))))`. Bits Layout: - [0] `initializing` - [1..64] `initializedVersion`\"},\"_INTIALIZED_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Initialized(uint64)\\\"))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Initializable mixin for the upgradeable contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]}},\"version\":1}"}},"@solady/utils/LibClone.sol":{"LibClone":{"abi":[{"inputs":[],"name":"DeploymentFailed","type":"error"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"SaltDoesNotStartWith","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dfb14e3c8bfbb1fe68c3e1f89712e0c081ebc32179a391562cf7f914fb50b62764736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF 0xB1 0x4E EXTCODECOPY DUP12 0xFB 0xB1 INVALID PUSH9 0xC3E1F89712E0C081EB 0xC3 0x21 PUSH26 0xA391562CF7F914FB50B62764736F6C634300081A003300000000 ","sourceMap":"2217:88872:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dfb14e3c8bfbb1fe68c3e1f89712e0c081ebc32179a391562cf7f914fb50b62764736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDF 0xB1 0x4E EXTCODECOPY DUP12 0xFB 0xB1 INVALID PUSH9 0xC3E1F89712E0C081EB 0xC3 0x21 PUSH26 0xA391562CF7F914FB50B62764736F6C634300081A003300000000 ","sourceMap":"2217:88872:21:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DeploymentFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaltDoesNotStartWith\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)Minimal proxy by 0age (https://github.com/0age)Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)\",\"details\":\"Minimal proxy: Although the sw0nt pattern saves 5 gas over the erc-1167 pattern during runtime, it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern, which saves 4 gas over the erc-1167 pattern during runtime, and has the smallest bytecode.Minimal proxy (PUSH0 variant): This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai. It is optimized first for minimal runtime gas, then for minimal bytecode. The PUSH0 clone functions are intentionally postfixed with a jarring \\\"_PUSH0\\\" as many EVM chains may not support the PUSH0 opcode in the early months after Shanghai. Please use with caution.Clones with immutable args (CWIA): The implementation of CWIA here implements a `receive()` method that emits the `ReceiveETH(uint256)` event. This skips the `DELEGATECALL` when there is no calldata, enabling us to accept hard gas-capped `sends` & `transfers` for maximum backwards composability. The minimal proxy implementation does not offer this feature.Minimal ERC1967 proxy: An minimal ERC1967 proxy, intended to be upgraded with UUPS. This is NOT the same as ERC1967Factory's transparent proxy, which includes admin logic. This proxy is automatically verified on Etherscan.ERC1967I proxy: An variant of the minimal ERC1967 proxy, with a special code path that activates if `calldatasize() == 1`. This code path skips the delegatecall and directly returns the `implementation` address. The returned implementation is guaranteed to be valid if the keccak256 of the proxy's code is equal to `ERC1967I_CODE_HASH`.\",\"errors\":{\"DeploymentFailed()\":[{\"details\":\"Unable to deploy the clone.\"}],\"ETHTransferFailed()\":[{\"details\":\"The ETH transfer has failed.\"}],\"SaltDoesNotStartWith()\":[{\"details\":\"The salt must start with either the zero address or `by`.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ERC1967I_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967I proxy.\"},\"ERC1967_BEACON_PROXY_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 beacon proxy.\"},\"ERC1967_CODE_HASH\":{\"details\":\"The keccak256 of the deployed code for the ERC1967 proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Minimal proxy library.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibClone.sol\":\"LibClone\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]}},\"version\":1}"}},"@solady/utils/LibPRNG.sol":{"LibPRNG":{"abi":[{"inputs":[],"name":"InvalidInitialLazyShufflerLength","type":"error"},{"inputs":[],"name":"InvalidNewLazyShufflerLength","type":"error"},{"inputs":[],"name":"LazyShuffleFinished","type":"error"},{"inputs":[],"name":"LazyShufflerAlreadyInitialized","type":"error"},{"inputs":[],"name":"LazyShufflerGetOutOfBounds","type":"error"},{"inputs":[],"name":"LazyShufflerNotInitialized","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208325be1ac3b1554d0e07ffefdda053beee1894b6e0b770288847cd009b18a93864736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0x25 0xBE BYTE 0xC3 0xB1 SSTORE 0x4D 0xE SMOD SELFDESTRUCT 0xEF 0xDD LOG0 MSTORE8 0xBE 0xEE XOR SWAP5 0xB6 0xE0 0xB7 PUSH17 0x288847CD009B18A93864736F6C63430008 BYTE STOP CALLER ","sourceMap":"375:18038:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212208325be1ac3b1554d0e07ffefdda053beee1894b6e0b770288847cd009b18a93864736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 0x25 0xBE BYTE 0xC3 0xB1 SSTORE 0x4D 0xE SMOD SELFDESTRUCT 0xEF 0xDD LOG0 MSTORE8 0xBE 0xEE XOR SWAP5 0xB6 0xE0 0xB7 PUSH17 0x288847CD009B18A93864736F6C63430008 BYTE STOP CALLER ","sourceMap":"375:18038:22:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialLazyShufflerLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNewLazyShufflerLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShuffleFinished\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerGetOutOfBounds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LazyShufflerNotInitialized\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibPRNG.sol)LazyShuffler based on NextShuffler by aschlosberg (divergencearran) (https://github.com/divergencetech/ethier/blob/main/contracts/random/NextShuffler.sol)\",\"errors\":{\"InvalidInitialLazyShufflerLength()\":[{\"details\":\"The initial length must be greater than zero and less than `2**32 - 1`.\"}],\"InvalidNewLazyShufflerLength()\":[{\"details\":\"The new length must not be less than the current length.\"}],\"LazyShuffleFinished()\":[{\"details\":\"The lazy shuffle has finished.\"}],\"LazyShufflerAlreadyInitialized()\":[{\"details\":\"Cannot double initialize the lazy shuffler.\"}],\"LazyShufflerGetOutOfBounds()\":[{\"details\":\"The queried index is out of bounds.\"}],\"LazyShufflerNotInitialized()\":[{\"details\":\"The lazy shuffler has not been initialized.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"WAD\":{\"details\":\"The scalar of ETH and most ERC20s.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for generating pseudorandom numbers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibPRNG.sol\":\"LibPRNG\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibPRNG.sol\":{\"keccak256\":\"0xdcb71f8dc72bb7384776154ca24d34c23e3c9bcf124bc75f0d2e379f9ebd021d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64e23b9ccfd1a5842268d36fe2798a13b063fe7821d0e952ea4758df5cc386f\",\"dweb:/ipfs/QmVTtkbUuEMi4gryE6NW2BGg5WGwRt1LX4KXNfH87BBZQk\"]}},\"version\":1}"}},"@solady/utils/LibString.sol":{"LibString":{"abi":[{"inputs":[],"name":"HexLengthInsufficient","type":"error"},{"inputs":[],"name":"TooBigForSmallString","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e726b7f99f047d6b0c12d2f1b43614265de880c38d9170cca92227082bb7e5bc64736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0x26 0xB7 0xF9 SWAP16 DIV PUSH30 0x6B0C12D2F1B43614265DE880C38D9170CCA92227082BB7E5BC64736F6C63 NUMBER STOP ADDMOD BYTE STOP CALLER ","sourceMap":"648:51342:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220e726b7f99f047d6b0c12d2f1b43614265de880c38d9170cca92227082bb7e5bc64736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE7 0x26 0xB7 0xF9 SWAP16 DIV PUSH30 0x6B0C12D2F1B43614265DE880C38D9170CCA92227082BB7E5BC64736F6C63 NUMBER STOP ADDMOD BYTE STOP CALLER ","sourceMap":"648:51342:23:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HexLengthInsufficient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooBigForSmallString\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)\",\"details\":\"Note: For performance and bytecode compactness, most of the string operations are restricted to byte strings (7-bit ASCII), except where otherwise specified. Usage of byte string operations on charsets with runes spanning two or more bytes can lead to undefined behavior.\",\"errors\":{\"HexLengthInsufficient()\":[{\"details\":\"The length of the output is too small to contain all the hex digits.\"}],\"TooBigForSmallString()\":[{\"details\":\"The length of the string is more than 32 bytes.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"NOT_FOUND\":{\"details\":\"The constant returned when the `search` is not found in the string.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for converting numbers into strings and other string operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibString.sol\":\"LibString\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]}},\"version\":1}"}},"@solady/utils/LibZip.sol":{"LibZip":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dbf980aa76cb02a6abb824b2123f6f09e618957ad76bcd097f5ddd2c2a072a4464736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB 0xF9 DUP1 0xAA PUSH23 0xCB02A6ABB824B2123F6F09E618957AD76BCD097F5DDD2C 0x2A SMOD 0x2A PREVRANDAO PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"492:11812:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dbf980aa76cb02a6abb824b2123f6f09e618957ad76bcd097f5ddd2c2a072a4464736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB 0xF9 DUP1 0xAA PUSH23 0xCB02A6ABB824B2123F6F09E618957AD76BCD097F5DDD2C 0x2A SMOD 0x2A PREVRANDAO PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"492:11812:24:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibZip.sol)Calldata compression by clabby (https://github.com/clabby/op-kompressor)FastLZ by ariya (https://github.com/ariya/FastLZ)\",\"details\":\"Note: The accompanying solady.js library includes implementations of FastLZ and calldata operations for convenience.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Library for compressing and decompressing bytes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/LibZip.sol\":\"LibZip\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]}},\"version\":1}"}},"@solady/utils/ReentrancyGuard.sol":{"ReentrancyGuard":{"abi":[{"inputs":[],"name":"Reentrancy","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/ReentrancyGuard.sol)\",\"errors\":{\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_REENTRANCY_GUARD_SLOT\":{\"details\":\"Equivalent to: `uint72(bytes9(keccak256(\\\"_REENTRANCY_GUARD_SLOT\\\")))`. 9 bytes is large enough to avoid collisions with lower slots, but not too large to result in excessive bytecode bloat.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Reentrancy guard mixin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]}},\"version\":1}"}},"@solady/utils/SafeTransferLib.sol":{"SafeTransferLib":{"abi":[{"inputs":[],"name":"ApproveFailed","type":"error"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"Permit2AmountOverflow","type":"error"},{"inputs":[],"name":"Permit2Failed","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"TransferFromFailed","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220129796daa8da52c68b093afa3645935d99a89b521fe27bf9eea73c56755804c564736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLT SWAP8 SWAP7 0xDA 0xA8 0xDA MSTORE 0xC6 DUP12 MULMOD GASPRICE STATICCALL CALLDATASIZE GASLIMIT SWAP4 TSTORE SWAP10 0xA8 SWAP12 MSTORE 0x1F 0xE2 PUSH28 0xF9EEA73C56755804C564736F6C634300081A00330000000000000000 ","sourceMap":"701:25833:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220129796daa8da52c68b093afa3645935d99a89b521fe27bf9eea73c56755804c564736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLT SWAP8 SWAP7 0xDA 0xA8 0xDA MSTORE 0xC6 DUP12 MULMOD GASPRICE STATICCALL CALLDATASIZE GASLIMIT SWAP4 TSTORE SWAP10 0xA8 SWAP12 MSTORE 0x1F 0xE2 PUSH28 0xF9EEA73C56755804C564736F6C634300081A00330000000000000000 ","sourceMap":"701:25833:26:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ETHTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2AmountOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Permit2Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)\",\"details\":\"Note: - For ETH transfers, please use `forceSafeTransferETH` for DoS protection. - For ERC20s, this implementation won't check that a token has code, responsibility is delegated to the caller.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"The ERC20 `approve` has failed.\"}],\"ETHTransferFailed()\":[{\"details\":\"The ETH transfer has failed.\"}],\"Permit2AmountOverflow()\":[{\"details\":\"The Permit2 amount must be less than `2**160 - 1`.\"}],\"Permit2Failed()\":[{\"details\":\"The Permit2 operation has failed.\"}],\"TransferFailed()\":[{\"details\":\"The ERC20 `transfer` has failed.\"}],\"TransferFromFailed()\":[{\"details\":\"The ERC20 `transferFrom` has failed.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"DAI_DOMAIN_SEPARATOR\":{\"details\":\"The unique EIP-712 domain domain separator for the DAI token contract.\"},\"GAS_STIPEND_NO_GRIEF\":{\"details\":\"Suggested gas stipend for contract receiving ETH to perform a few storage reads and writes, but low enough to prevent griefing.\"},\"GAS_STIPEND_NO_STORAGE_WRITES\":{\"details\":\"Suggested gas stipend for contract receiving ETH that disallows any storage writes.\"},\"PERMIT2\":{\"details\":\"The canonical Permit2 address. [Github](https://github.com/Uniswap/permit2) [Etherscan](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)\"},\"WETH9\":{\"details\":\"The address for the WETH9 contract on Ethereum mainnet.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Safe ETH and ERC20 transfer library that gracefully handles missing return values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/SafeTransferLib.sol\":\"SafeTransferLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]}},\"version\":1}"}},"@solady/utils/SignatureCheckerLib.sol":{"SignatureCheckerLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122054c5832056bd7382edbfa85691a4b85009122fb32043d4e77c29617372c6b23d64736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xC5 DUP4 KECCAK256 JUMP 0xBD PUSH20 0x82EDBFA85691A4B85009122FB32043D4E77C2961 PUSH20 0x72C6B23D64736F6C634300081A00330000000000 ","sourceMap":"1438:25134:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122054c5832056bd7382edbfa85691a4b85009122fb32043d4e77c29617372c6b23d64736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xC5 DUP4 KECCAK256 JUMP 0xBD PUSH20 0x82EDBFA85691A4B85009122FB32043D4E77C2961 PUSH20 0x72C6B23D64736F6C634300081A00330000000000 ","sourceMap":"1438:25134:27:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/utils/SignatureCheckerLib.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/SignatureChecker.sol)\",\"details\":\"Note: - The signature checking functions use the ecrecover precompile (0x1). - The `bytes memory signature` variants use the identity precompile (0x4) to copy memory internally. - Unlike ECDSA signatures, contract signatures are revocable. - As of Solady version 0.0.134, all `bytes signature` variants accept both regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures. See: https://eips.ethereum.org/EIPS/eip-2098 This is for calldata efficiency on smart accounts prevalent on L2s. WARNING! Do NOT use signatures as unique identifiers: - Use a nonce in the digest to prevent replay attacks on the same contract. - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts. EIP-712 also enables readable signing of typed data for better user safety. This implementation does NOT check if a signature is non-malleable.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Signature verification helper that supports both ECDSA signatures from EOAs and ERC1271 signatures from smart contract wallets like Argent and Gnosis safe.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@solady/utils/SignatureCheckerLib.sol\":\"SignatureCheckerLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x7a7acc59723ed291f24d9a2ed019109c8be69f32701f35f8a61dc7fff6652379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bab15a03dfca0567d7472933ee4e776fc21f9dfb6c4dbc06934fa75eceeff5e\",\"dweb:/ipfs/QmPUuKsRwpZXz15DpsoJMMPN9DtZiRvMfwjqJScxkppNsP\"]}},\"version\":1}"}},"contracts/BoostCore.sol":{"BoostCore":{"abi":[{"inputs":[{"internalType":"contract BoostRegistry","name":"registry_","type":"address"},{"internalType":"address","name":"protocolFeeReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"bytes4","name":"expectedInterface","type":"bytes4"},{"internalType":"address","name":"instance","type":"address"}],"name":"InvalidInstance","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"boostIndex","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"action","type":"address"},{"indexed":false,"internalType":"address","name":"validator","type":"address"},{"indexed":false,"internalType":"address","name":"allowList","type":"address"},{"indexed":false,"internalType":"address","name":"budget","type":"address"}],"name":"BoostCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"boostId_","type":"uint256"},{"internalType":"uint256","name":"incentiveId_","type":"uint256"},{"internalType":"address","name":"referrer_","type":"address"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claimIncentive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"createBoost","outputs":[{"components":[{"internalType":"contract Action","name":"action","type":"address"},{"internalType":"contract Validator","name":"validator","type":"address"},{"internalType":"contract AllowList","name":"allowList","type":"address"},{"internalType":"contract Budget","name":"budget","type":"address"},{"internalType":"contract Incentive[]","name":"incentives","type":"address[]"},{"internalType":"uint64","name":"protocolFee","type":"uint64"},{"internalType":"uint64","name":"referralFee","type":"uint64"},{"internalType":"uint256","name":"maxParticipants","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct BoostLib.Boost","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getBoost","outputs":[{"components":[{"internalType":"contract Action","name":"action","type":"address"},{"internalType":"contract Validator","name":"validator","type":"address"},{"internalType":"contract AllowList","name":"allowList","type":"address"},{"internalType":"contract Budget","name":"budget","type":"address"},{"internalType":"contract Incentive[]","name":"incentives","type":"address[]"},{"internalType":"uint64","name":"protocolFee","type":"uint64"},{"internalType":"uint64","name":"referralFee","type":"uint64"},{"internalType":"uint256","name":"maxParticipants","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct BoostLib.Boost","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBoostCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFee","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralFee","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract BoostRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"claimFee_","type":"uint256"}],"name":"setClaimFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"protocolFeeReceiver_","type":"address"}],"name":"setProtocolFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_11648":{"entryPoint":null,"id":11648,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":514,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":294,"id":6288,"parameterSlots":1,"returnSlots":0},"abi_decode_t_address_fromMemory":{"entryPoint":651,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_BoostRegistry_$12709_fromMemory":{"entryPoint":609,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_BoostRegistry_$12709t_address_fromMemory":{"entryPoint":671,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"cleanup_t_address":{"entryPoint":553,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_BoostRegistry_$12709":{"entryPoint":570,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":522,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":518,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_t_address":{"entryPoint":629,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_BoostRegistry_$12709":{"entryPoint":587,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:1895:64","nodeType":"YulBlock","src":"0:1895:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"379:81:64","nodeType":"YulBlock","src":"379:81:64","statements":[{"nativeSrc":"389:65:64","nodeType":"YulAssignment","src":"389:65:64","value":{"arguments":[{"name":"value","nativeSrc":"404:5:64","nodeType":"YulIdentifier","src":"404:5:64"},{"kind":"number","nativeSrc":"411:42:64","nodeType":"YulLiteral","src":"411:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:64","nodeType":"YulIdentifier","src":"400:3:64"},"nativeSrc":"400:54:64","nodeType":"YulFunctionCall","src":"400:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:64","nodeType":"YulIdentifier","src":"389:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:64","nodeType":"YulTypedName","src":"361:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:64","nodeType":"YulTypedName","src":"371:7:64","type":""}],"src":"334:126:64"},{"body":{"nativeSrc":"511:51:64","nodeType":"YulBlock","src":"511:51:64","statements":[{"nativeSrc":"521:35:64","nodeType":"YulAssignment","src":"521:35:64","value":{"arguments":[{"name":"value","nativeSrc":"550:5:64","nodeType":"YulIdentifier","src":"550:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:64","nodeType":"YulIdentifier","src":"532:17:64"},"nativeSrc":"532:24:64","nodeType":"YulFunctionCall","src":"532:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:64","nodeType":"YulIdentifier","src":"521:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:64","nodeType":"YulTypedName","src":"493:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:64","nodeType":"YulTypedName","src":"503:7:64","type":""}],"src":"466:96:64"},{"body":{"nativeSrc":"636:51:64","nodeType":"YulBlock","src":"636:51:64","statements":[{"nativeSrc":"646:35:64","nodeType":"YulAssignment","src":"646:35:64","value":{"arguments":[{"name":"value","nativeSrc":"675:5:64","nodeType":"YulIdentifier","src":"675:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"657:17:64","nodeType":"YulIdentifier","src":"657:17:64"},"nativeSrc":"657:24:64","nodeType":"YulFunctionCall","src":"657:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"646:7:64","nodeType":"YulIdentifier","src":"646:7:64"}]}]},"name":"cleanup_t_contract$_BoostRegistry_$12709","nativeSrc":"568:119:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"618:5:64","nodeType":"YulTypedName","src":"618:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"628:7:64","nodeType":"YulTypedName","src":"628:7:64","type":""}],"src":"568:119:64"},{"body":{"nativeSrc":"759:102:64","nodeType":"YulBlock","src":"759:102:64","statements":[{"body":{"nativeSrc":"839:16:64","nodeType":"YulBlock","src":"839:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"848:1:64","nodeType":"YulLiteral","src":"848:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"851:1:64","nodeType":"YulLiteral","src":"851:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"841:6:64","nodeType":"YulIdentifier","src":"841:6:64"},"nativeSrc":"841:12:64","nodeType":"YulFunctionCall","src":"841:12:64"},"nativeSrc":"841:12:64","nodeType":"YulExpressionStatement","src":"841:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"782:5:64","nodeType":"YulIdentifier","src":"782:5:64"},{"arguments":[{"name":"value","nativeSrc":"830:5:64","nodeType":"YulIdentifier","src":"830:5:64"}],"functionName":{"name":"cleanup_t_contract$_BoostRegistry_$12709","nativeSrc":"789:40:64","nodeType":"YulIdentifier","src":"789:40:64"},"nativeSrc":"789:47:64","nodeType":"YulFunctionCall","src":"789:47:64"}],"functionName":{"name":"eq","nativeSrc":"779:2:64","nodeType":"YulIdentifier","src":"779:2:64"},"nativeSrc":"779:58:64","nodeType":"YulFunctionCall","src":"779:58:64"}],"functionName":{"name":"iszero","nativeSrc":"772:6:64","nodeType":"YulIdentifier","src":"772:6:64"},"nativeSrc":"772:66:64","nodeType":"YulFunctionCall","src":"772:66:64"},"nativeSrc":"769:86:64","nodeType":"YulIf","src":"769:86:64"}]},"name":"validator_revert_t_contract$_BoostRegistry_$12709","nativeSrc":"693:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"752:5:64","nodeType":"YulTypedName","src":"752:5:64","type":""}],"src":"693:168:64"},{"body":{"nativeSrc":"953:103:64","nodeType":"YulBlock","src":"953:103:64","statements":[{"nativeSrc":"963:22:64","nodeType":"YulAssignment","src":"963:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"978:6:64","nodeType":"YulIdentifier","src":"978:6:64"}],"functionName":{"name":"mload","nativeSrc":"972:5:64","nodeType":"YulIdentifier","src":"972:5:64"},"nativeSrc":"972:13:64","nodeType":"YulFunctionCall","src":"972:13:64"},"variableNames":[{"name":"value","nativeSrc":"963:5:64","nodeType":"YulIdentifier","src":"963:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1044:5:64","nodeType":"YulIdentifier","src":"1044:5:64"}],"functionName":{"name":"validator_revert_t_contract$_BoostRegistry_$12709","nativeSrc":"994:49:64","nodeType":"YulIdentifier","src":"994:49:64"},"nativeSrc":"994:56:64","nodeType":"YulFunctionCall","src":"994:56:64"},"nativeSrc":"994:56:64","nodeType":"YulExpressionStatement","src":"994:56:64"}]},"name":"abi_decode_t_contract$_BoostRegistry_$12709_fromMemory","nativeSrc":"867:189:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"931:6:64","nodeType":"YulTypedName","src":"931:6:64","type":""},{"name":"end","nativeSrc":"939:3:64","nodeType":"YulTypedName","src":"939:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"947:5:64","nodeType":"YulTypedName","src":"947:5:64","type":""}],"src":"867:189:64"},{"body":{"nativeSrc":"1105:79:64","nodeType":"YulBlock","src":"1105:79:64","statements":[{"body":{"nativeSrc":"1162:16:64","nodeType":"YulBlock","src":"1162:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1171:1:64","nodeType":"YulLiteral","src":"1171:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1174:1:64","nodeType":"YulLiteral","src":"1174:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1164:6:64","nodeType":"YulIdentifier","src":"1164:6:64"},"nativeSrc":"1164:12:64","nodeType":"YulFunctionCall","src":"1164:12:64"},"nativeSrc":"1164:12:64","nodeType":"YulExpressionStatement","src":"1164:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1128:5:64","nodeType":"YulIdentifier","src":"1128:5:64"},{"arguments":[{"name":"value","nativeSrc":"1153:5:64","nodeType":"YulIdentifier","src":"1153:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1135:17:64","nodeType":"YulIdentifier","src":"1135:17:64"},"nativeSrc":"1135:24:64","nodeType":"YulFunctionCall","src":"1135:24:64"}],"functionName":{"name":"eq","nativeSrc":"1125:2:64","nodeType":"YulIdentifier","src":"1125:2:64"},"nativeSrc":"1125:35:64","nodeType":"YulFunctionCall","src":"1125:35:64"}],"functionName":{"name":"iszero","nativeSrc":"1118:6:64","nodeType":"YulIdentifier","src":"1118:6:64"},"nativeSrc":"1118:43:64","nodeType":"YulFunctionCall","src":"1118:43:64"},"nativeSrc":"1115:63:64","nodeType":"YulIf","src":"1115:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"1062:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1098:5:64","nodeType":"YulTypedName","src":"1098:5:64","type":""}],"src":"1062:122:64"},{"body":{"nativeSrc":"1253:80:64","nodeType":"YulBlock","src":"1253:80:64","statements":[{"nativeSrc":"1263:22:64","nodeType":"YulAssignment","src":"1263:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"1278:6:64","nodeType":"YulIdentifier","src":"1278:6:64"}],"functionName":{"name":"mload","nativeSrc":"1272:5:64","nodeType":"YulIdentifier","src":"1272:5:64"},"nativeSrc":"1272:13:64","nodeType":"YulFunctionCall","src":"1272:13:64"},"variableNames":[{"name":"value","nativeSrc":"1263:5:64","nodeType":"YulIdentifier","src":"1263:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1321:5:64","nodeType":"YulIdentifier","src":"1321:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1294:26:64","nodeType":"YulIdentifier","src":"1294:26:64"},"nativeSrc":"1294:33:64","nodeType":"YulFunctionCall","src":"1294:33:64"},"nativeSrc":"1294:33:64","nodeType":"YulExpressionStatement","src":"1294:33:64"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"1190:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1231:6:64","nodeType":"YulTypedName","src":"1231:6:64","type":""},{"name":"end","nativeSrc":"1239:3:64","nodeType":"YulTypedName","src":"1239:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1247:5:64","nodeType":"YulTypedName","src":"1247:5:64","type":""}],"src":"1190:143:64"},{"body":{"nativeSrc":"1456:436:64","nodeType":"YulBlock","src":"1456:436:64","statements":[{"body":{"nativeSrc":"1502:83:64","nodeType":"YulBlock","src":"1502:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1504:77:64","nodeType":"YulIdentifier","src":"1504:77:64"},"nativeSrc":"1504:79:64","nodeType":"YulFunctionCall","src":"1504:79:64"},"nativeSrc":"1504:79:64","nodeType":"YulExpressionStatement","src":"1504:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1477:7:64","nodeType":"YulIdentifier","src":"1477:7:64"},{"name":"headStart","nativeSrc":"1486:9:64","nodeType":"YulIdentifier","src":"1486:9:64"}],"functionName":{"name":"sub","nativeSrc":"1473:3:64","nodeType":"YulIdentifier","src":"1473:3:64"},"nativeSrc":"1473:23:64","nodeType":"YulFunctionCall","src":"1473:23:64"},{"kind":"number","nativeSrc":"1498:2:64","nodeType":"YulLiteral","src":"1498:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1469:3:64","nodeType":"YulIdentifier","src":"1469:3:64"},"nativeSrc":"1469:32:64","nodeType":"YulFunctionCall","src":"1469:32:64"},"nativeSrc":"1466:119:64","nodeType":"YulIf","src":"1466:119:64"},{"nativeSrc":"1595:151:64","nodeType":"YulBlock","src":"1595:151:64","statements":[{"nativeSrc":"1610:15:64","nodeType":"YulVariableDeclaration","src":"1610:15:64","value":{"kind":"number","nativeSrc":"1624:1:64","nodeType":"YulLiteral","src":"1624:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1614:6:64","nodeType":"YulTypedName","src":"1614:6:64","type":""}]},{"nativeSrc":"1639:97:64","nodeType":"YulAssignment","src":"1639:97:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1708:9:64","nodeType":"YulIdentifier","src":"1708:9:64"},{"name":"offset","nativeSrc":"1719:6:64","nodeType":"YulIdentifier","src":"1719:6:64"}],"functionName":{"name":"add","nativeSrc":"1704:3:64","nodeType":"YulIdentifier","src":"1704:3:64"},"nativeSrc":"1704:22:64","nodeType":"YulFunctionCall","src":"1704:22:64"},{"name":"dataEnd","nativeSrc":"1728:7:64","nodeType":"YulIdentifier","src":"1728:7:64"}],"functionName":{"name":"abi_decode_t_contract$_BoostRegistry_$12709_fromMemory","nativeSrc":"1649:54:64","nodeType":"YulIdentifier","src":"1649:54:64"},"nativeSrc":"1649:87:64","nodeType":"YulFunctionCall","src":"1649:87:64"},"variableNames":[{"name":"value0","nativeSrc":"1639:6:64","nodeType":"YulIdentifier","src":"1639:6:64"}]}]},{"nativeSrc":"1756:129:64","nodeType":"YulBlock","src":"1756:129:64","statements":[{"nativeSrc":"1771:16:64","nodeType":"YulVariableDeclaration","src":"1771:16:64","value":{"kind":"number","nativeSrc":"1785:2:64","nodeType":"YulLiteral","src":"1785:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1775:6:64","nodeType":"YulTypedName","src":"1775:6:64","type":""}]},{"nativeSrc":"1801:74:64","nodeType":"YulAssignment","src":"1801:74:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1847:9:64","nodeType":"YulIdentifier","src":"1847:9:64"},{"name":"offset","nativeSrc":"1858:6:64","nodeType":"YulIdentifier","src":"1858:6:64"}],"functionName":{"name":"add","nativeSrc":"1843:3:64","nodeType":"YulIdentifier","src":"1843:3:64"},"nativeSrc":"1843:22:64","nodeType":"YulFunctionCall","src":"1843:22:64"},{"name":"dataEnd","nativeSrc":"1867:7:64","nodeType":"YulIdentifier","src":"1867:7:64"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"1811:31:64","nodeType":"YulIdentifier","src":"1811:31:64"},"nativeSrc":"1811:64:64","nodeType":"YulFunctionCall","src":"1811:64:64"},"variableNames":[{"name":"value1","nativeSrc":"1801:6:64","nodeType":"YulIdentifier","src":"1801:6:64"}]}]}]},"name":"abi_decode_tuple_t_contract$_BoostRegistry_$12709t_address_fromMemory","nativeSrc":"1339:553:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1418:9:64","nodeType":"YulTypedName","src":"1418:9:64","type":""},{"name":"dataEnd","nativeSrc":"1429:7:64","nodeType":"YulTypedName","src":"1429:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1441:6:64","nodeType":"YulTypedName","src":"1441:6:64","type":""},{"name":"value1","nativeSrc":"1449:6:64","nodeType":"YulTypedName","src":"1449:6:64","type":""}],"src":"1339:553:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_BoostRegistry_$12709(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_BoostRegistry_$12709(value) {\n if iszero(eq(value, cleanup_t_contract$_BoostRegistry_$12709(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_BoostRegistry_$12709_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_BoostRegistry_$12709(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_contract$_BoostRegistry_$12709t_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_BoostRegistry_$12709_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526544364c5bb0006003556103e860045f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506103e8600460086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555034801561006e575f80fd5b506040516132373803806132378339818101604052810190610090919061029f565b61009f3361012660201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506102dd565b61013461020260201b60201c565b156101ac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561016e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506101ff565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102338261020a565b9050919050565b5f61024482610229565b9050919050565b6102548161023a565b811461025e575f80fd5b50565b5f8151905061026f8161024b565b92915050565b61027e81610229565b8114610288575f80fd5b50565b5f8151905061029981610275565b92915050565b5f80604083850312156102b5576102b4610206565b5b5f6102c285828601610261565b92505060206102d38582860161028b565b9150509250929050565b612f4d806102ea5f395ff3fe608060405260043610610113575f3560e01c806384ae2bc61161009f578063d73792a911610063578063d73792a914610303578063e21ff7311461032d578063f04e283e14610369578063f2fde38b14610385578063fee81cf4146103a157610113565b806384ae2bc61461023f5780638da5cb5b146102695780638fe4f5231461029357806399d32fc4146102af578063b0e21e8a146102d957610113565b806346877b1a116100e657806346877b1a146101af57806354d1f13d146101d75780635edb9eb0146101e1578063715018a61461020b5780637b1039991461021557610113565b806313c8e2de1461011757806325692962146101535780632e75ab501461015d57806339a51be514610185575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190612045565b6103dd565b60405161014a9190612336565b60405180910390f35b61015b6106b7565b005b348015610168575f80fd5b50610183600480360381019061017e9190612045565b610708565b005b348015610190575f80fd5b5061019961071a565b6040516101a69190612365565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d091906123a8565b61073f565b005b6101df61078a565b005b3480156101ec575f80fd5b506101f56107c3565b60405161020291906123e2565b60405180910390f35b6102136107ce565b005b348015610220575f80fd5b506102296107e1565b604051610236919061241b565b60405180910390f35b34801561024a575f80fd5b50610253610806565b6040516102609190612443565b60405180910390f35b348015610274575f80fd5b5061027d610820565b60405161028a9190612365565b60405180910390f35b6102ad60048036038101906102a891906124bd565b610848565b005b3480156102ba575f80fd5b506102c3610b5a565b6040516102d091906123e2565b60405180910390f35b3480156102e4575f80fd5b506102ed610b60565b6040516102fa9190612443565b60405180910390f35b34801561030e575f80fd5b50610317610b79565b6040516103249190612443565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190612541565b610b7f565b6040516103609190612336565b60405180910390f35b610383600480360381019061037e91906123a8565b61140d565b005b61039f600480360381019061039a91906123a8565b61144b565b005b3480156103ac575f80fd5b506103c760048036038101906103c291906123a8565b611474565b6040516103d491906123e2565b60405180910390f35b6103e5611e99565b5f82815481106103f8576103f761258c565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156105e557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161059c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6106c061148d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b610710611497565b8060038190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610747611497565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6107d6611497565b6107df5f6114ce565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460089054906101000a900467ffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b3068929eee149b4bd2126854036108665763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8086815481106108865761088561258c565b5b905f5260205f20906008020190506003543410156108e1575f346003546040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108d8939291906125b9565b60405180910390fd5b6108eb8185611594565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c16e50ef84846040518363ffffffff1660e01b8152600401610949929190612648565b6020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610989919061269f565b6109bf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060040185815481106109d5576109d461258c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c63ff8dd60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250604051602001610a969190612764565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610ac191906127bc565b6020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b01919061269f565b610b46573383836040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b3d939291906127dc565b60405180910390fd5b503868929eee149b4bd21268555050505050565b60035481565b60045f9054906101000a900467ffffffffffffffff1681565b61271081565b610b87611e99565b610b8f611497565b3068929eee149b4bd212685403610bad5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610c0684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050611702565b806020019051810190610c199190612c74565b9050610c27815f015161179b565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160045f9054906101000a900467ffffffffffffffff16610cf89190612ce8565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600460089054906101000a900467ffffffffffffffff16610d479190612ce8565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e001518160060181905550610dae7fcea74fae0000000000000000000000000000000000000000000000000000000083602001516001611876565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e1e7fcade87420000000000000000000000000000000000000000000000000000000083606001516001611876565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e708260800151835f0151611898565b816004019080519060200190610e87929190611f5f565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614610ef857610ef37fe84781730000000000000000000000000000000000000000000000000000000083604001516001611876565b610fe1565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fe8478173000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f739190612d5d565b602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb2919061269f565b610fbc575f610fe0565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f805490506110a69190612d76565b7f560b27fd941b3e3ae813416565f72f24c408b726ad11be75e543295d8924f8df846001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161114293929190612da9565b60405180910390a480604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561132c57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112e3575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050925050503868929eee149b4bd212685592915050565b611415611497565b63389a75e1600c52805f526020600c20805442111561143b57636f5e88185f526004601cfd5b5f815550611448816114ce565b50565b611453611497565b8060601b61146857637448fbae5f526004601cfd5b611471816114ce565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146114cc576382b429005f526004601cfd5b565b6114d6611c62565b1561153b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611591565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60035403156116fe575f60035490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461165a575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166003546116159190612dde565b61161f9190612e4c565b9050808261162d9190612d76565b9150611658818473ffffffffffffffffffffffffffffffffffffffff16611c6690919063ffffffff16565b505b6116b260028261166a9190612e4c565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c6690919063ffffffff16565b6116fc4760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c6690919063ffffffff16565b505b5050565b60608151156117965760405190506020810160048301805184518501811983525b8086101561177c576001860195508551601f1a8061176c576001870196508651601f1a5f198652607f811161175a57600181013887395b6001607f821601860195505050611777565b808553600185019450505b611723565b81835260208501840385525f845260208401604052505050505b919050565b6117c57f74009ff10000000000000000000000000000000000000000000000000000000082611c83565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016117fe9190612365565b602060405180830381865afa158015611819573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183d919061269f565b611873576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f611885848460200151611c83565b61188f8383611d7a565b90509392505050565b6060825167ffffffffffffffff8111156118b5576118b4612810565b5b6040519080825280602002602001820160405280156118e35781602001602082028036833780820191505090505b5090505f5b8351811015611c5b576119397f8085fa3e000000000000000000000000000000000000000000000000000000008583815181106119285761192761258c565b5b602002602001015160200151611c83565b83818151811061194c5761194b61258c565b5b60200260200101515f01516119d8577f8085fa3e0000000000000000000000000000000000000000000000000000000084828151811061198f5761198e61258c565b5b6020026020010151602001516040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016119cf929190612e7c565b60405180910390fd5b611a1d7f8085fa3e00000000000000000000000000000000000000000000000000000000858381518110611a0f57611a0e61258c565b5b60200260200101515f611876565b828281518110611a3057611a2f61258c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110611a7e57611a7d61258c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110611ab457611ab361258c565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611adc91906127bc565b5f60405180830381865afa158015611af6573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611b1e9190612ea3565b90505f815114611baf578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611b6191906127bc565b6020604051808303815f875af1158015611b7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba1919061269f565b611bae57611bad612eea565b5b5b828281518110611bc257611bc161258c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611bf857611bf761258c565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611c2091906127bc565b5f604051808303815f87803b158015611c37575f80fd5b505af1158015611c49573d5f803e3d5ffd5b505050505080806001019150506118e8565b5092915050565b5f90565b5f385f3884865af1611c7f5763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611d3257508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611cf19190612d5d565b602060405180830381865afa158015611d0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d30919061269f565b155b15611d765781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611d6d929190612e7c565b60405180910390fd5b5050565b5f825f0151611d8d578260200151611db1565b611db0836020015173ffffffffffffffffffffffffffffffffffffffff16611e36565b5b9050825f01518015611dc05750815b15611e30578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b8152600401611e0291906127bc565b5f604051808303815f87803b158015611e19575f80fd5b505af1158015611e2b573d5f803e3d5ffd5b505050505b92915050565b5f611e415f83611e48565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080611e8f5763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215611fd5579160200282015b82811115611fd4578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611f7d565b5b509050611fe29190611fe6565b5090565b5b80821115611ffd575f815f905550600101611fe7565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61202481612012565b811461202e575f80fd5b50565b5f8135905061203f8161201b565b92915050565b5f6020828403121561205a5761205961200a565b5b5f61206784828501612031565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6120b26120ad6120a884612070565b61208f565b612070565b9050919050565b5f6120c382612098565b9050919050565b5f6120d4826120b9565b9050919050565b6120e4816120ca565b82525050565b5f6120f4826120b9565b9050919050565b612104816120ea565b82525050565b5f612114826120b9565b9050919050565b6121248161210a565b82525050565b5f61213482612098565b9050919050565b5f6121458261212a565b9050919050565b6121558161213b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61218e826120b9565b9050919050565b61219e81612184565b82525050565b5f6121af8383612195565b60208301905092915050565b5f602082019050919050565b5f6121d18261215b565b6121db8185612165565b93506121e683612175565b805f5b838110156122165781516121fd88826121a4565b9750612208836121bb565b9250506001810190506121e9565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b61223f81612223565b82525050565b61224e81612012565b82525050565b5f61225e82612070565b9050919050565b61226e81612254565b82525050565b5f61012083015f83015161228a5f8601826120db565b50602083015161229d60208601826120fb565b5060408301516122b0604086018261211b565b5060608301516122c3606086018261214c565b50608083015184820360808601526122db82826121c7565b91505060a08301516122f060a0860182612236565b5060c083015161230360c0860182612236565b5060e083015161231660e0860182612245565b5061010083015161232b610100860182612265565b508091505092915050565b5f6020820190508181035f83015261234e8184612274565b905092915050565b61235f81612254565b82525050565b5f6020820190506123785f830184612356565b92915050565b61238781612254565b8114612391575f80fd5b50565b5f813590506123a28161237e565b92915050565b5f602082840312156123bd576123bc61200a565b5b5f6123ca84828501612394565b91505092915050565b6123dc81612012565b82525050565b5f6020820190506123f55f8301846123d3565b92915050565b5f612405826120b9565b9050919050565b612415816123fb565b82525050565b5f60208201905061242e5f83018461240c565b92915050565b61243d81612223565b82525050565b5f6020820190506124565f830184612434565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261247d5761247c61245c565b5b8235905067ffffffffffffffff81111561249a57612499612460565b5b6020830191508360018202830111156124b6576124b5612464565b5b9250929050565b5f805f805f608086880312156124d6576124d561200a565b5b5f6124e388828901612031565b95505060206124f488828901612031565b945050604061250588828901612394565b935050606086013567ffffffffffffffff8111156125265761252561200e565b5b61253288828901612468565b92509250509295509295909350565b5f80602083850312156125575761255661200a565b5b5f83013567ffffffffffffffff8111156125745761257361200e565b5b61258085828601612468565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506125cc5f830186612356565b6125d960208301856123d3565b6125e660408301846123d3565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61262783856125ee565b93506126348385846125fe565b61263d8361260c565b840190509392505050565b5f6020820190508181035f83015261266181848661261c565b90509392505050565b5f8115159050919050565b61267e8161266a565b8114612688575f80fd5b50565b5f8151905061269981612675565b92915050565b5f602082840312156126b4576126b361200a565b5b5f6126c18482850161268b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6126fc826126ca565b61270681856126d4565b93506127168185602086016126e4565b61271f8161260c565b840191505092915050565b5f604083015f83015161273f5f860182612265565b506020830151848203602086015261275782826126f2565b9150508091505092915050565b5f6020820190508181035f83015261277c818461272a565b905092915050565b5f61278e826126ca565b61279881856125ee565b93506127a88185602086016126e4565b6127b18161260c565b840191505092915050565b5f6020820190508181035f8301526127d48184612784565b905092915050565b5f6040820190506127ef5f830186612356565b818103602083015261280281848661261c565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6128468261260c565b810181811067ffffffffffffffff8211171561286557612864612810565b5b80604052505050565b5f612877612001565b9050612883828261283d565b919050565b5f80fd5b5f61289682612070565b9050919050565b5f6128a78261288c565b9050919050565b6128b78161289d565b81146128c1575f80fd5b50565b5f815190506128d2816128ae565b92915050565b5f815190506128e68161237e565b92915050565b5f80fd5b5f67ffffffffffffffff82111561290a57612909612810565b5b6129138261260c565b9050602081019050919050565b5f61293261292d846128f0565b61286e565b90508281526020810184848401111561294e5761294d6128ec565b5b6129598482856126e4565b509392505050565b5f82601f8301126129755761297461245c565b5b8151612985848260208601612920565b91505092915050565b5f606082840312156129a3576129a261280c565b5b6129ad606061286e565b90505f6129bc8482850161268b565b5f8301525060206129cf848285016128d8565b602083015250604082015167ffffffffffffffff8111156129f3576129f2612888565b5b6129ff84828501612961565b60408301525092915050565b5f67ffffffffffffffff821115612a2557612a24612810565b5b602082029050602081019050919050565b5f612a48612a4384612a0b565b61286e565b90508083825260208201905060208402830185811115612a6b57612a6a612464565b5b835b81811015612ab257805167ffffffffffffffff811115612a9057612a8f61245c565b5b808601612a9d898261298e565b85526020850194505050602081019050612a6d565b5050509392505050565b5f82601f830112612ad057612acf61245c565b5b8151612ae0848260208601612a36565b91505092915050565b612af281612223565b8114612afc575f80fd5b50565b5f81519050612b0d81612ae9565b92915050565b5f81519050612b218161201b565b92915050565b5f6101208284031215612b3d57612b3c61280c565b5b612b4861012061286e565b90505f612b57848285016128c4565b5f83015250602082015167ffffffffffffffff811115612b7a57612b79612888565b5b612b868482850161298e565b602083015250604082015167ffffffffffffffff811115612baa57612ba9612888565b5b612bb68482850161298e565b604083015250606082015167ffffffffffffffff811115612bda57612bd9612888565b5b612be68482850161298e565b606083015250608082015167ffffffffffffffff811115612c0a57612c09612888565b5b612c1684828501612abc565b60808301525060a0612c2a84828501612aff565b60a08301525060c0612c3e84828501612aff565b60c08301525060e0612c5284828501612b13565b60e083015250610100612c67848285016128d8565b6101008301525092915050565b5f60208284031215612c8957612c8861200a565b5b5f82015167ffffffffffffffff811115612ca657612ca561200e565b5b612cb284828501612b27565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cf282612223565b9150612cfd83612223565b9250828201905067ffffffffffffffff811115612d1d57612d1c612cbb565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612d5781612d23565b82525050565b5f602082019050612d705f830184612d4e565b92915050565b5f612d8082612012565b9150612d8b83612012565b9250828203905081811115612da357612da2612cbb565b5b92915050565b5f606082019050612dbc5f830186612356565b612dc96020830185612356565b612dd66040830184612356565b949350505050565b5f612de882612012565b9150612df383612012565b9250828202612e0181612012565b91508282048414831517612e1857612e17612cbb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e5682612012565b9150612e6183612012565b925082612e7157612e70612e1f565b5b828204905092915050565b5f604082019050612e8f5f830185612d4e565b612e9c6020830184612356565b9392505050565b5f60208284031215612eb857612eb761200a565b5b5f82015167ffffffffffffffff811115612ed557612ed461200e565b5b612ee184828501612961565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea26469706673582212209830a10aa99ae4606cdb86c2473b4f326f2cb4a4faddf7d755f9d76bfb718ed264736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH6 0x44364C5BB000 PUSH1 0x3 SSTORE PUSH2 0x3E8 PUSH1 0x4 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x3E8 PUSH1 0x4 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x6E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3237 CODESIZE SUB DUP1 PUSH2 0x3237 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x90 SWAP2 SWAP1 PUSH2 0x29F JUMP JUMPDEST PUSH2 0x9F CALLER PUSH2 0x126 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP PUSH2 0x2DD JUMP JUMPDEST PUSH2 0x134 PUSH2 0x202 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0x1AC JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x16E JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1FF JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x233 DUP3 PUSH2 0x20A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x244 DUP3 PUSH2 0x229 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x254 DUP2 PUSH2 0x23A JUMP JUMPDEST DUP2 EQ PUSH2 0x25E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x26F DUP2 PUSH2 0x24B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x27E DUP2 PUSH2 0x229 JUMP JUMPDEST DUP2 EQ PUSH2 0x288 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x299 DUP2 PUSH2 0x275 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B5 JUMPI PUSH2 0x2B4 PUSH2 0x206 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2C2 DUP6 DUP3 DUP7 ADD PUSH2 0x261 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2D3 DUP6 DUP3 DUP7 ADD PUSH2 0x28B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2F4D DUP1 PUSH2 0x2EA PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84AE2BC6 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xE21FF731 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A1 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x84AE2BC6 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x8FE4F523 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x99D32FC4 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x2D9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x46877B1A GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x46877B1A EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5EDB9EB0 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x215 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x13C8E2DE EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x2E75AB50 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x39A51BE5 EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x2045 JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x2336 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x6B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x2045 JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x190 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x2365 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x7C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x23E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x213 PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x220 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x229 PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x241B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x806 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x2443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x2365 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x24BD JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0xB5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x23E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x2443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x2443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x353 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34E SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x2336 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x383 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x140D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x144B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x23E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E5 PUSH2 0x1E99 JUMP JUMPDEST PUSH0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3F8 JUMPI PUSH2 0x3F7 PUSH2 0x258C JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x59C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x148D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x710 PUSH2 0x1497 JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x1497 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x1497 JUMP JUMPDEST PUSH2 0x7DF PUSH0 PUSH2 0x14CE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x866 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 DUP1 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x258C JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP PUSH1 0x3 SLOAD CALLVALUE LT ISZERO PUSH2 0x8E1 JUMPI PUSH0 CALLVALUE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x25B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EB DUP2 DUP6 PUSH2 0x1594 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC16E50EF DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x949 SWAP3 SWAP2 SWAP1 PUSH2 0x2648 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x965 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x989 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D4 PUSH2 0x258C JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC63FF8DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA96 SWAP2 SWAP1 PUSH2 0x2764 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0xB46 JUMPI CALLER DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0xB87 PUSH2 0x1E99 JUMP JUMPDEST PUSH2 0xB8F PUSH2 0x1497 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0xBAD JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH2 0xC06 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x1702 JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST SWAP1 POP PUSH2 0xC27 DUP2 PUSH0 ADD MLOAD PUSH2 0x179B JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP DUP2 PUSH2 0x100 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH0 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xA0 ADD MLOAD PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xCF8 SWAP2 SWAP1 PUSH2 0x2CE8 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xC0 ADD MLOAD PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD47 SWAP2 SWAP1 PUSH2 0x2CE8 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xDAE PUSH32 0xCEA74FAE00000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH2 0x1876 JUMP JUMPDEST DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE1E PUSH32 0xCADE874200000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH2 0x1876 JUMP JUMPDEST DUP2 PUSH1 0x2 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE70 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x1898 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEF8 JUMPI PUSH2 0xEF3 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH2 0x1876 JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF73 SWAP2 SWAP1 PUSH2 0x2D5D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB2 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0xFBC JUMPI PUSH0 PUSH2 0xFE0 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST JUMPDEST DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP1 SLOAD SWAP1 POP PUSH2 0x10A6 SWAP2 SWAP1 PUSH2 0x2D76 JUMP JUMPDEST PUSH32 0x560B27FD941B3E3AE813416565F72F24C408B726AD11BE75E543295D8924F8DF DUP5 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x2 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH1 0x3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1142 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DA9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x132C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x12E3 JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP3 POP POP POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1415 PUSH2 0x1497 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x143B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1448 DUP2 PUSH2 0x14CE JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1453 PUSH2 0x1497 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1468 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1471 DUP2 PUSH2 0x14CE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x14CC JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x14D6 PUSH2 0x1C62 JUMP JUMPDEST ISZERO PUSH2 0x153B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1591 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD SUB ISZERO PUSH2 0x16FE JUMPI PUSH0 PUSH1 0x3 SLOAD SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x165A JUMPI PUSH0 PUSH2 0x2710 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x5 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x3 SLOAD PUSH2 0x1615 SWAP2 SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH2 0x161F SWAP2 SWAP1 PUSH2 0x2E4C JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x162D SWAP2 SWAP1 PUSH2 0x2D76 JUMP JUMPDEST SWAP2 POP PUSH2 0x1658 DUP2 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C66 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST PUSH2 0x16B2 PUSH1 0x2 DUP3 PUSH2 0x166A SWAP2 SWAP1 PUSH2 0x2E4C JUMP JUMPDEST DUP5 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C66 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x16FC SELFBALANCE PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C66 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD ISZERO PUSH2 0x1796 JUMPI PUSH1 0x40 MLOAD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x4 DUP4 ADD DUP1 MLOAD DUP5 MLOAD DUP6 ADD DUP2 NOT DUP4 MSTORE JUMPDEST DUP1 DUP7 LT ISZERO PUSH2 0x177C JUMPI PUSH1 0x1 DUP7 ADD SWAP6 POP DUP6 MLOAD PUSH1 0x1F BYTE DUP1 PUSH2 0x176C JUMPI PUSH1 0x1 DUP8 ADD SWAP7 POP DUP7 MLOAD PUSH1 0x1F BYTE PUSH0 NOT DUP7 MSTORE PUSH1 0x7F DUP2 GT PUSH2 0x175A JUMPI PUSH1 0x1 DUP2 ADD CODESIZE DUP8 CODECOPY JUMPDEST PUSH1 0x1 PUSH1 0x7F DUP3 AND ADD DUP7 ADD SWAP6 POP POP POP PUSH2 0x1777 JUMP JUMPDEST DUP1 DUP6 MSTORE8 PUSH1 0x1 DUP6 ADD SWAP5 POP POP JUMPDEST PUSH2 0x1723 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP6 ADD DUP5 SUB DUP6 MSTORE PUSH0 DUP5 MSTORE PUSH1 0x20 DUP5 ADD PUSH1 0x40 MSTORE POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17C5 PUSH32 0x74009FF100000000000000000000000000000000000000000000000000000000 DUP3 PUSH2 0x1C83 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFE9FBB80 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FE SWAP2 SWAP1 PUSH2 0x2365 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1819 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x183D SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0x1873 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x1885 DUP5 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1C83 JUMP JUMPDEST PUSH2 0x188F DUP4 DUP4 PUSH2 0x1D7A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18B5 JUMPI PUSH2 0x18B4 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x18E3 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5B JUMPI PUSH2 0x1939 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1928 JUMPI PUSH2 0x1927 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1C83 JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x194C JUMPI PUSH2 0x194B PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH2 0x19D8 JUMPI PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x198F JUMPI PUSH2 0x198E PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19CF SWAP3 SWAP2 SWAP1 PUSH2 0x2E7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A1D PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1A0F JUMPI PUSH2 0x1A0E PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 PUSH2 0x1876 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A30 JUMPI PUSH2 0x1A2F PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A7E JUMPI PUSH2 0x1A7D PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4E7165A2 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1AB4 JUMPI PUSH2 0x1AB3 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ADC SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AF6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B1E SWAP2 SWAP1 PUSH2 0x2EA3 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD EQ PUSH2 0x1BAF JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFA4CA9B1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B61 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B7D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BA1 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0x1BAE JUMPI PUSH2 0x1BAD PUSH2 0x2EEA JUMP JUMPDEST JUMPDEST JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1BC2 JUMPI PUSH2 0x1BC1 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BF8 JUMPI PUSH2 0x1BF7 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C20 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C37 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C49 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x18E8 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1C7F JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1D32 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF1 SWAP2 SWAP1 PUSH2 0x2D5D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D0C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D30 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1D76 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6D SWAP3 SWAP2 SWAP1 PUSH2 0x2E7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH0 ADD MLOAD PUSH2 0x1D8D JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1DB1 JUMP JUMPDEST PUSH2 0x1DB0 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1E36 JUMP JUMPDEST JUMPDEST SWAP1 POP DUP3 PUSH0 ADD MLOAD DUP1 ISZERO PUSH2 0x1DC0 JUMPI POP DUP2 JUMPDEST ISZERO PUSH2 0x1E30 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E19 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E2B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E41 PUSH0 DUP4 PUSH2 0x1E48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP2 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE PUSH1 0x35 PUSH1 0xC DUP5 CREATE SWAP1 POP DUP1 PUSH2 0x1E8F JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1FD5 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1FD4 JUMPI DUP3 MLOAD DUP3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1F7D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1FE2 SWAP2 SWAP1 PUSH2 0x1FE6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1FFD JUMPI PUSH0 DUP2 PUSH0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1FE7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2024 DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP2 EQ PUSH2 0x202E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x203F DUP2 PUSH2 0x201B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x205A JUMPI PUSH2 0x2059 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2067 DUP5 DUP3 DUP6 ADD PUSH2 0x2031 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20B2 PUSH2 0x20AD PUSH2 0x20A8 DUP5 PUSH2 0x2070 JUMP JUMPDEST PUSH2 0x208F JUMP JUMPDEST PUSH2 0x2070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20C3 DUP3 PUSH2 0x2098 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20D4 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20E4 DUP2 PUSH2 0x20CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20F4 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2104 DUP2 PUSH2 0x20EA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2114 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2124 DUP2 PUSH2 0x210A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2134 DUP3 PUSH2 0x2098 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2145 DUP3 PUSH2 0x212A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2155 DUP2 PUSH2 0x213B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x218E DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x219E DUP2 PUSH2 0x2184 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x21AF DUP4 DUP4 PUSH2 0x2195 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x21D1 DUP3 PUSH2 0x215B JUMP JUMPDEST PUSH2 0x21DB DUP2 DUP6 PUSH2 0x2165 JUMP JUMPDEST SWAP4 POP PUSH2 0x21E6 DUP4 PUSH2 0x2175 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2216 JUMPI DUP2 MLOAD PUSH2 0x21FD DUP9 DUP3 PUSH2 0x21A4 JUMP JUMPDEST SWAP8 POP PUSH2 0x2208 DUP4 PUSH2 0x21BB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x21E9 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x223F DUP2 PUSH2 0x2223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x224E DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x225E DUP3 PUSH2 0x2070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226E DUP2 PUSH2 0x2254 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x228A PUSH0 DUP7 ADD DUP3 PUSH2 0x20DB JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x229D PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x20FB JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x22B0 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x211B JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x22C3 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x214C JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x22DB DUP3 DUP3 PUSH2 0x21C7 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x22F0 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x2236 JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x2303 PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x2236 JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x2316 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x2245 JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x232B PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x2265 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x234E DUP2 DUP5 PUSH2 0x2274 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x235F DUP2 PUSH2 0x2254 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2378 PUSH0 DUP4 ADD DUP5 PUSH2 0x2356 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2387 DUP2 PUSH2 0x2254 JUMP JUMPDEST DUP2 EQ PUSH2 0x2391 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23A2 DUP2 PUSH2 0x237E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23BD JUMPI PUSH2 0x23BC PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23CA DUP5 DUP3 DUP6 ADD PUSH2 0x2394 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DC DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23F5 PUSH0 DUP4 ADD DUP5 PUSH2 0x23D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2405 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2415 DUP2 PUSH2 0x23FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x242E PUSH0 DUP4 ADD DUP5 PUSH2 0x240C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x243D DUP2 PUSH2 0x2223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2456 PUSH0 DUP4 ADD DUP5 PUSH2 0x2434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x247D JUMPI PUSH2 0x247C PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x249A JUMPI PUSH2 0x2499 PUSH2 0x2460 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x24B6 JUMPI PUSH2 0x24B5 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x24D6 JUMPI PUSH2 0x24D5 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x24E3 DUP9 DUP3 DUP10 ADD PUSH2 0x2031 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x24F4 DUP9 DUP3 DUP10 ADD PUSH2 0x2031 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2505 DUP9 DUP3 DUP10 ADD PUSH2 0x2394 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2526 JUMPI PUSH2 0x2525 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2532 DUP9 DUP3 DUP10 ADD PUSH2 0x2468 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2557 JUMPI PUSH2 0x2556 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2574 JUMPI PUSH2 0x2573 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2580 DUP6 DUP3 DUP7 ADD PUSH2 0x2468 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x25CC PUSH0 DUP4 ADD DUP7 PUSH2 0x2356 JUMP JUMPDEST PUSH2 0x25D9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x23D3 JUMP JUMPDEST PUSH2 0x25E6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x23D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2627 DUP4 DUP6 PUSH2 0x25EE JUMP JUMPDEST SWAP4 POP PUSH2 0x2634 DUP4 DUP6 DUP5 PUSH2 0x25FE JUMP JUMPDEST PUSH2 0x263D DUP4 PUSH2 0x260C JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2661 DUP2 DUP5 DUP7 PUSH2 0x261C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267E DUP2 PUSH2 0x266A JUMP JUMPDEST DUP2 EQ PUSH2 0x2688 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2699 DUP2 PUSH2 0x2675 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26B4 JUMPI PUSH2 0x26B3 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x26C1 DUP5 DUP3 DUP6 ADD PUSH2 0x268B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x26FC DUP3 PUSH2 0x26CA JUMP JUMPDEST PUSH2 0x2706 DUP2 DUP6 PUSH2 0x26D4 JUMP JUMPDEST SWAP4 POP PUSH2 0x2716 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x26E4 JUMP JUMPDEST PUSH2 0x271F DUP2 PUSH2 0x260C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x273F PUSH0 DUP7 ADD DUP3 PUSH2 0x2265 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2757 DUP3 DUP3 PUSH2 0x26F2 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x277C DUP2 DUP5 PUSH2 0x272A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x278E DUP3 PUSH2 0x26CA JUMP JUMPDEST PUSH2 0x2798 DUP2 DUP6 PUSH2 0x25EE JUMP JUMPDEST SWAP4 POP PUSH2 0x27A8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x26E4 JUMP JUMPDEST PUSH2 0x27B1 DUP2 PUSH2 0x260C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x27D4 DUP2 DUP5 PUSH2 0x2784 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x27EF PUSH0 DUP4 ADD DUP7 PUSH2 0x2356 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2802 DUP2 DUP5 DUP7 PUSH2 0x261C JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2846 DUP3 PUSH2 0x260C JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2865 JUMPI PUSH2 0x2864 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2877 PUSH2 0x2001 JUMP JUMPDEST SWAP1 POP PUSH2 0x2883 DUP3 DUP3 PUSH2 0x283D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x2896 DUP3 PUSH2 0x2070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x28A7 DUP3 PUSH2 0x288C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28B7 DUP2 PUSH2 0x289D JUMP JUMPDEST DUP2 EQ PUSH2 0x28C1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x28D2 DUP2 PUSH2 0x28AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x28E6 DUP2 PUSH2 0x237E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x290A JUMPI PUSH2 0x2909 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST PUSH2 0x2913 DUP3 PUSH2 0x260C JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2932 PUSH2 0x292D DUP5 PUSH2 0x28F0 JUMP JUMPDEST PUSH2 0x286E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x294E JUMPI PUSH2 0x294D PUSH2 0x28EC JUMP JUMPDEST JUMPDEST PUSH2 0x2959 DUP5 DUP3 DUP6 PUSH2 0x26E4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2975 JUMPI PUSH2 0x2974 PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2985 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2920 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29A3 JUMPI PUSH2 0x29A2 PUSH2 0x280C JUMP JUMPDEST JUMPDEST PUSH2 0x29AD PUSH1 0x60 PUSH2 0x286E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x29BC DUP5 DUP3 DUP6 ADD PUSH2 0x268B JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x29CF DUP5 DUP3 DUP6 ADD PUSH2 0x28D8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29F3 JUMPI PUSH2 0x29F2 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x29FF DUP5 DUP3 DUP6 ADD PUSH2 0x2961 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A25 JUMPI PUSH2 0x2A24 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2A48 PUSH2 0x2A43 DUP5 PUSH2 0x2A0B JUMP JUMPDEST PUSH2 0x286E JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x2A6B JUMPI PUSH2 0x2A6A PUSH2 0x2464 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2AB2 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A90 JUMPI PUSH2 0x2A8F PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x2A9D DUP10 DUP3 PUSH2 0x298E JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2A6D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AD0 JUMPI PUSH2 0x2ACF PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2AE0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A36 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2AF2 DUP2 PUSH2 0x2223 JUMP JUMPDEST DUP2 EQ PUSH2 0x2AFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2B0D DUP2 PUSH2 0x2AE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2B21 DUP2 PUSH2 0x201B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3D JUMPI PUSH2 0x2B3C PUSH2 0x280C JUMP JUMPDEST JUMPDEST PUSH2 0x2B48 PUSH2 0x120 PUSH2 0x286E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2B57 DUP5 DUP3 DUP6 ADD PUSH2 0x28C4 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B7A JUMPI PUSH2 0x2B79 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2B86 DUP5 DUP3 DUP6 ADD PUSH2 0x298E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BAA JUMPI PUSH2 0x2BA9 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2BB6 DUP5 DUP3 DUP6 ADD PUSH2 0x298E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BDA JUMPI PUSH2 0x2BD9 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2BE6 DUP5 DUP3 DUP6 ADD PUSH2 0x298E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C0A JUMPI PUSH2 0x2C09 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2C16 DUP5 DUP3 DUP6 ADD PUSH2 0x2ABC JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x2C2A DUP5 DUP3 DUP6 ADD PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x2C3E DUP5 DUP3 DUP6 ADD PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x2C52 DUP5 DUP3 DUP6 ADD PUSH2 0x2B13 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x2C67 DUP5 DUP3 DUP6 ADD PUSH2 0x28D8 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C89 JUMPI PUSH2 0x2C88 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CA6 JUMPI PUSH2 0x2CA5 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2CB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2B27 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2CF2 DUP3 PUSH2 0x2223 JUMP JUMPDEST SWAP2 POP PUSH2 0x2CFD DUP4 PUSH2 0x2223 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D1D JUMPI PUSH2 0x2D1C PUSH2 0x2CBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D57 DUP2 PUSH2 0x2D23 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D70 PUSH0 DUP4 ADD DUP5 PUSH2 0x2D4E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2D80 DUP3 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D8B DUP4 PUSH2 0x2012 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2DA3 JUMPI PUSH2 0x2DA2 PUSH2 0x2CBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2DBC PUSH0 DUP4 ADD DUP7 PUSH2 0x2356 JUMP JUMPDEST PUSH2 0x2DC9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2356 JUMP JUMPDEST PUSH2 0x2DD6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2356 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2DE8 DUP3 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP PUSH2 0x2DF3 DUP4 PUSH2 0x2012 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x2E01 DUP2 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2E18 JUMPI PUSH2 0x2E17 PUSH2 0x2CBB JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2E56 DUP3 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP PUSH2 0x2E61 DUP4 PUSH2 0x2012 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2E71 JUMPI PUSH2 0x2E70 PUSH2 0x2E1F JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E8F PUSH0 DUP4 ADD DUP6 PUSH2 0x2D4E JUMP JUMPDEST PUSH2 0x2E9C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2356 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB8 JUMPI PUSH2 0x2EB7 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2ED5 JUMPI PUSH2 0x2ED4 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2EE1 DUP5 DUP3 DUP6 ADD PUSH2 0x2961 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 ADDRESS LOG1 EXP 0xA9 SWAP11 0xE4 PUSH1 0x6C 0xDB DUP7 0xC2 SELFBALANCE EXTCODESIZE 0x4F ORIGIN PUSH16 0x2CB4A4FADDF7D755F9D76BFB718ED264 PUSH20 0x6F6C634300081A00330000000000000000000000 ","sourceMap":"1093:11265:28:-:0;;;2062:14;2036:40;;2158:5;2130:33;;;;;;;;;;;;;;;;;;;;2252:5;2224:33;;;;;;;;;;;;;;;;;;;;2448:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2525:28;2542:10;2525:16;;;:28;;:::i;:::-;2574:9;2563:8;;:20;;;;;;;;;;;;;;;;;;2615;2593:19;;:42;;;;;;;;;;;;;;;;;;2448:194;;1093:11265;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4348:78::-;4412:10;4348:78;:::o;88:117:64:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:119::-;628:7;657:24;675:5;657:24;:::i;:::-;646:35;;568:119;;;:::o;693:168::-;789:47;830:5;789:47;:::i;:::-;782:5;779:58;769:86;;851:1;848;841:12;769:86;693:168;:::o;867:189::-;947:5;978:6;972:13;963:22;;994:56;1044:5;994:56;:::i;:::-;867:189;;;;:::o;1062:122::-;1135:24;1153:5;1135:24;:::i;:::-;1128:5;1125:35;1115:63;;1174:1;1171;1164:12;1115:63;1062:122;:::o;1190:143::-;1247:5;1278:6;1272:13;1263:22;;1294:33;1321:5;1294:33;:::i;:::-;1190:143;;;;:::o;1339:553::-;1441:6;1449;1498:2;1486:9;1477:7;1473:23;1469:32;1466:119;;;1504:79;;:::i;:::-;1466:119;1624:1;1649:87;1728:7;1719:6;1708:9;1704:22;1649:87;:::i;:::-;1639:97;;1595:151;1785:2;1811:64;1867:7;1858:6;1847:9;1843:22;1811:64;:::i;:::-;1801:74;;1756:129;1339:553;;;;;:::o;1093:11265:28:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@FEE_DENOMINATOR_11625":{"entryPoint":2937,"id":11625,"parameterSlots":0,"returnSlots":0},"@_checkBudget_12008":{"entryPoint":6043,"id":12008,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6308":{"entryPoint":5271,"id":6308,"parameterSlots":0,"returnSlots":0},"@_checkTarget_12040":{"entryPoint":7299,"id":12040,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":7266,"id":6274,"parameterSlots":0,"returnSlots":1},"@_makeIncentives_12189":{"entryPoint":6296,"id":12189,"parameterSlots":2,"returnSlots":1},"@_makeTarget_12067":{"entryPoint":6262,"id":12067,"parameterSlots":3,"returnSlots":1},"@_maybeClone_12227":{"entryPoint":7546,"id":12227,"parameterSlots":2,"returnSlots":1},"@_ownershipHandoverValidFor_6319":{"entryPoint":5261,"id":6319,"parameterSlots":0,"returnSlots":1},"@_routeClaimFee_12293":{"entryPoint":5524,"id":12293,"parameterSlots":2,"returnSlots":0},"@_setOwner_6302":{"entryPoint":5326,"id":6302,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":1930,"id":6368,"parameterSlots":0,"returnSlots":0},"@cdDecompress_10993":{"entryPoint":5890,"id":10993,"parameterSlots":1,"returnSlots":1},"@claimFee_11613":{"entryPoint":2906,"id":11613,"parameterSlots":0,"returnSlots":0},"@claimIncentive_11927":{"entryPoint":2120,"id":11927,"parameterSlots":5,"returnSlots":0},"@clone_9251":{"entryPoint":7734,"id":9251,"parameterSlots":1,"returnSlots":1},"@clone_9263":{"entryPoint":7752,"id":9263,"parameterSlots":2,"returnSlots":1},"@completeOwnershipHandover_6382":{"entryPoint":5133,"id":6382,"parameterSlots":1,"returnSlots":0},"@createBoost_11844":{"entryPoint":2943,"id":11844,"parameterSlots":2,"returnSlots":1},"@getBoostCount_11951":{"entryPoint":1987,"id":11951,"parameterSlots":0,"returnSlots":1},"@getBoost_11941":{"entryPoint":989,"id":11941,"parameterSlots":1,"returnSlots":1},"@owner_6390":{"entryPoint":2080,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":5236,"id":6400,"parameterSlots":1,"returnSlots":1},"@protocolFeeReceiver_11609":{"entryPoint":1818,"id":11609,"parameterSlots":0,"returnSlots":0},"@protocolFee_11617":{"entryPoint":2912,"id":11617,"parameterSlots":0,"returnSlots":0},"@referralFee_11621":{"entryPoint":2054,"id":11621,"parameterSlots":0,"returnSlots":0},"@registry_11606":{"entryPoint":2017,"id":11606,"parameterSlots":0,"returnSlots":0},"@renounceOwnership_6347":{"entryPoint":1998,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1719,"id":6362,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11075":{"entryPoint":7270,"id":11075,"parameterSlots":2,"returnSlots":0},"@setClaimFee_11977":{"entryPoint":1800,"id":11977,"parameterSlots":1,"returnSlots":0},"@setProtocolFeeReceiver_11964":{"entryPoint":1855,"id":11964,"parameterSlots":1,"returnSlots":0},"@transferOwnership_6333":{"entryPoint":5195,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory":{"entryPoint":10806,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":10528,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":9108,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":10456,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory":{"entryPoint":10940,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":9867,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":9320,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":10593,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_Budget_$15659_fromMemory":{"entryPoint":10436,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$11583_memory_ptr_fromMemory":{"entryPoint":11047,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory":{"entryPoint":10638,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":8241,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":11027,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64_fromMemory":{"entryPoint":11007,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":9128,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":9887,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":9537,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes_memory_ptr_fromMemory":{"entryPoint":11939,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$11583_memory_ptr_fromMemory":{"entryPoint":11380,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":8261,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr":{"entryPoint":9405,"id":null,"parameterSlots":2,"returnSlots":5},"abi_encodeUpdatedPos_t_contract$_Incentive_$18196_to_t_address":{"entryPoint":8612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":8805,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":9046,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":8647,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":11598,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":9756,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":9970,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":10116,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Action_$13114_to_t_address":{"entryPoint":8411,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_AllowList_$13587_to_t_address":{"entryPoint":8475,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_BoostRegistry_$12709_to_t_address_fromStack":{"entryPoint":9228,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Budget_$15659_to_t_address_payable":{"entryPoint":8524,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Incentive_$18196_to_t_address":{"entryPoint":8597,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Validator_$19130_to_t_address":{"entryPoint":8443,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Boost_$18393_memory_ptr_to_t_struct$_Boost_$18393_memory_ptr_fromStack":{"entryPoint":8820,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack":{"entryPoint":10026,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":8773,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":9171,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64":{"entryPoint":8758,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":9268,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":9061,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed":{"entryPoint":11689,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10204,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":9657,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":11613,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed":{"entryPoint":11900,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9800,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":10172,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_BoostRegistry_$12709__to_t_address__fromStack_reversed":{"entryPoint":9243,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Boost_$18393_memory_ptr__to_t_struct$_Boost_$18393_memory_ptr__fromStack_reversed":{"entryPoint":9014,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed":{"entryPoint":10084,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":9186,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":9283,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":10350,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":8193,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr":{"entryPoint":10763,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":10480,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr":{"entryPoint":8565,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr":{"entryPoint":8539,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":9930,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr":{"entryPoint":8635,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":8549,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":9940,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":9710,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":11496,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":11852,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":11742,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":11638,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":8788,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":10380,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":9834,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":11555,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_Budget_$15659":{"entryPoint":10397,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":8304,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":8210,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":8739,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Action_$13114_to_t_address":{"entryPoint":8394,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_AllowList_$13587_to_t_address":{"entryPoint":8458,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_BoostRegistry_$12709_to_t_address":{"entryPoint":9211,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Budget_$15659_to_t_address_payable":{"entryPoint":8507,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Incentive_$18196_to_t_address":{"entryPoint":8580,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$19130_to_t_address":{"entryPoint":8426,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":8377,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address_payable":{"entryPoint":8490,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":8344,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":9726,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":9956,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":10301,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":8335,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x01":{"entryPoint":12010,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x11":{"entryPoint":11451,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":11807,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9612,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":10256,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":9312,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":9308,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":10252,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":10376,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":9316,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":10476,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":8206,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":8202,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":9740,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":9086,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":9845,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_Budget_$15659":{"entryPoint":10414,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8219,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":10985,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:30797:64","nodeType":"YulBlock","src":"0:30797:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"379:32:64","nodeType":"YulBlock","src":"379:32:64","statements":[{"nativeSrc":"389:16:64","nodeType":"YulAssignment","src":"389:16:64","value":{"name":"value","nativeSrc":"400:5:64","nodeType":"YulIdentifier","src":"400:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:64","nodeType":"YulIdentifier","src":"389:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"334:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:64","nodeType":"YulTypedName","src":"361:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:64","nodeType":"YulTypedName","src":"371:7:64","type":""}],"src":"334:77:64"},{"body":{"nativeSrc":"460:79:64","nodeType":"YulBlock","src":"460:79:64","statements":[{"body":{"nativeSrc":"517:16:64","nodeType":"YulBlock","src":"517:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"526:1:64","nodeType":"YulLiteral","src":"526:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"529:1:64","nodeType":"YulLiteral","src":"529:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"519:6:64","nodeType":"YulIdentifier","src":"519:6:64"},"nativeSrc":"519:12:64","nodeType":"YulFunctionCall","src":"519:12:64"},"nativeSrc":"519:12:64","nodeType":"YulExpressionStatement","src":"519:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"483:5:64","nodeType":"YulIdentifier","src":"483:5:64"},{"arguments":[{"name":"value","nativeSrc":"508:5:64","nodeType":"YulIdentifier","src":"508:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"490:17:64","nodeType":"YulIdentifier","src":"490:17:64"},"nativeSrc":"490:24:64","nodeType":"YulFunctionCall","src":"490:24:64"}],"functionName":{"name":"eq","nativeSrc":"480:2:64","nodeType":"YulIdentifier","src":"480:2:64"},"nativeSrc":"480:35:64","nodeType":"YulFunctionCall","src":"480:35:64"}],"functionName":{"name":"iszero","nativeSrc":"473:6:64","nodeType":"YulIdentifier","src":"473:6:64"},"nativeSrc":"473:43:64","nodeType":"YulFunctionCall","src":"473:43:64"},"nativeSrc":"470:63:64","nodeType":"YulIf","src":"470:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"417:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"453:5:64","nodeType":"YulTypedName","src":"453:5:64","type":""}],"src":"417:122:64"},{"body":{"nativeSrc":"597:87:64","nodeType":"YulBlock","src":"597:87:64","statements":[{"nativeSrc":"607:29:64","nodeType":"YulAssignment","src":"607:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"629:6:64","nodeType":"YulIdentifier","src":"629:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"616:12:64","nodeType":"YulIdentifier","src":"616:12:64"},"nativeSrc":"616:20:64","nodeType":"YulFunctionCall","src":"616:20:64"},"variableNames":[{"name":"value","nativeSrc":"607:5:64","nodeType":"YulIdentifier","src":"607:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"672:5:64","nodeType":"YulIdentifier","src":"672:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"645:26:64","nodeType":"YulIdentifier","src":"645:26:64"},"nativeSrc":"645:33:64","nodeType":"YulFunctionCall","src":"645:33:64"},"nativeSrc":"645:33:64","nodeType":"YulExpressionStatement","src":"645:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"545:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"575:6:64","nodeType":"YulTypedName","src":"575:6:64","type":""},{"name":"end","nativeSrc":"583:3:64","nodeType":"YulTypedName","src":"583:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"591:5:64","nodeType":"YulTypedName","src":"591:5:64","type":""}],"src":"545:139:64"},{"body":{"nativeSrc":"756:263:64","nodeType":"YulBlock","src":"756:263:64","statements":[{"body":{"nativeSrc":"802:83:64","nodeType":"YulBlock","src":"802:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"804:77:64","nodeType":"YulIdentifier","src":"804:77:64"},"nativeSrc":"804:79:64","nodeType":"YulFunctionCall","src":"804:79:64"},"nativeSrc":"804:79:64","nodeType":"YulExpressionStatement","src":"804:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"777:7:64","nodeType":"YulIdentifier","src":"777:7:64"},{"name":"headStart","nativeSrc":"786:9:64","nodeType":"YulIdentifier","src":"786:9:64"}],"functionName":{"name":"sub","nativeSrc":"773:3:64","nodeType":"YulIdentifier","src":"773:3:64"},"nativeSrc":"773:23:64","nodeType":"YulFunctionCall","src":"773:23:64"},{"kind":"number","nativeSrc":"798:2:64","nodeType":"YulLiteral","src":"798:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"769:3:64","nodeType":"YulIdentifier","src":"769:3:64"},"nativeSrc":"769:32:64","nodeType":"YulFunctionCall","src":"769:32:64"},"nativeSrc":"766:119:64","nodeType":"YulIf","src":"766:119:64"},{"nativeSrc":"895:117:64","nodeType":"YulBlock","src":"895:117:64","statements":[{"nativeSrc":"910:15:64","nodeType":"YulVariableDeclaration","src":"910:15:64","value":{"kind":"number","nativeSrc":"924:1:64","nodeType":"YulLiteral","src":"924:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"914:6:64","nodeType":"YulTypedName","src":"914:6:64","type":""}]},{"nativeSrc":"939:63:64","nodeType":"YulAssignment","src":"939:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"974:9:64","nodeType":"YulIdentifier","src":"974:9:64"},{"name":"offset","nativeSrc":"985:6:64","nodeType":"YulIdentifier","src":"985:6:64"}],"functionName":{"name":"add","nativeSrc":"970:3:64","nodeType":"YulIdentifier","src":"970:3:64"},"nativeSrc":"970:22:64","nodeType":"YulFunctionCall","src":"970:22:64"},{"name":"dataEnd","nativeSrc":"994:7:64","nodeType":"YulIdentifier","src":"994:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"949:20:64","nodeType":"YulIdentifier","src":"949:20:64"},"nativeSrc":"949:53:64","nodeType":"YulFunctionCall","src":"949:53:64"},"variableNames":[{"name":"value0","nativeSrc":"939:6:64","nodeType":"YulIdentifier","src":"939:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"690:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"726:9:64","nodeType":"YulTypedName","src":"726:9:64","type":""},{"name":"dataEnd","nativeSrc":"737:7:64","nodeType":"YulTypedName","src":"737:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"749:6:64","nodeType":"YulTypedName","src":"749:6:64","type":""}],"src":"690:329:64"},{"body":{"nativeSrc":"1070:81:64","nodeType":"YulBlock","src":"1070:81:64","statements":[{"nativeSrc":"1080:65:64","nodeType":"YulAssignment","src":"1080:65:64","value":{"arguments":[{"name":"value","nativeSrc":"1095:5:64","nodeType":"YulIdentifier","src":"1095:5:64"},{"kind":"number","nativeSrc":"1102:42:64","nodeType":"YulLiteral","src":"1102:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1091:3:64","nodeType":"YulIdentifier","src":"1091:3:64"},"nativeSrc":"1091:54:64","nodeType":"YulFunctionCall","src":"1091:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1080:7:64","nodeType":"YulIdentifier","src":"1080:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1025:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1052:5:64","nodeType":"YulTypedName","src":"1052:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1062:7:64","nodeType":"YulTypedName","src":"1062:7:64","type":""}],"src":"1025:126:64"},{"body":{"nativeSrc":"1189:28:64","nodeType":"YulBlock","src":"1189:28:64","statements":[{"nativeSrc":"1199:12:64","nodeType":"YulAssignment","src":"1199:12:64","value":{"name":"value","nativeSrc":"1206:5:64","nodeType":"YulIdentifier","src":"1206:5:64"},"variableNames":[{"name":"ret","nativeSrc":"1199:3:64","nodeType":"YulIdentifier","src":"1199:3:64"}]}]},"name":"identity","nativeSrc":"1157:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1175:5:64","nodeType":"YulTypedName","src":"1175:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1185:3:64","nodeType":"YulTypedName","src":"1185:3:64","type":""}],"src":"1157:60:64"},{"body":{"nativeSrc":"1283:82:64","nodeType":"YulBlock","src":"1283:82:64","statements":[{"nativeSrc":"1293:66:64","nodeType":"YulAssignment","src":"1293:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1351:5:64","nodeType":"YulIdentifier","src":"1351:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1333:17:64","nodeType":"YulIdentifier","src":"1333:17:64"},"nativeSrc":"1333:24:64","nodeType":"YulFunctionCall","src":"1333:24:64"}],"functionName":{"name":"identity","nativeSrc":"1324:8:64","nodeType":"YulIdentifier","src":"1324:8:64"},"nativeSrc":"1324:34:64","nodeType":"YulFunctionCall","src":"1324:34:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1306:17:64","nodeType":"YulIdentifier","src":"1306:17:64"},"nativeSrc":"1306:53:64","nodeType":"YulFunctionCall","src":"1306:53:64"},"variableNames":[{"name":"converted","nativeSrc":"1293:9:64","nodeType":"YulIdentifier","src":"1293:9:64"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1223:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1263:5:64","nodeType":"YulTypedName","src":"1263:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1273:9:64","nodeType":"YulTypedName","src":"1273:9:64","type":""}],"src":"1223:142:64"},{"body":{"nativeSrc":"1431:66:64","nodeType":"YulBlock","src":"1431:66:64","statements":[{"nativeSrc":"1441:50:64","nodeType":"YulAssignment","src":"1441:50:64","value":{"arguments":[{"name":"value","nativeSrc":"1485:5:64","nodeType":"YulIdentifier","src":"1485:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"1454:30:64","nodeType":"YulIdentifier","src":"1454:30:64"},"nativeSrc":"1454:37:64","nodeType":"YulFunctionCall","src":"1454:37:64"},"variableNames":[{"name":"converted","nativeSrc":"1441:9:64","nodeType":"YulIdentifier","src":"1441:9:64"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"1371:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1411:5:64","nodeType":"YulTypedName","src":"1411:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1421:9:64","nodeType":"YulTypedName","src":"1421:9:64","type":""}],"src":"1371:126:64"},{"body":{"nativeSrc":"1579:66:64","nodeType":"YulBlock","src":"1579:66:64","statements":[{"nativeSrc":"1589:50:64","nodeType":"YulAssignment","src":"1589:50:64","value":{"arguments":[{"name":"value","nativeSrc":"1633:5:64","nodeType":"YulIdentifier","src":"1633:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1602:30:64","nodeType":"YulIdentifier","src":"1602:30:64"},"nativeSrc":"1602:37:64","nodeType":"YulFunctionCall","src":"1602:37:64"},"variableNames":[{"name":"converted","nativeSrc":"1589:9:64","nodeType":"YulIdentifier","src":"1589:9:64"}]}]},"name":"convert_t_contract$_Action_$13114_to_t_address","nativeSrc":"1503:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1559:5:64","nodeType":"YulTypedName","src":"1559:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1569:9:64","nodeType":"YulTypedName","src":"1569:9:64","type":""}],"src":"1503:142:64"},{"body":{"nativeSrc":"1722:82:64","nodeType":"YulBlock","src":"1722:82:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1739:3:64","nodeType":"YulIdentifier","src":"1739:3:64"},{"arguments":[{"name":"value","nativeSrc":"1791:5:64","nodeType":"YulIdentifier","src":"1791:5:64"}],"functionName":{"name":"convert_t_contract$_Action_$13114_to_t_address","nativeSrc":"1744:46:64","nodeType":"YulIdentifier","src":"1744:46:64"},"nativeSrc":"1744:53:64","nodeType":"YulFunctionCall","src":"1744:53:64"}],"functionName":{"name":"mstore","nativeSrc":"1732:6:64","nodeType":"YulIdentifier","src":"1732:6:64"},"nativeSrc":"1732:66:64","nodeType":"YulFunctionCall","src":"1732:66:64"},"nativeSrc":"1732:66:64","nodeType":"YulExpressionStatement","src":"1732:66:64"}]},"name":"abi_encode_t_contract$_Action_$13114_to_t_address","nativeSrc":"1651:153:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1710:5:64","nodeType":"YulTypedName","src":"1710:5:64","type":""},{"name":"pos","nativeSrc":"1717:3:64","nodeType":"YulTypedName","src":"1717:3:64","type":""}],"src":"1651:153:64"},{"body":{"nativeSrc":"1889:66:64","nodeType":"YulBlock","src":"1889:66:64","statements":[{"nativeSrc":"1899:50:64","nodeType":"YulAssignment","src":"1899:50:64","value":{"arguments":[{"name":"value","nativeSrc":"1943:5:64","nodeType":"YulIdentifier","src":"1943:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"1912:30:64","nodeType":"YulIdentifier","src":"1912:30:64"},"nativeSrc":"1912:37:64","nodeType":"YulFunctionCall","src":"1912:37:64"},"variableNames":[{"name":"converted","nativeSrc":"1899:9:64","nodeType":"YulIdentifier","src":"1899:9:64"}]}]},"name":"convert_t_contract$_Validator_$19130_to_t_address","nativeSrc":"1810:145:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1869:5:64","nodeType":"YulTypedName","src":"1869:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1879:9:64","nodeType":"YulTypedName","src":"1879:9:64","type":""}],"src":"1810:145:64"},{"body":{"nativeSrc":"2035:85:64","nodeType":"YulBlock","src":"2035:85:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2052:3:64","nodeType":"YulIdentifier","src":"2052:3:64"},{"arguments":[{"name":"value","nativeSrc":"2107:5:64","nodeType":"YulIdentifier","src":"2107:5:64"}],"functionName":{"name":"convert_t_contract$_Validator_$19130_to_t_address","nativeSrc":"2057:49:64","nodeType":"YulIdentifier","src":"2057:49:64"},"nativeSrc":"2057:56:64","nodeType":"YulFunctionCall","src":"2057:56:64"}],"functionName":{"name":"mstore","nativeSrc":"2045:6:64","nodeType":"YulIdentifier","src":"2045:6:64"},"nativeSrc":"2045:69:64","nodeType":"YulFunctionCall","src":"2045:69:64"},"nativeSrc":"2045:69:64","nodeType":"YulExpressionStatement","src":"2045:69:64"}]},"name":"abi_encode_t_contract$_Validator_$19130_to_t_address","nativeSrc":"1961:159:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2023:5:64","nodeType":"YulTypedName","src":"2023:5:64","type":""},{"name":"pos","nativeSrc":"2030:3:64","nodeType":"YulTypedName","src":"2030:3:64","type":""}],"src":"1961:159:64"},{"body":{"nativeSrc":"2205:66:64","nodeType":"YulBlock","src":"2205:66:64","statements":[{"nativeSrc":"2215:50:64","nodeType":"YulAssignment","src":"2215:50:64","value":{"arguments":[{"name":"value","nativeSrc":"2259:5:64","nodeType":"YulIdentifier","src":"2259:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2228:30:64","nodeType":"YulIdentifier","src":"2228:30:64"},"nativeSrc":"2228:37:64","nodeType":"YulFunctionCall","src":"2228:37:64"},"variableNames":[{"name":"converted","nativeSrc":"2215:9:64","nodeType":"YulIdentifier","src":"2215:9:64"}]}]},"name":"convert_t_contract$_AllowList_$13587_to_t_address","nativeSrc":"2126:145:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2185:5:64","nodeType":"YulTypedName","src":"2185:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2195:9:64","nodeType":"YulTypedName","src":"2195:9:64","type":""}],"src":"2126:145:64"},{"body":{"nativeSrc":"2351:85:64","nodeType":"YulBlock","src":"2351:85:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2368:3:64","nodeType":"YulIdentifier","src":"2368:3:64"},{"arguments":[{"name":"value","nativeSrc":"2423:5:64","nodeType":"YulIdentifier","src":"2423:5:64"}],"functionName":{"name":"convert_t_contract$_AllowList_$13587_to_t_address","nativeSrc":"2373:49:64","nodeType":"YulIdentifier","src":"2373:49:64"},"nativeSrc":"2373:56:64","nodeType":"YulFunctionCall","src":"2373:56:64"}],"functionName":{"name":"mstore","nativeSrc":"2361:6:64","nodeType":"YulIdentifier","src":"2361:6:64"},"nativeSrc":"2361:69:64","nodeType":"YulFunctionCall","src":"2361:69:64"},"nativeSrc":"2361:69:64","nodeType":"YulExpressionStatement","src":"2361:69:64"}]},"name":"abi_encode_t_contract$_AllowList_$13587_to_t_address","nativeSrc":"2277:159:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2339:5:64","nodeType":"YulTypedName","src":"2339:5:64","type":""},{"name":"pos","nativeSrc":"2346:3:64","nodeType":"YulTypedName","src":"2346:3:64","type":""}],"src":"2277:159:64"},{"body":{"nativeSrc":"2510:66:64","nodeType":"YulBlock","src":"2510:66:64","statements":[{"nativeSrc":"2520:50:64","nodeType":"YulAssignment","src":"2520:50:64","value":{"arguments":[{"name":"value","nativeSrc":"2564:5:64","nodeType":"YulIdentifier","src":"2564:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2533:30:64","nodeType":"YulIdentifier","src":"2533:30:64"},"nativeSrc":"2533:37:64","nodeType":"YulFunctionCall","src":"2533:37:64"},"variableNames":[{"name":"converted","nativeSrc":"2520:9:64","nodeType":"YulIdentifier","src":"2520:9:64"}]}]},"name":"convert_t_uint160_to_t_address_payable","nativeSrc":"2442:134:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2490:5:64","nodeType":"YulTypedName","src":"2490:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2500:9:64","nodeType":"YulTypedName","src":"2500:9:64","type":""}],"src":"2442:134:64"},{"body":{"nativeSrc":"2666:74:64","nodeType":"YulBlock","src":"2666:74:64","statements":[{"nativeSrc":"2676:58:64","nodeType":"YulAssignment","src":"2676:58:64","value":{"arguments":[{"name":"value","nativeSrc":"2728:5:64","nodeType":"YulIdentifier","src":"2728:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address_payable","nativeSrc":"2689:38:64","nodeType":"YulIdentifier","src":"2689:38:64"},"nativeSrc":"2689:45:64","nodeType":"YulFunctionCall","src":"2689:45:64"},"variableNames":[{"name":"converted","nativeSrc":"2676:9:64","nodeType":"YulIdentifier","src":"2676:9:64"}]}]},"name":"convert_t_contract$_Budget_$15659_to_t_address_payable","nativeSrc":"2582:158:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2646:5:64","nodeType":"YulTypedName","src":"2646:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2656:9:64","nodeType":"YulTypedName","src":"2656:9:64","type":""}],"src":"2582:158:64"},{"body":{"nativeSrc":"2825:90:64","nodeType":"YulBlock","src":"2825:90:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2842:3:64","nodeType":"YulIdentifier","src":"2842:3:64"},{"arguments":[{"name":"value","nativeSrc":"2902:5:64","nodeType":"YulIdentifier","src":"2902:5:64"}],"functionName":{"name":"convert_t_contract$_Budget_$15659_to_t_address_payable","nativeSrc":"2847:54:64","nodeType":"YulIdentifier","src":"2847:54:64"},"nativeSrc":"2847:61:64","nodeType":"YulFunctionCall","src":"2847:61:64"}],"functionName":{"name":"mstore","nativeSrc":"2835:6:64","nodeType":"YulIdentifier","src":"2835:6:64"},"nativeSrc":"2835:74:64","nodeType":"YulFunctionCall","src":"2835:74:64"},"nativeSrc":"2835:74:64","nodeType":"YulExpressionStatement","src":"2835:74:64"}]},"name":"abi_encode_t_contract$_Budget_$15659_to_t_address_payable","nativeSrc":"2746:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2813:5:64","nodeType":"YulTypedName","src":"2813:5:64","type":""},{"name":"pos","nativeSrc":"2820:3:64","nodeType":"YulTypedName","src":"2820:3:64","type":""}],"src":"2746:169:64"},{"body":{"nativeSrc":"3014:40:64","nodeType":"YulBlock","src":"3014:40:64","statements":[{"nativeSrc":"3025:22:64","nodeType":"YulAssignment","src":"3025:22:64","value":{"arguments":[{"name":"value","nativeSrc":"3041:5:64","nodeType":"YulIdentifier","src":"3041:5:64"}],"functionName":{"name":"mload","nativeSrc":"3035:5:64","nodeType":"YulIdentifier","src":"3035:5:64"},"nativeSrc":"3035:12:64","nodeType":"YulFunctionCall","src":"3035:12:64"},"variableNames":[{"name":"length","nativeSrc":"3025:6:64","nodeType":"YulIdentifier","src":"3025:6:64"}]}]},"name":"array_length_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","nativeSrc":"2921:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2997:5:64","nodeType":"YulTypedName","src":"2997:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3007:6:64","nodeType":"YulTypedName","src":"3007:6:64","type":""}],"src":"2921:133:64"},{"body":{"nativeSrc":"3161:73:64","nodeType":"YulBlock","src":"3161:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3178:3:64","nodeType":"YulIdentifier","src":"3178:3:64"},{"name":"length","nativeSrc":"3183:6:64","nodeType":"YulIdentifier","src":"3183:6:64"}],"functionName":{"name":"mstore","nativeSrc":"3171:6:64","nodeType":"YulIdentifier","src":"3171:6:64"},"nativeSrc":"3171:19:64","nodeType":"YulFunctionCall","src":"3171:19:64"},"nativeSrc":"3171:19:64","nodeType":"YulExpressionStatement","src":"3171:19:64"},{"nativeSrc":"3199:29:64","nodeType":"YulAssignment","src":"3199:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"3218:3:64","nodeType":"YulIdentifier","src":"3218:3:64"},{"kind":"number","nativeSrc":"3223:4:64","nodeType":"YulLiteral","src":"3223:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3214:3:64","nodeType":"YulIdentifier","src":"3214:3:64"},"nativeSrc":"3214:14:64","nodeType":"YulFunctionCall","src":"3214:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"3199:11:64","nodeType":"YulIdentifier","src":"3199:11:64"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"3060:174:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3133:3:64","nodeType":"YulTypedName","src":"3133:3:64","type":""},{"name":"length","nativeSrc":"3138:6:64","nodeType":"YulTypedName","src":"3138:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3149:11:64","nodeType":"YulTypedName","src":"3149:11:64","type":""}],"src":"3060:174:64"},{"body":{"nativeSrc":"3331:60:64","nodeType":"YulBlock","src":"3331:60:64","statements":[{"nativeSrc":"3341:11:64","nodeType":"YulAssignment","src":"3341:11:64","value":{"name":"ptr","nativeSrc":"3349:3:64","nodeType":"YulIdentifier","src":"3349:3:64"},"variableNames":[{"name":"data","nativeSrc":"3341:4:64","nodeType":"YulIdentifier","src":"3341:4:64"}]},{"nativeSrc":"3362:22:64","nodeType":"YulAssignment","src":"3362:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"3374:3:64","nodeType":"YulIdentifier","src":"3374:3:64"},{"kind":"number","nativeSrc":"3379:4:64","nodeType":"YulLiteral","src":"3379:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3370:3:64","nodeType":"YulIdentifier","src":"3370:3:64"},"nativeSrc":"3370:14:64","nodeType":"YulFunctionCall","src":"3370:14:64"},"variableNames":[{"name":"data","nativeSrc":"3362:4:64","nodeType":"YulIdentifier","src":"3362:4:64"}]}]},"name":"array_dataslot_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","nativeSrc":"3240:151:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"3318:3:64","nodeType":"YulTypedName","src":"3318:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"3326:4:64","nodeType":"YulTypedName","src":"3326:4:64","type":""}],"src":"3240:151:64"},{"body":{"nativeSrc":"3476:66:64","nodeType":"YulBlock","src":"3476:66:64","statements":[{"nativeSrc":"3486:50:64","nodeType":"YulAssignment","src":"3486:50:64","value":{"arguments":[{"name":"value","nativeSrc":"3530:5:64","nodeType":"YulIdentifier","src":"3530:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3499:30:64","nodeType":"YulIdentifier","src":"3499:30:64"},"nativeSrc":"3499:37:64","nodeType":"YulFunctionCall","src":"3499:37:64"},"variableNames":[{"name":"converted","nativeSrc":"3486:9:64","nodeType":"YulIdentifier","src":"3486:9:64"}]}]},"name":"convert_t_contract$_Incentive_$18196_to_t_address","nativeSrc":"3397:145:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3456:5:64","nodeType":"YulTypedName","src":"3456:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3466:9:64","nodeType":"YulTypedName","src":"3466:9:64","type":""}],"src":"3397:145:64"},{"body":{"nativeSrc":"3622:85:64","nodeType":"YulBlock","src":"3622:85:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3639:3:64","nodeType":"YulIdentifier","src":"3639:3:64"},{"arguments":[{"name":"value","nativeSrc":"3694:5:64","nodeType":"YulIdentifier","src":"3694:5:64"}],"functionName":{"name":"convert_t_contract$_Incentive_$18196_to_t_address","nativeSrc":"3644:49:64","nodeType":"YulIdentifier","src":"3644:49:64"},"nativeSrc":"3644:56:64","nodeType":"YulFunctionCall","src":"3644:56:64"}],"functionName":{"name":"mstore","nativeSrc":"3632:6:64","nodeType":"YulIdentifier","src":"3632:6:64"},"nativeSrc":"3632:69:64","nodeType":"YulFunctionCall","src":"3632:69:64"},"nativeSrc":"3632:69:64","nodeType":"YulExpressionStatement","src":"3632:69:64"}]},"name":"abi_encode_t_contract$_Incentive_$18196_to_t_address","nativeSrc":"3548:159:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3610:5:64","nodeType":"YulTypedName","src":"3610:5:64","type":""},{"name":"pos","nativeSrc":"3617:3:64","nodeType":"YulTypedName","src":"3617:3:64","type":""}],"src":"3548:159:64"},{"body":{"nativeSrc":"3812:118:64","nodeType":"YulBlock","src":"3812:118:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"3875:6:64","nodeType":"YulIdentifier","src":"3875:6:64"},{"name":"pos","nativeSrc":"3883:3:64","nodeType":"YulIdentifier","src":"3883:3:64"}],"functionName":{"name":"abi_encode_t_contract$_Incentive_$18196_to_t_address","nativeSrc":"3822:52:64","nodeType":"YulIdentifier","src":"3822:52:64"},"nativeSrc":"3822:65:64","nodeType":"YulFunctionCall","src":"3822:65:64"},"nativeSrc":"3822:65:64","nodeType":"YulExpressionStatement","src":"3822:65:64"},{"nativeSrc":"3896:28:64","nodeType":"YulAssignment","src":"3896:28:64","value":{"arguments":[{"name":"pos","nativeSrc":"3914:3:64","nodeType":"YulIdentifier","src":"3914:3:64"},{"kind":"number","nativeSrc":"3919:4:64","nodeType":"YulLiteral","src":"3919:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3910:3:64","nodeType":"YulIdentifier","src":"3910:3:64"},"nativeSrc":"3910:14:64","nodeType":"YulFunctionCall","src":"3910:14:64"},"variableNames":[{"name":"updatedPos","nativeSrc":"3896:10:64","nodeType":"YulIdentifier","src":"3896:10:64"}]}]},"name":"abi_encodeUpdatedPos_t_contract$_Incentive_$18196_to_t_address","nativeSrc":"3713:217:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"3785:6:64","nodeType":"YulTypedName","src":"3785:6:64","type":""},{"name":"pos","nativeSrc":"3793:3:64","nodeType":"YulTypedName","src":"3793:3:64","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"3801:10:64","nodeType":"YulTypedName","src":"3801:10:64","type":""}],"src":"3713:217:64"},{"body":{"nativeSrc":"4030:38:64","nodeType":"YulBlock","src":"4030:38:64","statements":[{"nativeSrc":"4040:22:64","nodeType":"YulAssignment","src":"4040:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"4052:3:64","nodeType":"YulIdentifier","src":"4052:3:64"},{"kind":"number","nativeSrc":"4057:4:64","nodeType":"YulLiteral","src":"4057:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4048:3:64","nodeType":"YulIdentifier","src":"4048:3:64"},"nativeSrc":"4048:14:64","nodeType":"YulFunctionCall","src":"4048:14:64"},"variableNames":[{"name":"next","nativeSrc":"4040:4:64","nodeType":"YulIdentifier","src":"4040:4:64"}]}]},"name":"array_nextElement_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","nativeSrc":"3936:132:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"4017:3:64","nodeType":"YulTypedName","src":"4017:3:64","type":""}],"returnVariables":[{"name":"next","nativeSrc":"4025:4:64","nodeType":"YulTypedName","src":"4025:4:64","type":""}],"src":"3936:132:64"},{"body":{"nativeSrc":"4248:674:64","nodeType":"YulBlock","src":"4248:674:64","statements":[{"nativeSrc":"4258:87:64","nodeType":"YulVariableDeclaration","src":"4258:87:64","value":{"arguments":[{"name":"value","nativeSrc":"4339:5:64","nodeType":"YulIdentifier","src":"4339:5:64"}],"functionName":{"name":"array_length_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","nativeSrc":"4272:66:64","nodeType":"YulIdentifier","src":"4272:66:64"},"nativeSrc":"4272:73:64","nodeType":"YulFunctionCall","src":"4272:73:64"},"variables":[{"name":"length","nativeSrc":"4262:6:64","nodeType":"YulTypedName","src":"4262:6:64","type":""}]},{"nativeSrc":"4354:83:64","nodeType":"YulAssignment","src":"4354:83:64","value":{"arguments":[{"name":"pos","nativeSrc":"4425:3:64","nodeType":"YulIdentifier","src":"4425:3:64"},{"name":"length","nativeSrc":"4430:6:64","nodeType":"YulIdentifier","src":"4430:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"4361:63:64","nodeType":"YulIdentifier","src":"4361:63:64"},"nativeSrc":"4361:76:64","nodeType":"YulFunctionCall","src":"4361:76:64"},"variableNames":[{"name":"pos","nativeSrc":"4354:3:64","nodeType":"YulIdentifier","src":"4354:3:64"}]},{"nativeSrc":"4446:90:64","nodeType":"YulVariableDeclaration","src":"4446:90:64","value":{"arguments":[{"name":"value","nativeSrc":"4530:5:64","nodeType":"YulIdentifier","src":"4530:5:64"}],"functionName":{"name":"array_dataslot_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","nativeSrc":"4461:68:64","nodeType":"YulIdentifier","src":"4461:68:64"},"nativeSrc":"4461:75:64","nodeType":"YulFunctionCall","src":"4461:75:64"},"variables":[{"name":"baseRef","nativeSrc":"4450:7:64","nodeType":"YulTypedName","src":"4450:7:64","type":""}]},{"nativeSrc":"4545:21:64","nodeType":"YulVariableDeclaration","src":"4545:21:64","value":{"name":"baseRef","nativeSrc":"4559:7:64","nodeType":"YulIdentifier","src":"4559:7:64"},"variables":[{"name":"srcPtr","nativeSrc":"4549:6:64","nodeType":"YulTypedName","src":"4549:6:64","type":""}]},{"body":{"nativeSrc":"4635:262:64","nodeType":"YulBlock","src":"4635:262:64","statements":[{"nativeSrc":"4649:34:64","nodeType":"YulVariableDeclaration","src":"4649:34:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4676:6:64","nodeType":"YulIdentifier","src":"4676:6:64"}],"functionName":{"name":"mload","nativeSrc":"4670:5:64","nodeType":"YulIdentifier","src":"4670:5:64"},"nativeSrc":"4670:13:64","nodeType":"YulFunctionCall","src":"4670:13:64"},"variables":[{"name":"elementValue0","nativeSrc":"4653:13:64","nodeType":"YulTypedName","src":"4653:13:64","type":""}]},{"nativeSrc":"4696:89:64","nodeType":"YulAssignment","src":"4696:89:64","value":{"arguments":[{"name":"elementValue0","nativeSrc":"4766:13:64","nodeType":"YulIdentifier","src":"4766:13:64"},{"name":"pos","nativeSrc":"4781:3:64","nodeType":"YulIdentifier","src":"4781:3:64"}],"functionName":{"name":"abi_encodeUpdatedPos_t_contract$_Incentive_$18196_to_t_address","nativeSrc":"4703:62:64","nodeType":"YulIdentifier","src":"4703:62:64"},"nativeSrc":"4703:82:64","nodeType":"YulFunctionCall","src":"4703:82:64"},"variableNames":[{"name":"pos","nativeSrc":"4696:3:64","nodeType":"YulIdentifier","src":"4696:3:64"}]},{"nativeSrc":"4798:89:64","nodeType":"YulAssignment","src":"4798:89:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"4880:6:64","nodeType":"YulIdentifier","src":"4880:6:64"}],"functionName":{"name":"array_nextElement_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr","nativeSrc":"4808:71:64","nodeType":"YulIdentifier","src":"4808:71:64"},"nativeSrc":"4808:79:64","nodeType":"YulFunctionCall","src":"4808:79:64"},"variableNames":[{"name":"srcPtr","nativeSrc":"4798:6:64","nodeType":"YulIdentifier","src":"4798:6:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4597:1:64","nodeType":"YulIdentifier","src":"4597:1:64"},{"name":"length","nativeSrc":"4600:6:64","nodeType":"YulIdentifier","src":"4600:6:64"}],"functionName":{"name":"lt","nativeSrc":"4594:2:64","nodeType":"YulIdentifier","src":"4594:2:64"},"nativeSrc":"4594:13:64","nodeType":"YulFunctionCall","src":"4594:13:64"},"nativeSrc":"4575:322:64","nodeType":"YulForLoop","post":{"nativeSrc":"4608:18:64","nodeType":"YulBlock","src":"4608:18:64","statements":[{"nativeSrc":"4610:14:64","nodeType":"YulAssignment","src":"4610:14:64","value":{"arguments":[{"name":"i","nativeSrc":"4619:1:64","nodeType":"YulIdentifier","src":"4619:1:64"},{"kind":"number","nativeSrc":"4622:1:64","nodeType":"YulLiteral","src":"4622:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4615:3:64","nodeType":"YulIdentifier","src":"4615:3:64"},"nativeSrc":"4615:9:64","nodeType":"YulFunctionCall","src":"4615:9:64"},"variableNames":[{"name":"i","nativeSrc":"4610:1:64","nodeType":"YulIdentifier","src":"4610:1:64"}]}]},"pre":{"nativeSrc":"4579:14:64","nodeType":"YulBlock","src":"4579:14:64","statements":[{"nativeSrc":"4581:10:64","nodeType":"YulVariableDeclaration","src":"4581:10:64","value":{"kind":"number","nativeSrc":"4590:1:64","nodeType":"YulLiteral","src":"4590:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4585:1:64","nodeType":"YulTypedName","src":"4585:1:64","type":""}]}]},"src":"4575:322:64"},{"nativeSrc":"4906:10:64","nodeType":"YulAssignment","src":"4906:10:64","value":{"name":"pos","nativeSrc":"4913:3:64","nodeType":"YulIdentifier","src":"4913:3:64"},"variableNames":[{"name":"end","nativeSrc":"4906:3:64","nodeType":"YulIdentifier","src":"4906:3:64"}]}]},"name":"abi_encode_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"4115:807:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4227:5:64","nodeType":"YulTypedName","src":"4227:5:64","type":""},{"name":"pos","nativeSrc":"4234:3:64","nodeType":"YulTypedName","src":"4234:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4243:3:64","nodeType":"YulTypedName","src":"4243:3:64","type":""}],"src":"4115:807:64"},{"body":{"nativeSrc":"4972:57:64","nodeType":"YulBlock","src":"4972:57:64","statements":[{"nativeSrc":"4982:41:64","nodeType":"YulAssignment","src":"4982:41:64","value":{"arguments":[{"name":"value","nativeSrc":"4997:5:64","nodeType":"YulIdentifier","src":"4997:5:64"},{"kind":"number","nativeSrc":"5004:18:64","nodeType":"YulLiteral","src":"5004:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4993:3:64","nodeType":"YulIdentifier","src":"4993:3:64"},"nativeSrc":"4993:30:64","nodeType":"YulFunctionCall","src":"4993:30:64"},"variableNames":[{"name":"cleaned","nativeSrc":"4982:7:64","nodeType":"YulIdentifier","src":"4982:7:64"}]}]},"name":"cleanup_t_uint64","nativeSrc":"4928:101:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4954:5:64","nodeType":"YulTypedName","src":"4954:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4964:7:64","nodeType":"YulTypedName","src":"4964:7:64","type":""}],"src":"4928:101:64"},{"body":{"nativeSrc":"5088:52:64","nodeType":"YulBlock","src":"5088:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5105:3:64","nodeType":"YulIdentifier","src":"5105:3:64"},{"arguments":[{"name":"value","nativeSrc":"5127:5:64","nodeType":"YulIdentifier","src":"5127:5:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"5110:16:64","nodeType":"YulIdentifier","src":"5110:16:64"},"nativeSrc":"5110:23:64","nodeType":"YulFunctionCall","src":"5110:23:64"}],"functionName":{"name":"mstore","nativeSrc":"5098:6:64","nodeType":"YulIdentifier","src":"5098:6:64"},"nativeSrc":"5098:36:64","nodeType":"YulFunctionCall","src":"5098:36:64"},"nativeSrc":"5098:36:64","nodeType":"YulExpressionStatement","src":"5098:36:64"}]},"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"5035:105:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5076:5:64","nodeType":"YulTypedName","src":"5076:5:64","type":""},{"name":"pos","nativeSrc":"5083:3:64","nodeType":"YulTypedName","src":"5083:3:64","type":""}],"src":"5035:105:64"},{"body":{"nativeSrc":"5201:53:64","nodeType":"YulBlock","src":"5201:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5218:3:64","nodeType":"YulIdentifier","src":"5218:3:64"},{"arguments":[{"name":"value","nativeSrc":"5241:5:64","nodeType":"YulIdentifier","src":"5241:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5223:17:64","nodeType":"YulIdentifier","src":"5223:17:64"},"nativeSrc":"5223:24:64","nodeType":"YulFunctionCall","src":"5223:24:64"}],"functionName":{"name":"mstore","nativeSrc":"5211:6:64","nodeType":"YulIdentifier","src":"5211:6:64"},"nativeSrc":"5211:37:64","nodeType":"YulFunctionCall","src":"5211:37:64"},"nativeSrc":"5211:37:64","nodeType":"YulExpressionStatement","src":"5211:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"5146:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5189:5:64","nodeType":"YulTypedName","src":"5189:5:64","type":""},{"name":"pos","nativeSrc":"5196:3:64","nodeType":"YulTypedName","src":"5196:3:64","type":""}],"src":"5146:108:64"},{"body":{"nativeSrc":"5305:51:64","nodeType":"YulBlock","src":"5305:51:64","statements":[{"nativeSrc":"5315:35:64","nodeType":"YulAssignment","src":"5315:35:64","value":{"arguments":[{"name":"value","nativeSrc":"5344:5:64","nodeType":"YulIdentifier","src":"5344:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5326:17:64","nodeType":"YulIdentifier","src":"5326:17:64"},"nativeSrc":"5326:24:64","nodeType":"YulFunctionCall","src":"5326:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5315:7:64","nodeType":"YulIdentifier","src":"5315:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"5260:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5287:5:64","nodeType":"YulTypedName","src":"5287:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5297:7:64","nodeType":"YulTypedName","src":"5297:7:64","type":""}],"src":"5260:96:64"},{"body":{"nativeSrc":"5417:53:64","nodeType":"YulBlock","src":"5417:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5434:3:64","nodeType":"YulIdentifier","src":"5434:3:64"},{"arguments":[{"name":"value","nativeSrc":"5457:5:64","nodeType":"YulIdentifier","src":"5457:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5439:17:64","nodeType":"YulIdentifier","src":"5439:17:64"},"nativeSrc":"5439:24:64","nodeType":"YulFunctionCall","src":"5439:24:64"}],"functionName":{"name":"mstore","nativeSrc":"5427:6:64","nodeType":"YulIdentifier","src":"5427:6:64"},"nativeSrc":"5427:37:64","nodeType":"YulFunctionCall","src":"5427:37:64"},"nativeSrc":"5427:37:64","nodeType":"YulExpressionStatement","src":"5427:37:64"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"5362:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5405:5:64","nodeType":"YulTypedName","src":"5405:5:64","type":""},{"name":"pos","nativeSrc":"5412:3:64","nodeType":"YulTypedName","src":"5412:3:64","type":""}],"src":"5362:108:64"},{"body":{"nativeSrc":"5652:1875:64","nodeType":"YulBlock","src":"5652:1875:64","statements":[{"nativeSrc":"5662:28:64","nodeType":"YulVariableDeclaration","src":"5662:28:64","value":{"arguments":[{"name":"pos","nativeSrc":"5678:3:64","nodeType":"YulIdentifier","src":"5678:3:64"},{"kind":"number","nativeSrc":"5683:6:64","nodeType":"YulLiteral","src":"5683:6:64","type":"","value":"0x0120"}],"functionName":{"name":"add","nativeSrc":"5674:3:64","nodeType":"YulIdentifier","src":"5674:3:64"},"nativeSrc":"5674:16:64","nodeType":"YulFunctionCall","src":"5674:16:64"},"variables":[{"name":"tail","nativeSrc":"5666:4:64","nodeType":"YulTypedName","src":"5666:4:64","type":""}]},{"nativeSrc":"5700:182:64","nodeType":"YulBlock","src":"5700:182:64","statements":[{"nativeSrc":"5737:43:64","nodeType":"YulVariableDeclaration","src":"5737:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5767:5:64","nodeType":"YulIdentifier","src":"5767:5:64"},{"kind":"number","nativeSrc":"5774:4:64","nodeType":"YulLiteral","src":"5774:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5763:3:64","nodeType":"YulIdentifier","src":"5763:3:64"},"nativeSrc":"5763:16:64","nodeType":"YulFunctionCall","src":"5763:16:64"}],"functionName":{"name":"mload","nativeSrc":"5757:5:64","nodeType":"YulIdentifier","src":"5757:5:64"},"nativeSrc":"5757:23:64","nodeType":"YulFunctionCall","src":"5757:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"5741:12:64","nodeType":"YulTypedName","src":"5741:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5843:12:64","nodeType":"YulIdentifier","src":"5843:12:64"},{"arguments":[{"name":"pos","nativeSrc":"5861:3:64","nodeType":"YulIdentifier","src":"5861:3:64"},{"kind":"number","nativeSrc":"5866:4:64","nodeType":"YulLiteral","src":"5866:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5857:3:64","nodeType":"YulIdentifier","src":"5857:3:64"},"nativeSrc":"5857:14:64","nodeType":"YulFunctionCall","src":"5857:14:64"}],"functionName":{"name":"abi_encode_t_contract$_Action_$13114_to_t_address","nativeSrc":"5793:49:64","nodeType":"YulIdentifier","src":"5793:49:64"},"nativeSrc":"5793:79:64","nodeType":"YulFunctionCall","src":"5793:79:64"},"nativeSrc":"5793:79:64","nodeType":"YulExpressionStatement","src":"5793:79:64"}]},{"nativeSrc":"5892:188:64","nodeType":"YulBlock","src":"5892:188:64","statements":[{"nativeSrc":"5932:43:64","nodeType":"YulVariableDeclaration","src":"5932:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5962:5:64","nodeType":"YulIdentifier","src":"5962:5:64"},{"kind":"number","nativeSrc":"5969:4:64","nodeType":"YulLiteral","src":"5969:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5958:3:64","nodeType":"YulIdentifier","src":"5958:3:64"},"nativeSrc":"5958:16:64","nodeType":"YulFunctionCall","src":"5958:16:64"}],"functionName":{"name":"mload","nativeSrc":"5952:5:64","nodeType":"YulIdentifier","src":"5952:5:64"},"nativeSrc":"5952:23:64","nodeType":"YulFunctionCall","src":"5952:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"5936:12:64","nodeType":"YulTypedName","src":"5936:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6041:12:64","nodeType":"YulIdentifier","src":"6041:12:64"},{"arguments":[{"name":"pos","nativeSrc":"6059:3:64","nodeType":"YulIdentifier","src":"6059:3:64"},{"kind":"number","nativeSrc":"6064:4:64","nodeType":"YulLiteral","src":"6064:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6055:3:64","nodeType":"YulIdentifier","src":"6055:3:64"},"nativeSrc":"6055:14:64","nodeType":"YulFunctionCall","src":"6055:14:64"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$19130_to_t_address","nativeSrc":"5988:52:64","nodeType":"YulIdentifier","src":"5988:52:64"},"nativeSrc":"5988:82:64","nodeType":"YulFunctionCall","src":"5988:82:64"},"nativeSrc":"5988:82:64","nodeType":"YulExpressionStatement","src":"5988:82:64"}]},{"nativeSrc":"6090:188:64","nodeType":"YulBlock","src":"6090:188:64","statements":[{"nativeSrc":"6130:43:64","nodeType":"YulVariableDeclaration","src":"6130:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6160:5:64","nodeType":"YulIdentifier","src":"6160:5:64"},{"kind":"number","nativeSrc":"6167:4:64","nodeType":"YulLiteral","src":"6167:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6156:3:64","nodeType":"YulIdentifier","src":"6156:3:64"},"nativeSrc":"6156:16:64","nodeType":"YulFunctionCall","src":"6156:16:64"}],"functionName":{"name":"mload","nativeSrc":"6150:5:64","nodeType":"YulIdentifier","src":"6150:5:64"},"nativeSrc":"6150:23:64","nodeType":"YulFunctionCall","src":"6150:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"6134:12:64","nodeType":"YulTypedName","src":"6134:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6239:12:64","nodeType":"YulIdentifier","src":"6239:12:64"},{"arguments":[{"name":"pos","nativeSrc":"6257:3:64","nodeType":"YulIdentifier","src":"6257:3:64"},{"kind":"number","nativeSrc":"6262:4:64","nodeType":"YulLiteral","src":"6262:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"6253:3:64","nodeType":"YulIdentifier","src":"6253:3:64"},"nativeSrc":"6253:14:64","nodeType":"YulFunctionCall","src":"6253:14:64"}],"functionName":{"name":"abi_encode_t_contract$_AllowList_$13587_to_t_address","nativeSrc":"6186:52:64","nodeType":"YulIdentifier","src":"6186:52:64"},"nativeSrc":"6186:82:64","nodeType":"YulFunctionCall","src":"6186:82:64"},"nativeSrc":"6186:82:64","nodeType":"YulExpressionStatement","src":"6186:82:64"}]},{"nativeSrc":"6288:190:64","nodeType":"YulBlock","src":"6288:190:64","statements":[{"nativeSrc":"6325:43:64","nodeType":"YulVariableDeclaration","src":"6325:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6355:5:64","nodeType":"YulIdentifier","src":"6355:5:64"},{"kind":"number","nativeSrc":"6362:4:64","nodeType":"YulLiteral","src":"6362:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6351:3:64","nodeType":"YulIdentifier","src":"6351:3:64"},"nativeSrc":"6351:16:64","nodeType":"YulFunctionCall","src":"6351:16:64"}],"functionName":{"name":"mload","nativeSrc":"6345:5:64","nodeType":"YulIdentifier","src":"6345:5:64"},"nativeSrc":"6345:23:64","nodeType":"YulFunctionCall","src":"6345:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"6329:12:64","nodeType":"YulTypedName","src":"6329:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6439:12:64","nodeType":"YulIdentifier","src":"6439:12:64"},{"arguments":[{"name":"pos","nativeSrc":"6457:3:64","nodeType":"YulIdentifier","src":"6457:3:64"},{"kind":"number","nativeSrc":"6462:4:64","nodeType":"YulLiteral","src":"6462:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"6453:3:64","nodeType":"YulIdentifier","src":"6453:3:64"},"nativeSrc":"6453:14:64","nodeType":"YulFunctionCall","src":"6453:14:64"}],"functionName":{"name":"abi_encode_t_contract$_Budget_$15659_to_t_address_payable","nativeSrc":"6381:57:64","nodeType":"YulIdentifier","src":"6381:57:64"},"nativeSrc":"6381:87:64","nodeType":"YulFunctionCall","src":"6381:87:64"},"nativeSrc":"6381:87:64","nodeType":"YulExpressionStatement","src":"6381:87:64"}]},{"nativeSrc":"6488:290:64","nodeType":"YulBlock","src":"6488:290:64","statements":[{"nativeSrc":"6529:43:64","nodeType":"YulVariableDeclaration","src":"6529:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6559:5:64","nodeType":"YulIdentifier","src":"6559:5:64"},{"kind":"number","nativeSrc":"6566:4:64","nodeType":"YulLiteral","src":"6566:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"6555:3:64","nodeType":"YulIdentifier","src":"6555:3:64"},"nativeSrc":"6555:16:64","nodeType":"YulFunctionCall","src":"6555:16:64"}],"functionName":{"name":"mload","nativeSrc":"6549:5:64","nodeType":"YulIdentifier","src":"6549:5:64"},"nativeSrc":"6549:23:64","nodeType":"YulFunctionCall","src":"6549:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"6533:12:64","nodeType":"YulTypedName","src":"6533:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"6597:3:64","nodeType":"YulIdentifier","src":"6597:3:64"},{"kind":"number","nativeSrc":"6602:4:64","nodeType":"YulLiteral","src":"6602:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"6593:3:64","nodeType":"YulIdentifier","src":"6593:3:64"},"nativeSrc":"6593:14:64","nodeType":"YulFunctionCall","src":"6593:14:64"},{"arguments":[{"name":"tail","nativeSrc":"6613:4:64","nodeType":"YulIdentifier","src":"6613:4:64"},{"name":"pos","nativeSrc":"6619:3:64","nodeType":"YulIdentifier","src":"6619:3:64"}],"functionName":{"name":"sub","nativeSrc":"6609:3:64","nodeType":"YulIdentifier","src":"6609:3:64"},"nativeSrc":"6609:14:64","nodeType":"YulFunctionCall","src":"6609:14:64"}],"functionName":{"name":"mstore","nativeSrc":"6586:6:64","nodeType":"YulIdentifier","src":"6586:6:64"},"nativeSrc":"6586:38:64","nodeType":"YulFunctionCall","src":"6586:38:64"},"nativeSrc":"6586:38:64","nodeType":"YulExpressionStatement","src":"6586:38:64"},{"nativeSrc":"6637:130:64","nodeType":"YulAssignment","src":"6637:130:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"6748:12:64","nodeType":"YulIdentifier","src":"6748:12:64"},{"name":"tail","nativeSrc":"6762:4:64","nodeType":"YulIdentifier","src":"6762:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"6645:102:64","nodeType":"YulIdentifier","src":"6645:102:64"},"nativeSrc":"6645:122:64","nodeType":"YulFunctionCall","src":"6645:122:64"},"variableNames":[{"name":"tail","nativeSrc":"6637:4:64","nodeType":"YulIdentifier","src":"6637:4:64"}]}]},{"nativeSrc":"6788:169:64","nodeType":"YulBlock","src":"6788:169:64","statements":[{"nativeSrc":"6830:43:64","nodeType":"YulVariableDeclaration","src":"6830:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6860:5:64","nodeType":"YulIdentifier","src":"6860:5:64"},{"kind":"number","nativeSrc":"6867:4:64","nodeType":"YulLiteral","src":"6867:4:64","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6856:3:64","nodeType":"YulIdentifier","src":"6856:3:64"},"nativeSrc":"6856:16:64","nodeType":"YulFunctionCall","src":"6856:16:64"}],"functionName":{"name":"mload","nativeSrc":"6850:5:64","nodeType":"YulIdentifier","src":"6850:5:64"},"nativeSrc":"6850:23:64","nodeType":"YulFunctionCall","src":"6850:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"6834:12:64","nodeType":"YulTypedName","src":"6834:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"6918:12:64","nodeType":"YulIdentifier","src":"6918:12:64"},{"arguments":[{"name":"pos","nativeSrc":"6936:3:64","nodeType":"YulIdentifier","src":"6936:3:64"},{"kind":"number","nativeSrc":"6941:4:64","nodeType":"YulLiteral","src":"6941:4:64","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"6932:3:64","nodeType":"YulIdentifier","src":"6932:3:64"},"nativeSrc":"6932:14:64","nodeType":"YulFunctionCall","src":"6932:14:64"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"6886:31:64","nodeType":"YulIdentifier","src":"6886:31:64"},"nativeSrc":"6886:61:64","nodeType":"YulFunctionCall","src":"6886:61:64"},"nativeSrc":"6886:61:64","nodeType":"YulExpressionStatement","src":"6886:61:64"}]},{"nativeSrc":"6967:169:64","nodeType":"YulBlock","src":"6967:169:64","statements":[{"nativeSrc":"7009:43:64","nodeType":"YulVariableDeclaration","src":"7009:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7039:5:64","nodeType":"YulIdentifier","src":"7039:5:64"},{"kind":"number","nativeSrc":"7046:4:64","nodeType":"YulLiteral","src":"7046:4:64","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"7035:3:64","nodeType":"YulIdentifier","src":"7035:3:64"},"nativeSrc":"7035:16:64","nodeType":"YulFunctionCall","src":"7035:16:64"}],"functionName":{"name":"mload","nativeSrc":"7029:5:64","nodeType":"YulIdentifier","src":"7029:5:64"},"nativeSrc":"7029:23:64","nodeType":"YulFunctionCall","src":"7029:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"7013:12:64","nodeType":"YulTypedName","src":"7013:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7097:12:64","nodeType":"YulIdentifier","src":"7097:12:64"},{"arguments":[{"name":"pos","nativeSrc":"7115:3:64","nodeType":"YulIdentifier","src":"7115:3:64"},{"kind":"number","nativeSrc":"7120:4:64","nodeType":"YulLiteral","src":"7120:4:64","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"7111:3:64","nodeType":"YulIdentifier","src":"7111:3:64"},"nativeSrc":"7111:14:64","nodeType":"YulFunctionCall","src":"7111:14:64"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64","nativeSrc":"7065:31:64","nodeType":"YulIdentifier","src":"7065:31:64"},"nativeSrc":"7065:61:64","nodeType":"YulFunctionCall","src":"7065:61:64"},"nativeSrc":"7065:61:64","nodeType":"YulExpressionStatement","src":"7065:61:64"}]},{"nativeSrc":"7146:175:64","nodeType":"YulBlock","src":"7146:175:64","statements":[{"nativeSrc":"7192:43:64","nodeType":"YulVariableDeclaration","src":"7192:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7222:5:64","nodeType":"YulIdentifier","src":"7222:5:64"},{"kind":"number","nativeSrc":"7229:4:64","nodeType":"YulLiteral","src":"7229:4:64","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"7218:3:64","nodeType":"YulIdentifier","src":"7218:3:64"},"nativeSrc":"7218:16:64","nodeType":"YulFunctionCall","src":"7218:16:64"}],"functionName":{"name":"mload","nativeSrc":"7212:5:64","nodeType":"YulIdentifier","src":"7212:5:64"},"nativeSrc":"7212:23:64","nodeType":"YulFunctionCall","src":"7212:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"7196:12:64","nodeType":"YulTypedName","src":"7196:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7282:12:64","nodeType":"YulIdentifier","src":"7282:12:64"},{"arguments":[{"name":"pos","nativeSrc":"7300:3:64","nodeType":"YulIdentifier","src":"7300:3:64"},{"kind":"number","nativeSrc":"7305:4:64","nodeType":"YulLiteral","src":"7305:4:64","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"7296:3:64","nodeType":"YulIdentifier","src":"7296:3:64"},"nativeSrc":"7296:14:64","nodeType":"YulFunctionCall","src":"7296:14:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"7248:33:64","nodeType":"YulIdentifier","src":"7248:33:64"},"nativeSrc":"7248:63:64","nodeType":"YulFunctionCall","src":"7248:63:64"},"nativeSrc":"7248:63:64","nodeType":"YulExpressionStatement","src":"7248:63:64"}]},{"nativeSrc":"7331:169:64","nodeType":"YulBlock","src":"7331:169:64","statements":[{"nativeSrc":"7367:45:64","nodeType":"YulVariableDeclaration","src":"7367:45:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7397:5:64","nodeType":"YulIdentifier","src":"7397:5:64"},{"kind":"number","nativeSrc":"7404:6:64","nodeType":"YulLiteral","src":"7404:6:64","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"7393:3:64","nodeType":"YulIdentifier","src":"7393:3:64"},"nativeSrc":"7393:18:64","nodeType":"YulFunctionCall","src":"7393:18:64"}],"functionName":{"name":"mload","nativeSrc":"7387:5:64","nodeType":"YulIdentifier","src":"7387:5:64"},"nativeSrc":"7387:25:64","nodeType":"YulFunctionCall","src":"7387:25:64"},"variables":[{"name":"memberValue0","nativeSrc":"7371:12:64","nodeType":"YulTypedName","src":"7371:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"7459:12:64","nodeType":"YulIdentifier","src":"7459:12:64"},{"arguments":[{"name":"pos","nativeSrc":"7477:3:64","nodeType":"YulIdentifier","src":"7477:3:64"},{"kind":"number","nativeSrc":"7482:6:64","nodeType":"YulLiteral","src":"7482:6:64","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"7473:3:64","nodeType":"YulIdentifier","src":"7473:3:64"},"nativeSrc":"7473:16:64","nodeType":"YulFunctionCall","src":"7473:16:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"7425:33:64","nodeType":"YulIdentifier","src":"7425:33:64"},"nativeSrc":"7425:65:64","nodeType":"YulFunctionCall","src":"7425:65:64"},"nativeSrc":"7425:65:64","nodeType":"YulExpressionStatement","src":"7425:65:64"}]},{"nativeSrc":"7510:11:64","nodeType":"YulAssignment","src":"7510:11:64","value":{"name":"tail","nativeSrc":"7517:4:64","nodeType":"YulIdentifier","src":"7517:4:64"},"variableNames":[{"name":"end","nativeSrc":"7510:3:64","nodeType":"YulIdentifier","src":"7510:3:64"}]}]},"name":"abi_encode_t_struct$_Boost_$18393_memory_ptr_to_t_struct$_Boost_$18393_memory_ptr_fromStack","nativeSrc":"5530:1997:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5631:5:64","nodeType":"YulTypedName","src":"5631:5:64","type":""},{"name":"pos","nativeSrc":"5638:3:64","nodeType":"YulTypedName","src":"5638:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5647:3:64","nodeType":"YulTypedName","src":"5647:3:64","type":""}],"src":"5530:1997:64"},{"body":{"nativeSrc":"7679:223:64","nodeType":"YulBlock","src":"7679:223:64","statements":[{"nativeSrc":"7689:26:64","nodeType":"YulAssignment","src":"7689:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"7701:9:64","nodeType":"YulIdentifier","src":"7701:9:64"},{"kind":"number","nativeSrc":"7712:2:64","nodeType":"YulLiteral","src":"7712:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7697:3:64","nodeType":"YulIdentifier","src":"7697:3:64"},"nativeSrc":"7697:18:64","nodeType":"YulFunctionCall","src":"7697:18:64"},"variableNames":[{"name":"tail","nativeSrc":"7689:4:64","nodeType":"YulIdentifier","src":"7689:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7736:9:64","nodeType":"YulIdentifier","src":"7736:9:64"},{"kind":"number","nativeSrc":"7747:1:64","nodeType":"YulLiteral","src":"7747:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7732:3:64","nodeType":"YulIdentifier","src":"7732:3:64"},"nativeSrc":"7732:17:64","nodeType":"YulFunctionCall","src":"7732:17:64"},{"arguments":[{"name":"tail","nativeSrc":"7755:4:64","nodeType":"YulIdentifier","src":"7755:4:64"},{"name":"headStart","nativeSrc":"7761:9:64","nodeType":"YulIdentifier","src":"7761:9:64"}],"functionName":{"name":"sub","nativeSrc":"7751:3:64","nodeType":"YulIdentifier","src":"7751:3:64"},"nativeSrc":"7751:20:64","nodeType":"YulFunctionCall","src":"7751:20:64"}],"functionName":{"name":"mstore","nativeSrc":"7725:6:64","nodeType":"YulIdentifier","src":"7725:6:64"},"nativeSrc":"7725:47:64","nodeType":"YulFunctionCall","src":"7725:47:64"},"nativeSrc":"7725:47:64","nodeType":"YulExpressionStatement","src":"7725:47:64"},{"nativeSrc":"7781:114:64","nodeType":"YulAssignment","src":"7781:114:64","value":{"arguments":[{"name":"value0","nativeSrc":"7881:6:64","nodeType":"YulIdentifier","src":"7881:6:64"},{"name":"tail","nativeSrc":"7890:4:64","nodeType":"YulIdentifier","src":"7890:4:64"}],"functionName":{"name":"abi_encode_t_struct$_Boost_$18393_memory_ptr_to_t_struct$_Boost_$18393_memory_ptr_fromStack","nativeSrc":"7789:91:64","nodeType":"YulIdentifier","src":"7789:91:64"},"nativeSrc":"7789:106:64","nodeType":"YulFunctionCall","src":"7789:106:64"},"variableNames":[{"name":"tail","nativeSrc":"7781:4:64","nodeType":"YulIdentifier","src":"7781:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_Boost_$18393_memory_ptr__to_t_struct$_Boost_$18393_memory_ptr__fromStack_reversed","nativeSrc":"7533:369:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7651:9:64","nodeType":"YulTypedName","src":"7651:9:64","type":""},{"name":"value0","nativeSrc":"7663:6:64","nodeType":"YulTypedName","src":"7663:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7674:4:64","nodeType":"YulTypedName","src":"7674:4:64","type":""}],"src":"7533:369:64"},{"body":{"nativeSrc":"7973:53:64","nodeType":"YulBlock","src":"7973:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7990:3:64","nodeType":"YulIdentifier","src":"7990:3:64"},{"arguments":[{"name":"value","nativeSrc":"8013:5:64","nodeType":"YulIdentifier","src":"8013:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7995:17:64","nodeType":"YulIdentifier","src":"7995:17:64"},"nativeSrc":"7995:24:64","nodeType":"YulFunctionCall","src":"7995:24:64"}],"functionName":{"name":"mstore","nativeSrc":"7983:6:64","nodeType":"YulIdentifier","src":"7983:6:64"},"nativeSrc":"7983:37:64","nodeType":"YulFunctionCall","src":"7983:37:64"},"nativeSrc":"7983:37:64","nodeType":"YulExpressionStatement","src":"7983:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7908:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7961:5:64","nodeType":"YulTypedName","src":"7961:5:64","type":""},{"name":"pos","nativeSrc":"7968:3:64","nodeType":"YulTypedName","src":"7968:3:64","type":""}],"src":"7908:118:64"},{"body":{"nativeSrc":"8130:124:64","nodeType":"YulBlock","src":"8130:124:64","statements":[{"nativeSrc":"8140:26:64","nodeType":"YulAssignment","src":"8140:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"8152:9:64","nodeType":"YulIdentifier","src":"8152:9:64"},{"kind":"number","nativeSrc":"8163:2:64","nodeType":"YulLiteral","src":"8163:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8148:3:64","nodeType":"YulIdentifier","src":"8148:3:64"},"nativeSrc":"8148:18:64","nodeType":"YulFunctionCall","src":"8148:18:64"},"variableNames":[{"name":"tail","nativeSrc":"8140:4:64","nodeType":"YulIdentifier","src":"8140:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8220:6:64","nodeType":"YulIdentifier","src":"8220:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"8233:9:64","nodeType":"YulIdentifier","src":"8233:9:64"},{"kind":"number","nativeSrc":"8244:1:64","nodeType":"YulLiteral","src":"8244:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8229:3:64","nodeType":"YulIdentifier","src":"8229:3:64"},"nativeSrc":"8229:17:64","nodeType":"YulFunctionCall","src":"8229:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8176:43:64","nodeType":"YulIdentifier","src":"8176:43:64"},"nativeSrc":"8176:71:64","nodeType":"YulFunctionCall","src":"8176:71:64"},"nativeSrc":"8176:71:64","nodeType":"YulExpressionStatement","src":"8176:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8032:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8102:9:64","nodeType":"YulTypedName","src":"8102:9:64","type":""},{"name":"value0","nativeSrc":"8114:6:64","nodeType":"YulTypedName","src":"8114:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8125:4:64","nodeType":"YulTypedName","src":"8125:4:64","type":""}],"src":"8032:222:64"},{"body":{"nativeSrc":"8303:79:64","nodeType":"YulBlock","src":"8303:79:64","statements":[{"body":{"nativeSrc":"8360:16:64","nodeType":"YulBlock","src":"8360:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8369:1:64","nodeType":"YulLiteral","src":"8369:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8372:1:64","nodeType":"YulLiteral","src":"8372:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8362:6:64","nodeType":"YulIdentifier","src":"8362:6:64"},"nativeSrc":"8362:12:64","nodeType":"YulFunctionCall","src":"8362:12:64"},"nativeSrc":"8362:12:64","nodeType":"YulExpressionStatement","src":"8362:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8326:5:64","nodeType":"YulIdentifier","src":"8326:5:64"},{"arguments":[{"name":"value","nativeSrc":"8351:5:64","nodeType":"YulIdentifier","src":"8351:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8333:17:64","nodeType":"YulIdentifier","src":"8333:17:64"},"nativeSrc":"8333:24:64","nodeType":"YulFunctionCall","src":"8333:24:64"}],"functionName":{"name":"eq","nativeSrc":"8323:2:64","nodeType":"YulIdentifier","src":"8323:2:64"},"nativeSrc":"8323:35:64","nodeType":"YulFunctionCall","src":"8323:35:64"}],"functionName":{"name":"iszero","nativeSrc":"8316:6:64","nodeType":"YulIdentifier","src":"8316:6:64"},"nativeSrc":"8316:43:64","nodeType":"YulFunctionCall","src":"8316:43:64"},"nativeSrc":"8313:63:64","nodeType":"YulIf","src":"8313:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"8260:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8296:5:64","nodeType":"YulTypedName","src":"8296:5:64","type":""}],"src":"8260:122:64"},{"body":{"nativeSrc":"8440:87:64","nodeType":"YulBlock","src":"8440:87:64","statements":[{"nativeSrc":"8450:29:64","nodeType":"YulAssignment","src":"8450:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8472:6:64","nodeType":"YulIdentifier","src":"8472:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8459:12:64","nodeType":"YulIdentifier","src":"8459:12:64"},"nativeSrc":"8459:20:64","nodeType":"YulFunctionCall","src":"8459:20:64"},"variableNames":[{"name":"value","nativeSrc":"8450:5:64","nodeType":"YulIdentifier","src":"8450:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8515:5:64","nodeType":"YulIdentifier","src":"8515:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"8488:26:64","nodeType":"YulIdentifier","src":"8488:26:64"},"nativeSrc":"8488:33:64","nodeType":"YulFunctionCall","src":"8488:33:64"},"nativeSrc":"8488:33:64","nodeType":"YulExpressionStatement","src":"8488:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"8388:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8418:6:64","nodeType":"YulTypedName","src":"8418:6:64","type":""},{"name":"end","nativeSrc":"8426:3:64","nodeType":"YulTypedName","src":"8426:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8434:5:64","nodeType":"YulTypedName","src":"8434:5:64","type":""}],"src":"8388:139:64"},{"body":{"nativeSrc":"8599:263:64","nodeType":"YulBlock","src":"8599:263:64","statements":[{"body":{"nativeSrc":"8645:83:64","nodeType":"YulBlock","src":"8645:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8647:77:64","nodeType":"YulIdentifier","src":"8647:77:64"},"nativeSrc":"8647:79:64","nodeType":"YulFunctionCall","src":"8647:79:64"},"nativeSrc":"8647:79:64","nodeType":"YulExpressionStatement","src":"8647:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8620:7:64","nodeType":"YulIdentifier","src":"8620:7:64"},{"name":"headStart","nativeSrc":"8629:9:64","nodeType":"YulIdentifier","src":"8629:9:64"}],"functionName":{"name":"sub","nativeSrc":"8616:3:64","nodeType":"YulIdentifier","src":"8616:3:64"},"nativeSrc":"8616:23:64","nodeType":"YulFunctionCall","src":"8616:23:64"},{"kind":"number","nativeSrc":"8641:2:64","nodeType":"YulLiteral","src":"8641:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8612:3:64","nodeType":"YulIdentifier","src":"8612:3:64"},"nativeSrc":"8612:32:64","nodeType":"YulFunctionCall","src":"8612:32:64"},"nativeSrc":"8609:119:64","nodeType":"YulIf","src":"8609:119:64"},{"nativeSrc":"8738:117:64","nodeType":"YulBlock","src":"8738:117:64","statements":[{"nativeSrc":"8753:15:64","nodeType":"YulVariableDeclaration","src":"8753:15:64","value":{"kind":"number","nativeSrc":"8767:1:64","nodeType":"YulLiteral","src":"8767:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8757:6:64","nodeType":"YulTypedName","src":"8757:6:64","type":""}]},{"nativeSrc":"8782:63:64","nodeType":"YulAssignment","src":"8782:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8817:9:64","nodeType":"YulIdentifier","src":"8817:9:64"},{"name":"offset","nativeSrc":"8828:6:64","nodeType":"YulIdentifier","src":"8828:6:64"}],"functionName":{"name":"add","nativeSrc":"8813:3:64","nodeType":"YulIdentifier","src":"8813:3:64"},"nativeSrc":"8813:22:64","nodeType":"YulFunctionCall","src":"8813:22:64"},{"name":"dataEnd","nativeSrc":"8837:7:64","nodeType":"YulIdentifier","src":"8837:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8792:20:64","nodeType":"YulIdentifier","src":"8792:20:64"},"nativeSrc":"8792:53:64","nodeType":"YulFunctionCall","src":"8792:53:64"},"variableNames":[{"name":"value0","nativeSrc":"8782:6:64","nodeType":"YulIdentifier","src":"8782:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"8533:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8569:9:64","nodeType":"YulTypedName","src":"8569:9:64","type":""},{"name":"dataEnd","nativeSrc":"8580:7:64","nodeType":"YulTypedName","src":"8580:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8592:6:64","nodeType":"YulTypedName","src":"8592:6:64","type":""}],"src":"8533:329:64"},{"body":{"nativeSrc":"8933:53:64","nodeType":"YulBlock","src":"8933:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8950:3:64","nodeType":"YulIdentifier","src":"8950:3:64"},{"arguments":[{"name":"value","nativeSrc":"8973:5:64","nodeType":"YulIdentifier","src":"8973:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8955:17:64","nodeType":"YulIdentifier","src":"8955:17:64"},"nativeSrc":"8955:24:64","nodeType":"YulFunctionCall","src":"8955:24:64"}],"functionName":{"name":"mstore","nativeSrc":"8943:6:64","nodeType":"YulIdentifier","src":"8943:6:64"},"nativeSrc":"8943:37:64","nodeType":"YulFunctionCall","src":"8943:37:64"},"nativeSrc":"8943:37:64","nodeType":"YulExpressionStatement","src":"8943:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"8868:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8921:5:64","nodeType":"YulTypedName","src":"8921:5:64","type":""},{"name":"pos","nativeSrc":"8928:3:64","nodeType":"YulTypedName","src":"8928:3:64","type":""}],"src":"8868:118:64"},{"body":{"nativeSrc":"9090:124:64","nodeType":"YulBlock","src":"9090:124:64","statements":[{"nativeSrc":"9100:26:64","nodeType":"YulAssignment","src":"9100:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"9112:9:64","nodeType":"YulIdentifier","src":"9112:9:64"},{"kind":"number","nativeSrc":"9123:2:64","nodeType":"YulLiteral","src":"9123:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9108:3:64","nodeType":"YulIdentifier","src":"9108:3:64"},"nativeSrc":"9108:18:64","nodeType":"YulFunctionCall","src":"9108:18:64"},"variableNames":[{"name":"tail","nativeSrc":"9100:4:64","nodeType":"YulIdentifier","src":"9100:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9180:6:64","nodeType":"YulIdentifier","src":"9180:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"9193:9:64","nodeType":"YulIdentifier","src":"9193:9:64"},{"kind":"number","nativeSrc":"9204:1:64","nodeType":"YulLiteral","src":"9204:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9189:3:64","nodeType":"YulIdentifier","src":"9189:3:64"},"nativeSrc":"9189:17:64","nodeType":"YulFunctionCall","src":"9189:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"9136:43:64","nodeType":"YulIdentifier","src":"9136:43:64"},"nativeSrc":"9136:71:64","nodeType":"YulFunctionCall","src":"9136:71:64"},"nativeSrc":"9136:71:64","nodeType":"YulExpressionStatement","src":"9136:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"8992:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9062:9:64","nodeType":"YulTypedName","src":"9062:9:64","type":""},{"name":"value0","nativeSrc":"9074:6:64","nodeType":"YulTypedName","src":"9074:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9085:4:64","nodeType":"YulTypedName","src":"9085:4:64","type":""}],"src":"8992:222:64"},{"body":{"nativeSrc":"9303:66:64","nodeType":"YulBlock","src":"9303:66:64","statements":[{"nativeSrc":"9313:50:64","nodeType":"YulAssignment","src":"9313:50:64","value":{"arguments":[{"name":"value","nativeSrc":"9357:5:64","nodeType":"YulIdentifier","src":"9357:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"9326:30:64","nodeType":"YulIdentifier","src":"9326:30:64"},"nativeSrc":"9326:37:64","nodeType":"YulFunctionCall","src":"9326:37:64"},"variableNames":[{"name":"converted","nativeSrc":"9313:9:64","nodeType":"YulIdentifier","src":"9313:9:64"}]}]},"name":"convert_t_contract$_BoostRegistry_$12709_to_t_address","nativeSrc":"9220:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9283:5:64","nodeType":"YulTypedName","src":"9283:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"9293:9:64","nodeType":"YulTypedName","src":"9293:9:64","type":""}],"src":"9220:149:64"},{"body":{"nativeSrc":"9463:89:64","nodeType":"YulBlock","src":"9463:89:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9480:3:64","nodeType":"YulIdentifier","src":"9480:3:64"},{"arguments":[{"name":"value","nativeSrc":"9539:5:64","nodeType":"YulIdentifier","src":"9539:5:64"}],"functionName":{"name":"convert_t_contract$_BoostRegistry_$12709_to_t_address","nativeSrc":"9485:53:64","nodeType":"YulIdentifier","src":"9485:53:64"},"nativeSrc":"9485:60:64","nodeType":"YulFunctionCall","src":"9485:60:64"}],"functionName":{"name":"mstore","nativeSrc":"9473:6:64","nodeType":"YulIdentifier","src":"9473:6:64"},"nativeSrc":"9473:73:64","nodeType":"YulFunctionCall","src":"9473:73:64"},"nativeSrc":"9473:73:64","nodeType":"YulExpressionStatement","src":"9473:73:64"}]},"name":"abi_encode_t_contract$_BoostRegistry_$12709_to_t_address_fromStack","nativeSrc":"9375:177:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9451:5:64","nodeType":"YulTypedName","src":"9451:5:64","type":""},{"name":"pos","nativeSrc":"9458:3:64","nodeType":"YulTypedName","src":"9458:3:64","type":""}],"src":"9375:177:64"},{"body":{"nativeSrc":"9679:147:64","nodeType":"YulBlock","src":"9679:147:64","statements":[{"nativeSrc":"9689:26:64","nodeType":"YulAssignment","src":"9689:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"9701:9:64","nodeType":"YulIdentifier","src":"9701:9:64"},{"kind":"number","nativeSrc":"9712:2:64","nodeType":"YulLiteral","src":"9712:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9697:3:64","nodeType":"YulIdentifier","src":"9697:3:64"},"nativeSrc":"9697:18:64","nodeType":"YulFunctionCall","src":"9697:18:64"},"variableNames":[{"name":"tail","nativeSrc":"9689:4:64","nodeType":"YulIdentifier","src":"9689:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9792:6:64","nodeType":"YulIdentifier","src":"9792:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"9805:9:64","nodeType":"YulIdentifier","src":"9805:9:64"},{"kind":"number","nativeSrc":"9816:1:64","nodeType":"YulLiteral","src":"9816:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9801:3:64","nodeType":"YulIdentifier","src":"9801:3:64"},"nativeSrc":"9801:17:64","nodeType":"YulFunctionCall","src":"9801:17:64"}],"functionName":{"name":"abi_encode_t_contract$_BoostRegistry_$12709_to_t_address_fromStack","nativeSrc":"9725:66:64","nodeType":"YulIdentifier","src":"9725:66:64"},"nativeSrc":"9725:94:64","nodeType":"YulFunctionCall","src":"9725:94:64"},"nativeSrc":"9725:94:64","nodeType":"YulExpressionStatement","src":"9725:94:64"}]},"name":"abi_encode_tuple_t_contract$_BoostRegistry_$12709__to_t_address__fromStack_reversed","nativeSrc":"9558:268:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9651:9:64","nodeType":"YulTypedName","src":"9651:9:64","type":""},{"name":"value0","nativeSrc":"9663:6:64","nodeType":"YulTypedName","src":"9663:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9674:4:64","nodeType":"YulTypedName","src":"9674:4:64","type":""}],"src":"9558:268:64"},{"body":{"nativeSrc":"9895:52:64","nodeType":"YulBlock","src":"9895:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9912:3:64","nodeType":"YulIdentifier","src":"9912:3:64"},{"arguments":[{"name":"value","nativeSrc":"9934:5:64","nodeType":"YulIdentifier","src":"9934:5:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"9917:16:64","nodeType":"YulIdentifier","src":"9917:16:64"},"nativeSrc":"9917:23:64","nodeType":"YulFunctionCall","src":"9917:23:64"}],"functionName":{"name":"mstore","nativeSrc":"9905:6:64","nodeType":"YulIdentifier","src":"9905:6:64"},"nativeSrc":"9905:36:64","nodeType":"YulFunctionCall","src":"9905:36:64"},"nativeSrc":"9905:36:64","nodeType":"YulExpressionStatement","src":"9905:36:64"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"9832:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9883:5:64","nodeType":"YulTypedName","src":"9883:5:64","type":""},{"name":"pos","nativeSrc":"9890:3:64","nodeType":"YulTypedName","src":"9890:3:64","type":""}],"src":"9832:115:64"},{"body":{"nativeSrc":"10049:122:64","nodeType":"YulBlock","src":"10049:122:64","statements":[{"nativeSrc":"10059:26:64","nodeType":"YulAssignment","src":"10059:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"10071:9:64","nodeType":"YulIdentifier","src":"10071:9:64"},{"kind":"number","nativeSrc":"10082:2:64","nodeType":"YulLiteral","src":"10082:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10067:3:64","nodeType":"YulIdentifier","src":"10067:3:64"},"nativeSrc":"10067:18:64","nodeType":"YulFunctionCall","src":"10067:18:64"},"variableNames":[{"name":"tail","nativeSrc":"10059:4:64","nodeType":"YulIdentifier","src":"10059:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"10137:6:64","nodeType":"YulIdentifier","src":"10137:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"10150:9:64","nodeType":"YulIdentifier","src":"10150:9:64"},{"kind":"number","nativeSrc":"10161:1:64","nodeType":"YulLiteral","src":"10161:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10146:3:64","nodeType":"YulIdentifier","src":"10146:3:64"},"nativeSrc":"10146:17:64","nodeType":"YulFunctionCall","src":"10146:17:64"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"10095:41:64","nodeType":"YulIdentifier","src":"10095:41:64"},"nativeSrc":"10095:69:64","nodeType":"YulFunctionCall","src":"10095:69:64"},"nativeSrc":"10095:69:64","nodeType":"YulExpressionStatement","src":"10095:69:64"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"9953:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10021:9:64","nodeType":"YulTypedName","src":"10021:9:64","type":""},{"name":"value0","nativeSrc":"10033:6:64","nodeType":"YulTypedName","src":"10033:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10044:4:64","nodeType":"YulTypedName","src":"10044:4:64","type":""}],"src":"9953:218:64"},{"body":{"nativeSrc":"10266:28:64","nodeType":"YulBlock","src":"10266:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10283:1:64","nodeType":"YulLiteral","src":"10283:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10286:1:64","nodeType":"YulLiteral","src":"10286:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10276:6:64","nodeType":"YulIdentifier","src":"10276:6:64"},"nativeSrc":"10276:12:64","nodeType":"YulFunctionCall","src":"10276:12:64"},"nativeSrc":"10276:12:64","nodeType":"YulExpressionStatement","src":"10276:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10177:117:64","nodeType":"YulFunctionDefinition","src":"10177:117:64"},{"body":{"nativeSrc":"10389:28:64","nodeType":"YulBlock","src":"10389:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10406:1:64","nodeType":"YulLiteral","src":"10406:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10409:1:64","nodeType":"YulLiteral","src":"10409:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10399:6:64","nodeType":"YulIdentifier","src":"10399:6:64"},"nativeSrc":"10399:12:64","nodeType":"YulFunctionCall","src":"10399:12:64"},"nativeSrc":"10399:12:64","nodeType":"YulExpressionStatement","src":"10399:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10300:117:64","nodeType":"YulFunctionDefinition","src":"10300:117:64"},{"body":{"nativeSrc":"10512:28:64","nodeType":"YulBlock","src":"10512:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10529:1:64","nodeType":"YulLiteral","src":"10529:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10532:1:64","nodeType":"YulLiteral","src":"10532:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10522:6:64","nodeType":"YulIdentifier","src":"10522:6:64"},"nativeSrc":"10522:12:64","nodeType":"YulFunctionCall","src":"10522:12:64"},"nativeSrc":"10522:12:64","nodeType":"YulExpressionStatement","src":"10522:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10423:117:64","nodeType":"YulFunctionDefinition","src":"10423:117:64"},{"body":{"nativeSrc":"10633:478:64","nodeType":"YulBlock","src":"10633:478:64","statements":[{"body":{"nativeSrc":"10682:83:64","nodeType":"YulBlock","src":"10682:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10684:77:64","nodeType":"YulIdentifier","src":"10684:77:64"},"nativeSrc":"10684:79:64","nodeType":"YulFunctionCall","src":"10684:79:64"},"nativeSrc":"10684:79:64","nodeType":"YulExpressionStatement","src":"10684:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10661:6:64","nodeType":"YulIdentifier","src":"10661:6:64"},{"kind":"number","nativeSrc":"10669:4:64","nodeType":"YulLiteral","src":"10669:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10657:3:64","nodeType":"YulIdentifier","src":"10657:3:64"},"nativeSrc":"10657:17:64","nodeType":"YulFunctionCall","src":"10657:17:64"},{"name":"end","nativeSrc":"10676:3:64","nodeType":"YulIdentifier","src":"10676:3:64"}],"functionName":{"name":"slt","nativeSrc":"10653:3:64","nodeType":"YulIdentifier","src":"10653:3:64"},"nativeSrc":"10653:27:64","nodeType":"YulFunctionCall","src":"10653:27:64"}],"functionName":{"name":"iszero","nativeSrc":"10646:6:64","nodeType":"YulIdentifier","src":"10646:6:64"},"nativeSrc":"10646:35:64","nodeType":"YulFunctionCall","src":"10646:35:64"},"nativeSrc":"10643:122:64","nodeType":"YulIf","src":"10643:122:64"},{"nativeSrc":"10774:30:64","nodeType":"YulAssignment","src":"10774:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"10797:6:64","nodeType":"YulIdentifier","src":"10797:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"10784:12:64","nodeType":"YulIdentifier","src":"10784:12:64"},"nativeSrc":"10784:20:64","nodeType":"YulFunctionCall","src":"10784:20:64"},"variableNames":[{"name":"length","nativeSrc":"10774:6:64","nodeType":"YulIdentifier","src":"10774:6:64"}]},{"body":{"nativeSrc":"10847:83:64","nodeType":"YulBlock","src":"10847:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10849:77:64","nodeType":"YulIdentifier","src":"10849:77:64"},"nativeSrc":"10849:79:64","nodeType":"YulFunctionCall","src":"10849:79:64"},"nativeSrc":"10849:79:64","nodeType":"YulExpressionStatement","src":"10849:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10819:6:64","nodeType":"YulIdentifier","src":"10819:6:64"},{"kind":"number","nativeSrc":"10827:18:64","nodeType":"YulLiteral","src":"10827:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10816:2:64","nodeType":"YulIdentifier","src":"10816:2:64"},"nativeSrc":"10816:30:64","nodeType":"YulFunctionCall","src":"10816:30:64"},"nativeSrc":"10813:117:64","nodeType":"YulIf","src":"10813:117:64"},{"nativeSrc":"10939:29:64","nodeType":"YulAssignment","src":"10939:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"10955:6:64","nodeType":"YulIdentifier","src":"10955:6:64"},{"kind":"number","nativeSrc":"10963:4:64","nodeType":"YulLiteral","src":"10963:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10951:3:64","nodeType":"YulIdentifier","src":"10951:3:64"},"nativeSrc":"10951:17:64","nodeType":"YulFunctionCall","src":"10951:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"10939:8:64","nodeType":"YulIdentifier","src":"10939:8:64"}]},{"body":{"nativeSrc":"11022:83:64","nodeType":"YulBlock","src":"11022:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11024:77:64","nodeType":"YulIdentifier","src":"11024:77:64"},"nativeSrc":"11024:79:64","nodeType":"YulFunctionCall","src":"11024:79:64"},"nativeSrc":"11024:79:64","nodeType":"YulExpressionStatement","src":"11024:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10987:8:64","nodeType":"YulIdentifier","src":"10987:8:64"},{"arguments":[{"name":"length","nativeSrc":"11001:6:64","nodeType":"YulIdentifier","src":"11001:6:64"},{"kind":"number","nativeSrc":"11009:4:64","nodeType":"YulLiteral","src":"11009:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"10997:3:64","nodeType":"YulIdentifier","src":"10997:3:64"},"nativeSrc":"10997:17:64","nodeType":"YulFunctionCall","src":"10997:17:64"}],"functionName":{"name":"add","nativeSrc":"10983:3:64","nodeType":"YulIdentifier","src":"10983:3:64"},"nativeSrc":"10983:32:64","nodeType":"YulFunctionCall","src":"10983:32:64"},{"name":"end","nativeSrc":"11017:3:64","nodeType":"YulIdentifier","src":"11017:3:64"}],"functionName":{"name":"gt","nativeSrc":"10980:2:64","nodeType":"YulIdentifier","src":"10980:2:64"},"nativeSrc":"10980:41:64","nodeType":"YulFunctionCall","src":"10980:41:64"},"nativeSrc":"10977:128:64","nodeType":"YulIf","src":"10977:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"10559:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10600:6:64","nodeType":"YulTypedName","src":"10600:6:64","type":""},{"name":"end","nativeSrc":"10608:3:64","nodeType":"YulTypedName","src":"10608:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"10616:8:64","nodeType":"YulTypedName","src":"10616:8:64","type":""},{"name":"length","nativeSrc":"10626:6:64","nodeType":"YulTypedName","src":"10626:6:64","type":""}],"src":"10559:552:64"},{"body":{"nativeSrc":"11253:827:64","nodeType":"YulBlock","src":"11253:827:64","statements":[{"body":{"nativeSrc":"11300:83:64","nodeType":"YulBlock","src":"11300:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11302:77:64","nodeType":"YulIdentifier","src":"11302:77:64"},"nativeSrc":"11302:79:64","nodeType":"YulFunctionCall","src":"11302:79:64"},"nativeSrc":"11302:79:64","nodeType":"YulExpressionStatement","src":"11302:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11274:7:64","nodeType":"YulIdentifier","src":"11274:7:64"},{"name":"headStart","nativeSrc":"11283:9:64","nodeType":"YulIdentifier","src":"11283:9:64"}],"functionName":{"name":"sub","nativeSrc":"11270:3:64","nodeType":"YulIdentifier","src":"11270:3:64"},"nativeSrc":"11270:23:64","nodeType":"YulFunctionCall","src":"11270:23:64"},{"kind":"number","nativeSrc":"11295:3:64","nodeType":"YulLiteral","src":"11295:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"11266:3:64","nodeType":"YulIdentifier","src":"11266:3:64"},"nativeSrc":"11266:33:64","nodeType":"YulFunctionCall","src":"11266:33:64"},"nativeSrc":"11263:120:64","nodeType":"YulIf","src":"11263:120:64"},{"nativeSrc":"11393:117:64","nodeType":"YulBlock","src":"11393:117:64","statements":[{"nativeSrc":"11408:15:64","nodeType":"YulVariableDeclaration","src":"11408:15:64","value":{"kind":"number","nativeSrc":"11422:1:64","nodeType":"YulLiteral","src":"11422:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11412:6:64","nodeType":"YulTypedName","src":"11412:6:64","type":""}]},{"nativeSrc":"11437:63:64","nodeType":"YulAssignment","src":"11437:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11472:9:64","nodeType":"YulIdentifier","src":"11472:9:64"},{"name":"offset","nativeSrc":"11483:6:64","nodeType":"YulIdentifier","src":"11483:6:64"}],"functionName":{"name":"add","nativeSrc":"11468:3:64","nodeType":"YulIdentifier","src":"11468:3:64"},"nativeSrc":"11468:22:64","nodeType":"YulFunctionCall","src":"11468:22:64"},{"name":"dataEnd","nativeSrc":"11492:7:64","nodeType":"YulIdentifier","src":"11492:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11447:20:64","nodeType":"YulIdentifier","src":"11447:20:64"},"nativeSrc":"11447:53:64","nodeType":"YulFunctionCall","src":"11447:53:64"},"variableNames":[{"name":"value0","nativeSrc":"11437:6:64","nodeType":"YulIdentifier","src":"11437:6:64"}]}]},{"nativeSrc":"11520:118:64","nodeType":"YulBlock","src":"11520:118:64","statements":[{"nativeSrc":"11535:16:64","nodeType":"YulVariableDeclaration","src":"11535:16:64","value":{"kind":"number","nativeSrc":"11549:2:64","nodeType":"YulLiteral","src":"11549:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11539:6:64","nodeType":"YulTypedName","src":"11539:6:64","type":""}]},{"nativeSrc":"11565:63:64","nodeType":"YulAssignment","src":"11565:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11600:9:64","nodeType":"YulIdentifier","src":"11600:9:64"},{"name":"offset","nativeSrc":"11611:6:64","nodeType":"YulIdentifier","src":"11611:6:64"}],"functionName":{"name":"add","nativeSrc":"11596:3:64","nodeType":"YulIdentifier","src":"11596:3:64"},"nativeSrc":"11596:22:64","nodeType":"YulFunctionCall","src":"11596:22:64"},{"name":"dataEnd","nativeSrc":"11620:7:64","nodeType":"YulIdentifier","src":"11620:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11575:20:64","nodeType":"YulIdentifier","src":"11575:20:64"},"nativeSrc":"11575:53:64","nodeType":"YulFunctionCall","src":"11575:53:64"},"variableNames":[{"name":"value1","nativeSrc":"11565:6:64","nodeType":"YulIdentifier","src":"11565:6:64"}]}]},{"nativeSrc":"11648:118:64","nodeType":"YulBlock","src":"11648:118:64","statements":[{"nativeSrc":"11663:16:64","nodeType":"YulVariableDeclaration","src":"11663:16:64","value":{"kind":"number","nativeSrc":"11677:2:64","nodeType":"YulLiteral","src":"11677:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11667:6:64","nodeType":"YulTypedName","src":"11667:6:64","type":""}]},{"nativeSrc":"11693:63:64","nodeType":"YulAssignment","src":"11693:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11728:9:64","nodeType":"YulIdentifier","src":"11728:9:64"},{"name":"offset","nativeSrc":"11739:6:64","nodeType":"YulIdentifier","src":"11739:6:64"}],"functionName":{"name":"add","nativeSrc":"11724:3:64","nodeType":"YulIdentifier","src":"11724:3:64"},"nativeSrc":"11724:22:64","nodeType":"YulFunctionCall","src":"11724:22:64"},{"name":"dataEnd","nativeSrc":"11748:7:64","nodeType":"YulIdentifier","src":"11748:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11703:20:64","nodeType":"YulIdentifier","src":"11703:20:64"},"nativeSrc":"11703:53:64","nodeType":"YulFunctionCall","src":"11703:53:64"},"variableNames":[{"name":"value2","nativeSrc":"11693:6:64","nodeType":"YulIdentifier","src":"11693:6:64"}]}]},{"nativeSrc":"11776:297:64","nodeType":"YulBlock","src":"11776:297:64","statements":[{"nativeSrc":"11791:46:64","nodeType":"YulVariableDeclaration","src":"11791:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11822:9:64","nodeType":"YulIdentifier","src":"11822:9:64"},{"kind":"number","nativeSrc":"11833:2:64","nodeType":"YulLiteral","src":"11833:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11818:3:64","nodeType":"YulIdentifier","src":"11818:3:64"},"nativeSrc":"11818:18:64","nodeType":"YulFunctionCall","src":"11818:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"11805:12:64","nodeType":"YulIdentifier","src":"11805:12:64"},"nativeSrc":"11805:32:64","nodeType":"YulFunctionCall","src":"11805:32:64"},"variables":[{"name":"offset","nativeSrc":"11795:6:64","nodeType":"YulTypedName","src":"11795:6:64","type":""}]},{"body":{"nativeSrc":"11884:83:64","nodeType":"YulBlock","src":"11884:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11886:77:64","nodeType":"YulIdentifier","src":"11886:77:64"},"nativeSrc":"11886:79:64","nodeType":"YulFunctionCall","src":"11886:79:64"},"nativeSrc":"11886:79:64","nodeType":"YulExpressionStatement","src":"11886:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11856:6:64","nodeType":"YulIdentifier","src":"11856:6:64"},{"kind":"number","nativeSrc":"11864:18:64","nodeType":"YulLiteral","src":"11864:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11853:2:64","nodeType":"YulIdentifier","src":"11853:2:64"},"nativeSrc":"11853:30:64","nodeType":"YulFunctionCall","src":"11853:30:64"},"nativeSrc":"11850:117:64","nodeType":"YulIf","src":"11850:117:64"},{"nativeSrc":"11981:82:64","nodeType":"YulAssignment","src":"11981:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12035:9:64","nodeType":"YulIdentifier","src":"12035:9:64"},{"name":"offset","nativeSrc":"12046:6:64","nodeType":"YulIdentifier","src":"12046:6:64"}],"functionName":{"name":"add","nativeSrc":"12031:3:64","nodeType":"YulIdentifier","src":"12031:3:64"},"nativeSrc":"12031:22:64","nodeType":"YulFunctionCall","src":"12031:22:64"},{"name":"dataEnd","nativeSrc":"12055:7:64","nodeType":"YulIdentifier","src":"12055:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"11999:31:64","nodeType":"YulIdentifier","src":"11999:31:64"},"nativeSrc":"11999:64:64","nodeType":"YulFunctionCall","src":"11999:64:64"},"variableNames":[{"name":"value3","nativeSrc":"11981:6:64","nodeType":"YulIdentifier","src":"11981:6:64"},{"name":"value4","nativeSrc":"11989:6:64","nodeType":"YulIdentifier","src":"11989:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr","nativeSrc":"11117:963:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11191:9:64","nodeType":"YulTypedName","src":"11191:9:64","type":""},{"name":"dataEnd","nativeSrc":"11202:7:64","nodeType":"YulTypedName","src":"11202:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11214:6:64","nodeType":"YulTypedName","src":"11214:6:64","type":""},{"name":"value1","nativeSrc":"11222:6:64","nodeType":"YulTypedName","src":"11222:6:64","type":""},{"name":"value2","nativeSrc":"11230:6:64","nodeType":"YulTypedName","src":"11230:6:64","type":""},{"name":"value3","nativeSrc":"11238:6:64","nodeType":"YulTypedName","src":"11238:6:64","type":""},{"name":"value4","nativeSrc":"11246:6:64","nodeType":"YulTypedName","src":"11246:6:64","type":""}],"src":"11117:963:64"},{"body":{"nativeSrc":"12171:442:64","nodeType":"YulBlock","src":"12171:442:64","statements":[{"body":{"nativeSrc":"12217:83:64","nodeType":"YulBlock","src":"12217:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12219:77:64","nodeType":"YulIdentifier","src":"12219:77:64"},"nativeSrc":"12219:79:64","nodeType":"YulFunctionCall","src":"12219:79:64"},"nativeSrc":"12219:79:64","nodeType":"YulExpressionStatement","src":"12219:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12192:7:64","nodeType":"YulIdentifier","src":"12192:7:64"},{"name":"headStart","nativeSrc":"12201:9:64","nodeType":"YulIdentifier","src":"12201:9:64"}],"functionName":{"name":"sub","nativeSrc":"12188:3:64","nodeType":"YulIdentifier","src":"12188:3:64"},"nativeSrc":"12188:23:64","nodeType":"YulFunctionCall","src":"12188:23:64"},{"kind":"number","nativeSrc":"12213:2:64","nodeType":"YulLiteral","src":"12213:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12184:3:64","nodeType":"YulIdentifier","src":"12184:3:64"},"nativeSrc":"12184:32:64","nodeType":"YulFunctionCall","src":"12184:32:64"},"nativeSrc":"12181:119:64","nodeType":"YulIf","src":"12181:119:64"},{"nativeSrc":"12310:296:64","nodeType":"YulBlock","src":"12310:296:64","statements":[{"nativeSrc":"12325:45:64","nodeType":"YulVariableDeclaration","src":"12325:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12356:9:64","nodeType":"YulIdentifier","src":"12356:9:64"},{"kind":"number","nativeSrc":"12367:1:64","nodeType":"YulLiteral","src":"12367:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12352:3:64","nodeType":"YulIdentifier","src":"12352:3:64"},"nativeSrc":"12352:17:64","nodeType":"YulFunctionCall","src":"12352:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"12339:12:64","nodeType":"YulIdentifier","src":"12339:12:64"},"nativeSrc":"12339:31:64","nodeType":"YulFunctionCall","src":"12339:31:64"},"variables":[{"name":"offset","nativeSrc":"12329:6:64","nodeType":"YulTypedName","src":"12329:6:64","type":""}]},{"body":{"nativeSrc":"12417:83:64","nodeType":"YulBlock","src":"12417:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12419:77:64","nodeType":"YulIdentifier","src":"12419:77:64"},"nativeSrc":"12419:79:64","nodeType":"YulFunctionCall","src":"12419:79:64"},"nativeSrc":"12419:79:64","nodeType":"YulExpressionStatement","src":"12419:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12389:6:64","nodeType":"YulIdentifier","src":"12389:6:64"},{"kind":"number","nativeSrc":"12397:18:64","nodeType":"YulLiteral","src":"12397:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12386:2:64","nodeType":"YulIdentifier","src":"12386:2:64"},"nativeSrc":"12386:30:64","nodeType":"YulFunctionCall","src":"12386:30:64"},"nativeSrc":"12383:117:64","nodeType":"YulIf","src":"12383:117:64"},{"nativeSrc":"12514:82:64","nodeType":"YulAssignment","src":"12514:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12568:9:64","nodeType":"YulIdentifier","src":"12568:9:64"},{"name":"offset","nativeSrc":"12579:6:64","nodeType":"YulIdentifier","src":"12579:6:64"}],"functionName":{"name":"add","nativeSrc":"12564:3:64","nodeType":"YulIdentifier","src":"12564:3:64"},"nativeSrc":"12564:22:64","nodeType":"YulFunctionCall","src":"12564:22:64"},{"name":"dataEnd","nativeSrc":"12588:7:64","nodeType":"YulIdentifier","src":"12588:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"12532:31:64","nodeType":"YulIdentifier","src":"12532:31:64"},"nativeSrc":"12532:64:64","nodeType":"YulFunctionCall","src":"12532:64:64"},"variableNames":[{"name":"value0","nativeSrc":"12514:6:64","nodeType":"YulIdentifier","src":"12514:6:64"},{"name":"value1","nativeSrc":"12522:6:64","nodeType":"YulIdentifier","src":"12522:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"12086:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12133:9:64","nodeType":"YulTypedName","src":"12133:9:64","type":""},{"name":"dataEnd","nativeSrc":"12144:7:64","nodeType":"YulTypedName","src":"12144:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12156:6:64","nodeType":"YulTypedName","src":"12156:6:64","type":""},{"name":"value1","nativeSrc":"12164:6:64","nodeType":"YulTypedName","src":"12164:6:64","type":""}],"src":"12086:527:64"},{"body":{"nativeSrc":"12647:152:64","nodeType":"YulBlock","src":"12647:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12664:1:64","nodeType":"YulLiteral","src":"12664:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12667:77:64","nodeType":"YulLiteral","src":"12667:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12657:6:64","nodeType":"YulIdentifier","src":"12657:6:64"},"nativeSrc":"12657:88:64","nodeType":"YulFunctionCall","src":"12657:88:64"},"nativeSrc":"12657:88:64","nodeType":"YulExpressionStatement","src":"12657:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12761:1:64","nodeType":"YulLiteral","src":"12761:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"12764:4:64","nodeType":"YulLiteral","src":"12764:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"12754:6:64","nodeType":"YulIdentifier","src":"12754:6:64"},"nativeSrc":"12754:15:64","nodeType":"YulFunctionCall","src":"12754:15:64"},"nativeSrc":"12754:15:64","nodeType":"YulExpressionStatement","src":"12754:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12785:1:64","nodeType":"YulLiteral","src":"12785:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12788:4:64","nodeType":"YulLiteral","src":"12788:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12778:6:64","nodeType":"YulIdentifier","src":"12778:6:64"},"nativeSrc":"12778:15:64","nodeType":"YulFunctionCall","src":"12778:15:64"},"nativeSrc":"12778:15:64","nodeType":"YulExpressionStatement","src":"12778:15:64"}]},"name":"panic_error_0x32","nativeSrc":"12619:180:64","nodeType":"YulFunctionDefinition","src":"12619:180:64"},{"body":{"nativeSrc":"12959:288:64","nodeType":"YulBlock","src":"12959:288:64","statements":[{"nativeSrc":"12969:26:64","nodeType":"YulAssignment","src":"12969:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"12981:9:64","nodeType":"YulIdentifier","src":"12981:9:64"},{"kind":"number","nativeSrc":"12992:2:64","nodeType":"YulLiteral","src":"12992:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"12977:3:64","nodeType":"YulIdentifier","src":"12977:3:64"},"nativeSrc":"12977:18:64","nodeType":"YulFunctionCall","src":"12977:18:64"},"variableNames":[{"name":"tail","nativeSrc":"12969:4:64","nodeType":"YulIdentifier","src":"12969:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13049:6:64","nodeType":"YulIdentifier","src":"13049:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"13062:9:64","nodeType":"YulIdentifier","src":"13062:9:64"},{"kind":"number","nativeSrc":"13073:1:64","nodeType":"YulLiteral","src":"13073:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13058:3:64","nodeType":"YulIdentifier","src":"13058:3:64"},"nativeSrc":"13058:17:64","nodeType":"YulFunctionCall","src":"13058:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13005:43:64","nodeType":"YulIdentifier","src":"13005:43:64"},"nativeSrc":"13005:71:64","nodeType":"YulFunctionCall","src":"13005:71:64"},"nativeSrc":"13005:71:64","nodeType":"YulExpressionStatement","src":"13005:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13130:6:64","nodeType":"YulIdentifier","src":"13130:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"13143:9:64","nodeType":"YulIdentifier","src":"13143:9:64"},{"kind":"number","nativeSrc":"13154:2:64","nodeType":"YulLiteral","src":"13154:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13139:3:64","nodeType":"YulIdentifier","src":"13139:3:64"},"nativeSrc":"13139:18:64","nodeType":"YulFunctionCall","src":"13139:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13086:43:64","nodeType":"YulIdentifier","src":"13086:43:64"},"nativeSrc":"13086:72:64","nodeType":"YulFunctionCall","src":"13086:72:64"},"nativeSrc":"13086:72:64","nodeType":"YulExpressionStatement","src":"13086:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"13212:6:64","nodeType":"YulIdentifier","src":"13212:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"13225:9:64","nodeType":"YulIdentifier","src":"13225:9:64"},{"kind":"number","nativeSrc":"13236:2:64","nodeType":"YulLiteral","src":"13236:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13221:3:64","nodeType":"YulIdentifier","src":"13221:3:64"},"nativeSrc":"13221:18:64","nodeType":"YulFunctionCall","src":"13221:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13168:43:64","nodeType":"YulIdentifier","src":"13168:43:64"},"nativeSrc":"13168:72:64","nodeType":"YulFunctionCall","src":"13168:72:64"},"nativeSrc":"13168:72:64","nodeType":"YulExpressionStatement","src":"13168:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12805:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12915:9:64","nodeType":"YulTypedName","src":"12915:9:64","type":""},{"name":"value2","nativeSrc":"12927:6:64","nodeType":"YulTypedName","src":"12927:6:64","type":""},{"name":"value1","nativeSrc":"12935:6:64","nodeType":"YulTypedName","src":"12935:6:64","type":""},{"name":"value0","nativeSrc":"12943:6:64","nodeType":"YulTypedName","src":"12943:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12954:4:64","nodeType":"YulTypedName","src":"12954:4:64","type":""}],"src":"12805:442:64"},{"body":{"nativeSrc":"13348:73:64","nodeType":"YulBlock","src":"13348:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13365:3:64","nodeType":"YulIdentifier","src":"13365:3:64"},{"name":"length","nativeSrc":"13370:6:64","nodeType":"YulIdentifier","src":"13370:6:64"}],"functionName":{"name":"mstore","nativeSrc":"13358:6:64","nodeType":"YulIdentifier","src":"13358:6:64"},"nativeSrc":"13358:19:64","nodeType":"YulFunctionCall","src":"13358:19:64"},"nativeSrc":"13358:19:64","nodeType":"YulExpressionStatement","src":"13358:19:64"},{"nativeSrc":"13386:29:64","nodeType":"YulAssignment","src":"13386:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"13405:3:64","nodeType":"YulIdentifier","src":"13405:3:64"},{"kind":"number","nativeSrc":"13410:4:64","nodeType":"YulLiteral","src":"13410:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13401:3:64","nodeType":"YulIdentifier","src":"13401:3:64"},"nativeSrc":"13401:14:64","nodeType":"YulFunctionCall","src":"13401:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"13386:11:64","nodeType":"YulIdentifier","src":"13386:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13253:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13320:3:64","nodeType":"YulTypedName","src":"13320:3:64","type":""},{"name":"length","nativeSrc":"13325:6:64","nodeType":"YulTypedName","src":"13325:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13336:11:64","nodeType":"YulTypedName","src":"13336:11:64","type":""}],"src":"13253:168:64"},{"body":{"nativeSrc":"13491:84:64","nodeType":"YulBlock","src":"13491:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13515:3:64","nodeType":"YulIdentifier","src":"13515:3:64"},{"name":"src","nativeSrc":"13520:3:64","nodeType":"YulIdentifier","src":"13520:3:64"},{"name":"length","nativeSrc":"13525:6:64","nodeType":"YulIdentifier","src":"13525:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"13502:12:64","nodeType":"YulIdentifier","src":"13502:12:64"},"nativeSrc":"13502:30:64","nodeType":"YulFunctionCall","src":"13502:30:64"},"nativeSrc":"13502:30:64","nodeType":"YulExpressionStatement","src":"13502:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13552:3:64","nodeType":"YulIdentifier","src":"13552:3:64"},{"name":"length","nativeSrc":"13557:6:64","nodeType":"YulIdentifier","src":"13557:6:64"}],"functionName":{"name":"add","nativeSrc":"13548:3:64","nodeType":"YulIdentifier","src":"13548:3:64"},"nativeSrc":"13548:16:64","nodeType":"YulFunctionCall","src":"13548:16:64"},{"kind":"number","nativeSrc":"13566:1:64","nodeType":"YulLiteral","src":"13566:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13541:6:64","nodeType":"YulIdentifier","src":"13541:6:64"},"nativeSrc":"13541:27:64","nodeType":"YulFunctionCall","src":"13541:27:64"},"nativeSrc":"13541:27:64","nodeType":"YulExpressionStatement","src":"13541:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13427:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13473:3:64","nodeType":"YulTypedName","src":"13473:3:64","type":""},{"name":"dst","nativeSrc":"13478:3:64","nodeType":"YulTypedName","src":"13478:3:64","type":""},{"name":"length","nativeSrc":"13483:6:64","nodeType":"YulTypedName","src":"13483:6:64","type":""}],"src":"13427:148:64"},{"body":{"nativeSrc":"13629:54:64","nodeType":"YulBlock","src":"13629:54:64","statements":[{"nativeSrc":"13639:38:64","nodeType":"YulAssignment","src":"13639:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13657:5:64","nodeType":"YulIdentifier","src":"13657:5:64"},{"kind":"number","nativeSrc":"13664:2:64","nodeType":"YulLiteral","src":"13664:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13653:3:64","nodeType":"YulIdentifier","src":"13653:3:64"},"nativeSrc":"13653:14:64","nodeType":"YulFunctionCall","src":"13653:14:64"},{"arguments":[{"kind":"number","nativeSrc":"13673:2:64","nodeType":"YulLiteral","src":"13673:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13669:3:64","nodeType":"YulIdentifier","src":"13669:3:64"},"nativeSrc":"13669:7:64","nodeType":"YulFunctionCall","src":"13669:7:64"}],"functionName":{"name":"and","nativeSrc":"13649:3:64","nodeType":"YulIdentifier","src":"13649:3:64"},"nativeSrc":"13649:28:64","nodeType":"YulFunctionCall","src":"13649:28:64"},"variableNames":[{"name":"result","nativeSrc":"13639:6:64","nodeType":"YulIdentifier","src":"13639:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"13581:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13612:5:64","nodeType":"YulTypedName","src":"13612:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"13622:6:64","nodeType":"YulTypedName","src":"13622:6:64","type":""}],"src":"13581:102:64"},{"body":{"nativeSrc":"13811:214:64","nodeType":"YulBlock","src":"13811:214:64","statements":[{"nativeSrc":"13821:77:64","nodeType":"YulAssignment","src":"13821:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"13886:3:64","nodeType":"YulIdentifier","src":"13886:3:64"},{"name":"length","nativeSrc":"13891:6:64","nodeType":"YulIdentifier","src":"13891:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13828:57:64","nodeType":"YulIdentifier","src":"13828:57:64"},"nativeSrc":"13828:70:64","nodeType":"YulFunctionCall","src":"13828:70:64"},"variableNames":[{"name":"pos","nativeSrc":"13821:3:64","nodeType":"YulIdentifier","src":"13821:3:64"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"13945:5:64","nodeType":"YulIdentifier","src":"13945:5:64"},{"name":"pos","nativeSrc":"13952:3:64","nodeType":"YulIdentifier","src":"13952:3:64"},{"name":"length","nativeSrc":"13957:6:64","nodeType":"YulIdentifier","src":"13957:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13908:36:64","nodeType":"YulIdentifier","src":"13908:36:64"},"nativeSrc":"13908:56:64","nodeType":"YulFunctionCall","src":"13908:56:64"},"nativeSrc":"13908:56:64","nodeType":"YulExpressionStatement","src":"13908:56:64"},{"nativeSrc":"13973:46:64","nodeType":"YulAssignment","src":"13973:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"13984:3:64","nodeType":"YulIdentifier","src":"13984:3:64"},{"arguments":[{"name":"length","nativeSrc":"14011:6:64","nodeType":"YulIdentifier","src":"14011:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13989:21:64","nodeType":"YulIdentifier","src":"13989:21:64"},"nativeSrc":"13989:29:64","nodeType":"YulFunctionCall","src":"13989:29:64"}],"functionName":{"name":"add","nativeSrc":"13980:3:64","nodeType":"YulIdentifier","src":"13980:3:64"},"nativeSrc":"13980:39:64","nodeType":"YulFunctionCall","src":"13980:39:64"},"variableNames":[{"name":"end","nativeSrc":"13973:3:64","nodeType":"YulIdentifier","src":"13973:3:64"}]}]},"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"13711:314:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"13784:5:64","nodeType":"YulTypedName","src":"13784:5:64","type":""},{"name":"length","nativeSrc":"13791:6:64","nodeType":"YulTypedName","src":"13791:6:64","type":""},{"name":"pos","nativeSrc":"13799:3:64","nodeType":"YulTypedName","src":"13799:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13807:3:64","nodeType":"YulTypedName","src":"13807:3:64","type":""}],"src":"13711:314:64"},{"body":{"nativeSrc":"14157:203:64","nodeType":"YulBlock","src":"14157:203:64","statements":[{"nativeSrc":"14167:26:64","nodeType":"YulAssignment","src":"14167:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"14179:9:64","nodeType":"YulIdentifier","src":"14179:9:64"},{"kind":"number","nativeSrc":"14190:2:64","nodeType":"YulLiteral","src":"14190:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14175:3:64","nodeType":"YulIdentifier","src":"14175:3:64"},"nativeSrc":"14175:18:64","nodeType":"YulFunctionCall","src":"14175:18:64"},"variableNames":[{"name":"tail","nativeSrc":"14167:4:64","nodeType":"YulIdentifier","src":"14167:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14214:9:64","nodeType":"YulIdentifier","src":"14214:9:64"},{"kind":"number","nativeSrc":"14225:1:64","nodeType":"YulLiteral","src":"14225:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14210:3:64","nodeType":"YulIdentifier","src":"14210:3:64"},"nativeSrc":"14210:17:64","nodeType":"YulFunctionCall","src":"14210:17:64"},{"arguments":[{"name":"tail","nativeSrc":"14233:4:64","nodeType":"YulIdentifier","src":"14233:4:64"},{"name":"headStart","nativeSrc":"14239:9:64","nodeType":"YulIdentifier","src":"14239:9:64"}],"functionName":{"name":"sub","nativeSrc":"14229:3:64","nodeType":"YulIdentifier","src":"14229:3:64"},"nativeSrc":"14229:20:64","nodeType":"YulFunctionCall","src":"14229:20:64"}],"functionName":{"name":"mstore","nativeSrc":"14203:6:64","nodeType":"YulIdentifier","src":"14203:6:64"},"nativeSrc":"14203:47:64","nodeType":"YulFunctionCall","src":"14203:47:64"},"nativeSrc":"14203:47:64","nodeType":"YulExpressionStatement","src":"14203:47:64"},{"nativeSrc":"14259:94:64","nodeType":"YulAssignment","src":"14259:94:64","value":{"arguments":[{"name":"value0","nativeSrc":"14331:6:64","nodeType":"YulIdentifier","src":"14331:6:64"},{"name":"value1","nativeSrc":"14339:6:64","nodeType":"YulIdentifier","src":"14339:6:64"},{"name":"tail","nativeSrc":"14348:4:64","nodeType":"YulIdentifier","src":"14348:4:64"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"14267:63:64","nodeType":"YulIdentifier","src":"14267:63:64"},"nativeSrc":"14267:86:64","nodeType":"YulFunctionCall","src":"14267:86:64"},"variableNames":[{"name":"tail","nativeSrc":"14259:4:64","nodeType":"YulIdentifier","src":"14259:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"14031:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14121:9:64","nodeType":"YulTypedName","src":"14121:9:64","type":""},{"name":"value1","nativeSrc":"14133:6:64","nodeType":"YulTypedName","src":"14133:6:64","type":""},{"name":"value0","nativeSrc":"14141:6:64","nodeType":"YulTypedName","src":"14141:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14152:4:64","nodeType":"YulTypedName","src":"14152:4:64","type":""}],"src":"14031:329:64"},{"body":{"nativeSrc":"14408:48:64","nodeType":"YulBlock","src":"14408:48:64","statements":[{"nativeSrc":"14418:32:64","nodeType":"YulAssignment","src":"14418:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14443:5:64","nodeType":"YulIdentifier","src":"14443:5:64"}],"functionName":{"name":"iszero","nativeSrc":"14436:6:64","nodeType":"YulIdentifier","src":"14436:6:64"},"nativeSrc":"14436:13:64","nodeType":"YulFunctionCall","src":"14436:13:64"}],"functionName":{"name":"iszero","nativeSrc":"14429:6:64","nodeType":"YulIdentifier","src":"14429:6:64"},"nativeSrc":"14429:21:64","nodeType":"YulFunctionCall","src":"14429:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"14418:7:64","nodeType":"YulIdentifier","src":"14418:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"14366:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14390:5:64","nodeType":"YulTypedName","src":"14390:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14400:7:64","nodeType":"YulTypedName","src":"14400:7:64","type":""}],"src":"14366:90:64"},{"body":{"nativeSrc":"14502:76:64","nodeType":"YulBlock","src":"14502:76:64","statements":[{"body":{"nativeSrc":"14556:16:64","nodeType":"YulBlock","src":"14556:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14565:1:64","nodeType":"YulLiteral","src":"14565:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"14568:1:64","nodeType":"YulLiteral","src":"14568:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14558:6:64","nodeType":"YulIdentifier","src":"14558:6:64"},"nativeSrc":"14558:12:64","nodeType":"YulFunctionCall","src":"14558:12:64"},"nativeSrc":"14558:12:64","nodeType":"YulExpressionStatement","src":"14558:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14525:5:64","nodeType":"YulIdentifier","src":"14525:5:64"},{"arguments":[{"name":"value","nativeSrc":"14547:5:64","nodeType":"YulIdentifier","src":"14547:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"14532:14:64","nodeType":"YulIdentifier","src":"14532:14:64"},"nativeSrc":"14532:21:64","nodeType":"YulFunctionCall","src":"14532:21:64"}],"functionName":{"name":"eq","nativeSrc":"14522:2:64","nodeType":"YulIdentifier","src":"14522:2:64"},"nativeSrc":"14522:32:64","nodeType":"YulFunctionCall","src":"14522:32:64"}],"functionName":{"name":"iszero","nativeSrc":"14515:6:64","nodeType":"YulIdentifier","src":"14515:6:64"},"nativeSrc":"14515:40:64","nodeType":"YulFunctionCall","src":"14515:40:64"},"nativeSrc":"14512:60:64","nodeType":"YulIf","src":"14512:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"14462:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14495:5:64","nodeType":"YulTypedName","src":"14495:5:64","type":""}],"src":"14462:116:64"},{"body":{"nativeSrc":"14644:77:64","nodeType":"YulBlock","src":"14644:77:64","statements":[{"nativeSrc":"14654:22:64","nodeType":"YulAssignment","src":"14654:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"14669:6:64","nodeType":"YulIdentifier","src":"14669:6:64"}],"functionName":{"name":"mload","nativeSrc":"14663:5:64","nodeType":"YulIdentifier","src":"14663:5:64"},"nativeSrc":"14663:13:64","nodeType":"YulFunctionCall","src":"14663:13:64"},"variableNames":[{"name":"value","nativeSrc":"14654:5:64","nodeType":"YulIdentifier","src":"14654:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14709:5:64","nodeType":"YulIdentifier","src":"14709:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"14685:23:64","nodeType":"YulIdentifier","src":"14685:23:64"},"nativeSrc":"14685:30:64","nodeType":"YulFunctionCall","src":"14685:30:64"},"nativeSrc":"14685:30:64","nodeType":"YulExpressionStatement","src":"14685:30:64"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14584:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14622:6:64","nodeType":"YulTypedName","src":"14622:6:64","type":""},{"name":"end","nativeSrc":"14630:3:64","nodeType":"YulTypedName","src":"14630:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14638:5:64","nodeType":"YulTypedName","src":"14638:5:64","type":""}],"src":"14584:137:64"},{"body":{"nativeSrc":"14801:271:64","nodeType":"YulBlock","src":"14801:271:64","statements":[{"body":{"nativeSrc":"14847:83:64","nodeType":"YulBlock","src":"14847:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14849:77:64","nodeType":"YulIdentifier","src":"14849:77:64"},"nativeSrc":"14849:79:64","nodeType":"YulFunctionCall","src":"14849:79:64"},"nativeSrc":"14849:79:64","nodeType":"YulExpressionStatement","src":"14849:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14822:7:64","nodeType":"YulIdentifier","src":"14822:7:64"},{"name":"headStart","nativeSrc":"14831:9:64","nodeType":"YulIdentifier","src":"14831:9:64"}],"functionName":{"name":"sub","nativeSrc":"14818:3:64","nodeType":"YulIdentifier","src":"14818:3:64"},"nativeSrc":"14818:23:64","nodeType":"YulFunctionCall","src":"14818:23:64"},{"kind":"number","nativeSrc":"14843:2:64","nodeType":"YulLiteral","src":"14843:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14814:3:64","nodeType":"YulIdentifier","src":"14814:3:64"},"nativeSrc":"14814:32:64","nodeType":"YulFunctionCall","src":"14814:32:64"},"nativeSrc":"14811:119:64","nodeType":"YulIf","src":"14811:119:64"},{"nativeSrc":"14940:125:64","nodeType":"YulBlock","src":"14940:125:64","statements":[{"nativeSrc":"14955:15:64","nodeType":"YulVariableDeclaration","src":"14955:15:64","value":{"kind":"number","nativeSrc":"14969:1:64","nodeType":"YulLiteral","src":"14969:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14959:6:64","nodeType":"YulTypedName","src":"14959:6:64","type":""}]},{"nativeSrc":"14984:71:64","nodeType":"YulAssignment","src":"14984:71:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15027:9:64","nodeType":"YulIdentifier","src":"15027:9:64"},{"name":"offset","nativeSrc":"15038:6:64","nodeType":"YulIdentifier","src":"15038:6:64"}],"functionName":{"name":"add","nativeSrc":"15023:3:64","nodeType":"YulIdentifier","src":"15023:3:64"},"nativeSrc":"15023:22:64","nodeType":"YulFunctionCall","src":"15023:22:64"},{"name":"dataEnd","nativeSrc":"15047:7:64","nodeType":"YulIdentifier","src":"15047:7:64"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"14994:28:64","nodeType":"YulIdentifier","src":"14994:28:64"},"nativeSrc":"14994:61:64","nodeType":"YulFunctionCall","src":"14994:61:64"},"variableNames":[{"name":"value0","nativeSrc":"14984:6:64","nodeType":"YulIdentifier","src":"14984:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"14727:345:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14771:9:64","nodeType":"YulTypedName","src":"14771:9:64","type":""},{"name":"dataEnd","nativeSrc":"14782:7:64","nodeType":"YulTypedName","src":"14782:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14794:6:64","nodeType":"YulTypedName","src":"14794:6:64","type":""}],"src":"14727:345:64"},{"body":{"nativeSrc":"15136:40:64","nodeType":"YulBlock","src":"15136:40:64","statements":[{"nativeSrc":"15147:22:64","nodeType":"YulAssignment","src":"15147:22:64","value":{"arguments":[{"name":"value","nativeSrc":"15163:5:64","nodeType":"YulIdentifier","src":"15163:5:64"}],"functionName":{"name":"mload","nativeSrc":"15157:5:64","nodeType":"YulIdentifier","src":"15157:5:64"},"nativeSrc":"15157:12:64","nodeType":"YulFunctionCall","src":"15157:12:64"},"variableNames":[{"name":"length","nativeSrc":"15147:6:64","nodeType":"YulIdentifier","src":"15147:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"15078:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15119:5:64","nodeType":"YulTypedName","src":"15119:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15129:6:64","nodeType":"YulTypedName","src":"15129:6:64","type":""}],"src":"15078:98:64"},{"body":{"nativeSrc":"15267:73:64","nodeType":"YulBlock","src":"15267:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15284:3:64","nodeType":"YulIdentifier","src":"15284:3:64"},{"name":"length","nativeSrc":"15289:6:64","nodeType":"YulIdentifier","src":"15289:6:64"}],"functionName":{"name":"mstore","nativeSrc":"15277:6:64","nodeType":"YulIdentifier","src":"15277:6:64"},"nativeSrc":"15277:19:64","nodeType":"YulFunctionCall","src":"15277:19:64"},"nativeSrc":"15277:19:64","nodeType":"YulExpressionStatement","src":"15277:19:64"},{"nativeSrc":"15305:29:64","nodeType":"YulAssignment","src":"15305:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"15324:3:64","nodeType":"YulIdentifier","src":"15324:3:64"},{"kind":"number","nativeSrc":"15329:4:64","nodeType":"YulLiteral","src":"15329:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15320:3:64","nodeType":"YulIdentifier","src":"15320:3:64"},"nativeSrc":"15320:14:64","nodeType":"YulFunctionCall","src":"15320:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"15305:11:64","nodeType":"YulIdentifier","src":"15305:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"15182:158:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15239:3:64","nodeType":"YulTypedName","src":"15239:3:64","type":""},{"name":"length","nativeSrc":"15244:6:64","nodeType":"YulTypedName","src":"15244:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"15255:11:64","nodeType":"YulTypedName","src":"15255:11:64","type":""}],"src":"15182:158:64"},{"body":{"nativeSrc":"15408:77:64","nodeType":"YulBlock","src":"15408:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"15425:3:64","nodeType":"YulIdentifier","src":"15425:3:64"},{"name":"src","nativeSrc":"15430:3:64","nodeType":"YulIdentifier","src":"15430:3:64"},{"name":"length","nativeSrc":"15435:6:64","nodeType":"YulIdentifier","src":"15435:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"15419:5:64","nodeType":"YulIdentifier","src":"15419:5:64"},"nativeSrc":"15419:23:64","nodeType":"YulFunctionCall","src":"15419:23:64"},"nativeSrc":"15419:23:64","nodeType":"YulExpressionStatement","src":"15419:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"15462:3:64","nodeType":"YulIdentifier","src":"15462:3:64"},{"name":"length","nativeSrc":"15467:6:64","nodeType":"YulIdentifier","src":"15467:6:64"}],"functionName":{"name":"add","nativeSrc":"15458:3:64","nodeType":"YulIdentifier","src":"15458:3:64"},"nativeSrc":"15458:16:64","nodeType":"YulFunctionCall","src":"15458:16:64"},{"kind":"number","nativeSrc":"15476:1:64","nodeType":"YulLiteral","src":"15476:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15451:6:64","nodeType":"YulIdentifier","src":"15451:6:64"},"nativeSrc":"15451:27:64","nodeType":"YulFunctionCall","src":"15451:27:64"},"nativeSrc":"15451:27:64","nodeType":"YulExpressionStatement","src":"15451:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15346:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15390:3:64","nodeType":"YulTypedName","src":"15390:3:64","type":""},{"name":"dst","nativeSrc":"15395:3:64","nodeType":"YulTypedName","src":"15395:3:64","type":""},{"name":"length","nativeSrc":"15400:6:64","nodeType":"YulTypedName","src":"15400:6:64","type":""}],"src":"15346:139:64"},{"body":{"nativeSrc":"15571:273:64","nodeType":"YulBlock","src":"15571:273:64","statements":[{"nativeSrc":"15581:52:64","nodeType":"YulVariableDeclaration","src":"15581:52:64","value":{"arguments":[{"name":"value","nativeSrc":"15627:5:64","nodeType":"YulIdentifier","src":"15627:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"15595:31:64","nodeType":"YulIdentifier","src":"15595:31:64"},"nativeSrc":"15595:38:64","nodeType":"YulFunctionCall","src":"15595:38:64"},"variables":[{"name":"length","nativeSrc":"15585:6:64","nodeType":"YulTypedName","src":"15585:6:64","type":""}]},{"nativeSrc":"15642:67:64","nodeType":"YulAssignment","src":"15642:67:64","value":{"arguments":[{"name":"pos","nativeSrc":"15697:3:64","nodeType":"YulIdentifier","src":"15697:3:64"},{"name":"length","nativeSrc":"15702:6:64","nodeType":"YulIdentifier","src":"15702:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"15649:47:64","nodeType":"YulIdentifier","src":"15649:47:64"},"nativeSrc":"15649:60:64","nodeType":"YulFunctionCall","src":"15649:60:64"},"variableNames":[{"name":"pos","nativeSrc":"15642:3:64","nodeType":"YulIdentifier","src":"15642:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15757:5:64","nodeType":"YulIdentifier","src":"15757:5:64"},{"kind":"number","nativeSrc":"15764:4:64","nodeType":"YulLiteral","src":"15764:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15753:3:64","nodeType":"YulIdentifier","src":"15753:3:64"},"nativeSrc":"15753:16:64","nodeType":"YulFunctionCall","src":"15753:16:64"},{"name":"pos","nativeSrc":"15771:3:64","nodeType":"YulIdentifier","src":"15771:3:64"},{"name":"length","nativeSrc":"15776:6:64","nodeType":"YulIdentifier","src":"15776:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15718:34:64","nodeType":"YulIdentifier","src":"15718:34:64"},"nativeSrc":"15718:65:64","nodeType":"YulFunctionCall","src":"15718:65:64"},"nativeSrc":"15718:65:64","nodeType":"YulExpressionStatement","src":"15718:65:64"},{"nativeSrc":"15792:46:64","nodeType":"YulAssignment","src":"15792:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"15803:3:64","nodeType":"YulIdentifier","src":"15803:3:64"},{"arguments":[{"name":"length","nativeSrc":"15830:6:64","nodeType":"YulIdentifier","src":"15830:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15808:21:64","nodeType":"YulIdentifier","src":"15808:21:64"},"nativeSrc":"15808:29:64","nodeType":"YulFunctionCall","src":"15808:29:64"}],"functionName":{"name":"add","nativeSrc":"15799:3:64","nodeType":"YulIdentifier","src":"15799:3:64"},"nativeSrc":"15799:39:64","nodeType":"YulFunctionCall","src":"15799:39:64"},"variableNames":[{"name":"end","nativeSrc":"15792:3:64","nodeType":"YulIdentifier","src":"15792:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"15491:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15552:5:64","nodeType":"YulTypedName","src":"15552:5:64","type":""},{"name":"pos","nativeSrc":"15559:3:64","nodeType":"YulTypedName","src":"15559:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15567:3:64","nodeType":"YulTypedName","src":"15567:3:64","type":""}],"src":"15491:353:64"},{"body":{"nativeSrc":"16056:482:64","nodeType":"YulBlock","src":"16056:482:64","statements":[{"nativeSrc":"16066:26:64","nodeType":"YulVariableDeclaration","src":"16066:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"16082:3:64","nodeType":"YulIdentifier","src":"16082:3:64"},{"kind":"number","nativeSrc":"16087:4:64","nodeType":"YulLiteral","src":"16087:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16078:3:64","nodeType":"YulIdentifier","src":"16078:3:64"},"nativeSrc":"16078:14:64","nodeType":"YulFunctionCall","src":"16078:14:64"},"variables":[{"name":"tail","nativeSrc":"16070:4:64","nodeType":"YulTypedName","src":"16070:4:64","type":""}]},{"nativeSrc":"16102:166:64","nodeType":"YulBlock","src":"16102:166:64","statements":[{"nativeSrc":"16139:43:64","nodeType":"YulVariableDeclaration","src":"16139:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16169:5:64","nodeType":"YulIdentifier","src":"16169:5:64"},{"kind":"number","nativeSrc":"16176:4:64","nodeType":"YulLiteral","src":"16176:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16165:3:64","nodeType":"YulIdentifier","src":"16165:3:64"},"nativeSrc":"16165:16:64","nodeType":"YulFunctionCall","src":"16165:16:64"}],"functionName":{"name":"mload","nativeSrc":"16159:5:64","nodeType":"YulIdentifier","src":"16159:5:64"},"nativeSrc":"16159:23:64","nodeType":"YulFunctionCall","src":"16159:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"16143:12:64","nodeType":"YulTypedName","src":"16143:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"16229:12:64","nodeType":"YulIdentifier","src":"16229:12:64"},{"arguments":[{"name":"pos","nativeSrc":"16247:3:64","nodeType":"YulIdentifier","src":"16247:3:64"},{"kind":"number","nativeSrc":"16252:4:64","nodeType":"YulLiteral","src":"16252:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16243:3:64","nodeType":"YulIdentifier","src":"16243:3:64"},"nativeSrc":"16243:14:64","nodeType":"YulFunctionCall","src":"16243:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"16195:33:64","nodeType":"YulIdentifier","src":"16195:33:64"},"nativeSrc":"16195:63:64","nodeType":"YulFunctionCall","src":"16195:63:64"},"nativeSrc":"16195:63:64","nodeType":"YulExpressionStatement","src":"16195:63:64"}]},{"nativeSrc":"16278:233:64","nodeType":"YulBlock","src":"16278:233:64","statements":[{"nativeSrc":"16313:43:64","nodeType":"YulVariableDeclaration","src":"16313:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16343:5:64","nodeType":"YulIdentifier","src":"16343:5:64"},{"kind":"number","nativeSrc":"16350:4:64","nodeType":"YulLiteral","src":"16350:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16339:3:64","nodeType":"YulIdentifier","src":"16339:3:64"},"nativeSrc":"16339:16:64","nodeType":"YulFunctionCall","src":"16339:16:64"}],"functionName":{"name":"mload","nativeSrc":"16333:5:64","nodeType":"YulIdentifier","src":"16333:5:64"},"nativeSrc":"16333:23:64","nodeType":"YulFunctionCall","src":"16333:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"16317:12:64","nodeType":"YulTypedName","src":"16317:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16381:3:64","nodeType":"YulIdentifier","src":"16381:3:64"},{"kind":"number","nativeSrc":"16386:4:64","nodeType":"YulLiteral","src":"16386:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16377:3:64","nodeType":"YulIdentifier","src":"16377:3:64"},"nativeSrc":"16377:14:64","nodeType":"YulFunctionCall","src":"16377:14:64"},{"arguments":[{"name":"tail","nativeSrc":"16397:4:64","nodeType":"YulIdentifier","src":"16397:4:64"},{"name":"pos","nativeSrc":"16403:3:64","nodeType":"YulIdentifier","src":"16403:3:64"}],"functionName":{"name":"sub","nativeSrc":"16393:3:64","nodeType":"YulIdentifier","src":"16393:3:64"},"nativeSrc":"16393:14:64","nodeType":"YulFunctionCall","src":"16393:14:64"}],"functionName":{"name":"mstore","nativeSrc":"16370:6:64","nodeType":"YulIdentifier","src":"16370:6:64"},"nativeSrc":"16370:38:64","nodeType":"YulFunctionCall","src":"16370:38:64"},"nativeSrc":"16370:38:64","nodeType":"YulExpressionStatement","src":"16370:38:64"},{"nativeSrc":"16421:79:64","nodeType":"YulAssignment","src":"16421:79:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"16481:12:64","nodeType":"YulIdentifier","src":"16481:12:64"},{"name":"tail","nativeSrc":"16495:4:64","nodeType":"YulIdentifier","src":"16495:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"16429:51:64","nodeType":"YulIdentifier","src":"16429:51:64"},"nativeSrc":"16429:71:64","nodeType":"YulFunctionCall","src":"16429:71:64"},"variableNames":[{"name":"tail","nativeSrc":"16421:4:64","nodeType":"YulIdentifier","src":"16421:4:64"}]}]},{"nativeSrc":"16521:11:64","nodeType":"YulAssignment","src":"16521:11:64","value":{"name":"tail","nativeSrc":"16528:4:64","nodeType":"YulIdentifier","src":"16528:4:64"},"variableNames":[{"name":"end","nativeSrc":"16521:3:64","nodeType":"YulIdentifier","src":"16521:3:64"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack","nativeSrc":"15920:618:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16035:5:64","nodeType":"YulTypedName","src":"16035:5:64","type":""},{"name":"pos","nativeSrc":"16042:3:64","nodeType":"YulTypedName","src":"16042:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16051:3:64","nodeType":"YulTypedName","src":"16051:3:64","type":""}],"src":"15920:618:64"},{"body":{"nativeSrc":"16704:237:64","nodeType":"YulBlock","src":"16704:237:64","statements":[{"nativeSrc":"16714:26:64","nodeType":"YulAssignment","src":"16714:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"16726:9:64","nodeType":"YulIdentifier","src":"16726:9:64"},{"kind":"number","nativeSrc":"16737:2:64","nodeType":"YulLiteral","src":"16737:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16722:3:64","nodeType":"YulIdentifier","src":"16722:3:64"},"nativeSrc":"16722:18:64","nodeType":"YulFunctionCall","src":"16722:18:64"},"variableNames":[{"name":"tail","nativeSrc":"16714:4:64","nodeType":"YulIdentifier","src":"16714:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16761:9:64","nodeType":"YulIdentifier","src":"16761:9:64"},{"kind":"number","nativeSrc":"16772:1:64","nodeType":"YulLiteral","src":"16772:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16757:3:64","nodeType":"YulIdentifier","src":"16757:3:64"},"nativeSrc":"16757:17:64","nodeType":"YulFunctionCall","src":"16757:17:64"},{"arguments":[{"name":"tail","nativeSrc":"16780:4:64","nodeType":"YulIdentifier","src":"16780:4:64"},{"name":"headStart","nativeSrc":"16786:9:64","nodeType":"YulIdentifier","src":"16786:9:64"}],"functionName":{"name":"sub","nativeSrc":"16776:3:64","nodeType":"YulIdentifier","src":"16776:3:64"},"nativeSrc":"16776:20:64","nodeType":"YulFunctionCall","src":"16776:20:64"}],"functionName":{"name":"mstore","nativeSrc":"16750:6:64","nodeType":"YulIdentifier","src":"16750:6:64"},"nativeSrc":"16750:47:64","nodeType":"YulFunctionCall","src":"16750:47:64"},"nativeSrc":"16750:47:64","nodeType":"YulExpressionStatement","src":"16750:47:64"},{"nativeSrc":"16806:128:64","nodeType":"YulAssignment","src":"16806:128:64","value":{"arguments":[{"name":"value0","nativeSrc":"16920:6:64","nodeType":"YulIdentifier","src":"16920:6:64"},{"name":"tail","nativeSrc":"16929:4:64","nodeType":"YulIdentifier","src":"16929:4:64"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack","nativeSrc":"16814:105:64","nodeType":"YulIdentifier","src":"16814:105:64"},"nativeSrc":"16814:120:64","nodeType":"YulFunctionCall","src":"16814:120:64"},"variableNames":[{"name":"tail","nativeSrc":"16806:4:64","nodeType":"YulIdentifier","src":"16806:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed","nativeSrc":"16544:397:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16676:9:64","nodeType":"YulTypedName","src":"16676:9:64","type":""},{"name":"value0","nativeSrc":"16688:6:64","nodeType":"YulTypedName","src":"16688:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16699:4:64","nodeType":"YulTypedName","src":"16699:4:64","type":""}],"src":"16544:397:64"},{"body":{"nativeSrc":"17037:283:64","nodeType":"YulBlock","src":"17037:283:64","statements":[{"nativeSrc":"17047:52:64","nodeType":"YulVariableDeclaration","src":"17047:52:64","value":{"arguments":[{"name":"value","nativeSrc":"17093:5:64","nodeType":"YulIdentifier","src":"17093:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"17061:31:64","nodeType":"YulIdentifier","src":"17061:31:64"},"nativeSrc":"17061:38:64","nodeType":"YulFunctionCall","src":"17061:38:64"},"variables":[{"name":"length","nativeSrc":"17051:6:64","nodeType":"YulTypedName","src":"17051:6:64","type":""}]},{"nativeSrc":"17108:77:64","nodeType":"YulAssignment","src":"17108:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"17173:3:64","nodeType":"YulIdentifier","src":"17173:3:64"},{"name":"length","nativeSrc":"17178:6:64","nodeType":"YulIdentifier","src":"17178:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"17115:57:64","nodeType":"YulIdentifier","src":"17115:57:64"},"nativeSrc":"17115:70:64","nodeType":"YulFunctionCall","src":"17115:70:64"},"variableNames":[{"name":"pos","nativeSrc":"17108:3:64","nodeType":"YulIdentifier","src":"17108:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17233:5:64","nodeType":"YulIdentifier","src":"17233:5:64"},{"kind":"number","nativeSrc":"17240:4:64","nodeType":"YulLiteral","src":"17240:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17229:3:64","nodeType":"YulIdentifier","src":"17229:3:64"},"nativeSrc":"17229:16:64","nodeType":"YulFunctionCall","src":"17229:16:64"},{"name":"pos","nativeSrc":"17247:3:64","nodeType":"YulIdentifier","src":"17247:3:64"},{"name":"length","nativeSrc":"17252:6:64","nodeType":"YulIdentifier","src":"17252:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17194:34:64","nodeType":"YulIdentifier","src":"17194:34:64"},"nativeSrc":"17194:65:64","nodeType":"YulFunctionCall","src":"17194:65:64"},"nativeSrc":"17194:65:64","nodeType":"YulExpressionStatement","src":"17194:65:64"},{"nativeSrc":"17268:46:64","nodeType":"YulAssignment","src":"17268:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"17279:3:64","nodeType":"YulIdentifier","src":"17279:3:64"},{"arguments":[{"name":"length","nativeSrc":"17306:6:64","nodeType":"YulIdentifier","src":"17306:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17284:21:64","nodeType":"YulIdentifier","src":"17284:21:64"},"nativeSrc":"17284:29:64","nodeType":"YulFunctionCall","src":"17284:29:64"}],"functionName":{"name":"add","nativeSrc":"17275:3:64","nodeType":"YulIdentifier","src":"17275:3:64"},"nativeSrc":"17275:39:64","nodeType":"YulFunctionCall","src":"17275:39:64"},"variableNames":[{"name":"end","nativeSrc":"17268:3:64","nodeType":"YulIdentifier","src":"17268:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16947:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17018:5:64","nodeType":"YulTypedName","src":"17018:5:64","type":""},{"name":"pos","nativeSrc":"17025:3:64","nodeType":"YulTypedName","src":"17025:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17033:3:64","nodeType":"YulTypedName","src":"17033:3:64","type":""}],"src":"16947:373:64"},{"body":{"nativeSrc":"17442:193:64","nodeType":"YulBlock","src":"17442:193:64","statements":[{"nativeSrc":"17452:26:64","nodeType":"YulAssignment","src":"17452:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"17464:9:64","nodeType":"YulIdentifier","src":"17464:9:64"},{"kind":"number","nativeSrc":"17475:2:64","nodeType":"YulLiteral","src":"17475:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17460:3:64","nodeType":"YulIdentifier","src":"17460:3:64"},"nativeSrc":"17460:18:64","nodeType":"YulFunctionCall","src":"17460:18:64"},"variableNames":[{"name":"tail","nativeSrc":"17452:4:64","nodeType":"YulIdentifier","src":"17452:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17499:9:64","nodeType":"YulIdentifier","src":"17499:9:64"},{"kind":"number","nativeSrc":"17510:1:64","nodeType":"YulLiteral","src":"17510:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17495:3:64","nodeType":"YulIdentifier","src":"17495:3:64"},"nativeSrc":"17495:17:64","nodeType":"YulFunctionCall","src":"17495:17:64"},{"arguments":[{"name":"tail","nativeSrc":"17518:4:64","nodeType":"YulIdentifier","src":"17518:4:64"},{"name":"headStart","nativeSrc":"17524:9:64","nodeType":"YulIdentifier","src":"17524:9:64"}],"functionName":{"name":"sub","nativeSrc":"17514:3:64","nodeType":"YulIdentifier","src":"17514:3:64"},"nativeSrc":"17514:20:64","nodeType":"YulFunctionCall","src":"17514:20:64"}],"functionName":{"name":"mstore","nativeSrc":"17488:6:64","nodeType":"YulIdentifier","src":"17488:6:64"},"nativeSrc":"17488:47:64","nodeType":"YulFunctionCall","src":"17488:47:64"},"nativeSrc":"17488:47:64","nodeType":"YulExpressionStatement","src":"17488:47:64"},{"nativeSrc":"17544:84:64","nodeType":"YulAssignment","src":"17544:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"17614:6:64","nodeType":"YulIdentifier","src":"17614:6:64"},{"name":"tail","nativeSrc":"17623:4:64","nodeType":"YulIdentifier","src":"17623:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17552:61:64","nodeType":"YulIdentifier","src":"17552:61:64"},"nativeSrc":"17552:76:64","nodeType":"YulFunctionCall","src":"17552:76:64"},"variableNames":[{"name":"tail","nativeSrc":"17544:4:64","nodeType":"YulIdentifier","src":"17544:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17326:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17414:9:64","nodeType":"YulTypedName","src":"17414:9:64","type":""},{"name":"value0","nativeSrc":"17426:6:64","nodeType":"YulTypedName","src":"17426:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17437:4:64","nodeType":"YulTypedName","src":"17437:4:64","type":""}],"src":"17326:309:64"},{"body":{"nativeSrc":"17795:285:64","nodeType":"YulBlock","src":"17795:285:64","statements":[{"nativeSrc":"17805:26:64","nodeType":"YulAssignment","src":"17805:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"17817:9:64","nodeType":"YulIdentifier","src":"17817:9:64"},{"kind":"number","nativeSrc":"17828:2:64","nodeType":"YulLiteral","src":"17828:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17813:3:64","nodeType":"YulIdentifier","src":"17813:3:64"},"nativeSrc":"17813:18:64","nodeType":"YulFunctionCall","src":"17813:18:64"},"variableNames":[{"name":"tail","nativeSrc":"17805:4:64","nodeType":"YulIdentifier","src":"17805:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17885:6:64","nodeType":"YulIdentifier","src":"17885:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"17898:9:64","nodeType":"YulIdentifier","src":"17898:9:64"},{"kind":"number","nativeSrc":"17909:1:64","nodeType":"YulLiteral","src":"17909:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17894:3:64","nodeType":"YulIdentifier","src":"17894:3:64"},"nativeSrc":"17894:17:64","nodeType":"YulFunctionCall","src":"17894:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17841:43:64","nodeType":"YulIdentifier","src":"17841:43:64"},"nativeSrc":"17841:71:64","nodeType":"YulFunctionCall","src":"17841:71:64"},"nativeSrc":"17841:71:64","nodeType":"YulExpressionStatement","src":"17841:71:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17933:9:64","nodeType":"YulIdentifier","src":"17933:9:64"},{"kind":"number","nativeSrc":"17944:2:64","nodeType":"YulLiteral","src":"17944:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17929:3:64","nodeType":"YulIdentifier","src":"17929:3:64"},"nativeSrc":"17929:18:64","nodeType":"YulFunctionCall","src":"17929:18:64"},{"arguments":[{"name":"tail","nativeSrc":"17953:4:64","nodeType":"YulIdentifier","src":"17953:4:64"},{"name":"headStart","nativeSrc":"17959:9:64","nodeType":"YulIdentifier","src":"17959:9:64"}],"functionName":{"name":"sub","nativeSrc":"17949:3:64","nodeType":"YulIdentifier","src":"17949:3:64"},"nativeSrc":"17949:20:64","nodeType":"YulFunctionCall","src":"17949:20:64"}],"functionName":{"name":"mstore","nativeSrc":"17922:6:64","nodeType":"YulIdentifier","src":"17922:6:64"},"nativeSrc":"17922:48:64","nodeType":"YulFunctionCall","src":"17922:48:64"},"nativeSrc":"17922:48:64","nodeType":"YulExpressionStatement","src":"17922:48:64"},{"nativeSrc":"17979:94:64","nodeType":"YulAssignment","src":"17979:94:64","value":{"arguments":[{"name":"value1","nativeSrc":"18051:6:64","nodeType":"YulIdentifier","src":"18051:6:64"},{"name":"value2","nativeSrc":"18059:6:64","nodeType":"YulIdentifier","src":"18059:6:64"},{"name":"tail","nativeSrc":"18068:4:64","nodeType":"YulIdentifier","src":"18068:4:64"}],"functionName":{"name":"abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17987:63:64","nodeType":"YulIdentifier","src":"17987:63:64"},"nativeSrc":"17987:86:64","nodeType":"YulFunctionCall","src":"17987:86:64"},"variableNames":[{"name":"tail","nativeSrc":"17979:4:64","nodeType":"YulIdentifier","src":"17979:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17641:439:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17751:9:64","nodeType":"YulTypedName","src":"17751:9:64","type":""},{"name":"value2","nativeSrc":"17763:6:64","nodeType":"YulTypedName","src":"17763:6:64","type":""},{"name":"value1","nativeSrc":"17771:6:64","nodeType":"YulTypedName","src":"17771:6:64","type":""},{"name":"value0","nativeSrc":"17779:6:64","nodeType":"YulTypedName","src":"17779:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17790:4:64","nodeType":"YulTypedName","src":"17790:4:64","type":""}],"src":"17641:439:64"},{"body":{"nativeSrc":"18175:28:64","nodeType":"YulBlock","src":"18175:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18192:1:64","nodeType":"YulLiteral","src":"18192:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18195:1:64","nodeType":"YulLiteral","src":"18195:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18185:6:64","nodeType":"YulIdentifier","src":"18185:6:64"},"nativeSrc":"18185:12:64","nodeType":"YulFunctionCall","src":"18185:12:64"},"nativeSrc":"18185:12:64","nodeType":"YulExpressionStatement","src":"18185:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18086:117:64","nodeType":"YulFunctionDefinition","src":"18086:117:64"},{"body":{"nativeSrc":"18237:152:64","nodeType":"YulBlock","src":"18237:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18254:1:64","nodeType":"YulLiteral","src":"18254:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18257:77:64","nodeType":"YulLiteral","src":"18257:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18247:6:64","nodeType":"YulIdentifier","src":"18247:6:64"},"nativeSrc":"18247:88:64","nodeType":"YulFunctionCall","src":"18247:88:64"},"nativeSrc":"18247:88:64","nodeType":"YulExpressionStatement","src":"18247:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18351:1:64","nodeType":"YulLiteral","src":"18351:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"18354:4:64","nodeType":"YulLiteral","src":"18354:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"18344:6:64","nodeType":"YulIdentifier","src":"18344:6:64"},"nativeSrc":"18344:15:64","nodeType":"YulFunctionCall","src":"18344:15:64"},"nativeSrc":"18344:15:64","nodeType":"YulExpressionStatement","src":"18344:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18375:1:64","nodeType":"YulLiteral","src":"18375:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18378:4:64","nodeType":"YulLiteral","src":"18378:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18368:6:64","nodeType":"YulIdentifier","src":"18368:6:64"},"nativeSrc":"18368:15:64","nodeType":"YulFunctionCall","src":"18368:15:64"},"nativeSrc":"18368:15:64","nodeType":"YulExpressionStatement","src":"18368:15:64"}]},"name":"panic_error_0x41","nativeSrc":"18209:180:64","nodeType":"YulFunctionDefinition","src":"18209:180:64"},{"body":{"nativeSrc":"18438:238:64","nodeType":"YulBlock","src":"18438:238:64","statements":[{"nativeSrc":"18448:58:64","nodeType":"YulVariableDeclaration","src":"18448:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"18470:6:64","nodeType":"YulIdentifier","src":"18470:6:64"},{"arguments":[{"name":"size","nativeSrc":"18500:4:64","nodeType":"YulIdentifier","src":"18500:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"18478:21:64","nodeType":"YulIdentifier","src":"18478:21:64"},"nativeSrc":"18478:27:64","nodeType":"YulFunctionCall","src":"18478:27:64"}],"functionName":{"name":"add","nativeSrc":"18466:3:64","nodeType":"YulIdentifier","src":"18466:3:64"},"nativeSrc":"18466:40:64","nodeType":"YulFunctionCall","src":"18466:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"18452:10:64","nodeType":"YulTypedName","src":"18452:10:64","type":""}]},{"body":{"nativeSrc":"18617:22:64","nodeType":"YulBlock","src":"18617:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"18619:16:64","nodeType":"YulIdentifier","src":"18619:16:64"},"nativeSrc":"18619:18:64","nodeType":"YulFunctionCall","src":"18619:18:64"},"nativeSrc":"18619:18:64","nodeType":"YulExpressionStatement","src":"18619:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"18560:10:64","nodeType":"YulIdentifier","src":"18560:10:64"},{"kind":"number","nativeSrc":"18572:18:64","nodeType":"YulLiteral","src":"18572:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"18557:2:64","nodeType":"YulIdentifier","src":"18557:2:64"},"nativeSrc":"18557:34:64","nodeType":"YulFunctionCall","src":"18557:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"18596:10:64","nodeType":"YulIdentifier","src":"18596:10:64"},{"name":"memPtr","nativeSrc":"18608:6:64","nodeType":"YulIdentifier","src":"18608:6:64"}],"functionName":{"name":"lt","nativeSrc":"18593:2:64","nodeType":"YulIdentifier","src":"18593:2:64"},"nativeSrc":"18593:22:64","nodeType":"YulFunctionCall","src":"18593:22:64"}],"functionName":{"name":"or","nativeSrc":"18554:2:64","nodeType":"YulIdentifier","src":"18554:2:64"},"nativeSrc":"18554:62:64","nodeType":"YulFunctionCall","src":"18554:62:64"},"nativeSrc":"18551:88:64","nodeType":"YulIf","src":"18551:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18655:2:64","nodeType":"YulLiteral","src":"18655:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"18659:10:64","nodeType":"YulIdentifier","src":"18659:10:64"}],"functionName":{"name":"mstore","nativeSrc":"18648:6:64","nodeType":"YulIdentifier","src":"18648:6:64"},"nativeSrc":"18648:22:64","nodeType":"YulFunctionCall","src":"18648:22:64"},"nativeSrc":"18648:22:64","nodeType":"YulExpressionStatement","src":"18648:22:64"}]},"name":"finalize_allocation","nativeSrc":"18395:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"18424:6:64","nodeType":"YulTypedName","src":"18424:6:64","type":""},{"name":"size","nativeSrc":"18432:4:64","nodeType":"YulTypedName","src":"18432:4:64","type":""}],"src":"18395:281:64"},{"body":{"nativeSrc":"18723:88:64","nodeType":"YulBlock","src":"18723:88:64","statements":[{"nativeSrc":"18733:30:64","nodeType":"YulAssignment","src":"18733:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"18743:18:64","nodeType":"YulIdentifier","src":"18743:18:64"},"nativeSrc":"18743:20:64","nodeType":"YulFunctionCall","src":"18743:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"18733:6:64","nodeType":"YulIdentifier","src":"18733:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"18792:6:64","nodeType":"YulIdentifier","src":"18792:6:64"},{"name":"size","nativeSrc":"18800:4:64","nodeType":"YulIdentifier","src":"18800:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"18772:19:64","nodeType":"YulIdentifier","src":"18772:19:64"},"nativeSrc":"18772:33:64","nodeType":"YulFunctionCall","src":"18772:33:64"},"nativeSrc":"18772:33:64","nodeType":"YulExpressionStatement","src":"18772:33:64"}]},"name":"allocate_memory","nativeSrc":"18682:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"18707:4:64","nodeType":"YulTypedName","src":"18707:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"18716:6:64","nodeType":"YulTypedName","src":"18716:6:64","type":""}],"src":"18682:129:64"},{"body":{"nativeSrc":"18906:28:64","nodeType":"YulBlock","src":"18906:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18923:1:64","nodeType":"YulLiteral","src":"18923:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18926:1:64","nodeType":"YulLiteral","src":"18926:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18916:6:64","nodeType":"YulIdentifier","src":"18916:6:64"},"nativeSrc":"18916:12:64","nodeType":"YulFunctionCall","src":"18916:12:64"},"nativeSrc":"18916:12:64","nodeType":"YulExpressionStatement","src":"18916:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"18817:117:64","nodeType":"YulFunctionDefinition","src":"18817:117:64"},{"body":{"nativeSrc":"18993:51:64","nodeType":"YulBlock","src":"18993:51:64","statements":[{"nativeSrc":"19003:35:64","nodeType":"YulAssignment","src":"19003:35:64","value":{"arguments":[{"name":"value","nativeSrc":"19032:5:64","nodeType":"YulIdentifier","src":"19032:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"19014:17:64","nodeType":"YulIdentifier","src":"19014:17:64"},"nativeSrc":"19014:24:64","nodeType":"YulFunctionCall","src":"19014:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"19003:7:64","nodeType":"YulIdentifier","src":"19003:7:64"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"18940:104:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18975:5:64","nodeType":"YulTypedName","src":"18975:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"18985:7:64","nodeType":"YulTypedName","src":"18985:7:64","type":""}],"src":"18940:104:64"},{"body":{"nativeSrc":"19111:59:64","nodeType":"YulBlock","src":"19111:59:64","statements":[{"nativeSrc":"19121:43:64","nodeType":"YulAssignment","src":"19121:43:64","value":{"arguments":[{"name":"value","nativeSrc":"19158:5:64","nodeType":"YulIdentifier","src":"19158:5:64"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"19132:25:64","nodeType":"YulIdentifier","src":"19132:25:64"},"nativeSrc":"19132:32:64","nodeType":"YulFunctionCall","src":"19132:32:64"},"variableNames":[{"name":"cleaned","nativeSrc":"19121:7:64","nodeType":"YulIdentifier","src":"19121:7:64"}]}]},"name":"cleanup_t_contract$_Budget_$15659","nativeSrc":"19050:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19093:5:64","nodeType":"YulTypedName","src":"19093:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"19103:7:64","nodeType":"YulTypedName","src":"19103:7:64","type":""}],"src":"19050:120:64"},{"body":{"nativeSrc":"19235:95:64","nodeType":"YulBlock","src":"19235:95:64","statements":[{"body":{"nativeSrc":"19308:16:64","nodeType":"YulBlock","src":"19308:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19317:1:64","nodeType":"YulLiteral","src":"19317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"19320:1:64","nodeType":"YulLiteral","src":"19320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19310:6:64","nodeType":"YulIdentifier","src":"19310:6:64"},"nativeSrc":"19310:12:64","nodeType":"YulFunctionCall","src":"19310:12:64"},"nativeSrc":"19310:12:64","nodeType":"YulExpressionStatement","src":"19310:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19258:5:64","nodeType":"YulIdentifier","src":"19258:5:64"},{"arguments":[{"name":"value","nativeSrc":"19299:5:64","nodeType":"YulIdentifier","src":"19299:5:64"}],"functionName":{"name":"cleanup_t_contract$_Budget_$15659","nativeSrc":"19265:33:64","nodeType":"YulIdentifier","src":"19265:33:64"},"nativeSrc":"19265:40:64","nodeType":"YulFunctionCall","src":"19265:40:64"}],"functionName":{"name":"eq","nativeSrc":"19255:2:64","nodeType":"YulIdentifier","src":"19255:2:64"},"nativeSrc":"19255:51:64","nodeType":"YulFunctionCall","src":"19255:51:64"}],"functionName":{"name":"iszero","nativeSrc":"19248:6:64","nodeType":"YulIdentifier","src":"19248:6:64"},"nativeSrc":"19248:59:64","nodeType":"YulFunctionCall","src":"19248:59:64"},"nativeSrc":"19245:79:64","nodeType":"YulIf","src":"19245:79:64"}]},"name":"validator_revert_t_contract$_Budget_$15659","nativeSrc":"19176:154:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19228:5:64","nodeType":"YulTypedName","src":"19228:5:64","type":""}],"src":"19176:154:64"},{"body":{"nativeSrc":"19415:96:64","nodeType":"YulBlock","src":"19415:96:64","statements":[{"nativeSrc":"19425:22:64","nodeType":"YulAssignment","src":"19425:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"19440:6:64","nodeType":"YulIdentifier","src":"19440:6:64"}],"functionName":{"name":"mload","nativeSrc":"19434:5:64","nodeType":"YulIdentifier","src":"19434:5:64"},"nativeSrc":"19434:13:64","nodeType":"YulFunctionCall","src":"19434:13:64"},"variableNames":[{"name":"value","nativeSrc":"19425:5:64","nodeType":"YulIdentifier","src":"19425:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19499:5:64","nodeType":"YulIdentifier","src":"19499:5:64"}],"functionName":{"name":"validator_revert_t_contract$_Budget_$15659","nativeSrc":"19456:42:64","nodeType":"YulIdentifier","src":"19456:42:64"},"nativeSrc":"19456:49:64","nodeType":"YulFunctionCall","src":"19456:49:64"},"nativeSrc":"19456:49:64","nodeType":"YulExpressionStatement","src":"19456:49:64"}]},"name":"abi_decode_t_contract$_Budget_$15659_fromMemory","nativeSrc":"19336:175:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19393:6:64","nodeType":"YulTypedName","src":"19393:6:64","type":""},{"name":"end","nativeSrc":"19401:3:64","nodeType":"YulTypedName","src":"19401:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19409:5:64","nodeType":"YulTypedName","src":"19409:5:64","type":""}],"src":"19336:175:64"},{"body":{"nativeSrc":"19580:80:64","nodeType":"YulBlock","src":"19580:80:64","statements":[{"nativeSrc":"19590:22:64","nodeType":"YulAssignment","src":"19590:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"19605:6:64","nodeType":"YulIdentifier","src":"19605:6:64"}],"functionName":{"name":"mload","nativeSrc":"19599:5:64","nodeType":"YulIdentifier","src":"19599:5:64"},"nativeSrc":"19599:13:64","nodeType":"YulFunctionCall","src":"19599:13:64"},"variableNames":[{"name":"value","nativeSrc":"19590:5:64","nodeType":"YulIdentifier","src":"19590:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19648:5:64","nodeType":"YulIdentifier","src":"19648:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"19621:26:64","nodeType":"YulIdentifier","src":"19621:26:64"},"nativeSrc":"19621:33:64","nodeType":"YulFunctionCall","src":"19621:33:64"},"nativeSrc":"19621:33:64","nodeType":"YulExpressionStatement","src":"19621:33:64"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"19517:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19558:6:64","nodeType":"YulTypedName","src":"19558:6:64","type":""},{"name":"end","nativeSrc":"19566:3:64","nodeType":"YulTypedName","src":"19566:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19574:5:64","nodeType":"YulTypedName","src":"19574:5:64","type":""}],"src":"19517:143:64"},{"body":{"nativeSrc":"19755:28:64","nodeType":"YulBlock","src":"19755:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19772:1:64","nodeType":"YulLiteral","src":"19772:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"19775:1:64","nodeType":"YulLiteral","src":"19775:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19765:6:64","nodeType":"YulIdentifier","src":"19765:6:64"},"nativeSrc":"19765:12:64","nodeType":"YulFunctionCall","src":"19765:12:64"},"nativeSrc":"19765:12:64","nodeType":"YulExpressionStatement","src":"19765:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"19666:117:64","nodeType":"YulFunctionDefinition","src":"19666:117:64"},{"body":{"nativeSrc":"19855:241:64","nodeType":"YulBlock","src":"19855:241:64","statements":[{"body":{"nativeSrc":"19960:22:64","nodeType":"YulBlock","src":"19960:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"19962:16:64","nodeType":"YulIdentifier","src":"19962:16:64"},"nativeSrc":"19962:18:64","nodeType":"YulFunctionCall","src":"19962:18:64"},"nativeSrc":"19962:18:64","nodeType":"YulExpressionStatement","src":"19962:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"19932:6:64","nodeType":"YulIdentifier","src":"19932:6:64"},{"kind":"number","nativeSrc":"19940:18:64","nodeType":"YulLiteral","src":"19940:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19929:2:64","nodeType":"YulIdentifier","src":"19929:2:64"},"nativeSrc":"19929:30:64","nodeType":"YulFunctionCall","src":"19929:30:64"},"nativeSrc":"19926:56:64","nodeType":"YulIf","src":"19926:56:64"},{"nativeSrc":"19992:37:64","nodeType":"YulAssignment","src":"19992:37:64","value":{"arguments":[{"name":"length","nativeSrc":"20022:6:64","nodeType":"YulIdentifier","src":"20022:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"20000:21:64","nodeType":"YulIdentifier","src":"20000:21:64"},"nativeSrc":"20000:29:64","nodeType":"YulFunctionCall","src":"20000:29:64"},"variableNames":[{"name":"size","nativeSrc":"19992:4:64","nodeType":"YulIdentifier","src":"19992:4:64"}]},{"nativeSrc":"20066:23:64","nodeType":"YulAssignment","src":"20066:23:64","value":{"arguments":[{"name":"size","nativeSrc":"20078:4:64","nodeType":"YulIdentifier","src":"20078:4:64"},{"kind":"number","nativeSrc":"20084:4:64","nodeType":"YulLiteral","src":"20084:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20074:3:64","nodeType":"YulIdentifier","src":"20074:3:64"},"nativeSrc":"20074:15:64","nodeType":"YulFunctionCall","src":"20074:15:64"},"variableNames":[{"name":"size","nativeSrc":"20066:4:64","nodeType":"YulIdentifier","src":"20066:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"19789:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"19839:6:64","nodeType":"YulTypedName","src":"19839:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"19850:4:64","nodeType":"YulTypedName","src":"19850:4:64","type":""}],"src":"19789:307:64"},{"body":{"nativeSrc":"20196:338:64","nodeType":"YulBlock","src":"20196:338:64","statements":[{"nativeSrc":"20206:74:64","nodeType":"YulAssignment","src":"20206:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"20272:6:64","nodeType":"YulIdentifier","src":"20272:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"20231:40:64","nodeType":"YulIdentifier","src":"20231:40:64"},"nativeSrc":"20231:48:64","nodeType":"YulFunctionCall","src":"20231:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"20215:15:64","nodeType":"YulIdentifier","src":"20215:15:64"},"nativeSrc":"20215:65:64","nodeType":"YulFunctionCall","src":"20215:65:64"},"variableNames":[{"name":"array","nativeSrc":"20206:5:64","nodeType":"YulIdentifier","src":"20206:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"20296:5:64","nodeType":"YulIdentifier","src":"20296:5:64"},{"name":"length","nativeSrc":"20303:6:64","nodeType":"YulIdentifier","src":"20303:6:64"}],"functionName":{"name":"mstore","nativeSrc":"20289:6:64","nodeType":"YulIdentifier","src":"20289:6:64"},"nativeSrc":"20289:21:64","nodeType":"YulFunctionCall","src":"20289:21:64"},"nativeSrc":"20289:21:64","nodeType":"YulExpressionStatement","src":"20289:21:64"},{"nativeSrc":"20319:27:64","nodeType":"YulVariableDeclaration","src":"20319:27:64","value":{"arguments":[{"name":"array","nativeSrc":"20334:5:64","nodeType":"YulIdentifier","src":"20334:5:64"},{"kind":"number","nativeSrc":"20341:4:64","nodeType":"YulLiteral","src":"20341:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20330:3:64","nodeType":"YulIdentifier","src":"20330:3:64"},"nativeSrc":"20330:16:64","nodeType":"YulFunctionCall","src":"20330:16:64"},"variables":[{"name":"dst","nativeSrc":"20323:3:64","nodeType":"YulTypedName","src":"20323:3:64","type":""}]},{"body":{"nativeSrc":"20384:83:64","nodeType":"YulBlock","src":"20384:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"20386:77:64","nodeType":"YulIdentifier","src":"20386:77:64"},"nativeSrc":"20386:79:64","nodeType":"YulFunctionCall","src":"20386:79:64"},"nativeSrc":"20386:79:64","nodeType":"YulExpressionStatement","src":"20386:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"20365:3:64","nodeType":"YulIdentifier","src":"20365:3:64"},{"name":"length","nativeSrc":"20370:6:64","nodeType":"YulIdentifier","src":"20370:6:64"}],"functionName":{"name":"add","nativeSrc":"20361:3:64","nodeType":"YulIdentifier","src":"20361:3:64"},"nativeSrc":"20361:16:64","nodeType":"YulFunctionCall","src":"20361:16:64"},{"name":"end","nativeSrc":"20379:3:64","nodeType":"YulIdentifier","src":"20379:3:64"}],"functionName":{"name":"gt","nativeSrc":"20358:2:64","nodeType":"YulIdentifier","src":"20358:2:64"},"nativeSrc":"20358:25:64","nodeType":"YulFunctionCall","src":"20358:25:64"},"nativeSrc":"20355:112:64","nodeType":"YulIf","src":"20355:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"20511:3:64","nodeType":"YulIdentifier","src":"20511:3:64"},{"name":"dst","nativeSrc":"20516:3:64","nodeType":"YulIdentifier","src":"20516:3:64"},{"name":"length","nativeSrc":"20521:6:64","nodeType":"YulIdentifier","src":"20521:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"20476:34:64","nodeType":"YulIdentifier","src":"20476:34:64"},"nativeSrc":"20476:52:64","nodeType":"YulFunctionCall","src":"20476:52:64"},"nativeSrc":"20476:52:64","nodeType":"YulExpressionStatement","src":"20476:52:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"20102:432:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"20169:3:64","nodeType":"YulTypedName","src":"20169:3:64","type":""},{"name":"length","nativeSrc":"20174:6:64","nodeType":"YulTypedName","src":"20174:6:64","type":""},{"name":"end","nativeSrc":"20182:3:64","nodeType":"YulTypedName","src":"20182:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20190:5:64","nodeType":"YulTypedName","src":"20190:5:64","type":""}],"src":"20102:432:64"},{"body":{"nativeSrc":"20625:281:64","nodeType":"YulBlock","src":"20625:281:64","statements":[{"body":{"nativeSrc":"20674:83:64","nodeType":"YulBlock","src":"20674:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"20676:77:64","nodeType":"YulIdentifier","src":"20676:77:64"},"nativeSrc":"20676:79:64","nodeType":"YulFunctionCall","src":"20676:79:64"},"nativeSrc":"20676:79:64","nodeType":"YulExpressionStatement","src":"20676:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20653:6:64","nodeType":"YulIdentifier","src":"20653:6:64"},{"kind":"number","nativeSrc":"20661:4:64","nodeType":"YulLiteral","src":"20661:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"20649:3:64","nodeType":"YulIdentifier","src":"20649:3:64"},"nativeSrc":"20649:17:64","nodeType":"YulFunctionCall","src":"20649:17:64"},{"name":"end","nativeSrc":"20668:3:64","nodeType":"YulIdentifier","src":"20668:3:64"}],"functionName":{"name":"slt","nativeSrc":"20645:3:64","nodeType":"YulIdentifier","src":"20645:3:64"},"nativeSrc":"20645:27:64","nodeType":"YulFunctionCall","src":"20645:27:64"}],"functionName":{"name":"iszero","nativeSrc":"20638:6:64","nodeType":"YulIdentifier","src":"20638:6:64"},"nativeSrc":"20638:35:64","nodeType":"YulFunctionCall","src":"20638:35:64"},"nativeSrc":"20635:122:64","nodeType":"YulIf","src":"20635:122:64"},{"nativeSrc":"20766:27:64","nodeType":"YulVariableDeclaration","src":"20766:27:64","value":{"arguments":[{"name":"offset","nativeSrc":"20786:6:64","nodeType":"YulIdentifier","src":"20786:6:64"}],"functionName":{"name":"mload","nativeSrc":"20780:5:64","nodeType":"YulIdentifier","src":"20780:5:64"},"nativeSrc":"20780:13:64","nodeType":"YulFunctionCall","src":"20780:13:64"},"variables":[{"name":"length","nativeSrc":"20770:6:64","nodeType":"YulTypedName","src":"20770:6:64","type":""}]},{"nativeSrc":"20802:98:64","nodeType":"YulAssignment","src":"20802:98:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"20873:6:64","nodeType":"YulIdentifier","src":"20873:6:64"},{"kind":"number","nativeSrc":"20881:4:64","nodeType":"YulLiteral","src":"20881:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20869:3:64","nodeType":"YulIdentifier","src":"20869:3:64"},"nativeSrc":"20869:17:64","nodeType":"YulFunctionCall","src":"20869:17:64"},{"name":"length","nativeSrc":"20888:6:64","nodeType":"YulIdentifier","src":"20888:6:64"},{"name":"end","nativeSrc":"20896:3:64","nodeType":"YulIdentifier","src":"20896:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"20811:57:64","nodeType":"YulIdentifier","src":"20811:57:64"},"nativeSrc":"20811:89:64","nodeType":"YulFunctionCall","src":"20811:89:64"},"variableNames":[{"name":"array","nativeSrc":"20802:5:64","nodeType":"YulIdentifier","src":"20802:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"20553:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20603:6:64","nodeType":"YulTypedName","src":"20603:6:64","type":""},{"name":"end","nativeSrc":"20611:3:64","nodeType":"YulTypedName","src":"20611:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"20619:5:64","nodeType":"YulTypedName","src":"20619:5:64","type":""}],"src":"20553:353:64"},{"body":{"nativeSrc":"21033:859:64","nodeType":"YulBlock","src":"21033:859:64","statements":[{"body":{"nativeSrc":"21077:83:64","nodeType":"YulBlock","src":"21077:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"21079:77:64","nodeType":"YulIdentifier","src":"21079:77:64"},"nativeSrc":"21079:79:64","nodeType":"YulFunctionCall","src":"21079:79:64"},"nativeSrc":"21079:79:64","nodeType":"YulExpressionStatement","src":"21079:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"21054:3:64","nodeType":"YulIdentifier","src":"21054:3:64"},{"name":"headStart","nativeSrc":"21059:9:64","nodeType":"YulIdentifier","src":"21059:9:64"}],"functionName":{"name":"sub","nativeSrc":"21050:3:64","nodeType":"YulIdentifier","src":"21050:3:64"},"nativeSrc":"21050:19:64","nodeType":"YulFunctionCall","src":"21050:19:64"},{"kind":"number","nativeSrc":"21071:4:64","nodeType":"YulLiteral","src":"21071:4:64","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"21046:3:64","nodeType":"YulIdentifier","src":"21046:3:64"},"nativeSrc":"21046:30:64","nodeType":"YulFunctionCall","src":"21046:30:64"},"nativeSrc":"21043:117:64","nodeType":"YulIf","src":"21043:117:64"},{"nativeSrc":"21169:30:64","nodeType":"YulAssignment","src":"21169:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"21194:4:64","nodeType":"YulLiteral","src":"21194:4:64","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"21178:15:64","nodeType":"YulIdentifier","src":"21178:15:64"},"nativeSrc":"21178:21:64","nodeType":"YulFunctionCall","src":"21178:21:64"},"variableNames":[{"name":"value","nativeSrc":"21169:5:64","nodeType":"YulIdentifier","src":"21169:5:64"}]},{"nativeSrc":"21209:160:64","nodeType":"YulBlock","src":"21209:160:64","statements":[{"nativeSrc":"21246:15:64","nodeType":"YulVariableDeclaration","src":"21246:15:64","value":{"kind":"number","nativeSrc":"21260:1:64","nodeType":"YulLiteral","src":"21260:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21250:6:64","nodeType":"YulTypedName","src":"21250:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21286:5:64","nodeType":"YulIdentifier","src":"21286:5:64"},{"kind":"number","nativeSrc":"21293:4:64","nodeType":"YulLiteral","src":"21293:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"21282:3:64","nodeType":"YulIdentifier","src":"21282:3:64"},"nativeSrc":"21282:16:64","nodeType":"YulFunctionCall","src":"21282:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21333:9:64","nodeType":"YulIdentifier","src":"21333:9:64"},{"name":"offset","nativeSrc":"21344:6:64","nodeType":"YulIdentifier","src":"21344:6:64"}],"functionName":{"name":"add","nativeSrc":"21329:3:64","nodeType":"YulIdentifier","src":"21329:3:64"},"nativeSrc":"21329:22:64","nodeType":"YulFunctionCall","src":"21329:22:64"},{"name":"end","nativeSrc":"21353:3:64","nodeType":"YulIdentifier","src":"21353:3:64"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"21300:28:64","nodeType":"YulIdentifier","src":"21300:28:64"},"nativeSrc":"21300:57:64","nodeType":"YulFunctionCall","src":"21300:57:64"}],"functionName":{"name":"mstore","nativeSrc":"21275:6:64","nodeType":"YulIdentifier","src":"21275:6:64"},"nativeSrc":"21275:83:64","nodeType":"YulFunctionCall","src":"21275:83:64"},"nativeSrc":"21275:83:64","nodeType":"YulExpressionStatement","src":"21275:83:64"}]},{"nativeSrc":"21379:166:64","nodeType":"YulBlock","src":"21379:166:64","statements":[{"nativeSrc":"21418:16:64","nodeType":"YulVariableDeclaration","src":"21418:16:64","value":{"kind":"number","nativeSrc":"21432:2:64","nodeType":"YulLiteral","src":"21432:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"21422:6:64","nodeType":"YulTypedName","src":"21422:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21459:5:64","nodeType":"YulIdentifier","src":"21459:5:64"},{"kind":"number","nativeSrc":"21466:4:64","nodeType":"YulLiteral","src":"21466:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21455:3:64","nodeType":"YulIdentifier","src":"21455:3:64"},"nativeSrc":"21455:16:64","nodeType":"YulFunctionCall","src":"21455:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21509:9:64","nodeType":"YulIdentifier","src":"21509:9:64"},{"name":"offset","nativeSrc":"21520:6:64","nodeType":"YulIdentifier","src":"21520:6:64"}],"functionName":{"name":"add","nativeSrc":"21505:3:64","nodeType":"YulIdentifier","src":"21505:3:64"},"nativeSrc":"21505:22:64","nodeType":"YulFunctionCall","src":"21505:22:64"},{"name":"end","nativeSrc":"21529:3:64","nodeType":"YulIdentifier","src":"21529:3:64"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"21473:31:64","nodeType":"YulIdentifier","src":"21473:31:64"},"nativeSrc":"21473:60:64","nodeType":"YulFunctionCall","src":"21473:60:64"}],"functionName":{"name":"mstore","nativeSrc":"21448:6:64","nodeType":"YulIdentifier","src":"21448:6:64"},"nativeSrc":"21448:86:64","nodeType":"YulFunctionCall","src":"21448:86:64"},"nativeSrc":"21448:86:64","nodeType":"YulExpressionStatement","src":"21448:86:64"}]},{"nativeSrc":"21555:330:64","nodeType":"YulBlock","src":"21555:330:64","statements":[{"nativeSrc":"21596:39:64","nodeType":"YulVariableDeclaration","src":"21596:39:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21620:9:64","nodeType":"YulIdentifier","src":"21620:9:64"},{"kind":"number","nativeSrc":"21631:2:64","nodeType":"YulLiteral","src":"21631:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21616:3:64","nodeType":"YulIdentifier","src":"21616:3:64"},"nativeSrc":"21616:18:64","nodeType":"YulFunctionCall","src":"21616:18:64"}],"functionName":{"name":"mload","nativeSrc":"21610:5:64","nodeType":"YulIdentifier","src":"21610:5:64"},"nativeSrc":"21610:25:64","nodeType":"YulFunctionCall","src":"21610:25:64"},"variables":[{"name":"offset","nativeSrc":"21600:6:64","nodeType":"YulTypedName","src":"21600:6:64","type":""}]},{"body":{"nativeSrc":"21682:83:64","nodeType":"YulBlock","src":"21682:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"21684:77:64","nodeType":"YulIdentifier","src":"21684:77:64"},"nativeSrc":"21684:79:64","nodeType":"YulFunctionCall","src":"21684:79:64"},"nativeSrc":"21684:79:64","nodeType":"YulExpressionStatement","src":"21684:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"21654:6:64","nodeType":"YulIdentifier","src":"21654:6:64"},{"kind":"number","nativeSrc":"21662:18:64","nodeType":"YulLiteral","src":"21662:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21651:2:64","nodeType":"YulIdentifier","src":"21651:2:64"},"nativeSrc":"21651:30:64","nodeType":"YulFunctionCall","src":"21651:30:64"},"nativeSrc":"21648:117:64","nodeType":"YulIf","src":"21648:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21790:5:64","nodeType":"YulIdentifier","src":"21790:5:64"},{"kind":"number","nativeSrc":"21797:4:64","nodeType":"YulLiteral","src":"21797:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21786:3:64","nodeType":"YulIdentifier","src":"21786:3:64"},"nativeSrc":"21786:16:64","nodeType":"YulFunctionCall","src":"21786:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21849:9:64","nodeType":"YulIdentifier","src":"21849:9:64"},{"name":"offset","nativeSrc":"21860:6:64","nodeType":"YulIdentifier","src":"21860:6:64"}],"functionName":{"name":"add","nativeSrc":"21845:3:64","nodeType":"YulIdentifier","src":"21845:3:64"},"nativeSrc":"21845:22:64","nodeType":"YulFunctionCall","src":"21845:22:64"},{"name":"end","nativeSrc":"21869:3:64","nodeType":"YulIdentifier","src":"21869:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"21804:40:64","nodeType":"YulIdentifier","src":"21804:40:64"},"nativeSrc":"21804:69:64","nodeType":"YulFunctionCall","src":"21804:69:64"}],"functionName":{"name":"mstore","nativeSrc":"21779:6:64","nodeType":"YulIdentifier","src":"21779:6:64"},"nativeSrc":"21779:95:64","nodeType":"YulFunctionCall","src":"21779:95:64"},"nativeSrc":"21779:95:64","nodeType":"YulExpressionStatement","src":"21779:95:64"}]}]},"name":"abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory","nativeSrc":"20942:950:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21008:9:64","nodeType":"YulTypedName","src":"21008:9:64","type":""},{"name":"end","nativeSrc":"21019:3:64","nodeType":"YulTypedName","src":"21019:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"21027:5:64","nodeType":"YulTypedName","src":"21027:5:64","type":""}],"src":"20942:950:64"},{"body":{"nativeSrc":"22005:229:64","nodeType":"YulBlock","src":"22005:229:64","statements":[{"body":{"nativeSrc":"22110:22:64","nodeType":"YulBlock","src":"22110:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"22112:16:64","nodeType":"YulIdentifier","src":"22112:16:64"},"nativeSrc":"22112:18:64","nodeType":"YulFunctionCall","src":"22112:18:64"},"nativeSrc":"22112:18:64","nodeType":"YulExpressionStatement","src":"22112:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"22082:6:64","nodeType":"YulIdentifier","src":"22082:6:64"},{"kind":"number","nativeSrc":"22090:18:64","nodeType":"YulLiteral","src":"22090:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22079:2:64","nodeType":"YulIdentifier","src":"22079:2:64"},"nativeSrc":"22079:30:64","nodeType":"YulFunctionCall","src":"22079:30:64"},"nativeSrc":"22076:56:64","nodeType":"YulIf","src":"22076:56:64"},{"nativeSrc":"22142:25:64","nodeType":"YulAssignment","src":"22142:25:64","value":{"arguments":[{"name":"length","nativeSrc":"22154:6:64","nodeType":"YulIdentifier","src":"22154:6:64"},{"kind":"number","nativeSrc":"22162:4:64","nodeType":"YulLiteral","src":"22162:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"22150:3:64","nodeType":"YulIdentifier","src":"22150:3:64"},"nativeSrc":"22150:17:64","nodeType":"YulFunctionCall","src":"22150:17:64"},"variableNames":[{"name":"size","nativeSrc":"22142:4:64","nodeType":"YulIdentifier","src":"22142:4:64"}]},{"nativeSrc":"22204:23:64","nodeType":"YulAssignment","src":"22204:23:64","value":{"arguments":[{"name":"size","nativeSrc":"22216:4:64","nodeType":"YulIdentifier","src":"22216:4:64"},{"kind":"number","nativeSrc":"22222:4:64","nodeType":"YulLiteral","src":"22222:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22212:3:64","nodeType":"YulIdentifier","src":"22212:3:64"},"nativeSrc":"22212:15:64","nodeType":"YulFunctionCall","src":"22212:15:64"},"variableNames":[{"name":"size","nativeSrc":"22204:4:64","nodeType":"YulIdentifier","src":"22204:4:64"}]}]},"name":"array_allocation_size_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","nativeSrc":"21898:336:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"21989:6:64","nodeType":"YulTypedName","src":"21989:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"22000:4:64","nodeType":"YulTypedName","src":"22000:4:64","type":""}],"src":"21898:336:64"},{"body":{"nativeSrc":"22410:867:64","nodeType":"YulBlock","src":"22410:867:64","statements":[{"nativeSrc":"22420:115:64","nodeType":"YulAssignment","src":"22420:115:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"22527:6:64","nodeType":"YulIdentifier","src":"22527:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr","nativeSrc":"22445:81:64","nodeType":"YulIdentifier","src":"22445:81:64"},"nativeSrc":"22445:89:64","nodeType":"YulFunctionCall","src":"22445:89:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"22429:15:64","nodeType":"YulIdentifier","src":"22429:15:64"},"nativeSrc":"22429:106:64","nodeType":"YulFunctionCall","src":"22429:106:64"},"variableNames":[{"name":"array","nativeSrc":"22420:5:64","nodeType":"YulIdentifier","src":"22420:5:64"}]},{"nativeSrc":"22544:16:64","nodeType":"YulVariableDeclaration","src":"22544:16:64","value":{"name":"array","nativeSrc":"22555:5:64","nodeType":"YulIdentifier","src":"22555:5:64"},"variables":[{"name":"dst","nativeSrc":"22548:3:64","nodeType":"YulTypedName","src":"22548:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22577:5:64","nodeType":"YulIdentifier","src":"22577:5:64"},{"name":"length","nativeSrc":"22584:6:64","nodeType":"YulIdentifier","src":"22584:6:64"}],"functionName":{"name":"mstore","nativeSrc":"22570:6:64","nodeType":"YulIdentifier","src":"22570:6:64"},"nativeSrc":"22570:21:64","nodeType":"YulFunctionCall","src":"22570:21:64"},"nativeSrc":"22570:21:64","nodeType":"YulExpressionStatement","src":"22570:21:64"},{"nativeSrc":"22600:23:64","nodeType":"YulAssignment","src":"22600:23:64","value":{"arguments":[{"name":"array","nativeSrc":"22611:5:64","nodeType":"YulIdentifier","src":"22611:5:64"},{"kind":"number","nativeSrc":"22618:4:64","nodeType":"YulLiteral","src":"22618:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22607:3:64","nodeType":"YulIdentifier","src":"22607:3:64"},"nativeSrc":"22607:16:64","nodeType":"YulFunctionCall","src":"22607:16:64"},"variableNames":[{"name":"dst","nativeSrc":"22600:3:64","nodeType":"YulIdentifier","src":"22600:3:64"}]},{"nativeSrc":"22633:44:64","nodeType":"YulVariableDeclaration","src":"22633:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"22651:6:64","nodeType":"YulIdentifier","src":"22651:6:64"},{"arguments":[{"name":"length","nativeSrc":"22663:6:64","nodeType":"YulIdentifier","src":"22663:6:64"},{"kind":"number","nativeSrc":"22671:4:64","nodeType":"YulLiteral","src":"22671:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"22659:3:64","nodeType":"YulIdentifier","src":"22659:3:64"},"nativeSrc":"22659:17:64","nodeType":"YulFunctionCall","src":"22659:17:64"}],"functionName":{"name":"add","nativeSrc":"22647:3:64","nodeType":"YulIdentifier","src":"22647:3:64"},"nativeSrc":"22647:30:64","nodeType":"YulFunctionCall","src":"22647:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"22637:6:64","nodeType":"YulTypedName","src":"22637:6:64","type":""}]},{"body":{"nativeSrc":"22705:103:64","nodeType":"YulBlock","src":"22705:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"22719:77:64","nodeType":"YulIdentifier","src":"22719:77:64"},"nativeSrc":"22719:79:64","nodeType":"YulFunctionCall","src":"22719:79:64"},"nativeSrc":"22719:79:64","nodeType":"YulExpressionStatement","src":"22719:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"22692:6:64","nodeType":"YulIdentifier","src":"22692:6:64"},{"name":"end","nativeSrc":"22700:3:64","nodeType":"YulIdentifier","src":"22700:3:64"}],"functionName":{"name":"gt","nativeSrc":"22689:2:64","nodeType":"YulIdentifier","src":"22689:2:64"},"nativeSrc":"22689:15:64","nodeType":"YulFunctionCall","src":"22689:15:64"},"nativeSrc":"22686:122:64","nodeType":"YulIf","src":"22686:122:64"},{"body":{"nativeSrc":"22893:378:64","nodeType":"YulBlock","src":"22893:378:64","statements":[{"nativeSrc":"22908:29:64","nodeType":"YulVariableDeclaration","src":"22908:29:64","value":{"arguments":[{"name":"src","nativeSrc":"22933:3:64","nodeType":"YulIdentifier","src":"22933:3:64"}],"functionName":{"name":"mload","nativeSrc":"22927:5:64","nodeType":"YulIdentifier","src":"22927:5:64"},"nativeSrc":"22927:10:64","nodeType":"YulFunctionCall","src":"22927:10:64"},"variables":[{"name":"innerOffset","nativeSrc":"22912:11:64","nodeType":"YulTypedName","src":"22912:11:64","type":""}]},{"body":{"nativeSrc":"22989:83:64","nodeType":"YulBlock","src":"22989:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"22991:77:64","nodeType":"YulIdentifier","src":"22991:77:64"},"nativeSrc":"22991:79:64","nodeType":"YulFunctionCall","src":"22991:79:64"},"nativeSrc":"22991:79:64","nodeType":"YulExpressionStatement","src":"22991:79:64"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"22956:11:64","nodeType":"YulIdentifier","src":"22956:11:64"},{"kind":"number","nativeSrc":"22969:18:64","nodeType":"YulLiteral","src":"22969:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22953:2:64","nodeType":"YulIdentifier","src":"22953:2:64"},"nativeSrc":"22953:35:64","nodeType":"YulFunctionCall","src":"22953:35:64"},"nativeSrc":"22950:122:64","nodeType":"YulIf","src":"22950:122:64"},{"nativeSrc":"23085:42:64","nodeType":"YulVariableDeclaration","src":"23085:42:64","value":{"arguments":[{"name":"offset","nativeSrc":"23107:6:64","nodeType":"YulIdentifier","src":"23107:6:64"},{"name":"innerOffset","nativeSrc":"23115:11:64","nodeType":"YulIdentifier","src":"23115:11:64"}],"functionName":{"name":"add","nativeSrc":"23103:3:64","nodeType":"YulIdentifier","src":"23103:3:64"},"nativeSrc":"23103:24:64","nodeType":"YulFunctionCall","src":"23103:24:64"},"variables":[{"name":"elementPos","nativeSrc":"23089:10:64","nodeType":"YulTypedName","src":"23089:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"23148:3:64","nodeType":"YulIdentifier","src":"23148:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"23210:10:64","nodeType":"YulIdentifier","src":"23210:10:64"},{"name":"end","nativeSrc":"23222:3:64","nodeType":"YulIdentifier","src":"23222:3:64"}],"functionName":{"name":"abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory","nativeSrc":"23153:56:64","nodeType":"YulIdentifier","src":"23153:56:64"},"nativeSrc":"23153:73:64","nodeType":"YulFunctionCall","src":"23153:73:64"}],"functionName":{"name":"mstore","nativeSrc":"23141:6:64","nodeType":"YulIdentifier","src":"23141:6:64"},"nativeSrc":"23141:86:64","nodeType":"YulFunctionCall","src":"23141:86:64"},"nativeSrc":"23141:86:64","nodeType":"YulExpressionStatement","src":"23141:86:64"},{"nativeSrc":"23240:21:64","nodeType":"YulAssignment","src":"23240:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"23251:3:64","nodeType":"YulIdentifier","src":"23251:3:64"},{"kind":"number","nativeSrc":"23256:4:64","nodeType":"YulLiteral","src":"23256:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23247:3:64","nodeType":"YulIdentifier","src":"23247:3:64"},"nativeSrc":"23247:14:64","nodeType":"YulFunctionCall","src":"23247:14:64"},"variableNames":[{"name":"dst","nativeSrc":"23240:3:64","nodeType":"YulIdentifier","src":"23240:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"22846:3:64","nodeType":"YulIdentifier","src":"22846:3:64"},{"name":"srcEnd","nativeSrc":"22851:6:64","nodeType":"YulIdentifier","src":"22851:6:64"}],"functionName":{"name":"lt","nativeSrc":"22843:2:64","nodeType":"YulIdentifier","src":"22843:2:64"},"nativeSrc":"22843:15:64","nodeType":"YulFunctionCall","src":"22843:15:64"},"nativeSrc":"22817:454:64","nodeType":"YulForLoop","post":{"nativeSrc":"22859:25:64","nodeType":"YulBlock","src":"22859:25:64","statements":[{"nativeSrc":"22861:21:64","nodeType":"YulAssignment","src":"22861:21:64","value":{"arguments":[{"name":"src","nativeSrc":"22872:3:64","nodeType":"YulIdentifier","src":"22872:3:64"},{"kind":"number","nativeSrc":"22877:4:64","nodeType":"YulLiteral","src":"22877:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22868:3:64","nodeType":"YulIdentifier","src":"22868:3:64"},"nativeSrc":"22868:14:64","nodeType":"YulFunctionCall","src":"22868:14:64"},"variableNames":[{"name":"src","nativeSrc":"22861:3:64","nodeType":"YulIdentifier","src":"22861:3:64"}]}]},"pre":{"nativeSrc":"22821:21:64","nodeType":"YulBlock","src":"22821:21:64","statements":[{"nativeSrc":"22823:17:64","nodeType":"YulVariableDeclaration","src":"22823:17:64","value":{"name":"offset","nativeSrc":"22834:6:64","nodeType":"YulIdentifier","src":"22834:6:64"},"variables":[{"name":"src","nativeSrc":"22827:3:64","nodeType":"YulTypedName","src":"22827:3:64","type":""}]}]},"src":"22817:454:64"}]},"name":"abi_decode_available_length_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"22272:1005:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22380:6:64","nodeType":"YulTypedName","src":"22380:6:64","type":""},{"name":"length","nativeSrc":"22388:6:64","nodeType":"YulTypedName","src":"22388:6:64","type":""},{"name":"end","nativeSrc":"22396:3:64","nodeType":"YulTypedName","src":"22396:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22404:5:64","nodeType":"YulTypedName","src":"22404:5:64","type":""}],"src":"22272:1005:64"},{"body":{"nativeSrc":"23428:322:64","nodeType":"YulBlock","src":"23428:322:64","statements":[{"body":{"nativeSrc":"23477:83:64","nodeType":"YulBlock","src":"23477:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"23479:77:64","nodeType":"YulIdentifier","src":"23479:77:64"},"nativeSrc":"23479:79:64","nodeType":"YulFunctionCall","src":"23479:79:64"},"nativeSrc":"23479:79:64","nodeType":"YulExpressionStatement","src":"23479:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"23456:6:64","nodeType":"YulIdentifier","src":"23456:6:64"},{"kind":"number","nativeSrc":"23464:4:64","nodeType":"YulLiteral","src":"23464:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"23452:3:64","nodeType":"YulIdentifier","src":"23452:3:64"},"nativeSrc":"23452:17:64","nodeType":"YulFunctionCall","src":"23452:17:64"},{"name":"end","nativeSrc":"23471:3:64","nodeType":"YulIdentifier","src":"23471:3:64"}],"functionName":{"name":"slt","nativeSrc":"23448:3:64","nodeType":"YulIdentifier","src":"23448:3:64"},"nativeSrc":"23448:27:64","nodeType":"YulFunctionCall","src":"23448:27:64"}],"functionName":{"name":"iszero","nativeSrc":"23441:6:64","nodeType":"YulIdentifier","src":"23441:6:64"},"nativeSrc":"23441:35:64","nodeType":"YulFunctionCall","src":"23441:35:64"},"nativeSrc":"23438:122:64","nodeType":"YulIf","src":"23438:122:64"},{"nativeSrc":"23569:27:64","nodeType":"YulVariableDeclaration","src":"23569:27:64","value":{"arguments":[{"name":"offset","nativeSrc":"23589:6:64","nodeType":"YulIdentifier","src":"23589:6:64"}],"functionName":{"name":"mload","nativeSrc":"23583:5:64","nodeType":"YulIdentifier","src":"23583:5:64"},"nativeSrc":"23583:13:64","nodeType":"YulFunctionCall","src":"23583:13:64"},"variables":[{"name":"length","nativeSrc":"23573:6:64","nodeType":"YulTypedName","src":"23573:6:64","type":""}]},{"nativeSrc":"23605:139:64","nodeType":"YulAssignment","src":"23605:139:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"23717:6:64","nodeType":"YulIdentifier","src":"23717:6:64"},{"kind":"number","nativeSrc":"23725:4:64","nodeType":"YulLiteral","src":"23725:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23713:3:64","nodeType":"YulIdentifier","src":"23713:3:64"},"nativeSrc":"23713:17:64","nodeType":"YulFunctionCall","src":"23713:17:64"},{"name":"length","nativeSrc":"23732:6:64","nodeType":"YulIdentifier","src":"23732:6:64"},{"name":"end","nativeSrc":"23740:3:64","nodeType":"YulIdentifier","src":"23740:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"23614:98:64","nodeType":"YulIdentifier","src":"23614:98:64"},"nativeSrc":"23614:130:64","nodeType":"YulFunctionCall","src":"23614:130:64"},"variableNames":[{"name":"array","nativeSrc":"23605:5:64","nodeType":"YulIdentifier","src":"23605:5:64"}]}]},"name":"abi_decode_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"23315:435:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"23406:6:64","nodeType":"YulTypedName","src":"23406:6:64","type":""},{"name":"end","nativeSrc":"23414:3:64","nodeType":"YulTypedName","src":"23414:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"23422:5:64","nodeType":"YulTypedName","src":"23422:5:64","type":""}],"src":"23315:435:64"},{"body":{"nativeSrc":"23798:78:64","nodeType":"YulBlock","src":"23798:78:64","statements":[{"body":{"nativeSrc":"23854:16:64","nodeType":"YulBlock","src":"23854:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23863:1:64","nodeType":"YulLiteral","src":"23863:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"23866:1:64","nodeType":"YulLiteral","src":"23866:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"23856:6:64","nodeType":"YulIdentifier","src":"23856:6:64"},"nativeSrc":"23856:12:64","nodeType":"YulFunctionCall","src":"23856:12:64"},"nativeSrc":"23856:12:64","nodeType":"YulExpressionStatement","src":"23856:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23821:5:64","nodeType":"YulIdentifier","src":"23821:5:64"},{"arguments":[{"name":"value","nativeSrc":"23845:5:64","nodeType":"YulIdentifier","src":"23845:5:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"23828:16:64","nodeType":"YulIdentifier","src":"23828:16:64"},"nativeSrc":"23828:23:64","nodeType":"YulFunctionCall","src":"23828:23:64"}],"functionName":{"name":"eq","nativeSrc":"23818:2:64","nodeType":"YulIdentifier","src":"23818:2:64"},"nativeSrc":"23818:34:64","nodeType":"YulFunctionCall","src":"23818:34:64"}],"functionName":{"name":"iszero","nativeSrc":"23811:6:64","nodeType":"YulIdentifier","src":"23811:6:64"},"nativeSrc":"23811:42:64","nodeType":"YulFunctionCall","src":"23811:42:64"},"nativeSrc":"23808:62:64","nodeType":"YulIf","src":"23808:62:64"}]},"name":"validator_revert_t_uint64","nativeSrc":"23756:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23791:5:64","nodeType":"YulTypedName","src":"23791:5:64","type":""}],"src":"23756:120:64"},{"body":{"nativeSrc":"23944:79:64","nodeType":"YulBlock","src":"23944:79:64","statements":[{"nativeSrc":"23954:22:64","nodeType":"YulAssignment","src":"23954:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"23969:6:64","nodeType":"YulIdentifier","src":"23969:6:64"}],"functionName":{"name":"mload","nativeSrc":"23963:5:64","nodeType":"YulIdentifier","src":"23963:5:64"},"nativeSrc":"23963:13:64","nodeType":"YulFunctionCall","src":"23963:13:64"},"variableNames":[{"name":"value","nativeSrc":"23954:5:64","nodeType":"YulIdentifier","src":"23954:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24011:5:64","nodeType":"YulIdentifier","src":"24011:5:64"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"23985:25:64","nodeType":"YulIdentifier","src":"23985:25:64"},"nativeSrc":"23985:32:64","nodeType":"YulFunctionCall","src":"23985:32:64"},"nativeSrc":"23985:32:64","nodeType":"YulExpressionStatement","src":"23985:32:64"}]},"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"23882:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"23922:6:64","nodeType":"YulTypedName","src":"23922:6:64","type":""},{"name":"end","nativeSrc":"23930:3:64","nodeType":"YulTypedName","src":"23930:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"23938:5:64","nodeType":"YulTypedName","src":"23938:5:64","type":""}],"src":"23882:141:64"},{"body":{"nativeSrc":"24092:80:64","nodeType":"YulBlock","src":"24092:80:64","statements":[{"nativeSrc":"24102:22:64","nodeType":"YulAssignment","src":"24102:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"24117:6:64","nodeType":"YulIdentifier","src":"24117:6:64"}],"functionName":{"name":"mload","nativeSrc":"24111:5:64","nodeType":"YulIdentifier","src":"24111:5:64"},"nativeSrc":"24111:13:64","nodeType":"YulFunctionCall","src":"24111:13:64"},"variableNames":[{"name":"value","nativeSrc":"24102:5:64","nodeType":"YulIdentifier","src":"24102:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24160:5:64","nodeType":"YulIdentifier","src":"24160:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"24133:26:64","nodeType":"YulIdentifier","src":"24133:26:64"},"nativeSrc":"24133:33:64","nodeType":"YulFunctionCall","src":"24133:33:64"},"nativeSrc":"24133:33:64","nodeType":"YulExpressionStatement","src":"24133:33:64"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"24029:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"24070:6:64","nodeType":"YulTypedName","src":"24070:6:64","type":""},{"name":"end","nativeSrc":"24078:3:64","nodeType":"YulTypedName","src":"24078:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24086:5:64","nodeType":"YulTypedName","src":"24086:5:64","type":""}],"src":"24029:143:64"},{"body":{"nativeSrc":"24310:2528:64","nodeType":"YulBlock","src":"24310:2528:64","statements":[{"body":{"nativeSrc":"24356:83:64","nodeType":"YulBlock","src":"24356:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"24358:77:64","nodeType":"YulIdentifier","src":"24358:77:64"},"nativeSrc":"24358:79:64","nodeType":"YulFunctionCall","src":"24358:79:64"},"nativeSrc":"24358:79:64","nodeType":"YulExpressionStatement","src":"24358:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"24331:3:64","nodeType":"YulIdentifier","src":"24331:3:64"},{"name":"headStart","nativeSrc":"24336:9:64","nodeType":"YulIdentifier","src":"24336:9:64"}],"functionName":{"name":"sub","nativeSrc":"24327:3:64","nodeType":"YulIdentifier","src":"24327:3:64"},"nativeSrc":"24327:19:64","nodeType":"YulFunctionCall","src":"24327:19:64"},{"kind":"number","nativeSrc":"24348:6:64","nodeType":"YulLiteral","src":"24348:6:64","type":"","value":"0x0120"}],"functionName":{"name":"slt","nativeSrc":"24323:3:64","nodeType":"YulIdentifier","src":"24323:3:64"},"nativeSrc":"24323:32:64","nodeType":"YulFunctionCall","src":"24323:32:64"},"nativeSrc":"24320:119:64","nodeType":"YulIf","src":"24320:119:64"},{"nativeSrc":"24448:32:64","nodeType":"YulAssignment","src":"24448:32:64","value":{"arguments":[{"kind":"number","nativeSrc":"24473:6:64","nodeType":"YulLiteral","src":"24473:6:64","type":"","value":"0x0120"}],"functionName":{"name":"allocate_memory","nativeSrc":"24457:15:64","nodeType":"YulIdentifier","src":"24457:15:64"},"nativeSrc":"24457:23:64","nodeType":"YulFunctionCall","src":"24457:23:64"},"variableNames":[{"name":"value","nativeSrc":"24448:5:64","nodeType":"YulIdentifier","src":"24448:5:64"}]},{"nativeSrc":"24490:179:64","nodeType":"YulBlock","src":"24490:179:64","statements":[{"nativeSrc":"24527:15:64","nodeType":"YulVariableDeclaration","src":"24527:15:64","value":{"kind":"number","nativeSrc":"24541:1:64","nodeType":"YulLiteral","src":"24541:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"24531:6:64","nodeType":"YulTypedName","src":"24531:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24567:5:64","nodeType":"YulIdentifier","src":"24567:5:64"},{"kind":"number","nativeSrc":"24574:4:64","nodeType":"YulLiteral","src":"24574:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"24563:3:64","nodeType":"YulIdentifier","src":"24563:3:64"},"nativeSrc":"24563:16:64","nodeType":"YulFunctionCall","src":"24563:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24633:9:64","nodeType":"YulIdentifier","src":"24633:9:64"},{"name":"offset","nativeSrc":"24644:6:64","nodeType":"YulIdentifier","src":"24644:6:64"}],"functionName":{"name":"add","nativeSrc":"24629:3:64","nodeType":"YulIdentifier","src":"24629:3:64"},"nativeSrc":"24629:22:64","nodeType":"YulFunctionCall","src":"24629:22:64"},{"name":"end","nativeSrc":"24653:3:64","nodeType":"YulIdentifier","src":"24653:3:64"}],"functionName":{"name":"abi_decode_t_contract$_Budget_$15659_fromMemory","nativeSrc":"24581:47:64","nodeType":"YulIdentifier","src":"24581:47:64"},"nativeSrc":"24581:76:64","nodeType":"YulFunctionCall","src":"24581:76:64"}],"functionName":{"name":"mstore","nativeSrc":"24556:6:64","nodeType":"YulIdentifier","src":"24556:6:64"},"nativeSrc":"24556:102:64","nodeType":"YulFunctionCall","src":"24556:102:64"},"nativeSrc":"24556:102:64","nodeType":"YulExpressionStatement","src":"24556:102:64"}]},{"nativeSrc":"24679:342:64","nodeType":"YulBlock","src":"24679:342:64","statements":[{"nativeSrc":"24716:39:64","nodeType":"YulVariableDeclaration","src":"24716:39:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24740:9:64","nodeType":"YulIdentifier","src":"24740:9:64"},{"kind":"number","nativeSrc":"24751:2:64","nodeType":"YulLiteral","src":"24751:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24736:3:64","nodeType":"YulIdentifier","src":"24736:3:64"},"nativeSrc":"24736:18:64","nodeType":"YulFunctionCall","src":"24736:18:64"}],"functionName":{"name":"mload","nativeSrc":"24730:5:64","nodeType":"YulIdentifier","src":"24730:5:64"},"nativeSrc":"24730:25:64","nodeType":"YulFunctionCall","src":"24730:25:64"},"variables":[{"name":"offset","nativeSrc":"24720:6:64","nodeType":"YulTypedName","src":"24720:6:64","type":""}]},{"body":{"nativeSrc":"24802:83:64","nodeType":"YulBlock","src":"24802:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"24804:77:64","nodeType":"YulIdentifier","src":"24804:77:64"},"nativeSrc":"24804:79:64","nodeType":"YulFunctionCall","src":"24804:79:64"},"nativeSrc":"24804:79:64","nodeType":"YulExpressionStatement","src":"24804:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24774:6:64","nodeType":"YulIdentifier","src":"24774:6:64"},{"kind":"number","nativeSrc":"24782:18:64","nodeType":"YulLiteral","src":"24782:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24771:2:64","nodeType":"YulIdentifier","src":"24771:2:64"},"nativeSrc":"24771:30:64","nodeType":"YulFunctionCall","src":"24771:30:64"},"nativeSrc":"24768:117:64","nodeType":"YulIf","src":"24768:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24910:5:64","nodeType":"YulIdentifier","src":"24910:5:64"},{"kind":"number","nativeSrc":"24917:4:64","nodeType":"YulLiteral","src":"24917:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24906:3:64","nodeType":"YulIdentifier","src":"24906:3:64"},"nativeSrc":"24906:16:64","nodeType":"YulFunctionCall","src":"24906:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24985:9:64","nodeType":"YulIdentifier","src":"24985:9:64"},{"name":"offset","nativeSrc":"24996:6:64","nodeType":"YulIdentifier","src":"24996:6:64"}],"functionName":{"name":"add","nativeSrc":"24981:3:64","nodeType":"YulIdentifier","src":"24981:3:64"},"nativeSrc":"24981:22:64","nodeType":"YulFunctionCall","src":"24981:22:64"},{"name":"end","nativeSrc":"25005:3:64","nodeType":"YulIdentifier","src":"25005:3:64"}],"functionName":{"name":"abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory","nativeSrc":"24924:56:64","nodeType":"YulIdentifier","src":"24924:56:64"},"nativeSrc":"24924:85:64","nodeType":"YulFunctionCall","src":"24924:85:64"}],"functionName":{"name":"mstore","nativeSrc":"24899:6:64","nodeType":"YulIdentifier","src":"24899:6:64"},"nativeSrc":"24899:111:64","nodeType":"YulFunctionCall","src":"24899:111:64"},"nativeSrc":"24899:111:64","nodeType":"YulExpressionStatement","src":"24899:111:64"}]},{"nativeSrc":"25031:345:64","nodeType":"YulBlock","src":"25031:345:64","statements":[{"nativeSrc":"25071:39:64","nodeType":"YulVariableDeclaration","src":"25071:39:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25095:9:64","nodeType":"YulIdentifier","src":"25095:9:64"},{"kind":"number","nativeSrc":"25106:2:64","nodeType":"YulLiteral","src":"25106:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25091:3:64","nodeType":"YulIdentifier","src":"25091:3:64"},"nativeSrc":"25091:18:64","nodeType":"YulFunctionCall","src":"25091:18:64"}],"functionName":{"name":"mload","nativeSrc":"25085:5:64","nodeType":"YulIdentifier","src":"25085:5:64"},"nativeSrc":"25085:25:64","nodeType":"YulFunctionCall","src":"25085:25:64"},"variables":[{"name":"offset","nativeSrc":"25075:6:64","nodeType":"YulTypedName","src":"25075:6:64","type":""}]},{"body":{"nativeSrc":"25157:83:64","nodeType":"YulBlock","src":"25157:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25159:77:64","nodeType":"YulIdentifier","src":"25159:77:64"},"nativeSrc":"25159:79:64","nodeType":"YulFunctionCall","src":"25159:79:64"},"nativeSrc":"25159:79:64","nodeType":"YulExpressionStatement","src":"25159:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25129:6:64","nodeType":"YulIdentifier","src":"25129:6:64"},{"kind":"number","nativeSrc":"25137:18:64","nodeType":"YulLiteral","src":"25137:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25126:2:64","nodeType":"YulIdentifier","src":"25126:2:64"},"nativeSrc":"25126:30:64","nodeType":"YulFunctionCall","src":"25126:30:64"},"nativeSrc":"25123:117:64","nodeType":"YulIf","src":"25123:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25265:5:64","nodeType":"YulIdentifier","src":"25265:5:64"},{"kind":"number","nativeSrc":"25272:4:64","nodeType":"YulLiteral","src":"25272:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25261:3:64","nodeType":"YulIdentifier","src":"25261:3:64"},"nativeSrc":"25261:16:64","nodeType":"YulFunctionCall","src":"25261:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25340:9:64","nodeType":"YulIdentifier","src":"25340:9:64"},{"name":"offset","nativeSrc":"25351:6:64","nodeType":"YulIdentifier","src":"25351:6:64"}],"functionName":{"name":"add","nativeSrc":"25336:3:64","nodeType":"YulIdentifier","src":"25336:3:64"},"nativeSrc":"25336:22:64","nodeType":"YulFunctionCall","src":"25336:22:64"},{"name":"end","nativeSrc":"25360:3:64","nodeType":"YulIdentifier","src":"25360:3:64"}],"functionName":{"name":"abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory","nativeSrc":"25279:56:64","nodeType":"YulIdentifier","src":"25279:56:64"},"nativeSrc":"25279:85:64","nodeType":"YulFunctionCall","src":"25279:85:64"}],"functionName":{"name":"mstore","nativeSrc":"25254:6:64","nodeType":"YulIdentifier","src":"25254:6:64"},"nativeSrc":"25254:111:64","nodeType":"YulFunctionCall","src":"25254:111:64"},"nativeSrc":"25254:111:64","nodeType":"YulExpressionStatement","src":"25254:111:64"}]},{"nativeSrc":"25386:345:64","nodeType":"YulBlock","src":"25386:345:64","statements":[{"nativeSrc":"25426:39:64","nodeType":"YulVariableDeclaration","src":"25426:39:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25450:9:64","nodeType":"YulIdentifier","src":"25450:9:64"},{"kind":"number","nativeSrc":"25461:2:64","nodeType":"YulLiteral","src":"25461:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25446:3:64","nodeType":"YulIdentifier","src":"25446:3:64"},"nativeSrc":"25446:18:64","nodeType":"YulFunctionCall","src":"25446:18:64"}],"functionName":{"name":"mload","nativeSrc":"25440:5:64","nodeType":"YulIdentifier","src":"25440:5:64"},"nativeSrc":"25440:25:64","nodeType":"YulFunctionCall","src":"25440:25:64"},"variables":[{"name":"offset","nativeSrc":"25430:6:64","nodeType":"YulTypedName","src":"25430:6:64","type":""}]},{"body":{"nativeSrc":"25512:83:64","nodeType":"YulBlock","src":"25512:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25514:77:64","nodeType":"YulIdentifier","src":"25514:77:64"},"nativeSrc":"25514:79:64","nodeType":"YulFunctionCall","src":"25514:79:64"},"nativeSrc":"25514:79:64","nodeType":"YulExpressionStatement","src":"25514:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25484:6:64","nodeType":"YulIdentifier","src":"25484:6:64"},{"kind":"number","nativeSrc":"25492:18:64","nodeType":"YulLiteral","src":"25492:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25481:2:64","nodeType":"YulIdentifier","src":"25481:2:64"},"nativeSrc":"25481:30:64","nodeType":"YulFunctionCall","src":"25481:30:64"},"nativeSrc":"25478:117:64","nodeType":"YulIf","src":"25478:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25620:5:64","nodeType":"YulIdentifier","src":"25620:5:64"},{"kind":"number","nativeSrc":"25627:4:64","nodeType":"YulLiteral","src":"25627:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25616:3:64","nodeType":"YulIdentifier","src":"25616:3:64"},"nativeSrc":"25616:16:64","nodeType":"YulFunctionCall","src":"25616:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25695:9:64","nodeType":"YulIdentifier","src":"25695:9:64"},{"name":"offset","nativeSrc":"25706:6:64","nodeType":"YulIdentifier","src":"25706:6:64"}],"functionName":{"name":"add","nativeSrc":"25691:3:64","nodeType":"YulIdentifier","src":"25691:3:64"},"nativeSrc":"25691:22:64","nodeType":"YulFunctionCall","src":"25691:22:64"},{"name":"end","nativeSrc":"25715:3:64","nodeType":"YulIdentifier","src":"25715:3:64"}],"functionName":{"name":"abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory","nativeSrc":"25634:56:64","nodeType":"YulIdentifier","src":"25634:56:64"},"nativeSrc":"25634:85:64","nodeType":"YulFunctionCall","src":"25634:85:64"}],"functionName":{"name":"mstore","nativeSrc":"25609:6:64","nodeType":"YulIdentifier","src":"25609:6:64"},"nativeSrc":"25609:111:64","nodeType":"YulFunctionCall","src":"25609:111:64"},"nativeSrc":"25609:111:64","nodeType":"YulExpressionStatement","src":"25609:111:64"}]},{"nativeSrc":"25741:372:64","nodeType":"YulBlock","src":"25741:372:64","statements":[{"nativeSrc":"25782:40:64","nodeType":"YulVariableDeclaration","src":"25782:40:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25806:9:64","nodeType":"YulIdentifier","src":"25806:9:64"},{"kind":"number","nativeSrc":"25817:3:64","nodeType":"YulLiteral","src":"25817:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25802:3:64","nodeType":"YulIdentifier","src":"25802:3:64"},"nativeSrc":"25802:19:64","nodeType":"YulFunctionCall","src":"25802:19:64"}],"functionName":{"name":"mload","nativeSrc":"25796:5:64","nodeType":"YulIdentifier","src":"25796:5:64"},"nativeSrc":"25796:26:64","nodeType":"YulFunctionCall","src":"25796:26:64"},"variables":[{"name":"offset","nativeSrc":"25786:6:64","nodeType":"YulTypedName","src":"25786:6:64","type":""}]},{"body":{"nativeSrc":"25869:83:64","nodeType":"YulBlock","src":"25869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"25871:77:64","nodeType":"YulIdentifier","src":"25871:77:64"},"nativeSrc":"25871:79:64","nodeType":"YulFunctionCall","src":"25871:79:64"},"nativeSrc":"25871:79:64","nodeType":"YulExpressionStatement","src":"25871:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"25841:6:64","nodeType":"YulIdentifier","src":"25841:6:64"},{"kind":"number","nativeSrc":"25849:18:64","nodeType":"YulLiteral","src":"25849:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"25838:2:64","nodeType":"YulIdentifier","src":"25838:2:64"},"nativeSrc":"25838:30:64","nodeType":"YulFunctionCall","src":"25838:30:64"},"nativeSrc":"25835:117:64","nodeType":"YulIf","src":"25835:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25977:5:64","nodeType":"YulIdentifier","src":"25977:5:64"},{"kind":"number","nativeSrc":"25984:4:64","nodeType":"YulLiteral","src":"25984:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25973:3:64","nodeType":"YulIdentifier","src":"25973:3:64"},"nativeSrc":"25973:16:64","nodeType":"YulFunctionCall","src":"25973:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26077:9:64","nodeType":"YulIdentifier","src":"26077:9:64"},{"name":"offset","nativeSrc":"26088:6:64","nodeType":"YulIdentifier","src":"26088:6:64"}],"functionName":{"name":"add","nativeSrc":"26073:3:64","nodeType":"YulIdentifier","src":"26073:3:64"},"nativeSrc":"26073:22:64","nodeType":"YulFunctionCall","src":"26073:22:64"},{"name":"end","nativeSrc":"26097:3:64","nodeType":"YulIdentifier","src":"26097:3:64"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory","nativeSrc":"25991:81:64","nodeType":"YulIdentifier","src":"25991:81:64"},"nativeSrc":"25991:110:64","nodeType":"YulFunctionCall","src":"25991:110:64"}],"functionName":{"name":"mstore","nativeSrc":"25966:6:64","nodeType":"YulIdentifier","src":"25966:6:64"},"nativeSrc":"25966:136:64","nodeType":"YulFunctionCall","src":"25966:136:64"},"nativeSrc":"25966:136:64","nodeType":"YulExpressionStatement","src":"25966:136:64"}]},{"nativeSrc":"26123:169:64","nodeType":"YulBlock","src":"26123:169:64","statements":[{"nativeSrc":"26165:17:64","nodeType":"YulVariableDeclaration","src":"26165:17:64","value":{"kind":"number","nativeSrc":"26179:3:64","nodeType":"YulLiteral","src":"26179:3:64","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"26169:6:64","nodeType":"YulTypedName","src":"26169:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26207:5:64","nodeType":"YulIdentifier","src":"26207:5:64"},{"kind":"number","nativeSrc":"26214:4:64","nodeType":"YulLiteral","src":"26214:4:64","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"26203:3:64","nodeType":"YulIdentifier","src":"26203:3:64"},"nativeSrc":"26203:16:64","nodeType":"YulFunctionCall","src":"26203:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26256:9:64","nodeType":"YulIdentifier","src":"26256:9:64"},{"name":"offset","nativeSrc":"26267:6:64","nodeType":"YulIdentifier","src":"26267:6:64"}],"functionName":{"name":"add","nativeSrc":"26252:3:64","nodeType":"YulIdentifier","src":"26252:3:64"},"nativeSrc":"26252:22:64","nodeType":"YulFunctionCall","src":"26252:22:64"},{"name":"end","nativeSrc":"26276:3:64","nodeType":"YulIdentifier","src":"26276:3:64"}],"functionName":{"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"26221:30:64","nodeType":"YulIdentifier","src":"26221:30:64"},"nativeSrc":"26221:59:64","nodeType":"YulFunctionCall","src":"26221:59:64"}],"functionName":{"name":"mstore","nativeSrc":"26196:6:64","nodeType":"YulIdentifier","src":"26196:6:64"},"nativeSrc":"26196:85:64","nodeType":"YulFunctionCall","src":"26196:85:64"},"nativeSrc":"26196:85:64","nodeType":"YulExpressionStatement","src":"26196:85:64"}]},{"nativeSrc":"26302:169:64","nodeType":"YulBlock","src":"26302:169:64","statements":[{"nativeSrc":"26344:17:64","nodeType":"YulVariableDeclaration","src":"26344:17:64","value":{"kind":"number","nativeSrc":"26358:3:64","nodeType":"YulLiteral","src":"26358:3:64","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"26348:6:64","nodeType":"YulTypedName","src":"26348:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26386:5:64","nodeType":"YulIdentifier","src":"26386:5:64"},{"kind":"number","nativeSrc":"26393:4:64","nodeType":"YulLiteral","src":"26393:4:64","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"26382:3:64","nodeType":"YulIdentifier","src":"26382:3:64"},"nativeSrc":"26382:16:64","nodeType":"YulFunctionCall","src":"26382:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26435:9:64","nodeType":"YulIdentifier","src":"26435:9:64"},{"name":"offset","nativeSrc":"26446:6:64","nodeType":"YulIdentifier","src":"26446:6:64"}],"functionName":{"name":"add","nativeSrc":"26431:3:64","nodeType":"YulIdentifier","src":"26431:3:64"},"nativeSrc":"26431:22:64","nodeType":"YulFunctionCall","src":"26431:22:64"},{"name":"end","nativeSrc":"26455:3:64","nodeType":"YulIdentifier","src":"26455:3:64"}],"functionName":{"name":"abi_decode_t_uint64_fromMemory","nativeSrc":"26400:30:64","nodeType":"YulIdentifier","src":"26400:30:64"},"nativeSrc":"26400:59:64","nodeType":"YulFunctionCall","src":"26400:59:64"}],"functionName":{"name":"mstore","nativeSrc":"26375:6:64","nodeType":"YulIdentifier","src":"26375:6:64"},"nativeSrc":"26375:85:64","nodeType":"YulFunctionCall","src":"26375:85:64"},"nativeSrc":"26375:85:64","nodeType":"YulExpressionStatement","src":"26375:85:64"}]},{"nativeSrc":"26481:174:64","nodeType":"YulBlock","src":"26481:174:64","statements":[{"nativeSrc":"26527:17:64","nodeType":"YulVariableDeclaration","src":"26527:17:64","value":{"kind":"number","nativeSrc":"26541:3:64","nodeType":"YulLiteral","src":"26541:3:64","type":"","value":"224"},"variables":[{"name":"offset","nativeSrc":"26531:6:64","nodeType":"YulTypedName","src":"26531:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26569:5:64","nodeType":"YulIdentifier","src":"26569:5:64"},{"kind":"number","nativeSrc":"26576:4:64","nodeType":"YulLiteral","src":"26576:4:64","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"26565:3:64","nodeType":"YulIdentifier","src":"26565:3:64"},"nativeSrc":"26565:16:64","nodeType":"YulFunctionCall","src":"26565:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26619:9:64","nodeType":"YulIdentifier","src":"26619:9:64"},{"name":"offset","nativeSrc":"26630:6:64","nodeType":"YulIdentifier","src":"26630:6:64"}],"functionName":{"name":"add","nativeSrc":"26615:3:64","nodeType":"YulIdentifier","src":"26615:3:64"},"nativeSrc":"26615:22:64","nodeType":"YulFunctionCall","src":"26615:22:64"},{"name":"end","nativeSrc":"26639:3:64","nodeType":"YulIdentifier","src":"26639:3:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"26583:31:64","nodeType":"YulIdentifier","src":"26583:31:64"},"nativeSrc":"26583:60:64","nodeType":"YulFunctionCall","src":"26583:60:64"}],"functionName":{"name":"mstore","nativeSrc":"26558:6:64","nodeType":"YulIdentifier","src":"26558:6:64"},"nativeSrc":"26558:86:64","nodeType":"YulFunctionCall","src":"26558:86:64"},"nativeSrc":"26558:86:64","nodeType":"YulExpressionStatement","src":"26558:86:64"}]},{"nativeSrc":"26665:166:64","nodeType":"YulBlock","src":"26665:166:64","statements":[{"nativeSrc":"26701:17:64","nodeType":"YulVariableDeclaration","src":"26701:17:64","value":{"kind":"number","nativeSrc":"26715:3:64","nodeType":"YulLiteral","src":"26715:3:64","type":"","value":"256"},"variables":[{"name":"offset","nativeSrc":"26705:6:64","nodeType":"YulTypedName","src":"26705:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26743:5:64","nodeType":"YulIdentifier","src":"26743:5:64"},{"kind":"number","nativeSrc":"26750:6:64","nodeType":"YulLiteral","src":"26750:6:64","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"26739:3:64","nodeType":"YulIdentifier","src":"26739:3:64"},"nativeSrc":"26739:18:64","nodeType":"YulFunctionCall","src":"26739:18:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26795:9:64","nodeType":"YulIdentifier","src":"26795:9:64"},{"name":"offset","nativeSrc":"26806:6:64","nodeType":"YulIdentifier","src":"26806:6:64"}],"functionName":{"name":"add","nativeSrc":"26791:3:64","nodeType":"YulIdentifier","src":"26791:3:64"},"nativeSrc":"26791:22:64","nodeType":"YulFunctionCall","src":"26791:22:64"},{"name":"end","nativeSrc":"26815:3:64","nodeType":"YulIdentifier","src":"26815:3:64"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"26759:31:64","nodeType":"YulIdentifier","src":"26759:31:64"},"nativeSrc":"26759:60:64","nodeType":"YulFunctionCall","src":"26759:60:64"}],"functionName":{"name":"mstore","nativeSrc":"26732:6:64","nodeType":"YulIdentifier","src":"26732:6:64"},"nativeSrc":"26732:88:64","nodeType":"YulFunctionCall","src":"26732:88:64"},"nativeSrc":"26732:88:64","nodeType":"YulExpressionStatement","src":"26732:88:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$11583_memory_ptr_fromMemory","nativeSrc":"24214:2624:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24285:9:64","nodeType":"YulTypedName","src":"24285:9:64","type":""},{"name":"end","nativeSrc":"24296:3:64","nodeType":"YulTypedName","src":"24296:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"24304:5:64","nodeType":"YulTypedName","src":"24304:5:64","type":""}],"src":"24214:2624:64"},{"body":{"nativeSrc":"26951:457:64","nodeType":"YulBlock","src":"26951:457:64","statements":[{"body":{"nativeSrc":"26997:83:64","nodeType":"YulBlock","src":"26997:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"26999:77:64","nodeType":"YulIdentifier","src":"26999:77:64"},"nativeSrc":"26999:79:64","nodeType":"YulFunctionCall","src":"26999:79:64"},"nativeSrc":"26999:79:64","nodeType":"YulExpressionStatement","src":"26999:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"26972:7:64","nodeType":"YulIdentifier","src":"26972:7:64"},{"name":"headStart","nativeSrc":"26981:9:64","nodeType":"YulIdentifier","src":"26981:9:64"}],"functionName":{"name":"sub","nativeSrc":"26968:3:64","nodeType":"YulIdentifier","src":"26968:3:64"},"nativeSrc":"26968:23:64","nodeType":"YulFunctionCall","src":"26968:23:64"},{"kind":"number","nativeSrc":"26993:2:64","nodeType":"YulLiteral","src":"26993:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"26964:3:64","nodeType":"YulIdentifier","src":"26964:3:64"},"nativeSrc":"26964:32:64","nodeType":"YulFunctionCall","src":"26964:32:64"},"nativeSrc":"26961:119:64","nodeType":"YulIf","src":"26961:119:64"},{"nativeSrc":"27090:311:64","nodeType":"YulBlock","src":"27090:311:64","statements":[{"nativeSrc":"27105:38:64","nodeType":"YulVariableDeclaration","src":"27105:38:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27129:9:64","nodeType":"YulIdentifier","src":"27129:9:64"},{"kind":"number","nativeSrc":"27140:1:64","nodeType":"YulLiteral","src":"27140:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27125:3:64","nodeType":"YulIdentifier","src":"27125:3:64"},"nativeSrc":"27125:17:64","nodeType":"YulFunctionCall","src":"27125:17:64"}],"functionName":{"name":"mload","nativeSrc":"27119:5:64","nodeType":"YulIdentifier","src":"27119:5:64"},"nativeSrc":"27119:24:64","nodeType":"YulFunctionCall","src":"27119:24:64"},"variables":[{"name":"offset","nativeSrc":"27109:6:64","nodeType":"YulTypedName","src":"27109:6:64","type":""}]},{"body":{"nativeSrc":"27190:83:64","nodeType":"YulBlock","src":"27190:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27192:77:64","nodeType":"YulIdentifier","src":"27192:77:64"},"nativeSrc":"27192:79:64","nodeType":"YulFunctionCall","src":"27192:79:64"},"nativeSrc":"27192:79:64","nodeType":"YulExpressionStatement","src":"27192:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27162:6:64","nodeType":"YulIdentifier","src":"27162:6:64"},{"kind":"number","nativeSrc":"27170:18:64","nodeType":"YulLiteral","src":"27170:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27159:2:64","nodeType":"YulIdentifier","src":"27159:2:64"},"nativeSrc":"27159:30:64","nodeType":"YulFunctionCall","src":"27159:30:64"},"nativeSrc":"27156:117:64","nodeType":"YulIf","src":"27156:117:64"},{"nativeSrc":"27287:104:64","nodeType":"YulAssignment","src":"27287:104:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27363:9:64","nodeType":"YulIdentifier","src":"27363:9:64"},{"name":"offset","nativeSrc":"27374:6:64","nodeType":"YulIdentifier","src":"27374:6:64"}],"functionName":{"name":"add","nativeSrc":"27359:3:64","nodeType":"YulIdentifier","src":"27359:3:64"},"nativeSrc":"27359:22:64","nodeType":"YulFunctionCall","src":"27359:22:64"},{"name":"dataEnd","nativeSrc":"27383:7:64","nodeType":"YulIdentifier","src":"27383:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$11583_memory_ptr_fromMemory","nativeSrc":"27297:61:64","nodeType":"YulIdentifier","src":"27297:61:64"},"nativeSrc":"27297:94:64","nodeType":"YulFunctionCall","src":"27297:94:64"},"variableNames":[{"name":"value0","nativeSrc":"27287:6:64","nodeType":"YulIdentifier","src":"27287:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$11583_memory_ptr_fromMemory","nativeSrc":"26844:564:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26921:9:64","nodeType":"YulTypedName","src":"26921:9:64","type":""},{"name":"dataEnd","nativeSrc":"26932:7:64","nodeType":"YulTypedName","src":"26932:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"26944:6:64","nodeType":"YulTypedName","src":"26944:6:64","type":""}],"src":"26844:564:64"},{"body":{"nativeSrc":"27442:152:64","nodeType":"YulBlock","src":"27442:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27459:1:64","nodeType":"YulLiteral","src":"27459:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"27462:77:64","nodeType":"YulLiteral","src":"27462:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"27452:6:64","nodeType":"YulIdentifier","src":"27452:6:64"},"nativeSrc":"27452:88:64","nodeType":"YulFunctionCall","src":"27452:88:64"},"nativeSrc":"27452:88:64","nodeType":"YulExpressionStatement","src":"27452:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27556:1:64","nodeType":"YulLiteral","src":"27556:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"27559:4:64","nodeType":"YulLiteral","src":"27559:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"27549:6:64","nodeType":"YulIdentifier","src":"27549:6:64"},"nativeSrc":"27549:15:64","nodeType":"YulFunctionCall","src":"27549:15:64"},"nativeSrc":"27549:15:64","nodeType":"YulExpressionStatement","src":"27549:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27580:1:64","nodeType":"YulLiteral","src":"27580:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"27583:4:64","nodeType":"YulLiteral","src":"27583:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"27573:6:64","nodeType":"YulIdentifier","src":"27573:6:64"},"nativeSrc":"27573:15:64","nodeType":"YulFunctionCall","src":"27573:15:64"},"nativeSrc":"27573:15:64","nodeType":"YulExpressionStatement","src":"27573:15:64"}]},"name":"panic_error_0x11","nativeSrc":"27414:180:64","nodeType":"YulFunctionDefinition","src":"27414:180:64"},{"body":{"nativeSrc":"27643:162:64","nodeType":"YulBlock","src":"27643:162:64","statements":[{"nativeSrc":"27653:24:64","nodeType":"YulAssignment","src":"27653:24:64","value":{"arguments":[{"name":"x","nativeSrc":"27675:1:64","nodeType":"YulIdentifier","src":"27675:1:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"27658:16:64","nodeType":"YulIdentifier","src":"27658:16:64"},"nativeSrc":"27658:19:64","nodeType":"YulFunctionCall","src":"27658:19:64"},"variableNames":[{"name":"x","nativeSrc":"27653:1:64","nodeType":"YulIdentifier","src":"27653:1:64"}]},{"nativeSrc":"27686:24:64","nodeType":"YulAssignment","src":"27686:24:64","value":{"arguments":[{"name":"y","nativeSrc":"27708:1:64","nodeType":"YulIdentifier","src":"27708:1:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"27691:16:64","nodeType":"YulIdentifier","src":"27691:16:64"},"nativeSrc":"27691:19:64","nodeType":"YulFunctionCall","src":"27691:19:64"},"variableNames":[{"name":"y","nativeSrc":"27686:1:64","nodeType":"YulIdentifier","src":"27686:1:64"}]},{"nativeSrc":"27719:16:64","nodeType":"YulAssignment","src":"27719:16:64","value":{"arguments":[{"name":"x","nativeSrc":"27730:1:64","nodeType":"YulIdentifier","src":"27730:1:64"},{"name":"y","nativeSrc":"27733:1:64","nodeType":"YulIdentifier","src":"27733:1:64"}],"functionName":{"name":"add","nativeSrc":"27726:3:64","nodeType":"YulIdentifier","src":"27726:3:64"},"nativeSrc":"27726:9:64","nodeType":"YulFunctionCall","src":"27726:9:64"},"variableNames":[{"name":"sum","nativeSrc":"27719:3:64","nodeType":"YulIdentifier","src":"27719:3:64"}]},{"body":{"nativeSrc":"27776:22:64","nodeType":"YulBlock","src":"27776:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27778:16:64","nodeType":"YulIdentifier","src":"27778:16:64"},"nativeSrc":"27778:18:64","nodeType":"YulFunctionCall","src":"27778:18:64"},"nativeSrc":"27778:18:64","nodeType":"YulExpressionStatement","src":"27778:18:64"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"27751:3:64","nodeType":"YulIdentifier","src":"27751:3:64"},{"kind":"number","nativeSrc":"27756:18:64","nodeType":"YulLiteral","src":"27756:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27748:2:64","nodeType":"YulIdentifier","src":"27748:2:64"},"nativeSrc":"27748:27:64","nodeType":"YulFunctionCall","src":"27748:27:64"},"nativeSrc":"27745:53:64","nodeType":"YulIf","src":"27745:53:64"}]},"name":"checked_add_t_uint64","nativeSrc":"27600:205:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27630:1:64","nodeType":"YulTypedName","src":"27630:1:64","type":""},{"name":"y","nativeSrc":"27633:1:64","nodeType":"YulTypedName","src":"27633:1:64","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"27639:3:64","nodeType":"YulTypedName","src":"27639:3:64","type":""}],"src":"27600:205:64"},{"body":{"nativeSrc":"27855:105:64","nodeType":"YulBlock","src":"27855:105:64","statements":[{"nativeSrc":"27865:89:64","nodeType":"YulAssignment","src":"27865:89:64","value":{"arguments":[{"name":"value","nativeSrc":"27880:5:64","nodeType":"YulIdentifier","src":"27880:5:64"},{"kind":"number","nativeSrc":"27887:66:64","nodeType":"YulLiteral","src":"27887:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"27876:3:64","nodeType":"YulIdentifier","src":"27876:3:64"},"nativeSrc":"27876:78:64","nodeType":"YulFunctionCall","src":"27876:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"27865:7:64","nodeType":"YulIdentifier","src":"27865:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"27811:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27837:5:64","nodeType":"YulTypedName","src":"27837:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"27847:7:64","nodeType":"YulTypedName","src":"27847:7:64","type":""}],"src":"27811:149:64"},{"body":{"nativeSrc":"28029:52:64","nodeType":"YulBlock","src":"28029:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"28046:3:64","nodeType":"YulIdentifier","src":"28046:3:64"},{"arguments":[{"name":"value","nativeSrc":"28068:5:64","nodeType":"YulIdentifier","src":"28068:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"28051:16:64","nodeType":"YulIdentifier","src":"28051:16:64"},"nativeSrc":"28051:23:64","nodeType":"YulFunctionCall","src":"28051:23:64"}],"functionName":{"name":"mstore","nativeSrc":"28039:6:64","nodeType":"YulIdentifier","src":"28039:6:64"},"nativeSrc":"28039:36:64","nodeType":"YulFunctionCall","src":"28039:36:64"},"nativeSrc":"28039:36:64","nodeType":"YulExpressionStatement","src":"28039:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"27966:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28017:5:64","nodeType":"YulTypedName","src":"28017:5:64","type":""},{"name":"pos","nativeSrc":"28024:3:64","nodeType":"YulTypedName","src":"28024:3:64","type":""}],"src":"27966:115:64"},{"body":{"nativeSrc":"28183:122:64","nodeType":"YulBlock","src":"28183:122:64","statements":[{"nativeSrc":"28193:26:64","nodeType":"YulAssignment","src":"28193:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"28205:9:64","nodeType":"YulIdentifier","src":"28205:9:64"},{"kind":"number","nativeSrc":"28216:2:64","nodeType":"YulLiteral","src":"28216:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28201:3:64","nodeType":"YulIdentifier","src":"28201:3:64"},"nativeSrc":"28201:18:64","nodeType":"YulFunctionCall","src":"28201:18:64"},"variableNames":[{"name":"tail","nativeSrc":"28193:4:64","nodeType":"YulIdentifier","src":"28193:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28271:6:64","nodeType":"YulIdentifier","src":"28271:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"28284:9:64","nodeType":"YulIdentifier","src":"28284:9:64"},{"kind":"number","nativeSrc":"28295:1:64","nodeType":"YulLiteral","src":"28295:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28280:3:64","nodeType":"YulIdentifier","src":"28280:3:64"},"nativeSrc":"28280:17:64","nodeType":"YulFunctionCall","src":"28280:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"28229:41:64","nodeType":"YulIdentifier","src":"28229:41:64"},"nativeSrc":"28229:69:64","nodeType":"YulFunctionCall","src":"28229:69:64"},"nativeSrc":"28229:69:64","nodeType":"YulExpressionStatement","src":"28229:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"28087:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28155:9:64","nodeType":"YulTypedName","src":"28155:9:64","type":""},{"name":"value0","nativeSrc":"28167:6:64","nodeType":"YulTypedName","src":"28167:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28178:4:64","nodeType":"YulTypedName","src":"28178:4:64","type":""}],"src":"28087:218:64"},{"body":{"nativeSrc":"28356:149:64","nodeType":"YulBlock","src":"28356:149:64","statements":[{"nativeSrc":"28366:25:64","nodeType":"YulAssignment","src":"28366:25:64","value":{"arguments":[{"name":"x","nativeSrc":"28389:1:64","nodeType":"YulIdentifier","src":"28389:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28371:17:64","nodeType":"YulIdentifier","src":"28371:17:64"},"nativeSrc":"28371:20:64","nodeType":"YulFunctionCall","src":"28371:20:64"},"variableNames":[{"name":"x","nativeSrc":"28366:1:64","nodeType":"YulIdentifier","src":"28366:1:64"}]},{"nativeSrc":"28400:25:64","nodeType":"YulAssignment","src":"28400:25:64","value":{"arguments":[{"name":"y","nativeSrc":"28423:1:64","nodeType":"YulIdentifier","src":"28423:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28405:17:64","nodeType":"YulIdentifier","src":"28405:17:64"},"nativeSrc":"28405:20:64","nodeType":"YulFunctionCall","src":"28405:20:64"},"variableNames":[{"name":"y","nativeSrc":"28400:1:64","nodeType":"YulIdentifier","src":"28400:1:64"}]},{"nativeSrc":"28434:17:64","nodeType":"YulAssignment","src":"28434:17:64","value":{"arguments":[{"name":"x","nativeSrc":"28446:1:64","nodeType":"YulIdentifier","src":"28446:1:64"},{"name":"y","nativeSrc":"28449:1:64","nodeType":"YulIdentifier","src":"28449:1:64"}],"functionName":{"name":"sub","nativeSrc":"28442:3:64","nodeType":"YulIdentifier","src":"28442:3:64"},"nativeSrc":"28442:9:64","nodeType":"YulFunctionCall","src":"28442:9:64"},"variableNames":[{"name":"diff","nativeSrc":"28434:4:64","nodeType":"YulIdentifier","src":"28434:4:64"}]},{"body":{"nativeSrc":"28476:22:64","nodeType":"YulBlock","src":"28476:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28478:16:64","nodeType":"YulIdentifier","src":"28478:16:64"},"nativeSrc":"28478:18:64","nodeType":"YulFunctionCall","src":"28478:18:64"},"nativeSrc":"28478:18:64","nodeType":"YulExpressionStatement","src":"28478:18:64"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"28467:4:64","nodeType":"YulIdentifier","src":"28467:4:64"},{"name":"x","nativeSrc":"28473:1:64","nodeType":"YulIdentifier","src":"28473:1:64"}],"functionName":{"name":"gt","nativeSrc":"28464:2:64","nodeType":"YulIdentifier","src":"28464:2:64"},"nativeSrc":"28464:11:64","nodeType":"YulFunctionCall","src":"28464:11:64"},"nativeSrc":"28461:37:64","nodeType":"YulIf","src":"28461:37:64"}]},"name":"checked_sub_t_uint256","nativeSrc":"28311:194:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28342:1:64","nodeType":"YulTypedName","src":"28342:1:64","type":""},{"name":"y","nativeSrc":"28345:1:64","nodeType":"YulTypedName","src":"28345:1:64","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"28351:4:64","nodeType":"YulTypedName","src":"28351:4:64","type":""}],"src":"28311:194:64"},{"body":{"nativeSrc":"28665:288:64","nodeType":"YulBlock","src":"28665:288:64","statements":[{"nativeSrc":"28675:26:64","nodeType":"YulAssignment","src":"28675:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"28687:9:64","nodeType":"YulIdentifier","src":"28687:9:64"},{"kind":"number","nativeSrc":"28698:2:64","nodeType":"YulLiteral","src":"28698:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28683:3:64","nodeType":"YulIdentifier","src":"28683:3:64"},"nativeSrc":"28683:18:64","nodeType":"YulFunctionCall","src":"28683:18:64"},"variableNames":[{"name":"tail","nativeSrc":"28675:4:64","nodeType":"YulIdentifier","src":"28675:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28755:6:64","nodeType":"YulIdentifier","src":"28755:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"28768:9:64","nodeType":"YulIdentifier","src":"28768:9:64"},{"kind":"number","nativeSrc":"28779:1:64","nodeType":"YulLiteral","src":"28779:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28764:3:64","nodeType":"YulIdentifier","src":"28764:3:64"},"nativeSrc":"28764:17:64","nodeType":"YulFunctionCall","src":"28764:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28711:43:64","nodeType":"YulIdentifier","src":"28711:43:64"},"nativeSrc":"28711:71:64","nodeType":"YulFunctionCall","src":"28711:71:64"},"nativeSrc":"28711:71:64","nodeType":"YulExpressionStatement","src":"28711:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"28836:6:64","nodeType":"YulIdentifier","src":"28836:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"28849:9:64","nodeType":"YulIdentifier","src":"28849:9:64"},{"kind":"number","nativeSrc":"28860:2:64","nodeType":"YulLiteral","src":"28860:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28845:3:64","nodeType":"YulIdentifier","src":"28845:3:64"},"nativeSrc":"28845:18:64","nodeType":"YulFunctionCall","src":"28845:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28792:43:64","nodeType":"YulIdentifier","src":"28792:43:64"},"nativeSrc":"28792:72:64","nodeType":"YulFunctionCall","src":"28792:72:64"},"nativeSrc":"28792:72:64","nodeType":"YulExpressionStatement","src":"28792:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"28918:6:64","nodeType":"YulIdentifier","src":"28918:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"28931:9:64","nodeType":"YulIdentifier","src":"28931:9:64"},{"kind":"number","nativeSrc":"28942:2:64","nodeType":"YulLiteral","src":"28942:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28927:3:64","nodeType":"YulIdentifier","src":"28927:3:64"},"nativeSrc":"28927:18:64","nodeType":"YulFunctionCall","src":"28927:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28874:43:64","nodeType":"YulIdentifier","src":"28874:43:64"},"nativeSrc":"28874:72:64","nodeType":"YulFunctionCall","src":"28874:72:64"},"nativeSrc":"28874:72:64","nodeType":"YulExpressionStatement","src":"28874:72:64"}]},"name":"abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed","nativeSrc":"28511:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28621:9:64","nodeType":"YulTypedName","src":"28621:9:64","type":""},{"name":"value2","nativeSrc":"28633:6:64","nodeType":"YulTypedName","src":"28633:6:64","type":""},{"name":"value1","nativeSrc":"28641:6:64","nodeType":"YulTypedName","src":"28641:6:64","type":""},{"name":"value0","nativeSrc":"28649:6:64","nodeType":"YulTypedName","src":"28649:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28660:4:64","nodeType":"YulTypedName","src":"28660:4:64","type":""}],"src":"28511:442:64"},{"body":{"nativeSrc":"29007:362:64","nodeType":"YulBlock","src":"29007:362:64","statements":[{"nativeSrc":"29017:25:64","nodeType":"YulAssignment","src":"29017:25:64","value":{"arguments":[{"name":"x","nativeSrc":"29040:1:64","nodeType":"YulIdentifier","src":"29040:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29022:17:64","nodeType":"YulIdentifier","src":"29022:17:64"},"nativeSrc":"29022:20:64","nodeType":"YulFunctionCall","src":"29022:20:64"},"variableNames":[{"name":"x","nativeSrc":"29017:1:64","nodeType":"YulIdentifier","src":"29017:1:64"}]},{"nativeSrc":"29051:25:64","nodeType":"YulAssignment","src":"29051:25:64","value":{"arguments":[{"name":"y","nativeSrc":"29074:1:64","nodeType":"YulIdentifier","src":"29074:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29056:17:64","nodeType":"YulIdentifier","src":"29056:17:64"},"nativeSrc":"29056:20:64","nodeType":"YulFunctionCall","src":"29056:20:64"},"variableNames":[{"name":"y","nativeSrc":"29051:1:64","nodeType":"YulIdentifier","src":"29051:1:64"}]},{"nativeSrc":"29085:28:64","nodeType":"YulVariableDeclaration","src":"29085:28:64","value":{"arguments":[{"name":"x","nativeSrc":"29108:1:64","nodeType":"YulIdentifier","src":"29108:1:64"},{"name":"y","nativeSrc":"29111:1:64","nodeType":"YulIdentifier","src":"29111:1:64"}],"functionName":{"name":"mul","nativeSrc":"29104:3:64","nodeType":"YulIdentifier","src":"29104:3:64"},"nativeSrc":"29104:9:64","nodeType":"YulFunctionCall","src":"29104:9:64"},"variables":[{"name":"product_raw","nativeSrc":"29089:11:64","nodeType":"YulTypedName","src":"29089:11:64","type":""}]},{"nativeSrc":"29122:41:64","nodeType":"YulAssignment","src":"29122:41:64","value":{"arguments":[{"name":"product_raw","nativeSrc":"29151:11:64","nodeType":"YulIdentifier","src":"29151:11:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29133:17:64","nodeType":"YulIdentifier","src":"29133:17:64"},"nativeSrc":"29133:30:64","nodeType":"YulFunctionCall","src":"29133:30:64"},"variableNames":[{"name":"product","nativeSrc":"29122:7:64","nodeType":"YulIdentifier","src":"29122:7:64"}]},{"body":{"nativeSrc":"29340:22:64","nodeType":"YulBlock","src":"29340:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"29342:16:64","nodeType":"YulIdentifier","src":"29342:16:64"},"nativeSrc":"29342:18:64","nodeType":"YulFunctionCall","src":"29342:18:64"},"nativeSrc":"29342:18:64","nodeType":"YulExpressionStatement","src":"29342:18:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"29273:1:64","nodeType":"YulIdentifier","src":"29273:1:64"}],"functionName":{"name":"iszero","nativeSrc":"29266:6:64","nodeType":"YulIdentifier","src":"29266:6:64"},"nativeSrc":"29266:9:64","nodeType":"YulFunctionCall","src":"29266:9:64"},{"arguments":[{"name":"y","nativeSrc":"29296:1:64","nodeType":"YulIdentifier","src":"29296:1:64"},{"arguments":[{"name":"product","nativeSrc":"29303:7:64","nodeType":"YulIdentifier","src":"29303:7:64"},{"name":"x","nativeSrc":"29312:1:64","nodeType":"YulIdentifier","src":"29312:1:64"}],"functionName":{"name":"div","nativeSrc":"29299:3:64","nodeType":"YulIdentifier","src":"29299:3:64"},"nativeSrc":"29299:15:64","nodeType":"YulFunctionCall","src":"29299:15:64"}],"functionName":{"name":"eq","nativeSrc":"29293:2:64","nodeType":"YulIdentifier","src":"29293:2:64"},"nativeSrc":"29293:22:64","nodeType":"YulFunctionCall","src":"29293:22:64"}],"functionName":{"name":"or","nativeSrc":"29246:2:64","nodeType":"YulIdentifier","src":"29246:2:64"},"nativeSrc":"29246:83:64","nodeType":"YulFunctionCall","src":"29246:83:64"}],"functionName":{"name":"iszero","nativeSrc":"29226:6:64","nodeType":"YulIdentifier","src":"29226:6:64"},"nativeSrc":"29226:113:64","nodeType":"YulFunctionCall","src":"29226:113:64"},"nativeSrc":"29223:139:64","nodeType":"YulIf","src":"29223:139:64"}]},"name":"checked_mul_t_uint256","nativeSrc":"28959:410:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"28990:1:64","nodeType":"YulTypedName","src":"28990:1:64","type":""},{"name":"y","nativeSrc":"28993:1:64","nodeType":"YulTypedName","src":"28993:1:64","type":""}],"returnVariables":[{"name":"product","nativeSrc":"28999:7:64","nodeType":"YulTypedName","src":"28999:7:64","type":""}],"src":"28959:410:64"},{"body":{"nativeSrc":"29403:152:64","nodeType":"YulBlock","src":"29403:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"29420:1:64","nodeType":"YulLiteral","src":"29420:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"29423:77:64","nodeType":"YulLiteral","src":"29423:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"29413:6:64","nodeType":"YulIdentifier","src":"29413:6:64"},"nativeSrc":"29413:88:64","nodeType":"YulFunctionCall","src":"29413:88:64"},"nativeSrc":"29413:88:64","nodeType":"YulExpressionStatement","src":"29413:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29517:1:64","nodeType":"YulLiteral","src":"29517:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"29520:4:64","nodeType":"YulLiteral","src":"29520:4:64","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"29510:6:64","nodeType":"YulIdentifier","src":"29510:6:64"},"nativeSrc":"29510:15:64","nodeType":"YulFunctionCall","src":"29510:15:64"},"nativeSrc":"29510:15:64","nodeType":"YulExpressionStatement","src":"29510:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29541:1:64","nodeType":"YulLiteral","src":"29541:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"29544:4:64","nodeType":"YulLiteral","src":"29544:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"29534:6:64","nodeType":"YulIdentifier","src":"29534:6:64"},"nativeSrc":"29534:15:64","nodeType":"YulFunctionCall","src":"29534:15:64"},"nativeSrc":"29534:15:64","nodeType":"YulExpressionStatement","src":"29534:15:64"}]},"name":"panic_error_0x12","nativeSrc":"29375:180:64","nodeType":"YulFunctionDefinition","src":"29375:180:64"},{"body":{"nativeSrc":"29603:143:64","nodeType":"YulBlock","src":"29603:143:64","statements":[{"nativeSrc":"29613:25:64","nodeType":"YulAssignment","src":"29613:25:64","value":{"arguments":[{"name":"x","nativeSrc":"29636:1:64","nodeType":"YulIdentifier","src":"29636:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29618:17:64","nodeType":"YulIdentifier","src":"29618:17:64"},"nativeSrc":"29618:20:64","nodeType":"YulFunctionCall","src":"29618:20:64"},"variableNames":[{"name":"x","nativeSrc":"29613:1:64","nodeType":"YulIdentifier","src":"29613:1:64"}]},{"nativeSrc":"29647:25:64","nodeType":"YulAssignment","src":"29647:25:64","value":{"arguments":[{"name":"y","nativeSrc":"29670:1:64","nodeType":"YulIdentifier","src":"29670:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"29652:17:64","nodeType":"YulIdentifier","src":"29652:17:64"},"nativeSrc":"29652:20:64","nodeType":"YulFunctionCall","src":"29652:20:64"},"variableNames":[{"name":"y","nativeSrc":"29647:1:64","nodeType":"YulIdentifier","src":"29647:1:64"}]},{"body":{"nativeSrc":"29694:22:64","nodeType":"YulBlock","src":"29694:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"29696:16:64","nodeType":"YulIdentifier","src":"29696:16:64"},"nativeSrc":"29696:18:64","nodeType":"YulFunctionCall","src":"29696:18:64"},"nativeSrc":"29696:18:64","nodeType":"YulExpressionStatement","src":"29696:18:64"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"29691:1:64","nodeType":"YulIdentifier","src":"29691:1:64"}],"functionName":{"name":"iszero","nativeSrc":"29684:6:64","nodeType":"YulIdentifier","src":"29684:6:64"},"nativeSrc":"29684:9:64","nodeType":"YulFunctionCall","src":"29684:9:64"},"nativeSrc":"29681:35:64","nodeType":"YulIf","src":"29681:35:64"},{"nativeSrc":"29726:14:64","nodeType":"YulAssignment","src":"29726:14:64","value":{"arguments":[{"name":"x","nativeSrc":"29735:1:64","nodeType":"YulIdentifier","src":"29735:1:64"},{"name":"y","nativeSrc":"29738:1:64","nodeType":"YulIdentifier","src":"29738:1:64"}],"functionName":{"name":"div","nativeSrc":"29731:3:64","nodeType":"YulIdentifier","src":"29731:3:64"},"nativeSrc":"29731:9:64","nodeType":"YulFunctionCall","src":"29731:9:64"},"variableNames":[{"name":"r","nativeSrc":"29726:1:64","nodeType":"YulIdentifier","src":"29726:1:64"}]}]},"name":"checked_div_t_uint256","nativeSrc":"29561:185:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"29592:1:64","nodeType":"YulTypedName","src":"29592:1:64","type":""},{"name":"y","nativeSrc":"29595:1:64","nodeType":"YulTypedName","src":"29595:1:64","type":""}],"returnVariables":[{"name":"r","nativeSrc":"29601:1:64","nodeType":"YulTypedName","src":"29601:1:64","type":""}],"src":"29561:185:64"},{"body":{"nativeSrc":"29876:204:64","nodeType":"YulBlock","src":"29876:204:64","statements":[{"nativeSrc":"29886:26:64","nodeType":"YulAssignment","src":"29886:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"29898:9:64","nodeType":"YulIdentifier","src":"29898:9:64"},{"kind":"number","nativeSrc":"29909:2:64","nodeType":"YulLiteral","src":"29909:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29894:3:64","nodeType":"YulIdentifier","src":"29894:3:64"},"nativeSrc":"29894:18:64","nodeType":"YulFunctionCall","src":"29894:18:64"},"variableNames":[{"name":"tail","nativeSrc":"29886:4:64","nodeType":"YulIdentifier","src":"29886:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29964:6:64","nodeType":"YulIdentifier","src":"29964:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"29977:9:64","nodeType":"YulIdentifier","src":"29977:9:64"},{"kind":"number","nativeSrc":"29988:1:64","nodeType":"YulLiteral","src":"29988:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29973:3:64","nodeType":"YulIdentifier","src":"29973:3:64"},"nativeSrc":"29973:17:64","nodeType":"YulFunctionCall","src":"29973:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"29922:41:64","nodeType":"YulIdentifier","src":"29922:41:64"},"nativeSrc":"29922:69:64","nodeType":"YulFunctionCall","src":"29922:69:64"},"nativeSrc":"29922:69:64","nodeType":"YulExpressionStatement","src":"29922:69:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"30045:6:64","nodeType":"YulIdentifier","src":"30045:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"30058:9:64","nodeType":"YulIdentifier","src":"30058:9:64"},{"kind":"number","nativeSrc":"30069:2:64","nodeType":"YulLiteral","src":"30069:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"30054:3:64","nodeType":"YulIdentifier","src":"30054:3:64"},"nativeSrc":"30054:18:64","nodeType":"YulFunctionCall","src":"30054:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"30001:43:64","nodeType":"YulIdentifier","src":"30001:43:64"},"nativeSrc":"30001:72:64","nodeType":"YulFunctionCall","src":"30001:72:64"},"nativeSrc":"30001:72:64","nodeType":"YulExpressionStatement","src":"30001:72:64"}]},"name":"abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed","nativeSrc":"29752:328:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29840:9:64","nodeType":"YulTypedName","src":"29840:9:64","type":""},{"name":"value1","nativeSrc":"29852:6:64","nodeType":"YulTypedName","src":"29852:6:64","type":""},{"name":"value0","nativeSrc":"29860:6:64","nodeType":"YulTypedName","src":"29860:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29871:4:64","nodeType":"YulTypedName","src":"29871:4:64","type":""}],"src":"29752:328:64"},{"body":{"nativeSrc":"30172:436:64","nodeType":"YulBlock","src":"30172:436:64","statements":[{"body":{"nativeSrc":"30218:83:64","nodeType":"YulBlock","src":"30218:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"30220:77:64","nodeType":"YulIdentifier","src":"30220:77:64"},"nativeSrc":"30220:79:64","nodeType":"YulFunctionCall","src":"30220:79:64"},"nativeSrc":"30220:79:64","nodeType":"YulExpressionStatement","src":"30220:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"30193:7:64","nodeType":"YulIdentifier","src":"30193:7:64"},{"name":"headStart","nativeSrc":"30202:9:64","nodeType":"YulIdentifier","src":"30202:9:64"}],"functionName":{"name":"sub","nativeSrc":"30189:3:64","nodeType":"YulIdentifier","src":"30189:3:64"},"nativeSrc":"30189:23:64","nodeType":"YulFunctionCall","src":"30189:23:64"},{"kind":"number","nativeSrc":"30214:2:64","nodeType":"YulLiteral","src":"30214:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"30185:3:64","nodeType":"YulIdentifier","src":"30185:3:64"},"nativeSrc":"30185:32:64","nodeType":"YulFunctionCall","src":"30185:32:64"},"nativeSrc":"30182:119:64","nodeType":"YulIf","src":"30182:119:64"},{"nativeSrc":"30311:290:64","nodeType":"YulBlock","src":"30311:290:64","statements":[{"nativeSrc":"30326:38:64","nodeType":"YulVariableDeclaration","src":"30326:38:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30350:9:64","nodeType":"YulIdentifier","src":"30350:9:64"},{"kind":"number","nativeSrc":"30361:1:64","nodeType":"YulLiteral","src":"30361:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30346:3:64","nodeType":"YulIdentifier","src":"30346:3:64"},"nativeSrc":"30346:17:64","nodeType":"YulFunctionCall","src":"30346:17:64"}],"functionName":{"name":"mload","nativeSrc":"30340:5:64","nodeType":"YulIdentifier","src":"30340:5:64"},"nativeSrc":"30340:24:64","nodeType":"YulFunctionCall","src":"30340:24:64"},"variables":[{"name":"offset","nativeSrc":"30330:6:64","nodeType":"YulTypedName","src":"30330:6:64","type":""}]},{"body":{"nativeSrc":"30411:83:64","nodeType":"YulBlock","src":"30411:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"30413:77:64","nodeType":"YulIdentifier","src":"30413:77:64"},"nativeSrc":"30413:79:64","nodeType":"YulFunctionCall","src":"30413:79:64"},"nativeSrc":"30413:79:64","nodeType":"YulExpressionStatement","src":"30413:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"30383:6:64","nodeType":"YulIdentifier","src":"30383:6:64"},{"kind":"number","nativeSrc":"30391:18:64","nodeType":"YulLiteral","src":"30391:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30380:2:64","nodeType":"YulIdentifier","src":"30380:2:64"},"nativeSrc":"30380:30:64","nodeType":"YulFunctionCall","src":"30380:30:64"},"nativeSrc":"30377:117:64","nodeType":"YulIf","src":"30377:117:64"},{"nativeSrc":"30508:83:64","nodeType":"YulAssignment","src":"30508:83:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30563:9:64","nodeType":"YulIdentifier","src":"30563:9:64"},{"name":"offset","nativeSrc":"30574:6:64","nodeType":"YulIdentifier","src":"30574:6:64"}],"functionName":{"name":"add","nativeSrc":"30559:3:64","nodeType":"YulIdentifier","src":"30559:3:64"},"nativeSrc":"30559:22:64","nodeType":"YulFunctionCall","src":"30559:22:64"},{"name":"dataEnd","nativeSrc":"30583:7:64","nodeType":"YulIdentifier","src":"30583:7:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"30518:40:64","nodeType":"YulIdentifier","src":"30518:40:64"},"nativeSrc":"30518:73:64","nodeType":"YulFunctionCall","src":"30518:73:64"},"variableNames":[{"name":"value0","nativeSrc":"30508:6:64","nodeType":"YulIdentifier","src":"30508:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptr_fromMemory","nativeSrc":"30086:522:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"30142:9:64","nodeType":"YulTypedName","src":"30142:9:64","type":""},{"name":"dataEnd","nativeSrc":"30153:7:64","nodeType":"YulTypedName","src":"30153:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"30165:6:64","nodeType":"YulTypedName","src":"30165:6:64","type":""}],"src":"30086:522:64"},{"body":{"nativeSrc":"30642:152:64","nodeType":"YulBlock","src":"30642:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30659:1:64","nodeType":"YulLiteral","src":"30659:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"30662:77:64","nodeType":"YulLiteral","src":"30662:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"30652:6:64","nodeType":"YulIdentifier","src":"30652:6:64"},"nativeSrc":"30652:88:64","nodeType":"YulFunctionCall","src":"30652:88:64"},"nativeSrc":"30652:88:64","nodeType":"YulExpressionStatement","src":"30652:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30756:1:64","nodeType":"YulLiteral","src":"30756:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"30759:4:64","nodeType":"YulLiteral","src":"30759:4:64","type":"","value":"0x01"}],"functionName":{"name":"mstore","nativeSrc":"30749:6:64","nodeType":"YulIdentifier","src":"30749:6:64"},"nativeSrc":"30749:15:64","nodeType":"YulFunctionCall","src":"30749:15:64"},"nativeSrc":"30749:15:64","nodeType":"YulExpressionStatement","src":"30749:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30780:1:64","nodeType":"YulLiteral","src":"30780:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"30783:4:64","nodeType":"YulLiteral","src":"30783:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"30773:6:64","nodeType":"YulIdentifier","src":"30773:6:64"},"nativeSrc":"30773:15:64","nodeType":"YulFunctionCall","src":"30773:15:64"},"nativeSrc":"30773:15:64","nodeType":"YulExpressionStatement","src":"30773:15:64"}]},"name":"panic_error_0x01","nativeSrc":"30614:180:64","nodeType":"YulFunctionDefinition","src":"30614:180:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Action_$13114_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Action_$13114_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Action_$13114_to_t_address(value))\n }\n\n function convert_t_contract$_Validator_$19130_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$19130_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$19130_to_t_address(value))\n }\n\n function convert_t_contract$_AllowList_$13587_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_AllowList_$13587_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_AllowList_$13587_to_t_address(value))\n }\n\n function convert_t_uint160_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Budget_$15659_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_address_payable(value)\n }\n\n function abi_encode_t_contract$_Budget_$15659_to_t_address_payable(value, pos) {\n mstore(pos, convert_t_contract$_Budget_$15659_to_t_address_payable(value))\n }\n\n function array_length_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function convert_t_contract$_Incentive_$18196_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Incentive_$18196_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Incentive_$18196_to_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_contract$_Incentive_$18196_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_contract$_Incentive_$18196_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // contract Incentive[] -> address[]\n function abi_encode_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr(value, pos) -> end {\n let length := array_length_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr(pos, length)\n let baseRef := array_dataslot_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_contract$_Incentive_$18196_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // struct BoostLib.Boost -> struct BoostLib.Boost\n function abi_encode_t_struct$_Boost_$18393_memory_ptr_to_t_struct$_Boost_$18393_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x0120)\n\n {\n // action\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_contract$_Action_$13114_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // validator\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_contract$_Validator_$19130_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // allowList\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_contract$_AllowList_$13587_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // budget\n\n let memberValue0 := mload(add(value, 0x60))\n abi_encode_t_contract$_Budget_$15659_to_t_address_payable(memberValue0, add(pos, 0x60))\n }\n\n {\n // incentives\n\n let memberValue0 := mload(add(value, 0x80))\n\n mstore(add(pos, 0x80), sub(tail, pos))\n tail := abi_encode_t_array$_t_contract$_Incentive_$18196_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // protocolFee\n\n let memberValue0 := mload(add(value, 0xa0))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0xa0))\n }\n\n {\n // referralFee\n\n let memberValue0 := mload(add(value, 0xc0))\n abi_encode_t_uint64_to_t_uint64(memberValue0, add(pos, 0xc0))\n }\n\n {\n // maxParticipants\n\n let memberValue0 := mload(add(value, 0xe0))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xe0))\n }\n\n {\n // owner\n\n let memberValue0 := mload(add(value, 0x0100))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x0100))\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Boost_$18393_memory_ptr__to_t_struct$_Boost_$18393_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Boost_$18393_memory_ptr_to_t_struct$_Boost_$18393_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function convert_t_contract$_BoostRegistry_$12709_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_BoostRegistry_$12709_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_BoostRegistry_$12709_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_BoostRegistry_$12709__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_BoostRegistry_$12709_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value0, value1, tail)\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_calldata_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_Budget_$15659(value) -> cleaned {\n cleaned := cleanup_t_address_payable(value)\n }\n\n function validator_revert_t_contract$_Budget_$15659(value) {\n if iszero(eq(value, cleanup_t_contract$_Budget_$15659(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_Budget_$15659_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_Budget_$15659(value)\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct BoostLib.Target\n function abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // isBase\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // instance\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // parameters\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function array_allocation_size_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // struct BoostLib.Target[]\n function abi_decode_available_length_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let innerOffset := mload(src)\n if gt(innerOffset, 0xffffffffffffffff) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let elementPos := add(offset, innerOffset)\n\n mstore(dst, abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // struct BoostLib.Target[]\n function abi_decode_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint64(value)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct BoostCore.InitPayload\n function abi_decode_t_struct$_InitPayload_$11583_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x0120) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x0120)\n\n {\n // budget\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_Budget_$15659_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // action\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // validator\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // allowList\n\n let offset := mload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_struct$_Target_$18401_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // incentives\n\n let offset := mload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_array$_t_struct$_Target_$18401_memory_ptr_$dyn_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // protocolFee\n\n let offset := 160\n\n mstore(add(value, 0xa0), abi_decode_t_uint64_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // referralFee\n\n let offset := 192\n\n mstore(add(value, 0xc0), abi_decode_t_uint64_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // maxParticipants\n\n let offset := 224\n\n mstore(add(value, 0xe0), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // owner\n\n let offset := 256\n\n mstore(add(value, 0x0100), abi_decode_t_address_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$11583_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$11583_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_bytes4_t_address__to_t_bytes4_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c806384ae2bc61161009f578063d73792a911610063578063d73792a914610303578063e21ff7311461032d578063f04e283e14610369578063f2fde38b14610385578063fee81cf4146103a157610113565b806384ae2bc61461023f5780638da5cb5b146102695780638fe4f5231461029357806399d32fc4146102af578063b0e21e8a146102d957610113565b806346877b1a116100e657806346877b1a146101af57806354d1f13d146101d75780635edb9eb0146101e1578063715018a61461020b5780637b1039991461021557610113565b806313c8e2de1461011757806325692962146101535780632e75ab501461015d57806339a51be514610185575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190612045565b6103dd565b60405161014a9190612336565b60405180910390f35b61015b6106b7565b005b348015610168575f80fd5b50610183600480360381019061017e9190612045565b610708565b005b348015610190575f80fd5b5061019961071a565b6040516101a69190612365565b60405180910390f35b3480156101ba575f80fd5b506101d560048036038101906101d091906123a8565b61073f565b005b6101df61078a565b005b3480156101ec575f80fd5b506101f56107c3565b60405161020291906123e2565b60405180910390f35b6102136107ce565b005b348015610220575f80fd5b506102296107e1565b604051610236919061241b565b60405180910390f35b34801561024a575f80fd5b50610253610806565b6040516102609190612443565b60405180910390f35b348015610274575f80fd5b5061027d610820565b60405161028a9190612365565b60405180910390f35b6102ad60048036038101906102a891906124bd565b610848565b005b3480156102ba575f80fd5b506102c3610b5a565b6040516102d091906123e2565b60405180910390f35b3480156102e4575f80fd5b506102ed610b60565b6040516102fa9190612443565b60405180910390f35b34801561030e575f80fd5b50610317610b79565b6040516103249190612443565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190612541565b610b7f565b6040516103609190612336565b60405180910390f35b610383600480360381019061037e91906123a8565b61140d565b005b61039f600480360381019061039a91906123a8565b61144b565b005b3480156103ac575f80fd5b506103c760048036038101906103c291906123a8565b611474565b6040516103d491906123e2565b60405180910390f35b6103e5611e99565b5f82815481106103f8576103f761258c565b5b905f5260205f209060080201604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482018054806020026020016040519081016040528092919081815260200182805480156105e557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161059c575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050919050565b5f6106c061148d565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b610710611497565b8060038190555050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610747611497565b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f8080549050905090565b6107d6611497565b6107df5f6114ce565b565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460089054906101000a900467ffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b3068929eee149b4bd2126854036108665763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8086815481106108865761088561258c565b5b905f5260205f20906008020190506003543410156108e1575f346003546040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108d8939291906125b9565b60405180910390fd5b6108eb8185611594565b806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c16e50ef84846040518363ffffffff1660e01b8152600401610949929190612648565b6020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610989919061269f565b6109bf576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060040185815481106109d5576109d461258c565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c63ff8dd60405180604001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250604051602001610a969190612764565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401610ac191906127bc565b6020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b01919061269f565b610b46573383836040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610b3d939291906127dc565b60405180910390fd5b503868929eee149b4bd21268555050505050565b60035481565b60045f9054906101000a900467ffffffffffffffff1681565b61271081565b610b87611e99565b610b8f611497565b3068929eee149b4bd212685403610bad5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f610c0684848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050611702565b806020019051810190610c199190612c74565b9050610c27815f015161179b565b5f8060018160018154018082558091505003905f5260205f2090600802019050816101000151816007015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550815f0151816003015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160a0015160045f9054906101000a900467ffffffffffffffff16610cf89190612ce8565b816005015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160c00151600460089054906101000a900467ffffffffffffffff16610d479190612ce8565b8160050160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508160e001518160060181905550610dae7fcea74fae0000000000000000000000000000000000000000000000000000000083602001516001611876565b815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e1e7fcade87420000000000000000000000000000000000000000000000000000000083606001516001611876565b816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e708260800151835f0151611898565b816004019080519060200190610e87929190611f5f565b505f73ffffffffffffffffffffffffffffffffffffffff1682604001516020015173ffffffffffffffffffffffffffffffffffffffff1614610ef857610ef37fe84781730000000000000000000000000000000000000000000000000000000083604001516001611876565b610fe1565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166301ffc9a77fe8478173000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401610f739190612d5d565b602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb2919061269f565b610fbc575f610fe0565b805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b5b816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660015f805490506110a69190612d76565b7f560b27fd941b3e3ae813416565f72f24c408b726ad11be75e543295d8924f8df846001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866003015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161114293929190612da9565b60405180910390a480604051806101200160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820180548060200260200160405190810160405280929190818152602001828054801561132c57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112e3575b50505050508152602001600582015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016005820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160068201548152602001600782015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050925050503868929eee149b4bd212685592915050565b611415611497565b63389a75e1600c52805f526020600c20805442111561143b57636f5e88185f526004601cfd5b5f815550611448816114ce565b50565b611453611497565b8060601b61146857637448fbae5f526004601cfd5b611471816114ce565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146114cc576382b429005f526004601cfd5b565b6114d6611c62565b1561153b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611591565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60035403156116fe575f60035490505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461165a575f61271067ffffffffffffffff168460050160089054906101000a900467ffffffffffffffff1667ffffffffffffffff166003546116159190612dde565b61161f9190612e4c565b9050808261162d9190612d76565b9150611658818473ffffffffffffffffffffffffffffffffffffffff16611c6690919063ffffffff16565b505b6116b260028261166a9190612e4c565b846007015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c6690919063ffffffff16565b6116fc4760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c6690919063ffffffff16565b505b5050565b60608151156117965760405190506020810160048301805184518501811983525b8086101561177c576001860195508551601f1a8061176c576001870196508651601f1a5f198652607f811161175a57600181013887395b6001607f821601860195505050611777565b808553600185019450505b611723565b81835260208501840385525f845260208401604052505050505b919050565b6117c57f74009ff10000000000000000000000000000000000000000000000000000000082611c83565b8073ffffffffffffffffffffffffffffffffffffffff1663fe9fbb80336040518263ffffffff1660e01b81526004016117fe9190612365565b602060405180830381865afa158015611819573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183d919061269f565b611873576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b5f611885848460200151611c83565b61188f8383611d7a565b90509392505050565b6060825167ffffffffffffffff8111156118b5576118b4612810565b5b6040519080825280602002602001820160405280156118e35781602001602082028036833780820191505090505b5090505f5b8351811015611c5b576119397f8085fa3e000000000000000000000000000000000000000000000000000000008583815181106119285761192761258c565b5b602002602001015160200151611c83565b83818151811061194c5761194b61258c565b5b60200260200101515f01516119d8577f8085fa3e0000000000000000000000000000000000000000000000000000000084828151811061198f5761198e61258c565b5b6020026020010151602001516040517fe1c444480000000000000000000000000000000000000000000000000000000081526004016119cf929190612e7c565b60405180910390fd5b611a1d7f8085fa3e00000000000000000000000000000000000000000000000000000000858381518110611a0f57611a0e61258c565b5b60200260200101515f611876565b828281518110611a3057611a2f61258c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f828281518110611a7e57611a7d61258c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16634e7165a2868481518110611ab457611ab361258c565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611adc91906127bc565b5f60405180830381865afa158015611af6573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611b1e9190612ea3565b90505f815114611baf578373ffffffffffffffffffffffffffffffffffffffff1663fa4ca9b1826040518263ffffffff1660e01b8152600401611b6191906127bc565b6020604051808303815f875af1158015611b7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ba1919061269f565b611bae57611bad612eea565b5b5b828281518110611bc257611bc161258c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663439fab91868481518110611bf857611bf761258c565b5b6020026020010151604001516040518263ffffffff1660e01b8152600401611c2091906127bc565b5f604051808303815f87803b158015611c37575f80fd5b505af1158015611c49573d5f803e3d5ffd5b505050505080806001019150506118e8565b5092915050565b5f90565b5f385f3884865af1611c7f5763b12d13eb5f526004601cfd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480611d3257508073ffffffffffffffffffffffffffffffffffffffff166301ffc9a7836040518263ffffffff1660e01b8152600401611cf19190612d5d565b602060405180830381865afa158015611d0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d30919061269f565b155b15611d765781816040517fe1c44448000000000000000000000000000000000000000000000000000000008152600401611d6d929190612e7c565b60405180910390fd5b5050565b5f825f0151611d8d578260200151611db1565b611db0836020015173ffffffffffffffffffffffffffffffffffffffff16611e36565b5b9050825f01518015611dc05750815b15611e30578073ffffffffffffffffffffffffffffffffffffffff1663439fab9184604001516040518263ffffffff1660e01b8152600401611e0291906127bc565b5f604051808303815f87803b158015611e19575f80fd5b505af1158015611e2b573d5f803e3d5ffd5b505050505b92915050565b5f611e415f83611e48565b9050919050565b5f6c5af43d3d93803e602a57fd5bf36021528160145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c84f0905080611e8f5763301164255f526004601cfd5b5f60215292915050565b6040518061012001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20908101928215611fd5579160200282015b82811115611fd4578251825f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611f7d565b5b509050611fe29190611fe6565b5090565b5b80821115611ffd575f815f905550600101611fe7565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61202481612012565b811461202e575f80fd5b50565b5f8135905061203f8161201b565b92915050565b5f6020828403121561205a5761205961200a565b5b5f61206784828501612031565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6120b26120ad6120a884612070565b61208f565b612070565b9050919050565b5f6120c382612098565b9050919050565b5f6120d4826120b9565b9050919050565b6120e4816120ca565b82525050565b5f6120f4826120b9565b9050919050565b612104816120ea565b82525050565b5f612114826120b9565b9050919050565b6121248161210a565b82525050565b5f61213482612098565b9050919050565b5f6121458261212a565b9050919050565b6121558161213b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f61218e826120b9565b9050919050565b61219e81612184565b82525050565b5f6121af8383612195565b60208301905092915050565b5f602082019050919050565b5f6121d18261215b565b6121db8185612165565b93506121e683612175565b805f5b838110156122165781516121fd88826121a4565b9750612208836121bb565b9250506001810190506121e9565b5085935050505092915050565b5f67ffffffffffffffff82169050919050565b61223f81612223565b82525050565b61224e81612012565b82525050565b5f61225e82612070565b9050919050565b61226e81612254565b82525050565b5f61012083015f83015161228a5f8601826120db565b50602083015161229d60208601826120fb565b5060408301516122b0604086018261211b565b5060608301516122c3606086018261214c565b50608083015184820360808601526122db82826121c7565b91505060a08301516122f060a0860182612236565b5060c083015161230360c0860182612236565b5060e083015161231660e0860182612245565b5061010083015161232b610100860182612265565b508091505092915050565b5f6020820190508181035f83015261234e8184612274565b905092915050565b61235f81612254565b82525050565b5f6020820190506123785f830184612356565b92915050565b61238781612254565b8114612391575f80fd5b50565b5f813590506123a28161237e565b92915050565b5f602082840312156123bd576123bc61200a565b5b5f6123ca84828501612394565b91505092915050565b6123dc81612012565b82525050565b5f6020820190506123f55f8301846123d3565b92915050565b5f612405826120b9565b9050919050565b612415816123fb565b82525050565b5f60208201905061242e5f83018461240c565b92915050565b61243d81612223565b82525050565b5f6020820190506124565f830184612434565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261247d5761247c61245c565b5b8235905067ffffffffffffffff81111561249a57612499612460565b5b6020830191508360018202830111156124b6576124b5612464565b5b9250929050565b5f805f805f608086880312156124d6576124d561200a565b5b5f6124e388828901612031565b95505060206124f488828901612031565b945050604061250588828901612394565b935050606086013567ffffffffffffffff8111156125265761252561200e565b5b61253288828901612468565b92509250509295509295909350565b5f80602083850312156125575761255661200a565b5b5f83013567ffffffffffffffff8111156125745761257361200e565b5b61258085828601612468565b92509250509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6060820190506125cc5f830186612356565b6125d960208301856123d3565b6125e660408301846123d3565b949350505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f61262783856125ee565b93506126348385846125fe565b61263d8361260c565b840190509392505050565b5f6020820190508181035f83015261266181848661261c565b90509392505050565b5f8115159050919050565b61267e8161266a565b8114612688575f80fd5b50565b5f8151905061269981612675565b92915050565b5f602082840312156126b4576126b361200a565b5b5f6126c18482850161268b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6126fc826126ca565b61270681856126d4565b93506127168185602086016126e4565b61271f8161260c565b840191505092915050565b5f604083015f83015161273f5f860182612265565b506020830151848203602086015261275782826126f2565b9150508091505092915050565b5f6020820190508181035f83015261277c818461272a565b905092915050565b5f61278e826126ca565b61279881856125ee565b93506127a88185602086016126e4565b6127b18161260c565b840191505092915050565b5f6020820190508181035f8301526127d48184612784565b905092915050565b5f6040820190506127ef5f830186612356565b818103602083015261280281848661261c565b9050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6128468261260c565b810181811067ffffffffffffffff8211171561286557612864612810565b5b80604052505050565b5f612877612001565b9050612883828261283d565b919050565b5f80fd5b5f61289682612070565b9050919050565b5f6128a78261288c565b9050919050565b6128b78161289d565b81146128c1575f80fd5b50565b5f815190506128d2816128ae565b92915050565b5f815190506128e68161237e565b92915050565b5f80fd5b5f67ffffffffffffffff82111561290a57612909612810565b5b6129138261260c565b9050602081019050919050565b5f61293261292d846128f0565b61286e565b90508281526020810184848401111561294e5761294d6128ec565b5b6129598482856126e4565b509392505050565b5f82601f8301126129755761297461245c565b5b8151612985848260208601612920565b91505092915050565b5f606082840312156129a3576129a261280c565b5b6129ad606061286e565b90505f6129bc8482850161268b565b5f8301525060206129cf848285016128d8565b602083015250604082015167ffffffffffffffff8111156129f3576129f2612888565b5b6129ff84828501612961565b60408301525092915050565b5f67ffffffffffffffff821115612a2557612a24612810565b5b602082029050602081019050919050565b5f612a48612a4384612a0b565b61286e565b90508083825260208201905060208402830185811115612a6b57612a6a612464565b5b835b81811015612ab257805167ffffffffffffffff811115612a9057612a8f61245c565b5b808601612a9d898261298e565b85526020850194505050602081019050612a6d565b5050509392505050565b5f82601f830112612ad057612acf61245c565b5b8151612ae0848260208601612a36565b91505092915050565b612af281612223565b8114612afc575f80fd5b50565b5f81519050612b0d81612ae9565b92915050565b5f81519050612b218161201b565b92915050565b5f6101208284031215612b3d57612b3c61280c565b5b612b4861012061286e565b90505f612b57848285016128c4565b5f83015250602082015167ffffffffffffffff811115612b7a57612b79612888565b5b612b868482850161298e565b602083015250604082015167ffffffffffffffff811115612baa57612ba9612888565b5b612bb68482850161298e565b604083015250606082015167ffffffffffffffff811115612bda57612bd9612888565b5b612be68482850161298e565b606083015250608082015167ffffffffffffffff811115612c0a57612c09612888565b5b612c1684828501612abc565b60808301525060a0612c2a84828501612aff565b60a08301525060c0612c3e84828501612aff565b60c08301525060e0612c5284828501612b13565b60e083015250610100612c67848285016128d8565b6101008301525092915050565b5f60208284031215612c8957612c8861200a565b5b5f82015167ffffffffffffffff811115612ca657612ca561200e565b5b612cb284828501612b27565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cf282612223565b9150612cfd83612223565b9250828201905067ffffffffffffffff811115612d1d57612d1c612cbb565b5b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612d5781612d23565b82525050565b5f602082019050612d705f830184612d4e565b92915050565b5f612d8082612012565b9150612d8b83612012565b9250828203905081811115612da357612da2612cbb565b5b92915050565b5f606082019050612dbc5f830186612356565b612dc96020830185612356565b612dd66040830184612356565b949350505050565b5f612de882612012565b9150612df383612012565b9250828202612e0181612012565b91508282048414831517612e1857612e17612cbb565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e5682612012565b9150612e6183612012565b925082612e7157612e70612e1f565b5b828204905092915050565b5f604082019050612e8f5f830185612d4e565b612e9c6020830184612356565b9392505050565b5f60208284031215612eb857612eb761200a565b5b5f82015167ffffffffffffffff811115612ed557612ed461200e565b5b612ee184828501612961565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea26469706673582212209830a10aa99ae4606cdb86c2473b4f326f2cb4a4faddf7d755f9d76bfb718ed264736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84AE2BC6 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD73792A9 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD73792A9 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0xE21FF731 EQ PUSH2 0x32D JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x369 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3A1 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x84AE2BC6 EQ PUSH2 0x23F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x8FE4F523 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x99D32FC4 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xB0E21E8A EQ PUSH2 0x2D9 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x46877B1A GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x46877B1A EQ PUSH2 0x1AF JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0x5EDB9EB0 EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x215 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x13C8E2DE EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x2E75AB50 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x39A51BE5 EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x2045 JUMP JUMPDEST PUSH2 0x3DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x2336 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x6B7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0x2045 JUMP JUMPDEST PUSH2 0x708 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x190 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x71A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A6 SWAP2 SWAP1 PUSH2 0x2365 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D0 SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x73F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DF PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F5 PUSH2 0x7C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x202 SWAP2 SWAP1 PUSH2 0x23E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x213 PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x220 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x229 PUSH2 0x7E1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x236 SWAP2 SWAP1 PUSH2 0x241B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x253 PUSH2 0x806 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x260 SWAP2 SWAP1 PUSH2 0x2443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x820 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x2365 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A8 SWAP2 SWAP1 PUSH2 0x24BD JUMP JUMPDEST PUSH2 0x848 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C3 PUSH2 0xB5A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x23E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2ED PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FA SWAP2 SWAP1 PUSH2 0x2443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x317 PUSH2 0xB79 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x2443 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x338 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x353 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34E SWAP2 SWAP1 PUSH2 0x2541 JUMP JUMPDEST PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x360 SWAP2 SWAP1 PUSH2 0x2336 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x383 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37E SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x140D JUMP JUMPDEST STOP JUMPDEST PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x144B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x23A8 JUMP JUMPDEST PUSH2 0x1474 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x23E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3E5 PUSH2 0x1E99 JUMP JUMPDEST PUSH0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x3F8 JUMPI PUSH2 0x3F7 PUSH2 0x258C JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x59C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6C0 PUSH2 0x148D JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH2 0x710 PUSH2 0x1497 JUMP JUMPDEST DUP1 PUSH1 0x3 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x747 PUSH2 0x1497 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x1497 JUMP JUMPDEST PUSH2 0x7DF PUSH0 PUSH2 0x14CE JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x866 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 DUP1 DUP7 DUP2 SLOAD DUP2 LT PUSH2 0x886 JUMPI PUSH2 0x885 PUSH2 0x258C JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP PUSH1 0x3 SLOAD CALLVALUE LT ISZERO PUSH2 0x8E1 JUMPI PUSH0 CALLVALUE PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8D8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x25B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8EB DUP2 DUP6 PUSH2 0x1594 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC16E50EF DUP5 DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x949 SWAP3 SWAP2 SWAP1 PUSH2 0x2648 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x965 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x989 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0x9BF JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 ADD DUP6 DUP2 SLOAD DUP2 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D4 PUSH2 0x258C JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xC63FF8DD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA96 SWAP2 SWAP1 PUSH2 0x2764 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB01 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0xB46 JUMPI CALLER DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB3D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27DC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x2710 DUP2 JUMP JUMPDEST PUSH2 0xB87 PUSH2 0x1E99 JUMP JUMPDEST PUSH2 0xB8F PUSH2 0x1497 JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0xBAD JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH2 0xC06 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x1702 JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC19 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST SWAP1 POP PUSH2 0xC27 DUP2 PUSH0 ADD MLOAD PUSH2 0x179B JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x1 DUP2 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 PUSH1 0x8 MUL ADD SWAP1 POP DUP2 PUSH2 0x100 ADD MLOAD DUP2 PUSH1 0x7 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH0 ADD MLOAD DUP2 PUSH1 0x3 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xA0 ADD MLOAD PUSH1 0x4 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xCF8 SWAP2 SWAP1 PUSH2 0x2CE8 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xC0 ADD MLOAD PUSH1 0x4 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xD47 SWAP2 SWAP1 PUSH2 0x2CE8 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0x6 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xDAE PUSH32 0xCEA74FAE00000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH2 0x1876 JUMP JUMPDEST DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE1E PUSH32 0xCADE874200000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH2 0x1876 JUMP JUMPDEST DUP2 PUSH1 0x2 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0xE70 DUP3 PUSH1 0x80 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x1898 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x1F5F JUMP JUMPDEST POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEF8 JUMPI PUSH2 0xEF3 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH2 0x1876 JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF73 SWAP2 SWAP1 PUSH2 0x2D5D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8E JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB2 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0xFBC JUMPI PUSH0 PUSH2 0xFE0 JUMP JUMPDEST DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST JUMPDEST DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP1 SLOAD SWAP1 POP PUSH2 0x10A6 SWAP2 SWAP1 PUSH2 0x2D76 JUMP JUMPDEST PUSH32 0x560B27FD941B3E3AE813416565F72F24C408B726AD11BE75E543295D8924F8DF DUP5 PUSH1 0x1 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH1 0x2 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH1 0x3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x40 MLOAD PUSH2 0x1142 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DA9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x132C JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x12E3 JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP SWAP3 POP POP POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1415 PUSH2 0x1497 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x143B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1448 DUP2 PUSH2 0x14CE JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x1453 PUSH2 0x1497 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x1468 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1471 DUP2 PUSH2 0x14CE JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x14CC JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x14D6 PUSH2 0x1C62 JUMP JUMPDEST ISZERO PUSH2 0x153B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1591 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x3 SLOAD SUB ISZERO PUSH2 0x16FE JUMPI PUSH0 PUSH1 0x3 SLOAD SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x165A JUMPI PUSH0 PUSH2 0x2710 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x5 ADD PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x3 SLOAD PUSH2 0x1615 SWAP2 SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH2 0x161F SWAP2 SWAP1 PUSH2 0x2E4C JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0x162D SWAP2 SWAP1 PUSH2 0x2D76 JUMP JUMPDEST SWAP2 POP PUSH2 0x1658 DUP2 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C66 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST PUSH2 0x16B2 PUSH1 0x2 DUP3 PUSH2 0x166A SWAP2 SWAP1 PUSH2 0x2E4C JUMP JUMPDEST DUP5 PUSH1 0x7 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C66 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x16FC SELFBALANCE PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1C66 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST POP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD ISZERO PUSH2 0x1796 JUMPI PUSH1 0x40 MLOAD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x4 DUP4 ADD DUP1 MLOAD DUP5 MLOAD DUP6 ADD DUP2 NOT DUP4 MSTORE JUMPDEST DUP1 DUP7 LT ISZERO PUSH2 0x177C JUMPI PUSH1 0x1 DUP7 ADD SWAP6 POP DUP6 MLOAD PUSH1 0x1F BYTE DUP1 PUSH2 0x176C JUMPI PUSH1 0x1 DUP8 ADD SWAP7 POP DUP7 MLOAD PUSH1 0x1F BYTE PUSH0 NOT DUP7 MSTORE PUSH1 0x7F DUP2 GT PUSH2 0x175A JUMPI PUSH1 0x1 DUP2 ADD CODESIZE DUP8 CODECOPY JUMPDEST PUSH1 0x1 PUSH1 0x7F DUP3 AND ADD DUP7 ADD SWAP6 POP POP POP PUSH2 0x1777 JUMP JUMPDEST DUP1 DUP6 MSTORE8 PUSH1 0x1 DUP6 ADD SWAP5 POP POP JUMPDEST PUSH2 0x1723 JUMP JUMPDEST DUP2 DUP4 MSTORE PUSH1 0x20 DUP6 ADD DUP5 SUB DUP6 MSTORE PUSH0 DUP5 MSTORE PUSH1 0x20 DUP5 ADD PUSH1 0x40 MSTORE POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17C5 PUSH32 0x74009FF100000000000000000000000000000000000000000000000000000000 DUP3 PUSH2 0x1C83 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFE9FBB80 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FE SWAP2 SWAP1 PUSH2 0x2365 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1819 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x183D SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0x1873 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x1885 DUP5 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1C83 JUMP JUMPDEST PUSH2 0x188F DUP4 DUP4 PUSH2 0x1D7A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18B5 JUMPI PUSH2 0x18B4 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x18E3 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5B JUMPI PUSH2 0x1939 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1928 JUMPI PUSH2 0x1927 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH2 0x1C83 JUMP JUMPDEST DUP4 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x194C JUMPI PUSH2 0x194B PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 ADD MLOAD PUSH2 0x19D8 JUMPI PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x198F JUMPI PUSH2 0x198E PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19CF SWAP3 SWAP2 SWAP1 PUSH2 0x2E7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A1D PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1A0F JUMPI PUSH2 0x1A0E PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH0 PUSH2 0x1876 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A30 JUMPI PUSH2 0x1A2F PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A7E JUMPI PUSH2 0x1A7D PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4E7165A2 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1AB4 JUMPI PUSH2 0x1AB3 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ADC SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1AF6 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH0 DUP3 RETURNDATACOPY RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B1E SWAP2 SWAP1 PUSH2 0x2EA3 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 MLOAD EQ PUSH2 0x1BAF JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFA4CA9B1 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B61 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B7D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BA1 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST PUSH2 0x1BAE JUMPI PUSH2 0x1BAD PUSH2 0x2EEA JUMP JUMPDEST JUMPDEST JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1BC2 JUMPI PUSH2 0x1BC1 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1BF8 JUMPI PUSH2 0x1BF7 PUSH2 0x258C JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C20 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C37 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C49 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x18E8 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1C7F JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1D32 JUMPI POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF1 SWAP2 SWAP1 PUSH2 0x2D5D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D0C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D30 SWAP2 SWAP1 PUSH2 0x269F JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x1D76 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0xE1C4444800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6D SWAP3 SWAP2 SWAP1 PUSH2 0x2E7C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH0 ADD MLOAD PUSH2 0x1D8D JUMPI DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x1DB1 JUMP JUMPDEST PUSH2 0x1DB0 DUP4 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1E36 JUMP JUMPDEST JUMPDEST SWAP1 POP DUP3 PUSH0 ADD MLOAD DUP1 ISZERO PUSH2 0x1DC0 JUMPI POP DUP2 JUMPDEST ISZERO PUSH2 0x1E30 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP2 SWAP1 PUSH2 0x27BC JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E19 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E2B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E41 PUSH0 DUP4 PUSH2 0x1E48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP2 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE PUSH1 0x35 PUSH1 0xC DUP5 CREATE SWAP1 POP DUP1 PUSH2 0x1E8F JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x120 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x1FD5 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1FD4 JUMPI DUP3 MLOAD DUP3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1F7D JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x1FE2 SWAP2 SWAP1 PUSH2 0x1FE6 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x1FFD JUMPI PUSH0 DUP2 PUSH0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x1FE7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2024 DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP2 EQ PUSH2 0x202E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x203F DUP2 PUSH2 0x201B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x205A JUMPI PUSH2 0x2059 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2067 DUP5 DUP3 DUP6 ADD PUSH2 0x2031 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20B2 PUSH2 0x20AD PUSH2 0x20A8 DUP5 PUSH2 0x2070 JUMP JUMPDEST PUSH2 0x208F JUMP JUMPDEST PUSH2 0x2070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20C3 DUP3 PUSH2 0x2098 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x20D4 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20E4 DUP2 PUSH2 0x20CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20F4 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2104 DUP2 PUSH2 0x20EA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2114 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2124 DUP2 PUSH2 0x210A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2134 DUP3 PUSH2 0x2098 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2145 DUP3 PUSH2 0x212A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2155 DUP2 PUSH2 0x213B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x218E DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x219E DUP2 PUSH2 0x2184 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x21AF DUP4 DUP4 PUSH2 0x2195 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x21D1 DUP3 PUSH2 0x215B JUMP JUMPDEST PUSH2 0x21DB DUP2 DUP6 PUSH2 0x2165 JUMP JUMPDEST SWAP4 POP PUSH2 0x21E6 DUP4 PUSH2 0x2175 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2216 JUMPI DUP2 MLOAD PUSH2 0x21FD DUP9 DUP3 PUSH2 0x21A4 JUMP JUMPDEST SWAP8 POP PUSH2 0x2208 DUP4 PUSH2 0x21BB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x21E9 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x223F DUP2 PUSH2 0x2223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x224E DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x225E DUP3 PUSH2 0x2070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x226E DUP2 PUSH2 0x2254 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x228A PUSH0 DUP7 ADD DUP3 PUSH2 0x20DB JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x229D PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x20FB JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x22B0 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x211B JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x22C3 PUSH1 0x60 DUP7 ADD DUP3 PUSH2 0x214C JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x22DB DUP3 DUP3 PUSH2 0x21C7 JUMP JUMPDEST SWAP2 POP POP PUSH1 0xA0 DUP4 ADD MLOAD PUSH2 0x22F0 PUSH1 0xA0 DUP7 ADD DUP3 PUSH2 0x2236 JUMP JUMPDEST POP PUSH1 0xC0 DUP4 ADD MLOAD PUSH2 0x2303 PUSH1 0xC0 DUP7 ADD DUP3 PUSH2 0x2236 JUMP JUMPDEST POP PUSH1 0xE0 DUP4 ADD MLOAD PUSH2 0x2316 PUSH1 0xE0 DUP7 ADD DUP3 PUSH2 0x2245 JUMP JUMPDEST POP PUSH2 0x100 DUP4 ADD MLOAD PUSH2 0x232B PUSH2 0x100 DUP7 ADD DUP3 PUSH2 0x2265 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x234E DUP2 DUP5 PUSH2 0x2274 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x235F DUP2 PUSH2 0x2254 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2378 PUSH0 DUP4 ADD DUP5 PUSH2 0x2356 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2387 DUP2 PUSH2 0x2254 JUMP JUMPDEST DUP2 EQ PUSH2 0x2391 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23A2 DUP2 PUSH2 0x237E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23BD JUMPI PUSH2 0x23BC PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23CA DUP5 DUP3 DUP6 ADD PUSH2 0x2394 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x23DC DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x23F5 PUSH0 DUP4 ADD DUP5 PUSH2 0x23D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2405 DUP3 PUSH2 0x20B9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2415 DUP2 PUSH2 0x23FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x242E PUSH0 DUP4 ADD DUP5 PUSH2 0x240C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x243D DUP2 PUSH2 0x2223 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2456 PUSH0 DUP4 ADD DUP5 PUSH2 0x2434 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x247D JUMPI PUSH2 0x247C PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x249A JUMPI PUSH2 0x2499 PUSH2 0x2460 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x24B6 JUMPI PUSH2 0x24B5 PUSH2 0x2464 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x24D6 JUMPI PUSH2 0x24D5 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x24E3 DUP9 DUP3 DUP10 ADD PUSH2 0x2031 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x24F4 DUP9 DUP3 DUP10 ADD PUSH2 0x2031 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2505 DUP9 DUP3 DUP10 ADD PUSH2 0x2394 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2526 JUMPI PUSH2 0x2525 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2532 DUP9 DUP3 DUP10 ADD PUSH2 0x2468 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2557 JUMPI PUSH2 0x2556 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2574 JUMPI PUSH2 0x2573 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2580 DUP6 DUP3 DUP7 ADD PUSH2 0x2468 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x25CC PUSH0 DUP4 ADD DUP7 PUSH2 0x2356 JUMP JUMPDEST PUSH2 0x25D9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x23D3 JUMP JUMPDEST PUSH2 0x25E6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x23D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2627 DUP4 DUP6 PUSH2 0x25EE JUMP JUMPDEST SWAP4 POP PUSH2 0x2634 DUP4 DUP6 DUP5 PUSH2 0x25FE JUMP JUMPDEST PUSH2 0x263D DUP4 PUSH2 0x260C JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2661 DUP2 DUP5 DUP7 PUSH2 0x261C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267E DUP2 PUSH2 0x266A JUMP JUMPDEST DUP2 EQ PUSH2 0x2688 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2699 DUP2 PUSH2 0x2675 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26B4 JUMPI PUSH2 0x26B3 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x26C1 DUP5 DUP3 DUP6 ADD PUSH2 0x268B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x26FC DUP3 PUSH2 0x26CA JUMP JUMPDEST PUSH2 0x2706 DUP2 DUP6 PUSH2 0x26D4 JUMP JUMPDEST SWAP4 POP PUSH2 0x2716 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x26E4 JUMP JUMPDEST PUSH2 0x271F DUP2 PUSH2 0x260C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x273F PUSH0 DUP7 ADD DUP3 PUSH2 0x2265 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2757 DUP3 DUP3 PUSH2 0x26F2 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x277C DUP2 DUP5 PUSH2 0x272A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x278E DUP3 PUSH2 0x26CA JUMP JUMPDEST PUSH2 0x2798 DUP2 DUP6 PUSH2 0x25EE JUMP JUMPDEST SWAP4 POP PUSH2 0x27A8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x26E4 JUMP JUMPDEST PUSH2 0x27B1 DUP2 PUSH2 0x260C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x27D4 DUP2 DUP5 PUSH2 0x2784 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x27EF PUSH0 DUP4 ADD DUP7 PUSH2 0x2356 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2802 DUP2 DUP5 DUP7 PUSH2 0x261C JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x2846 DUP3 PUSH2 0x260C JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2865 JUMPI PUSH2 0x2864 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2877 PUSH2 0x2001 JUMP JUMPDEST SWAP1 POP PUSH2 0x2883 DUP3 DUP3 PUSH2 0x283D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x2896 DUP3 PUSH2 0x2070 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x28A7 DUP3 PUSH2 0x288C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28B7 DUP2 PUSH2 0x289D JUMP JUMPDEST DUP2 EQ PUSH2 0x28C1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x28D2 DUP2 PUSH2 0x28AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x28E6 DUP2 PUSH2 0x237E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x290A JUMPI PUSH2 0x2909 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST PUSH2 0x2913 DUP3 PUSH2 0x260C JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2932 PUSH2 0x292D DUP5 PUSH2 0x28F0 JUMP JUMPDEST PUSH2 0x286E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x294E JUMPI PUSH2 0x294D PUSH2 0x28EC JUMP JUMPDEST JUMPDEST PUSH2 0x2959 DUP5 DUP3 DUP6 PUSH2 0x26E4 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2975 JUMPI PUSH2 0x2974 PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2985 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2920 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29A3 JUMPI PUSH2 0x29A2 PUSH2 0x280C JUMP JUMPDEST JUMPDEST PUSH2 0x29AD PUSH1 0x60 PUSH2 0x286E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x29BC DUP5 DUP3 DUP6 ADD PUSH2 0x268B JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x29CF DUP5 DUP3 DUP6 ADD PUSH2 0x28D8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29F3 JUMPI PUSH2 0x29F2 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x29FF DUP5 DUP3 DUP6 ADD PUSH2 0x2961 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A25 JUMPI PUSH2 0x2A24 PUSH2 0x2810 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2A48 PUSH2 0x2A43 DUP5 PUSH2 0x2A0B JUMP JUMPDEST PUSH2 0x286E JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x2A6B JUMPI PUSH2 0x2A6A PUSH2 0x2464 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2AB2 JUMPI DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A90 JUMPI PUSH2 0x2A8F PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x2A9D DUP10 DUP3 PUSH2 0x298E JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2A6D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2AD0 JUMPI PUSH2 0x2ACF PUSH2 0x245C JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2AE0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A36 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2AF2 DUP2 PUSH2 0x2223 JUMP JUMPDEST DUP2 EQ PUSH2 0x2AFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2B0D DUP2 PUSH2 0x2AE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2B21 DUP2 PUSH2 0x201B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x120 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3D JUMPI PUSH2 0x2B3C PUSH2 0x280C JUMP JUMPDEST JUMPDEST PUSH2 0x2B48 PUSH2 0x120 PUSH2 0x286E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2B57 DUP5 DUP3 DUP6 ADD PUSH2 0x28C4 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B7A JUMPI PUSH2 0x2B79 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2B86 DUP5 DUP3 DUP6 ADD PUSH2 0x298E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BAA JUMPI PUSH2 0x2BA9 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2BB6 DUP5 DUP3 DUP6 ADD PUSH2 0x298E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BDA JUMPI PUSH2 0x2BD9 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2BE6 DUP5 DUP3 DUP6 ADD PUSH2 0x298E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C0A JUMPI PUSH2 0x2C09 PUSH2 0x2888 JUMP JUMPDEST JUMPDEST PUSH2 0x2C16 DUP5 DUP3 DUP6 ADD PUSH2 0x2ABC JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 PUSH2 0x2C2A DUP5 DUP3 DUP6 ADD PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP PUSH1 0xC0 PUSH2 0x2C3E DUP5 DUP3 DUP6 ADD PUSH2 0x2AFF JUMP JUMPDEST PUSH1 0xC0 DUP4 ADD MSTORE POP PUSH1 0xE0 PUSH2 0x2C52 DUP5 DUP3 DUP6 ADD PUSH2 0x2B13 JUMP JUMPDEST PUSH1 0xE0 DUP4 ADD MSTORE POP PUSH2 0x100 PUSH2 0x2C67 DUP5 DUP3 DUP6 ADD PUSH2 0x28D8 JUMP JUMPDEST PUSH2 0x100 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C89 JUMPI PUSH2 0x2C88 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CA6 JUMPI PUSH2 0x2CA5 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2CB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2B27 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2CF2 DUP3 PUSH2 0x2223 JUMP JUMPDEST SWAP2 POP PUSH2 0x2CFD DUP4 PUSH2 0x2223 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D1D JUMPI PUSH2 0x2D1C PUSH2 0x2CBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D57 DUP2 PUSH2 0x2D23 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D70 PUSH0 DUP4 ADD DUP5 PUSH2 0x2D4E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2D80 DUP3 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP PUSH2 0x2D8B DUP4 PUSH2 0x2012 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x2DA3 JUMPI PUSH2 0x2DA2 PUSH2 0x2CBB JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2DBC PUSH0 DUP4 ADD DUP7 PUSH2 0x2356 JUMP JUMPDEST PUSH2 0x2DC9 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2356 JUMP JUMPDEST PUSH2 0x2DD6 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2356 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2DE8 DUP3 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP PUSH2 0x2DF3 DUP4 PUSH2 0x2012 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x2E01 DUP2 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2E18 JUMPI PUSH2 0x2E17 PUSH2 0x2CBB JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2E56 DUP3 PUSH2 0x2012 JUMP JUMPDEST SWAP2 POP PUSH2 0x2E61 DUP4 PUSH2 0x2012 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2E71 JUMPI PUSH2 0x2E70 PUSH2 0x2E1F JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E8F PUSH0 DUP4 ADD DUP6 PUSH2 0x2D4E JUMP JUMPDEST PUSH2 0x2E9C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2356 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB8 JUMPI PUSH2 0x2EB7 PUSH2 0x200A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2ED5 JUMPI PUSH2 0x2ED4 PUSH2 0x200E JUMP JUMPDEST JUMPDEST PUSH2 0x2EE1 DUP5 DUP3 DUP6 ADD PUSH2 0x2961 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP9 ADDRESS LOG1 EXP 0xA9 SWAP11 0xE4 PUSH1 0x6C 0xDB DUP7 0xC2 SELFBALANCE EXTCODESIZE 0x4F ORIGIN PUSH16 0x2CB4A4FADDF7D755F9D76BFB718ED264 PUSH20 0x6F6C634300081A00330000000000000000000000 ","sourceMap":"1093:11265:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6809:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;7585:96:28;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1956:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7296:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:16;;;:::i;:::-;;7010:95:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:16;;;:::i;:::-;;1878:29:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2224:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5936:737:28;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2036:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2130:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2342:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4174:1507;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6809:117:28;6865:21;;:::i;:::-;6905:7;6913:5;6905:14;;;;;;;;:::i;:::-;;;;;;;;;;;;6898:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6809:117;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;7585:96:28:-;12517:13:16;:11;:13::i;:::-;7665:9:28::1;7654:8;:20;;;;7585:96:::0;:::o;1956:34::-;;;;;;;;;;;;;:::o;7296:140::-;12517:13:16;:11;:13::i;:::-;7409:20:28::1;7387:19;;:42;;;;;;;;;;;;;;;;;;7296:140:::0;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;7010:95:28:-;7058:7;7084;:14;;;;7077:21;;7010:95;:::o;8762:100:16:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;1878:29:28:-;;;;;;;;;;;;;:::o;2224:33::-;;;;;;;;;;;;;:::o;11408:182:16:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;5936:737:28:-;1635:9:25;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;6109:28:28::1;6140:7:::0;6148:8:::1;6140:17;;;;;;;;:::i;:::-;;;;;;;;;;;;6109:48;;6183:8;;6171:9;:20;6167:94;;;6237:1;6241:9;6252:8;;6200:61;;;;;;;;;;;;;:::i;:::-;;;;;;;;6167:94;6271:32;6286:5;6293:9;6271:14;:32::i;:::-;6407:5;:15;;;;;;;;;;;;:24;;;6432:5;;6407:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6402:70;;6447:25;;;;;;;;;;;;;;6402:70;6500:5;:16;;6517:12;6500:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:36;;;6548:57;;;;;;;;6580:10;6548:57;;;;;;6598:5;;6548:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;6537:69:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;6500:107;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6482:184;;6648:10;6660:5;;6625:41;;;;;;;;;;;;;:::i;:::-;;;;;;;;6482:184;6099:574;1937:10:25::0;1913:22;1906:42;5936:737:28;;;;;:::o;2036:40::-;;;;:::o;2130:33::-;;;;;;;;;;;;;:::o;2342:47::-;2383:6;2342:47;:::o;4174:1507::-;4258:21;;:::i;:::-;12517:13:16;:11;:13::i;:::-;1635:9:25::1;1610:22;1604:29;1601:44:::0;1598:158:::1;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;4291:27:28::2;4332:20;:5;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20::i;:::-;4321:47;;;;;;;;;;;;:::i;:::-;4291:77;;4410:29;4423:8;:15;;;4410:12;:29::i;:::-;4482:28;4513:7:::0;:14:::2;;;;;;;;;;;;;;;;;;;;;;;;4482:45;;4551:8;:14;;;4537:5;:11;;;:28;;;;;;;;;;;;;;;;;;4590:8;:15;;;4575:5;:12;;;:30;;;;;;;;;;;;;;;;;;4649:8;:20;;;4635:11;;;;;;;;;;;:34;;;;:::i;:::-;4615:5;:17;;;:54;;;;;;;;;;;;;;;;;;4713:8;:20;;;4699:11;;;;;;;;;;;:34;;;;:::i;:::-;4679:5;:17;;;:54;;;;;;;;;;;;;;;;;;4767:8;:24;;;4743:5;:21;;:48;;;;4862:60;4874:24;4900:8;:15;;;4917:4;4862:11;:60::i;:::-;4840:5;:12;;;:83;;;;;;;;;;;;;;;;;;4961:66;4973:27;5002:8;:18;;;5022:4;4961:11;:66::i;:::-;4933:5;:15;;;:95;;;;;;;;;;;;;;;;;;5057:53;5073:8;:19;;;5094:8;:15;;;5057;:53::i;:::-;5038:5;:16;;:72;;;;;;;;;;;;:::i;:::-;;5200:1;5161:41;;:8;:18;;;:27;;;:41;;;:241;;5336:66;5348:27;5377:8;:18;;;5397:4;5336:11;:66::i;:::-;5161:241;;;5221:5;:12;;;;;;;;;;;;:30;;;5252:27;5221:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:96;;5315:1;5221:96;;;5291:5;:12;;;;;;;;;;;;5221:96;5161:241;5120:5;:15;;;:292;;;;;;;;;;;;;;;;;;5518:5;:12;;;;;;;;;;;;5427:225;;5485:5;:11;;;;;;;;;;;;5427:225;;5470:1;5453:7;:14;;;;:18;;;;:::i;:::-;5427:225;5553:5;:15;;;;;;;;;;;;5591:5;:15;;;;;;;;;;;;5629:5;:12;;;;;;;;;;;;5427:225;;;;;;;;:::i;:::-;;;;;;;;5669:5;5662:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;1937:10:25::1;1913:22;1906:42;4174:1507:28::0;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;7878:110::-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;11698:658:28:-;11806:1;11794:8;;:13;11790:26;11809:7;11790:26;11825:14;11842:8;;11825:25;;11969:1;11948:23;;:9;:23;;;11944:215;;11987:21;2383:6;12011:46;;12022:5;:17;;;;;;;;;;;;12011:28;;:8;;:28;;;;:::i;:::-;:46;;;;:::i;:::-;11987:70;;12081:13;12071:23;;;;;:::i;:::-;;;12108:40;12134:13;12108:9;:25;;;;:40;;;;:::i;:::-;11973:186;11944:215;12242:39;12279:1;12270:6;:10;;;;:::i;:::-;12242:5;:11;;;;;;;;;;;;:27;;;;:39;;;;:::i;:::-;12291:58;12327:21;12291:19;;;;;;;;;;;:35;;;;:58;;;;:::i;:::-;11780:576;11698:658;;;:::o;9347:1408:24:-;9411:19;9517:4;9511:11;9508:1231;;;9557:4;9551:11;9541:21;;9600:4;9592:6;9588:17;9641:1;9635:4;9631:12;9675:1;9669:8;9721:4;9715:11;9709:4;9705:22;9758:1;9754:6;9751:1;9744:17;9815:638;9831:3;9825:4;9822:13;9815:638;;;9879:1;9873:4;9869:12;9861:20;;9926:4;9920:11;9916:2;9911:21;9963:1;9953:413;;10010:1;10004:4;10000:12;9992:20;;10061:4;10055:11;10051:2;10046:21;10164:1;10160:6;10157:1;10150:17;10208:4;10205:1;10202:11;10192:61;;10248:1;10245;10241:9;10229:10;10226:1;10217:34;10192:61;10308:1;10301:4;10298:1;10294:12;10290:20;10287:1;10283:28;10278:33;;10336:8;;;;9953:413;10398:1;10395;10387:13;10433:1;10430;10426:9;10421:14;;9839:614;9815:638;;;;10480:1;10477;10470:12;10563:4;10555:6;10551:17;10548:1;10544:25;10536:6;10529:41;10618:1;10615;10608:12;10695:4;10692:1;10688:12;10682:4;10675:26;9523:1216;;;;9508:1231;9347:1408;;;:::o;7924:206:28:-;7986:56;7999:24;8033:7;7986:12;:56::i;:::-;8057:7;:20;;;8078:10;8057:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8052:71;;8098:25;;;;;;;;;;;;;;8052:71;7924:206;:::o;9145:268::-;9274:16;9306:42;9319:11;9332:6;:15;;;9306:12;:42::i;:::-;9369:37;9381:6;9389:16;9369:11;:37::i;:::-;9358:48;;9145:268;;;;;:::o;9715:1233::-;9825:29;9899:8;:15;9883:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9870:45;;9930:9;9925:1017;9949:8;:15;9945:1;:19;9925:1017;;;10066:63;10079:27;10108:8;10117:1;10108:11;;;;;;;;:::i;:::-;;;;;;;;:20;;;10066:12;:63::i;:::-;10243:8;10252:1;10243:11;;;;;;;;:::i;:::-;;;;;;;;:18;;;10238:142;;10315:27;10344:8;10353:1;10344:11;;;;;;;;:::i;:::-;;;;;;;;:20;;;10288:77;;;;;;;;;;;;:::i;:::-;;;;;;;;10238:142;10420:60;10432:27;10461:8;10470:1;10461:11;;;;;;;;:::i;:::-;;;;;;;;10474:5;10420:11;:60::i;:::-;10394:10;10405:1;10394:13;;;;;;;;:::i;:::-;;;;;;;:87;;;;;;;;;;;10496:22;10521:10;10532:1;10521:13;;;;;;;;:::i;:::-;;;;;;;;:23;;;10545:8;10554:1;10545:11;;;;;;;;:::i;:::-;;;;;;;;:22;;;10521:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10496:72;;10606:1;10586:9;:16;:21;10582:193;;10732:7;:16;;;10749:9;10732:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10725:35;;;;:::i;:::-;;10582:193;10883:10;10894:1;10883:13;;;;;;;;:::i;:::-;;;;;;;;:24;;;10908:8;10917:1;10908:11;;;;;;;;:::i;:::-;;;;;;;;:22;;;10883:48;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9971:971;9966:3;;;;;;;9925:1017;;;;9715:1233;;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;4031:342:26:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;8501:254:28:-;8609:1;8589:22;;:8;:22;;;:77;;;;8626:8;8616:37;;;8654:11;8616:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8615:51;8589:77;8585:164;;;8716:11;8729:8;8689:49;;;;;;;;;;;;:::i;:::-;;;;;;;;8585:164;8501:254;;:::o;11058:420::-;11153:16;11192:7;:14;;;:60;;11236:7;:16;;;11192:60;;;11209:24;:7;:16;;;:22;;;:24::i;:::-;11192:60;11181:71;;11266:7;:14;;;:35;;;;;11284:17;11266:35;11262:210;;;11421:8;11411:30;;;11442:7;:18;;;11411:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11262:210;11058:420;;;;:::o;4007:127:21:-;4064:16;4103:24;4109:1;4112:14;4103:5;:24::i;:::-;4092:35;;4007:127;;;:::o;4238:5567::-;4310:16;9363:28;9357:4;9350:42;9418:14;9412:4;9405:28;9459:42;9453:4;9446:56;9547:4;9541;9534:5;9527:25;9515:37;;9575:8;9565:136;;9616:10;9610:4;9603:24;9682:4;9676;9669:18;9565:136;9727:1;9721:4;9714:15;4238:5567;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:60::-;1185:3;1206:5;1199:12;;1157:60;;;:::o;1223:142::-;1273:9;1306:53;1324:34;1333:24;1351:5;1333:24;:::i;:::-;1324:34;:::i;:::-;1306:53;:::i;:::-;1293:66;;1223:142;;;:::o;1371:126::-;1421:9;1454:37;1485:5;1454:37;:::i;:::-;1441:50;;1371:126;;;:::o;1503:142::-;1569:9;1602:37;1633:5;1602:37;:::i;:::-;1589:50;;1503:142;;;:::o;1651:153::-;1744:53;1791:5;1744:53;:::i;:::-;1739:3;1732:66;1651:153;;:::o;1810:145::-;1879:9;1912:37;1943:5;1912:37;:::i;:::-;1899:50;;1810:145;;;:::o;1961:159::-;2057:56;2107:5;2057:56;:::i;:::-;2052:3;2045:69;1961:159;;:::o;2126:145::-;2195:9;2228:37;2259:5;2228:37;:::i;:::-;2215:50;;2126:145;;;:::o;2277:159::-;2373:56;2423:5;2373:56;:::i;:::-;2368:3;2361:69;2277:159;;:::o;2442:134::-;2500:9;2533:37;2564:5;2533:37;:::i;:::-;2520:50;;2442:134;;;:::o;2582:158::-;2656:9;2689:45;2728:5;2689:45;:::i;:::-;2676:58;;2582:158;;;:::o;2746:169::-;2847:61;2902:5;2847:61;:::i;:::-;2842:3;2835:74;2746:169;;:::o;2921:133::-;3007:6;3041:5;3035:12;3025:22;;2921:133;;;:::o;3060:174::-;3149:11;3183:6;3178:3;3171:19;3223:4;3218:3;3214:14;3199:29;;3060:174;;;;:::o;3240:151::-;3326:4;3349:3;3341:11;;3379:4;3374:3;3370:14;3362:22;;3240:151;;;:::o;3397:145::-;3466:9;3499:37;3530:5;3499:37;:::i;:::-;3486:50;;3397:145;;;:::o;3548:159::-;3644:56;3694:5;3644:56;:::i;:::-;3639:3;3632:69;3548:159;;:::o;3713:217::-;3801:10;3822:65;3883:3;3875:6;3822:65;:::i;:::-;3919:4;3914:3;3910:14;3896:28;;3713:217;;;;:::o;3936:132::-;4025:4;4057;4052:3;4048:14;4040:22;;3936:132;;;:::o;4115:807::-;4243:3;4272:73;4339:5;4272:73;:::i;:::-;4361:76;4430:6;4425:3;4361:76;:::i;:::-;4354:83;;4461:75;4530:5;4461:75;:::i;:::-;4559:7;4590:1;4575:322;4600:6;4597:1;4594:13;4575:322;;;4676:6;4670:13;4703:82;4781:3;4766:13;4703:82;:::i;:::-;4696:89;;4808:79;4880:6;4808:79;:::i;:::-;4798:89;;4635:262;4622:1;4619;4615:9;4610:14;;4575:322;;;4579:14;4913:3;4906:10;;4248:674;;;4115:807;;;;:::o;4928:101::-;4964:7;5004:18;4997:5;4993:30;4982:41;;4928:101;;;:::o;5035:105::-;5110:23;5127:5;5110:23;:::i;:::-;5105:3;5098:36;5035:105;;:::o;5146:108::-;5223:24;5241:5;5223:24;:::i;:::-;5218:3;5211:37;5146:108;;:::o;5260:96::-;5297:7;5326:24;5344:5;5326:24;:::i;:::-;5315:35;;5260:96;;;:::o;5362:108::-;5439:24;5457:5;5439:24;:::i;:::-;5434:3;5427:37;5362:108;;:::o;5530:1997::-;5647:3;5683:6;5678:3;5674:16;5774:4;5767:5;5763:16;5757:23;5793:79;5866:4;5861:3;5857:14;5843:12;5793:79;:::i;:::-;5700:182;5969:4;5962:5;5958:16;5952:23;5988:82;6064:4;6059:3;6055:14;6041:12;5988:82;:::i;:::-;5892:188;6167:4;6160:5;6156:16;6150:23;6186:82;6262:4;6257:3;6253:14;6239:12;6186:82;:::i;:::-;6090:188;6362:4;6355:5;6351:16;6345:23;6381:87;6462:4;6457:3;6453:14;6439:12;6381:87;:::i;:::-;6288:190;6566:4;6559:5;6555:16;6549:23;6619:3;6613:4;6609:14;6602:4;6597:3;6593:14;6586:38;6645:122;6762:4;6748:12;6645:122;:::i;:::-;6637:130;;6488:290;6867:4;6860:5;6856:16;6850:23;6886:61;6941:4;6936:3;6932:14;6918:12;6886:61;:::i;:::-;6788:169;7046:4;7039:5;7035:16;7029:23;7065:61;7120:4;7115:3;7111:14;7097:12;7065:61;:::i;:::-;6967:169;7229:4;7222:5;7218:16;7212:23;7248:63;7305:4;7300:3;7296:14;7282:12;7248:63;:::i;:::-;7146:175;7404:6;7397:5;7393:18;7387:25;7425:65;7482:6;7477:3;7473:16;7459:12;7425:65;:::i;:::-;7331:169;7517:4;7510:11;;5652:1875;5530:1997;;;;:::o;7533:369::-;7674:4;7712:2;7701:9;7697:18;7689:26;;7761:9;7755:4;7751:20;7747:1;7736:9;7732:17;7725:47;7789:106;7890:4;7881:6;7789:106;:::i;:::-;7781:114;;7533:369;;;;:::o;7908:118::-;7995:24;8013:5;7995:24;:::i;:::-;7990:3;7983:37;7908:118;;:::o;8032:222::-;8125:4;8163:2;8152:9;8148:18;8140:26;;8176:71;8244:1;8233:9;8229:17;8220:6;8176:71;:::i;:::-;8032:222;;;;:::o;8260:122::-;8333:24;8351:5;8333:24;:::i;:::-;8326:5;8323:35;8313:63;;8372:1;8369;8362:12;8313:63;8260:122;:::o;8388:139::-;8434:5;8472:6;8459:20;8450:29;;8488:33;8515:5;8488:33;:::i;:::-;8388:139;;;;:::o;8533:329::-;8592:6;8641:2;8629:9;8620:7;8616:23;8612:32;8609:119;;;8647:79;;:::i;:::-;8609:119;8767:1;8792:53;8837:7;8828:6;8817:9;8813:22;8792:53;:::i;:::-;8782:63;;8738:117;8533:329;;;;:::o;8868:118::-;8955:24;8973:5;8955:24;:::i;:::-;8950:3;8943:37;8868:118;;:::o;8992:222::-;9085:4;9123:2;9112:9;9108:18;9100:26;;9136:71;9204:1;9193:9;9189:17;9180:6;9136:71;:::i;:::-;8992:222;;;;:::o;9220:149::-;9293:9;9326:37;9357:5;9326:37;:::i;:::-;9313:50;;9220:149;;;:::o;9375:177::-;9485:60;9539:5;9485:60;:::i;:::-;9480:3;9473:73;9375:177;;:::o;9558:268::-;9674:4;9712:2;9701:9;9697:18;9689:26;;9725:94;9816:1;9805:9;9801:17;9792:6;9725:94;:::i;:::-;9558:268;;;;:::o;9832:115::-;9917:23;9934:5;9917:23;:::i;:::-;9912:3;9905:36;9832:115;;:::o;9953:218::-;10044:4;10082:2;10071:9;10067:18;10059:26;;10095:69;10161:1;10150:9;10146:17;10137:6;10095:69;:::i;:::-;9953:218;;;;:::o;10177:117::-;10286:1;10283;10276:12;10300:117;10409:1;10406;10399:12;10423:117;10532:1;10529;10522:12;10559:552;10616:8;10626:6;10676:3;10669:4;10661:6;10657:17;10653:27;10643:122;;10684:79;;:::i;:::-;10643:122;10797:6;10784:20;10774:30;;10827:18;10819:6;10816:30;10813:117;;;10849:79;;:::i;:::-;10813:117;10963:4;10955:6;10951:17;10939:29;;11017:3;11009:4;11001:6;10997:17;10987:8;10983:32;10980:41;10977:128;;;11024:79;;:::i;:::-;10977:128;10559:552;;;;;:::o;11117:963::-;11214:6;11222;11230;11238;11246;11295:3;11283:9;11274:7;11270:23;11266:33;11263:120;;;11302:79;;:::i;:::-;11263:120;11422:1;11447:53;11492:7;11483:6;11472:9;11468:22;11447:53;:::i;:::-;11437:63;;11393:117;11549:2;11575:53;11620:7;11611:6;11600:9;11596:22;11575:53;:::i;:::-;11565:63;;11520:118;11677:2;11703:53;11748:7;11739:6;11728:9;11724:22;11703:53;:::i;:::-;11693:63;;11648:118;11833:2;11822:9;11818:18;11805:32;11864:18;11856:6;11853:30;11850:117;;;11886:79;;:::i;:::-;11850:117;11999:64;12055:7;12046:6;12035:9;12031:22;11999:64;:::i;:::-;11981:82;;;;11776:297;11117:963;;;;;;;;:::o;12086:527::-;12156:6;12164;12213:2;12201:9;12192:7;12188:23;12184:32;12181:119;;;12219:79;;:::i;:::-;12181:119;12367:1;12356:9;12352:17;12339:31;12397:18;12389:6;12386:30;12383:117;;;12419:79;;:::i;:::-;12383:117;12532:64;12588:7;12579:6;12568:9;12564:22;12532:64;:::i;:::-;12514:82;;;;12310:296;12086:527;;;;;:::o;12619:180::-;12667:77;12664:1;12657:88;12764:4;12761:1;12754:15;12788:4;12785:1;12778:15;12805:442;12954:4;12992:2;12981:9;12977:18;12969:26;;13005:71;13073:1;13062:9;13058:17;13049:6;13005:71;:::i;:::-;13086:72;13154:2;13143:9;13139:18;13130:6;13086:72;:::i;:::-;13168;13236:2;13225:9;13221:18;13212:6;13168:72;:::i;:::-;12805:442;;;;;;:::o;13253:168::-;13336:11;13370:6;13365:3;13358:19;13410:4;13405:3;13401:14;13386:29;;13253:168;;;;:::o;13427:148::-;13525:6;13520:3;13515;13502:30;13566:1;13557:6;13552:3;13548:16;13541:27;13427:148;;;:::o;13581:102::-;13622:6;13673:2;13669:7;13664:2;13657:5;13653:14;13649:28;13639:38;;13581:102;;;:::o;13711:314::-;13807:3;13828:70;13891:6;13886:3;13828:70;:::i;:::-;13821:77;;13908:56;13957:6;13952:3;13945:5;13908:56;:::i;:::-;13989:29;14011:6;13989:29;:::i;:::-;13984:3;13980:39;13973:46;;13711:314;;;;;:::o;14031:329::-;14152:4;14190:2;14179:9;14175:18;14167:26;;14239:9;14233:4;14229:20;14225:1;14214:9;14210:17;14203:47;14267:86;14348:4;14339:6;14331;14267:86;:::i;:::-;14259:94;;14031:329;;;;;:::o;14366:90::-;14400:7;14443:5;14436:13;14429:21;14418:32;;14366:90;;;:::o;14462:116::-;14532:21;14547:5;14532:21;:::i;:::-;14525:5;14522:32;14512:60;;14568:1;14565;14558:12;14512:60;14462:116;:::o;14584:137::-;14638:5;14669:6;14663:13;14654:22;;14685:30;14709:5;14685:30;:::i;:::-;14584:137;;;;:::o;14727:345::-;14794:6;14843:2;14831:9;14822:7;14818:23;14814:32;14811:119;;;14849:79;;:::i;:::-;14811:119;14969:1;14994:61;15047:7;15038:6;15027:9;15023:22;14994:61;:::i;:::-;14984:71;;14940:125;14727:345;;;;:::o;15078:98::-;15129:6;15163:5;15157:12;15147:22;;15078:98;;;:::o;15182:158::-;15255:11;15289:6;15284:3;15277:19;15329:4;15324:3;15320:14;15305:29;;15182:158;;;;:::o;15346:139::-;15435:6;15430:3;15425;15419:23;15476:1;15467:6;15462:3;15458:16;15451:27;15346:139;;;:::o;15491:353::-;15567:3;15595:38;15627:5;15595:38;:::i;:::-;15649:60;15702:6;15697:3;15649:60;:::i;:::-;15642:67;;15718:65;15776:6;15771:3;15764:4;15757:5;15753:16;15718:65;:::i;:::-;15808:29;15830:6;15808:29;:::i;:::-;15803:3;15799:39;15792:46;;15571:273;15491:353;;;;:::o;15920:618::-;16051:3;16087:4;16082:3;16078:14;16176:4;16169:5;16165:16;16159:23;16195:63;16252:4;16247:3;16243:14;16229:12;16195:63;:::i;:::-;16102:166;16350:4;16343:5;16339:16;16333:23;16403:3;16397:4;16393:14;16386:4;16381:3;16377:14;16370:38;16429:71;16495:4;16481:12;16429:71;:::i;:::-;16421:79;;16278:233;16528:4;16521:11;;16056:482;15920:618;;;;:::o;16544:397::-;16699:4;16737:2;16726:9;16722:18;16714:26;;16786:9;16780:4;16776:20;16772:1;16761:9;16757:17;16750:47;16814:120;16929:4;16920:6;16814:120;:::i;:::-;16806:128;;16544:397;;;;:::o;16947:373::-;17033:3;17061:38;17093:5;17061:38;:::i;:::-;17115:70;17178:6;17173:3;17115:70;:::i;:::-;17108:77;;17194:65;17252:6;17247:3;17240:4;17233:5;17229:16;17194:65;:::i;:::-;17284:29;17306:6;17284:29;:::i;:::-;17279:3;17275:39;17268:46;;17037:283;16947:373;;;;:::o;17326:309::-;17437:4;17475:2;17464:9;17460:18;17452:26;;17524:9;17518:4;17514:20;17510:1;17499:9;17495:17;17488:47;17552:76;17623:4;17614:6;17552:76;:::i;:::-;17544:84;;17326:309;;;;:::o;17641:439::-;17790:4;17828:2;17817:9;17813:18;17805:26;;17841:71;17909:1;17898:9;17894:17;17885:6;17841:71;:::i;:::-;17959:9;17953:4;17949:20;17944:2;17933:9;17929:18;17922:48;17987:86;18068:4;18059:6;18051;17987:86;:::i;:::-;17979:94;;17641:439;;;;;;:::o;18086:117::-;18195:1;18192;18185:12;18209:180;18257:77;18254:1;18247:88;18354:4;18351:1;18344:15;18378:4;18375:1;18368:15;18395:281;18478:27;18500:4;18478:27;:::i;:::-;18470:6;18466:40;18608:6;18596:10;18593:22;18572:18;18560:10;18557:34;18554:62;18551:88;;;18619:18;;:::i;:::-;18551:88;18659:10;18655:2;18648:22;18438:238;18395:281;;:::o;18682:129::-;18716:6;18743:20;;:::i;:::-;18733:30;;18772:33;18800:4;18792:6;18772:33;:::i;:::-;18682:129;;;:::o;18817:117::-;18926:1;18923;18916:12;18940:104;18985:7;19014:24;19032:5;19014:24;:::i;:::-;19003:35;;18940:104;;;:::o;19050:120::-;19103:7;19132:32;19158:5;19132:32;:::i;:::-;19121:43;;19050:120;;;:::o;19176:154::-;19265:40;19299:5;19265:40;:::i;:::-;19258:5;19255:51;19245:79;;19320:1;19317;19310:12;19245:79;19176:154;:::o;19336:175::-;19409:5;19440:6;19434:13;19425:22;;19456:49;19499:5;19456:49;:::i;:::-;19336:175;;;;:::o;19517:143::-;19574:5;19605:6;19599:13;19590:22;;19621:33;19648:5;19621:33;:::i;:::-;19517:143;;;;:::o;19666:117::-;19775:1;19772;19765:12;19789:307;19850:4;19940:18;19932:6;19929:30;19926:56;;;19962:18;;:::i;:::-;19926:56;20000:29;20022:6;20000:29;:::i;:::-;19992:37;;20084:4;20078;20074:15;20066:23;;19789:307;;;:::o;20102:432::-;20190:5;20215:65;20231:48;20272:6;20231:48;:::i;:::-;20215:65;:::i;:::-;20206:74;;20303:6;20296:5;20289:21;20341:4;20334:5;20330:16;20379:3;20370:6;20365:3;20361:16;20358:25;20355:112;;;20386:79;;:::i;:::-;20355:112;20476:52;20521:6;20516:3;20511;20476:52;:::i;:::-;20196:338;20102:432;;;;;:::o;20553:353::-;20619:5;20668:3;20661:4;20653:6;20649:17;20645:27;20635:122;;20676:79;;:::i;:::-;20635:122;20786:6;20780:13;20811:89;20896:3;20888:6;20881:4;20873:6;20869:17;20811:89;:::i;:::-;20802:98;;20625:281;20553:353;;;;:::o;20942:950::-;21027:5;21071:4;21059:9;21054:3;21050:19;21046:30;21043:117;;;21079:79;;:::i;:::-;21043:117;21178:21;21194:4;21178:21;:::i;:::-;21169:30;;21260:1;21300:57;21353:3;21344:6;21333:9;21329:22;21300:57;:::i;:::-;21293:4;21286:5;21282:16;21275:83;21209:160;21432:2;21473:60;21529:3;21520:6;21509:9;21505:22;21473:60;:::i;:::-;21466:4;21459:5;21455:16;21448:86;21379:166;21631:2;21620:9;21616:18;21610:25;21662:18;21654:6;21651:30;21648:117;;;21684:79;;:::i;:::-;21648:117;21804:69;21869:3;21860:6;21849:9;21845:22;21804:69;:::i;:::-;21797:4;21790:5;21786:16;21779:95;21555:330;20942:950;;;;:::o;21898:336::-;22000:4;22090:18;22082:6;22079:30;22076:56;;;22112:18;;:::i;:::-;22076:56;22162:4;22154:6;22150:17;22142:25;;22222:4;22216;22212:15;22204:23;;21898:336;;;:::o;22272:1005::-;22404:5;22429:106;22445:89;22527:6;22445:89;:::i;:::-;22429:106;:::i;:::-;22420:115;;22555:5;22584:6;22577:5;22570:21;22618:4;22611:5;22607:16;22600:23;;22671:4;22663:6;22659:17;22651:6;22647:30;22700:3;22692:6;22689:15;22686:122;;;22719:79;;:::i;:::-;22686:122;22834:6;22817:454;22851:6;22846:3;22843:15;22817:454;;;22933:3;22927:10;22969:18;22956:11;22953:35;22950:122;;;22991:79;;:::i;:::-;22950:122;23115:11;23107:6;23103:24;23153:73;23222:3;23210:10;23153:73;:::i;:::-;23148:3;23141:86;23256:4;23251:3;23247:14;23240:21;;22893:378;;22877:4;22872:3;22868:14;22861:21;;22817:454;;;22821:21;22410:867;;22272:1005;;;;;:::o;23315:435::-;23422:5;23471:3;23464:4;23456:6;23452:17;23448:27;23438:122;;23479:79;;:::i;:::-;23438:122;23589:6;23583:13;23614:130;23740:3;23732:6;23725:4;23717:6;23713:17;23614:130;:::i;:::-;23605:139;;23428:322;23315:435;;;;:::o;23756:120::-;23828:23;23845:5;23828:23;:::i;:::-;23821:5;23818:34;23808:62;;23866:1;23863;23856:12;23808:62;23756:120;:::o;23882:141::-;23938:5;23969:6;23963:13;23954:22;;23985:32;24011:5;23985:32;:::i;:::-;23882:141;;;;:::o;24029:143::-;24086:5;24117:6;24111:13;24102:22;;24133:33;24160:5;24133:33;:::i;:::-;24029:143;;;;:::o;24214:2624::-;24304:5;24348:6;24336:9;24331:3;24327:19;24323:32;24320:119;;;24358:79;;:::i;:::-;24320:119;24457:23;24473:6;24457:23;:::i;:::-;24448:32;;24541:1;24581:76;24653:3;24644:6;24633:9;24629:22;24581:76;:::i;:::-;24574:4;24567:5;24563:16;24556:102;24490:179;24751:2;24740:9;24736:18;24730:25;24782:18;24774:6;24771:30;24768:117;;;24804:79;;:::i;:::-;24768:117;24924:85;25005:3;24996:6;24985:9;24981:22;24924:85;:::i;:::-;24917:4;24910:5;24906:16;24899:111;24679:342;25106:2;25095:9;25091:18;25085:25;25137:18;25129:6;25126:30;25123:117;;;25159:79;;:::i;:::-;25123:117;25279:85;25360:3;25351:6;25340:9;25336:22;25279:85;:::i;:::-;25272:4;25265:5;25261:16;25254:111;25031:345;25461:2;25450:9;25446:18;25440:25;25492:18;25484:6;25481:30;25478:117;;;25514:79;;:::i;:::-;25478:117;25634:85;25715:3;25706:6;25695:9;25691:22;25634:85;:::i;:::-;25627:4;25620:5;25616:16;25609:111;25386:345;25817:3;25806:9;25802:19;25796:26;25849:18;25841:6;25838:30;25835:117;;;25871:79;;:::i;:::-;25835:117;25991:110;26097:3;26088:6;26077:9;26073:22;25991:110;:::i;:::-;25984:4;25977:5;25973:16;25966:136;25741:372;26179:3;26221:59;26276:3;26267:6;26256:9;26252:22;26221:59;:::i;:::-;26214:4;26207:5;26203:16;26196:85;26123:169;26358:3;26400:59;26455:3;26446:6;26435:9;26431:22;26400:59;:::i;:::-;26393:4;26386:5;26382:16;26375:85;26302:169;26541:3;26583:60;26639:3;26630:6;26619:9;26615:22;26583:60;:::i;:::-;26576:4;26569:5;26565:16;26558:86;26481:174;26715:3;26759:60;26815:3;26806:6;26795:9;26791:22;26759:60;:::i;:::-;26750:6;26743:5;26739:18;26732:88;26665:166;24214:2624;;;;:::o;26844:564::-;26944:6;26993:2;26981:9;26972:7;26968:23;26964:32;26961:119;;;26999:79;;:::i;:::-;26961:119;27140:1;27129:9;27125:17;27119:24;27170:18;27162:6;27159:30;27156:117;;;27192:79;;:::i;:::-;27156:117;27297:94;27383:7;27374:6;27363:9;27359:22;27297:94;:::i;:::-;27287:104;;27090:311;26844:564;;;;:::o;27414:180::-;27462:77;27459:1;27452:88;27559:4;27556:1;27549:15;27583:4;27580:1;27573:15;27600:205;27639:3;27658:19;27675:1;27658:19;:::i;:::-;27653:24;;27691:19;27708:1;27691:19;:::i;:::-;27686:24;;27733:1;27730;27726:9;27719:16;;27756:18;27751:3;27748:27;27745:53;;;27778:18;;:::i;:::-;27745:53;27600:205;;;;:::o;27811:149::-;27847:7;27887:66;27880:5;27876:78;27865:89;;27811:149;;;:::o;27966:115::-;28051:23;28068:5;28051:23;:::i;:::-;28046:3;28039:36;27966:115;;:::o;28087:218::-;28178:4;28216:2;28205:9;28201:18;28193:26;;28229:69;28295:1;28284:9;28280:17;28271:6;28229:69;:::i;:::-;28087:218;;;;:::o;28311:194::-;28351:4;28371:20;28389:1;28371:20;:::i;:::-;28366:25;;28405:20;28423:1;28405:20;:::i;:::-;28400:25;;28449:1;28446;28442:9;28434:17;;28473:1;28467:4;28464:11;28461:37;;;28478:18;;:::i;:::-;28461:37;28311:194;;;;:::o;28511:442::-;28660:4;28698:2;28687:9;28683:18;28675:26;;28711:71;28779:1;28768:9;28764:17;28755:6;28711:71;:::i;:::-;28792:72;28860:2;28849:9;28845:18;28836:6;28792:72;:::i;:::-;28874;28942:2;28931:9;28927:18;28918:6;28874:72;:::i;:::-;28511:442;;;;;;:::o;28959:410::-;28999:7;29022:20;29040:1;29022:20;:::i;:::-;29017:25;;29056:20;29074:1;29056:20;:::i;:::-;29051:25;;29111:1;29108;29104:9;29133:30;29151:11;29133:30;:::i;:::-;29122:41;;29312:1;29303:7;29299:15;29296:1;29293:22;29273:1;29266:9;29246:83;29223:139;;29342:18;;:::i;:::-;29223:139;29007:362;28959:410;;;;:::o;29375:180::-;29423:77;29420:1;29413:88;29520:4;29517:1;29510:15;29544:4;29541:1;29534:15;29561:185;29601:1;29618:20;29636:1;29618:20;:::i;:::-;29613:25;;29652:20;29670:1;29652:20;:::i;:::-;29647:25;;29691:1;29681:35;;29696:18;;:::i;:::-;29681:35;29738:1;29735;29731:9;29726:14;;29561:185;;;;:::o;29752:328::-;29871:4;29909:2;29898:9;29894:18;29886:26;;29922:69;29988:1;29977:9;29973:17;29964:6;29922:69;:::i;:::-;30001:72;30069:2;30058:9;30054:18;30045:6;30001:72;:::i;:::-;29752:328;;;;;:::o;30086:522::-;30165:6;30214:2;30202:9;30193:7;30189:23;30185:32;30182:119;;;30220:79;;:::i;:::-;30182:119;30361:1;30350:9;30346:17;30340:24;30391:18;30383:6;30380:30;30377:117;;;30413:79;;:::i;:::-;30377:117;30518:73;30583:7;30574:6;30563:9;30559:22;30518:73;:::i;:::-;30508:83;;30311:290;30086:522;;;;:::o;30614:180::-;30662:77;30659:1;30652:88;30759:4;30756:1;30749:15;30783:4;30780:1;30773:15"},"methodIdentifiers":{"FEE_DENOMINATOR()":"d73792a9","cancelOwnershipHandover()":"54d1f13d","claimFee()":"99d32fc4","claimIncentive(uint256,uint256,address,bytes)":"8fe4f523","completeOwnershipHandover(address)":"f04e283e","createBoost(bytes)":"e21ff731","getBoost(uint256)":"13c8e2de","getBoostCount()":"5edb9eb0","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","protocolFee()":"b0e21e8a","protocolFeeReceiver()":"39a51be5","referralFee()":"84ae2bc6","registry()":"7b103999","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setClaimFee(uint256)":"2e75ab50","setProtocolFeeReceiver(address)":"46877b1a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract BoostRegistry\",\"name\":\"registry_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"protocolFeeReceiver_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"expectedInterface\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"InvalidInstance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"boostIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"action\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"validator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"allowList\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"budget\",\"type\":\"address\"}],\"name\":\"BoostCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FEE_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"boostId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"incentiveId_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"referrer_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claimIncentive\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"createBoost\",\"outputs\":[{\"components\":[{\"internalType\":\"contract Action\",\"name\":\"action\",\"type\":\"address\"},{\"internalType\":\"contract Validator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"contract AllowList\",\"name\":\"allowList\",\"type\":\"address\"},{\"internalType\":\"contract Budget\",\"name\":\"budget\",\"type\":\"address\"},{\"internalType\":\"contract Incentive[]\",\"name\":\"incentives\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralFee\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxParticipants\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"struct BoostLib.Boost\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getBoost\",\"outputs\":[{\"components\":[{\"internalType\":\"contract Action\",\"name\":\"action\",\"type\":\"address\"},{\"internalType\":\"contract Validator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"contract AllowList\",\"name\":\"allowList\",\"type\":\"address\"},{\"internalType\":\"contract Budget\",\"name\":\"budget\",\"type\":\"address\"},{\"internalType\":\"contract Incentive[]\",\"name\":\"incentives\",\"type\":\"address[]\"},{\"internalType\":\"uint64\",\"name\":\"protocolFee\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralFee\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxParticipants\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"internalType\":\"struct BoostLib.Boost\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBoostCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"referralFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract BoostRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimFee_\",\"type\":\"uint256\"}],\"name\":\"setClaimFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"protocolFeeReceiver_\",\"type\":\"address\"}],\"name\":\"setProtocolFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is currently `Ownable` for simplicity, but this will be replaced with a decentralized governance mechanism prior to GA\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claimIncentive(uint256,uint256,address,bytes)\":{\"params\":{\"boostId_\":\"The ID of the Boost\",\"data_\":\"The data for the claim\",\"incentiveId_\":\"The ID of the Incentive\",\"referrer_\":\"The address of the referrer (if any)\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"createBoost(bytes)\":{\"details\":\"The data is expected to: - be packed using `abi.encode()` and compressed using [Solady's LibZip calldata compression](https://github.com/Vectorized/solady/blob/main/src/utils/LibZip.sol) - properly decode to the following types (in order): - `Budget` to be used for the Boost - `Target` for the action - `Target` for the validator which is expected to be one of the following: - The address of a base implementation to be cloned (e.g. the result of `BoostRegistry.getBaseImplementation(\\\"SignerValidator\\\")`), along with the parameters for its initializer; - The address of a previously deployed clone with no parameter data (any parameter data will be ignored but will still add to the calldata size); - The zero address along with no parameter data if validation is implemented by the action; - `Target` for the allowList - `Target[]` for the incentives - `uint256` for the protocolFee (added to the base protocol fee) - `uint256` for the referralFee (added to the base referral fee) - `uint256` for the maxParticipants - `address` for the owner of the Boost\",\"params\":{\"data_\":\"The compressed data for the Boost `(Budget, Target, Target, Target, Target[], protocolFee, referralFee, maxParticipants, owner)`\"}},\"getBoost(uint256)\":{\"params\":{\"index\":\"The index of the Boost\"},\"returns\":{\"_0\":\"The Boost at the specified index\"}},\"getBoostCount()\":{\"returns\":{\"_0\":\"The number of Boosts\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setClaimFee(uint256)\":{\"details\":\"This function is only callable by the owner\",\"params\":{\"claimFee_\":\"The new claim fee (in wei)\"}},\"setProtocolFeeReceiver(address)\":{\"details\":\"This function is only callable by the owner\",\"params\":{\"protocolFeeReceiver_\":\"The new protocol fee receiver address\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Core\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInstance(bytes4,address)\":[{\"notice\":\"Thrown when a non-conforming instance for a given type is encountered\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"FEE_DENOMINATOR()\":{\"notice\":\"The fee denominator (basis points, i.e. 10000 == 100%)\"},\"claimFee()\":{\"notice\":\"The claim fee (in wei)\"},\"claimIncentive(uint256,uint256,address,bytes)\":{\"notice\":\"Claim an incentive for a Boost\"},\"constructor\":{\"notice\":\"Constructor to initialize the owner\"},\"createBoost(bytes)\":{\"notice\":\"Create a new Boost\"},\"getBoost(uint256)\":{\"notice\":\"Get a Boost by index\"},\"getBoostCount()\":{\"notice\":\"Get the number of Boosts\"},\"protocolFee()\":{\"notice\":\"The base protocol fee (in bps)\"},\"protocolFeeReceiver()\":{\"notice\":\"The protocol fee receiver\"},\"referralFee()\":{\"notice\":\"The base referral fee (in bps)\"},\"registry()\":{\"notice\":\"The BoostRegistry contract\"},\"setClaimFee(uint256)\":{\"notice\":\"Set the claim fee\"},\"setProtocolFeeReceiver(address)\":{\"notice\":\"Set the protocol fee receiver address\"}},\"notice\":\"The core contract for the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BoostCore.sol\":\"BoostCore\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/BoostCore.sol\":{\"keccak256\":\"0x23a932b4e5d43b5b8bb5cf533b5fd70ce50bd66aa8bc5b3bc3ba8a62a7823047\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://34157a00c7143a5ac147cee3fb7a8b9c4d0edad79a3aa91fd15457741bccf2d1\",\"dweb:/ipfs/QmU8JE1feKAT8pxKLDx6tC8VgnBhYqXZjg4F5DEF8W6FtD\"]},\"contracts/BoostRegistry.sol\":{\"keccak256\":\"0xc9f28f67a2b9d1e8cfe76981011908b38c63538ee0a27405c58f2e337609d1ff\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53859966207b2ba00858ef705409506458281e37dfeaf7d887f7d9ebe37e08c6\",\"dweb:/ipfs/QmRoAmJnvgG3J8UQqRGEdNdBc1fbWfELqaDemEUx3roPCS\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/BoostRegistry.sol":{"BoostRegistry":{"abi":[{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"name":"AlreadyRegistered","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"NotCloneable","type":"error"},{"inputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"name":"NotRegistered","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"identifier","type":"bytes32"},{"indexed":false,"internalType":"address","name":"baseImplementation","type":"address"},{"indexed":false,"internalType":"contract Cloneable","name":"deployedInstance","type":"address"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum BoostRegistry.RegistryType","name":"registryType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"identifier","type":"bytes32"},{"indexed":false,"internalType":"address","name":"implementation","type":"address"}],"name":"Registered","type":"event"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"address","name":"base_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"deployClone","outputs":[{"internalType":"contract Cloneable","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"identifier_","type":"bytes32"}],"name":"getBaseImplementation","outputs":[{"internalType":"contract Cloneable","name":"implementation","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"identifier_","type":"bytes32"}],"name":"getClone","outputs":[{"components":[{"internalType":"enum BoostRegistry.RegistryType","name":"baseType","type":"uint8"},{"internalType":"contract Cloneable","name":"instance","type":"address"},{"internalType":"address","name":"deployer","type":"address"},{"internalType":"string","name":"name","type":"string"}],"internalType":"struct BoostRegistry.Clone","name":"clone","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"address","name":"base_","type":"address"},{"internalType":"address","name":"deployer_","type":"address"},{"internalType":"string","name":"name_","type":"string"}],"name":"getCloneIdentifier","outputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"deployer_","type":"address"}],"name":"getClones","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"string","name":"name_","type":"string"}],"name":"getIdentifier","outputs":[{"internalType":"bytes32","name":"identifier","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum BoostRegistry.RegistryType","name":"type_","type":"uint8"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"address","name":"implementation_","type":"address"}],"name":"register","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":"6080604052348015600e575f80fd5b50611b4e8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f6ab67a0d000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517fd3dd30120000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea2646970667358221220b6c78a8ed756beb59b3fef2f6cd360bd680f54539972d7bbbf26813fbf7ab89e64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B4E DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xACC83FC8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xACC83FC8 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0xD12DD481 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1668792 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xFD97064B EQ PUSH2 0x1C6 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x3AAF1626 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x792AA01C EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x83F38859 EQ PUSH2 0x11A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB1 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCF SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x10A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x471 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0x11D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x504 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15F SWAP2 SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x171 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x194 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH2 0x5EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH2 0x818 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x146E JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x376 SWAP1 PUSH2 0x153E 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 0x3A2 SWAP1 PUSH2 0x153E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x46C JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 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 0x4F8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4E4 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5A7 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x5E3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x15EF 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 0xC1C JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x648 SWAP2 SWAP1 PUSH2 0x1638 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x687 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH2 0x6C8 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD3DD301200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D4 DUP7 DUP7 DUP7 PUSH2 0x818 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x777 JUMPI DUP6 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76E SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x7D9 JUMPI PUSH2 0x7D8 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x660D31DF25C96B8A337FCF12A56B7363E5A997639DB853D5DBAEC7C01F31BD80 DUP6 PUSH1 0x40 MLOAD PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x84B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x830 SWAP3 SWAP2 SWAP1 PUSH2 0x1704 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 0xC1C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x873 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH2 0x91B DUP8 DUP8 DUP8 DUP8 CALLER PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x89B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC4E SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x92B DUP9 DUP9 CALLER DUP10 DUP10 PUSH2 0x5AC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9D2 JUMPI DUP8 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C9 SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA51 JUMPI PUSH2 0xA50 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xB0E JUMPI PUSH2 0xB0D PUSH2 0xECA JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xBB4 SWAP2 SWAP1 PUSH2 0x1965 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP9 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x2348FCDB9847B17A183E53AA32C0C5C76AFDEF8FCB14BB51F216C6611701AB1A DUP10 DUP6 PUSH1 0x40 MLOAD PUSH2 0xBFD SWAP3 SWAP2 SWAP1 PUSH2 0x1A34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC30 SWAP3 SWAP2 SWAP1 PUSH2 0x1A7B 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC78 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCE7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB3 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCF3 PUSH0 DUP5 DUP5 PUSH2 0xCFB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP3 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE DUP2 PUSH1 0x35 PUSH1 0xC DUP7 CREATE2 SWAP1 POP DUP1 PUSH2 0xD43 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6C JUMPI PUSH2 0xD6B PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDED DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP2 EQ PUSH2 0xDF7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE08 DUP2 PUSH2 0xDE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE23 JUMPI PUSH2 0xE22 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE30 DUP5 DUP3 DUP6 ADD PUSH2 0xDFA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE66 PUSH0 DUP4 ADD DUP5 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE7E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP2 EQ PUSH2 0xE88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE99 DUP2 PUSH2 0xE75 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEB4 JUMPI PUSH2 0xEB3 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEC1 DUP5 DUP3 DUP6 ADD PUSH2 0xE8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xECA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0xF18 DUP3 PUSH2 0xEF7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF27 DUP3 PUSH2 0xF0B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF37 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF7F PUSH2 0xF7A PUSH2 0xF75 DUP5 PUSH2 0xF3D JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF90 DUP3 PUSH2 0xF65 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFA1 DUP3 PUSH2 0xF86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB1 DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFC1 DUP3 PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD1 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1019 DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x1023 DUP2 DUP6 PUSH2 0xFE1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1033 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x103C DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x105C PUSH0 DUP7 ADD DUP3 PUSH2 0xF2E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x106F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xFA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1082 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xFC8 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x109A DUP3 DUP3 PUSH2 0x100F JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10BF DUP2 DUP5 PUSH2 0x1047 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10D0 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10EB DUP2 PUSH2 0x10C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1106 JUMPI PUSH2 0x1105 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1113 DUP5 DUP3 DUP6 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x115F DUP4 DUP4 PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1126 JUMP JUMPDEST SWAP4 POP PUSH2 0x1196 DUP4 PUSH2 0x1136 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11C6 JUMPI DUP2 MLOAD PUSH2 0x11AD DUP9 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP8 POP PUSH2 0x11B8 DUP4 PUSH2 0x116B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1199 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11EB DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11FC DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1215 PUSH0 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1238 DUP2 PUSH2 0x121B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x125F JUMPI PUSH2 0x125E PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH2 0x127B PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH2 0x1297 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B7 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12C5 DUP9 DUP3 DUP10 ADD PUSH2 0x122A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x12D6 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x12E7 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1308 JUMPI PUSH2 0x1307 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1314 DUP9 DUP3 DUP10 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x132C DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1345 PUSH0 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1363 JUMPI PUSH2 0x1362 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1370 DUP8 DUP3 DUP9 ADD PUSH2 0x122A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1391 JUMPI PUSH2 0x1390 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x139D DUP8 DUP3 DUP9 ADD PUSH2 0x124A JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x13B0 DUP8 DUP3 DUP9 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D2 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13E0 DUP7 DUP3 DUP8 ADD PUSH2 0x122A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x140D DUP7 DUP3 DUP8 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x142E JUMPI PUSH2 0x142D PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144A PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1466 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1487 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1495 DUP10 DUP3 DUP11 ADD PUSH2 0x122A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x14A6 DUP10 DUP3 DUP11 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP10 DUP3 DUP11 ADD PUSH2 0x124A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH2 0x14F5 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1502 DUP10 DUP3 DUP11 ADD PUSH2 0x1419 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1555 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1568 JUMPI PUSH2 0x1567 PUSH2 0x1511 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1584 DUP3 PUSH2 0x156E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1595 DUP3 PUSH2 0x157A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15AD PUSH2 0x15A8 DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x158B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D6 DUP4 DUP6 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x15E3 DUP4 DUP6 DUP5 PUSH2 0x15BD JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15FA DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x160A DUP3 DUP7 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x161B DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x164B PUSH0 DUP4 ADD DUP5 PUSH2 0x1629 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165A DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP2 EQ PUSH2 0x1664 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1675 DUP2 PUSH2 0x1651 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1690 JUMPI PUSH2 0x168F PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169D DUP5 DUP3 DUP6 ADD PUSH2 0x1667 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16AF DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C8 PUSH0 DUP4 ADD DUP5 PUSH2 0x16A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F0 PUSH0 DUP4 ADD DUP6 PUSH2 0x16CE JUMP JUMPDEST PUSH2 0x16FD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1710 DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 DUP3 PUSH2 0x171C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x174A PUSH2 0x1745 DUP3 PUSH2 0xF1D JUMP JUMPDEST PUSH2 0x1728 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x175B DUP3 DUP9 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x176B DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x177C DUP3 DUP6 DUP8 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP PUSH2 0x1788 DUP3 DUP5 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1824 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x17E9 JUMP JUMPDEST PUSH2 0x182E DUP7 DUP4 PUSH2 0x17E9 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1869 PUSH2 0x1864 PUSH2 0x185F DUP5 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x1846 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1882 DUP4 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x1896 PUSH2 0x188E DUP3 PUSH2 0x1870 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x17F5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x18AA PUSH2 0x189E JUMP JUMPDEST PUSH2 0x18B5 DUP2 DUP5 DUP5 PUSH2 0x1879 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18D8 JUMPI PUSH2 0x18CD PUSH0 DUP3 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x18BB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x18EE DUP2 PUSH2 0x17C8 JUMP JUMPDEST PUSH2 0x18F7 DUP5 PUSH2 0x17DA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1906 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x191A PUSH2 0x1912 DUP6 PUSH2 0x17DA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x18BA JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x193D PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1922 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1955 DUP4 DUP4 PUSH2 0x192E JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x196E DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1987 JUMPI PUSH2 0x1986 PUSH2 0x179B JUMP JUMPDEST JUMPDEST PUSH2 0x1991 DUP3 SLOAD PUSH2 0x153E JUMP JUMPDEST PUSH2 0x199C DUP3 DUP3 DUP6 PUSH2 0x18DC JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19CD JUMPI PUSH0 DUP5 ISZERO PUSH2 0x19BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x19C5 DUP6 DUP3 PUSH2 0x194A JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1A2C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x19DB DUP7 PUSH2 0x17C8 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A02 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19DD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1A1F JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1A1B PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x192E JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A47 PUSH0 DUP4 ADD DUP6 PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x1A54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A70 DUP3 PUSH2 0xE6C JUMP JUMPDEST PUSH2 0x1A5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A86 DUP3 DUP6 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x1A96 DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ACA DUP3 PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0x1AD4 DUP2 DUP6 PUSH2 0x1AB0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1AE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x1AED DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B10 DUP2 DUP5 PUSH2 0x1AC0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 0xC7 DUP11 DUP15 0xD7 JUMP 0xBE 0xB5 SWAP12 EXTCODEHASH 0xEF 0x2F PUSH13 0xD360BD680F54539972D7BBBF26 DUP2 EXTCODEHASH 0xBF PUSH27 0xB89E64736F6C634300081A00330000000000000000000000000000 ","sourceMap":"682:7550:29:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_getIdentifier_12708":{"entryPoint":3100,"id":12708,"parameterSlots":2,"returnSlots":1},"@cloneAndInitialize_18428":{"entryPoint":3150,"id":18428,"parameterSlots":3,"returnSlots":1},"@cloneDeterministic_9282":{"entryPoint":3303,"id":9282,"parameterSlots":2,"returnSlots":1},"@cloneDeterministic_9296":{"entryPoint":3323,"id":9296,"parameterSlots":3,"returnSlots":1},"@deployClone_12563":{"entryPoint":2132,"id":12563,"parameterSlots":6,"returnSlots":1},"@getBaseImplementation_12593":{"entryPoint":1284,"id":12593,"parameterSlots":1,"returnSlots":1},"@getCloneIdentifier_12666":{"entryPoint":1452,"id":12666,"parameterSlots":5,"returnSlots":1},"@getClone_12624":{"entryPoint":607,"id":12624,"parameterSlots":1,"returnSlots":1},"@getClones_12638":{"entryPoint":1137,"id":12638,"parameterSlots":1,"returnSlots":1},"@getIdentifier_12688":{"entryPoint":2072,"id":12688,"parameterSlots":3,"returnSlots":1},"@register_12470":{"entryPoint":1518,"id":12470,"parameterSlots":4,"returnSlots":0},"@supportsInterface_2830":{"entryPoint":502,"id":2830,"parameterSlots":1,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":5735,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3723,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3578,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":5145,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_enum$_RegistryType_$12323":{"entryPoint":4650,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_calldata_ptr":{"entryPoint":4682,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":4337,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":5755,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":3743,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3598,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_enum$_RegistryType_$12323t_addresst_addresst_string_calldata_ptr":{"entryPoint":4767,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_enum$_RegistryType_$12323t_addresst_string_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":5230,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_enum$_RegistryType_$12323t_string_calldata_ptr":{"entryPoint":5052,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_enum$_RegistryType_$12323t_string_calldata_ptrt_address":{"entryPoint":4939,"id":null,"parameterSlots":2,"returnSlots":4},"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32":{"entryPoint":4436,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":4040,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5798,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":5532,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":4471,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3652,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32":{"entryPoint":4421,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":4899,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack":{"entryPoint":6756,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":5673,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6848,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Cloneable_$18509_to_t_address":{"entryPoint":4008,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_Cloneable_$18509_to_t_address_fromStack":{"entryPoint":4595,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8":{"entryPoint":3886,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_fromStack":{"entryPoint":5838,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_nonPadded_inplace_fromStack":{"entryPoint":5945,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5579,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr":{"entryPoint":4111,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_Clone_$12335_memory_ptr_to_t_struct$_Clone_$12335_memory_ptr_fromStack":{"entryPoint":4167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5615,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_packed_t_enum$_RegistryType_$12323_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed":{"entryPoint":5968,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_packed_t_enum$_RegistryType_$12323_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed":{"entryPoint":6779,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5892,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5813,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_contract$_Cloneable_$18509__to_t_address_t_address__fromStack_reversed":{"entryPoint":6708,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":4563,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":4914,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":5688,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6904,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Cloneable_$18509__to_t_address__fromStack_reversed":{"entryPoint":4610,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_RegistryType_$12323_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed":{"entryPoint":5853,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_Clone_$12335_memory_ptr__to_t_struct$_Clone_$12335_memory_ptr__fromStack_reversed":{"entryPoint":4263,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4406,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":6088,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4380,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":6822,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":4055,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":4459,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":4390,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":6832,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr":{"entryPoint":4065,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5555,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":6364,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":4023,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3641,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":3692,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3513,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_RegistryType_$12323":{"entryPoint":3851,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3901,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6214,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":6330,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_Cloneable_$18509_to_t_address":{"entryPoint":3991,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_RegistryType_$12323_to_t_uint8":{"entryPoint":3869,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":3974,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":3941,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":6223,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":6501,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5565,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4081,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":6106,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":5438,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":6474,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":3932,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":5515,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_bytes32":{"entryPoint":6747,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":5498,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint8":{"entryPoint":5928,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":6446,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x21":{"entryPoint":3786,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":5393,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6043,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":6256,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":4674,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4670,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":4678,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3509,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3505,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4095,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_248":{"entryPoint":5916,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":5486,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":6121,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":6434,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":6306,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":6133,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":6265,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_RegistryType_$12323":{"entryPoint":3831,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4295,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":5713,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3701,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3556,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_RegistryType_$12323":{"entryPoint":4635,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":6302,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:27467:64","nodeType":"YulBlock","src":"0:27467:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:32:64","nodeType":"YulBlock","src":"1563:32:64","statements":[{"nativeSrc":"1573:16:64","nodeType":"YulAssignment","src":"1573:16:64","value":{"name":"value","nativeSrc":"1584:5:64","nodeType":"YulIdentifier","src":"1584:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"1518:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:77:64"},{"body":{"nativeSrc":"1644:79:64","nodeType":"YulBlock","src":"1644:79:64","statements":[{"body":{"nativeSrc":"1701:16:64","nodeType":"YulBlock","src":"1701:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1710:1:64","nodeType":"YulLiteral","src":"1710:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1713:1:64","nodeType":"YulLiteral","src":"1713:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1703:6:64","nodeType":"YulIdentifier","src":"1703:6:64"},"nativeSrc":"1703:12:64","nodeType":"YulFunctionCall","src":"1703:12:64"},"nativeSrc":"1703:12:64","nodeType":"YulExpressionStatement","src":"1703:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1667:5:64","nodeType":"YulIdentifier","src":"1667:5:64"},{"arguments":[{"name":"value","nativeSrc":"1692:5:64","nodeType":"YulIdentifier","src":"1692:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"1674:17:64","nodeType":"YulIdentifier","src":"1674:17:64"},"nativeSrc":"1674:24:64","nodeType":"YulFunctionCall","src":"1674:24:64"}],"functionName":{"name":"eq","nativeSrc":"1664:2:64","nodeType":"YulIdentifier","src":"1664:2:64"},"nativeSrc":"1664:35:64","nodeType":"YulFunctionCall","src":"1664:35:64"}],"functionName":{"name":"iszero","nativeSrc":"1657:6:64","nodeType":"YulIdentifier","src":"1657:6:64"},"nativeSrc":"1657:43:64","nodeType":"YulFunctionCall","src":"1657:43:64"},"nativeSrc":"1654:63:64","nodeType":"YulIf","src":"1654:63:64"}]},"name":"validator_revert_t_bytes32","nativeSrc":"1601:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1637:5:64","nodeType":"YulTypedName","src":"1637:5:64","type":""}],"src":"1601:122:64"},{"body":{"nativeSrc":"1781:87:64","nodeType":"YulBlock","src":"1781:87:64","statements":[{"nativeSrc":"1791:29:64","nodeType":"YulAssignment","src":"1791:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"1813:6:64","nodeType":"YulIdentifier","src":"1813:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"1800:12:64","nodeType":"YulIdentifier","src":"1800:12:64"},"nativeSrc":"1800:20:64","nodeType":"YulFunctionCall","src":"1800:20:64"},"variableNames":[{"name":"value","nativeSrc":"1791:5:64","nodeType":"YulIdentifier","src":"1791:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1856:5:64","nodeType":"YulIdentifier","src":"1856:5:64"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"1829:26:64","nodeType":"YulIdentifier","src":"1829:26:64"},"nativeSrc":"1829:33:64","nodeType":"YulFunctionCall","src":"1829:33:64"},"nativeSrc":"1829:33:64","nodeType":"YulExpressionStatement","src":"1829:33:64"}]},"name":"abi_decode_t_bytes32","nativeSrc":"1729:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1759:6:64","nodeType":"YulTypedName","src":"1759:6:64","type":""},{"name":"end","nativeSrc":"1767:3:64","nodeType":"YulTypedName","src":"1767:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1775:5:64","nodeType":"YulTypedName","src":"1775:5:64","type":""}],"src":"1729:139:64"},{"body":{"nativeSrc":"1940:263:64","nodeType":"YulBlock","src":"1940:263:64","statements":[{"body":{"nativeSrc":"1986:83:64","nodeType":"YulBlock","src":"1986:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1988:77:64","nodeType":"YulIdentifier","src":"1988:77:64"},"nativeSrc":"1988:79:64","nodeType":"YulFunctionCall","src":"1988:79:64"},"nativeSrc":"1988:79:64","nodeType":"YulExpressionStatement","src":"1988:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1961:7:64","nodeType":"YulIdentifier","src":"1961:7:64"},{"name":"headStart","nativeSrc":"1970:9:64","nodeType":"YulIdentifier","src":"1970:9:64"}],"functionName":{"name":"sub","nativeSrc":"1957:3:64","nodeType":"YulIdentifier","src":"1957:3:64"},"nativeSrc":"1957:23:64","nodeType":"YulFunctionCall","src":"1957:23:64"},{"kind":"number","nativeSrc":"1982:2:64","nodeType":"YulLiteral","src":"1982:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1953:3:64","nodeType":"YulIdentifier","src":"1953:3:64"},"nativeSrc":"1953:32:64","nodeType":"YulFunctionCall","src":"1953:32:64"},"nativeSrc":"1950:119:64","nodeType":"YulIf","src":"1950:119:64"},{"nativeSrc":"2079:117:64","nodeType":"YulBlock","src":"2079:117:64","statements":[{"nativeSrc":"2094:15:64","nodeType":"YulVariableDeclaration","src":"2094:15:64","value":{"kind":"number","nativeSrc":"2108:1:64","nodeType":"YulLiteral","src":"2108:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2098:6:64","nodeType":"YulTypedName","src":"2098:6:64","type":""}]},{"nativeSrc":"2123:63:64","nodeType":"YulAssignment","src":"2123:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2158:9:64","nodeType":"YulIdentifier","src":"2158:9:64"},{"name":"offset","nativeSrc":"2169:6:64","nodeType":"YulIdentifier","src":"2169:6:64"}],"functionName":{"name":"add","nativeSrc":"2154:3:64","nodeType":"YulIdentifier","src":"2154:3:64"},"nativeSrc":"2154:22:64","nodeType":"YulFunctionCall","src":"2154:22:64"},{"name":"dataEnd","nativeSrc":"2178:7:64","nodeType":"YulIdentifier","src":"2178:7:64"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"2133:20:64","nodeType":"YulIdentifier","src":"2133:20:64"},"nativeSrc":"2133:53:64","nodeType":"YulFunctionCall","src":"2133:53:64"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:64","nodeType":"YulIdentifier","src":"2123:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"1874:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1910:9:64","nodeType":"YulTypedName","src":"1910:9:64","type":""},{"name":"dataEnd","nativeSrc":"1921:7:64","nodeType":"YulTypedName","src":"1921:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1933:6:64","nodeType":"YulTypedName","src":"1933:6:64","type":""}],"src":"1874:329:64"},{"body":{"nativeSrc":"2237:152:64","nodeType":"YulBlock","src":"2237:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2254:1:64","nodeType":"YulLiteral","src":"2254:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2257:77:64","nodeType":"YulLiteral","src":"2257:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"2247:6:64","nodeType":"YulIdentifier","src":"2247:6:64"},"nativeSrc":"2247:88:64","nodeType":"YulFunctionCall","src":"2247:88:64"},"nativeSrc":"2247:88:64","nodeType":"YulExpressionStatement","src":"2247:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2351:1:64","nodeType":"YulLiteral","src":"2351:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"2354:4:64","nodeType":"YulLiteral","src":"2354:4:64","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"2344:6:64","nodeType":"YulIdentifier","src":"2344:6:64"},"nativeSrc":"2344:15:64","nodeType":"YulFunctionCall","src":"2344:15:64"},"nativeSrc":"2344:15:64","nodeType":"YulExpressionStatement","src":"2344:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2375:1:64","nodeType":"YulLiteral","src":"2375:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2378:4:64","nodeType":"YulLiteral","src":"2378:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"2368:6:64","nodeType":"YulIdentifier","src":"2368:6:64"},"nativeSrc":"2368:15:64","nodeType":"YulFunctionCall","src":"2368:15:64"},"nativeSrc":"2368:15:64","nodeType":"YulExpressionStatement","src":"2368:15:64"}]},"name":"panic_error_0x21","nativeSrc":"2209:180:64","nodeType":"YulFunctionDefinition","src":"2209:180:64"},{"body":{"nativeSrc":"2456:62:64","nodeType":"YulBlock","src":"2456:62:64","statements":[{"body":{"nativeSrc":"2490:22:64","nodeType":"YulBlock","src":"2490:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"2492:16:64","nodeType":"YulIdentifier","src":"2492:16:64"},"nativeSrc":"2492:18:64","nodeType":"YulFunctionCall","src":"2492:18:64"},"nativeSrc":"2492:18:64","nodeType":"YulExpressionStatement","src":"2492:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2479:5:64","nodeType":"YulIdentifier","src":"2479:5:64"},{"kind":"number","nativeSrc":"2486:1:64","nodeType":"YulLiteral","src":"2486:1:64","type":"","value":"5"}],"functionName":{"name":"lt","nativeSrc":"2476:2:64","nodeType":"YulIdentifier","src":"2476:2:64"},"nativeSrc":"2476:12:64","nodeType":"YulFunctionCall","src":"2476:12:64"}],"functionName":{"name":"iszero","nativeSrc":"2469:6:64","nodeType":"YulIdentifier","src":"2469:6:64"},"nativeSrc":"2469:20:64","nodeType":"YulFunctionCall","src":"2469:20:64"},"nativeSrc":"2466:46:64","nodeType":"YulIf","src":"2466:46:64"}]},"name":"validator_assert_t_enum$_RegistryType_$12323","nativeSrc":"2395:123:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2449:5:64","nodeType":"YulTypedName","src":"2449:5:64","type":""}],"src":"2395:123:64"},{"body":{"nativeSrc":"2587:84:64","nodeType":"YulBlock","src":"2587:84:64","statements":[{"nativeSrc":"2597:16:64","nodeType":"YulAssignment","src":"2597:16:64","value":{"name":"value","nativeSrc":"2608:5:64","nodeType":"YulIdentifier","src":"2608:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2597:7:64","nodeType":"YulIdentifier","src":"2597:7:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2659:5:64","nodeType":"YulIdentifier","src":"2659:5:64"}],"functionName":{"name":"validator_assert_t_enum$_RegistryType_$12323","nativeSrc":"2614:44:64","nodeType":"YulIdentifier","src":"2614:44:64"},"nativeSrc":"2614:51:64","nodeType":"YulFunctionCall","src":"2614:51:64"},"nativeSrc":"2614:51:64","nodeType":"YulExpressionStatement","src":"2614:51:64"}]},"name":"cleanup_t_enum$_RegistryType_$12323","nativeSrc":"2524:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2569:5:64","nodeType":"YulTypedName","src":"2569:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2579:7:64","nodeType":"YulTypedName","src":"2579:7:64","type":""}],"src":"2524:147:64"},{"body":{"nativeSrc":"2753:71:64","nodeType":"YulBlock","src":"2753:71:64","statements":[{"nativeSrc":"2763:55:64","nodeType":"YulAssignment","src":"2763:55:64","value":{"arguments":[{"name":"value","nativeSrc":"2812:5:64","nodeType":"YulIdentifier","src":"2812:5:64"}],"functionName":{"name":"cleanup_t_enum$_RegistryType_$12323","nativeSrc":"2776:35:64","nodeType":"YulIdentifier","src":"2776:35:64"},"nativeSrc":"2776:42:64","nodeType":"YulFunctionCall","src":"2776:42:64"},"variableNames":[{"name":"converted","nativeSrc":"2763:9:64","nodeType":"YulIdentifier","src":"2763:9:64"}]}]},"name":"convert_t_enum$_RegistryType_$12323_to_t_uint8","nativeSrc":"2677:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2733:5:64","nodeType":"YulTypedName","src":"2733:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2743:9:64","nodeType":"YulTypedName","src":"2743:9:64","type":""}],"src":"2677:147:64"},{"body":{"nativeSrc":"2901:82:64","nodeType":"YulBlock","src":"2901:82:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2918:3:64","nodeType":"YulIdentifier","src":"2918:3:64"},{"arguments":[{"name":"value","nativeSrc":"2970:5:64","nodeType":"YulIdentifier","src":"2970:5:64"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12323_to_t_uint8","nativeSrc":"2923:46:64","nodeType":"YulIdentifier","src":"2923:46:64"},"nativeSrc":"2923:53:64","nodeType":"YulFunctionCall","src":"2923:53:64"}],"functionName":{"name":"mstore","nativeSrc":"2911:6:64","nodeType":"YulIdentifier","src":"2911:6:64"},"nativeSrc":"2911:66:64","nodeType":"YulFunctionCall","src":"2911:66:64"},"nativeSrc":"2911:66:64","nodeType":"YulExpressionStatement","src":"2911:66:64"}]},"name":"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8","nativeSrc":"2830:153:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2889:5:64","nodeType":"YulTypedName","src":"2889:5:64","type":""},{"name":"pos","nativeSrc":"2896:3:64","nodeType":"YulTypedName","src":"2896:3:64","type":""}],"src":"2830:153:64"},{"body":{"nativeSrc":"3034:81:64","nodeType":"YulBlock","src":"3034:81:64","statements":[{"nativeSrc":"3044:65:64","nodeType":"YulAssignment","src":"3044:65:64","value":{"arguments":[{"name":"value","nativeSrc":"3059:5:64","nodeType":"YulIdentifier","src":"3059:5:64"},{"kind":"number","nativeSrc":"3066:42:64","nodeType":"YulLiteral","src":"3066:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3055:3:64","nodeType":"YulIdentifier","src":"3055:3:64"},"nativeSrc":"3055:54:64","nodeType":"YulFunctionCall","src":"3055:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"3044:7:64","nodeType":"YulIdentifier","src":"3044:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2989:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3016:5:64","nodeType":"YulTypedName","src":"3016:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3026:7:64","nodeType":"YulTypedName","src":"3026:7:64","type":""}],"src":"2989:126:64"},{"body":{"nativeSrc":"3153:28:64","nodeType":"YulBlock","src":"3153:28:64","statements":[{"nativeSrc":"3163:12:64","nodeType":"YulAssignment","src":"3163:12:64","value":{"name":"value","nativeSrc":"3170:5:64","nodeType":"YulIdentifier","src":"3170:5:64"},"variableNames":[{"name":"ret","nativeSrc":"3163:3:64","nodeType":"YulIdentifier","src":"3163:3:64"}]}]},"name":"identity","nativeSrc":"3121:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3139:5:64","nodeType":"YulTypedName","src":"3139:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"3149:3:64","nodeType":"YulTypedName","src":"3149:3:64","type":""}],"src":"3121:60:64"},{"body":{"nativeSrc":"3247:82:64","nodeType":"YulBlock","src":"3247:82:64","statements":[{"nativeSrc":"3257:66:64","nodeType":"YulAssignment","src":"3257:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3315:5:64","nodeType":"YulIdentifier","src":"3315:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3297:17:64","nodeType":"YulIdentifier","src":"3297:17:64"},"nativeSrc":"3297:24:64","nodeType":"YulFunctionCall","src":"3297:24:64"}],"functionName":{"name":"identity","nativeSrc":"3288:8:64","nodeType":"YulIdentifier","src":"3288:8:64"},"nativeSrc":"3288:34:64","nodeType":"YulFunctionCall","src":"3288:34:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3270:17:64","nodeType":"YulIdentifier","src":"3270:17:64"},"nativeSrc":"3270:53:64","nodeType":"YulFunctionCall","src":"3270:53:64"},"variableNames":[{"name":"converted","nativeSrc":"3257:9:64","nodeType":"YulIdentifier","src":"3257:9:64"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3187:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3227:5:64","nodeType":"YulTypedName","src":"3227:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3237:9:64","nodeType":"YulTypedName","src":"3237:9:64","type":""}],"src":"3187:142:64"},{"body":{"nativeSrc":"3395:66:64","nodeType":"YulBlock","src":"3395:66:64","statements":[{"nativeSrc":"3405:50:64","nodeType":"YulAssignment","src":"3405:50:64","value":{"arguments":[{"name":"value","nativeSrc":"3449:5:64","nodeType":"YulIdentifier","src":"3449:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"3418:30:64","nodeType":"YulIdentifier","src":"3418:30:64"},"nativeSrc":"3418:37:64","nodeType":"YulFunctionCall","src":"3418:37:64"},"variableNames":[{"name":"converted","nativeSrc":"3405:9:64","nodeType":"YulIdentifier","src":"3405:9:64"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"3335:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3375:5:64","nodeType":"YulTypedName","src":"3375:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3385:9:64","nodeType":"YulTypedName","src":"3385:9:64","type":""}],"src":"3335:126:64"},{"body":{"nativeSrc":"3546:66:64","nodeType":"YulBlock","src":"3546:66:64","statements":[{"nativeSrc":"3556:50:64","nodeType":"YulAssignment","src":"3556:50:64","value":{"arguments":[{"name":"value","nativeSrc":"3600:5:64","nodeType":"YulIdentifier","src":"3600:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"3569:30:64","nodeType":"YulIdentifier","src":"3569:30:64"},"nativeSrc":"3569:37:64","nodeType":"YulFunctionCall","src":"3569:37:64"},"variableNames":[{"name":"converted","nativeSrc":"3556:9:64","nodeType":"YulIdentifier","src":"3556:9:64"}]}]},"name":"convert_t_contract$_Cloneable_$18509_to_t_address","nativeSrc":"3467:145:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3526:5:64","nodeType":"YulTypedName","src":"3526:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"3536:9:64","nodeType":"YulTypedName","src":"3536:9:64","type":""}],"src":"3467:145:64"},{"body":{"nativeSrc":"3692:85:64","nodeType":"YulBlock","src":"3692:85:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3709:3:64","nodeType":"YulIdentifier","src":"3709:3:64"},{"arguments":[{"name":"value","nativeSrc":"3764:5:64","nodeType":"YulIdentifier","src":"3764:5:64"}],"functionName":{"name":"convert_t_contract$_Cloneable_$18509_to_t_address","nativeSrc":"3714:49:64","nodeType":"YulIdentifier","src":"3714:49:64"},"nativeSrc":"3714:56:64","nodeType":"YulFunctionCall","src":"3714:56:64"}],"functionName":{"name":"mstore","nativeSrc":"3702:6:64","nodeType":"YulIdentifier","src":"3702:6:64"},"nativeSrc":"3702:69:64","nodeType":"YulFunctionCall","src":"3702:69:64"},"nativeSrc":"3702:69:64","nodeType":"YulExpressionStatement","src":"3702:69:64"}]},"name":"abi_encode_t_contract$_Cloneable_$18509_to_t_address","nativeSrc":"3618:159:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3680:5:64","nodeType":"YulTypedName","src":"3680:5:64","type":""},{"name":"pos","nativeSrc":"3687:3:64","nodeType":"YulTypedName","src":"3687:3:64","type":""}],"src":"3618:159:64"},{"body":{"nativeSrc":"3828:51:64","nodeType":"YulBlock","src":"3828:51:64","statements":[{"nativeSrc":"3838:35:64","nodeType":"YulAssignment","src":"3838:35:64","value":{"arguments":[{"name":"value","nativeSrc":"3867:5:64","nodeType":"YulIdentifier","src":"3867:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3849:17:64","nodeType":"YulIdentifier","src":"3849:17:64"},"nativeSrc":"3849:24:64","nodeType":"YulFunctionCall","src":"3849:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"3838:7:64","nodeType":"YulIdentifier","src":"3838:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"3783:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3810:5:64","nodeType":"YulTypedName","src":"3810:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3820:7:64","nodeType":"YulTypedName","src":"3820:7:64","type":""}],"src":"3783:96:64"},{"body":{"nativeSrc":"3940:53:64","nodeType":"YulBlock","src":"3940:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3957:3:64","nodeType":"YulIdentifier","src":"3957:3:64"},{"arguments":[{"name":"value","nativeSrc":"3980:5:64","nodeType":"YulIdentifier","src":"3980:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3962:17:64","nodeType":"YulIdentifier","src":"3962:17:64"},"nativeSrc":"3962:24:64","nodeType":"YulFunctionCall","src":"3962:24:64"}],"functionName":{"name":"mstore","nativeSrc":"3950:6:64","nodeType":"YulIdentifier","src":"3950:6:64"},"nativeSrc":"3950:37:64","nodeType":"YulFunctionCall","src":"3950:37:64"},"nativeSrc":"3950:37:64","nodeType":"YulExpressionStatement","src":"3950:37:64"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"3885:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3928:5:64","nodeType":"YulTypedName","src":"3928:5:64","type":""},{"name":"pos","nativeSrc":"3935:3:64","nodeType":"YulTypedName","src":"3935:3:64","type":""}],"src":"3885:108:64"},{"body":{"nativeSrc":"4058:40:64","nodeType":"YulBlock","src":"4058:40:64","statements":[{"nativeSrc":"4069:22:64","nodeType":"YulAssignment","src":"4069:22:64","value":{"arguments":[{"name":"value","nativeSrc":"4085:5:64","nodeType":"YulIdentifier","src":"4085:5:64"}],"functionName":{"name":"mload","nativeSrc":"4079:5:64","nodeType":"YulIdentifier","src":"4079:5:64"},"nativeSrc":"4079:12:64","nodeType":"YulFunctionCall","src":"4079:12:64"},"variableNames":[{"name":"length","nativeSrc":"4069:6:64","nodeType":"YulIdentifier","src":"4069:6:64"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3999:99:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4041:5:64","nodeType":"YulTypedName","src":"4041:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4051:6:64","nodeType":"YulTypedName","src":"4051:6:64","type":""}],"src":"3999:99:64"},{"body":{"nativeSrc":"4190:73:64","nodeType":"YulBlock","src":"4190:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4207:3:64","nodeType":"YulIdentifier","src":"4207:3:64"},{"name":"length","nativeSrc":"4212:6:64","nodeType":"YulIdentifier","src":"4212:6:64"}],"functionName":{"name":"mstore","nativeSrc":"4200:6:64","nodeType":"YulIdentifier","src":"4200:6:64"},"nativeSrc":"4200:19:64","nodeType":"YulFunctionCall","src":"4200:19:64"},"nativeSrc":"4200:19:64","nodeType":"YulExpressionStatement","src":"4200:19:64"},{"nativeSrc":"4228:29:64","nodeType":"YulAssignment","src":"4228:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"4247:3:64","nodeType":"YulIdentifier","src":"4247:3:64"},{"kind":"number","nativeSrc":"4252:4:64","nodeType":"YulLiteral","src":"4252:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4243:3:64","nodeType":"YulIdentifier","src":"4243:3:64"},"nativeSrc":"4243:14:64","nodeType":"YulFunctionCall","src":"4243:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"4228:11:64","nodeType":"YulIdentifier","src":"4228:11:64"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"4104:159:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4162:3:64","nodeType":"YulTypedName","src":"4162:3:64","type":""},{"name":"length","nativeSrc":"4167:6:64","nodeType":"YulTypedName","src":"4167:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4178:11:64","nodeType":"YulTypedName","src":"4178:11:64","type":""}],"src":"4104:159:64"},{"body":{"nativeSrc":"4331:77:64","nodeType":"YulBlock","src":"4331:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4348:3:64","nodeType":"YulIdentifier","src":"4348:3:64"},{"name":"src","nativeSrc":"4353:3:64","nodeType":"YulIdentifier","src":"4353:3:64"},{"name":"length","nativeSrc":"4358:6:64","nodeType":"YulIdentifier","src":"4358:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"4342:5:64","nodeType":"YulIdentifier","src":"4342:5:64"},"nativeSrc":"4342:23:64","nodeType":"YulFunctionCall","src":"4342:23:64"},"nativeSrc":"4342:23:64","nodeType":"YulExpressionStatement","src":"4342:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4385:3:64","nodeType":"YulIdentifier","src":"4385:3:64"},{"name":"length","nativeSrc":"4390:6:64","nodeType":"YulIdentifier","src":"4390:6:64"}],"functionName":{"name":"add","nativeSrc":"4381:3:64","nodeType":"YulIdentifier","src":"4381:3:64"},"nativeSrc":"4381:16:64","nodeType":"YulFunctionCall","src":"4381:16:64"},{"kind":"number","nativeSrc":"4399:1:64","nodeType":"YulLiteral","src":"4399:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4374:6:64","nodeType":"YulIdentifier","src":"4374:6:64"},"nativeSrc":"4374:27:64","nodeType":"YulFunctionCall","src":"4374:27:64"},"nativeSrc":"4374:27:64","nodeType":"YulExpressionStatement","src":"4374:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4269:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4313:3:64","nodeType":"YulTypedName","src":"4313:3:64","type":""},{"name":"dst","nativeSrc":"4318:3:64","nodeType":"YulTypedName","src":"4318:3:64","type":""},{"name":"length","nativeSrc":"4323:6:64","nodeType":"YulTypedName","src":"4323:6:64","type":""}],"src":"4269:139:64"},{"body":{"nativeSrc":"4462:54:64","nodeType":"YulBlock","src":"4462:54:64","statements":[{"nativeSrc":"4472:38:64","nodeType":"YulAssignment","src":"4472:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4490:5:64","nodeType":"YulIdentifier","src":"4490:5:64"},{"kind":"number","nativeSrc":"4497:2:64","nodeType":"YulLiteral","src":"4497:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4486:3:64","nodeType":"YulIdentifier","src":"4486:3:64"},"nativeSrc":"4486:14:64","nodeType":"YulFunctionCall","src":"4486:14:64"},{"arguments":[{"kind":"number","nativeSrc":"4506:2:64","nodeType":"YulLiteral","src":"4506:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4502:3:64","nodeType":"YulIdentifier","src":"4502:3:64"},"nativeSrc":"4502:7:64","nodeType":"YulFunctionCall","src":"4502:7:64"}],"functionName":{"name":"and","nativeSrc":"4482:3:64","nodeType":"YulIdentifier","src":"4482:3:64"},"nativeSrc":"4482:28:64","nodeType":"YulFunctionCall","src":"4482:28:64"},"variableNames":[{"name":"result","nativeSrc":"4472:6:64","nodeType":"YulIdentifier","src":"4472:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4414:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4445:5:64","nodeType":"YulTypedName","src":"4445:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4455:6:64","nodeType":"YulTypedName","src":"4455:6:64","type":""}],"src":"4414:102:64"},{"body":{"nativeSrc":"4604:275:64","nodeType":"YulBlock","src":"4604:275:64","statements":[{"nativeSrc":"4614:53:64","nodeType":"YulVariableDeclaration","src":"4614:53:64","value":{"arguments":[{"name":"value","nativeSrc":"4661:5:64","nodeType":"YulIdentifier","src":"4661:5:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"4628:32:64","nodeType":"YulIdentifier","src":"4628:32:64"},"nativeSrc":"4628:39:64","nodeType":"YulFunctionCall","src":"4628:39:64"},"variables":[{"name":"length","nativeSrc":"4618:6:64","nodeType":"YulTypedName","src":"4618:6:64","type":""}]},{"nativeSrc":"4676:68:64","nodeType":"YulAssignment","src":"4676:68:64","value":{"arguments":[{"name":"pos","nativeSrc":"4732:3:64","nodeType":"YulIdentifier","src":"4732:3:64"},{"name":"length","nativeSrc":"4737:6:64","nodeType":"YulIdentifier","src":"4737:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"4683:48:64","nodeType":"YulIdentifier","src":"4683:48:64"},"nativeSrc":"4683:61:64","nodeType":"YulFunctionCall","src":"4683:61:64"},"variableNames":[{"name":"pos","nativeSrc":"4676:3:64","nodeType":"YulIdentifier","src":"4676:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4792:5:64","nodeType":"YulIdentifier","src":"4792:5:64"},{"kind":"number","nativeSrc":"4799:4:64","nodeType":"YulLiteral","src":"4799:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4788:3:64","nodeType":"YulIdentifier","src":"4788:3:64"},"nativeSrc":"4788:16:64","nodeType":"YulFunctionCall","src":"4788:16:64"},{"name":"pos","nativeSrc":"4806:3:64","nodeType":"YulIdentifier","src":"4806:3:64"},{"name":"length","nativeSrc":"4811:6:64","nodeType":"YulIdentifier","src":"4811:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4753:34:64","nodeType":"YulIdentifier","src":"4753:34:64"},"nativeSrc":"4753:65:64","nodeType":"YulFunctionCall","src":"4753:65:64"},"nativeSrc":"4753:65:64","nodeType":"YulExpressionStatement","src":"4753:65:64"},{"nativeSrc":"4827:46:64","nodeType":"YulAssignment","src":"4827:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"4838:3:64","nodeType":"YulIdentifier","src":"4838:3:64"},{"arguments":[{"name":"length","nativeSrc":"4865:6:64","nodeType":"YulIdentifier","src":"4865:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4843:21:64","nodeType":"YulIdentifier","src":"4843:21:64"},"nativeSrc":"4843:29:64","nodeType":"YulFunctionCall","src":"4843:29:64"}],"functionName":{"name":"add","nativeSrc":"4834:3:64","nodeType":"YulIdentifier","src":"4834:3:64"},"nativeSrc":"4834:39:64","nodeType":"YulFunctionCall","src":"4834:39:64"},"variableNames":[{"name":"end","nativeSrc":"4827:3:64","nodeType":"YulIdentifier","src":"4827:3:64"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"4522:357:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4585:5:64","nodeType":"YulTypedName","src":"4585:5:64","type":""},{"name":"pos","nativeSrc":"4592:3:64","nodeType":"YulTypedName","src":"4592:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4600:3:64","nodeType":"YulTypedName","src":"4600:3:64","type":""}],"src":"4522:357:64"},{"body":{"nativeSrc":"5071:877:64","nodeType":"YulBlock","src":"5071:877:64","statements":[{"nativeSrc":"5081:26:64","nodeType":"YulVariableDeclaration","src":"5081:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"5097:3:64","nodeType":"YulIdentifier","src":"5097:3:64"},{"kind":"number","nativeSrc":"5102:4:64","nodeType":"YulLiteral","src":"5102:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"5093:3:64","nodeType":"YulIdentifier","src":"5093:3:64"},"nativeSrc":"5093:14:64","nodeType":"YulFunctionCall","src":"5093:14:64"},"variables":[{"name":"tail","nativeSrc":"5085:4:64","nodeType":"YulTypedName","src":"5085:4:64","type":""}]},{"nativeSrc":"5117:184:64","nodeType":"YulBlock","src":"5117:184:64","statements":[{"nativeSrc":"5156:43:64","nodeType":"YulVariableDeclaration","src":"5156:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5186:5:64","nodeType":"YulIdentifier","src":"5186:5:64"},{"kind":"number","nativeSrc":"5193:4:64","nodeType":"YulLiteral","src":"5193:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5182:3:64","nodeType":"YulIdentifier","src":"5182:3:64"},"nativeSrc":"5182:16:64","nodeType":"YulFunctionCall","src":"5182:16:64"}],"functionName":{"name":"mload","nativeSrc":"5176:5:64","nodeType":"YulIdentifier","src":"5176:5:64"},"nativeSrc":"5176:23:64","nodeType":"YulFunctionCall","src":"5176:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"5160:12:64","nodeType":"YulTypedName","src":"5160:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5262:12:64","nodeType":"YulIdentifier","src":"5262:12:64"},{"arguments":[{"name":"pos","nativeSrc":"5280:3:64","nodeType":"YulIdentifier","src":"5280:3:64"},{"kind":"number","nativeSrc":"5285:4:64","nodeType":"YulLiteral","src":"5285:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"5276:3:64","nodeType":"YulIdentifier","src":"5276:3:64"},"nativeSrc":"5276:14:64","nodeType":"YulFunctionCall","src":"5276:14:64"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8","nativeSrc":"5212:49:64","nodeType":"YulIdentifier","src":"5212:49:64"},"nativeSrc":"5212:79:64","nodeType":"YulFunctionCall","src":"5212:79:64"},"nativeSrc":"5212:79:64","nodeType":"YulExpressionStatement","src":"5212:79:64"}]},{"nativeSrc":"5311:187:64","nodeType":"YulBlock","src":"5311:187:64","statements":[{"nativeSrc":"5350:43:64","nodeType":"YulVariableDeclaration","src":"5350:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5380:5:64","nodeType":"YulIdentifier","src":"5380:5:64"},{"kind":"number","nativeSrc":"5387:4:64","nodeType":"YulLiteral","src":"5387:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5376:3:64","nodeType":"YulIdentifier","src":"5376:3:64"},"nativeSrc":"5376:16:64","nodeType":"YulFunctionCall","src":"5376:16:64"}],"functionName":{"name":"mload","nativeSrc":"5370:5:64","nodeType":"YulIdentifier","src":"5370:5:64"},"nativeSrc":"5370:23:64","nodeType":"YulFunctionCall","src":"5370:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"5354:12:64","nodeType":"YulTypedName","src":"5354:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5459:12:64","nodeType":"YulIdentifier","src":"5459:12:64"},{"arguments":[{"name":"pos","nativeSrc":"5477:3:64","nodeType":"YulIdentifier","src":"5477:3:64"},{"kind":"number","nativeSrc":"5482:4:64","nodeType":"YulLiteral","src":"5482:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5473:3:64","nodeType":"YulIdentifier","src":"5473:3:64"},"nativeSrc":"5473:14:64","nodeType":"YulFunctionCall","src":"5473:14:64"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$18509_to_t_address","nativeSrc":"5406:52:64","nodeType":"YulIdentifier","src":"5406:52:64"},"nativeSrc":"5406:82:64","nodeType":"YulFunctionCall","src":"5406:82:64"},"nativeSrc":"5406:82:64","nodeType":"YulExpressionStatement","src":"5406:82:64"}]},{"nativeSrc":"5508:168:64","nodeType":"YulBlock","src":"5508:168:64","statements":[{"nativeSrc":"5547:43:64","nodeType":"YulVariableDeclaration","src":"5547:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5577:5:64","nodeType":"YulIdentifier","src":"5577:5:64"},{"kind":"number","nativeSrc":"5584:4:64","nodeType":"YulLiteral","src":"5584:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5573:3:64","nodeType":"YulIdentifier","src":"5573:3:64"},"nativeSrc":"5573:16:64","nodeType":"YulFunctionCall","src":"5573:16:64"}],"functionName":{"name":"mload","nativeSrc":"5567:5:64","nodeType":"YulIdentifier","src":"5567:5:64"},"nativeSrc":"5567:23:64","nodeType":"YulFunctionCall","src":"5567:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"5551:12:64","nodeType":"YulTypedName","src":"5551:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"5637:12:64","nodeType":"YulIdentifier","src":"5637:12:64"},{"arguments":[{"name":"pos","nativeSrc":"5655:3:64","nodeType":"YulIdentifier","src":"5655:3:64"},{"kind":"number","nativeSrc":"5660:4:64","nodeType":"YulLiteral","src":"5660:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5651:3:64","nodeType":"YulIdentifier","src":"5651:3:64"},"nativeSrc":"5651:14:64","nodeType":"YulFunctionCall","src":"5651:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"5603:33:64","nodeType":"YulIdentifier","src":"5603:33:64"},"nativeSrc":"5603:63:64","nodeType":"YulFunctionCall","src":"5603:63:64"},"nativeSrc":"5603:63:64","nodeType":"YulExpressionStatement","src":"5603:63:64"}]},{"nativeSrc":"5686:235:64","nodeType":"YulBlock","src":"5686:235:64","statements":[{"nativeSrc":"5721:43:64","nodeType":"YulVariableDeclaration","src":"5721:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5751:5:64","nodeType":"YulIdentifier","src":"5751:5:64"},{"kind":"number","nativeSrc":"5758:4:64","nodeType":"YulLiteral","src":"5758:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5747:3:64","nodeType":"YulIdentifier","src":"5747:3:64"},"nativeSrc":"5747:16:64","nodeType":"YulFunctionCall","src":"5747:16:64"}],"functionName":{"name":"mload","nativeSrc":"5741:5:64","nodeType":"YulIdentifier","src":"5741:5:64"},"nativeSrc":"5741:23:64","nodeType":"YulFunctionCall","src":"5741:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"5725:12:64","nodeType":"YulTypedName","src":"5725:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5789:3:64","nodeType":"YulIdentifier","src":"5789:3:64"},{"kind":"number","nativeSrc":"5794:4:64","nodeType":"YulLiteral","src":"5794:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"5785:3:64","nodeType":"YulIdentifier","src":"5785:3:64"},"nativeSrc":"5785:14:64","nodeType":"YulFunctionCall","src":"5785:14:64"},{"arguments":[{"name":"tail","nativeSrc":"5805:4:64","nodeType":"YulIdentifier","src":"5805:4:64"},{"name":"pos","nativeSrc":"5811:3:64","nodeType":"YulIdentifier","src":"5811:3:64"}],"functionName":{"name":"sub","nativeSrc":"5801:3:64","nodeType":"YulIdentifier","src":"5801:3:64"},"nativeSrc":"5801:14:64","nodeType":"YulFunctionCall","src":"5801:14:64"}],"functionName":{"name":"mstore","nativeSrc":"5778:6:64","nodeType":"YulIdentifier","src":"5778:6:64"},"nativeSrc":"5778:38:64","nodeType":"YulFunctionCall","src":"5778:38:64"},"nativeSrc":"5778:38:64","nodeType":"YulExpressionStatement","src":"5778:38:64"},{"nativeSrc":"5829:81:64","nodeType":"YulAssignment","src":"5829:81:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"5891:12:64","nodeType":"YulIdentifier","src":"5891:12:64"},{"name":"tail","nativeSrc":"5905:4:64","nodeType":"YulIdentifier","src":"5905:4:64"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"5837:53:64","nodeType":"YulIdentifier","src":"5837:53:64"},"nativeSrc":"5837:73:64","nodeType":"YulFunctionCall","src":"5837:73:64"},"variableNames":[{"name":"tail","nativeSrc":"5829:4:64","nodeType":"YulIdentifier","src":"5829:4:64"}]}]},{"nativeSrc":"5931:11:64","nodeType":"YulAssignment","src":"5931:11:64","value":{"name":"tail","nativeSrc":"5938:4:64","nodeType":"YulIdentifier","src":"5938:4:64"},"variableNames":[{"name":"end","nativeSrc":"5931:3:64","nodeType":"YulIdentifier","src":"5931:3:64"}]}]},"name":"abi_encode_t_struct$_Clone_$12335_memory_ptr_to_t_struct$_Clone_$12335_memory_ptr_fromStack","nativeSrc":"4949:999:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5050:5:64","nodeType":"YulTypedName","src":"5050:5:64","type":""},{"name":"pos","nativeSrc":"5057:3:64","nodeType":"YulTypedName","src":"5057:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5066:3:64","nodeType":"YulTypedName","src":"5066:3:64","type":""}],"src":"4949:999:64"},{"body":{"nativeSrc":"6100:223:64","nodeType":"YulBlock","src":"6100:223:64","statements":[{"nativeSrc":"6110:26:64","nodeType":"YulAssignment","src":"6110:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6122:9:64","nodeType":"YulIdentifier","src":"6122:9:64"},{"kind":"number","nativeSrc":"6133:2:64","nodeType":"YulLiteral","src":"6133:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6118:3:64","nodeType":"YulIdentifier","src":"6118:3:64"},"nativeSrc":"6118:18:64","nodeType":"YulFunctionCall","src":"6118:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6110:4:64","nodeType":"YulIdentifier","src":"6110:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6157:9:64","nodeType":"YulIdentifier","src":"6157:9:64"},{"kind":"number","nativeSrc":"6168:1:64","nodeType":"YulLiteral","src":"6168:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6153:3:64","nodeType":"YulIdentifier","src":"6153:3:64"},"nativeSrc":"6153:17:64","nodeType":"YulFunctionCall","src":"6153:17:64"},{"arguments":[{"name":"tail","nativeSrc":"6176:4:64","nodeType":"YulIdentifier","src":"6176:4:64"},{"name":"headStart","nativeSrc":"6182:9:64","nodeType":"YulIdentifier","src":"6182:9:64"}],"functionName":{"name":"sub","nativeSrc":"6172:3:64","nodeType":"YulIdentifier","src":"6172:3:64"},"nativeSrc":"6172:20:64","nodeType":"YulFunctionCall","src":"6172:20:64"}],"functionName":{"name":"mstore","nativeSrc":"6146:6:64","nodeType":"YulIdentifier","src":"6146:6:64"},"nativeSrc":"6146:47:64","nodeType":"YulFunctionCall","src":"6146:47:64"},"nativeSrc":"6146:47:64","nodeType":"YulExpressionStatement","src":"6146:47:64"},{"nativeSrc":"6202:114:64","nodeType":"YulAssignment","src":"6202:114:64","value":{"arguments":[{"name":"value0","nativeSrc":"6302:6:64","nodeType":"YulIdentifier","src":"6302:6:64"},{"name":"tail","nativeSrc":"6311:4:64","nodeType":"YulIdentifier","src":"6311:4:64"}],"functionName":{"name":"abi_encode_t_struct$_Clone_$12335_memory_ptr_to_t_struct$_Clone_$12335_memory_ptr_fromStack","nativeSrc":"6210:91:64","nodeType":"YulIdentifier","src":"6210:91:64"},"nativeSrc":"6210:106:64","nodeType":"YulFunctionCall","src":"6210:106:64"},"variableNames":[{"name":"tail","nativeSrc":"6202:4:64","nodeType":"YulIdentifier","src":"6202:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_Clone_$12335_memory_ptr__to_t_struct$_Clone_$12335_memory_ptr__fromStack_reversed","nativeSrc":"5954:369:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6072:9:64","nodeType":"YulTypedName","src":"6072:9:64","type":""},{"name":"value0","nativeSrc":"6084:6:64","nodeType":"YulTypedName","src":"6084:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6095:4:64","nodeType":"YulTypedName","src":"6095:4:64","type":""}],"src":"5954:369:64"},{"body":{"nativeSrc":"6372:79:64","nodeType":"YulBlock","src":"6372:79:64","statements":[{"body":{"nativeSrc":"6429:16:64","nodeType":"YulBlock","src":"6429:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6438:1:64","nodeType":"YulLiteral","src":"6438:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6441:1:64","nodeType":"YulLiteral","src":"6441:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6431:6:64","nodeType":"YulIdentifier","src":"6431:6:64"},"nativeSrc":"6431:12:64","nodeType":"YulFunctionCall","src":"6431:12:64"},"nativeSrc":"6431:12:64","nodeType":"YulExpressionStatement","src":"6431:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6395:5:64","nodeType":"YulIdentifier","src":"6395:5:64"},{"arguments":[{"name":"value","nativeSrc":"6420:5:64","nodeType":"YulIdentifier","src":"6420:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6402:17:64","nodeType":"YulIdentifier","src":"6402:17:64"},"nativeSrc":"6402:24:64","nodeType":"YulFunctionCall","src":"6402:24:64"}],"functionName":{"name":"eq","nativeSrc":"6392:2:64","nodeType":"YulIdentifier","src":"6392:2:64"},"nativeSrc":"6392:35:64","nodeType":"YulFunctionCall","src":"6392:35:64"}],"functionName":{"name":"iszero","nativeSrc":"6385:6:64","nodeType":"YulIdentifier","src":"6385:6:64"},"nativeSrc":"6385:43:64","nodeType":"YulFunctionCall","src":"6385:43:64"},"nativeSrc":"6382:63:64","nodeType":"YulIf","src":"6382:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"6329:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6365:5:64","nodeType":"YulTypedName","src":"6365:5:64","type":""}],"src":"6329:122:64"},{"body":{"nativeSrc":"6509:87:64","nodeType":"YulBlock","src":"6509:87:64","statements":[{"nativeSrc":"6519:29:64","nodeType":"YulAssignment","src":"6519:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6541:6:64","nodeType":"YulIdentifier","src":"6541:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6528:12:64","nodeType":"YulIdentifier","src":"6528:12:64"},"nativeSrc":"6528:20:64","nodeType":"YulFunctionCall","src":"6528:20:64"},"variableNames":[{"name":"value","nativeSrc":"6519:5:64","nodeType":"YulIdentifier","src":"6519:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6584:5:64","nodeType":"YulIdentifier","src":"6584:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6557:26:64","nodeType":"YulIdentifier","src":"6557:26:64"},"nativeSrc":"6557:33:64","nodeType":"YulFunctionCall","src":"6557:33:64"},"nativeSrc":"6557:33:64","nodeType":"YulExpressionStatement","src":"6557:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"6457:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6487:6:64","nodeType":"YulTypedName","src":"6487:6:64","type":""},{"name":"end","nativeSrc":"6495:3:64","nodeType":"YulTypedName","src":"6495:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6503:5:64","nodeType":"YulTypedName","src":"6503:5:64","type":""}],"src":"6457:139:64"},{"body":{"nativeSrc":"6668:263:64","nodeType":"YulBlock","src":"6668:263:64","statements":[{"body":{"nativeSrc":"6714:83:64","nodeType":"YulBlock","src":"6714:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6716:77:64","nodeType":"YulIdentifier","src":"6716:77:64"},"nativeSrc":"6716:79:64","nodeType":"YulFunctionCall","src":"6716:79:64"},"nativeSrc":"6716:79:64","nodeType":"YulExpressionStatement","src":"6716:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6689:7:64","nodeType":"YulIdentifier","src":"6689:7:64"},{"name":"headStart","nativeSrc":"6698:9:64","nodeType":"YulIdentifier","src":"6698:9:64"}],"functionName":{"name":"sub","nativeSrc":"6685:3:64","nodeType":"YulIdentifier","src":"6685:3:64"},"nativeSrc":"6685:23:64","nodeType":"YulFunctionCall","src":"6685:23:64"},{"kind":"number","nativeSrc":"6710:2:64","nodeType":"YulLiteral","src":"6710:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6681:3:64","nodeType":"YulIdentifier","src":"6681:3:64"},"nativeSrc":"6681:32:64","nodeType":"YulFunctionCall","src":"6681:32:64"},"nativeSrc":"6678:119:64","nodeType":"YulIf","src":"6678:119:64"},{"nativeSrc":"6807:117:64","nodeType":"YulBlock","src":"6807:117:64","statements":[{"nativeSrc":"6822:15:64","nodeType":"YulVariableDeclaration","src":"6822:15:64","value":{"kind":"number","nativeSrc":"6836:1:64","nodeType":"YulLiteral","src":"6836:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6826:6:64","nodeType":"YulTypedName","src":"6826:6:64","type":""}]},{"nativeSrc":"6851:63:64","nodeType":"YulAssignment","src":"6851:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6886:9:64","nodeType":"YulIdentifier","src":"6886:9:64"},{"name":"offset","nativeSrc":"6897:6:64","nodeType":"YulIdentifier","src":"6897:6:64"}],"functionName":{"name":"add","nativeSrc":"6882:3:64","nodeType":"YulIdentifier","src":"6882:3:64"},"nativeSrc":"6882:22:64","nodeType":"YulFunctionCall","src":"6882:22:64"},{"name":"dataEnd","nativeSrc":"6906:7:64","nodeType":"YulIdentifier","src":"6906:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6861:20:64","nodeType":"YulIdentifier","src":"6861:20:64"},"nativeSrc":"6861:53:64","nodeType":"YulFunctionCall","src":"6861:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6851:6:64","nodeType":"YulIdentifier","src":"6851:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6602:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6638:9:64","nodeType":"YulTypedName","src":"6638:9:64","type":""},{"name":"dataEnd","nativeSrc":"6649:7:64","nodeType":"YulTypedName","src":"6649:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6661:6:64","nodeType":"YulTypedName","src":"6661:6:64","type":""}],"src":"6602:329:64"},{"body":{"nativeSrc":"7011:40:64","nodeType":"YulBlock","src":"7011:40:64","statements":[{"nativeSrc":"7022:22:64","nodeType":"YulAssignment","src":"7022:22:64","value":{"arguments":[{"name":"value","nativeSrc":"7038:5:64","nodeType":"YulIdentifier","src":"7038:5:64"}],"functionName":{"name":"mload","nativeSrc":"7032:5:64","nodeType":"YulIdentifier","src":"7032:5:64"},"nativeSrc":"7032:12:64","nodeType":"YulFunctionCall","src":"7032:12:64"},"variableNames":[{"name":"length","nativeSrc":"7022:6:64","nodeType":"YulIdentifier","src":"7022:6:64"}]}]},"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6937:114:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6994:5:64","nodeType":"YulTypedName","src":"6994:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"7004:6:64","nodeType":"YulTypedName","src":"7004:6:64","type":""}],"src":"6937:114:64"},{"body":{"nativeSrc":"7168:73:64","nodeType":"YulBlock","src":"7168:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7185:3:64","nodeType":"YulIdentifier","src":"7185:3:64"},{"name":"length","nativeSrc":"7190:6:64","nodeType":"YulIdentifier","src":"7190:6:64"}],"functionName":{"name":"mstore","nativeSrc":"7178:6:64","nodeType":"YulIdentifier","src":"7178:6:64"},"nativeSrc":"7178:19:64","nodeType":"YulFunctionCall","src":"7178:19:64"},"nativeSrc":"7178:19:64","nodeType":"YulExpressionStatement","src":"7178:19:64"},{"nativeSrc":"7206:29:64","nodeType":"YulAssignment","src":"7206:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"7225:3:64","nodeType":"YulIdentifier","src":"7225:3:64"},{"kind":"number","nativeSrc":"7230:4:64","nodeType":"YulLiteral","src":"7230:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7221:3:64","nodeType":"YulIdentifier","src":"7221:3:64"},"nativeSrc":"7221:14:64","nodeType":"YulFunctionCall","src":"7221:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"7206:11:64","nodeType":"YulIdentifier","src":"7206:11:64"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"7057:184:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7140:3:64","nodeType":"YulTypedName","src":"7140:3:64","type":""},{"name":"length","nativeSrc":"7145:6:64","nodeType":"YulTypedName","src":"7145:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7156:11:64","nodeType":"YulTypedName","src":"7156:11:64","type":""}],"src":"7057:184:64"},{"body":{"nativeSrc":"7319:60:64","nodeType":"YulBlock","src":"7319:60:64","statements":[{"nativeSrc":"7329:11:64","nodeType":"YulAssignment","src":"7329:11:64","value":{"name":"ptr","nativeSrc":"7337:3:64","nodeType":"YulIdentifier","src":"7337:3:64"},"variableNames":[{"name":"data","nativeSrc":"7329:4:64","nodeType":"YulIdentifier","src":"7329:4:64"}]},{"nativeSrc":"7350:22:64","nodeType":"YulAssignment","src":"7350:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"7362:3:64","nodeType":"YulIdentifier","src":"7362:3:64"},{"kind":"number","nativeSrc":"7367:4:64","nodeType":"YulLiteral","src":"7367:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7358:3:64","nodeType":"YulIdentifier","src":"7358:3:64"},"nativeSrc":"7358:14:64","nodeType":"YulFunctionCall","src":"7358:14:64"},"variableNames":[{"name":"data","nativeSrc":"7350:4:64","nodeType":"YulIdentifier","src":"7350:4:64"}]}]},"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7247:132:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"7306:3:64","nodeType":"YulTypedName","src":"7306:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"7314:4:64","nodeType":"YulTypedName","src":"7314:4:64","type":""}],"src":"7247:132:64"},{"body":{"nativeSrc":"7440:53:64","nodeType":"YulBlock","src":"7440:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7457:3:64","nodeType":"YulIdentifier","src":"7457:3:64"},{"arguments":[{"name":"value","nativeSrc":"7480:5:64","nodeType":"YulIdentifier","src":"7480:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"7462:17:64","nodeType":"YulIdentifier","src":"7462:17:64"},"nativeSrc":"7462:24:64","nodeType":"YulFunctionCall","src":"7462:24:64"}],"functionName":{"name":"mstore","nativeSrc":"7450:6:64","nodeType":"YulIdentifier","src":"7450:6:64"},"nativeSrc":"7450:37:64","nodeType":"YulFunctionCall","src":"7450:37:64"},"nativeSrc":"7450:37:64","nodeType":"YulExpressionStatement","src":"7450:37:64"}]},"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"7385:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7428:5:64","nodeType":"YulTypedName","src":"7428:5:64","type":""},{"name":"pos","nativeSrc":"7435:3:64","nodeType":"YulTypedName","src":"7435:3:64","type":""}],"src":"7385:108:64"},{"body":{"nativeSrc":"7579:99:64","nodeType":"YulBlock","src":"7579:99:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"7623:6:64","nodeType":"YulIdentifier","src":"7623:6:64"},{"name":"pos","nativeSrc":"7631:3:64","nodeType":"YulIdentifier","src":"7631:3:64"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"7589:33:64","nodeType":"YulIdentifier","src":"7589:33:64"},"nativeSrc":"7589:46:64","nodeType":"YulFunctionCall","src":"7589:46:64"},"nativeSrc":"7589:46:64","nodeType":"YulExpressionStatement","src":"7589:46:64"},{"nativeSrc":"7644:28:64","nodeType":"YulAssignment","src":"7644:28:64","value":{"arguments":[{"name":"pos","nativeSrc":"7662:3:64","nodeType":"YulIdentifier","src":"7662:3:64"},{"kind":"number","nativeSrc":"7667:4:64","nodeType":"YulLiteral","src":"7667:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7658:3:64","nodeType":"YulIdentifier","src":"7658:3:64"},"nativeSrc":"7658:14:64","nodeType":"YulFunctionCall","src":"7658:14:64"},"variableNames":[{"name":"updatedPos","nativeSrc":"7644:10:64","nodeType":"YulIdentifier","src":"7644:10:64"}]}]},"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"7499:179:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"7552:6:64","nodeType":"YulTypedName","src":"7552:6:64","type":""},{"name":"pos","nativeSrc":"7560:3:64","nodeType":"YulTypedName","src":"7560:3:64","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"7568:10:64","nodeType":"YulTypedName","src":"7568:10:64","type":""}],"src":"7499:179:64"},{"body":{"nativeSrc":"7759:38:64","nodeType":"YulBlock","src":"7759:38:64","statements":[{"nativeSrc":"7769:22:64","nodeType":"YulAssignment","src":"7769:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"7781:3:64","nodeType":"YulIdentifier","src":"7781:3:64"},{"kind":"number","nativeSrc":"7786:4:64","nodeType":"YulLiteral","src":"7786:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7777:3:64","nodeType":"YulIdentifier","src":"7777:3:64"},"nativeSrc":"7777:14:64","nodeType":"YulFunctionCall","src":"7777:14:64"},"variableNames":[{"name":"next","nativeSrc":"7769:4:64","nodeType":"YulIdentifier","src":"7769:4:64"}]}]},"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7684:113:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"7746:3:64","nodeType":"YulTypedName","src":"7746:3:64","type":""}],"returnVariables":[{"name":"next","nativeSrc":"7754:4:64","nodeType":"YulTypedName","src":"7754:4:64","type":""}],"src":"7684:113:64"},{"body":{"nativeSrc":"7957:608:64","nodeType":"YulBlock","src":"7957:608:64","statements":[{"nativeSrc":"7967:68:64","nodeType":"YulVariableDeclaration","src":"7967:68:64","value":{"arguments":[{"name":"value","nativeSrc":"8029:5:64","nodeType":"YulIdentifier","src":"8029:5:64"}],"functionName":{"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7981:47:64","nodeType":"YulIdentifier","src":"7981:47:64"},"nativeSrc":"7981:54:64","nodeType":"YulFunctionCall","src":"7981:54:64"},"variables":[{"name":"length","nativeSrc":"7971:6:64","nodeType":"YulTypedName","src":"7971:6:64","type":""}]},{"nativeSrc":"8044:93:64","nodeType":"YulAssignment","src":"8044:93:64","value":{"arguments":[{"name":"pos","nativeSrc":"8125:3:64","nodeType":"YulIdentifier","src":"8125:3:64"},{"name":"length","nativeSrc":"8130:6:64","nodeType":"YulIdentifier","src":"8130:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"8051:73:64","nodeType":"YulIdentifier","src":"8051:73:64"},"nativeSrc":"8051:86:64","nodeType":"YulFunctionCall","src":"8051:86:64"},"variableNames":[{"name":"pos","nativeSrc":"8044:3:64","nodeType":"YulIdentifier","src":"8044:3:64"}]},{"nativeSrc":"8146:71:64","nodeType":"YulVariableDeclaration","src":"8146:71:64","value":{"arguments":[{"name":"value","nativeSrc":"8211:5:64","nodeType":"YulIdentifier","src":"8211:5:64"}],"functionName":{"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"8161:49:64","nodeType":"YulIdentifier","src":"8161:49:64"},"nativeSrc":"8161:56:64","nodeType":"YulFunctionCall","src":"8161:56:64"},"variables":[{"name":"baseRef","nativeSrc":"8150:7:64","nodeType":"YulTypedName","src":"8150:7:64","type":""}]},{"nativeSrc":"8226:21:64","nodeType":"YulVariableDeclaration","src":"8226:21:64","value":{"name":"baseRef","nativeSrc":"8240:7:64","nodeType":"YulIdentifier","src":"8240:7:64"},"variables":[{"name":"srcPtr","nativeSrc":"8230:6:64","nodeType":"YulTypedName","src":"8230:6:64","type":""}]},{"body":{"nativeSrc":"8316:224:64","nodeType":"YulBlock","src":"8316:224:64","statements":[{"nativeSrc":"8330:34:64","nodeType":"YulVariableDeclaration","src":"8330:34:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8357:6:64","nodeType":"YulIdentifier","src":"8357:6:64"}],"functionName":{"name":"mload","nativeSrc":"8351:5:64","nodeType":"YulIdentifier","src":"8351:5:64"},"nativeSrc":"8351:13:64","nodeType":"YulFunctionCall","src":"8351:13:64"},"variables":[{"name":"elementValue0","nativeSrc":"8334:13:64","nodeType":"YulTypedName","src":"8334:13:64","type":""}]},{"nativeSrc":"8377:70:64","nodeType":"YulAssignment","src":"8377:70:64","value":{"arguments":[{"name":"elementValue0","nativeSrc":"8428:13:64","nodeType":"YulIdentifier","src":"8428:13:64"},{"name":"pos","nativeSrc":"8443:3:64","nodeType":"YulIdentifier","src":"8443:3:64"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"8384:43:64","nodeType":"YulIdentifier","src":"8384:43:64"},"nativeSrc":"8384:63:64","nodeType":"YulFunctionCall","src":"8384:63:64"},"variableNames":[{"name":"pos","nativeSrc":"8377:3:64","nodeType":"YulIdentifier","src":"8377:3:64"}]},{"nativeSrc":"8460:70:64","nodeType":"YulAssignment","src":"8460:70:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"8523:6:64","nodeType":"YulIdentifier","src":"8523:6:64"}],"functionName":{"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"8470:52:64","nodeType":"YulIdentifier","src":"8470:52:64"},"nativeSrc":"8470:60:64","nodeType":"YulFunctionCall","src":"8470:60:64"},"variableNames":[{"name":"srcPtr","nativeSrc":"8460:6:64","nodeType":"YulIdentifier","src":"8460:6:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"8278:1:64","nodeType":"YulIdentifier","src":"8278:1:64"},{"name":"length","nativeSrc":"8281:6:64","nodeType":"YulIdentifier","src":"8281:6:64"}],"functionName":{"name":"lt","nativeSrc":"8275:2:64","nodeType":"YulIdentifier","src":"8275:2:64"},"nativeSrc":"8275:13:64","nodeType":"YulFunctionCall","src":"8275:13:64"},"nativeSrc":"8256:284:64","nodeType":"YulForLoop","post":{"nativeSrc":"8289:18:64","nodeType":"YulBlock","src":"8289:18:64","statements":[{"nativeSrc":"8291:14:64","nodeType":"YulAssignment","src":"8291:14:64","value":{"arguments":[{"name":"i","nativeSrc":"8300:1:64","nodeType":"YulIdentifier","src":"8300:1:64"},{"kind":"number","nativeSrc":"8303:1:64","nodeType":"YulLiteral","src":"8303:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"8296:3:64","nodeType":"YulIdentifier","src":"8296:3:64"},"nativeSrc":"8296:9:64","nodeType":"YulFunctionCall","src":"8296:9:64"},"variableNames":[{"name":"i","nativeSrc":"8291:1:64","nodeType":"YulIdentifier","src":"8291:1:64"}]}]},"pre":{"nativeSrc":"8260:14:64","nodeType":"YulBlock","src":"8260:14:64","statements":[{"nativeSrc":"8262:10:64","nodeType":"YulVariableDeclaration","src":"8262:10:64","value":{"kind":"number","nativeSrc":"8271:1:64","nodeType":"YulLiteral","src":"8271:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"8266:1:64","nodeType":"YulTypedName","src":"8266:1:64","type":""}]}]},"src":"8256:284:64"},{"nativeSrc":"8549:10:64","nodeType":"YulAssignment","src":"8549:10:64","value":{"name":"pos","nativeSrc":"8556:3:64","nodeType":"YulIdentifier","src":"8556:3:64"},"variableNames":[{"name":"end","nativeSrc":"8549:3:64","nodeType":"YulIdentifier","src":"8549:3:64"}]}]},"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"7833:732:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7936:5:64","nodeType":"YulTypedName","src":"7936:5:64","type":""},{"name":"pos","nativeSrc":"7943:3:64","nodeType":"YulTypedName","src":"7943:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7952:3:64","nodeType":"YulTypedName","src":"7952:3:64","type":""}],"src":"7833:732:64"},{"body":{"nativeSrc":"8719:225:64","nodeType":"YulBlock","src":"8719:225:64","statements":[{"nativeSrc":"8729:26:64","nodeType":"YulAssignment","src":"8729:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"8741:9:64","nodeType":"YulIdentifier","src":"8741:9:64"},{"kind":"number","nativeSrc":"8752:2:64","nodeType":"YulLiteral","src":"8752:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8737:3:64","nodeType":"YulIdentifier","src":"8737:3:64"},"nativeSrc":"8737:18:64","nodeType":"YulFunctionCall","src":"8737:18:64"},"variableNames":[{"name":"tail","nativeSrc":"8729:4:64","nodeType":"YulIdentifier","src":"8729:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8776:9:64","nodeType":"YulIdentifier","src":"8776:9:64"},{"kind":"number","nativeSrc":"8787:1:64","nodeType":"YulLiteral","src":"8787:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8772:3:64","nodeType":"YulIdentifier","src":"8772:3:64"},"nativeSrc":"8772:17:64","nodeType":"YulFunctionCall","src":"8772:17:64"},{"arguments":[{"name":"tail","nativeSrc":"8795:4:64","nodeType":"YulIdentifier","src":"8795:4:64"},{"name":"headStart","nativeSrc":"8801:9:64","nodeType":"YulIdentifier","src":"8801:9:64"}],"functionName":{"name":"sub","nativeSrc":"8791:3:64","nodeType":"YulIdentifier","src":"8791:3:64"},"nativeSrc":"8791:20:64","nodeType":"YulFunctionCall","src":"8791:20:64"}],"functionName":{"name":"mstore","nativeSrc":"8765:6:64","nodeType":"YulIdentifier","src":"8765:6:64"},"nativeSrc":"8765:47:64","nodeType":"YulFunctionCall","src":"8765:47:64"},"nativeSrc":"8765:47:64","nodeType":"YulExpressionStatement","src":"8765:47:64"},{"nativeSrc":"8821:116:64","nodeType":"YulAssignment","src":"8821:116:64","value":{"arguments":[{"name":"value0","nativeSrc":"8923:6:64","nodeType":"YulIdentifier","src":"8923:6:64"},{"name":"tail","nativeSrc":"8932:4:64","nodeType":"YulIdentifier","src":"8932:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"8829:93:64","nodeType":"YulIdentifier","src":"8829:93:64"},"nativeSrc":"8829:108:64","nodeType":"YulFunctionCall","src":"8829:108:64"},"variableNames":[{"name":"tail","nativeSrc":"8821:4:64","nodeType":"YulIdentifier","src":"8821:4:64"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"8571:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8691:9:64","nodeType":"YulTypedName","src":"8691:9:64","type":""},{"name":"value0","nativeSrc":"8703:6:64","nodeType":"YulTypedName","src":"8703:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8714:4:64","nodeType":"YulTypedName","src":"8714:4:64","type":""}],"src":"8571:373:64"},{"body":{"nativeSrc":"9034:85:64","nodeType":"YulBlock","src":"9034:85:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9051:3:64","nodeType":"YulIdentifier","src":"9051:3:64"},{"arguments":[{"name":"value","nativeSrc":"9106:5:64","nodeType":"YulIdentifier","src":"9106:5:64"}],"functionName":{"name":"convert_t_contract$_Cloneable_$18509_to_t_address","nativeSrc":"9056:49:64","nodeType":"YulIdentifier","src":"9056:49:64"},"nativeSrc":"9056:56:64","nodeType":"YulFunctionCall","src":"9056:56:64"}],"functionName":{"name":"mstore","nativeSrc":"9044:6:64","nodeType":"YulIdentifier","src":"9044:6:64"},"nativeSrc":"9044:69:64","nodeType":"YulFunctionCall","src":"9044:69:64"},"nativeSrc":"9044:69:64","nodeType":"YulExpressionStatement","src":"9044:69:64"}]},"name":"abi_encode_t_contract$_Cloneable_$18509_to_t_address_fromStack","nativeSrc":"8950:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9022:5:64","nodeType":"YulTypedName","src":"9022:5:64","type":""},{"name":"pos","nativeSrc":"9029:3:64","nodeType":"YulTypedName","src":"9029:3:64","type":""}],"src":"8950:169:64"},{"body":{"nativeSrc":"9242:143:64","nodeType":"YulBlock","src":"9242:143:64","statements":[{"nativeSrc":"9252:26:64","nodeType":"YulAssignment","src":"9252:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"9264:9:64","nodeType":"YulIdentifier","src":"9264:9:64"},{"kind":"number","nativeSrc":"9275:2:64","nodeType":"YulLiteral","src":"9275:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9260:3:64","nodeType":"YulIdentifier","src":"9260:3:64"},"nativeSrc":"9260:18:64","nodeType":"YulFunctionCall","src":"9260:18:64"},"variableNames":[{"name":"tail","nativeSrc":"9252:4:64","nodeType":"YulIdentifier","src":"9252:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9351:6:64","nodeType":"YulIdentifier","src":"9351:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"9364:9:64","nodeType":"YulIdentifier","src":"9364:9:64"},{"kind":"number","nativeSrc":"9375:1:64","nodeType":"YulLiteral","src":"9375:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9360:3:64","nodeType":"YulIdentifier","src":"9360:3:64"},"nativeSrc":"9360:17:64","nodeType":"YulFunctionCall","src":"9360:17:64"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$18509_to_t_address_fromStack","nativeSrc":"9288:62:64","nodeType":"YulIdentifier","src":"9288:62:64"},"nativeSrc":"9288:90:64","nodeType":"YulFunctionCall","src":"9288:90:64"},"nativeSrc":"9288:90:64","nodeType":"YulExpressionStatement","src":"9288:90:64"}]},"name":"abi_encode_tuple_t_contract$_Cloneable_$18509__to_t_address__fromStack_reversed","nativeSrc":"9125:260:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9214:9:64","nodeType":"YulTypedName","src":"9214:9:64","type":""},{"name":"value0","nativeSrc":"9226:6:64","nodeType":"YulTypedName","src":"9226:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9237:4:64","nodeType":"YulTypedName","src":"9237:4:64","type":""}],"src":"9125:260:64"},{"body":{"nativeSrc":"9452:56:64","nodeType":"YulBlock","src":"9452:56:64","statements":[{"body":{"nativeSrc":"9486:16:64","nodeType":"YulBlock","src":"9486:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9495:1:64","nodeType":"YulLiteral","src":"9495:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9498:1:64","nodeType":"YulLiteral","src":"9498:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9488:6:64","nodeType":"YulIdentifier","src":"9488:6:64"},"nativeSrc":"9488:12:64","nodeType":"YulFunctionCall","src":"9488:12:64"},"nativeSrc":"9488:12:64","nodeType":"YulExpressionStatement","src":"9488:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9475:5:64","nodeType":"YulIdentifier","src":"9475:5:64"},{"kind":"number","nativeSrc":"9482:1:64","nodeType":"YulLiteral","src":"9482:1:64","type":"","value":"5"}],"functionName":{"name":"lt","nativeSrc":"9472:2:64","nodeType":"YulIdentifier","src":"9472:2:64"},"nativeSrc":"9472:12:64","nodeType":"YulFunctionCall","src":"9472:12:64"}],"functionName":{"name":"iszero","nativeSrc":"9465:6:64","nodeType":"YulIdentifier","src":"9465:6:64"},"nativeSrc":"9465:20:64","nodeType":"YulFunctionCall","src":"9465:20:64"},"nativeSrc":"9462:40:64","nodeType":"YulIf","src":"9462:40:64"}]},"name":"validator_revert_t_enum$_RegistryType_$12323","nativeSrc":"9391:117:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9445:5:64","nodeType":"YulTypedName","src":"9445:5:64","type":""}],"src":"9391:117:64"},{"body":{"nativeSrc":"9584:105:64","nodeType":"YulBlock","src":"9584:105:64","statements":[{"nativeSrc":"9594:29:64","nodeType":"YulAssignment","src":"9594:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9616:6:64","nodeType":"YulIdentifier","src":"9616:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9603:12:64","nodeType":"YulIdentifier","src":"9603:12:64"},"nativeSrc":"9603:20:64","nodeType":"YulFunctionCall","src":"9603:20:64"},"variableNames":[{"name":"value","nativeSrc":"9594:5:64","nodeType":"YulIdentifier","src":"9594:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9677:5:64","nodeType":"YulIdentifier","src":"9677:5:64"}],"functionName":{"name":"validator_revert_t_enum$_RegistryType_$12323","nativeSrc":"9632:44:64","nodeType":"YulIdentifier","src":"9632:44:64"},"nativeSrc":"9632:51:64","nodeType":"YulFunctionCall","src":"9632:51:64"},"nativeSrc":"9632:51:64","nodeType":"YulExpressionStatement","src":"9632:51:64"}]},"name":"abi_decode_t_enum$_RegistryType_$12323","nativeSrc":"9514:175:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9562:6:64","nodeType":"YulTypedName","src":"9562:6:64","type":""},{"name":"end","nativeSrc":"9570:3:64","nodeType":"YulTypedName","src":"9570:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9578:5:64","nodeType":"YulTypedName","src":"9578:5:64","type":""}],"src":"9514:175:64"},{"body":{"nativeSrc":"9784:28:64","nodeType":"YulBlock","src":"9784:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9801:1:64","nodeType":"YulLiteral","src":"9801:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9804:1:64","nodeType":"YulLiteral","src":"9804:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9794:6:64","nodeType":"YulIdentifier","src":"9794:6:64"},"nativeSrc":"9794:12:64","nodeType":"YulFunctionCall","src":"9794:12:64"},"nativeSrc":"9794:12:64","nodeType":"YulExpressionStatement","src":"9794:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9695:117:64","nodeType":"YulFunctionDefinition","src":"9695:117:64"},{"body":{"nativeSrc":"9907:28:64","nodeType":"YulBlock","src":"9907:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9924:1:64","nodeType":"YulLiteral","src":"9924:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9927:1:64","nodeType":"YulLiteral","src":"9927:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9917:6:64","nodeType":"YulIdentifier","src":"9917:6:64"},"nativeSrc":"9917:12:64","nodeType":"YulFunctionCall","src":"9917:12:64"},"nativeSrc":"9917:12:64","nodeType":"YulExpressionStatement","src":"9917:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"9818:117:64","nodeType":"YulFunctionDefinition","src":"9818:117:64"},{"body":{"nativeSrc":"10030:28:64","nodeType":"YulBlock","src":"10030:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10047:1:64","nodeType":"YulLiteral","src":"10047:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10050:1:64","nodeType":"YulLiteral","src":"10050:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10040:6:64","nodeType":"YulIdentifier","src":"10040:6:64"},"nativeSrc":"10040:12:64","nodeType":"YulFunctionCall","src":"10040:12:64"},"nativeSrc":"10040:12:64","nodeType":"YulExpressionStatement","src":"10040:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9941:117:64","nodeType":"YulFunctionDefinition","src":"9941:117:64"},{"body":{"nativeSrc":"10153:478:64","nodeType":"YulBlock","src":"10153:478:64","statements":[{"body":{"nativeSrc":"10202:83:64","nodeType":"YulBlock","src":"10202:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10204:77:64","nodeType":"YulIdentifier","src":"10204:77:64"},"nativeSrc":"10204:79:64","nodeType":"YulFunctionCall","src":"10204:79:64"},"nativeSrc":"10204:79:64","nodeType":"YulExpressionStatement","src":"10204:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10181:6:64","nodeType":"YulIdentifier","src":"10181:6:64"},{"kind":"number","nativeSrc":"10189:4:64","nodeType":"YulLiteral","src":"10189:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10177:3:64","nodeType":"YulIdentifier","src":"10177:3:64"},"nativeSrc":"10177:17:64","nodeType":"YulFunctionCall","src":"10177:17:64"},{"name":"end","nativeSrc":"10196:3:64","nodeType":"YulIdentifier","src":"10196:3:64"}],"functionName":{"name":"slt","nativeSrc":"10173:3:64","nodeType":"YulIdentifier","src":"10173:3:64"},"nativeSrc":"10173:27:64","nodeType":"YulFunctionCall","src":"10173:27:64"}],"functionName":{"name":"iszero","nativeSrc":"10166:6:64","nodeType":"YulIdentifier","src":"10166:6:64"},"nativeSrc":"10166:35:64","nodeType":"YulFunctionCall","src":"10166:35:64"},"nativeSrc":"10163:122:64","nodeType":"YulIf","src":"10163:122:64"},{"nativeSrc":"10294:30:64","nodeType":"YulAssignment","src":"10294:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"10317:6:64","nodeType":"YulIdentifier","src":"10317:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"10304:12:64","nodeType":"YulIdentifier","src":"10304:12:64"},"nativeSrc":"10304:20:64","nodeType":"YulFunctionCall","src":"10304:20:64"},"variableNames":[{"name":"length","nativeSrc":"10294:6:64","nodeType":"YulIdentifier","src":"10294:6:64"}]},{"body":{"nativeSrc":"10367:83:64","nodeType":"YulBlock","src":"10367:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"10369:77:64","nodeType":"YulIdentifier","src":"10369:77:64"},"nativeSrc":"10369:79:64","nodeType":"YulFunctionCall","src":"10369:79:64"},"nativeSrc":"10369:79:64","nodeType":"YulExpressionStatement","src":"10369:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10339:6:64","nodeType":"YulIdentifier","src":"10339:6:64"},{"kind":"number","nativeSrc":"10347:18:64","nodeType":"YulLiteral","src":"10347:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10336:2:64","nodeType":"YulIdentifier","src":"10336:2:64"},"nativeSrc":"10336:30:64","nodeType":"YulFunctionCall","src":"10336:30:64"},"nativeSrc":"10333:117:64","nodeType":"YulIf","src":"10333:117:64"},{"nativeSrc":"10459:29:64","nodeType":"YulAssignment","src":"10459:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"10475:6:64","nodeType":"YulIdentifier","src":"10475:6:64"},{"kind":"number","nativeSrc":"10483:4:64","nodeType":"YulLiteral","src":"10483:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10471:3:64","nodeType":"YulIdentifier","src":"10471:3:64"},"nativeSrc":"10471:17:64","nodeType":"YulFunctionCall","src":"10471:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"10459:8:64","nodeType":"YulIdentifier","src":"10459:8:64"}]},{"body":{"nativeSrc":"10542:83:64","nodeType":"YulBlock","src":"10542:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10544:77:64","nodeType":"YulIdentifier","src":"10544:77:64"},"nativeSrc":"10544:79:64","nodeType":"YulFunctionCall","src":"10544:79:64"},"nativeSrc":"10544:79:64","nodeType":"YulExpressionStatement","src":"10544:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"10507:8:64","nodeType":"YulIdentifier","src":"10507:8:64"},{"arguments":[{"name":"length","nativeSrc":"10521:6:64","nodeType":"YulIdentifier","src":"10521:6:64"},{"kind":"number","nativeSrc":"10529:4:64","nodeType":"YulLiteral","src":"10529:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"10517:3:64","nodeType":"YulIdentifier","src":"10517:3:64"},"nativeSrc":"10517:17:64","nodeType":"YulFunctionCall","src":"10517:17:64"}],"functionName":{"name":"add","nativeSrc":"10503:3:64","nodeType":"YulIdentifier","src":"10503:3:64"},"nativeSrc":"10503:32:64","nodeType":"YulFunctionCall","src":"10503:32:64"},{"name":"end","nativeSrc":"10537:3:64","nodeType":"YulIdentifier","src":"10537:3:64"}],"functionName":{"name":"gt","nativeSrc":"10500:2:64","nodeType":"YulIdentifier","src":"10500:2:64"},"nativeSrc":"10500:41:64","nodeType":"YulFunctionCall","src":"10500:41:64"},"nativeSrc":"10497:128:64","nodeType":"YulIf","src":"10497:128:64"}]},"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"10078:553:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10120:6:64","nodeType":"YulTypedName","src":"10120:6:64","type":""},{"name":"end","nativeSrc":"10128:3:64","nodeType":"YulTypedName","src":"10128:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"10136:8:64","nodeType":"YulTypedName","src":"10136:8:64","type":""},{"name":"length","nativeSrc":"10146:6:64","nodeType":"YulTypedName","src":"10146:6:64","type":""}],"src":"10078:553:64"},{"body":{"nativeSrc":"10792:846:64","nodeType":"YulBlock","src":"10792:846:64","statements":[{"body":{"nativeSrc":"10839:83:64","nodeType":"YulBlock","src":"10839:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10841:77:64","nodeType":"YulIdentifier","src":"10841:77:64"},"nativeSrc":"10841:79:64","nodeType":"YulFunctionCall","src":"10841:79:64"},"nativeSrc":"10841:79:64","nodeType":"YulExpressionStatement","src":"10841:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10813:7:64","nodeType":"YulIdentifier","src":"10813:7:64"},{"name":"headStart","nativeSrc":"10822:9:64","nodeType":"YulIdentifier","src":"10822:9:64"}],"functionName":{"name":"sub","nativeSrc":"10809:3:64","nodeType":"YulIdentifier","src":"10809:3:64"},"nativeSrc":"10809:23:64","nodeType":"YulFunctionCall","src":"10809:23:64"},{"kind":"number","nativeSrc":"10834:3:64","nodeType":"YulLiteral","src":"10834:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10805:3:64","nodeType":"YulIdentifier","src":"10805:3:64"},"nativeSrc":"10805:33:64","nodeType":"YulFunctionCall","src":"10805:33:64"},"nativeSrc":"10802:120:64","nodeType":"YulIf","src":"10802:120:64"},{"nativeSrc":"10932:135:64","nodeType":"YulBlock","src":"10932:135:64","statements":[{"nativeSrc":"10947:15:64","nodeType":"YulVariableDeclaration","src":"10947:15:64","value":{"kind":"number","nativeSrc":"10961:1:64","nodeType":"YulLiteral","src":"10961:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10951:6:64","nodeType":"YulTypedName","src":"10951:6:64","type":""}]},{"nativeSrc":"10976:81:64","nodeType":"YulAssignment","src":"10976:81:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11029:9:64","nodeType":"YulIdentifier","src":"11029:9:64"},{"name":"offset","nativeSrc":"11040:6:64","nodeType":"YulIdentifier","src":"11040:6:64"}],"functionName":{"name":"add","nativeSrc":"11025:3:64","nodeType":"YulIdentifier","src":"11025:3:64"},"nativeSrc":"11025:22:64","nodeType":"YulFunctionCall","src":"11025:22:64"},{"name":"dataEnd","nativeSrc":"11049:7:64","nodeType":"YulIdentifier","src":"11049:7:64"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12323","nativeSrc":"10986:38:64","nodeType":"YulIdentifier","src":"10986:38:64"},"nativeSrc":"10986:71:64","nodeType":"YulFunctionCall","src":"10986:71:64"},"variableNames":[{"name":"value0","nativeSrc":"10976:6:64","nodeType":"YulIdentifier","src":"10976:6:64"}]}]},{"nativeSrc":"11077:118:64","nodeType":"YulBlock","src":"11077:118:64","statements":[{"nativeSrc":"11092:16:64","nodeType":"YulVariableDeclaration","src":"11092:16:64","value":{"kind":"number","nativeSrc":"11106:2:64","nodeType":"YulLiteral","src":"11106:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11096:6:64","nodeType":"YulTypedName","src":"11096:6:64","type":""}]},{"nativeSrc":"11122:63:64","nodeType":"YulAssignment","src":"11122:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11157:9:64","nodeType":"YulIdentifier","src":"11157:9:64"},{"name":"offset","nativeSrc":"11168:6:64","nodeType":"YulIdentifier","src":"11168:6:64"}],"functionName":{"name":"add","nativeSrc":"11153:3:64","nodeType":"YulIdentifier","src":"11153:3:64"},"nativeSrc":"11153:22:64","nodeType":"YulFunctionCall","src":"11153:22:64"},{"name":"dataEnd","nativeSrc":"11177:7:64","nodeType":"YulIdentifier","src":"11177:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11132:20:64","nodeType":"YulIdentifier","src":"11132:20:64"},"nativeSrc":"11132:53:64","nodeType":"YulFunctionCall","src":"11132:53:64"},"variableNames":[{"name":"value1","nativeSrc":"11122:6:64","nodeType":"YulIdentifier","src":"11122:6:64"}]}]},{"nativeSrc":"11205:118:64","nodeType":"YulBlock","src":"11205:118:64","statements":[{"nativeSrc":"11220:16:64","nodeType":"YulVariableDeclaration","src":"11220:16:64","value":{"kind":"number","nativeSrc":"11234:2:64","nodeType":"YulLiteral","src":"11234:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11224:6:64","nodeType":"YulTypedName","src":"11224:6:64","type":""}]},{"nativeSrc":"11250:63:64","nodeType":"YulAssignment","src":"11250:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11285:9:64","nodeType":"YulIdentifier","src":"11285:9:64"},{"name":"offset","nativeSrc":"11296:6:64","nodeType":"YulIdentifier","src":"11296:6:64"}],"functionName":{"name":"add","nativeSrc":"11281:3:64","nodeType":"YulIdentifier","src":"11281:3:64"},"nativeSrc":"11281:22:64","nodeType":"YulFunctionCall","src":"11281:22:64"},{"name":"dataEnd","nativeSrc":"11305:7:64","nodeType":"YulIdentifier","src":"11305:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11260:20:64","nodeType":"YulIdentifier","src":"11260:20:64"},"nativeSrc":"11260:53:64","nodeType":"YulFunctionCall","src":"11260:53:64"},"variableNames":[{"name":"value2","nativeSrc":"11250:6:64","nodeType":"YulIdentifier","src":"11250:6:64"}]}]},{"nativeSrc":"11333:298:64","nodeType":"YulBlock","src":"11333:298:64","statements":[{"nativeSrc":"11348:46:64","nodeType":"YulVariableDeclaration","src":"11348:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11379:9:64","nodeType":"YulIdentifier","src":"11379:9:64"},{"kind":"number","nativeSrc":"11390:2:64","nodeType":"YulLiteral","src":"11390:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"11375:3:64","nodeType":"YulIdentifier","src":"11375:3:64"},"nativeSrc":"11375:18:64","nodeType":"YulFunctionCall","src":"11375:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"11362:12:64","nodeType":"YulIdentifier","src":"11362:12:64"},"nativeSrc":"11362:32:64","nodeType":"YulFunctionCall","src":"11362:32:64"},"variables":[{"name":"offset","nativeSrc":"11352:6:64","nodeType":"YulTypedName","src":"11352:6:64","type":""}]},{"body":{"nativeSrc":"11441:83:64","nodeType":"YulBlock","src":"11441:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11443:77:64","nodeType":"YulIdentifier","src":"11443:77:64"},"nativeSrc":"11443:79:64","nodeType":"YulFunctionCall","src":"11443:79:64"},"nativeSrc":"11443:79:64","nodeType":"YulExpressionStatement","src":"11443:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11413:6:64","nodeType":"YulIdentifier","src":"11413:6:64"},{"kind":"number","nativeSrc":"11421:18:64","nodeType":"YulLiteral","src":"11421:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11410:2:64","nodeType":"YulIdentifier","src":"11410:2:64"},"nativeSrc":"11410:30:64","nodeType":"YulFunctionCall","src":"11410:30:64"},"nativeSrc":"11407:117:64","nodeType":"YulIf","src":"11407:117:64"},{"nativeSrc":"11538:83:64","nodeType":"YulAssignment","src":"11538:83:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11593:9:64","nodeType":"YulIdentifier","src":"11593:9:64"},{"name":"offset","nativeSrc":"11604:6:64","nodeType":"YulIdentifier","src":"11604:6:64"}],"functionName":{"name":"add","nativeSrc":"11589:3:64","nodeType":"YulIdentifier","src":"11589:3:64"},"nativeSrc":"11589:22:64","nodeType":"YulFunctionCall","src":"11589:22:64"},{"name":"dataEnd","nativeSrc":"11613:7:64","nodeType":"YulIdentifier","src":"11613:7:64"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"11556:32:64","nodeType":"YulIdentifier","src":"11556:32:64"},"nativeSrc":"11556:65:64","nodeType":"YulFunctionCall","src":"11556:65:64"},"variableNames":[{"name":"value3","nativeSrc":"11538:6:64","nodeType":"YulIdentifier","src":"11538:6:64"},{"name":"value4","nativeSrc":"11546:6:64","nodeType":"YulIdentifier","src":"11546:6:64"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12323t_addresst_addresst_string_calldata_ptr","nativeSrc":"10637:1001:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10730:9:64","nodeType":"YulTypedName","src":"10730:9:64","type":""},{"name":"dataEnd","nativeSrc":"10741:7:64","nodeType":"YulTypedName","src":"10741:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10753:6:64","nodeType":"YulTypedName","src":"10753:6:64","type":""},{"name":"value1","nativeSrc":"10761:6:64","nodeType":"YulTypedName","src":"10761:6:64","type":""},{"name":"value2","nativeSrc":"10769:6:64","nodeType":"YulTypedName","src":"10769:6:64","type":""},{"name":"value3","nativeSrc":"10777:6:64","nodeType":"YulTypedName","src":"10777:6:64","type":""},{"name":"value4","nativeSrc":"10785:6:64","nodeType":"YulTypedName","src":"10785:6:64","type":""}],"src":"10637:1001:64"},{"body":{"nativeSrc":"11709:53:64","nodeType":"YulBlock","src":"11709:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11726:3:64","nodeType":"YulIdentifier","src":"11726:3:64"},{"arguments":[{"name":"value","nativeSrc":"11749:5:64","nodeType":"YulIdentifier","src":"11749:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"11731:17:64","nodeType":"YulIdentifier","src":"11731:17:64"},"nativeSrc":"11731:24:64","nodeType":"YulFunctionCall","src":"11731:24:64"}],"functionName":{"name":"mstore","nativeSrc":"11719:6:64","nodeType":"YulIdentifier","src":"11719:6:64"},"nativeSrc":"11719:37:64","nodeType":"YulFunctionCall","src":"11719:37:64"},"nativeSrc":"11719:37:64","nodeType":"YulExpressionStatement","src":"11719:37:64"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"11644:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11697:5:64","nodeType":"YulTypedName","src":"11697:5:64","type":""},{"name":"pos","nativeSrc":"11704:3:64","nodeType":"YulTypedName","src":"11704:3:64","type":""}],"src":"11644:118:64"},{"body":{"nativeSrc":"11866:124:64","nodeType":"YulBlock","src":"11866:124:64","statements":[{"nativeSrc":"11876:26:64","nodeType":"YulAssignment","src":"11876:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"11888:9:64","nodeType":"YulIdentifier","src":"11888:9:64"},{"kind":"number","nativeSrc":"11899:2:64","nodeType":"YulLiteral","src":"11899:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11884:3:64","nodeType":"YulIdentifier","src":"11884:3:64"},"nativeSrc":"11884:18:64","nodeType":"YulFunctionCall","src":"11884:18:64"},"variableNames":[{"name":"tail","nativeSrc":"11876:4:64","nodeType":"YulIdentifier","src":"11876:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11956:6:64","nodeType":"YulIdentifier","src":"11956:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"11969:9:64","nodeType":"YulIdentifier","src":"11969:9:64"},{"kind":"number","nativeSrc":"11980:1:64","nodeType":"YulLiteral","src":"11980:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11965:3:64","nodeType":"YulIdentifier","src":"11965:3:64"},"nativeSrc":"11965:17:64","nodeType":"YulFunctionCall","src":"11965:17:64"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"11912:43:64","nodeType":"YulIdentifier","src":"11912:43:64"},"nativeSrc":"11912:71:64","nodeType":"YulFunctionCall","src":"11912:71:64"},"nativeSrc":"11912:71:64","nodeType":"YulExpressionStatement","src":"11912:71:64"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"11768:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11838:9:64","nodeType":"YulTypedName","src":"11838:9:64","type":""},{"name":"value0","nativeSrc":"11850:6:64","nodeType":"YulTypedName","src":"11850:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11861:4:64","nodeType":"YulTypedName","src":"11861:4:64","type":""}],"src":"11768:222:64"},{"body":{"nativeSrc":"12134:717:64","nodeType":"YulBlock","src":"12134:717:64","statements":[{"body":{"nativeSrc":"12180:83:64","nodeType":"YulBlock","src":"12180:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12182:77:64","nodeType":"YulIdentifier","src":"12182:77:64"},"nativeSrc":"12182:79:64","nodeType":"YulFunctionCall","src":"12182:79:64"},"nativeSrc":"12182:79:64","nodeType":"YulExpressionStatement","src":"12182:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12155:7:64","nodeType":"YulIdentifier","src":"12155:7:64"},{"name":"headStart","nativeSrc":"12164:9:64","nodeType":"YulIdentifier","src":"12164:9:64"}],"functionName":{"name":"sub","nativeSrc":"12151:3:64","nodeType":"YulIdentifier","src":"12151:3:64"},"nativeSrc":"12151:23:64","nodeType":"YulFunctionCall","src":"12151:23:64"},{"kind":"number","nativeSrc":"12176:2:64","nodeType":"YulLiteral","src":"12176:2:64","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"12147:3:64","nodeType":"YulIdentifier","src":"12147:3:64"},"nativeSrc":"12147:32:64","nodeType":"YulFunctionCall","src":"12147:32:64"},"nativeSrc":"12144:119:64","nodeType":"YulIf","src":"12144:119:64"},{"nativeSrc":"12273:135:64","nodeType":"YulBlock","src":"12273:135:64","statements":[{"nativeSrc":"12288:15:64","nodeType":"YulVariableDeclaration","src":"12288:15:64","value":{"kind":"number","nativeSrc":"12302:1:64","nodeType":"YulLiteral","src":"12302:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12292:6:64","nodeType":"YulTypedName","src":"12292:6:64","type":""}]},{"nativeSrc":"12317:81:64","nodeType":"YulAssignment","src":"12317:81:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12370:9:64","nodeType":"YulIdentifier","src":"12370:9:64"},{"name":"offset","nativeSrc":"12381:6:64","nodeType":"YulIdentifier","src":"12381:6:64"}],"functionName":{"name":"add","nativeSrc":"12366:3:64","nodeType":"YulIdentifier","src":"12366:3:64"},"nativeSrc":"12366:22:64","nodeType":"YulFunctionCall","src":"12366:22:64"},{"name":"dataEnd","nativeSrc":"12390:7:64","nodeType":"YulIdentifier","src":"12390:7:64"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12323","nativeSrc":"12327:38:64","nodeType":"YulIdentifier","src":"12327:38:64"},"nativeSrc":"12327:71:64","nodeType":"YulFunctionCall","src":"12327:71:64"},"variableNames":[{"name":"value0","nativeSrc":"12317:6:64","nodeType":"YulIdentifier","src":"12317:6:64"}]}]},{"nativeSrc":"12418:298:64","nodeType":"YulBlock","src":"12418:298:64","statements":[{"nativeSrc":"12433:46:64","nodeType":"YulVariableDeclaration","src":"12433:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12464:9:64","nodeType":"YulIdentifier","src":"12464:9:64"},{"kind":"number","nativeSrc":"12475:2:64","nodeType":"YulLiteral","src":"12475:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12460:3:64","nodeType":"YulIdentifier","src":"12460:3:64"},"nativeSrc":"12460:18:64","nodeType":"YulFunctionCall","src":"12460:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"12447:12:64","nodeType":"YulIdentifier","src":"12447:12:64"},"nativeSrc":"12447:32:64","nodeType":"YulFunctionCall","src":"12447:32:64"},"variables":[{"name":"offset","nativeSrc":"12437:6:64","nodeType":"YulTypedName","src":"12437:6:64","type":""}]},{"body":{"nativeSrc":"12526:83:64","nodeType":"YulBlock","src":"12526:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12528:77:64","nodeType":"YulIdentifier","src":"12528:77:64"},"nativeSrc":"12528:79:64","nodeType":"YulFunctionCall","src":"12528:79:64"},"nativeSrc":"12528:79:64","nodeType":"YulExpressionStatement","src":"12528:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12498:6:64","nodeType":"YulIdentifier","src":"12498:6:64"},{"kind":"number","nativeSrc":"12506:18:64","nodeType":"YulLiteral","src":"12506:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12495:2:64","nodeType":"YulIdentifier","src":"12495:2:64"},"nativeSrc":"12495:30:64","nodeType":"YulFunctionCall","src":"12495:30:64"},"nativeSrc":"12492:117:64","nodeType":"YulIf","src":"12492:117:64"},{"nativeSrc":"12623:83:64","nodeType":"YulAssignment","src":"12623:83:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12678:9:64","nodeType":"YulIdentifier","src":"12678:9:64"},{"name":"offset","nativeSrc":"12689:6:64","nodeType":"YulIdentifier","src":"12689:6:64"}],"functionName":{"name":"add","nativeSrc":"12674:3:64","nodeType":"YulIdentifier","src":"12674:3:64"},"nativeSrc":"12674:22:64","nodeType":"YulFunctionCall","src":"12674:22:64"},{"name":"dataEnd","nativeSrc":"12698:7:64","nodeType":"YulIdentifier","src":"12698:7:64"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"12641:32:64","nodeType":"YulIdentifier","src":"12641:32:64"},"nativeSrc":"12641:65:64","nodeType":"YulFunctionCall","src":"12641:65:64"},"variableNames":[{"name":"value1","nativeSrc":"12623:6:64","nodeType":"YulIdentifier","src":"12623:6:64"},{"name":"value2","nativeSrc":"12631:6:64","nodeType":"YulIdentifier","src":"12631:6:64"}]}]},{"nativeSrc":"12726:118:64","nodeType":"YulBlock","src":"12726:118:64","statements":[{"nativeSrc":"12741:16:64","nodeType":"YulVariableDeclaration","src":"12741:16:64","value":{"kind":"number","nativeSrc":"12755:2:64","nodeType":"YulLiteral","src":"12755:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"12745:6:64","nodeType":"YulTypedName","src":"12745:6:64","type":""}]},{"nativeSrc":"12771:63:64","nodeType":"YulAssignment","src":"12771:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12806:9:64","nodeType":"YulIdentifier","src":"12806:9:64"},{"name":"offset","nativeSrc":"12817:6:64","nodeType":"YulIdentifier","src":"12817:6:64"}],"functionName":{"name":"add","nativeSrc":"12802:3:64","nodeType":"YulIdentifier","src":"12802:3:64"},"nativeSrc":"12802:22:64","nodeType":"YulFunctionCall","src":"12802:22:64"},{"name":"dataEnd","nativeSrc":"12826:7:64","nodeType":"YulIdentifier","src":"12826:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12781:20:64","nodeType":"YulIdentifier","src":"12781:20:64"},"nativeSrc":"12781:53:64","nodeType":"YulFunctionCall","src":"12781:53:64"},"variableNames":[{"name":"value3","nativeSrc":"12771:6:64","nodeType":"YulIdentifier","src":"12771:6:64"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12323t_string_calldata_ptrt_address","nativeSrc":"11996:855:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12080:9:64","nodeType":"YulTypedName","src":"12080:9:64","type":""},{"name":"dataEnd","nativeSrc":"12091:7:64","nodeType":"YulTypedName","src":"12091:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12103:6:64","nodeType":"YulTypedName","src":"12103:6:64","type":""},{"name":"value1","nativeSrc":"12111:6:64","nodeType":"YulTypedName","src":"12111:6:64","type":""},{"name":"value2","nativeSrc":"12119:6:64","nodeType":"YulTypedName","src":"12119:6:64","type":""},{"name":"value3","nativeSrc":"12127:6:64","nodeType":"YulTypedName","src":"12127:6:64","type":""}],"src":"11996:855:64"},{"body":{"nativeSrc":"12978:589:64","nodeType":"YulBlock","src":"12978:589:64","statements":[{"body":{"nativeSrc":"13024:83:64","nodeType":"YulBlock","src":"13024:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13026:77:64","nodeType":"YulIdentifier","src":"13026:77:64"},"nativeSrc":"13026:79:64","nodeType":"YulFunctionCall","src":"13026:79:64"},"nativeSrc":"13026:79:64","nodeType":"YulExpressionStatement","src":"13026:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12999:7:64","nodeType":"YulIdentifier","src":"12999:7:64"},{"name":"headStart","nativeSrc":"13008:9:64","nodeType":"YulIdentifier","src":"13008:9:64"}],"functionName":{"name":"sub","nativeSrc":"12995:3:64","nodeType":"YulIdentifier","src":"12995:3:64"},"nativeSrc":"12995:23:64","nodeType":"YulFunctionCall","src":"12995:23:64"},{"kind":"number","nativeSrc":"13020:2:64","nodeType":"YulLiteral","src":"13020:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12991:3:64","nodeType":"YulIdentifier","src":"12991:3:64"},"nativeSrc":"12991:32:64","nodeType":"YulFunctionCall","src":"12991:32:64"},"nativeSrc":"12988:119:64","nodeType":"YulIf","src":"12988:119:64"},{"nativeSrc":"13117:135:64","nodeType":"YulBlock","src":"13117:135:64","statements":[{"nativeSrc":"13132:15:64","nodeType":"YulVariableDeclaration","src":"13132:15:64","value":{"kind":"number","nativeSrc":"13146:1:64","nodeType":"YulLiteral","src":"13146:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"13136:6:64","nodeType":"YulTypedName","src":"13136:6:64","type":""}]},{"nativeSrc":"13161:81:64","nodeType":"YulAssignment","src":"13161:81:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13214:9:64","nodeType":"YulIdentifier","src":"13214:9:64"},{"name":"offset","nativeSrc":"13225:6:64","nodeType":"YulIdentifier","src":"13225:6:64"}],"functionName":{"name":"add","nativeSrc":"13210:3:64","nodeType":"YulIdentifier","src":"13210:3:64"},"nativeSrc":"13210:22:64","nodeType":"YulFunctionCall","src":"13210:22:64"},{"name":"dataEnd","nativeSrc":"13234:7:64","nodeType":"YulIdentifier","src":"13234:7:64"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12323","nativeSrc":"13171:38:64","nodeType":"YulIdentifier","src":"13171:38:64"},"nativeSrc":"13171:71:64","nodeType":"YulFunctionCall","src":"13171:71:64"},"variableNames":[{"name":"value0","nativeSrc":"13161:6:64","nodeType":"YulIdentifier","src":"13161:6:64"}]}]},{"nativeSrc":"13262:298:64","nodeType":"YulBlock","src":"13262:298:64","statements":[{"nativeSrc":"13277:46:64","nodeType":"YulVariableDeclaration","src":"13277:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13308:9:64","nodeType":"YulIdentifier","src":"13308:9:64"},{"kind":"number","nativeSrc":"13319:2:64","nodeType":"YulLiteral","src":"13319:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13304:3:64","nodeType":"YulIdentifier","src":"13304:3:64"},"nativeSrc":"13304:18:64","nodeType":"YulFunctionCall","src":"13304:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"13291:12:64","nodeType":"YulIdentifier","src":"13291:12:64"},"nativeSrc":"13291:32:64","nodeType":"YulFunctionCall","src":"13291:32:64"},"variables":[{"name":"offset","nativeSrc":"13281:6:64","nodeType":"YulTypedName","src":"13281:6:64","type":""}]},{"body":{"nativeSrc":"13370:83:64","nodeType":"YulBlock","src":"13370:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13372:77:64","nodeType":"YulIdentifier","src":"13372:77:64"},"nativeSrc":"13372:79:64","nodeType":"YulFunctionCall","src":"13372:79:64"},"nativeSrc":"13372:79:64","nodeType":"YulExpressionStatement","src":"13372:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13342:6:64","nodeType":"YulIdentifier","src":"13342:6:64"},{"kind":"number","nativeSrc":"13350:18:64","nodeType":"YulLiteral","src":"13350:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13339:2:64","nodeType":"YulIdentifier","src":"13339:2:64"},"nativeSrc":"13339:30:64","nodeType":"YulFunctionCall","src":"13339:30:64"},"nativeSrc":"13336:117:64","nodeType":"YulIf","src":"13336:117:64"},{"nativeSrc":"13467:83:64","nodeType":"YulAssignment","src":"13467:83:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13522:9:64","nodeType":"YulIdentifier","src":"13522:9:64"},{"name":"offset","nativeSrc":"13533:6:64","nodeType":"YulIdentifier","src":"13533:6:64"}],"functionName":{"name":"add","nativeSrc":"13518:3:64","nodeType":"YulIdentifier","src":"13518:3:64"},"nativeSrc":"13518:22:64","nodeType":"YulFunctionCall","src":"13518:22:64"},{"name":"dataEnd","nativeSrc":"13542:7:64","nodeType":"YulIdentifier","src":"13542:7:64"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"13485:32:64","nodeType":"YulIdentifier","src":"13485:32:64"},"nativeSrc":"13485:65:64","nodeType":"YulFunctionCall","src":"13485:65:64"},"variableNames":[{"name":"value1","nativeSrc":"13467:6:64","nodeType":"YulIdentifier","src":"13467:6:64"},{"name":"value2","nativeSrc":"13475:6:64","nodeType":"YulIdentifier","src":"13475:6:64"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12323t_string_calldata_ptr","nativeSrc":"12857:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12932:9:64","nodeType":"YulTypedName","src":"12932:9:64","type":""},{"name":"dataEnd","nativeSrc":"12943:7:64","nodeType":"YulTypedName","src":"12943:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12955:6:64","nodeType":"YulTypedName","src":"12955:6:64","type":""},{"name":"value1","nativeSrc":"12963:6:64","nodeType":"YulTypedName","src":"12963:6:64","type":""},{"name":"value2","nativeSrc":"12971:6:64","nodeType":"YulTypedName","src":"12971:6:64","type":""}],"src":"12857:710:64"},{"body":{"nativeSrc":"13660:478:64","nodeType":"YulBlock","src":"13660:478:64","statements":[{"body":{"nativeSrc":"13709:83:64","nodeType":"YulBlock","src":"13709:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"13711:77:64","nodeType":"YulIdentifier","src":"13711:77:64"},"nativeSrc":"13711:79:64","nodeType":"YulFunctionCall","src":"13711:79:64"},"nativeSrc":"13711:79:64","nodeType":"YulExpressionStatement","src":"13711:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"13688:6:64","nodeType":"YulIdentifier","src":"13688:6:64"},{"kind":"number","nativeSrc":"13696:4:64","nodeType":"YulLiteral","src":"13696:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"13684:3:64","nodeType":"YulIdentifier","src":"13684:3:64"},"nativeSrc":"13684:17:64","nodeType":"YulFunctionCall","src":"13684:17:64"},{"name":"end","nativeSrc":"13703:3:64","nodeType":"YulIdentifier","src":"13703:3:64"}],"functionName":{"name":"slt","nativeSrc":"13680:3:64","nodeType":"YulIdentifier","src":"13680:3:64"},"nativeSrc":"13680:27:64","nodeType":"YulFunctionCall","src":"13680:27:64"}],"functionName":{"name":"iszero","nativeSrc":"13673:6:64","nodeType":"YulIdentifier","src":"13673:6:64"},"nativeSrc":"13673:35:64","nodeType":"YulFunctionCall","src":"13673:35:64"},"nativeSrc":"13670:122:64","nodeType":"YulIf","src":"13670:122:64"},{"nativeSrc":"13801:30:64","nodeType":"YulAssignment","src":"13801:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"13824:6:64","nodeType":"YulIdentifier","src":"13824:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"13811:12:64","nodeType":"YulIdentifier","src":"13811:12:64"},"nativeSrc":"13811:20:64","nodeType":"YulFunctionCall","src":"13811:20:64"},"variableNames":[{"name":"length","nativeSrc":"13801:6:64","nodeType":"YulIdentifier","src":"13801:6:64"}]},{"body":{"nativeSrc":"13874:83:64","nodeType":"YulBlock","src":"13874:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"13876:77:64","nodeType":"YulIdentifier","src":"13876:77:64"},"nativeSrc":"13876:79:64","nodeType":"YulFunctionCall","src":"13876:79:64"},"nativeSrc":"13876:79:64","nodeType":"YulExpressionStatement","src":"13876:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13846:6:64","nodeType":"YulIdentifier","src":"13846:6:64"},{"kind":"number","nativeSrc":"13854:18:64","nodeType":"YulLiteral","src":"13854:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13843:2:64","nodeType":"YulIdentifier","src":"13843:2:64"},"nativeSrc":"13843:30:64","nodeType":"YulFunctionCall","src":"13843:30:64"},"nativeSrc":"13840:117:64","nodeType":"YulIf","src":"13840:117:64"},{"nativeSrc":"13966:29:64","nodeType":"YulAssignment","src":"13966:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"13982:6:64","nodeType":"YulIdentifier","src":"13982:6:64"},{"kind":"number","nativeSrc":"13990:4:64","nodeType":"YulLiteral","src":"13990:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13978:3:64","nodeType":"YulIdentifier","src":"13978:3:64"},"nativeSrc":"13978:17:64","nodeType":"YulFunctionCall","src":"13978:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"13966:8:64","nodeType":"YulIdentifier","src":"13966:8:64"}]},{"body":{"nativeSrc":"14049:83:64","nodeType":"YulBlock","src":"14049:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"14051:77:64","nodeType":"YulIdentifier","src":"14051:77:64"},"nativeSrc":"14051:79:64","nodeType":"YulFunctionCall","src":"14051:79:64"},"nativeSrc":"14051:79:64","nodeType":"YulExpressionStatement","src":"14051:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"14014:8:64","nodeType":"YulIdentifier","src":"14014:8:64"},{"arguments":[{"name":"length","nativeSrc":"14028:6:64","nodeType":"YulIdentifier","src":"14028:6:64"},{"kind":"number","nativeSrc":"14036:4:64","nodeType":"YulLiteral","src":"14036:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"14024:3:64","nodeType":"YulIdentifier","src":"14024:3:64"},"nativeSrc":"14024:17:64","nodeType":"YulFunctionCall","src":"14024:17:64"}],"functionName":{"name":"add","nativeSrc":"14010:3:64","nodeType":"YulIdentifier","src":"14010:3:64"},"nativeSrc":"14010:32:64","nodeType":"YulFunctionCall","src":"14010:32:64"},{"name":"end","nativeSrc":"14044:3:64","nodeType":"YulIdentifier","src":"14044:3:64"}],"functionName":{"name":"gt","nativeSrc":"14007:2:64","nodeType":"YulIdentifier","src":"14007:2:64"},"nativeSrc":"14007:41:64","nodeType":"YulFunctionCall","src":"14007:41:64"},"nativeSrc":"14004:128:64","nodeType":"YulIf","src":"14004:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"13586:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13627:6:64","nodeType":"YulTypedName","src":"13627:6:64","type":""},{"name":"end","nativeSrc":"13635:3:64","nodeType":"YulTypedName","src":"13635:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"13643:8:64","nodeType":"YulTypedName","src":"13643:8:64","type":""},{"name":"length","nativeSrc":"13653:6:64","nodeType":"YulTypedName","src":"13653:6:64","type":""}],"src":"13586:552:64"},{"body":{"nativeSrc":"14318:1025:64","nodeType":"YulBlock","src":"14318:1025:64","statements":[{"body":{"nativeSrc":"14365:83:64","nodeType":"YulBlock","src":"14365:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14367:77:64","nodeType":"YulIdentifier","src":"14367:77:64"},"nativeSrc":"14367:79:64","nodeType":"YulFunctionCall","src":"14367:79:64"},"nativeSrc":"14367:79:64","nodeType":"YulExpressionStatement","src":"14367:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14339:7:64","nodeType":"YulIdentifier","src":"14339:7:64"},{"name":"headStart","nativeSrc":"14348:9:64","nodeType":"YulIdentifier","src":"14348:9:64"}],"functionName":{"name":"sub","nativeSrc":"14335:3:64","nodeType":"YulIdentifier","src":"14335:3:64"},"nativeSrc":"14335:23:64","nodeType":"YulFunctionCall","src":"14335:23:64"},{"kind":"number","nativeSrc":"14360:3:64","nodeType":"YulLiteral","src":"14360:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"14331:3:64","nodeType":"YulIdentifier","src":"14331:3:64"},"nativeSrc":"14331:33:64","nodeType":"YulFunctionCall","src":"14331:33:64"},"nativeSrc":"14328:120:64","nodeType":"YulIf","src":"14328:120:64"},{"nativeSrc":"14458:135:64","nodeType":"YulBlock","src":"14458:135:64","statements":[{"nativeSrc":"14473:15:64","nodeType":"YulVariableDeclaration","src":"14473:15:64","value":{"kind":"number","nativeSrc":"14487:1:64","nodeType":"YulLiteral","src":"14487:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14477:6:64","nodeType":"YulTypedName","src":"14477:6:64","type":""}]},{"nativeSrc":"14502:81:64","nodeType":"YulAssignment","src":"14502:81:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14555:9:64","nodeType":"YulIdentifier","src":"14555:9:64"},{"name":"offset","nativeSrc":"14566:6:64","nodeType":"YulIdentifier","src":"14566:6:64"}],"functionName":{"name":"add","nativeSrc":"14551:3:64","nodeType":"YulIdentifier","src":"14551:3:64"},"nativeSrc":"14551:22:64","nodeType":"YulFunctionCall","src":"14551:22:64"},{"name":"dataEnd","nativeSrc":"14575:7:64","nodeType":"YulIdentifier","src":"14575:7:64"}],"functionName":{"name":"abi_decode_t_enum$_RegistryType_$12323","nativeSrc":"14512:38:64","nodeType":"YulIdentifier","src":"14512:38:64"},"nativeSrc":"14512:71:64","nodeType":"YulFunctionCall","src":"14512:71:64"},"variableNames":[{"name":"value0","nativeSrc":"14502:6:64","nodeType":"YulIdentifier","src":"14502:6:64"}]}]},{"nativeSrc":"14603:118:64","nodeType":"YulBlock","src":"14603:118:64","statements":[{"nativeSrc":"14618:16:64","nodeType":"YulVariableDeclaration","src":"14618:16:64","value":{"kind":"number","nativeSrc":"14632:2:64","nodeType":"YulLiteral","src":"14632:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"14622:6:64","nodeType":"YulTypedName","src":"14622:6:64","type":""}]},{"nativeSrc":"14648:63:64","nodeType":"YulAssignment","src":"14648:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14683:9:64","nodeType":"YulIdentifier","src":"14683:9:64"},{"name":"offset","nativeSrc":"14694:6:64","nodeType":"YulIdentifier","src":"14694:6:64"}],"functionName":{"name":"add","nativeSrc":"14679:3:64","nodeType":"YulIdentifier","src":"14679:3:64"},"nativeSrc":"14679:22:64","nodeType":"YulFunctionCall","src":"14679:22:64"},{"name":"dataEnd","nativeSrc":"14703:7:64","nodeType":"YulIdentifier","src":"14703:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"14658:20:64","nodeType":"YulIdentifier","src":"14658:20:64"},"nativeSrc":"14658:53:64","nodeType":"YulFunctionCall","src":"14658:53:64"},"variableNames":[{"name":"value1","nativeSrc":"14648:6:64","nodeType":"YulIdentifier","src":"14648:6:64"}]}]},{"nativeSrc":"14731:298:64","nodeType":"YulBlock","src":"14731:298:64","statements":[{"nativeSrc":"14746:46:64","nodeType":"YulVariableDeclaration","src":"14746:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14777:9:64","nodeType":"YulIdentifier","src":"14777:9:64"},{"kind":"number","nativeSrc":"14788:2:64","nodeType":"YulLiteral","src":"14788:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14773:3:64","nodeType":"YulIdentifier","src":"14773:3:64"},"nativeSrc":"14773:18:64","nodeType":"YulFunctionCall","src":"14773:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"14760:12:64","nodeType":"YulIdentifier","src":"14760:12:64"},"nativeSrc":"14760:32:64","nodeType":"YulFunctionCall","src":"14760:32:64"},"variables":[{"name":"offset","nativeSrc":"14750:6:64","nodeType":"YulTypedName","src":"14750:6:64","type":""}]},{"body":{"nativeSrc":"14839:83:64","nodeType":"YulBlock","src":"14839:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"14841:77:64","nodeType":"YulIdentifier","src":"14841:77:64"},"nativeSrc":"14841:79:64","nodeType":"YulFunctionCall","src":"14841:79:64"},"nativeSrc":"14841:79:64","nodeType":"YulExpressionStatement","src":"14841:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14811:6:64","nodeType":"YulIdentifier","src":"14811:6:64"},{"kind":"number","nativeSrc":"14819:18:64","nodeType":"YulLiteral","src":"14819:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14808:2:64","nodeType":"YulIdentifier","src":"14808:2:64"},"nativeSrc":"14808:30:64","nodeType":"YulFunctionCall","src":"14808:30:64"},"nativeSrc":"14805:117:64","nodeType":"YulIf","src":"14805:117:64"},{"nativeSrc":"14936:83:64","nodeType":"YulAssignment","src":"14936:83:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14991:9:64","nodeType":"YulIdentifier","src":"14991:9:64"},{"name":"offset","nativeSrc":"15002:6:64","nodeType":"YulIdentifier","src":"15002:6:64"}],"functionName":{"name":"add","nativeSrc":"14987:3:64","nodeType":"YulIdentifier","src":"14987:3:64"},"nativeSrc":"14987:22:64","nodeType":"YulFunctionCall","src":"14987:22:64"},{"name":"dataEnd","nativeSrc":"15011:7:64","nodeType":"YulIdentifier","src":"15011:7:64"}],"functionName":{"name":"abi_decode_t_string_calldata_ptr","nativeSrc":"14954:32:64","nodeType":"YulIdentifier","src":"14954:32:64"},"nativeSrc":"14954:65:64","nodeType":"YulFunctionCall","src":"14954:65:64"},"variableNames":[{"name":"value2","nativeSrc":"14936:6:64","nodeType":"YulIdentifier","src":"14936:6:64"},{"name":"value3","nativeSrc":"14944:6:64","nodeType":"YulIdentifier","src":"14944:6:64"}]}]},{"nativeSrc":"15039:297:64","nodeType":"YulBlock","src":"15039:297:64","statements":[{"nativeSrc":"15054:46:64","nodeType":"YulVariableDeclaration","src":"15054:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15085:9:64","nodeType":"YulIdentifier","src":"15085:9:64"},{"kind":"number","nativeSrc":"15096:2:64","nodeType":"YulLiteral","src":"15096:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"15081:3:64","nodeType":"YulIdentifier","src":"15081:3:64"},"nativeSrc":"15081:18:64","nodeType":"YulFunctionCall","src":"15081:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"15068:12:64","nodeType":"YulIdentifier","src":"15068:12:64"},"nativeSrc":"15068:32:64","nodeType":"YulFunctionCall","src":"15068:32:64"},"variables":[{"name":"offset","nativeSrc":"15058:6:64","nodeType":"YulTypedName","src":"15058:6:64","type":""}]},{"body":{"nativeSrc":"15147:83:64","nodeType":"YulBlock","src":"15147:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"15149:77:64","nodeType":"YulIdentifier","src":"15149:77:64"},"nativeSrc":"15149:79:64","nodeType":"YulFunctionCall","src":"15149:79:64"},"nativeSrc":"15149:79:64","nodeType":"YulExpressionStatement","src":"15149:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15119:6:64","nodeType":"YulIdentifier","src":"15119:6:64"},{"kind":"number","nativeSrc":"15127:18:64","nodeType":"YulLiteral","src":"15127:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15116:2:64","nodeType":"YulIdentifier","src":"15116:2:64"},"nativeSrc":"15116:30:64","nodeType":"YulFunctionCall","src":"15116:30:64"},"nativeSrc":"15113:117:64","nodeType":"YulIf","src":"15113:117:64"},{"nativeSrc":"15244:82:64","nodeType":"YulAssignment","src":"15244:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15298:9:64","nodeType":"YulIdentifier","src":"15298:9:64"},{"name":"offset","nativeSrc":"15309:6:64","nodeType":"YulIdentifier","src":"15309:6:64"}],"functionName":{"name":"add","nativeSrc":"15294:3:64","nodeType":"YulIdentifier","src":"15294:3:64"},"nativeSrc":"15294:22:64","nodeType":"YulFunctionCall","src":"15294:22:64"},{"name":"dataEnd","nativeSrc":"15318:7:64","nodeType":"YulIdentifier","src":"15318:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"15262:31:64","nodeType":"YulIdentifier","src":"15262:31:64"},"nativeSrc":"15262:64:64","nodeType":"YulFunctionCall","src":"15262:64:64"},"variableNames":[{"name":"value4","nativeSrc":"15244:6:64","nodeType":"YulIdentifier","src":"15244:6:64"},{"name":"value5","nativeSrc":"15252:6:64","nodeType":"YulIdentifier","src":"15252:6:64"}]}]}]},"name":"abi_decode_tuple_t_enum$_RegistryType_$12323t_addresst_string_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"14144:1199:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14248:9:64","nodeType":"YulTypedName","src":"14248:9:64","type":""},{"name":"dataEnd","nativeSrc":"14259:7:64","nodeType":"YulTypedName","src":"14259:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14271:6:64","nodeType":"YulTypedName","src":"14271:6:64","type":""},{"name":"value1","nativeSrc":"14279:6:64","nodeType":"YulTypedName","src":"14279:6:64","type":""},{"name":"value2","nativeSrc":"14287:6:64","nodeType":"YulTypedName","src":"14287:6:64","type":""},{"name":"value3","nativeSrc":"14295:6:64","nodeType":"YulTypedName","src":"14295:6:64","type":""},{"name":"value4","nativeSrc":"14303:6:64","nodeType":"YulTypedName","src":"14303:6:64","type":""},{"name":"value5","nativeSrc":"14311:6:64","nodeType":"YulTypedName","src":"14311:6:64","type":""}],"src":"14144:1199:64"},{"body":{"nativeSrc":"15377:152:64","nodeType":"YulBlock","src":"15377:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15394:1:64","nodeType":"YulLiteral","src":"15394:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"15397:77:64","nodeType":"YulLiteral","src":"15397:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15387:6:64","nodeType":"YulIdentifier","src":"15387:6:64"},"nativeSrc":"15387:88:64","nodeType":"YulFunctionCall","src":"15387:88:64"},"nativeSrc":"15387:88:64","nodeType":"YulExpressionStatement","src":"15387:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15491:1:64","nodeType":"YulLiteral","src":"15491:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"15494:4:64","nodeType":"YulLiteral","src":"15494:4:64","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"15484:6:64","nodeType":"YulIdentifier","src":"15484:6:64"},"nativeSrc":"15484:15:64","nodeType":"YulFunctionCall","src":"15484:15:64"},"nativeSrc":"15484:15:64","nodeType":"YulExpressionStatement","src":"15484:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15515:1:64","nodeType":"YulLiteral","src":"15515:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"15518:4:64","nodeType":"YulLiteral","src":"15518:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"15508:6:64","nodeType":"YulIdentifier","src":"15508:6:64"},"nativeSrc":"15508:15:64","nodeType":"YulFunctionCall","src":"15508:15:64"},"nativeSrc":"15508:15:64","nodeType":"YulExpressionStatement","src":"15508:15:64"}]},"name":"panic_error_0x22","nativeSrc":"15349:180:64","nodeType":"YulFunctionDefinition","src":"15349:180:64"},{"body":{"nativeSrc":"15586:269:64","nodeType":"YulBlock","src":"15586:269:64","statements":[{"nativeSrc":"15596:22:64","nodeType":"YulAssignment","src":"15596:22:64","value":{"arguments":[{"name":"data","nativeSrc":"15610:4:64","nodeType":"YulIdentifier","src":"15610:4:64"},{"kind":"number","nativeSrc":"15616:1:64","nodeType":"YulLiteral","src":"15616:1:64","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"15606:3:64","nodeType":"YulIdentifier","src":"15606:3:64"},"nativeSrc":"15606:12:64","nodeType":"YulFunctionCall","src":"15606:12:64"},"variableNames":[{"name":"length","nativeSrc":"15596:6:64","nodeType":"YulIdentifier","src":"15596:6:64"}]},{"nativeSrc":"15627:38:64","nodeType":"YulVariableDeclaration","src":"15627:38:64","value":{"arguments":[{"name":"data","nativeSrc":"15657:4:64","nodeType":"YulIdentifier","src":"15657:4:64"},{"kind":"number","nativeSrc":"15663:1:64","nodeType":"YulLiteral","src":"15663:1:64","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"15653:3:64","nodeType":"YulIdentifier","src":"15653:3:64"},"nativeSrc":"15653:12:64","nodeType":"YulFunctionCall","src":"15653:12:64"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"15631:18:64","nodeType":"YulTypedName","src":"15631:18:64","type":""}]},{"body":{"nativeSrc":"15704:51:64","nodeType":"YulBlock","src":"15704:51:64","statements":[{"nativeSrc":"15718:27:64","nodeType":"YulAssignment","src":"15718:27:64","value":{"arguments":[{"name":"length","nativeSrc":"15732:6:64","nodeType":"YulIdentifier","src":"15732:6:64"},{"kind":"number","nativeSrc":"15740:4:64","nodeType":"YulLiteral","src":"15740:4:64","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"15728:3:64","nodeType":"YulIdentifier","src":"15728:3:64"},"nativeSrc":"15728:17:64","nodeType":"YulFunctionCall","src":"15728:17:64"},"variableNames":[{"name":"length","nativeSrc":"15718:6:64","nodeType":"YulIdentifier","src":"15718:6:64"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15684:18:64","nodeType":"YulIdentifier","src":"15684:18:64"}],"functionName":{"name":"iszero","nativeSrc":"15677:6:64","nodeType":"YulIdentifier","src":"15677:6:64"},"nativeSrc":"15677:26:64","nodeType":"YulFunctionCall","src":"15677:26:64"},"nativeSrc":"15674:81:64","nodeType":"YulIf","src":"15674:81:64"},{"body":{"nativeSrc":"15807:42:64","nodeType":"YulBlock","src":"15807:42:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"15821:16:64","nodeType":"YulIdentifier","src":"15821:16:64"},"nativeSrc":"15821:18:64","nodeType":"YulFunctionCall","src":"15821:18:64"},"nativeSrc":"15821:18:64","nodeType":"YulExpressionStatement","src":"15821:18:64"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"15771:18:64","nodeType":"YulIdentifier","src":"15771:18:64"},{"arguments":[{"name":"length","nativeSrc":"15794:6:64","nodeType":"YulIdentifier","src":"15794:6:64"},{"kind":"number","nativeSrc":"15802:2:64","nodeType":"YulLiteral","src":"15802:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"15791:2:64","nodeType":"YulIdentifier","src":"15791:2:64"},"nativeSrc":"15791:14:64","nodeType":"YulFunctionCall","src":"15791:14:64"}],"functionName":{"name":"eq","nativeSrc":"15768:2:64","nodeType":"YulIdentifier","src":"15768:2:64"},"nativeSrc":"15768:38:64","nodeType":"YulFunctionCall","src":"15768:38:64"},"nativeSrc":"15765:84:64","nodeType":"YulIf","src":"15765:84:64"}]},"name":"extract_byte_array_length","nativeSrc":"15535:320:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"15570:4:64","nodeType":"YulTypedName","src":"15570:4:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"15579:6:64","nodeType":"YulTypedName","src":"15579:6:64","type":""}],"src":"15535:320:64"},{"body":{"nativeSrc":"15903:52:64","nodeType":"YulBlock","src":"15903:52:64","statements":[{"nativeSrc":"15913:35:64","nodeType":"YulAssignment","src":"15913:35:64","value":{"arguments":[{"kind":"number","nativeSrc":"15938:2:64","nodeType":"YulLiteral","src":"15938:2:64","type":"","value":"96"},{"name":"value","nativeSrc":"15942:5:64","nodeType":"YulIdentifier","src":"15942:5:64"}],"functionName":{"name":"shl","nativeSrc":"15934:3:64","nodeType":"YulIdentifier","src":"15934:3:64"},"nativeSrc":"15934:14:64","nodeType":"YulFunctionCall","src":"15934:14:64"},"variableNames":[{"name":"newValue","nativeSrc":"15913:8:64","nodeType":"YulIdentifier","src":"15913:8:64"}]}]},"name":"shift_left_96","nativeSrc":"15861:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15884:5:64","nodeType":"YulTypedName","src":"15884:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"15894:8:64","nodeType":"YulTypedName","src":"15894:8:64","type":""}],"src":"15861:94:64"},{"body":{"nativeSrc":"16008:47:64","nodeType":"YulBlock","src":"16008:47:64","statements":[{"nativeSrc":"16018:31:64","nodeType":"YulAssignment","src":"16018:31:64","value":{"arguments":[{"name":"value","nativeSrc":"16043:5:64","nodeType":"YulIdentifier","src":"16043:5:64"}],"functionName":{"name":"shift_left_96","nativeSrc":"16029:13:64","nodeType":"YulIdentifier","src":"16029:13:64"},"nativeSrc":"16029:20:64","nodeType":"YulFunctionCall","src":"16029:20:64"},"variableNames":[{"name":"aligned","nativeSrc":"16018:7:64","nodeType":"YulIdentifier","src":"16018:7:64"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"15961:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15990:5:64","nodeType":"YulTypedName","src":"15990:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"16000:7:64","nodeType":"YulTypedName","src":"16000:7:64","type":""}],"src":"15961:94:64"},{"body":{"nativeSrc":"16108:53:64","nodeType":"YulBlock","src":"16108:53:64","statements":[{"nativeSrc":"16118:37:64","nodeType":"YulAssignment","src":"16118:37:64","value":{"arguments":[{"name":"value","nativeSrc":"16149:5:64","nodeType":"YulIdentifier","src":"16149:5:64"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"16129:19:64","nodeType":"YulIdentifier","src":"16129:19:64"},"nativeSrc":"16129:26:64","nodeType":"YulFunctionCall","src":"16129:26:64"},"variableNames":[{"name":"aligned","nativeSrc":"16118:7:64","nodeType":"YulIdentifier","src":"16118:7:64"}]}]},"name":"leftAlign_t_address","nativeSrc":"16061:100:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16090:5:64","nodeType":"YulTypedName","src":"16090:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"16100:7:64","nodeType":"YulTypedName","src":"16100:7:64","type":""}],"src":"16061:100:64"},{"body":{"nativeSrc":"16250:74:64","nodeType":"YulBlock","src":"16250:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16267:3:64","nodeType":"YulIdentifier","src":"16267:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16310:5:64","nodeType":"YulIdentifier","src":"16310:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"16292:17:64","nodeType":"YulIdentifier","src":"16292:17:64"},"nativeSrc":"16292:24:64","nodeType":"YulFunctionCall","src":"16292:24:64"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"16272:19:64","nodeType":"YulIdentifier","src":"16272:19:64"},"nativeSrc":"16272:45:64","nodeType":"YulFunctionCall","src":"16272:45:64"}],"functionName":{"name":"mstore","nativeSrc":"16260:6:64","nodeType":"YulIdentifier","src":"16260:6:64"},"nativeSrc":"16260:58:64","nodeType":"YulFunctionCall","src":"16260:58:64"},"nativeSrc":"16260:58:64","nodeType":"YulExpressionStatement","src":"16260:58:64"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"16167:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16238:5:64","nodeType":"YulTypedName","src":"16238:5:64","type":""},{"name":"pos","nativeSrc":"16245:3:64","nodeType":"YulTypedName","src":"16245:3:64","type":""}],"src":"16167:157:64"},{"body":{"nativeSrc":"16444:34:64","nodeType":"YulBlock","src":"16444:34:64","statements":[{"nativeSrc":"16454:18:64","nodeType":"YulAssignment","src":"16454:18:64","value":{"name":"pos","nativeSrc":"16469:3:64","nodeType":"YulIdentifier","src":"16469:3:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"16454:11:64","nodeType":"YulIdentifier","src":"16454:11:64"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16330:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16416:3:64","nodeType":"YulTypedName","src":"16416:3:64","type":""},{"name":"length","nativeSrc":"16421:6:64","nodeType":"YulTypedName","src":"16421:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"16432:11:64","nodeType":"YulTypedName","src":"16432:11:64","type":""}],"src":"16330:148:64"},{"body":{"nativeSrc":"16548:84:64","nodeType":"YulBlock","src":"16548:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"16572:3:64","nodeType":"YulIdentifier","src":"16572:3:64"},{"name":"src","nativeSrc":"16577:3:64","nodeType":"YulIdentifier","src":"16577:3:64"},{"name":"length","nativeSrc":"16582:6:64","nodeType":"YulIdentifier","src":"16582:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"16559:12:64","nodeType":"YulIdentifier","src":"16559:12:64"},"nativeSrc":"16559:30:64","nodeType":"YulFunctionCall","src":"16559:30:64"},"nativeSrc":"16559:30:64","nodeType":"YulExpressionStatement","src":"16559:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"16609:3:64","nodeType":"YulIdentifier","src":"16609:3:64"},{"name":"length","nativeSrc":"16614:6:64","nodeType":"YulIdentifier","src":"16614:6:64"}],"functionName":{"name":"add","nativeSrc":"16605:3:64","nodeType":"YulIdentifier","src":"16605:3:64"},"nativeSrc":"16605:16:64","nodeType":"YulFunctionCall","src":"16605:16:64"},{"kind":"number","nativeSrc":"16623:1:64","nodeType":"YulLiteral","src":"16623:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"16598:6:64","nodeType":"YulIdentifier","src":"16598:6:64"},"nativeSrc":"16598:27:64","nodeType":"YulFunctionCall","src":"16598:27:64"},"nativeSrc":"16598:27:64","nodeType":"YulExpressionStatement","src":"16598:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"16484:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"16530:3:64","nodeType":"YulTypedName","src":"16530:3:64","type":""},{"name":"dst","nativeSrc":"16535:3:64","nodeType":"YulTypedName","src":"16535:3:64","type":""},{"name":"length","nativeSrc":"16540:6:64","nodeType":"YulTypedName","src":"16540:6:64","type":""}],"src":"16484:148:64"},{"body":{"nativeSrc":"16782:210:64","nodeType":"YulBlock","src":"16782:210:64","statements":[{"nativeSrc":"16792:96:64","nodeType":"YulAssignment","src":"16792:96:64","value":{"arguments":[{"name":"pos","nativeSrc":"16876:3:64","nodeType":"YulIdentifier","src":"16876:3:64"},{"name":"length","nativeSrc":"16881:6:64","nodeType":"YulIdentifier","src":"16881:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16799:76:64","nodeType":"YulIdentifier","src":"16799:76:64"},"nativeSrc":"16799:89:64","nodeType":"YulFunctionCall","src":"16799:89:64"},"variableNames":[{"name":"pos","nativeSrc":"16792:3:64","nodeType":"YulIdentifier","src":"16792:3:64"}]},{"expression":{"arguments":[{"name":"start","nativeSrc":"16935:5:64","nodeType":"YulIdentifier","src":"16935:5:64"},{"name":"pos","nativeSrc":"16942:3:64","nodeType":"YulIdentifier","src":"16942:3:64"},{"name":"length","nativeSrc":"16947:6:64","nodeType":"YulIdentifier","src":"16947:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"16898:36:64","nodeType":"YulIdentifier","src":"16898:36:64"},"nativeSrc":"16898:56:64","nodeType":"YulFunctionCall","src":"16898:56:64"},"nativeSrc":"16898:56:64","nodeType":"YulExpressionStatement","src":"16898:56:64"},{"nativeSrc":"16963:23:64","nodeType":"YulAssignment","src":"16963:23:64","value":{"arguments":[{"name":"pos","nativeSrc":"16974:3:64","nodeType":"YulIdentifier","src":"16974:3:64"},{"name":"length","nativeSrc":"16979:6:64","nodeType":"YulIdentifier","src":"16979:6:64"}],"functionName":{"name":"add","nativeSrc":"16970:3:64","nodeType":"YulIdentifier","src":"16970:3:64"},"nativeSrc":"16970:16:64","nodeType":"YulFunctionCall","src":"16970:16:64"},"variableNames":[{"name":"end","nativeSrc":"16963:3:64","nodeType":"YulIdentifier","src":"16963:3:64"}]}]},"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"16662:330:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"16755:5:64","nodeType":"YulTypedName","src":"16755:5:64","type":""},{"name":"length","nativeSrc":"16762:6:64","nodeType":"YulTypedName","src":"16762:6:64","type":""},{"name":"pos","nativeSrc":"16770:3:64","nodeType":"YulTypedName","src":"16770:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16778:3:64","nodeType":"YulTypedName","src":"16778:3:64","type":""}],"src":"16662:330:64"},{"body":{"nativeSrc":"17200:375:64","nodeType":"YulBlock","src":"17200:375:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"17273:6:64","nodeType":"YulIdentifier","src":"17273:6:64"},{"name":"pos","nativeSrc":"17282:3:64","nodeType":"YulIdentifier","src":"17282:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17211:61:64","nodeType":"YulIdentifier","src":"17211:61:64"},"nativeSrc":"17211:75:64","nodeType":"YulFunctionCall","src":"17211:75:64"},"nativeSrc":"17211:75:64","nodeType":"YulExpressionStatement","src":"17211:75:64"},{"nativeSrc":"17295:19:64","nodeType":"YulAssignment","src":"17295:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"17306:3:64","nodeType":"YulIdentifier","src":"17306:3:64"},{"kind":"number","nativeSrc":"17311:2:64","nodeType":"YulLiteral","src":"17311:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"17302:3:64","nodeType":"YulIdentifier","src":"17302:3:64"},"nativeSrc":"17302:12:64","nodeType":"YulFunctionCall","src":"17302:12:64"},"variableNames":[{"name":"pos","nativeSrc":"17295:3:64","nodeType":"YulIdentifier","src":"17295:3:64"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"17386:6:64","nodeType":"YulIdentifier","src":"17386:6:64"},{"name":"pos","nativeSrc":"17395:3:64","nodeType":"YulIdentifier","src":"17395:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"17324:61:64","nodeType":"YulIdentifier","src":"17324:61:64"},"nativeSrc":"17324:75:64","nodeType":"YulFunctionCall","src":"17324:75:64"},"nativeSrc":"17324:75:64","nodeType":"YulExpressionStatement","src":"17324:75:64"},{"nativeSrc":"17408:19:64","nodeType":"YulAssignment","src":"17408:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"17419:3:64","nodeType":"YulIdentifier","src":"17419:3:64"},{"kind":"number","nativeSrc":"17424:2:64","nodeType":"YulLiteral","src":"17424:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"17415:3:64","nodeType":"YulIdentifier","src":"17415:3:64"},"nativeSrc":"17415:12:64","nodeType":"YulFunctionCall","src":"17415:12:64"},"variableNames":[{"name":"pos","nativeSrc":"17408:3:64","nodeType":"YulIdentifier","src":"17408:3:64"}]},{"nativeSrc":"17437:112:64","nodeType":"YulAssignment","src":"17437:112:64","value":{"arguments":[{"name":"value2","nativeSrc":"17528:6:64","nodeType":"YulIdentifier","src":"17528:6:64"},{"name":"value3","nativeSrc":"17536:6:64","nodeType":"YulIdentifier","src":"17536:6:64"},{"name":"pos","nativeSrc":"17545:3:64","nodeType":"YulIdentifier","src":"17545:3:64"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"17444:83:64","nodeType":"YulIdentifier","src":"17444:83:64"},"nativeSrc":"17444:105:64","nodeType":"YulFunctionCall","src":"17444:105:64"},"variableNames":[{"name":"pos","nativeSrc":"17437:3:64","nodeType":"YulIdentifier","src":"17437:3:64"}]},{"nativeSrc":"17559:10:64","nodeType":"YulAssignment","src":"17559:10:64","value":{"name":"pos","nativeSrc":"17566:3:64","nodeType":"YulIdentifier","src":"17566:3:64"},"variableNames":[{"name":"end","nativeSrc":"17559:3:64","nodeType":"YulIdentifier","src":"17559:3:64"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"16998:577:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17155:3:64","nodeType":"YulTypedName","src":"17155:3:64","type":""},{"name":"value3","nativeSrc":"17161:6:64","nodeType":"YulTypedName","src":"17161:6:64","type":""},{"name":"value2","nativeSrc":"17169:6:64","nodeType":"YulTypedName","src":"17169:6:64","type":""},{"name":"value1","nativeSrc":"17177:6:64","nodeType":"YulTypedName","src":"17177:6:64","type":""},{"name":"value0","nativeSrc":"17185:6:64","nodeType":"YulTypedName","src":"17185:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17196:3:64","nodeType":"YulTypedName","src":"17196:3:64","type":""}],"src":"16998:577:64"},{"body":{"nativeSrc":"17644:52:64","nodeType":"YulBlock","src":"17644:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17661:3:64","nodeType":"YulIdentifier","src":"17661:3:64"},{"arguments":[{"name":"value","nativeSrc":"17683:5:64","nodeType":"YulIdentifier","src":"17683:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"17666:16:64","nodeType":"YulIdentifier","src":"17666:16:64"},"nativeSrc":"17666:23:64","nodeType":"YulFunctionCall","src":"17666:23:64"}],"functionName":{"name":"mstore","nativeSrc":"17654:6:64","nodeType":"YulIdentifier","src":"17654:6:64"},"nativeSrc":"17654:36:64","nodeType":"YulFunctionCall","src":"17654:36:64"},"nativeSrc":"17654:36:64","nodeType":"YulExpressionStatement","src":"17654:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"17581:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17632:5:64","nodeType":"YulTypedName","src":"17632:5:64","type":""},{"name":"pos","nativeSrc":"17639:3:64","nodeType":"YulTypedName","src":"17639:3:64","type":""}],"src":"17581:115:64"},{"body":{"nativeSrc":"17798:122:64","nodeType":"YulBlock","src":"17798:122:64","statements":[{"nativeSrc":"17808:26:64","nodeType":"YulAssignment","src":"17808:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"17820:9:64","nodeType":"YulIdentifier","src":"17820:9:64"},{"kind":"number","nativeSrc":"17831:2:64","nodeType":"YulLiteral","src":"17831:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17816:3:64","nodeType":"YulIdentifier","src":"17816:3:64"},"nativeSrc":"17816:18:64","nodeType":"YulFunctionCall","src":"17816:18:64"},"variableNames":[{"name":"tail","nativeSrc":"17808:4:64","nodeType":"YulIdentifier","src":"17808:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17886:6:64","nodeType":"YulIdentifier","src":"17886:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"17899:9:64","nodeType":"YulIdentifier","src":"17899:9:64"},{"kind":"number","nativeSrc":"17910:1:64","nodeType":"YulLiteral","src":"17910:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17895:3:64","nodeType":"YulIdentifier","src":"17895:3:64"},"nativeSrc":"17895:17:64","nodeType":"YulFunctionCall","src":"17895:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"17844:41:64","nodeType":"YulIdentifier","src":"17844:41:64"},"nativeSrc":"17844:69:64","nodeType":"YulFunctionCall","src":"17844:69:64"},"nativeSrc":"17844:69:64","nodeType":"YulExpressionStatement","src":"17844:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"17702:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17770:9:64","nodeType":"YulTypedName","src":"17770:9:64","type":""},{"name":"value0","nativeSrc":"17782:6:64","nodeType":"YulTypedName","src":"17782:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17793:4:64","nodeType":"YulTypedName","src":"17793:4:64","type":""}],"src":"17702:218:64"},{"body":{"nativeSrc":"17966:76:64","nodeType":"YulBlock","src":"17966:76:64","statements":[{"body":{"nativeSrc":"18020:16:64","nodeType":"YulBlock","src":"18020:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18029:1:64","nodeType":"YulLiteral","src":"18029:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18032:1:64","nodeType":"YulLiteral","src":"18032:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18022:6:64","nodeType":"YulIdentifier","src":"18022:6:64"},"nativeSrc":"18022:12:64","nodeType":"YulFunctionCall","src":"18022:12:64"},"nativeSrc":"18022:12:64","nodeType":"YulExpressionStatement","src":"18022:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17989:5:64","nodeType":"YulIdentifier","src":"17989:5:64"},{"arguments":[{"name":"value","nativeSrc":"18011:5:64","nodeType":"YulIdentifier","src":"18011:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"17996:14:64","nodeType":"YulIdentifier","src":"17996:14:64"},"nativeSrc":"17996:21:64","nodeType":"YulFunctionCall","src":"17996:21:64"}],"functionName":{"name":"eq","nativeSrc":"17986:2:64","nodeType":"YulIdentifier","src":"17986:2:64"},"nativeSrc":"17986:32:64","nodeType":"YulFunctionCall","src":"17986:32:64"}],"functionName":{"name":"iszero","nativeSrc":"17979:6:64","nodeType":"YulIdentifier","src":"17979:6:64"},"nativeSrc":"17979:40:64","nodeType":"YulFunctionCall","src":"17979:40:64"},"nativeSrc":"17976:60:64","nodeType":"YulIf","src":"17976:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"17926:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17959:5:64","nodeType":"YulTypedName","src":"17959:5:64","type":""}],"src":"17926:116:64"},{"body":{"nativeSrc":"18108:77:64","nodeType":"YulBlock","src":"18108:77:64","statements":[{"nativeSrc":"18118:22:64","nodeType":"YulAssignment","src":"18118:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"18133:6:64","nodeType":"YulIdentifier","src":"18133:6:64"}],"functionName":{"name":"mload","nativeSrc":"18127:5:64","nodeType":"YulIdentifier","src":"18127:5:64"},"nativeSrc":"18127:13:64","nodeType":"YulFunctionCall","src":"18127:13:64"},"variableNames":[{"name":"value","nativeSrc":"18118:5:64","nodeType":"YulIdentifier","src":"18118:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18173:5:64","nodeType":"YulIdentifier","src":"18173:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"18149:23:64","nodeType":"YulIdentifier","src":"18149:23:64"},"nativeSrc":"18149:30:64","nodeType":"YulFunctionCall","src":"18149:30:64"},"nativeSrc":"18149:30:64","nodeType":"YulExpressionStatement","src":"18149:30:64"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18048:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18086:6:64","nodeType":"YulTypedName","src":"18086:6:64","type":""},{"name":"end","nativeSrc":"18094:3:64","nodeType":"YulTypedName","src":"18094:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18102:5:64","nodeType":"YulTypedName","src":"18102:5:64","type":""}],"src":"18048:137:64"},{"body":{"nativeSrc":"18265:271:64","nodeType":"YulBlock","src":"18265:271:64","statements":[{"body":{"nativeSrc":"18311:83:64","nodeType":"YulBlock","src":"18311:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18313:77:64","nodeType":"YulIdentifier","src":"18313:77:64"},"nativeSrc":"18313:79:64","nodeType":"YulFunctionCall","src":"18313:79:64"},"nativeSrc":"18313:79:64","nodeType":"YulExpressionStatement","src":"18313:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18286:7:64","nodeType":"YulIdentifier","src":"18286:7:64"},{"name":"headStart","nativeSrc":"18295:9:64","nodeType":"YulIdentifier","src":"18295:9:64"}],"functionName":{"name":"sub","nativeSrc":"18282:3:64","nodeType":"YulIdentifier","src":"18282:3:64"},"nativeSrc":"18282:23:64","nodeType":"YulFunctionCall","src":"18282:23:64"},{"kind":"number","nativeSrc":"18307:2:64","nodeType":"YulLiteral","src":"18307:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18278:3:64","nodeType":"YulIdentifier","src":"18278:3:64"},"nativeSrc":"18278:32:64","nodeType":"YulFunctionCall","src":"18278:32:64"},"nativeSrc":"18275:119:64","nodeType":"YulIf","src":"18275:119:64"},{"nativeSrc":"18404:125:64","nodeType":"YulBlock","src":"18404:125:64","statements":[{"nativeSrc":"18419:15:64","nodeType":"YulVariableDeclaration","src":"18419:15:64","value":{"kind":"number","nativeSrc":"18433:1:64","nodeType":"YulLiteral","src":"18433:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18423:6:64","nodeType":"YulTypedName","src":"18423:6:64","type":""}]},{"nativeSrc":"18448:71:64","nodeType":"YulAssignment","src":"18448:71:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18491:9:64","nodeType":"YulIdentifier","src":"18491:9:64"},{"name":"offset","nativeSrc":"18502:6:64","nodeType":"YulIdentifier","src":"18502:6:64"}],"functionName":{"name":"add","nativeSrc":"18487:3:64","nodeType":"YulIdentifier","src":"18487:3:64"},"nativeSrc":"18487:22:64","nodeType":"YulFunctionCall","src":"18487:22:64"},{"name":"dataEnd","nativeSrc":"18511:7:64","nodeType":"YulIdentifier","src":"18511:7:64"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18458:28:64","nodeType":"YulIdentifier","src":"18458:28:64"},"nativeSrc":"18458:61:64","nodeType":"YulFunctionCall","src":"18458:61:64"},"variableNames":[{"name":"value0","nativeSrc":"18448:6:64","nodeType":"YulIdentifier","src":"18448:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"18191:345:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18235:9:64","nodeType":"YulTypedName","src":"18235:9:64","type":""},{"name":"dataEnd","nativeSrc":"18246:7:64","nodeType":"YulTypedName","src":"18246:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18258:6:64","nodeType":"YulTypedName","src":"18258:6:64","type":""}],"src":"18191:345:64"},{"body":{"nativeSrc":"18607:53:64","nodeType":"YulBlock","src":"18607:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18624:3:64","nodeType":"YulIdentifier","src":"18624:3:64"},{"arguments":[{"name":"value","nativeSrc":"18647:5:64","nodeType":"YulIdentifier","src":"18647:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"18629:17:64","nodeType":"YulIdentifier","src":"18629:17:64"},"nativeSrc":"18629:24:64","nodeType":"YulFunctionCall","src":"18629:24:64"}],"functionName":{"name":"mstore","nativeSrc":"18617:6:64","nodeType":"YulIdentifier","src":"18617:6:64"},"nativeSrc":"18617:37:64","nodeType":"YulFunctionCall","src":"18617:37:64"},"nativeSrc":"18617:37:64","nodeType":"YulExpressionStatement","src":"18617:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18542:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18595:5:64","nodeType":"YulTypedName","src":"18595:5:64","type":""},{"name":"pos","nativeSrc":"18602:3:64","nodeType":"YulTypedName","src":"18602:3:64","type":""}],"src":"18542:118:64"},{"body":{"nativeSrc":"18764:124:64","nodeType":"YulBlock","src":"18764:124:64","statements":[{"nativeSrc":"18774:26:64","nodeType":"YulAssignment","src":"18774:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"18786:9:64","nodeType":"YulIdentifier","src":"18786:9:64"},{"kind":"number","nativeSrc":"18797:2:64","nodeType":"YulLiteral","src":"18797:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18782:3:64","nodeType":"YulIdentifier","src":"18782:3:64"},"nativeSrc":"18782:18:64","nodeType":"YulFunctionCall","src":"18782:18:64"},"variableNames":[{"name":"tail","nativeSrc":"18774:4:64","nodeType":"YulIdentifier","src":"18774:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18854:6:64","nodeType":"YulIdentifier","src":"18854:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"18867:9:64","nodeType":"YulIdentifier","src":"18867:9:64"},{"kind":"number","nativeSrc":"18878:1:64","nodeType":"YulLiteral","src":"18878:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18863:3:64","nodeType":"YulIdentifier","src":"18863:3:64"},"nativeSrc":"18863:17:64","nodeType":"YulFunctionCall","src":"18863:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18810:43:64","nodeType":"YulIdentifier","src":"18810:43:64"},"nativeSrc":"18810:71:64","nodeType":"YulFunctionCall","src":"18810:71:64"},"nativeSrc":"18810:71:64","nodeType":"YulExpressionStatement","src":"18810:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"18666:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18736:9:64","nodeType":"YulTypedName","src":"18736:9:64","type":""},{"name":"value0","nativeSrc":"18748:6:64","nodeType":"YulTypedName","src":"18748:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18759:4:64","nodeType":"YulTypedName","src":"18759:4:64","type":""}],"src":"18666:222:64"},{"body":{"nativeSrc":"18975:82:64","nodeType":"YulBlock","src":"18975:82:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18992:3:64","nodeType":"YulIdentifier","src":"18992:3:64"},{"arguments":[{"name":"value","nativeSrc":"19044:5:64","nodeType":"YulIdentifier","src":"19044:5:64"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12323_to_t_uint8","nativeSrc":"18997:46:64","nodeType":"YulIdentifier","src":"18997:46:64"},"nativeSrc":"18997:53:64","nodeType":"YulFunctionCall","src":"18997:53:64"}],"functionName":{"name":"mstore","nativeSrc":"18985:6:64","nodeType":"YulIdentifier","src":"18985:6:64"},"nativeSrc":"18985:66:64","nodeType":"YulFunctionCall","src":"18985:66:64"},"nativeSrc":"18985:66:64","nodeType":"YulExpressionStatement","src":"18985:66:64"}]},"name":"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_fromStack","nativeSrc":"18894:163:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18963:5:64","nodeType":"YulTypedName","src":"18963:5:64","type":""},{"name":"pos","nativeSrc":"18970:3:64","nodeType":"YulTypedName","src":"18970:3:64","type":""}],"src":"18894:163:64"},{"body":{"nativeSrc":"19205:222:64","nodeType":"YulBlock","src":"19205:222:64","statements":[{"nativeSrc":"19215:26:64","nodeType":"YulAssignment","src":"19215:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"19227:9:64","nodeType":"YulIdentifier","src":"19227:9:64"},{"kind":"number","nativeSrc":"19238:2:64","nodeType":"YulLiteral","src":"19238:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19223:3:64","nodeType":"YulIdentifier","src":"19223:3:64"},"nativeSrc":"19223:18:64","nodeType":"YulFunctionCall","src":"19223:18:64"},"variableNames":[{"name":"tail","nativeSrc":"19215:4:64","nodeType":"YulIdentifier","src":"19215:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19311:6:64","nodeType":"YulIdentifier","src":"19311:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19324:9:64","nodeType":"YulIdentifier","src":"19324:9:64"},{"kind":"number","nativeSrc":"19335:1:64","nodeType":"YulLiteral","src":"19335:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19320:3:64","nodeType":"YulIdentifier","src":"19320:3:64"},"nativeSrc":"19320:17:64","nodeType":"YulFunctionCall","src":"19320:17:64"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_fromStack","nativeSrc":"19251:59:64","nodeType":"YulIdentifier","src":"19251:59:64"},"nativeSrc":"19251:87:64","nodeType":"YulFunctionCall","src":"19251:87:64"},"nativeSrc":"19251:87:64","nodeType":"YulExpressionStatement","src":"19251:87:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19392:6:64","nodeType":"YulIdentifier","src":"19392:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19405:9:64","nodeType":"YulIdentifier","src":"19405:9:64"},{"kind":"number","nativeSrc":"19416:2:64","nodeType":"YulLiteral","src":"19416:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19401:3:64","nodeType":"YulIdentifier","src":"19401:3:64"},"nativeSrc":"19401:18:64","nodeType":"YulFunctionCall","src":"19401:18:64"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"19348:43:64","nodeType":"YulIdentifier","src":"19348:43:64"},"nativeSrc":"19348:72:64","nodeType":"YulFunctionCall","src":"19348:72:64"},"nativeSrc":"19348:72:64","nodeType":"YulExpressionStatement","src":"19348:72:64"}]},"name":"abi_encode_tuple_t_enum$_RegistryType_$12323_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed","nativeSrc":"19063:364:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19169:9:64","nodeType":"YulTypedName","src":"19169:9:64","type":""},{"name":"value1","nativeSrc":"19181:6:64","nodeType":"YulTypedName","src":"19181:6:64","type":""},{"name":"value0","nativeSrc":"19189:6:64","nodeType":"YulTypedName","src":"19189:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19200:4:64","nodeType":"YulTypedName","src":"19200:4:64","type":""}],"src":"19063:364:64"},{"body":{"nativeSrc":"19579:149:64","nodeType":"YulBlock","src":"19579:149:64","statements":[{"nativeSrc":"19590:112:64","nodeType":"YulAssignment","src":"19590:112:64","value":{"arguments":[{"name":"value0","nativeSrc":"19681:6:64","nodeType":"YulIdentifier","src":"19681:6:64"},{"name":"value1","nativeSrc":"19689:6:64","nodeType":"YulIdentifier","src":"19689:6:64"},{"name":"pos","nativeSrc":"19698:3:64","nodeType":"YulIdentifier","src":"19698:3:64"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"19597:83:64","nodeType":"YulIdentifier","src":"19597:83:64"},"nativeSrc":"19597:105:64","nodeType":"YulFunctionCall","src":"19597:105:64"},"variableNames":[{"name":"pos","nativeSrc":"19590:3:64","nodeType":"YulIdentifier","src":"19590:3:64"}]},{"nativeSrc":"19712:10:64","nodeType":"YulAssignment","src":"19712:10:64","value":{"name":"pos","nativeSrc":"19719:3:64","nodeType":"YulIdentifier","src":"19719:3:64"},"variableNames":[{"name":"end","nativeSrc":"19712:3:64","nodeType":"YulIdentifier","src":"19712:3:64"}]}]},"name":"abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"19433:295:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"19550:3:64","nodeType":"YulTypedName","src":"19550:3:64","type":""},{"name":"value1","nativeSrc":"19556:6:64","nodeType":"YulTypedName","src":"19556:6:64","type":""},{"name":"value0","nativeSrc":"19564:6:64","nodeType":"YulTypedName","src":"19564:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19575:3:64","nodeType":"YulTypedName","src":"19575:3:64","type":""}],"src":"19433:295:64"},{"body":{"nativeSrc":"19777:53:64","nodeType":"YulBlock","src":"19777:53:64","statements":[{"nativeSrc":"19787:36:64","nodeType":"YulAssignment","src":"19787:36:64","value":{"arguments":[{"kind":"number","nativeSrc":"19812:3:64","nodeType":"YulLiteral","src":"19812:3:64","type":"","value":"248"},{"name":"value","nativeSrc":"19817:5:64","nodeType":"YulIdentifier","src":"19817:5:64"}],"functionName":{"name":"shl","nativeSrc":"19808:3:64","nodeType":"YulIdentifier","src":"19808:3:64"},"nativeSrc":"19808:15:64","nodeType":"YulFunctionCall","src":"19808:15:64"},"variableNames":[{"name":"newValue","nativeSrc":"19787:8:64","nodeType":"YulIdentifier","src":"19787:8:64"}]}]},"name":"shift_left_248","nativeSrc":"19734:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19758:5:64","nodeType":"YulTypedName","src":"19758:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"19768:8:64","nodeType":"YulTypedName","src":"19768:8:64","type":""}],"src":"19734:96:64"},{"body":{"nativeSrc":"19881:48:64","nodeType":"YulBlock","src":"19881:48:64","statements":[{"nativeSrc":"19891:32:64","nodeType":"YulAssignment","src":"19891:32:64","value":{"arguments":[{"name":"value","nativeSrc":"19917:5:64","nodeType":"YulIdentifier","src":"19917:5:64"}],"functionName":{"name":"shift_left_248","nativeSrc":"19902:14:64","nodeType":"YulIdentifier","src":"19902:14:64"},"nativeSrc":"19902:21:64","nodeType":"YulFunctionCall","src":"19902:21:64"},"variableNames":[{"name":"aligned","nativeSrc":"19891:7:64","nodeType":"YulIdentifier","src":"19891:7:64"}]}]},"name":"leftAlign_t_uint8","nativeSrc":"19836:93:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19863:5:64","nodeType":"YulTypedName","src":"19863:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"19873:7:64","nodeType":"YulTypedName","src":"19873:7:64","type":""}],"src":"19836:93:64"},{"body":{"nativeSrc":"20034:101:64","nodeType":"YulBlock","src":"20034:101:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20051:3:64","nodeType":"YulIdentifier","src":"20051:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20121:5:64","nodeType":"YulIdentifier","src":"20121:5:64"}],"functionName":{"name":"convert_t_enum$_RegistryType_$12323_to_t_uint8","nativeSrc":"20074:46:64","nodeType":"YulIdentifier","src":"20074:46:64"},"nativeSrc":"20074:53:64","nodeType":"YulFunctionCall","src":"20074:53:64"}],"functionName":{"name":"leftAlign_t_uint8","nativeSrc":"20056:17:64","nodeType":"YulIdentifier","src":"20056:17:64"},"nativeSrc":"20056:72:64","nodeType":"YulFunctionCall","src":"20056:72:64"}],"functionName":{"name":"mstore","nativeSrc":"20044:6:64","nodeType":"YulIdentifier","src":"20044:6:64"},"nativeSrc":"20044:85:64","nodeType":"YulFunctionCall","src":"20044:85:64"},"nativeSrc":"20044:85:64","nodeType":"YulExpressionStatement","src":"20044:85:64"}]},"name":"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"19935:200:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20022:5:64","nodeType":"YulTypedName","src":"20022:5:64","type":""},{"name":"pos","nativeSrc":"20029:3:64","nodeType":"YulTypedName","src":"20029:3:64","type":""}],"src":"19935:200:64"},{"body":{"nativeSrc":"20387:503:64","nodeType":"YulBlock","src":"20387:503:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"20476:6:64","nodeType":"YulIdentifier","src":"20476:6:64"},{"name":"pos","nativeSrc":"20485:3:64","nodeType":"YulIdentifier","src":"20485:3:64"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"20398:77:64","nodeType":"YulIdentifier","src":"20398:77:64"},"nativeSrc":"20398:91:64","nodeType":"YulFunctionCall","src":"20398:91:64"},"nativeSrc":"20398:91:64","nodeType":"YulExpressionStatement","src":"20398:91:64"},{"nativeSrc":"20498:18:64","nodeType":"YulAssignment","src":"20498:18:64","value":{"arguments":[{"name":"pos","nativeSrc":"20509:3:64","nodeType":"YulIdentifier","src":"20509:3:64"},{"kind":"number","nativeSrc":"20514:1:64","nodeType":"YulLiteral","src":"20514:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20505:3:64","nodeType":"YulIdentifier","src":"20505:3:64"},"nativeSrc":"20505:11:64","nodeType":"YulFunctionCall","src":"20505:11:64"},"variableNames":[{"name":"pos","nativeSrc":"20498:3:64","nodeType":"YulIdentifier","src":"20498:3:64"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"20588:6:64","nodeType":"YulIdentifier","src":"20588:6:64"},{"name":"pos","nativeSrc":"20597:3:64","nodeType":"YulIdentifier","src":"20597:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"20526:61:64","nodeType":"YulIdentifier","src":"20526:61:64"},"nativeSrc":"20526:75:64","nodeType":"YulFunctionCall","src":"20526:75:64"},"nativeSrc":"20526:75:64","nodeType":"YulExpressionStatement","src":"20526:75:64"},{"nativeSrc":"20610:19:64","nodeType":"YulAssignment","src":"20610:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"20621:3:64","nodeType":"YulIdentifier","src":"20621:3:64"},{"kind":"number","nativeSrc":"20626:2:64","nodeType":"YulLiteral","src":"20626:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"20617:3:64","nodeType":"YulIdentifier","src":"20617:3:64"},"nativeSrc":"20617:12:64","nodeType":"YulFunctionCall","src":"20617:12:64"},"variableNames":[{"name":"pos","nativeSrc":"20610:3:64","nodeType":"YulIdentifier","src":"20610:3:64"}]},{"nativeSrc":"20639:112:64","nodeType":"YulAssignment","src":"20639:112:64","value":{"arguments":[{"name":"value2","nativeSrc":"20730:6:64","nodeType":"YulIdentifier","src":"20730:6:64"},{"name":"value3","nativeSrc":"20738:6:64","nodeType":"YulIdentifier","src":"20738:6:64"},{"name":"pos","nativeSrc":"20747:3:64","nodeType":"YulIdentifier","src":"20747:3:64"}],"functionName":{"name":"abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"20646:83:64","nodeType":"YulIdentifier","src":"20646:83:64"},"nativeSrc":"20646:105:64","nodeType":"YulFunctionCall","src":"20646:105:64"},"variableNames":[{"name":"pos","nativeSrc":"20639:3:64","nodeType":"YulIdentifier","src":"20639:3:64"}]},{"expression":{"arguments":[{"name":"value4","nativeSrc":"20823:6:64","nodeType":"YulIdentifier","src":"20823:6:64"},{"name":"pos","nativeSrc":"20832:3:64","nodeType":"YulIdentifier","src":"20832:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"20761:61:64","nodeType":"YulIdentifier","src":"20761:61:64"},"nativeSrc":"20761:75:64","nodeType":"YulFunctionCall","src":"20761:75:64"},"nativeSrc":"20761:75:64","nodeType":"YulExpressionStatement","src":"20761:75:64"},{"nativeSrc":"20845:19:64","nodeType":"YulAssignment","src":"20845:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"20856:3:64","nodeType":"YulIdentifier","src":"20856:3:64"},{"kind":"number","nativeSrc":"20861:2:64","nodeType":"YulLiteral","src":"20861:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"20852:3:64","nodeType":"YulIdentifier","src":"20852:3:64"},"nativeSrc":"20852:12:64","nodeType":"YulFunctionCall","src":"20852:12:64"},"variableNames":[{"name":"pos","nativeSrc":"20845:3:64","nodeType":"YulIdentifier","src":"20845:3:64"}]},{"nativeSrc":"20874:10:64","nodeType":"YulAssignment","src":"20874:10:64","value":{"name":"pos","nativeSrc":"20881:3:64","nodeType":"YulIdentifier","src":"20881:3:64"},"variableNames":[{"name":"end","nativeSrc":"20874:3:64","nodeType":"YulIdentifier","src":"20874:3:64"}]}]},"name":"abi_encode_tuple_packed_t_enum$_RegistryType_$12323_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed","nativeSrc":"20141:749:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20334:3:64","nodeType":"YulTypedName","src":"20334:3:64","type":""},{"name":"value4","nativeSrc":"20340:6:64","nodeType":"YulTypedName","src":"20340:6:64","type":""},{"name":"value3","nativeSrc":"20348:6:64","nodeType":"YulTypedName","src":"20348:6:64","type":""},{"name":"value2","nativeSrc":"20356:6:64","nodeType":"YulTypedName","src":"20356:6:64","type":""},{"name":"value1","nativeSrc":"20364:6:64","nodeType":"YulTypedName","src":"20364:6:64","type":""},{"name":"value0","nativeSrc":"20372:6:64","nodeType":"YulTypedName","src":"20372:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20383:3:64","nodeType":"YulTypedName","src":"20383:3:64","type":""}],"src":"20141:749:64"},{"body":{"nativeSrc":"20924:152:64","nodeType":"YulBlock","src":"20924:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20941:1:64","nodeType":"YulLiteral","src":"20941:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"20944:77:64","nodeType":"YulLiteral","src":"20944:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20934:6:64","nodeType":"YulIdentifier","src":"20934:6:64"},"nativeSrc":"20934:88:64","nodeType":"YulFunctionCall","src":"20934:88:64"},"nativeSrc":"20934:88:64","nodeType":"YulExpressionStatement","src":"20934:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21038:1:64","nodeType":"YulLiteral","src":"21038:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"21041:4:64","nodeType":"YulLiteral","src":"21041:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"21031:6:64","nodeType":"YulIdentifier","src":"21031:6:64"},"nativeSrc":"21031:15:64","nodeType":"YulFunctionCall","src":"21031:15:64"},"nativeSrc":"21031:15:64","nodeType":"YulExpressionStatement","src":"21031:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21062:1:64","nodeType":"YulLiteral","src":"21062:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"21065:4:64","nodeType":"YulLiteral","src":"21065:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"21055:6:64","nodeType":"YulIdentifier","src":"21055:6:64"},"nativeSrc":"21055:15:64","nodeType":"YulFunctionCall","src":"21055:15:64"},"nativeSrc":"21055:15:64","nodeType":"YulExpressionStatement","src":"21055:15:64"}]},"name":"panic_error_0x41","nativeSrc":"20896:180:64","nodeType":"YulFunctionDefinition","src":"20896:180:64"},{"body":{"nativeSrc":"21136:87:64","nodeType":"YulBlock","src":"21136:87:64","statements":[{"nativeSrc":"21146:11:64","nodeType":"YulAssignment","src":"21146:11:64","value":{"name":"ptr","nativeSrc":"21154:3:64","nodeType":"YulIdentifier","src":"21154:3:64"},"variableNames":[{"name":"data","nativeSrc":"21146:4:64","nodeType":"YulIdentifier","src":"21146:4:64"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21174:1:64","nodeType":"YulLiteral","src":"21174:1:64","type":"","value":"0"},{"name":"ptr","nativeSrc":"21177:3:64","nodeType":"YulIdentifier","src":"21177:3:64"}],"functionName":{"name":"mstore","nativeSrc":"21167:6:64","nodeType":"YulIdentifier","src":"21167:6:64"},"nativeSrc":"21167:14:64","nodeType":"YulFunctionCall","src":"21167:14:64"},"nativeSrc":"21167:14:64","nodeType":"YulExpressionStatement","src":"21167:14:64"},{"nativeSrc":"21190:26:64","nodeType":"YulAssignment","src":"21190:26:64","value":{"arguments":[{"kind":"number","nativeSrc":"21208:1:64","nodeType":"YulLiteral","src":"21208:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"21211:4:64","nodeType":"YulLiteral","src":"21211:4:64","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"21198:9:64","nodeType":"YulIdentifier","src":"21198:9:64"},"nativeSrc":"21198:18:64","nodeType":"YulFunctionCall","src":"21198:18:64"},"variableNames":[{"name":"data","nativeSrc":"21190:4:64","nodeType":"YulIdentifier","src":"21190:4:64"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"21082:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"21123:3:64","nodeType":"YulTypedName","src":"21123:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"21131:4:64","nodeType":"YulTypedName","src":"21131:4:64","type":""}],"src":"21082:141:64"},{"body":{"nativeSrc":"21273:49:64","nodeType":"YulBlock","src":"21273:49:64","statements":[{"nativeSrc":"21283:33:64","nodeType":"YulAssignment","src":"21283:33:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21301:5:64","nodeType":"YulIdentifier","src":"21301:5:64"},{"kind":"number","nativeSrc":"21308:2:64","nodeType":"YulLiteral","src":"21308:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"21297:3:64","nodeType":"YulIdentifier","src":"21297:3:64"},"nativeSrc":"21297:14:64","nodeType":"YulFunctionCall","src":"21297:14:64"},{"kind":"number","nativeSrc":"21313:2:64","nodeType":"YulLiteral","src":"21313:2:64","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"21293:3:64","nodeType":"YulIdentifier","src":"21293:3:64"},"nativeSrc":"21293:23:64","nodeType":"YulFunctionCall","src":"21293:23:64"},"variableNames":[{"name":"result","nativeSrc":"21283:6:64","nodeType":"YulIdentifier","src":"21283:6:64"}]}]},"name":"divide_by_32_ceil","nativeSrc":"21229:93:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21256:5:64","nodeType":"YulTypedName","src":"21256:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"21266:6:64","nodeType":"YulTypedName","src":"21266:6:64","type":""}],"src":"21229:93:64"},{"body":{"nativeSrc":"21381:54:64","nodeType":"YulBlock","src":"21381:54:64","statements":[{"nativeSrc":"21391:37:64","nodeType":"YulAssignment","src":"21391:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"21416:4:64","nodeType":"YulIdentifier","src":"21416:4:64"},{"name":"value","nativeSrc":"21422:5:64","nodeType":"YulIdentifier","src":"21422:5:64"}],"functionName":{"name":"shl","nativeSrc":"21412:3:64","nodeType":"YulIdentifier","src":"21412:3:64"},"nativeSrc":"21412:16:64","nodeType":"YulFunctionCall","src":"21412:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"21391:8:64","nodeType":"YulIdentifier","src":"21391:8:64"}]}]},"name":"shift_left_dynamic","nativeSrc":"21328:107:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"21356:4:64","nodeType":"YulTypedName","src":"21356:4:64","type":""},{"name":"value","nativeSrc":"21362:5:64","nodeType":"YulTypedName","src":"21362:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"21372:8:64","nodeType":"YulTypedName","src":"21372:8:64","type":""}],"src":"21328:107:64"},{"body":{"nativeSrc":"21517:317:64","nodeType":"YulBlock","src":"21517:317:64","statements":[{"nativeSrc":"21527:35:64","nodeType":"YulVariableDeclaration","src":"21527:35:64","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"21548:10:64","nodeType":"YulIdentifier","src":"21548:10:64"},{"kind":"number","nativeSrc":"21560:1:64","nodeType":"YulLiteral","src":"21560:1:64","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"21544:3:64","nodeType":"YulIdentifier","src":"21544:3:64"},"nativeSrc":"21544:18:64","nodeType":"YulFunctionCall","src":"21544:18:64"},"variables":[{"name":"shiftBits","nativeSrc":"21531:9:64","nodeType":"YulTypedName","src":"21531:9:64","type":""}]},{"nativeSrc":"21571:109:64","nodeType":"YulVariableDeclaration","src":"21571:109:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21602:9:64","nodeType":"YulIdentifier","src":"21602:9:64"},{"kind":"number","nativeSrc":"21613:66:64","nodeType":"YulLiteral","src":"21613:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21583:18:64","nodeType":"YulIdentifier","src":"21583:18:64"},"nativeSrc":"21583:97:64","nodeType":"YulFunctionCall","src":"21583:97:64"},"variables":[{"name":"mask","nativeSrc":"21575:4:64","nodeType":"YulTypedName","src":"21575:4:64","type":""}]},{"nativeSrc":"21689:51:64","nodeType":"YulAssignment","src":"21689:51:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21720:9:64","nodeType":"YulIdentifier","src":"21720:9:64"},{"name":"toInsert","nativeSrc":"21731:8:64","nodeType":"YulIdentifier","src":"21731:8:64"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21701:18:64","nodeType":"YulIdentifier","src":"21701:18:64"},"nativeSrc":"21701:39:64","nodeType":"YulFunctionCall","src":"21701:39:64"},"variableNames":[{"name":"toInsert","nativeSrc":"21689:8:64","nodeType":"YulIdentifier","src":"21689:8:64"}]},{"nativeSrc":"21749:30:64","nodeType":"YulAssignment","src":"21749:30:64","value":{"arguments":[{"name":"value","nativeSrc":"21762:5:64","nodeType":"YulIdentifier","src":"21762:5:64"},{"arguments":[{"name":"mask","nativeSrc":"21773:4:64","nodeType":"YulIdentifier","src":"21773:4:64"}],"functionName":{"name":"not","nativeSrc":"21769:3:64","nodeType":"YulIdentifier","src":"21769:3:64"},"nativeSrc":"21769:9:64","nodeType":"YulFunctionCall","src":"21769:9:64"}],"functionName":{"name":"and","nativeSrc":"21758:3:64","nodeType":"YulIdentifier","src":"21758:3:64"},"nativeSrc":"21758:21:64","nodeType":"YulFunctionCall","src":"21758:21:64"},"variableNames":[{"name":"value","nativeSrc":"21749:5:64","nodeType":"YulIdentifier","src":"21749:5:64"}]},{"nativeSrc":"21788:40:64","nodeType":"YulAssignment","src":"21788:40:64","value":{"arguments":[{"name":"value","nativeSrc":"21801:5:64","nodeType":"YulIdentifier","src":"21801:5:64"},{"arguments":[{"name":"toInsert","nativeSrc":"21812:8:64","nodeType":"YulIdentifier","src":"21812:8:64"},{"name":"mask","nativeSrc":"21822:4:64","nodeType":"YulIdentifier","src":"21822:4:64"}],"functionName":{"name":"and","nativeSrc":"21808:3:64","nodeType":"YulIdentifier","src":"21808:3:64"},"nativeSrc":"21808:19:64","nodeType":"YulFunctionCall","src":"21808:19:64"}],"functionName":{"name":"or","nativeSrc":"21798:2:64","nodeType":"YulIdentifier","src":"21798:2:64"},"nativeSrc":"21798:30:64","nodeType":"YulFunctionCall","src":"21798:30:64"},"variableNames":[{"name":"result","nativeSrc":"21788:6:64","nodeType":"YulIdentifier","src":"21788:6:64"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"21441:393:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21478:5:64","nodeType":"YulTypedName","src":"21478:5:64","type":""},{"name":"shiftBytes","nativeSrc":"21485:10:64","nodeType":"YulTypedName","src":"21485:10:64","type":""},{"name":"toInsert","nativeSrc":"21497:8:64","nodeType":"YulTypedName","src":"21497:8:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"21510:6:64","nodeType":"YulTypedName","src":"21510:6:64","type":""}],"src":"21441:393:64"},{"body":{"nativeSrc":"21885:32:64","nodeType":"YulBlock","src":"21885:32:64","statements":[{"nativeSrc":"21895:16:64","nodeType":"YulAssignment","src":"21895:16:64","value":{"name":"value","nativeSrc":"21906:5:64","nodeType":"YulIdentifier","src":"21906:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"21895:7:64","nodeType":"YulIdentifier","src":"21895:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"21840:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21867:5:64","nodeType":"YulTypedName","src":"21867:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"21877:7:64","nodeType":"YulTypedName","src":"21877:7:64","type":""}],"src":"21840:77:64"},{"body":{"nativeSrc":"21983:82:64","nodeType":"YulBlock","src":"21983:82:64","statements":[{"nativeSrc":"21993:66:64","nodeType":"YulAssignment","src":"21993:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22051:5:64","nodeType":"YulIdentifier","src":"22051:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22033:17:64","nodeType":"YulIdentifier","src":"22033:17:64"},"nativeSrc":"22033:24:64","nodeType":"YulFunctionCall","src":"22033:24:64"}],"functionName":{"name":"identity","nativeSrc":"22024:8:64","nodeType":"YulIdentifier","src":"22024:8:64"},"nativeSrc":"22024:34:64","nodeType":"YulFunctionCall","src":"22024:34:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22006:17:64","nodeType":"YulIdentifier","src":"22006:17:64"},"nativeSrc":"22006:53:64","nodeType":"YulFunctionCall","src":"22006:53:64"},"variableNames":[{"name":"converted","nativeSrc":"21993:9:64","nodeType":"YulIdentifier","src":"21993:9:64"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"21923:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21963:5:64","nodeType":"YulTypedName","src":"21963:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21973:9:64","nodeType":"YulTypedName","src":"21973:9:64","type":""}],"src":"21923:142:64"},{"body":{"nativeSrc":"22118:28:64","nodeType":"YulBlock","src":"22118:28:64","statements":[{"nativeSrc":"22128:12:64","nodeType":"YulAssignment","src":"22128:12:64","value":{"name":"value","nativeSrc":"22135:5:64","nodeType":"YulIdentifier","src":"22135:5:64"},"variableNames":[{"name":"ret","nativeSrc":"22128:3:64","nodeType":"YulIdentifier","src":"22128:3:64"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"22071:75:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22104:5:64","nodeType":"YulTypedName","src":"22104:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"22114:3:64","nodeType":"YulTypedName","src":"22114:3:64","type":""}],"src":"22071:75:64"},{"body":{"nativeSrc":"22228:193:64","nodeType":"YulBlock","src":"22228:193:64","statements":[{"nativeSrc":"22238:63:64","nodeType":"YulVariableDeclaration","src":"22238:63:64","value":{"arguments":[{"name":"value_0","nativeSrc":"22293:7:64","nodeType":"YulIdentifier","src":"22293:7:64"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"22262:30:64","nodeType":"YulIdentifier","src":"22262:30:64"},"nativeSrc":"22262:39:64","nodeType":"YulFunctionCall","src":"22262:39:64"},"variables":[{"name":"convertedValue_0","nativeSrc":"22242:16:64","nodeType":"YulTypedName","src":"22242:16:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22317:4:64","nodeType":"YulIdentifier","src":"22317:4:64"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"22357:4:64","nodeType":"YulIdentifier","src":"22357:4:64"}],"functionName":{"name":"sload","nativeSrc":"22351:5:64","nodeType":"YulIdentifier","src":"22351:5:64"},"nativeSrc":"22351:11:64","nodeType":"YulFunctionCall","src":"22351:11:64"},{"name":"offset","nativeSrc":"22364:6:64","nodeType":"YulIdentifier","src":"22364:6:64"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"22396:16:64","nodeType":"YulIdentifier","src":"22396:16:64"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"22372:23:64","nodeType":"YulIdentifier","src":"22372:23:64"},"nativeSrc":"22372:41:64","nodeType":"YulFunctionCall","src":"22372:41:64"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"22323:27:64","nodeType":"YulIdentifier","src":"22323:27:64"},"nativeSrc":"22323:91:64","nodeType":"YulFunctionCall","src":"22323:91:64"}],"functionName":{"name":"sstore","nativeSrc":"22310:6:64","nodeType":"YulIdentifier","src":"22310:6:64"},"nativeSrc":"22310:105:64","nodeType":"YulFunctionCall","src":"22310:105:64"},"nativeSrc":"22310:105:64","nodeType":"YulExpressionStatement","src":"22310:105:64"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"22152:269:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22205:4:64","nodeType":"YulTypedName","src":"22205:4:64","type":""},{"name":"offset","nativeSrc":"22211:6:64","nodeType":"YulTypedName","src":"22211:6:64","type":""},{"name":"value_0","nativeSrc":"22219:7:64","nodeType":"YulTypedName","src":"22219:7:64","type":""}],"src":"22152:269:64"},{"body":{"nativeSrc":"22476:24:64","nodeType":"YulBlock","src":"22476:24:64","statements":[{"nativeSrc":"22486:8:64","nodeType":"YulAssignment","src":"22486:8:64","value":{"kind":"number","nativeSrc":"22493:1:64","nodeType":"YulLiteral","src":"22493:1:64","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"22486:3:64","nodeType":"YulIdentifier","src":"22486:3:64"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"22427:73:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"22472:3:64","nodeType":"YulTypedName","src":"22472:3:64","type":""}],"src":"22427:73:64"},{"body":{"nativeSrc":"22559:136:64","nodeType":"YulBlock","src":"22559:136:64","statements":[{"nativeSrc":"22569:46:64","nodeType":"YulVariableDeclaration","src":"22569:46:64","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"22583:30:64","nodeType":"YulIdentifier","src":"22583:30:64"},"nativeSrc":"22583:32:64","nodeType":"YulFunctionCall","src":"22583:32:64"},"variables":[{"name":"zero_0","nativeSrc":"22573:6:64","nodeType":"YulTypedName","src":"22573:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22668:4:64","nodeType":"YulIdentifier","src":"22668:4:64"},{"name":"offset","nativeSrc":"22674:6:64","nodeType":"YulIdentifier","src":"22674:6:64"},{"name":"zero_0","nativeSrc":"22682:6:64","nodeType":"YulIdentifier","src":"22682:6:64"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"22624:43:64","nodeType":"YulIdentifier","src":"22624:43:64"},"nativeSrc":"22624:65:64","nodeType":"YulFunctionCall","src":"22624:65:64"},"nativeSrc":"22624:65:64","nodeType":"YulExpressionStatement","src":"22624:65:64"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"22506:189:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22545:4:64","nodeType":"YulTypedName","src":"22545:4:64","type":""},{"name":"offset","nativeSrc":"22551:6:64","nodeType":"YulTypedName","src":"22551:6:64","type":""}],"src":"22506:189:64"},{"body":{"nativeSrc":"22751:136:64","nodeType":"YulBlock","src":"22751:136:64","statements":[{"body":{"nativeSrc":"22818:63:64","nodeType":"YulBlock","src":"22818:63:64","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"22862:5:64","nodeType":"YulIdentifier","src":"22862:5:64"},{"kind":"number","nativeSrc":"22869:1:64","nodeType":"YulLiteral","src":"22869:1:64","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"22832:29:64","nodeType":"YulIdentifier","src":"22832:29:64"},"nativeSrc":"22832:39:64","nodeType":"YulFunctionCall","src":"22832:39:64"},"nativeSrc":"22832:39:64","nodeType":"YulExpressionStatement","src":"22832:39:64"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"22771:5:64","nodeType":"YulIdentifier","src":"22771:5:64"},{"name":"end","nativeSrc":"22778:3:64","nodeType":"YulIdentifier","src":"22778:3:64"}],"functionName":{"name":"lt","nativeSrc":"22768:2:64","nodeType":"YulIdentifier","src":"22768:2:64"},"nativeSrc":"22768:14:64","nodeType":"YulFunctionCall","src":"22768:14:64"},"nativeSrc":"22761:120:64","nodeType":"YulForLoop","post":{"nativeSrc":"22783:26:64","nodeType":"YulBlock","src":"22783:26:64","statements":[{"nativeSrc":"22785:22:64","nodeType":"YulAssignment","src":"22785:22:64","value":{"arguments":[{"name":"start","nativeSrc":"22798:5:64","nodeType":"YulIdentifier","src":"22798:5:64"},{"kind":"number","nativeSrc":"22805:1:64","nodeType":"YulLiteral","src":"22805:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22794:3:64","nodeType":"YulIdentifier","src":"22794:3:64"},"nativeSrc":"22794:13:64","nodeType":"YulFunctionCall","src":"22794:13:64"},"variableNames":[{"name":"start","nativeSrc":"22785:5:64","nodeType":"YulIdentifier","src":"22785:5:64"}]}]},"pre":{"nativeSrc":"22765:2:64","nodeType":"YulBlock","src":"22765:2:64","statements":[]},"src":"22761:120:64"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"22701:186:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"22739:5:64","nodeType":"YulTypedName","src":"22739:5:64","type":""},{"name":"end","nativeSrc":"22746:3:64","nodeType":"YulTypedName","src":"22746:3:64","type":""}],"src":"22701:186:64"},{"body":{"nativeSrc":"22972:464:64","nodeType":"YulBlock","src":"22972:464:64","statements":[{"body":{"nativeSrc":"22998:431:64","nodeType":"YulBlock","src":"22998:431:64","statements":[{"nativeSrc":"23012:54:64","nodeType":"YulVariableDeclaration","src":"23012:54:64","value":{"arguments":[{"name":"array","nativeSrc":"23060:5:64","nodeType":"YulIdentifier","src":"23060:5:64"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"23028:31:64","nodeType":"YulIdentifier","src":"23028:31:64"},"nativeSrc":"23028:38:64","nodeType":"YulFunctionCall","src":"23028:38:64"},"variables":[{"name":"dataArea","nativeSrc":"23016:8:64","nodeType":"YulTypedName","src":"23016:8:64","type":""}]},{"nativeSrc":"23079:63:64","nodeType":"YulVariableDeclaration","src":"23079:63:64","value":{"arguments":[{"name":"dataArea","nativeSrc":"23102:8:64","nodeType":"YulIdentifier","src":"23102:8:64"},{"arguments":[{"name":"startIndex","nativeSrc":"23130:10:64","nodeType":"YulIdentifier","src":"23130:10:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"23112:17:64","nodeType":"YulIdentifier","src":"23112:17:64"},"nativeSrc":"23112:29:64","nodeType":"YulFunctionCall","src":"23112:29:64"}],"functionName":{"name":"add","nativeSrc":"23098:3:64","nodeType":"YulIdentifier","src":"23098:3:64"},"nativeSrc":"23098:44:64","nodeType":"YulFunctionCall","src":"23098:44:64"},"variables":[{"name":"deleteStart","nativeSrc":"23083:11:64","nodeType":"YulTypedName","src":"23083:11:64","type":""}]},{"body":{"nativeSrc":"23299:27:64","nodeType":"YulBlock","src":"23299:27:64","statements":[{"nativeSrc":"23301:23:64","nodeType":"YulAssignment","src":"23301:23:64","value":{"name":"dataArea","nativeSrc":"23316:8:64","nodeType":"YulIdentifier","src":"23316:8:64"},"variableNames":[{"name":"deleteStart","nativeSrc":"23301:11:64","nodeType":"YulIdentifier","src":"23301:11:64"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"23283:10:64","nodeType":"YulIdentifier","src":"23283:10:64"},{"kind":"number","nativeSrc":"23295:2:64","nodeType":"YulLiteral","src":"23295:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"23280:2:64","nodeType":"YulIdentifier","src":"23280:2:64"},"nativeSrc":"23280:18:64","nodeType":"YulFunctionCall","src":"23280:18:64"},"nativeSrc":"23277:49:64","nodeType":"YulIf","src":"23277:49:64"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"23368:11:64","nodeType":"YulIdentifier","src":"23368:11:64"},{"arguments":[{"name":"dataArea","nativeSrc":"23385:8:64","nodeType":"YulIdentifier","src":"23385:8:64"},{"arguments":[{"name":"len","nativeSrc":"23413:3:64","nodeType":"YulIdentifier","src":"23413:3:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"23395:17:64","nodeType":"YulIdentifier","src":"23395:17:64"},"nativeSrc":"23395:22:64","nodeType":"YulFunctionCall","src":"23395:22:64"}],"functionName":{"name":"add","nativeSrc":"23381:3:64","nodeType":"YulIdentifier","src":"23381:3:64"},"nativeSrc":"23381:37:64","nodeType":"YulFunctionCall","src":"23381:37:64"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"23339:28:64","nodeType":"YulIdentifier","src":"23339:28:64"},"nativeSrc":"23339:80:64","nodeType":"YulFunctionCall","src":"23339:80:64"},"nativeSrc":"23339:80:64","nodeType":"YulExpressionStatement","src":"23339:80:64"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"22989:3:64","nodeType":"YulIdentifier","src":"22989:3:64"},{"kind":"number","nativeSrc":"22994:2:64","nodeType":"YulLiteral","src":"22994:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22986:2:64","nodeType":"YulIdentifier","src":"22986:2:64"},"nativeSrc":"22986:11:64","nodeType":"YulFunctionCall","src":"22986:11:64"},"nativeSrc":"22983:446:64","nodeType":"YulIf","src":"22983:446:64"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"22893:543:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"22948:5:64","nodeType":"YulTypedName","src":"22948:5:64","type":""},{"name":"len","nativeSrc":"22955:3:64","nodeType":"YulTypedName","src":"22955:3:64","type":""},{"name":"startIndex","nativeSrc":"22960:10:64","nodeType":"YulTypedName","src":"22960:10:64","type":""}],"src":"22893:543:64"},{"body":{"nativeSrc":"23505:54:64","nodeType":"YulBlock","src":"23505:54:64","statements":[{"nativeSrc":"23515:37:64","nodeType":"YulAssignment","src":"23515:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"23540:4:64","nodeType":"YulIdentifier","src":"23540:4:64"},{"name":"value","nativeSrc":"23546:5:64","nodeType":"YulIdentifier","src":"23546:5:64"}],"functionName":{"name":"shr","nativeSrc":"23536:3:64","nodeType":"YulIdentifier","src":"23536:3:64"},"nativeSrc":"23536:16:64","nodeType":"YulFunctionCall","src":"23536:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"23515:8:64","nodeType":"YulIdentifier","src":"23515:8:64"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"23442:117:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"23480:4:64","nodeType":"YulTypedName","src":"23480:4:64","type":""},{"name":"value","nativeSrc":"23486:5:64","nodeType":"YulTypedName","src":"23486:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"23496:8:64","nodeType":"YulTypedName","src":"23496:8:64","type":""}],"src":"23442:117:64"},{"body":{"nativeSrc":"23616:118:64","nodeType":"YulBlock","src":"23616:118:64","statements":[{"nativeSrc":"23626:68:64","nodeType":"YulVariableDeclaration","src":"23626:68:64","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23675:1:64","nodeType":"YulLiteral","src":"23675:1:64","type":"","value":"8"},{"name":"bytes","nativeSrc":"23678:5:64","nodeType":"YulIdentifier","src":"23678:5:64"}],"functionName":{"name":"mul","nativeSrc":"23671:3:64","nodeType":"YulIdentifier","src":"23671:3:64"},"nativeSrc":"23671:13:64","nodeType":"YulFunctionCall","src":"23671:13:64"},{"arguments":[{"kind":"number","nativeSrc":"23690:1:64","nodeType":"YulLiteral","src":"23690:1:64","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23686:3:64","nodeType":"YulIdentifier","src":"23686:3:64"},"nativeSrc":"23686:6:64","nodeType":"YulFunctionCall","src":"23686:6:64"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"23642:28:64","nodeType":"YulIdentifier","src":"23642:28:64"},"nativeSrc":"23642:51:64","nodeType":"YulFunctionCall","src":"23642:51:64"}],"functionName":{"name":"not","nativeSrc":"23638:3:64","nodeType":"YulIdentifier","src":"23638:3:64"},"nativeSrc":"23638:56:64","nodeType":"YulFunctionCall","src":"23638:56:64"},"variables":[{"name":"mask","nativeSrc":"23630:4:64","nodeType":"YulTypedName","src":"23630:4:64","type":""}]},{"nativeSrc":"23703:25:64","nodeType":"YulAssignment","src":"23703:25:64","value":{"arguments":[{"name":"data","nativeSrc":"23717:4:64","nodeType":"YulIdentifier","src":"23717:4:64"},{"name":"mask","nativeSrc":"23723:4:64","nodeType":"YulIdentifier","src":"23723:4:64"}],"functionName":{"name":"and","nativeSrc":"23713:3:64","nodeType":"YulIdentifier","src":"23713:3:64"},"nativeSrc":"23713:15:64","nodeType":"YulFunctionCall","src":"23713:15:64"},"variableNames":[{"name":"result","nativeSrc":"23703:6:64","nodeType":"YulIdentifier","src":"23703:6:64"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"23565:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23593:4:64","nodeType":"YulTypedName","src":"23593:4:64","type":""},{"name":"bytes","nativeSrc":"23599:5:64","nodeType":"YulTypedName","src":"23599:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"23609:6:64","nodeType":"YulTypedName","src":"23609:6:64","type":""}],"src":"23565:169:64"},{"body":{"nativeSrc":"23820:214:64","nodeType":"YulBlock","src":"23820:214:64","statements":[{"nativeSrc":"23953:37:64","nodeType":"YulAssignment","src":"23953:37:64","value":{"arguments":[{"name":"data","nativeSrc":"23980:4:64","nodeType":"YulIdentifier","src":"23980:4:64"},{"name":"len","nativeSrc":"23986:3:64","nodeType":"YulIdentifier","src":"23986:3:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"23961:18:64","nodeType":"YulIdentifier","src":"23961:18:64"},"nativeSrc":"23961:29:64","nodeType":"YulFunctionCall","src":"23961:29:64"},"variableNames":[{"name":"data","nativeSrc":"23953:4:64","nodeType":"YulIdentifier","src":"23953:4:64"}]},{"nativeSrc":"23999:29:64","nodeType":"YulAssignment","src":"23999:29:64","value":{"arguments":[{"name":"data","nativeSrc":"24010:4:64","nodeType":"YulIdentifier","src":"24010:4:64"},{"arguments":[{"kind":"number","nativeSrc":"24020:1:64","nodeType":"YulLiteral","src":"24020:1:64","type":"","value":"2"},{"name":"len","nativeSrc":"24023:3:64","nodeType":"YulIdentifier","src":"24023:3:64"}],"functionName":{"name":"mul","nativeSrc":"24016:3:64","nodeType":"YulIdentifier","src":"24016:3:64"},"nativeSrc":"24016:11:64","nodeType":"YulFunctionCall","src":"24016:11:64"}],"functionName":{"name":"or","nativeSrc":"24007:2:64","nodeType":"YulIdentifier","src":"24007:2:64"},"nativeSrc":"24007:21:64","nodeType":"YulFunctionCall","src":"24007:21:64"},"variableNames":[{"name":"used","nativeSrc":"23999:4:64","nodeType":"YulIdentifier","src":"23999:4:64"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"23739:295:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23801:4:64","nodeType":"YulTypedName","src":"23801:4:64","type":""},{"name":"len","nativeSrc":"23807:3:64","nodeType":"YulTypedName","src":"23807:3:64","type":""}],"returnVariables":[{"name":"used","nativeSrc":"23815:4:64","nodeType":"YulTypedName","src":"23815:4:64","type":""}],"src":"23739:295:64"},{"body":{"nativeSrc":"24131:1303:64","nodeType":"YulBlock","src":"24131:1303:64","statements":[{"nativeSrc":"24142:51:64","nodeType":"YulVariableDeclaration","src":"24142:51:64","value":{"arguments":[{"name":"src","nativeSrc":"24189:3:64","nodeType":"YulIdentifier","src":"24189:3:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"24156:32:64","nodeType":"YulIdentifier","src":"24156:32:64"},"nativeSrc":"24156:37:64","nodeType":"YulFunctionCall","src":"24156:37:64"},"variables":[{"name":"newLen","nativeSrc":"24146:6:64","nodeType":"YulTypedName","src":"24146:6:64","type":""}]},{"body":{"nativeSrc":"24278:22:64","nodeType":"YulBlock","src":"24278:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"24280:16:64","nodeType":"YulIdentifier","src":"24280:16:64"},"nativeSrc":"24280:18:64","nodeType":"YulFunctionCall","src":"24280:18:64"},"nativeSrc":"24280:18:64","nodeType":"YulExpressionStatement","src":"24280:18:64"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"24250:6:64","nodeType":"YulIdentifier","src":"24250:6:64"},{"kind":"number","nativeSrc":"24258:18:64","nodeType":"YulLiteral","src":"24258:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24247:2:64","nodeType":"YulIdentifier","src":"24247:2:64"},"nativeSrc":"24247:30:64","nodeType":"YulFunctionCall","src":"24247:30:64"},"nativeSrc":"24244:56:64","nodeType":"YulIf","src":"24244:56:64"},{"nativeSrc":"24310:52:64","nodeType":"YulVariableDeclaration","src":"24310:52:64","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"24356:4:64","nodeType":"YulIdentifier","src":"24356:4:64"}],"functionName":{"name":"sload","nativeSrc":"24350:5:64","nodeType":"YulIdentifier","src":"24350:5:64"},"nativeSrc":"24350:11:64","nodeType":"YulFunctionCall","src":"24350:11:64"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"24324:25:64","nodeType":"YulIdentifier","src":"24324:25:64"},"nativeSrc":"24324:38:64","nodeType":"YulFunctionCall","src":"24324:38:64"},"variables":[{"name":"oldLen","nativeSrc":"24314:6:64","nodeType":"YulTypedName","src":"24314:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24455:4:64","nodeType":"YulIdentifier","src":"24455:4:64"},{"name":"oldLen","nativeSrc":"24461:6:64","nodeType":"YulIdentifier","src":"24461:6:64"},{"name":"newLen","nativeSrc":"24469:6:64","nodeType":"YulIdentifier","src":"24469:6:64"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"24409:45:64","nodeType":"YulIdentifier","src":"24409:45:64"},"nativeSrc":"24409:67:64","nodeType":"YulFunctionCall","src":"24409:67:64"},"nativeSrc":"24409:67:64","nodeType":"YulExpressionStatement","src":"24409:67:64"},{"nativeSrc":"24486:18:64","nodeType":"YulVariableDeclaration","src":"24486:18:64","value":{"kind":"number","nativeSrc":"24503:1:64","nodeType":"YulLiteral","src":"24503:1:64","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"24490:9:64","nodeType":"YulTypedName","src":"24490:9:64","type":""}]},{"nativeSrc":"24514:17:64","nodeType":"YulAssignment","src":"24514:17:64","value":{"kind":"number","nativeSrc":"24527:4:64","nodeType":"YulLiteral","src":"24527:4:64","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"24514:9:64","nodeType":"YulIdentifier","src":"24514:9:64"}]},{"cases":[{"body":{"nativeSrc":"24578:611:64","nodeType":"YulBlock","src":"24578:611:64","statements":[{"nativeSrc":"24592:37:64","nodeType":"YulVariableDeclaration","src":"24592:37:64","value":{"arguments":[{"name":"newLen","nativeSrc":"24611:6:64","nodeType":"YulIdentifier","src":"24611:6:64"},{"arguments":[{"kind":"number","nativeSrc":"24623:4:64","nodeType":"YulLiteral","src":"24623:4:64","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"24619:3:64","nodeType":"YulIdentifier","src":"24619:3:64"},"nativeSrc":"24619:9:64","nodeType":"YulFunctionCall","src":"24619:9:64"}],"functionName":{"name":"and","nativeSrc":"24607:3:64","nodeType":"YulIdentifier","src":"24607:3:64"},"nativeSrc":"24607:22:64","nodeType":"YulFunctionCall","src":"24607:22:64"},"variables":[{"name":"loopEnd","nativeSrc":"24596:7:64","nodeType":"YulTypedName","src":"24596:7:64","type":""}]},{"nativeSrc":"24643:51:64","nodeType":"YulVariableDeclaration","src":"24643:51:64","value":{"arguments":[{"name":"slot","nativeSrc":"24689:4:64","nodeType":"YulIdentifier","src":"24689:4:64"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"24657:31:64","nodeType":"YulIdentifier","src":"24657:31:64"},"nativeSrc":"24657:37:64","nodeType":"YulFunctionCall","src":"24657:37:64"},"variables":[{"name":"dstPtr","nativeSrc":"24647:6:64","nodeType":"YulTypedName","src":"24647:6:64","type":""}]},{"nativeSrc":"24707:10:64","nodeType":"YulVariableDeclaration","src":"24707:10:64","value":{"kind":"number","nativeSrc":"24716:1:64","nodeType":"YulLiteral","src":"24716:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"24711:1:64","nodeType":"YulTypedName","src":"24711:1:64","type":""}]},{"body":{"nativeSrc":"24775:163:64","nodeType":"YulBlock","src":"24775:163:64","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24800:6:64","nodeType":"YulIdentifier","src":"24800:6:64"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24818:3:64","nodeType":"YulIdentifier","src":"24818:3:64"},{"name":"srcOffset","nativeSrc":"24823:9:64","nodeType":"YulIdentifier","src":"24823:9:64"}],"functionName":{"name":"add","nativeSrc":"24814:3:64","nodeType":"YulIdentifier","src":"24814:3:64"},"nativeSrc":"24814:19:64","nodeType":"YulFunctionCall","src":"24814:19:64"}],"functionName":{"name":"mload","nativeSrc":"24808:5:64","nodeType":"YulIdentifier","src":"24808:5:64"},"nativeSrc":"24808:26:64","nodeType":"YulFunctionCall","src":"24808:26:64"}],"functionName":{"name":"sstore","nativeSrc":"24793:6:64","nodeType":"YulIdentifier","src":"24793:6:64"},"nativeSrc":"24793:42:64","nodeType":"YulFunctionCall","src":"24793:42:64"},"nativeSrc":"24793:42:64","nodeType":"YulExpressionStatement","src":"24793:42:64"},{"nativeSrc":"24852:24:64","nodeType":"YulAssignment","src":"24852:24:64","value":{"arguments":[{"name":"dstPtr","nativeSrc":"24866:6:64","nodeType":"YulIdentifier","src":"24866:6:64"},{"kind":"number","nativeSrc":"24874:1:64","nodeType":"YulLiteral","src":"24874:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24862:3:64","nodeType":"YulIdentifier","src":"24862:3:64"},"nativeSrc":"24862:14:64","nodeType":"YulFunctionCall","src":"24862:14:64"},"variableNames":[{"name":"dstPtr","nativeSrc":"24852:6:64","nodeType":"YulIdentifier","src":"24852:6:64"}]},{"nativeSrc":"24893:31:64","nodeType":"YulAssignment","src":"24893:31:64","value":{"arguments":[{"name":"srcOffset","nativeSrc":"24910:9:64","nodeType":"YulIdentifier","src":"24910:9:64"},{"kind":"number","nativeSrc":"24921:2:64","nodeType":"YulLiteral","src":"24921:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24906:3:64","nodeType":"YulIdentifier","src":"24906:3:64"},"nativeSrc":"24906:18:64","nodeType":"YulFunctionCall","src":"24906:18:64"},"variableNames":[{"name":"srcOffset","nativeSrc":"24893:9:64","nodeType":"YulIdentifier","src":"24893:9:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"24741:1:64","nodeType":"YulIdentifier","src":"24741:1:64"},{"name":"loopEnd","nativeSrc":"24744:7:64","nodeType":"YulIdentifier","src":"24744:7:64"}],"functionName":{"name":"lt","nativeSrc":"24738:2:64","nodeType":"YulIdentifier","src":"24738:2:64"},"nativeSrc":"24738:14:64","nodeType":"YulFunctionCall","src":"24738:14:64"},"nativeSrc":"24730:208:64","nodeType":"YulForLoop","post":{"nativeSrc":"24753:21:64","nodeType":"YulBlock","src":"24753:21:64","statements":[{"nativeSrc":"24755:17:64","nodeType":"YulAssignment","src":"24755:17:64","value":{"arguments":[{"name":"i","nativeSrc":"24764:1:64","nodeType":"YulIdentifier","src":"24764:1:64"},{"kind":"number","nativeSrc":"24767:4:64","nodeType":"YulLiteral","src":"24767:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24760:3:64","nodeType":"YulIdentifier","src":"24760:3:64"},"nativeSrc":"24760:12:64","nodeType":"YulFunctionCall","src":"24760:12:64"},"variableNames":[{"name":"i","nativeSrc":"24755:1:64","nodeType":"YulIdentifier","src":"24755:1:64"}]}]},"pre":{"nativeSrc":"24734:3:64","nodeType":"YulBlock","src":"24734:3:64","statements":[]},"src":"24730:208:64"},{"body":{"nativeSrc":"24974:156:64","nodeType":"YulBlock","src":"24974:156:64","statements":[{"nativeSrc":"24992:43:64","nodeType":"YulVariableDeclaration","src":"24992:43:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25019:3:64","nodeType":"YulIdentifier","src":"25019:3:64"},{"name":"srcOffset","nativeSrc":"25024:9:64","nodeType":"YulIdentifier","src":"25024:9:64"}],"functionName":{"name":"add","nativeSrc":"25015:3:64","nodeType":"YulIdentifier","src":"25015:3:64"},"nativeSrc":"25015:19:64","nodeType":"YulFunctionCall","src":"25015:19:64"}],"functionName":{"name":"mload","nativeSrc":"25009:5:64","nodeType":"YulIdentifier","src":"25009:5:64"},"nativeSrc":"25009:26:64","nodeType":"YulFunctionCall","src":"25009:26:64"},"variables":[{"name":"lastValue","nativeSrc":"24996:9:64","nodeType":"YulTypedName","src":"24996:9:64","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"25059:6:64","nodeType":"YulIdentifier","src":"25059:6:64"},{"arguments":[{"name":"lastValue","nativeSrc":"25086:9:64","nodeType":"YulIdentifier","src":"25086:9:64"},{"arguments":[{"name":"newLen","nativeSrc":"25101:6:64","nodeType":"YulIdentifier","src":"25101:6:64"},{"kind":"number","nativeSrc":"25109:4:64","nodeType":"YulLiteral","src":"25109:4:64","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"25097:3:64","nodeType":"YulIdentifier","src":"25097:3:64"},"nativeSrc":"25097:17:64","nodeType":"YulFunctionCall","src":"25097:17:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"25067:18:64","nodeType":"YulIdentifier","src":"25067:18:64"},"nativeSrc":"25067:48:64","nodeType":"YulFunctionCall","src":"25067:48:64"}],"functionName":{"name":"sstore","nativeSrc":"25052:6:64","nodeType":"YulIdentifier","src":"25052:6:64"},"nativeSrc":"25052:64:64","nodeType":"YulFunctionCall","src":"25052:64:64"},"nativeSrc":"25052:64:64","nodeType":"YulExpressionStatement","src":"25052:64:64"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"24957:7:64","nodeType":"YulIdentifier","src":"24957:7:64"},{"name":"newLen","nativeSrc":"24966:6:64","nodeType":"YulIdentifier","src":"24966:6:64"}],"functionName":{"name":"lt","nativeSrc":"24954:2:64","nodeType":"YulIdentifier","src":"24954:2:64"},"nativeSrc":"24954:19:64","nodeType":"YulFunctionCall","src":"24954:19:64"},"nativeSrc":"24951:179:64","nodeType":"YulIf","src":"24951:179:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25150:4:64","nodeType":"YulIdentifier","src":"25150:4:64"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"25164:6:64","nodeType":"YulIdentifier","src":"25164:6:64"},{"kind":"number","nativeSrc":"25172:1:64","nodeType":"YulLiteral","src":"25172:1:64","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"25160:3:64","nodeType":"YulIdentifier","src":"25160:3:64"},"nativeSrc":"25160:14:64","nodeType":"YulFunctionCall","src":"25160:14:64"},{"kind":"number","nativeSrc":"25176:1:64","nodeType":"YulLiteral","src":"25176:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"25156:3:64","nodeType":"YulIdentifier","src":"25156:3:64"},"nativeSrc":"25156:22:64","nodeType":"YulFunctionCall","src":"25156:22:64"}],"functionName":{"name":"sstore","nativeSrc":"25143:6:64","nodeType":"YulIdentifier","src":"25143:6:64"},"nativeSrc":"25143:36:64","nodeType":"YulFunctionCall","src":"25143:36:64"},"nativeSrc":"25143:36:64","nodeType":"YulExpressionStatement","src":"25143:36:64"}]},"nativeSrc":"24571:618:64","nodeType":"YulCase","src":"24571:618:64","value":{"kind":"number","nativeSrc":"24576:1:64","nodeType":"YulLiteral","src":"24576:1:64","type":"","value":"1"}},{"body":{"nativeSrc":"25206:222:64","nodeType":"YulBlock","src":"25206:222:64","statements":[{"nativeSrc":"25220:14:64","nodeType":"YulVariableDeclaration","src":"25220:14:64","value":{"kind":"number","nativeSrc":"25233:1:64","nodeType":"YulLiteral","src":"25233:1:64","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"25224:5:64","nodeType":"YulTypedName","src":"25224:5:64","type":""}]},{"body":{"nativeSrc":"25257:67:64","nodeType":"YulBlock","src":"25257:67:64","statements":[{"nativeSrc":"25275:35:64","nodeType":"YulAssignment","src":"25275:35:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"25294:3:64","nodeType":"YulIdentifier","src":"25294:3:64"},{"name":"srcOffset","nativeSrc":"25299:9:64","nodeType":"YulIdentifier","src":"25299:9:64"}],"functionName":{"name":"add","nativeSrc":"25290:3:64","nodeType":"YulIdentifier","src":"25290:3:64"},"nativeSrc":"25290:19:64","nodeType":"YulFunctionCall","src":"25290:19:64"}],"functionName":{"name":"mload","nativeSrc":"25284:5:64","nodeType":"YulIdentifier","src":"25284:5:64"},"nativeSrc":"25284:26:64","nodeType":"YulFunctionCall","src":"25284:26:64"},"variableNames":[{"name":"value","nativeSrc":"25275:5:64","nodeType":"YulIdentifier","src":"25275:5:64"}]}]},"condition":{"name":"newLen","nativeSrc":"25250:6:64","nodeType":"YulIdentifier","src":"25250:6:64"},"nativeSrc":"25247:77:64","nodeType":"YulIf","src":"25247:77:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"25344:4:64","nodeType":"YulIdentifier","src":"25344:4:64"},{"arguments":[{"name":"value","nativeSrc":"25403:5:64","nodeType":"YulIdentifier","src":"25403:5:64"},{"name":"newLen","nativeSrc":"25410:6:64","nodeType":"YulIdentifier","src":"25410:6:64"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"25350:52:64","nodeType":"YulIdentifier","src":"25350:52:64"},"nativeSrc":"25350:67:64","nodeType":"YulFunctionCall","src":"25350:67:64"}],"functionName":{"name":"sstore","nativeSrc":"25337:6:64","nodeType":"YulIdentifier","src":"25337:6:64"},"nativeSrc":"25337:81:64","nodeType":"YulFunctionCall","src":"25337:81:64"},"nativeSrc":"25337:81:64","nodeType":"YulExpressionStatement","src":"25337:81:64"}]},"nativeSrc":"25198:230:64","nodeType":"YulCase","src":"25198:230:64","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"24551:6:64","nodeType":"YulIdentifier","src":"24551:6:64"},{"kind":"number","nativeSrc":"24559:2:64","nodeType":"YulLiteral","src":"24559:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"24548:2:64","nodeType":"YulIdentifier","src":"24548:2:64"},"nativeSrc":"24548:14:64","nodeType":"YulFunctionCall","src":"24548:14:64"},"nativeSrc":"24541:887:64","nodeType":"YulSwitch","src":"24541:887:64"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"24039:1395:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"24120:4:64","nodeType":"YulTypedName","src":"24120:4:64","type":""},{"name":"src","nativeSrc":"24126:3:64","nodeType":"YulTypedName","src":"24126:3:64","type":""}],"src":"24039:1395:64"},{"body":{"nativeSrc":"25585:225:64","nodeType":"YulBlock","src":"25585:225:64","statements":[{"nativeSrc":"25595:26:64","nodeType":"YulAssignment","src":"25595:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"25607:9:64","nodeType":"YulIdentifier","src":"25607:9:64"},{"kind":"number","nativeSrc":"25618:2:64","nodeType":"YulLiteral","src":"25618:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25603:3:64","nodeType":"YulIdentifier","src":"25603:3:64"},"nativeSrc":"25603:18:64","nodeType":"YulFunctionCall","src":"25603:18:64"},"variableNames":[{"name":"tail","nativeSrc":"25595:4:64","nodeType":"YulIdentifier","src":"25595:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25675:6:64","nodeType":"YulIdentifier","src":"25675:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"25688:9:64","nodeType":"YulIdentifier","src":"25688:9:64"},{"kind":"number","nativeSrc":"25699:1:64","nodeType":"YulLiteral","src":"25699:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25684:3:64","nodeType":"YulIdentifier","src":"25684:3:64"},"nativeSrc":"25684:17:64","nodeType":"YulFunctionCall","src":"25684:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25631:43:64","nodeType":"YulIdentifier","src":"25631:43:64"},"nativeSrc":"25631:71:64","nodeType":"YulFunctionCall","src":"25631:71:64"},"nativeSrc":"25631:71:64","nodeType":"YulExpressionStatement","src":"25631:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"25775:6:64","nodeType":"YulIdentifier","src":"25775:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"25788:9:64","nodeType":"YulIdentifier","src":"25788:9:64"},{"kind":"number","nativeSrc":"25799:2:64","nodeType":"YulLiteral","src":"25799:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25784:3:64","nodeType":"YulIdentifier","src":"25784:3:64"},"nativeSrc":"25784:18:64","nodeType":"YulFunctionCall","src":"25784:18:64"}],"functionName":{"name":"abi_encode_t_contract$_Cloneable_$18509_to_t_address_fromStack","nativeSrc":"25712:62:64","nodeType":"YulIdentifier","src":"25712:62:64"},"nativeSrc":"25712:91:64","nodeType":"YulFunctionCall","src":"25712:91:64"},"nativeSrc":"25712:91:64","nodeType":"YulExpressionStatement","src":"25712:91:64"}]},"name":"abi_encode_tuple_t_address_t_contract$_Cloneable_$18509__to_t_address_t_address__fromStack_reversed","nativeSrc":"25440:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25549:9:64","nodeType":"YulTypedName","src":"25549:9:64","type":""},{"name":"value1","nativeSrc":"25561:6:64","nodeType":"YulTypedName","src":"25561:6:64","type":""},{"name":"value0","nativeSrc":"25569:6:64","nodeType":"YulTypedName","src":"25569:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25580:4:64","nodeType":"YulTypedName","src":"25580:4:64","type":""}],"src":"25440:370:64"},{"body":{"nativeSrc":"25863:32:64","nodeType":"YulBlock","src":"25863:32:64","statements":[{"nativeSrc":"25873:16:64","nodeType":"YulAssignment","src":"25873:16:64","value":{"name":"value","nativeSrc":"25884:5:64","nodeType":"YulIdentifier","src":"25884:5:64"},"variableNames":[{"name":"aligned","nativeSrc":"25873:7:64","nodeType":"YulIdentifier","src":"25873:7:64"}]}]},"name":"leftAlign_t_bytes32","nativeSrc":"25816:79:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25845:5:64","nodeType":"YulTypedName","src":"25845:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"25855:7:64","nodeType":"YulTypedName","src":"25855:7:64","type":""}],"src":"25816:79:64"},{"body":{"nativeSrc":"25984:74:64","nodeType":"YulBlock","src":"25984:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26001:3:64","nodeType":"YulIdentifier","src":"26001:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26044:5:64","nodeType":"YulIdentifier","src":"26044:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"26026:17:64","nodeType":"YulIdentifier","src":"26026:17:64"},"nativeSrc":"26026:24:64","nodeType":"YulFunctionCall","src":"26026:24:64"}],"functionName":{"name":"leftAlign_t_bytes32","nativeSrc":"26006:19:64","nodeType":"YulIdentifier","src":"26006:19:64"},"nativeSrc":"26006:45:64","nodeType":"YulFunctionCall","src":"26006:45:64"}],"functionName":{"name":"mstore","nativeSrc":"25994:6:64","nodeType":"YulIdentifier","src":"25994:6:64"},"nativeSrc":"25994:58:64","nodeType":"YulFunctionCall","src":"25994:58:64"},"nativeSrc":"25994:58:64","nodeType":"YulExpressionStatement","src":"25994:58:64"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"25901:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25972:5:64","nodeType":"YulTypedName","src":"25972:5:64","type":""},{"name":"pos","nativeSrc":"25979:3:64","nodeType":"YulTypedName","src":"25979:3:64","type":""}],"src":"25901:157:64"},{"body":{"nativeSrc":"26224:268:64","nodeType":"YulBlock","src":"26224:268:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"26313:6:64","nodeType":"YulIdentifier","src":"26313:6:64"},{"name":"pos","nativeSrc":"26322:3:64","nodeType":"YulIdentifier","src":"26322:3:64"}],"functionName":{"name":"abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_nonPadded_inplace_fromStack","nativeSrc":"26235:77:64","nodeType":"YulIdentifier","src":"26235:77:64"},"nativeSrc":"26235:91:64","nodeType":"YulFunctionCall","src":"26235:91:64"},"nativeSrc":"26235:91:64","nodeType":"YulExpressionStatement","src":"26235:91:64"},{"nativeSrc":"26335:18:64","nodeType":"YulAssignment","src":"26335:18:64","value":{"arguments":[{"name":"pos","nativeSrc":"26346:3:64","nodeType":"YulIdentifier","src":"26346:3:64"},{"kind":"number","nativeSrc":"26351:1:64","nodeType":"YulLiteral","src":"26351:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"26342:3:64","nodeType":"YulIdentifier","src":"26342:3:64"},"nativeSrc":"26342:11:64","nodeType":"YulFunctionCall","src":"26342:11:64"},"variableNames":[{"name":"pos","nativeSrc":"26335:3:64","nodeType":"YulIdentifier","src":"26335:3:64"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"26425:6:64","nodeType":"YulIdentifier","src":"26425:6:64"},{"name":"pos","nativeSrc":"26434:3:64","nodeType":"YulIdentifier","src":"26434:3:64"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack","nativeSrc":"26363:61:64","nodeType":"YulIdentifier","src":"26363:61:64"},"nativeSrc":"26363:75:64","nodeType":"YulFunctionCall","src":"26363:75:64"},"nativeSrc":"26363:75:64","nodeType":"YulExpressionStatement","src":"26363:75:64"},{"nativeSrc":"26447:19:64","nodeType":"YulAssignment","src":"26447:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"26458:3:64","nodeType":"YulIdentifier","src":"26458:3:64"},{"kind":"number","nativeSrc":"26463:2:64","nodeType":"YulLiteral","src":"26463:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26454:3:64","nodeType":"YulIdentifier","src":"26454:3:64"},"nativeSrc":"26454:12:64","nodeType":"YulFunctionCall","src":"26454:12:64"},"variableNames":[{"name":"pos","nativeSrc":"26447:3:64","nodeType":"YulIdentifier","src":"26447:3:64"}]},{"nativeSrc":"26476:10:64","nodeType":"YulAssignment","src":"26476:10:64","value":{"name":"pos","nativeSrc":"26483:3:64","nodeType":"YulIdentifier","src":"26483:3:64"},"variableNames":[{"name":"end","nativeSrc":"26476:3:64","nodeType":"YulIdentifier","src":"26476:3:64"}]}]},"name":"abi_encode_tuple_packed_t_enum$_RegistryType_$12323_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed","nativeSrc":"26064:428:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26195:3:64","nodeType":"YulTypedName","src":"26195:3:64","type":""},{"name":"value1","nativeSrc":"26201:6:64","nodeType":"YulTypedName","src":"26201:6:64","type":""},{"name":"value0","nativeSrc":"26209:6:64","nodeType":"YulTypedName","src":"26209:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26220:3:64","nodeType":"YulTypedName","src":"26220:3:64","type":""}],"src":"26064:428:64"},{"body":{"nativeSrc":"26556:40:64","nodeType":"YulBlock","src":"26556:40:64","statements":[{"nativeSrc":"26567:22:64","nodeType":"YulAssignment","src":"26567:22:64","value":{"arguments":[{"name":"value","nativeSrc":"26583:5:64","nodeType":"YulIdentifier","src":"26583:5:64"}],"functionName":{"name":"mload","nativeSrc":"26577:5:64","nodeType":"YulIdentifier","src":"26577:5:64"},"nativeSrc":"26577:12:64","nodeType":"YulFunctionCall","src":"26577:12:64"},"variableNames":[{"name":"length","nativeSrc":"26567:6:64","nodeType":"YulIdentifier","src":"26567:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"26498:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26539:5:64","nodeType":"YulTypedName","src":"26539:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"26549:6:64","nodeType":"YulTypedName","src":"26549:6:64","type":""}],"src":"26498:98:64"},{"body":{"nativeSrc":"26697:73:64","nodeType":"YulBlock","src":"26697:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"26714:3:64","nodeType":"YulIdentifier","src":"26714:3:64"},{"name":"length","nativeSrc":"26719:6:64","nodeType":"YulIdentifier","src":"26719:6:64"}],"functionName":{"name":"mstore","nativeSrc":"26707:6:64","nodeType":"YulIdentifier","src":"26707:6:64"},"nativeSrc":"26707:19:64","nodeType":"YulFunctionCall","src":"26707:19:64"},"nativeSrc":"26707:19:64","nodeType":"YulExpressionStatement","src":"26707:19:64"},{"nativeSrc":"26735:29:64","nodeType":"YulAssignment","src":"26735:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"26754:3:64","nodeType":"YulIdentifier","src":"26754:3:64"},{"kind":"number","nativeSrc":"26759:4:64","nodeType":"YulLiteral","src":"26759:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26750:3:64","nodeType":"YulIdentifier","src":"26750:3:64"},"nativeSrc":"26750:14:64","nodeType":"YulFunctionCall","src":"26750:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"26735:11:64","nodeType":"YulIdentifier","src":"26735:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"26602:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26669:3:64","nodeType":"YulTypedName","src":"26669:3:64","type":""},{"name":"length","nativeSrc":"26674:6:64","nodeType":"YulTypedName","src":"26674:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"26685:11:64","nodeType":"YulTypedName","src":"26685:11:64","type":""}],"src":"26602:168:64"},{"body":{"nativeSrc":"26866:283:64","nodeType":"YulBlock","src":"26866:283:64","statements":[{"nativeSrc":"26876:52:64","nodeType":"YulVariableDeclaration","src":"26876:52:64","value":{"arguments":[{"name":"value","nativeSrc":"26922:5:64","nodeType":"YulIdentifier","src":"26922:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"26890:31:64","nodeType":"YulIdentifier","src":"26890:31:64"},"nativeSrc":"26890:38:64","nodeType":"YulFunctionCall","src":"26890:38:64"},"variables":[{"name":"length","nativeSrc":"26880:6:64","nodeType":"YulTypedName","src":"26880:6:64","type":""}]},{"nativeSrc":"26937:77:64","nodeType":"YulAssignment","src":"26937:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"27002:3:64","nodeType":"YulIdentifier","src":"27002:3:64"},{"name":"length","nativeSrc":"27007:6:64","nodeType":"YulIdentifier","src":"27007:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"26944:57:64","nodeType":"YulIdentifier","src":"26944:57:64"},"nativeSrc":"26944:70:64","nodeType":"YulFunctionCall","src":"26944:70:64"},"variableNames":[{"name":"pos","nativeSrc":"26937:3:64","nodeType":"YulIdentifier","src":"26937:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27062:5:64","nodeType":"YulIdentifier","src":"27062:5:64"},{"kind":"number","nativeSrc":"27069:4:64","nodeType":"YulLiteral","src":"27069:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27058:3:64","nodeType":"YulIdentifier","src":"27058:3:64"},"nativeSrc":"27058:16:64","nodeType":"YulFunctionCall","src":"27058:16:64"},{"name":"pos","nativeSrc":"27076:3:64","nodeType":"YulIdentifier","src":"27076:3:64"},{"name":"length","nativeSrc":"27081:6:64","nodeType":"YulIdentifier","src":"27081:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"27023:34:64","nodeType":"YulIdentifier","src":"27023:34:64"},"nativeSrc":"27023:65:64","nodeType":"YulFunctionCall","src":"27023:65:64"},"nativeSrc":"27023:65:64","nodeType":"YulExpressionStatement","src":"27023:65:64"},{"nativeSrc":"27097:46:64","nodeType":"YulAssignment","src":"27097:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"27108:3:64","nodeType":"YulIdentifier","src":"27108:3:64"},{"arguments":[{"name":"length","nativeSrc":"27135:6:64","nodeType":"YulIdentifier","src":"27135:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"27113:21:64","nodeType":"YulIdentifier","src":"27113:21:64"},"nativeSrc":"27113:29:64","nodeType":"YulFunctionCall","src":"27113:29:64"}],"functionName":{"name":"add","nativeSrc":"27104:3:64","nodeType":"YulIdentifier","src":"27104:3:64"},"nativeSrc":"27104:39:64","nodeType":"YulFunctionCall","src":"27104:39:64"},"variableNames":[{"name":"end","nativeSrc":"27097:3:64","nodeType":"YulIdentifier","src":"27097:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"26776:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26847:5:64","nodeType":"YulTypedName","src":"26847:5:64","type":""},{"name":"pos","nativeSrc":"26854:3:64","nodeType":"YulTypedName","src":"26854:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26862:3:64","nodeType":"YulTypedName","src":"26862:3:64","type":""}],"src":"26776:373:64"},{"body":{"nativeSrc":"27271:193:64","nodeType":"YulBlock","src":"27271:193:64","statements":[{"nativeSrc":"27281:26:64","nodeType":"YulAssignment","src":"27281:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"27293:9:64","nodeType":"YulIdentifier","src":"27293:9:64"},{"kind":"number","nativeSrc":"27304:2:64","nodeType":"YulLiteral","src":"27304:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27289:3:64","nodeType":"YulIdentifier","src":"27289:3:64"},"nativeSrc":"27289:18:64","nodeType":"YulFunctionCall","src":"27289:18:64"},"variableNames":[{"name":"tail","nativeSrc":"27281:4:64","nodeType":"YulIdentifier","src":"27281:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27328:9:64","nodeType":"YulIdentifier","src":"27328:9:64"},{"kind":"number","nativeSrc":"27339:1:64","nodeType":"YulLiteral","src":"27339:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27324:3:64","nodeType":"YulIdentifier","src":"27324:3:64"},"nativeSrc":"27324:17:64","nodeType":"YulFunctionCall","src":"27324:17:64"},{"arguments":[{"name":"tail","nativeSrc":"27347:4:64","nodeType":"YulIdentifier","src":"27347:4:64"},{"name":"headStart","nativeSrc":"27353:9:64","nodeType":"YulIdentifier","src":"27353:9:64"}],"functionName":{"name":"sub","nativeSrc":"27343:3:64","nodeType":"YulIdentifier","src":"27343:3:64"},"nativeSrc":"27343:20:64","nodeType":"YulFunctionCall","src":"27343:20:64"}],"functionName":{"name":"mstore","nativeSrc":"27317:6:64","nodeType":"YulIdentifier","src":"27317:6:64"},"nativeSrc":"27317:47:64","nodeType":"YulFunctionCall","src":"27317:47:64"},"nativeSrc":"27317:47:64","nodeType":"YulExpressionStatement","src":"27317:47:64"},{"nativeSrc":"27373:84:64","nodeType":"YulAssignment","src":"27373:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"27443:6:64","nodeType":"YulIdentifier","src":"27443:6:64"},{"name":"tail","nativeSrc":"27452:4:64","nodeType":"YulIdentifier","src":"27452:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"27381:61:64","nodeType":"YulIdentifier","src":"27381:61:64"},"nativeSrc":"27381:76:64","nodeType":"YulFunctionCall","src":"27381:76:64"},"variableNames":[{"name":"tail","nativeSrc":"27373:4:64","nodeType":"YulIdentifier","src":"27373:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"27155:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27243:9:64","nodeType":"YulTypedName","src":"27243:9:64","type":""},{"name":"value0","nativeSrc":"27255:6:64","nodeType":"YulTypedName","src":"27255:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27266:4:64","nodeType":"YulTypedName","src":"27266:4:64","type":""}],"src":"27155:309:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_RegistryType_$12323(value) {\n if iszero(lt(value, 5)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_RegistryType_$12323(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_RegistryType_$12323(value)\n }\n\n function convert_t_enum$_RegistryType_$12323_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_RegistryType_$12323(value)\n }\n\n function abi_encode_t_enum$_RegistryType_$12323_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_RegistryType_$12323_to_t_uint8(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Cloneable_$18509_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Cloneable_$18509_to_t_address(value, pos) {\n mstore(pos, convert_t_contract$_Cloneable_$18509_to_t_address(value))\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct BoostRegistry.Clone -> struct BoostRegistry.Clone\n function abi_encode_t_struct$_Clone_$12335_memory_ptr_to_t_struct$_Clone_$12335_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // baseType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_RegistryType_$12323_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // instance\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_contract$_Cloneable_$18509_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // deployer\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // name\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Clone_$12335_memory_ptr__to_t_struct$_Clone_$12335_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Clone_$12335_memory_ptr_to_t_struct$_Clone_$12335_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_bytes32_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(value0, pos) -> updatedPos {\n abi_encode_t_bytes32_to_t_bytes32(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bytes32[] -> bytes32[]\n function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_t_contract$_Cloneable_$18509_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Cloneable_$18509_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Cloneable_$18509__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Cloneable_$18509_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_enum$_RegistryType_$12323(value) {\n if iszero(lt(value, 5)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_RegistryType_$12323(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_RegistryType_$12323(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12323t_addresst_addresst_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12323(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12323t_string_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12323(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12323t_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12323(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_enum$_RegistryType_$12323t_addresst_string_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_enum$_RegistryType_$12323(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_string_calldata_ptr__to_t_address_t_address_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, value3, pos)\n\n end := pos\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_RegistryType_$12323_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_RegistryType_$12323_t_bytes32__to_t_uint8_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n end := pos\n }\n\n function shift_left_248(value) -> newValue {\n newValue :=\n\n shl(248, value)\n\n }\n\n function leftAlign_t_uint8(value) -> aligned {\n aligned := shift_left_248(value)\n }\n\n function abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint8(convert_t_enum$_RegistryType_$12323_to_t_uint8(value)))\n }\n\n function abi_encode_tuple_packed_t_enum$_RegistryType_$12323_t_address_t_string_calldata_ptr_t_address__to_t_uint8_t_address_t_string_memory_ptr_t_address__nonPadded_inplace_fromStack_reversed(pos , value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, value3, pos)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value4, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_tuple_t_address_t_contract$_Cloneable_$18509__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_contract$_Cloneable_$18509_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_tuple_packed_t_enum$_RegistryType_$12323_t_bytes32__to_t_uint8_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_enum$_RegistryType_$12323_to_t_uint8_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b5060043610610086575f3560e01c8063acc83fc811610059578063acc83fc81461014a578063d12dd4811461017a578063f166879214610196578063fd97064b146101c657610086565b806301ffc9a71461008a5780633aaf1626146100ba578063792aa01c146100ea57806383f388591461011a575b5f80fd5b6100a4600480360381019061009f9190610e0e565b6101f6565b6040516100b19190610e53565b60405180910390f35b6100d460048036038101906100cf9190610e9f565b61025f565b6040516100e191906110a7565b60405180910390f35b61010460048036038101906100ff91906110f1565b610471565b60405161011191906111d3565b60405180910390f35b610134600480360381019061012f9190610e9f565b610504565b6040516101419190611202565b60405180910390f35b610164600480360381019061015f919061129f565b6105ac565b6040516101719190611332565b60405180910390f35b610194600480360381019061018f919061134b565b6105ee565b005b6101b060048036038101906101ab91906113bc565b610818565b6040516101bd9190611332565b60405180910390f35b6101e060048036038101906101db919061146e565b610854565b6040516101ed9190611202565b60405180910390f35b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610267610d4e565b60015f8381526020019081526020015f206040518060800160405290815f82015f9054906101000a900460ff1660048111156102a6576102a5610eca565b5b60048111156102b8576102b7610eca565b5b81526020015f820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546103769061153e565b80601f01602080910402602001604051908101604052809291908181526020018280546103a29061153e565b80156103ed5780601f106103c4576101008083540402835291602001916103ed565b820191905f5260205f20905b8154815290600101906020018083116103d057829003601f168201915b50505050508152505090505f73ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff160361046c57816040517f8cc00d160000000000000000000000000000000000000000000000000000000081526004016104639190611332565b60405180910390fd5b919050565b606060025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054806020026020016040519081016040528092919081815260200182805480156104f857602002820191905f5260205f20905b8154815260200190600101908083116104e4575b50505050509050919050565b5f805f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105a757816040517f8cc00d1600000000000000000000000000000000000000000000000000000000815260040161059e9190611332565b60405180910390fd5b919050565b5f6105e386868686866040516020016105c894939291906115ef565b60405160208183030381529060405280519060200120610c1c565b905095945050505050565b808073ffffffffffffffffffffffffffffffffffffffff166301ffc9a77f6ab67a0d000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106489190611638565b602060405180830381865afa158015610663573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610687919061167b565b6106c857806040517fd3dd30120000000000000000000000000000000000000000000000000000000081526004016106bf91906116b5565b60405180910390fd5b5f6106d4868686610818565b90505f73ffffffffffffffffffffffffffffffffffffffff165f808381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107775785816040517f96b5684c00000000000000000000000000000000000000000000000000000000815260040161076e9291906116dd565b60405180910390fd5b825f808381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808660048111156107d9576107d8610eca565b5b7f660d31df25c96b8a337fcf12a56b7363e5a997639db853d5dbaec7c01f31bd808560405161080891906116b5565b60405180910390a3505050505050565b5f61084b848484604051602001610830929190611704565b60405160208183030381529060405280519060200120610c1c565b90509392505050565b5f3068929eee149b4bd2126854036108735763ab143c065f526004601cfd5b3068929eee149b4bd212685561091b878787873360405160200161089b959493929190611750565b6040516020818303038152906040528051906020012084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050508873ffffffffffffffffffffffffffffffffffffffff16610c4e9092919063ffffffff16565b90505f61092b88883389896105ac565b90505f73ffffffffffffffffffffffffffffffffffffffff1660015f8381526020019081526020015f205f0160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d25787816040517f96b5684c0000000000000000000000000000000000000000000000000000000081526004016109c99291906116dd565b60405180910390fd5b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150556040518060800160405280896004811115610a5157610a50610eca565b5b81526020018373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff16815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505081525060015f8381526020019081526020015f205f820151815f015f6101000a81548160ff02191690836004811115610b0e57610b0d610eca565b5b02179055506020820151815f0160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816002019081610bb49190611965565b5090505080886004811115610bcc57610bcb610eca565b5b7f2348fcdb9847b17a183e53aa32c0c5c76afdef8fcb14bb51f216c6611701ab1a8985604051610bfd929190611a34565b60405180910390a3503868929eee149b4bd21268559695505050505050565b5f8282604051602001610c30929190611a7b565b60405160208183030381529060405280519060200120905092915050565b5f610c78838573ffffffffffffffffffffffffffffffffffffffff16610ce790919063ffffffff16565b90508073ffffffffffffffffffffffffffffffffffffffff1663439fab91836040518263ffffffff1660e01b8152600401610cb39190611af8565b5f604051808303815f87803b158015610cca575f80fd5b505af1158015610cdc573d5f803e3d5ffd5b505050509392505050565b5f610cf35f8484610cfb565b905092915050565b5f6c5af43d3d93803e602a57fd5bf36021528260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f52816035600c86f5905080610d435763301164255f526004601cfd5b5f6021529392505050565b60405180608001604052805f6004811115610d6c57610d6b610eca565b5b81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081525090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ded81610db9565b8114610df7575f80fd5b50565b5f81359050610e0881610de4565b92915050565b5f60208284031215610e2357610e22610db1565b5b5f610e3084828501610dfa565b91505092915050565b5f8115159050919050565b610e4d81610e39565b82525050565b5f602082019050610e665f830184610e44565b92915050565b5f819050919050565b610e7e81610e6c565b8114610e88575f80fd5b50565b5f81359050610e9981610e75565b92915050565b5f60208284031215610eb457610eb3610db1565b5b5f610ec184828501610e8b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60058110610f0857610f07610eca565b5b50565b5f819050610f1882610ef7565b919050565b5f610f2782610f0b565b9050919050565b610f3781610f1d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f610f7f610f7a610f7584610f3d565b610f5c565b610f3d565b9050919050565b5f610f9082610f65565b9050919050565b5f610fa182610f86565b9050919050565b610fb181610f97565b82525050565b5f610fc182610f3d565b9050919050565b610fd181610fb7565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61101982610fd7565b6110238185610fe1565b9350611033818560208601610ff1565b61103c81610fff565b840191505092915050565b5f608083015f83015161105c5f860182610f2e565b50602083015161106f6020860182610fa8565b5060408301516110826040860182610fc8565b506060830151848203606086015261109a828261100f565b9150508091505092915050565b5f6020820190508181035f8301526110bf8184611047565b905092915050565b6110d081610fb7565b81146110da575f80fd5b50565b5f813590506110eb816110c7565b92915050565b5f6020828403121561110657611105610db1565b5b5f611113848285016110dd565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61114e81610e6c565b82525050565b5f61115f8383611145565b60208301905092915050565b5f602082019050919050565b5f6111818261111c565b61118b8185611126565b935061119683611136565b805f5b838110156111c65781516111ad8882611154565b97506111b88361116b565b925050600181019050611199565b5085935050505092915050565b5f6020820190508181035f8301526111eb8184611177565b905092915050565b6111fc81610f97565b82525050565b5f6020820190506112155f8301846111f3565b92915050565b60058110611227575f80fd5b50565b5f813590506112388161121b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261125f5761125e61123e565b5b8235905067ffffffffffffffff81111561127c5761127b611242565b5b60208301915083600182028301111561129857611297611246565b5b9250929050565b5f805f805f608086880312156112b8576112b7610db1565b5b5f6112c58882890161122a565b95505060206112d6888289016110dd565b94505060406112e7888289016110dd565b935050606086013567ffffffffffffffff81111561130857611307610db5565b5b6113148882890161124a565b92509250509295509295909350565b61132c81610e6c565b82525050565b5f6020820190506113455f830184611323565b92915050565b5f805f806060858703121561136357611362610db1565b5b5f6113708782880161122a565b945050602085013567ffffffffffffffff81111561139157611390610db5565b5b61139d8782880161124a565b935093505060406113b0878288016110dd565b91505092959194509250565b5f805f604084860312156113d3576113d2610db1565b5b5f6113e08682870161122a565b935050602084013567ffffffffffffffff81111561140157611400610db5565b5b61140d8682870161124a565b92509250509250925092565b5f8083601f84011261142e5761142d61123e565b5b8235905067ffffffffffffffff81111561144b5761144a611242565b5b60208301915083600182028301111561146757611466611246565b5b9250929050565b5f805f805f806080878903121561148857611487610db1565b5b5f61149589828a0161122a565b96505060206114a689828a016110dd565b955050604087013567ffffffffffffffff8111156114c7576114c6610db5565b5b6114d389828a0161124a565b9450945050606087013567ffffffffffffffff8111156114f6576114f5610db5565b5b61150289828a01611419565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061155557607f821691505b60208210810361156857611567611511565b5b50919050565b5f8160601b9050919050565b5f6115848261156e565b9050919050565b5f6115958261157a565b9050919050565b6115ad6115a882610fb7565b61158b565b82525050565b5f81905092915050565b828183375f83830152505050565b5f6115d683856115b3565b93506115e38385846115bd565b82840190509392505050565b5f6115fa828761159c565b60148201915061160a828661159c565b60148201915061161b8284866115cb565b915081905095945050505050565b61163281610db9565b82525050565b5f60208201905061164b5f830184611629565b92915050565b61165a81610e39565b8114611664575f80fd5b50565b5f8151905061167581611651565b92915050565b5f602082840312156116905761168f610db1565b5b5f61169d84828501611667565b91505092915050565b6116af81610fb7565b82525050565b5f6020820190506116c85f8301846116a6565b92915050565b6116d781610f1d565b82525050565b5f6040820190506116f05f8301856116ce565b6116fd6020830184611323565b9392505050565b5f6117108284866115cb565b91508190509392505050565b5f8160f81b9050919050565b5f6117328261171c565b9050919050565b61174a61174582610f1d565b611728565b82525050565b5f61175b8288611739565b60018201915061176b828761159c565b60148201915061177c8285876115cb565b9150611788828461159c565b6014820191508190509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826117e9565b61182e86836117e9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61186961186461185f84611846565b610f5c565b611846565b9050919050565b5f819050919050565b6118828361184f565b61189661188e82611870565b8484546117f5565b825550505050565b5f90565b6118aa61189e565b6118b5818484611879565b505050565b5b818110156118d8576118cd5f826118a2565b6001810190506118bb565b5050565b601f82111561191d576118ee816117c8565b6118f7846117da565b81016020851015611906578190505b61191a611912856117da565b8301826118ba565b50505b505050565b5f82821c905092915050565b5f61193d5f1984600802611922565b1980831691505092915050565b5f611955838361192e565b9150826002028217905092915050565b61196e82610fd7565b67ffffffffffffffff8111156119875761198661179b565b5b611991825461153e565b61199c8282856118dc565b5f60209050601f8311600181146119cd575f84156119bb578287015190505b6119c5858261194a565b865550611a2c565b601f1984166119db866117c8565b5f5b82811015611a02578489015182556001820191506020850194506020810190506119dd565b86831015611a1f5784890151611a1b601f89168261192e565b8355505b6001600288020188555050505b505050505050565b5f604082019050611a475f8301856116a6565b611a5460208301846111f3565b9392505050565b5f819050919050565b611a75611a7082610e6c565b611a5b565b82525050565b5f611a868285611739565b600182019150611a968284611a64565b6020820191508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611aca82611aa6565b611ad48185611ab0565b9350611ae4818560208601610ff1565b611aed81610fff565b840191505092915050565b5f6020820190508181035f830152611b108184611ac0565b90509291505056fea2646970667358221220b6c78a8ed756beb59b3fef2f6cd360bd680f54539972d7bbbf26813fbf7ab89e64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x86 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xACC83FC8 GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xACC83FC8 EQ PUSH2 0x14A JUMPI DUP1 PUSH4 0xD12DD481 EQ PUSH2 0x17A JUMPI DUP1 PUSH4 0xF1668792 EQ PUSH2 0x196 JUMPI DUP1 PUSH4 0xFD97064B EQ PUSH2 0x1C6 JUMPI PUSH2 0x86 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x8A JUMPI DUP1 PUSH4 0x3AAF1626 EQ PUSH2 0xBA JUMPI DUP1 PUSH4 0x792AA01C EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0x83F38859 EQ PUSH2 0x11A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xA4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x9F SWAP2 SWAP1 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB1 SWAP2 SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCF SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE1 SWAP2 SWAP1 PUSH2 0x10A7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x10F1 JUMP JUMPDEST PUSH2 0x471 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x111 SWAP2 SWAP1 PUSH2 0x11D3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x134 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12F SWAP2 SWAP1 PUSH2 0xE9F JUMP JUMPDEST PUSH2 0x504 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x141 SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x164 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15F SWAP2 SWAP1 PUSH2 0x129F JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x171 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x194 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18F SWAP2 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH2 0x5EE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AB SWAP2 SWAP1 PUSH2 0x13BC JUMP JUMPDEST PUSH2 0x818 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x146E JUMP JUMPDEST PUSH2 0x854 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1ED SWAP2 SWAP1 PUSH2 0x1202 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x267 PUSH2 0xD4E JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH0 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x2B8 JUMPI PUSH2 0x2B7 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD DUP1 SLOAD PUSH2 0x376 SWAP1 PUSH2 0x153E 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 0x3A2 SWAP1 PUSH2 0x153E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3ED JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3C4 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3ED JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3D0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x46C JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x463 SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 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 0x4F8 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x4E4 JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5A7 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x8CC00D1600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x1332 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x5E3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5C8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x15EF 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 0xC1C JUMP JUMPDEST SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x1FFC9A7 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x648 SWAP2 SWAP1 PUSH2 0x1638 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x687 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH2 0x6C8 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xD3DD301200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BF SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x6D4 DUP7 DUP7 DUP7 PUSH2 0x818 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x777 JUMPI DUP6 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76E SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 DUP7 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0x7D9 JUMPI PUSH2 0x7D8 PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x660D31DF25C96B8A337FCF12A56B7363E5A997639DB853D5DBAEC7C01F31BD80 DUP6 PUSH1 0x40 MLOAD PUSH2 0x808 SWAP2 SWAP1 PUSH2 0x16B5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x84B DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x830 SWAP3 SWAP2 SWAP1 PUSH2 0x1704 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 0xC1C JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x873 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH2 0x91B DUP8 DUP8 DUP8 DUP8 CALLER PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x89B SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1750 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC4E SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x92B DUP9 DUP9 CALLER DUP10 DUP10 PUSH2 0x5AC JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x9D2 JUMPI DUP8 DUP2 PUSH1 0x40 MLOAD PUSH32 0x96B5684C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9C9 SWAP3 SWAP2 SWAP1 PUSH2 0x16DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 PUSH0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP10 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xA51 JUMPI PUSH2 0xA50 PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD 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 PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP2 MSTORE POP PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xB0E JUMPI PUSH2 0xB0D PUSH2 0xECA JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 DUP2 PUSH2 0xBB4 SWAP2 SWAP1 PUSH2 0x1965 JUMP JUMPDEST POP SWAP1 POP POP DUP1 DUP9 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xBCC JUMPI PUSH2 0xBCB PUSH2 0xECA JUMP JUMPDEST JUMPDEST PUSH32 0x2348FCDB9847B17A183E53AA32C0C5C76AFDEF8FCB14BB51F216C6611701AB1A DUP10 DUP6 PUSH1 0x40 MLOAD PUSH2 0xBFD SWAP3 SWAP2 SWAP1 PUSH2 0x1A34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC30 SWAP3 SWAP2 SWAP1 PUSH2 0x1A7B 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 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC78 DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xCE7 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x439FAB91 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCB3 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCCA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xCF3 PUSH0 DUP5 DUP5 PUSH2 0xCFB JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH13 0x5AF43D3D93803E602A57FD5BF3 PUSH1 0x21 MSTORE DUP3 PUSH1 0x14 MSTORE PUSH20 0x602C3D8160093D39F33D3D3D3D363D3D37363D73 PUSH0 MSTORE DUP2 PUSH1 0x35 PUSH1 0xC DUP7 CREATE2 SWAP1 POP DUP1 PUSH2 0xD43 JUMPI PUSH4 0x30116425 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x21 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 PUSH1 0x4 DUP2 GT ISZERO PUSH2 0xD6C JUMPI PUSH2 0xD6B PUSH2 0xECA JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDED DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP2 EQ PUSH2 0xDF7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE08 DUP2 PUSH2 0xDE4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE23 JUMPI PUSH2 0xE22 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE30 DUP5 DUP3 DUP6 ADD PUSH2 0xDFA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE66 PUSH0 DUP4 ADD DUP5 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE7E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP2 EQ PUSH2 0xE88 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE99 DUP2 PUSH2 0xE75 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEB4 JUMPI PUSH2 0xEB3 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEC1 DUP5 DUP3 DUP6 ADD PUSH2 0xE8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0xF08 JUMPI PUSH2 0xF07 PUSH2 0xECA JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0xF18 DUP3 PUSH2 0xEF7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF27 DUP3 PUSH2 0xF0B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF37 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF7F PUSH2 0xF7A PUSH2 0xF75 DUP5 PUSH2 0xF3D JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF90 DUP3 PUSH2 0xF65 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFA1 DUP3 PUSH2 0xF86 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFB1 DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0xFC1 DUP3 PUSH2 0xF3D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD1 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1019 DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH2 0x1023 DUP2 DUP6 PUSH2 0xFE1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1033 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x103C DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x105C PUSH0 DUP7 ADD DUP3 PUSH2 0xF2E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x106F PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xFA8 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1082 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xFC8 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x109A DUP3 DUP3 PUSH2 0x100F JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x10BF DUP2 DUP5 PUSH2 0x1047 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x10D0 DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP2 EQ PUSH2 0x10DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10EB DUP2 PUSH2 0x10C7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1106 JUMPI PUSH2 0x1105 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1113 DUP5 DUP3 DUP6 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x114E DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x115F DUP4 DUP4 PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1126 JUMP JUMPDEST SWAP4 POP PUSH2 0x1196 DUP4 PUSH2 0x1136 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11C6 JUMPI DUP2 MLOAD PUSH2 0x11AD DUP9 DUP3 PUSH2 0x1154 JUMP JUMPDEST SWAP8 POP PUSH2 0x11B8 DUP4 PUSH2 0x116B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1199 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11EB DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11FC DUP2 PUSH2 0xF97 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1215 PUSH0 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 DUP2 LT PUSH2 0x1227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1238 DUP2 PUSH2 0x121B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x125F JUMPI PUSH2 0x125E PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x127C JUMPI PUSH2 0x127B PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1298 JUMPI PUSH2 0x1297 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x12B8 JUMPI PUSH2 0x12B7 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12C5 DUP9 DUP3 DUP10 ADD PUSH2 0x122A JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x12D6 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x12E7 DUP9 DUP3 DUP10 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1308 JUMPI PUSH2 0x1307 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1314 DUP9 DUP3 DUP10 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x132C DUP2 PUSH2 0xE6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1345 PUSH0 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1363 JUMPI PUSH2 0x1362 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1370 DUP8 DUP3 DUP9 ADD PUSH2 0x122A JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1391 JUMPI PUSH2 0x1390 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x139D DUP8 DUP3 DUP9 ADD PUSH2 0x124A JUMP JUMPDEST SWAP4 POP SWAP4 POP POP PUSH1 0x40 PUSH2 0x13B0 DUP8 DUP3 DUP9 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13D3 JUMPI PUSH2 0x13D2 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13E0 DUP7 DUP3 DUP8 ADD PUSH2 0x122A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x140D DUP7 DUP3 DUP8 ADD PUSH2 0x124A JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x142E JUMPI PUSH2 0x142D PUSH2 0x123E JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x144B JUMPI PUSH2 0x144A PUSH2 0x1242 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1467 JUMPI PUSH2 0x1466 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1488 JUMPI PUSH2 0x1487 PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1495 DUP10 DUP3 DUP11 ADD PUSH2 0x122A JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x14A6 DUP10 DUP3 DUP11 ADD PUSH2 0x10DD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP10 DUP3 DUP11 ADD PUSH2 0x124A JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14F6 JUMPI PUSH2 0x14F5 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST PUSH2 0x1502 DUP10 DUP3 DUP11 ADD PUSH2 0x1419 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1555 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1568 JUMPI PUSH2 0x1567 PUSH2 0x1511 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1584 DUP3 PUSH2 0x156E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1595 DUP3 PUSH2 0x157A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15AD PUSH2 0x15A8 DUP3 PUSH2 0xFB7 JUMP JUMPDEST PUSH2 0x158B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D6 DUP4 DUP6 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 POP PUSH2 0x15E3 DUP4 DUP6 DUP5 PUSH2 0x15BD JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15FA DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x160A DUP3 DUP7 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x161B DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xDB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x164B PUSH0 DUP4 ADD DUP5 PUSH2 0x1629 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x165A DUP2 PUSH2 0xE39 JUMP JUMPDEST DUP2 EQ PUSH2 0x1664 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1675 DUP2 PUSH2 0x1651 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1690 JUMPI PUSH2 0x168F PUSH2 0xDB1 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169D DUP5 DUP3 DUP6 ADD PUSH2 0x1667 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16AF DUP2 PUSH2 0xFB7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16C8 PUSH0 DUP4 ADD DUP5 PUSH2 0x16A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16D7 DUP2 PUSH2 0xF1D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x16F0 PUSH0 DUP4 ADD DUP6 PUSH2 0x16CE JUMP JUMPDEST PUSH2 0x16FD PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1323 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1710 DUP3 DUP5 DUP7 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0xF8 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 DUP3 PUSH2 0x171C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x174A PUSH2 0x1745 DUP3 PUSH2 0xF1D JUMP JUMPDEST PUSH2 0x1728 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x175B DUP3 DUP9 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x176B DUP3 DUP8 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x177C DUP3 DUP6 DUP8 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP PUSH2 0x1788 DUP3 DUP5 PUSH2 0x159C JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1824 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x17E9 JUMP JUMPDEST PUSH2 0x182E DUP7 DUP4 PUSH2 0x17E9 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1869 PUSH2 0x1864 PUSH2 0x185F DUP5 PUSH2 0x1846 JUMP JUMPDEST PUSH2 0xF5C JUMP JUMPDEST PUSH2 0x1846 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1882 DUP4 PUSH2 0x184F JUMP JUMPDEST PUSH2 0x1896 PUSH2 0x188E DUP3 PUSH2 0x1870 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x17F5 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x18AA PUSH2 0x189E JUMP JUMPDEST PUSH2 0x18B5 DUP2 DUP5 DUP5 PUSH2 0x1879 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18D8 JUMPI PUSH2 0x18CD PUSH0 DUP3 PUSH2 0x18A2 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x18BB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x18EE DUP2 PUSH2 0x17C8 JUMP JUMPDEST PUSH2 0x18F7 DUP5 PUSH2 0x17DA JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1906 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x191A PUSH2 0x1912 DUP6 PUSH2 0x17DA JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x18BA JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x193D PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1922 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1955 DUP4 DUP4 PUSH2 0x192E JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x196E DUP3 PUSH2 0xFD7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1987 JUMPI PUSH2 0x1986 PUSH2 0x179B JUMP JUMPDEST JUMPDEST PUSH2 0x1991 DUP3 SLOAD PUSH2 0x153E JUMP JUMPDEST PUSH2 0x199C DUP3 DUP3 DUP6 PUSH2 0x18DC JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x19CD JUMPI PUSH0 DUP5 ISZERO PUSH2 0x19BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x19C5 DUP6 DUP3 PUSH2 0x194A JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1A2C JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x19DB DUP7 PUSH2 0x17C8 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A02 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19DD JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1A1F JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1A1B PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x192E JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1A47 PUSH0 DUP4 ADD DUP6 PUSH2 0x16A6 JUMP JUMPDEST PUSH2 0x1A54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x11F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A75 PUSH2 0x1A70 DUP3 PUSH2 0xE6C JUMP JUMPDEST PUSH2 0x1A5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A86 DUP3 DUP6 PUSH2 0x1739 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x1A96 DUP3 DUP5 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ACA DUP3 PUSH2 0x1AA6 JUMP JUMPDEST PUSH2 0x1AD4 DUP2 DUP6 PUSH2 0x1AB0 JUMP JUMPDEST SWAP4 POP PUSH2 0x1AE4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFF1 JUMP JUMPDEST PUSH2 0x1AED DUP2 PUSH2 0xFFF JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B10 DUP2 DUP5 PUSH2 0x1AC0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB6 0xC7 DUP11 DUP15 0xD7 JUMP 0xBE 0xB5 SWAP12 EXTCODEHASH 0xEF 0x2F PUSH13 0xD360BD680F54539972D7BBBF26 DUP2 EXTCODEHASH 0xBF PUSH27 0xB89E64736F6C634300081A00330000000000000000000000000000 ","sourceMap":"682:7550:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:146:11;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6006:213:29;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6593:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7087:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3401:432;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7611:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4332:893;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;763:146:11;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;6006:213:29:-;6068:18;;:::i;:::-;6106:7;:20;6114:11;6106:20;;;;;;;;;;;6098:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6175:1;6140:37;;6148:5;:14;;;6140:37;;;6136:76;;6200:11;6186:26;;;;;;;;;;;:::i;:::-;;;;;;;;6136:76;6006:213;;;:::o;6593:129::-;6654:16;6689:15;:26;6705:9;6689:26;;;;;;;;;;;;;;;6682:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6593:129;;;:::o;5537:238::-;5610:24;5663:6;:19;5670:11;5663:19;;;;;;;;;;;;;;;;;;;;;5646:36;;5731:1;5696:37;;5704:14;5696:37;;;5692:76;;5756:11;5742:26;;;;;;;;;;;:::i;:::-;;;;;;;;5692:76;5537:238;;;:::o;7087:273::-;7237:18;7278:75;7293:5;7327;7334:9;7345:5;;7310:41;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7300:52;;;;;;7278:14;:75::i;:::-;7271:82;;7087:273;;;;;;;:::o;3401:432::-;3527:15;2738;2728:44;;;2773:27;2728:73;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2723:141;;2837:15;2824:29;;;;;;;;;;;:::i;:::-;;;;;;;;2723:141;3558:18:::1;3579:27;3593:5;3600;;3579:13;:27::i;:::-;3558:48;;3660:1;3621:41;;3629:6;:18:::0;3636:10:::1;3629:18;;;;;;;;;;;;;;;;;;;;;3621:41;;;3617:90;;3689:5;3696:10;3671:36;;;;;;;;;;;;:::i;:::-;;;;;;;;3617:90;3748:15;3717:6;:18:::0;3724:10:::1;3717:18;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;3798:10;3791:5;3780:46;;;;;;;;:::i;:::-;;;3810:15;3780:46;;;;;;:::i;:::-;;;;;;;;3548:285;3401:432:::0;;;;;:::o;7611:188::-;7698:18;7735:57;7750:5;7784;;7767:23;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7757:34;;;;;;7735:14;:57::i;:::-;7728:64;;7611:188;;;;;:::o;4332:893::-;4488:18;1635:9:25;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;4598:93:29::1;4650:5;4657;4664;;4671:10;4633:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4623:60;;;;;;4685:5;;4598:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:24;;;;:93;;;;;:::i;:::-;4565:127;;4754:18;4775:51;4794:5;4801;4808:10;4820:5;;4775:18;:51::i;:::-;4754:72;;4889:1;4840:51;;4848:7;:19;4856:10;4848:19;;;;;;;;;;;:28;;;;;;;;;;;;4840:51;;;4836:100;;4918:5;4925:10;4900:36;;;;;;;;;;;;:::i;:::-;;;;;;;;4836:100;5003:15;:27;5019:10;5003:27;;;;;;;;;;;;;;;5036:10;5003:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5079:79;;;;;;;;5096:5;5079:79;;;;;;;;:::i;:::-;;;;;;5113:8;5079:79;;;;;;5133:10;5079:79;;;;;;5151:5;;5079:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;5057:7:::1;:19;5065:10;5057:19;;;;;;;;;;;:101;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;5190:10;5183:5;5174:44;;;;;;;;:::i;:::-;;;5202:5;5209:8;5174:44;;;;;;;:::i;:::-;;;;;;;;4512:713;1937:10:25::0;1913:22;1906:42;4332:893:29;;;;;;;;:::o;8063:167::-;8145:18;8209:5;8216;8192:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8182:41;;;;;;8175:48;;8063:167;;;;:::o;1526:276:57:-;1622:14;1657:27;1678:5;1657:1;:20;;;;:27;;;;:::i;:::-;1648:36;;1766:6;1756:28;;;1785:9;1756:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1526:276;;;;;:::o;9887:193:21:-;9987:16;10030:43;10049:1;10052:14;10068:4;10030:18;:43::i;:::-;10019:54;;9887:193;;;;:::o;10210:675::-;10325:16;10436:28;10430:4;10423:42;10491:14;10485:4;10478:28;10532:42;10526:4;10519:56;10627:4;10621;10615;10608:5;10600:32;10588:44;;10655:8;10645:136;;10696:10;10690:4;10683:24;10762:4;10756;10749:18;10645:136;10807:1;10801:4;10794:15;10210:675;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;88:117:64:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:180::-;2257:77;2254:1;2247:88;2354:4;2351:1;2344:15;2378:4;2375:1;2368:15;2395:123;2486:1;2479:5;2476:12;2466:46;;2492:18;;:::i;:::-;2466:46;2395:123;:::o;2524:147::-;2579:7;2608:5;2597:16;;2614:51;2659:5;2614:51;:::i;:::-;2524:147;;;:::o;2677:::-;2743:9;2776:42;2812:5;2776:42;:::i;:::-;2763:55;;2677:147;;;:::o;2830:153::-;2923:53;2970:5;2923:53;:::i;:::-;2918:3;2911:66;2830:153;;:::o;2989:126::-;3026:7;3066:42;3059:5;3055:54;3044:65;;2989:126;;;:::o;3121:60::-;3149:3;3170:5;3163:12;;3121:60;;;:::o;3187:142::-;3237:9;3270:53;3288:34;3297:24;3315:5;3297:24;:::i;:::-;3288:34;:::i;:::-;3270:53;:::i;:::-;3257:66;;3187:142;;;:::o;3335:126::-;3385:9;3418:37;3449:5;3418:37;:::i;:::-;3405:50;;3335:126;;;:::o;3467:145::-;3536:9;3569:37;3600:5;3569:37;:::i;:::-;3556:50;;3467:145;;;:::o;3618:159::-;3714:56;3764:5;3714:56;:::i;:::-;3709:3;3702:69;3618:159;;:::o;3783:96::-;3820:7;3849:24;3867:5;3849:24;:::i;:::-;3838:35;;3783:96;;;:::o;3885:108::-;3962:24;3980:5;3962:24;:::i;:::-;3957:3;3950:37;3885:108;;:::o;3999:99::-;4051:6;4085:5;4079:12;4069:22;;3999:99;;;:::o;4104:159::-;4178:11;4212:6;4207:3;4200:19;4252:4;4247:3;4243:14;4228:29;;4104:159;;;;:::o;4269:139::-;4358:6;4353:3;4348;4342:23;4399:1;4390:6;4385:3;4381:16;4374:27;4269:139;;;:::o;4414:102::-;4455:6;4506:2;4502:7;4497:2;4490:5;4486:14;4482:28;4472:38;;4414:102;;;:::o;4522:357::-;4600:3;4628:39;4661:5;4628:39;:::i;:::-;4683:61;4737:6;4732:3;4683:61;:::i;:::-;4676:68;;4753:65;4811:6;4806:3;4799:4;4792:5;4788:16;4753:65;:::i;:::-;4843:29;4865:6;4843:29;:::i;:::-;4838:3;4834:39;4827:46;;4604:275;4522:357;;;;:::o;4949:999::-;5066:3;5102:4;5097:3;5093:14;5193:4;5186:5;5182:16;5176:23;5212:79;5285:4;5280:3;5276:14;5262:12;5212:79;:::i;:::-;5117:184;5387:4;5380:5;5376:16;5370:23;5406:82;5482:4;5477:3;5473:14;5459:12;5406:82;:::i;:::-;5311:187;5584:4;5577:5;5573:16;5567:23;5603:63;5660:4;5655:3;5651:14;5637:12;5603:63;:::i;:::-;5508:168;5758:4;5751:5;5747:16;5741:23;5811:3;5805:4;5801:14;5794:4;5789:3;5785:14;5778:38;5837:73;5905:4;5891:12;5837:73;:::i;:::-;5829:81;;5686:235;5938:4;5931:11;;5071:877;4949:999;;;;:::o;5954:369::-;6095:4;6133:2;6122:9;6118:18;6110:26;;6182:9;6176:4;6172:20;6168:1;6157:9;6153:17;6146:47;6210:106;6311:4;6302:6;6210:106;:::i;:::-;6202:114;;5954:369;;;;:::o;6329:122::-;6402:24;6420:5;6402:24;:::i;:::-;6395:5;6392:35;6382:63;;6441:1;6438;6431:12;6382:63;6329:122;:::o;6457:139::-;6503:5;6541:6;6528:20;6519:29;;6557:33;6584:5;6557:33;:::i;:::-;6457:139;;;;:::o;6602:329::-;6661:6;6710:2;6698:9;6689:7;6685:23;6681:32;6678:119;;;6716:79;;:::i;:::-;6678:119;6836:1;6861:53;6906:7;6897:6;6886:9;6882:22;6861:53;:::i;:::-;6851:63;;6807:117;6602:329;;;;:::o;6937:114::-;7004:6;7038:5;7032:12;7022:22;;6937:114;;;:::o;7057:184::-;7156:11;7190:6;7185:3;7178:19;7230:4;7225:3;7221:14;7206:29;;7057:184;;;;:::o;7247:132::-;7314:4;7337:3;7329:11;;7367:4;7362:3;7358:14;7350:22;;7247:132;;;:::o;7385:108::-;7462:24;7480:5;7462:24;:::i;:::-;7457:3;7450:37;7385:108;;:::o;7499:179::-;7568:10;7589:46;7631:3;7623:6;7589:46;:::i;:::-;7667:4;7662:3;7658:14;7644:28;;7499:179;;;;:::o;7684:113::-;7754:4;7786;7781:3;7777:14;7769:22;;7684:113;;;:::o;7833:732::-;7952:3;7981:54;8029:5;7981:54;:::i;:::-;8051:86;8130:6;8125:3;8051:86;:::i;:::-;8044:93;;8161:56;8211:5;8161:56;:::i;:::-;8240:7;8271:1;8256:284;8281:6;8278:1;8275:13;8256:284;;;8357:6;8351:13;8384:63;8443:3;8428:13;8384:63;:::i;:::-;8377:70;;8470:60;8523:6;8470:60;:::i;:::-;8460:70;;8316:224;8303:1;8300;8296:9;8291:14;;8256:284;;;8260:14;8556:3;8549:10;;7957:608;;;7833:732;;;;:::o;8571:373::-;8714:4;8752:2;8741:9;8737:18;8729:26;;8801:9;8795:4;8791:20;8787:1;8776:9;8772:17;8765:47;8829:108;8932:4;8923:6;8829:108;:::i;:::-;8821:116;;8571:373;;;;:::o;8950:169::-;9056:56;9106:5;9056:56;:::i;:::-;9051:3;9044:69;8950:169;;:::o;9125:260::-;9237:4;9275:2;9264:9;9260:18;9252:26;;9288:90;9375:1;9364:9;9360:17;9351:6;9288:90;:::i;:::-;9125:260;;;;:::o;9391:117::-;9482:1;9475:5;9472:12;9462:40;;9498:1;9495;9488:12;9462:40;9391:117;:::o;9514:175::-;9578:5;9616:6;9603:20;9594:29;;9632:51;9677:5;9632:51;:::i;:::-;9514:175;;;;:::o;9695:117::-;9804:1;9801;9794:12;9818:117;9927:1;9924;9917:12;9941:117;10050:1;10047;10040:12;10078:553;10136:8;10146:6;10196:3;10189:4;10181:6;10177:17;10173:27;10163:122;;10204:79;;:::i;:::-;10163:122;10317:6;10304:20;10294:30;;10347:18;10339:6;10336:30;10333:117;;;10369:79;;:::i;:::-;10333:117;10483:4;10475:6;10471:17;10459:29;;10537:3;10529:4;10521:6;10517:17;10507:8;10503:32;10500:41;10497:128;;;10544:79;;:::i;:::-;10497:128;10078:553;;;;;:::o;10637:1001::-;10753:6;10761;10769;10777;10785;10834:3;10822:9;10813:7;10809:23;10805:33;10802:120;;;10841:79;;:::i;:::-;10802:120;10961:1;10986:71;11049:7;11040:6;11029:9;11025:22;10986:71;:::i;:::-;10976:81;;10932:135;11106:2;11132:53;11177:7;11168:6;11157:9;11153:22;11132:53;:::i;:::-;11122:63;;11077:118;11234:2;11260:53;11305:7;11296:6;11285:9;11281:22;11260:53;:::i;:::-;11250:63;;11205:118;11390:2;11379:9;11375:18;11362:32;11421:18;11413:6;11410:30;11407:117;;;11443:79;;:::i;:::-;11407:117;11556:65;11613:7;11604:6;11593:9;11589:22;11556:65;:::i;:::-;11538:83;;;;11333:298;10637:1001;;;;;;;;:::o;11644:118::-;11731:24;11749:5;11731:24;:::i;:::-;11726:3;11719:37;11644:118;;:::o;11768:222::-;11861:4;11899:2;11888:9;11884:18;11876:26;;11912:71;11980:1;11969:9;11965:17;11956:6;11912:71;:::i;:::-;11768:222;;;;:::o;11996:855::-;12103:6;12111;12119;12127;12176:2;12164:9;12155:7;12151:23;12147:32;12144:119;;;12182:79;;:::i;:::-;12144:119;12302:1;12327:71;12390:7;12381:6;12370:9;12366:22;12327:71;:::i;:::-;12317:81;;12273:135;12475:2;12464:9;12460:18;12447:32;12506:18;12498:6;12495:30;12492:117;;;12528:79;;:::i;:::-;12492:117;12641:65;12698:7;12689:6;12678:9;12674:22;12641:65;:::i;:::-;12623:83;;;;12418:298;12755:2;12781:53;12826:7;12817:6;12806:9;12802:22;12781:53;:::i;:::-;12771:63;;12726:118;11996:855;;;;;;;:::o;12857:710::-;12955:6;12963;12971;13020:2;13008:9;12999:7;12995:23;12991:32;12988:119;;;13026:79;;:::i;:::-;12988:119;13146:1;13171:71;13234:7;13225:6;13214:9;13210:22;13171:71;:::i;:::-;13161:81;;13117:135;13319:2;13308:9;13304:18;13291:32;13350:18;13342:6;13339:30;13336:117;;;13372:79;;:::i;:::-;13336:117;13485:65;13542:7;13533:6;13522:9;13518:22;13485:65;:::i;:::-;13467:83;;;;13262:298;12857:710;;;;;:::o;13586:552::-;13643:8;13653:6;13703:3;13696:4;13688:6;13684:17;13680:27;13670:122;;13711:79;;:::i;:::-;13670:122;13824:6;13811:20;13801:30;;13854:18;13846:6;13843:30;13840:117;;;13876:79;;:::i;:::-;13840:117;13990:4;13982:6;13978:17;13966:29;;14044:3;14036:4;14028:6;14024:17;14014:8;14010:32;14007:41;14004:128;;;14051:79;;:::i;:::-;14004:128;13586:552;;;;;:::o;14144:1199::-;14271:6;14279;14287;14295;14303;14311;14360:3;14348:9;14339:7;14335:23;14331:33;14328:120;;;14367:79;;:::i;:::-;14328:120;14487:1;14512:71;14575:7;14566:6;14555:9;14551:22;14512:71;:::i;:::-;14502:81;;14458:135;14632:2;14658:53;14703:7;14694:6;14683:9;14679:22;14658:53;:::i;:::-;14648:63;;14603:118;14788:2;14777:9;14773:18;14760:32;14819:18;14811:6;14808:30;14805:117;;;14841:79;;:::i;:::-;14805:117;14954:65;15011:7;15002:6;14991:9;14987:22;14954:65;:::i;:::-;14936:83;;;;14731:298;15096:2;15085:9;15081:18;15068:32;15127:18;15119:6;15116:30;15113:117;;;15149:79;;:::i;:::-;15113:117;15262:64;15318:7;15309:6;15298:9;15294:22;15262:64;:::i;:::-;15244:82;;;;15039:297;14144:1199;;;;;;;;:::o;15349:180::-;15397:77;15394:1;15387:88;15494:4;15491:1;15484:15;15518:4;15515:1;15508:15;15535:320;15579:6;15616:1;15610:4;15606:12;15596:22;;15663:1;15657:4;15653:12;15684:18;15674:81;;15740:4;15732:6;15728:17;15718:27;;15674:81;15802:2;15794:6;15791:14;15771:18;15768:38;15765:84;;15821:18;;:::i;:::-;15765:84;15586:269;15535:320;;;:::o;15861:94::-;15894:8;15942:5;15938:2;15934:14;15913:35;;15861:94;;;:::o;15961:::-;16000:7;16029:20;16043:5;16029:20;:::i;:::-;16018:31;;15961:94;;;:::o;16061:100::-;16100:7;16129:26;16149:5;16129:26;:::i;:::-;16118:37;;16061:100;;;:::o;16167:157::-;16272:45;16292:24;16310:5;16292:24;:::i;:::-;16272:45;:::i;:::-;16267:3;16260:58;16167:157;;:::o;16330:148::-;16432:11;16469:3;16454:18;;16330:148;;;;:::o;16484:::-;16582:6;16577:3;16572;16559:30;16623:1;16614:6;16609:3;16605:16;16598:27;16484:148;;;:::o;16662:330::-;16778:3;16799:89;16881:6;16876:3;16799:89;:::i;:::-;16792:96;;16898:56;16947:6;16942:3;16935:5;16898:56;:::i;:::-;16979:6;16974:3;16970:16;16963:23;;16662:330;;;;;:::o;16998:577::-;17196:3;17211:75;17282:3;17273:6;17211:75;:::i;:::-;17311:2;17306:3;17302:12;17295:19;;17324:75;17395:3;17386:6;17324:75;:::i;:::-;17424:2;17419:3;17415:12;17408:19;;17444:105;17545:3;17536:6;17528;17444:105;:::i;:::-;17437:112;;17566:3;17559:10;;16998:577;;;;;;;:::o;17581:115::-;17666:23;17683:5;17666:23;:::i;:::-;17661:3;17654:36;17581:115;;:::o;17702:218::-;17793:4;17831:2;17820:9;17816:18;17808:26;;17844:69;17910:1;17899:9;17895:17;17886:6;17844:69;:::i;:::-;17702:218;;;;:::o;17926:116::-;17996:21;18011:5;17996:21;:::i;:::-;17989:5;17986:32;17976:60;;18032:1;18029;18022:12;17976:60;17926:116;:::o;18048:137::-;18102:5;18133:6;18127:13;18118:22;;18149:30;18173:5;18149:30;:::i;:::-;18048:137;;;;:::o;18191:345::-;18258:6;18307:2;18295:9;18286:7;18282:23;18278:32;18275:119;;;18313:79;;:::i;:::-;18275:119;18433:1;18458:61;18511:7;18502:6;18491:9;18487:22;18458:61;:::i;:::-;18448:71;;18404:125;18191:345;;;;:::o;18542:118::-;18629:24;18647:5;18629:24;:::i;:::-;18624:3;18617:37;18542:118;;:::o;18666:222::-;18759:4;18797:2;18786:9;18782:18;18774:26;;18810:71;18878:1;18867:9;18863:17;18854:6;18810:71;:::i;:::-;18666:222;;;;:::o;18894:163::-;18997:53;19044:5;18997:53;:::i;:::-;18992:3;18985:66;18894:163;;:::o;19063:364::-;19200:4;19238:2;19227:9;19223:18;19215:26;;19251:87;19335:1;19324:9;19320:17;19311:6;19251:87;:::i;:::-;19348:72;19416:2;19405:9;19401:18;19392:6;19348:72;:::i;:::-;19063:364;;;;;:::o;19433:295::-;19575:3;19597:105;19698:3;19689:6;19681;19597:105;:::i;:::-;19590:112;;19719:3;19712:10;;19433:295;;;;;:::o;19734:96::-;19768:8;19817:5;19812:3;19808:15;19787:36;;19734:96;;;:::o;19836:93::-;19873:7;19902:21;19917:5;19902:21;:::i;:::-;19891:32;;19836:93;;;:::o;19935:200::-;20056:72;20074:53;20121:5;20074:53;:::i;:::-;20056:72;:::i;:::-;20051:3;20044:85;19935:200;;:::o;20141:749::-;20383:3;20398:91;20485:3;20476:6;20398:91;:::i;:::-;20514:1;20509:3;20505:11;20498:18;;20526:75;20597:3;20588:6;20526:75;:::i;:::-;20626:2;20621:3;20617:12;20610:19;;20646:105;20747:3;20738:6;20730;20646:105;:::i;:::-;20639:112;;20761:75;20832:3;20823:6;20761:75;:::i;:::-;20861:2;20856:3;20852:12;20845:19;;20881:3;20874:10;;20141:749;;;;;;;;:::o;20896:180::-;20944:77;20941:1;20934:88;21041:4;21038:1;21031:15;21065:4;21062:1;21055:15;21082:141;21131:4;21154:3;21146:11;;21177:3;21174:1;21167:14;21211:4;21208:1;21198:18;21190:26;;21082:141;;;:::o;21229:93::-;21266:6;21313:2;21308;21301:5;21297:14;21293:23;21283:33;;21229:93;;;:::o;21328:107::-;21372:8;21422:5;21416:4;21412:16;21391:37;;21328:107;;;;:::o;21441:393::-;21510:6;21560:1;21548:10;21544:18;21583:97;21613:66;21602:9;21583:97;:::i;:::-;21701:39;21731:8;21720:9;21701:39;:::i;:::-;21689:51;;21773:4;21769:9;21762:5;21758:21;21749:30;;21822:4;21812:8;21808:19;21801:5;21798:30;21788:40;;21517:317;;21441:393;;;;;:::o;21840:77::-;21877:7;21906:5;21895:16;;21840:77;;;:::o;21923:142::-;21973:9;22006:53;22024:34;22033:24;22051:5;22033:24;:::i;:::-;22024:34;:::i;:::-;22006:53;:::i;:::-;21993:66;;21923:142;;;:::o;22071:75::-;22114:3;22135:5;22128:12;;22071:75;;;:::o;22152:269::-;22262:39;22293:7;22262:39;:::i;:::-;22323:91;22372:41;22396:16;22372:41;:::i;:::-;22364:6;22357:4;22351:11;22323:91;:::i;:::-;22317:4;22310:105;22228:193;22152:269;;;:::o;22427:73::-;22472:3;22427:73;:::o;22506:189::-;22583:32;;:::i;:::-;22624:65;22682:6;22674;22668:4;22624:65;:::i;:::-;22559:136;22506:189;;:::o;22701:186::-;22761:120;22778:3;22771:5;22768:14;22761:120;;;22832:39;22869:1;22862:5;22832:39;:::i;:::-;22805:1;22798:5;22794:13;22785:22;;22761:120;;;22701:186;;:::o;22893:543::-;22994:2;22989:3;22986:11;22983:446;;;23028:38;23060:5;23028:38;:::i;:::-;23112:29;23130:10;23112:29;:::i;:::-;23102:8;23098:44;23295:2;23283:10;23280:18;23277:49;;;23316:8;23301:23;;23277:49;23339:80;23395:22;23413:3;23395:22;:::i;:::-;23385:8;23381:37;23368:11;23339:80;:::i;:::-;22998:431;;22983:446;22893:543;;;:::o;23442:117::-;23496:8;23546:5;23540:4;23536:16;23515:37;;23442:117;;;;:::o;23565:169::-;23609:6;23642:51;23690:1;23686:6;23678:5;23675:1;23671:13;23642:51;:::i;:::-;23638:56;23723:4;23717;23713:15;23703:25;;23616:118;23565:169;;;;:::o;23739:295::-;23815:4;23961:29;23986:3;23980:4;23961:29;:::i;:::-;23953:37;;24023:3;24020:1;24016:11;24010:4;24007:21;23999:29;;23739:295;;;;:::o;24039:1395::-;24156:37;24189:3;24156:37;:::i;:::-;24258:18;24250:6;24247:30;24244:56;;;24280:18;;:::i;:::-;24244:56;24324:38;24356:4;24350:11;24324:38;:::i;:::-;24409:67;24469:6;24461;24455:4;24409:67;:::i;:::-;24503:1;24527:4;24514:17;;24559:2;24551:6;24548:14;24576:1;24571:618;;;;25233:1;25250:6;25247:77;;;25299:9;25294:3;25290:19;25284:26;25275:35;;25247:77;25350:67;25410:6;25403:5;25350:67;:::i;:::-;25344:4;25337:81;25206:222;24541:887;;24571:618;24623:4;24619:9;24611:6;24607:22;24657:37;24689:4;24657:37;:::i;:::-;24716:1;24730:208;24744:7;24741:1;24738:14;24730:208;;;24823:9;24818:3;24814:19;24808:26;24800:6;24793:42;24874:1;24866:6;24862:14;24852:24;;24921:2;24910:9;24906:18;24893:31;;24767:4;24764:1;24760:12;24755:17;;24730:208;;;24966:6;24957:7;24954:19;24951:179;;;25024:9;25019:3;25015:19;25009:26;25067:48;25109:4;25101:6;25097:17;25086:9;25067:48;:::i;:::-;25059:6;25052:64;24974:156;24951:179;25176:1;25172;25164:6;25160:14;25156:22;25150:4;25143:36;24578:611;;;24541:887;;24131:1303;;;24039:1395;;:::o;25440:370::-;25580:4;25618:2;25607:9;25603:18;25595:26;;25631:71;25699:1;25688:9;25684:17;25675:6;25631:71;:::i;:::-;25712:91;25799:2;25788:9;25784:18;25775:6;25712:91;:::i;:::-;25440:370;;;;;:::o;25816:79::-;25855:7;25884:5;25873:16;;25816:79;;;:::o;25901:157::-;26006:45;26026:24;26044:5;26026:24;:::i;:::-;26006:45;:::i;:::-;26001:3;25994:58;25901:157;;:::o;26064:428::-;26220:3;26235:91;26322:3;26313:6;26235:91;:::i;:::-;26351:1;26346:3;26342:11;26335:18;;26363:75;26434:3;26425:6;26363:75;:::i;:::-;26463:2;26458:3;26454:12;26447:19;;26483:3;26476:10;;26064:428;;;;;:::o;26498:98::-;26549:6;26583:5;26577:12;26567:22;;26498:98;;;:::o;26602:168::-;26685:11;26719:6;26714:3;26707:19;26759:4;26754:3;26750:14;26735:29;;26602:168;;;;:::o;26776:373::-;26862:3;26890:38;26922:5;26890:38;:::i;:::-;26944:70;27007:6;27002:3;26944:70;:::i;:::-;26937:77;;27023:65;27081:6;27076:3;27069:4;27062:5;27058:16;27023:65;:::i;:::-;27113:29;27135:6;27113:29;:::i;:::-;27108:3;27104:39;27097:46;;26866:283;26776:373;;;;:::o;27155:309::-;27266:4;27304:2;27293:9;27289:18;27281:26;;27353:9;27347:4;27343:20;27339:1;27328:9;27324:17;27317:47;27381:76;27452:4;27443:6;27381:76;:::i;:::-;27373:84;;27155:309;;;;:::o"},"methodIdentifiers":{"deployClone(uint8,address,string,bytes)":"fd97064b","getBaseImplementation(bytes32)":"83f38859","getClone(bytes32)":"3aaf1626","getCloneIdentifier(uint8,address,address,string)":"acc83fc8","getClones(address)":"792aa01c","getIdentifier(uint8,string)":"f1668792","register(uint8,string,address)":"d12dd481","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"name\":\"AlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"NotCloneable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"name\":\"NotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"baseImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract Cloneable\",\"name\":\"deployedInstance\",\"type\":\"address\"}],\"name\":\"Deployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"registryType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"base_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"deployClone\",\"outputs\":[{\"internalType\":\"contract Cloneable\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier_\",\"type\":\"bytes32\"}],\"name\":\"getBaseImplementation\",\"outputs\":[{\"internalType\":\"contract Cloneable\",\"name\":\"implementation\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier_\",\"type\":\"bytes32\"}],\"name\":\"getClone\",\"outputs\":[{\"components\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"baseType\",\"type\":\"uint8\"},{\"internalType\":\"contract Cloneable\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"struct BoostRegistry.Clone\",\"name\":\"clone\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"base_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"getCloneIdentifier\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer_\",\"type\":\"address\"}],\"name\":\"getClones\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"}],\"name\":\"getIdentifier\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"identifier\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum BoostRegistry.RegistryType\",\"name\":\"type_\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"name\":\"register\",\"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\":\"This contract is used to register base implementations and deploy new instances of those implementations for use within the Boost protocol\",\"errors\":{\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"kind\":\"dev\",\"methods\":{\"deployClone(uint8,address,string,bytes)\":{\"details\":\"This function will either emit a `Deployed` event and return the clone or revert\",\"params\":{\"base_\":\"The address of the base implementation to clone\",\"data_\":\"The data payload for the cloned instance's initializer\",\"name_\":\"The display name for the clone\",\"type_\":\"The type of base implementation to be cloned\"},\"returns\":{\"instance\":\"The address of the deployed instance\"}},\"getBaseImplementation(bytes32)\":{\"details\":\"This function will revert if the implementation is not registered\",\"params\":{\"identifier_\":\"The unique identifier for the implementation (see {getIdentifier})\"},\"returns\":{\"implementation\":\"The address of the implementation\"}},\"getClone(bytes32)\":{\"params\":{\"identifier_\":\"The unique identifier for the deployed clone (see {getCloneIdentifier})\"},\"returns\":{\"clone\":\"The address of the deployed clone\"}},\"getCloneIdentifier(uint8,address,address,string)\":{\"params\":{\"base_\":\"The address of the base implementation\",\"deployer_\":\"The address of the deployer\",\"name_\":\"The display name of the clone\",\"type_\":\"The base type for the implementation\"},\"returns\":{\"identifier\":\"The unique identifier for the clone\"}},\"getClones(address)\":{\"details\":\"WARNING: This function may return a large amount of data and is primarily intended for off-chain usage. It should be avoided in on-chain logic.\",\"params\":{\"deployer_\":\"The address of the deployer\"},\"returns\":{\"_0\":\"clones The list of deployed clones for the given deployer\"}},\"getIdentifier(uint8,string)\":{\"params\":{\"name_\":\"The name of the implementation\",\"type_\":\"The base type for the implementation\"},\"returns\":{\"identifier\":\"The unique identifier for the implementation\"}},\"register(uint8,string,address)\":{\"details\":\"This function will either emit a `Registered` event or revert if the identifier has already been registeredThe given address must implement the given type interface (See {ERC165-supportsInterface})\",\"params\":{\"implementation_\":\"The address of the implementation contract\",\"name_\":\"A name for the implementation (must be unique within the given type)\",\"type_\":\"The base type for the implementation\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Boost Registry\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyRegistered(uint8,bytes32)\":[{\"notice\":\"Thrown when a base implementation is already registered\"}],\"NotCloneable(address)\":[{\"notice\":\"Thrown when the implementation is not a valid {Cloneable} base\"}],\"NotRegistered(bytes32)\":[{\"notice\":\"Thrown when no match is found for the given identifier\"}]},\"events\":{\"Deployed(uint8,bytes32,address,address)\":{\"notice\":\"Emitted when a new instance of a base implementation is deployed\"},\"Registered(uint8,bytes32,address)\":{\"notice\":\"Emitted when a new base implementation is registered\"}},\"kind\":\"user\",\"methods\":{\"deployClone(uint8,address,string,bytes)\":{\"notice\":\"Deploy a new instance of a registered base implementation\"},\"getBaseImplementation(bytes32)\":{\"notice\":\"Get the address of a registered base implementation\"},\"getClone(bytes32)\":{\"notice\":\"Get the address of a deployed clone by its identifier\"},\"getCloneIdentifier(uint8,address,address,string)\":{\"notice\":\"Build the identifier for a clone of a base implementation\"},\"getClones(address)\":{\"notice\":\"Get the list of identifiers of deployed clones for a given deployer\"},\"getIdentifier(uint8,string)\":{\"notice\":\"Build the identifier for a base implementation\"},\"register(uint8,string,address)\":{\"notice\":\"Register a new base implementation of a given type\"}},\"notice\":\"A registry for base implementations and cloned instances\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BoostRegistry.sol\":\"BoostRegistry\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/BoostRegistry.sol\":{\"keccak256\":\"0xc9f28f67a2b9d1e8cfe76981011908b38c63538ee0a27405c58f2e337609d1ff\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://53859966207b2ba00858ef705409506458281e37dfeaf7d887f7d9ebe37e08c6\",\"dweb:/ipfs/QmRoAmJnvgG3J8UQqRGEdNdBc1fbWfELqaDemEUx3roPCS\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/actions/AContractAction.sol":{"AContractAction":{"abi":[{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"bytes_","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"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":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","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":{"VALIDATOR()":"393df8cb","chainId()":"9a8a0592","execute(bytes)":"09c5eabe","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","prepare(bytes)":"d7768c47","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"bytes_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"(success, data) A tuple of the success status and the returned data\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"prepare(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"bytes_\":\"The prepared payload\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"execute(bytes)\":{\"notice\":\"Execute the action\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/AContractAction.sol\":\"AContractAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/AContractAction.sol\":{\"keccak256\":\"0x8c63ac88b8ae8d62e434efee64cba6dfb75328cf9878aadd9a2731d6c661b401\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3d6cd76a30cb8aa1047f1607bd4b697e1edd6d5d872ea9caa053482f54b70e50\",\"dweb:/ipfs/QmPB7TaQBFFx5sePRha8wUyB4mSF6cpRpX7jRWKuMX2cZr\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/actions/AERC721MintAction.sol":{"AERC721MintAction":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"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":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"validated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","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":{"VALIDATOR()":"393df8cb","cancelOwnershipHandover()":"54d1f13d","chainId()":"9a8a0592","completeOwnershipHandover(address)":"f04e283e","execute(bytes)":"09c5eabe","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","prepare(bytes)":"d7768c47","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef","validated(uint256)":"bec95277","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"validated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The action is expected to be prepared with the data payload for the minting of the tokenThis a minimal generic implementation that should be extended if additional functionality or customizations are requiredIt is expected that the target contract has an externally accessible mint function whose selector\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the call (not used in this implementation)\"},\"returns\":{\"returnData\":\"The return data from the call\",\"success\":\"The success status of the call\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"prepare(bytes)\":{\"details\":\"Note that the mint value is NOT included in the prepared payload but must be sent with the call\",\"params\":{\"data_\":\"The ABI-encoded payload for the target contract call\"},\"returns\":{\"_0\":\"The encoded payload to be sent to the target contract\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`\",\"params\":{\"data_\":\"The data payload for the action `(address holder, (uint256 tokenId))`\"},\"returns\":{\"success\":\"True if the action has been validated for the user\"}}},\"stateVariables\":{\"validated\":{\"details\":\"This is intended to prevent multiple validations against the same token ID\"}},\"title\":\"ERC721 Mint Action\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"execute(bytes)\":{\"notice\":\"Execute the action (not yet implemented)\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"},\"validated(uint256)\":{\"notice\":\"The set of validated tokens\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"notice\":\"A primitive action to mint and/or validate that an ERC721 token has been minted\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/AERC721MintAction.sol\":\"AERC721MintAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/AContractAction.sol\":{\"keccak256\":\"0x8c63ac88b8ae8d62e434efee64cba6dfb75328cf9878aadd9a2731d6c661b401\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3d6cd76a30cb8aa1047f1607bd4b697e1edd6d5d872ea9caa053482f54b70e50\",\"dweb:/ipfs/QmPB7TaQBFFx5sePRha8wUyB4mSF6cpRpX7jRWKuMX2cZr\"]},\"contracts/actions/AERC721MintAction.sol\":{\"keccak256\":\"0x1df1b53c518de5c33df7ee050ab6fd939105974ba997e57cfa2fd897fc2ad2d9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dba57b32d8f5afb43271b2fbcf95827f5a36bf2eee18f6cfa1b2fa00c3f90921\",\"dweb:/ipfs/QmfBT7vUQ6PJECgoFA167VX3HctVXzFMVr7fvPfmadDxvr\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/actions/ContractAction.sol\":{\"keccak256\":\"0x5bb056bdfe74a0a8233c8625574e3d18009079978acaa73d5b977cc6c9a95a65\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://600ac50bda86d601fcd38c9bd852ce5161fd120b28da199f6b33b1cb1ab3c89e\",\"dweb:/ipfs/QmcQvgcSjkYitHT9CAjRvdtHyn3xBpNCE7hqERUWS2173A\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/actions/Action.sol":{"Action":{"abi":[{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"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":{"VALIDATOR()":"393df8cb","execute(bytes)":"09c5eabe","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","prepare(bytes)":"d7768c47","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"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\":\"Action classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"(success, data) A tuple of the success status and the returned data\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"prepare(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"The prepared payload\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"title\":\"Boost Action\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"execute(bytes)\":{\"notice\":\"Execute the action\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Action within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/Action.sol\":\"Action\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/actions/ContractAction.sol":{"ContractAction":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"bytes_","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"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":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13141":{"entryPoint":null,"id":13141,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":31,"id":9184,"parameterSlots":0,"returnSlots":0},"@_initializableSlot_9128":{"entryPoint":135,"id":9128,"parameterSlots":0,"returnSlots":1}},"generatedSources":[],"linkReferences":{},"object":"60a0604052348015600e575f80fd5b50601b601f60201b60201c565b60b0565b5f602c608760201b60201c565b90508054600181161560455763f92ee8a95f526004601cfd5b8160c01c808260011c146082578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b608051610cbb6100c85f395f6104030152610cbb5ff3fe608060405260043610610090575f3560e01c8063439fab9111610058578063439fab911461017f5780639a8a0592146101a7578063d4b83992146101d1578063d7768c47146101fb578063ea3d508a1461023757610090565b806301ffc9a71461009457806309c5eabe146100d057806328d6183b14610101578063393df8cb1461012b5780633fa4f24514610155575b5f80fd5b34801561009f575f80fd5b506100ba60048036038101906100b591906107d8565b610261565b6040516100c7919061081d565b60405180910390f35b6100ea60048036038101906100e59190610897565b6102da565b6040516100f8929190610952565b60405180910390f35b34801561010c575f80fd5b506101156103da565b604051610122919061098f565b60405180910390f35b348015610136575f80fd5b5061013f610401565b60405161014c9190610a22565b60405180910390f35b348015610160575f80fd5b50610169610425565b6040516101769190610a53565b60405180910390f35b34801561018a575f80fd5b506101a560048036038101906101a09190610897565b61042b565b005b3480156101b2575f80fd5b506101bb6104b8565b6040516101c89190610a53565b60405180910390f35b3480156101dc575f80fd5b506101e56104bd565b6040516101f29190610a8c565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c9190610897565b6104e2565b60405161022e9190610aa5565b60405180910390f35b348015610242575f80fd5b5061024b610506565b604051610258919061098f565b60405180910390f35b5f7f2fae823b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102d357506102d282610519565b5b9050919050565b5f6060465f5414610323575f546040517f180098f400000000000000000000000000000000000000000000000000000000815260040161031a9190610a53565b60405180910390fd5b5f8060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660025461037a600160149054906101000a900460e01b8989610592565b6040516103879190610aff565b5f6040518083038185875af1925050503d805f81146103c1576040519150601f19603f3d011682016040523d82523d5f602084013e6103c6565b606091505b509150915081819350935050509250929050565b5f7f2fae823b00000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6104346105be565b905080546003825580156104665760018160011c14303b1061045d5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061047e83838101906104799190610c5a565b6105e7565b80156104b3576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606104fe600160149054906101000a900460e01b8484610592565b905092915050565b600160149054906101000a900460e01b81565b5f7fcea74fae000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061058b575061058a8261066c565b5b9050919050565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6105ef6106e5565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106de57506106dd82610709565b5b9050919050565b5f6106ee6105be565b905080546001166107065763d7e6bcf85f526004601cfd5b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6107b781610783565b81146107c1575f80fd5b50565b5f813590506107d2816107ae565b92915050565b5f602082840312156107ed576107ec61077b565b5b5f6107fa848285016107c4565b91505092915050565b5f8115159050919050565b61081781610803565b82525050565b5f6020820190506108305f83018461080e565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261085757610856610836565b5b8235905067ffffffffffffffff8111156108745761087361083a565b5b6020830191508360018202830111156108905761088f61083e565b5b9250929050565b5f80602083850312156108ad576108ac61077b565b5b5f83013567ffffffffffffffff8111156108ca576108c961077f565b5b6108d685828601610842565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610924826108e2565b61092e81856108ec565b935061093e8185602086016108fc565b6109478161090a565b840191505092915050565b5f6040820190506109655f83018561080e565b8181036020830152610977818461091a565b90509392505050565b61098981610783565b82525050565b5f6020820190506109a25f830184610980565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6109ea6109e56109e0846109a8565b6109c7565b6109a8565b9050919050565b5f6109fb826109d0565b9050919050565b5f610a0c826109f1565b9050919050565b610a1c81610a02565b82525050565b5f602082019050610a355f830184610a13565b92915050565b5f819050919050565b610a4d81610a3b565b82525050565b5f602082019050610a665f830184610a44565b92915050565b5f610a76826109a8565b9050919050565b610a8681610a6c565b82525050565b5f602082019050610a9f5f830184610a7d565b92915050565b5f6020820190508181035f830152610abd818461091a565b905092915050565b5f81905092915050565b5f610ad9826108e2565b610ae38185610ac5565b9350610af38185602086016108fc565b80840191505092915050565b5f610b0a8284610acf565b915081905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610b4f8261090a565b810181811067ffffffffffffffff82111715610b6e57610b6d610b19565b5b80604052505050565b5f610b80610772565b9050610b8c8282610b46565b919050565b610b9a81610a3b565b8114610ba4575f80fd5b50565b5f81359050610bb581610b91565b92915050565b610bc481610a6c565b8114610bce575f80fd5b50565b5f81359050610bdf81610bbb565b92915050565b5f60808284031215610bfa57610bf9610b15565b5b610c046080610b77565b90505f610c1384828501610ba7565b5f830152506020610c2684828501610bd1565b6020830152506040610c3a848285016107c4565b6040830152506060610c4e84828501610ba7565b60608301525092915050565b5f60808284031215610c6f57610c6e61077b565b5b5f610c7c84828501610be5565b9150509291505056fea264697066735822122078819f85df532b2d6a0175b85d378a67022fe83dbe1d5bf49a7ebc596573668764736f6c634300081a0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x1B PUSH1 0x1F PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0xB0 JUMP JUMPDEST PUSH0 PUSH1 0x2C PUSH1 0x87 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH1 0x45 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH1 0x82 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0xCBB PUSH2 0xC8 PUSH0 CODECOPY PUSH0 PUSH2 0x403 ADD MSTORE PUSH2 0xCBB PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x90 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x439FAB91 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x237 JUMPI PUSH2 0x90 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x155 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x7D8 JUMP JUMPDEST PUSH2 0x261 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x81D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x2DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP3 SWAP2 SWAP1 PUSH2 0x952 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x115 PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x136 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH2 0x401 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14C SWAP2 SWAP1 PUSH2 0xA22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x160 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x169 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x42B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E5 PUSH2 0x4BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x206 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21C SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0xAA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x242 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x258 SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x2FAE823B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2D3 JUMPI POP PUSH2 0x2D2 DUP3 PUSH2 0x519 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 CHAINID PUSH0 SLOAD EQ PUSH2 0x323 JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x180098F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31A SWAP2 SWAP1 PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 SLOAD PUSH2 0x37A PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP10 DUP10 PUSH2 0x592 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x387 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3C1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x2FAE823B00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x434 PUSH2 0x5BE JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x45D JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x47E DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x479 SWAP2 SWAP1 PUSH2 0xC5A JUMP JUMPDEST PUSH2 0x5E7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4FE PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0x592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xCEA74FAE00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x58B JUMPI POP PUSH2 0x58A DUP3 PUSH2 0x66C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x5EF PUSH2 0x6E5 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6DE JUMPI POP PUSH2 0x6DD DUP3 PUSH2 0x709 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6EE PUSH2 0x5BE JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0x706 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7B7 DUP2 PUSH2 0x783 JUMP JUMPDEST DUP2 EQ PUSH2 0x7C1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7D2 DUP2 PUSH2 0x7AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7ED JUMPI PUSH2 0x7EC PUSH2 0x77B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x7FA DUP5 DUP3 DUP6 ADD PUSH2 0x7C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x817 DUP2 PUSH2 0x803 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x830 PUSH0 DUP4 ADD DUP5 PUSH2 0x80E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0x836 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x874 JUMPI PUSH2 0x873 PUSH2 0x83A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x890 JUMPI PUSH2 0x88F PUSH2 0x83E JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8AD JUMPI PUSH2 0x8AC PUSH2 0x77B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8CA JUMPI PUSH2 0x8C9 PUSH2 0x77F JUMP JUMPDEST JUMPDEST PUSH2 0x8D6 DUP6 DUP3 DUP7 ADD PUSH2 0x842 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x924 DUP3 PUSH2 0x8E2 JUMP JUMPDEST PUSH2 0x92E DUP2 DUP6 PUSH2 0x8EC JUMP JUMPDEST SWAP4 POP PUSH2 0x93E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x947 DUP2 PUSH2 0x90A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x965 PUSH0 DUP4 ADD DUP6 PUSH2 0x80E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x977 DUP2 DUP5 PUSH2 0x91A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x989 DUP2 PUSH2 0x783 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9A2 PUSH0 DUP4 ADD DUP5 PUSH2 0x980 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x9EA PUSH2 0x9E5 PUSH2 0x9E0 DUP5 PUSH2 0x9A8 JUMP JUMPDEST PUSH2 0x9C7 JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x9FB DUP3 PUSH2 0x9D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA35 PUSH0 DUP4 ADD DUP5 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4D DUP2 PUSH2 0xA3B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA66 PUSH0 DUP4 ADD DUP5 PUSH2 0xA44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA76 DUP3 PUSH2 0x9A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA86 DUP2 PUSH2 0xA6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA9F PUSH0 DUP4 ADD DUP5 PUSH2 0xA7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xABD DUP2 DUP5 PUSH2 0x91A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAD9 DUP3 PUSH2 0x8E2 JUMP JUMPDEST PUSH2 0xAE3 DUP2 DUP6 PUSH2 0xAC5 JUMP JUMPDEST SWAP4 POP PUSH2 0xAF3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8FC JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB0A DUP3 DUP5 PUSH2 0xACF JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xB4F DUP3 PUSH2 0x90A JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xB6E JUMPI PUSH2 0xB6D PUSH2 0xB19 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB80 PUSH2 0x772 JUMP JUMPDEST SWAP1 POP PUSH2 0xB8C DUP3 DUP3 PUSH2 0xB46 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9A DUP2 PUSH2 0xA3B JUMP JUMPDEST DUP2 EQ PUSH2 0xBA4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBB5 DUP2 PUSH2 0xB91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBC4 DUP2 PUSH2 0xA6C JUMP JUMPDEST DUP2 EQ PUSH2 0xBCE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBBB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBFA JUMPI PUSH2 0xBF9 PUSH2 0xB15 JUMP JUMPDEST JUMPDEST PUSH2 0xC04 PUSH1 0x80 PUSH2 0xB77 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xC13 DUP5 DUP3 DUP6 ADD PUSH2 0xBA7 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0xC26 DUP5 DUP3 DUP6 ADD PUSH2 0xBD1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xC3A DUP5 DUP3 DUP6 ADD PUSH2 0x7C4 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0xC4E DUP5 DUP3 DUP6 ADD PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6F JUMPI PUSH2 0xC6E PUSH2 0x77B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC7C DUP5 DUP3 DUP6 ADD PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH25 0x819F85DF532B2D6A0175B85D378A67022FE83DBE1D5BF49A7E 0xBC MSIZE PUSH6 0x73668764736F PUSH13 0x634300081A0033000000000000 ","sourceMap":"244:962:33:-:0;;;676:53;;;;;;;;;;700:22;:20;;;:22;;:::i;:::-;244:962;;6525:759:20;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;2424:113::-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;244:962:33:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@VALIDATOR_13058":{"entryPoint":1025,"id":13058,"parameterSlots":0,"returnSlots":0},"@_buildPayload_12810":{"entryPoint":1426,"id":12810,"parameterSlots":3,"returnSlots":1},"@_checkInitializing_9173":{"entryPoint":1765,"id":9173,"parameterSlots":0,"returnSlots":0},"@_initializableSlot_9128":{"entryPoint":1470,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initialize_13189":{"entryPoint":1511,"id":13189,"parameterSlots":1,"returnSlots":0},"@chainId_12727":{"entryPoint":1208,"id":12727,"parameterSlots":0,"returnSlots":0},"@execute_12785":{"entryPoint":730,"id":12785,"parameterSlots":2,"returnSlots":2},"@getComponentInterface_12824":{"entryPoint":986,"id":12824,"parameterSlots":0,"returnSlots":1},"@initialize_13160":{"entryPoint":1067,"id":13160,"parameterSlots":2,"returnSlots":0},"@prepare_12799":{"entryPoint":1250,"id":12799,"parameterSlots":2,"returnSlots":1},"@selector_12733":{"entryPoint":1286,"id":12733,"parameterSlots":0,"returnSlots":0},"@supportsInterface_12847":{"entryPoint":609,"id":12847,"parameterSlots":1,"returnSlots":1},"@supportsInterface_13099":{"entryPoint":1305,"id":13099,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":1644,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":1801,"id":2830,"parameterSlots":1,"returnSlots":1},"@target_12730":{"entryPoint":1213,"id":12730,"parameterSlots":0,"returnSlots":0},"@value_12736":{"entryPoint":1061,"id":12736,"parameterSlots":0,"returnSlots":0},"abi_decode_t_address":{"entryPoint":3025,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":1988,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":2114,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_struct$_InitPayload_$13134_memory_ptr":{"entryPoint":3045,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2983,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":2008,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":2199,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_InitPayload_$13134_memory_ptr":{"entryPoint":3162,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":2685,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2062,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":2432,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":2330,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2767,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack":{"entryPoint":2579,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2628,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2815,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":2700,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2077,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2386,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":2447,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2725,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Validator_$19130__to_t_address__fromStack_reversed":{"entryPoint":2594,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2643,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":2935,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1906,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":2274,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":2284,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":2757,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2668,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2051,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":1923,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2472,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2619,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$19130_to_t_address":{"entryPoint":2562,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":2545,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":2512,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2300,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":2886,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":2503,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":2841,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":2106,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":2102,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":2837,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":2110,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1919,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1915,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2314,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3003,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":1966,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2961,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:10505:64","nodeType":"YulBlock","src":"0:10505:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1607:28:64","nodeType":"YulBlock","src":"1607:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:64","nodeType":"YulLiteral","src":"1624:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:64","nodeType":"YulLiteral","src":"1627:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:64","nodeType":"YulIdentifier","src":"1617:6:64"},"nativeSrc":"1617:12:64","nodeType":"YulFunctionCall","src":"1617:12:64"},"nativeSrc":"1617:12:64","nodeType":"YulExpressionStatement","src":"1617:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:64","nodeType":"YulFunctionDefinition","src":"1518:117:64"},{"body":{"nativeSrc":"1730:28:64","nodeType":"YulBlock","src":"1730:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:64","nodeType":"YulLiteral","src":"1747:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:64","nodeType":"YulLiteral","src":"1750:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:64","nodeType":"YulIdentifier","src":"1740:6:64"},"nativeSrc":"1740:12:64","nodeType":"YulFunctionCall","src":"1740:12:64"},"nativeSrc":"1740:12:64","nodeType":"YulExpressionStatement","src":"1740:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:64","nodeType":"YulFunctionDefinition","src":"1641:117:64"},{"body":{"nativeSrc":"1853:28:64","nodeType":"YulBlock","src":"1853:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:64","nodeType":"YulLiteral","src":"1870:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:64","nodeType":"YulLiteral","src":"1873:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:64","nodeType":"YulIdentifier","src":"1863:6:64"},"nativeSrc":"1863:12:64","nodeType":"YulFunctionCall","src":"1863:12:64"},"nativeSrc":"1863:12:64","nodeType":"YulExpressionStatement","src":"1863:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:64","nodeType":"YulFunctionDefinition","src":"1764:117:64"},{"body":{"nativeSrc":"1974:478:64","nodeType":"YulBlock","src":"1974:478:64","statements":[{"body":{"nativeSrc":"2023:83:64","nodeType":"YulBlock","src":"2023:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:64","nodeType":"YulIdentifier","src":"2025:77:64"},"nativeSrc":"2025:79:64","nodeType":"YulFunctionCall","src":"2025:79:64"},"nativeSrc":"2025:79:64","nodeType":"YulExpressionStatement","src":"2025:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:64","nodeType":"YulIdentifier","src":"2002:6:64"},{"kind":"number","nativeSrc":"2010:4:64","nodeType":"YulLiteral","src":"2010:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:64","nodeType":"YulIdentifier","src":"1998:3:64"},"nativeSrc":"1998:17:64","nodeType":"YulFunctionCall","src":"1998:17:64"},{"name":"end","nativeSrc":"2017:3:64","nodeType":"YulIdentifier","src":"2017:3:64"}],"functionName":{"name":"slt","nativeSrc":"1994:3:64","nodeType":"YulIdentifier","src":"1994:3:64"},"nativeSrc":"1994:27:64","nodeType":"YulFunctionCall","src":"1994:27:64"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:64","nodeType":"YulIdentifier","src":"1987:6:64"},"nativeSrc":"1987:35:64","nodeType":"YulFunctionCall","src":"1987:35:64"},"nativeSrc":"1984:122:64","nodeType":"YulIf","src":"1984:122:64"},{"nativeSrc":"2115:30:64","nodeType":"YulAssignment","src":"2115:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:64","nodeType":"YulIdentifier","src":"2138:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:64","nodeType":"YulIdentifier","src":"2125:12:64"},"nativeSrc":"2125:20:64","nodeType":"YulFunctionCall","src":"2125:20:64"},"variableNames":[{"name":"length","nativeSrc":"2115:6:64","nodeType":"YulIdentifier","src":"2115:6:64"}]},{"body":{"nativeSrc":"2188:83:64","nodeType":"YulBlock","src":"2188:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:64","nodeType":"YulIdentifier","src":"2190:77:64"},"nativeSrc":"2190:79:64","nodeType":"YulFunctionCall","src":"2190:79:64"},"nativeSrc":"2190:79:64","nodeType":"YulExpressionStatement","src":"2190:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:64","nodeType":"YulIdentifier","src":"2160:6:64"},{"kind":"number","nativeSrc":"2168:18:64","nodeType":"YulLiteral","src":"2168:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:64","nodeType":"YulIdentifier","src":"2157:2:64"},"nativeSrc":"2157:30:64","nodeType":"YulFunctionCall","src":"2157:30:64"},"nativeSrc":"2154:117:64","nodeType":"YulIf","src":"2154:117:64"},{"nativeSrc":"2280:29:64","nodeType":"YulAssignment","src":"2280:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:64","nodeType":"YulIdentifier","src":"2296:6:64"},{"kind":"number","nativeSrc":"2304:4:64","nodeType":"YulLiteral","src":"2304:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:64","nodeType":"YulIdentifier","src":"2292:3:64"},"nativeSrc":"2292:17:64","nodeType":"YulFunctionCall","src":"2292:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:64","nodeType":"YulIdentifier","src":"2280:8:64"}]},{"body":{"nativeSrc":"2363:83:64","nodeType":"YulBlock","src":"2363:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:64","nodeType":"YulIdentifier","src":"2365:77:64"},"nativeSrc":"2365:79:64","nodeType":"YulFunctionCall","src":"2365:79:64"},"nativeSrc":"2365:79:64","nodeType":"YulExpressionStatement","src":"2365:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:64","nodeType":"YulIdentifier","src":"2328:8:64"},{"arguments":[{"name":"length","nativeSrc":"2342:6:64","nodeType":"YulIdentifier","src":"2342:6:64"},{"kind":"number","nativeSrc":"2350:4:64","nodeType":"YulLiteral","src":"2350:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:64","nodeType":"YulIdentifier","src":"2338:3:64"},"nativeSrc":"2338:17:64","nodeType":"YulFunctionCall","src":"2338:17:64"}],"functionName":{"name":"add","nativeSrc":"2324:3:64","nodeType":"YulIdentifier","src":"2324:3:64"},"nativeSrc":"2324:32:64","nodeType":"YulFunctionCall","src":"2324:32:64"},{"name":"end","nativeSrc":"2358:3:64","nodeType":"YulIdentifier","src":"2358:3:64"}],"functionName":{"name":"gt","nativeSrc":"2321:2:64","nodeType":"YulIdentifier","src":"2321:2:64"},"nativeSrc":"2321:41:64","nodeType":"YulFunctionCall","src":"2321:41:64"},"nativeSrc":"2318:128:64","nodeType":"YulIf","src":"2318:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:64","nodeType":"YulTypedName","src":"1941:6:64","type":""},{"name":"end","nativeSrc":"1949:3:64","nodeType":"YulTypedName","src":"1949:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:64","nodeType":"YulTypedName","src":"1957:8:64","type":""},{"name":"length","nativeSrc":"1967:6:64","nodeType":"YulTypedName","src":"1967:6:64","type":""}],"src":"1900:552:64"},{"body":{"nativeSrc":"2543:442:64","nodeType":"YulBlock","src":"2543:442:64","statements":[{"body":{"nativeSrc":"2589:83:64","nodeType":"YulBlock","src":"2589:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:64","nodeType":"YulIdentifier","src":"2591:77:64"},"nativeSrc":"2591:79:64","nodeType":"YulFunctionCall","src":"2591:79:64"},"nativeSrc":"2591:79:64","nodeType":"YulExpressionStatement","src":"2591:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:64","nodeType":"YulIdentifier","src":"2564:7:64"},{"name":"headStart","nativeSrc":"2573:9:64","nodeType":"YulIdentifier","src":"2573:9:64"}],"functionName":{"name":"sub","nativeSrc":"2560:3:64","nodeType":"YulIdentifier","src":"2560:3:64"},"nativeSrc":"2560:23:64","nodeType":"YulFunctionCall","src":"2560:23:64"},{"kind":"number","nativeSrc":"2585:2:64","nodeType":"YulLiteral","src":"2585:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:64","nodeType":"YulIdentifier","src":"2556:3:64"},"nativeSrc":"2556:32:64","nodeType":"YulFunctionCall","src":"2556:32:64"},"nativeSrc":"2553:119:64","nodeType":"YulIf","src":"2553:119:64"},{"nativeSrc":"2682:296:64","nodeType":"YulBlock","src":"2682:296:64","statements":[{"nativeSrc":"2697:45:64","nodeType":"YulVariableDeclaration","src":"2697:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:64","nodeType":"YulIdentifier","src":"2728:9:64"},{"kind":"number","nativeSrc":"2739:1:64","nodeType":"YulLiteral","src":"2739:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:64","nodeType":"YulIdentifier","src":"2724:3:64"},"nativeSrc":"2724:17:64","nodeType":"YulFunctionCall","src":"2724:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:64","nodeType":"YulIdentifier","src":"2711:12:64"},"nativeSrc":"2711:31:64","nodeType":"YulFunctionCall","src":"2711:31:64"},"variables":[{"name":"offset","nativeSrc":"2701:6:64","nodeType":"YulTypedName","src":"2701:6:64","type":""}]},{"body":{"nativeSrc":"2789:83:64","nodeType":"YulBlock","src":"2789:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:64","nodeType":"YulIdentifier","src":"2791:77:64"},"nativeSrc":"2791:79:64","nodeType":"YulFunctionCall","src":"2791:79:64"},"nativeSrc":"2791:79:64","nodeType":"YulExpressionStatement","src":"2791:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:64","nodeType":"YulIdentifier","src":"2761:6:64"},{"kind":"number","nativeSrc":"2769:18:64","nodeType":"YulLiteral","src":"2769:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:64","nodeType":"YulIdentifier","src":"2758:2:64"},"nativeSrc":"2758:30:64","nodeType":"YulFunctionCall","src":"2758:30:64"},"nativeSrc":"2755:117:64","nodeType":"YulIf","src":"2755:117:64"},{"nativeSrc":"2886:82:64","nodeType":"YulAssignment","src":"2886:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:64","nodeType":"YulIdentifier","src":"2940:9:64"},{"name":"offset","nativeSrc":"2951:6:64","nodeType":"YulIdentifier","src":"2951:6:64"}],"functionName":{"name":"add","nativeSrc":"2936:3:64","nodeType":"YulIdentifier","src":"2936:3:64"},"nativeSrc":"2936:22:64","nodeType":"YulFunctionCall","src":"2936:22:64"},{"name":"dataEnd","nativeSrc":"2960:7:64","nodeType":"YulIdentifier","src":"2960:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:64","nodeType":"YulIdentifier","src":"2904:31:64"},"nativeSrc":"2904:64:64","nodeType":"YulFunctionCall","src":"2904:64:64"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:64","nodeType":"YulIdentifier","src":"2886:6:64"},{"name":"value1","nativeSrc":"2894:6:64","nodeType":"YulIdentifier","src":"2894:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:64","nodeType":"YulTypedName","src":"2505:9:64","type":""},{"name":"dataEnd","nativeSrc":"2516:7:64","nodeType":"YulTypedName","src":"2516:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:64","nodeType":"YulTypedName","src":"2528:6:64","type":""},{"name":"value1","nativeSrc":"2536:6:64","nodeType":"YulTypedName","src":"2536:6:64","type":""}],"src":"2458:527:64"},{"body":{"nativeSrc":"3049:40:64","nodeType":"YulBlock","src":"3049:40:64","statements":[{"nativeSrc":"3060:22:64","nodeType":"YulAssignment","src":"3060:22:64","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:64","nodeType":"YulIdentifier","src":"3076:5:64"}],"functionName":{"name":"mload","nativeSrc":"3070:5:64","nodeType":"YulIdentifier","src":"3070:5:64"},"nativeSrc":"3070:12:64","nodeType":"YulFunctionCall","src":"3070:12:64"},"variableNames":[{"name":"length","nativeSrc":"3060:6:64","nodeType":"YulIdentifier","src":"3060:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:64","nodeType":"YulTypedName","src":"3032:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:64","nodeType":"YulTypedName","src":"3042:6:64","type":""}],"src":"2991:98:64"},{"body":{"nativeSrc":"3190:73:64","nodeType":"YulBlock","src":"3190:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:64","nodeType":"YulIdentifier","src":"3207:3:64"},{"name":"length","nativeSrc":"3212:6:64","nodeType":"YulIdentifier","src":"3212:6:64"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:64","nodeType":"YulIdentifier","src":"3200:6:64"},"nativeSrc":"3200:19:64","nodeType":"YulFunctionCall","src":"3200:19:64"},"nativeSrc":"3200:19:64","nodeType":"YulExpressionStatement","src":"3200:19:64"},{"nativeSrc":"3228:29:64","nodeType":"YulAssignment","src":"3228:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:64","nodeType":"YulIdentifier","src":"3247:3:64"},{"kind":"number","nativeSrc":"3252:4:64","nodeType":"YulLiteral","src":"3252:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:64","nodeType":"YulIdentifier","src":"3243:3:64"},"nativeSrc":"3243:14:64","nodeType":"YulFunctionCall","src":"3243:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:64","nodeType":"YulIdentifier","src":"3228:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:64","nodeType":"YulTypedName","src":"3162:3:64","type":""},{"name":"length","nativeSrc":"3167:6:64","nodeType":"YulTypedName","src":"3167:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:64","nodeType":"YulTypedName","src":"3178:11:64","type":""}],"src":"3095:168:64"},{"body":{"nativeSrc":"3331:77:64","nodeType":"YulBlock","src":"3331:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:64","nodeType":"YulIdentifier","src":"3348:3:64"},{"name":"src","nativeSrc":"3353:3:64","nodeType":"YulIdentifier","src":"3353:3:64"},{"name":"length","nativeSrc":"3358:6:64","nodeType":"YulIdentifier","src":"3358:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:64","nodeType":"YulIdentifier","src":"3342:5:64"},"nativeSrc":"3342:23:64","nodeType":"YulFunctionCall","src":"3342:23:64"},"nativeSrc":"3342:23:64","nodeType":"YulExpressionStatement","src":"3342:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:64","nodeType":"YulIdentifier","src":"3385:3:64"},{"name":"length","nativeSrc":"3390:6:64","nodeType":"YulIdentifier","src":"3390:6:64"}],"functionName":{"name":"add","nativeSrc":"3381:3:64","nodeType":"YulIdentifier","src":"3381:3:64"},"nativeSrc":"3381:16:64","nodeType":"YulFunctionCall","src":"3381:16:64"},{"kind":"number","nativeSrc":"3399:1:64","nodeType":"YulLiteral","src":"3399:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:64","nodeType":"YulIdentifier","src":"3374:6:64"},"nativeSrc":"3374:27:64","nodeType":"YulFunctionCall","src":"3374:27:64"},"nativeSrc":"3374:27:64","nodeType":"YulExpressionStatement","src":"3374:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:64","nodeType":"YulTypedName","src":"3313:3:64","type":""},{"name":"dst","nativeSrc":"3318:3:64","nodeType":"YulTypedName","src":"3318:3:64","type":""},{"name":"length","nativeSrc":"3323:6:64","nodeType":"YulTypedName","src":"3323:6:64","type":""}],"src":"3269:139:64"},{"body":{"nativeSrc":"3462:54:64","nodeType":"YulBlock","src":"3462:54:64","statements":[{"nativeSrc":"3472:38:64","nodeType":"YulAssignment","src":"3472:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:64","nodeType":"YulIdentifier","src":"3490:5:64"},{"kind":"number","nativeSrc":"3497:2:64","nodeType":"YulLiteral","src":"3497:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:64","nodeType":"YulIdentifier","src":"3486:3:64"},"nativeSrc":"3486:14:64","nodeType":"YulFunctionCall","src":"3486:14:64"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:64","nodeType":"YulLiteral","src":"3506:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:64","nodeType":"YulIdentifier","src":"3502:3:64"},"nativeSrc":"3502:7:64","nodeType":"YulFunctionCall","src":"3502:7:64"}],"functionName":{"name":"and","nativeSrc":"3482:3:64","nodeType":"YulIdentifier","src":"3482:3:64"},"nativeSrc":"3482:28:64","nodeType":"YulFunctionCall","src":"3482:28:64"},"variableNames":[{"name":"result","nativeSrc":"3472:6:64","nodeType":"YulIdentifier","src":"3472:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:64","nodeType":"YulTypedName","src":"3445:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:64","nodeType":"YulTypedName","src":"3455:6:64","type":""}],"src":"3414:102:64"},{"body":{"nativeSrc":"3612:283:64","nodeType":"YulBlock","src":"3612:283:64","statements":[{"nativeSrc":"3622:52:64","nodeType":"YulVariableDeclaration","src":"3622:52:64","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:64","nodeType":"YulIdentifier","src":"3668:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:64","nodeType":"YulIdentifier","src":"3636:31:64"},"nativeSrc":"3636:38:64","nodeType":"YulFunctionCall","src":"3636:38:64"},"variables":[{"name":"length","nativeSrc":"3626:6:64","nodeType":"YulTypedName","src":"3626:6:64","type":""}]},{"nativeSrc":"3683:77:64","nodeType":"YulAssignment","src":"3683:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:64","nodeType":"YulIdentifier","src":"3748:3:64"},{"name":"length","nativeSrc":"3753:6:64","nodeType":"YulIdentifier","src":"3753:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:64","nodeType":"YulIdentifier","src":"3690:57:64"},"nativeSrc":"3690:70:64","nodeType":"YulFunctionCall","src":"3690:70:64"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:64","nodeType":"YulIdentifier","src":"3683:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:64","nodeType":"YulIdentifier","src":"3808:5:64"},{"kind":"number","nativeSrc":"3815:4:64","nodeType":"YulLiteral","src":"3815:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:64","nodeType":"YulIdentifier","src":"3804:3:64"},"nativeSrc":"3804:16:64","nodeType":"YulFunctionCall","src":"3804:16:64"},{"name":"pos","nativeSrc":"3822:3:64","nodeType":"YulIdentifier","src":"3822:3:64"},{"name":"length","nativeSrc":"3827:6:64","nodeType":"YulIdentifier","src":"3827:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:64","nodeType":"YulIdentifier","src":"3769:34:64"},"nativeSrc":"3769:65:64","nodeType":"YulFunctionCall","src":"3769:65:64"},"nativeSrc":"3769:65:64","nodeType":"YulExpressionStatement","src":"3769:65:64"},{"nativeSrc":"3843:46:64","nodeType":"YulAssignment","src":"3843:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:64","nodeType":"YulIdentifier","src":"3854:3:64"},{"arguments":[{"name":"length","nativeSrc":"3881:6:64","nodeType":"YulIdentifier","src":"3881:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:64","nodeType":"YulIdentifier","src":"3859:21:64"},"nativeSrc":"3859:29:64","nodeType":"YulFunctionCall","src":"3859:29:64"}],"functionName":{"name":"add","nativeSrc":"3850:3:64","nodeType":"YulIdentifier","src":"3850:3:64"},"nativeSrc":"3850:39:64","nodeType":"YulFunctionCall","src":"3850:39:64"},"variableNames":[{"name":"end","nativeSrc":"3843:3:64","nodeType":"YulIdentifier","src":"3843:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:64","nodeType":"YulTypedName","src":"3593:5:64","type":""},{"name":"pos","nativeSrc":"3600:3:64","nodeType":"YulTypedName","src":"3600:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:64","nodeType":"YulTypedName","src":"3608:3:64","type":""}],"src":"3522:373:64"},{"body":{"nativeSrc":"4039:269:64","nodeType":"YulBlock","src":"4039:269:64","statements":[{"nativeSrc":"4049:26:64","nodeType":"YulAssignment","src":"4049:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4061:9:64","nodeType":"YulIdentifier","src":"4061:9:64"},{"kind":"number","nativeSrc":"4072:2:64","nodeType":"YulLiteral","src":"4072:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4057:3:64","nodeType":"YulIdentifier","src":"4057:3:64"},"nativeSrc":"4057:18:64","nodeType":"YulFunctionCall","src":"4057:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4049:4:64","nodeType":"YulIdentifier","src":"4049:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4123:6:64","nodeType":"YulIdentifier","src":"4123:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4136:9:64","nodeType":"YulIdentifier","src":"4136:9:64"},{"kind":"number","nativeSrc":"4147:1:64","nodeType":"YulLiteral","src":"4147:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4132:3:64","nodeType":"YulIdentifier","src":"4132:3:64"},"nativeSrc":"4132:17:64","nodeType":"YulFunctionCall","src":"4132:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4085:37:64","nodeType":"YulIdentifier","src":"4085:37:64"},"nativeSrc":"4085:65:64","nodeType":"YulFunctionCall","src":"4085:65:64"},"nativeSrc":"4085:65:64","nodeType":"YulExpressionStatement","src":"4085:65:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4171:9:64","nodeType":"YulIdentifier","src":"4171:9:64"},{"kind":"number","nativeSrc":"4182:2:64","nodeType":"YulLiteral","src":"4182:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4167:3:64","nodeType":"YulIdentifier","src":"4167:3:64"},"nativeSrc":"4167:18:64","nodeType":"YulFunctionCall","src":"4167:18:64"},{"arguments":[{"name":"tail","nativeSrc":"4191:4:64","nodeType":"YulIdentifier","src":"4191:4:64"},{"name":"headStart","nativeSrc":"4197:9:64","nodeType":"YulIdentifier","src":"4197:9:64"}],"functionName":{"name":"sub","nativeSrc":"4187:3:64","nodeType":"YulIdentifier","src":"4187:3:64"},"nativeSrc":"4187:20:64","nodeType":"YulFunctionCall","src":"4187:20:64"}],"functionName":{"name":"mstore","nativeSrc":"4160:6:64","nodeType":"YulIdentifier","src":"4160:6:64"},"nativeSrc":"4160:48:64","nodeType":"YulFunctionCall","src":"4160:48:64"},"nativeSrc":"4160:48:64","nodeType":"YulExpressionStatement","src":"4160:48:64"},{"nativeSrc":"4217:84:64","nodeType":"YulAssignment","src":"4217:84:64","value":{"arguments":[{"name":"value1","nativeSrc":"4287:6:64","nodeType":"YulIdentifier","src":"4287:6:64"},{"name":"tail","nativeSrc":"4296:4:64","nodeType":"YulIdentifier","src":"4296:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4225:61:64","nodeType":"YulIdentifier","src":"4225:61:64"},"nativeSrc":"4225:76:64","nodeType":"YulFunctionCall","src":"4225:76:64"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:64","nodeType":"YulIdentifier","src":"4217:4:64"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:407:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4003:9:64","nodeType":"YulTypedName","src":"4003:9:64","type":""},{"name":"value1","nativeSrc":"4015:6:64","nodeType":"YulTypedName","src":"4015:6:64","type":""},{"name":"value0","nativeSrc":"4023:6:64","nodeType":"YulTypedName","src":"4023:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4034:4:64","nodeType":"YulTypedName","src":"4034:4:64","type":""}],"src":"3901:407:64"},{"body":{"nativeSrc":"4377:52:64","nodeType":"YulBlock","src":"4377:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4394:3:64","nodeType":"YulIdentifier","src":"4394:3:64"},{"arguments":[{"name":"value","nativeSrc":"4416:5:64","nodeType":"YulIdentifier","src":"4416:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"4399:16:64","nodeType":"YulIdentifier","src":"4399:16:64"},"nativeSrc":"4399:23:64","nodeType":"YulFunctionCall","src":"4399:23:64"}],"functionName":{"name":"mstore","nativeSrc":"4387:6:64","nodeType":"YulIdentifier","src":"4387:6:64"},"nativeSrc":"4387:36:64","nodeType":"YulFunctionCall","src":"4387:36:64"},"nativeSrc":"4387:36:64","nodeType":"YulExpressionStatement","src":"4387:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"4314:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4365:5:64","nodeType":"YulTypedName","src":"4365:5:64","type":""},{"name":"pos","nativeSrc":"4372:3:64","nodeType":"YulTypedName","src":"4372:3:64","type":""}],"src":"4314:115:64"},{"body":{"nativeSrc":"4531:122:64","nodeType":"YulBlock","src":"4531:122:64","statements":[{"nativeSrc":"4541:26:64","nodeType":"YulAssignment","src":"4541:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4553:9:64","nodeType":"YulIdentifier","src":"4553:9:64"},{"kind":"number","nativeSrc":"4564:2:64","nodeType":"YulLiteral","src":"4564:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4549:3:64","nodeType":"YulIdentifier","src":"4549:3:64"},"nativeSrc":"4549:18:64","nodeType":"YulFunctionCall","src":"4549:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4541:4:64","nodeType":"YulIdentifier","src":"4541:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4619:6:64","nodeType":"YulIdentifier","src":"4619:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4632:9:64","nodeType":"YulIdentifier","src":"4632:9:64"},{"kind":"number","nativeSrc":"4643:1:64","nodeType":"YulLiteral","src":"4643:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4628:3:64","nodeType":"YulIdentifier","src":"4628:3:64"},"nativeSrc":"4628:17:64","nodeType":"YulFunctionCall","src":"4628:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"4577:41:64","nodeType":"YulIdentifier","src":"4577:41:64"},"nativeSrc":"4577:69:64","nodeType":"YulFunctionCall","src":"4577:69:64"},"nativeSrc":"4577:69:64","nodeType":"YulExpressionStatement","src":"4577:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"4435:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4503:9:64","nodeType":"YulTypedName","src":"4503:9:64","type":""},{"name":"value0","nativeSrc":"4515:6:64","nodeType":"YulTypedName","src":"4515:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4526:4:64","nodeType":"YulTypedName","src":"4526:4:64","type":""}],"src":"4435:218:64"},{"body":{"nativeSrc":"4704:81:64","nodeType":"YulBlock","src":"4704:81:64","statements":[{"nativeSrc":"4714:65:64","nodeType":"YulAssignment","src":"4714:65:64","value":{"arguments":[{"name":"value","nativeSrc":"4729:5:64","nodeType":"YulIdentifier","src":"4729:5:64"},{"kind":"number","nativeSrc":"4736:42:64","nodeType":"YulLiteral","src":"4736:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4725:3:64","nodeType":"YulIdentifier","src":"4725:3:64"},"nativeSrc":"4725:54:64","nodeType":"YulFunctionCall","src":"4725:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"4714:7:64","nodeType":"YulIdentifier","src":"4714:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4659:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4686:5:64","nodeType":"YulTypedName","src":"4686:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4696:7:64","nodeType":"YulTypedName","src":"4696:7:64","type":""}],"src":"4659:126:64"},{"body":{"nativeSrc":"4823:28:64","nodeType":"YulBlock","src":"4823:28:64","statements":[{"nativeSrc":"4833:12:64","nodeType":"YulAssignment","src":"4833:12:64","value":{"name":"value","nativeSrc":"4840:5:64","nodeType":"YulIdentifier","src":"4840:5:64"},"variableNames":[{"name":"ret","nativeSrc":"4833:3:64","nodeType":"YulIdentifier","src":"4833:3:64"}]}]},"name":"identity","nativeSrc":"4791:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4809:5:64","nodeType":"YulTypedName","src":"4809:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4819:3:64","nodeType":"YulTypedName","src":"4819:3:64","type":""}],"src":"4791:60:64"},{"body":{"nativeSrc":"4917:82:64","nodeType":"YulBlock","src":"4917:82:64","statements":[{"nativeSrc":"4927:66:64","nodeType":"YulAssignment","src":"4927:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4985:5:64","nodeType":"YulIdentifier","src":"4985:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4967:17:64","nodeType":"YulIdentifier","src":"4967:17:64"},"nativeSrc":"4967:24:64","nodeType":"YulFunctionCall","src":"4967:24:64"}],"functionName":{"name":"identity","nativeSrc":"4958:8:64","nodeType":"YulIdentifier","src":"4958:8:64"},"nativeSrc":"4958:34:64","nodeType":"YulFunctionCall","src":"4958:34:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4940:17:64","nodeType":"YulIdentifier","src":"4940:17:64"},"nativeSrc":"4940:53:64","nodeType":"YulFunctionCall","src":"4940:53:64"},"variableNames":[{"name":"converted","nativeSrc":"4927:9:64","nodeType":"YulIdentifier","src":"4927:9:64"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4857:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4897:5:64","nodeType":"YulTypedName","src":"4897:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4907:9:64","nodeType":"YulTypedName","src":"4907:9:64","type":""}],"src":"4857:142:64"},{"body":{"nativeSrc":"5065:66:64","nodeType":"YulBlock","src":"5065:66:64","statements":[{"nativeSrc":"5075:50:64","nodeType":"YulAssignment","src":"5075:50:64","value":{"arguments":[{"name":"value","nativeSrc":"5119:5:64","nodeType":"YulIdentifier","src":"5119:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"5088:30:64","nodeType":"YulIdentifier","src":"5088:30:64"},"nativeSrc":"5088:37:64","nodeType":"YulFunctionCall","src":"5088:37:64"},"variableNames":[{"name":"converted","nativeSrc":"5075:9:64","nodeType":"YulIdentifier","src":"5075:9:64"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"5005:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5045:5:64","nodeType":"YulTypedName","src":"5045:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5055:9:64","nodeType":"YulTypedName","src":"5055:9:64","type":""}],"src":"5005:126:64"},{"body":{"nativeSrc":"5216:66:64","nodeType":"YulBlock","src":"5216:66:64","statements":[{"nativeSrc":"5226:50:64","nodeType":"YulAssignment","src":"5226:50:64","value":{"arguments":[{"name":"value","nativeSrc":"5270:5:64","nodeType":"YulIdentifier","src":"5270:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5239:30:64","nodeType":"YulIdentifier","src":"5239:30:64"},"nativeSrc":"5239:37:64","nodeType":"YulFunctionCall","src":"5239:37:64"},"variableNames":[{"name":"converted","nativeSrc":"5226:9:64","nodeType":"YulIdentifier","src":"5226:9:64"}]}]},"name":"convert_t_contract$_Validator_$19130_to_t_address","nativeSrc":"5137:145:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5196:5:64","nodeType":"YulTypedName","src":"5196:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5206:9:64","nodeType":"YulTypedName","src":"5206:9:64","type":""}],"src":"5137:145:64"},{"body":{"nativeSrc":"5372:85:64","nodeType":"YulBlock","src":"5372:85:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5389:3:64","nodeType":"YulIdentifier","src":"5389:3:64"},{"arguments":[{"name":"value","nativeSrc":"5444:5:64","nodeType":"YulIdentifier","src":"5444:5:64"}],"functionName":{"name":"convert_t_contract$_Validator_$19130_to_t_address","nativeSrc":"5394:49:64","nodeType":"YulIdentifier","src":"5394:49:64"},"nativeSrc":"5394:56:64","nodeType":"YulFunctionCall","src":"5394:56:64"}],"functionName":{"name":"mstore","nativeSrc":"5382:6:64","nodeType":"YulIdentifier","src":"5382:6:64"},"nativeSrc":"5382:69:64","nodeType":"YulFunctionCall","src":"5382:69:64"},"nativeSrc":"5382:69:64","nodeType":"YulExpressionStatement","src":"5382:69:64"}]},"name":"abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack","nativeSrc":"5288:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5360:5:64","nodeType":"YulTypedName","src":"5360:5:64","type":""},{"name":"pos","nativeSrc":"5367:3:64","nodeType":"YulTypedName","src":"5367:3:64","type":""}],"src":"5288:169:64"},{"body":{"nativeSrc":"5580:143:64","nodeType":"YulBlock","src":"5580:143:64","statements":[{"nativeSrc":"5590:26:64","nodeType":"YulAssignment","src":"5590:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5602:9:64","nodeType":"YulIdentifier","src":"5602:9:64"},{"kind":"number","nativeSrc":"5613:2:64","nodeType":"YulLiteral","src":"5613:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5598:3:64","nodeType":"YulIdentifier","src":"5598:3:64"},"nativeSrc":"5598:18:64","nodeType":"YulFunctionCall","src":"5598:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5590:4:64","nodeType":"YulIdentifier","src":"5590:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5689:6:64","nodeType":"YulIdentifier","src":"5689:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"5702:9:64","nodeType":"YulIdentifier","src":"5702:9:64"},{"kind":"number","nativeSrc":"5713:1:64","nodeType":"YulLiteral","src":"5713:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5698:3:64","nodeType":"YulIdentifier","src":"5698:3:64"},"nativeSrc":"5698:17:64","nodeType":"YulFunctionCall","src":"5698:17:64"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack","nativeSrc":"5626:62:64","nodeType":"YulIdentifier","src":"5626:62:64"},"nativeSrc":"5626:90:64","nodeType":"YulFunctionCall","src":"5626:90:64"},"nativeSrc":"5626:90:64","nodeType":"YulExpressionStatement","src":"5626:90:64"}]},"name":"abi_encode_tuple_t_contract$_Validator_$19130__to_t_address__fromStack_reversed","nativeSrc":"5463:260:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5552:9:64","nodeType":"YulTypedName","src":"5552:9:64","type":""},{"name":"value0","nativeSrc":"5564:6:64","nodeType":"YulTypedName","src":"5564:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5575:4:64","nodeType":"YulTypedName","src":"5575:4:64","type":""}],"src":"5463:260:64"},{"body":{"nativeSrc":"5774:32:64","nodeType":"YulBlock","src":"5774:32:64","statements":[{"nativeSrc":"5784:16:64","nodeType":"YulAssignment","src":"5784:16:64","value":{"name":"value","nativeSrc":"5795:5:64","nodeType":"YulIdentifier","src":"5795:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5784:7:64","nodeType":"YulIdentifier","src":"5784:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5729:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5756:5:64","nodeType":"YulTypedName","src":"5756:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5766:7:64","nodeType":"YulTypedName","src":"5766:7:64","type":""}],"src":"5729:77:64"},{"body":{"nativeSrc":"5877:53:64","nodeType":"YulBlock","src":"5877:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5894:3:64","nodeType":"YulIdentifier","src":"5894:3:64"},{"arguments":[{"name":"value","nativeSrc":"5917:5:64","nodeType":"YulIdentifier","src":"5917:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5899:17:64","nodeType":"YulIdentifier","src":"5899:17:64"},"nativeSrc":"5899:24:64","nodeType":"YulFunctionCall","src":"5899:24:64"}],"functionName":{"name":"mstore","nativeSrc":"5887:6:64","nodeType":"YulIdentifier","src":"5887:6:64"},"nativeSrc":"5887:37:64","nodeType":"YulFunctionCall","src":"5887:37:64"},"nativeSrc":"5887:37:64","nodeType":"YulExpressionStatement","src":"5887:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5812:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5865:5:64","nodeType":"YulTypedName","src":"5865:5:64","type":""},{"name":"pos","nativeSrc":"5872:3:64","nodeType":"YulTypedName","src":"5872:3:64","type":""}],"src":"5812:118:64"},{"body":{"nativeSrc":"6034:124:64","nodeType":"YulBlock","src":"6034:124:64","statements":[{"nativeSrc":"6044:26:64","nodeType":"YulAssignment","src":"6044:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6056:9:64","nodeType":"YulIdentifier","src":"6056:9:64"},{"kind":"number","nativeSrc":"6067:2:64","nodeType":"YulLiteral","src":"6067:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6052:3:64","nodeType":"YulIdentifier","src":"6052:3:64"},"nativeSrc":"6052:18:64","nodeType":"YulFunctionCall","src":"6052:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6044:4:64","nodeType":"YulIdentifier","src":"6044:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6124:6:64","nodeType":"YulIdentifier","src":"6124:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6137:9:64","nodeType":"YulIdentifier","src":"6137:9:64"},{"kind":"number","nativeSrc":"6148:1:64","nodeType":"YulLiteral","src":"6148:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6133:3:64","nodeType":"YulIdentifier","src":"6133:3:64"},"nativeSrc":"6133:17:64","nodeType":"YulFunctionCall","src":"6133:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6080:43:64","nodeType":"YulIdentifier","src":"6080:43:64"},"nativeSrc":"6080:71:64","nodeType":"YulFunctionCall","src":"6080:71:64"},"nativeSrc":"6080:71:64","nodeType":"YulExpressionStatement","src":"6080:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5936:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6006:9:64","nodeType":"YulTypedName","src":"6006:9:64","type":""},{"name":"value0","nativeSrc":"6018:6:64","nodeType":"YulTypedName","src":"6018:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6029:4:64","nodeType":"YulTypedName","src":"6029:4:64","type":""}],"src":"5936:222:64"},{"body":{"nativeSrc":"6209:51:64","nodeType":"YulBlock","src":"6209:51:64","statements":[{"nativeSrc":"6219:35:64","nodeType":"YulAssignment","src":"6219:35:64","value":{"arguments":[{"name":"value","nativeSrc":"6248:5:64","nodeType":"YulIdentifier","src":"6248:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"6230:17:64","nodeType":"YulIdentifier","src":"6230:17:64"},"nativeSrc":"6230:24:64","nodeType":"YulFunctionCall","src":"6230:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"6219:7:64","nodeType":"YulIdentifier","src":"6219:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"6164:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6191:5:64","nodeType":"YulTypedName","src":"6191:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6201:7:64","nodeType":"YulTypedName","src":"6201:7:64","type":""}],"src":"6164:96:64"},{"body":{"nativeSrc":"6331:53:64","nodeType":"YulBlock","src":"6331:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6348:3:64","nodeType":"YulIdentifier","src":"6348:3:64"},{"arguments":[{"name":"value","nativeSrc":"6371:5:64","nodeType":"YulIdentifier","src":"6371:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6353:17:64","nodeType":"YulIdentifier","src":"6353:17:64"},"nativeSrc":"6353:24:64","nodeType":"YulFunctionCall","src":"6353:24:64"}],"functionName":{"name":"mstore","nativeSrc":"6341:6:64","nodeType":"YulIdentifier","src":"6341:6:64"},"nativeSrc":"6341:37:64","nodeType":"YulFunctionCall","src":"6341:37:64"},"nativeSrc":"6341:37:64","nodeType":"YulExpressionStatement","src":"6341:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6266:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6319:5:64","nodeType":"YulTypedName","src":"6319:5:64","type":""},{"name":"pos","nativeSrc":"6326:3:64","nodeType":"YulTypedName","src":"6326:3:64","type":""}],"src":"6266:118:64"},{"body":{"nativeSrc":"6488:124:64","nodeType":"YulBlock","src":"6488:124:64","statements":[{"nativeSrc":"6498:26:64","nodeType":"YulAssignment","src":"6498:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6510:9:64","nodeType":"YulIdentifier","src":"6510:9:64"},{"kind":"number","nativeSrc":"6521:2:64","nodeType":"YulLiteral","src":"6521:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6506:3:64","nodeType":"YulIdentifier","src":"6506:3:64"},"nativeSrc":"6506:18:64","nodeType":"YulFunctionCall","src":"6506:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6498:4:64","nodeType":"YulIdentifier","src":"6498:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6578:6:64","nodeType":"YulIdentifier","src":"6578:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6591:9:64","nodeType":"YulIdentifier","src":"6591:9:64"},{"kind":"number","nativeSrc":"6602:1:64","nodeType":"YulLiteral","src":"6602:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6587:3:64","nodeType":"YulIdentifier","src":"6587:3:64"},"nativeSrc":"6587:17:64","nodeType":"YulFunctionCall","src":"6587:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6534:43:64","nodeType":"YulIdentifier","src":"6534:43:64"},"nativeSrc":"6534:71:64","nodeType":"YulFunctionCall","src":"6534:71:64"},"nativeSrc":"6534:71:64","nodeType":"YulExpressionStatement","src":"6534:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6390:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6460:9:64","nodeType":"YulTypedName","src":"6460:9:64","type":""},{"name":"value0","nativeSrc":"6472:6:64","nodeType":"YulTypedName","src":"6472:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6483:4:64","nodeType":"YulTypedName","src":"6483:4:64","type":""}],"src":"6390:222:64"},{"body":{"nativeSrc":"6734:193:64","nodeType":"YulBlock","src":"6734:193:64","statements":[{"nativeSrc":"6744:26:64","nodeType":"YulAssignment","src":"6744:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6756:9:64","nodeType":"YulIdentifier","src":"6756:9:64"},{"kind":"number","nativeSrc":"6767:2:64","nodeType":"YulLiteral","src":"6767:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6752:3:64","nodeType":"YulIdentifier","src":"6752:3:64"},"nativeSrc":"6752:18:64","nodeType":"YulFunctionCall","src":"6752:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6744:4:64","nodeType":"YulIdentifier","src":"6744:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6791:9:64","nodeType":"YulIdentifier","src":"6791:9:64"},{"kind":"number","nativeSrc":"6802:1:64","nodeType":"YulLiteral","src":"6802:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6787:3:64","nodeType":"YulIdentifier","src":"6787:3:64"},"nativeSrc":"6787:17:64","nodeType":"YulFunctionCall","src":"6787:17:64"},{"arguments":[{"name":"tail","nativeSrc":"6810:4:64","nodeType":"YulIdentifier","src":"6810:4:64"},{"name":"headStart","nativeSrc":"6816:9:64","nodeType":"YulIdentifier","src":"6816:9:64"}],"functionName":{"name":"sub","nativeSrc":"6806:3:64","nodeType":"YulIdentifier","src":"6806:3:64"},"nativeSrc":"6806:20:64","nodeType":"YulFunctionCall","src":"6806:20:64"}],"functionName":{"name":"mstore","nativeSrc":"6780:6:64","nodeType":"YulIdentifier","src":"6780:6:64"},"nativeSrc":"6780:47:64","nodeType":"YulFunctionCall","src":"6780:47:64"},"nativeSrc":"6780:47:64","nodeType":"YulExpressionStatement","src":"6780:47:64"},{"nativeSrc":"6836:84:64","nodeType":"YulAssignment","src":"6836:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"6906:6:64","nodeType":"YulIdentifier","src":"6906:6:64"},{"name":"tail","nativeSrc":"6915:4:64","nodeType":"YulIdentifier","src":"6915:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"6844:61:64","nodeType":"YulIdentifier","src":"6844:61:64"},"nativeSrc":"6844:76:64","nodeType":"YulFunctionCall","src":"6844:76:64"},"variableNames":[{"name":"tail","nativeSrc":"6836:4:64","nodeType":"YulIdentifier","src":"6836:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"6618:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6706:9:64","nodeType":"YulTypedName","src":"6706:9:64","type":""},{"name":"value0","nativeSrc":"6718:6:64","nodeType":"YulTypedName","src":"6718:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6729:4:64","nodeType":"YulTypedName","src":"6729:4:64","type":""}],"src":"6618:309:64"},{"body":{"nativeSrc":"7046:34:64","nodeType":"YulBlock","src":"7046:34:64","statements":[{"nativeSrc":"7056:18:64","nodeType":"YulAssignment","src":"7056:18:64","value":{"name":"pos","nativeSrc":"7071:3:64","nodeType":"YulIdentifier","src":"7071:3:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"7056:11:64","nodeType":"YulIdentifier","src":"7056:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"6933:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7018:3:64","nodeType":"YulTypedName","src":"7018:3:64","type":""},{"name":"length","nativeSrc":"7023:6:64","nodeType":"YulTypedName","src":"7023:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"7034:11:64","nodeType":"YulTypedName","src":"7034:11:64","type":""}],"src":"6933:147:64"},{"body":{"nativeSrc":"7194:278:64","nodeType":"YulBlock","src":"7194:278:64","statements":[{"nativeSrc":"7204:52:64","nodeType":"YulVariableDeclaration","src":"7204:52:64","value":{"arguments":[{"name":"value","nativeSrc":"7250:5:64","nodeType":"YulIdentifier","src":"7250:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"7218:31:64","nodeType":"YulIdentifier","src":"7218:31:64"},"nativeSrc":"7218:38:64","nodeType":"YulFunctionCall","src":"7218:38:64"},"variables":[{"name":"length","nativeSrc":"7208:6:64","nodeType":"YulTypedName","src":"7208:6:64","type":""}]},{"nativeSrc":"7265:95:64","nodeType":"YulAssignment","src":"7265:95:64","value":{"arguments":[{"name":"pos","nativeSrc":"7348:3:64","nodeType":"YulIdentifier","src":"7348:3:64"},{"name":"length","nativeSrc":"7353:6:64","nodeType":"YulIdentifier","src":"7353:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7272:75:64","nodeType":"YulIdentifier","src":"7272:75:64"},"nativeSrc":"7272:88:64","nodeType":"YulFunctionCall","src":"7272:88:64"},"variableNames":[{"name":"pos","nativeSrc":"7265:3:64","nodeType":"YulIdentifier","src":"7265:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7408:5:64","nodeType":"YulIdentifier","src":"7408:5:64"},{"kind":"number","nativeSrc":"7415:4:64","nodeType":"YulLiteral","src":"7415:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7404:3:64","nodeType":"YulIdentifier","src":"7404:3:64"},"nativeSrc":"7404:16:64","nodeType":"YulFunctionCall","src":"7404:16:64"},{"name":"pos","nativeSrc":"7422:3:64","nodeType":"YulIdentifier","src":"7422:3:64"},{"name":"length","nativeSrc":"7427:6:64","nodeType":"YulIdentifier","src":"7427:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"7369:34:64","nodeType":"YulIdentifier","src":"7369:34:64"},"nativeSrc":"7369:65:64","nodeType":"YulFunctionCall","src":"7369:65:64"},"nativeSrc":"7369:65:64","nodeType":"YulExpressionStatement","src":"7369:65:64"},{"nativeSrc":"7443:23:64","nodeType":"YulAssignment","src":"7443:23:64","value":{"arguments":[{"name":"pos","nativeSrc":"7454:3:64","nodeType":"YulIdentifier","src":"7454:3:64"},{"name":"length","nativeSrc":"7459:6:64","nodeType":"YulIdentifier","src":"7459:6:64"}],"functionName":{"name":"add","nativeSrc":"7450:3:64","nodeType":"YulIdentifier","src":"7450:3:64"},"nativeSrc":"7450:16:64","nodeType":"YulFunctionCall","src":"7450:16:64"},"variableNames":[{"name":"end","nativeSrc":"7443:3:64","nodeType":"YulIdentifier","src":"7443:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7086:386:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7175:5:64","nodeType":"YulTypedName","src":"7175:5:64","type":""},{"name":"pos","nativeSrc":"7182:3:64","nodeType":"YulTypedName","src":"7182:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7190:3:64","nodeType":"YulTypedName","src":"7190:3:64","type":""}],"src":"7086:386:64"},{"body":{"nativeSrc":"7612:137:64","nodeType":"YulBlock","src":"7612:137:64","statements":[{"nativeSrc":"7623:100:64","nodeType":"YulAssignment","src":"7623:100:64","value":{"arguments":[{"name":"value0","nativeSrc":"7710:6:64","nodeType":"YulIdentifier","src":"7710:6:64"},{"name":"pos","nativeSrc":"7719:3:64","nodeType":"YulIdentifier","src":"7719:3:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"7630:79:64","nodeType":"YulIdentifier","src":"7630:79:64"},"nativeSrc":"7630:93:64","nodeType":"YulFunctionCall","src":"7630:93:64"},"variableNames":[{"name":"pos","nativeSrc":"7623:3:64","nodeType":"YulIdentifier","src":"7623:3:64"}]},{"nativeSrc":"7733:10:64","nodeType":"YulAssignment","src":"7733:10:64","value":{"name":"pos","nativeSrc":"7740:3:64","nodeType":"YulIdentifier","src":"7740:3:64"},"variableNames":[{"name":"end","nativeSrc":"7733:3:64","nodeType":"YulIdentifier","src":"7733:3:64"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"7478:271:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7591:3:64","nodeType":"YulTypedName","src":"7591:3:64","type":""},{"name":"value0","nativeSrc":"7597:6:64","nodeType":"YulTypedName","src":"7597:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"7608:3:64","nodeType":"YulTypedName","src":"7608:3:64","type":""}],"src":"7478:271:64"},{"body":{"nativeSrc":"7844:28:64","nodeType":"YulBlock","src":"7844:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7861:1:64","nodeType":"YulLiteral","src":"7861:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7864:1:64","nodeType":"YulLiteral","src":"7864:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7854:6:64","nodeType":"YulIdentifier","src":"7854:6:64"},"nativeSrc":"7854:12:64","nodeType":"YulFunctionCall","src":"7854:12:64"},"nativeSrc":"7854:12:64","nodeType":"YulExpressionStatement","src":"7854:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7755:117:64","nodeType":"YulFunctionDefinition","src":"7755:117:64"},{"body":{"nativeSrc":"7906:152:64","nodeType":"YulBlock","src":"7906:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7923:1:64","nodeType":"YulLiteral","src":"7923:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7926:77:64","nodeType":"YulLiteral","src":"7926:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7916:6:64","nodeType":"YulIdentifier","src":"7916:6:64"},"nativeSrc":"7916:88:64","nodeType":"YulFunctionCall","src":"7916:88:64"},"nativeSrc":"7916:88:64","nodeType":"YulExpressionStatement","src":"7916:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8020:1:64","nodeType":"YulLiteral","src":"8020:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8023:4:64","nodeType":"YulLiteral","src":"8023:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8013:6:64","nodeType":"YulIdentifier","src":"8013:6:64"},"nativeSrc":"8013:15:64","nodeType":"YulFunctionCall","src":"8013:15:64"},"nativeSrc":"8013:15:64","nodeType":"YulExpressionStatement","src":"8013:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8044:1:64","nodeType":"YulLiteral","src":"8044:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8047:4:64","nodeType":"YulLiteral","src":"8047:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8037:6:64","nodeType":"YulIdentifier","src":"8037:6:64"},"nativeSrc":"8037:15:64","nodeType":"YulFunctionCall","src":"8037:15:64"},"nativeSrc":"8037:15:64","nodeType":"YulExpressionStatement","src":"8037:15:64"}]},"name":"panic_error_0x41","nativeSrc":"7878:180:64","nodeType":"YulFunctionDefinition","src":"7878:180:64"},{"body":{"nativeSrc":"8107:238:64","nodeType":"YulBlock","src":"8107:238:64","statements":[{"nativeSrc":"8117:58:64","nodeType":"YulVariableDeclaration","src":"8117:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"8139:6:64","nodeType":"YulIdentifier","src":"8139:6:64"},{"arguments":[{"name":"size","nativeSrc":"8169:4:64","nodeType":"YulIdentifier","src":"8169:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8147:21:64","nodeType":"YulIdentifier","src":"8147:21:64"},"nativeSrc":"8147:27:64","nodeType":"YulFunctionCall","src":"8147:27:64"}],"functionName":{"name":"add","nativeSrc":"8135:3:64","nodeType":"YulIdentifier","src":"8135:3:64"},"nativeSrc":"8135:40:64","nodeType":"YulFunctionCall","src":"8135:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"8121:10:64","nodeType":"YulTypedName","src":"8121:10:64","type":""}]},{"body":{"nativeSrc":"8286:22:64","nodeType":"YulBlock","src":"8286:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8288:16:64","nodeType":"YulIdentifier","src":"8288:16:64"},"nativeSrc":"8288:18:64","nodeType":"YulFunctionCall","src":"8288:18:64"},"nativeSrc":"8288:18:64","nodeType":"YulExpressionStatement","src":"8288:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8229:10:64","nodeType":"YulIdentifier","src":"8229:10:64"},{"kind":"number","nativeSrc":"8241:18:64","nodeType":"YulLiteral","src":"8241:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8226:2:64","nodeType":"YulIdentifier","src":"8226:2:64"},"nativeSrc":"8226:34:64","nodeType":"YulFunctionCall","src":"8226:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8265:10:64","nodeType":"YulIdentifier","src":"8265:10:64"},{"name":"memPtr","nativeSrc":"8277:6:64","nodeType":"YulIdentifier","src":"8277:6:64"}],"functionName":{"name":"lt","nativeSrc":"8262:2:64","nodeType":"YulIdentifier","src":"8262:2:64"},"nativeSrc":"8262:22:64","nodeType":"YulFunctionCall","src":"8262:22:64"}],"functionName":{"name":"or","nativeSrc":"8223:2:64","nodeType":"YulIdentifier","src":"8223:2:64"},"nativeSrc":"8223:62:64","nodeType":"YulFunctionCall","src":"8223:62:64"},"nativeSrc":"8220:88:64","nodeType":"YulIf","src":"8220:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8324:2:64","nodeType":"YulLiteral","src":"8324:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8328:10:64","nodeType":"YulIdentifier","src":"8328:10:64"}],"functionName":{"name":"mstore","nativeSrc":"8317:6:64","nodeType":"YulIdentifier","src":"8317:6:64"},"nativeSrc":"8317:22:64","nodeType":"YulFunctionCall","src":"8317:22:64"},"nativeSrc":"8317:22:64","nodeType":"YulExpressionStatement","src":"8317:22:64"}]},"name":"finalize_allocation","nativeSrc":"8064:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8093:6:64","nodeType":"YulTypedName","src":"8093:6:64","type":""},{"name":"size","nativeSrc":"8101:4:64","nodeType":"YulTypedName","src":"8101:4:64","type":""}],"src":"8064:281:64"},{"body":{"nativeSrc":"8392:88:64","nodeType":"YulBlock","src":"8392:88:64","statements":[{"nativeSrc":"8402:30:64","nodeType":"YulAssignment","src":"8402:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8412:18:64","nodeType":"YulIdentifier","src":"8412:18:64"},"nativeSrc":"8412:20:64","nodeType":"YulFunctionCall","src":"8412:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"8402:6:64","nodeType":"YulIdentifier","src":"8402:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8461:6:64","nodeType":"YulIdentifier","src":"8461:6:64"},{"name":"size","nativeSrc":"8469:4:64","nodeType":"YulIdentifier","src":"8469:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8441:19:64","nodeType":"YulIdentifier","src":"8441:19:64"},"nativeSrc":"8441:33:64","nodeType":"YulFunctionCall","src":"8441:33:64"},"nativeSrc":"8441:33:64","nodeType":"YulExpressionStatement","src":"8441:33:64"}]},"name":"allocate_memory","nativeSrc":"8351:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8376:4:64","nodeType":"YulTypedName","src":"8376:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8385:6:64","nodeType":"YulTypedName","src":"8385:6:64","type":""}],"src":"8351:129:64"},{"body":{"nativeSrc":"8575:28:64","nodeType":"YulBlock","src":"8575:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8592:1:64","nodeType":"YulLiteral","src":"8592:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8595:1:64","nodeType":"YulLiteral","src":"8595:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8585:6:64","nodeType":"YulIdentifier","src":"8585:6:64"},"nativeSrc":"8585:12:64","nodeType":"YulFunctionCall","src":"8585:12:64"},"nativeSrc":"8585:12:64","nodeType":"YulExpressionStatement","src":"8585:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8486:117:64","nodeType":"YulFunctionDefinition","src":"8486:117:64"},{"body":{"nativeSrc":"8652:79:64","nodeType":"YulBlock","src":"8652:79:64","statements":[{"body":{"nativeSrc":"8709:16:64","nodeType":"YulBlock","src":"8709:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8718:1:64","nodeType":"YulLiteral","src":"8718:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8721:1:64","nodeType":"YulLiteral","src":"8721:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8711:6:64","nodeType":"YulIdentifier","src":"8711:6:64"},"nativeSrc":"8711:12:64","nodeType":"YulFunctionCall","src":"8711:12:64"},"nativeSrc":"8711:12:64","nodeType":"YulExpressionStatement","src":"8711:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8675:5:64","nodeType":"YulIdentifier","src":"8675:5:64"},{"arguments":[{"name":"value","nativeSrc":"8700:5:64","nodeType":"YulIdentifier","src":"8700:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8682:17:64","nodeType":"YulIdentifier","src":"8682:17:64"},"nativeSrc":"8682:24:64","nodeType":"YulFunctionCall","src":"8682:24:64"}],"functionName":{"name":"eq","nativeSrc":"8672:2:64","nodeType":"YulIdentifier","src":"8672:2:64"},"nativeSrc":"8672:35:64","nodeType":"YulFunctionCall","src":"8672:35:64"}],"functionName":{"name":"iszero","nativeSrc":"8665:6:64","nodeType":"YulIdentifier","src":"8665:6:64"},"nativeSrc":"8665:43:64","nodeType":"YulFunctionCall","src":"8665:43:64"},"nativeSrc":"8662:63:64","nodeType":"YulIf","src":"8662:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"8609:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8645:5:64","nodeType":"YulTypedName","src":"8645:5:64","type":""}],"src":"8609:122:64"},{"body":{"nativeSrc":"8789:87:64","nodeType":"YulBlock","src":"8789:87:64","statements":[{"nativeSrc":"8799:29:64","nodeType":"YulAssignment","src":"8799:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8821:6:64","nodeType":"YulIdentifier","src":"8821:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8808:12:64","nodeType":"YulIdentifier","src":"8808:12:64"},"nativeSrc":"8808:20:64","nodeType":"YulFunctionCall","src":"8808:20:64"},"variableNames":[{"name":"value","nativeSrc":"8799:5:64","nodeType":"YulIdentifier","src":"8799:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8864:5:64","nodeType":"YulIdentifier","src":"8864:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8837:26:64","nodeType":"YulIdentifier","src":"8837:26:64"},"nativeSrc":"8837:33:64","nodeType":"YulFunctionCall","src":"8837:33:64"},"nativeSrc":"8837:33:64","nodeType":"YulExpressionStatement","src":"8837:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"8737:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8767:6:64","nodeType":"YulTypedName","src":"8767:6:64","type":""},{"name":"end","nativeSrc":"8775:3:64","nodeType":"YulTypedName","src":"8775:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8783:5:64","nodeType":"YulTypedName","src":"8783:5:64","type":""}],"src":"8737:139:64"},{"body":{"nativeSrc":"8925:79:64","nodeType":"YulBlock","src":"8925:79:64","statements":[{"body":{"nativeSrc":"8982:16:64","nodeType":"YulBlock","src":"8982:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8991:1:64","nodeType":"YulLiteral","src":"8991:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8994:1:64","nodeType":"YulLiteral","src":"8994:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8984:6:64","nodeType":"YulIdentifier","src":"8984:6:64"},"nativeSrc":"8984:12:64","nodeType":"YulFunctionCall","src":"8984:12:64"},"nativeSrc":"8984:12:64","nodeType":"YulExpressionStatement","src":"8984:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8948:5:64","nodeType":"YulIdentifier","src":"8948:5:64"},{"arguments":[{"name":"value","nativeSrc":"8973:5:64","nodeType":"YulIdentifier","src":"8973:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8955:17:64","nodeType":"YulIdentifier","src":"8955:17:64"},"nativeSrc":"8955:24:64","nodeType":"YulFunctionCall","src":"8955:24:64"}],"functionName":{"name":"eq","nativeSrc":"8945:2:64","nodeType":"YulIdentifier","src":"8945:2:64"},"nativeSrc":"8945:35:64","nodeType":"YulFunctionCall","src":"8945:35:64"}],"functionName":{"name":"iszero","nativeSrc":"8938:6:64","nodeType":"YulIdentifier","src":"8938:6:64"},"nativeSrc":"8938:43:64","nodeType":"YulFunctionCall","src":"8938:43:64"},"nativeSrc":"8935:63:64","nodeType":"YulIf","src":"8935:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"8882:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8918:5:64","nodeType":"YulTypedName","src":"8918:5:64","type":""}],"src":"8882:122:64"},{"body":{"nativeSrc":"9062:87:64","nodeType":"YulBlock","src":"9062:87:64","statements":[{"nativeSrc":"9072:29:64","nodeType":"YulAssignment","src":"9072:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9094:6:64","nodeType":"YulIdentifier","src":"9094:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9081:12:64","nodeType":"YulIdentifier","src":"9081:12:64"},"nativeSrc":"9081:20:64","nodeType":"YulFunctionCall","src":"9081:20:64"},"variableNames":[{"name":"value","nativeSrc":"9072:5:64","nodeType":"YulIdentifier","src":"9072:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9137:5:64","nodeType":"YulIdentifier","src":"9137:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"9110:26:64","nodeType":"YulIdentifier","src":"9110:26:64"},"nativeSrc":"9110:33:64","nodeType":"YulFunctionCall","src":"9110:33:64"},"nativeSrc":"9110:33:64","nodeType":"YulExpressionStatement","src":"9110:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"9010:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9040:6:64","nodeType":"YulTypedName","src":"9040:6:64","type":""},{"name":"end","nativeSrc":"9048:3:64","nodeType":"YulTypedName","src":"9048:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9056:5:64","nodeType":"YulTypedName","src":"9056:5:64","type":""}],"src":"9010:139:64"},{"body":{"nativeSrc":"9281:825:64","nodeType":"YulBlock","src":"9281:825:64","statements":[{"body":{"nativeSrc":"9325:83:64","nodeType":"YulBlock","src":"9325:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9327:77:64","nodeType":"YulIdentifier","src":"9327:77:64"},"nativeSrc":"9327:79:64","nodeType":"YulFunctionCall","src":"9327:79:64"},"nativeSrc":"9327:79:64","nodeType":"YulExpressionStatement","src":"9327:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9302:3:64","nodeType":"YulIdentifier","src":"9302:3:64"},{"name":"headStart","nativeSrc":"9307:9:64","nodeType":"YulIdentifier","src":"9307:9:64"}],"functionName":{"name":"sub","nativeSrc":"9298:3:64","nodeType":"YulIdentifier","src":"9298:3:64"},"nativeSrc":"9298:19:64","nodeType":"YulFunctionCall","src":"9298:19:64"},{"kind":"number","nativeSrc":"9319:4:64","nodeType":"YulLiteral","src":"9319:4:64","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"9294:3:64","nodeType":"YulIdentifier","src":"9294:3:64"},"nativeSrc":"9294:30:64","nodeType":"YulFunctionCall","src":"9294:30:64"},"nativeSrc":"9291:117:64","nodeType":"YulIf","src":"9291:117:64"},{"nativeSrc":"9417:30:64","nodeType":"YulAssignment","src":"9417:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"9442:4:64","nodeType":"YulLiteral","src":"9442:4:64","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"9426:15:64","nodeType":"YulIdentifier","src":"9426:15:64"},"nativeSrc":"9426:21:64","nodeType":"YulFunctionCall","src":"9426:21:64"},"variableNames":[{"name":"value","nativeSrc":"9417:5:64","nodeType":"YulIdentifier","src":"9417:5:64"}]},{"nativeSrc":"9457:153:64","nodeType":"YulBlock","src":"9457:153:64","statements":[{"nativeSrc":"9495:15:64","nodeType":"YulVariableDeclaration","src":"9495:15:64","value":{"kind":"number","nativeSrc":"9509:1:64","nodeType":"YulLiteral","src":"9509:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9499:6:64","nodeType":"YulTypedName","src":"9499:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9535:5:64","nodeType":"YulIdentifier","src":"9535:5:64"},{"kind":"number","nativeSrc":"9542:4:64","nodeType":"YulLiteral","src":"9542:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9531:3:64","nodeType":"YulIdentifier","src":"9531:3:64"},"nativeSrc":"9531:16:64","nodeType":"YulFunctionCall","src":"9531:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9574:9:64","nodeType":"YulIdentifier","src":"9574:9:64"},{"name":"offset","nativeSrc":"9585:6:64","nodeType":"YulIdentifier","src":"9585:6:64"}],"functionName":{"name":"add","nativeSrc":"9570:3:64","nodeType":"YulIdentifier","src":"9570:3:64"},"nativeSrc":"9570:22:64","nodeType":"YulFunctionCall","src":"9570:22:64"},{"name":"end","nativeSrc":"9594:3:64","nodeType":"YulIdentifier","src":"9594:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9549:20:64","nodeType":"YulIdentifier","src":"9549:20:64"},"nativeSrc":"9549:49:64","nodeType":"YulFunctionCall","src":"9549:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9524:6:64","nodeType":"YulIdentifier","src":"9524:6:64"},"nativeSrc":"9524:75:64","nodeType":"YulFunctionCall","src":"9524:75:64"},"nativeSrc":"9524:75:64","nodeType":"YulExpressionStatement","src":"9524:75:64"}]},{"nativeSrc":"9620:153:64","nodeType":"YulBlock","src":"9620:153:64","statements":[{"nativeSrc":"9657:16:64","nodeType":"YulVariableDeclaration","src":"9657:16:64","value":{"kind":"number","nativeSrc":"9671:2:64","nodeType":"YulLiteral","src":"9671:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9661:6:64","nodeType":"YulTypedName","src":"9661:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9698:5:64","nodeType":"YulIdentifier","src":"9698:5:64"},{"kind":"number","nativeSrc":"9705:4:64","nodeType":"YulLiteral","src":"9705:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9694:3:64","nodeType":"YulIdentifier","src":"9694:3:64"},"nativeSrc":"9694:16:64","nodeType":"YulFunctionCall","src":"9694:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9737:9:64","nodeType":"YulIdentifier","src":"9737:9:64"},{"name":"offset","nativeSrc":"9748:6:64","nodeType":"YulIdentifier","src":"9748:6:64"}],"functionName":{"name":"add","nativeSrc":"9733:3:64","nodeType":"YulIdentifier","src":"9733:3:64"},"nativeSrc":"9733:22:64","nodeType":"YulFunctionCall","src":"9733:22:64"},{"name":"end","nativeSrc":"9757:3:64","nodeType":"YulIdentifier","src":"9757:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9712:20:64","nodeType":"YulIdentifier","src":"9712:20:64"},"nativeSrc":"9712:49:64","nodeType":"YulFunctionCall","src":"9712:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9687:6:64","nodeType":"YulIdentifier","src":"9687:6:64"},"nativeSrc":"9687:75:64","nodeType":"YulFunctionCall","src":"9687:75:64"},"nativeSrc":"9687:75:64","nodeType":"YulExpressionStatement","src":"9687:75:64"}]},{"nativeSrc":"9783:154:64","nodeType":"YulBlock","src":"9783:154:64","statements":[{"nativeSrc":"9822:16:64","nodeType":"YulVariableDeclaration","src":"9822:16:64","value":{"kind":"number","nativeSrc":"9836:2:64","nodeType":"YulLiteral","src":"9836:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9826:6:64","nodeType":"YulTypedName","src":"9826:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9863:5:64","nodeType":"YulIdentifier","src":"9863:5:64"},{"kind":"number","nativeSrc":"9870:4:64","nodeType":"YulLiteral","src":"9870:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9859:3:64","nodeType":"YulIdentifier","src":"9859:3:64"},"nativeSrc":"9859:16:64","nodeType":"YulFunctionCall","src":"9859:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9901:9:64","nodeType":"YulIdentifier","src":"9901:9:64"},{"name":"offset","nativeSrc":"9912:6:64","nodeType":"YulIdentifier","src":"9912:6:64"}],"functionName":{"name":"add","nativeSrc":"9897:3:64","nodeType":"YulIdentifier","src":"9897:3:64"},"nativeSrc":"9897:22:64","nodeType":"YulFunctionCall","src":"9897:22:64"},{"name":"end","nativeSrc":"9921:3:64","nodeType":"YulIdentifier","src":"9921:3:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"9877:19:64","nodeType":"YulIdentifier","src":"9877:19:64"},"nativeSrc":"9877:48:64","nodeType":"YulFunctionCall","src":"9877:48:64"}],"functionName":{"name":"mstore","nativeSrc":"9852:6:64","nodeType":"YulIdentifier","src":"9852:6:64"},"nativeSrc":"9852:74:64","nodeType":"YulFunctionCall","src":"9852:74:64"},"nativeSrc":"9852:74:64","nodeType":"YulExpressionStatement","src":"9852:74:64"}]},{"nativeSrc":"9947:152:64","nodeType":"YulBlock","src":"9947:152:64","statements":[{"nativeSrc":"9983:16:64","nodeType":"YulVariableDeclaration","src":"9983:16:64","value":{"kind":"number","nativeSrc":"9997:2:64","nodeType":"YulLiteral","src":"9997:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9987:6:64","nodeType":"YulTypedName","src":"9987:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10024:5:64","nodeType":"YulIdentifier","src":"10024:5:64"},{"kind":"number","nativeSrc":"10031:4:64","nodeType":"YulLiteral","src":"10031:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10020:3:64","nodeType":"YulIdentifier","src":"10020:3:64"},"nativeSrc":"10020:16:64","nodeType":"YulFunctionCall","src":"10020:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10063:9:64","nodeType":"YulIdentifier","src":"10063:9:64"},{"name":"offset","nativeSrc":"10074:6:64","nodeType":"YulIdentifier","src":"10074:6:64"}],"functionName":{"name":"add","nativeSrc":"10059:3:64","nodeType":"YulIdentifier","src":"10059:3:64"},"nativeSrc":"10059:22:64","nodeType":"YulFunctionCall","src":"10059:22:64"},{"name":"end","nativeSrc":"10083:3:64","nodeType":"YulIdentifier","src":"10083:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10038:20:64","nodeType":"YulIdentifier","src":"10038:20:64"},"nativeSrc":"10038:49:64","nodeType":"YulFunctionCall","src":"10038:49:64"}],"functionName":{"name":"mstore","nativeSrc":"10013:6:64","nodeType":"YulIdentifier","src":"10013:6:64"},"nativeSrc":"10013:75:64","nodeType":"YulFunctionCall","src":"10013:75:64"},"nativeSrc":"10013:75:64","nodeType":"YulExpressionStatement","src":"10013:75:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$13134_memory_ptr","nativeSrc":"9196:910:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9256:9:64","nodeType":"YulTypedName","src":"9256:9:64","type":""},{"name":"end","nativeSrc":"9267:3:64","nodeType":"YulTypedName","src":"9267:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9275:5:64","nodeType":"YulTypedName","src":"9275:5:64","type":""}],"src":"9196:910:64"},{"body":{"nativeSrc":"10208:294:64","nodeType":"YulBlock","src":"10208:294:64","statements":[{"body":{"nativeSrc":"10255:83:64","nodeType":"YulBlock","src":"10255:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10257:77:64","nodeType":"YulIdentifier","src":"10257:77:64"},"nativeSrc":"10257:79:64","nodeType":"YulFunctionCall","src":"10257:79:64"},"nativeSrc":"10257:79:64","nodeType":"YulExpressionStatement","src":"10257:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10229:7:64","nodeType":"YulIdentifier","src":"10229:7:64"},{"name":"headStart","nativeSrc":"10238:9:64","nodeType":"YulIdentifier","src":"10238:9:64"}],"functionName":{"name":"sub","nativeSrc":"10225:3:64","nodeType":"YulIdentifier","src":"10225:3:64"},"nativeSrc":"10225:23:64","nodeType":"YulFunctionCall","src":"10225:23:64"},{"kind":"number","nativeSrc":"10250:3:64","nodeType":"YulLiteral","src":"10250:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10221:3:64","nodeType":"YulIdentifier","src":"10221:3:64"},"nativeSrc":"10221:33:64","nodeType":"YulFunctionCall","src":"10221:33:64"},"nativeSrc":"10218:120:64","nodeType":"YulIf","src":"10218:120:64"},{"nativeSrc":"10348:147:64","nodeType":"YulBlock","src":"10348:147:64","statements":[{"nativeSrc":"10363:15:64","nodeType":"YulVariableDeclaration","src":"10363:15:64","value":{"kind":"number","nativeSrc":"10377:1:64","nodeType":"YulLiteral","src":"10377:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10367:6:64","nodeType":"YulTypedName","src":"10367:6:64","type":""}]},{"nativeSrc":"10392:93:64","nodeType":"YulAssignment","src":"10392:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10457:9:64","nodeType":"YulIdentifier","src":"10457:9:64"},{"name":"offset","nativeSrc":"10468:6:64","nodeType":"YulIdentifier","src":"10468:6:64"}],"functionName":{"name":"add","nativeSrc":"10453:3:64","nodeType":"YulIdentifier","src":"10453:3:64"},"nativeSrc":"10453:22:64","nodeType":"YulFunctionCall","src":"10453:22:64"},{"name":"dataEnd","nativeSrc":"10477:7:64","nodeType":"YulIdentifier","src":"10477:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$13134_memory_ptr","nativeSrc":"10402:50:64","nodeType":"YulIdentifier","src":"10402:50:64"},"nativeSrc":"10402:83:64","nodeType":"YulFunctionCall","src":"10402:83:64"},"variableNames":[{"name":"value0","nativeSrc":"10392:6:64","nodeType":"YulIdentifier","src":"10392:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$13134_memory_ptr","nativeSrc":"10112:390:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10178:9:64","nodeType":"YulTypedName","src":"10178:9:64","type":""},{"name":"dataEnd","nativeSrc":"10189:7:64","nodeType":"YulTypedName","src":"10189:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10201:6:64","nodeType":"YulTypedName","src":"10201:6:64","type":""}],"src":"10112:390:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Validator_$19130_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$19130_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Validator_$19130__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // struct ContractAction.InitPayload\n function abi_decode_t_struct$_InitPayload_$13134_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // chainId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // value\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$13134_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$13134_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"13058":[{"length":32,"start":1027}]},"linkReferences":{},"object":"608060405260043610610090575f3560e01c8063439fab9111610058578063439fab911461017f5780639a8a0592146101a7578063d4b83992146101d1578063d7768c47146101fb578063ea3d508a1461023757610090565b806301ffc9a71461009457806309c5eabe146100d057806328d6183b14610101578063393df8cb1461012b5780633fa4f24514610155575b5f80fd5b34801561009f575f80fd5b506100ba60048036038101906100b591906107d8565b610261565b6040516100c7919061081d565b60405180910390f35b6100ea60048036038101906100e59190610897565b6102da565b6040516100f8929190610952565b60405180910390f35b34801561010c575f80fd5b506101156103da565b604051610122919061098f565b60405180910390f35b348015610136575f80fd5b5061013f610401565b60405161014c9190610a22565b60405180910390f35b348015610160575f80fd5b50610169610425565b6040516101769190610a53565b60405180910390f35b34801561018a575f80fd5b506101a560048036038101906101a09190610897565b61042b565b005b3480156101b2575f80fd5b506101bb6104b8565b6040516101c89190610a53565b60405180910390f35b3480156101dc575f80fd5b506101e56104bd565b6040516101f29190610a8c565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c9190610897565b6104e2565b60405161022e9190610aa5565b60405180910390f35b348015610242575f80fd5b5061024b610506565b604051610258919061098f565b60405180910390f35b5f7f2fae823b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102d357506102d282610519565b5b9050919050565b5f6060465f5414610323575f546040517f180098f400000000000000000000000000000000000000000000000000000000815260040161031a9190610a53565b60405180910390fd5b5f8060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660025461037a600160149054906101000a900460e01b8989610592565b6040516103879190610aff565b5f6040518083038185875af1925050503d805f81146103c1576040519150601f19603f3d011682016040523d82523d5f602084013e6103c6565b606091505b509150915081819350935050509250929050565b5f7f2fae823b00000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f6104346105be565b905080546003825580156104665760018160011c14303b1061045d5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061047e83838101906104799190610c5a565b6105e7565b80156104b3576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606104fe600160149054906101000a900460e01b8484610592565b905092915050565b600160149054906101000a900460e01b81565b5f7fcea74fae000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061058b575061058a8261066c565b5b9050919050565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6105ef6106e5565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106de57506106dd82610709565b5b9050919050565b5f6106ee6105be565b905080546001166107065763d7e6bcf85f526004601cfd5b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6107b781610783565b81146107c1575f80fd5b50565b5f813590506107d2816107ae565b92915050565b5f602082840312156107ed576107ec61077b565b5b5f6107fa848285016107c4565b91505092915050565b5f8115159050919050565b61081781610803565b82525050565b5f6020820190506108305f83018461080e565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261085757610856610836565b5b8235905067ffffffffffffffff8111156108745761087361083a565b5b6020830191508360018202830111156108905761088f61083e565b5b9250929050565b5f80602083850312156108ad576108ac61077b565b5b5f83013567ffffffffffffffff8111156108ca576108c961077f565b5b6108d685828601610842565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610924826108e2565b61092e81856108ec565b935061093e8185602086016108fc565b6109478161090a565b840191505092915050565b5f6040820190506109655f83018561080e565b8181036020830152610977818461091a565b90509392505050565b61098981610783565b82525050565b5f6020820190506109a25f830184610980565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f6109ea6109e56109e0846109a8565b6109c7565b6109a8565b9050919050565b5f6109fb826109d0565b9050919050565b5f610a0c826109f1565b9050919050565b610a1c81610a02565b82525050565b5f602082019050610a355f830184610a13565b92915050565b5f819050919050565b610a4d81610a3b565b82525050565b5f602082019050610a665f830184610a44565b92915050565b5f610a76826109a8565b9050919050565b610a8681610a6c565b82525050565b5f602082019050610a9f5f830184610a7d565b92915050565b5f6020820190508181035f830152610abd818461091a565b905092915050565b5f81905092915050565b5f610ad9826108e2565b610ae38185610ac5565b9350610af38185602086016108fc565b80840191505092915050565b5f610b0a8284610acf565b915081905092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610b4f8261090a565b810181811067ffffffffffffffff82111715610b6e57610b6d610b19565b5b80604052505050565b5f610b80610772565b9050610b8c8282610b46565b919050565b610b9a81610a3b565b8114610ba4575f80fd5b50565b5f81359050610bb581610b91565b92915050565b610bc481610a6c565b8114610bce575f80fd5b50565b5f81359050610bdf81610bbb565b92915050565b5f60808284031215610bfa57610bf9610b15565b5b610c046080610b77565b90505f610c1384828501610ba7565b5f830152506020610c2684828501610bd1565b6020830152506040610c3a848285016107c4565b6040830152506060610c4e84828501610ba7565b60608301525092915050565b5f60808284031215610c6f57610c6e61077b565b5b5f610c7c84828501610be5565b9150509291505056fea264697066735822122078819f85df532b2d6a0175b85d378a67022fe83dbe1d5bf49a7ebc596573668764736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x90 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x439FAB91 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x1A7 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x237 JUMPI PUSH2 0x90 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x155 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x7D8 JUMP JUMPDEST PUSH2 0x261 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x81D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x2DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP3 SWAP2 SWAP1 PUSH2 0x952 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x115 PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x136 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13F PUSH2 0x401 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14C SWAP2 SWAP1 PUSH2 0xA22 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x160 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x169 PUSH2 0x425 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x42B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BB PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E5 PUSH2 0x4BD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xA8C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x206 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21C SWAP2 SWAP1 PUSH2 0x897 JUMP JUMPDEST PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0xAA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x242 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B PUSH2 0x506 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x258 SWAP2 SWAP1 PUSH2 0x98F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x2FAE823B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2D3 JUMPI POP PUSH2 0x2D2 DUP3 PUSH2 0x519 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 CHAINID PUSH0 SLOAD EQ PUSH2 0x323 JUMPI PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH32 0x180098F400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31A SWAP2 SWAP1 PUSH2 0xA53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 SLOAD PUSH2 0x37A PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP10 DUP10 PUSH2 0x592 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x387 SWAP2 SWAP1 PUSH2 0xAFF JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x3C1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x2FAE823B00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x434 PUSH2 0x5BE JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x466 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x45D JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x47E DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x479 SWAP2 SWAP1 PUSH2 0xC5A JUMP JUMPDEST PUSH2 0x5E7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4FE PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0x592 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xCEA74FAE00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x58B JUMPI POP PUSH2 0x58A DUP3 PUSH2 0x66C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x5EF PUSH2 0x6E5 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6DE JUMPI POP PUSH2 0x6DD DUP3 PUSH2 0x709 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x6EE PUSH2 0x5BE JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0x706 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7B7 DUP2 PUSH2 0x783 JUMP JUMPDEST DUP2 EQ PUSH2 0x7C1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x7D2 DUP2 PUSH2 0x7AE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7ED JUMPI PUSH2 0x7EC PUSH2 0x77B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x7FA DUP5 DUP3 DUP6 ADD PUSH2 0x7C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x817 DUP2 PUSH2 0x803 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x830 PUSH0 DUP4 ADD DUP5 PUSH2 0x80E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x857 JUMPI PUSH2 0x856 PUSH2 0x836 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x874 JUMPI PUSH2 0x873 PUSH2 0x83A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x890 JUMPI PUSH2 0x88F PUSH2 0x83E JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8AD JUMPI PUSH2 0x8AC PUSH2 0x77B JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x8CA JUMPI PUSH2 0x8C9 PUSH2 0x77F JUMP JUMPDEST JUMPDEST PUSH2 0x8D6 DUP6 DUP3 DUP7 ADD PUSH2 0x842 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x924 DUP3 PUSH2 0x8E2 JUMP JUMPDEST PUSH2 0x92E DUP2 DUP6 PUSH2 0x8EC JUMP JUMPDEST SWAP4 POP PUSH2 0x93E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8FC JUMP JUMPDEST PUSH2 0x947 DUP2 PUSH2 0x90A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x965 PUSH0 DUP4 ADD DUP6 PUSH2 0x80E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x977 DUP2 DUP5 PUSH2 0x91A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x989 DUP2 PUSH2 0x783 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x9A2 PUSH0 DUP4 ADD DUP5 PUSH2 0x980 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x9EA PUSH2 0x9E5 PUSH2 0x9E0 DUP5 PUSH2 0x9A8 JUMP JUMPDEST PUSH2 0x9C7 JUMP JUMPDEST PUSH2 0x9A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x9FB DUP3 PUSH2 0x9D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9F1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA35 PUSH0 DUP4 ADD DUP5 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4D DUP2 PUSH2 0xA3B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA66 PUSH0 DUP4 ADD DUP5 PUSH2 0xA44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xA76 DUP3 PUSH2 0x9A8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA86 DUP2 PUSH2 0xA6C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xA9F PUSH0 DUP4 ADD DUP5 PUSH2 0xA7D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xABD DUP2 DUP5 PUSH2 0x91A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xAD9 DUP3 PUSH2 0x8E2 JUMP JUMPDEST PUSH2 0xAE3 DUP2 DUP6 PUSH2 0xAC5 JUMP JUMPDEST SWAP4 POP PUSH2 0xAF3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x8FC JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB0A DUP3 DUP5 PUSH2 0xACF JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xB4F DUP3 PUSH2 0x90A JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xB6E JUMPI PUSH2 0xB6D PUSH2 0xB19 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xB80 PUSH2 0x772 JUMP JUMPDEST SWAP1 POP PUSH2 0xB8C DUP3 DUP3 PUSH2 0xB46 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9A DUP2 PUSH2 0xA3B JUMP JUMPDEST DUP2 EQ PUSH2 0xBA4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBB5 DUP2 PUSH2 0xB91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBC4 DUP2 PUSH2 0xA6C JUMP JUMPDEST DUP2 EQ PUSH2 0xBCE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBBB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBFA JUMPI PUSH2 0xBF9 PUSH2 0xB15 JUMP JUMPDEST JUMPDEST PUSH2 0xC04 PUSH1 0x80 PUSH2 0xB77 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xC13 DUP5 DUP3 DUP6 ADD PUSH2 0xBA7 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0xC26 DUP5 DUP3 DUP6 ADD PUSH2 0xBD1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xC3A DUP5 DUP3 DUP6 ADD PUSH2 0x7C4 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0xC4E DUP5 DUP3 DUP6 ADD PUSH2 0xBA7 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC6F JUMPI PUSH2 0xC6E PUSH2 0x77B JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC7C DUP5 DUP3 DUP6 ADD PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH25 0x819F85DF532B2D6A0175B85D378A67022FE83DBE1D5BF49A7E 0xBC MSIZE PUSH6 0x73668764736F PUSH13 0x634300081A0033000000000000 ","sourceMap":"244:962:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2237:211:30;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;960:334;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2060:144;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1043:36:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;693:20:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;842:140:33;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;442:22:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;507:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1300:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;594:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2237:211;2330:4;2368:33;2353:48;;;:11;:48;;;;:88;;;;2405:36;2429:11;2405:23;:36::i;:::-;2353:88;2346:95;;2237:211;;;:::o;960:334::-;1042:4;1048:12;1087:13;1076:7;;:24;1072:68;;1132:7;;1109:31;;;;;;;;;;;:::i;:::-;;;;;;;;1072:68;1151:12;1165:23;1192:6;;;;;;;;;;;:11;;1211:5;;1218:30;1232:8;;;;;;;;;;;1242:5;;1218:13;:30::i;:::-;1192:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:99;;;;1267:7;1276:10;1259:28;;;;;;960:334;;;;;:::o;2060:144::-;2139:6;2164:33;2157:40;;2060:144;:::o;1043:36:32:-;;;:::o;693:20:30:-;;;;:::o;842:140:33:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;930:45:33::1;953:5;;942:32;;;;;;;:::i;:::-;930:11;:45::i;:::-;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;842:140:33;;:::o;442:22:30:-;;;;:::o;507:21::-;;;;;;;;;;;;;:::o;1300:152::-;1377:19;1415:30;1429:8;;;;;;;;;;;1439:5;;1415:13;:30::i;:::-;1408:37;;1300:152;;;;:::o;594:22::-;;;;;;;;;;;;;:::o;1643:205:32:-;1739:4;1777:24;1762:39;;;:11;:39;;;;:79;;;;1805:36;1829:11;1805:23;:36::i;:::-;1762:79;1755:86;;1643:205;;;:::o;1458:569:30:-;1548:20;1668:16;1665:1;1661:24;1715:4;1709:11;1698:22;;1749:4;1740:7;1733:21;1803:4;1797;1793:15;1784:7;1780:29;1774:4;1767:43;1920:9;1913:4;1904:7;1900:18;1893:37;1994:16;1976;1969:4;1960:7;1956:18;1943:68;1589:432;1458:569;;;;;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;988:216:33:-;5662:20:20;:18;:20::i;:::-;1089:5:33::1;:13;;;1079:7;:23;;;;1121:5;:12;;;1112:6;;:21;;;;;;;;;;;;;;;;;;1154:5;:14;;;1143:8;;:25;;;;;;;;;;;;;;;;;;1186:5;:11;;;1178:5;:19;;;;988:216:::0;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;5764:329:20:-;5826:9;5838:20;:18;:20::i;:::-;5826:32;;5957:1;5951:8;5948:1;5944:16;5934:143;;5993:10;5987:4;5980:24;6058:4;6052;6045:18;5934:143;5920:167;5764:329::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:407::-;4034:4;4072:2;4061:9;4057:18;4049:26;;4085:65;4147:1;4136:9;4132:17;4123:6;4085:65;:::i;:::-;4197:9;4191:4;4187:20;4182:2;4171:9;4167:18;4160:48;4225:76;4296:4;4287:6;4225:76;:::i;:::-;4217:84;;3901:407;;;;;:::o;4314:115::-;4399:23;4416:5;4399:23;:::i;:::-;4394:3;4387:36;4314:115;;:::o;4435:218::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:69;4643:1;4632:9;4628:17;4619:6;4577:69;:::i;:::-;4435:218;;;;:::o;4659:126::-;4696:7;4736:42;4729:5;4725:54;4714:65;;4659:126;;;:::o;4791:60::-;4819:3;4840:5;4833:12;;4791:60;;;:::o;4857:142::-;4907:9;4940:53;4958:34;4967:24;4985:5;4967:24;:::i;:::-;4958:34;:::i;:::-;4940:53;:::i;:::-;4927:66;;4857:142;;;:::o;5005:126::-;5055:9;5088:37;5119:5;5088:37;:::i;:::-;5075:50;;5005:126;;;:::o;5137:145::-;5206:9;5239:37;5270:5;5239:37;:::i;:::-;5226:50;;5137:145;;;:::o;5288:169::-;5394:56;5444:5;5394:56;:::i;:::-;5389:3;5382:69;5288:169;;:::o;5463:260::-;5575:4;5613:2;5602:9;5598:18;5590:26;;5626:90;5713:1;5702:9;5698:17;5689:6;5626:90;:::i;:::-;5463:260;;;;:::o;5729:77::-;5766:7;5795:5;5784:16;;5729:77;;;:::o;5812:118::-;5899:24;5917:5;5899:24;:::i;:::-;5894:3;5887:37;5812:118;;:::o;5936:222::-;6029:4;6067:2;6056:9;6052:18;6044:26;;6080:71;6148:1;6137:9;6133:17;6124:6;6080:71;:::i;:::-;5936:222;;;;:::o;6164:96::-;6201:7;6230:24;6248:5;6230:24;:::i;:::-;6219:35;;6164:96;;;:::o;6266:118::-;6353:24;6371:5;6353:24;:::i;:::-;6348:3;6341:37;6266:118;;:::o;6390:222::-;6483:4;6521:2;6510:9;6506:18;6498:26;;6534:71;6602:1;6591:9;6587:17;6578:6;6534:71;:::i;:::-;6390:222;;;;:::o;6618:309::-;6729:4;6767:2;6756:9;6752:18;6744:26;;6816:9;6810:4;6806:20;6802:1;6791:9;6787:17;6780:47;6844:76;6915:4;6906:6;6844:76;:::i;:::-;6836:84;;6618:309;;;;:::o;6933:147::-;7034:11;7071:3;7056:18;;6933:147;;;;:::o;7086:386::-;7190:3;7218:38;7250:5;7218:38;:::i;:::-;7272:88;7353:6;7348:3;7272:88;:::i;:::-;7265:95;;7369:65;7427:6;7422:3;7415:4;7408:5;7404:16;7369:65;:::i;:::-;7459:6;7454:3;7450:16;7443:23;;7194:278;7086:386;;;;:::o;7478:271::-;7608:3;7630:93;7719:3;7710:6;7630:93;:::i;:::-;7623:100;;7740:3;7733:10;;7478:271;;;;:::o;7755:117::-;7864:1;7861;7854:12;7878:180;7926:77;7923:1;7916:88;8023:4;8020:1;8013:15;8047:4;8044:1;8037:15;8064:281;8147:27;8169:4;8147:27;:::i;:::-;8139:6;8135:40;8277:6;8265:10;8262:22;8241:18;8229:10;8226:34;8223:62;8220:88;;;8288:18;;:::i;:::-;8220:88;8328:10;8324:2;8317:22;8107:238;8064:281;;:::o;8351:129::-;8385:6;8412:20;;:::i;:::-;8402:30;;8441:33;8469:4;8461:6;8441:33;:::i;:::-;8351:129;;;:::o;8609:122::-;8682:24;8700:5;8682:24;:::i;:::-;8675:5;8672:35;8662:63;;8721:1;8718;8711:12;8662:63;8609:122;:::o;8737:139::-;8783:5;8821:6;8808:20;8799:29;;8837:33;8864:5;8837:33;:::i;:::-;8737:139;;;;:::o;8882:122::-;8955:24;8973:5;8955:24;:::i;:::-;8948:5;8945:35;8935:63;;8994:1;8991;8984:12;8935:63;8882:122;:::o;9010:139::-;9056:5;9094:6;9081:20;9072:29;;9110:33;9137:5;9110:33;:::i;:::-;9010:139;;;;:::o;9196:910::-;9275:5;9319:4;9307:9;9302:3;9298:19;9294:30;9291:117;;;9327:79;;:::i;:::-;9291:117;9426:21;9442:4;9426:21;:::i;:::-;9417:30;;9509:1;9549:49;9594:3;9585:6;9574:9;9570:22;9549:49;:::i;:::-;9542:4;9535:5;9531:16;9524:75;9457:153;9671:2;9712:49;9757:3;9748:6;9737:9;9733:22;9712:49;:::i;:::-;9705:4;9698:5;9694:16;9687:75;9620:153;9836:2;9877:48;9921:3;9912:6;9901:9;9897:22;9877:48;:::i;:::-;9870:4;9863:5;9859:16;9852:74;9783:154;9997:2;10038:49;10083:3;10074:6;10063:9;10059:22;10038:49;:::i;:::-;10031:4;10024:5;10020:16;10013:75;9947:152;9196:910;;;;:::o;10112:390::-;10201:6;10250:3;10238:9;10229:7;10225:23;10221:33;10218:120;;;10257:79;;:::i;:::-;10218:120;10377:1;10402:83;10477:7;10468:6;10457:9;10453:22;10402:83;:::i;:::-;10392:93;;10348:147;10112:390;;;;:::o"},"methodIdentifiers":{"VALIDATOR()":"393df8cb","chainId()":"9a8a0592","execute(bytes)":"09c5eabe","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","prepare(bytes)":"d7768c47","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"bytes_\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"_0\":\"(success, data) A tuple of the success status and the returned data\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"prepare(bytes)\":{\"params\":{\"data_\":\"The data payload for the action\"},\"returns\":{\"bytes_\":\"The prepared payload\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"execute(bytes)\":{\"notice\":\"Execute the action\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the owner and the required data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/ContractAction.sol\":\"ContractAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/AContractAction.sol\":{\"keccak256\":\"0x8c63ac88b8ae8d62e434efee64cba6dfb75328cf9878aadd9a2731d6c661b401\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3d6cd76a30cb8aa1047f1607bd4b697e1edd6d5d872ea9caa053482f54b70e50\",\"dweb:/ipfs/QmPB7TaQBFFx5sePRha8wUyB4mSF6cpRpX7jRWKuMX2cZr\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/actions/ContractAction.sol\":{\"keccak256\":\"0x5bb056bdfe74a0a8233c8625574e3d18009079978acaa73d5b977cc6c9a95a65\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://600ac50bda86d601fcd38c9bd852ce5161fd120b28da199f6b33b1cb1ab3c89e\",\"dweb:/ipfs/QmcQvgcSjkYitHT9CAjRvdtHyn3xBpNCE7hqERUWS2173A\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/actions/ERC721MintAction.sol":{"ERC721MintAction":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"uint256","name":"targetChainId","type":"uint256"}],"name":"TargetChainUnsupported","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isValidated","type":"bool"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ActionValidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"VALIDATOR","outputs":[{"internalType":"contract Validator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"prepare","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"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":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"validated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"value","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13141":{"entryPoint":null,"id":13141,"parameterSlots":0,"returnSlots":0},"@_13209":{"entryPoint":null,"id":13209,"parameterSlots":0,"returnSlots":0},"@_19084":{"entryPoint":null,"id":19084,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":64,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":433,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":392,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":172,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"60a060405234801561000f575f80fd5b5061001e61004060201b60201c565b61002d336100ac60201b60201c565b61003b61004060201b60201c565b6101b5565b5f61004f61018860201b60201c565b9050805460018116156100695763f92ee8a95f526004601cfd5b8160c01c808260011c146100a7578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b6100ba6101b160201b60201c565b15610132577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156100f457630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610185565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f90565b60805161158f6101cd5f395f610540015261158f5ff3fe608060405260043610610113575f3560e01c80638da5cb5b1161009f578063d7768c4711610063578063d7768c471461033e578063ea3d508a1461037a578063f04e283e146103a4578063f2fde38b146103c0578063fee81cf4146103dc57610113565b80638da5cb5b146102485780639a8a059214610272578063bec952771461029c578063c16e50ef146102d8578063d4b839921461031457610113565b8063393df8cb116100e6578063393df8cb146101b85780633fa4f245146101e2578063439fab911461020c57806354d1f13d14610234578063715018a61461023e57610113565b806301ffc9a71461011757806309c5eabe14610153578063256929621461018457806328d6183b1461018e575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610e84565b610418565b60405161014a9190610ec9565b60405180910390f35b61016d60048036038101906101689190610f43565b610491565b60405161017b929190610ffe565b60405180910390f35b61018c6104c6565b005b348015610199575f80fd5b506101a2610517565b6040516101af919061103b565b60405180910390f35b3480156101c3575f80fd5b506101cc61053e565b6040516101d991906110ce565b60405180910390f35b3480156101ed575f80fd5b506101f6610562565b60405161020391906110ff565b60405180910390f35b348015610217575f80fd5b50610232600480360381019061022d9190610f43565b610568565b005b61023c6105f5565b005b61024661062e565b005b348015610253575f80fd5b5061025c610641565b6040516102699190611138565b60405180910390f35b34801561027d575f80fd5b50610286610669565b60405161029391906110ff565b60405180910390f35b3480156102a7575f80fd5b506102c260048036038101906102bd919061117b565b61066e565b6040516102cf9190610ec9565b60405180910390f35b3480156102e3575f80fd5b506102fe60048036038101906102f99190610f43565b61068b565b60405161030b9190610ec9565b60405180910390f35b34801561031f575f80fd5b506103286107e5565b6040516103359190611138565b60405180910390f35b348015610349575f80fd5b50610364600480360381019061035f9190610f43565b61080a565b60405161037191906111a6565b60405180910390f35b348015610385575f80fd5b5061038e61081e565b60405161039b919061103b565b60405180910390f35b6103be60048036038101906103b991906111f0565b610831565b005b6103da60048036038101906103d591906111f0565b61086f565b005b3480156103e7575f80fd5b5061040260048036038101906103fd91906111f0565b610898565b60405161040f91906110ff565b60405180910390f35b5f7fcba21e6c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048a5750610489826108b1565b5b9050919050565b5f60606040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6104cf61092a565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fcba21e6c00000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f610571610934565b905080546003825580156105a35760018160011c14303b1061059a5763f92ee8a95f526004601cfd5b818160ff1b1b91505b506105bb83838101906105b6919061130c565b61095d565b80156105f0576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61063661097a565b61063f5f6109b1565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f848481019061069d9190611422565b915091505f816106ac906114b4565b5f1c90508273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161072191906110ff565b602060405180830381865afa15801561073c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610760919061152e565b73ffffffffffffffffffffffffffffffffffffffff1614801561079e575060035f8281526020019081526020015f205f9054906101000a900460ff16155b156107d857600160035f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550600193505050506107df565b5f93505050505b92915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606108168383610a77565b905092915050565b600160149054906101000a900460e01b81565b61083961097a565b63389a75e1600c52805f526020600c20805442111561085f57636f5e88185f526004601cfd5b5f81555061086c816109b1565b50565b61087761097a565b8060601b61088c57637448fbae5f526004601cfd5b610895816109b1565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe8478173000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610923575061092282610a9b565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610965610b14565b61096e81610b38565b61097733610bbd565b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146109af576382b429005f526004601cfd5b565b6109b9610c93565b15610a1e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610a74565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060610a93600160149054906101000a900460e01b8484610c97565b905092915050565b5f7f2fae823b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b0d5750610b0c82610cc3565b5b9050919050565b5f610b1d610934565b90508054600116610b355763d7e6bcf85f526004601cfd5b50565b610b40610b14565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b610bc5610c93565b15610c3d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610bff57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c90565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fcea74fae000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d355750610d3482610d3c565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610dae5750610dad82610db5565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6381610e2f565b8114610e6d575f80fd5b50565b5f81359050610e7e81610e5a565b92915050565b5f60208284031215610e9957610e98610e27565b5b5f610ea684828501610e70565b91505092915050565b5f8115159050919050565b610ec381610eaf565b82525050565b5f602082019050610edc5f830184610eba565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f0357610f02610ee2565b5b8235905067ffffffffffffffff811115610f2057610f1f610ee6565b5b602083019150836001820283011115610f3c57610f3b610eea565b5b9250929050565b5f8060208385031215610f5957610f58610e27565b5b5f83013567ffffffffffffffff811115610f7657610f75610e2b565b5b610f8285828601610eee565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fd082610f8e565b610fda8185610f98565b9350610fea818560208601610fa8565b610ff381610fb6565b840191505092915050565b5f6040820190506110115f830185610eba565b81810360208301526110238184610fc6565b90509392505050565b61103581610e2f565b82525050565b5f60208201905061104e5f83018461102c565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61109661109161108c84611054565b611073565b611054565b9050919050565b5f6110a78261107c565b9050919050565b5f6110b88261109d565b9050919050565b6110c8816110ae565b82525050565b5f6020820190506110e15f8301846110bf565b92915050565b5f819050919050565b6110f9816110e7565b82525050565b5f6020820190506111125f8301846110f0565b92915050565b5f61112282611054565b9050919050565b61113281611118565b82525050565b5f60208201905061114b5f830184611129565b92915050565b61115a816110e7565b8114611164575f80fd5b50565b5f8135905061117581611151565b92915050565b5f602082840312156111905761118f610e27565b5b5f61119d84828501611167565b91505092915050565b5f6020820190508181035f8301526111be8184610fc6565b905092915050565b6111cf81611118565b81146111d9575f80fd5b50565b5f813590506111ea816111c6565b92915050565b5f6020828403121561120557611204610e27565b5b5f611212848285016111dc565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61125582610fb6565b810181811067ffffffffffffffff821117156112745761127361121f565b5b80604052505050565b5f611286610e1e565b9050611292828261124c565b919050565b5f608082840312156112ac576112ab61121b565b5b6112b6608061127d565b90505f6112c584828501611167565b5f8301525060206112d8848285016111dc565b60208301525060406112ec84828501610e70565b604083015250606061130084828501611167565b60608301525092915050565b5f6080828403121561132157611320610e27565b5b5f61132e84828501611297565b91505092915050565b5f61134182611054565b9050919050565b61135181611337565b811461135b575f80fd5b50565b5f8135905061136c81611348565b92915050565b5f80fd5b5f67ffffffffffffffff8211156113905761138f61121f565b5b61139982610fb6565b9050602081019050919050565b828183375f83830152505050565b5f6113c66113c184611376565b61127d565b9050828152602081018484840111156113e2576113e1611372565b5b6113ed8482856113a6565b509392505050565b5f82601f83011261140957611408610ee2565b5b81356114198482602086016113b4565b91505092915050565b5f806040838503121561143857611437610e27565b5b5f6114458582860161135e565b925050602083013567ffffffffffffffff81111561146657611465610e2b565b5b611472858286016113f5565b9150509250929050565b5f819050602082019050919050565b5f819050919050565b5f61149f825161148b565b80915050919050565b5f82821b905092915050565b5f6114be82610f8e565b826114c88461147c565b90506114d381611494565b925060208210156115135761150e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026114a8565b831692505b5050919050565b5f81519050611528816111c6565b92915050565b5f6020828403121561154357611542610e27565b5b5f6115508482850161151a565b9150509291505056fea2646970667358221220b2c66b0eecc4e35ee328a41534cf40810a261d315cf2c98422a5feabf86dd65764736f6c634300081a0033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E PUSH2 0x40 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D CALLER PUSH2 0xAC PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x3B PUSH2 0x40 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1B5 JUMP JUMPDEST PUSH0 PUSH2 0x4F PUSH2 0x188 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x69 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0xA7 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xBA PUSH2 0x1B1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0x132 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xF4 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x185 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x158F PUSH2 0x1CD PUSH0 CODECOPY PUSH0 PUSH2 0x540 ADD MSTORE PUSH2 0x158F PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD7768C47 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x33E JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3DC JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xBEC95277 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x314 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x393DF8CB GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x1E2 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x23E JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x18E JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH2 0x418 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17B SWAP3 SWAP2 SWAP1 PUSH2 0xFFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18C PUSH2 0x4C6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A2 PUSH2 0x517 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x103B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CC PUSH2 0x53E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D9 SWAP2 SWAP1 PUSH2 0x10CE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1ED JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F6 PUSH2 0x562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x203 SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x568 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23C PUSH2 0x5F5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x246 PUSH2 0x62E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x641 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x1138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x286 PUSH2 0x669 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x117B JUMP JUMPDEST PUSH2 0x66E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F9 SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30B SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x328 PUSH2 0x7E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x335 SWAP2 SWAP1 PUSH2 0x1138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x349 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x364 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35F SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x371 SWAP2 SWAP1 PUSH2 0x11A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x385 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x38E PUSH2 0x81E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x39B SWAP2 SWAP1 PUSH2 0x103B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B9 SWAP2 SWAP1 PUSH2 0x11F0 JUMP JUMPDEST PUSH2 0x831 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D5 SWAP2 SWAP1 PUSH2 0x11F0 JUMP JUMPDEST PUSH2 0x86F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x402 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FD SWAP2 SWAP1 PUSH2 0x11F0 JUMP JUMPDEST PUSH2 0x898 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40F SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xCBA21E6C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x48A JUMPI POP PUSH2 0x489 DUP3 PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x4CF PUSH2 0x92A JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xCBA21E6C00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x571 PUSH2 0x934 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x5A3 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x59A JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x5BB DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x5B6 SWAP2 SWAP1 PUSH2 0x130C JUMP JUMPDEST PUSH2 0x95D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5F0 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x636 PUSH2 0x97A JUMP JUMPDEST PUSH2 0x63F PUSH0 PUSH2 0x9B1 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x69D SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP2 PUSH2 0x6AC SWAP1 PUSH2 0x14B4 JUMP JUMPDEST PUSH0 SHR SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x760 SWAP2 SWAP1 PUSH2 0x152E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x79E JUMPI POP PUSH1 0x3 PUSH0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x7D8 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x7DF JUMP JUMPDEST PUSH0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x816 DUP4 DUP4 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0x839 PUSH2 0x97A JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x85F JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x86C DUP2 PUSH2 0x9B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x877 PUSH2 0x97A JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x88C JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x895 DUP2 PUSH2 0x9B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x923 JUMPI POP PUSH2 0x922 DUP3 PUSH2 0xA9B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x965 PUSH2 0xB14 JUMP JUMPDEST PUSH2 0x96E DUP2 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0x977 CALLER PUSH2 0xBBD JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x9AF JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x9B9 PUSH2 0xC93 JUMP JUMPDEST ISZERO PUSH2 0xA1E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xA74 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA93 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0xC97 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x2FAE823B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB0D JUMPI POP PUSH2 0xB0C DUP3 PUSH2 0xCC3 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB1D PUSH2 0x934 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0xB35 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xB40 PUSH2 0xB14 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xBC5 PUSH2 0xC93 JUMP JUMPDEST ISZERO PUSH2 0xC3D JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xBFF JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC90 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xCEA74FAE00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD35 JUMPI POP PUSH2 0xD34 DUP3 PUSH2 0xD3C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xDAE JUMPI POP PUSH2 0xDAD DUP3 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE63 DUP2 PUSH2 0xE2F JUMP JUMPDEST DUP2 EQ PUSH2 0xE6D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE7E DUP2 PUSH2 0xE5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE99 JUMPI PUSH2 0xE98 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEA6 DUP5 DUP3 DUP6 ADD PUSH2 0xE70 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEC3 DUP2 PUSH2 0xEAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEDC PUSH0 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF03 JUMPI PUSH2 0xF02 PUSH2 0xEE2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF20 JUMPI PUSH2 0xF1F PUSH2 0xEE6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF3C JUMPI PUSH2 0xF3B PUSH2 0xEEA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF59 JUMPI PUSH2 0xF58 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST PUSH2 0xF82 DUP6 DUP3 DUP7 ADD PUSH2 0xEEE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFD0 DUP3 PUSH2 0xF8E JUMP JUMPDEST PUSH2 0xFDA DUP2 DUP6 PUSH2 0xF98 JUMP JUMPDEST SWAP4 POP PUSH2 0xFEA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFA8 JUMP JUMPDEST PUSH2 0xFF3 DUP2 PUSH2 0xFB6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1011 PUSH0 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1023 DUP2 DUP5 PUSH2 0xFC6 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1035 DUP2 PUSH2 0xE2F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x104E PUSH0 DUP4 ADD DUP5 PUSH2 0x102C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1096 PUSH2 0x1091 PUSH2 0x108C DUP5 PUSH2 0x1054 JUMP JUMPDEST PUSH2 0x1073 JUMP JUMPDEST PUSH2 0x1054 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10A7 DUP3 PUSH2 0x107C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10B8 DUP3 PUSH2 0x109D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10C8 DUP2 PUSH2 0x10AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10E1 PUSH0 DUP4 ADD DUP5 PUSH2 0x10BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10F9 DUP2 PUSH2 0x10E7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1112 PUSH0 DUP4 ADD DUP5 PUSH2 0x10F0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1122 DUP3 PUSH2 0x1054 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1132 DUP2 PUSH2 0x1118 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x114B PUSH0 DUP4 ADD DUP5 PUSH2 0x1129 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x115A DUP2 PUSH2 0x10E7 JUMP JUMPDEST DUP2 EQ PUSH2 0x1164 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1175 DUP2 PUSH2 0x1151 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1190 JUMPI PUSH2 0x118F PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x119D DUP5 DUP3 DUP6 ADD PUSH2 0x1167 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11BE DUP2 DUP5 PUSH2 0xFC6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11CF DUP2 PUSH2 0x1118 JUMP JUMPDEST DUP2 EQ PUSH2 0x11D9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11EA DUP2 PUSH2 0x11C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1205 JUMPI PUSH2 0x1204 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1212 DUP5 DUP3 DUP6 ADD PUSH2 0x11DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1255 DUP3 PUSH2 0xFB6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1274 JUMPI PUSH2 0x1273 PUSH2 0x121F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1286 PUSH2 0xE1E JUMP JUMPDEST SWAP1 POP PUSH2 0x1292 DUP3 DUP3 PUSH2 0x124C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AC JUMPI PUSH2 0x12AB PUSH2 0x121B JUMP JUMPDEST JUMPDEST PUSH2 0x12B6 PUSH1 0x80 PUSH2 0x127D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x12C5 DUP5 DUP3 DUP6 ADD PUSH2 0x1167 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x12D8 DUP5 DUP3 DUP6 ADD PUSH2 0x11DC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x12EC DUP5 DUP3 DUP6 ADD PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1300 DUP5 DUP3 DUP6 ADD PUSH2 0x1167 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1321 JUMPI PUSH2 0x1320 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x132E DUP5 DUP3 DUP6 ADD PUSH2 0x1297 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1341 DUP3 PUSH2 0x1054 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1351 DUP2 PUSH2 0x1337 JUMP JUMPDEST DUP2 EQ PUSH2 0x135B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x136C DUP2 PUSH2 0x1348 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1390 JUMPI PUSH2 0x138F PUSH2 0x121F JUMP JUMPDEST JUMPDEST PUSH2 0x1399 DUP3 PUSH2 0xFB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13C6 PUSH2 0x13C1 DUP5 PUSH2 0x1376 JUMP JUMPDEST PUSH2 0x127D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13E2 JUMPI PUSH2 0x13E1 PUSH2 0x1372 JUMP JUMPDEST JUMPDEST PUSH2 0x13ED DUP5 DUP3 DUP6 PUSH2 0x13A6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1409 JUMPI PUSH2 0x1408 PUSH2 0xEE2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1419 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x13B4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1438 JUMPI PUSH2 0x1437 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1445 DUP6 DUP3 DUP7 ADD PUSH2 0x135E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1466 JUMPI PUSH2 0x1465 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST PUSH2 0x1472 DUP6 DUP3 DUP7 ADD PUSH2 0x13F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x149F DUP3 MLOAD PUSH2 0x148B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14BE DUP3 PUSH2 0xF8E JUMP JUMPDEST DUP3 PUSH2 0x14C8 DUP5 PUSH2 0x147C JUMP JUMPDEST SWAP1 POP PUSH2 0x14D3 DUP2 PUSH2 0x1494 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x1513 JUMPI PUSH2 0x150E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x14A8 JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1528 DUP2 PUSH2 0x11C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1543 JUMPI PUSH2 0x1542 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1550 DUP5 DUP3 DUP6 ADD PUSH2 0x151A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xC6 PUSH12 0xEECC4E35EE328A41534CF40 DUP2 EXP 0x26 SAR BALANCE TLOAD CALLCODE 0xC9 DUP5 0x22 0xA5 INVALID 0xAB 0xF8 PUSH14 0xD65764736F6C634300081A003300 ","sourceMap":"705:884:34:-:0;;;1000:53;;;;;;;;;;700:22:33;:20;;;:22;;:::i;:::-;703:28:63;720:10;703:16;;;:28;;:::i;:::-;1024:22:34;:20;;;:22;;:::i;:::-;705:884;;6525:759:20;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4883:1190:16:-;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4348:78:16:-;4412:10;4348:78;:::o;705:884:34:-;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@VALIDATOR_13058":{"entryPoint":1342,"id":13058,"parameterSlots":0,"returnSlots":0},"@_buildPayload_12810":{"entryPoint":3223,"id":12810,"parameterSlots":3,"returnSlots":1},"@_checkInitializing_9173":{"entryPoint":2836,"id":9173,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6308":{"entryPoint":2426,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":3219,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":2356,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":3005,"id":6288,"parameterSlots":1,"returnSlots":0},"@_initialize_13189":{"entryPoint":2872,"id":13189,"parameterSlots":1,"returnSlots":0},"@_initialize_13249":{"entryPoint":2397,"id":13249,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6319":{"entryPoint":2346,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":2481,"id":6302,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":1525,"id":6368,"parameterSlots":0,"returnSlots":0},"@chainId_12727":{"entryPoint":1641,"id":12727,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":2097,"id":6382,"parameterSlots":1,"returnSlots":0},"@execute_12909":{"entryPoint":1169,"id":12909,"parameterSlots":2,"returnSlots":2},"@getComponentInterface_13000":{"entryPoint":1303,"id":13000,"parameterSlots":0,"returnSlots":1},"@initialize_13228":{"entryPoint":1384,"id":13228,"parameterSlots":2,"returnSlots":0},"@owner_6390":{"entryPoint":1601,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":2200,"id":6400,"parameterSlots":1,"returnSlots":1},"@prepare_12799":{"entryPoint":2679,"id":12799,"parameterSlots":2,"returnSlots":1},"@prepare_12924":{"entryPoint":2058,"id":12924,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":1582,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1222,"id":6362,"parameterSlots":0,"returnSlots":0},"@selector_12733":{"entryPoint":2078,"id":12733,"parameterSlots":0,"returnSlots":0},"@supportsInterface_12847":{"entryPoint":2715,"id":12847,"parameterSlots":1,"returnSlots":1},"@supportsInterface_13024":{"entryPoint":1048,"id":13024,"parameterSlots":1,"returnSlots":1},"@supportsInterface_13099":{"entryPoint":3267,"id":13099,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":3388,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_19115":{"entryPoint":2225,"id":19115,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":3509,"id":2830,"parameterSlots":1,"returnSlots":1},"@target_12730":{"entryPoint":2021,"id":12730,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6333":{"entryPoint":2159,"id":6333,"parameterSlots":1,"returnSlots":0},"@validate_12985":{"entryPoint":1675,"id":12985,"parameterSlots":2,"returnSlots":1},"@validated_12874":{"entryPoint":1646,"id":12874,"parameterSlots":0,"returnSlots":0},"@value_12736":{"entryPoint":1378,"id":12736,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":5044,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4572,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":5402,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4958,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3696,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3822,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":5109,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$13134_memory_ptr":{"entryPoint":4759,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4455,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4592,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":5422,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes_memory_ptr":{"entryPoint":5154,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":3716,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3907,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_InitPayload_$13134_memory_ptr":{"entryPoint":4876,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":4475,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4393,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3770,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4140,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4038,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack":{"entryPoint":4287,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4336,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4408,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3785,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4094,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4155,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4518,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_Validator_$19130__to_t_address__fromStack_reversed":{"entryPoint":4302,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4351,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4733,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3614,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4982,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_memory_ptr":{"entryPoint":5244,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":3982,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":3992,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4376,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4919,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3759,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":5259,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3631,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4180,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4327,"id":null,"parameterSlots":1,"returnSlots":1},"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32":{"entryPoint":5300,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_Validator_$19130_to_t_address":{"entryPoint":4270,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":4253,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":4220,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5030,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4008,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4684,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":4211,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":4639,"id":null,"parameterSlots":0,"returnSlots":0},"read_from_memoryt_bytes32":{"entryPoint":5268,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3814,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3810,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4635,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3818,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4978,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3627,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3623,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4022,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":5288,"id":null,"parameterSlots":2,"returnSlots":1},"validator_revert_t_address":{"entryPoint":4550,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4936,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3674,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4433,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14402:64","nodeType":"YulBlock","src":"0:14402:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1607:28:64","nodeType":"YulBlock","src":"1607:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:64","nodeType":"YulLiteral","src":"1624:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:64","nodeType":"YulLiteral","src":"1627:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:64","nodeType":"YulIdentifier","src":"1617:6:64"},"nativeSrc":"1617:12:64","nodeType":"YulFunctionCall","src":"1617:12:64"},"nativeSrc":"1617:12:64","nodeType":"YulExpressionStatement","src":"1617:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:64","nodeType":"YulFunctionDefinition","src":"1518:117:64"},{"body":{"nativeSrc":"1730:28:64","nodeType":"YulBlock","src":"1730:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:64","nodeType":"YulLiteral","src":"1747:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:64","nodeType":"YulLiteral","src":"1750:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:64","nodeType":"YulIdentifier","src":"1740:6:64"},"nativeSrc":"1740:12:64","nodeType":"YulFunctionCall","src":"1740:12:64"},"nativeSrc":"1740:12:64","nodeType":"YulExpressionStatement","src":"1740:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:64","nodeType":"YulFunctionDefinition","src":"1641:117:64"},{"body":{"nativeSrc":"1853:28:64","nodeType":"YulBlock","src":"1853:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:64","nodeType":"YulLiteral","src":"1870:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:64","nodeType":"YulLiteral","src":"1873:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:64","nodeType":"YulIdentifier","src":"1863:6:64"},"nativeSrc":"1863:12:64","nodeType":"YulFunctionCall","src":"1863:12:64"},"nativeSrc":"1863:12:64","nodeType":"YulExpressionStatement","src":"1863:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:64","nodeType":"YulFunctionDefinition","src":"1764:117:64"},{"body":{"nativeSrc":"1974:478:64","nodeType":"YulBlock","src":"1974:478:64","statements":[{"body":{"nativeSrc":"2023:83:64","nodeType":"YulBlock","src":"2023:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2025:77:64","nodeType":"YulIdentifier","src":"2025:77:64"},"nativeSrc":"2025:79:64","nodeType":"YulFunctionCall","src":"2025:79:64"},"nativeSrc":"2025:79:64","nodeType":"YulExpressionStatement","src":"2025:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2002:6:64","nodeType":"YulIdentifier","src":"2002:6:64"},{"kind":"number","nativeSrc":"2010:4:64","nodeType":"YulLiteral","src":"2010:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"1998:3:64","nodeType":"YulIdentifier","src":"1998:3:64"},"nativeSrc":"1998:17:64","nodeType":"YulFunctionCall","src":"1998:17:64"},{"name":"end","nativeSrc":"2017:3:64","nodeType":"YulIdentifier","src":"2017:3:64"}],"functionName":{"name":"slt","nativeSrc":"1994:3:64","nodeType":"YulIdentifier","src":"1994:3:64"},"nativeSrc":"1994:27:64","nodeType":"YulFunctionCall","src":"1994:27:64"}],"functionName":{"name":"iszero","nativeSrc":"1987:6:64","nodeType":"YulIdentifier","src":"1987:6:64"},"nativeSrc":"1987:35:64","nodeType":"YulFunctionCall","src":"1987:35:64"},"nativeSrc":"1984:122:64","nodeType":"YulIf","src":"1984:122:64"},{"nativeSrc":"2115:30:64","nodeType":"YulAssignment","src":"2115:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"2138:6:64","nodeType":"YulIdentifier","src":"2138:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2125:12:64","nodeType":"YulIdentifier","src":"2125:12:64"},"nativeSrc":"2125:20:64","nodeType":"YulFunctionCall","src":"2125:20:64"},"variableNames":[{"name":"length","nativeSrc":"2115:6:64","nodeType":"YulIdentifier","src":"2115:6:64"}]},{"body":{"nativeSrc":"2188:83:64","nodeType":"YulBlock","src":"2188:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2190:77:64","nodeType":"YulIdentifier","src":"2190:77:64"},"nativeSrc":"2190:79:64","nodeType":"YulFunctionCall","src":"2190:79:64"},"nativeSrc":"2190:79:64","nodeType":"YulExpressionStatement","src":"2190:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2160:6:64","nodeType":"YulIdentifier","src":"2160:6:64"},{"kind":"number","nativeSrc":"2168:18:64","nodeType":"YulLiteral","src":"2168:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2157:2:64","nodeType":"YulIdentifier","src":"2157:2:64"},"nativeSrc":"2157:30:64","nodeType":"YulFunctionCall","src":"2157:30:64"},"nativeSrc":"2154:117:64","nodeType":"YulIf","src":"2154:117:64"},{"nativeSrc":"2280:29:64","nodeType":"YulAssignment","src":"2280:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2296:6:64","nodeType":"YulIdentifier","src":"2296:6:64"},{"kind":"number","nativeSrc":"2304:4:64","nodeType":"YulLiteral","src":"2304:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2292:3:64","nodeType":"YulIdentifier","src":"2292:3:64"},"nativeSrc":"2292:17:64","nodeType":"YulFunctionCall","src":"2292:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"2280:8:64","nodeType":"YulIdentifier","src":"2280:8:64"}]},{"body":{"nativeSrc":"2363:83:64","nodeType":"YulBlock","src":"2363:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2365:77:64","nodeType":"YulIdentifier","src":"2365:77:64"},"nativeSrc":"2365:79:64","nodeType":"YulFunctionCall","src":"2365:79:64"},"nativeSrc":"2365:79:64","nodeType":"YulExpressionStatement","src":"2365:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2328:8:64","nodeType":"YulIdentifier","src":"2328:8:64"},{"arguments":[{"name":"length","nativeSrc":"2342:6:64","nodeType":"YulIdentifier","src":"2342:6:64"},{"kind":"number","nativeSrc":"2350:4:64","nodeType":"YulLiteral","src":"2350:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"2338:3:64","nodeType":"YulIdentifier","src":"2338:3:64"},"nativeSrc":"2338:17:64","nodeType":"YulFunctionCall","src":"2338:17:64"}],"functionName":{"name":"add","nativeSrc":"2324:3:64","nodeType":"YulIdentifier","src":"2324:3:64"},"nativeSrc":"2324:32:64","nodeType":"YulFunctionCall","src":"2324:32:64"},{"name":"end","nativeSrc":"2358:3:64","nodeType":"YulIdentifier","src":"2358:3:64"}],"functionName":{"name":"gt","nativeSrc":"2321:2:64","nodeType":"YulIdentifier","src":"2321:2:64"},"nativeSrc":"2321:41:64","nodeType":"YulFunctionCall","src":"2321:41:64"},"nativeSrc":"2318:128:64","nodeType":"YulIf","src":"2318:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"1900:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1941:6:64","nodeType":"YulTypedName","src":"1941:6:64","type":""},{"name":"end","nativeSrc":"1949:3:64","nodeType":"YulTypedName","src":"1949:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1957:8:64","nodeType":"YulTypedName","src":"1957:8:64","type":""},{"name":"length","nativeSrc":"1967:6:64","nodeType":"YulTypedName","src":"1967:6:64","type":""}],"src":"1900:552:64"},{"body":{"nativeSrc":"2543:442:64","nodeType":"YulBlock","src":"2543:442:64","statements":[{"body":{"nativeSrc":"2589:83:64","nodeType":"YulBlock","src":"2589:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:64","nodeType":"YulIdentifier","src":"2591:77:64"},"nativeSrc":"2591:79:64","nodeType":"YulFunctionCall","src":"2591:79:64"},"nativeSrc":"2591:79:64","nodeType":"YulExpressionStatement","src":"2591:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:64","nodeType":"YulIdentifier","src":"2564:7:64"},{"name":"headStart","nativeSrc":"2573:9:64","nodeType":"YulIdentifier","src":"2573:9:64"}],"functionName":{"name":"sub","nativeSrc":"2560:3:64","nodeType":"YulIdentifier","src":"2560:3:64"},"nativeSrc":"2560:23:64","nodeType":"YulFunctionCall","src":"2560:23:64"},{"kind":"number","nativeSrc":"2585:2:64","nodeType":"YulLiteral","src":"2585:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:64","nodeType":"YulIdentifier","src":"2556:3:64"},"nativeSrc":"2556:32:64","nodeType":"YulFunctionCall","src":"2556:32:64"},"nativeSrc":"2553:119:64","nodeType":"YulIf","src":"2553:119:64"},{"nativeSrc":"2682:296:64","nodeType":"YulBlock","src":"2682:296:64","statements":[{"nativeSrc":"2697:45:64","nodeType":"YulVariableDeclaration","src":"2697:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2728:9:64","nodeType":"YulIdentifier","src":"2728:9:64"},{"kind":"number","nativeSrc":"2739:1:64","nodeType":"YulLiteral","src":"2739:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2724:3:64","nodeType":"YulIdentifier","src":"2724:3:64"},"nativeSrc":"2724:17:64","nodeType":"YulFunctionCall","src":"2724:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"2711:12:64","nodeType":"YulIdentifier","src":"2711:12:64"},"nativeSrc":"2711:31:64","nodeType":"YulFunctionCall","src":"2711:31:64"},"variables":[{"name":"offset","nativeSrc":"2701:6:64","nodeType":"YulTypedName","src":"2701:6:64","type":""}]},{"body":{"nativeSrc":"2789:83:64","nodeType":"YulBlock","src":"2789:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"2791:77:64","nodeType":"YulIdentifier","src":"2791:77:64"},"nativeSrc":"2791:79:64","nodeType":"YulFunctionCall","src":"2791:79:64"},"nativeSrc":"2791:79:64","nodeType":"YulExpressionStatement","src":"2791:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"2761:6:64","nodeType":"YulIdentifier","src":"2761:6:64"},{"kind":"number","nativeSrc":"2769:18:64","nodeType":"YulLiteral","src":"2769:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2758:2:64","nodeType":"YulIdentifier","src":"2758:2:64"},"nativeSrc":"2758:30:64","nodeType":"YulFunctionCall","src":"2758:30:64"},"nativeSrc":"2755:117:64","nodeType":"YulIf","src":"2755:117:64"},{"nativeSrc":"2886:82:64","nodeType":"YulAssignment","src":"2886:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2940:9:64","nodeType":"YulIdentifier","src":"2940:9:64"},{"name":"offset","nativeSrc":"2951:6:64","nodeType":"YulIdentifier","src":"2951:6:64"}],"functionName":{"name":"add","nativeSrc":"2936:3:64","nodeType":"YulIdentifier","src":"2936:3:64"},"nativeSrc":"2936:22:64","nodeType":"YulFunctionCall","src":"2936:22:64"},{"name":"dataEnd","nativeSrc":"2960:7:64","nodeType":"YulIdentifier","src":"2960:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2904:31:64","nodeType":"YulIdentifier","src":"2904:31:64"},"nativeSrc":"2904:64:64","nodeType":"YulFunctionCall","src":"2904:64:64"},"variableNames":[{"name":"value0","nativeSrc":"2886:6:64","nodeType":"YulIdentifier","src":"2886:6:64"},{"name":"value1","nativeSrc":"2894:6:64","nodeType":"YulIdentifier","src":"2894:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"2458:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2505:9:64","nodeType":"YulTypedName","src":"2505:9:64","type":""},{"name":"dataEnd","nativeSrc":"2516:7:64","nodeType":"YulTypedName","src":"2516:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2528:6:64","nodeType":"YulTypedName","src":"2528:6:64","type":""},{"name":"value1","nativeSrc":"2536:6:64","nodeType":"YulTypedName","src":"2536:6:64","type":""}],"src":"2458:527:64"},{"body":{"nativeSrc":"3049:40:64","nodeType":"YulBlock","src":"3049:40:64","statements":[{"nativeSrc":"3060:22:64","nodeType":"YulAssignment","src":"3060:22:64","value":{"arguments":[{"name":"value","nativeSrc":"3076:5:64","nodeType":"YulIdentifier","src":"3076:5:64"}],"functionName":{"name":"mload","nativeSrc":"3070:5:64","nodeType":"YulIdentifier","src":"3070:5:64"},"nativeSrc":"3070:12:64","nodeType":"YulFunctionCall","src":"3070:12:64"},"variableNames":[{"name":"length","nativeSrc":"3060:6:64","nodeType":"YulIdentifier","src":"3060:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"2991:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3032:5:64","nodeType":"YulTypedName","src":"3032:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3042:6:64","nodeType":"YulTypedName","src":"3042:6:64","type":""}],"src":"2991:98:64"},{"body":{"nativeSrc":"3190:73:64","nodeType":"YulBlock","src":"3190:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3207:3:64","nodeType":"YulIdentifier","src":"3207:3:64"},{"name":"length","nativeSrc":"3212:6:64","nodeType":"YulIdentifier","src":"3212:6:64"}],"functionName":{"name":"mstore","nativeSrc":"3200:6:64","nodeType":"YulIdentifier","src":"3200:6:64"},"nativeSrc":"3200:19:64","nodeType":"YulFunctionCall","src":"3200:19:64"},"nativeSrc":"3200:19:64","nodeType":"YulExpressionStatement","src":"3200:19:64"},{"nativeSrc":"3228:29:64","nodeType":"YulAssignment","src":"3228:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"3247:3:64","nodeType":"YulIdentifier","src":"3247:3:64"},{"kind":"number","nativeSrc":"3252:4:64","nodeType":"YulLiteral","src":"3252:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3243:3:64","nodeType":"YulIdentifier","src":"3243:3:64"},"nativeSrc":"3243:14:64","nodeType":"YulFunctionCall","src":"3243:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"3228:11:64","nodeType":"YulIdentifier","src":"3228:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3095:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3162:3:64","nodeType":"YulTypedName","src":"3162:3:64","type":""},{"name":"length","nativeSrc":"3167:6:64","nodeType":"YulTypedName","src":"3167:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3178:11:64","nodeType":"YulTypedName","src":"3178:11:64","type":""}],"src":"3095:168:64"},{"body":{"nativeSrc":"3331:77:64","nodeType":"YulBlock","src":"3331:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3348:3:64","nodeType":"YulIdentifier","src":"3348:3:64"},{"name":"src","nativeSrc":"3353:3:64","nodeType":"YulIdentifier","src":"3353:3:64"},{"name":"length","nativeSrc":"3358:6:64","nodeType":"YulIdentifier","src":"3358:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"3342:5:64","nodeType":"YulIdentifier","src":"3342:5:64"},"nativeSrc":"3342:23:64","nodeType":"YulFunctionCall","src":"3342:23:64"},"nativeSrc":"3342:23:64","nodeType":"YulExpressionStatement","src":"3342:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3385:3:64","nodeType":"YulIdentifier","src":"3385:3:64"},{"name":"length","nativeSrc":"3390:6:64","nodeType":"YulIdentifier","src":"3390:6:64"}],"functionName":{"name":"add","nativeSrc":"3381:3:64","nodeType":"YulIdentifier","src":"3381:3:64"},"nativeSrc":"3381:16:64","nodeType":"YulFunctionCall","src":"3381:16:64"},{"kind":"number","nativeSrc":"3399:1:64","nodeType":"YulLiteral","src":"3399:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3374:6:64","nodeType":"YulIdentifier","src":"3374:6:64"},"nativeSrc":"3374:27:64","nodeType":"YulFunctionCall","src":"3374:27:64"},"nativeSrc":"3374:27:64","nodeType":"YulExpressionStatement","src":"3374:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3269:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3313:3:64","nodeType":"YulTypedName","src":"3313:3:64","type":""},{"name":"dst","nativeSrc":"3318:3:64","nodeType":"YulTypedName","src":"3318:3:64","type":""},{"name":"length","nativeSrc":"3323:6:64","nodeType":"YulTypedName","src":"3323:6:64","type":""}],"src":"3269:139:64"},{"body":{"nativeSrc":"3462:54:64","nodeType":"YulBlock","src":"3462:54:64","statements":[{"nativeSrc":"3472:38:64","nodeType":"YulAssignment","src":"3472:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3490:5:64","nodeType":"YulIdentifier","src":"3490:5:64"},{"kind":"number","nativeSrc":"3497:2:64","nodeType":"YulLiteral","src":"3497:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"3486:3:64","nodeType":"YulIdentifier","src":"3486:3:64"},"nativeSrc":"3486:14:64","nodeType":"YulFunctionCall","src":"3486:14:64"},{"arguments":[{"kind":"number","nativeSrc":"3506:2:64","nodeType":"YulLiteral","src":"3506:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"3502:3:64","nodeType":"YulIdentifier","src":"3502:3:64"},"nativeSrc":"3502:7:64","nodeType":"YulFunctionCall","src":"3502:7:64"}],"functionName":{"name":"and","nativeSrc":"3482:3:64","nodeType":"YulIdentifier","src":"3482:3:64"},"nativeSrc":"3482:28:64","nodeType":"YulFunctionCall","src":"3482:28:64"},"variableNames":[{"name":"result","nativeSrc":"3472:6:64","nodeType":"YulIdentifier","src":"3472:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3414:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3445:5:64","nodeType":"YulTypedName","src":"3445:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3455:6:64","nodeType":"YulTypedName","src":"3455:6:64","type":""}],"src":"3414:102:64"},{"body":{"nativeSrc":"3612:283:64","nodeType":"YulBlock","src":"3612:283:64","statements":[{"nativeSrc":"3622:52:64","nodeType":"YulVariableDeclaration","src":"3622:52:64","value":{"arguments":[{"name":"value","nativeSrc":"3668:5:64","nodeType":"YulIdentifier","src":"3668:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3636:31:64","nodeType":"YulIdentifier","src":"3636:31:64"},"nativeSrc":"3636:38:64","nodeType":"YulFunctionCall","src":"3636:38:64"},"variables":[{"name":"length","nativeSrc":"3626:6:64","nodeType":"YulTypedName","src":"3626:6:64","type":""}]},{"nativeSrc":"3683:77:64","nodeType":"YulAssignment","src":"3683:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"3748:3:64","nodeType":"YulIdentifier","src":"3748:3:64"},{"name":"length","nativeSrc":"3753:6:64","nodeType":"YulIdentifier","src":"3753:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3690:57:64","nodeType":"YulIdentifier","src":"3690:57:64"},"nativeSrc":"3690:70:64","nodeType":"YulFunctionCall","src":"3690:70:64"},"variableNames":[{"name":"pos","nativeSrc":"3683:3:64","nodeType":"YulIdentifier","src":"3683:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3808:5:64","nodeType":"YulIdentifier","src":"3808:5:64"},{"kind":"number","nativeSrc":"3815:4:64","nodeType":"YulLiteral","src":"3815:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3804:3:64","nodeType":"YulIdentifier","src":"3804:3:64"},"nativeSrc":"3804:16:64","nodeType":"YulFunctionCall","src":"3804:16:64"},{"name":"pos","nativeSrc":"3822:3:64","nodeType":"YulIdentifier","src":"3822:3:64"},{"name":"length","nativeSrc":"3827:6:64","nodeType":"YulIdentifier","src":"3827:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3769:34:64","nodeType":"YulIdentifier","src":"3769:34:64"},"nativeSrc":"3769:65:64","nodeType":"YulFunctionCall","src":"3769:65:64"},"nativeSrc":"3769:65:64","nodeType":"YulExpressionStatement","src":"3769:65:64"},{"nativeSrc":"3843:46:64","nodeType":"YulAssignment","src":"3843:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"3854:3:64","nodeType":"YulIdentifier","src":"3854:3:64"},{"arguments":[{"name":"length","nativeSrc":"3881:6:64","nodeType":"YulIdentifier","src":"3881:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3859:21:64","nodeType":"YulIdentifier","src":"3859:21:64"},"nativeSrc":"3859:29:64","nodeType":"YulFunctionCall","src":"3859:29:64"}],"functionName":{"name":"add","nativeSrc":"3850:3:64","nodeType":"YulIdentifier","src":"3850:3:64"},"nativeSrc":"3850:39:64","nodeType":"YulFunctionCall","src":"3850:39:64"},"variableNames":[{"name":"end","nativeSrc":"3843:3:64","nodeType":"YulIdentifier","src":"3843:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"3522:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3593:5:64","nodeType":"YulTypedName","src":"3593:5:64","type":""},{"name":"pos","nativeSrc":"3600:3:64","nodeType":"YulTypedName","src":"3600:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"3608:3:64","nodeType":"YulTypedName","src":"3608:3:64","type":""}],"src":"3522:373:64"},{"body":{"nativeSrc":"4039:269:64","nodeType":"YulBlock","src":"4039:269:64","statements":[{"nativeSrc":"4049:26:64","nodeType":"YulAssignment","src":"4049:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4061:9:64","nodeType":"YulIdentifier","src":"4061:9:64"},{"kind":"number","nativeSrc":"4072:2:64","nodeType":"YulLiteral","src":"4072:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4057:3:64","nodeType":"YulIdentifier","src":"4057:3:64"},"nativeSrc":"4057:18:64","nodeType":"YulFunctionCall","src":"4057:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4049:4:64","nodeType":"YulIdentifier","src":"4049:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4123:6:64","nodeType":"YulIdentifier","src":"4123:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4136:9:64","nodeType":"YulIdentifier","src":"4136:9:64"},{"kind":"number","nativeSrc":"4147:1:64","nodeType":"YulLiteral","src":"4147:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4132:3:64","nodeType":"YulIdentifier","src":"4132:3:64"},"nativeSrc":"4132:17:64","nodeType":"YulFunctionCall","src":"4132:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"4085:37:64","nodeType":"YulIdentifier","src":"4085:37:64"},"nativeSrc":"4085:65:64","nodeType":"YulFunctionCall","src":"4085:65:64"},"nativeSrc":"4085:65:64","nodeType":"YulExpressionStatement","src":"4085:65:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4171:9:64","nodeType":"YulIdentifier","src":"4171:9:64"},{"kind":"number","nativeSrc":"4182:2:64","nodeType":"YulLiteral","src":"4182:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4167:3:64","nodeType":"YulIdentifier","src":"4167:3:64"},"nativeSrc":"4167:18:64","nodeType":"YulFunctionCall","src":"4167:18:64"},{"arguments":[{"name":"tail","nativeSrc":"4191:4:64","nodeType":"YulIdentifier","src":"4191:4:64"},{"name":"headStart","nativeSrc":"4197:9:64","nodeType":"YulIdentifier","src":"4197:9:64"}],"functionName":{"name":"sub","nativeSrc":"4187:3:64","nodeType":"YulIdentifier","src":"4187:3:64"},"nativeSrc":"4187:20:64","nodeType":"YulFunctionCall","src":"4187:20:64"}],"functionName":{"name":"mstore","nativeSrc":"4160:6:64","nodeType":"YulIdentifier","src":"4160:6:64"},"nativeSrc":"4160:48:64","nodeType":"YulFunctionCall","src":"4160:48:64"},"nativeSrc":"4160:48:64","nodeType":"YulExpressionStatement","src":"4160:48:64"},{"nativeSrc":"4217:84:64","nodeType":"YulAssignment","src":"4217:84:64","value":{"arguments":[{"name":"value1","nativeSrc":"4287:6:64","nodeType":"YulIdentifier","src":"4287:6:64"},{"name":"tail","nativeSrc":"4296:4:64","nodeType":"YulIdentifier","src":"4296:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4225:61:64","nodeType":"YulIdentifier","src":"4225:61:64"},"nativeSrc":"4225:76:64","nodeType":"YulFunctionCall","src":"4225:76:64"},"variableNames":[{"name":"tail","nativeSrc":"4217:4:64","nodeType":"YulIdentifier","src":"4217:4:64"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"3901:407:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4003:9:64","nodeType":"YulTypedName","src":"4003:9:64","type":""},{"name":"value1","nativeSrc":"4015:6:64","nodeType":"YulTypedName","src":"4015:6:64","type":""},{"name":"value0","nativeSrc":"4023:6:64","nodeType":"YulTypedName","src":"4023:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4034:4:64","nodeType":"YulTypedName","src":"4034:4:64","type":""}],"src":"3901:407:64"},{"body":{"nativeSrc":"4377:52:64","nodeType":"YulBlock","src":"4377:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4394:3:64","nodeType":"YulIdentifier","src":"4394:3:64"},{"arguments":[{"name":"value","nativeSrc":"4416:5:64","nodeType":"YulIdentifier","src":"4416:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"4399:16:64","nodeType":"YulIdentifier","src":"4399:16:64"},"nativeSrc":"4399:23:64","nodeType":"YulFunctionCall","src":"4399:23:64"}],"functionName":{"name":"mstore","nativeSrc":"4387:6:64","nodeType":"YulIdentifier","src":"4387:6:64"},"nativeSrc":"4387:36:64","nodeType":"YulFunctionCall","src":"4387:36:64"},"nativeSrc":"4387:36:64","nodeType":"YulExpressionStatement","src":"4387:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"4314:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4365:5:64","nodeType":"YulTypedName","src":"4365:5:64","type":""},{"name":"pos","nativeSrc":"4372:3:64","nodeType":"YulTypedName","src":"4372:3:64","type":""}],"src":"4314:115:64"},{"body":{"nativeSrc":"4531:122:64","nodeType":"YulBlock","src":"4531:122:64","statements":[{"nativeSrc":"4541:26:64","nodeType":"YulAssignment","src":"4541:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4553:9:64","nodeType":"YulIdentifier","src":"4553:9:64"},{"kind":"number","nativeSrc":"4564:2:64","nodeType":"YulLiteral","src":"4564:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4549:3:64","nodeType":"YulIdentifier","src":"4549:3:64"},"nativeSrc":"4549:18:64","nodeType":"YulFunctionCall","src":"4549:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4541:4:64","nodeType":"YulIdentifier","src":"4541:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4619:6:64","nodeType":"YulIdentifier","src":"4619:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4632:9:64","nodeType":"YulIdentifier","src":"4632:9:64"},{"kind":"number","nativeSrc":"4643:1:64","nodeType":"YulLiteral","src":"4643:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4628:3:64","nodeType":"YulIdentifier","src":"4628:3:64"},"nativeSrc":"4628:17:64","nodeType":"YulFunctionCall","src":"4628:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"4577:41:64","nodeType":"YulIdentifier","src":"4577:41:64"},"nativeSrc":"4577:69:64","nodeType":"YulFunctionCall","src":"4577:69:64"},"nativeSrc":"4577:69:64","nodeType":"YulExpressionStatement","src":"4577:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"4435:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4503:9:64","nodeType":"YulTypedName","src":"4503:9:64","type":""},{"name":"value0","nativeSrc":"4515:6:64","nodeType":"YulTypedName","src":"4515:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4526:4:64","nodeType":"YulTypedName","src":"4526:4:64","type":""}],"src":"4435:218:64"},{"body":{"nativeSrc":"4704:81:64","nodeType":"YulBlock","src":"4704:81:64","statements":[{"nativeSrc":"4714:65:64","nodeType":"YulAssignment","src":"4714:65:64","value":{"arguments":[{"name":"value","nativeSrc":"4729:5:64","nodeType":"YulIdentifier","src":"4729:5:64"},{"kind":"number","nativeSrc":"4736:42:64","nodeType":"YulLiteral","src":"4736:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"4725:3:64","nodeType":"YulIdentifier","src":"4725:3:64"},"nativeSrc":"4725:54:64","nodeType":"YulFunctionCall","src":"4725:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"4714:7:64","nodeType":"YulIdentifier","src":"4714:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4659:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4686:5:64","nodeType":"YulTypedName","src":"4686:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4696:7:64","nodeType":"YulTypedName","src":"4696:7:64","type":""}],"src":"4659:126:64"},{"body":{"nativeSrc":"4823:28:64","nodeType":"YulBlock","src":"4823:28:64","statements":[{"nativeSrc":"4833:12:64","nodeType":"YulAssignment","src":"4833:12:64","value":{"name":"value","nativeSrc":"4840:5:64","nodeType":"YulIdentifier","src":"4840:5:64"},"variableNames":[{"name":"ret","nativeSrc":"4833:3:64","nodeType":"YulIdentifier","src":"4833:3:64"}]}]},"name":"identity","nativeSrc":"4791:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4809:5:64","nodeType":"YulTypedName","src":"4809:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"4819:3:64","nodeType":"YulTypedName","src":"4819:3:64","type":""}],"src":"4791:60:64"},{"body":{"nativeSrc":"4917:82:64","nodeType":"YulBlock","src":"4917:82:64","statements":[{"nativeSrc":"4927:66:64","nodeType":"YulAssignment","src":"4927:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4985:5:64","nodeType":"YulIdentifier","src":"4985:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4967:17:64","nodeType":"YulIdentifier","src":"4967:17:64"},"nativeSrc":"4967:24:64","nodeType":"YulFunctionCall","src":"4967:24:64"}],"functionName":{"name":"identity","nativeSrc":"4958:8:64","nodeType":"YulIdentifier","src":"4958:8:64"},"nativeSrc":"4958:34:64","nodeType":"YulFunctionCall","src":"4958:34:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"4940:17:64","nodeType":"YulIdentifier","src":"4940:17:64"},"nativeSrc":"4940:53:64","nodeType":"YulFunctionCall","src":"4940:53:64"},"variableNames":[{"name":"converted","nativeSrc":"4927:9:64","nodeType":"YulIdentifier","src":"4927:9:64"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"4857:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4897:5:64","nodeType":"YulTypedName","src":"4897:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"4907:9:64","nodeType":"YulTypedName","src":"4907:9:64","type":""}],"src":"4857:142:64"},{"body":{"nativeSrc":"5065:66:64","nodeType":"YulBlock","src":"5065:66:64","statements":[{"nativeSrc":"5075:50:64","nodeType":"YulAssignment","src":"5075:50:64","value":{"arguments":[{"name":"value","nativeSrc":"5119:5:64","nodeType":"YulIdentifier","src":"5119:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"5088:30:64","nodeType":"YulIdentifier","src":"5088:30:64"},"nativeSrc":"5088:37:64","nodeType":"YulFunctionCall","src":"5088:37:64"},"variableNames":[{"name":"converted","nativeSrc":"5075:9:64","nodeType":"YulIdentifier","src":"5075:9:64"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"5005:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5045:5:64","nodeType":"YulTypedName","src":"5045:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5055:9:64","nodeType":"YulTypedName","src":"5055:9:64","type":""}],"src":"5005:126:64"},{"body":{"nativeSrc":"5216:66:64","nodeType":"YulBlock","src":"5216:66:64","statements":[{"nativeSrc":"5226:50:64","nodeType":"YulAssignment","src":"5226:50:64","value":{"arguments":[{"name":"value","nativeSrc":"5270:5:64","nodeType":"YulIdentifier","src":"5270:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5239:30:64","nodeType":"YulIdentifier","src":"5239:30:64"},"nativeSrc":"5239:37:64","nodeType":"YulFunctionCall","src":"5239:37:64"},"variableNames":[{"name":"converted","nativeSrc":"5226:9:64","nodeType":"YulIdentifier","src":"5226:9:64"}]}]},"name":"convert_t_contract$_Validator_$19130_to_t_address","nativeSrc":"5137:145:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5196:5:64","nodeType":"YulTypedName","src":"5196:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5206:9:64","nodeType":"YulTypedName","src":"5206:9:64","type":""}],"src":"5137:145:64"},{"body":{"nativeSrc":"5372:85:64","nodeType":"YulBlock","src":"5372:85:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5389:3:64","nodeType":"YulIdentifier","src":"5389:3:64"},{"arguments":[{"name":"value","nativeSrc":"5444:5:64","nodeType":"YulIdentifier","src":"5444:5:64"}],"functionName":{"name":"convert_t_contract$_Validator_$19130_to_t_address","nativeSrc":"5394:49:64","nodeType":"YulIdentifier","src":"5394:49:64"},"nativeSrc":"5394:56:64","nodeType":"YulFunctionCall","src":"5394:56:64"}],"functionName":{"name":"mstore","nativeSrc":"5382:6:64","nodeType":"YulIdentifier","src":"5382:6:64"},"nativeSrc":"5382:69:64","nodeType":"YulFunctionCall","src":"5382:69:64"},"nativeSrc":"5382:69:64","nodeType":"YulExpressionStatement","src":"5382:69:64"}]},"name":"abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack","nativeSrc":"5288:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5360:5:64","nodeType":"YulTypedName","src":"5360:5:64","type":""},{"name":"pos","nativeSrc":"5367:3:64","nodeType":"YulTypedName","src":"5367:3:64","type":""}],"src":"5288:169:64"},{"body":{"nativeSrc":"5580:143:64","nodeType":"YulBlock","src":"5580:143:64","statements":[{"nativeSrc":"5590:26:64","nodeType":"YulAssignment","src":"5590:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5602:9:64","nodeType":"YulIdentifier","src":"5602:9:64"},{"kind":"number","nativeSrc":"5613:2:64","nodeType":"YulLiteral","src":"5613:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5598:3:64","nodeType":"YulIdentifier","src":"5598:3:64"},"nativeSrc":"5598:18:64","nodeType":"YulFunctionCall","src":"5598:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5590:4:64","nodeType":"YulIdentifier","src":"5590:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5689:6:64","nodeType":"YulIdentifier","src":"5689:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"5702:9:64","nodeType":"YulIdentifier","src":"5702:9:64"},{"kind":"number","nativeSrc":"5713:1:64","nodeType":"YulLiteral","src":"5713:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5698:3:64","nodeType":"YulIdentifier","src":"5698:3:64"},"nativeSrc":"5698:17:64","nodeType":"YulFunctionCall","src":"5698:17:64"}],"functionName":{"name":"abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack","nativeSrc":"5626:62:64","nodeType":"YulIdentifier","src":"5626:62:64"},"nativeSrc":"5626:90:64","nodeType":"YulFunctionCall","src":"5626:90:64"},"nativeSrc":"5626:90:64","nodeType":"YulExpressionStatement","src":"5626:90:64"}]},"name":"abi_encode_tuple_t_contract$_Validator_$19130__to_t_address__fromStack_reversed","nativeSrc":"5463:260:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5552:9:64","nodeType":"YulTypedName","src":"5552:9:64","type":""},{"name":"value0","nativeSrc":"5564:6:64","nodeType":"YulTypedName","src":"5564:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5575:4:64","nodeType":"YulTypedName","src":"5575:4:64","type":""}],"src":"5463:260:64"},{"body":{"nativeSrc":"5774:32:64","nodeType":"YulBlock","src":"5774:32:64","statements":[{"nativeSrc":"5784:16:64","nodeType":"YulAssignment","src":"5784:16:64","value":{"name":"value","nativeSrc":"5795:5:64","nodeType":"YulIdentifier","src":"5795:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5784:7:64","nodeType":"YulIdentifier","src":"5784:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5729:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5756:5:64","nodeType":"YulTypedName","src":"5756:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5766:7:64","nodeType":"YulTypedName","src":"5766:7:64","type":""}],"src":"5729:77:64"},{"body":{"nativeSrc":"5877:53:64","nodeType":"YulBlock","src":"5877:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5894:3:64","nodeType":"YulIdentifier","src":"5894:3:64"},{"arguments":[{"name":"value","nativeSrc":"5917:5:64","nodeType":"YulIdentifier","src":"5917:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5899:17:64","nodeType":"YulIdentifier","src":"5899:17:64"},"nativeSrc":"5899:24:64","nodeType":"YulFunctionCall","src":"5899:24:64"}],"functionName":{"name":"mstore","nativeSrc":"5887:6:64","nodeType":"YulIdentifier","src":"5887:6:64"},"nativeSrc":"5887:37:64","nodeType":"YulFunctionCall","src":"5887:37:64"},"nativeSrc":"5887:37:64","nodeType":"YulExpressionStatement","src":"5887:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5812:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5865:5:64","nodeType":"YulTypedName","src":"5865:5:64","type":""},{"name":"pos","nativeSrc":"5872:3:64","nodeType":"YulTypedName","src":"5872:3:64","type":""}],"src":"5812:118:64"},{"body":{"nativeSrc":"6034:124:64","nodeType":"YulBlock","src":"6034:124:64","statements":[{"nativeSrc":"6044:26:64","nodeType":"YulAssignment","src":"6044:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6056:9:64","nodeType":"YulIdentifier","src":"6056:9:64"},{"kind":"number","nativeSrc":"6067:2:64","nodeType":"YulLiteral","src":"6067:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6052:3:64","nodeType":"YulIdentifier","src":"6052:3:64"},"nativeSrc":"6052:18:64","nodeType":"YulFunctionCall","src":"6052:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6044:4:64","nodeType":"YulIdentifier","src":"6044:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6124:6:64","nodeType":"YulIdentifier","src":"6124:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6137:9:64","nodeType":"YulIdentifier","src":"6137:9:64"},{"kind":"number","nativeSrc":"6148:1:64","nodeType":"YulLiteral","src":"6148:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6133:3:64","nodeType":"YulIdentifier","src":"6133:3:64"},"nativeSrc":"6133:17:64","nodeType":"YulFunctionCall","src":"6133:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6080:43:64","nodeType":"YulIdentifier","src":"6080:43:64"},"nativeSrc":"6080:71:64","nodeType":"YulFunctionCall","src":"6080:71:64"},"nativeSrc":"6080:71:64","nodeType":"YulExpressionStatement","src":"6080:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"5936:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6006:9:64","nodeType":"YulTypedName","src":"6006:9:64","type":""},{"name":"value0","nativeSrc":"6018:6:64","nodeType":"YulTypedName","src":"6018:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6029:4:64","nodeType":"YulTypedName","src":"6029:4:64","type":""}],"src":"5936:222:64"},{"body":{"nativeSrc":"6209:51:64","nodeType":"YulBlock","src":"6209:51:64","statements":[{"nativeSrc":"6219:35:64","nodeType":"YulAssignment","src":"6219:35:64","value":{"arguments":[{"name":"value","nativeSrc":"6248:5:64","nodeType":"YulIdentifier","src":"6248:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"6230:17:64","nodeType":"YulIdentifier","src":"6230:17:64"},"nativeSrc":"6230:24:64","nodeType":"YulFunctionCall","src":"6230:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"6219:7:64","nodeType":"YulIdentifier","src":"6219:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"6164:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6191:5:64","nodeType":"YulTypedName","src":"6191:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6201:7:64","nodeType":"YulTypedName","src":"6201:7:64","type":""}],"src":"6164:96:64"},{"body":{"nativeSrc":"6331:53:64","nodeType":"YulBlock","src":"6331:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6348:3:64","nodeType":"YulIdentifier","src":"6348:3:64"},{"arguments":[{"name":"value","nativeSrc":"6371:5:64","nodeType":"YulIdentifier","src":"6371:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6353:17:64","nodeType":"YulIdentifier","src":"6353:17:64"},"nativeSrc":"6353:24:64","nodeType":"YulFunctionCall","src":"6353:24:64"}],"functionName":{"name":"mstore","nativeSrc":"6341:6:64","nodeType":"YulIdentifier","src":"6341:6:64"},"nativeSrc":"6341:37:64","nodeType":"YulFunctionCall","src":"6341:37:64"},"nativeSrc":"6341:37:64","nodeType":"YulExpressionStatement","src":"6341:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6266:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6319:5:64","nodeType":"YulTypedName","src":"6319:5:64","type":""},{"name":"pos","nativeSrc":"6326:3:64","nodeType":"YulTypedName","src":"6326:3:64","type":""}],"src":"6266:118:64"},{"body":{"nativeSrc":"6488:124:64","nodeType":"YulBlock","src":"6488:124:64","statements":[{"nativeSrc":"6498:26:64","nodeType":"YulAssignment","src":"6498:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6510:9:64","nodeType":"YulIdentifier","src":"6510:9:64"},{"kind":"number","nativeSrc":"6521:2:64","nodeType":"YulLiteral","src":"6521:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6506:3:64","nodeType":"YulIdentifier","src":"6506:3:64"},"nativeSrc":"6506:18:64","nodeType":"YulFunctionCall","src":"6506:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6498:4:64","nodeType":"YulIdentifier","src":"6498:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6578:6:64","nodeType":"YulIdentifier","src":"6578:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6591:9:64","nodeType":"YulIdentifier","src":"6591:9:64"},{"kind":"number","nativeSrc":"6602:1:64","nodeType":"YulLiteral","src":"6602:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6587:3:64","nodeType":"YulIdentifier","src":"6587:3:64"},"nativeSrc":"6587:17:64","nodeType":"YulFunctionCall","src":"6587:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6534:43:64","nodeType":"YulIdentifier","src":"6534:43:64"},"nativeSrc":"6534:71:64","nodeType":"YulFunctionCall","src":"6534:71:64"},"nativeSrc":"6534:71:64","nodeType":"YulExpressionStatement","src":"6534:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6390:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6460:9:64","nodeType":"YulTypedName","src":"6460:9:64","type":""},{"name":"value0","nativeSrc":"6472:6:64","nodeType":"YulTypedName","src":"6472:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6483:4:64","nodeType":"YulTypedName","src":"6483:4:64","type":""}],"src":"6390:222:64"},{"body":{"nativeSrc":"6661:79:64","nodeType":"YulBlock","src":"6661:79:64","statements":[{"body":{"nativeSrc":"6718:16:64","nodeType":"YulBlock","src":"6718:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6727:1:64","nodeType":"YulLiteral","src":"6727:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6730:1:64","nodeType":"YulLiteral","src":"6730:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6720:6:64","nodeType":"YulIdentifier","src":"6720:6:64"},"nativeSrc":"6720:12:64","nodeType":"YulFunctionCall","src":"6720:12:64"},"nativeSrc":"6720:12:64","nodeType":"YulExpressionStatement","src":"6720:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6684:5:64","nodeType":"YulIdentifier","src":"6684:5:64"},{"arguments":[{"name":"value","nativeSrc":"6709:5:64","nodeType":"YulIdentifier","src":"6709:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6691:17:64","nodeType":"YulIdentifier","src":"6691:17:64"},"nativeSrc":"6691:24:64","nodeType":"YulFunctionCall","src":"6691:24:64"}],"functionName":{"name":"eq","nativeSrc":"6681:2:64","nodeType":"YulIdentifier","src":"6681:2:64"},"nativeSrc":"6681:35:64","nodeType":"YulFunctionCall","src":"6681:35:64"}],"functionName":{"name":"iszero","nativeSrc":"6674:6:64","nodeType":"YulIdentifier","src":"6674:6:64"},"nativeSrc":"6674:43:64","nodeType":"YulFunctionCall","src":"6674:43:64"},"nativeSrc":"6671:63:64","nodeType":"YulIf","src":"6671:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"6618:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6654:5:64","nodeType":"YulTypedName","src":"6654:5:64","type":""}],"src":"6618:122:64"},{"body":{"nativeSrc":"6798:87:64","nodeType":"YulBlock","src":"6798:87:64","statements":[{"nativeSrc":"6808:29:64","nodeType":"YulAssignment","src":"6808:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6830:6:64","nodeType":"YulIdentifier","src":"6830:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6817:12:64","nodeType":"YulIdentifier","src":"6817:12:64"},"nativeSrc":"6817:20:64","nodeType":"YulFunctionCall","src":"6817:20:64"},"variableNames":[{"name":"value","nativeSrc":"6808:5:64","nodeType":"YulIdentifier","src":"6808:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6873:5:64","nodeType":"YulIdentifier","src":"6873:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6846:26:64","nodeType":"YulIdentifier","src":"6846:26:64"},"nativeSrc":"6846:33:64","nodeType":"YulFunctionCall","src":"6846:33:64"},"nativeSrc":"6846:33:64","nodeType":"YulExpressionStatement","src":"6846:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"6746:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6776:6:64","nodeType":"YulTypedName","src":"6776:6:64","type":""},{"name":"end","nativeSrc":"6784:3:64","nodeType":"YulTypedName","src":"6784:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6792:5:64","nodeType":"YulTypedName","src":"6792:5:64","type":""}],"src":"6746:139:64"},{"body":{"nativeSrc":"6957:263:64","nodeType":"YulBlock","src":"6957:263:64","statements":[{"body":{"nativeSrc":"7003:83:64","nodeType":"YulBlock","src":"7003:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7005:77:64","nodeType":"YulIdentifier","src":"7005:77:64"},"nativeSrc":"7005:79:64","nodeType":"YulFunctionCall","src":"7005:79:64"},"nativeSrc":"7005:79:64","nodeType":"YulExpressionStatement","src":"7005:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6978:7:64","nodeType":"YulIdentifier","src":"6978:7:64"},{"name":"headStart","nativeSrc":"6987:9:64","nodeType":"YulIdentifier","src":"6987:9:64"}],"functionName":{"name":"sub","nativeSrc":"6974:3:64","nodeType":"YulIdentifier","src":"6974:3:64"},"nativeSrc":"6974:23:64","nodeType":"YulFunctionCall","src":"6974:23:64"},{"kind":"number","nativeSrc":"6999:2:64","nodeType":"YulLiteral","src":"6999:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6970:3:64","nodeType":"YulIdentifier","src":"6970:3:64"},"nativeSrc":"6970:32:64","nodeType":"YulFunctionCall","src":"6970:32:64"},"nativeSrc":"6967:119:64","nodeType":"YulIf","src":"6967:119:64"},{"nativeSrc":"7096:117:64","nodeType":"YulBlock","src":"7096:117:64","statements":[{"nativeSrc":"7111:15:64","nodeType":"YulVariableDeclaration","src":"7111:15:64","value":{"kind":"number","nativeSrc":"7125:1:64","nodeType":"YulLiteral","src":"7125:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7115:6:64","nodeType":"YulTypedName","src":"7115:6:64","type":""}]},{"nativeSrc":"7140:63:64","nodeType":"YulAssignment","src":"7140:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7175:9:64","nodeType":"YulIdentifier","src":"7175:9:64"},{"name":"offset","nativeSrc":"7186:6:64","nodeType":"YulIdentifier","src":"7186:6:64"}],"functionName":{"name":"add","nativeSrc":"7171:3:64","nodeType":"YulIdentifier","src":"7171:3:64"},"nativeSrc":"7171:22:64","nodeType":"YulFunctionCall","src":"7171:22:64"},{"name":"dataEnd","nativeSrc":"7195:7:64","nodeType":"YulIdentifier","src":"7195:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7150:20:64","nodeType":"YulIdentifier","src":"7150:20:64"},"nativeSrc":"7150:53:64","nodeType":"YulFunctionCall","src":"7150:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7140:6:64","nodeType":"YulIdentifier","src":"7140:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6891:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6927:9:64","nodeType":"YulTypedName","src":"6927:9:64","type":""},{"name":"dataEnd","nativeSrc":"6938:7:64","nodeType":"YulTypedName","src":"6938:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6950:6:64","nodeType":"YulTypedName","src":"6950:6:64","type":""}],"src":"6891:329:64"},{"body":{"nativeSrc":"7342:193:64","nodeType":"YulBlock","src":"7342:193:64","statements":[{"nativeSrc":"7352:26:64","nodeType":"YulAssignment","src":"7352:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"7364:9:64","nodeType":"YulIdentifier","src":"7364:9:64"},{"kind":"number","nativeSrc":"7375:2:64","nodeType":"YulLiteral","src":"7375:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7360:3:64","nodeType":"YulIdentifier","src":"7360:3:64"},"nativeSrc":"7360:18:64","nodeType":"YulFunctionCall","src":"7360:18:64"},"variableNames":[{"name":"tail","nativeSrc":"7352:4:64","nodeType":"YulIdentifier","src":"7352:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7399:9:64","nodeType":"YulIdentifier","src":"7399:9:64"},{"kind":"number","nativeSrc":"7410:1:64","nodeType":"YulLiteral","src":"7410:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7395:3:64","nodeType":"YulIdentifier","src":"7395:3:64"},"nativeSrc":"7395:17:64","nodeType":"YulFunctionCall","src":"7395:17:64"},{"arguments":[{"name":"tail","nativeSrc":"7418:4:64","nodeType":"YulIdentifier","src":"7418:4:64"},{"name":"headStart","nativeSrc":"7424:9:64","nodeType":"YulIdentifier","src":"7424:9:64"}],"functionName":{"name":"sub","nativeSrc":"7414:3:64","nodeType":"YulIdentifier","src":"7414:3:64"},"nativeSrc":"7414:20:64","nodeType":"YulFunctionCall","src":"7414:20:64"}],"functionName":{"name":"mstore","nativeSrc":"7388:6:64","nodeType":"YulIdentifier","src":"7388:6:64"},"nativeSrc":"7388:47:64","nodeType":"YulFunctionCall","src":"7388:47:64"},"nativeSrc":"7388:47:64","nodeType":"YulExpressionStatement","src":"7388:47:64"},{"nativeSrc":"7444:84:64","nodeType":"YulAssignment","src":"7444:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"7514:6:64","nodeType":"YulIdentifier","src":"7514:6:64"},{"name":"tail","nativeSrc":"7523:4:64","nodeType":"YulIdentifier","src":"7523:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"7452:61:64","nodeType":"YulIdentifier","src":"7452:61:64"},"nativeSrc":"7452:76:64","nodeType":"YulFunctionCall","src":"7452:76:64"},"variableNames":[{"name":"tail","nativeSrc":"7444:4:64","nodeType":"YulIdentifier","src":"7444:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"7226:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7314:9:64","nodeType":"YulTypedName","src":"7314:9:64","type":""},{"name":"value0","nativeSrc":"7326:6:64","nodeType":"YulTypedName","src":"7326:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7337:4:64","nodeType":"YulTypedName","src":"7337:4:64","type":""}],"src":"7226:309:64"},{"body":{"nativeSrc":"7584:79:64","nodeType":"YulBlock","src":"7584:79:64","statements":[{"body":{"nativeSrc":"7641:16:64","nodeType":"YulBlock","src":"7641:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7650:1:64","nodeType":"YulLiteral","src":"7650:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7653:1:64","nodeType":"YulLiteral","src":"7653:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7643:6:64","nodeType":"YulIdentifier","src":"7643:6:64"},"nativeSrc":"7643:12:64","nodeType":"YulFunctionCall","src":"7643:12:64"},"nativeSrc":"7643:12:64","nodeType":"YulExpressionStatement","src":"7643:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7607:5:64","nodeType":"YulIdentifier","src":"7607:5:64"},{"arguments":[{"name":"value","nativeSrc":"7632:5:64","nodeType":"YulIdentifier","src":"7632:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7614:17:64","nodeType":"YulIdentifier","src":"7614:17:64"},"nativeSrc":"7614:24:64","nodeType":"YulFunctionCall","src":"7614:24:64"}],"functionName":{"name":"eq","nativeSrc":"7604:2:64","nodeType":"YulIdentifier","src":"7604:2:64"},"nativeSrc":"7604:35:64","nodeType":"YulFunctionCall","src":"7604:35:64"}],"functionName":{"name":"iszero","nativeSrc":"7597:6:64","nodeType":"YulIdentifier","src":"7597:6:64"},"nativeSrc":"7597:43:64","nodeType":"YulFunctionCall","src":"7597:43:64"},"nativeSrc":"7594:63:64","nodeType":"YulIf","src":"7594:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"7541:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7577:5:64","nodeType":"YulTypedName","src":"7577:5:64","type":""}],"src":"7541:122:64"},{"body":{"nativeSrc":"7721:87:64","nodeType":"YulBlock","src":"7721:87:64","statements":[{"nativeSrc":"7731:29:64","nodeType":"YulAssignment","src":"7731:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7753:6:64","nodeType":"YulIdentifier","src":"7753:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7740:12:64","nodeType":"YulIdentifier","src":"7740:12:64"},"nativeSrc":"7740:20:64","nodeType":"YulFunctionCall","src":"7740:20:64"},"variableNames":[{"name":"value","nativeSrc":"7731:5:64","nodeType":"YulIdentifier","src":"7731:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7796:5:64","nodeType":"YulIdentifier","src":"7796:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7769:26:64","nodeType":"YulIdentifier","src":"7769:26:64"},"nativeSrc":"7769:33:64","nodeType":"YulFunctionCall","src":"7769:33:64"},"nativeSrc":"7769:33:64","nodeType":"YulExpressionStatement","src":"7769:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"7669:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7699:6:64","nodeType":"YulTypedName","src":"7699:6:64","type":""},{"name":"end","nativeSrc":"7707:3:64","nodeType":"YulTypedName","src":"7707:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7715:5:64","nodeType":"YulTypedName","src":"7715:5:64","type":""}],"src":"7669:139:64"},{"body":{"nativeSrc":"7880:263:64","nodeType":"YulBlock","src":"7880:263:64","statements":[{"body":{"nativeSrc":"7926:83:64","nodeType":"YulBlock","src":"7926:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7928:77:64","nodeType":"YulIdentifier","src":"7928:77:64"},"nativeSrc":"7928:79:64","nodeType":"YulFunctionCall","src":"7928:79:64"},"nativeSrc":"7928:79:64","nodeType":"YulExpressionStatement","src":"7928:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7901:7:64","nodeType":"YulIdentifier","src":"7901:7:64"},{"name":"headStart","nativeSrc":"7910:9:64","nodeType":"YulIdentifier","src":"7910:9:64"}],"functionName":{"name":"sub","nativeSrc":"7897:3:64","nodeType":"YulIdentifier","src":"7897:3:64"},"nativeSrc":"7897:23:64","nodeType":"YulFunctionCall","src":"7897:23:64"},{"kind":"number","nativeSrc":"7922:2:64","nodeType":"YulLiteral","src":"7922:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7893:3:64","nodeType":"YulIdentifier","src":"7893:3:64"},"nativeSrc":"7893:32:64","nodeType":"YulFunctionCall","src":"7893:32:64"},"nativeSrc":"7890:119:64","nodeType":"YulIf","src":"7890:119:64"},{"nativeSrc":"8019:117:64","nodeType":"YulBlock","src":"8019:117:64","statements":[{"nativeSrc":"8034:15:64","nodeType":"YulVariableDeclaration","src":"8034:15:64","value":{"kind":"number","nativeSrc":"8048:1:64","nodeType":"YulLiteral","src":"8048:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8038:6:64","nodeType":"YulTypedName","src":"8038:6:64","type":""}]},{"nativeSrc":"8063:63:64","nodeType":"YulAssignment","src":"8063:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8098:9:64","nodeType":"YulIdentifier","src":"8098:9:64"},{"name":"offset","nativeSrc":"8109:6:64","nodeType":"YulIdentifier","src":"8109:6:64"}],"functionName":{"name":"add","nativeSrc":"8094:3:64","nodeType":"YulIdentifier","src":"8094:3:64"},"nativeSrc":"8094:22:64","nodeType":"YulFunctionCall","src":"8094:22:64"},{"name":"dataEnd","nativeSrc":"8118:7:64","nodeType":"YulIdentifier","src":"8118:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8073:20:64","nodeType":"YulIdentifier","src":"8073:20:64"},"nativeSrc":"8073:53:64","nodeType":"YulFunctionCall","src":"8073:53:64"},"variableNames":[{"name":"value0","nativeSrc":"8063:6:64","nodeType":"YulIdentifier","src":"8063:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7814:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7850:9:64","nodeType":"YulTypedName","src":"7850:9:64","type":""},{"name":"dataEnd","nativeSrc":"7861:7:64","nodeType":"YulTypedName","src":"7861:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7873:6:64","nodeType":"YulTypedName","src":"7873:6:64","type":""}],"src":"7814:329:64"},{"body":{"nativeSrc":"8238:28:64","nodeType":"YulBlock","src":"8238:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8255:1:64","nodeType":"YulLiteral","src":"8255:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8258:1:64","nodeType":"YulLiteral","src":"8258:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8248:6:64","nodeType":"YulIdentifier","src":"8248:6:64"},"nativeSrc":"8248:12:64","nodeType":"YulFunctionCall","src":"8248:12:64"},"nativeSrc":"8248:12:64","nodeType":"YulExpressionStatement","src":"8248:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8149:117:64","nodeType":"YulFunctionDefinition","src":"8149:117:64"},{"body":{"nativeSrc":"8300:152:64","nodeType":"YulBlock","src":"8300:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8317:1:64","nodeType":"YulLiteral","src":"8317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8320:77:64","nodeType":"YulLiteral","src":"8320:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8310:6:64","nodeType":"YulIdentifier","src":"8310:6:64"},"nativeSrc":"8310:88:64","nodeType":"YulFunctionCall","src":"8310:88:64"},"nativeSrc":"8310:88:64","nodeType":"YulExpressionStatement","src":"8310:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8414:1:64","nodeType":"YulLiteral","src":"8414:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8417:4:64","nodeType":"YulLiteral","src":"8417:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8407:6:64","nodeType":"YulIdentifier","src":"8407:6:64"},"nativeSrc":"8407:15:64","nodeType":"YulFunctionCall","src":"8407:15:64"},"nativeSrc":"8407:15:64","nodeType":"YulExpressionStatement","src":"8407:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8438:1:64","nodeType":"YulLiteral","src":"8438:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8441:4:64","nodeType":"YulLiteral","src":"8441:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8431:6:64","nodeType":"YulIdentifier","src":"8431:6:64"},"nativeSrc":"8431:15:64","nodeType":"YulFunctionCall","src":"8431:15:64"},"nativeSrc":"8431:15:64","nodeType":"YulExpressionStatement","src":"8431:15:64"}]},"name":"panic_error_0x41","nativeSrc":"8272:180:64","nodeType":"YulFunctionDefinition","src":"8272:180:64"},{"body":{"nativeSrc":"8501:238:64","nodeType":"YulBlock","src":"8501:238:64","statements":[{"nativeSrc":"8511:58:64","nodeType":"YulVariableDeclaration","src":"8511:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"8533:6:64","nodeType":"YulIdentifier","src":"8533:6:64"},{"arguments":[{"name":"size","nativeSrc":"8563:4:64","nodeType":"YulIdentifier","src":"8563:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8541:21:64","nodeType":"YulIdentifier","src":"8541:21:64"},"nativeSrc":"8541:27:64","nodeType":"YulFunctionCall","src":"8541:27:64"}],"functionName":{"name":"add","nativeSrc":"8529:3:64","nodeType":"YulIdentifier","src":"8529:3:64"},"nativeSrc":"8529:40:64","nodeType":"YulFunctionCall","src":"8529:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"8515:10:64","nodeType":"YulTypedName","src":"8515:10:64","type":""}]},{"body":{"nativeSrc":"8680:22:64","nodeType":"YulBlock","src":"8680:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8682:16:64","nodeType":"YulIdentifier","src":"8682:16:64"},"nativeSrc":"8682:18:64","nodeType":"YulFunctionCall","src":"8682:18:64"},"nativeSrc":"8682:18:64","nodeType":"YulExpressionStatement","src":"8682:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8623:10:64","nodeType":"YulIdentifier","src":"8623:10:64"},{"kind":"number","nativeSrc":"8635:18:64","nodeType":"YulLiteral","src":"8635:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8620:2:64","nodeType":"YulIdentifier","src":"8620:2:64"},"nativeSrc":"8620:34:64","nodeType":"YulFunctionCall","src":"8620:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8659:10:64","nodeType":"YulIdentifier","src":"8659:10:64"},{"name":"memPtr","nativeSrc":"8671:6:64","nodeType":"YulIdentifier","src":"8671:6:64"}],"functionName":{"name":"lt","nativeSrc":"8656:2:64","nodeType":"YulIdentifier","src":"8656:2:64"},"nativeSrc":"8656:22:64","nodeType":"YulFunctionCall","src":"8656:22:64"}],"functionName":{"name":"or","nativeSrc":"8617:2:64","nodeType":"YulIdentifier","src":"8617:2:64"},"nativeSrc":"8617:62:64","nodeType":"YulFunctionCall","src":"8617:62:64"},"nativeSrc":"8614:88:64","nodeType":"YulIf","src":"8614:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8718:2:64","nodeType":"YulLiteral","src":"8718:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8722:10:64","nodeType":"YulIdentifier","src":"8722:10:64"}],"functionName":{"name":"mstore","nativeSrc":"8711:6:64","nodeType":"YulIdentifier","src":"8711:6:64"},"nativeSrc":"8711:22:64","nodeType":"YulFunctionCall","src":"8711:22:64"},"nativeSrc":"8711:22:64","nodeType":"YulExpressionStatement","src":"8711:22:64"}]},"name":"finalize_allocation","nativeSrc":"8458:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8487:6:64","nodeType":"YulTypedName","src":"8487:6:64","type":""},{"name":"size","nativeSrc":"8495:4:64","nodeType":"YulTypedName","src":"8495:4:64","type":""}],"src":"8458:281:64"},{"body":{"nativeSrc":"8786:88:64","nodeType":"YulBlock","src":"8786:88:64","statements":[{"nativeSrc":"8796:30:64","nodeType":"YulAssignment","src":"8796:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8806:18:64","nodeType":"YulIdentifier","src":"8806:18:64"},"nativeSrc":"8806:20:64","nodeType":"YulFunctionCall","src":"8806:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"8796:6:64","nodeType":"YulIdentifier","src":"8796:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8855:6:64","nodeType":"YulIdentifier","src":"8855:6:64"},{"name":"size","nativeSrc":"8863:4:64","nodeType":"YulIdentifier","src":"8863:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8835:19:64","nodeType":"YulIdentifier","src":"8835:19:64"},"nativeSrc":"8835:33:64","nodeType":"YulFunctionCall","src":"8835:33:64"},"nativeSrc":"8835:33:64","nodeType":"YulExpressionStatement","src":"8835:33:64"}]},"name":"allocate_memory","nativeSrc":"8745:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8770:4:64","nodeType":"YulTypedName","src":"8770:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8779:6:64","nodeType":"YulTypedName","src":"8779:6:64","type":""}],"src":"8745:129:64"},{"body":{"nativeSrc":"8969:28:64","nodeType":"YulBlock","src":"8969:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8986:1:64","nodeType":"YulLiteral","src":"8986:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8989:1:64","nodeType":"YulLiteral","src":"8989:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8979:6:64","nodeType":"YulIdentifier","src":"8979:6:64"},"nativeSrc":"8979:12:64","nodeType":"YulFunctionCall","src":"8979:12:64"},"nativeSrc":"8979:12:64","nodeType":"YulExpressionStatement","src":"8979:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8880:117:64","nodeType":"YulFunctionDefinition","src":"8880:117:64"},{"body":{"nativeSrc":"9129:825:64","nodeType":"YulBlock","src":"9129:825:64","statements":[{"body":{"nativeSrc":"9173:83:64","nodeType":"YulBlock","src":"9173:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9175:77:64","nodeType":"YulIdentifier","src":"9175:77:64"},"nativeSrc":"9175:79:64","nodeType":"YulFunctionCall","src":"9175:79:64"},"nativeSrc":"9175:79:64","nodeType":"YulExpressionStatement","src":"9175:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9150:3:64","nodeType":"YulIdentifier","src":"9150:3:64"},{"name":"headStart","nativeSrc":"9155:9:64","nodeType":"YulIdentifier","src":"9155:9:64"}],"functionName":{"name":"sub","nativeSrc":"9146:3:64","nodeType":"YulIdentifier","src":"9146:3:64"},"nativeSrc":"9146:19:64","nodeType":"YulFunctionCall","src":"9146:19:64"},{"kind":"number","nativeSrc":"9167:4:64","nodeType":"YulLiteral","src":"9167:4:64","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"9142:3:64","nodeType":"YulIdentifier","src":"9142:3:64"},"nativeSrc":"9142:30:64","nodeType":"YulFunctionCall","src":"9142:30:64"},"nativeSrc":"9139:117:64","nodeType":"YulIf","src":"9139:117:64"},{"nativeSrc":"9265:30:64","nodeType":"YulAssignment","src":"9265:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"9290:4:64","nodeType":"YulLiteral","src":"9290:4:64","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"9274:15:64","nodeType":"YulIdentifier","src":"9274:15:64"},"nativeSrc":"9274:21:64","nodeType":"YulFunctionCall","src":"9274:21:64"},"variableNames":[{"name":"value","nativeSrc":"9265:5:64","nodeType":"YulIdentifier","src":"9265:5:64"}]},{"nativeSrc":"9305:153:64","nodeType":"YulBlock","src":"9305:153:64","statements":[{"nativeSrc":"9343:15:64","nodeType":"YulVariableDeclaration","src":"9343:15:64","value":{"kind":"number","nativeSrc":"9357:1:64","nodeType":"YulLiteral","src":"9357:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9347:6:64","nodeType":"YulTypedName","src":"9347:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9383:5:64","nodeType":"YulIdentifier","src":"9383:5:64"},{"kind":"number","nativeSrc":"9390:4:64","nodeType":"YulLiteral","src":"9390:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9379:3:64","nodeType":"YulIdentifier","src":"9379:3:64"},"nativeSrc":"9379:16:64","nodeType":"YulFunctionCall","src":"9379:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9422:9:64","nodeType":"YulIdentifier","src":"9422:9:64"},{"name":"offset","nativeSrc":"9433:6:64","nodeType":"YulIdentifier","src":"9433:6:64"}],"functionName":{"name":"add","nativeSrc":"9418:3:64","nodeType":"YulIdentifier","src":"9418:3:64"},"nativeSrc":"9418:22:64","nodeType":"YulFunctionCall","src":"9418:22:64"},{"name":"end","nativeSrc":"9442:3:64","nodeType":"YulIdentifier","src":"9442:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9397:20:64","nodeType":"YulIdentifier","src":"9397:20:64"},"nativeSrc":"9397:49:64","nodeType":"YulFunctionCall","src":"9397:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9372:6:64","nodeType":"YulIdentifier","src":"9372:6:64"},"nativeSrc":"9372:75:64","nodeType":"YulFunctionCall","src":"9372:75:64"},"nativeSrc":"9372:75:64","nodeType":"YulExpressionStatement","src":"9372:75:64"}]},{"nativeSrc":"9468:153:64","nodeType":"YulBlock","src":"9468:153:64","statements":[{"nativeSrc":"9505:16:64","nodeType":"YulVariableDeclaration","src":"9505:16:64","value":{"kind":"number","nativeSrc":"9519:2:64","nodeType":"YulLiteral","src":"9519:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9509:6:64","nodeType":"YulTypedName","src":"9509:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9546:5:64","nodeType":"YulIdentifier","src":"9546:5:64"},{"kind":"number","nativeSrc":"9553:4:64","nodeType":"YulLiteral","src":"9553:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9542:3:64","nodeType":"YulIdentifier","src":"9542:3:64"},"nativeSrc":"9542:16:64","nodeType":"YulFunctionCall","src":"9542:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9585:9:64","nodeType":"YulIdentifier","src":"9585:9:64"},{"name":"offset","nativeSrc":"9596:6:64","nodeType":"YulIdentifier","src":"9596:6:64"}],"functionName":{"name":"add","nativeSrc":"9581:3:64","nodeType":"YulIdentifier","src":"9581:3:64"},"nativeSrc":"9581:22:64","nodeType":"YulFunctionCall","src":"9581:22:64"},{"name":"end","nativeSrc":"9605:3:64","nodeType":"YulIdentifier","src":"9605:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9560:20:64","nodeType":"YulIdentifier","src":"9560:20:64"},"nativeSrc":"9560:49:64","nodeType":"YulFunctionCall","src":"9560:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9535:6:64","nodeType":"YulIdentifier","src":"9535:6:64"},"nativeSrc":"9535:75:64","nodeType":"YulFunctionCall","src":"9535:75:64"},"nativeSrc":"9535:75:64","nodeType":"YulExpressionStatement","src":"9535:75:64"}]},{"nativeSrc":"9631:154:64","nodeType":"YulBlock","src":"9631:154:64","statements":[{"nativeSrc":"9670:16:64","nodeType":"YulVariableDeclaration","src":"9670:16:64","value":{"kind":"number","nativeSrc":"9684:2:64","nodeType":"YulLiteral","src":"9684:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9674:6:64","nodeType":"YulTypedName","src":"9674:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9711:5:64","nodeType":"YulIdentifier","src":"9711:5:64"},{"kind":"number","nativeSrc":"9718:4:64","nodeType":"YulLiteral","src":"9718:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9707:3:64","nodeType":"YulIdentifier","src":"9707:3:64"},"nativeSrc":"9707:16:64","nodeType":"YulFunctionCall","src":"9707:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9749:9:64","nodeType":"YulIdentifier","src":"9749:9:64"},{"name":"offset","nativeSrc":"9760:6:64","nodeType":"YulIdentifier","src":"9760:6:64"}],"functionName":{"name":"add","nativeSrc":"9745:3:64","nodeType":"YulIdentifier","src":"9745:3:64"},"nativeSrc":"9745:22:64","nodeType":"YulFunctionCall","src":"9745:22:64"},{"name":"end","nativeSrc":"9769:3:64","nodeType":"YulIdentifier","src":"9769:3:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"9725:19:64","nodeType":"YulIdentifier","src":"9725:19:64"},"nativeSrc":"9725:48:64","nodeType":"YulFunctionCall","src":"9725:48:64"}],"functionName":{"name":"mstore","nativeSrc":"9700:6:64","nodeType":"YulIdentifier","src":"9700:6:64"},"nativeSrc":"9700:74:64","nodeType":"YulFunctionCall","src":"9700:74:64"},"nativeSrc":"9700:74:64","nodeType":"YulExpressionStatement","src":"9700:74:64"}]},{"nativeSrc":"9795:152:64","nodeType":"YulBlock","src":"9795:152:64","statements":[{"nativeSrc":"9831:16:64","nodeType":"YulVariableDeclaration","src":"9831:16:64","value":{"kind":"number","nativeSrc":"9845:2:64","nodeType":"YulLiteral","src":"9845:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"9835:6:64","nodeType":"YulTypedName","src":"9835:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9872:5:64","nodeType":"YulIdentifier","src":"9872:5:64"},{"kind":"number","nativeSrc":"9879:4:64","nodeType":"YulLiteral","src":"9879:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9868:3:64","nodeType":"YulIdentifier","src":"9868:3:64"},"nativeSrc":"9868:16:64","nodeType":"YulFunctionCall","src":"9868:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9911:9:64","nodeType":"YulIdentifier","src":"9911:9:64"},{"name":"offset","nativeSrc":"9922:6:64","nodeType":"YulIdentifier","src":"9922:6:64"}],"functionName":{"name":"add","nativeSrc":"9907:3:64","nodeType":"YulIdentifier","src":"9907:3:64"},"nativeSrc":"9907:22:64","nodeType":"YulFunctionCall","src":"9907:22:64"},{"name":"end","nativeSrc":"9931:3:64","nodeType":"YulIdentifier","src":"9931:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9886:20:64","nodeType":"YulIdentifier","src":"9886:20:64"},"nativeSrc":"9886:49:64","nodeType":"YulFunctionCall","src":"9886:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9861:6:64","nodeType":"YulIdentifier","src":"9861:6:64"},"nativeSrc":"9861:75:64","nodeType":"YulFunctionCall","src":"9861:75:64"},"nativeSrc":"9861:75:64","nodeType":"YulExpressionStatement","src":"9861:75:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$13134_memory_ptr","nativeSrc":"9044:910:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9104:9:64","nodeType":"YulTypedName","src":"9104:9:64","type":""},{"name":"end","nativeSrc":"9115:3:64","nodeType":"YulTypedName","src":"9115:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9123:5:64","nodeType":"YulTypedName","src":"9123:5:64","type":""}],"src":"9044:910:64"},{"body":{"nativeSrc":"10056:294:64","nodeType":"YulBlock","src":"10056:294:64","statements":[{"body":{"nativeSrc":"10103:83:64","nodeType":"YulBlock","src":"10103:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10105:77:64","nodeType":"YulIdentifier","src":"10105:77:64"},"nativeSrc":"10105:79:64","nodeType":"YulFunctionCall","src":"10105:79:64"},"nativeSrc":"10105:79:64","nodeType":"YulExpressionStatement","src":"10105:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10077:7:64","nodeType":"YulIdentifier","src":"10077:7:64"},{"name":"headStart","nativeSrc":"10086:9:64","nodeType":"YulIdentifier","src":"10086:9:64"}],"functionName":{"name":"sub","nativeSrc":"10073:3:64","nodeType":"YulIdentifier","src":"10073:3:64"},"nativeSrc":"10073:23:64","nodeType":"YulFunctionCall","src":"10073:23:64"},{"kind":"number","nativeSrc":"10098:3:64","nodeType":"YulLiteral","src":"10098:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"10069:3:64","nodeType":"YulIdentifier","src":"10069:3:64"},"nativeSrc":"10069:33:64","nodeType":"YulFunctionCall","src":"10069:33:64"},"nativeSrc":"10066:120:64","nodeType":"YulIf","src":"10066:120:64"},{"nativeSrc":"10196:147:64","nodeType":"YulBlock","src":"10196:147:64","statements":[{"nativeSrc":"10211:15:64","nodeType":"YulVariableDeclaration","src":"10211:15:64","value":{"kind":"number","nativeSrc":"10225:1:64","nodeType":"YulLiteral","src":"10225:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10215:6:64","nodeType":"YulTypedName","src":"10215:6:64","type":""}]},{"nativeSrc":"10240:93:64","nodeType":"YulAssignment","src":"10240:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10305:9:64","nodeType":"YulIdentifier","src":"10305:9:64"},{"name":"offset","nativeSrc":"10316:6:64","nodeType":"YulIdentifier","src":"10316:6:64"}],"functionName":{"name":"add","nativeSrc":"10301:3:64","nodeType":"YulIdentifier","src":"10301:3:64"},"nativeSrc":"10301:22:64","nodeType":"YulFunctionCall","src":"10301:22:64"},{"name":"dataEnd","nativeSrc":"10325:7:64","nodeType":"YulIdentifier","src":"10325:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$13134_memory_ptr","nativeSrc":"10250:50:64","nodeType":"YulIdentifier","src":"10250:50:64"},"nativeSrc":"10250:83:64","nodeType":"YulFunctionCall","src":"10250:83:64"},"variableNames":[{"name":"value0","nativeSrc":"10240:6:64","nodeType":"YulIdentifier","src":"10240:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$13134_memory_ptr","nativeSrc":"9960:390:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10026:9:64","nodeType":"YulTypedName","src":"10026:9:64","type":""},{"name":"dataEnd","nativeSrc":"10037:7:64","nodeType":"YulTypedName","src":"10037:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10049:6:64","nodeType":"YulTypedName","src":"10049:6:64","type":""}],"src":"9960:390:64"},{"body":{"nativeSrc":"10409:51:64","nodeType":"YulBlock","src":"10409:51:64","statements":[{"nativeSrc":"10419:35:64","nodeType":"YulAssignment","src":"10419:35:64","value":{"arguments":[{"name":"value","nativeSrc":"10448:5:64","nodeType":"YulIdentifier","src":"10448:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"10430:17:64","nodeType":"YulIdentifier","src":"10430:17:64"},"nativeSrc":"10430:24:64","nodeType":"YulFunctionCall","src":"10430:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"10419:7:64","nodeType":"YulIdentifier","src":"10419:7:64"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"10356:104:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10391:5:64","nodeType":"YulTypedName","src":"10391:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10401:7:64","nodeType":"YulTypedName","src":"10401:7:64","type":""}],"src":"10356:104:64"},{"body":{"nativeSrc":"10517:87:64","nodeType":"YulBlock","src":"10517:87:64","statements":[{"body":{"nativeSrc":"10582:16:64","nodeType":"YulBlock","src":"10582:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10591:1:64","nodeType":"YulLiteral","src":"10591:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10594:1:64","nodeType":"YulLiteral","src":"10594:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10584:6:64","nodeType":"YulIdentifier","src":"10584:6:64"},"nativeSrc":"10584:12:64","nodeType":"YulFunctionCall","src":"10584:12:64"},"nativeSrc":"10584:12:64","nodeType":"YulExpressionStatement","src":"10584:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10540:5:64","nodeType":"YulIdentifier","src":"10540:5:64"},{"arguments":[{"name":"value","nativeSrc":"10573:5:64","nodeType":"YulIdentifier","src":"10573:5:64"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"10547:25:64","nodeType":"YulIdentifier","src":"10547:25:64"},"nativeSrc":"10547:32:64","nodeType":"YulFunctionCall","src":"10547:32:64"}],"functionName":{"name":"eq","nativeSrc":"10537:2:64","nodeType":"YulIdentifier","src":"10537:2:64"},"nativeSrc":"10537:43:64","nodeType":"YulFunctionCall","src":"10537:43:64"}],"functionName":{"name":"iszero","nativeSrc":"10530:6:64","nodeType":"YulIdentifier","src":"10530:6:64"},"nativeSrc":"10530:51:64","nodeType":"YulFunctionCall","src":"10530:51:64"},"nativeSrc":"10527:71:64","nodeType":"YulIf","src":"10527:71:64"}]},"name":"validator_revert_t_address_payable","nativeSrc":"10466:138:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10510:5:64","nodeType":"YulTypedName","src":"10510:5:64","type":""}],"src":"10466:138:64"},{"body":{"nativeSrc":"10670:95:64","nodeType":"YulBlock","src":"10670:95:64","statements":[{"nativeSrc":"10680:29:64","nodeType":"YulAssignment","src":"10680:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"10702:6:64","nodeType":"YulIdentifier","src":"10702:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"10689:12:64","nodeType":"YulIdentifier","src":"10689:12:64"},"nativeSrc":"10689:20:64","nodeType":"YulFunctionCall","src":"10689:20:64"},"variableNames":[{"name":"value","nativeSrc":"10680:5:64","nodeType":"YulIdentifier","src":"10680:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10753:5:64","nodeType":"YulIdentifier","src":"10753:5:64"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"10718:34:64","nodeType":"YulIdentifier","src":"10718:34:64"},"nativeSrc":"10718:41:64","nodeType":"YulFunctionCall","src":"10718:41:64"},"nativeSrc":"10718:41:64","nodeType":"YulExpressionStatement","src":"10718:41:64"}]},"name":"abi_decode_t_address_payable","nativeSrc":"10610:155:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10648:6:64","nodeType":"YulTypedName","src":"10648:6:64","type":""},{"name":"end","nativeSrc":"10656:3:64","nodeType":"YulTypedName","src":"10656:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10664:5:64","nodeType":"YulTypedName","src":"10664:5:64","type":""}],"src":"10610:155:64"},{"body":{"nativeSrc":"10860:28:64","nodeType":"YulBlock","src":"10860:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10877:1:64","nodeType":"YulLiteral","src":"10877:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10880:1:64","nodeType":"YulLiteral","src":"10880:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10870:6:64","nodeType":"YulIdentifier","src":"10870:6:64"},"nativeSrc":"10870:12:64","nodeType":"YulFunctionCall","src":"10870:12:64"},"nativeSrc":"10870:12:64","nodeType":"YulExpressionStatement","src":"10870:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10771:117:64","nodeType":"YulFunctionDefinition","src":"10771:117:64"},{"body":{"nativeSrc":"10960:241:64","nodeType":"YulBlock","src":"10960:241:64","statements":[{"body":{"nativeSrc":"11065:22:64","nodeType":"YulBlock","src":"11065:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11067:16:64","nodeType":"YulIdentifier","src":"11067:16:64"},"nativeSrc":"11067:18:64","nodeType":"YulFunctionCall","src":"11067:18:64"},"nativeSrc":"11067:18:64","nodeType":"YulExpressionStatement","src":"11067:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"11037:6:64","nodeType":"YulIdentifier","src":"11037:6:64"},{"kind":"number","nativeSrc":"11045:18:64","nodeType":"YulLiteral","src":"11045:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11034:2:64","nodeType":"YulIdentifier","src":"11034:2:64"},"nativeSrc":"11034:30:64","nodeType":"YulFunctionCall","src":"11034:30:64"},"nativeSrc":"11031:56:64","nodeType":"YulIf","src":"11031:56:64"},{"nativeSrc":"11097:37:64","nodeType":"YulAssignment","src":"11097:37:64","value":{"arguments":[{"name":"length","nativeSrc":"11127:6:64","nodeType":"YulIdentifier","src":"11127:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11105:21:64","nodeType":"YulIdentifier","src":"11105:21:64"},"nativeSrc":"11105:29:64","nodeType":"YulFunctionCall","src":"11105:29:64"},"variableNames":[{"name":"size","nativeSrc":"11097:4:64","nodeType":"YulIdentifier","src":"11097:4:64"}]},{"nativeSrc":"11171:23:64","nodeType":"YulAssignment","src":"11171:23:64","value":{"arguments":[{"name":"size","nativeSrc":"11183:4:64","nodeType":"YulIdentifier","src":"11183:4:64"},{"kind":"number","nativeSrc":"11189:4:64","nodeType":"YulLiteral","src":"11189:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11179:3:64","nodeType":"YulIdentifier","src":"11179:3:64"},"nativeSrc":"11179:15:64","nodeType":"YulFunctionCall","src":"11179:15:64"},"variableNames":[{"name":"size","nativeSrc":"11171:4:64","nodeType":"YulIdentifier","src":"11171:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"10894:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10944:6:64","nodeType":"YulTypedName","src":"10944:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10955:4:64","nodeType":"YulTypedName","src":"10955:4:64","type":""}],"src":"10894:307:64"},{"body":{"nativeSrc":"11271:84:64","nodeType":"YulBlock","src":"11271:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11295:3:64","nodeType":"YulIdentifier","src":"11295:3:64"},{"name":"src","nativeSrc":"11300:3:64","nodeType":"YulIdentifier","src":"11300:3:64"},{"name":"length","nativeSrc":"11305:6:64","nodeType":"YulIdentifier","src":"11305:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"11282:12:64","nodeType":"YulIdentifier","src":"11282:12:64"},"nativeSrc":"11282:30:64","nodeType":"YulFunctionCall","src":"11282:30:64"},"nativeSrc":"11282:30:64","nodeType":"YulExpressionStatement","src":"11282:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11332:3:64","nodeType":"YulIdentifier","src":"11332:3:64"},{"name":"length","nativeSrc":"11337:6:64","nodeType":"YulIdentifier","src":"11337:6:64"}],"functionName":{"name":"add","nativeSrc":"11328:3:64","nodeType":"YulIdentifier","src":"11328:3:64"},"nativeSrc":"11328:16:64","nodeType":"YulFunctionCall","src":"11328:16:64"},{"kind":"number","nativeSrc":"11346:1:64","nodeType":"YulLiteral","src":"11346:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11321:6:64","nodeType":"YulIdentifier","src":"11321:6:64"},"nativeSrc":"11321:27:64","nodeType":"YulFunctionCall","src":"11321:27:64"},"nativeSrc":"11321:27:64","nodeType":"YulExpressionStatement","src":"11321:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11207:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11253:3:64","nodeType":"YulTypedName","src":"11253:3:64","type":""},{"name":"dst","nativeSrc":"11258:3:64","nodeType":"YulTypedName","src":"11258:3:64","type":""},{"name":"length","nativeSrc":"11263:6:64","nodeType":"YulTypedName","src":"11263:6:64","type":""}],"src":"11207:148:64"},{"body":{"nativeSrc":"11444:340:64","nodeType":"YulBlock","src":"11444:340:64","statements":[{"nativeSrc":"11454:74:64","nodeType":"YulAssignment","src":"11454:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11520:6:64","nodeType":"YulIdentifier","src":"11520:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11479:40:64","nodeType":"YulIdentifier","src":"11479:40:64"},"nativeSrc":"11479:48:64","nodeType":"YulFunctionCall","src":"11479:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"11463:15:64","nodeType":"YulIdentifier","src":"11463:15:64"},"nativeSrc":"11463:65:64","nodeType":"YulFunctionCall","src":"11463:65:64"},"variableNames":[{"name":"array","nativeSrc":"11454:5:64","nodeType":"YulIdentifier","src":"11454:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11544:5:64","nodeType":"YulIdentifier","src":"11544:5:64"},{"name":"length","nativeSrc":"11551:6:64","nodeType":"YulIdentifier","src":"11551:6:64"}],"functionName":{"name":"mstore","nativeSrc":"11537:6:64","nodeType":"YulIdentifier","src":"11537:6:64"},"nativeSrc":"11537:21:64","nodeType":"YulFunctionCall","src":"11537:21:64"},"nativeSrc":"11537:21:64","nodeType":"YulExpressionStatement","src":"11537:21:64"},{"nativeSrc":"11567:27:64","nodeType":"YulVariableDeclaration","src":"11567:27:64","value":{"arguments":[{"name":"array","nativeSrc":"11582:5:64","nodeType":"YulIdentifier","src":"11582:5:64"},{"kind":"number","nativeSrc":"11589:4:64","nodeType":"YulLiteral","src":"11589:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11578:3:64","nodeType":"YulIdentifier","src":"11578:3:64"},"nativeSrc":"11578:16:64","nodeType":"YulFunctionCall","src":"11578:16:64"},"variables":[{"name":"dst","nativeSrc":"11571:3:64","nodeType":"YulTypedName","src":"11571:3:64","type":""}]},{"body":{"nativeSrc":"11632:83:64","nodeType":"YulBlock","src":"11632:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"11634:77:64","nodeType":"YulIdentifier","src":"11634:77:64"},"nativeSrc":"11634:79:64","nodeType":"YulFunctionCall","src":"11634:79:64"},"nativeSrc":"11634:79:64","nodeType":"YulExpressionStatement","src":"11634:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"11613:3:64","nodeType":"YulIdentifier","src":"11613:3:64"},{"name":"length","nativeSrc":"11618:6:64","nodeType":"YulIdentifier","src":"11618:6:64"}],"functionName":{"name":"add","nativeSrc":"11609:3:64","nodeType":"YulIdentifier","src":"11609:3:64"},"nativeSrc":"11609:16:64","nodeType":"YulFunctionCall","src":"11609:16:64"},{"name":"end","nativeSrc":"11627:3:64","nodeType":"YulIdentifier","src":"11627:3:64"}],"functionName":{"name":"gt","nativeSrc":"11606:2:64","nodeType":"YulIdentifier","src":"11606:2:64"},"nativeSrc":"11606:25:64","nodeType":"YulFunctionCall","src":"11606:25:64"},"nativeSrc":"11603:112:64","nodeType":"YulIf","src":"11603:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"11761:3:64","nodeType":"YulIdentifier","src":"11761:3:64"},{"name":"dst","nativeSrc":"11766:3:64","nodeType":"YulIdentifier","src":"11766:3:64"},{"name":"length","nativeSrc":"11771:6:64","nodeType":"YulIdentifier","src":"11771:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11724:36:64","nodeType":"YulIdentifier","src":"11724:36:64"},"nativeSrc":"11724:54:64","nodeType":"YulFunctionCall","src":"11724:54:64"},"nativeSrc":"11724:54:64","nodeType":"YulExpressionStatement","src":"11724:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"11361:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11417:3:64","nodeType":"YulTypedName","src":"11417:3:64","type":""},{"name":"length","nativeSrc":"11422:6:64","nodeType":"YulTypedName","src":"11422:6:64","type":""},{"name":"end","nativeSrc":"11430:3:64","nodeType":"YulTypedName","src":"11430:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11438:5:64","nodeType":"YulTypedName","src":"11438:5:64","type":""}],"src":"11361:423:64"},{"body":{"nativeSrc":"11864:277:64","nodeType":"YulBlock","src":"11864:277:64","statements":[{"body":{"nativeSrc":"11913:83:64","nodeType":"YulBlock","src":"11913:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11915:77:64","nodeType":"YulIdentifier","src":"11915:77:64"},"nativeSrc":"11915:79:64","nodeType":"YulFunctionCall","src":"11915:79:64"},"nativeSrc":"11915:79:64","nodeType":"YulExpressionStatement","src":"11915:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11892:6:64","nodeType":"YulIdentifier","src":"11892:6:64"},{"kind":"number","nativeSrc":"11900:4:64","nodeType":"YulLiteral","src":"11900:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11888:3:64","nodeType":"YulIdentifier","src":"11888:3:64"},"nativeSrc":"11888:17:64","nodeType":"YulFunctionCall","src":"11888:17:64"},{"name":"end","nativeSrc":"11907:3:64","nodeType":"YulIdentifier","src":"11907:3:64"}],"functionName":{"name":"slt","nativeSrc":"11884:3:64","nodeType":"YulIdentifier","src":"11884:3:64"},"nativeSrc":"11884:27:64","nodeType":"YulFunctionCall","src":"11884:27:64"}],"functionName":{"name":"iszero","nativeSrc":"11877:6:64","nodeType":"YulIdentifier","src":"11877:6:64"},"nativeSrc":"11877:35:64","nodeType":"YulFunctionCall","src":"11877:35:64"},"nativeSrc":"11874:122:64","nodeType":"YulIf","src":"11874:122:64"},{"nativeSrc":"12005:34:64","nodeType":"YulVariableDeclaration","src":"12005:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"12032:6:64","nodeType":"YulIdentifier","src":"12032:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"12019:12:64","nodeType":"YulIdentifier","src":"12019:12:64"},"nativeSrc":"12019:20:64","nodeType":"YulFunctionCall","src":"12019:20:64"},"variables":[{"name":"length","nativeSrc":"12009:6:64","nodeType":"YulTypedName","src":"12009:6:64","type":""}]},{"nativeSrc":"12048:87:64","nodeType":"YulAssignment","src":"12048:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12108:6:64","nodeType":"YulIdentifier","src":"12108:6:64"},{"kind":"number","nativeSrc":"12116:4:64","nodeType":"YulLiteral","src":"12116:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12104:3:64","nodeType":"YulIdentifier","src":"12104:3:64"},"nativeSrc":"12104:17:64","nodeType":"YulFunctionCall","src":"12104:17:64"},{"name":"length","nativeSrc":"12123:6:64","nodeType":"YulIdentifier","src":"12123:6:64"},{"name":"end","nativeSrc":"12131:3:64","nodeType":"YulIdentifier","src":"12131:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"12057:46:64","nodeType":"YulIdentifier","src":"12057:46:64"},"nativeSrc":"12057:78:64","nodeType":"YulFunctionCall","src":"12057:78:64"},"variableNames":[{"name":"array","nativeSrc":"12048:5:64","nodeType":"YulIdentifier","src":"12048:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"11803:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11842:6:64","nodeType":"YulTypedName","src":"11842:6:64","type":""},{"name":"end","nativeSrc":"11850:3:64","nodeType":"YulTypedName","src":"11850:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11858:5:64","nodeType":"YulTypedName","src":"11858:5:64","type":""}],"src":"11803:338:64"},{"body":{"nativeSrc":"12247:568:64","nodeType":"YulBlock","src":"12247:568:64","statements":[{"body":{"nativeSrc":"12293:83:64","nodeType":"YulBlock","src":"12293:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12295:77:64","nodeType":"YulIdentifier","src":"12295:77:64"},"nativeSrc":"12295:79:64","nodeType":"YulFunctionCall","src":"12295:79:64"},"nativeSrc":"12295:79:64","nodeType":"YulExpressionStatement","src":"12295:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12268:7:64","nodeType":"YulIdentifier","src":"12268:7:64"},{"name":"headStart","nativeSrc":"12277:9:64","nodeType":"YulIdentifier","src":"12277:9:64"}],"functionName":{"name":"sub","nativeSrc":"12264:3:64","nodeType":"YulIdentifier","src":"12264:3:64"},"nativeSrc":"12264:23:64","nodeType":"YulFunctionCall","src":"12264:23:64"},{"kind":"number","nativeSrc":"12289:2:64","nodeType":"YulLiteral","src":"12289:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12260:3:64","nodeType":"YulIdentifier","src":"12260:3:64"},"nativeSrc":"12260:32:64","nodeType":"YulFunctionCall","src":"12260:32:64"},"nativeSrc":"12257:119:64","nodeType":"YulIf","src":"12257:119:64"},{"nativeSrc":"12386:125:64","nodeType":"YulBlock","src":"12386:125:64","statements":[{"nativeSrc":"12401:15:64","nodeType":"YulVariableDeclaration","src":"12401:15:64","value":{"kind":"number","nativeSrc":"12415:1:64","nodeType":"YulLiteral","src":"12415:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12405:6:64","nodeType":"YulTypedName","src":"12405:6:64","type":""}]},{"nativeSrc":"12430:71:64","nodeType":"YulAssignment","src":"12430:71:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12473:9:64","nodeType":"YulIdentifier","src":"12473:9:64"},{"name":"offset","nativeSrc":"12484:6:64","nodeType":"YulIdentifier","src":"12484:6:64"}],"functionName":{"name":"add","nativeSrc":"12469:3:64","nodeType":"YulIdentifier","src":"12469:3:64"},"nativeSrc":"12469:22:64","nodeType":"YulFunctionCall","src":"12469:22:64"},{"name":"dataEnd","nativeSrc":"12493:7:64","nodeType":"YulIdentifier","src":"12493:7:64"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12440:28:64","nodeType":"YulIdentifier","src":"12440:28:64"},"nativeSrc":"12440:61:64","nodeType":"YulFunctionCall","src":"12440:61:64"},"variableNames":[{"name":"value0","nativeSrc":"12430:6:64","nodeType":"YulIdentifier","src":"12430:6:64"}]}]},{"nativeSrc":"12521:287:64","nodeType":"YulBlock","src":"12521:287:64","statements":[{"nativeSrc":"12536:46:64","nodeType":"YulVariableDeclaration","src":"12536:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12567:9:64","nodeType":"YulIdentifier","src":"12567:9:64"},{"kind":"number","nativeSrc":"12578:2:64","nodeType":"YulLiteral","src":"12578:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12563:3:64","nodeType":"YulIdentifier","src":"12563:3:64"},"nativeSrc":"12563:18:64","nodeType":"YulFunctionCall","src":"12563:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"12550:12:64","nodeType":"YulIdentifier","src":"12550:12:64"},"nativeSrc":"12550:32:64","nodeType":"YulFunctionCall","src":"12550:32:64"},"variables":[{"name":"offset","nativeSrc":"12540:6:64","nodeType":"YulTypedName","src":"12540:6:64","type":""}]},{"body":{"nativeSrc":"12629:83:64","nodeType":"YulBlock","src":"12629:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12631:77:64","nodeType":"YulIdentifier","src":"12631:77:64"},"nativeSrc":"12631:79:64","nodeType":"YulFunctionCall","src":"12631:79:64"},"nativeSrc":"12631:79:64","nodeType":"YulExpressionStatement","src":"12631:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12601:6:64","nodeType":"YulIdentifier","src":"12601:6:64"},{"kind":"number","nativeSrc":"12609:18:64","nodeType":"YulLiteral","src":"12609:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12598:2:64","nodeType":"YulIdentifier","src":"12598:2:64"},"nativeSrc":"12598:30:64","nodeType":"YulFunctionCall","src":"12598:30:64"},"nativeSrc":"12595:117:64","nodeType":"YulIf","src":"12595:117:64"},{"nativeSrc":"12726:72:64","nodeType":"YulAssignment","src":"12726:72:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12770:9:64","nodeType":"YulIdentifier","src":"12770:9:64"},{"name":"offset","nativeSrc":"12781:6:64","nodeType":"YulIdentifier","src":"12781:6:64"}],"functionName":{"name":"add","nativeSrc":"12766:3:64","nodeType":"YulIdentifier","src":"12766:3:64"},"nativeSrc":"12766:22:64","nodeType":"YulFunctionCall","src":"12766:22:64"},{"name":"dataEnd","nativeSrc":"12790:7:64","nodeType":"YulIdentifier","src":"12790:7:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"12736:29:64","nodeType":"YulIdentifier","src":"12736:29:64"},"nativeSrc":"12736:62:64","nodeType":"YulFunctionCall","src":"12736:62:64"},"variableNames":[{"name":"value1","nativeSrc":"12726:6:64","nodeType":"YulIdentifier","src":"12726:6:64"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes_memory_ptr","nativeSrc":"12147:668:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12209:9:64","nodeType":"YulTypedName","src":"12209:9:64","type":""},{"name":"dataEnd","nativeSrc":"12220:7:64","nodeType":"YulTypedName","src":"12220:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12232:6:64","nodeType":"YulTypedName","src":"12232:6:64","type":""},{"name":"value1","nativeSrc":"12240:6:64","nodeType":"YulTypedName","src":"12240:6:64","type":""}],"src":"12147:668:64"},{"body":{"nativeSrc":"12877:60:64","nodeType":"YulBlock","src":"12877:60:64","statements":[{"nativeSrc":"12887:11:64","nodeType":"YulAssignment","src":"12887:11:64","value":{"name":"ptr","nativeSrc":"12895:3:64","nodeType":"YulIdentifier","src":"12895:3:64"},"variableNames":[{"name":"data","nativeSrc":"12887:4:64","nodeType":"YulIdentifier","src":"12887:4:64"}]},{"nativeSrc":"12908:22:64","nodeType":"YulAssignment","src":"12908:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"12920:3:64","nodeType":"YulIdentifier","src":"12920:3:64"},{"kind":"number","nativeSrc":"12925:4:64","nodeType":"YulLiteral","src":"12925:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12916:3:64","nodeType":"YulIdentifier","src":"12916:3:64"},"nativeSrc":"12916:14:64","nodeType":"YulFunctionCall","src":"12916:14:64"},"variableNames":[{"name":"data","nativeSrc":"12908:4:64","nodeType":"YulIdentifier","src":"12908:4:64"}]}]},"name":"array_dataslot_t_bytes_memory_ptr","nativeSrc":"12821:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"12864:3:64","nodeType":"YulTypedName","src":"12864:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"12872:4:64","nodeType":"YulTypedName","src":"12872:4:64","type":""}],"src":"12821:116:64"},{"body":{"nativeSrc":"12988:32:64","nodeType":"YulBlock","src":"12988:32:64","statements":[{"nativeSrc":"12998:16:64","nodeType":"YulAssignment","src":"12998:16:64","value":{"name":"value","nativeSrc":"13009:5:64","nodeType":"YulIdentifier","src":"13009:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"12998:7:64","nodeType":"YulIdentifier","src":"12998:7:64"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"12943:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12970:5:64","nodeType":"YulTypedName","src":"12970:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12980:7:64","nodeType":"YulTypedName","src":"12980:7:64","type":""}],"src":"12943:77:64"},{"body":{"nativeSrc":"13081:99:64","nodeType":"YulBlock","src":"13081:99:64","statements":[{"nativeSrc":"13092:42:64","nodeType":"YulVariableDeclaration","src":"13092:42:64","value":{"arguments":[{"arguments":[{"name":"ptr","nativeSrc":"13129:3:64","nodeType":"YulIdentifier","src":"13129:3:64"}],"functionName":{"name":"mload","nativeSrc":"13123:5:64","nodeType":"YulIdentifier","src":"13123:5:64"},"nativeSrc":"13123:10:64","nodeType":"YulFunctionCall","src":"13123:10:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"13105:17:64","nodeType":"YulIdentifier","src":"13105:17:64"},"nativeSrc":"13105:29:64","nodeType":"YulFunctionCall","src":"13105:29:64"},"variables":[{"name":"value","nativeSrc":"13096:5:64","nodeType":"YulTypedName","src":"13096:5:64","type":""}]},{"nativeSrc":"13144:29:64","nodeType":"YulAssignment","src":"13144:29:64","value":{"name":"value","nativeSrc":"13168:5:64","nodeType":"YulIdentifier","src":"13168:5:64"},"variableNames":[{"name":"returnValue","nativeSrc":"13144:11:64","nodeType":"YulIdentifier","src":"13144:11:64"}]}]},"name":"read_from_memoryt_bytes32","nativeSrc":"13026:154:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13061:3:64","nodeType":"YulTypedName","src":"13061:3:64","type":""}],"returnVariables":[{"name":"returnValue","nativeSrc":"13069:11:64","nodeType":"YulTypedName","src":"13069:11:64","type":""}],"src":"13026:154:64"},{"body":{"nativeSrc":"13239:54:64","nodeType":"YulBlock","src":"13239:54:64","statements":[{"nativeSrc":"13249:37:64","nodeType":"YulAssignment","src":"13249:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"13274:4:64","nodeType":"YulIdentifier","src":"13274:4:64"},{"name":"value","nativeSrc":"13280:5:64","nodeType":"YulIdentifier","src":"13280:5:64"}],"functionName":{"name":"shl","nativeSrc":"13270:3:64","nodeType":"YulIdentifier","src":"13270:3:64"},"nativeSrc":"13270:16:64","nodeType":"YulFunctionCall","src":"13270:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"13249:8:64","nodeType":"YulIdentifier","src":"13249:8:64"}]}]},"name":"shift_left_dynamic","nativeSrc":"13186:107:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"13214:4:64","nodeType":"YulTypedName","src":"13214:4:64","type":""},{"name":"value","nativeSrc":"13220:5:64","nodeType":"YulTypedName","src":"13220:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"13230:8:64","nodeType":"YulTypedName","src":"13230:8:64","type":""}],"src":"13186:107:64"},{"body":{"nativeSrc":"13389:504:64","nodeType":"YulBlock","src":"13389:504:64","statements":[{"nativeSrc":"13400:52:64","nodeType":"YulVariableDeclaration","src":"13400:52:64","value":{"arguments":[{"name":"array","nativeSrc":"13446:5:64","nodeType":"YulIdentifier","src":"13446:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13414:31:64","nodeType":"YulIdentifier","src":"13414:31:64"},"nativeSrc":"13414:38:64","nodeType":"YulFunctionCall","src":"13414:38:64"},"variables":[{"name":"length","nativeSrc":"13404:6:64","nodeType":"YulTypedName","src":"13404:6:64","type":""}]},{"nativeSrc":"13461:21:64","nodeType":"YulVariableDeclaration","src":"13461:21:64","value":{"name":"array","nativeSrc":"13477:5:64","nodeType":"YulIdentifier","src":"13477:5:64"},"variables":[{"name":"dataArea","nativeSrc":"13465:8:64","nodeType":"YulTypedName","src":"13465:8:64","type":""}]},{"nativeSrc":"13492:52:64","nodeType":"YulAssignment","src":"13492:52:64","value":{"arguments":[{"name":"array","nativeSrc":"13538:5:64","nodeType":"YulIdentifier","src":"13538:5:64"}],"functionName":{"name":"array_dataslot_t_bytes_memory_ptr","nativeSrc":"13504:33:64","nodeType":"YulIdentifier","src":"13504:33:64"},"nativeSrc":"13504:40:64","nodeType":"YulFunctionCall","src":"13504:40:64"},"variableNames":[{"name":"dataArea","nativeSrc":"13492:8:64","nodeType":"YulIdentifier","src":"13492:8:64"}]},{"nativeSrc":"13554:44:64","nodeType":"YulAssignment","src":"13554:44:64","value":{"arguments":[{"name":"dataArea","nativeSrc":"13589:8:64","nodeType":"YulIdentifier","src":"13589:8:64"}],"functionName":{"name":"read_from_memoryt_bytes32","nativeSrc":"13563:25:64","nodeType":"YulIdentifier","src":"13563:25:64"},"nativeSrc":"13563:35:64","nodeType":"YulFunctionCall","src":"13563:35:64"},"variableNames":[{"name":"value","nativeSrc":"13554:5:64","nodeType":"YulIdentifier","src":"13554:5:64"}]},{"body":{"nativeSrc":"13626:260:64","nodeType":"YulBlock","src":"13626:260:64","statements":[{"nativeSrc":"13640:236:64","nodeType":"YulAssignment","src":"13640:236:64","value":{"arguments":[{"name":"value","nativeSrc":"13670:5:64","nodeType":"YulIdentifier","src":"13670:5:64"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"13737:1:64","nodeType":"YulLiteral","src":"13737:1:64","type":"","value":"8"},{"arguments":[{"kind":"number","nativeSrc":"13744:2:64","nodeType":"YulLiteral","src":"13744:2:64","type":"","value":"32"},{"name":"length","nativeSrc":"13748:6:64","nodeType":"YulIdentifier","src":"13748:6:64"}],"functionName":{"name":"sub","nativeSrc":"13740:3:64","nodeType":"YulIdentifier","src":"13740:3:64"},"nativeSrc":"13740:15:64","nodeType":"YulFunctionCall","src":"13740:15:64"}],"functionName":{"name":"mul","nativeSrc":"13733:3:64","nodeType":"YulIdentifier","src":"13733:3:64"},"nativeSrc":"13733:23:64","nodeType":"YulFunctionCall","src":"13733:23:64"},{"kind":"number","nativeSrc":"13778:66:64","nodeType":"YulLiteral","src":"13778:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"13693:18:64","nodeType":"YulIdentifier","src":"13693:18:64"},"nativeSrc":"13693:169:64","nodeType":"YulFunctionCall","src":"13693:169:64"}],"functionName":{"name":"and","nativeSrc":"13649:3:64","nodeType":"YulIdentifier","src":"13649:3:64"},"nativeSrc":"13649:227:64","nodeType":"YulFunctionCall","src":"13649:227:64"},"variableNames":[{"name":"value","nativeSrc":"13640:5:64","nodeType":"YulIdentifier","src":"13640:5:64"}]}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13614:6:64","nodeType":"YulIdentifier","src":"13614:6:64"},{"kind":"number","nativeSrc":"13622:2:64","nodeType":"YulLiteral","src":"13622:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"13611:2:64","nodeType":"YulIdentifier","src":"13611:2:64"},"nativeSrc":"13611:14:64","nodeType":"YulFunctionCall","src":"13611:14:64"},"nativeSrc":"13608:278:64","nodeType":"YulIf","src":"13608:278:64"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32","nativeSrc":"13299:594:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"13373:5:64","nodeType":"YulTypedName","src":"13373:5:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13383:5:64","nodeType":"YulTypedName","src":"13383:5:64","type":""}],"src":"13299:594:64"},{"body":{"nativeSrc":"13962:80:64","nodeType":"YulBlock","src":"13962:80:64","statements":[{"nativeSrc":"13972:22:64","nodeType":"YulAssignment","src":"13972:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"13987:6:64","nodeType":"YulIdentifier","src":"13987:6:64"}],"functionName":{"name":"mload","nativeSrc":"13981:5:64","nodeType":"YulIdentifier","src":"13981:5:64"},"nativeSrc":"13981:13:64","nodeType":"YulFunctionCall","src":"13981:13:64"},"variableNames":[{"name":"value","nativeSrc":"13972:5:64","nodeType":"YulIdentifier","src":"13972:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14030:5:64","nodeType":"YulIdentifier","src":"14030:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"14003:26:64","nodeType":"YulIdentifier","src":"14003:26:64"},"nativeSrc":"14003:33:64","nodeType":"YulFunctionCall","src":"14003:33:64"},"nativeSrc":"14003:33:64","nodeType":"YulExpressionStatement","src":"14003:33:64"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"13899:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13940:6:64","nodeType":"YulTypedName","src":"13940:6:64","type":""},{"name":"end","nativeSrc":"13948:3:64","nodeType":"YulTypedName","src":"13948:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13956:5:64","nodeType":"YulTypedName","src":"13956:5:64","type":""}],"src":"13899:143:64"},{"body":{"nativeSrc":"14125:274:64","nodeType":"YulBlock","src":"14125:274:64","statements":[{"body":{"nativeSrc":"14171:83:64","nodeType":"YulBlock","src":"14171:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"14173:77:64","nodeType":"YulIdentifier","src":"14173:77:64"},"nativeSrc":"14173:79:64","nodeType":"YulFunctionCall","src":"14173:79:64"},"nativeSrc":"14173:79:64","nodeType":"YulExpressionStatement","src":"14173:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"14146:7:64","nodeType":"YulIdentifier","src":"14146:7:64"},{"name":"headStart","nativeSrc":"14155:9:64","nodeType":"YulIdentifier","src":"14155:9:64"}],"functionName":{"name":"sub","nativeSrc":"14142:3:64","nodeType":"YulIdentifier","src":"14142:3:64"},"nativeSrc":"14142:23:64","nodeType":"YulFunctionCall","src":"14142:23:64"},{"kind":"number","nativeSrc":"14167:2:64","nodeType":"YulLiteral","src":"14167:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"14138:3:64","nodeType":"YulIdentifier","src":"14138:3:64"},"nativeSrc":"14138:32:64","nodeType":"YulFunctionCall","src":"14138:32:64"},"nativeSrc":"14135:119:64","nodeType":"YulIf","src":"14135:119:64"},{"nativeSrc":"14264:128:64","nodeType":"YulBlock","src":"14264:128:64","statements":[{"nativeSrc":"14279:15:64","nodeType":"YulVariableDeclaration","src":"14279:15:64","value":{"kind":"number","nativeSrc":"14293:1:64","nodeType":"YulLiteral","src":"14293:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14283:6:64","nodeType":"YulTypedName","src":"14283:6:64","type":""}]},{"nativeSrc":"14308:74:64","nodeType":"YulAssignment","src":"14308:74:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14354:9:64","nodeType":"YulIdentifier","src":"14354:9:64"},{"name":"offset","nativeSrc":"14365:6:64","nodeType":"YulIdentifier","src":"14365:6:64"}],"functionName":{"name":"add","nativeSrc":"14350:3:64","nodeType":"YulIdentifier","src":"14350:3:64"},"nativeSrc":"14350:22:64","nodeType":"YulFunctionCall","src":"14350:22:64"},{"name":"dataEnd","nativeSrc":"14374:7:64","nodeType":"YulIdentifier","src":"14374:7:64"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"14318:31:64","nodeType":"YulIdentifier","src":"14318:31:64"},"nativeSrc":"14318:64:64","nodeType":"YulFunctionCall","src":"14318:64:64"},"variableNames":[{"name":"value0","nativeSrc":"14308:6:64","nodeType":"YulIdentifier","src":"14308:6:64"}]}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nativeSrc":"14048:351:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14095:9:64","nodeType":"YulTypedName","src":"14095:9:64","type":""},{"name":"dataEnd","nativeSrc":"14106:7:64","nodeType":"YulTypedName","src":"14106:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"14118:6:64","nodeType":"YulTypedName","src":"14118:6:64","type":""}],"src":"14048:351:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Validator_$19130_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Validator_$19130_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Validator_$19130__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Validator_$19130_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n // struct ContractAction.InitPayload\n function abi_decode_t_struct$_InitPayload_$13134_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // chainId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // value\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$13134_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$13134_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address_payablet_bytes_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_dataslot_t_bytes_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function read_from_memoryt_bytes32(ptr) -> returnValue {\n\n let value := cleanup_t_bytes32(mload(ptr))\n\n returnValue :=\n\n value\n\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value {\n\n let length := array_length_t_bytes_memory_ptr(array)\n let dataArea := array\n\n dataArea := array_dataslot_t_bytes_memory_ptr(array)\n\n value := read_from_memoryt_bytes32(dataArea)\n\n if lt(length, 32) {\n value := and(\n value,\n shift_left_dynamic(\n mul(8, sub(32, length)),\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n )\n )\n }\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"13058":[{"length":32,"start":1344}]},"linkReferences":{},"object":"608060405260043610610113575f3560e01c80638da5cb5b1161009f578063d7768c4711610063578063d7768c471461033e578063ea3d508a1461037a578063f04e283e146103a4578063f2fde38b146103c0578063fee81cf4146103dc57610113565b80638da5cb5b146102485780639a8a059214610272578063bec952771461029c578063c16e50ef146102d8578063d4b839921461031457610113565b8063393df8cb116100e6578063393df8cb146101b85780633fa4f245146101e2578063439fab911461020c57806354d1f13d14610234578063715018a61461023e57610113565b806301ffc9a71461011757806309c5eabe14610153578063256929621461018457806328d6183b1461018e575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610e84565b610418565b60405161014a9190610ec9565b60405180910390f35b61016d60048036038101906101689190610f43565b610491565b60405161017b929190610ffe565b60405180910390f35b61018c6104c6565b005b348015610199575f80fd5b506101a2610517565b6040516101af919061103b565b60405180910390f35b3480156101c3575f80fd5b506101cc61053e565b6040516101d991906110ce565b60405180910390f35b3480156101ed575f80fd5b506101f6610562565b60405161020391906110ff565b60405180910390f35b348015610217575f80fd5b50610232600480360381019061022d9190610f43565b610568565b005b61023c6105f5565b005b61024661062e565b005b348015610253575f80fd5b5061025c610641565b6040516102699190611138565b60405180910390f35b34801561027d575f80fd5b50610286610669565b60405161029391906110ff565b60405180910390f35b3480156102a7575f80fd5b506102c260048036038101906102bd919061117b565b61066e565b6040516102cf9190610ec9565b60405180910390f35b3480156102e3575f80fd5b506102fe60048036038101906102f99190610f43565b61068b565b60405161030b9190610ec9565b60405180910390f35b34801561031f575f80fd5b506103286107e5565b6040516103359190611138565b60405180910390f35b348015610349575f80fd5b50610364600480360381019061035f9190610f43565b61080a565b60405161037191906111a6565b60405180910390f35b348015610385575f80fd5b5061038e61081e565b60405161039b919061103b565b60405180910390f35b6103be60048036038101906103b991906111f0565b610831565b005b6103da60048036038101906103d591906111f0565b61086f565b005b3480156103e7575f80fd5b5061040260048036038101906103fd91906111f0565b610898565b60405161040f91906110ff565b60405180910390f35b5f7fcba21e6c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048a5750610489826108b1565b5b9050919050565b5f60606040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6104cf61092a565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fcba21e6c00000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b5f610571610934565b905080546003825580156105a35760018160011c14303b1061059a5763f92ee8a95f526004601cfd5b818160ff1b1b91505b506105bb83838101906105b6919061130c565b61095d565b80156105f0576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61063661097a565b61063f5f6109b1565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f5481565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f805f848481019061069d9190611422565b915091505f816106ac906114b4565b5f1c90508273ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b815260040161072191906110ff565b602060405180830381865afa15801561073c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610760919061152e565b73ffffffffffffffffffffffffffffffffffffffff1614801561079e575060035f8281526020019081526020015f205f9054906101000a900460ff16155b156107d857600160035f8381526020019081526020015f205f6101000a81548160ff021916908315150217905550600193505050506107df565b5f93505050505b92915050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606108168383610a77565b905092915050565b600160149054906101000a900460e01b81565b61083961097a565b63389a75e1600c52805f526020600c20805442111561085f57636f5e88185f526004601cfd5b5f81555061086c816109b1565b50565b61087761097a565b8060601b61088c57637448fbae5f526004601cfd5b610895816109b1565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe8478173000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610923575061092282610a9b565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610965610b14565b61096e81610b38565b61097733610bbd565b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146109af576382b429005f526004601cfd5b565b6109b9610c93565b15610a1e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610a74565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060610a93600160149054906101000a900460e01b8484610c97565b905092915050565b5f7f2fae823b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b0d5750610b0c82610cc3565b5b9050919050565b5f610b1d610934565b90508054600116610b355763d7e6bcf85f526004601cfd5b50565b610b40610b14565b805f01515f81905550806020015160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060400151600160146101000a81548163ffffffff021916908360e01c0217905550806060015160028190555050565b610bc5610c93565b15610c3d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610bff57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c90565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f90565b606081600401604051915080825260208101820160405284602083015282846024840137509392505050565b5f7fcea74fae000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d355750610d3482610d3c565b5b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610dae5750610dad82610db5565b5b9050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e6381610e2f565b8114610e6d575f80fd5b50565b5f81359050610e7e81610e5a565b92915050565b5f60208284031215610e9957610e98610e27565b5b5f610ea684828501610e70565b91505092915050565b5f8115159050919050565b610ec381610eaf565b82525050565b5f602082019050610edc5f830184610eba565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f0357610f02610ee2565b5b8235905067ffffffffffffffff811115610f2057610f1f610ee6565b5b602083019150836001820283011115610f3c57610f3b610eea565b5b9250929050565b5f8060208385031215610f5957610f58610e27565b5b5f83013567ffffffffffffffff811115610f7657610f75610e2b565b5b610f8285828601610eee565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610fd082610f8e565b610fda8185610f98565b9350610fea818560208601610fa8565b610ff381610fb6565b840191505092915050565b5f6040820190506110115f830185610eba565b81810360208301526110238184610fc6565b90509392505050565b61103581610e2f565b82525050565b5f60208201905061104e5f83018461102c565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61109661109161108c84611054565b611073565b611054565b9050919050565b5f6110a78261107c565b9050919050565b5f6110b88261109d565b9050919050565b6110c8816110ae565b82525050565b5f6020820190506110e15f8301846110bf565b92915050565b5f819050919050565b6110f9816110e7565b82525050565b5f6020820190506111125f8301846110f0565b92915050565b5f61112282611054565b9050919050565b61113281611118565b82525050565b5f60208201905061114b5f830184611129565b92915050565b61115a816110e7565b8114611164575f80fd5b50565b5f8135905061117581611151565b92915050565b5f602082840312156111905761118f610e27565b5b5f61119d84828501611167565b91505092915050565b5f6020820190508181035f8301526111be8184610fc6565b905092915050565b6111cf81611118565b81146111d9575f80fd5b50565b5f813590506111ea816111c6565b92915050565b5f6020828403121561120557611204610e27565b5b5f611212848285016111dc565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61125582610fb6565b810181811067ffffffffffffffff821117156112745761127361121f565b5b80604052505050565b5f611286610e1e565b9050611292828261124c565b919050565b5f608082840312156112ac576112ab61121b565b5b6112b6608061127d565b90505f6112c584828501611167565b5f8301525060206112d8848285016111dc565b60208301525060406112ec84828501610e70565b604083015250606061130084828501611167565b60608301525092915050565b5f6080828403121561132157611320610e27565b5b5f61132e84828501611297565b91505092915050565b5f61134182611054565b9050919050565b61135181611337565b811461135b575f80fd5b50565b5f8135905061136c81611348565b92915050565b5f80fd5b5f67ffffffffffffffff8211156113905761138f61121f565b5b61139982610fb6565b9050602081019050919050565b828183375f83830152505050565b5f6113c66113c184611376565b61127d565b9050828152602081018484840111156113e2576113e1611372565b5b6113ed8482856113a6565b509392505050565b5f82601f83011261140957611408610ee2565b5b81356114198482602086016113b4565b91505092915050565b5f806040838503121561143857611437610e27565b5b5f6114458582860161135e565b925050602083013567ffffffffffffffff81111561146657611465610e2b565b5b611472858286016113f5565b9150509250929050565b5f819050602082019050919050565b5f819050919050565b5f61149f825161148b565b80915050919050565b5f82821b905092915050565b5f6114be82610f8e565b826114c88461147c565b90506114d381611494565b925060208210156115135761150e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026114a8565b831692505b5050919050565b5f81519050611528816111c6565b92915050565b5f6020828403121561154357611542610e27565b5b5f6115508482850161151a565b9150509291505056fea2646970667358221220b2c66b0eecc4e35ee328a41534cf40810a261d315cf2c98422a5feabf86dd65764736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xD7768C47 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xD7768C47 EQ PUSH2 0x33E JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x37A JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3A4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3DC JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x9A8A0592 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xBEC95277 EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x2D8 JUMPI DUP1 PUSH4 0xD4B83992 EQ PUSH2 0x314 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x393DF8CB GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x393DF8CB EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x1E2 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x234 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x23E JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x9C5EABE EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x18E JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xE84 JUMP JUMPDEST PUSH2 0x418 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x491 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17B SWAP3 SWAP2 SWAP1 PUSH2 0xFFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18C PUSH2 0x4C6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x199 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A2 PUSH2 0x517 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1AF SWAP2 SWAP1 PUSH2 0x103B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CC PUSH2 0x53E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D9 SWAP2 SWAP1 PUSH2 0x10CE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1ED JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F6 PUSH2 0x562 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x203 SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x568 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x23C PUSH2 0x5F5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x246 PUSH2 0x62E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x641 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x1138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x286 PUSH2 0x669 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BD SWAP2 SWAP1 PUSH2 0x117B JUMP JUMPDEST PUSH2 0x66E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CF SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F9 SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30B SWAP2 SWAP1 PUSH2 0xEC9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x328 PUSH2 0x7E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x335 SWAP2 SWAP1 PUSH2 0x1138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x349 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x364 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35F SWAP2 SWAP1 PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x80A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x371 SWAP2 SWAP1 PUSH2 0x11A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x385 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x38E PUSH2 0x81E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x39B SWAP2 SWAP1 PUSH2 0x103B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B9 SWAP2 SWAP1 PUSH2 0x11F0 JUMP JUMPDEST PUSH2 0x831 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D5 SWAP2 SWAP1 PUSH2 0x11F0 JUMP JUMPDEST PUSH2 0x86F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x402 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FD SWAP2 SWAP1 PUSH2 0x11F0 JUMP JUMPDEST PUSH2 0x898 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40F SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xCBA21E6C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x48A JUMPI POP PUSH2 0x489 DUP3 PUSH2 0x8B1 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0x4CF PUSH2 0x92A JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xCBA21E6C00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x571 PUSH2 0x934 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x5A3 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x59A JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x5BB DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x5B6 SWAP2 SWAP1 PUSH2 0x130C JUMP JUMPDEST PUSH2 0x95D JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5F0 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x636 PUSH2 0x97A JUMP JUMPDEST PUSH2 0x63F PUSH0 PUSH2 0x9B1 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x69D SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH0 DUP2 PUSH2 0x6AC SWAP1 PUSH2 0x14B4 JUMP JUMPDEST PUSH0 SHR SWAP1 POP DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6352211E DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x721 SWAP2 SWAP1 PUSH2 0x10FF JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x73C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x760 SWAP2 SWAP1 PUSH2 0x152E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 ISZERO PUSH2 0x79E JUMPI POP PUSH1 0x3 PUSH0 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST ISZERO PUSH2 0x7D8 JUMPI PUSH1 0x1 PUSH1 0x3 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x7DF JUMP JUMPDEST PUSH0 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x816 DUP4 DUP4 PUSH2 0xA77 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0x839 PUSH2 0x97A JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x85F JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x86C DUP2 PUSH2 0x9B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x877 PUSH2 0x97A JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x88C JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x895 DUP2 PUSH2 0x9B1 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x923 JUMPI POP PUSH2 0x922 DUP3 PUSH2 0xA9B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x965 PUSH2 0xB14 JUMP JUMPDEST PUSH2 0x96E DUP2 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0x977 CALLER PUSH2 0xBBD JUMP JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x9AF JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x9B9 PUSH2 0xC93 JUMP JUMPDEST ISZERO PUSH2 0xA1E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xA74 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xA93 PUSH1 0x1 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP5 DUP5 PUSH2 0xC97 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0x2FAE823B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB0D JUMPI POP PUSH2 0xB0C DUP3 PUSH2 0xCC3 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xB1D PUSH2 0x934 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 AND PUSH2 0xB35 JUMPI PUSH4 0xD7E6BCF8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xB40 PUSH2 0xB14 JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH0 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xBC5 PUSH2 0xC93 JUMP JUMPDEST ISZERO PUSH2 0xC3D JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xBFF JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC90 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD SWAP2 POP DUP1 DUP3 MSTORE PUSH1 0x20 DUP2 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x24 DUP5 ADD CALLDATACOPY POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xCEA74FAE00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD35 JUMPI POP PUSH2 0xD34 DUP3 PUSH2 0xD3C JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xDAE JUMPI POP PUSH2 0xDAD DUP3 PUSH2 0xDB5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE63 DUP2 PUSH2 0xE2F JUMP JUMPDEST DUP2 EQ PUSH2 0xE6D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE7E DUP2 PUSH2 0xE5A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE99 JUMPI PUSH2 0xE98 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEA6 DUP5 DUP3 DUP6 ADD PUSH2 0xE70 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEC3 DUP2 PUSH2 0xEAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEDC PUSH0 DUP4 ADD DUP5 PUSH2 0xEBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF03 JUMPI PUSH2 0xF02 PUSH2 0xEE2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF20 JUMPI PUSH2 0xF1F PUSH2 0xEE6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF3C JUMPI PUSH2 0xF3B PUSH2 0xEEA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF59 JUMPI PUSH2 0xF58 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST PUSH2 0xF82 DUP6 DUP3 DUP7 ADD PUSH2 0xEEE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFD0 DUP3 PUSH2 0xF8E JUMP JUMPDEST PUSH2 0xFDA DUP2 DUP6 PUSH2 0xF98 JUMP JUMPDEST SWAP4 POP PUSH2 0xFEA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xFA8 JUMP JUMPDEST PUSH2 0xFF3 DUP2 PUSH2 0xFB6 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1011 PUSH0 DUP4 ADD DUP6 PUSH2 0xEBA JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1023 DUP2 DUP5 PUSH2 0xFC6 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1035 DUP2 PUSH2 0xE2F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x104E PUSH0 DUP4 ADD DUP5 PUSH2 0x102C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1096 PUSH2 0x1091 PUSH2 0x108C DUP5 PUSH2 0x1054 JUMP JUMPDEST PUSH2 0x1073 JUMP JUMPDEST PUSH2 0x1054 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10A7 DUP3 PUSH2 0x107C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x10B8 DUP3 PUSH2 0x109D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10C8 DUP2 PUSH2 0x10AE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x10E1 PUSH0 DUP4 ADD DUP5 PUSH2 0x10BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x10F9 DUP2 PUSH2 0x10E7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1112 PUSH0 DUP4 ADD DUP5 PUSH2 0x10F0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1122 DUP3 PUSH2 0x1054 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1132 DUP2 PUSH2 0x1118 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x114B PUSH0 DUP4 ADD DUP5 PUSH2 0x1129 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x115A DUP2 PUSH2 0x10E7 JUMP JUMPDEST DUP2 EQ PUSH2 0x1164 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1175 DUP2 PUSH2 0x1151 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1190 JUMPI PUSH2 0x118F PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x119D DUP5 DUP3 DUP6 ADD PUSH2 0x1167 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11BE DUP2 DUP5 PUSH2 0xFC6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11CF DUP2 PUSH2 0x1118 JUMP JUMPDEST DUP2 EQ PUSH2 0x11D9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11EA DUP2 PUSH2 0x11C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1205 JUMPI PUSH2 0x1204 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1212 DUP5 DUP3 DUP6 ADD PUSH2 0x11DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1255 DUP3 PUSH2 0xFB6 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1274 JUMPI PUSH2 0x1273 PUSH2 0x121F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1286 PUSH2 0xE1E JUMP JUMPDEST SWAP1 POP PUSH2 0x1292 DUP3 DUP3 PUSH2 0x124C JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AC JUMPI PUSH2 0x12AB PUSH2 0x121B JUMP JUMPDEST JUMPDEST PUSH2 0x12B6 PUSH1 0x80 PUSH2 0x127D JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x12C5 DUP5 DUP3 DUP6 ADD PUSH2 0x1167 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x12D8 DUP5 DUP3 DUP6 ADD PUSH2 0x11DC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x12EC DUP5 DUP3 DUP6 ADD PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1300 DUP5 DUP3 DUP6 ADD PUSH2 0x1167 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1321 JUMPI PUSH2 0x1320 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x132E DUP5 DUP3 DUP6 ADD PUSH2 0x1297 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1341 DUP3 PUSH2 0x1054 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1351 DUP2 PUSH2 0x1337 JUMP JUMPDEST DUP2 EQ PUSH2 0x135B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x136C DUP2 PUSH2 0x1348 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1390 JUMPI PUSH2 0x138F PUSH2 0x121F JUMP JUMPDEST JUMPDEST PUSH2 0x1399 DUP3 PUSH2 0xFB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13C6 PUSH2 0x13C1 DUP5 PUSH2 0x1376 JUMP JUMPDEST PUSH2 0x127D JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13E2 JUMPI PUSH2 0x13E1 PUSH2 0x1372 JUMP JUMPDEST JUMPDEST PUSH2 0x13ED DUP5 DUP3 DUP6 PUSH2 0x13A6 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1409 JUMPI PUSH2 0x1408 PUSH2 0xEE2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1419 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x13B4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1438 JUMPI PUSH2 0x1437 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1445 DUP6 DUP3 DUP7 ADD PUSH2 0x135E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1466 JUMPI PUSH2 0x1465 PUSH2 0xE2B JUMP JUMPDEST JUMPDEST PUSH2 0x1472 DUP6 DUP3 DUP7 ADD PUSH2 0x13F5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x149F DUP3 MLOAD PUSH2 0x148B JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14BE DUP3 PUSH2 0xF8E JUMP JUMPDEST DUP3 PUSH2 0x14C8 DUP5 PUSH2 0x147C JUMP JUMPDEST SWAP1 POP PUSH2 0x14D3 DUP2 PUSH2 0x1494 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP3 LT ISZERO PUSH2 0x1513 JUMPI PUSH2 0x150E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 PUSH1 0x20 SUB PUSH1 0x8 MUL PUSH2 0x14A8 JUMP JUMPDEST DUP4 AND SWAP3 POP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1528 DUP2 PUSH2 0x11C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1543 JUMPI PUSH2 0x1542 PUSH2 0xE27 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1550 DUP5 DUP3 DUP6 ADD PUSH2 0x151A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xC6 PUSH12 0xEECC4E35EE328A41534CF40 DUP2 EXP 0x26 SAR BALANCE TLOAD CALLCODE 0xC9 DUP5 0x22 0xA5 INVALID 0xAB 0xF8 PUSH14 0xD65764736F6C634300081A003300 ","sourceMap":"705:884:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3476:277:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1620:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;3268:166:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1043:36:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;693:20:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1280:140:34;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;442:22:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1148:41:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2782:444;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;507:21:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2162:127:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;594:22:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3476:277:31;3629:4;3671:35;3656:50;;;:11;:50;;;;:90;;;;3710:36;3734:11;3710:23;:36::i;:::-;3656:90;3649:97;;3476:277;;;:::o;1620:202::-;1694:12;1708:23;1788:27;;;;;;;;;;;;;;9021:617:16;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;3268:166:31:-;3367:6;3392:35;3385:42;;3268:166;:::o;1043:36:32:-;;;:::o;693:20:30:-;;;;:::o;1280:140:34:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1368:45:34::1;1391:5;;1380:32;;;;;;;:::i;:::-;1368:11;:45::i;:::-;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1280:140:34;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;442:22:30:-;;;;:::o;1148:41:31:-;;;;;;;;;;;;;;;;;;;;;;:::o;2782:444::-;2868:12;2893:14;2909:20;2944:5;;2933:35;;;;;;;:::i;:::-;2892:76;;;;2978:15;3012:7;3004:16;;;:::i;:::-;2996:25;;2978:43;;3071:6;3036:41;;3043:6;;;;;;;;;;;3036:22;;;3059:7;3036:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;;:64;;;;;3082:9;:18;3092:7;3082:18;;;;;;;;;;;;;;;;;;;;;3081:19;3036:64;3032:188;;;3137:4;3116:9;:18;3126:7;3116:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3162:4;3155:11;;;;;;;3032:188;3204:5;3197:12;;;;;2782:444;;;;;:::o;507:21:30:-;;;;;;;;;;;;;:::o;2162:127:31:-;2231:12;2262:20;2276:5;;2262:13;:20::i;:::-;2255:27;;2162:127;;;;:::o;594:22:30:-;;;;;;;;;;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1512:208:63:-;1608:4;1646:27;1631:42;;;:11;:42;;;;:82;;;;1677:36;1701:11;1677:23;:36::i;:::-;1631:82;1624:89;;1512:208;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;1426:161:34:-;5662:20:20;:18;:20::i;:::-;1518:24:34::1;1536:5;1518:17;:24::i;:::-;1552:28;1569:10;1552:16;:28::i;:::-;1426:161:::0;:::o;7292:355:16:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;1300:152:30:-;1377:19;1415:30;1429:8;;;;;;;;;;;1439:5;;1415:13;:30::i;:::-;1408:37;;1300:152;;;;:::o;2237:211::-;2330:4;2368:33;2353:48;;;:11;:48;;;;:88;;;;2405:36;2429:11;2405:23;:36::i;:::-;2353:88;2346:95;;2237:211;;;:::o;5764:329:20:-;5826:9;5838:20;:18;:20::i;:::-;5826:32;;5957:1;5951:8;5948:1;5944:16;5934:143;;5993:10;5987:4;5980:24;6058:4;6052;6045:18;5934:143;5920:167;5764:329::o;988:216:33:-;5662:20:20;:18;:20::i;:::-;1089:5:33::1;:13;;;1079:7;:23;;;;1121:5;:12;;;1112:6;;:21;;;;;;;;;;;;;;;;;;1154:5;:14;;;1143:8;;:25;;;;;;;;;;;;;;;;;;1186:5;:11;;;1178:5;:19;;;;988:216:::0;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4348:78::-;4412:10;4348:78;:::o;1458:569:30:-;1548:20;1668:16;1665:1;1661:24;1715:4;1709:11;1698:22;;1749:4;1740:7;1733:21;1803:4;1797;1793:15;1784:7;1780:29;1774:4;1767:43;1920:9;1913:4;1904:7;1900:18;1893:37;1994:16;1976;1969:4;1960:7;1956:18;1943:68;1589:432;1458:569;;;;;:::o;1643:205:32:-;1739:4;1777:24;1762:39;;;:11;:39;;;;:79;;;;1805:36;1829:11;1805:23;:36::i;:::-;1762:79;1755:86;;1643:205;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1900:552;1957:8;1967:6;2017:3;2010:4;2002:6;1998:17;1994:27;1984:122;;2025:79;;:::i;:::-;1984:122;2138:6;2125:20;2115:30;;2168:18;2160:6;2157:30;2154:117;;;2190:79;;:::i;:::-;2154:117;2304:4;2296:6;2292:17;2280:29;;2358:3;2350:4;2342:6;2338:17;2328:8;2324:32;2321:41;2318:128;;;2365:79;;:::i;:::-;2318:128;1900:552;;;;;:::o;2458:527::-;2528:6;2536;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2739:1;2728:9;2724:17;2711:31;2769:18;2761:6;2758:30;2755:117;;;2791:79;;:::i;:::-;2755:117;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2886:82;;;;2682:296;2458:527;;;;;:::o;2991:98::-;3042:6;3076:5;3070:12;3060:22;;2991:98;;;:::o;3095:168::-;3178:11;3212:6;3207:3;3200:19;3252:4;3247:3;3243:14;3228:29;;3095:168;;;;:::o;3269:139::-;3358:6;3353:3;3348;3342:23;3399:1;3390:6;3385:3;3381:16;3374:27;3269:139;;;:::o;3414:102::-;3455:6;3506:2;3502:7;3497:2;3490:5;3486:14;3482:28;3472:38;;3414:102;;;:::o;3522:373::-;3608:3;3636:38;3668:5;3636:38;:::i;:::-;3690:70;3753:6;3748:3;3690:70;:::i;:::-;3683:77;;3769:65;3827:6;3822:3;3815:4;3808:5;3804:16;3769:65;:::i;:::-;3859:29;3881:6;3859:29;:::i;:::-;3854:3;3850:39;3843:46;;3612:283;3522:373;;;;:::o;3901:407::-;4034:4;4072:2;4061:9;4057:18;4049:26;;4085:65;4147:1;4136:9;4132:17;4123:6;4085:65;:::i;:::-;4197:9;4191:4;4187:20;4182:2;4171:9;4167:18;4160:48;4225:76;4296:4;4287:6;4225:76;:::i;:::-;4217:84;;3901:407;;;;;:::o;4314:115::-;4399:23;4416:5;4399:23;:::i;:::-;4394:3;4387:36;4314:115;;:::o;4435:218::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:69;4643:1;4632:9;4628:17;4619:6;4577:69;:::i;:::-;4435:218;;;;:::o;4659:126::-;4696:7;4736:42;4729:5;4725:54;4714:65;;4659:126;;;:::o;4791:60::-;4819:3;4840:5;4833:12;;4791:60;;;:::o;4857:142::-;4907:9;4940:53;4958:34;4967:24;4985:5;4967:24;:::i;:::-;4958:34;:::i;:::-;4940:53;:::i;:::-;4927:66;;4857:142;;;:::o;5005:126::-;5055:9;5088:37;5119:5;5088:37;:::i;:::-;5075:50;;5005:126;;;:::o;5137:145::-;5206:9;5239:37;5270:5;5239:37;:::i;:::-;5226:50;;5137:145;;;:::o;5288:169::-;5394:56;5444:5;5394:56;:::i;:::-;5389:3;5382:69;5288:169;;:::o;5463:260::-;5575:4;5613:2;5602:9;5598:18;5590:26;;5626:90;5713:1;5702:9;5698:17;5689:6;5626:90;:::i;:::-;5463:260;;;;:::o;5729:77::-;5766:7;5795:5;5784:16;;5729:77;;;:::o;5812:118::-;5899:24;5917:5;5899:24;:::i;:::-;5894:3;5887:37;5812:118;;:::o;5936:222::-;6029:4;6067:2;6056:9;6052:18;6044:26;;6080:71;6148:1;6137:9;6133:17;6124:6;6080:71;:::i;:::-;5936:222;;;;:::o;6164:96::-;6201:7;6230:24;6248:5;6230:24;:::i;:::-;6219:35;;6164:96;;;:::o;6266:118::-;6353:24;6371:5;6353:24;:::i;:::-;6348:3;6341:37;6266:118;;:::o;6390:222::-;6483:4;6521:2;6510:9;6506:18;6498:26;;6534:71;6602:1;6591:9;6587:17;6578:6;6534:71;:::i;:::-;6390:222;;;;:::o;6618:122::-;6691:24;6709:5;6691:24;:::i;:::-;6684:5;6681:35;6671:63;;6730:1;6727;6720:12;6671:63;6618:122;:::o;6746:139::-;6792:5;6830:6;6817:20;6808:29;;6846:33;6873:5;6846:33;:::i;:::-;6746:139;;;;:::o;6891:329::-;6950:6;6999:2;6987:9;6978:7;6974:23;6970:32;6967:119;;;7005:79;;:::i;:::-;6967:119;7125:1;7150:53;7195:7;7186:6;7175:9;7171:22;7150:53;:::i;:::-;7140:63;;7096:117;6891:329;;;;:::o;7226:309::-;7337:4;7375:2;7364:9;7360:18;7352:26;;7424:9;7418:4;7414:20;7410:1;7399:9;7395:17;7388:47;7452:76;7523:4;7514:6;7452:76;:::i;:::-;7444:84;;7226:309;;;;:::o;7541:122::-;7614:24;7632:5;7614:24;:::i;:::-;7607:5;7604:35;7594:63;;7653:1;7650;7643:12;7594:63;7541:122;:::o;7669:139::-;7715:5;7753:6;7740:20;7731:29;;7769:33;7796:5;7769:33;:::i;:::-;7669:139;;;;:::o;7814:329::-;7873:6;7922:2;7910:9;7901:7;7897:23;7893:32;7890:119;;;7928:79;;:::i;:::-;7890:119;8048:1;8073:53;8118:7;8109:6;8098:9;8094:22;8073:53;:::i;:::-;8063:63;;8019:117;7814:329;;;;:::o;8149:117::-;8258:1;8255;8248:12;8272:180;8320:77;8317:1;8310:88;8417:4;8414:1;8407:15;8441:4;8438:1;8431:15;8458:281;8541:27;8563:4;8541:27;:::i;:::-;8533:6;8529:40;8671:6;8659:10;8656:22;8635:18;8623:10;8620:34;8617:62;8614:88;;;8682:18;;:::i;:::-;8614:88;8722:10;8718:2;8711:22;8501:238;8458:281;;:::o;8745:129::-;8779:6;8806:20;;:::i;:::-;8796:30;;8835:33;8863:4;8855:6;8835:33;:::i;:::-;8745:129;;;:::o;9044:910::-;9123:5;9167:4;9155:9;9150:3;9146:19;9142:30;9139:117;;;9175:79;;:::i;:::-;9139:117;9274:21;9290:4;9274:21;:::i;:::-;9265:30;;9357:1;9397:49;9442:3;9433:6;9422:9;9418:22;9397:49;:::i;:::-;9390:4;9383:5;9379:16;9372:75;9305:153;9519:2;9560:49;9605:3;9596:6;9585:9;9581:22;9560:49;:::i;:::-;9553:4;9546:5;9542:16;9535:75;9468:153;9684:2;9725:48;9769:3;9760:6;9749:9;9745:22;9725:48;:::i;:::-;9718:4;9711:5;9707:16;9700:74;9631:154;9845:2;9886:49;9931:3;9922:6;9911:9;9907:22;9886:49;:::i;:::-;9879:4;9872:5;9868:16;9861:75;9795:152;9044:910;;;;:::o;9960:390::-;10049:6;10098:3;10086:9;10077:7;10073:23;10069:33;10066:120;;;10105:79;;:::i;:::-;10066:120;10225:1;10250:83;10325:7;10316:6;10305:9;10301:22;10250:83;:::i;:::-;10240:93;;10196:147;9960:390;;;;:::o;10356:104::-;10401:7;10430:24;10448:5;10430:24;:::i;:::-;10419:35;;10356:104;;;:::o;10466:138::-;10547:32;10573:5;10547:32;:::i;:::-;10540:5;10537:43;10527:71;;10594:1;10591;10584:12;10527:71;10466:138;:::o;10610:155::-;10664:5;10702:6;10689:20;10680:29;;10718:41;10753:5;10718:41;:::i;:::-;10610:155;;;;:::o;10771:117::-;10880:1;10877;10870:12;10894:307;10955:4;11045:18;11037:6;11034:30;11031:56;;;11067:18;;:::i;:::-;11031:56;11105:29;11127:6;11105:29;:::i;:::-;11097:37;;11189:4;11183;11179:15;11171:23;;10894:307;;;:::o;11207:148::-;11305:6;11300:3;11295;11282:30;11346:1;11337:6;11332:3;11328:16;11321:27;11207:148;;;:::o;11361:423::-;11438:5;11463:65;11479:48;11520:6;11479:48;:::i;:::-;11463:65;:::i;:::-;11454:74;;11551:6;11544:5;11537:21;11589:4;11582:5;11578:16;11627:3;11618:6;11613:3;11609:16;11606:25;11603:112;;;11634:79;;:::i;:::-;11603:112;11724:54;11771:6;11766:3;11761;11724:54;:::i;:::-;11444:340;11361:423;;;;;:::o;11803:338::-;11858:5;11907:3;11900:4;11892:6;11888:17;11884:27;11874:122;;11915:79;;:::i;:::-;11874:122;12032:6;12019:20;12057:78;12131:3;12123:6;12116:4;12108:6;12104:17;12057:78;:::i;:::-;12048:87;;11864:277;11803:338;;;;:::o;12147:668::-;12232:6;12240;12289:2;12277:9;12268:7;12264:23;12260:32;12257:119;;;12295:79;;:::i;:::-;12257:119;12415:1;12440:61;12493:7;12484:6;12473:9;12469:22;12440:61;:::i;:::-;12430:71;;12386:125;12578:2;12567:9;12563:18;12550:32;12609:18;12601:6;12598:30;12595:117;;;12631:79;;:::i;:::-;12595:117;12736:62;12790:7;12781:6;12770:9;12766:22;12736:62;:::i;:::-;12726:72;;12521:287;12147:668;;;;;:::o;12821:116::-;12872:4;12895:3;12887:11;;12925:4;12920:3;12916:14;12908:22;;12821:116;;;:::o;12943:77::-;12980:7;13009:5;12998:16;;12943:77;;;:::o;13026:154::-;13069:11;13105:29;13129:3;13123:10;13105:29;:::i;:::-;13168:5;13144:29;;13081:99;13026:154;;;:::o;13186:107::-;13230:8;13280:5;13274:4;13270:16;13249:37;;13186:107;;;;:::o;13299:594::-;13383:5;13414:38;13446:5;13414:38;:::i;:::-;13477:5;13504:40;13538:5;13504:40;:::i;:::-;13492:52;;13563:35;13589:8;13563:35;:::i;:::-;13554:44;;13622:2;13614:6;13611:14;13608:278;;;13693:169;13778:66;13748:6;13744:2;13740:15;13737:1;13733:23;13693:169;:::i;:::-;13670:5;13649:227;13640:236;;13608:278;13389:504;;13299:594;;;:::o;13899:143::-;13956:5;13987:6;13981:13;13972:22;;14003:33;14030:5;14003:33;:::i;:::-;13899:143;;;;:::o;14048:351::-;14118:6;14167:2;14155:9;14146:7;14142:23;14138:32;14135:119;;;14173:79;;:::i;:::-;14135:119;14293:1;14318:64;14374:7;14365:6;14354:9;14350:22;14318:64;:::i;:::-;14308:74;;14264:128;14048:351;;;;:::o"},"methodIdentifiers":{"VALIDATOR()":"393df8cb","cancelOwnershipHandover()":"54d1f13d","chainId()":"9a8a0592","completeOwnershipHandover(address)":"f04e283e","execute(bytes)":"09c5eabe","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","prepare(bytes)":"d7768c47","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","target()":"d4b83992","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef","validated(uint256)":"bec95277","value()":"3fa4f245"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"targetChainId\",\"type\":\"uint256\"}],\"name\":\"TargetChainUnsupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"executor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isValidated\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ActionValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VALIDATOR\",\"outputs\":[{\"internalType\":\"contract Validator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"prepare\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"target\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"validated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"value\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The action is expected to be prepared with the data payload for the minting of the tokenThis a minimal generic implementation that should be extended if additional functionality or customizations are requiredIt is expected that the target contract has an externally accessible mint function whose selector\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"details\":\"The `data` field should contain the return data from the action, if any.\"},\"ActionValidated(address,bool,bytes)\":{\"details\":\"The `data` field should contain implementation-specific context, if applicable.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"execute(bytes)\":{\"params\":{\"data_\":\"The data payload for the call (not used in this implementation)\"},\"returns\":{\"returnData\":\"The return data from the call\",\"success\":\"The success status of the call\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The data payload for the mint action `(address target, bytes4 selector, uint256 value)`\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"prepare(bytes)\":{\"details\":\"Note that the mint value is NOT included in the prepared payload but must be sent with the call\",\"params\":{\"data_\":\"The ABI-encoded payload for the target contract call\"},\"returns\":{\"_0\":\"The encoded payload to be sent to the target contract\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The first 20 bytes of the payload must be the holder address and the remaining bytes must be an encoded token ID (uint256)Example: `abi.encode(address(holder), abi.encode(uint256(tokenId)))`\",\"params\":{\"data_\":\"The data payload for the action `(address holder, (uint256 tokenId))`\"},\"returns\":{\"success\":\"True if the action has been validated for the user\"}}},\"title\":\"ERC721 Mint Action\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"TargetChainUnsupported(uint256)\":[{\"notice\":\"Thrown when execution on a given chain is not supported\"}]},\"events\":{\"ActionExecuted(address,address,bool,bytes)\":{\"notice\":\"Emitted when the action is executed by a proxy.\"},\"ActionValidated(address,bool,bytes)\":{\"notice\":\"Emitted when the action is validated\"}},\"kind\":\"user\",\"methods\":{\"VALIDATOR()\":{\"notice\":\"The validator for the action (which may be the action itself where appropriate)\"},\"chainId()\":{\"notice\":\"The target chain ID\"},\"constructor\":{\"notice\":\"Construct the ERC721 Mint Action\"},\"execute(bytes)\":{\"notice\":\"Execute the action (not yet implemented)\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the owner and the required mint data\"},\"prepare(bytes)\":{\"notice\":\"Prepare the action for execution and return the expected payload\"},\"selector()\":{\"notice\":\"The selector for the function to be called\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"target()\":{\"notice\":\"The target contract\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"},\"validated(uint256)\":{\"notice\":\"The set of validated tokens\"},\"value()\":{\"notice\":\"The native token value to send with the function call\"}},\"notice\":\"A primitive action to mint and/or validate that an ERC721 token has been minted\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/actions/ERC721MintAction.sol\":\"ERC721MintAction\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/actions/AContractAction.sol\":{\"keccak256\":\"0x8c63ac88b8ae8d62e434efee64cba6dfb75328cf9878aadd9a2731d6c661b401\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3d6cd76a30cb8aa1047f1607bd4b697e1edd6d5d872ea9caa053482f54b70e50\",\"dweb:/ipfs/QmPB7TaQBFFx5sePRha8wUyB4mSF6cpRpX7jRWKuMX2cZr\"]},\"contracts/actions/AERC721MintAction.sol\":{\"keccak256\":\"0x1df1b53c518de5c33df7ee050ab6fd939105974ba997e57cfa2fd897fc2ad2d9\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dba57b32d8f5afb43271b2fbcf95827f5a36bf2eee18f6cfa1b2fa00c3f90921\",\"dweb:/ipfs/QmfBT7vUQ6PJECgoFA167VX3HctVXzFMVr7fvPfmadDxvr\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/actions/ContractAction.sol\":{\"keccak256\":\"0x5bb056bdfe74a0a8233c8625574e3d18009079978acaa73d5b977cc6c9a95a65\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://600ac50bda86d601fcd38c9bd852ce5161fd120b28da199f6b33b1cb1ab3c89e\",\"dweb:/ipfs/QmcQvgcSjkYitHT9CAjRvdtHyn3xBpNCE7hqERUWS2173A\"]},\"contracts/actions/ERC721MintAction.sol\":{\"keccak256\":\"0x69da7406c736155d4067a5a13752b6b9a096393291436a58f8f6fe0ca108ea13\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5732ef68f25e63fb6844e6db0c619f68ddbb2b0d7ee60d690a7da46814c472e8\",\"dweb:/ipfs/QmQg3QahKgHtUBp4TwqHzmhpXudFUUMu3cDQswLuqZ8wTy\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/allowlists/ASimpleAllowList.sol":{"ASimpleAllowList":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"inputs":[],"name":"LIST_MANAGER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"allowed_","type":"bool[]"}],"name":"setAllowed","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"LIST_MANAGER_ROLE()":"98332bbc","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","setAllowed(address[],bool[])":"3abb0604","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LIST_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"allowed_\",\"type\":\"bool[]\"}],\"name\":\"setAllowed\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"setAllowed(address[],bool[])\":{\"details\":\"The length of the `users_` and `allowed_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"allowed_\":\"The allowed status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_allowed\":{\"details\":\"An internal mapping of allowed statuses\"}},\"title\":\"Simple AllowList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"LIST_MANAGER_ROLE()\":{\"notice\":\"The role for managing the allow list\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized\"},\"setAllowed(address[],bool[])\":{\"notice\":\"Set the allowed status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/ASimpleAllowList.sol\":\"ASimpleAllowList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/ASimpleAllowList.sol\":{\"keccak256\":\"0x5eaa5dd8c8950c248d1f9e35c2b37182aa30e94f29a7c40124533e05365a961c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6c74d9642b12b51a71b37d2c44c8f9d013f1e482603435aa69f885efb0957776\",\"dweb:/ipfs/QmU1VFaUvKQhL54jrpvUen5D9qaMEtP5JWdzNxtdaF4Wbk\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/allowlists/ASimpleDenyList.sol":{"ASimpleDenyList":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"denied_","type":"bool[]"}],"name":"setDenied","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setDenied(address[],bool[])":"141973b0","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"denied_\",\"type\":\"bool[]\"}],\"name\":\"setDenied\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setDenied(address[],bool[])\":{\"details\":\"The length of the `users_` and `denied_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"denied_\":\"The denied status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_denied\":{\"details\":\"An internal mapping of denied statuses\"}},\"title\":\"SimpleDenyList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized (i.e. not denied)\"},\"setDenied(address[],bool[])\":{\"notice\":\"Set the denied status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/ASimpleDenyList.sol\":\"ASimpleDenyList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/ASimpleDenyList.sol\":{\"keccak256\":\"0x577e0109c14871f2970e1a773f2eb0ca671ad02e4a6f151f06a08d7e139e7271\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6925b0ef57ebf0df27e43d9b6cb077737f27f96ed3dedc3608a8e5890d79334d\",\"dweb:/ipfs/QmeWJksm6F1AGNb68ZdmAg7FeSgKYEzzeGC37N8ndkiN6F\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/allowlists/AllowList.sol":{"AllowList":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Allow List classes are expected to implement the authorization of users based on implementation-specific criteria, which may involve validation of a data payload. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isAllowed(address,bytes)\":{\"params\":{\"data_\":\"The data payload for the authorization check, if applicable\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost AllowList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor to initialize the owner\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Allow List within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/AllowList.sol\":\"AllowList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/allowlists/SimpleAllowList.sol":{"SimpleAllowList":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"inputs":[],"name":"LIST_MANAGER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"allowed_","type":"bool[]"}],"name":"setAllowed","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13539":{"entryPoint":null,"id":13539,"parameterSlots":0,"returnSlots":0},"@_13608":{"entryPoint":null,"id":13608,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61140e806101b45f395ff3fe608060405260043610610113575f3560e01c80634a4ee7b11161009f57806398332bbc1161006357806398332bbc1461031d578063e3f756de14610347578063f04e283e14610383578063f2fde38b1461039f578063fee81cf4146103bb57610113565b80634a4ee7b114610287578063514e62fc146102a357806354d1f13d146102df578063715018a6146102e95780638da5cb5b146102f357610113565b806325692962116100e657806325692962146101c757806328d6183b146101d15780632de94807146101fb5780633abb060414610237578063439fab911461025f57610113565b806301ffc9a714610117578063183a4f6e146101535780631c10893f1461016f5780631cd64df41461018b575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610d51565b6103f7565b60405161014a9190610d96565b60405180910390f35b61016d60048036038101906101689190610de2565b610470565b005b61018960048036038101906101849190610e67565b61047d565b005b348015610196575f80fd5b506101b160048036038101906101ac9190610e67565b610493565b6040516101be9190610d96565b60405180910390f35b6101cf6104a9565b005b3480156101dc575f80fd5b506101e56104fa565b6040516101f29190610eb4565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c9190610ecd565b610521565b60405161022e9190610f07565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190610fd6565b61053a565b005b34801561026a575f80fd5b50610285600480360381019061028091906110a9565b610647565b005b6102a1600480360381019061029c9190610e67565b61076f565b005b3480156102ae575f80fd5b506102c960048036038101906102c49190610e67565b610785565b6040516102d69190610d96565b60405180910390f35b6102e761079c565b005b6102f16107d5565b005b3480156102fe575f80fd5b506103076107e8565b6040516103149190611103565b60405180910390f35b348015610328575f80fd5b50610331610810565b60405161033e9190610f07565b60405180910390f35b348015610352575f80fd5b5061036d6004803603810190610368919061111c565b610815565b60405161037a9190610d96565b60405180910390f35b61039d60048036038101906103989190610ecd565b610868565b005b6103b960048036038101906103b49190610ecd565b6108a6565b005b3480156103c6575f80fd5b506103e160048036038101906103dc9190610ecd565b6108cf565b6040516103ee9190610f07565b60405180910390f35b5f7f2bc9016b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104695750610468826108e8565b5b9050919050565b61047a3382610961565b50565b610485610970565b61048f82826109a7565b5050565b5f818261049f85610521565b1614905092915050565b5f6104b26109b7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f2bc9016b00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610545816109c1565b828290508585905014610584576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561063f578383828181106105a4576105a3611179565b5b90506020020160208101906105b991906111d0565b5f808888858181106105ce576105cd611179565b5b90506020020160208101906105e39190610ecd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610586565b505050505050565b5f6106506109e8565b905080546003825580156106825760018160011c14303b106106795763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f808484810190610694919061137e565b915091506106a182610a11565b6106ac8260026109a7565b5f5b81518110156107325760015f808484815181106106ce576106cd611179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ae565b505050801561076a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b610777610970565b6107818282610961565b5050565b5f808261079185610521565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6107dd610970565b6107e65f610ae7565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610870610970565b63389a75e1600c52805f526020600c20805442111561089657636f5e88185f526004601cfd5b5f8155506108a381610ae7565b50565b6108ae610970565b8060601b6108c357637448fbae5f526004601cfd5b6108cc81610ae7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fcade8742000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061095a575061095982610bad565b5b9050919050565b61096c82825f610c26565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146109a5576382b429005f526004601cfd5b565b6109b382826001610c26565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c2054166109e5576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610a19610c7e565b15610a91577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610a5357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ae4565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610aef610c7e565b15610b54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610baa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c1f5750610c1e82610c82565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783610c4857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d3081610cfc565b8114610d3a575f80fd5b50565b5f81359050610d4b81610d27565b92915050565b5f60208284031215610d6657610d65610cf4565b5b5f610d7384828501610d3d565b91505092915050565b5f8115159050919050565b610d9081610d7c565b82525050565b5f602082019050610da95f830184610d87565b92915050565b5f819050919050565b610dc181610daf565b8114610dcb575f80fd5b50565b5f81359050610ddc81610db8565b92915050565b5f60208284031215610df757610df6610cf4565b5b5f610e0484828501610dce565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e3682610e0d565b9050919050565b610e4681610e2c565b8114610e50575f80fd5b50565b5f81359050610e6181610e3d565b92915050565b5f8060408385031215610e7d57610e7c610cf4565b5b5f610e8a85828601610e53565b9250506020610e9b85828601610dce565b9150509250929050565b610eae81610cfc565b82525050565b5f602082019050610ec75f830184610ea5565b92915050565b5f60208284031215610ee257610ee1610cf4565b5b5f610eef84828501610e53565b91505092915050565b610f0181610daf565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f4157610f40610f20565b5b8235905067ffffffffffffffff811115610f5e57610f5d610f24565b5b602083019150836020820283011115610f7a57610f79610f28565b5b9250929050565b5f8083601f840112610f9657610f95610f20565b5b8235905067ffffffffffffffff811115610fb357610fb2610f24565b5b602083019150836020820283011115610fcf57610fce610f28565b5b9250929050565b5f805f8060408587031215610fee57610fed610cf4565b5b5f85013567ffffffffffffffff81111561100b5761100a610cf8565b5b61101787828801610f2c565b9450945050602085013567ffffffffffffffff81111561103a57611039610cf8565b5b61104687828801610f81565b925092505092959194509250565b5f8083601f84011261106957611068610f20565b5b8235905067ffffffffffffffff81111561108657611085610f24565b5b6020830191508360018202830111156110a2576110a1610f28565b5b9250929050565b5f80602083850312156110bf576110be610cf4565b5b5f83013567ffffffffffffffff8111156110dc576110db610cf8565b5b6110e885828601611054565b92509250509250929050565b6110fd81610e2c565b82525050565b5f6020820190506111165f8301846110f4565b92915050565b5f805f6040848603121561113357611132610cf4565b5b5f61114086828701610e53565b935050602084013567ffffffffffffffff81111561116157611160610cf8565b5b61116d86828701611054565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6111af81610d7c565b81146111b9575f80fd5b50565b5f813590506111ca816111a6565b92915050565b5f602082840312156111e5576111e4610cf4565b5b5f6111f2848285016111bc565b91505092915050565b5f61120582610e0d565b9050919050565b611215816111fb565b811461121f575f80fd5b50565b5f813590506112308161120c565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61127c82611236565b810181811067ffffffffffffffff8211171561129b5761129a611246565b5b80604052505050565b5f6112ad610ceb565b90506112b98282611273565b919050565b5f67ffffffffffffffff8211156112d8576112d7611246565b5b602082029050602081019050919050565b5f6112fb6112f6846112be565b6112a4565b9050808382526020820190506020840283018581111561131e5761131d610f28565b5b835b8181101561134757806113338882610e53565b845260208401935050602081019050611320565b5050509392505050565b5f82601f83011261136557611364610f20565b5b81356113758482602086016112e9565b91505092915050565b5f806040838503121561139457611393610cf4565b5b5f6113a185828601611222565b925050602083013567ffffffffffffffff8111156113c2576113c1610cf8565b5b6113ce85828601611351565b915050925092905056fea26469706673582212208ba1101cb31944f6c19182a487faeea5afa38ac2182b660d7beb06572a27971a64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x140E DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4A4EE7B1 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0x98332BBC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x98332BBC EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3BB JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x287 JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2F3 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x25692962 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x3ABB0604 EQ PUSH2 0x237 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x25F JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x18B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xD51 JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x189 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x47D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x493 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CF PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E5 PUSH2 0x4FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xEB4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x206 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21C SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x242 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xFD6 JUMP JUMPDEST PUSH2 0x53A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x285 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x280 SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x647 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29C SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x76F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x785 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E7 PUSH2 0x79C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2F1 PUSH2 0x7D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x307 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x328 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x331 PUSH2 0x810 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33E SWAP2 SWAP1 PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x368 SWAP2 SWAP1 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x815 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37A SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x398 SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x868 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x8A6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EE SWAP2 SWAP1 PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x2BC9016B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x469 JUMPI POP PUSH2 0x468 DUP3 PUSH2 0x8E8 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x47A CALLER DUP3 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x485 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x48F DUP3 DUP3 PUSH2 0x9A7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x49F DUP6 PUSH2 0x521 JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4B2 PUSH2 0x9B7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x2BC9016B00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH2 0x545 DUP2 PUSH2 0x9C1 JUMP JUMPDEST DUP3 DUP3 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x584 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP6 DUP6 SWAP1 POP DUP2 LT ISZERO PUSH2 0x63F JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x1179 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5B9 SWAP2 SWAP1 PUSH2 0x11D0 JUMP JUMPDEST PUSH0 DUP1 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x5CE JUMPI PUSH2 0x5CD PUSH2 0x1179 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5E3 SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x586 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x650 PUSH2 0x9E8 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x679 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x694 SWAP2 SWAP1 PUSH2 0x137E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x6A1 DUP3 PUSH2 0xA11 JUMP JUMPDEST PUSH2 0x6AC DUP3 PUSH1 0x2 PUSH2 0x9A7 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x732 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x6CE JUMPI PUSH2 0x6CD PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x6AE JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x76A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x777 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x781 DUP3 DUP3 PUSH2 0x961 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0x791 DUP6 PUSH2 0x521 JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x7DD PUSH2 0x970 JUMP JUMPDEST PUSH2 0x7E6 PUSH0 PUSH2 0xAE7 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x870 PUSH2 0x970 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x896 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x8A3 DUP2 PUSH2 0xAE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x8AE PUSH2 0x970 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x8C3 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x8CC DUP2 PUSH2 0xAE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xCADE874200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x95A JUMPI POP PUSH2 0x959 DUP3 PUSH2 0xBAD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96C DUP3 DUP3 PUSH0 PUSH2 0xC26 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x9A5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x9B3 DUP3 DUP3 PUSH1 0x1 PUSH2 0xC26 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x9E5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA19 PUSH2 0xC7E JUMP JUMPDEST ISZERO PUSH2 0xA91 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xA53 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xAE4 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xAEF PUSH2 0xC7E JUMP JUMPDEST ISZERO PUSH2 0xB54 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xBAA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC1F JUMPI POP PUSH2 0xC1E DUP3 PUSH2 0xC82 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0xC48 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD30 DUP2 PUSH2 0xCFC JUMP JUMPDEST DUP2 EQ PUSH2 0xD3A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD4B DUP2 PUSH2 0xD27 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD66 JUMPI PUSH2 0xD65 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD73 DUP5 DUP3 DUP6 ADD PUSH2 0xD3D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD90 DUP2 PUSH2 0xD7C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA9 PUSH0 DUP4 ADD DUP5 PUSH2 0xD87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDC1 DUP2 PUSH2 0xDAF JUMP JUMPDEST DUP2 EQ PUSH2 0xDCB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDDC DUP2 PUSH2 0xDB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDF7 JUMPI PUSH2 0xDF6 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE04 DUP5 DUP3 DUP6 ADD PUSH2 0xDCE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE36 DUP3 PUSH2 0xE0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE46 DUP2 PUSH2 0xE2C JUMP JUMPDEST DUP2 EQ PUSH2 0xE50 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE61 DUP2 PUSH2 0xE3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE7D JUMPI PUSH2 0xE7C PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE8A DUP6 DUP3 DUP7 ADD PUSH2 0xE53 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE9B DUP6 DUP3 DUP7 ADD PUSH2 0xDCE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xEAE DUP2 PUSH2 0xCFC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEC7 PUSH0 DUP4 ADD DUP5 PUSH2 0xEA5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEE2 JUMPI PUSH2 0xEE1 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEEF DUP5 DUP3 DUP6 ADD PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF01 DUP2 PUSH2 0xDAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF1A PUSH0 DUP4 ADD DUP5 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF41 JUMPI PUSH2 0xF40 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF5E JUMPI PUSH2 0xF5D PUSH2 0xF24 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF7A JUMPI PUSH2 0xF79 PUSH2 0xF28 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF96 JUMPI PUSH2 0xF95 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB3 JUMPI PUSH2 0xFB2 PUSH2 0xF24 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFCF JUMPI PUSH2 0xFCE PUSH2 0xF28 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xFEE JUMPI PUSH2 0xFED PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x100B JUMPI PUSH2 0x100A PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x1017 DUP8 DUP3 DUP9 ADD PUSH2 0xF2C JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x103A JUMPI PUSH2 0x1039 PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x1046 DUP8 DUP3 DUP9 ADD PUSH2 0xF81 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1069 JUMPI PUSH2 0x1068 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1086 JUMPI PUSH2 0x1085 PUSH2 0xF24 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x10A2 JUMPI PUSH2 0x10A1 PUSH2 0xF28 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10BF JUMPI PUSH2 0x10BE PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10DC JUMPI PUSH2 0x10DB PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x10E8 DUP6 DUP3 DUP7 ADD PUSH2 0x1054 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x10FD DUP2 PUSH2 0xE2C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1116 PUSH0 DUP4 ADD DUP5 PUSH2 0x10F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1133 JUMPI PUSH2 0x1132 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1140 DUP7 DUP3 DUP8 ADD PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1161 JUMPI PUSH2 0x1160 PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x116D DUP7 DUP3 DUP8 ADD PUSH2 0x1054 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11AF DUP2 PUSH2 0xD7C JUMP JUMPDEST DUP2 EQ PUSH2 0x11B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11CA DUP2 PUSH2 0x11A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11E5 JUMPI PUSH2 0x11E4 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11F2 DUP5 DUP3 DUP6 ADD PUSH2 0x11BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1205 DUP3 PUSH2 0xE0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1215 DUP2 PUSH2 0x11FB JUMP JUMPDEST DUP2 EQ PUSH2 0x121F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1230 DUP2 PUSH2 0x120C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x127C DUP3 PUSH2 0x1236 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x129B JUMPI PUSH2 0x129A PUSH2 0x1246 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x12AD PUSH2 0xCEB JUMP JUMPDEST SWAP1 POP PUSH2 0x12B9 DUP3 DUP3 PUSH2 0x1273 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x12FB PUSH2 0x12F6 DUP5 PUSH2 0x12BE JUMP JUMPDEST PUSH2 0x12A4 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x131E JUMPI PUSH2 0x131D PUSH2 0xF28 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1347 JUMPI DUP1 PUSH2 0x1333 DUP9 DUP3 PUSH2 0xE53 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1320 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1365 JUMPI PUSH2 0x1364 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1375 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1394 JUMPI PUSH2 0x1393 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13A1 DUP6 DUP3 DUP7 ADD PUSH2 0x1222 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13C2 JUMPI PUSH2 0x13C1 PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x13CE DUP6 DUP3 DUP7 ADD PUSH2 0x1351 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 LOG1 LT SHR 0xB3 NOT PREVRANDAO 0xF6 0xC1 SWAP2 DUP3 LOG4 DUP8 STATICCALL 0xEE 0xA5 0xAF LOG3 DUP11 0xC2 XOR 0x2B PUSH7 0xD7BEB06572A27 SWAP8 BYTE PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"472:899:38:-:0;;;764:53;;;;;;;;;;634:28:37;651:10;634:16;;;:28;;:::i;:::-;788:22:38;:20;;;:22;;:::i;:::-;472:899;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;472:899:38:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@LIST_MANAGER_ROLE_13271":{"entryPoint":2064,"id":13271,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6308":{"entryPoint":2416,"id":6308,"parameterSlots":0,"returnSlots":0},"@_checkRoles_6491":{"entryPoint":2497,"id":6491,"parameterSlots":1,"returnSlots":0},"@_grantRoles_6468":{"entryPoint":2471,"id":6468,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":3198,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":2536,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":2577,"id":6288,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6319":{"entryPoint":2487,"id":6319,"parameterSlots":0,"returnSlots":1},"@_removeRoles_6483":{"entryPoint":2401,"id":6483,"parameterSlots":2,"returnSlots":0},"@_setOwner_6302":{"entryPoint":2791,"id":6302,"parameterSlots":1,"returnSlots":0},"@_updateRoles_6453":{"entryPoint":3110,"id":6453,"parameterSlots":3,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":1948,"id":6368,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":2152,"id":6382,"parameterSlots":1,"returnSlots":0},"@getComponentInterface_13365":{"entryPoint":1274,"id":13365,"parameterSlots":0,"returnSlots":1},"@grantRoles_6545":{"entryPoint":1149,"id":6545,"parameterSlots":2,"returnSlots":0},"@hasAllRoles_6622":{"entryPoint":1171,"id":6622,"parameterSlots":2,"returnSlots":1},"@hasAnyRole_6603":{"entryPoint":1925,"id":6603,"parameterSlots":2,"returnSlots":1},"@initialize_13664":{"entryPoint":1607,"id":13664,"parameterSlots":2,"returnSlots":0},"@isAllowed_13303":{"entryPoint":2069,"id":13303,"parameterSlots":3,"returnSlots":1},"@owner_6390":{"entryPoint":2024,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":2255,"id":6400,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":2005,"id":6347,"parameterSlots":0,"returnSlots":0},"@renounceRoles_6574":{"entryPoint":1136,"id":6574,"parameterSlots":1,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1193,"id":6362,"parameterSlots":0,"returnSlots":0},"@revokeRoles_6561":{"entryPoint":1903,"id":6561,"parameterSlots":2,"returnSlots":0},"@rolesOf_6584":{"entryPoint":1313,"id":6584,"parameterSlots":1,"returnSlots":1},"@setAllowed_13351":{"entryPoint":1338,"id":13351,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13388":{"entryPoint":1015,"id":13388,"parameterSlots":1,"returnSlots":1},"@supportsInterface_13572":{"entryPoint":2280,"id":13572,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":2989,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":3202,"id":2830,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":2214,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4841,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3667,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4642,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":3884,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4945,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3969,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":4540,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":4180,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":3534,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3789,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr":{"entryPoint":4990,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":4380,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3687,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":4054,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":4560,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3409,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4265,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":3554,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4340,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3463,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":3749,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3832,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4355,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3478,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":3764,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3847,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4772,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3307,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4798,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":3628,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4603,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3452,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3324,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3597,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3503,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":4723,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":4473,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4678,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3876,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3872,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3880,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3320,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3316,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4662,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3645,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4620,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4518,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3367,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3512,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12894:64","nodeType":"YulBlock","src":"0:12894:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:32:64","nodeType":"YulBlock","src":"1563:32:64","statements":[{"nativeSrc":"1573:16:64","nodeType":"YulAssignment","src":"1573:16:64","value":{"name":"value","nativeSrc":"1584:5:64","nodeType":"YulIdentifier","src":"1584:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:77:64"},{"body":{"nativeSrc":"1644:79:64","nodeType":"YulBlock","src":"1644:79:64","statements":[{"body":{"nativeSrc":"1701:16:64","nodeType":"YulBlock","src":"1701:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1710:1:64","nodeType":"YulLiteral","src":"1710:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1713:1:64","nodeType":"YulLiteral","src":"1713:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1703:6:64","nodeType":"YulIdentifier","src":"1703:6:64"},"nativeSrc":"1703:12:64","nodeType":"YulFunctionCall","src":"1703:12:64"},"nativeSrc":"1703:12:64","nodeType":"YulExpressionStatement","src":"1703:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1667:5:64","nodeType":"YulIdentifier","src":"1667:5:64"},{"arguments":[{"name":"value","nativeSrc":"1692:5:64","nodeType":"YulIdentifier","src":"1692:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1674:17:64","nodeType":"YulIdentifier","src":"1674:17:64"},"nativeSrc":"1674:24:64","nodeType":"YulFunctionCall","src":"1674:24:64"}],"functionName":{"name":"eq","nativeSrc":"1664:2:64","nodeType":"YulIdentifier","src":"1664:2:64"},"nativeSrc":"1664:35:64","nodeType":"YulFunctionCall","src":"1664:35:64"}],"functionName":{"name":"iszero","nativeSrc":"1657:6:64","nodeType":"YulIdentifier","src":"1657:6:64"},"nativeSrc":"1657:43:64","nodeType":"YulFunctionCall","src":"1657:43:64"},"nativeSrc":"1654:63:64","nodeType":"YulIf","src":"1654:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"1601:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1637:5:64","nodeType":"YulTypedName","src":"1637:5:64","type":""}],"src":"1601:122:64"},{"body":{"nativeSrc":"1781:87:64","nodeType":"YulBlock","src":"1781:87:64","statements":[{"nativeSrc":"1791:29:64","nodeType":"YulAssignment","src":"1791:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"1813:6:64","nodeType":"YulIdentifier","src":"1813:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"1800:12:64","nodeType":"YulIdentifier","src":"1800:12:64"},"nativeSrc":"1800:20:64","nodeType":"YulFunctionCall","src":"1800:20:64"},"variableNames":[{"name":"value","nativeSrc":"1791:5:64","nodeType":"YulIdentifier","src":"1791:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1856:5:64","nodeType":"YulIdentifier","src":"1856:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1829:26:64","nodeType":"YulIdentifier","src":"1829:26:64"},"nativeSrc":"1829:33:64","nodeType":"YulFunctionCall","src":"1829:33:64"},"nativeSrc":"1829:33:64","nodeType":"YulExpressionStatement","src":"1829:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"1729:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1759:6:64","nodeType":"YulTypedName","src":"1759:6:64","type":""},{"name":"end","nativeSrc":"1767:3:64","nodeType":"YulTypedName","src":"1767:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1775:5:64","nodeType":"YulTypedName","src":"1775:5:64","type":""}],"src":"1729:139:64"},{"body":{"nativeSrc":"1940:263:64","nodeType":"YulBlock","src":"1940:263:64","statements":[{"body":{"nativeSrc":"1986:83:64","nodeType":"YulBlock","src":"1986:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1988:77:64","nodeType":"YulIdentifier","src":"1988:77:64"},"nativeSrc":"1988:79:64","nodeType":"YulFunctionCall","src":"1988:79:64"},"nativeSrc":"1988:79:64","nodeType":"YulExpressionStatement","src":"1988:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1961:7:64","nodeType":"YulIdentifier","src":"1961:7:64"},{"name":"headStart","nativeSrc":"1970:9:64","nodeType":"YulIdentifier","src":"1970:9:64"}],"functionName":{"name":"sub","nativeSrc":"1957:3:64","nodeType":"YulIdentifier","src":"1957:3:64"},"nativeSrc":"1957:23:64","nodeType":"YulFunctionCall","src":"1957:23:64"},{"kind":"number","nativeSrc":"1982:2:64","nodeType":"YulLiteral","src":"1982:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"1953:3:64","nodeType":"YulIdentifier","src":"1953:3:64"},"nativeSrc":"1953:32:64","nodeType":"YulFunctionCall","src":"1953:32:64"},"nativeSrc":"1950:119:64","nodeType":"YulIf","src":"1950:119:64"},{"nativeSrc":"2079:117:64","nodeType":"YulBlock","src":"2079:117:64","statements":[{"nativeSrc":"2094:15:64","nodeType":"YulVariableDeclaration","src":"2094:15:64","value":{"kind":"number","nativeSrc":"2108:1:64","nodeType":"YulLiteral","src":"2108:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2098:6:64","nodeType":"YulTypedName","src":"2098:6:64","type":""}]},{"nativeSrc":"2123:63:64","nodeType":"YulAssignment","src":"2123:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2158:9:64","nodeType":"YulIdentifier","src":"2158:9:64"},{"name":"offset","nativeSrc":"2169:6:64","nodeType":"YulIdentifier","src":"2169:6:64"}],"functionName":{"name":"add","nativeSrc":"2154:3:64","nodeType":"YulIdentifier","src":"2154:3:64"},"nativeSrc":"2154:22:64","nodeType":"YulFunctionCall","src":"2154:22:64"},{"name":"dataEnd","nativeSrc":"2178:7:64","nodeType":"YulIdentifier","src":"2178:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2133:20:64","nodeType":"YulIdentifier","src":"2133:20:64"},"nativeSrc":"2133:53:64","nodeType":"YulFunctionCall","src":"2133:53:64"},"variableNames":[{"name":"value0","nativeSrc":"2123:6:64","nodeType":"YulIdentifier","src":"2123:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"1874:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1910:9:64","nodeType":"YulTypedName","src":"1910:9:64","type":""},{"name":"dataEnd","nativeSrc":"1921:7:64","nodeType":"YulTypedName","src":"1921:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1933:6:64","nodeType":"YulTypedName","src":"1933:6:64","type":""}],"src":"1874:329:64"},{"body":{"nativeSrc":"2254:81:64","nodeType":"YulBlock","src":"2254:81:64","statements":[{"nativeSrc":"2264:65:64","nodeType":"YulAssignment","src":"2264:65:64","value":{"arguments":[{"name":"value","nativeSrc":"2279:5:64","nodeType":"YulIdentifier","src":"2279:5:64"},{"kind":"number","nativeSrc":"2286:42:64","nodeType":"YulLiteral","src":"2286:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2275:3:64","nodeType":"YulIdentifier","src":"2275:3:64"},"nativeSrc":"2275:54:64","nodeType":"YulFunctionCall","src":"2275:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2264:7:64","nodeType":"YulIdentifier","src":"2264:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2209:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2236:5:64","nodeType":"YulTypedName","src":"2236:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2246:7:64","nodeType":"YulTypedName","src":"2246:7:64","type":""}],"src":"2209:126:64"},{"body":{"nativeSrc":"2386:51:64","nodeType":"YulBlock","src":"2386:51:64","statements":[{"nativeSrc":"2396:35:64","nodeType":"YulAssignment","src":"2396:35:64","value":{"arguments":[{"name":"value","nativeSrc":"2425:5:64","nodeType":"YulIdentifier","src":"2425:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2407:17:64","nodeType":"YulIdentifier","src":"2407:17:64"},"nativeSrc":"2407:24:64","nodeType":"YulFunctionCall","src":"2407:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2396:7:64","nodeType":"YulIdentifier","src":"2396:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"2341:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2368:5:64","nodeType":"YulTypedName","src":"2368:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2378:7:64","nodeType":"YulTypedName","src":"2378:7:64","type":""}],"src":"2341:96:64"},{"body":{"nativeSrc":"2486:79:64","nodeType":"YulBlock","src":"2486:79:64","statements":[{"body":{"nativeSrc":"2543:16:64","nodeType":"YulBlock","src":"2543:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2552:1:64","nodeType":"YulLiteral","src":"2552:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2555:1:64","nodeType":"YulLiteral","src":"2555:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2545:6:64","nodeType":"YulIdentifier","src":"2545:6:64"},"nativeSrc":"2545:12:64","nodeType":"YulFunctionCall","src":"2545:12:64"},"nativeSrc":"2545:12:64","nodeType":"YulExpressionStatement","src":"2545:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2509:5:64","nodeType":"YulIdentifier","src":"2509:5:64"},{"arguments":[{"name":"value","nativeSrc":"2534:5:64","nodeType":"YulIdentifier","src":"2534:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2516:17:64","nodeType":"YulIdentifier","src":"2516:17:64"},"nativeSrc":"2516:24:64","nodeType":"YulFunctionCall","src":"2516:24:64"}],"functionName":{"name":"eq","nativeSrc":"2506:2:64","nodeType":"YulIdentifier","src":"2506:2:64"},"nativeSrc":"2506:35:64","nodeType":"YulFunctionCall","src":"2506:35:64"}],"functionName":{"name":"iszero","nativeSrc":"2499:6:64","nodeType":"YulIdentifier","src":"2499:6:64"},"nativeSrc":"2499:43:64","nodeType":"YulFunctionCall","src":"2499:43:64"},"nativeSrc":"2496:63:64","nodeType":"YulIf","src":"2496:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"2443:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2479:5:64","nodeType":"YulTypedName","src":"2479:5:64","type":""}],"src":"2443:122:64"},{"body":{"nativeSrc":"2623:87:64","nodeType":"YulBlock","src":"2623:87:64","statements":[{"nativeSrc":"2633:29:64","nodeType":"YulAssignment","src":"2633:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2655:6:64","nodeType":"YulIdentifier","src":"2655:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2642:12:64","nodeType":"YulIdentifier","src":"2642:12:64"},"nativeSrc":"2642:20:64","nodeType":"YulFunctionCall","src":"2642:20:64"},"variableNames":[{"name":"value","nativeSrc":"2633:5:64","nodeType":"YulIdentifier","src":"2633:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2698:5:64","nodeType":"YulIdentifier","src":"2698:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2671:26:64","nodeType":"YulIdentifier","src":"2671:26:64"},"nativeSrc":"2671:33:64","nodeType":"YulFunctionCall","src":"2671:33:64"},"nativeSrc":"2671:33:64","nodeType":"YulExpressionStatement","src":"2671:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"2571:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2601:6:64","nodeType":"YulTypedName","src":"2601:6:64","type":""},{"name":"end","nativeSrc":"2609:3:64","nodeType":"YulTypedName","src":"2609:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2617:5:64","nodeType":"YulTypedName","src":"2617:5:64","type":""}],"src":"2571:139:64"},{"body":{"nativeSrc":"2799:391:64","nodeType":"YulBlock","src":"2799:391:64","statements":[{"body":{"nativeSrc":"2845:83:64","nodeType":"YulBlock","src":"2845:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2847:77:64","nodeType":"YulIdentifier","src":"2847:77:64"},"nativeSrc":"2847:79:64","nodeType":"YulFunctionCall","src":"2847:79:64"},"nativeSrc":"2847:79:64","nodeType":"YulExpressionStatement","src":"2847:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2820:7:64","nodeType":"YulIdentifier","src":"2820:7:64"},{"name":"headStart","nativeSrc":"2829:9:64","nodeType":"YulIdentifier","src":"2829:9:64"}],"functionName":{"name":"sub","nativeSrc":"2816:3:64","nodeType":"YulIdentifier","src":"2816:3:64"},"nativeSrc":"2816:23:64","nodeType":"YulFunctionCall","src":"2816:23:64"},{"kind":"number","nativeSrc":"2841:2:64","nodeType":"YulLiteral","src":"2841:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2812:3:64","nodeType":"YulIdentifier","src":"2812:3:64"},"nativeSrc":"2812:32:64","nodeType":"YulFunctionCall","src":"2812:32:64"},"nativeSrc":"2809:119:64","nodeType":"YulIf","src":"2809:119:64"},{"nativeSrc":"2938:117:64","nodeType":"YulBlock","src":"2938:117:64","statements":[{"nativeSrc":"2953:15:64","nodeType":"YulVariableDeclaration","src":"2953:15:64","value":{"kind":"number","nativeSrc":"2967:1:64","nodeType":"YulLiteral","src":"2967:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2957:6:64","nodeType":"YulTypedName","src":"2957:6:64","type":""}]},{"nativeSrc":"2982:63:64","nodeType":"YulAssignment","src":"2982:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3017:9:64","nodeType":"YulIdentifier","src":"3017:9:64"},{"name":"offset","nativeSrc":"3028:6:64","nodeType":"YulIdentifier","src":"3028:6:64"}],"functionName":{"name":"add","nativeSrc":"3013:3:64","nodeType":"YulIdentifier","src":"3013:3:64"},"nativeSrc":"3013:22:64","nodeType":"YulFunctionCall","src":"3013:22:64"},{"name":"dataEnd","nativeSrc":"3037:7:64","nodeType":"YulIdentifier","src":"3037:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2992:20:64","nodeType":"YulIdentifier","src":"2992:20:64"},"nativeSrc":"2992:53:64","nodeType":"YulFunctionCall","src":"2992:53:64"},"variableNames":[{"name":"value0","nativeSrc":"2982:6:64","nodeType":"YulIdentifier","src":"2982:6:64"}]}]},{"nativeSrc":"3065:118:64","nodeType":"YulBlock","src":"3065:118:64","statements":[{"nativeSrc":"3080:16:64","nodeType":"YulVariableDeclaration","src":"3080:16:64","value":{"kind":"number","nativeSrc":"3094:2:64","nodeType":"YulLiteral","src":"3094:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"3084:6:64","nodeType":"YulTypedName","src":"3084:6:64","type":""}]},{"nativeSrc":"3110:63:64","nodeType":"YulAssignment","src":"3110:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3145:9:64","nodeType":"YulIdentifier","src":"3145:9:64"},{"name":"offset","nativeSrc":"3156:6:64","nodeType":"YulIdentifier","src":"3156:6:64"}],"functionName":{"name":"add","nativeSrc":"3141:3:64","nodeType":"YulIdentifier","src":"3141:3:64"},"nativeSrc":"3141:22:64","nodeType":"YulFunctionCall","src":"3141:22:64"},{"name":"dataEnd","nativeSrc":"3165:7:64","nodeType":"YulIdentifier","src":"3165:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3120:20:64","nodeType":"YulIdentifier","src":"3120:20:64"},"nativeSrc":"3120:53:64","nodeType":"YulFunctionCall","src":"3120:53:64"},"variableNames":[{"name":"value1","nativeSrc":"3110:6:64","nodeType":"YulIdentifier","src":"3110:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2716:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2761:9:64","nodeType":"YulTypedName","src":"2761:9:64","type":""},{"name":"dataEnd","nativeSrc":"2772:7:64","nodeType":"YulTypedName","src":"2772:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2784:6:64","nodeType":"YulTypedName","src":"2784:6:64","type":""},{"name":"value1","nativeSrc":"2792:6:64","nodeType":"YulTypedName","src":"2792:6:64","type":""}],"src":"2716:474:64"},{"body":{"nativeSrc":"3259:52:64","nodeType":"YulBlock","src":"3259:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3276:3:64","nodeType":"YulIdentifier","src":"3276:3:64"},{"arguments":[{"name":"value","nativeSrc":"3298:5:64","nodeType":"YulIdentifier","src":"3298:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"3281:16:64","nodeType":"YulIdentifier","src":"3281:16:64"},"nativeSrc":"3281:23:64","nodeType":"YulFunctionCall","src":"3281:23:64"}],"functionName":{"name":"mstore","nativeSrc":"3269:6:64","nodeType":"YulIdentifier","src":"3269:6:64"},"nativeSrc":"3269:36:64","nodeType":"YulFunctionCall","src":"3269:36:64"},"nativeSrc":"3269:36:64","nodeType":"YulExpressionStatement","src":"3269:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"3196:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3247:5:64","nodeType":"YulTypedName","src":"3247:5:64","type":""},{"name":"pos","nativeSrc":"3254:3:64","nodeType":"YulTypedName","src":"3254:3:64","type":""}],"src":"3196:115:64"},{"body":{"nativeSrc":"3413:122:64","nodeType":"YulBlock","src":"3413:122:64","statements":[{"nativeSrc":"3423:26:64","nodeType":"YulAssignment","src":"3423:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3435:9:64","nodeType":"YulIdentifier","src":"3435:9:64"},{"kind":"number","nativeSrc":"3446:2:64","nodeType":"YulLiteral","src":"3446:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3431:3:64","nodeType":"YulIdentifier","src":"3431:3:64"},"nativeSrc":"3431:18:64","nodeType":"YulFunctionCall","src":"3431:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3423:4:64","nodeType":"YulIdentifier","src":"3423:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3501:6:64","nodeType":"YulIdentifier","src":"3501:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3514:9:64","nodeType":"YulIdentifier","src":"3514:9:64"},{"kind":"number","nativeSrc":"3525:1:64","nodeType":"YulLiteral","src":"3525:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3510:3:64","nodeType":"YulIdentifier","src":"3510:3:64"},"nativeSrc":"3510:17:64","nodeType":"YulFunctionCall","src":"3510:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"3459:41:64","nodeType":"YulIdentifier","src":"3459:41:64"},"nativeSrc":"3459:69:64","nodeType":"YulFunctionCall","src":"3459:69:64"},"nativeSrc":"3459:69:64","nodeType":"YulExpressionStatement","src":"3459:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"3317:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3385:9:64","nodeType":"YulTypedName","src":"3385:9:64","type":""},{"name":"value0","nativeSrc":"3397:6:64","nodeType":"YulTypedName","src":"3397:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3408:4:64","nodeType":"YulTypedName","src":"3408:4:64","type":""}],"src":"3317:218:64"},{"body":{"nativeSrc":"3607:263:64","nodeType":"YulBlock","src":"3607:263:64","statements":[{"body":{"nativeSrc":"3653:83:64","nodeType":"YulBlock","src":"3653:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3655:77:64","nodeType":"YulIdentifier","src":"3655:77:64"},"nativeSrc":"3655:79:64","nodeType":"YulFunctionCall","src":"3655:79:64"},"nativeSrc":"3655:79:64","nodeType":"YulExpressionStatement","src":"3655:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3628:7:64","nodeType":"YulIdentifier","src":"3628:7:64"},{"name":"headStart","nativeSrc":"3637:9:64","nodeType":"YulIdentifier","src":"3637:9:64"}],"functionName":{"name":"sub","nativeSrc":"3624:3:64","nodeType":"YulIdentifier","src":"3624:3:64"},"nativeSrc":"3624:23:64","nodeType":"YulFunctionCall","src":"3624:23:64"},{"kind":"number","nativeSrc":"3649:2:64","nodeType":"YulLiteral","src":"3649:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3620:3:64","nodeType":"YulIdentifier","src":"3620:3:64"},"nativeSrc":"3620:32:64","nodeType":"YulFunctionCall","src":"3620:32:64"},"nativeSrc":"3617:119:64","nodeType":"YulIf","src":"3617:119:64"},{"nativeSrc":"3746:117:64","nodeType":"YulBlock","src":"3746:117:64","statements":[{"nativeSrc":"3761:15:64","nodeType":"YulVariableDeclaration","src":"3761:15:64","value":{"kind":"number","nativeSrc":"3775:1:64","nodeType":"YulLiteral","src":"3775:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3765:6:64","nodeType":"YulTypedName","src":"3765:6:64","type":""}]},{"nativeSrc":"3790:63:64","nodeType":"YulAssignment","src":"3790:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3825:9:64","nodeType":"YulIdentifier","src":"3825:9:64"},{"name":"offset","nativeSrc":"3836:6:64","nodeType":"YulIdentifier","src":"3836:6:64"}],"functionName":{"name":"add","nativeSrc":"3821:3:64","nodeType":"YulIdentifier","src":"3821:3:64"},"nativeSrc":"3821:22:64","nodeType":"YulFunctionCall","src":"3821:22:64"},{"name":"dataEnd","nativeSrc":"3845:7:64","nodeType":"YulIdentifier","src":"3845:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3800:20:64","nodeType":"YulIdentifier","src":"3800:20:64"},"nativeSrc":"3800:53:64","nodeType":"YulFunctionCall","src":"3800:53:64"},"variableNames":[{"name":"value0","nativeSrc":"3790:6:64","nodeType":"YulIdentifier","src":"3790:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"3541:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3577:9:64","nodeType":"YulTypedName","src":"3577:9:64","type":""},{"name":"dataEnd","nativeSrc":"3588:7:64","nodeType":"YulTypedName","src":"3588:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3600:6:64","nodeType":"YulTypedName","src":"3600:6:64","type":""}],"src":"3541:329:64"},{"body":{"nativeSrc":"3941:53:64","nodeType":"YulBlock","src":"3941:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3958:3:64","nodeType":"YulIdentifier","src":"3958:3:64"},{"arguments":[{"name":"value","nativeSrc":"3981:5:64","nodeType":"YulIdentifier","src":"3981:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3963:17:64","nodeType":"YulIdentifier","src":"3963:17:64"},"nativeSrc":"3963:24:64","nodeType":"YulFunctionCall","src":"3963:24:64"}],"functionName":{"name":"mstore","nativeSrc":"3951:6:64","nodeType":"YulIdentifier","src":"3951:6:64"},"nativeSrc":"3951:37:64","nodeType":"YulFunctionCall","src":"3951:37:64"},"nativeSrc":"3951:37:64","nodeType":"YulExpressionStatement","src":"3951:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3876:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3929:5:64","nodeType":"YulTypedName","src":"3929:5:64","type":""},{"name":"pos","nativeSrc":"3936:3:64","nodeType":"YulTypedName","src":"3936:3:64","type":""}],"src":"3876:118:64"},{"body":{"nativeSrc":"4098:124:64","nodeType":"YulBlock","src":"4098:124:64","statements":[{"nativeSrc":"4108:26:64","nodeType":"YulAssignment","src":"4108:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4120:9:64","nodeType":"YulIdentifier","src":"4120:9:64"},{"kind":"number","nativeSrc":"4131:2:64","nodeType":"YulLiteral","src":"4131:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4116:3:64","nodeType":"YulIdentifier","src":"4116:3:64"},"nativeSrc":"4116:18:64","nodeType":"YulFunctionCall","src":"4116:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4108:4:64","nodeType":"YulIdentifier","src":"4108:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4188:6:64","nodeType":"YulIdentifier","src":"4188:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4201:9:64","nodeType":"YulIdentifier","src":"4201:9:64"},{"kind":"number","nativeSrc":"4212:1:64","nodeType":"YulLiteral","src":"4212:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4197:3:64","nodeType":"YulIdentifier","src":"4197:3:64"},"nativeSrc":"4197:17:64","nodeType":"YulFunctionCall","src":"4197:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"4144:43:64","nodeType":"YulIdentifier","src":"4144:43:64"},"nativeSrc":"4144:71:64","nodeType":"YulFunctionCall","src":"4144:71:64"},"nativeSrc":"4144:71:64","nodeType":"YulExpressionStatement","src":"4144:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4000:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4070:9:64","nodeType":"YulTypedName","src":"4070:9:64","type":""},{"name":"value0","nativeSrc":"4082:6:64","nodeType":"YulTypedName","src":"4082:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4093:4:64","nodeType":"YulTypedName","src":"4093:4:64","type":""}],"src":"4000:222:64"},{"body":{"nativeSrc":"4317:28:64","nodeType":"YulBlock","src":"4317:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4334:1:64","nodeType":"YulLiteral","src":"4334:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"4337:1:64","nodeType":"YulLiteral","src":"4337:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4327:6:64","nodeType":"YulIdentifier","src":"4327:6:64"},"nativeSrc":"4327:12:64","nodeType":"YulFunctionCall","src":"4327:12:64"},"nativeSrc":"4327:12:64","nodeType":"YulExpressionStatement","src":"4327:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4228:117:64","nodeType":"YulFunctionDefinition","src":"4228:117:64"},{"body":{"nativeSrc":"4440:28:64","nodeType":"YulBlock","src":"4440:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4457:1:64","nodeType":"YulLiteral","src":"4457:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"4460:1:64","nodeType":"YulLiteral","src":"4460:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4450:6:64","nodeType":"YulIdentifier","src":"4450:6:64"},"nativeSrc":"4450:12:64","nodeType":"YulFunctionCall","src":"4450:12:64"},"nativeSrc":"4450:12:64","nodeType":"YulExpressionStatement","src":"4450:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4351:117:64","nodeType":"YulFunctionDefinition","src":"4351:117:64"},{"body":{"nativeSrc":"4563:28:64","nodeType":"YulBlock","src":"4563:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4580:1:64","nodeType":"YulLiteral","src":"4580:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"4583:1:64","nodeType":"YulLiteral","src":"4583:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4573:6:64","nodeType":"YulIdentifier","src":"4573:6:64"},"nativeSrc":"4573:12:64","nodeType":"YulFunctionCall","src":"4573:12:64"},"nativeSrc":"4573:12:64","nodeType":"YulExpressionStatement","src":"4573:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4474:117:64","nodeType":"YulFunctionDefinition","src":"4474:117:64"},{"body":{"nativeSrc":"4704:478:64","nodeType":"YulBlock","src":"4704:478:64","statements":[{"body":{"nativeSrc":"4753:83:64","nodeType":"YulBlock","src":"4753:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4755:77:64","nodeType":"YulIdentifier","src":"4755:77:64"},"nativeSrc":"4755:79:64","nodeType":"YulFunctionCall","src":"4755:79:64"},"nativeSrc":"4755:79:64","nodeType":"YulExpressionStatement","src":"4755:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4732:6:64","nodeType":"YulIdentifier","src":"4732:6:64"},{"kind":"number","nativeSrc":"4740:4:64","nodeType":"YulLiteral","src":"4740:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4728:3:64","nodeType":"YulIdentifier","src":"4728:3:64"},"nativeSrc":"4728:17:64","nodeType":"YulFunctionCall","src":"4728:17:64"},{"name":"end","nativeSrc":"4747:3:64","nodeType":"YulIdentifier","src":"4747:3:64"}],"functionName":{"name":"slt","nativeSrc":"4724:3:64","nodeType":"YulIdentifier","src":"4724:3:64"},"nativeSrc":"4724:27:64","nodeType":"YulFunctionCall","src":"4724:27:64"}],"functionName":{"name":"iszero","nativeSrc":"4717:6:64","nodeType":"YulIdentifier","src":"4717:6:64"},"nativeSrc":"4717:35:64","nodeType":"YulFunctionCall","src":"4717:35:64"},"nativeSrc":"4714:122:64","nodeType":"YulIf","src":"4714:122:64"},{"nativeSrc":"4845:30:64","nodeType":"YulAssignment","src":"4845:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"4868:6:64","nodeType":"YulIdentifier","src":"4868:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4855:12:64","nodeType":"YulIdentifier","src":"4855:12:64"},"nativeSrc":"4855:20:64","nodeType":"YulFunctionCall","src":"4855:20:64"},"variableNames":[{"name":"length","nativeSrc":"4845:6:64","nodeType":"YulIdentifier","src":"4845:6:64"}]},{"body":{"nativeSrc":"4918:83:64","nodeType":"YulBlock","src":"4918:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4920:77:64","nodeType":"YulIdentifier","src":"4920:77:64"},"nativeSrc":"4920:79:64","nodeType":"YulFunctionCall","src":"4920:79:64"},"nativeSrc":"4920:79:64","nodeType":"YulExpressionStatement","src":"4920:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4890:6:64","nodeType":"YulIdentifier","src":"4890:6:64"},{"kind":"number","nativeSrc":"4898:18:64","nodeType":"YulLiteral","src":"4898:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4887:2:64","nodeType":"YulIdentifier","src":"4887:2:64"},"nativeSrc":"4887:30:64","nodeType":"YulFunctionCall","src":"4887:30:64"},"nativeSrc":"4884:117:64","nodeType":"YulIf","src":"4884:117:64"},{"nativeSrc":"5010:29:64","nodeType":"YulAssignment","src":"5010:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"5026:6:64","nodeType":"YulIdentifier","src":"5026:6:64"},{"kind":"number","nativeSrc":"5034:4:64","nodeType":"YulLiteral","src":"5034:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5022:3:64","nodeType":"YulIdentifier","src":"5022:3:64"},"nativeSrc":"5022:17:64","nodeType":"YulFunctionCall","src":"5022:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"5010:8:64","nodeType":"YulIdentifier","src":"5010:8:64"}]},{"body":{"nativeSrc":"5093:83:64","nodeType":"YulBlock","src":"5093:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5095:77:64","nodeType":"YulIdentifier","src":"5095:77:64"},"nativeSrc":"5095:79:64","nodeType":"YulFunctionCall","src":"5095:79:64"},"nativeSrc":"5095:79:64","nodeType":"YulExpressionStatement","src":"5095:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"5058:8:64","nodeType":"YulIdentifier","src":"5058:8:64"},{"arguments":[{"name":"length","nativeSrc":"5072:6:64","nodeType":"YulIdentifier","src":"5072:6:64"},{"kind":"number","nativeSrc":"5080:4:64","nodeType":"YulLiteral","src":"5080:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"5068:3:64","nodeType":"YulIdentifier","src":"5068:3:64"},"nativeSrc":"5068:17:64","nodeType":"YulFunctionCall","src":"5068:17:64"}],"functionName":{"name":"add","nativeSrc":"5054:3:64","nodeType":"YulIdentifier","src":"5054:3:64"},"nativeSrc":"5054:32:64","nodeType":"YulFunctionCall","src":"5054:32:64"},{"name":"end","nativeSrc":"5088:3:64","nodeType":"YulIdentifier","src":"5088:3:64"}],"functionName":{"name":"gt","nativeSrc":"5051:2:64","nodeType":"YulIdentifier","src":"5051:2:64"},"nativeSrc":"5051:41:64","nodeType":"YulFunctionCall","src":"5051:41:64"},"nativeSrc":"5048:128:64","nodeType":"YulIf","src":"5048:128:64"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"4614:568:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4671:6:64","nodeType":"YulTypedName","src":"4671:6:64","type":""},{"name":"end","nativeSrc":"4679:3:64","nodeType":"YulTypedName","src":"4679:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4687:8:64","nodeType":"YulTypedName","src":"4687:8:64","type":""},{"name":"length","nativeSrc":"4697:6:64","nodeType":"YulTypedName","src":"4697:6:64","type":""}],"src":"4614:568:64"},{"body":{"nativeSrc":"5289:478:64","nodeType":"YulBlock","src":"5289:478:64","statements":[{"body":{"nativeSrc":"5338:83:64","nodeType":"YulBlock","src":"5338:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5340:77:64","nodeType":"YulIdentifier","src":"5340:77:64"},"nativeSrc":"5340:79:64","nodeType":"YulFunctionCall","src":"5340:79:64"},"nativeSrc":"5340:79:64","nodeType":"YulExpressionStatement","src":"5340:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5317:6:64","nodeType":"YulIdentifier","src":"5317:6:64"},{"kind":"number","nativeSrc":"5325:4:64","nodeType":"YulLiteral","src":"5325:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5313:3:64","nodeType":"YulIdentifier","src":"5313:3:64"},"nativeSrc":"5313:17:64","nodeType":"YulFunctionCall","src":"5313:17:64"},{"name":"end","nativeSrc":"5332:3:64","nodeType":"YulIdentifier","src":"5332:3:64"}],"functionName":{"name":"slt","nativeSrc":"5309:3:64","nodeType":"YulIdentifier","src":"5309:3:64"},"nativeSrc":"5309:27:64","nodeType":"YulFunctionCall","src":"5309:27:64"}],"functionName":{"name":"iszero","nativeSrc":"5302:6:64","nodeType":"YulIdentifier","src":"5302:6:64"},"nativeSrc":"5302:35:64","nodeType":"YulFunctionCall","src":"5302:35:64"},"nativeSrc":"5299:122:64","nodeType":"YulIf","src":"5299:122:64"},{"nativeSrc":"5430:30:64","nodeType":"YulAssignment","src":"5430:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"5453:6:64","nodeType":"YulIdentifier","src":"5453:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"5440:12:64","nodeType":"YulIdentifier","src":"5440:12:64"},"nativeSrc":"5440:20:64","nodeType":"YulFunctionCall","src":"5440:20:64"},"variableNames":[{"name":"length","nativeSrc":"5430:6:64","nodeType":"YulIdentifier","src":"5430:6:64"}]},{"body":{"nativeSrc":"5503:83:64","nodeType":"YulBlock","src":"5503:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"5505:77:64","nodeType":"YulIdentifier","src":"5505:77:64"},"nativeSrc":"5505:79:64","nodeType":"YulFunctionCall","src":"5505:79:64"},"nativeSrc":"5505:79:64","nodeType":"YulExpressionStatement","src":"5505:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5475:6:64","nodeType":"YulIdentifier","src":"5475:6:64"},{"kind":"number","nativeSrc":"5483:18:64","nodeType":"YulLiteral","src":"5483:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5472:2:64","nodeType":"YulIdentifier","src":"5472:2:64"},"nativeSrc":"5472:30:64","nodeType":"YulFunctionCall","src":"5472:30:64"},"nativeSrc":"5469:117:64","nodeType":"YulIf","src":"5469:117:64"},{"nativeSrc":"5595:29:64","nodeType":"YulAssignment","src":"5595:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"5611:6:64","nodeType":"YulIdentifier","src":"5611:6:64"},{"kind":"number","nativeSrc":"5619:4:64","nodeType":"YulLiteral","src":"5619:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5607:3:64","nodeType":"YulIdentifier","src":"5607:3:64"},"nativeSrc":"5607:17:64","nodeType":"YulFunctionCall","src":"5607:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"5595:8:64","nodeType":"YulIdentifier","src":"5595:8:64"}]},{"body":{"nativeSrc":"5678:83:64","nodeType":"YulBlock","src":"5678:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5680:77:64","nodeType":"YulIdentifier","src":"5680:77:64"},"nativeSrc":"5680:79:64","nodeType":"YulFunctionCall","src":"5680:79:64"},"nativeSrc":"5680:79:64","nodeType":"YulExpressionStatement","src":"5680:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"5643:8:64","nodeType":"YulIdentifier","src":"5643:8:64"},{"arguments":[{"name":"length","nativeSrc":"5657:6:64","nodeType":"YulIdentifier","src":"5657:6:64"},{"kind":"number","nativeSrc":"5665:4:64","nodeType":"YulLiteral","src":"5665:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"5653:3:64","nodeType":"YulIdentifier","src":"5653:3:64"},"nativeSrc":"5653:17:64","nodeType":"YulFunctionCall","src":"5653:17:64"}],"functionName":{"name":"add","nativeSrc":"5639:3:64","nodeType":"YulIdentifier","src":"5639:3:64"},"nativeSrc":"5639:32:64","nodeType":"YulFunctionCall","src":"5639:32:64"},{"name":"end","nativeSrc":"5673:3:64","nodeType":"YulIdentifier","src":"5673:3:64"}],"functionName":{"name":"gt","nativeSrc":"5636:2:64","nodeType":"YulIdentifier","src":"5636:2:64"},"nativeSrc":"5636:41:64","nodeType":"YulFunctionCall","src":"5636:41:64"},"nativeSrc":"5633:128:64","nodeType":"YulIf","src":"5633:128:64"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5202:565:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5256:6:64","nodeType":"YulTypedName","src":"5256:6:64","type":""},{"name":"end","nativeSrc":"5264:3:64","nodeType":"YulTypedName","src":"5264:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"5272:8:64","nodeType":"YulTypedName","src":"5272:8:64","type":""},{"name":"length","nativeSrc":"5282:6:64","nodeType":"YulTypedName","src":"5282:6:64","type":""}],"src":"5202:565:64"},{"body":{"nativeSrc":"5923:778:64","nodeType":"YulBlock","src":"5923:778:64","statements":[{"body":{"nativeSrc":"5969:83:64","nodeType":"YulBlock","src":"5969:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5971:77:64","nodeType":"YulIdentifier","src":"5971:77:64"},"nativeSrc":"5971:79:64","nodeType":"YulFunctionCall","src":"5971:79:64"},"nativeSrc":"5971:79:64","nodeType":"YulExpressionStatement","src":"5971:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5944:7:64","nodeType":"YulIdentifier","src":"5944:7:64"},{"name":"headStart","nativeSrc":"5953:9:64","nodeType":"YulIdentifier","src":"5953:9:64"}],"functionName":{"name":"sub","nativeSrc":"5940:3:64","nodeType":"YulIdentifier","src":"5940:3:64"},"nativeSrc":"5940:23:64","nodeType":"YulFunctionCall","src":"5940:23:64"},{"kind":"number","nativeSrc":"5965:2:64","nodeType":"YulLiteral","src":"5965:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5936:3:64","nodeType":"YulIdentifier","src":"5936:3:64"},"nativeSrc":"5936:32:64","nodeType":"YulFunctionCall","src":"5936:32:64"},"nativeSrc":"5933:119:64","nodeType":"YulIf","src":"5933:119:64"},{"nativeSrc":"6062:312:64","nodeType":"YulBlock","src":"6062:312:64","statements":[{"nativeSrc":"6077:45:64","nodeType":"YulVariableDeclaration","src":"6077:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6108:9:64","nodeType":"YulIdentifier","src":"6108:9:64"},{"kind":"number","nativeSrc":"6119:1:64","nodeType":"YulLiteral","src":"6119:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6104:3:64","nodeType":"YulIdentifier","src":"6104:3:64"},"nativeSrc":"6104:17:64","nodeType":"YulFunctionCall","src":"6104:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"6091:12:64","nodeType":"YulIdentifier","src":"6091:12:64"},"nativeSrc":"6091:31:64","nodeType":"YulFunctionCall","src":"6091:31:64"},"variables":[{"name":"offset","nativeSrc":"6081:6:64","nodeType":"YulTypedName","src":"6081:6:64","type":""}]},{"body":{"nativeSrc":"6169:83:64","nodeType":"YulBlock","src":"6169:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6171:77:64","nodeType":"YulIdentifier","src":"6171:77:64"},"nativeSrc":"6171:79:64","nodeType":"YulFunctionCall","src":"6171:79:64"},"nativeSrc":"6171:79:64","nodeType":"YulExpressionStatement","src":"6171:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6141:6:64","nodeType":"YulIdentifier","src":"6141:6:64"},{"kind":"number","nativeSrc":"6149:18:64","nodeType":"YulLiteral","src":"6149:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6138:2:64","nodeType":"YulIdentifier","src":"6138:2:64"},"nativeSrc":"6138:30:64","nodeType":"YulFunctionCall","src":"6138:30:64"},"nativeSrc":"6135:117:64","nodeType":"YulIf","src":"6135:117:64"},{"nativeSrc":"6266:98:64","nodeType":"YulAssignment","src":"6266:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6336:9:64","nodeType":"YulIdentifier","src":"6336:9:64"},{"name":"offset","nativeSrc":"6347:6:64","nodeType":"YulIdentifier","src":"6347:6:64"}],"functionName":{"name":"add","nativeSrc":"6332:3:64","nodeType":"YulIdentifier","src":"6332:3:64"},"nativeSrc":"6332:22:64","nodeType":"YulFunctionCall","src":"6332:22:64"},{"name":"dataEnd","nativeSrc":"6356:7:64","nodeType":"YulIdentifier","src":"6356:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"6284:47:64","nodeType":"YulIdentifier","src":"6284:47:64"},"nativeSrc":"6284:80:64","nodeType":"YulFunctionCall","src":"6284:80:64"},"variableNames":[{"name":"value0","nativeSrc":"6266:6:64","nodeType":"YulIdentifier","src":"6266:6:64"},{"name":"value1","nativeSrc":"6274:6:64","nodeType":"YulIdentifier","src":"6274:6:64"}]}]},{"nativeSrc":"6384:310:64","nodeType":"YulBlock","src":"6384:310:64","statements":[{"nativeSrc":"6399:46:64","nodeType":"YulVariableDeclaration","src":"6399:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6430:9:64","nodeType":"YulIdentifier","src":"6430:9:64"},{"kind":"number","nativeSrc":"6441:2:64","nodeType":"YulLiteral","src":"6441:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6426:3:64","nodeType":"YulIdentifier","src":"6426:3:64"},"nativeSrc":"6426:18:64","nodeType":"YulFunctionCall","src":"6426:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"6413:12:64","nodeType":"YulIdentifier","src":"6413:12:64"},"nativeSrc":"6413:32:64","nodeType":"YulFunctionCall","src":"6413:32:64"},"variables":[{"name":"offset","nativeSrc":"6403:6:64","nodeType":"YulTypedName","src":"6403:6:64","type":""}]},{"body":{"nativeSrc":"6492:83:64","nodeType":"YulBlock","src":"6492:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6494:77:64","nodeType":"YulIdentifier","src":"6494:77:64"},"nativeSrc":"6494:79:64","nodeType":"YulFunctionCall","src":"6494:79:64"},"nativeSrc":"6494:79:64","nodeType":"YulExpressionStatement","src":"6494:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6464:6:64","nodeType":"YulIdentifier","src":"6464:6:64"},{"kind":"number","nativeSrc":"6472:18:64","nodeType":"YulLiteral","src":"6472:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6461:2:64","nodeType":"YulIdentifier","src":"6461:2:64"},"nativeSrc":"6461:30:64","nodeType":"YulFunctionCall","src":"6461:30:64"},"nativeSrc":"6458:117:64","nodeType":"YulIf","src":"6458:117:64"},{"nativeSrc":"6589:95:64","nodeType":"YulAssignment","src":"6589:95:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6656:9:64","nodeType":"YulIdentifier","src":"6656:9:64"},{"name":"offset","nativeSrc":"6667:6:64","nodeType":"YulIdentifier","src":"6667:6:64"}],"functionName":{"name":"add","nativeSrc":"6652:3:64","nodeType":"YulIdentifier","src":"6652:3:64"},"nativeSrc":"6652:22:64","nodeType":"YulFunctionCall","src":"6652:22:64"},{"name":"dataEnd","nativeSrc":"6676:7:64","nodeType":"YulIdentifier","src":"6676:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"6607:44:64","nodeType":"YulIdentifier","src":"6607:44:64"},"nativeSrc":"6607:77:64","nodeType":"YulFunctionCall","src":"6607:77:64"},"variableNames":[{"name":"value2","nativeSrc":"6589:6:64","nodeType":"YulIdentifier","src":"6589:6:64"},{"name":"value3","nativeSrc":"6597:6:64","nodeType":"YulIdentifier","src":"6597:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5773:928:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5869:9:64","nodeType":"YulTypedName","src":"5869:9:64","type":""},{"name":"dataEnd","nativeSrc":"5880:7:64","nodeType":"YulTypedName","src":"5880:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5892:6:64","nodeType":"YulTypedName","src":"5892:6:64","type":""},{"name":"value1","nativeSrc":"5900:6:64","nodeType":"YulTypedName","src":"5900:6:64","type":""},{"name":"value2","nativeSrc":"5908:6:64","nodeType":"YulTypedName","src":"5908:6:64","type":""},{"name":"value3","nativeSrc":"5916:6:64","nodeType":"YulTypedName","src":"5916:6:64","type":""}],"src":"5773:928:64"},{"body":{"nativeSrc":"6794:478:64","nodeType":"YulBlock","src":"6794:478:64","statements":[{"body":{"nativeSrc":"6843:83:64","nodeType":"YulBlock","src":"6843:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6845:77:64","nodeType":"YulIdentifier","src":"6845:77:64"},"nativeSrc":"6845:79:64","nodeType":"YulFunctionCall","src":"6845:79:64"},"nativeSrc":"6845:79:64","nodeType":"YulExpressionStatement","src":"6845:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6822:6:64","nodeType":"YulIdentifier","src":"6822:6:64"},{"kind":"number","nativeSrc":"6830:4:64","nodeType":"YulLiteral","src":"6830:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6818:3:64","nodeType":"YulIdentifier","src":"6818:3:64"},"nativeSrc":"6818:17:64","nodeType":"YulFunctionCall","src":"6818:17:64"},{"name":"end","nativeSrc":"6837:3:64","nodeType":"YulIdentifier","src":"6837:3:64"}],"functionName":{"name":"slt","nativeSrc":"6814:3:64","nodeType":"YulIdentifier","src":"6814:3:64"},"nativeSrc":"6814:27:64","nodeType":"YulFunctionCall","src":"6814:27:64"}],"functionName":{"name":"iszero","nativeSrc":"6807:6:64","nodeType":"YulIdentifier","src":"6807:6:64"},"nativeSrc":"6807:35:64","nodeType":"YulFunctionCall","src":"6807:35:64"},"nativeSrc":"6804:122:64","nodeType":"YulIf","src":"6804:122:64"},{"nativeSrc":"6935:30:64","nodeType":"YulAssignment","src":"6935:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"6958:6:64","nodeType":"YulIdentifier","src":"6958:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6945:12:64","nodeType":"YulIdentifier","src":"6945:12:64"},"nativeSrc":"6945:20:64","nodeType":"YulFunctionCall","src":"6945:20:64"},"variableNames":[{"name":"length","nativeSrc":"6935:6:64","nodeType":"YulIdentifier","src":"6935:6:64"}]},{"body":{"nativeSrc":"7008:83:64","nodeType":"YulBlock","src":"7008:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7010:77:64","nodeType":"YulIdentifier","src":"7010:77:64"},"nativeSrc":"7010:79:64","nodeType":"YulFunctionCall","src":"7010:79:64"},"nativeSrc":"7010:79:64","nodeType":"YulExpressionStatement","src":"7010:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6980:6:64","nodeType":"YulIdentifier","src":"6980:6:64"},{"kind":"number","nativeSrc":"6988:18:64","nodeType":"YulLiteral","src":"6988:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6977:2:64","nodeType":"YulIdentifier","src":"6977:2:64"},"nativeSrc":"6977:30:64","nodeType":"YulFunctionCall","src":"6977:30:64"},"nativeSrc":"6974:117:64","nodeType":"YulIf","src":"6974:117:64"},{"nativeSrc":"7100:29:64","nodeType":"YulAssignment","src":"7100:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7116:6:64","nodeType":"YulIdentifier","src":"7116:6:64"},{"kind":"number","nativeSrc":"7124:4:64","nodeType":"YulLiteral","src":"7124:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7112:3:64","nodeType":"YulIdentifier","src":"7112:3:64"},"nativeSrc":"7112:17:64","nodeType":"YulFunctionCall","src":"7112:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"7100:8:64","nodeType":"YulIdentifier","src":"7100:8:64"}]},{"body":{"nativeSrc":"7183:83:64","nodeType":"YulBlock","src":"7183:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7185:77:64","nodeType":"YulIdentifier","src":"7185:77:64"},"nativeSrc":"7185:79:64","nodeType":"YulFunctionCall","src":"7185:79:64"},"nativeSrc":"7185:79:64","nodeType":"YulExpressionStatement","src":"7185:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7148:8:64","nodeType":"YulIdentifier","src":"7148:8:64"},{"arguments":[{"name":"length","nativeSrc":"7162:6:64","nodeType":"YulIdentifier","src":"7162:6:64"},{"kind":"number","nativeSrc":"7170:4:64","nodeType":"YulLiteral","src":"7170:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"7158:3:64","nodeType":"YulIdentifier","src":"7158:3:64"},"nativeSrc":"7158:17:64","nodeType":"YulFunctionCall","src":"7158:17:64"}],"functionName":{"name":"add","nativeSrc":"7144:3:64","nodeType":"YulIdentifier","src":"7144:3:64"},"nativeSrc":"7144:32:64","nodeType":"YulFunctionCall","src":"7144:32:64"},{"name":"end","nativeSrc":"7178:3:64","nodeType":"YulIdentifier","src":"7178:3:64"}],"functionName":{"name":"gt","nativeSrc":"7141:2:64","nodeType":"YulIdentifier","src":"7141:2:64"},"nativeSrc":"7141:41:64","nodeType":"YulFunctionCall","src":"7141:41:64"},"nativeSrc":"7138:128:64","nodeType":"YulIf","src":"7138:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6720:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6761:6:64","nodeType":"YulTypedName","src":"6761:6:64","type":""},{"name":"end","nativeSrc":"6769:3:64","nodeType":"YulTypedName","src":"6769:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6777:8:64","nodeType":"YulTypedName","src":"6777:8:64","type":""},{"name":"length","nativeSrc":"6787:6:64","nodeType":"YulTypedName","src":"6787:6:64","type":""}],"src":"6720:552:64"},{"body":{"nativeSrc":"7363:442:64","nodeType":"YulBlock","src":"7363:442:64","statements":[{"body":{"nativeSrc":"7409:83:64","nodeType":"YulBlock","src":"7409:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7411:77:64","nodeType":"YulIdentifier","src":"7411:77:64"},"nativeSrc":"7411:79:64","nodeType":"YulFunctionCall","src":"7411:79:64"},"nativeSrc":"7411:79:64","nodeType":"YulExpressionStatement","src":"7411:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7384:7:64","nodeType":"YulIdentifier","src":"7384:7:64"},{"name":"headStart","nativeSrc":"7393:9:64","nodeType":"YulIdentifier","src":"7393:9:64"}],"functionName":{"name":"sub","nativeSrc":"7380:3:64","nodeType":"YulIdentifier","src":"7380:3:64"},"nativeSrc":"7380:23:64","nodeType":"YulFunctionCall","src":"7380:23:64"},{"kind":"number","nativeSrc":"7405:2:64","nodeType":"YulLiteral","src":"7405:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7376:3:64","nodeType":"YulIdentifier","src":"7376:3:64"},"nativeSrc":"7376:32:64","nodeType":"YulFunctionCall","src":"7376:32:64"},"nativeSrc":"7373:119:64","nodeType":"YulIf","src":"7373:119:64"},{"nativeSrc":"7502:296:64","nodeType":"YulBlock","src":"7502:296:64","statements":[{"nativeSrc":"7517:45:64","nodeType":"YulVariableDeclaration","src":"7517:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7548:9:64","nodeType":"YulIdentifier","src":"7548:9:64"},{"kind":"number","nativeSrc":"7559:1:64","nodeType":"YulLiteral","src":"7559:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7544:3:64","nodeType":"YulIdentifier","src":"7544:3:64"},"nativeSrc":"7544:17:64","nodeType":"YulFunctionCall","src":"7544:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"7531:12:64","nodeType":"YulIdentifier","src":"7531:12:64"},"nativeSrc":"7531:31:64","nodeType":"YulFunctionCall","src":"7531:31:64"},"variables":[{"name":"offset","nativeSrc":"7521:6:64","nodeType":"YulTypedName","src":"7521:6:64","type":""}]},{"body":{"nativeSrc":"7609:83:64","nodeType":"YulBlock","src":"7609:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7611:77:64","nodeType":"YulIdentifier","src":"7611:77:64"},"nativeSrc":"7611:79:64","nodeType":"YulFunctionCall","src":"7611:79:64"},"nativeSrc":"7611:79:64","nodeType":"YulExpressionStatement","src":"7611:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7581:6:64","nodeType":"YulIdentifier","src":"7581:6:64"},{"kind":"number","nativeSrc":"7589:18:64","nodeType":"YulLiteral","src":"7589:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7578:2:64","nodeType":"YulIdentifier","src":"7578:2:64"},"nativeSrc":"7578:30:64","nodeType":"YulFunctionCall","src":"7578:30:64"},"nativeSrc":"7575:117:64","nodeType":"YulIf","src":"7575:117:64"},{"nativeSrc":"7706:82:64","nodeType":"YulAssignment","src":"7706:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7760:9:64","nodeType":"YulIdentifier","src":"7760:9:64"},{"name":"offset","nativeSrc":"7771:6:64","nodeType":"YulIdentifier","src":"7771:6:64"}],"functionName":{"name":"add","nativeSrc":"7756:3:64","nodeType":"YulIdentifier","src":"7756:3:64"},"nativeSrc":"7756:22:64","nodeType":"YulFunctionCall","src":"7756:22:64"},{"name":"dataEnd","nativeSrc":"7780:7:64","nodeType":"YulIdentifier","src":"7780:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7724:31:64","nodeType":"YulIdentifier","src":"7724:31:64"},"nativeSrc":"7724:64:64","nodeType":"YulFunctionCall","src":"7724:64:64"},"variableNames":[{"name":"value0","nativeSrc":"7706:6:64","nodeType":"YulIdentifier","src":"7706:6:64"},{"name":"value1","nativeSrc":"7714:6:64","nodeType":"YulIdentifier","src":"7714:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"7278:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7325:9:64","nodeType":"YulTypedName","src":"7325:9:64","type":""},{"name":"dataEnd","nativeSrc":"7336:7:64","nodeType":"YulTypedName","src":"7336:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7348:6:64","nodeType":"YulTypedName","src":"7348:6:64","type":""},{"name":"value1","nativeSrc":"7356:6:64","nodeType":"YulTypedName","src":"7356:6:64","type":""}],"src":"7278:527:64"},{"body":{"nativeSrc":"7876:53:64","nodeType":"YulBlock","src":"7876:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7893:3:64","nodeType":"YulIdentifier","src":"7893:3:64"},{"arguments":[{"name":"value","nativeSrc":"7916:5:64","nodeType":"YulIdentifier","src":"7916:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7898:17:64","nodeType":"YulIdentifier","src":"7898:17:64"},"nativeSrc":"7898:24:64","nodeType":"YulFunctionCall","src":"7898:24:64"}],"functionName":{"name":"mstore","nativeSrc":"7886:6:64","nodeType":"YulIdentifier","src":"7886:6:64"},"nativeSrc":"7886:37:64","nodeType":"YulFunctionCall","src":"7886:37:64"},"nativeSrc":"7886:37:64","nodeType":"YulExpressionStatement","src":"7886:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"7811:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7864:5:64","nodeType":"YulTypedName","src":"7864:5:64","type":""},{"name":"pos","nativeSrc":"7871:3:64","nodeType":"YulTypedName","src":"7871:3:64","type":""}],"src":"7811:118:64"},{"body":{"nativeSrc":"8033:124:64","nodeType":"YulBlock","src":"8033:124:64","statements":[{"nativeSrc":"8043:26:64","nodeType":"YulAssignment","src":"8043:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"8055:9:64","nodeType":"YulIdentifier","src":"8055:9:64"},{"kind":"number","nativeSrc":"8066:2:64","nodeType":"YulLiteral","src":"8066:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8051:3:64","nodeType":"YulIdentifier","src":"8051:3:64"},"nativeSrc":"8051:18:64","nodeType":"YulFunctionCall","src":"8051:18:64"},"variableNames":[{"name":"tail","nativeSrc":"8043:4:64","nodeType":"YulIdentifier","src":"8043:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8123:6:64","nodeType":"YulIdentifier","src":"8123:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"8136:9:64","nodeType":"YulIdentifier","src":"8136:9:64"},{"kind":"number","nativeSrc":"8147:1:64","nodeType":"YulLiteral","src":"8147:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8132:3:64","nodeType":"YulIdentifier","src":"8132:3:64"},"nativeSrc":"8132:17:64","nodeType":"YulFunctionCall","src":"8132:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8079:43:64","nodeType":"YulIdentifier","src":"8079:43:64"},"nativeSrc":"8079:71:64","nodeType":"YulFunctionCall","src":"8079:71:64"},"nativeSrc":"8079:71:64","nodeType":"YulExpressionStatement","src":"8079:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"7935:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8005:9:64","nodeType":"YulTypedName","src":"8005:9:64","type":""},{"name":"value0","nativeSrc":"8017:6:64","nodeType":"YulTypedName","src":"8017:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8028:4:64","nodeType":"YulTypedName","src":"8028:4:64","type":""}],"src":"7935:222:64"},{"body":{"nativeSrc":"8265:570:64","nodeType":"YulBlock","src":"8265:570:64","statements":[{"body":{"nativeSrc":"8311:83:64","nodeType":"YulBlock","src":"8311:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8313:77:64","nodeType":"YulIdentifier","src":"8313:77:64"},"nativeSrc":"8313:79:64","nodeType":"YulFunctionCall","src":"8313:79:64"},"nativeSrc":"8313:79:64","nodeType":"YulExpressionStatement","src":"8313:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8286:7:64","nodeType":"YulIdentifier","src":"8286:7:64"},{"name":"headStart","nativeSrc":"8295:9:64","nodeType":"YulIdentifier","src":"8295:9:64"}],"functionName":{"name":"sub","nativeSrc":"8282:3:64","nodeType":"YulIdentifier","src":"8282:3:64"},"nativeSrc":"8282:23:64","nodeType":"YulFunctionCall","src":"8282:23:64"},{"kind":"number","nativeSrc":"8307:2:64","nodeType":"YulLiteral","src":"8307:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8278:3:64","nodeType":"YulIdentifier","src":"8278:3:64"},"nativeSrc":"8278:32:64","nodeType":"YulFunctionCall","src":"8278:32:64"},"nativeSrc":"8275:119:64","nodeType":"YulIf","src":"8275:119:64"},{"nativeSrc":"8404:117:64","nodeType":"YulBlock","src":"8404:117:64","statements":[{"nativeSrc":"8419:15:64","nodeType":"YulVariableDeclaration","src":"8419:15:64","value":{"kind":"number","nativeSrc":"8433:1:64","nodeType":"YulLiteral","src":"8433:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8423:6:64","nodeType":"YulTypedName","src":"8423:6:64","type":""}]},{"nativeSrc":"8448:63:64","nodeType":"YulAssignment","src":"8448:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8483:9:64","nodeType":"YulIdentifier","src":"8483:9:64"},{"name":"offset","nativeSrc":"8494:6:64","nodeType":"YulIdentifier","src":"8494:6:64"}],"functionName":{"name":"add","nativeSrc":"8479:3:64","nodeType":"YulIdentifier","src":"8479:3:64"},"nativeSrc":"8479:22:64","nodeType":"YulFunctionCall","src":"8479:22:64"},{"name":"dataEnd","nativeSrc":"8503:7:64","nodeType":"YulIdentifier","src":"8503:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8458:20:64","nodeType":"YulIdentifier","src":"8458:20:64"},"nativeSrc":"8458:53:64","nodeType":"YulFunctionCall","src":"8458:53:64"},"variableNames":[{"name":"value0","nativeSrc":"8448:6:64","nodeType":"YulIdentifier","src":"8448:6:64"}]}]},{"nativeSrc":"8531:297:64","nodeType":"YulBlock","src":"8531:297:64","statements":[{"nativeSrc":"8546:46:64","nodeType":"YulVariableDeclaration","src":"8546:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8577:9:64","nodeType":"YulIdentifier","src":"8577:9:64"},{"kind":"number","nativeSrc":"8588:2:64","nodeType":"YulLiteral","src":"8588:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8573:3:64","nodeType":"YulIdentifier","src":"8573:3:64"},"nativeSrc":"8573:18:64","nodeType":"YulFunctionCall","src":"8573:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"8560:12:64","nodeType":"YulIdentifier","src":"8560:12:64"},"nativeSrc":"8560:32:64","nodeType":"YulFunctionCall","src":"8560:32:64"},"variables":[{"name":"offset","nativeSrc":"8550:6:64","nodeType":"YulTypedName","src":"8550:6:64","type":""}]},{"body":{"nativeSrc":"8639:83:64","nodeType":"YulBlock","src":"8639:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8641:77:64","nodeType":"YulIdentifier","src":"8641:77:64"},"nativeSrc":"8641:79:64","nodeType":"YulFunctionCall","src":"8641:79:64"},"nativeSrc":"8641:79:64","nodeType":"YulExpressionStatement","src":"8641:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8611:6:64","nodeType":"YulIdentifier","src":"8611:6:64"},{"kind":"number","nativeSrc":"8619:18:64","nodeType":"YulLiteral","src":"8619:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8608:2:64","nodeType":"YulIdentifier","src":"8608:2:64"},"nativeSrc":"8608:30:64","nodeType":"YulFunctionCall","src":"8608:30:64"},"nativeSrc":"8605:117:64","nodeType":"YulIf","src":"8605:117:64"},{"nativeSrc":"8736:82:64","nodeType":"YulAssignment","src":"8736:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8790:9:64","nodeType":"YulIdentifier","src":"8790:9:64"},{"name":"offset","nativeSrc":"8801:6:64","nodeType":"YulIdentifier","src":"8801:6:64"}],"functionName":{"name":"add","nativeSrc":"8786:3:64","nodeType":"YulIdentifier","src":"8786:3:64"},"nativeSrc":"8786:22:64","nodeType":"YulFunctionCall","src":"8786:22:64"},{"name":"dataEnd","nativeSrc":"8810:7:64","nodeType":"YulIdentifier","src":"8810:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"8754:31:64","nodeType":"YulIdentifier","src":"8754:31:64"},"nativeSrc":"8754:64:64","nodeType":"YulFunctionCall","src":"8754:64:64"},"variableNames":[{"name":"value1","nativeSrc":"8736:6:64","nodeType":"YulIdentifier","src":"8736:6:64"},{"name":"value2","nativeSrc":"8744:6:64","nodeType":"YulIdentifier","src":"8744:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"8163:672:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8219:9:64","nodeType":"YulTypedName","src":"8219:9:64","type":""},{"name":"dataEnd","nativeSrc":"8230:7:64","nodeType":"YulTypedName","src":"8230:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8242:6:64","nodeType":"YulTypedName","src":"8242:6:64","type":""},{"name":"value1","nativeSrc":"8250:6:64","nodeType":"YulTypedName","src":"8250:6:64","type":""},{"name":"value2","nativeSrc":"8258:6:64","nodeType":"YulTypedName","src":"8258:6:64","type":""}],"src":"8163:672:64"},{"body":{"nativeSrc":"8869:152:64","nodeType":"YulBlock","src":"8869:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8886:1:64","nodeType":"YulLiteral","src":"8886:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8889:77:64","nodeType":"YulLiteral","src":"8889:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8879:6:64","nodeType":"YulIdentifier","src":"8879:6:64"},"nativeSrc":"8879:88:64","nodeType":"YulFunctionCall","src":"8879:88:64"},"nativeSrc":"8879:88:64","nodeType":"YulExpressionStatement","src":"8879:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8983:1:64","nodeType":"YulLiteral","src":"8983:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8986:4:64","nodeType":"YulLiteral","src":"8986:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8976:6:64","nodeType":"YulIdentifier","src":"8976:6:64"},"nativeSrc":"8976:15:64","nodeType":"YulFunctionCall","src":"8976:15:64"},"nativeSrc":"8976:15:64","nodeType":"YulExpressionStatement","src":"8976:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9007:1:64","nodeType":"YulLiteral","src":"9007:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9010:4:64","nodeType":"YulLiteral","src":"9010:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9000:6:64","nodeType":"YulIdentifier","src":"9000:6:64"},"nativeSrc":"9000:15:64","nodeType":"YulFunctionCall","src":"9000:15:64"},"nativeSrc":"9000:15:64","nodeType":"YulExpressionStatement","src":"9000:15:64"}]},"name":"panic_error_0x32","nativeSrc":"8841:180:64","nodeType":"YulFunctionDefinition","src":"8841:180:64"},{"body":{"nativeSrc":"9067:76:64","nodeType":"YulBlock","src":"9067:76:64","statements":[{"body":{"nativeSrc":"9121:16:64","nodeType":"YulBlock","src":"9121:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9130:1:64","nodeType":"YulLiteral","src":"9130:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9133:1:64","nodeType":"YulLiteral","src":"9133:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9123:6:64","nodeType":"YulIdentifier","src":"9123:6:64"},"nativeSrc":"9123:12:64","nodeType":"YulFunctionCall","src":"9123:12:64"},"nativeSrc":"9123:12:64","nodeType":"YulExpressionStatement","src":"9123:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9090:5:64","nodeType":"YulIdentifier","src":"9090:5:64"},{"arguments":[{"name":"value","nativeSrc":"9112:5:64","nodeType":"YulIdentifier","src":"9112:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"9097:14:64","nodeType":"YulIdentifier","src":"9097:14:64"},"nativeSrc":"9097:21:64","nodeType":"YulFunctionCall","src":"9097:21:64"}],"functionName":{"name":"eq","nativeSrc":"9087:2:64","nodeType":"YulIdentifier","src":"9087:2:64"},"nativeSrc":"9087:32:64","nodeType":"YulFunctionCall","src":"9087:32:64"}],"functionName":{"name":"iszero","nativeSrc":"9080:6:64","nodeType":"YulIdentifier","src":"9080:6:64"},"nativeSrc":"9080:40:64","nodeType":"YulFunctionCall","src":"9080:40:64"},"nativeSrc":"9077:60:64","nodeType":"YulIf","src":"9077:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"9027:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9060:5:64","nodeType":"YulTypedName","src":"9060:5:64","type":""}],"src":"9027:116:64"},{"body":{"nativeSrc":"9198:84:64","nodeType":"YulBlock","src":"9198:84:64","statements":[{"nativeSrc":"9208:29:64","nodeType":"YulAssignment","src":"9208:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9230:6:64","nodeType":"YulIdentifier","src":"9230:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9217:12:64","nodeType":"YulIdentifier","src":"9217:12:64"},"nativeSrc":"9217:20:64","nodeType":"YulFunctionCall","src":"9217:20:64"},"variableNames":[{"name":"value","nativeSrc":"9208:5:64","nodeType":"YulIdentifier","src":"9208:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9270:5:64","nodeType":"YulIdentifier","src":"9270:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"9246:23:64","nodeType":"YulIdentifier","src":"9246:23:64"},"nativeSrc":"9246:30:64","nodeType":"YulFunctionCall","src":"9246:30:64"},"nativeSrc":"9246:30:64","nodeType":"YulExpressionStatement","src":"9246:30:64"}]},"name":"abi_decode_t_bool","nativeSrc":"9149:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9176:6:64","nodeType":"YulTypedName","src":"9176:6:64","type":""},{"name":"end","nativeSrc":"9184:3:64","nodeType":"YulTypedName","src":"9184:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9192:5:64","nodeType":"YulTypedName","src":"9192:5:64","type":""}],"src":"9149:133:64"},{"body":{"nativeSrc":"9351:260:64","nodeType":"YulBlock","src":"9351:260:64","statements":[{"body":{"nativeSrc":"9397:83:64","nodeType":"YulBlock","src":"9397:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9399:77:64","nodeType":"YulIdentifier","src":"9399:77:64"},"nativeSrc":"9399:79:64","nodeType":"YulFunctionCall","src":"9399:79:64"},"nativeSrc":"9399:79:64","nodeType":"YulExpressionStatement","src":"9399:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9372:7:64","nodeType":"YulIdentifier","src":"9372:7:64"},{"name":"headStart","nativeSrc":"9381:9:64","nodeType":"YulIdentifier","src":"9381:9:64"}],"functionName":{"name":"sub","nativeSrc":"9368:3:64","nodeType":"YulIdentifier","src":"9368:3:64"},"nativeSrc":"9368:23:64","nodeType":"YulFunctionCall","src":"9368:23:64"},{"kind":"number","nativeSrc":"9393:2:64","nodeType":"YulLiteral","src":"9393:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9364:3:64","nodeType":"YulIdentifier","src":"9364:3:64"},"nativeSrc":"9364:32:64","nodeType":"YulFunctionCall","src":"9364:32:64"},"nativeSrc":"9361:119:64","nodeType":"YulIf","src":"9361:119:64"},{"nativeSrc":"9490:114:64","nodeType":"YulBlock","src":"9490:114:64","statements":[{"nativeSrc":"9505:15:64","nodeType":"YulVariableDeclaration","src":"9505:15:64","value":{"kind":"number","nativeSrc":"9519:1:64","nodeType":"YulLiteral","src":"9519:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9509:6:64","nodeType":"YulTypedName","src":"9509:6:64","type":""}]},{"nativeSrc":"9534:60:64","nodeType":"YulAssignment","src":"9534:60:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9566:9:64","nodeType":"YulIdentifier","src":"9566:9:64"},{"name":"offset","nativeSrc":"9577:6:64","nodeType":"YulIdentifier","src":"9577:6:64"}],"functionName":{"name":"add","nativeSrc":"9562:3:64","nodeType":"YulIdentifier","src":"9562:3:64"},"nativeSrc":"9562:22:64","nodeType":"YulFunctionCall","src":"9562:22:64"},{"name":"dataEnd","nativeSrc":"9586:7:64","nodeType":"YulIdentifier","src":"9586:7:64"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"9544:17:64","nodeType":"YulIdentifier","src":"9544:17:64"},"nativeSrc":"9544:50:64","nodeType":"YulFunctionCall","src":"9544:50:64"},"variableNames":[{"name":"value0","nativeSrc":"9534:6:64","nodeType":"YulIdentifier","src":"9534:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"9288:323:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9321:9:64","nodeType":"YulTypedName","src":"9321:9:64","type":""},{"name":"dataEnd","nativeSrc":"9332:7:64","nodeType":"YulTypedName","src":"9332:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9344:6:64","nodeType":"YulTypedName","src":"9344:6:64","type":""}],"src":"9288:323:64"},{"body":{"nativeSrc":"9670:51:64","nodeType":"YulBlock","src":"9670:51:64","statements":[{"nativeSrc":"9680:35:64","nodeType":"YulAssignment","src":"9680:35:64","value":{"arguments":[{"name":"value","nativeSrc":"9709:5:64","nodeType":"YulIdentifier","src":"9709:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"9691:17:64","nodeType":"YulIdentifier","src":"9691:17:64"},"nativeSrc":"9691:24:64","nodeType":"YulFunctionCall","src":"9691:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"9680:7:64","nodeType":"YulIdentifier","src":"9680:7:64"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"9617:104:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9652:5:64","nodeType":"YulTypedName","src":"9652:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"9662:7:64","nodeType":"YulTypedName","src":"9662:7:64","type":""}],"src":"9617:104:64"},{"body":{"nativeSrc":"9778:87:64","nodeType":"YulBlock","src":"9778:87:64","statements":[{"body":{"nativeSrc":"9843:16:64","nodeType":"YulBlock","src":"9843:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9852:1:64","nodeType":"YulLiteral","src":"9852:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9855:1:64","nodeType":"YulLiteral","src":"9855:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9845:6:64","nodeType":"YulIdentifier","src":"9845:6:64"},"nativeSrc":"9845:12:64","nodeType":"YulFunctionCall","src":"9845:12:64"},"nativeSrc":"9845:12:64","nodeType":"YulExpressionStatement","src":"9845:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9801:5:64","nodeType":"YulIdentifier","src":"9801:5:64"},{"arguments":[{"name":"value","nativeSrc":"9834:5:64","nodeType":"YulIdentifier","src":"9834:5:64"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"9808:25:64","nodeType":"YulIdentifier","src":"9808:25:64"},"nativeSrc":"9808:32:64","nodeType":"YulFunctionCall","src":"9808:32:64"}],"functionName":{"name":"eq","nativeSrc":"9798:2:64","nodeType":"YulIdentifier","src":"9798:2:64"},"nativeSrc":"9798:43:64","nodeType":"YulFunctionCall","src":"9798:43:64"}],"functionName":{"name":"iszero","nativeSrc":"9791:6:64","nodeType":"YulIdentifier","src":"9791:6:64"},"nativeSrc":"9791:51:64","nodeType":"YulFunctionCall","src":"9791:51:64"},"nativeSrc":"9788:71:64","nodeType":"YulIf","src":"9788:71:64"}]},"name":"validator_revert_t_address_payable","nativeSrc":"9727:138:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9771:5:64","nodeType":"YulTypedName","src":"9771:5:64","type":""}],"src":"9727:138:64"},{"body":{"nativeSrc":"9931:95:64","nodeType":"YulBlock","src":"9931:95:64","statements":[{"nativeSrc":"9941:29:64","nodeType":"YulAssignment","src":"9941:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9963:6:64","nodeType":"YulIdentifier","src":"9963:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9950:12:64","nodeType":"YulIdentifier","src":"9950:12:64"},"nativeSrc":"9950:20:64","nodeType":"YulFunctionCall","src":"9950:20:64"},"variableNames":[{"name":"value","nativeSrc":"9941:5:64","nodeType":"YulIdentifier","src":"9941:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10014:5:64","nodeType":"YulIdentifier","src":"10014:5:64"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"9979:34:64","nodeType":"YulIdentifier","src":"9979:34:64"},"nativeSrc":"9979:41:64","nodeType":"YulFunctionCall","src":"9979:41:64"},"nativeSrc":"9979:41:64","nodeType":"YulExpressionStatement","src":"9979:41:64"}]},"name":"abi_decode_t_address_payable","nativeSrc":"9871:155:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9909:6:64","nodeType":"YulTypedName","src":"9909:6:64","type":""},{"name":"end","nativeSrc":"9917:3:64","nodeType":"YulTypedName","src":"9917:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9925:5:64","nodeType":"YulTypedName","src":"9925:5:64","type":""}],"src":"9871:155:64"},{"body":{"nativeSrc":"10080:54:64","nodeType":"YulBlock","src":"10080:54:64","statements":[{"nativeSrc":"10090:38:64","nodeType":"YulAssignment","src":"10090:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10108:5:64","nodeType":"YulIdentifier","src":"10108:5:64"},{"kind":"number","nativeSrc":"10115:2:64","nodeType":"YulLiteral","src":"10115:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10104:3:64","nodeType":"YulIdentifier","src":"10104:3:64"},"nativeSrc":"10104:14:64","nodeType":"YulFunctionCall","src":"10104:14:64"},{"arguments":[{"kind":"number","nativeSrc":"10124:2:64","nodeType":"YulLiteral","src":"10124:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10120:3:64","nodeType":"YulIdentifier","src":"10120:3:64"},"nativeSrc":"10120:7:64","nodeType":"YulFunctionCall","src":"10120:7:64"}],"functionName":{"name":"and","nativeSrc":"10100:3:64","nodeType":"YulIdentifier","src":"10100:3:64"},"nativeSrc":"10100:28:64","nodeType":"YulFunctionCall","src":"10100:28:64"},"variableNames":[{"name":"result","nativeSrc":"10090:6:64","nodeType":"YulIdentifier","src":"10090:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"10032:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10063:5:64","nodeType":"YulTypedName","src":"10063:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10073:6:64","nodeType":"YulTypedName","src":"10073:6:64","type":""}],"src":"10032:102:64"},{"body":{"nativeSrc":"10168:152:64","nodeType":"YulBlock","src":"10168:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10185:1:64","nodeType":"YulLiteral","src":"10185:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10188:77:64","nodeType":"YulLiteral","src":"10188:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10178:6:64","nodeType":"YulIdentifier","src":"10178:6:64"},"nativeSrc":"10178:88:64","nodeType":"YulFunctionCall","src":"10178:88:64"},"nativeSrc":"10178:88:64","nodeType":"YulExpressionStatement","src":"10178:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10282:1:64","nodeType":"YulLiteral","src":"10282:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"10285:4:64","nodeType":"YulLiteral","src":"10285:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"10275:6:64","nodeType":"YulIdentifier","src":"10275:6:64"},"nativeSrc":"10275:15:64","nodeType":"YulFunctionCall","src":"10275:15:64"},"nativeSrc":"10275:15:64","nodeType":"YulExpressionStatement","src":"10275:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10306:1:64","nodeType":"YulLiteral","src":"10306:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10309:4:64","nodeType":"YulLiteral","src":"10309:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10299:6:64","nodeType":"YulIdentifier","src":"10299:6:64"},"nativeSrc":"10299:15:64","nodeType":"YulFunctionCall","src":"10299:15:64"},"nativeSrc":"10299:15:64","nodeType":"YulExpressionStatement","src":"10299:15:64"}]},"name":"panic_error_0x41","nativeSrc":"10140:180:64","nodeType":"YulFunctionDefinition","src":"10140:180:64"},{"body":{"nativeSrc":"10369:238:64","nodeType":"YulBlock","src":"10369:238:64","statements":[{"nativeSrc":"10379:58:64","nodeType":"YulVariableDeclaration","src":"10379:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"10401:6:64","nodeType":"YulIdentifier","src":"10401:6:64"},{"arguments":[{"name":"size","nativeSrc":"10431:4:64","nodeType":"YulIdentifier","src":"10431:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10409:21:64","nodeType":"YulIdentifier","src":"10409:21:64"},"nativeSrc":"10409:27:64","nodeType":"YulFunctionCall","src":"10409:27:64"}],"functionName":{"name":"add","nativeSrc":"10397:3:64","nodeType":"YulIdentifier","src":"10397:3:64"},"nativeSrc":"10397:40:64","nodeType":"YulFunctionCall","src":"10397:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"10383:10:64","nodeType":"YulTypedName","src":"10383:10:64","type":""}]},{"body":{"nativeSrc":"10548:22:64","nodeType":"YulBlock","src":"10548:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10550:16:64","nodeType":"YulIdentifier","src":"10550:16:64"},"nativeSrc":"10550:18:64","nodeType":"YulFunctionCall","src":"10550:18:64"},"nativeSrc":"10550:18:64","nodeType":"YulExpressionStatement","src":"10550:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10491:10:64","nodeType":"YulIdentifier","src":"10491:10:64"},{"kind":"number","nativeSrc":"10503:18:64","nodeType":"YulLiteral","src":"10503:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10488:2:64","nodeType":"YulIdentifier","src":"10488:2:64"},"nativeSrc":"10488:34:64","nodeType":"YulFunctionCall","src":"10488:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10527:10:64","nodeType":"YulIdentifier","src":"10527:10:64"},{"name":"memPtr","nativeSrc":"10539:6:64","nodeType":"YulIdentifier","src":"10539:6:64"}],"functionName":{"name":"lt","nativeSrc":"10524:2:64","nodeType":"YulIdentifier","src":"10524:2:64"},"nativeSrc":"10524:22:64","nodeType":"YulFunctionCall","src":"10524:22:64"}],"functionName":{"name":"or","nativeSrc":"10485:2:64","nodeType":"YulIdentifier","src":"10485:2:64"},"nativeSrc":"10485:62:64","nodeType":"YulFunctionCall","src":"10485:62:64"},"nativeSrc":"10482:88:64","nodeType":"YulIf","src":"10482:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10586:2:64","nodeType":"YulLiteral","src":"10586:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10590:10:64","nodeType":"YulIdentifier","src":"10590:10:64"}],"functionName":{"name":"mstore","nativeSrc":"10579:6:64","nodeType":"YulIdentifier","src":"10579:6:64"},"nativeSrc":"10579:22:64","nodeType":"YulFunctionCall","src":"10579:22:64"},"nativeSrc":"10579:22:64","nodeType":"YulExpressionStatement","src":"10579:22:64"}]},"name":"finalize_allocation","nativeSrc":"10326:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10355:6:64","nodeType":"YulTypedName","src":"10355:6:64","type":""},{"name":"size","nativeSrc":"10363:4:64","nodeType":"YulTypedName","src":"10363:4:64","type":""}],"src":"10326:281:64"},{"body":{"nativeSrc":"10654:88:64","nodeType":"YulBlock","src":"10654:88:64","statements":[{"nativeSrc":"10664:30:64","nodeType":"YulAssignment","src":"10664:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10674:18:64","nodeType":"YulIdentifier","src":"10674:18:64"},"nativeSrc":"10674:20:64","nodeType":"YulFunctionCall","src":"10674:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"10664:6:64","nodeType":"YulIdentifier","src":"10664:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10723:6:64","nodeType":"YulIdentifier","src":"10723:6:64"},{"name":"size","nativeSrc":"10731:4:64","nodeType":"YulIdentifier","src":"10731:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10703:19:64","nodeType":"YulIdentifier","src":"10703:19:64"},"nativeSrc":"10703:33:64","nodeType":"YulFunctionCall","src":"10703:33:64"},"nativeSrc":"10703:33:64","nodeType":"YulExpressionStatement","src":"10703:33:64"}]},"name":"allocate_memory","nativeSrc":"10613:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10638:4:64","nodeType":"YulTypedName","src":"10638:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10647:6:64","nodeType":"YulTypedName","src":"10647:6:64","type":""}],"src":"10613:129:64"},{"body":{"nativeSrc":"10830:229:64","nodeType":"YulBlock","src":"10830:229:64","statements":[{"body":{"nativeSrc":"10935:22:64","nodeType":"YulBlock","src":"10935:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10937:16:64","nodeType":"YulIdentifier","src":"10937:16:64"},"nativeSrc":"10937:18:64","nodeType":"YulFunctionCall","src":"10937:18:64"},"nativeSrc":"10937:18:64","nodeType":"YulExpressionStatement","src":"10937:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10907:6:64","nodeType":"YulIdentifier","src":"10907:6:64"},{"kind":"number","nativeSrc":"10915:18:64","nodeType":"YulLiteral","src":"10915:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10904:2:64","nodeType":"YulIdentifier","src":"10904:2:64"},"nativeSrc":"10904:30:64","nodeType":"YulFunctionCall","src":"10904:30:64"},"nativeSrc":"10901:56:64","nodeType":"YulIf","src":"10901:56:64"},{"nativeSrc":"10967:25:64","nodeType":"YulAssignment","src":"10967:25:64","value":{"arguments":[{"name":"length","nativeSrc":"10979:6:64","nodeType":"YulIdentifier","src":"10979:6:64"},{"kind":"number","nativeSrc":"10987:4:64","nodeType":"YulLiteral","src":"10987:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10975:3:64","nodeType":"YulIdentifier","src":"10975:3:64"},"nativeSrc":"10975:17:64","nodeType":"YulFunctionCall","src":"10975:17:64"},"variableNames":[{"name":"size","nativeSrc":"10967:4:64","nodeType":"YulIdentifier","src":"10967:4:64"}]},{"nativeSrc":"11029:23:64","nodeType":"YulAssignment","src":"11029:23:64","value":{"arguments":[{"name":"size","nativeSrc":"11041:4:64","nodeType":"YulIdentifier","src":"11041:4:64"},{"kind":"number","nativeSrc":"11047:4:64","nodeType":"YulLiteral","src":"11047:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11037:3:64","nodeType":"YulIdentifier","src":"11037:3:64"},"nativeSrc":"11037:15:64","nodeType":"YulFunctionCall","src":"11037:15:64"},"variableNames":[{"name":"size","nativeSrc":"11029:4:64","nodeType":"YulIdentifier","src":"11029:4:64"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10748:311:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10814:6:64","nodeType":"YulTypedName","src":"10814:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10825:4:64","nodeType":"YulTypedName","src":"10825:4:64","type":""}],"src":"10748:311:64"},{"body":{"nativeSrc":"11184:608:64","nodeType":"YulBlock","src":"11184:608:64","statements":[{"nativeSrc":"11194:90:64","nodeType":"YulAssignment","src":"11194:90:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11276:6:64","nodeType":"YulIdentifier","src":"11276:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11219:56:64","nodeType":"YulIdentifier","src":"11219:56:64"},"nativeSrc":"11219:64:64","nodeType":"YulFunctionCall","src":"11219:64:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"11203:15:64","nodeType":"YulIdentifier","src":"11203:15:64"},"nativeSrc":"11203:81:64","nodeType":"YulFunctionCall","src":"11203:81:64"},"variableNames":[{"name":"array","nativeSrc":"11194:5:64","nodeType":"YulIdentifier","src":"11194:5:64"}]},{"nativeSrc":"11293:16:64","nodeType":"YulVariableDeclaration","src":"11293:16:64","value":{"name":"array","nativeSrc":"11304:5:64","nodeType":"YulIdentifier","src":"11304:5:64"},"variables":[{"name":"dst","nativeSrc":"11297:3:64","nodeType":"YulTypedName","src":"11297:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11326:5:64","nodeType":"YulIdentifier","src":"11326:5:64"},{"name":"length","nativeSrc":"11333:6:64","nodeType":"YulIdentifier","src":"11333:6:64"}],"functionName":{"name":"mstore","nativeSrc":"11319:6:64","nodeType":"YulIdentifier","src":"11319:6:64"},"nativeSrc":"11319:21:64","nodeType":"YulFunctionCall","src":"11319:21:64"},"nativeSrc":"11319:21:64","nodeType":"YulExpressionStatement","src":"11319:21:64"},{"nativeSrc":"11349:23:64","nodeType":"YulAssignment","src":"11349:23:64","value":{"arguments":[{"name":"array","nativeSrc":"11360:5:64","nodeType":"YulIdentifier","src":"11360:5:64"},{"kind":"number","nativeSrc":"11367:4:64","nodeType":"YulLiteral","src":"11367:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11356:3:64","nodeType":"YulIdentifier","src":"11356:3:64"},"nativeSrc":"11356:16:64","nodeType":"YulFunctionCall","src":"11356:16:64"},"variableNames":[{"name":"dst","nativeSrc":"11349:3:64","nodeType":"YulIdentifier","src":"11349:3:64"}]},{"nativeSrc":"11382:44:64","nodeType":"YulVariableDeclaration","src":"11382:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"11400:6:64","nodeType":"YulIdentifier","src":"11400:6:64"},{"arguments":[{"name":"length","nativeSrc":"11412:6:64","nodeType":"YulIdentifier","src":"11412:6:64"},{"kind":"number","nativeSrc":"11420:4:64","nodeType":"YulLiteral","src":"11420:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11408:3:64","nodeType":"YulIdentifier","src":"11408:3:64"},"nativeSrc":"11408:17:64","nodeType":"YulFunctionCall","src":"11408:17:64"}],"functionName":{"name":"add","nativeSrc":"11396:3:64","nodeType":"YulIdentifier","src":"11396:3:64"},"nativeSrc":"11396:30:64","nodeType":"YulFunctionCall","src":"11396:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"11386:6:64","nodeType":"YulTypedName","src":"11386:6:64","type":""}]},{"body":{"nativeSrc":"11454:103:64","nodeType":"YulBlock","src":"11454:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11468:77:64","nodeType":"YulIdentifier","src":"11468:77:64"},"nativeSrc":"11468:79:64","nodeType":"YulFunctionCall","src":"11468:79:64"},"nativeSrc":"11468:79:64","nodeType":"YulExpressionStatement","src":"11468:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11441:6:64","nodeType":"YulIdentifier","src":"11441:6:64"},{"name":"end","nativeSrc":"11449:3:64","nodeType":"YulIdentifier","src":"11449:3:64"}],"functionName":{"name":"gt","nativeSrc":"11438:2:64","nodeType":"YulIdentifier","src":"11438:2:64"},"nativeSrc":"11438:15:64","nodeType":"YulFunctionCall","src":"11438:15:64"},"nativeSrc":"11435:122:64","nodeType":"YulIf","src":"11435:122:64"},{"body":{"nativeSrc":"11642:144:64","nodeType":"YulBlock","src":"11642:144:64","statements":[{"nativeSrc":"11657:21:64","nodeType":"YulVariableDeclaration","src":"11657:21:64","value":{"name":"src","nativeSrc":"11675:3:64","nodeType":"YulIdentifier","src":"11675:3:64"},"variables":[{"name":"elementPos","nativeSrc":"11661:10:64","nodeType":"YulTypedName","src":"11661:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11699:3:64","nodeType":"YulIdentifier","src":"11699:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"11725:10:64","nodeType":"YulIdentifier","src":"11725:10:64"},{"name":"end","nativeSrc":"11737:3:64","nodeType":"YulIdentifier","src":"11737:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11704:20:64","nodeType":"YulIdentifier","src":"11704:20:64"},"nativeSrc":"11704:37:64","nodeType":"YulFunctionCall","src":"11704:37:64"}],"functionName":{"name":"mstore","nativeSrc":"11692:6:64","nodeType":"YulIdentifier","src":"11692:6:64"},"nativeSrc":"11692:50:64","nodeType":"YulFunctionCall","src":"11692:50:64"},"nativeSrc":"11692:50:64","nodeType":"YulExpressionStatement","src":"11692:50:64"},{"nativeSrc":"11755:21:64","nodeType":"YulAssignment","src":"11755:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"11766:3:64","nodeType":"YulIdentifier","src":"11766:3:64"},{"kind":"number","nativeSrc":"11771:4:64","nodeType":"YulLiteral","src":"11771:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11762:3:64","nodeType":"YulIdentifier","src":"11762:3:64"},"nativeSrc":"11762:14:64","nodeType":"YulFunctionCall","src":"11762:14:64"},"variableNames":[{"name":"dst","nativeSrc":"11755:3:64","nodeType":"YulIdentifier","src":"11755:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11595:3:64","nodeType":"YulIdentifier","src":"11595:3:64"},{"name":"srcEnd","nativeSrc":"11600:6:64","nodeType":"YulIdentifier","src":"11600:6:64"}],"functionName":{"name":"lt","nativeSrc":"11592:2:64","nodeType":"YulIdentifier","src":"11592:2:64"},"nativeSrc":"11592:15:64","nodeType":"YulFunctionCall","src":"11592:15:64"},"nativeSrc":"11566:220:64","nodeType":"YulForLoop","post":{"nativeSrc":"11608:25:64","nodeType":"YulBlock","src":"11608:25:64","statements":[{"nativeSrc":"11610:21:64","nodeType":"YulAssignment","src":"11610:21:64","value":{"arguments":[{"name":"src","nativeSrc":"11621:3:64","nodeType":"YulIdentifier","src":"11621:3:64"},{"kind":"number","nativeSrc":"11626:4:64","nodeType":"YulLiteral","src":"11626:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11617:3:64","nodeType":"YulIdentifier","src":"11617:3:64"},"nativeSrc":"11617:14:64","nodeType":"YulFunctionCall","src":"11617:14:64"},"variableNames":[{"name":"src","nativeSrc":"11610:3:64","nodeType":"YulIdentifier","src":"11610:3:64"}]}]},"pre":{"nativeSrc":"11570:21:64","nodeType":"YulBlock","src":"11570:21:64","statements":[{"nativeSrc":"11572:17:64","nodeType":"YulVariableDeclaration","src":"11572:17:64","value":{"name":"offset","nativeSrc":"11583:6:64","nodeType":"YulIdentifier","src":"11583:6:64"},"variables":[{"name":"src","nativeSrc":"11576:3:64","nodeType":"YulTypedName","src":"11576:3:64","type":""}]}]},"src":"11566:220:64"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11082:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11154:6:64","nodeType":"YulTypedName","src":"11154:6:64","type":""},{"name":"length","nativeSrc":"11162:6:64","nodeType":"YulTypedName","src":"11162:6:64","type":""},{"name":"end","nativeSrc":"11170:3:64","nodeType":"YulTypedName","src":"11170:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11178:5:64","nodeType":"YulTypedName","src":"11178:5:64","type":""}],"src":"11082:710:64"},{"body":{"nativeSrc":"11892:293:64","nodeType":"YulBlock","src":"11892:293:64","statements":[{"body":{"nativeSrc":"11941:83:64","nodeType":"YulBlock","src":"11941:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11943:77:64","nodeType":"YulIdentifier","src":"11943:77:64"},"nativeSrc":"11943:79:64","nodeType":"YulFunctionCall","src":"11943:79:64"},"nativeSrc":"11943:79:64","nodeType":"YulExpressionStatement","src":"11943:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11920:6:64","nodeType":"YulIdentifier","src":"11920:6:64"},{"kind":"number","nativeSrc":"11928:4:64","nodeType":"YulLiteral","src":"11928:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11916:3:64","nodeType":"YulIdentifier","src":"11916:3:64"},"nativeSrc":"11916:17:64","nodeType":"YulFunctionCall","src":"11916:17:64"},{"name":"end","nativeSrc":"11935:3:64","nodeType":"YulIdentifier","src":"11935:3:64"}],"functionName":{"name":"slt","nativeSrc":"11912:3:64","nodeType":"YulIdentifier","src":"11912:3:64"},"nativeSrc":"11912:27:64","nodeType":"YulFunctionCall","src":"11912:27:64"}],"functionName":{"name":"iszero","nativeSrc":"11905:6:64","nodeType":"YulIdentifier","src":"11905:6:64"},"nativeSrc":"11905:35:64","nodeType":"YulFunctionCall","src":"11905:35:64"},"nativeSrc":"11902:122:64","nodeType":"YulIf","src":"11902:122:64"},{"nativeSrc":"12033:34:64","nodeType":"YulVariableDeclaration","src":"12033:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"12060:6:64","nodeType":"YulIdentifier","src":"12060:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"12047:12:64","nodeType":"YulIdentifier","src":"12047:12:64"},"nativeSrc":"12047:20:64","nodeType":"YulFunctionCall","src":"12047:20:64"},"variables":[{"name":"length","nativeSrc":"12037:6:64","nodeType":"YulTypedName","src":"12037:6:64","type":""}]},{"nativeSrc":"12076:103:64","nodeType":"YulAssignment","src":"12076:103:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12152:6:64","nodeType":"YulIdentifier","src":"12152:6:64"},{"kind":"number","nativeSrc":"12160:4:64","nodeType":"YulLiteral","src":"12160:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12148:3:64","nodeType":"YulIdentifier","src":"12148:3:64"},"nativeSrc":"12148:17:64","nodeType":"YulFunctionCall","src":"12148:17:64"},{"name":"length","nativeSrc":"12167:6:64","nodeType":"YulIdentifier","src":"12167:6:64"},{"name":"end","nativeSrc":"12175:3:64","nodeType":"YulIdentifier","src":"12175:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12085:62:64","nodeType":"YulIdentifier","src":"12085:62:64"},"nativeSrc":"12085:94:64","nodeType":"YulFunctionCall","src":"12085:94:64"},"variableNames":[{"name":"array","nativeSrc":"12076:5:64","nodeType":"YulIdentifier","src":"12076:5:64"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11815:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11870:6:64","nodeType":"YulTypedName","src":"11870:6:64","type":""},{"name":"end","nativeSrc":"11878:3:64","nodeType":"YulTypedName","src":"11878:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11886:5:64","nodeType":"YulTypedName","src":"11886:5:64","type":""}],"src":"11815:370:64"},{"body":{"nativeSrc":"12307:584:64","nodeType":"YulBlock","src":"12307:584:64","statements":[{"body":{"nativeSrc":"12353:83:64","nodeType":"YulBlock","src":"12353:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12355:77:64","nodeType":"YulIdentifier","src":"12355:77:64"},"nativeSrc":"12355:79:64","nodeType":"YulFunctionCall","src":"12355:79:64"},"nativeSrc":"12355:79:64","nodeType":"YulExpressionStatement","src":"12355:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12328:7:64","nodeType":"YulIdentifier","src":"12328:7:64"},{"name":"headStart","nativeSrc":"12337:9:64","nodeType":"YulIdentifier","src":"12337:9:64"}],"functionName":{"name":"sub","nativeSrc":"12324:3:64","nodeType":"YulIdentifier","src":"12324:3:64"},"nativeSrc":"12324:23:64","nodeType":"YulFunctionCall","src":"12324:23:64"},{"kind":"number","nativeSrc":"12349:2:64","nodeType":"YulLiteral","src":"12349:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12320:3:64","nodeType":"YulIdentifier","src":"12320:3:64"},"nativeSrc":"12320:32:64","nodeType":"YulFunctionCall","src":"12320:32:64"},"nativeSrc":"12317:119:64","nodeType":"YulIf","src":"12317:119:64"},{"nativeSrc":"12446:125:64","nodeType":"YulBlock","src":"12446:125:64","statements":[{"nativeSrc":"12461:15:64","nodeType":"YulVariableDeclaration","src":"12461:15:64","value":{"kind":"number","nativeSrc":"12475:1:64","nodeType":"YulLiteral","src":"12475:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12465:6:64","nodeType":"YulTypedName","src":"12465:6:64","type":""}]},{"nativeSrc":"12490:71:64","nodeType":"YulAssignment","src":"12490:71:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12533:9:64","nodeType":"YulIdentifier","src":"12533:9:64"},{"name":"offset","nativeSrc":"12544:6:64","nodeType":"YulIdentifier","src":"12544:6:64"}],"functionName":{"name":"add","nativeSrc":"12529:3:64","nodeType":"YulIdentifier","src":"12529:3:64"},"nativeSrc":"12529:22:64","nodeType":"YulFunctionCall","src":"12529:22:64"},{"name":"dataEnd","nativeSrc":"12553:7:64","nodeType":"YulIdentifier","src":"12553:7:64"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"12500:28:64","nodeType":"YulIdentifier","src":"12500:28:64"},"nativeSrc":"12500:61:64","nodeType":"YulFunctionCall","src":"12500:61:64"},"variableNames":[{"name":"value0","nativeSrc":"12490:6:64","nodeType":"YulIdentifier","src":"12490:6:64"}]}]},{"nativeSrc":"12581:303:64","nodeType":"YulBlock","src":"12581:303:64","statements":[{"nativeSrc":"12596:46:64","nodeType":"YulVariableDeclaration","src":"12596:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12627:9:64","nodeType":"YulIdentifier","src":"12627:9:64"},{"kind":"number","nativeSrc":"12638:2:64","nodeType":"YulLiteral","src":"12638:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12623:3:64","nodeType":"YulIdentifier","src":"12623:3:64"},"nativeSrc":"12623:18:64","nodeType":"YulFunctionCall","src":"12623:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"12610:12:64","nodeType":"YulIdentifier","src":"12610:12:64"},"nativeSrc":"12610:32:64","nodeType":"YulFunctionCall","src":"12610:32:64"},"variables":[{"name":"offset","nativeSrc":"12600:6:64","nodeType":"YulTypedName","src":"12600:6:64","type":""}]},{"body":{"nativeSrc":"12689:83:64","nodeType":"YulBlock","src":"12689:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12691:77:64","nodeType":"YulIdentifier","src":"12691:77:64"},"nativeSrc":"12691:79:64","nodeType":"YulFunctionCall","src":"12691:79:64"},"nativeSrc":"12691:79:64","nodeType":"YulExpressionStatement","src":"12691:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12661:6:64","nodeType":"YulIdentifier","src":"12661:6:64"},{"kind":"number","nativeSrc":"12669:18:64","nodeType":"YulLiteral","src":"12669:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12658:2:64","nodeType":"YulIdentifier","src":"12658:2:64"},"nativeSrc":"12658:30:64","nodeType":"YulFunctionCall","src":"12658:30:64"},"nativeSrc":"12655:117:64","nodeType":"YulIf","src":"12655:117:64"},{"nativeSrc":"12786:88:64","nodeType":"YulAssignment","src":"12786:88:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12846:9:64","nodeType":"YulIdentifier","src":"12846:9:64"},{"name":"offset","nativeSrc":"12857:6:64","nodeType":"YulIdentifier","src":"12857:6:64"}],"functionName":{"name":"add","nativeSrc":"12842:3:64","nodeType":"YulIdentifier","src":"12842:3:64"},"nativeSrc":"12842:22:64","nodeType":"YulFunctionCall","src":"12842:22:64"},{"name":"dataEnd","nativeSrc":"12866:7:64","nodeType":"YulIdentifier","src":"12866:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12796:45:64","nodeType":"YulIdentifier","src":"12796:45:64"},"nativeSrc":"12796:78:64","nodeType":"YulFunctionCall","src":"12796:78:64"},"variableNames":[{"name":"value1","nativeSrc":"12786:6:64","nodeType":"YulIdentifier","src":"12786:6:64"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr","nativeSrc":"12191:700:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12269:9:64","nodeType":"YulTypedName","src":"12269:9:64","type":""},{"name":"dataEnd","nativeSrc":"12280:7:64","nodeType":"YulTypedName","src":"12280:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12292:6:64","nodeType":"YulTypedName","src":"12292:6:64","type":""},{"name":"value1","nativeSrc":"12300:6:64","nodeType":"YulTypedName","src":"12300:6:64","type":""}],"src":"12191:700:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610113575f3560e01c80634a4ee7b11161009f57806398332bbc1161006357806398332bbc1461031d578063e3f756de14610347578063f04e283e14610383578063f2fde38b1461039f578063fee81cf4146103bb57610113565b80634a4ee7b114610287578063514e62fc146102a357806354d1f13d146102df578063715018a6146102e95780638da5cb5b146102f357610113565b806325692962116100e657806325692962146101c757806328d6183b146101d15780632de94807146101fb5780633abb060414610237578063439fab911461025f57610113565b806301ffc9a714610117578063183a4f6e146101535780631c10893f1461016f5780631cd64df41461018b575b5f80fd5b348015610122575f80fd5b5061013d60048036038101906101389190610d51565b6103f7565b60405161014a9190610d96565b60405180910390f35b61016d60048036038101906101689190610de2565b610470565b005b61018960048036038101906101849190610e67565b61047d565b005b348015610196575f80fd5b506101b160048036038101906101ac9190610e67565b610493565b6040516101be9190610d96565b60405180910390f35b6101cf6104a9565b005b3480156101dc575f80fd5b506101e56104fa565b6040516101f29190610eb4565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c9190610ecd565b610521565b60405161022e9190610f07565b60405180910390f35b348015610242575f80fd5b5061025d60048036038101906102589190610fd6565b61053a565b005b34801561026a575f80fd5b50610285600480360381019061028091906110a9565b610647565b005b6102a1600480360381019061029c9190610e67565b61076f565b005b3480156102ae575f80fd5b506102c960048036038101906102c49190610e67565b610785565b6040516102d69190610d96565b60405180910390f35b6102e761079c565b005b6102f16107d5565b005b3480156102fe575f80fd5b506103076107e8565b6040516103149190611103565b60405180910390f35b348015610328575f80fd5b50610331610810565b60405161033e9190610f07565b60405180910390f35b348015610352575f80fd5b5061036d6004803603810190610368919061111c565b610815565b60405161037a9190610d96565b60405180910390f35b61039d60048036038101906103989190610ecd565b610868565b005b6103b960048036038101906103b49190610ecd565b6108a6565b005b3480156103c6575f80fd5b506103e160048036038101906103dc9190610ecd565b6108cf565b6040516103ee9190610f07565b60405180910390f35b5f7f2bc9016b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104695750610468826108e8565b5b9050919050565b61047a3382610961565b50565b610485610970565b61048f82826109a7565b5050565b5f818261049f85610521565b1614905092915050565b5f6104b26109b7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f2bc9016b00000000000000000000000000000000000000000000000000000000905090565b5f638b78c6d8600c52815f526020600c20549050919050565b6002610545816109c1565b828290508585905014610584576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8585905081101561063f578383828181106105a4576105a3611179565b5b90506020020160208101906105b991906111d0565b5f808888858181106105ce576105cd611179565b5b90506020020160208101906105e39190610ecd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610586565b505050505050565b5f6106506109e8565b905080546003825580156106825760018160011c14303b106106795763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f808484810190610694919061137e565b915091506106a182610a11565b6106ac8260026109a7565b5f5b81518110156107325760015f808484815181106106ce576106cd611179565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506106ae565b505050801561076a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b610777610970565b6107818282610961565b5050565b5f808261079185610521565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6107dd610970565b6107e65f610ae7565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b600281565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1690509392505050565b610870610970565b63389a75e1600c52805f526020600c20805442111561089657636f5e88185f526004601cfd5b5f8155506108a381610ae7565b50565b6108ae610970565b8060601b6108c357637448fbae5f526004601cfd5b6108cc81610ae7565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fcade8742000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061095a575061095982610bad565b5b9050919050565b61096c82825f610c26565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146109a5576382b429005f526004601cfd5b565b6109b382826001610c26565b5050565b5f6202a300905090565b638b78c6d8600c52335f52806020600c2054166109e5576382b429005f526004601cfd5b50565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610a19610c7e565b15610a91577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610a5357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610ae4565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610aef610c7e565b15610b54577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610baa565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c1f5750610c1e82610c82565b5b9050919050565b638b78c6d8600c52825f526020600c20805483811783610c4857848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d3081610cfc565b8114610d3a575f80fd5b50565b5f81359050610d4b81610d27565b92915050565b5f60208284031215610d6657610d65610cf4565b5b5f610d7384828501610d3d565b91505092915050565b5f8115159050919050565b610d9081610d7c565b82525050565b5f602082019050610da95f830184610d87565b92915050565b5f819050919050565b610dc181610daf565b8114610dcb575f80fd5b50565b5f81359050610ddc81610db8565b92915050565b5f60208284031215610df757610df6610cf4565b5b5f610e0484828501610dce565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e3682610e0d565b9050919050565b610e4681610e2c565b8114610e50575f80fd5b50565b5f81359050610e6181610e3d565b92915050565b5f8060408385031215610e7d57610e7c610cf4565b5b5f610e8a85828601610e53565b9250506020610e9b85828601610dce565b9150509250929050565b610eae81610cfc565b82525050565b5f602082019050610ec75f830184610ea5565b92915050565b5f60208284031215610ee257610ee1610cf4565b5b5f610eef84828501610e53565b91505092915050565b610f0181610daf565b82525050565b5f602082019050610f1a5f830184610ef8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610f4157610f40610f20565b5b8235905067ffffffffffffffff811115610f5e57610f5d610f24565b5b602083019150836020820283011115610f7a57610f79610f28565b5b9250929050565b5f8083601f840112610f9657610f95610f20565b5b8235905067ffffffffffffffff811115610fb357610fb2610f24565b5b602083019150836020820283011115610fcf57610fce610f28565b5b9250929050565b5f805f8060408587031215610fee57610fed610cf4565b5b5f85013567ffffffffffffffff81111561100b5761100a610cf8565b5b61101787828801610f2c565b9450945050602085013567ffffffffffffffff81111561103a57611039610cf8565b5b61104687828801610f81565b925092505092959194509250565b5f8083601f84011261106957611068610f20565b5b8235905067ffffffffffffffff81111561108657611085610f24565b5b6020830191508360018202830111156110a2576110a1610f28565b5b9250929050565b5f80602083850312156110bf576110be610cf4565b5b5f83013567ffffffffffffffff8111156110dc576110db610cf8565b5b6110e885828601611054565b92509250509250929050565b6110fd81610e2c565b82525050565b5f6020820190506111165f8301846110f4565b92915050565b5f805f6040848603121561113357611132610cf4565b5b5f61114086828701610e53565b935050602084013567ffffffffffffffff81111561116157611160610cf8565b5b61116d86828701611054565b92509250509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6111af81610d7c565b81146111b9575f80fd5b50565b5f813590506111ca816111a6565b92915050565b5f602082840312156111e5576111e4610cf4565b5b5f6111f2848285016111bc565b91505092915050565b5f61120582610e0d565b9050919050565b611215816111fb565b811461121f575f80fd5b50565b5f813590506112308161120c565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61127c82611236565b810181811067ffffffffffffffff8211171561129b5761129a611246565b5b80604052505050565b5f6112ad610ceb565b90506112b98282611273565b919050565b5f67ffffffffffffffff8211156112d8576112d7611246565b5b602082029050602081019050919050565b5f6112fb6112f6846112be565b6112a4565b9050808382526020820190506020840283018581111561131e5761131d610f28565b5b835b8181101561134757806113338882610e53565b845260208401935050602081019050611320565b5050509392505050565b5f82601f83011261136557611364610f20565b5b81356113758482602086016112e9565b91505092915050565b5f806040838503121561139457611393610cf4565b5b5f6113a185828601611222565b925050602083013567ffffffffffffffff8111156113c2576113c1610cf8565b5b6113ce85828601611351565b915050925092905056fea26469706673582212208ba1101cb31944f6c19182a487faeea5afa38ac2182b660d7beb06572a27971a64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x113 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4A4EE7B1 GT PUSH2 0x9F JUMPI DUP1 PUSH4 0x98332BBC GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x98332BBC EQ PUSH2 0x31D JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x347 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x383 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x3BB JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x287 JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2F3 JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x25692962 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x3ABB0604 EQ PUSH2 0x237 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x25F JUMPI PUSH2 0x113 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x117 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x18B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x122 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0xD51 JUMP JUMPDEST PUSH2 0x3F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x168 SWAP2 SWAP1 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x470 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x189 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x47D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x493 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1CF PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E5 PUSH2 0x4FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0xEB4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x206 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x221 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21C SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22E SWAP2 SWAP1 PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x242 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x258 SWAP2 SWAP1 PUSH2 0xFD6 JUMP JUMPDEST PUSH2 0x53A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x285 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x280 SWAP2 SWAP1 PUSH2 0x10A9 JUMP JUMPDEST PUSH2 0x647 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29C SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x76F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0xE67 JUMP JUMPDEST PUSH2 0x785 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E7 PUSH2 0x79C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2F1 PUSH2 0x7D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x307 PUSH2 0x7E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x328 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x331 PUSH2 0x810 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33E SWAP2 SWAP1 PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x352 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x36D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x368 SWAP2 SWAP1 PUSH2 0x111C JUMP JUMPDEST PUSH2 0x815 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37A SWAP2 SWAP1 PUSH2 0xD96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x398 SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x868 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x8A6 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x8CF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EE SWAP2 SWAP1 PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x2BC9016B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x469 JUMPI POP PUSH2 0x468 DUP3 PUSH2 0x8E8 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x47A CALLER DUP3 PUSH2 0x961 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x485 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x48F DUP3 DUP3 PUSH2 0x9A7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x49F DUP6 PUSH2 0x521 JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4B2 PUSH2 0x9B7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x2BC9016B00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH2 0x545 DUP2 PUSH2 0x9C1 JUMP JUMPDEST DUP3 DUP3 SWAP1 POP DUP6 DUP6 SWAP1 POP EQ PUSH2 0x584 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP6 DUP6 SWAP1 POP DUP2 LT ISZERO PUSH2 0x63F JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x1179 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5B9 SWAP2 SWAP1 PUSH2 0x11D0 JUMP JUMPDEST PUSH0 DUP1 DUP9 DUP9 DUP6 DUP2 DUP2 LT PUSH2 0x5CE JUMPI PUSH2 0x5CD PUSH2 0x1179 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x5E3 SWAP2 SWAP1 PUSH2 0xECD JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x586 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x650 PUSH2 0x9E8 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x682 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x679 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x694 SWAP2 SWAP1 PUSH2 0x137E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x6A1 DUP3 PUSH2 0xA11 JUMP JUMPDEST PUSH2 0x6AC DUP3 PUSH1 0x2 PUSH2 0x9A7 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x732 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x6CE JUMPI PUSH2 0x6CD PUSH2 0x1179 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x6AE JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x76A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x777 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x781 DUP3 DUP3 PUSH2 0x961 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0x791 DUP6 PUSH2 0x521 JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x7DD PUSH2 0x970 JUMP JUMPDEST PUSH2 0x7E6 PUSH0 PUSH2 0xAE7 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x870 PUSH2 0x970 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x896 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x8A3 DUP2 PUSH2 0xAE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x8AE PUSH2 0x970 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x8C3 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x8CC DUP2 PUSH2 0xAE7 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xCADE874200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x95A JUMPI POP PUSH2 0x959 DUP3 PUSH2 0xBAD JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96C DUP3 DUP3 PUSH0 PUSH2 0xC26 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x9A5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x9B3 DUP3 DUP3 PUSH1 0x1 PUSH2 0xC26 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x9E5 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA19 PUSH2 0xC7E JUMP JUMPDEST ISZERO PUSH2 0xA91 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xA53 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xAE4 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xAEF PUSH2 0xC7E JUMP JUMPDEST ISZERO PUSH2 0xB54 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xBAA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC1F JUMPI POP PUSH2 0xC1E DUP3 PUSH2 0xC82 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0xC48 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD30 DUP2 PUSH2 0xCFC JUMP JUMPDEST DUP2 EQ PUSH2 0xD3A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD4B DUP2 PUSH2 0xD27 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD66 JUMPI PUSH2 0xD65 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD73 DUP5 DUP3 DUP6 ADD PUSH2 0xD3D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD90 DUP2 PUSH2 0xD7C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA9 PUSH0 DUP4 ADD DUP5 PUSH2 0xD87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDC1 DUP2 PUSH2 0xDAF JUMP JUMPDEST DUP2 EQ PUSH2 0xDCB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDDC DUP2 PUSH2 0xDB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDF7 JUMPI PUSH2 0xDF6 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE04 DUP5 DUP3 DUP6 ADD PUSH2 0xDCE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xE36 DUP3 PUSH2 0xE0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE46 DUP2 PUSH2 0xE2C JUMP JUMPDEST DUP2 EQ PUSH2 0xE50 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE61 DUP2 PUSH2 0xE3D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE7D JUMPI PUSH2 0xE7C PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE8A DUP6 DUP3 DUP7 ADD PUSH2 0xE53 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE9B DUP6 DUP3 DUP7 ADD PUSH2 0xDCE JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xEAE DUP2 PUSH2 0xCFC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEC7 PUSH0 DUP4 ADD DUP5 PUSH2 0xEA5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xEE2 JUMPI PUSH2 0xEE1 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEEF DUP5 DUP3 DUP6 ADD PUSH2 0xE53 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF01 DUP2 PUSH2 0xDAF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF1A PUSH0 DUP4 ADD DUP5 PUSH2 0xEF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF41 JUMPI PUSH2 0xF40 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF5E JUMPI PUSH2 0xF5D PUSH2 0xF24 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF7A JUMPI PUSH2 0xF79 PUSH2 0xF28 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF96 JUMPI PUSH2 0xF95 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xFB3 JUMPI PUSH2 0xFB2 PUSH2 0xF24 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xFCF JUMPI PUSH2 0xFCE PUSH2 0xF28 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xFEE JUMPI PUSH2 0xFED PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x100B JUMPI PUSH2 0x100A PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x1017 DUP8 DUP3 DUP9 ADD PUSH2 0xF2C JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x103A JUMPI PUSH2 0x1039 PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x1046 DUP8 DUP3 DUP9 ADD PUSH2 0xF81 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1069 JUMPI PUSH2 0x1068 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1086 JUMPI PUSH2 0x1085 PUSH2 0xF24 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x10A2 JUMPI PUSH2 0x10A1 PUSH2 0xF28 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10BF JUMPI PUSH2 0x10BE PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10DC JUMPI PUSH2 0x10DB PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x10E8 DUP6 DUP3 DUP7 ADD PUSH2 0x1054 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x10FD DUP2 PUSH2 0xE2C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1116 PUSH0 DUP4 ADD DUP5 PUSH2 0x10F4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1133 JUMPI PUSH2 0x1132 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1140 DUP7 DUP3 DUP8 ADD PUSH2 0xE53 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1161 JUMPI PUSH2 0x1160 PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x116D DUP7 DUP3 DUP8 ADD PUSH2 0x1054 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x11AF DUP2 PUSH2 0xD7C JUMP JUMPDEST DUP2 EQ PUSH2 0x11B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11CA DUP2 PUSH2 0x11A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11E5 JUMPI PUSH2 0x11E4 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x11F2 DUP5 DUP3 DUP6 ADD PUSH2 0x11BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1205 DUP3 PUSH2 0xE0D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1215 DUP2 PUSH2 0x11FB JUMP JUMPDEST DUP2 EQ PUSH2 0x121F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1230 DUP2 PUSH2 0x120C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x127C DUP3 PUSH2 0x1236 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x129B JUMPI PUSH2 0x129A PUSH2 0x1246 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x12AD PUSH2 0xCEB JUMP JUMPDEST SWAP1 POP PUSH2 0x12B9 DUP3 DUP3 PUSH2 0x1273 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x1246 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x12FB PUSH2 0x12F6 DUP5 PUSH2 0x12BE JUMP JUMPDEST PUSH2 0x12A4 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x131E JUMPI PUSH2 0x131D PUSH2 0xF28 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1347 JUMPI DUP1 PUSH2 0x1333 DUP9 DUP3 PUSH2 0xE53 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1320 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1365 JUMPI PUSH2 0x1364 PUSH2 0xF20 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1375 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1394 JUMPI PUSH2 0x1393 PUSH2 0xCF4 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13A1 DUP6 DUP3 DUP7 ADD PUSH2 0x1222 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13C2 JUMPI PUSH2 0x13C1 PUSH2 0xCF8 JUMP JUMPDEST JUMPDEST PUSH2 0x13CE DUP6 DUP3 DUP7 ADD PUSH2 0x1351 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 LOG1 LT SHR 0xB3 NOT PREVRANDAO 0xF6 0xC1 SWAP2 DUP3 LOG4 DUP8 STATICCALL 0xEE 0xA5 0xAF LOG3 DUP11 0xC2 XOR 0x2B PUSH7 0xD7BEB06572A27 SWAP8 BYTE PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"472:899:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2191:215:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:109:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9588:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11178:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;2007:148:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10567:353:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1659:312:35;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;993:376:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9856:125:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10982:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;579:50:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1211:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2191:215:35;2287:4;2325:34;2310:49;;;:11;:49;;;;:89;;;;2363:36;2387:11;2363:23;:36::i;:::-;2310:89;2303:96;;2191:215;;;:::o;10127:109:17:-;10198:31;10211:10;10223:5;10198:12;:31::i;:::-;10127:109;:::o;9588:123::-;12517:13:16;:11;:13::i;:::-;9680:24:17::1;9692:4;9698:5;9680:11;:24::i;:::-;9588:123:::0;;:::o;11178:139::-;11257:4;11305:5;11296;11280:13;11288:4;11280:7;:13::i;:::-;:21;:30;11273:37;;11178:139;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;2007:148:35:-;2089:6;2114:34;2107:41;;2007:148;:::o;10567:353:17:-;10627:13;10769:15;10763:4;10756:29;10811:4;10805;10798:18;10898:4;10892;10882:21;10876:28;10867:37;;10567:353;;;:::o;1659:312:35:-;623:6;11733:18:17;11745:5;11733:11;:18::i;:::-;1801:8:35::1;;:15;;1784:6;;:13;;:32;1780:72;;1825:27;;;;;;;;;;;;;;1780:72;1868:9;1863:102;1887:6;;:13;;1883:1;:17;1863:102;;;1943:8;;1952:1;1943:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1921:8;:19:::0;1930:6:::1;;1937:1;1930:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1921:19;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;1902:3;;;;;;;1863:102;;;;1659:312:::0;;;;;:::o;993:376:38:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1082:14:38::1;1098:27:::0;1140:5:::1;;1129:39;;;;;;;:::i;:::-;1081:87;;;;1178:24;1195:6;1178:16;:24::i;:::-;1212:38;1224:6;623::35;1212:11:38;:38::i;:::-;1265:9;1260:103;1284:10;:17;1280:1;:21;1260:103;;;1348:4;1322:8;:23:::0;1331:10:::1;1342:1;1331:13;;;;;;;;:::i;:::-;;;;;;;;1322:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1303:3;;;;;;;1260:103;;;;1071:298;;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;993:376:38;;:::o;9856:125:17:-;12517:13:16;:11;:13::i;:::-;9949:25:17::1;9962:4;9968:5;9949:12;:25::i;:::-;9856:125:::0;;:::o;10982:134::-;11060:4;11108:1;11099:5;11083:13;11091:4;11083:7;:13::i;:::-;:21;:26;;11076:33;;10982:134;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;579:50:35:-;623:6;579:50;:::o;1211:149::-;1315:4;1338:8;:15;1347:5;1338:15;;;;;;;;;;;;;;;;;;;;;;;;;1331:22;;1211:149;;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1023:208:37:-;1119:4;1157:27;1142:42;;;:11;:42;;;;:82;;;;1188:36;1212:11;1188:23;:36::i;:::-;1142:82;1135:89;;1023:208;;;:::o;4304:117:17:-;4382:32;4395:4;4401:5;4408;4382:12;:32::i;:::-;4304:117;;:::o;7292:355:16:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;4053:115:17:-;4130:31;4143:4;4149:5;4156:4;4130:12;:31::i;:::-;4053:115;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;4495:554:17:-;4680:15;4674:4;4667:29;4722:8;4716:4;4709:22;4913:5;4905:4;4899;4889:21;4883:28;4879:40;4869:164;;4952:10;4946:4;4939:24;5014:4;5008;5001:18;4869:164;4495:554;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;2952:967:17:-;3118:15;3112:4;3105:29;3160:4;3154;3147:18;3210:4;3204;3194:21;3288:8;3282:15;3395:5;3386:7;3383:18;3639:2;3629:62;;3682:5;3673:7;3669:19;3660:7;3656:33;3645:44;;3629:62;3763:7;3753:8;3746:25;3895:7;3887:4;3881:11;3877:2;3873:20;3841:30;3838:1;3835;3830:73;3091:822;;;2952:967;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:126::-;2246:7;2286:42;2279:5;2275:54;2264:65;;2209:126;;;:::o;2341:96::-;2378:7;2407:24;2425:5;2407:24;:::i;:::-;2396:35;;2341:96;;;:::o;2443:122::-;2516:24;2534:5;2516:24;:::i;:::-;2509:5;2506:35;2496:63;;2555:1;2552;2545:12;2496:63;2443:122;:::o;2571:139::-;2617:5;2655:6;2642:20;2633:29;;2671:33;2698:5;2671:33;:::i;:::-;2571:139;;;;:::o;2716:474::-;2784:6;2792;2841:2;2829:9;2820:7;2816:23;2812:32;2809:119;;;2847:79;;:::i;:::-;2809:119;2967:1;2992:53;3037:7;3028:6;3017:9;3013:22;2992:53;:::i;:::-;2982:63;;2938:117;3094:2;3120:53;3165:7;3156:6;3145:9;3141:22;3120:53;:::i;:::-;3110:63;;3065:118;2716:474;;;;;:::o;3196:115::-;3281:23;3298:5;3281:23;:::i;:::-;3276:3;3269:36;3196:115;;:::o;3317:218::-;3408:4;3446:2;3435:9;3431:18;3423:26;;3459:69;3525:1;3514:9;3510:17;3501:6;3459:69;:::i;:::-;3317:218;;;;:::o;3541:329::-;3600:6;3649:2;3637:9;3628:7;3624:23;3620:32;3617:119;;;3655:79;;:::i;:::-;3617:119;3775:1;3800:53;3845:7;3836:6;3825:9;3821:22;3800:53;:::i;:::-;3790:63;;3746:117;3541:329;;;;:::o;3876:118::-;3963:24;3981:5;3963:24;:::i;:::-;3958:3;3951:37;3876:118;;:::o;4000:222::-;4093:4;4131:2;4120:9;4116:18;4108:26;;4144:71;4212:1;4201:9;4197:17;4188:6;4144:71;:::i;:::-;4000:222;;;;:::o;4228:117::-;4337:1;4334;4327:12;4351:117;4460:1;4457;4450:12;4474:117;4583:1;4580;4573:12;4614:568;4687:8;4697:6;4747:3;4740:4;4732:6;4728:17;4724:27;4714:122;;4755:79;;:::i;:::-;4714:122;4868:6;4855:20;4845:30;;4898:18;4890:6;4887:30;4884:117;;;4920:79;;:::i;:::-;4884:117;5034:4;5026:6;5022:17;5010:29;;5088:3;5080:4;5072:6;5068:17;5058:8;5054:32;5051:41;5048:128;;;5095:79;;:::i;:::-;5048:128;4614:568;;;;;:::o;5202:565::-;5272:8;5282:6;5332:3;5325:4;5317:6;5313:17;5309:27;5299:122;;5340:79;;:::i;:::-;5299:122;5453:6;5440:20;5430:30;;5483:18;5475:6;5472:30;5469:117;;;5505:79;;:::i;:::-;5469:117;5619:4;5611:6;5607:17;5595:29;;5673:3;5665:4;5657:6;5653:17;5643:8;5639:32;5636:41;5633:128;;;5680:79;;:::i;:::-;5633:128;5202:565;;;;;:::o;5773:928::-;5892:6;5900;5908;5916;5965:2;5953:9;5944:7;5940:23;5936:32;5933:119;;;5971:79;;:::i;:::-;5933:119;6119:1;6108:9;6104:17;6091:31;6149:18;6141:6;6138:30;6135:117;;;6171:79;;:::i;:::-;6135:117;6284:80;6356:7;6347:6;6336:9;6332:22;6284:80;:::i;:::-;6266:98;;;;6062:312;6441:2;6430:9;6426:18;6413:32;6472:18;6464:6;6461:30;6458:117;;;6494:79;;:::i;:::-;6458:117;6607:77;6676:7;6667:6;6656:9;6652:22;6607:77;:::i;:::-;6589:95;;;;6384:310;5773:928;;;;;;;:::o;6720:552::-;6777:8;6787:6;6837:3;6830:4;6822:6;6818:17;6814:27;6804:122;;6845:79;;:::i;:::-;6804:122;6958:6;6945:20;6935:30;;6988:18;6980:6;6977:30;6974:117;;;7010:79;;:::i;:::-;6974:117;7124:4;7116:6;7112:17;7100:29;;7178:3;7170:4;7162:6;7158:17;7148:8;7144:32;7141:41;7138:128;;;7185:79;;:::i;:::-;7138:128;6720:552;;;;;:::o;7278:527::-;7348:6;7356;7405:2;7393:9;7384:7;7380:23;7376:32;7373:119;;;7411:79;;:::i;:::-;7373:119;7559:1;7548:9;7544:17;7531:31;7589:18;7581:6;7578:30;7575:117;;;7611:79;;:::i;:::-;7575:117;7724:64;7780:7;7771:6;7760:9;7756:22;7724:64;:::i;:::-;7706:82;;;;7502:296;7278:527;;;;;:::o;7811:118::-;7898:24;7916:5;7898:24;:::i;:::-;7893:3;7886:37;7811:118;;:::o;7935:222::-;8028:4;8066:2;8055:9;8051:18;8043:26;;8079:71;8147:1;8136:9;8132:17;8123:6;8079:71;:::i;:::-;7935:222;;;;:::o;8163:672::-;8242:6;8250;8258;8307:2;8295:9;8286:7;8282:23;8278:32;8275:119;;;8313:79;;:::i;:::-;8275:119;8433:1;8458:53;8503:7;8494:6;8483:9;8479:22;8458:53;:::i;:::-;8448:63;;8404:117;8588:2;8577:9;8573:18;8560:32;8619:18;8611:6;8608:30;8605:117;;;8641:79;;:::i;:::-;8605:117;8754:64;8810:7;8801:6;8790:9;8786:22;8754:64;:::i;:::-;8736:82;;;;8531:297;8163:672;;;;;:::o;8841:180::-;8889:77;8886:1;8879:88;8986:4;8983:1;8976:15;9010:4;9007:1;9000:15;9027:116;9097:21;9112:5;9097:21;:::i;:::-;9090:5;9087:32;9077:60;;9133:1;9130;9123:12;9077:60;9027:116;:::o;9149:133::-;9192:5;9230:6;9217:20;9208:29;;9246:30;9270:5;9246:30;:::i;:::-;9149:133;;;;:::o;9288:323::-;9344:6;9393:2;9381:9;9372:7;9368:23;9364:32;9361:119;;;9399:79;;:::i;:::-;9361:119;9519:1;9544:50;9586:7;9577:6;9566:9;9562:22;9544:50;:::i;:::-;9534:60;;9490:114;9288:323;;;;:::o;9617:104::-;9662:7;9691:24;9709:5;9691:24;:::i;:::-;9680:35;;9617:104;;;:::o;9727:138::-;9808:32;9834:5;9808:32;:::i;:::-;9801:5;9798:43;9788:71;;9855:1;9852;9845:12;9788:71;9727:138;:::o;9871:155::-;9925:5;9963:6;9950:20;9941:29;;9979:41;10014:5;9979:41;:::i;:::-;9871:155;;;;:::o;10032:102::-;10073:6;10124:2;10120:7;10115:2;10108:5;10104:14;10100:28;10090:38;;10032:102;;;:::o;10140:180::-;10188:77;10185:1;10178:88;10285:4;10282:1;10275:15;10309:4;10306:1;10299:15;10326:281;10409:27;10431:4;10409:27;:::i;:::-;10401:6;10397:40;10539:6;10527:10;10524:22;10503:18;10491:10;10488:34;10485:62;10482:88;;;10550:18;;:::i;:::-;10482:88;10590:10;10586:2;10579:22;10369:238;10326:281;;:::o;10613:129::-;10647:6;10674:20;;:::i;:::-;10664:30;;10703:33;10731:4;10723:6;10703:33;:::i;:::-;10613:129;;;:::o;10748:311::-;10825:4;10915:18;10907:6;10904:30;10901:56;;;10937:18;;:::i;:::-;10901:56;10987:4;10979:6;10975:17;10967:25;;11047:4;11041;11037:15;11029:23;;10748:311;;;:::o;11082:710::-;11178:5;11203:81;11219:64;11276:6;11219:64;:::i;:::-;11203:81;:::i;:::-;11194:90;;11304:5;11333:6;11326:5;11319:21;11367:4;11360:5;11356:16;11349:23;;11420:4;11412:6;11408:17;11400:6;11396:30;11449:3;11441:6;11438:15;11435:122;;;11468:79;;:::i;:::-;11435:122;11583:6;11566:220;11600:6;11595:3;11592:15;11566:220;;;11675:3;11704:37;11737:3;11725:10;11704:37;:::i;:::-;11699:3;11692:50;11771:4;11766:3;11762:14;11755:21;;11642:144;11626:4;11621:3;11617:14;11610:21;;11566:220;;;11570:21;11184:608;;11082:710;;;;;:::o;11815:370::-;11886:5;11935:3;11928:4;11920:6;11916:17;11912:27;11902:122;;11943:79;;:::i;:::-;11902:122;12060:6;12047:20;12085:94;12175:3;12167:6;12160:4;12152:6;12148:17;12085:94;:::i;:::-;12076:103;;11892:293;11815:370;;;;:::o;12191:700::-;12292:6;12300;12349:2;12337:9;12328:7;12324:23;12320:32;12317:119;;;12355:79;;:::i;:::-;12317:119;12475:1;12500:61;12553:7;12544:6;12533:9;12529:22;12500:61;:::i;:::-;12490:71;;12446:125;12638:2;12627:9;12623:18;12610:32;12669:18;12661:6;12658:30;12655:117;;;12691:79;;:::i;:::-;12655:117;12796:78;12866:7;12857:6;12846:9;12842:22;12796:78;:::i;:::-;12786:88;;12581:303;12191:700;;;;;:::o"},"methodIdentifiers":{"LIST_MANAGER_ROLE()":"98332bbc","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","setAllowed(address[],bool[])":"3abb0604","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LIST_MANAGER_ROLE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"allowed_\",\"type\":\"bool[]\"}],\"name\":\"setAllowed\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization data `(address owner, address[] allowList)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"setAllowed(address[],bool[])\":{\"details\":\"The length of the `users_` and `allowed_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"allowed_\":\"The allowed status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Simple AllowList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"LIST_MANAGER_ROLE()\":{\"notice\":\"The role for managing the allow list\"},\"constructor\":{\"notice\":\"Construct a new SimpleAllowList\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the list of allowed addresses\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized\"},\"setAllowed(address[],bool[])\":{\"notice\":\"Set the allowed status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that checks if a user is authorized based on a list of allowed addresses\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/SimpleAllowList.sol\":\"SimpleAllowList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/ASimpleAllowList.sol\":{\"keccak256\":\"0x5eaa5dd8c8950c248d1f9e35c2b37182aa30e94f29a7c40124533e05365a961c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6c74d9642b12b51a71b37d2c44c8f9d013f1e482603435aa69f885efb0957776\",\"dweb:/ipfs/QmU1VFaUvKQhL54jrpvUen5D9qaMEtP5JWdzNxtdaF4Wbk\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/allowlists/SimpleAllowList.sol\":{\"keccak256\":\"0xc8081da07ec10a14bc9f0106fbbaa1d3dc6caf0f15af735ad4bc1885be234922\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2f8559c3969ad76707078c68afa34206e4a82d310ee807a6dc0096176474bb17\",\"dweb:/ipfs/QmYdrxCWgaXsjbESyfkuZneiyVnizjqic7Tcv6BaNjQrFM\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/allowlists/SimpleDenyList.sol":{"SimpleDenyList":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"isAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users_","type":"address[]"},{"internalType":"bool[]","name":"denied_","type":"bool[]"}],"name":"setDenied","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_13539":{"entryPoint":null,"id":13539,"parameterSlots":0,"returnSlots":0},"@_13680":{"entryPoint":null,"id":13680,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6110ac806101b45f395ff3fe6080604052600436106100a6575f3560e01c8063715018a611610063578063715018a6146101745780638da5cb5b1461017e578063e3f756de146101a8578063f04e283e146101e4578063f2fde38b14610200578063fee81cf41461021c576100a6565b806301ffc9a7146100aa578063141973b0146100e6578063256929621461010e57806328d6183b14610118578063439fab911461014257806354d1f13d1461016a575b5f80fd5b3480156100b5575f80fd5b506100d060048036038101906100cb9190610a82565b610258565b6040516100dd9190610ac7565b60405180910390f35b3480156100f1575f80fd5b5061010c60048036038101906101079190610b96565b6102d1565b005b6101166103da565b005b348015610123575f80fd5b5061012c61042b565b6040516101399190610c23565b60405180910390f35b34801561014d575f80fd5b5061016860048036038101906101639190610c91565b610452565b005b61017261056f565b005b61017c6105a8565b005b348015610189575f80fd5b506101926105bb565b60405161019f9190610d1b565b60405180910390f35b3480156101b3575f80fd5b506101ce60048036038101906101c99190610d5e565b6105e3565b6040516101db9190610ac7565b60405180910390f35b6101fe60048036038101906101f99190610dbb565b610637565b005b61021a60048036038101906102159190610dbb565b610675565b005b348015610227575f80fd5b50610242600480360381019061023d9190610dbb565b61069e565b60405161024f9190610dfe565b60405180910390f35b5f7f9d585f63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102ca57506102c9826106b7565b5b9050919050565b6102d9610730565b818190508484905014610318576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156103d35782828281811061033857610337610e17565b5b905060200201602081019061034d9190610e6e565b5f8087878581811061036257610361610e17565b5b90506020020160208101906103779190610dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061031a565b5050505050565b5f6103e3610767565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f9d585f6300000000000000000000000000000000000000000000000000000000905090565b5f61045b610771565b9050805460038255801561048d5760018160011c14303b106104845763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f80848481019061049f919061101c565b915091506104ac8261079a565b5f5b81518110156105325760015f808484815181106104ce576104cd610e17565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104ae565b505050801561056a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105b0610730565b6105b95f610870565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161590509392505050565b61063f610730565b63389a75e1600c52805f526020600c20805442111561066557636f5e88185f526004601cfd5b5f81555061067281610870565b50565b61067d610730565b8060601b61069257637448fbae5f526004601cfd5b61069b81610870565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fcade8742000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610729575061072882610936565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610765576382b429005f526004601cfd5b565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6107a26109af565b1561081a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156107dc57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061086d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6108786109af565b156108dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610933565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109a857506109a7826109b3565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610a6181610a2d565b8114610a6b575f80fd5b50565b5f81359050610a7c81610a58565b92915050565b5f60208284031215610a9757610a96610a25565b5b5f610aa484828501610a6e565b91505092915050565b5f8115159050919050565b610ac181610aad565b82525050565b5f602082019050610ada5f830184610ab8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610b0157610b00610ae0565b5b8235905067ffffffffffffffff811115610b1e57610b1d610ae4565b5b602083019150836020820283011115610b3a57610b39610ae8565b5b9250929050565b5f8083601f840112610b5657610b55610ae0565b5b8235905067ffffffffffffffff811115610b7357610b72610ae4565b5b602083019150836020820283011115610b8f57610b8e610ae8565b5b9250929050565b5f805f8060408587031215610bae57610bad610a25565b5b5f85013567ffffffffffffffff811115610bcb57610bca610a29565b5b610bd787828801610aec565b9450945050602085013567ffffffffffffffff811115610bfa57610bf9610a29565b5b610c0687828801610b41565b925092505092959194509250565b610c1d81610a2d565b82525050565b5f602082019050610c365f830184610c14565b92915050565b5f8083601f840112610c5157610c50610ae0565b5b8235905067ffffffffffffffff811115610c6e57610c6d610ae4565b5b602083019150836001820283011115610c8a57610c89610ae8565b5b9250929050565b5f8060208385031215610ca757610ca6610a25565b5b5f83013567ffffffffffffffff811115610cc457610cc3610a29565b5b610cd085828601610c3c565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d0582610cdc565b9050919050565b610d1581610cfb565b82525050565b5f602082019050610d2e5f830184610d0c565b92915050565b610d3d81610cfb565b8114610d47575f80fd5b50565b5f81359050610d5881610d34565b92915050565b5f805f60408486031215610d7557610d74610a25565b5b5f610d8286828701610d4a565b935050602084013567ffffffffffffffff811115610da357610da2610a29565b5b610daf86828701610c3c565b92509250509250925092565b5f60208284031215610dd057610dcf610a25565b5b5f610ddd84828501610d4a565b91505092915050565b5f819050919050565b610df881610de6565b82525050565b5f602082019050610e115f830184610def565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610e4d81610aad565b8114610e57575f80fd5b50565b5f81359050610e6881610e44565b92915050565b5f60208284031215610e8357610e82610a25565b5b5f610e9084828501610e5a565b91505092915050565b5f610ea382610cdc565b9050919050565b610eb381610e99565b8114610ebd575f80fd5b50565b5f81359050610ece81610eaa565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610f1a82610ed4565b810181811067ffffffffffffffff82111715610f3957610f38610ee4565b5b80604052505050565b5f610f4b610a1c565b9050610f578282610f11565b919050565b5f67ffffffffffffffff821115610f7657610f75610ee4565b5b602082029050602081019050919050565b5f610f99610f9484610f5c565b610f42565b90508083825260208201905060208402830185811115610fbc57610fbb610ae8565b5b835b81811015610fe55780610fd18882610d4a565b845260208401935050602081019050610fbe565b5050509392505050565b5f82601f83011261100357611002610ae0565b5b8135611013848260208601610f87565b91505092915050565b5f806040838503121561103257611031610a25565b5b5f61103f85828601610ec0565b925050602083013567ffffffffffffffff8111156110605761105f610a29565b5b61106c85828601610fef565b915050925092905056fea2646970667358221220a5ea30e283c627d5516ba20e9c124ff1dea6b5c30004776975765465608dff6c64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x10AC DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x21C JUMPI PUSH2 0xA6 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x141973B0 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x16A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x116 PUSH2 0x3DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x123 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x12C PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xC23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0x452 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x172 PUSH2 0x56F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17C PUSH2 0x5A8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x189 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19F SWAP2 SWAP1 PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C9 SWAP2 SWAP1 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0x5E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x675 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24F SWAP2 SWAP1 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x9D585F6300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2CA JUMPI POP PUSH2 0x2C9 DUP3 PUSH2 0x6B7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D9 PUSH2 0x730 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x318 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x3D3 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x338 JUMPI PUSH2 0x337 PUSH2 0xE17 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0xE6E JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x362 JUMPI PUSH2 0x361 PUSH2 0xE17 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x377 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x31A JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3E3 PUSH2 0x767 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x9D585F6300000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x45B PUSH2 0x771 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x484 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x49F SWAP2 SWAP1 PUSH2 0x101C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x4AC DUP3 PUSH2 0x79A JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x532 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x4CE JUMPI PUSH2 0x4CD PUSH2 0xE17 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x4AE JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x56A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x5B0 PUSH2 0x730 JUMP JUMPDEST PUSH2 0x5B9 PUSH0 PUSH2 0x870 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x63F PUSH2 0x730 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x665 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x672 DUP2 PUSH2 0x870 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x67D PUSH2 0x730 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x692 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x69B DUP2 PUSH2 0x870 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xCADE874200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x729 JUMPI POP PUSH2 0x728 DUP3 PUSH2 0x936 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x765 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7A2 PUSH2 0x9AF JUMP JUMPDEST ISZERO PUSH2 0x81A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7DC JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x86D JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x878 PUSH2 0x9AF JUMP JUMPDEST ISZERO PUSH2 0x8DD JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x933 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x9A8 JUMPI POP PUSH2 0x9A7 DUP3 PUSH2 0x9B3 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA61 DUP2 PUSH2 0xA2D JUMP JUMPDEST DUP2 EQ PUSH2 0xA6B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA7C DUP2 PUSH2 0xA58 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA97 JUMPI PUSH2 0xA96 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xAA4 DUP5 DUP3 DUP6 ADD PUSH2 0xA6E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC1 DUP2 PUSH2 0xAAD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADA PUSH0 DUP4 ADD DUP5 PUSH2 0xAB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB01 JUMPI PUSH2 0xB00 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB1E JUMPI PUSH2 0xB1D PUSH2 0xAE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB3A JUMPI PUSH2 0xB39 PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB56 JUMPI PUSH2 0xB55 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB73 JUMPI PUSH2 0xB72 PUSH2 0xAE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB8F JUMPI PUSH2 0xB8E PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xBAE JUMPI PUSH2 0xBAD PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBCB JUMPI PUSH2 0xBCA PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xBD7 DUP8 DUP3 DUP9 ADD PUSH2 0xAEC JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFA JUMPI PUSH2 0xBF9 PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xC06 DUP8 DUP3 DUP9 ADD PUSH2 0xB41 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0xC1D DUP2 PUSH2 0xA2D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC36 PUSH0 DUP4 ADD DUP5 PUSH2 0xC14 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xC51 JUMPI PUSH2 0xC50 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6E JUMPI PUSH2 0xC6D PUSH2 0xAE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xC8A JUMPI PUSH2 0xC89 PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCA7 JUMPI PUSH2 0xCA6 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCC4 JUMPI PUSH2 0xCC3 PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xCD0 DUP6 DUP3 DUP7 ADD PUSH2 0xC3C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xD05 DUP3 PUSH2 0xCDC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD15 DUP2 PUSH2 0xCFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD2E PUSH0 DUP4 ADD DUP5 PUSH2 0xD0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xCFB JUMP JUMPDEST DUP2 EQ PUSH2 0xD47 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD58 DUP2 PUSH2 0xD34 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD82 DUP7 DUP3 DUP8 ADD PUSH2 0xD4A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDA3 JUMPI PUSH2 0xDA2 PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xDAF DUP7 DUP3 DUP8 ADD PUSH2 0xC3C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDD0 JUMPI PUSH2 0xDCF PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDDD DUP5 DUP3 DUP6 ADD PUSH2 0xD4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDF8 DUP2 PUSH2 0xDE6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE11 PUSH0 DUP4 ADD DUP5 PUSH2 0xDEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xAAD JUMP JUMPDEST DUP2 EQ PUSH2 0xE57 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE68 DUP2 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE83 JUMPI PUSH2 0xE82 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE90 DUP5 DUP3 DUP6 ADD PUSH2 0xE5A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xEA3 DUP3 PUSH2 0xCDC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEB3 DUP2 PUSH2 0xE99 JUMP JUMPDEST DUP2 EQ PUSH2 0xEBD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xECE DUP2 PUSH2 0xEAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xF1A DUP3 PUSH2 0xED4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF39 JUMPI PUSH2 0xF38 PUSH2 0xEE4 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xF4B PUSH2 0xA1C JUMP JUMPDEST SWAP1 POP PUSH2 0xF57 DUP3 DUP3 PUSH2 0xF11 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0xEE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF99 PUSH2 0xF94 DUP5 PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF42 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xFBC JUMPI PUSH2 0xFBB PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xFE5 JUMPI DUP1 PUSH2 0xFD1 DUP9 DUP3 PUSH2 0xD4A JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xFBE JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1003 JUMPI PUSH2 0x1002 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1013 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xF87 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1032 JUMPI PUSH2 0x1031 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x103F DUP6 DUP3 DUP7 ADD PUSH2 0xEC0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1060 JUMPI PUSH2 0x105F PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0x106C DUP6 DUP3 DUP7 ADD PUSH2 0xFEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xEA ADDRESS 0xE2 DUP4 0xC6 0x27 0xD5 MLOAD PUSH12 0xA20E9C124FF1DEA6B5C30004 PUSH24 0x6975765465608DFF6C64736F6C634300081A003300000000 ","sourceMap":"299:851:39:-:0;;;588:53;;;;;;;;;;634:28:37;651:10;634:16;;;:28;;:::i;:::-;612:22:39;:20;;;:22;;:::i;:::-;299:851;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;299:851:39:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6308":{"entryPoint":1840,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":2479,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":1905,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":1946,"id":6288,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6319":{"entryPoint":1895,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":2160,"id":6302,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":1391,"id":6368,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":1591,"id":6382,"parameterSlots":1,"returnSlots":0},"@getComponentInterface_13494":{"entryPoint":1067,"id":13494,"parameterSlots":0,"returnSlots":1},"@initialize_13731":{"entryPoint":1106,"id":13731,"parameterSlots":2,"returnSlots":0},"@isAllowed_13433":{"entryPoint":1507,"id":13433,"parameterSlots":3,"returnSlots":1},"@owner_6390":{"entryPoint":1467,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":1694,"id":6400,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":1448,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":986,"id":6362,"parameterSlots":0,"returnSlots":0},"@setDenied_13480":{"entryPoint":721,"id":13480,"parameterSlots":4,"returnSlots":0},"@supportsInterface_13517":{"entryPoint":600,"id":13517,"parameterSlots":1,"returnSlots":1},"@supportsInterface_13572":{"entryPoint":1719,"id":13572,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":2358,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":2483,"id":2830,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":1653,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3975,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":3402,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":3776,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":2796,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4079,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":2881,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":3674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":2670,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3132,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_address":{"entryPoint":3515,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr":{"entryPoint":4124,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_bytes_calldata_ptr":{"entryPoint":3422,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool":{"entryPoint":3694,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":2690,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3217,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3340,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2744,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":3092,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3567,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3355,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2759,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":3107,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3582,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":3906,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":2588,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":3932,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address":{"entryPoint":3323,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":3737,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2733,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":2605,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3292,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3558,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":3857,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":3607,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":3812,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":2788,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":2784,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":2792,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":2601,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2597,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":3796,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":3380,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":3754,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3652,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":2648,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:11806:64","nodeType":"YulBlock","src":"0:11806:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1607:28:64","nodeType":"YulBlock","src":"1607:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:64","nodeType":"YulLiteral","src":"1624:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:64","nodeType":"YulLiteral","src":"1627:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:64","nodeType":"YulIdentifier","src":"1617:6:64"},"nativeSrc":"1617:12:64","nodeType":"YulFunctionCall","src":"1617:12:64"},"nativeSrc":"1617:12:64","nodeType":"YulExpressionStatement","src":"1617:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1518:117:64","nodeType":"YulFunctionDefinition","src":"1518:117:64"},{"body":{"nativeSrc":"1730:28:64","nodeType":"YulBlock","src":"1730:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1747:1:64","nodeType":"YulLiteral","src":"1747:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1750:1:64","nodeType":"YulLiteral","src":"1750:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1740:6:64","nodeType":"YulIdentifier","src":"1740:6:64"},"nativeSrc":"1740:12:64","nodeType":"YulFunctionCall","src":"1740:12:64"},"nativeSrc":"1740:12:64","nodeType":"YulExpressionStatement","src":"1740:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1641:117:64","nodeType":"YulFunctionDefinition","src":"1641:117:64"},{"body":{"nativeSrc":"1853:28:64","nodeType":"YulBlock","src":"1853:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1870:1:64","nodeType":"YulLiteral","src":"1870:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1873:1:64","nodeType":"YulLiteral","src":"1873:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1863:6:64","nodeType":"YulIdentifier","src":"1863:6:64"},"nativeSrc":"1863:12:64","nodeType":"YulFunctionCall","src":"1863:12:64"},"nativeSrc":"1863:12:64","nodeType":"YulExpressionStatement","src":"1863:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"1764:117:64","nodeType":"YulFunctionDefinition","src":"1764:117:64"},{"body":{"nativeSrc":"1994:478:64","nodeType":"YulBlock","src":"1994:478:64","statements":[{"body":{"nativeSrc":"2043:83:64","nodeType":"YulBlock","src":"2043:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2045:77:64","nodeType":"YulIdentifier","src":"2045:77:64"},"nativeSrc":"2045:79:64","nodeType":"YulFunctionCall","src":"2045:79:64"},"nativeSrc":"2045:79:64","nodeType":"YulExpressionStatement","src":"2045:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2022:6:64","nodeType":"YulIdentifier","src":"2022:6:64"},{"kind":"number","nativeSrc":"2030:4:64","nodeType":"YulLiteral","src":"2030:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2018:3:64","nodeType":"YulIdentifier","src":"2018:3:64"},"nativeSrc":"2018:17:64","nodeType":"YulFunctionCall","src":"2018:17:64"},{"name":"end","nativeSrc":"2037:3:64","nodeType":"YulIdentifier","src":"2037:3:64"}],"functionName":{"name":"slt","nativeSrc":"2014:3:64","nodeType":"YulIdentifier","src":"2014:3:64"},"nativeSrc":"2014:27:64","nodeType":"YulFunctionCall","src":"2014:27:64"}],"functionName":{"name":"iszero","nativeSrc":"2007:6:64","nodeType":"YulIdentifier","src":"2007:6:64"},"nativeSrc":"2007:35:64","nodeType":"YulFunctionCall","src":"2007:35:64"},"nativeSrc":"2004:122:64","nodeType":"YulIf","src":"2004:122:64"},{"nativeSrc":"2135:30:64","nodeType":"YulAssignment","src":"2135:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"2158:6:64","nodeType":"YulIdentifier","src":"2158:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2145:12:64","nodeType":"YulIdentifier","src":"2145:12:64"},"nativeSrc":"2145:20:64","nodeType":"YulFunctionCall","src":"2145:20:64"},"variableNames":[{"name":"length","nativeSrc":"2135:6:64","nodeType":"YulIdentifier","src":"2135:6:64"}]},{"body":{"nativeSrc":"2208:83:64","nodeType":"YulBlock","src":"2208:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2210:77:64","nodeType":"YulIdentifier","src":"2210:77:64"},"nativeSrc":"2210:79:64","nodeType":"YulFunctionCall","src":"2210:79:64"},"nativeSrc":"2210:79:64","nodeType":"YulExpressionStatement","src":"2210:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2180:6:64","nodeType":"YulIdentifier","src":"2180:6:64"},{"kind":"number","nativeSrc":"2188:18:64","nodeType":"YulLiteral","src":"2188:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2177:2:64","nodeType":"YulIdentifier","src":"2177:2:64"},"nativeSrc":"2177:30:64","nodeType":"YulFunctionCall","src":"2177:30:64"},"nativeSrc":"2174:117:64","nodeType":"YulIf","src":"2174:117:64"},{"nativeSrc":"2300:29:64","nodeType":"YulAssignment","src":"2300:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2316:6:64","nodeType":"YulIdentifier","src":"2316:6:64"},{"kind":"number","nativeSrc":"2324:4:64","nodeType":"YulLiteral","src":"2324:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2312:3:64","nodeType":"YulIdentifier","src":"2312:3:64"},"nativeSrc":"2312:17:64","nodeType":"YulFunctionCall","src":"2312:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"2300:8:64","nodeType":"YulIdentifier","src":"2300:8:64"}]},{"body":{"nativeSrc":"2383:83:64","nodeType":"YulBlock","src":"2383:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2385:77:64","nodeType":"YulIdentifier","src":"2385:77:64"},"nativeSrc":"2385:79:64","nodeType":"YulFunctionCall","src":"2385:79:64"},"nativeSrc":"2385:79:64","nodeType":"YulExpressionStatement","src":"2385:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2348:8:64","nodeType":"YulIdentifier","src":"2348:8:64"},{"arguments":[{"name":"length","nativeSrc":"2362:6:64","nodeType":"YulIdentifier","src":"2362:6:64"},{"kind":"number","nativeSrc":"2370:4:64","nodeType":"YulLiteral","src":"2370:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2358:3:64","nodeType":"YulIdentifier","src":"2358:3:64"},"nativeSrc":"2358:17:64","nodeType":"YulFunctionCall","src":"2358:17:64"}],"functionName":{"name":"add","nativeSrc":"2344:3:64","nodeType":"YulIdentifier","src":"2344:3:64"},"nativeSrc":"2344:32:64","nodeType":"YulFunctionCall","src":"2344:32:64"},{"name":"end","nativeSrc":"2378:3:64","nodeType":"YulIdentifier","src":"2378:3:64"}],"functionName":{"name":"gt","nativeSrc":"2341:2:64","nodeType":"YulIdentifier","src":"2341:2:64"},"nativeSrc":"2341:41:64","nodeType":"YulFunctionCall","src":"2341:41:64"},"nativeSrc":"2338:128:64","nodeType":"YulIf","src":"2338:128:64"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"1904:568:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:64","nodeType":"YulTypedName","src":"1961:6:64","type":""},{"name":"end","nativeSrc":"1969:3:64","nodeType":"YulTypedName","src":"1969:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"1977:8:64","nodeType":"YulTypedName","src":"1977:8:64","type":""},{"name":"length","nativeSrc":"1987:6:64","nodeType":"YulTypedName","src":"1987:6:64","type":""}],"src":"1904:568:64"},{"body":{"nativeSrc":"2579:478:64","nodeType":"YulBlock","src":"2579:478:64","statements":[{"body":{"nativeSrc":"2628:83:64","nodeType":"YulBlock","src":"2628:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2630:77:64","nodeType":"YulIdentifier","src":"2630:77:64"},"nativeSrc":"2630:79:64","nodeType":"YulFunctionCall","src":"2630:79:64"},"nativeSrc":"2630:79:64","nodeType":"YulExpressionStatement","src":"2630:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2607:6:64","nodeType":"YulIdentifier","src":"2607:6:64"},{"kind":"number","nativeSrc":"2615:4:64","nodeType":"YulLiteral","src":"2615:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2603:3:64","nodeType":"YulIdentifier","src":"2603:3:64"},"nativeSrc":"2603:17:64","nodeType":"YulFunctionCall","src":"2603:17:64"},{"name":"end","nativeSrc":"2622:3:64","nodeType":"YulIdentifier","src":"2622:3:64"}],"functionName":{"name":"slt","nativeSrc":"2599:3:64","nodeType":"YulIdentifier","src":"2599:3:64"},"nativeSrc":"2599:27:64","nodeType":"YulFunctionCall","src":"2599:27:64"}],"functionName":{"name":"iszero","nativeSrc":"2592:6:64","nodeType":"YulIdentifier","src":"2592:6:64"},"nativeSrc":"2592:35:64","nodeType":"YulFunctionCall","src":"2592:35:64"},"nativeSrc":"2589:122:64","nodeType":"YulIf","src":"2589:122:64"},{"nativeSrc":"2720:30:64","nodeType":"YulAssignment","src":"2720:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"2743:6:64","nodeType":"YulIdentifier","src":"2743:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2730:12:64","nodeType":"YulIdentifier","src":"2730:12:64"},"nativeSrc":"2730:20:64","nodeType":"YulFunctionCall","src":"2730:20:64"},"variableNames":[{"name":"length","nativeSrc":"2720:6:64","nodeType":"YulIdentifier","src":"2720:6:64"}]},{"body":{"nativeSrc":"2793:83:64","nodeType":"YulBlock","src":"2793:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2795:77:64","nodeType":"YulIdentifier","src":"2795:77:64"},"nativeSrc":"2795:79:64","nodeType":"YulFunctionCall","src":"2795:79:64"},"nativeSrc":"2795:79:64","nodeType":"YulExpressionStatement","src":"2795:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2765:6:64","nodeType":"YulIdentifier","src":"2765:6:64"},{"kind":"number","nativeSrc":"2773:18:64","nodeType":"YulLiteral","src":"2773:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2762:2:64","nodeType":"YulIdentifier","src":"2762:2:64"},"nativeSrc":"2762:30:64","nodeType":"YulFunctionCall","src":"2762:30:64"},"nativeSrc":"2759:117:64","nodeType":"YulIf","src":"2759:117:64"},{"nativeSrc":"2885:29:64","nodeType":"YulAssignment","src":"2885:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2901:6:64","nodeType":"YulIdentifier","src":"2901:6:64"},{"kind":"number","nativeSrc":"2909:4:64","nodeType":"YulLiteral","src":"2909:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2897:3:64","nodeType":"YulIdentifier","src":"2897:3:64"},"nativeSrc":"2897:17:64","nodeType":"YulFunctionCall","src":"2897:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"2885:8:64","nodeType":"YulIdentifier","src":"2885:8:64"}]},{"body":{"nativeSrc":"2968:83:64","nodeType":"YulBlock","src":"2968:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2970:77:64","nodeType":"YulIdentifier","src":"2970:77:64"},"nativeSrc":"2970:79:64","nodeType":"YulFunctionCall","src":"2970:79:64"},"nativeSrc":"2970:79:64","nodeType":"YulExpressionStatement","src":"2970:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2933:8:64","nodeType":"YulIdentifier","src":"2933:8:64"},{"arguments":[{"name":"length","nativeSrc":"2947:6:64","nodeType":"YulIdentifier","src":"2947:6:64"},{"kind":"number","nativeSrc":"2955:4:64","nodeType":"YulLiteral","src":"2955:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2943:3:64","nodeType":"YulIdentifier","src":"2943:3:64"},"nativeSrc":"2943:17:64","nodeType":"YulFunctionCall","src":"2943:17:64"}],"functionName":{"name":"add","nativeSrc":"2929:3:64","nodeType":"YulIdentifier","src":"2929:3:64"},"nativeSrc":"2929:32:64","nodeType":"YulFunctionCall","src":"2929:32:64"},{"name":"end","nativeSrc":"2963:3:64","nodeType":"YulIdentifier","src":"2963:3:64"}],"functionName":{"name":"gt","nativeSrc":"2926:2:64","nodeType":"YulIdentifier","src":"2926:2:64"},"nativeSrc":"2926:41:64","nodeType":"YulFunctionCall","src":"2926:41:64"},"nativeSrc":"2923:128:64","nodeType":"YulIf","src":"2923:128:64"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"2492:565:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2546:6:64","nodeType":"YulTypedName","src":"2546:6:64","type":""},{"name":"end","nativeSrc":"2554:3:64","nodeType":"YulTypedName","src":"2554:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2562:8:64","nodeType":"YulTypedName","src":"2562:8:64","type":""},{"name":"length","nativeSrc":"2572:6:64","nodeType":"YulTypedName","src":"2572:6:64","type":""}],"src":"2492:565:64"},{"body":{"nativeSrc":"3213:778:64","nodeType":"YulBlock","src":"3213:778:64","statements":[{"body":{"nativeSrc":"3259:83:64","nodeType":"YulBlock","src":"3259:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3261:77:64","nodeType":"YulIdentifier","src":"3261:77:64"},"nativeSrc":"3261:79:64","nodeType":"YulFunctionCall","src":"3261:79:64"},"nativeSrc":"3261:79:64","nodeType":"YulExpressionStatement","src":"3261:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3234:7:64","nodeType":"YulIdentifier","src":"3234:7:64"},{"name":"headStart","nativeSrc":"3243:9:64","nodeType":"YulIdentifier","src":"3243:9:64"}],"functionName":{"name":"sub","nativeSrc":"3230:3:64","nodeType":"YulIdentifier","src":"3230:3:64"},"nativeSrc":"3230:23:64","nodeType":"YulFunctionCall","src":"3230:23:64"},{"kind":"number","nativeSrc":"3255:2:64","nodeType":"YulLiteral","src":"3255:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3226:3:64","nodeType":"YulIdentifier","src":"3226:3:64"},"nativeSrc":"3226:32:64","nodeType":"YulFunctionCall","src":"3226:32:64"},"nativeSrc":"3223:119:64","nodeType":"YulIf","src":"3223:119:64"},{"nativeSrc":"3352:312:64","nodeType":"YulBlock","src":"3352:312:64","statements":[{"nativeSrc":"3367:45:64","nodeType":"YulVariableDeclaration","src":"3367:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3398:9:64","nodeType":"YulIdentifier","src":"3398:9:64"},{"kind":"number","nativeSrc":"3409:1:64","nodeType":"YulLiteral","src":"3409:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3394:3:64","nodeType":"YulIdentifier","src":"3394:3:64"},"nativeSrc":"3394:17:64","nodeType":"YulFunctionCall","src":"3394:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"3381:12:64","nodeType":"YulIdentifier","src":"3381:12:64"},"nativeSrc":"3381:31:64","nodeType":"YulFunctionCall","src":"3381:31:64"},"variables":[{"name":"offset","nativeSrc":"3371:6:64","nodeType":"YulTypedName","src":"3371:6:64","type":""}]},{"body":{"nativeSrc":"3459:83:64","nodeType":"YulBlock","src":"3459:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3461:77:64","nodeType":"YulIdentifier","src":"3461:77:64"},"nativeSrc":"3461:79:64","nodeType":"YulFunctionCall","src":"3461:79:64"},"nativeSrc":"3461:79:64","nodeType":"YulExpressionStatement","src":"3461:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3431:6:64","nodeType":"YulIdentifier","src":"3431:6:64"},{"kind":"number","nativeSrc":"3439:18:64","nodeType":"YulLiteral","src":"3439:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3428:2:64","nodeType":"YulIdentifier","src":"3428:2:64"},"nativeSrc":"3428:30:64","nodeType":"YulFunctionCall","src":"3428:30:64"},"nativeSrc":"3425:117:64","nodeType":"YulIf","src":"3425:117:64"},{"nativeSrc":"3556:98:64","nodeType":"YulAssignment","src":"3556:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3626:9:64","nodeType":"YulIdentifier","src":"3626:9:64"},{"name":"offset","nativeSrc":"3637:6:64","nodeType":"YulIdentifier","src":"3637:6:64"}],"functionName":{"name":"add","nativeSrc":"3622:3:64","nodeType":"YulIdentifier","src":"3622:3:64"},"nativeSrc":"3622:22:64","nodeType":"YulFunctionCall","src":"3622:22:64"},{"name":"dataEnd","nativeSrc":"3646:7:64","nodeType":"YulIdentifier","src":"3646:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3574:47:64","nodeType":"YulIdentifier","src":"3574:47:64"},"nativeSrc":"3574:80:64","nodeType":"YulFunctionCall","src":"3574:80:64"},"variableNames":[{"name":"value0","nativeSrc":"3556:6:64","nodeType":"YulIdentifier","src":"3556:6:64"},{"name":"value1","nativeSrc":"3564:6:64","nodeType":"YulIdentifier","src":"3564:6:64"}]}]},{"nativeSrc":"3674:310:64","nodeType":"YulBlock","src":"3674:310:64","statements":[{"nativeSrc":"3689:46:64","nodeType":"YulVariableDeclaration","src":"3689:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3720:9:64","nodeType":"YulIdentifier","src":"3720:9:64"},{"kind":"number","nativeSrc":"3731:2:64","nodeType":"YulLiteral","src":"3731:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3716:3:64","nodeType":"YulIdentifier","src":"3716:3:64"},"nativeSrc":"3716:18:64","nodeType":"YulFunctionCall","src":"3716:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"3703:12:64","nodeType":"YulIdentifier","src":"3703:12:64"},"nativeSrc":"3703:32:64","nodeType":"YulFunctionCall","src":"3703:32:64"},"variables":[{"name":"offset","nativeSrc":"3693:6:64","nodeType":"YulTypedName","src":"3693:6:64","type":""}]},{"body":{"nativeSrc":"3782:83:64","nodeType":"YulBlock","src":"3782:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3784:77:64","nodeType":"YulIdentifier","src":"3784:77:64"},"nativeSrc":"3784:79:64","nodeType":"YulFunctionCall","src":"3784:79:64"},"nativeSrc":"3784:79:64","nodeType":"YulExpressionStatement","src":"3784:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3754:6:64","nodeType":"YulIdentifier","src":"3754:6:64"},{"kind":"number","nativeSrc":"3762:18:64","nodeType":"YulLiteral","src":"3762:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3751:2:64","nodeType":"YulIdentifier","src":"3751:2:64"},"nativeSrc":"3751:30:64","nodeType":"YulFunctionCall","src":"3751:30:64"},"nativeSrc":"3748:117:64","nodeType":"YulIf","src":"3748:117:64"},{"nativeSrc":"3879:95:64","nodeType":"YulAssignment","src":"3879:95:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3946:9:64","nodeType":"YulIdentifier","src":"3946:9:64"},{"name":"offset","nativeSrc":"3957:6:64","nodeType":"YulIdentifier","src":"3957:6:64"}],"functionName":{"name":"add","nativeSrc":"3942:3:64","nodeType":"YulIdentifier","src":"3942:3:64"},"nativeSrc":"3942:22:64","nodeType":"YulFunctionCall","src":"3942:22:64"},{"name":"dataEnd","nativeSrc":"3966:7:64","nodeType":"YulIdentifier","src":"3966:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3897:44:64","nodeType":"YulIdentifier","src":"3897:44:64"},"nativeSrc":"3897:77:64","nodeType":"YulFunctionCall","src":"3897:77:64"},"variableNames":[{"name":"value2","nativeSrc":"3879:6:64","nodeType":"YulIdentifier","src":"3879:6:64"},{"name":"value3","nativeSrc":"3887:6:64","nodeType":"YulIdentifier","src":"3887:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3063:928:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3159:9:64","nodeType":"YulTypedName","src":"3159:9:64","type":""},{"name":"dataEnd","nativeSrc":"3170:7:64","nodeType":"YulTypedName","src":"3170:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3182:6:64","nodeType":"YulTypedName","src":"3182:6:64","type":""},{"name":"value1","nativeSrc":"3190:6:64","nodeType":"YulTypedName","src":"3190:6:64","type":""},{"name":"value2","nativeSrc":"3198:6:64","nodeType":"YulTypedName","src":"3198:6:64","type":""},{"name":"value3","nativeSrc":"3206:6:64","nodeType":"YulTypedName","src":"3206:6:64","type":""}],"src":"3063:928:64"},{"body":{"nativeSrc":"4060:52:64","nodeType":"YulBlock","src":"4060:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4077:3:64","nodeType":"YulIdentifier","src":"4077:3:64"},{"arguments":[{"name":"value","nativeSrc":"4099:5:64","nodeType":"YulIdentifier","src":"4099:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"4082:16:64","nodeType":"YulIdentifier","src":"4082:16:64"},"nativeSrc":"4082:23:64","nodeType":"YulFunctionCall","src":"4082:23:64"}],"functionName":{"name":"mstore","nativeSrc":"4070:6:64","nodeType":"YulIdentifier","src":"4070:6:64"},"nativeSrc":"4070:36:64","nodeType":"YulFunctionCall","src":"4070:36:64"},"nativeSrc":"4070:36:64","nodeType":"YulExpressionStatement","src":"4070:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"3997:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4048:5:64","nodeType":"YulTypedName","src":"4048:5:64","type":""},{"name":"pos","nativeSrc":"4055:3:64","nodeType":"YulTypedName","src":"4055:3:64","type":""}],"src":"3997:115:64"},{"body":{"nativeSrc":"4214:122:64","nodeType":"YulBlock","src":"4214:122:64","statements":[{"nativeSrc":"4224:26:64","nodeType":"YulAssignment","src":"4224:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4236:9:64","nodeType":"YulIdentifier","src":"4236:9:64"},{"kind":"number","nativeSrc":"4247:2:64","nodeType":"YulLiteral","src":"4247:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4232:3:64","nodeType":"YulIdentifier","src":"4232:3:64"},"nativeSrc":"4232:18:64","nodeType":"YulFunctionCall","src":"4232:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4224:4:64","nodeType":"YulIdentifier","src":"4224:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4302:6:64","nodeType":"YulIdentifier","src":"4302:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4315:9:64","nodeType":"YulIdentifier","src":"4315:9:64"},{"kind":"number","nativeSrc":"4326:1:64","nodeType":"YulLiteral","src":"4326:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4311:3:64","nodeType":"YulIdentifier","src":"4311:3:64"},"nativeSrc":"4311:17:64","nodeType":"YulFunctionCall","src":"4311:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"4260:41:64","nodeType":"YulIdentifier","src":"4260:41:64"},"nativeSrc":"4260:69:64","nodeType":"YulFunctionCall","src":"4260:69:64"},"nativeSrc":"4260:69:64","nodeType":"YulExpressionStatement","src":"4260:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"4118:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4186:9:64","nodeType":"YulTypedName","src":"4186:9:64","type":""},{"name":"value0","nativeSrc":"4198:6:64","nodeType":"YulTypedName","src":"4198:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4209:4:64","nodeType":"YulTypedName","src":"4209:4:64","type":""}],"src":"4118:218:64"},{"body":{"nativeSrc":"4429:478:64","nodeType":"YulBlock","src":"4429:478:64","statements":[{"body":{"nativeSrc":"4478:83:64","nodeType":"YulBlock","src":"4478:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4480:77:64","nodeType":"YulIdentifier","src":"4480:77:64"},"nativeSrc":"4480:79:64","nodeType":"YulFunctionCall","src":"4480:79:64"},"nativeSrc":"4480:79:64","nodeType":"YulExpressionStatement","src":"4480:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4457:6:64","nodeType":"YulIdentifier","src":"4457:6:64"},{"kind":"number","nativeSrc":"4465:4:64","nodeType":"YulLiteral","src":"4465:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4453:3:64","nodeType":"YulIdentifier","src":"4453:3:64"},"nativeSrc":"4453:17:64","nodeType":"YulFunctionCall","src":"4453:17:64"},{"name":"end","nativeSrc":"4472:3:64","nodeType":"YulIdentifier","src":"4472:3:64"}],"functionName":{"name":"slt","nativeSrc":"4449:3:64","nodeType":"YulIdentifier","src":"4449:3:64"},"nativeSrc":"4449:27:64","nodeType":"YulFunctionCall","src":"4449:27:64"}],"functionName":{"name":"iszero","nativeSrc":"4442:6:64","nodeType":"YulIdentifier","src":"4442:6:64"},"nativeSrc":"4442:35:64","nodeType":"YulFunctionCall","src":"4442:35:64"},"nativeSrc":"4439:122:64","nodeType":"YulIf","src":"4439:122:64"},{"nativeSrc":"4570:30:64","nodeType":"YulAssignment","src":"4570:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"4593:6:64","nodeType":"YulIdentifier","src":"4593:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4580:12:64","nodeType":"YulIdentifier","src":"4580:12:64"},"nativeSrc":"4580:20:64","nodeType":"YulFunctionCall","src":"4580:20:64"},"variableNames":[{"name":"length","nativeSrc":"4570:6:64","nodeType":"YulIdentifier","src":"4570:6:64"}]},{"body":{"nativeSrc":"4643:83:64","nodeType":"YulBlock","src":"4643:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4645:77:64","nodeType":"YulIdentifier","src":"4645:77:64"},"nativeSrc":"4645:79:64","nodeType":"YulFunctionCall","src":"4645:79:64"},"nativeSrc":"4645:79:64","nodeType":"YulExpressionStatement","src":"4645:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4615:6:64","nodeType":"YulIdentifier","src":"4615:6:64"},{"kind":"number","nativeSrc":"4623:18:64","nodeType":"YulLiteral","src":"4623:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4612:2:64","nodeType":"YulIdentifier","src":"4612:2:64"},"nativeSrc":"4612:30:64","nodeType":"YulFunctionCall","src":"4612:30:64"},"nativeSrc":"4609:117:64","nodeType":"YulIf","src":"4609:117:64"},{"nativeSrc":"4735:29:64","nodeType":"YulAssignment","src":"4735:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4751:6:64","nodeType":"YulIdentifier","src":"4751:6:64"},{"kind":"number","nativeSrc":"4759:4:64","nodeType":"YulLiteral","src":"4759:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4747:3:64","nodeType":"YulIdentifier","src":"4747:3:64"},"nativeSrc":"4747:17:64","nodeType":"YulFunctionCall","src":"4747:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"4735:8:64","nodeType":"YulIdentifier","src":"4735:8:64"}]},{"body":{"nativeSrc":"4818:83:64","nodeType":"YulBlock","src":"4818:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4820:77:64","nodeType":"YulIdentifier","src":"4820:77:64"},"nativeSrc":"4820:79:64","nodeType":"YulFunctionCall","src":"4820:79:64"},"nativeSrc":"4820:79:64","nodeType":"YulExpressionStatement","src":"4820:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4783:8:64","nodeType":"YulIdentifier","src":"4783:8:64"},{"arguments":[{"name":"length","nativeSrc":"4797:6:64","nodeType":"YulIdentifier","src":"4797:6:64"},{"kind":"number","nativeSrc":"4805:4:64","nodeType":"YulLiteral","src":"4805:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"4793:3:64","nodeType":"YulIdentifier","src":"4793:3:64"},"nativeSrc":"4793:17:64","nodeType":"YulFunctionCall","src":"4793:17:64"}],"functionName":{"name":"add","nativeSrc":"4779:3:64","nodeType":"YulIdentifier","src":"4779:3:64"},"nativeSrc":"4779:32:64","nodeType":"YulFunctionCall","src":"4779:32:64"},{"name":"end","nativeSrc":"4813:3:64","nodeType":"YulIdentifier","src":"4813:3:64"}],"functionName":{"name":"gt","nativeSrc":"4776:2:64","nodeType":"YulIdentifier","src":"4776:2:64"},"nativeSrc":"4776:41:64","nodeType":"YulFunctionCall","src":"4776:41:64"},"nativeSrc":"4773:128:64","nodeType":"YulIf","src":"4773:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4355:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4396:6:64","nodeType":"YulTypedName","src":"4396:6:64","type":""},{"name":"end","nativeSrc":"4404:3:64","nodeType":"YulTypedName","src":"4404:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4412:8:64","nodeType":"YulTypedName","src":"4412:8:64","type":""},{"name":"length","nativeSrc":"4422:6:64","nodeType":"YulTypedName","src":"4422:6:64","type":""}],"src":"4355:552:64"},{"body":{"nativeSrc":"4998:442:64","nodeType":"YulBlock","src":"4998:442:64","statements":[{"body":{"nativeSrc":"5044:83:64","nodeType":"YulBlock","src":"5044:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5046:77:64","nodeType":"YulIdentifier","src":"5046:77:64"},"nativeSrc":"5046:79:64","nodeType":"YulFunctionCall","src":"5046:79:64"},"nativeSrc":"5046:79:64","nodeType":"YulExpressionStatement","src":"5046:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5019:7:64","nodeType":"YulIdentifier","src":"5019:7:64"},{"name":"headStart","nativeSrc":"5028:9:64","nodeType":"YulIdentifier","src":"5028:9:64"}],"functionName":{"name":"sub","nativeSrc":"5015:3:64","nodeType":"YulIdentifier","src":"5015:3:64"},"nativeSrc":"5015:23:64","nodeType":"YulFunctionCall","src":"5015:23:64"},{"kind":"number","nativeSrc":"5040:2:64","nodeType":"YulLiteral","src":"5040:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5011:3:64","nodeType":"YulIdentifier","src":"5011:3:64"},"nativeSrc":"5011:32:64","nodeType":"YulFunctionCall","src":"5011:32:64"},"nativeSrc":"5008:119:64","nodeType":"YulIf","src":"5008:119:64"},{"nativeSrc":"5137:296:64","nodeType":"YulBlock","src":"5137:296:64","statements":[{"nativeSrc":"5152:45:64","nodeType":"YulVariableDeclaration","src":"5152:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5183:9:64","nodeType":"YulIdentifier","src":"5183:9:64"},{"kind":"number","nativeSrc":"5194:1:64","nodeType":"YulLiteral","src":"5194:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5179:3:64","nodeType":"YulIdentifier","src":"5179:3:64"},"nativeSrc":"5179:17:64","nodeType":"YulFunctionCall","src":"5179:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"5166:12:64","nodeType":"YulIdentifier","src":"5166:12:64"},"nativeSrc":"5166:31:64","nodeType":"YulFunctionCall","src":"5166:31:64"},"variables":[{"name":"offset","nativeSrc":"5156:6:64","nodeType":"YulTypedName","src":"5156:6:64","type":""}]},{"body":{"nativeSrc":"5244:83:64","nodeType":"YulBlock","src":"5244:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5246:77:64","nodeType":"YulIdentifier","src":"5246:77:64"},"nativeSrc":"5246:79:64","nodeType":"YulFunctionCall","src":"5246:79:64"},"nativeSrc":"5246:79:64","nodeType":"YulExpressionStatement","src":"5246:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5216:6:64","nodeType":"YulIdentifier","src":"5216:6:64"},{"kind":"number","nativeSrc":"5224:18:64","nodeType":"YulLiteral","src":"5224:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5213:2:64","nodeType":"YulIdentifier","src":"5213:2:64"},"nativeSrc":"5213:30:64","nodeType":"YulFunctionCall","src":"5213:30:64"},"nativeSrc":"5210:117:64","nodeType":"YulIf","src":"5210:117:64"},{"nativeSrc":"5341:82:64","nodeType":"YulAssignment","src":"5341:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5395:9:64","nodeType":"YulIdentifier","src":"5395:9:64"},{"name":"offset","nativeSrc":"5406:6:64","nodeType":"YulIdentifier","src":"5406:6:64"}],"functionName":{"name":"add","nativeSrc":"5391:3:64","nodeType":"YulIdentifier","src":"5391:3:64"},"nativeSrc":"5391:22:64","nodeType":"YulFunctionCall","src":"5391:22:64"},{"name":"dataEnd","nativeSrc":"5415:7:64","nodeType":"YulIdentifier","src":"5415:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5359:31:64","nodeType":"YulIdentifier","src":"5359:31:64"},"nativeSrc":"5359:64:64","nodeType":"YulFunctionCall","src":"5359:64:64"},"variableNames":[{"name":"value0","nativeSrc":"5341:6:64","nodeType":"YulIdentifier","src":"5341:6:64"},{"name":"value1","nativeSrc":"5349:6:64","nodeType":"YulIdentifier","src":"5349:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"4913:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4960:9:64","nodeType":"YulTypedName","src":"4960:9:64","type":""},{"name":"dataEnd","nativeSrc":"4971:7:64","nodeType":"YulTypedName","src":"4971:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4983:6:64","nodeType":"YulTypedName","src":"4983:6:64","type":""},{"name":"value1","nativeSrc":"4991:6:64","nodeType":"YulTypedName","src":"4991:6:64","type":""}],"src":"4913:527:64"},{"body":{"nativeSrc":"5491:81:64","nodeType":"YulBlock","src":"5491:81:64","statements":[{"nativeSrc":"5501:65:64","nodeType":"YulAssignment","src":"5501:65:64","value":{"arguments":[{"name":"value","nativeSrc":"5516:5:64","nodeType":"YulIdentifier","src":"5516:5:64"},{"kind":"number","nativeSrc":"5523:42:64","nodeType":"YulLiteral","src":"5523:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5512:3:64","nodeType":"YulIdentifier","src":"5512:3:64"},"nativeSrc":"5512:54:64","nodeType":"YulFunctionCall","src":"5512:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5501:7:64","nodeType":"YulIdentifier","src":"5501:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5446:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5473:5:64","nodeType":"YulTypedName","src":"5473:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5483:7:64","nodeType":"YulTypedName","src":"5483:7:64","type":""}],"src":"5446:126:64"},{"body":{"nativeSrc":"5623:51:64","nodeType":"YulBlock","src":"5623:51:64","statements":[{"nativeSrc":"5633:35:64","nodeType":"YulAssignment","src":"5633:35:64","value":{"arguments":[{"name":"value","nativeSrc":"5662:5:64","nodeType":"YulIdentifier","src":"5662:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5644:17:64","nodeType":"YulIdentifier","src":"5644:17:64"},"nativeSrc":"5644:24:64","nodeType":"YulFunctionCall","src":"5644:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5633:7:64","nodeType":"YulIdentifier","src":"5633:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"5578:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5605:5:64","nodeType":"YulTypedName","src":"5605:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5615:7:64","nodeType":"YulTypedName","src":"5615:7:64","type":""}],"src":"5578:96:64"},{"body":{"nativeSrc":"5745:53:64","nodeType":"YulBlock","src":"5745:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5762:3:64","nodeType":"YulIdentifier","src":"5762:3:64"},{"arguments":[{"name":"value","nativeSrc":"5785:5:64","nodeType":"YulIdentifier","src":"5785:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5767:17:64","nodeType":"YulIdentifier","src":"5767:17:64"},"nativeSrc":"5767:24:64","nodeType":"YulFunctionCall","src":"5767:24:64"}],"functionName":{"name":"mstore","nativeSrc":"5755:6:64","nodeType":"YulIdentifier","src":"5755:6:64"},"nativeSrc":"5755:37:64","nodeType":"YulFunctionCall","src":"5755:37:64"},"nativeSrc":"5755:37:64","nodeType":"YulExpressionStatement","src":"5755:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5680:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5733:5:64","nodeType":"YulTypedName","src":"5733:5:64","type":""},{"name":"pos","nativeSrc":"5740:3:64","nodeType":"YulTypedName","src":"5740:3:64","type":""}],"src":"5680:118:64"},{"body":{"nativeSrc":"5902:124:64","nodeType":"YulBlock","src":"5902:124:64","statements":[{"nativeSrc":"5912:26:64","nodeType":"YulAssignment","src":"5912:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5924:9:64","nodeType":"YulIdentifier","src":"5924:9:64"},{"kind":"number","nativeSrc":"5935:2:64","nodeType":"YulLiteral","src":"5935:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5920:3:64","nodeType":"YulIdentifier","src":"5920:3:64"},"nativeSrc":"5920:18:64","nodeType":"YulFunctionCall","src":"5920:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5912:4:64","nodeType":"YulIdentifier","src":"5912:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5992:6:64","nodeType":"YulIdentifier","src":"5992:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6005:9:64","nodeType":"YulIdentifier","src":"6005:9:64"},{"kind":"number","nativeSrc":"6016:1:64","nodeType":"YulLiteral","src":"6016:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6001:3:64","nodeType":"YulIdentifier","src":"6001:3:64"},"nativeSrc":"6001:17:64","nodeType":"YulFunctionCall","src":"6001:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5948:43:64","nodeType":"YulIdentifier","src":"5948:43:64"},"nativeSrc":"5948:71:64","nodeType":"YulFunctionCall","src":"5948:71:64"},"nativeSrc":"5948:71:64","nodeType":"YulExpressionStatement","src":"5948:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5804:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5874:9:64","nodeType":"YulTypedName","src":"5874:9:64","type":""},{"name":"value0","nativeSrc":"5886:6:64","nodeType":"YulTypedName","src":"5886:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5897:4:64","nodeType":"YulTypedName","src":"5897:4:64","type":""}],"src":"5804:222:64"},{"body":{"nativeSrc":"6075:79:64","nodeType":"YulBlock","src":"6075:79:64","statements":[{"body":{"nativeSrc":"6132:16:64","nodeType":"YulBlock","src":"6132:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6141:1:64","nodeType":"YulLiteral","src":"6141:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6144:1:64","nodeType":"YulLiteral","src":"6144:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6134:6:64","nodeType":"YulIdentifier","src":"6134:6:64"},"nativeSrc":"6134:12:64","nodeType":"YulFunctionCall","src":"6134:12:64"},"nativeSrc":"6134:12:64","nodeType":"YulExpressionStatement","src":"6134:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6098:5:64","nodeType":"YulIdentifier","src":"6098:5:64"},{"arguments":[{"name":"value","nativeSrc":"6123:5:64","nodeType":"YulIdentifier","src":"6123:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6105:17:64","nodeType":"YulIdentifier","src":"6105:17:64"},"nativeSrc":"6105:24:64","nodeType":"YulFunctionCall","src":"6105:24:64"}],"functionName":{"name":"eq","nativeSrc":"6095:2:64","nodeType":"YulIdentifier","src":"6095:2:64"},"nativeSrc":"6095:35:64","nodeType":"YulFunctionCall","src":"6095:35:64"}],"functionName":{"name":"iszero","nativeSrc":"6088:6:64","nodeType":"YulIdentifier","src":"6088:6:64"},"nativeSrc":"6088:43:64","nodeType":"YulFunctionCall","src":"6088:43:64"},"nativeSrc":"6085:63:64","nodeType":"YulIf","src":"6085:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"6032:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6068:5:64","nodeType":"YulTypedName","src":"6068:5:64","type":""}],"src":"6032:122:64"},{"body":{"nativeSrc":"6212:87:64","nodeType":"YulBlock","src":"6212:87:64","statements":[{"nativeSrc":"6222:29:64","nodeType":"YulAssignment","src":"6222:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6244:6:64","nodeType":"YulIdentifier","src":"6244:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6231:12:64","nodeType":"YulIdentifier","src":"6231:12:64"},"nativeSrc":"6231:20:64","nodeType":"YulFunctionCall","src":"6231:20:64"},"variableNames":[{"name":"value","nativeSrc":"6222:5:64","nodeType":"YulIdentifier","src":"6222:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6287:5:64","nodeType":"YulIdentifier","src":"6287:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6260:26:64","nodeType":"YulIdentifier","src":"6260:26:64"},"nativeSrc":"6260:33:64","nodeType":"YulFunctionCall","src":"6260:33:64"},"nativeSrc":"6260:33:64","nodeType":"YulExpressionStatement","src":"6260:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"6160:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6190:6:64","nodeType":"YulTypedName","src":"6190:6:64","type":""},{"name":"end","nativeSrc":"6198:3:64","nodeType":"YulTypedName","src":"6198:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6206:5:64","nodeType":"YulTypedName","src":"6206:5:64","type":""}],"src":"6160:139:64"},{"body":{"nativeSrc":"6407:570:64","nodeType":"YulBlock","src":"6407:570:64","statements":[{"body":{"nativeSrc":"6453:83:64","nodeType":"YulBlock","src":"6453:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6455:77:64","nodeType":"YulIdentifier","src":"6455:77:64"},"nativeSrc":"6455:79:64","nodeType":"YulFunctionCall","src":"6455:79:64"},"nativeSrc":"6455:79:64","nodeType":"YulExpressionStatement","src":"6455:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6428:7:64","nodeType":"YulIdentifier","src":"6428:7:64"},{"name":"headStart","nativeSrc":"6437:9:64","nodeType":"YulIdentifier","src":"6437:9:64"}],"functionName":{"name":"sub","nativeSrc":"6424:3:64","nodeType":"YulIdentifier","src":"6424:3:64"},"nativeSrc":"6424:23:64","nodeType":"YulFunctionCall","src":"6424:23:64"},{"kind":"number","nativeSrc":"6449:2:64","nodeType":"YulLiteral","src":"6449:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6420:3:64","nodeType":"YulIdentifier","src":"6420:3:64"},"nativeSrc":"6420:32:64","nodeType":"YulFunctionCall","src":"6420:32:64"},"nativeSrc":"6417:119:64","nodeType":"YulIf","src":"6417:119:64"},{"nativeSrc":"6546:117:64","nodeType":"YulBlock","src":"6546:117:64","statements":[{"nativeSrc":"6561:15:64","nodeType":"YulVariableDeclaration","src":"6561:15:64","value":{"kind":"number","nativeSrc":"6575:1:64","nodeType":"YulLiteral","src":"6575:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6565:6:64","nodeType":"YulTypedName","src":"6565:6:64","type":""}]},{"nativeSrc":"6590:63:64","nodeType":"YulAssignment","src":"6590:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6625:9:64","nodeType":"YulIdentifier","src":"6625:9:64"},{"name":"offset","nativeSrc":"6636:6:64","nodeType":"YulIdentifier","src":"6636:6:64"}],"functionName":{"name":"add","nativeSrc":"6621:3:64","nodeType":"YulIdentifier","src":"6621:3:64"},"nativeSrc":"6621:22:64","nodeType":"YulFunctionCall","src":"6621:22:64"},{"name":"dataEnd","nativeSrc":"6645:7:64","nodeType":"YulIdentifier","src":"6645:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6600:20:64","nodeType":"YulIdentifier","src":"6600:20:64"},"nativeSrc":"6600:53:64","nodeType":"YulFunctionCall","src":"6600:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6590:6:64","nodeType":"YulIdentifier","src":"6590:6:64"}]}]},{"nativeSrc":"6673:297:64","nodeType":"YulBlock","src":"6673:297:64","statements":[{"nativeSrc":"6688:46:64","nodeType":"YulVariableDeclaration","src":"6688:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6719:9:64","nodeType":"YulIdentifier","src":"6719:9:64"},{"kind":"number","nativeSrc":"6730:2:64","nodeType":"YulLiteral","src":"6730:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6715:3:64","nodeType":"YulIdentifier","src":"6715:3:64"},"nativeSrc":"6715:18:64","nodeType":"YulFunctionCall","src":"6715:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"6702:12:64","nodeType":"YulIdentifier","src":"6702:12:64"},"nativeSrc":"6702:32:64","nodeType":"YulFunctionCall","src":"6702:32:64"},"variables":[{"name":"offset","nativeSrc":"6692:6:64","nodeType":"YulTypedName","src":"6692:6:64","type":""}]},{"body":{"nativeSrc":"6781:83:64","nodeType":"YulBlock","src":"6781:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6783:77:64","nodeType":"YulIdentifier","src":"6783:77:64"},"nativeSrc":"6783:79:64","nodeType":"YulFunctionCall","src":"6783:79:64"},"nativeSrc":"6783:79:64","nodeType":"YulExpressionStatement","src":"6783:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6753:6:64","nodeType":"YulIdentifier","src":"6753:6:64"},{"kind":"number","nativeSrc":"6761:18:64","nodeType":"YulLiteral","src":"6761:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6750:2:64","nodeType":"YulIdentifier","src":"6750:2:64"},"nativeSrc":"6750:30:64","nodeType":"YulFunctionCall","src":"6750:30:64"},"nativeSrc":"6747:117:64","nodeType":"YulIf","src":"6747:117:64"},{"nativeSrc":"6878:82:64","nodeType":"YulAssignment","src":"6878:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6932:9:64","nodeType":"YulIdentifier","src":"6932:9:64"},{"name":"offset","nativeSrc":"6943:6:64","nodeType":"YulIdentifier","src":"6943:6:64"}],"functionName":{"name":"add","nativeSrc":"6928:3:64","nodeType":"YulIdentifier","src":"6928:3:64"},"nativeSrc":"6928:22:64","nodeType":"YulFunctionCall","src":"6928:22:64"},{"name":"dataEnd","nativeSrc":"6952:7:64","nodeType":"YulIdentifier","src":"6952:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6896:31:64","nodeType":"YulIdentifier","src":"6896:31:64"},"nativeSrc":"6896:64:64","nodeType":"YulFunctionCall","src":"6896:64:64"},"variableNames":[{"name":"value1","nativeSrc":"6878:6:64","nodeType":"YulIdentifier","src":"6878:6:64"},{"name":"value2","nativeSrc":"6886:6:64","nodeType":"YulIdentifier","src":"6886:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nativeSrc":"6305:672:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6361:9:64","nodeType":"YulTypedName","src":"6361:9:64","type":""},{"name":"dataEnd","nativeSrc":"6372:7:64","nodeType":"YulTypedName","src":"6372:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6384:6:64","nodeType":"YulTypedName","src":"6384:6:64","type":""},{"name":"value1","nativeSrc":"6392:6:64","nodeType":"YulTypedName","src":"6392:6:64","type":""},{"name":"value2","nativeSrc":"6400:6:64","nodeType":"YulTypedName","src":"6400:6:64","type":""}],"src":"6305:672:64"},{"body":{"nativeSrc":"7049:263:64","nodeType":"YulBlock","src":"7049:263:64","statements":[{"body":{"nativeSrc":"7095:83:64","nodeType":"YulBlock","src":"7095:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7097:77:64","nodeType":"YulIdentifier","src":"7097:77:64"},"nativeSrc":"7097:79:64","nodeType":"YulFunctionCall","src":"7097:79:64"},"nativeSrc":"7097:79:64","nodeType":"YulExpressionStatement","src":"7097:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7070:7:64","nodeType":"YulIdentifier","src":"7070:7:64"},{"name":"headStart","nativeSrc":"7079:9:64","nodeType":"YulIdentifier","src":"7079:9:64"}],"functionName":{"name":"sub","nativeSrc":"7066:3:64","nodeType":"YulIdentifier","src":"7066:3:64"},"nativeSrc":"7066:23:64","nodeType":"YulFunctionCall","src":"7066:23:64"},{"kind":"number","nativeSrc":"7091:2:64","nodeType":"YulLiteral","src":"7091:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7062:3:64","nodeType":"YulIdentifier","src":"7062:3:64"},"nativeSrc":"7062:32:64","nodeType":"YulFunctionCall","src":"7062:32:64"},"nativeSrc":"7059:119:64","nodeType":"YulIf","src":"7059:119:64"},{"nativeSrc":"7188:117:64","nodeType":"YulBlock","src":"7188:117:64","statements":[{"nativeSrc":"7203:15:64","nodeType":"YulVariableDeclaration","src":"7203:15:64","value":{"kind":"number","nativeSrc":"7217:1:64","nodeType":"YulLiteral","src":"7217:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7207:6:64","nodeType":"YulTypedName","src":"7207:6:64","type":""}]},{"nativeSrc":"7232:63:64","nodeType":"YulAssignment","src":"7232:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7267:9:64","nodeType":"YulIdentifier","src":"7267:9:64"},{"name":"offset","nativeSrc":"7278:6:64","nodeType":"YulIdentifier","src":"7278:6:64"}],"functionName":{"name":"add","nativeSrc":"7263:3:64","nodeType":"YulIdentifier","src":"7263:3:64"},"nativeSrc":"7263:22:64","nodeType":"YulFunctionCall","src":"7263:22:64"},{"name":"dataEnd","nativeSrc":"7287:7:64","nodeType":"YulIdentifier","src":"7287:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7242:20:64","nodeType":"YulIdentifier","src":"7242:20:64"},"nativeSrc":"7242:53:64","nodeType":"YulFunctionCall","src":"7242:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7232:6:64","nodeType":"YulIdentifier","src":"7232:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6983:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7019:9:64","nodeType":"YulTypedName","src":"7019:9:64","type":""},{"name":"dataEnd","nativeSrc":"7030:7:64","nodeType":"YulTypedName","src":"7030:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7042:6:64","nodeType":"YulTypedName","src":"7042:6:64","type":""}],"src":"6983:329:64"},{"body":{"nativeSrc":"7363:32:64","nodeType":"YulBlock","src":"7363:32:64","statements":[{"nativeSrc":"7373:16:64","nodeType":"YulAssignment","src":"7373:16:64","value":{"name":"value","nativeSrc":"7384:5:64","nodeType":"YulIdentifier","src":"7384:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"7373:7:64","nodeType":"YulIdentifier","src":"7373:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"7318:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7345:5:64","nodeType":"YulTypedName","src":"7345:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"7355:7:64","nodeType":"YulTypedName","src":"7355:7:64","type":""}],"src":"7318:77:64"},{"body":{"nativeSrc":"7466:53:64","nodeType":"YulBlock","src":"7466:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7483:3:64","nodeType":"YulIdentifier","src":"7483:3:64"},{"arguments":[{"name":"value","nativeSrc":"7506:5:64","nodeType":"YulIdentifier","src":"7506:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7488:17:64","nodeType":"YulIdentifier","src":"7488:17:64"},"nativeSrc":"7488:24:64","nodeType":"YulFunctionCall","src":"7488:24:64"}],"functionName":{"name":"mstore","nativeSrc":"7476:6:64","nodeType":"YulIdentifier","src":"7476:6:64"},"nativeSrc":"7476:37:64","nodeType":"YulFunctionCall","src":"7476:37:64"},"nativeSrc":"7476:37:64","nodeType":"YulExpressionStatement","src":"7476:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7401:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7454:5:64","nodeType":"YulTypedName","src":"7454:5:64","type":""},{"name":"pos","nativeSrc":"7461:3:64","nodeType":"YulTypedName","src":"7461:3:64","type":""}],"src":"7401:118:64"},{"body":{"nativeSrc":"7623:124:64","nodeType":"YulBlock","src":"7623:124:64","statements":[{"nativeSrc":"7633:26:64","nodeType":"YulAssignment","src":"7633:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"7645:9:64","nodeType":"YulIdentifier","src":"7645:9:64"},{"kind":"number","nativeSrc":"7656:2:64","nodeType":"YulLiteral","src":"7656:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7641:3:64","nodeType":"YulIdentifier","src":"7641:3:64"},"nativeSrc":"7641:18:64","nodeType":"YulFunctionCall","src":"7641:18:64"},"variableNames":[{"name":"tail","nativeSrc":"7633:4:64","nodeType":"YulIdentifier","src":"7633:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7713:6:64","nodeType":"YulIdentifier","src":"7713:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"7726:9:64","nodeType":"YulIdentifier","src":"7726:9:64"},{"kind":"number","nativeSrc":"7737:1:64","nodeType":"YulLiteral","src":"7737:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7722:3:64","nodeType":"YulIdentifier","src":"7722:3:64"},"nativeSrc":"7722:17:64","nodeType":"YulFunctionCall","src":"7722:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"7669:43:64","nodeType":"YulIdentifier","src":"7669:43:64"},"nativeSrc":"7669:71:64","nodeType":"YulFunctionCall","src":"7669:71:64"},"nativeSrc":"7669:71:64","nodeType":"YulExpressionStatement","src":"7669:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"7525:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7595:9:64","nodeType":"YulTypedName","src":"7595:9:64","type":""},{"name":"value0","nativeSrc":"7607:6:64","nodeType":"YulTypedName","src":"7607:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7618:4:64","nodeType":"YulTypedName","src":"7618:4:64","type":""}],"src":"7525:222:64"},{"body":{"nativeSrc":"7781:152:64","nodeType":"YulBlock","src":"7781:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7798:1:64","nodeType":"YulLiteral","src":"7798:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7801:77:64","nodeType":"YulLiteral","src":"7801:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7791:6:64","nodeType":"YulIdentifier","src":"7791:6:64"},"nativeSrc":"7791:88:64","nodeType":"YulFunctionCall","src":"7791:88:64"},"nativeSrc":"7791:88:64","nodeType":"YulExpressionStatement","src":"7791:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7895:1:64","nodeType":"YulLiteral","src":"7895:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"7898:4:64","nodeType":"YulLiteral","src":"7898:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7888:6:64","nodeType":"YulIdentifier","src":"7888:6:64"},"nativeSrc":"7888:15:64","nodeType":"YulFunctionCall","src":"7888:15:64"},"nativeSrc":"7888:15:64","nodeType":"YulExpressionStatement","src":"7888:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7919:1:64","nodeType":"YulLiteral","src":"7919:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7922:4:64","nodeType":"YulLiteral","src":"7922:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7912:6:64","nodeType":"YulIdentifier","src":"7912:6:64"},"nativeSrc":"7912:15:64","nodeType":"YulFunctionCall","src":"7912:15:64"},"nativeSrc":"7912:15:64","nodeType":"YulExpressionStatement","src":"7912:15:64"}]},"name":"panic_error_0x32","nativeSrc":"7753:180:64","nodeType":"YulFunctionDefinition","src":"7753:180:64"},{"body":{"nativeSrc":"7979:76:64","nodeType":"YulBlock","src":"7979:76:64","statements":[{"body":{"nativeSrc":"8033:16:64","nodeType":"YulBlock","src":"8033:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8042:1:64","nodeType":"YulLiteral","src":"8042:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8045:1:64","nodeType":"YulLiteral","src":"8045:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8035:6:64","nodeType":"YulIdentifier","src":"8035:6:64"},"nativeSrc":"8035:12:64","nodeType":"YulFunctionCall","src":"8035:12:64"},"nativeSrc":"8035:12:64","nodeType":"YulExpressionStatement","src":"8035:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8002:5:64","nodeType":"YulIdentifier","src":"8002:5:64"},{"arguments":[{"name":"value","nativeSrc":"8024:5:64","nodeType":"YulIdentifier","src":"8024:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"8009:14:64","nodeType":"YulIdentifier","src":"8009:14:64"},"nativeSrc":"8009:21:64","nodeType":"YulFunctionCall","src":"8009:21:64"}],"functionName":{"name":"eq","nativeSrc":"7999:2:64","nodeType":"YulIdentifier","src":"7999:2:64"},"nativeSrc":"7999:32:64","nodeType":"YulFunctionCall","src":"7999:32:64"}],"functionName":{"name":"iszero","nativeSrc":"7992:6:64","nodeType":"YulIdentifier","src":"7992:6:64"},"nativeSrc":"7992:40:64","nodeType":"YulFunctionCall","src":"7992:40:64"},"nativeSrc":"7989:60:64","nodeType":"YulIf","src":"7989:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"7939:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7972:5:64","nodeType":"YulTypedName","src":"7972:5:64","type":""}],"src":"7939:116:64"},{"body":{"nativeSrc":"8110:84:64","nodeType":"YulBlock","src":"8110:84:64","statements":[{"nativeSrc":"8120:29:64","nodeType":"YulAssignment","src":"8120:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8142:6:64","nodeType":"YulIdentifier","src":"8142:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8129:12:64","nodeType":"YulIdentifier","src":"8129:12:64"},"nativeSrc":"8129:20:64","nodeType":"YulFunctionCall","src":"8129:20:64"},"variableNames":[{"name":"value","nativeSrc":"8120:5:64","nodeType":"YulIdentifier","src":"8120:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8182:5:64","nodeType":"YulIdentifier","src":"8182:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"8158:23:64","nodeType":"YulIdentifier","src":"8158:23:64"},"nativeSrc":"8158:30:64","nodeType":"YulFunctionCall","src":"8158:30:64"},"nativeSrc":"8158:30:64","nodeType":"YulExpressionStatement","src":"8158:30:64"}]},"name":"abi_decode_t_bool","nativeSrc":"8061:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8088:6:64","nodeType":"YulTypedName","src":"8088:6:64","type":""},{"name":"end","nativeSrc":"8096:3:64","nodeType":"YulTypedName","src":"8096:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8104:5:64","nodeType":"YulTypedName","src":"8104:5:64","type":""}],"src":"8061:133:64"},{"body":{"nativeSrc":"8263:260:64","nodeType":"YulBlock","src":"8263:260:64","statements":[{"body":{"nativeSrc":"8309:83:64","nodeType":"YulBlock","src":"8309:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8311:77:64","nodeType":"YulIdentifier","src":"8311:77:64"},"nativeSrc":"8311:79:64","nodeType":"YulFunctionCall","src":"8311:79:64"},"nativeSrc":"8311:79:64","nodeType":"YulExpressionStatement","src":"8311:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8284:7:64","nodeType":"YulIdentifier","src":"8284:7:64"},{"name":"headStart","nativeSrc":"8293:9:64","nodeType":"YulIdentifier","src":"8293:9:64"}],"functionName":{"name":"sub","nativeSrc":"8280:3:64","nodeType":"YulIdentifier","src":"8280:3:64"},"nativeSrc":"8280:23:64","nodeType":"YulFunctionCall","src":"8280:23:64"},{"kind":"number","nativeSrc":"8305:2:64","nodeType":"YulLiteral","src":"8305:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"8276:3:64","nodeType":"YulIdentifier","src":"8276:3:64"},"nativeSrc":"8276:32:64","nodeType":"YulFunctionCall","src":"8276:32:64"},"nativeSrc":"8273:119:64","nodeType":"YulIf","src":"8273:119:64"},{"nativeSrc":"8402:114:64","nodeType":"YulBlock","src":"8402:114:64","statements":[{"nativeSrc":"8417:15:64","nodeType":"YulVariableDeclaration","src":"8417:15:64","value":{"kind":"number","nativeSrc":"8431:1:64","nodeType":"YulLiteral","src":"8431:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8421:6:64","nodeType":"YulTypedName","src":"8421:6:64","type":""}]},{"nativeSrc":"8446:60:64","nodeType":"YulAssignment","src":"8446:60:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8478:9:64","nodeType":"YulIdentifier","src":"8478:9:64"},{"name":"offset","nativeSrc":"8489:6:64","nodeType":"YulIdentifier","src":"8489:6:64"}],"functionName":{"name":"add","nativeSrc":"8474:3:64","nodeType":"YulIdentifier","src":"8474:3:64"},"nativeSrc":"8474:22:64","nodeType":"YulFunctionCall","src":"8474:22:64"},{"name":"dataEnd","nativeSrc":"8498:7:64","nodeType":"YulIdentifier","src":"8498:7:64"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"8456:17:64","nodeType":"YulIdentifier","src":"8456:17:64"},"nativeSrc":"8456:50:64","nodeType":"YulFunctionCall","src":"8456:50:64"},"variableNames":[{"name":"value0","nativeSrc":"8446:6:64","nodeType":"YulIdentifier","src":"8446:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"8200:323:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8233:9:64","nodeType":"YulTypedName","src":"8233:9:64","type":""},{"name":"dataEnd","nativeSrc":"8244:7:64","nodeType":"YulTypedName","src":"8244:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8256:6:64","nodeType":"YulTypedName","src":"8256:6:64","type":""}],"src":"8200:323:64"},{"body":{"nativeSrc":"8582:51:64","nodeType":"YulBlock","src":"8582:51:64","statements":[{"nativeSrc":"8592:35:64","nodeType":"YulAssignment","src":"8592:35:64","value":{"arguments":[{"name":"value","nativeSrc":"8621:5:64","nodeType":"YulIdentifier","src":"8621:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"8603:17:64","nodeType":"YulIdentifier","src":"8603:17:64"},"nativeSrc":"8603:24:64","nodeType":"YulFunctionCall","src":"8603:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"8592:7:64","nodeType":"YulIdentifier","src":"8592:7:64"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"8529:104:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8564:5:64","nodeType":"YulTypedName","src":"8564:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8574:7:64","nodeType":"YulTypedName","src":"8574:7:64","type":""}],"src":"8529:104:64"},{"body":{"nativeSrc":"8690:87:64","nodeType":"YulBlock","src":"8690:87:64","statements":[{"body":{"nativeSrc":"8755:16:64","nodeType":"YulBlock","src":"8755:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8764:1:64","nodeType":"YulLiteral","src":"8764:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8767:1:64","nodeType":"YulLiteral","src":"8767:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8757:6:64","nodeType":"YulIdentifier","src":"8757:6:64"},"nativeSrc":"8757:12:64","nodeType":"YulFunctionCall","src":"8757:12:64"},"nativeSrc":"8757:12:64","nodeType":"YulExpressionStatement","src":"8757:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8713:5:64","nodeType":"YulIdentifier","src":"8713:5:64"},{"arguments":[{"name":"value","nativeSrc":"8746:5:64","nodeType":"YulIdentifier","src":"8746:5:64"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"8720:25:64","nodeType":"YulIdentifier","src":"8720:25:64"},"nativeSrc":"8720:32:64","nodeType":"YulFunctionCall","src":"8720:32:64"}],"functionName":{"name":"eq","nativeSrc":"8710:2:64","nodeType":"YulIdentifier","src":"8710:2:64"},"nativeSrc":"8710:43:64","nodeType":"YulFunctionCall","src":"8710:43:64"}],"functionName":{"name":"iszero","nativeSrc":"8703:6:64","nodeType":"YulIdentifier","src":"8703:6:64"},"nativeSrc":"8703:51:64","nodeType":"YulFunctionCall","src":"8703:51:64"},"nativeSrc":"8700:71:64","nodeType":"YulIf","src":"8700:71:64"}]},"name":"validator_revert_t_address_payable","nativeSrc":"8639:138:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8683:5:64","nodeType":"YulTypedName","src":"8683:5:64","type":""}],"src":"8639:138:64"},{"body":{"nativeSrc":"8843:95:64","nodeType":"YulBlock","src":"8843:95:64","statements":[{"nativeSrc":"8853:29:64","nodeType":"YulAssignment","src":"8853:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8875:6:64","nodeType":"YulIdentifier","src":"8875:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8862:12:64","nodeType":"YulIdentifier","src":"8862:12:64"},"nativeSrc":"8862:20:64","nodeType":"YulFunctionCall","src":"8862:20:64"},"variableNames":[{"name":"value","nativeSrc":"8853:5:64","nodeType":"YulIdentifier","src":"8853:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8926:5:64","nodeType":"YulIdentifier","src":"8926:5:64"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"8891:34:64","nodeType":"YulIdentifier","src":"8891:34:64"},"nativeSrc":"8891:41:64","nodeType":"YulFunctionCall","src":"8891:41:64"},"nativeSrc":"8891:41:64","nodeType":"YulExpressionStatement","src":"8891:41:64"}]},"name":"abi_decode_t_address_payable","nativeSrc":"8783:155:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8821:6:64","nodeType":"YulTypedName","src":"8821:6:64","type":""},{"name":"end","nativeSrc":"8829:3:64","nodeType":"YulTypedName","src":"8829:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8837:5:64","nodeType":"YulTypedName","src":"8837:5:64","type":""}],"src":"8783:155:64"},{"body":{"nativeSrc":"8992:54:64","nodeType":"YulBlock","src":"8992:54:64","statements":[{"nativeSrc":"9002:38:64","nodeType":"YulAssignment","src":"9002:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9020:5:64","nodeType":"YulIdentifier","src":"9020:5:64"},{"kind":"number","nativeSrc":"9027:2:64","nodeType":"YulLiteral","src":"9027:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"9016:3:64","nodeType":"YulIdentifier","src":"9016:3:64"},"nativeSrc":"9016:14:64","nodeType":"YulFunctionCall","src":"9016:14:64"},{"arguments":[{"kind":"number","nativeSrc":"9036:2:64","nodeType":"YulLiteral","src":"9036:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"9032:3:64","nodeType":"YulIdentifier","src":"9032:3:64"},"nativeSrc":"9032:7:64","nodeType":"YulFunctionCall","src":"9032:7:64"}],"functionName":{"name":"and","nativeSrc":"9012:3:64","nodeType":"YulIdentifier","src":"9012:3:64"},"nativeSrc":"9012:28:64","nodeType":"YulFunctionCall","src":"9012:28:64"},"variableNames":[{"name":"result","nativeSrc":"9002:6:64","nodeType":"YulIdentifier","src":"9002:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"8944:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8975:5:64","nodeType":"YulTypedName","src":"8975:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"8985:6:64","nodeType":"YulTypedName","src":"8985:6:64","type":""}],"src":"8944:102:64"},{"body":{"nativeSrc":"9080:152:64","nodeType":"YulBlock","src":"9080:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9097:1:64","nodeType":"YulLiteral","src":"9097:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9100:77:64","nodeType":"YulLiteral","src":"9100:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9090:6:64","nodeType":"YulIdentifier","src":"9090:6:64"},"nativeSrc":"9090:88:64","nodeType":"YulFunctionCall","src":"9090:88:64"},"nativeSrc":"9090:88:64","nodeType":"YulExpressionStatement","src":"9090:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9194:1:64","nodeType":"YulLiteral","src":"9194:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"9197:4:64","nodeType":"YulLiteral","src":"9197:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"9187:6:64","nodeType":"YulIdentifier","src":"9187:6:64"},"nativeSrc":"9187:15:64","nodeType":"YulFunctionCall","src":"9187:15:64"},"nativeSrc":"9187:15:64","nodeType":"YulExpressionStatement","src":"9187:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9218:1:64","nodeType":"YulLiteral","src":"9218:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9221:4:64","nodeType":"YulLiteral","src":"9221:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9211:6:64","nodeType":"YulIdentifier","src":"9211:6:64"},"nativeSrc":"9211:15:64","nodeType":"YulFunctionCall","src":"9211:15:64"},"nativeSrc":"9211:15:64","nodeType":"YulExpressionStatement","src":"9211:15:64"}]},"name":"panic_error_0x41","nativeSrc":"9052:180:64","nodeType":"YulFunctionDefinition","src":"9052:180:64"},{"body":{"nativeSrc":"9281:238:64","nodeType":"YulBlock","src":"9281:238:64","statements":[{"nativeSrc":"9291:58:64","nodeType":"YulVariableDeclaration","src":"9291:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"9313:6:64","nodeType":"YulIdentifier","src":"9313:6:64"},{"arguments":[{"name":"size","nativeSrc":"9343:4:64","nodeType":"YulIdentifier","src":"9343:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9321:21:64","nodeType":"YulIdentifier","src":"9321:21:64"},"nativeSrc":"9321:27:64","nodeType":"YulFunctionCall","src":"9321:27:64"}],"functionName":{"name":"add","nativeSrc":"9309:3:64","nodeType":"YulIdentifier","src":"9309:3:64"},"nativeSrc":"9309:40:64","nodeType":"YulFunctionCall","src":"9309:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"9295:10:64","nodeType":"YulTypedName","src":"9295:10:64","type":""}]},{"body":{"nativeSrc":"9460:22:64","nodeType":"YulBlock","src":"9460:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9462:16:64","nodeType":"YulIdentifier","src":"9462:16:64"},"nativeSrc":"9462:18:64","nodeType":"YulFunctionCall","src":"9462:18:64"},"nativeSrc":"9462:18:64","nodeType":"YulExpressionStatement","src":"9462:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"9403:10:64","nodeType":"YulIdentifier","src":"9403:10:64"},{"kind":"number","nativeSrc":"9415:18:64","nodeType":"YulLiteral","src":"9415:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9400:2:64","nodeType":"YulIdentifier","src":"9400:2:64"},"nativeSrc":"9400:34:64","nodeType":"YulFunctionCall","src":"9400:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"9439:10:64","nodeType":"YulIdentifier","src":"9439:10:64"},{"name":"memPtr","nativeSrc":"9451:6:64","nodeType":"YulIdentifier","src":"9451:6:64"}],"functionName":{"name":"lt","nativeSrc":"9436:2:64","nodeType":"YulIdentifier","src":"9436:2:64"},"nativeSrc":"9436:22:64","nodeType":"YulFunctionCall","src":"9436:22:64"}],"functionName":{"name":"or","nativeSrc":"9397:2:64","nodeType":"YulIdentifier","src":"9397:2:64"},"nativeSrc":"9397:62:64","nodeType":"YulFunctionCall","src":"9397:62:64"},"nativeSrc":"9394:88:64","nodeType":"YulIf","src":"9394:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9498:2:64","nodeType":"YulLiteral","src":"9498:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"9502:10:64","nodeType":"YulIdentifier","src":"9502:10:64"}],"functionName":{"name":"mstore","nativeSrc":"9491:6:64","nodeType":"YulIdentifier","src":"9491:6:64"},"nativeSrc":"9491:22:64","nodeType":"YulFunctionCall","src":"9491:22:64"},"nativeSrc":"9491:22:64","nodeType":"YulExpressionStatement","src":"9491:22:64"}]},"name":"finalize_allocation","nativeSrc":"9238:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9267:6:64","nodeType":"YulTypedName","src":"9267:6:64","type":""},{"name":"size","nativeSrc":"9275:4:64","nodeType":"YulTypedName","src":"9275:4:64","type":""}],"src":"9238:281:64"},{"body":{"nativeSrc":"9566:88:64","nodeType":"YulBlock","src":"9566:88:64","statements":[{"nativeSrc":"9576:30:64","nodeType":"YulAssignment","src":"9576:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"9586:18:64","nodeType":"YulIdentifier","src":"9586:18:64"},"nativeSrc":"9586:20:64","nodeType":"YulFunctionCall","src":"9586:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"9576:6:64","nodeType":"YulIdentifier","src":"9576:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"9635:6:64","nodeType":"YulIdentifier","src":"9635:6:64"},{"name":"size","nativeSrc":"9643:4:64","nodeType":"YulIdentifier","src":"9643:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"9615:19:64","nodeType":"YulIdentifier","src":"9615:19:64"},"nativeSrc":"9615:33:64","nodeType":"YulFunctionCall","src":"9615:33:64"},"nativeSrc":"9615:33:64","nodeType":"YulExpressionStatement","src":"9615:33:64"}]},"name":"allocate_memory","nativeSrc":"9525:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"9550:4:64","nodeType":"YulTypedName","src":"9550:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"9559:6:64","nodeType":"YulTypedName","src":"9559:6:64","type":""}],"src":"9525:129:64"},{"body":{"nativeSrc":"9742:229:64","nodeType":"YulBlock","src":"9742:229:64","statements":[{"body":{"nativeSrc":"9847:22:64","nodeType":"YulBlock","src":"9847:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"9849:16:64","nodeType":"YulIdentifier","src":"9849:16:64"},"nativeSrc":"9849:18:64","nodeType":"YulFunctionCall","src":"9849:18:64"},"nativeSrc":"9849:18:64","nodeType":"YulExpressionStatement","src":"9849:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9819:6:64","nodeType":"YulIdentifier","src":"9819:6:64"},{"kind":"number","nativeSrc":"9827:18:64","nodeType":"YulLiteral","src":"9827:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9816:2:64","nodeType":"YulIdentifier","src":"9816:2:64"},"nativeSrc":"9816:30:64","nodeType":"YulFunctionCall","src":"9816:30:64"},"nativeSrc":"9813:56:64","nodeType":"YulIf","src":"9813:56:64"},{"nativeSrc":"9879:25:64","nodeType":"YulAssignment","src":"9879:25:64","value":{"arguments":[{"name":"length","nativeSrc":"9891:6:64","nodeType":"YulIdentifier","src":"9891:6:64"},{"kind":"number","nativeSrc":"9899:4:64","nodeType":"YulLiteral","src":"9899:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9887:3:64","nodeType":"YulIdentifier","src":"9887:3:64"},"nativeSrc":"9887:17:64","nodeType":"YulFunctionCall","src":"9887:17:64"},"variableNames":[{"name":"size","nativeSrc":"9879:4:64","nodeType":"YulIdentifier","src":"9879:4:64"}]},{"nativeSrc":"9941:23:64","nodeType":"YulAssignment","src":"9941:23:64","value":{"arguments":[{"name":"size","nativeSrc":"9953:4:64","nodeType":"YulIdentifier","src":"9953:4:64"},{"kind":"number","nativeSrc":"9959:4:64","nodeType":"YulLiteral","src":"9959:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9949:3:64","nodeType":"YulIdentifier","src":"9949:3:64"},"nativeSrc":"9949:15:64","nodeType":"YulFunctionCall","src":"9949:15:64"},"variableNames":[{"name":"size","nativeSrc":"9941:4:64","nodeType":"YulIdentifier","src":"9941:4:64"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9660:311:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"9726:6:64","nodeType":"YulTypedName","src":"9726:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"9737:4:64","nodeType":"YulTypedName","src":"9737:4:64","type":""}],"src":"9660:311:64"},{"body":{"nativeSrc":"10096:608:64","nodeType":"YulBlock","src":"10096:608:64","statements":[{"nativeSrc":"10106:90:64","nodeType":"YulAssignment","src":"10106:90:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10188:6:64","nodeType":"YulIdentifier","src":"10188:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10131:56:64","nodeType":"YulIdentifier","src":"10131:56:64"},"nativeSrc":"10131:64:64","nodeType":"YulFunctionCall","src":"10131:64:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"10115:15:64","nodeType":"YulIdentifier","src":"10115:15:64"},"nativeSrc":"10115:81:64","nodeType":"YulFunctionCall","src":"10115:81:64"},"variableNames":[{"name":"array","nativeSrc":"10106:5:64","nodeType":"YulIdentifier","src":"10106:5:64"}]},{"nativeSrc":"10205:16:64","nodeType":"YulVariableDeclaration","src":"10205:16:64","value":{"name":"array","nativeSrc":"10216:5:64","nodeType":"YulIdentifier","src":"10216:5:64"},"variables":[{"name":"dst","nativeSrc":"10209:3:64","nodeType":"YulTypedName","src":"10209:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"10238:5:64","nodeType":"YulIdentifier","src":"10238:5:64"},{"name":"length","nativeSrc":"10245:6:64","nodeType":"YulIdentifier","src":"10245:6:64"}],"functionName":{"name":"mstore","nativeSrc":"10231:6:64","nodeType":"YulIdentifier","src":"10231:6:64"},"nativeSrc":"10231:21:64","nodeType":"YulFunctionCall","src":"10231:21:64"},"nativeSrc":"10231:21:64","nodeType":"YulExpressionStatement","src":"10231:21:64"},{"nativeSrc":"10261:23:64","nodeType":"YulAssignment","src":"10261:23:64","value":{"arguments":[{"name":"array","nativeSrc":"10272:5:64","nodeType":"YulIdentifier","src":"10272:5:64"},{"kind":"number","nativeSrc":"10279:4:64","nodeType":"YulLiteral","src":"10279:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10268:3:64","nodeType":"YulIdentifier","src":"10268:3:64"},"nativeSrc":"10268:16:64","nodeType":"YulFunctionCall","src":"10268:16:64"},"variableNames":[{"name":"dst","nativeSrc":"10261:3:64","nodeType":"YulIdentifier","src":"10261:3:64"}]},{"nativeSrc":"10294:44:64","nodeType":"YulVariableDeclaration","src":"10294:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"10312:6:64","nodeType":"YulIdentifier","src":"10312:6:64"},{"arguments":[{"name":"length","nativeSrc":"10324:6:64","nodeType":"YulIdentifier","src":"10324:6:64"},{"kind":"number","nativeSrc":"10332:4:64","nodeType":"YulLiteral","src":"10332:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10320:3:64","nodeType":"YulIdentifier","src":"10320:3:64"},"nativeSrc":"10320:17:64","nodeType":"YulFunctionCall","src":"10320:17:64"}],"functionName":{"name":"add","nativeSrc":"10308:3:64","nodeType":"YulIdentifier","src":"10308:3:64"},"nativeSrc":"10308:30:64","nodeType":"YulFunctionCall","src":"10308:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"10298:6:64","nodeType":"YulTypedName","src":"10298:6:64","type":""}]},{"body":{"nativeSrc":"10366:103:64","nodeType":"YulBlock","src":"10366:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"10380:77:64","nodeType":"YulIdentifier","src":"10380:77:64"},"nativeSrc":"10380:79:64","nodeType":"YulFunctionCall","src":"10380:79:64"},"nativeSrc":"10380:79:64","nodeType":"YulExpressionStatement","src":"10380:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"10353:6:64","nodeType":"YulIdentifier","src":"10353:6:64"},{"name":"end","nativeSrc":"10361:3:64","nodeType":"YulIdentifier","src":"10361:3:64"}],"functionName":{"name":"gt","nativeSrc":"10350:2:64","nodeType":"YulIdentifier","src":"10350:2:64"},"nativeSrc":"10350:15:64","nodeType":"YulFunctionCall","src":"10350:15:64"},"nativeSrc":"10347:122:64","nodeType":"YulIf","src":"10347:122:64"},{"body":{"nativeSrc":"10554:144:64","nodeType":"YulBlock","src":"10554:144:64","statements":[{"nativeSrc":"10569:21:64","nodeType":"YulVariableDeclaration","src":"10569:21:64","value":{"name":"src","nativeSrc":"10587:3:64","nodeType":"YulIdentifier","src":"10587:3:64"},"variables":[{"name":"elementPos","nativeSrc":"10573:10:64","nodeType":"YulTypedName","src":"10573:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"10611:3:64","nodeType":"YulIdentifier","src":"10611:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"10637:10:64","nodeType":"YulIdentifier","src":"10637:10:64"},{"name":"end","nativeSrc":"10649:3:64","nodeType":"YulIdentifier","src":"10649:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10616:20:64","nodeType":"YulIdentifier","src":"10616:20:64"},"nativeSrc":"10616:37:64","nodeType":"YulFunctionCall","src":"10616:37:64"}],"functionName":{"name":"mstore","nativeSrc":"10604:6:64","nodeType":"YulIdentifier","src":"10604:6:64"},"nativeSrc":"10604:50:64","nodeType":"YulFunctionCall","src":"10604:50:64"},"nativeSrc":"10604:50:64","nodeType":"YulExpressionStatement","src":"10604:50:64"},{"nativeSrc":"10667:21:64","nodeType":"YulAssignment","src":"10667:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"10678:3:64","nodeType":"YulIdentifier","src":"10678:3:64"},{"kind":"number","nativeSrc":"10683:4:64","nodeType":"YulLiteral","src":"10683:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10674:3:64","nodeType":"YulIdentifier","src":"10674:3:64"},"nativeSrc":"10674:14:64","nodeType":"YulFunctionCall","src":"10674:14:64"},"variableNames":[{"name":"dst","nativeSrc":"10667:3:64","nodeType":"YulIdentifier","src":"10667:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"10507:3:64","nodeType":"YulIdentifier","src":"10507:3:64"},{"name":"srcEnd","nativeSrc":"10512:6:64","nodeType":"YulIdentifier","src":"10512:6:64"}],"functionName":{"name":"lt","nativeSrc":"10504:2:64","nodeType":"YulIdentifier","src":"10504:2:64"},"nativeSrc":"10504:15:64","nodeType":"YulFunctionCall","src":"10504:15:64"},"nativeSrc":"10478:220:64","nodeType":"YulForLoop","post":{"nativeSrc":"10520:25:64","nodeType":"YulBlock","src":"10520:25:64","statements":[{"nativeSrc":"10522:21:64","nodeType":"YulAssignment","src":"10522:21:64","value":{"arguments":[{"name":"src","nativeSrc":"10533:3:64","nodeType":"YulIdentifier","src":"10533:3:64"},{"kind":"number","nativeSrc":"10538:4:64","nodeType":"YulLiteral","src":"10538:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10529:3:64","nodeType":"YulIdentifier","src":"10529:3:64"},"nativeSrc":"10529:14:64","nodeType":"YulFunctionCall","src":"10529:14:64"},"variableNames":[{"name":"src","nativeSrc":"10522:3:64","nodeType":"YulIdentifier","src":"10522:3:64"}]}]},"pre":{"nativeSrc":"10482:21:64","nodeType":"YulBlock","src":"10482:21:64","statements":[{"nativeSrc":"10484:17:64","nodeType":"YulVariableDeclaration","src":"10484:17:64","value":{"name":"offset","nativeSrc":"10495:6:64","nodeType":"YulIdentifier","src":"10495:6:64"},"variables":[{"name":"src","nativeSrc":"10488:3:64","nodeType":"YulTypedName","src":"10488:3:64","type":""}]}]},"src":"10478:220:64"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9994:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10066:6:64","nodeType":"YulTypedName","src":"10066:6:64","type":""},{"name":"length","nativeSrc":"10074:6:64","nodeType":"YulTypedName","src":"10074:6:64","type":""},{"name":"end","nativeSrc":"10082:3:64","nodeType":"YulTypedName","src":"10082:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10090:5:64","nodeType":"YulTypedName","src":"10090:5:64","type":""}],"src":"9994:710:64"},{"body":{"nativeSrc":"10804:293:64","nodeType":"YulBlock","src":"10804:293:64","statements":[{"body":{"nativeSrc":"10853:83:64","nodeType":"YulBlock","src":"10853:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10855:77:64","nodeType":"YulIdentifier","src":"10855:77:64"},"nativeSrc":"10855:79:64","nodeType":"YulFunctionCall","src":"10855:79:64"},"nativeSrc":"10855:79:64","nodeType":"YulExpressionStatement","src":"10855:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10832:6:64","nodeType":"YulIdentifier","src":"10832:6:64"},{"kind":"number","nativeSrc":"10840:4:64","nodeType":"YulLiteral","src":"10840:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10828:3:64","nodeType":"YulIdentifier","src":"10828:3:64"},"nativeSrc":"10828:17:64","nodeType":"YulFunctionCall","src":"10828:17:64"},{"name":"end","nativeSrc":"10847:3:64","nodeType":"YulIdentifier","src":"10847:3:64"}],"functionName":{"name":"slt","nativeSrc":"10824:3:64","nodeType":"YulIdentifier","src":"10824:3:64"},"nativeSrc":"10824:27:64","nodeType":"YulFunctionCall","src":"10824:27:64"}],"functionName":{"name":"iszero","nativeSrc":"10817:6:64","nodeType":"YulIdentifier","src":"10817:6:64"},"nativeSrc":"10817:35:64","nodeType":"YulFunctionCall","src":"10817:35:64"},"nativeSrc":"10814:122:64","nodeType":"YulIf","src":"10814:122:64"},{"nativeSrc":"10945:34:64","nodeType":"YulVariableDeclaration","src":"10945:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"10972:6:64","nodeType":"YulIdentifier","src":"10972:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"10959:12:64","nodeType":"YulIdentifier","src":"10959:12:64"},"nativeSrc":"10959:20:64","nodeType":"YulFunctionCall","src":"10959:20:64"},"variables":[{"name":"length","nativeSrc":"10949:6:64","nodeType":"YulTypedName","src":"10949:6:64","type":""}]},{"nativeSrc":"10988:103:64","nodeType":"YulAssignment","src":"10988:103:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11064:6:64","nodeType":"YulIdentifier","src":"11064:6:64"},{"kind":"number","nativeSrc":"11072:4:64","nodeType":"YulLiteral","src":"11072:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11060:3:64","nodeType":"YulIdentifier","src":"11060:3:64"},"nativeSrc":"11060:17:64","nodeType":"YulFunctionCall","src":"11060:17:64"},{"name":"length","nativeSrc":"11079:6:64","nodeType":"YulIdentifier","src":"11079:6:64"},{"name":"end","nativeSrc":"11087:3:64","nodeType":"YulIdentifier","src":"11087:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10997:62:64","nodeType":"YulIdentifier","src":"10997:62:64"},"nativeSrc":"10997:94:64","nodeType":"YulFunctionCall","src":"10997:94:64"},"variableNames":[{"name":"array","nativeSrc":"10988:5:64","nodeType":"YulIdentifier","src":"10988:5:64"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10727:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10782:6:64","nodeType":"YulTypedName","src":"10782:6:64","type":""},{"name":"end","nativeSrc":"10790:3:64","nodeType":"YulTypedName","src":"10790:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10798:5:64","nodeType":"YulTypedName","src":"10798:5:64","type":""}],"src":"10727:370:64"},{"body":{"nativeSrc":"11219:584:64","nodeType":"YulBlock","src":"11219:584:64","statements":[{"body":{"nativeSrc":"11265:83:64","nodeType":"YulBlock","src":"11265:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11267:77:64","nodeType":"YulIdentifier","src":"11267:77:64"},"nativeSrc":"11267:79:64","nodeType":"YulFunctionCall","src":"11267:79:64"},"nativeSrc":"11267:79:64","nodeType":"YulExpressionStatement","src":"11267:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11240:7:64","nodeType":"YulIdentifier","src":"11240:7:64"},{"name":"headStart","nativeSrc":"11249:9:64","nodeType":"YulIdentifier","src":"11249:9:64"}],"functionName":{"name":"sub","nativeSrc":"11236:3:64","nodeType":"YulIdentifier","src":"11236:3:64"},"nativeSrc":"11236:23:64","nodeType":"YulFunctionCall","src":"11236:23:64"},{"kind":"number","nativeSrc":"11261:2:64","nodeType":"YulLiteral","src":"11261:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11232:3:64","nodeType":"YulIdentifier","src":"11232:3:64"},"nativeSrc":"11232:32:64","nodeType":"YulFunctionCall","src":"11232:32:64"},"nativeSrc":"11229:119:64","nodeType":"YulIf","src":"11229:119:64"},{"nativeSrc":"11358:125:64","nodeType":"YulBlock","src":"11358:125:64","statements":[{"nativeSrc":"11373:15:64","nodeType":"YulVariableDeclaration","src":"11373:15:64","value":{"kind":"number","nativeSrc":"11387:1:64","nodeType":"YulLiteral","src":"11387:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11377:6:64","nodeType":"YulTypedName","src":"11377:6:64","type":""}]},{"nativeSrc":"11402:71:64","nodeType":"YulAssignment","src":"11402:71:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11445:9:64","nodeType":"YulIdentifier","src":"11445:9:64"},{"name":"offset","nativeSrc":"11456:6:64","nodeType":"YulIdentifier","src":"11456:6:64"}],"functionName":{"name":"add","nativeSrc":"11441:3:64","nodeType":"YulIdentifier","src":"11441:3:64"},"nativeSrc":"11441:22:64","nodeType":"YulFunctionCall","src":"11441:22:64"},{"name":"dataEnd","nativeSrc":"11465:7:64","nodeType":"YulIdentifier","src":"11465:7:64"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"11412:28:64","nodeType":"YulIdentifier","src":"11412:28:64"},"nativeSrc":"11412:61:64","nodeType":"YulFunctionCall","src":"11412:61:64"},"variableNames":[{"name":"value0","nativeSrc":"11402:6:64","nodeType":"YulIdentifier","src":"11402:6:64"}]}]},{"nativeSrc":"11493:303:64","nodeType":"YulBlock","src":"11493:303:64","statements":[{"nativeSrc":"11508:46:64","nodeType":"YulVariableDeclaration","src":"11508:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11539:9:64","nodeType":"YulIdentifier","src":"11539:9:64"},{"kind":"number","nativeSrc":"11550:2:64","nodeType":"YulLiteral","src":"11550:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11535:3:64","nodeType":"YulIdentifier","src":"11535:3:64"},"nativeSrc":"11535:18:64","nodeType":"YulFunctionCall","src":"11535:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"11522:12:64","nodeType":"YulIdentifier","src":"11522:12:64"},"nativeSrc":"11522:32:64","nodeType":"YulFunctionCall","src":"11522:32:64"},"variables":[{"name":"offset","nativeSrc":"11512:6:64","nodeType":"YulTypedName","src":"11512:6:64","type":""}]},{"body":{"nativeSrc":"11601:83:64","nodeType":"YulBlock","src":"11601:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11603:77:64","nodeType":"YulIdentifier","src":"11603:77:64"},"nativeSrc":"11603:79:64","nodeType":"YulFunctionCall","src":"11603:79:64"},"nativeSrc":"11603:79:64","nodeType":"YulExpressionStatement","src":"11603:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11573:6:64","nodeType":"YulIdentifier","src":"11573:6:64"},{"kind":"number","nativeSrc":"11581:18:64","nodeType":"YulLiteral","src":"11581:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11570:2:64","nodeType":"YulIdentifier","src":"11570:2:64"},"nativeSrc":"11570:30:64","nodeType":"YulFunctionCall","src":"11570:30:64"},"nativeSrc":"11567:117:64","nodeType":"YulIf","src":"11567:117:64"},{"nativeSrc":"11698:88:64","nodeType":"YulAssignment","src":"11698:88:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11758:9:64","nodeType":"YulIdentifier","src":"11758:9:64"},{"name":"offset","nativeSrc":"11769:6:64","nodeType":"YulIdentifier","src":"11769:6:64"}],"functionName":{"name":"add","nativeSrc":"11754:3:64","nodeType":"YulIdentifier","src":"11754:3:64"},"nativeSrc":"11754:22:64","nodeType":"YulFunctionCall","src":"11754:22:64"},{"name":"dataEnd","nativeSrc":"11778:7:64","nodeType":"YulIdentifier","src":"11778:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11708:45:64","nodeType":"YulIdentifier","src":"11708:45:64"},"nativeSrc":"11708:78:64","nodeType":"YulFunctionCall","src":"11708:78:64"},"variableNames":[{"name":"value1","nativeSrc":"11698:6:64","nodeType":"YulIdentifier","src":"11698:6:64"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr","nativeSrc":"11103:700:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11181:9:64","nodeType":"YulTypedName","src":"11181:9:64","type":""},{"name":"dataEnd","nativeSrc":"11192:7:64","nodeType":"YulTypedName","src":"11192:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11204:6:64","nodeType":"YulTypedName","src":"11204:6:64","type":""},{"name":"value1","nativeSrc":"11212:6:64","nodeType":"YulTypedName","src":"11212:6:64","type":""}],"src":"11103:700:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1, value2 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address_payablet_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100a6575f3560e01c8063715018a611610063578063715018a6146101745780638da5cb5b1461017e578063e3f756de146101a8578063f04e283e146101e4578063f2fde38b14610200578063fee81cf41461021c576100a6565b806301ffc9a7146100aa578063141973b0146100e6578063256929621461010e57806328d6183b14610118578063439fab911461014257806354d1f13d1461016a575b5f80fd5b3480156100b5575f80fd5b506100d060048036038101906100cb9190610a82565b610258565b6040516100dd9190610ac7565b60405180910390f35b3480156100f1575f80fd5b5061010c60048036038101906101079190610b96565b6102d1565b005b6101166103da565b005b348015610123575f80fd5b5061012c61042b565b6040516101399190610c23565b60405180910390f35b34801561014d575f80fd5b5061016860048036038101906101639190610c91565b610452565b005b61017261056f565b005b61017c6105a8565b005b348015610189575f80fd5b506101926105bb565b60405161019f9190610d1b565b60405180910390f35b3480156101b3575f80fd5b506101ce60048036038101906101c99190610d5e565b6105e3565b6040516101db9190610ac7565b60405180910390f35b6101fe60048036038101906101f99190610dbb565b610637565b005b61021a60048036038101906102159190610dbb565b610675565b005b348015610227575f80fd5b50610242600480360381019061023d9190610dbb565b61069e565b60405161024f9190610dfe565b60405180910390f35b5f7f9d585f63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806102ca57506102c9826106b7565b5b9050919050565b6102d9610730565b818190508484905014610318576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156103d35782828281811061033857610337610e17565b5b905060200201602081019061034d9190610e6e565b5f8087878581811061036257610361610e17565b5b90506020020160208101906103779190610dbb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061031a565b5050505050565b5f6103e3610767565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f9d585f6300000000000000000000000000000000000000000000000000000000905090565b5f61045b610771565b9050805460038255801561048d5760018160011c14303b106104845763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f80848481019061049f919061101c565b915091506104ac8261079a565b5f5b81518110156105325760015f808484815181106104ce576104cd610e17565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506104ae565b505050801561056a576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6105b0610730565b6105b95f610870565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161590509392505050565b61063f610730565b63389a75e1600c52805f526020600c20805442111561066557636f5e88185f526004601cfd5b5f81555061067281610870565b50565b61067d610730565b8060601b61069257637448fbae5f526004601cfd5b61069b81610870565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fcade8742000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610729575061072882610936565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610765576382b429005f526004601cfd5b565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6107a26109af565b1561081a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156107dc57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061086d565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6108786109af565b156108dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610933565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109a857506109a7826109b3565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610a6181610a2d565b8114610a6b575f80fd5b50565b5f81359050610a7c81610a58565b92915050565b5f60208284031215610a9757610a96610a25565b5b5f610aa484828501610a6e565b91505092915050565b5f8115159050919050565b610ac181610aad565b82525050565b5f602082019050610ada5f830184610ab8565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610b0157610b00610ae0565b5b8235905067ffffffffffffffff811115610b1e57610b1d610ae4565b5b602083019150836020820283011115610b3a57610b39610ae8565b5b9250929050565b5f8083601f840112610b5657610b55610ae0565b5b8235905067ffffffffffffffff811115610b7357610b72610ae4565b5b602083019150836020820283011115610b8f57610b8e610ae8565b5b9250929050565b5f805f8060408587031215610bae57610bad610a25565b5b5f85013567ffffffffffffffff811115610bcb57610bca610a29565b5b610bd787828801610aec565b9450945050602085013567ffffffffffffffff811115610bfa57610bf9610a29565b5b610c0687828801610b41565b925092505092959194509250565b610c1d81610a2d565b82525050565b5f602082019050610c365f830184610c14565b92915050565b5f8083601f840112610c5157610c50610ae0565b5b8235905067ffffffffffffffff811115610c6e57610c6d610ae4565b5b602083019150836001820283011115610c8a57610c89610ae8565b5b9250929050565b5f8060208385031215610ca757610ca6610a25565b5b5f83013567ffffffffffffffff811115610cc457610cc3610a29565b5b610cd085828601610c3c565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d0582610cdc565b9050919050565b610d1581610cfb565b82525050565b5f602082019050610d2e5f830184610d0c565b92915050565b610d3d81610cfb565b8114610d47575f80fd5b50565b5f81359050610d5881610d34565b92915050565b5f805f60408486031215610d7557610d74610a25565b5b5f610d8286828701610d4a565b935050602084013567ffffffffffffffff811115610da357610da2610a29565b5b610daf86828701610c3c565b92509250509250925092565b5f60208284031215610dd057610dcf610a25565b5b5f610ddd84828501610d4a565b91505092915050565b5f819050919050565b610df881610de6565b82525050565b5f602082019050610e115f830184610def565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b610e4d81610aad565b8114610e57575f80fd5b50565b5f81359050610e6881610e44565b92915050565b5f60208284031215610e8357610e82610a25565b5b5f610e9084828501610e5a565b91505092915050565b5f610ea382610cdc565b9050919050565b610eb381610e99565b8114610ebd575f80fd5b50565b5f81359050610ece81610eaa565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610f1a82610ed4565b810181811067ffffffffffffffff82111715610f3957610f38610ee4565b5b80604052505050565b5f610f4b610a1c565b9050610f578282610f11565b919050565b5f67ffffffffffffffff821115610f7657610f75610ee4565b5b602082029050602081019050919050565b5f610f99610f9484610f5c565b610f42565b90508083825260208201905060208402830185811115610fbc57610fbb610ae8565b5b835b81811015610fe55780610fd18882610d4a565b845260208401935050602081019050610fbe565b5050509392505050565b5f82601f83011261100357611002610ae0565b5b8135611013848260208601610f87565b91505092915050565b5f806040838503121561103257611031610a25565b5b5f61103f85828601610ec0565b925050602083013567ffffffffffffffff8111156110605761105f610a29565b5b61106c85828601610fef565b915050925092905056fea2646970667358221220a5ea30e283c627d5516ba20e9c124ff1dea6b5c30004776975765465608dff6c64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x174 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x17E JUMPI DUP1 PUSH4 0xE3F756DE EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x21C JUMPI PUSH2 0xA6 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0x141973B0 EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x10E JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x16A JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xCB SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDD SWAP2 SWAP1 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x10C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x107 SWAP2 SWAP1 PUSH2 0xB96 JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x116 PUSH2 0x3DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x123 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x12C PUSH2 0x42B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x139 SWAP2 SWAP1 PUSH2 0xC23 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x168 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x163 SWAP2 SWAP1 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0x452 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x172 PUSH2 0x56F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17C PUSH2 0x5A8 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x189 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x192 PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19F SWAP2 SWAP1 PUSH2 0xD1B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C9 SWAP2 SWAP1 PUSH2 0xD5E JUMP JUMPDEST PUSH2 0x5E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0xAC7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F9 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x21A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x675 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH2 0x69E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24F SWAP2 SWAP1 PUSH2 0xDFE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x9D585F6300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x2CA JUMPI POP PUSH2 0x2C9 DUP3 PUSH2 0x6B7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D9 PUSH2 0x730 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x318 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x3D3 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x338 JUMPI PUSH2 0x337 PUSH2 0xE17 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0xE6E JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x362 JUMPI PUSH2 0x361 PUSH2 0xE17 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x377 SWAP2 SWAP1 PUSH2 0xDBB JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x31A JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x3E3 PUSH2 0x767 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x9D585F6300000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x45B PUSH2 0x771 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x48D JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x484 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP1 DUP5 DUP5 DUP2 ADD SWAP1 PUSH2 0x49F SWAP2 SWAP1 PUSH2 0x101C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x4AC DUP3 PUSH2 0x79A JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x532 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x4CE JUMPI PUSH2 0x4CD PUSH2 0xE17 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x4AE JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0x56A JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x5B0 PUSH2 0x730 JUMP JUMPDEST PUSH2 0x5B9 PUSH0 PUSH2 0x870 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x63F PUSH2 0x730 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x665 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x672 DUP2 PUSH2 0x870 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x67D PUSH2 0x730 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x692 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x69B DUP2 PUSH2 0x870 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xCADE874200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x729 JUMPI POP PUSH2 0x728 DUP3 PUSH2 0x936 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x765 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7A2 PUSH2 0x9AF JUMP JUMPDEST ISZERO PUSH2 0x81A JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7DC JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x86D JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x878 PUSH2 0x9AF JUMP JUMPDEST ISZERO PUSH2 0x8DD JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x933 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x9A8 JUMPI POP PUSH2 0x9A7 DUP3 PUSH2 0x9B3 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA61 DUP2 PUSH2 0xA2D JUMP JUMPDEST DUP2 EQ PUSH2 0xA6B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA7C DUP2 PUSH2 0xA58 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA97 JUMPI PUSH2 0xA96 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xAA4 DUP5 DUP3 DUP6 ADD PUSH2 0xA6E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC1 DUP2 PUSH2 0xAAD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADA PUSH0 DUP4 ADD DUP5 PUSH2 0xAB8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB01 JUMPI PUSH2 0xB00 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB1E JUMPI PUSH2 0xB1D PUSH2 0xAE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB3A JUMPI PUSH2 0xB39 PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB56 JUMPI PUSH2 0xB55 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB73 JUMPI PUSH2 0xB72 PUSH2 0xAE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xB8F JUMPI PUSH2 0xB8E PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xBAE JUMPI PUSH2 0xBAD PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBCB JUMPI PUSH2 0xBCA PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xBD7 DUP8 DUP3 DUP9 ADD PUSH2 0xAEC JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFA JUMPI PUSH2 0xBF9 PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xC06 DUP8 DUP3 DUP9 ADD PUSH2 0xB41 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0xC1D DUP2 PUSH2 0xA2D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC36 PUSH0 DUP4 ADD DUP5 PUSH2 0xC14 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xC51 JUMPI PUSH2 0xC50 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6E JUMPI PUSH2 0xC6D PUSH2 0xAE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xC8A JUMPI PUSH2 0xC89 PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCA7 JUMPI PUSH2 0xCA6 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCC4 JUMPI PUSH2 0xCC3 PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xCD0 DUP6 DUP3 DUP7 ADD PUSH2 0xC3C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xD05 DUP3 PUSH2 0xCDC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD15 DUP2 PUSH2 0xCFB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD2E PUSH0 DUP4 ADD DUP5 PUSH2 0xD0C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3D DUP2 PUSH2 0xCFB JUMP JUMPDEST DUP2 EQ PUSH2 0xD47 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD58 DUP2 PUSH2 0xD34 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD75 JUMPI PUSH2 0xD74 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD82 DUP7 DUP3 DUP8 ADD PUSH2 0xD4A JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDA3 JUMPI PUSH2 0xDA2 PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0xDAF DUP7 DUP3 DUP8 ADD PUSH2 0xC3C JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDD0 JUMPI PUSH2 0xDCF PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDDD DUP5 DUP3 DUP6 ADD PUSH2 0xD4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDF8 DUP2 PUSH2 0xDE6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE11 PUSH0 DUP4 ADD DUP5 PUSH2 0xDEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xE4D DUP2 PUSH2 0xAAD JUMP JUMPDEST DUP2 EQ PUSH2 0xE57 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE68 DUP2 PUSH2 0xE44 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE83 JUMPI PUSH2 0xE82 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE90 DUP5 DUP3 DUP6 ADD PUSH2 0xE5A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xEA3 DUP3 PUSH2 0xCDC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEB3 DUP2 PUSH2 0xE99 JUMP JUMPDEST DUP2 EQ PUSH2 0xEBD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xECE DUP2 PUSH2 0xEAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0xF1A DUP3 PUSH2 0xED4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF39 JUMPI PUSH2 0xF38 PUSH2 0xEE4 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xF4B PUSH2 0xA1C JUMP JUMPDEST SWAP1 POP PUSH2 0xF57 DUP3 DUP3 PUSH2 0xF11 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF76 JUMPI PUSH2 0xF75 PUSH2 0xEE4 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xF99 PUSH2 0xF94 DUP5 PUSH2 0xF5C JUMP JUMPDEST PUSH2 0xF42 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0xFBC JUMPI PUSH2 0xFBB PUSH2 0xAE8 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xFE5 JUMPI DUP1 PUSH2 0xFD1 DUP9 DUP3 PUSH2 0xD4A JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xFBE JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1003 JUMPI PUSH2 0x1002 PUSH2 0xAE0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1013 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xF87 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1032 JUMPI PUSH2 0x1031 PUSH2 0xA25 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x103F DUP6 DUP3 DUP7 ADD PUSH2 0xEC0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1060 JUMPI PUSH2 0x105F PUSH2 0xA29 JUMP JUMPDEST JUMPDEST PUSH2 0x106C DUP6 DUP3 DUP7 ADD PUSH2 0xFEF JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xEA ADDRESS 0xE2 DUP4 0xC6 0x27 0xD5 MLOAD PUSH12 0xA20E9C124FF1DEA6B5C30004 PUSH24 0x6975765465608DFF6C64736F6C634300081A003300000000 ","sourceMap":"299:851:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2001:214:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1494:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9021:617:16;;;:::i;:::-;;1818:147:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;823:325:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1050:149:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2001:214:36;2097:4;2135:33;2120:48;;;:11;:48;;;;:88;;;;2172:36;2196:11;2172:23;:36::i;:::-;2120:88;2113:95;;2001:214;;;:::o;1494:288::-;12517:13:16;:11;:13::i;:::-;1615:7:36::1;;:14;;1598:6;;:13;;:31;1594:71;;1638:27;;;;;;;;;;;;;;1594:71;1681:9;1676:100;1700:6;;:13;;1696:1;:17;1676:100;;;1755:7;;1763:1;1755:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1734:7;:18:::0;1742:6:::1;;1749:1;1742:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;1734:18;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;1715:3;;;;;;;1676:100;;;;1494:288:::0;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;1818:147:36:-;1900:6;1925:33;1918:40;;1818:147;:::o;823:325:39:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;912:14:39::1;928:26:::0;969:5:::1;;958:39;;;;;;;:::i;:::-;911:86;;;;1008:24;1025:6;1008:16;:24::i;:::-;1047:9;1042:100;1066:9;:16;1062:1;:20;1042:100;;;1127:4;1103:7;:21:::0;1111:9:::1;1121:1;1111:12;;;;;;;;:::i;:::-;;;;;;;;1103:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1084:3;;;;;;;1042:100;;;;901:247;;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;823:325:39;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1050:149:36:-;1154:4;1178:7;:14;1186:5;1178:14;;;;;;;;;;;;;;;;;;;;;;;;;1177:15;1170:22;;1050:149;;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1023:208:37:-;1119:4;1157:27;1142:42;;;:11;:42;;;;:82;;;;1188:36;1212:11;1188:23;:36::i;:::-;1142:82;1135:89;;1023:208;;;:::o;7292:355:16:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;7878:110::-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:117;1750:1;1747;1740:12;1764:117;1873:1;1870;1863:12;1904:568;1977:8;1987:6;2037:3;2030:4;2022:6;2018:17;2014:27;2004:122;;2045:79;;:::i;:::-;2004:122;2158:6;2145:20;2135:30;;2188:18;2180:6;2177:30;2174:117;;;2210:79;;:::i;:::-;2174:117;2324:4;2316:6;2312:17;2300:29;;2378:3;2370:4;2362:6;2358:17;2348:8;2344:32;2341:41;2338:128;;;2385:79;;:::i;:::-;2338:128;1904:568;;;;;:::o;2492:565::-;2562:8;2572:6;2622:3;2615:4;2607:6;2603:17;2599:27;2589:122;;2630:79;;:::i;:::-;2589:122;2743:6;2730:20;2720:30;;2773:18;2765:6;2762:30;2759:117;;;2795:79;;:::i;:::-;2759:117;2909:4;2901:6;2897:17;2885:29;;2963:3;2955:4;2947:6;2943:17;2933:8;2929:32;2926:41;2923:128;;;2970:79;;:::i;:::-;2923:128;2492:565;;;;;:::o;3063:928::-;3182:6;3190;3198;3206;3255:2;3243:9;3234:7;3230:23;3226:32;3223:119;;;3261:79;;:::i;:::-;3223:119;3409:1;3398:9;3394:17;3381:31;3439:18;3431:6;3428:30;3425:117;;;3461:79;;:::i;:::-;3425:117;3574:80;3646:7;3637:6;3626:9;3622:22;3574:80;:::i;:::-;3556:98;;;;3352:312;3731:2;3720:9;3716:18;3703:32;3762:18;3754:6;3751:30;3748:117;;;3784:79;;:::i;:::-;3748:117;3897:77;3966:7;3957:6;3946:9;3942:22;3897:77;:::i;:::-;3879:95;;;;3674:310;3063:928;;;;;;;:::o;3997:115::-;4082:23;4099:5;4082:23;:::i;:::-;4077:3;4070:36;3997:115;;:::o;4118:218::-;4209:4;4247:2;4236:9;4232:18;4224:26;;4260:69;4326:1;4315:9;4311:17;4302:6;4260:69;:::i;:::-;4118:218;;;;:::o;4355:552::-;4412:8;4422:6;4472:3;4465:4;4457:6;4453:17;4449:27;4439:122;;4480:79;;:::i;:::-;4439:122;4593:6;4580:20;4570:30;;4623:18;4615:6;4612:30;4609:117;;;4645:79;;:::i;:::-;4609:117;4759:4;4751:6;4747:17;4735:29;;4813:3;4805:4;4797:6;4793:17;4783:8;4779:32;4776:41;4773:128;;;4820:79;;:::i;:::-;4773:128;4355:552;;;;;:::o;4913:527::-;4983:6;4991;5040:2;5028:9;5019:7;5015:23;5011:32;5008:119;;;5046:79;;:::i;:::-;5008:119;5194:1;5183:9;5179:17;5166:31;5224:18;5216:6;5213:30;5210:117;;;5246:79;;:::i;:::-;5210:117;5359:64;5415:7;5406:6;5395:9;5391:22;5359:64;:::i;:::-;5341:82;;;;5137:296;4913:527;;;;;:::o;5446:126::-;5483:7;5523:42;5516:5;5512:54;5501:65;;5446:126;;;:::o;5578:96::-;5615:7;5644:24;5662:5;5644:24;:::i;:::-;5633:35;;5578:96;;;:::o;5680:118::-;5767:24;5785:5;5767:24;:::i;:::-;5762:3;5755:37;5680:118;;:::o;5804:222::-;5897:4;5935:2;5924:9;5920:18;5912:26;;5948:71;6016:1;6005:9;6001:17;5992:6;5948:71;:::i;:::-;5804:222;;;;:::o;6032:122::-;6105:24;6123:5;6105:24;:::i;:::-;6098:5;6095:35;6085:63;;6144:1;6141;6134:12;6085:63;6032:122;:::o;6160:139::-;6206:5;6244:6;6231:20;6222:29;;6260:33;6287:5;6260:33;:::i;:::-;6160:139;;;;:::o;6305:672::-;6384:6;6392;6400;6449:2;6437:9;6428:7;6424:23;6420:32;6417:119;;;6455:79;;:::i;:::-;6417:119;6575:1;6600:53;6645:7;6636:6;6625:9;6621:22;6600:53;:::i;:::-;6590:63;;6546:117;6730:2;6719:9;6715:18;6702:32;6761:18;6753:6;6750:30;6747:117;;;6783:79;;:::i;:::-;6747:117;6896:64;6952:7;6943:6;6932:9;6928:22;6896:64;:::i;:::-;6878:82;;;;6673:297;6305:672;;;;;:::o;6983:329::-;7042:6;7091:2;7079:9;7070:7;7066:23;7062:32;7059:119;;;7097:79;;:::i;:::-;7059:119;7217:1;7242:53;7287:7;7278:6;7267:9;7263:22;7242:53;:::i;:::-;7232:63;;7188:117;6983:329;;;;:::o;7318:77::-;7355:7;7384:5;7373:16;;7318:77;;;:::o;7401:118::-;7488:24;7506:5;7488:24;:::i;:::-;7483:3;7476:37;7401:118;;:::o;7525:222::-;7618:4;7656:2;7645:9;7641:18;7633:26;;7669:71;7737:1;7726:9;7722:17;7713:6;7669:71;:::i;:::-;7525:222;;;;:::o;7753:180::-;7801:77;7798:1;7791:88;7898:4;7895:1;7888:15;7922:4;7919:1;7912:15;7939:116;8009:21;8024:5;8009:21;:::i;:::-;8002:5;7999:32;7989:60;;8045:1;8042;8035:12;7989:60;7939:116;:::o;8061:133::-;8104:5;8142:6;8129:20;8120:29;;8158:30;8182:5;8158:30;:::i;:::-;8061:133;;;;:::o;8200:323::-;8256:6;8305:2;8293:9;8284:7;8280:23;8276:32;8273:119;;;8311:79;;:::i;:::-;8273:119;8431:1;8456:50;8498:7;8489:6;8478:9;8474:22;8456:50;:::i;:::-;8446:60;;8402:114;8200:323;;;;:::o;8529:104::-;8574:7;8603:24;8621:5;8603:24;:::i;:::-;8592:35;;8529:104;;;:::o;8639:138::-;8720:32;8746:5;8720:32;:::i;:::-;8713:5;8710:43;8700:71;;8767:1;8764;8757:12;8700:71;8639:138;:::o;8783:155::-;8837:5;8875:6;8862:20;8853:29;;8891:41;8926:5;8891:41;:::i;:::-;8783:155;;;;:::o;8944:102::-;8985:6;9036:2;9032:7;9027:2;9020:5;9016:14;9012:28;9002:38;;8944:102;;;:::o;9052:180::-;9100:77;9097:1;9090:88;9197:4;9194:1;9187:15;9221:4;9218:1;9211:15;9238:281;9321:27;9343:4;9321:27;:::i;:::-;9313:6;9309:40;9451:6;9439:10;9436:22;9415:18;9403:10;9400:34;9397:62;9394:88;;;9462:18;;:::i;:::-;9394:88;9502:10;9498:2;9491:22;9281:238;9238:281;;:::o;9525:129::-;9559:6;9586:20;;:::i;:::-;9576:30;;9615:33;9643:4;9635:6;9615:33;:::i;:::-;9525:129;;;:::o;9660:311::-;9737:4;9827:18;9819:6;9816:30;9813:56;;;9849:18;;:::i;:::-;9813:56;9899:4;9891:6;9887:17;9879:25;;9959:4;9953;9949:15;9941:23;;9660:311;;;:::o;9994:710::-;10090:5;10115:81;10131:64;10188:6;10131:64;:::i;:::-;10115:81;:::i;:::-;10106:90;;10216:5;10245:6;10238:5;10231:21;10279:4;10272:5;10268:16;10261:23;;10332:4;10324:6;10320:17;10312:6;10308:30;10361:3;10353:6;10350:15;10347:122;;;10380:79;;:::i;:::-;10347:122;10495:6;10478:220;10512:6;10507:3;10504:15;10478:220;;;10587:3;10616:37;10649:3;10637:10;10616:37;:::i;:::-;10611:3;10604:50;10683:4;10678:3;10674:14;10667:21;;10554:144;10538:4;10533:3;10529:14;10522:21;;10478:220;;;10482:21;10096:608;;9994:710;;;;;:::o;10727:370::-;10798:5;10847:3;10840:4;10832:6;10828:17;10824:27;10814:122;;10855:79;;:::i;:::-;10814:122;10972:6;10959:20;10997:94;11087:3;11079:6;11072:4;11064:6;11060:17;10997:94;:::i;:::-;10988:103;;10804:293;10727:370;;;;:::o;11103:700::-;11204:6;11212;11261:2;11249:9;11240:7;11236:23;11232:32;11229:119;;;11267:79;;:::i;:::-;11229:119;11387:1;11412:61;11465:7;11456:6;11445:9;11441:22;11412:61;:::i;:::-;11402:71;;11358:125;11550:2;11539:9;11535:18;11522:32;11581:18;11573:6;11570:30;11567:117;;;11603:79;;:::i;:::-;11567:117;11708:78;11778:7;11769:6;11758:9;11754:22;11708:78;:::i;:::-;11698:88;;11493:303;11103:700;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAllowed(address,bytes)":"e3f756de","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setDenied(address[],bool[])":"141973b0","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"users_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"denied_\",\"type\":\"bool[]\"}],\"name\":\"setDenied\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization data `(address owner, address[] denyList)`\"}},\"isAllowed(address,bytes)\":{\"params\":{\"\":\"- The data payload for the authorization check, not used in this implementation\",\"user_\":\"The address of the user\"},\"returns\":{\"_0\":\"True if the user is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setDenied(address[],bool[])\":{\"details\":\"The length of the `users_` and `denied_` arrays must be the sameThis function can only be called by the owner\",\"params\":{\"denied_\":\"The denied status of each user\",\"users_\":\"The list of users to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"SimpleDenyList\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Construct a new SimpleDenyList\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the initial list of denied addresses\"},\"isAllowed(address,bytes)\":{\"notice\":\"Check if a user is authorized (i.e. not denied)\"},\"setDenied(address[],bool[])\":{\"notice\":\"Set the denied status of a user\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple implementation of an AllowList that implicitly allows all addresses except those explicitly added to the deny list\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/allowlists/SimpleDenyList.sol\":\"SimpleDenyList\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/allowlists/ASimpleDenyList.sol\":{\"keccak256\":\"0x577e0109c14871f2970e1a773f2eb0ca671ad02e4a6f151f06a08d7e139e7271\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6925b0ef57ebf0df27e43d9b6cb077737f27f96ed3dedc3608a8e5890d79334d\",\"dweb:/ipfs/QmeWJksm6F1AGNb68ZdmAg7FeSgKYEzzeGC37N8ndkiN6F\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/allowlists/SimpleDenyList.sol\":{\"keccak256\":\"0x83c989738ccb4f1e688dbc51e2545154995454e2213f2c073b870f35e865d623\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d49ced2f4a5bf276889f7235889f0d3b167478da13adde75f1d5c896d0af5038\",\"dweb:/ipfs/Qma4NetQK4K7pJV1WGAnq5FrDaRfLejXmw1u6rbCGtRod4\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/budgets/ASimpleBudget.sol":{"ASimpleBudget":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","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":"pure","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":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","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":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","available(address,uint256)":"f8724aba","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","distributed(address,uint256)":"774c33ab","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","total(address,uint256)":"f9a802c3","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"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\":\"pure\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"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\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This type of budget supports ETH, ERC20, and ERC1155 assets only\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is simply the current balance held by the budgetIf the zero address is passed, this function will return the native balance\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"available(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"disburse(bytes)\":{\"details\":\"If the asset transfer fails, the disbursement will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"distributed(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budgetIf the amount is zero, the entire balance of the asset will be transferred to the receiverIf the asset transfer fails, the reclamation will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"authorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is simply the sum of the current balance and the distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"total(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_distributedERC1155\":{\"details\":\"The total amount of each ERC1155 asset and token ID distributed from the budget\"},\"_distributedFungible\":{\"details\":\"The total amount of each fungible asset distributed from the budget\"},\"_isAuthorized\":{\"details\":\"The mapping of authorized addresses\"}},\"title\":\"Abstract Simple Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget\"},\"available(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets available for distribution from the budget\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"distributed(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets that have been distributed from the budget\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"},\"total(address,uint256)\":{\"notice\":\"Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/ASimpleBudget.sol\":\"ASimpleBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/ASimpleBudget.sol\":{\"keccak256\":\"0x6b96d422e3160b9ac194d448542a78a7d72ba54c711d3a93442c07462f35e0a4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ff53d816c51af2eed27d6a242ced0a0478898306649a77b152045a0ac9ee92a5\",\"dweb:/ipfs/QmVmbqxFSqmdF4sBpmkDYcED9jowDUdtDmNHp6EeMkg3AH\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/budgets/AVestingBudget.sol":{"AVestingBudget":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cliff","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","cancelOwnershipHandover()":"54d1f13d","cliff()":"13d033c0","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","duration()":"0fb5a6b4","end()":"efbe1c1c","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","start()":"be9a6555","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cliff\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"duration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"start\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Take note of the following when making use of this budget type: - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior. - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution. - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero. - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is equal to the total vested amount minus any already distributed\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets currently available for distribution\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"disburse(bytes)\":{\"details\":\"The maximum amount that can be disbursed is the {available} amount\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"end()\":{\"returns\":{\"_0\":\"The end time of the vesting schedule\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting scheduleIf the amount is zero, the entire available balance of the asset will be transferred to the receiverIf the asset transfer fails for any reason, the function will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"authorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is equal to the sum of the total current balance and the total distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"stateVariables\":{\"_distributedFungible\":{\"details\":\"The total amount of each fungible asset distributed from the budget\"},\"_isAuthorized\":{\"details\":\"The mapping of authorized addresses\"}},\"title\":\"Vesting Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget as of the current block timestamp\"},\"cliff()\":{\"notice\":\"The duration of the cliff period (in seconds)\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"duration()\":{\"notice\":\"The duration of the vesting schedule (in seconds)\"},\"end()\":{\"notice\":\"Get the end time of the vesting schedule\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"start()\":{\"notice\":\"The timestamp at which the vesting schedule begins\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A vesting-based budget implementation that allows for the distribution of assets over time\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/AVestingBudget.sol\":\"AVestingBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/AVestingBudget.sol\":{\"keccak256\":\"0x3ee9e391fc031813e51ddec6cedc7b07fec1bb692962b07a5a56193d30d4a66a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://073354050ba17f7c2f1ec7966c85d041c8e932382885efa0baf773fb244c2c5d\",\"dweb:/ipfs/QmTYj4kmDtBFnYSxRGQtdn39jhUJpE93LAb8fdiGjh1vLu\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/budgets/Budget.sol":{"Budget":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","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":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"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\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Budget classes are expected to implement the allocation, reclamation, and disbursement of assets.WARNING: Budgets currently support only ETH, ERC20, and ERC1155 assets. Other asset types may be added in the future.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"params\":{\"data_\":\"The compressed data for the allocation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"disburse(bytes)\":{\"params\":{\"data_\":\"The compressed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The array of compressed {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The compressed data for the reclamation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"True if the reclamation was successful\"}},\"reconcile(bytes)\":{\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"authorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocate assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget\"},\"constructor\":{\"notice\":\"Initialize the budget and set the owner\"},\"disburse(bytes)\":{\"notice\":\"Disburse assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburse assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"Abstract contract for a generic Budget within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/Budget.sol\":\"Budget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/budgets/SimpleBudget.sol":{"SimpleBudget":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","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":"pure","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":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","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":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_15524":{"entryPoint":null,"id":15524,"parameterSlots":0,"returnSlots":0},"@_15681":{"entryPoint":null,"id":15681,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612e65806101b45f395ff3fe608060405260043610610169575f3560e01c8063774c33ab116100d0578063f23a6e6111610089578063f9a802c311610063578063f9a802c314610530578063fa4ca9b11461056c578063fe9fbb80146105a8578063fee81cf4146105e457610170565b8063f23a6e611461049c578063f2fde38b146104d8578063f8724aba146104f457610170565b8063774c33ab146103665780638da5cb5b146103a2578063bc197c81146103cc578063d2514e8414610408578063f04e283e14610444578063f1c30ec01461046057610170565b8063451cc19111610122578063451cc1911461026e57806354d1f13d146102aa578063578bcf35146102b45780635aef467a146102f057806361400c9914610320578063715018a61461035c57610170565b806301ffc9a71461017257806310098ad5146101ae57806325692962146101ea57806328d6183b146101f45780634359d28a1461021e578063439fab911461024657610170565b3661017057005b005b34801561017d575f80fd5b5061019860048036038101906101939190611fe7565b610620565b6040516101a5919061202c565b60405180910390f35b3480156101b9575f80fd5b506101d460048036038101906101cf919061209f565b610769565b6040516101e191906120e2565b60405180910390f35b6101f26107d4565b005b3480156101ff575f80fd5b50610208610825565b604051610215919061210a565b60405180910390f35b348015610229575f80fd5b50610244600480360381019061023f91906121d9565b61084c565b005b348015610251575f80fd5b5061026c600480360381019061026791906122ac565b610956565b005b348015610279575f80fd5b50610294600480360381019061028f91906122ac565b610a7b565b6040516102a191906120e2565b60405180910390f35b6102b2610a82565b005b3480156102bf575f80fd5b506102da60048036038101906102d5919061209f565b610abb565b6040516102e791906120e2565b60405180910390f35b61030a600480360381019061030591906122ac565b610b00565b604051610317919061202c565b60405180910390f35b34801561032b575f80fd5b506103466004803603810190610341919061234c565b610e70565b604051610353919061202c565b60405180910390f35b610364610ed4565b005b348015610371575f80fd5b5061038c600480360381019061038791906123c1565b610ee7565b60405161039991906120e2565b60405180910390f35b3480156103ad575f80fd5b506103b6610f3d565b6040516103c3919061240e565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed919061247c565b610f65565b6040516103ff919061210a565b60405180910390f35b348015610413575f80fd5b5061042e6004803603810190610429919061209f565b610f7c565b60405161043b91906120e2565b60405180910390f35b61045e6004803603810190610459919061209f565b610fd4565b005b34801561046b575f80fd5b50610486600480360381019061048191906122ac565b611012565b604051610493919061202c565b60405180910390f35b3480156104a7575f80fd5b506104c260048036038101906104bd9190612553565b6111f8565b6040516104cf919061210a565b60405180910390f35b6104f260048036038101906104ed919061209f565b61120d565b005b3480156104ff575f80fd5b5061051a600480360381019061051591906123c1565b611236565b60405161052791906120e2565b60405180910390f35b34801561053b575f80fd5b50610556600480360381019061055191906123c1565b6112b8565b60405161056391906120e2565b60405180910390f35b348015610577575f80fd5b50610592600480360381019061058d91906122ac565b611391565b60405161059f919061202c565b60405180910390f35b3480156105b3575f80fd5b506105ce60048036038101906105c9919061209f565b61163d565b6040516105db919061202c565b60405180910390f35b3480156105ef575f80fd5b5061060a6004803603810190610605919061209f565b6116cc565b60405161061791906120e2565b60405180910390f35b5f7f0f2a5d52000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106ea57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061075257507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107625750610761826116e5565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146107cb576107c6308373ffffffffffffffffffffffffffffffffffffffff1661175e90919063ffffffff16565b6107cd565b475b9050919050565b5f6107dd611791565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f0f2a5d5200000000000000000000000000000000000000000000000000000000905090565b61085461179b565b818190508484905014610893576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561094f578282828181106108b3576108b26125e9565b5b90506020020160208101906108c89190612640565b60025f8787858181106108de576108dd6125e9565b5b90506020020160208101906108f3919061209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610895565b5050505050565b5f61095f6117d2565b905080546003825580156109915760018160011c14303b106109885763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906109a29190612824565b90506109b0815f01516117fb565b5f5b816020015151811015610a3f57600160025f846020015184815181106109db576109da6125e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109b2565b50508015610a76576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808383810190610b1191906129cf565b90505f6002811115610b2657610b25612a16565b5b815f01516002811115610b3c57610b3b612a16565b5b03610bb2575f8160600151806020019051810190610b5a9190612a90565b9050805f01513414610bac578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610ba3929190612abb565b60405180910390fd5b50610e64565b60016002811115610bc657610bc5612a16565b5b815f01516002811115610bdc57610bdb612a16565b5b03610cb7575f8160600151806020019051810190610bfa9190612a90565b9050610c34826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166118d1909392919063ffffffff16565b805f0151610c6530846020015173ffffffffffffffffffffffffffffffffffffffff1661175e90919063ffffffff16565b1015610cb1578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610ca8929190612abb565b60405180910390fd5b50610e63565b600280811115610cca57610cc9612a16565b5b815f01516002811115610ce057610cdf612a16565b5b03610e59575f8160600151806020019051810190610cfe9190612bdb565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b8152600401610d54959493929190612c74565b5f604051808303815f87803b158015610d6b575f80fd5b505af1158015610d7d573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401610dc7929190612abb565b602060405180830381865afa158015610de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e069190612ccc565b1015610e5357816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610e4a929190612abb565b60405180910390fd5b50610e62565b5f915050610e6a565b5b5b60019150505b92915050565b5f805f90505b83839050811015610ec857610eae848483818110610e9757610e966125e9565b5b9050602002810190610ea99190612d03565b611391565b610ebb575f915050610ece565b8080600101915050610e76565b50600190505b92915050565b610edc61179b565b610ee55f61192b565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f63bc197c8160e01b905098975050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc383610769565b610fcd9190612d92565b9050919050565b610fdc61179b565b63389a75e1600c52805f526020600c20805442111561100257636f5e88185f526004601cfd5b5f81555061100f8161192b565b50565b5f61101b61179b565b5f838381019061102b91906129cf565b90505f60028111156110405761103f612a16565b5b815f0151600281111561105657611055612a16565b5b148061108957506001600281111561107157611070612a16565b5b815f0151600281111561108757611086612a16565b5b145b156110e2575f81606001518060200190518101906110a79190612a90565b90506110dc826020015183604001515f845f0151146110c957835f01516110d7565b6110d68560200151610769565b5b6119f1565b506111ec565b6002808111156110f5576110f4612a16565b5b815f0151600281111561110b5761110a612a16565b5b036111e2575f81606001518060200190518101906111299190612bdb565b90506111dc82602001518360400151835f01515f8560200151146111515784602001516111d2565b856020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401611192929190612abb565b602060405180830381865afa1580156111ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d19190612ccc565b5b8560400151611c09565b506111eb565b5f9150506111f2565b5b60019150505b92915050565b5f63f23a6e6160e01b90509695505050505050565b61121561179b565b8060601b61122a57637448fbae5f526004601cfd5b6112338161192b565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401611271929190612abb565b602060405180830381865afa15801561128c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190612ccc565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401611340929190612abb565b602060405180830381865afa15801561135b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137f9190612ccc565b6113899190612d92565b905092915050565b5f61139b3361163d565b6113d1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906113e191906129cf565b9050600160028111156113f7576113f6612a16565b5b815f0151600281111561140d5761140c612a16565b5b148061143f57505f600281111561142757611426612a16565b5b815f0151600281111561143d5761143c612a16565b5b145b156114df575f816060015180602001905181019061145d9190612a90565b90505f61146d8360200151610769565b905080825f015111156114c257826020015181835f01516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016114b993929190612dc5565b60405180910390fd5b6114d883602001518460400151845f01516119f1565b5050611631565b6002808111156114f2576114f1612a16565b5b815f0151600281111561150857611507612a16565b5b03611627575f81606001518060200190518101906115269190612bdb565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b815260040161156a929190612abb565b602060405180830381865afa158015611585573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a99190612ccc565b905080826020015111156116005782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016115f793929190612dc5565b60405180910390fd5b61162083602001518460400151845f015185602001518660400151611c09565b5050611630565b5f915050611637565b5b60019150505b92915050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806116c55750611696610f3d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f74009ff1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611757575061175682611e35565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146117d0576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611803611eae565b1561187b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561183d57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506118ce565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661191c57637939f4245f526004601cfd5b5f606052806040525050505050565b611933611eae565b15611998577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506119ee565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd212685403611a0f5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a8f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611a8693929190612dfa565b60405180910390fd5b611a9883610769565b811115611ae85782611aa984610769565b826040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611adf93929190612dc5565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b339190612d92565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b7c57611b778282611eb2565b611ba8565b611ba782828573ffffffffffffffffffffffffffffffffffffffff16611ecf9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051611bf0929190612abb565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403611c275763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ca7578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611c9e93929190612dfa565b60405180910390fd5b611cb18584611236565b821115611d025784611cc38685611236565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cf993929190612dc5565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254611d5d9190612d92565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401611da5959493929190612c74565b5f604051808303815f87803b158015611dbc575f80fd5b505af1158015611dce573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051611e1a929190612abb565b60405180910390a23868929eee149b4bd21268555050505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ea75750611ea682611f18565b5b9050919050565b5f90565b5f385f3884865af1611ecb5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611f0f576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fc681611f92565b8114611fd0575f80fd5b50565b5f81359050611fe181611fbd565b92915050565b5f60208284031215611ffc57611ffb611f8a565b5b5f61200984828501611fd3565b91505092915050565b5f8115159050919050565b61202681612012565b82525050565b5f60208201905061203f5f83018461201d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61206e82612045565b9050919050565b61207e81612064565b8114612088575f80fd5b50565b5f8135905061209981612075565b92915050565b5f602082840312156120b4576120b3611f8a565b5b5f6120c18482850161208b565b91505092915050565b5f819050919050565b6120dc816120ca565b82525050565b5f6020820190506120f55f8301846120d3565b92915050565b61210481611f92565b82525050565b5f60208201905061211d5f8301846120fb565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261214457612143612123565b5b8235905067ffffffffffffffff81111561216157612160612127565b5b60208301915083602082028301111561217d5761217c61212b565b5b9250929050565b5f8083601f84011261219957612198612123565b5b8235905067ffffffffffffffff8111156121b6576121b5612127565b5b6020830191508360208202830111156121d2576121d161212b565b5b9250929050565b5f805f80604085870312156121f1576121f0611f8a565b5b5f85013567ffffffffffffffff81111561220e5761220d611f8e565b5b61221a8782880161212f565b9450945050602085013567ffffffffffffffff81111561223d5761223c611f8e565b5b61224987828801612184565b925092505092959194509250565b5f8083601f84011261226c5761226b612123565b5b8235905067ffffffffffffffff81111561228957612288612127565b5b6020830191508360018202830111156122a5576122a461212b565b5b9250929050565b5f80602083850312156122c2576122c1611f8a565b5b5f83013567ffffffffffffffff8111156122df576122de611f8e565b5b6122eb85828601612257565b92509250509250929050565b5f8083601f84011261230c5761230b612123565b5b8235905067ffffffffffffffff81111561232957612328612127565b5b6020830191508360208202830111156123455761234461212b565b5b9250929050565b5f806020838503121561236257612361611f8a565b5b5f83013567ffffffffffffffff81111561237f5761237e611f8e565b5b61238b858286016122f7565b92509250509250929050565b6123a0816120ca565b81146123aa575f80fd5b50565b5f813590506123bb81612397565b92915050565b5f80604083850312156123d7576123d6611f8a565b5b5f6123e48582860161208b565b92505060206123f5858286016123ad565b9150509250929050565b61240881612064565b82525050565b5f6020820190506124215f8301846123ff565b92915050565b5f8083601f84011261243c5761243b612123565b5b8235905067ffffffffffffffff81111561245957612458612127565b5b6020830191508360208202830111156124755761247461212b565b5b9250929050565b5f805f805f805f8060a0898b03121561249857612497611f8a565b5b5f6124a58b828c0161208b565b98505060206124b68b828c0161208b565b975050604089013567ffffffffffffffff8111156124d7576124d6611f8e565b5b6124e38b828c01612427565b9650965050606089013567ffffffffffffffff81111561250657612505611f8e565b5b6125128b828c01612427565b9450945050608089013567ffffffffffffffff81111561253557612534611f8e565b5b6125418b828c01612257565b92509250509295985092959890939650565b5f805f805f8060a0878903121561256d5761256c611f8a565b5b5f61257a89828a0161208b565b965050602061258b89828a0161208b565b955050604061259c89828a016123ad565b94505060606125ad89828a016123ad565b935050608087013567ffffffffffffffff8111156125ce576125cd611f8e565b5b6125da89828a01612257565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61261f81612012565b8114612629575f80fd5b50565b5f8135905061263a81612616565b92915050565b5f6020828403121561265557612654611f8a565b5b5f6126628482850161262c565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126b58261266f565b810181811067ffffffffffffffff821117156126d4576126d361267f565b5b80604052505050565b5f6126e6611f81565b90506126f282826126ac565b919050565b5f80fd5b5f67ffffffffffffffff8211156127155761271461267f565b5b602082029050602081019050919050565b5f612738612733846126fb565b6126dd565b9050808382526020820190506020840283018581111561275b5761275a61212b565b5b835b818110156127845780612770888261208b565b84526020840193505060208101905061275d565b5050509392505050565b5f82601f8301126127a2576127a1612123565b5b81356127b2848260208601612726565b91505092915050565b5f604082840312156127d0576127cf61266b565b5b6127da60406126dd565b90505f6127e98482850161208b565b5f83015250602082013567ffffffffffffffff81111561280c5761280b6126f7565b5b6128188482850161278e565b60208301525092915050565b5f6020828403121561283957612838611f8a565b5b5f82013567ffffffffffffffff81111561285657612855611f8e565b5b612862848285016127bb565b91505092915050565b60038110612877575f80fd5b50565b5f813590506128888161286b565b92915050565b5f80fd5b5f67ffffffffffffffff8211156128ac576128ab61267f565b5b6128b58261266f565b9050602081019050919050565b828183375f83830152505050565b5f6128e26128dd84612892565b6126dd565b9050828152602081018484840111156128fe576128fd61288e565b5b6129098482856128c2565b509392505050565b5f82601f83011261292557612924612123565b5b81356129358482602086016128d0565b91505092915050565b5f608082840312156129535761295261266b565b5b61295d60806126dd565b90505f61296c8482850161287a565b5f83015250602061297f8482850161208b565b60208301525060406129938482850161208b565b604083015250606082013567ffffffffffffffff8111156129b7576129b66126f7565b5b6129c384828501612911565b60608301525092915050565b5f602082840312156129e4576129e3611f8a565b5b5f82013567ffffffffffffffff811115612a0157612a00611f8e565b5b612a0d8482850161293e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f81519050612a5181612397565b92915050565b5f60208284031215612a6c57612a6b61266b565b5b612a7660206126dd565b90505f612a8584828501612a43565b5f8301525092915050565b5f60208284031215612aa557612aa4611f8a565b5b5f612ab284828501612a57565b91505092915050565b5f604082019050612ace5f8301856123ff565b612adb60208301846120d3565b9392505050565b8281835e5f83830152505050565b5f612b02612afd84612892565b6126dd565b905082815260208101848484011115612b1e57612b1d61288e565b5b612b29848285612ae2565b509392505050565b5f82601f830112612b4557612b44612123565b5b8151612b55848260208601612af0565b91505092915050565b5f60608284031215612b7357612b7261266b565b5b612b7d60606126dd565b90505f612b8c84828501612a43565b5f830152506020612b9f84828501612a43565b602083015250604082015167ffffffffffffffff811115612bc357612bc26126f7565b5b612bcf84828501612b31565b60408301525092915050565b5f60208284031215612bf057612bef611f8a565b5b5f82015167ffffffffffffffff811115612c0d57612c0c611f8e565b5b612c1984828501612b5e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612c4682612c22565b612c508185612c2c565b9350612c60818560208601612ae2565b612c698161266f565b840191505092915050565b5f60a082019050612c875f8301886123ff565b612c9460208301876123ff565b612ca160408301866120d3565b612cae60608301856120d3565b8181036080830152612cc08184612c3c565b90509695505050505050565b5f60208284031215612ce157612ce0611f8a565b5b5f612cee84828501612a43565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112612d1f57612d1e612cf7565b5b80840192508235915067ffffffffffffffff821115612d4157612d40612cfb565b5b602083019250600182023603831315612d5d57612d5c612cff565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d9c826120ca565b9150612da7836120ca565b9250828201905080821115612dbf57612dbe612d65565b5b92915050565b5f606082019050612dd85f8301866123ff565b612de560208301856120d3565b612df260408301846120d3565b949350505050565b5f606082019050612e0d5f8301866123ff565b612e1a60208301856123ff565b612e2760408301846120d3565b94935050505056fea264697066735822122002d00ba17935017819a7e2a1470d30dfadac5570501674129c5463c07a42cd8764736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2E65 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x169 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x774C33AB GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0xF23A6E61 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xF9A802C3 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xF9A802C3 EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x56C JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x5E4 JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xF8724ABA EQ PUSH2 0x4F4 JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0x774C33AB EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x460 JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0x451CC191 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x61400C99 EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x35C JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x246 JUMPI PUSH2 0x170 JUMP JUMPDEST CALLDATASIZE PUSH2 0x170 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x198 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1CF SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x769 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E1 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F2 PUSH2 0x7D4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x825 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x210A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x244 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x21D9 JUMP JUMPDEST PUSH2 0x84C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x251 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x267 SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0x956 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0xA7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B2 PUSH2 0xA82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E7 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0xB00 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x346 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x341 SWAP2 SWAP1 PUSH2 0x234C JUMP JUMPDEST PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x353 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x364 PUSH2 0xED4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x371 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x38C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x387 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST PUSH2 0xEE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x399 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0xF3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C3 SWAP2 SWAP1 PUSH2 0x240E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x247C JUMP JUMPDEST PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3FF SWAP2 SWAP1 PUSH2 0x210A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x413 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x42E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x429 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0xF7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43B SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x45E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x459 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0xFD4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x481 SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x493 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2553 JUMP JUMPDEST PUSH2 0x11F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CF SWAP2 SWAP1 PUSH2 0x210A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4ED SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x120D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x51A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x515 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x527 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x556 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST PUSH2 0x12B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x592 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58D SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0x1391 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C9 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x163D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x60A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x605 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x16CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xF2A5D5200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6EA JUMPI POP PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x752 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x762 JUMPI POP PUSH2 0x761 DUP3 PUSH2 0x16E5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7CB JUMPI PUSH2 0x7C6 ADDRESS DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x175E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x7DD PUSH2 0x1791 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xF2A5D5200000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x854 PUSH2 0x179B JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x893 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x94F JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x8B3 JUMPI PUSH2 0x8B2 PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8C8 SWAP2 SWAP1 PUSH2 0x2640 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x8DE JUMPI PUSH2 0x8DD PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8F3 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x895 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x95F PUSH2 0x17D2 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x991 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x988 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9A2 SWAP2 SWAP1 PUSH2 0x2824 JUMP JUMPDEST SWAP1 POP PUSH2 0x9B0 DUP2 PUSH0 ADD MLOAD PUSH2 0x17FB JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0xA3F JUMPI PUSH1 0x1 PUSH1 0x2 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x9DB JUMPI PUSH2 0x9DA PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x9B2 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0xA76 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xB11 SWAP2 SWAP1 PUSH2 0x29CF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB25 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB3C JUMPI PUSH2 0xB3B PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xBB2 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB5A SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xBAC JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBC6 JUMPI PUSH2 0xBC5 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBDC JUMPI PUSH2 0xBDB PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xCB7 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBFA SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP PUSH2 0xC34 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x18D1 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xC65 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x175E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xCB1 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA8 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xE63 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xCCA JUMPI PUSH2 0xCC9 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE0 JUMPI PUSH2 0xCDF PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE59 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xCFE SWAP2 SWAP1 PUSH2 0x2BDB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A DUP4 PUSH1 0x40 ADD MLOAD ADDRESS DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD54 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD6B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD7D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC7 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDE2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE06 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST LT ISZERO PUSH2 0xE53 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE4A SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xE62 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xE6A JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xEC8 JUMPI PUSH2 0xEAE DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xE97 JUMPI PUSH2 0xE96 PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xEA9 SWAP2 SWAP1 PUSH2 0x2D03 JUMP JUMPDEST PUSH2 0x1391 JUMP JUMPDEST PUSH2 0xEBB JUMPI PUSH0 SWAP2 POP POP PUSH2 0xECE JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xE76 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEDC PUSH2 0x179B JUMP JUMPDEST PUSH2 0xEE5 PUSH0 PUSH2 0x192B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xFC3 DUP4 PUSH2 0x769 JUMP JUMPDEST PUSH2 0xFCD SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFDC PUSH2 0x179B JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x1002 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x100F DUP2 PUSH2 0x192B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x101B PUSH2 0x179B JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x102B SWAP2 SWAP1 PUSH2 0x29CF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1040 JUMPI PUSH2 0x103F PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1089 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1071 JUMPI PUSH2 0x1070 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1087 JUMPI PUSH2 0x1086 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x10E2 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x10A7 SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP PUSH2 0x10DC DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0x10C9 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x10D6 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x769 JUMP JUMPDEST JUMPDEST PUSH2 0x19F1 JUMP JUMPDEST POP PUSH2 0x11EC JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x10F5 JUMPI PUSH2 0x10F4 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x110B JUMPI PUSH2 0x110A PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x11E2 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1129 SWAP2 SWAP1 PUSH2 0x2BDB JUMP JUMPDEST SWAP1 POP PUSH2 0x11DC DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH0 DUP6 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1151 JUMPI DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x11D2 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP8 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1192 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11AD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11D1 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST JUMPDEST DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x1C09 JUMP JUMPDEST POP PUSH2 0x11EB JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x11F2 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1215 PUSH2 0x179B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x122A JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1233 DUP2 PUSH2 0x192B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1271 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x128C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12B0 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1340 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x135B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x137F SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST PUSH2 0x1389 SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x139B CALLER PUSH2 0x163D JUMP JUMPDEST PUSH2 0x13D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x13E1 SWAP2 SWAP1 PUSH2 0x29CF JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13F7 JUMPI PUSH2 0x13F6 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x140D JUMPI PUSH2 0x140C PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x143F JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1427 JUMPI PUSH2 0x1426 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x143D JUMPI PUSH2 0x143C PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x14DF JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x145D SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x146D DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x769 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH0 ADD MLOAD GT ISZERO PUSH2 0x14C2 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D8 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD PUSH2 0x19F1 JUMP JUMPDEST POP POP PUSH2 0x1631 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x14F2 JUMPI PUSH2 0x14F1 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1508 JUMPI PUSH2 0x1507 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x1627 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1526 SWAP2 SWAP1 PUSH2 0x2BDB JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x156A SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1585 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A9 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x1600 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15F7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1620 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x1C09 JUMP JUMPDEST POP POP PUSH2 0x1630 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x1637 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x16C5 JUMPI POP PUSH2 0x1696 PUSH2 0xF3D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x74009FF100000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1757 JUMPI POP PUSH2 0x1756 DUP3 PUSH2 0x1E35 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x17D0 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1803 PUSH2 0x1EAE JUMP JUMPDEST ISZERO PUSH2 0x187B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x183D JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x18CE JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x191C JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1933 PUSH2 0x1EAE JUMP JUMPDEST ISZERO PUSH2 0x1998 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x19EE JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1A0F JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A8F JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A86 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A98 DUP4 PUSH2 0x769 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1AE8 JUMPI DUP3 PUSH2 0x1AA9 DUP5 PUSH2 0x769 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ADF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1B33 SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B7C JUMPI PUSH2 0x1B77 DUP3 DUP3 PUSH2 0x1EB2 JUMP JUMPDEST PUSH2 0x1BA8 JUMP JUMPDEST PUSH2 0x1BA7 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1ECF SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1BF0 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1C27 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CA7 JUMPI DUP5 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C9E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1CB1 DUP6 DUP5 PUSH2 0x1236 JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1D02 JUMPI DUP5 PUSH2 0x1CC3 DUP7 DUP6 PUSH2 0x1236 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1D5D SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DA5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DBC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DCE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1E1A SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1EA7 JUMPI POP PUSH2 0x1EA6 DUP3 PUSH2 0x1F18 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1ECB JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1F0F JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FC6 DUP2 PUSH2 0x1F92 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FD0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE1 DUP2 PUSH2 0x1FBD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FFC JUMPI PUSH2 0x1FFB PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2009 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2026 DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x203F PUSH0 DUP4 ADD DUP5 PUSH2 0x201D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x206E DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x207E DUP2 PUSH2 0x2064 JUMP JUMPDEST DUP2 EQ PUSH2 0x2088 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2099 DUP2 PUSH2 0x2075 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B4 JUMPI PUSH2 0x20B3 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x20C1 DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20DC DUP2 PUSH2 0x20CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x20F5 PUSH0 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2104 DUP2 PUSH2 0x1F92 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x211D PUSH0 DUP4 ADD DUP5 PUSH2 0x20FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2144 JUMPI PUSH2 0x2143 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2161 JUMPI PUSH2 0x2160 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x217D JUMPI PUSH2 0x217C PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2199 JUMPI PUSH2 0x2198 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21B6 JUMPI PUSH2 0x21B5 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x21D2 JUMPI PUSH2 0x21D1 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x21F1 JUMPI PUSH2 0x21F0 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x220E JUMPI PUSH2 0x220D PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x221A DUP8 DUP3 DUP9 ADD PUSH2 0x212F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223D JUMPI PUSH2 0x223C PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2249 DUP8 DUP3 DUP9 ADD PUSH2 0x2184 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x226C JUMPI PUSH2 0x226B PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x22A5 JUMPI PUSH2 0x22A4 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22C2 JUMPI PUSH2 0x22C1 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22DF JUMPI PUSH2 0x22DE PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x22EB DUP6 DUP3 DUP7 ADD PUSH2 0x2257 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x230C JUMPI PUSH2 0x230B PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2329 JUMPI PUSH2 0x2328 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2345 JUMPI PUSH2 0x2344 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2362 JUMPI PUSH2 0x2361 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x237F JUMPI PUSH2 0x237E PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x238B DUP6 DUP3 DUP7 ADD PUSH2 0x22F7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x23A0 DUP2 PUSH2 0x20CA JUMP JUMPDEST DUP2 EQ PUSH2 0x23AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23BB DUP2 PUSH2 0x2397 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23D7 JUMPI PUSH2 0x23D6 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23E4 DUP6 DUP3 DUP7 ADD PUSH2 0x208B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23F5 DUP6 DUP3 DUP7 ADD PUSH2 0x23AD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2408 DUP2 PUSH2 0x2064 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2421 PUSH0 DUP4 ADD DUP5 PUSH2 0x23FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x243C JUMPI PUSH2 0x243B PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2459 JUMPI PUSH2 0x2458 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2475 JUMPI PUSH2 0x2474 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2498 JUMPI PUSH2 0x2497 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x24A5 DUP12 DUP3 DUP13 ADD PUSH2 0x208B JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x24B6 DUP12 DUP3 DUP13 ADD PUSH2 0x208B JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH2 0x24D6 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x24E3 DUP12 DUP3 DUP13 ADD PUSH2 0x2427 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2506 JUMPI PUSH2 0x2505 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2512 DUP12 DUP3 DUP13 ADD PUSH2 0x2427 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2535 JUMPI PUSH2 0x2534 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2541 DUP12 DUP3 DUP13 ADD PUSH2 0x2257 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x256D JUMPI PUSH2 0x256C PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x257A DUP10 DUP3 DUP11 ADD PUSH2 0x208B JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x258B DUP10 DUP3 DUP11 ADD PUSH2 0x208B JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x259C DUP10 DUP3 DUP11 ADD PUSH2 0x23AD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x25AD DUP10 DUP3 DUP11 ADD PUSH2 0x23AD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25CE JUMPI PUSH2 0x25CD PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x25DA DUP10 DUP3 DUP11 ADD PUSH2 0x2257 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x261F DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP2 EQ PUSH2 0x2629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x263A DUP2 PUSH2 0x2616 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2655 JUMPI PUSH2 0x2654 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2662 DUP5 DUP3 DUP6 ADD PUSH2 0x262C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x26B5 DUP3 PUSH2 0x266F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x26D4 JUMPI PUSH2 0x26D3 PUSH2 0x267F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x26E6 PUSH2 0x1F81 JUMP JUMPDEST SWAP1 POP PUSH2 0x26F2 DUP3 DUP3 PUSH2 0x26AC JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2715 JUMPI PUSH2 0x2714 PUSH2 0x267F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2738 PUSH2 0x2733 DUP5 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x275B JUMPI PUSH2 0x275A PUSH2 0x212B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2784 JUMPI DUP1 PUSH2 0x2770 DUP9 DUP3 PUSH2 0x208B JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x275D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27A2 JUMPI PUSH2 0x27A1 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27B2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2726 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27D0 JUMPI PUSH2 0x27CF PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x27DA PUSH1 0x40 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x27E9 DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x280C JUMPI PUSH2 0x280B PUSH2 0x26F7 JUMP JUMPDEST JUMPDEST PUSH2 0x2818 DUP5 DUP3 DUP6 ADD PUSH2 0x278E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2839 JUMPI PUSH2 0x2838 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2856 JUMPI PUSH2 0x2855 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2862 DUP5 DUP3 DUP6 ADD PUSH2 0x27BB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2877 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2888 DUP2 PUSH2 0x286B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28AC JUMPI PUSH2 0x28AB PUSH2 0x267F JUMP JUMPDEST JUMPDEST PUSH2 0x28B5 DUP3 PUSH2 0x266F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x28E2 PUSH2 0x28DD DUP5 PUSH2 0x2892 JUMP JUMPDEST PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x28FE JUMPI PUSH2 0x28FD PUSH2 0x288E JUMP JUMPDEST JUMPDEST PUSH2 0x2909 DUP5 DUP3 DUP6 PUSH2 0x28C2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2925 JUMPI PUSH2 0x2924 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2935 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x28D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2953 JUMPI PUSH2 0x2952 PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x295D PUSH1 0x80 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x296C DUP5 DUP3 DUP6 ADD PUSH2 0x287A JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x297F DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2993 DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29B7 JUMPI PUSH2 0x29B6 PUSH2 0x26F7 JUMP JUMPDEST JUMPDEST PUSH2 0x29C3 DUP5 DUP3 DUP6 ADD PUSH2 0x2911 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29E4 JUMPI PUSH2 0x29E3 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A01 JUMPI PUSH2 0x2A00 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2A0D DUP5 DUP3 DUP6 ADD PUSH2 0x293E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2A51 DUP2 PUSH2 0x2397 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A6C JUMPI PUSH2 0x2A6B PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x2A76 PUSH1 0x20 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A85 DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA5 JUMPI PUSH2 0x2AA4 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2AB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2A57 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2ACE PUSH0 DUP4 ADD DUP6 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2ADB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2B02 PUSH2 0x2AFD DUP5 PUSH2 0x2892 JUMP JUMPDEST PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2B1E JUMPI PUSH2 0x2B1D PUSH2 0x288E JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 PUSH2 0x2AE2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B45 JUMPI PUSH2 0x2B44 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2B55 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2AF0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B73 JUMPI PUSH2 0x2B72 PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x2B7D PUSH1 0x60 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2B8C DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2B9F DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BC3 JUMPI PUSH2 0x2BC2 PUSH2 0x26F7 JUMP JUMPDEST JUMPDEST PUSH2 0x2BCF DUP5 DUP3 DUP6 ADD PUSH2 0x2B31 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BF0 JUMPI PUSH2 0x2BEF PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C0D JUMPI PUSH2 0x2C0C PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2C19 DUP5 DUP3 DUP6 ADD PUSH2 0x2B5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C46 DUP3 PUSH2 0x2C22 JUMP JUMPDEST PUSH2 0x2C50 DUP2 DUP6 PUSH2 0x2C2C JUMP JUMPDEST SWAP4 POP PUSH2 0x2C60 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2AE2 JUMP JUMPDEST PUSH2 0x2C69 DUP2 PUSH2 0x266F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2C87 PUSH0 DUP4 ADD DUP9 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2C94 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2CA1 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x20D3 JUMP JUMPDEST PUSH2 0x2CAE PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x20D3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2CC0 DUP2 DUP5 PUSH2 0x2C3C JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CE1 JUMPI PUSH2 0x2CE0 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2CEE DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2D1F JUMPI PUSH2 0x2D1E PUSH2 0x2CF7 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D41 JUMPI PUSH2 0x2D40 PUSH2 0x2CFB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x2D5D JUMPI PUSH2 0x2D5C PUSH2 0x2CFF JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2D9C DUP3 PUSH2 0x20CA JUMP JUMPDEST SWAP2 POP PUSH2 0x2DA7 DUP4 PUSH2 0x20CA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DBF JUMPI PUSH2 0x2DBE PUSH2 0x2D65 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2DD8 PUSH0 DUP4 ADD DUP7 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2DE5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x20D3 JUMP JUMPDEST PUSH2 0x2DF2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2E0D PUSH0 DUP4 ADD DUP7 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2E1A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2E27 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL 0xD0 SIGNEXTEND LOG1 PUSH26 0x35017819A7E2A1470D30DFADAC5570501674129C5463C07A42CD DUP8 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"338:942:43:-:0;;;766:53;;;;;;;;;;2707:28:42;2724:10;2707:16;;;:28;;:::i;:::-;790:22:43;:20;;;:22;;:::i;:::-;338:942;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;338:942:43:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_15651":{"entryPoint":null,"id":15651,"parameterSlots":0,"returnSlots":0},"@_15658":{"entryPoint":null,"id":15658,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6308":{"entryPoint":6043,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":7854,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":6098,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":6139,"id":6288,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6319":{"entryPoint":6033,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":6443,"id":6302,"parameterSlots":1,"returnSlots":0},"@_transferERC1155_14624":{"entryPoint":7177,"id":14624,"parameterSlots":5,"returnSlots":0},"@_transferFungible_14550":{"entryPoint":6641,"id":14550,"parameterSlots":3,"returnSlots":0},"@allocate_13973":{"entryPoint":2816,"id":13973,"parameterSlots":2,"returnSlots":1},"@available_14409":{"entryPoint":1897,"id":14409,"parameterSlots":1,"returnSlots":1},"@available_14431":{"entryPoint":4662,"id":14431,"parameterSlots":2,"returnSlots":1},"@balanceOf_11253":{"entryPoint":5982,"id":11253,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6368":{"entryPoint":2690,"id":6368,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":4052,"id":6382,"parameterSlots":1,"returnSlots":0},"@disburseBatch_14266":{"entryPoint":3696,"id":14266,"parameterSlots":2,"returnSlots":1},"@disburse_14231":{"entryPoint":5009,"id":14231,"parameterSlots":2,"returnSlots":1},"@distributed_14445":{"entryPoint":2747,"id":14445,"parameterSlots":1,"returnSlots":1},"@distributed_14462":{"entryPoint":3815,"id":14462,"parameterSlots":2,"returnSlots":1},"@getComponentInterface_14721":{"entryPoint":2085,"id":14721,"parameterSlots":0,"returnSlots":1},"@initialize_15729":{"entryPoint":2390,"id":15729,"parameterSlots":2,"returnSlots":0},"@isAuthorized_14333":{"entryPoint":5693,"id":14333,"parameterSlots":1,"returnSlots":1},"@onERC1155BatchReceived_14670":{"entryPoint":3941,"id":14670,"parameterSlots":8,"returnSlots":1},"@onERC1155Received_14646":{"entryPoint":4600,"id":14646,"parameterSlots":6,"returnSlots":1},"@owner_6390":{"entryPoint":3901,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":5836,"id":6400,"parameterSlots":1,"returnSlots":1},"@reclaim_14090":{"entryPoint":4114,"id":14090,"parameterSlots":2,"returnSlots":1},"@reconcile_14474":{"entryPoint":2683,"id":14474,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":3796,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":2004,"id":6362,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11075":{"entryPoint":7858,"id":11075,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_11163":{"entryPoint":6353,"id":11163,"parameterSlots":4,"returnSlots":0},"@safeTransfer_11205":{"entryPoint":7887,"id":11205,"parameterSlots":3,"returnSlots":0},"@setAuthorized_14314":{"entryPoint":2124,"id":14314,"parameterSlots":4,"returnSlots":0},"@supportsInterface_14708":{"entryPoint":1568,"id":14708,"parameterSlots":1,"returnSlots":1},"@supportsInterface_15644":{"entryPoint":5861,"id":15644,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":7733,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":7960,"id":2830,"parameterSlots":1,"returnSlots":1},"@total_14351":{"entryPoint":3964,"id":14351,"parameterSlots":1,"returnSlots":1},"@total_14379":{"entryPoint":4792,"id":14379,"parameterSlots":2,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":4621,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":10022,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":10448,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr_fromMemory":{"entryPoint":10992,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":8331,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":8495,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":10126,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":8580,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":8951,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":9255,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":9772,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":8147,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":8791,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":10513,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr_fromMemory":{"entryPoint":11057,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_AssetType_$15450":{"entryPoint":10362,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory":{"entryPoint":11102,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory":{"entryPoint":10839,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$15673_memory_ptr":{"entryPoint":10171,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Transfer_$15461_memory_ptr":{"entryPoint":10558,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":9133,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":10819,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":8351,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":9340,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr":{"entryPoint":9555,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":9153,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":8665,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":9036,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":9792,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":8167,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":8876,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory":{"entryPoint":11227,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory":{"entryPoint":10896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$15673_memory_ptr":{"entryPoint":10276,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Transfer_$15461_memory_ptr":{"entryPoint":10703,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":11468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":9215,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":8221,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":8443,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":11324,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":8403,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":9230,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":11770,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":11380,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":10939,"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":11717,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":8236,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":8458,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":8418,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":11523,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":9949,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":8065,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":9979,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":10386,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":11298,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":11308,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":11666,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":8292,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":8210,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":8082,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":8261,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":8394,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":10434,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":10978,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":9900,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":11621,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":10774,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":9705,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":9855,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":8487,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":8483,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":11515,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":9835,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":11511,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":9975,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":8491,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":11519,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":10382,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":8078,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":8074,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":9839,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":8309,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":9750,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":8125,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_AssetType_$15450":{"entryPoint":10347,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":9111,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:28454:64","nodeType":"YulBlock","src":"0:28454:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:81:64","nodeType":"YulBlock","src":"1563:81:64","statements":[{"nativeSrc":"1573:65:64","nodeType":"YulAssignment","src":"1573:65:64","value":{"arguments":[{"name":"value","nativeSrc":"1588:5:64","nodeType":"YulIdentifier","src":"1588:5:64"},{"kind":"number","nativeSrc":"1595:42:64","nodeType":"YulLiteral","src":"1595:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1584:3:64","nodeType":"YulIdentifier","src":"1584:3:64"},"nativeSrc":"1584:54:64","nodeType":"YulFunctionCall","src":"1584:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1518:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:126:64"},{"body":{"nativeSrc":"1695:51:64","nodeType":"YulBlock","src":"1695:51:64","statements":[{"nativeSrc":"1705:35:64","nodeType":"YulAssignment","src":"1705:35:64","value":{"arguments":[{"name":"value","nativeSrc":"1734:5:64","nodeType":"YulIdentifier","src":"1734:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1716:17:64","nodeType":"YulIdentifier","src":"1716:17:64"},"nativeSrc":"1716:24:64","nodeType":"YulFunctionCall","src":"1716:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1705:7:64","nodeType":"YulIdentifier","src":"1705:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"1650:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1677:5:64","nodeType":"YulTypedName","src":"1677:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1687:7:64","nodeType":"YulTypedName","src":"1687:7:64","type":""}],"src":"1650:96:64"},{"body":{"nativeSrc":"1795:79:64","nodeType":"YulBlock","src":"1795:79:64","statements":[{"body":{"nativeSrc":"1852:16:64","nodeType":"YulBlock","src":"1852:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1861:1:64","nodeType":"YulLiteral","src":"1861:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1864:1:64","nodeType":"YulLiteral","src":"1864:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1854:6:64","nodeType":"YulIdentifier","src":"1854:6:64"},"nativeSrc":"1854:12:64","nodeType":"YulFunctionCall","src":"1854:12:64"},"nativeSrc":"1854:12:64","nodeType":"YulExpressionStatement","src":"1854:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1818:5:64","nodeType":"YulIdentifier","src":"1818:5:64"},{"arguments":[{"name":"value","nativeSrc":"1843:5:64","nodeType":"YulIdentifier","src":"1843:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1825:17:64","nodeType":"YulIdentifier","src":"1825:17:64"},"nativeSrc":"1825:24:64","nodeType":"YulFunctionCall","src":"1825:24:64"}],"functionName":{"name":"eq","nativeSrc":"1815:2:64","nodeType":"YulIdentifier","src":"1815:2:64"},"nativeSrc":"1815:35:64","nodeType":"YulFunctionCall","src":"1815:35:64"}],"functionName":{"name":"iszero","nativeSrc":"1808:6:64","nodeType":"YulIdentifier","src":"1808:6:64"},"nativeSrc":"1808:43:64","nodeType":"YulFunctionCall","src":"1808:43:64"},"nativeSrc":"1805:63:64","nodeType":"YulIf","src":"1805:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"1752:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1788:5:64","nodeType":"YulTypedName","src":"1788:5:64","type":""}],"src":"1752:122:64"},{"body":{"nativeSrc":"1932:87:64","nodeType":"YulBlock","src":"1932:87:64","statements":[{"nativeSrc":"1942:29:64","nodeType":"YulAssignment","src":"1942:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"1964:6:64","nodeType":"YulIdentifier","src":"1964:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"1951:12:64","nodeType":"YulIdentifier","src":"1951:12:64"},"nativeSrc":"1951:20:64","nodeType":"YulFunctionCall","src":"1951:20:64"},"variableNames":[{"name":"value","nativeSrc":"1942:5:64","nodeType":"YulIdentifier","src":"1942:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2007:5:64","nodeType":"YulIdentifier","src":"2007:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"1980:26:64","nodeType":"YulIdentifier","src":"1980:26:64"},"nativeSrc":"1980:33:64","nodeType":"YulFunctionCall","src":"1980:33:64"},"nativeSrc":"1980:33:64","nodeType":"YulExpressionStatement","src":"1980:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"1880:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1910:6:64","nodeType":"YulTypedName","src":"1910:6:64","type":""},{"name":"end","nativeSrc":"1918:3:64","nodeType":"YulTypedName","src":"1918:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1926:5:64","nodeType":"YulTypedName","src":"1926:5:64","type":""}],"src":"1880:139:64"},{"body":{"nativeSrc":"2091:263:64","nodeType":"YulBlock","src":"2091:263:64","statements":[{"body":{"nativeSrc":"2137:83:64","nodeType":"YulBlock","src":"2137:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2139:77:64","nodeType":"YulIdentifier","src":"2139:77:64"},"nativeSrc":"2139:79:64","nodeType":"YulFunctionCall","src":"2139:79:64"},"nativeSrc":"2139:79:64","nodeType":"YulExpressionStatement","src":"2139:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2112:7:64","nodeType":"YulIdentifier","src":"2112:7:64"},{"name":"headStart","nativeSrc":"2121:9:64","nodeType":"YulIdentifier","src":"2121:9:64"}],"functionName":{"name":"sub","nativeSrc":"2108:3:64","nodeType":"YulIdentifier","src":"2108:3:64"},"nativeSrc":"2108:23:64","nodeType":"YulFunctionCall","src":"2108:23:64"},{"kind":"number","nativeSrc":"2133:2:64","nodeType":"YulLiteral","src":"2133:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2104:3:64","nodeType":"YulIdentifier","src":"2104:3:64"},"nativeSrc":"2104:32:64","nodeType":"YulFunctionCall","src":"2104:32:64"},"nativeSrc":"2101:119:64","nodeType":"YulIf","src":"2101:119:64"},{"nativeSrc":"2230:117:64","nodeType":"YulBlock","src":"2230:117:64","statements":[{"nativeSrc":"2245:15:64","nodeType":"YulVariableDeclaration","src":"2245:15:64","value":{"kind":"number","nativeSrc":"2259:1:64","nodeType":"YulLiteral","src":"2259:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2249:6:64","nodeType":"YulTypedName","src":"2249:6:64","type":""}]},{"nativeSrc":"2274:63:64","nodeType":"YulAssignment","src":"2274:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2309:9:64","nodeType":"YulIdentifier","src":"2309:9:64"},{"name":"offset","nativeSrc":"2320:6:64","nodeType":"YulIdentifier","src":"2320:6:64"}],"functionName":{"name":"add","nativeSrc":"2305:3:64","nodeType":"YulIdentifier","src":"2305:3:64"},"nativeSrc":"2305:22:64","nodeType":"YulFunctionCall","src":"2305:22:64"},{"name":"dataEnd","nativeSrc":"2329:7:64","nodeType":"YulIdentifier","src":"2329:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2284:20:64","nodeType":"YulIdentifier","src":"2284:20:64"},"nativeSrc":"2284:53:64","nodeType":"YulFunctionCall","src":"2284:53:64"},"variableNames":[{"name":"value0","nativeSrc":"2274:6:64","nodeType":"YulIdentifier","src":"2274:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2025:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2061:9:64","nodeType":"YulTypedName","src":"2061:9:64","type":""},{"name":"dataEnd","nativeSrc":"2072:7:64","nodeType":"YulTypedName","src":"2072:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2084:6:64","nodeType":"YulTypedName","src":"2084:6:64","type":""}],"src":"2025:329:64"},{"body":{"nativeSrc":"2405:32:64","nodeType":"YulBlock","src":"2405:32:64","statements":[{"nativeSrc":"2415:16:64","nodeType":"YulAssignment","src":"2415:16:64","value":{"name":"value","nativeSrc":"2426:5:64","nodeType":"YulIdentifier","src":"2426:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2415:7:64","nodeType":"YulIdentifier","src":"2415:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2360:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2387:5:64","nodeType":"YulTypedName","src":"2387:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2397:7:64","nodeType":"YulTypedName","src":"2397:7:64","type":""}],"src":"2360:77:64"},{"body":{"nativeSrc":"2508:53:64","nodeType":"YulBlock","src":"2508:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2525:3:64","nodeType":"YulIdentifier","src":"2525:3:64"},{"arguments":[{"name":"value","nativeSrc":"2548:5:64","nodeType":"YulIdentifier","src":"2548:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2530:17:64","nodeType":"YulIdentifier","src":"2530:17:64"},"nativeSrc":"2530:24:64","nodeType":"YulFunctionCall","src":"2530:24:64"}],"functionName":{"name":"mstore","nativeSrc":"2518:6:64","nodeType":"YulIdentifier","src":"2518:6:64"},"nativeSrc":"2518:37:64","nodeType":"YulFunctionCall","src":"2518:37:64"},"nativeSrc":"2518:37:64","nodeType":"YulExpressionStatement","src":"2518:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2443:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2496:5:64","nodeType":"YulTypedName","src":"2496:5:64","type":""},{"name":"pos","nativeSrc":"2503:3:64","nodeType":"YulTypedName","src":"2503:3:64","type":""}],"src":"2443:118:64"},{"body":{"nativeSrc":"2665:124:64","nodeType":"YulBlock","src":"2665:124:64","statements":[{"nativeSrc":"2675:26:64","nodeType":"YulAssignment","src":"2675:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2687:9:64","nodeType":"YulIdentifier","src":"2687:9:64"},{"kind":"number","nativeSrc":"2698:2:64","nodeType":"YulLiteral","src":"2698:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2683:3:64","nodeType":"YulIdentifier","src":"2683:3:64"},"nativeSrc":"2683:18:64","nodeType":"YulFunctionCall","src":"2683:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2675:4:64","nodeType":"YulIdentifier","src":"2675:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2755:6:64","nodeType":"YulIdentifier","src":"2755:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2768:9:64","nodeType":"YulIdentifier","src":"2768:9:64"},{"kind":"number","nativeSrc":"2779:1:64","nodeType":"YulLiteral","src":"2779:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2764:3:64","nodeType":"YulIdentifier","src":"2764:3:64"},"nativeSrc":"2764:17:64","nodeType":"YulFunctionCall","src":"2764:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2711:43:64","nodeType":"YulIdentifier","src":"2711:43:64"},"nativeSrc":"2711:71:64","nodeType":"YulFunctionCall","src":"2711:71:64"},"nativeSrc":"2711:71:64","nodeType":"YulExpressionStatement","src":"2711:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"2567:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2637:9:64","nodeType":"YulTypedName","src":"2637:9:64","type":""},{"name":"value0","nativeSrc":"2649:6:64","nodeType":"YulTypedName","src":"2649:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2660:4:64","nodeType":"YulTypedName","src":"2660:4:64","type":""}],"src":"2567:222:64"},{"body":{"nativeSrc":"2858:52:64","nodeType":"YulBlock","src":"2858:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2875:3:64","nodeType":"YulIdentifier","src":"2875:3:64"},{"arguments":[{"name":"value","nativeSrc":"2897:5:64","nodeType":"YulIdentifier","src":"2897:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2880:16:64","nodeType":"YulIdentifier","src":"2880:16:64"},"nativeSrc":"2880:23:64","nodeType":"YulFunctionCall","src":"2880:23:64"}],"functionName":{"name":"mstore","nativeSrc":"2868:6:64","nodeType":"YulIdentifier","src":"2868:6:64"},"nativeSrc":"2868:36:64","nodeType":"YulFunctionCall","src":"2868:36:64"},"nativeSrc":"2868:36:64","nodeType":"YulExpressionStatement","src":"2868:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"2795:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2846:5:64","nodeType":"YulTypedName","src":"2846:5:64","type":""},{"name":"pos","nativeSrc":"2853:3:64","nodeType":"YulTypedName","src":"2853:3:64","type":""}],"src":"2795:115:64"},{"body":{"nativeSrc":"3012:122:64","nodeType":"YulBlock","src":"3012:122:64","statements":[{"nativeSrc":"3022:26:64","nodeType":"YulAssignment","src":"3022:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3034:9:64","nodeType":"YulIdentifier","src":"3034:9:64"},{"kind":"number","nativeSrc":"3045:2:64","nodeType":"YulLiteral","src":"3045:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3030:3:64","nodeType":"YulIdentifier","src":"3030:3:64"},"nativeSrc":"3030:18:64","nodeType":"YulFunctionCall","src":"3030:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3022:4:64","nodeType":"YulIdentifier","src":"3022:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3100:6:64","nodeType":"YulIdentifier","src":"3100:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3113:9:64","nodeType":"YulIdentifier","src":"3113:9:64"},{"kind":"number","nativeSrc":"3124:1:64","nodeType":"YulLiteral","src":"3124:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3109:3:64","nodeType":"YulIdentifier","src":"3109:3:64"},"nativeSrc":"3109:17:64","nodeType":"YulFunctionCall","src":"3109:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"3058:41:64","nodeType":"YulIdentifier","src":"3058:41:64"},"nativeSrc":"3058:69:64","nodeType":"YulFunctionCall","src":"3058:69:64"},"nativeSrc":"3058:69:64","nodeType":"YulExpressionStatement","src":"3058:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"2916:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2984:9:64","nodeType":"YulTypedName","src":"2984:9:64","type":""},{"name":"value0","nativeSrc":"2996:6:64","nodeType":"YulTypedName","src":"2996:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3007:4:64","nodeType":"YulTypedName","src":"3007:4:64","type":""}],"src":"2916:218:64"},{"body":{"nativeSrc":"3229:28:64","nodeType":"YulBlock","src":"3229:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3246:1:64","nodeType":"YulLiteral","src":"3246:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3249:1:64","nodeType":"YulLiteral","src":"3249:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3239:6:64","nodeType":"YulIdentifier","src":"3239:6:64"},"nativeSrc":"3239:12:64","nodeType":"YulFunctionCall","src":"3239:12:64"},"nativeSrc":"3239:12:64","nodeType":"YulExpressionStatement","src":"3239:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3140:117:64","nodeType":"YulFunctionDefinition","src":"3140:117:64"},{"body":{"nativeSrc":"3352:28:64","nodeType":"YulBlock","src":"3352:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3369:1:64","nodeType":"YulLiteral","src":"3369:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3372:1:64","nodeType":"YulLiteral","src":"3372:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3362:6:64","nodeType":"YulIdentifier","src":"3362:6:64"},"nativeSrc":"3362:12:64","nodeType":"YulFunctionCall","src":"3362:12:64"},"nativeSrc":"3362:12:64","nodeType":"YulExpressionStatement","src":"3362:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3263:117:64","nodeType":"YulFunctionDefinition","src":"3263:117:64"},{"body":{"nativeSrc":"3475:28:64","nodeType":"YulBlock","src":"3475:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3492:1:64","nodeType":"YulLiteral","src":"3492:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3495:1:64","nodeType":"YulLiteral","src":"3495:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3485:6:64","nodeType":"YulIdentifier","src":"3485:6:64"},"nativeSrc":"3485:12:64","nodeType":"YulFunctionCall","src":"3485:12:64"},"nativeSrc":"3485:12:64","nodeType":"YulExpressionStatement","src":"3485:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3386:117:64","nodeType":"YulFunctionDefinition","src":"3386:117:64"},{"body":{"nativeSrc":"3616:478:64","nodeType":"YulBlock","src":"3616:478:64","statements":[{"body":{"nativeSrc":"3665:83:64","nodeType":"YulBlock","src":"3665:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3667:77:64","nodeType":"YulIdentifier","src":"3667:77:64"},"nativeSrc":"3667:79:64","nodeType":"YulFunctionCall","src":"3667:79:64"},"nativeSrc":"3667:79:64","nodeType":"YulExpressionStatement","src":"3667:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3644:6:64","nodeType":"YulIdentifier","src":"3644:6:64"},{"kind":"number","nativeSrc":"3652:4:64","nodeType":"YulLiteral","src":"3652:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3640:3:64","nodeType":"YulIdentifier","src":"3640:3:64"},"nativeSrc":"3640:17:64","nodeType":"YulFunctionCall","src":"3640:17:64"},{"name":"end","nativeSrc":"3659:3:64","nodeType":"YulIdentifier","src":"3659:3:64"}],"functionName":{"name":"slt","nativeSrc":"3636:3:64","nodeType":"YulIdentifier","src":"3636:3:64"},"nativeSrc":"3636:27:64","nodeType":"YulFunctionCall","src":"3636:27:64"}],"functionName":{"name":"iszero","nativeSrc":"3629:6:64","nodeType":"YulIdentifier","src":"3629:6:64"},"nativeSrc":"3629:35:64","nodeType":"YulFunctionCall","src":"3629:35:64"},"nativeSrc":"3626:122:64","nodeType":"YulIf","src":"3626:122:64"},{"nativeSrc":"3757:30:64","nodeType":"YulAssignment","src":"3757:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"3780:6:64","nodeType":"YulIdentifier","src":"3780:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"3767:12:64","nodeType":"YulIdentifier","src":"3767:12:64"},"nativeSrc":"3767:20:64","nodeType":"YulFunctionCall","src":"3767:20:64"},"variableNames":[{"name":"length","nativeSrc":"3757:6:64","nodeType":"YulIdentifier","src":"3757:6:64"}]},{"body":{"nativeSrc":"3830:83:64","nodeType":"YulBlock","src":"3830:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3832:77:64","nodeType":"YulIdentifier","src":"3832:77:64"},"nativeSrc":"3832:79:64","nodeType":"YulFunctionCall","src":"3832:79:64"},"nativeSrc":"3832:79:64","nodeType":"YulExpressionStatement","src":"3832:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3802:6:64","nodeType":"YulIdentifier","src":"3802:6:64"},{"kind":"number","nativeSrc":"3810:18:64","nodeType":"YulLiteral","src":"3810:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3799:2:64","nodeType":"YulIdentifier","src":"3799:2:64"},"nativeSrc":"3799:30:64","nodeType":"YulFunctionCall","src":"3799:30:64"},"nativeSrc":"3796:117:64","nodeType":"YulIf","src":"3796:117:64"},{"nativeSrc":"3922:29:64","nodeType":"YulAssignment","src":"3922:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"3938:6:64","nodeType":"YulIdentifier","src":"3938:6:64"},{"kind":"number","nativeSrc":"3946:4:64","nodeType":"YulLiteral","src":"3946:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3934:3:64","nodeType":"YulIdentifier","src":"3934:3:64"},"nativeSrc":"3934:17:64","nodeType":"YulFunctionCall","src":"3934:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"3922:8:64","nodeType":"YulIdentifier","src":"3922:8:64"}]},{"body":{"nativeSrc":"4005:83:64","nodeType":"YulBlock","src":"4005:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4007:77:64","nodeType":"YulIdentifier","src":"4007:77:64"},"nativeSrc":"4007:79:64","nodeType":"YulFunctionCall","src":"4007:79:64"},"nativeSrc":"4007:79:64","nodeType":"YulExpressionStatement","src":"4007:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3970:8:64","nodeType":"YulIdentifier","src":"3970:8:64"},{"arguments":[{"name":"length","nativeSrc":"3984:6:64","nodeType":"YulIdentifier","src":"3984:6:64"},{"kind":"number","nativeSrc":"3992:4:64","nodeType":"YulLiteral","src":"3992:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3980:3:64","nodeType":"YulIdentifier","src":"3980:3:64"},"nativeSrc":"3980:17:64","nodeType":"YulFunctionCall","src":"3980:17:64"}],"functionName":{"name":"add","nativeSrc":"3966:3:64","nodeType":"YulIdentifier","src":"3966:3:64"},"nativeSrc":"3966:32:64","nodeType":"YulFunctionCall","src":"3966:32:64"},{"name":"end","nativeSrc":"4000:3:64","nodeType":"YulIdentifier","src":"4000:3:64"}],"functionName":{"name":"gt","nativeSrc":"3963:2:64","nodeType":"YulIdentifier","src":"3963:2:64"},"nativeSrc":"3963:41:64","nodeType":"YulFunctionCall","src":"3963:41:64"},"nativeSrc":"3960:128:64","nodeType":"YulIf","src":"3960:128:64"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3526:568:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3583:6:64","nodeType":"YulTypedName","src":"3583:6:64","type":""},{"name":"end","nativeSrc":"3591:3:64","nodeType":"YulTypedName","src":"3591:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3599:8:64","nodeType":"YulTypedName","src":"3599:8:64","type":""},{"name":"length","nativeSrc":"3609:6:64","nodeType":"YulTypedName","src":"3609:6:64","type":""}],"src":"3526:568:64"},{"body":{"nativeSrc":"4201:478:64","nodeType":"YulBlock","src":"4201:478:64","statements":[{"body":{"nativeSrc":"4250:83:64","nodeType":"YulBlock","src":"4250:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4252:77:64","nodeType":"YulIdentifier","src":"4252:77:64"},"nativeSrc":"4252:79:64","nodeType":"YulFunctionCall","src":"4252:79:64"},"nativeSrc":"4252:79:64","nodeType":"YulExpressionStatement","src":"4252:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4229:6:64","nodeType":"YulIdentifier","src":"4229:6:64"},{"kind":"number","nativeSrc":"4237:4:64","nodeType":"YulLiteral","src":"4237:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4225:3:64","nodeType":"YulIdentifier","src":"4225:3:64"},"nativeSrc":"4225:17:64","nodeType":"YulFunctionCall","src":"4225:17:64"},{"name":"end","nativeSrc":"4244:3:64","nodeType":"YulIdentifier","src":"4244:3:64"}],"functionName":{"name":"slt","nativeSrc":"4221:3:64","nodeType":"YulIdentifier","src":"4221:3:64"},"nativeSrc":"4221:27:64","nodeType":"YulFunctionCall","src":"4221:27:64"}],"functionName":{"name":"iszero","nativeSrc":"4214:6:64","nodeType":"YulIdentifier","src":"4214:6:64"},"nativeSrc":"4214:35:64","nodeType":"YulFunctionCall","src":"4214:35:64"},"nativeSrc":"4211:122:64","nodeType":"YulIf","src":"4211:122:64"},{"nativeSrc":"4342:30:64","nodeType":"YulAssignment","src":"4342:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"4365:6:64","nodeType":"YulIdentifier","src":"4365:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4352:12:64","nodeType":"YulIdentifier","src":"4352:12:64"},"nativeSrc":"4352:20:64","nodeType":"YulFunctionCall","src":"4352:20:64"},"variableNames":[{"name":"length","nativeSrc":"4342:6:64","nodeType":"YulIdentifier","src":"4342:6:64"}]},{"body":{"nativeSrc":"4415:83:64","nodeType":"YulBlock","src":"4415:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4417:77:64","nodeType":"YulIdentifier","src":"4417:77:64"},"nativeSrc":"4417:79:64","nodeType":"YulFunctionCall","src":"4417:79:64"},"nativeSrc":"4417:79:64","nodeType":"YulExpressionStatement","src":"4417:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4387:6:64","nodeType":"YulIdentifier","src":"4387:6:64"},{"kind":"number","nativeSrc":"4395:18:64","nodeType":"YulLiteral","src":"4395:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4384:2:64","nodeType":"YulIdentifier","src":"4384:2:64"},"nativeSrc":"4384:30:64","nodeType":"YulFunctionCall","src":"4384:30:64"},"nativeSrc":"4381:117:64","nodeType":"YulIf","src":"4381:117:64"},{"nativeSrc":"4507:29:64","nodeType":"YulAssignment","src":"4507:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4523:6:64","nodeType":"YulIdentifier","src":"4523:6:64"},{"kind":"number","nativeSrc":"4531:4:64","nodeType":"YulLiteral","src":"4531:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4519:3:64","nodeType":"YulIdentifier","src":"4519:3:64"},"nativeSrc":"4519:17:64","nodeType":"YulFunctionCall","src":"4519:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"4507:8:64","nodeType":"YulIdentifier","src":"4507:8:64"}]},{"body":{"nativeSrc":"4590:83:64","nodeType":"YulBlock","src":"4590:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4592:77:64","nodeType":"YulIdentifier","src":"4592:77:64"},"nativeSrc":"4592:79:64","nodeType":"YulFunctionCall","src":"4592:79:64"},"nativeSrc":"4592:79:64","nodeType":"YulExpressionStatement","src":"4592:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4555:8:64","nodeType":"YulIdentifier","src":"4555:8:64"},{"arguments":[{"name":"length","nativeSrc":"4569:6:64","nodeType":"YulIdentifier","src":"4569:6:64"},{"kind":"number","nativeSrc":"4577:4:64","nodeType":"YulLiteral","src":"4577:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4565:3:64","nodeType":"YulIdentifier","src":"4565:3:64"},"nativeSrc":"4565:17:64","nodeType":"YulFunctionCall","src":"4565:17:64"}],"functionName":{"name":"add","nativeSrc":"4551:3:64","nodeType":"YulIdentifier","src":"4551:3:64"},"nativeSrc":"4551:32:64","nodeType":"YulFunctionCall","src":"4551:32:64"},{"name":"end","nativeSrc":"4585:3:64","nodeType":"YulIdentifier","src":"4585:3:64"}],"functionName":{"name":"gt","nativeSrc":"4548:2:64","nodeType":"YulIdentifier","src":"4548:2:64"},"nativeSrc":"4548:41:64","nodeType":"YulFunctionCall","src":"4548:41:64"},"nativeSrc":"4545:128:64","nodeType":"YulIf","src":"4545:128:64"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4114:565:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4168:6:64","nodeType":"YulTypedName","src":"4168:6:64","type":""},{"name":"end","nativeSrc":"4176:3:64","nodeType":"YulTypedName","src":"4176:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4184:8:64","nodeType":"YulTypedName","src":"4184:8:64","type":""},{"name":"length","nativeSrc":"4194:6:64","nodeType":"YulTypedName","src":"4194:6:64","type":""}],"src":"4114:565:64"},{"body":{"nativeSrc":"4835:778:64","nodeType":"YulBlock","src":"4835:778:64","statements":[{"body":{"nativeSrc":"4881:83:64","nodeType":"YulBlock","src":"4881:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4883:77:64","nodeType":"YulIdentifier","src":"4883:77:64"},"nativeSrc":"4883:79:64","nodeType":"YulFunctionCall","src":"4883:79:64"},"nativeSrc":"4883:79:64","nodeType":"YulExpressionStatement","src":"4883:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4856:7:64","nodeType":"YulIdentifier","src":"4856:7:64"},{"name":"headStart","nativeSrc":"4865:9:64","nodeType":"YulIdentifier","src":"4865:9:64"}],"functionName":{"name":"sub","nativeSrc":"4852:3:64","nodeType":"YulIdentifier","src":"4852:3:64"},"nativeSrc":"4852:23:64","nodeType":"YulFunctionCall","src":"4852:23:64"},{"kind":"number","nativeSrc":"4877:2:64","nodeType":"YulLiteral","src":"4877:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4848:3:64","nodeType":"YulIdentifier","src":"4848:3:64"},"nativeSrc":"4848:32:64","nodeType":"YulFunctionCall","src":"4848:32:64"},"nativeSrc":"4845:119:64","nodeType":"YulIf","src":"4845:119:64"},{"nativeSrc":"4974:312:64","nodeType":"YulBlock","src":"4974:312:64","statements":[{"nativeSrc":"4989:45:64","nodeType":"YulVariableDeclaration","src":"4989:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5020:9:64","nodeType":"YulIdentifier","src":"5020:9:64"},{"kind":"number","nativeSrc":"5031:1:64","nodeType":"YulLiteral","src":"5031:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5016:3:64","nodeType":"YulIdentifier","src":"5016:3:64"},"nativeSrc":"5016:17:64","nodeType":"YulFunctionCall","src":"5016:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"5003:12:64","nodeType":"YulIdentifier","src":"5003:12:64"},"nativeSrc":"5003:31:64","nodeType":"YulFunctionCall","src":"5003:31:64"},"variables":[{"name":"offset","nativeSrc":"4993:6:64","nodeType":"YulTypedName","src":"4993:6:64","type":""}]},{"body":{"nativeSrc":"5081:83:64","nodeType":"YulBlock","src":"5081:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5083:77:64","nodeType":"YulIdentifier","src":"5083:77:64"},"nativeSrc":"5083:79:64","nodeType":"YulFunctionCall","src":"5083:79:64"},"nativeSrc":"5083:79:64","nodeType":"YulExpressionStatement","src":"5083:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5053:6:64","nodeType":"YulIdentifier","src":"5053:6:64"},{"kind":"number","nativeSrc":"5061:18:64","nodeType":"YulLiteral","src":"5061:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5050:2:64","nodeType":"YulIdentifier","src":"5050:2:64"},"nativeSrc":"5050:30:64","nodeType":"YulFunctionCall","src":"5050:30:64"},"nativeSrc":"5047:117:64","nodeType":"YulIf","src":"5047:117:64"},{"nativeSrc":"5178:98:64","nodeType":"YulAssignment","src":"5178:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5248:9:64","nodeType":"YulIdentifier","src":"5248:9:64"},{"name":"offset","nativeSrc":"5259:6:64","nodeType":"YulIdentifier","src":"5259:6:64"}],"functionName":{"name":"add","nativeSrc":"5244:3:64","nodeType":"YulIdentifier","src":"5244:3:64"},"nativeSrc":"5244:22:64","nodeType":"YulFunctionCall","src":"5244:22:64"},{"name":"dataEnd","nativeSrc":"5268:7:64","nodeType":"YulIdentifier","src":"5268:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"5196:47:64","nodeType":"YulIdentifier","src":"5196:47:64"},"nativeSrc":"5196:80:64","nodeType":"YulFunctionCall","src":"5196:80:64"},"variableNames":[{"name":"value0","nativeSrc":"5178:6:64","nodeType":"YulIdentifier","src":"5178:6:64"},{"name":"value1","nativeSrc":"5186:6:64","nodeType":"YulIdentifier","src":"5186:6:64"}]}]},{"nativeSrc":"5296:310:64","nodeType":"YulBlock","src":"5296:310:64","statements":[{"nativeSrc":"5311:46:64","nodeType":"YulVariableDeclaration","src":"5311:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5342:9:64","nodeType":"YulIdentifier","src":"5342:9:64"},{"kind":"number","nativeSrc":"5353:2:64","nodeType":"YulLiteral","src":"5353:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5338:3:64","nodeType":"YulIdentifier","src":"5338:3:64"},"nativeSrc":"5338:18:64","nodeType":"YulFunctionCall","src":"5338:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"5325:12:64","nodeType":"YulIdentifier","src":"5325:12:64"},"nativeSrc":"5325:32:64","nodeType":"YulFunctionCall","src":"5325:32:64"},"variables":[{"name":"offset","nativeSrc":"5315:6:64","nodeType":"YulTypedName","src":"5315:6:64","type":""}]},{"body":{"nativeSrc":"5404:83:64","nodeType":"YulBlock","src":"5404:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5406:77:64","nodeType":"YulIdentifier","src":"5406:77:64"},"nativeSrc":"5406:79:64","nodeType":"YulFunctionCall","src":"5406:79:64"},"nativeSrc":"5406:79:64","nodeType":"YulExpressionStatement","src":"5406:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5376:6:64","nodeType":"YulIdentifier","src":"5376:6:64"},{"kind":"number","nativeSrc":"5384:18:64","nodeType":"YulLiteral","src":"5384:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5373:2:64","nodeType":"YulIdentifier","src":"5373:2:64"},"nativeSrc":"5373:30:64","nodeType":"YulFunctionCall","src":"5373:30:64"},"nativeSrc":"5370:117:64","nodeType":"YulIf","src":"5370:117:64"},{"nativeSrc":"5501:95:64","nodeType":"YulAssignment","src":"5501:95:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5568:9:64","nodeType":"YulIdentifier","src":"5568:9:64"},{"name":"offset","nativeSrc":"5579:6:64","nodeType":"YulIdentifier","src":"5579:6:64"}],"functionName":{"name":"add","nativeSrc":"5564:3:64","nodeType":"YulIdentifier","src":"5564:3:64"},"nativeSrc":"5564:22:64","nodeType":"YulFunctionCall","src":"5564:22:64"},{"name":"dataEnd","nativeSrc":"5588:7:64","nodeType":"YulIdentifier","src":"5588:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5519:44:64","nodeType":"YulIdentifier","src":"5519:44:64"},"nativeSrc":"5519:77:64","nodeType":"YulFunctionCall","src":"5519:77:64"},"variableNames":[{"name":"value2","nativeSrc":"5501:6:64","nodeType":"YulIdentifier","src":"5501:6:64"},{"name":"value3","nativeSrc":"5509:6:64","nodeType":"YulIdentifier","src":"5509:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4685:928:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4781:9:64","nodeType":"YulTypedName","src":"4781:9:64","type":""},{"name":"dataEnd","nativeSrc":"4792:7:64","nodeType":"YulTypedName","src":"4792:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4804:6:64","nodeType":"YulTypedName","src":"4804:6:64","type":""},{"name":"value1","nativeSrc":"4812:6:64","nodeType":"YulTypedName","src":"4812:6:64","type":""},{"name":"value2","nativeSrc":"4820:6:64","nodeType":"YulTypedName","src":"4820:6:64","type":""},{"name":"value3","nativeSrc":"4828:6:64","nodeType":"YulTypedName","src":"4828:6:64","type":""}],"src":"4685:928:64"},{"body":{"nativeSrc":"5706:478:64","nodeType":"YulBlock","src":"5706:478:64","statements":[{"body":{"nativeSrc":"5755:83:64","nodeType":"YulBlock","src":"5755:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5757:77:64","nodeType":"YulIdentifier","src":"5757:77:64"},"nativeSrc":"5757:79:64","nodeType":"YulFunctionCall","src":"5757:79:64"},"nativeSrc":"5757:79:64","nodeType":"YulExpressionStatement","src":"5757:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"5734:6:64","nodeType":"YulIdentifier","src":"5734:6:64"},{"kind":"number","nativeSrc":"5742:4:64","nodeType":"YulLiteral","src":"5742:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"5730:3:64","nodeType":"YulIdentifier","src":"5730:3:64"},"nativeSrc":"5730:17:64","nodeType":"YulFunctionCall","src":"5730:17:64"},{"name":"end","nativeSrc":"5749:3:64","nodeType":"YulIdentifier","src":"5749:3:64"}],"functionName":{"name":"slt","nativeSrc":"5726:3:64","nodeType":"YulIdentifier","src":"5726:3:64"},"nativeSrc":"5726:27:64","nodeType":"YulFunctionCall","src":"5726:27:64"}],"functionName":{"name":"iszero","nativeSrc":"5719:6:64","nodeType":"YulIdentifier","src":"5719:6:64"},"nativeSrc":"5719:35:64","nodeType":"YulFunctionCall","src":"5719:35:64"},"nativeSrc":"5716:122:64","nodeType":"YulIf","src":"5716:122:64"},{"nativeSrc":"5847:30:64","nodeType":"YulAssignment","src":"5847:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"5870:6:64","nodeType":"YulIdentifier","src":"5870:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"5857:12:64","nodeType":"YulIdentifier","src":"5857:12:64"},"nativeSrc":"5857:20:64","nodeType":"YulFunctionCall","src":"5857:20:64"},"variableNames":[{"name":"length","nativeSrc":"5847:6:64","nodeType":"YulIdentifier","src":"5847:6:64"}]},{"body":{"nativeSrc":"5920:83:64","nodeType":"YulBlock","src":"5920:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"5922:77:64","nodeType":"YulIdentifier","src":"5922:77:64"},"nativeSrc":"5922:79:64","nodeType":"YulFunctionCall","src":"5922:79:64"},"nativeSrc":"5922:79:64","nodeType":"YulExpressionStatement","src":"5922:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5892:6:64","nodeType":"YulIdentifier","src":"5892:6:64"},{"kind":"number","nativeSrc":"5900:18:64","nodeType":"YulLiteral","src":"5900:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5889:2:64","nodeType":"YulIdentifier","src":"5889:2:64"},"nativeSrc":"5889:30:64","nodeType":"YulFunctionCall","src":"5889:30:64"},"nativeSrc":"5886:117:64","nodeType":"YulIf","src":"5886:117:64"},{"nativeSrc":"6012:29:64","nodeType":"YulAssignment","src":"6012:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6028:6:64","nodeType":"YulIdentifier","src":"6028:6:64"},{"kind":"number","nativeSrc":"6036:4:64","nodeType":"YulLiteral","src":"6036:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6024:3:64","nodeType":"YulIdentifier","src":"6024:3:64"},"nativeSrc":"6024:17:64","nodeType":"YulFunctionCall","src":"6024:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"6012:8:64","nodeType":"YulIdentifier","src":"6012:8:64"}]},{"body":{"nativeSrc":"6095:83:64","nodeType":"YulBlock","src":"6095:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6097:77:64","nodeType":"YulIdentifier","src":"6097:77:64"},"nativeSrc":"6097:79:64","nodeType":"YulFunctionCall","src":"6097:79:64"},"nativeSrc":"6097:79:64","nodeType":"YulExpressionStatement","src":"6097:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6060:8:64","nodeType":"YulIdentifier","src":"6060:8:64"},{"arguments":[{"name":"length","nativeSrc":"6074:6:64","nodeType":"YulIdentifier","src":"6074:6:64"},{"kind":"number","nativeSrc":"6082:4:64","nodeType":"YulLiteral","src":"6082:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"6070:3:64","nodeType":"YulIdentifier","src":"6070:3:64"},"nativeSrc":"6070:17:64","nodeType":"YulFunctionCall","src":"6070:17:64"}],"functionName":{"name":"add","nativeSrc":"6056:3:64","nodeType":"YulIdentifier","src":"6056:3:64"},"nativeSrc":"6056:32:64","nodeType":"YulFunctionCall","src":"6056:32:64"},{"name":"end","nativeSrc":"6090:3:64","nodeType":"YulIdentifier","src":"6090:3:64"}],"functionName":{"name":"gt","nativeSrc":"6053:2:64","nodeType":"YulIdentifier","src":"6053:2:64"},"nativeSrc":"6053:41:64","nodeType":"YulFunctionCall","src":"6053:41:64"},"nativeSrc":"6050:128:64","nodeType":"YulIf","src":"6050:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5632:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5673:6:64","nodeType":"YulTypedName","src":"5673:6:64","type":""},{"name":"end","nativeSrc":"5681:3:64","nodeType":"YulTypedName","src":"5681:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"5689:8:64","nodeType":"YulTypedName","src":"5689:8:64","type":""},{"name":"length","nativeSrc":"5699:6:64","nodeType":"YulTypedName","src":"5699:6:64","type":""}],"src":"5632:552:64"},{"body":{"nativeSrc":"6275:442:64","nodeType":"YulBlock","src":"6275:442:64","statements":[{"body":{"nativeSrc":"6321:83:64","nodeType":"YulBlock","src":"6321:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6323:77:64","nodeType":"YulIdentifier","src":"6323:77:64"},"nativeSrc":"6323:79:64","nodeType":"YulFunctionCall","src":"6323:79:64"},"nativeSrc":"6323:79:64","nodeType":"YulExpressionStatement","src":"6323:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6296:7:64","nodeType":"YulIdentifier","src":"6296:7:64"},{"name":"headStart","nativeSrc":"6305:9:64","nodeType":"YulIdentifier","src":"6305:9:64"}],"functionName":{"name":"sub","nativeSrc":"6292:3:64","nodeType":"YulIdentifier","src":"6292:3:64"},"nativeSrc":"6292:23:64","nodeType":"YulFunctionCall","src":"6292:23:64"},{"kind":"number","nativeSrc":"6317:2:64","nodeType":"YulLiteral","src":"6317:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6288:3:64","nodeType":"YulIdentifier","src":"6288:3:64"},"nativeSrc":"6288:32:64","nodeType":"YulFunctionCall","src":"6288:32:64"},"nativeSrc":"6285:119:64","nodeType":"YulIf","src":"6285:119:64"},{"nativeSrc":"6414:296:64","nodeType":"YulBlock","src":"6414:296:64","statements":[{"nativeSrc":"6429:45:64","nodeType":"YulVariableDeclaration","src":"6429:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6460:9:64","nodeType":"YulIdentifier","src":"6460:9:64"},{"kind":"number","nativeSrc":"6471:1:64","nodeType":"YulLiteral","src":"6471:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6456:3:64","nodeType":"YulIdentifier","src":"6456:3:64"},"nativeSrc":"6456:17:64","nodeType":"YulFunctionCall","src":"6456:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"6443:12:64","nodeType":"YulIdentifier","src":"6443:12:64"},"nativeSrc":"6443:31:64","nodeType":"YulFunctionCall","src":"6443:31:64"},"variables":[{"name":"offset","nativeSrc":"6433:6:64","nodeType":"YulTypedName","src":"6433:6:64","type":""}]},{"body":{"nativeSrc":"6521:83:64","nodeType":"YulBlock","src":"6521:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6523:77:64","nodeType":"YulIdentifier","src":"6523:77:64"},"nativeSrc":"6523:79:64","nodeType":"YulFunctionCall","src":"6523:79:64"},"nativeSrc":"6523:79:64","nodeType":"YulExpressionStatement","src":"6523:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6493:6:64","nodeType":"YulIdentifier","src":"6493:6:64"},{"kind":"number","nativeSrc":"6501:18:64","nodeType":"YulLiteral","src":"6501:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6490:2:64","nodeType":"YulIdentifier","src":"6490:2:64"},"nativeSrc":"6490:30:64","nodeType":"YulFunctionCall","src":"6490:30:64"},"nativeSrc":"6487:117:64","nodeType":"YulIf","src":"6487:117:64"},{"nativeSrc":"6618:82:64","nodeType":"YulAssignment","src":"6618:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6672:9:64","nodeType":"YulIdentifier","src":"6672:9:64"},{"name":"offset","nativeSrc":"6683:6:64","nodeType":"YulIdentifier","src":"6683:6:64"}],"functionName":{"name":"add","nativeSrc":"6668:3:64","nodeType":"YulIdentifier","src":"6668:3:64"},"nativeSrc":"6668:22:64","nodeType":"YulFunctionCall","src":"6668:22:64"},{"name":"dataEnd","nativeSrc":"6692:7:64","nodeType":"YulIdentifier","src":"6692:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6636:31:64","nodeType":"YulIdentifier","src":"6636:31:64"},"nativeSrc":"6636:64:64","nodeType":"YulFunctionCall","src":"6636:64:64"},"variableNames":[{"name":"value0","nativeSrc":"6618:6:64","nodeType":"YulIdentifier","src":"6618:6:64"},{"name":"value1","nativeSrc":"6626:6:64","nodeType":"YulIdentifier","src":"6626:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"6190:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6237:9:64","nodeType":"YulTypedName","src":"6237:9:64","type":""},{"name":"dataEnd","nativeSrc":"6248:7:64","nodeType":"YulTypedName","src":"6248:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6260:6:64","nodeType":"YulTypedName","src":"6260:6:64","type":""},{"name":"value1","nativeSrc":"6268:6:64","nodeType":"YulTypedName","src":"6268:6:64","type":""}],"src":"6190:527:64"},{"body":{"nativeSrc":"6839:478:64","nodeType":"YulBlock","src":"6839:478:64","statements":[{"body":{"nativeSrc":"6888:83:64","nodeType":"YulBlock","src":"6888:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6890:77:64","nodeType":"YulIdentifier","src":"6890:77:64"},"nativeSrc":"6890:79:64","nodeType":"YulFunctionCall","src":"6890:79:64"},"nativeSrc":"6890:79:64","nodeType":"YulExpressionStatement","src":"6890:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6867:6:64","nodeType":"YulIdentifier","src":"6867:6:64"},{"kind":"number","nativeSrc":"6875:4:64","nodeType":"YulLiteral","src":"6875:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6863:3:64","nodeType":"YulIdentifier","src":"6863:3:64"},"nativeSrc":"6863:17:64","nodeType":"YulFunctionCall","src":"6863:17:64"},{"name":"end","nativeSrc":"6882:3:64","nodeType":"YulIdentifier","src":"6882:3:64"}],"functionName":{"name":"slt","nativeSrc":"6859:3:64","nodeType":"YulIdentifier","src":"6859:3:64"},"nativeSrc":"6859:27:64","nodeType":"YulFunctionCall","src":"6859:27:64"}],"functionName":{"name":"iszero","nativeSrc":"6852:6:64","nodeType":"YulIdentifier","src":"6852:6:64"},"nativeSrc":"6852:35:64","nodeType":"YulFunctionCall","src":"6852:35:64"},"nativeSrc":"6849:122:64","nodeType":"YulIf","src":"6849:122:64"},{"nativeSrc":"6980:30:64","nodeType":"YulAssignment","src":"6980:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"7003:6:64","nodeType":"YulIdentifier","src":"7003:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6990:12:64","nodeType":"YulIdentifier","src":"6990:12:64"},"nativeSrc":"6990:20:64","nodeType":"YulFunctionCall","src":"6990:20:64"},"variableNames":[{"name":"length","nativeSrc":"6980:6:64","nodeType":"YulIdentifier","src":"6980:6:64"}]},{"body":{"nativeSrc":"7053:83:64","nodeType":"YulBlock","src":"7053:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7055:77:64","nodeType":"YulIdentifier","src":"7055:77:64"},"nativeSrc":"7055:79:64","nodeType":"YulFunctionCall","src":"7055:79:64"},"nativeSrc":"7055:79:64","nodeType":"YulExpressionStatement","src":"7055:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7025:6:64","nodeType":"YulIdentifier","src":"7025:6:64"},{"kind":"number","nativeSrc":"7033:18:64","nodeType":"YulLiteral","src":"7033:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7022:2:64","nodeType":"YulIdentifier","src":"7022:2:64"},"nativeSrc":"7022:30:64","nodeType":"YulFunctionCall","src":"7022:30:64"},"nativeSrc":"7019:117:64","nodeType":"YulIf","src":"7019:117:64"},{"nativeSrc":"7145:29:64","nodeType":"YulAssignment","src":"7145:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7161:6:64","nodeType":"YulIdentifier","src":"7161:6:64"},{"kind":"number","nativeSrc":"7169:4:64","nodeType":"YulLiteral","src":"7169:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7157:3:64","nodeType":"YulIdentifier","src":"7157:3:64"},"nativeSrc":"7157:17:64","nodeType":"YulFunctionCall","src":"7157:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"7145:8:64","nodeType":"YulIdentifier","src":"7145:8:64"}]},{"body":{"nativeSrc":"7228:83:64","nodeType":"YulBlock","src":"7228:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7230:77:64","nodeType":"YulIdentifier","src":"7230:77:64"},"nativeSrc":"7230:79:64","nodeType":"YulFunctionCall","src":"7230:79:64"},"nativeSrc":"7230:79:64","nodeType":"YulExpressionStatement","src":"7230:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7193:8:64","nodeType":"YulIdentifier","src":"7193:8:64"},{"arguments":[{"name":"length","nativeSrc":"7207:6:64","nodeType":"YulIdentifier","src":"7207:6:64"},{"kind":"number","nativeSrc":"7215:4:64","nodeType":"YulLiteral","src":"7215:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7203:3:64","nodeType":"YulIdentifier","src":"7203:3:64"},"nativeSrc":"7203:17:64","nodeType":"YulFunctionCall","src":"7203:17:64"}],"functionName":{"name":"add","nativeSrc":"7189:3:64","nodeType":"YulIdentifier","src":"7189:3:64"},"nativeSrc":"7189:32:64","nodeType":"YulFunctionCall","src":"7189:32:64"},{"name":"end","nativeSrc":"7223:3:64","nodeType":"YulIdentifier","src":"7223:3:64"}],"functionName":{"name":"gt","nativeSrc":"7186:2:64","nodeType":"YulIdentifier","src":"7186:2:64"},"nativeSrc":"7186:41:64","nodeType":"YulFunctionCall","src":"7186:41:64"},"nativeSrc":"7183:128:64","nodeType":"YulIf","src":"7183:128:64"}]},"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"6738:579:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6806:6:64","nodeType":"YulTypedName","src":"6806:6:64","type":""},{"name":"end","nativeSrc":"6814:3:64","nodeType":"YulTypedName","src":"6814:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6822:8:64","nodeType":"YulTypedName","src":"6822:8:64","type":""},{"name":"length","nativeSrc":"6832:6:64","nodeType":"YulTypedName","src":"6832:6:64","type":""}],"src":"6738:579:64"},{"body":{"nativeSrc":"7435:469:64","nodeType":"YulBlock","src":"7435:469:64","statements":[{"body":{"nativeSrc":"7481:83:64","nodeType":"YulBlock","src":"7481:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7483:77:64","nodeType":"YulIdentifier","src":"7483:77:64"},"nativeSrc":"7483:79:64","nodeType":"YulFunctionCall","src":"7483:79:64"},"nativeSrc":"7483:79:64","nodeType":"YulExpressionStatement","src":"7483:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7456:7:64","nodeType":"YulIdentifier","src":"7456:7:64"},{"name":"headStart","nativeSrc":"7465:9:64","nodeType":"YulIdentifier","src":"7465:9:64"}],"functionName":{"name":"sub","nativeSrc":"7452:3:64","nodeType":"YulIdentifier","src":"7452:3:64"},"nativeSrc":"7452:23:64","nodeType":"YulFunctionCall","src":"7452:23:64"},{"kind":"number","nativeSrc":"7477:2:64","nodeType":"YulLiteral","src":"7477:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7448:3:64","nodeType":"YulIdentifier","src":"7448:3:64"},"nativeSrc":"7448:32:64","nodeType":"YulFunctionCall","src":"7448:32:64"},"nativeSrc":"7445:119:64","nodeType":"YulIf","src":"7445:119:64"},{"nativeSrc":"7574:323:64","nodeType":"YulBlock","src":"7574:323:64","statements":[{"nativeSrc":"7589:45:64","nodeType":"YulVariableDeclaration","src":"7589:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7620:9:64","nodeType":"YulIdentifier","src":"7620:9:64"},{"kind":"number","nativeSrc":"7631:1:64","nodeType":"YulLiteral","src":"7631:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7616:3:64","nodeType":"YulIdentifier","src":"7616:3:64"},"nativeSrc":"7616:17:64","nodeType":"YulFunctionCall","src":"7616:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"7603:12:64","nodeType":"YulIdentifier","src":"7603:12:64"},"nativeSrc":"7603:31:64","nodeType":"YulFunctionCall","src":"7603:31:64"},"variables":[{"name":"offset","nativeSrc":"7593:6:64","nodeType":"YulTypedName","src":"7593:6:64","type":""}]},{"body":{"nativeSrc":"7681:83:64","nodeType":"YulBlock","src":"7681:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"7683:77:64","nodeType":"YulIdentifier","src":"7683:77:64"},"nativeSrc":"7683:79:64","nodeType":"YulFunctionCall","src":"7683:79:64"},"nativeSrc":"7683:79:64","nodeType":"YulExpressionStatement","src":"7683:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"7653:6:64","nodeType":"YulIdentifier","src":"7653:6:64"},{"kind":"number","nativeSrc":"7661:18:64","nodeType":"YulLiteral","src":"7661:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7650:2:64","nodeType":"YulIdentifier","src":"7650:2:64"},"nativeSrc":"7650:30:64","nodeType":"YulFunctionCall","src":"7650:30:64"},"nativeSrc":"7647:117:64","nodeType":"YulIf","src":"7647:117:64"},{"nativeSrc":"7778:109:64","nodeType":"YulAssignment","src":"7778:109:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7859:9:64","nodeType":"YulIdentifier","src":"7859:9:64"},{"name":"offset","nativeSrc":"7870:6:64","nodeType":"YulIdentifier","src":"7870:6:64"}],"functionName":{"name":"add","nativeSrc":"7855:3:64","nodeType":"YulIdentifier","src":"7855:3:64"},"nativeSrc":"7855:22:64","nodeType":"YulFunctionCall","src":"7855:22:64"},{"name":"dataEnd","nativeSrc":"7879:7:64","nodeType":"YulIdentifier","src":"7879:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7796:58:64","nodeType":"YulIdentifier","src":"7796:58:64"},"nativeSrc":"7796:91:64","nodeType":"YulFunctionCall","src":"7796:91:64"},"variableNames":[{"name":"value0","nativeSrc":"7778:6:64","nodeType":"YulIdentifier","src":"7778:6:64"},{"name":"value1","nativeSrc":"7786:6:64","nodeType":"YulIdentifier","src":"7786:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7323:581:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7397:9:64","nodeType":"YulTypedName","src":"7397:9:64","type":""},{"name":"dataEnd","nativeSrc":"7408:7:64","nodeType":"YulTypedName","src":"7408:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7420:6:64","nodeType":"YulTypedName","src":"7420:6:64","type":""},{"name":"value1","nativeSrc":"7428:6:64","nodeType":"YulTypedName","src":"7428:6:64","type":""}],"src":"7323:581:64"},{"body":{"nativeSrc":"7953:79:64","nodeType":"YulBlock","src":"7953:79:64","statements":[{"body":{"nativeSrc":"8010:16:64","nodeType":"YulBlock","src":"8010:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8019:1:64","nodeType":"YulLiteral","src":"8019:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8022:1:64","nodeType":"YulLiteral","src":"8022:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8012:6:64","nodeType":"YulIdentifier","src":"8012:6:64"},"nativeSrc":"8012:12:64","nodeType":"YulFunctionCall","src":"8012:12:64"},"nativeSrc":"8012:12:64","nodeType":"YulExpressionStatement","src":"8012:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7976:5:64","nodeType":"YulIdentifier","src":"7976:5:64"},{"arguments":[{"name":"value","nativeSrc":"8001:5:64","nodeType":"YulIdentifier","src":"8001:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7983:17:64","nodeType":"YulIdentifier","src":"7983:17:64"},"nativeSrc":"7983:24:64","nodeType":"YulFunctionCall","src":"7983:24:64"}],"functionName":{"name":"eq","nativeSrc":"7973:2:64","nodeType":"YulIdentifier","src":"7973:2:64"},"nativeSrc":"7973:35:64","nodeType":"YulFunctionCall","src":"7973:35:64"}],"functionName":{"name":"iszero","nativeSrc":"7966:6:64","nodeType":"YulIdentifier","src":"7966:6:64"},"nativeSrc":"7966:43:64","nodeType":"YulFunctionCall","src":"7966:43:64"},"nativeSrc":"7963:63:64","nodeType":"YulIf","src":"7963:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"7910:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7946:5:64","nodeType":"YulTypedName","src":"7946:5:64","type":""}],"src":"7910:122:64"},{"body":{"nativeSrc":"8090:87:64","nodeType":"YulBlock","src":"8090:87:64","statements":[{"nativeSrc":"8100:29:64","nodeType":"YulAssignment","src":"8100:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8122:6:64","nodeType":"YulIdentifier","src":"8122:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8109:12:64","nodeType":"YulIdentifier","src":"8109:12:64"},"nativeSrc":"8109:20:64","nodeType":"YulFunctionCall","src":"8109:20:64"},"variableNames":[{"name":"value","nativeSrc":"8100:5:64","nodeType":"YulIdentifier","src":"8100:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8165:5:64","nodeType":"YulIdentifier","src":"8165:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8138:26:64","nodeType":"YulIdentifier","src":"8138:26:64"},"nativeSrc":"8138:33:64","nodeType":"YulFunctionCall","src":"8138:33:64"},"nativeSrc":"8138:33:64","nodeType":"YulExpressionStatement","src":"8138:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"8038:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8068:6:64","nodeType":"YulTypedName","src":"8068:6:64","type":""},{"name":"end","nativeSrc":"8076:3:64","nodeType":"YulTypedName","src":"8076:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8084:5:64","nodeType":"YulTypedName","src":"8084:5:64","type":""}],"src":"8038:139:64"},{"body":{"nativeSrc":"8266:391:64","nodeType":"YulBlock","src":"8266:391:64","statements":[{"body":{"nativeSrc":"8312:83:64","nodeType":"YulBlock","src":"8312:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8314:77:64","nodeType":"YulIdentifier","src":"8314:77:64"},"nativeSrc":"8314:79:64","nodeType":"YulFunctionCall","src":"8314:79:64"},"nativeSrc":"8314:79:64","nodeType":"YulExpressionStatement","src":"8314:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8287:7:64","nodeType":"YulIdentifier","src":"8287:7:64"},{"name":"headStart","nativeSrc":"8296:9:64","nodeType":"YulIdentifier","src":"8296:9:64"}],"functionName":{"name":"sub","nativeSrc":"8283:3:64","nodeType":"YulIdentifier","src":"8283:3:64"},"nativeSrc":"8283:23:64","nodeType":"YulFunctionCall","src":"8283:23:64"},{"kind":"number","nativeSrc":"8308:2:64","nodeType":"YulLiteral","src":"8308:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8279:3:64","nodeType":"YulIdentifier","src":"8279:3:64"},"nativeSrc":"8279:32:64","nodeType":"YulFunctionCall","src":"8279:32:64"},"nativeSrc":"8276:119:64","nodeType":"YulIf","src":"8276:119:64"},{"nativeSrc":"8405:117:64","nodeType":"YulBlock","src":"8405:117:64","statements":[{"nativeSrc":"8420:15:64","nodeType":"YulVariableDeclaration","src":"8420:15:64","value":{"kind":"number","nativeSrc":"8434:1:64","nodeType":"YulLiteral","src":"8434:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8424:6:64","nodeType":"YulTypedName","src":"8424:6:64","type":""}]},{"nativeSrc":"8449:63:64","nodeType":"YulAssignment","src":"8449:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8484:9:64","nodeType":"YulIdentifier","src":"8484:9:64"},{"name":"offset","nativeSrc":"8495:6:64","nodeType":"YulIdentifier","src":"8495:6:64"}],"functionName":{"name":"add","nativeSrc":"8480:3:64","nodeType":"YulIdentifier","src":"8480:3:64"},"nativeSrc":"8480:22:64","nodeType":"YulFunctionCall","src":"8480:22:64"},{"name":"dataEnd","nativeSrc":"8504:7:64","nodeType":"YulIdentifier","src":"8504:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8459:20:64","nodeType":"YulIdentifier","src":"8459:20:64"},"nativeSrc":"8459:53:64","nodeType":"YulFunctionCall","src":"8459:53:64"},"variableNames":[{"name":"value0","nativeSrc":"8449:6:64","nodeType":"YulIdentifier","src":"8449:6:64"}]}]},{"nativeSrc":"8532:118:64","nodeType":"YulBlock","src":"8532:118:64","statements":[{"nativeSrc":"8547:16:64","nodeType":"YulVariableDeclaration","src":"8547:16:64","value":{"kind":"number","nativeSrc":"8561:2:64","nodeType":"YulLiteral","src":"8561:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8551:6:64","nodeType":"YulTypedName","src":"8551:6:64","type":""}]},{"nativeSrc":"8577:63:64","nodeType":"YulAssignment","src":"8577:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8612:9:64","nodeType":"YulIdentifier","src":"8612:9:64"},{"name":"offset","nativeSrc":"8623:6:64","nodeType":"YulIdentifier","src":"8623:6:64"}],"functionName":{"name":"add","nativeSrc":"8608:3:64","nodeType":"YulIdentifier","src":"8608:3:64"},"nativeSrc":"8608:22:64","nodeType":"YulFunctionCall","src":"8608:22:64"},{"name":"dataEnd","nativeSrc":"8632:7:64","nodeType":"YulIdentifier","src":"8632:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8587:20:64","nodeType":"YulIdentifier","src":"8587:20:64"},"nativeSrc":"8587:53:64","nodeType":"YulFunctionCall","src":"8587:53:64"},"variableNames":[{"name":"value1","nativeSrc":"8577:6:64","nodeType":"YulIdentifier","src":"8577:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"8183:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8228:9:64","nodeType":"YulTypedName","src":"8228:9:64","type":""},{"name":"dataEnd","nativeSrc":"8239:7:64","nodeType":"YulTypedName","src":"8239:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8251:6:64","nodeType":"YulTypedName","src":"8251:6:64","type":""},{"name":"value1","nativeSrc":"8259:6:64","nodeType":"YulTypedName","src":"8259:6:64","type":""}],"src":"8183:474:64"},{"body":{"nativeSrc":"8728:53:64","nodeType":"YulBlock","src":"8728:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8745:3:64","nodeType":"YulIdentifier","src":"8745:3:64"},{"arguments":[{"name":"value","nativeSrc":"8768:5:64","nodeType":"YulIdentifier","src":"8768:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8750:17:64","nodeType":"YulIdentifier","src":"8750:17:64"},"nativeSrc":"8750:24:64","nodeType":"YulFunctionCall","src":"8750:24:64"}],"functionName":{"name":"mstore","nativeSrc":"8738:6:64","nodeType":"YulIdentifier","src":"8738:6:64"},"nativeSrc":"8738:37:64","nodeType":"YulFunctionCall","src":"8738:37:64"},"nativeSrc":"8738:37:64","nodeType":"YulExpressionStatement","src":"8738:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8663:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8716:5:64","nodeType":"YulTypedName","src":"8716:5:64","type":""},{"name":"pos","nativeSrc":"8723:3:64","nodeType":"YulTypedName","src":"8723:3:64","type":""}],"src":"8663:118:64"},{"body":{"nativeSrc":"8885:124:64","nodeType":"YulBlock","src":"8885:124:64","statements":[{"nativeSrc":"8895:26:64","nodeType":"YulAssignment","src":"8895:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"8907:9:64","nodeType":"YulIdentifier","src":"8907:9:64"},{"kind":"number","nativeSrc":"8918:2:64","nodeType":"YulLiteral","src":"8918:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8903:3:64","nodeType":"YulIdentifier","src":"8903:3:64"},"nativeSrc":"8903:18:64","nodeType":"YulFunctionCall","src":"8903:18:64"},"variableNames":[{"name":"tail","nativeSrc":"8895:4:64","nodeType":"YulIdentifier","src":"8895:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8975:6:64","nodeType":"YulIdentifier","src":"8975:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"8988:9:64","nodeType":"YulIdentifier","src":"8988:9:64"},{"kind":"number","nativeSrc":"8999:1:64","nodeType":"YulLiteral","src":"8999:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8984:3:64","nodeType":"YulIdentifier","src":"8984:3:64"},"nativeSrc":"8984:17:64","nodeType":"YulFunctionCall","src":"8984:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8931:43:64","nodeType":"YulIdentifier","src":"8931:43:64"},"nativeSrc":"8931:71:64","nodeType":"YulFunctionCall","src":"8931:71:64"},"nativeSrc":"8931:71:64","nodeType":"YulExpressionStatement","src":"8931:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8787:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8857:9:64","nodeType":"YulTypedName","src":"8857:9:64","type":""},{"name":"value0","nativeSrc":"8869:6:64","nodeType":"YulTypedName","src":"8869:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8880:4:64","nodeType":"YulTypedName","src":"8880:4:64","type":""}],"src":"8787:222:64"},{"body":{"nativeSrc":"9122:478:64","nodeType":"YulBlock","src":"9122:478:64","statements":[{"body":{"nativeSrc":"9171:83:64","nodeType":"YulBlock","src":"9171:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9173:77:64","nodeType":"YulIdentifier","src":"9173:77:64"},"nativeSrc":"9173:79:64","nodeType":"YulFunctionCall","src":"9173:79:64"},"nativeSrc":"9173:79:64","nodeType":"YulExpressionStatement","src":"9173:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9150:6:64","nodeType":"YulIdentifier","src":"9150:6:64"},{"kind":"number","nativeSrc":"9158:4:64","nodeType":"YulLiteral","src":"9158:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9146:3:64","nodeType":"YulIdentifier","src":"9146:3:64"},"nativeSrc":"9146:17:64","nodeType":"YulFunctionCall","src":"9146:17:64"},{"name":"end","nativeSrc":"9165:3:64","nodeType":"YulIdentifier","src":"9165:3:64"}],"functionName":{"name":"slt","nativeSrc":"9142:3:64","nodeType":"YulIdentifier","src":"9142:3:64"},"nativeSrc":"9142:27:64","nodeType":"YulFunctionCall","src":"9142:27:64"}],"functionName":{"name":"iszero","nativeSrc":"9135:6:64","nodeType":"YulIdentifier","src":"9135:6:64"},"nativeSrc":"9135:35:64","nodeType":"YulFunctionCall","src":"9135:35:64"},"nativeSrc":"9132:122:64","nodeType":"YulIf","src":"9132:122:64"},{"nativeSrc":"9263:30:64","nodeType":"YulAssignment","src":"9263:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"9286:6:64","nodeType":"YulIdentifier","src":"9286:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9273:12:64","nodeType":"YulIdentifier","src":"9273:12:64"},"nativeSrc":"9273:20:64","nodeType":"YulFunctionCall","src":"9273:20:64"},"variableNames":[{"name":"length","nativeSrc":"9263:6:64","nodeType":"YulIdentifier","src":"9263:6:64"}]},{"body":{"nativeSrc":"9336:83:64","nodeType":"YulBlock","src":"9336:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"9338:77:64","nodeType":"YulIdentifier","src":"9338:77:64"},"nativeSrc":"9338:79:64","nodeType":"YulFunctionCall","src":"9338:79:64"},"nativeSrc":"9338:79:64","nodeType":"YulExpressionStatement","src":"9338:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"9308:6:64","nodeType":"YulIdentifier","src":"9308:6:64"},{"kind":"number","nativeSrc":"9316:18:64","nodeType":"YulLiteral","src":"9316:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9305:2:64","nodeType":"YulIdentifier","src":"9305:2:64"},"nativeSrc":"9305:30:64","nodeType":"YulFunctionCall","src":"9305:30:64"},"nativeSrc":"9302:117:64","nodeType":"YulIf","src":"9302:117:64"},{"nativeSrc":"9428:29:64","nodeType":"YulAssignment","src":"9428:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9444:6:64","nodeType":"YulIdentifier","src":"9444:6:64"},{"kind":"number","nativeSrc":"9452:4:64","nodeType":"YulLiteral","src":"9452:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9440:3:64","nodeType":"YulIdentifier","src":"9440:3:64"},"nativeSrc":"9440:17:64","nodeType":"YulFunctionCall","src":"9440:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"9428:8:64","nodeType":"YulIdentifier","src":"9428:8:64"}]},{"body":{"nativeSrc":"9511:83:64","nodeType":"YulBlock","src":"9511:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9513:77:64","nodeType":"YulIdentifier","src":"9513:77:64"},"nativeSrc":"9513:79:64","nodeType":"YulFunctionCall","src":"9513:79:64"},"nativeSrc":"9513:79:64","nodeType":"YulExpressionStatement","src":"9513:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"9476:8:64","nodeType":"YulIdentifier","src":"9476:8:64"},{"arguments":[{"name":"length","nativeSrc":"9490:6:64","nodeType":"YulIdentifier","src":"9490:6:64"},{"kind":"number","nativeSrc":"9498:4:64","nodeType":"YulLiteral","src":"9498:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9486:3:64","nodeType":"YulIdentifier","src":"9486:3:64"},"nativeSrc":"9486:17:64","nodeType":"YulFunctionCall","src":"9486:17:64"}],"functionName":{"name":"add","nativeSrc":"9472:3:64","nodeType":"YulIdentifier","src":"9472:3:64"},"nativeSrc":"9472:32:64","nodeType":"YulFunctionCall","src":"9472:32:64"},{"name":"end","nativeSrc":"9506:3:64","nodeType":"YulIdentifier","src":"9506:3:64"}],"functionName":{"name":"gt","nativeSrc":"9469:2:64","nodeType":"YulIdentifier","src":"9469:2:64"},"nativeSrc":"9469:41:64","nodeType":"YulFunctionCall","src":"9469:41:64"},"nativeSrc":"9466:128:64","nodeType":"YulIf","src":"9466:128:64"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"9032:568:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9089:6:64","nodeType":"YulTypedName","src":"9089:6:64","type":""},{"name":"end","nativeSrc":"9097:3:64","nodeType":"YulTypedName","src":"9097:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"9105:8:64","nodeType":"YulTypedName","src":"9105:8:64","type":""},{"name":"length","nativeSrc":"9115:6:64","nodeType":"YulTypedName","src":"9115:6:64","type":""}],"src":"9032:568:64"},{"body":{"nativeSrc":"9829:1346:64","nodeType":"YulBlock","src":"9829:1346:64","statements":[{"body":{"nativeSrc":"9876:83:64","nodeType":"YulBlock","src":"9876:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9878:77:64","nodeType":"YulIdentifier","src":"9878:77:64"},"nativeSrc":"9878:79:64","nodeType":"YulFunctionCall","src":"9878:79:64"},"nativeSrc":"9878:79:64","nodeType":"YulExpressionStatement","src":"9878:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9850:7:64","nodeType":"YulIdentifier","src":"9850:7:64"},{"name":"headStart","nativeSrc":"9859:9:64","nodeType":"YulIdentifier","src":"9859:9:64"}],"functionName":{"name":"sub","nativeSrc":"9846:3:64","nodeType":"YulIdentifier","src":"9846:3:64"},"nativeSrc":"9846:23:64","nodeType":"YulFunctionCall","src":"9846:23:64"},{"kind":"number","nativeSrc":"9871:3:64","nodeType":"YulLiteral","src":"9871:3:64","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"9842:3:64","nodeType":"YulIdentifier","src":"9842:3:64"},"nativeSrc":"9842:33:64","nodeType":"YulFunctionCall","src":"9842:33:64"},"nativeSrc":"9839:120:64","nodeType":"YulIf","src":"9839:120:64"},{"nativeSrc":"9969:117:64","nodeType":"YulBlock","src":"9969:117:64","statements":[{"nativeSrc":"9984:15:64","nodeType":"YulVariableDeclaration","src":"9984:15:64","value":{"kind":"number","nativeSrc":"9998:1:64","nodeType":"YulLiteral","src":"9998:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9988:6:64","nodeType":"YulTypedName","src":"9988:6:64","type":""}]},{"nativeSrc":"10013:63:64","nodeType":"YulAssignment","src":"10013:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10048:9:64","nodeType":"YulIdentifier","src":"10048:9:64"},{"name":"offset","nativeSrc":"10059:6:64","nodeType":"YulIdentifier","src":"10059:6:64"}],"functionName":{"name":"add","nativeSrc":"10044:3:64","nodeType":"YulIdentifier","src":"10044:3:64"},"nativeSrc":"10044:22:64","nodeType":"YulFunctionCall","src":"10044:22:64"},{"name":"dataEnd","nativeSrc":"10068:7:64","nodeType":"YulIdentifier","src":"10068:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10023:20:64","nodeType":"YulIdentifier","src":"10023:20:64"},"nativeSrc":"10023:53:64","nodeType":"YulFunctionCall","src":"10023:53:64"},"variableNames":[{"name":"value0","nativeSrc":"10013:6:64","nodeType":"YulIdentifier","src":"10013:6:64"}]}]},{"nativeSrc":"10096:118:64","nodeType":"YulBlock","src":"10096:118:64","statements":[{"nativeSrc":"10111:16:64","nodeType":"YulVariableDeclaration","src":"10111:16:64","value":{"kind":"number","nativeSrc":"10125:2:64","nodeType":"YulLiteral","src":"10125:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"10115:6:64","nodeType":"YulTypedName","src":"10115:6:64","type":""}]},{"nativeSrc":"10141:63:64","nodeType":"YulAssignment","src":"10141:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10176:9:64","nodeType":"YulIdentifier","src":"10176:9:64"},{"name":"offset","nativeSrc":"10187:6:64","nodeType":"YulIdentifier","src":"10187:6:64"}],"functionName":{"name":"add","nativeSrc":"10172:3:64","nodeType":"YulIdentifier","src":"10172:3:64"},"nativeSrc":"10172:22:64","nodeType":"YulFunctionCall","src":"10172:22:64"},{"name":"dataEnd","nativeSrc":"10196:7:64","nodeType":"YulIdentifier","src":"10196:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10151:20:64","nodeType":"YulIdentifier","src":"10151:20:64"},"nativeSrc":"10151:53:64","nodeType":"YulFunctionCall","src":"10151:53:64"},"variableNames":[{"name":"value1","nativeSrc":"10141:6:64","nodeType":"YulIdentifier","src":"10141:6:64"}]}]},{"nativeSrc":"10224:313:64","nodeType":"YulBlock","src":"10224:313:64","statements":[{"nativeSrc":"10239:46:64","nodeType":"YulVariableDeclaration","src":"10239:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10270:9:64","nodeType":"YulIdentifier","src":"10270:9:64"},{"kind":"number","nativeSrc":"10281:2:64","nodeType":"YulLiteral","src":"10281:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10266:3:64","nodeType":"YulIdentifier","src":"10266:3:64"},"nativeSrc":"10266:18:64","nodeType":"YulFunctionCall","src":"10266:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"10253:12:64","nodeType":"YulIdentifier","src":"10253:12:64"},"nativeSrc":"10253:32:64","nodeType":"YulFunctionCall","src":"10253:32:64"},"variables":[{"name":"offset","nativeSrc":"10243:6:64","nodeType":"YulTypedName","src":"10243:6:64","type":""}]},{"body":{"nativeSrc":"10332:83:64","nodeType":"YulBlock","src":"10332:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10334:77:64","nodeType":"YulIdentifier","src":"10334:77:64"},"nativeSrc":"10334:79:64","nodeType":"YulFunctionCall","src":"10334:79:64"},"nativeSrc":"10334:79:64","nodeType":"YulExpressionStatement","src":"10334:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10304:6:64","nodeType":"YulIdentifier","src":"10304:6:64"},{"kind":"number","nativeSrc":"10312:18:64","nodeType":"YulLiteral","src":"10312:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10301:2:64","nodeType":"YulIdentifier","src":"10301:2:64"},"nativeSrc":"10301:30:64","nodeType":"YulFunctionCall","src":"10301:30:64"},"nativeSrc":"10298:117:64","nodeType":"YulIf","src":"10298:117:64"},{"nativeSrc":"10429:98:64","nodeType":"YulAssignment","src":"10429:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10499:9:64","nodeType":"YulIdentifier","src":"10499:9:64"},{"name":"offset","nativeSrc":"10510:6:64","nodeType":"YulIdentifier","src":"10510:6:64"}],"functionName":{"name":"add","nativeSrc":"10495:3:64","nodeType":"YulIdentifier","src":"10495:3:64"},"nativeSrc":"10495:22:64","nodeType":"YulFunctionCall","src":"10495:22:64"},{"name":"dataEnd","nativeSrc":"10519:7:64","nodeType":"YulIdentifier","src":"10519:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"10447:47:64","nodeType":"YulIdentifier","src":"10447:47:64"},"nativeSrc":"10447:80:64","nodeType":"YulFunctionCall","src":"10447:80:64"},"variableNames":[{"name":"value2","nativeSrc":"10429:6:64","nodeType":"YulIdentifier","src":"10429:6:64"},{"name":"value3","nativeSrc":"10437:6:64","nodeType":"YulIdentifier","src":"10437:6:64"}]}]},{"nativeSrc":"10547:313:64","nodeType":"YulBlock","src":"10547:313:64","statements":[{"nativeSrc":"10562:46:64","nodeType":"YulVariableDeclaration","src":"10562:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10593:9:64","nodeType":"YulIdentifier","src":"10593:9:64"},{"kind":"number","nativeSrc":"10604:2:64","nodeType":"YulLiteral","src":"10604:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10589:3:64","nodeType":"YulIdentifier","src":"10589:3:64"},"nativeSrc":"10589:18:64","nodeType":"YulFunctionCall","src":"10589:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"10576:12:64","nodeType":"YulIdentifier","src":"10576:12:64"},"nativeSrc":"10576:32:64","nodeType":"YulFunctionCall","src":"10576:32:64"},"variables":[{"name":"offset","nativeSrc":"10566:6:64","nodeType":"YulTypedName","src":"10566:6:64","type":""}]},{"body":{"nativeSrc":"10655:83:64","nodeType":"YulBlock","src":"10655:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10657:77:64","nodeType":"YulIdentifier","src":"10657:77:64"},"nativeSrc":"10657:79:64","nodeType":"YulFunctionCall","src":"10657:79:64"},"nativeSrc":"10657:79:64","nodeType":"YulExpressionStatement","src":"10657:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10627:6:64","nodeType":"YulIdentifier","src":"10627:6:64"},{"kind":"number","nativeSrc":"10635:18:64","nodeType":"YulLiteral","src":"10635:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10624:2:64","nodeType":"YulIdentifier","src":"10624:2:64"},"nativeSrc":"10624:30:64","nodeType":"YulFunctionCall","src":"10624:30:64"},"nativeSrc":"10621:117:64","nodeType":"YulIf","src":"10621:117:64"},{"nativeSrc":"10752:98:64","nodeType":"YulAssignment","src":"10752:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10822:9:64","nodeType":"YulIdentifier","src":"10822:9:64"},{"name":"offset","nativeSrc":"10833:6:64","nodeType":"YulIdentifier","src":"10833:6:64"}],"functionName":{"name":"add","nativeSrc":"10818:3:64","nodeType":"YulIdentifier","src":"10818:3:64"},"nativeSrc":"10818:22:64","nodeType":"YulFunctionCall","src":"10818:22:64"},{"name":"dataEnd","nativeSrc":"10842:7:64","nodeType":"YulIdentifier","src":"10842:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"10770:47:64","nodeType":"YulIdentifier","src":"10770:47:64"},"nativeSrc":"10770:80:64","nodeType":"YulFunctionCall","src":"10770:80:64"},"variableNames":[{"name":"value4","nativeSrc":"10752:6:64","nodeType":"YulIdentifier","src":"10752:6:64"},{"name":"value5","nativeSrc":"10760:6:64","nodeType":"YulIdentifier","src":"10760:6:64"}]}]},{"nativeSrc":"10870:298:64","nodeType":"YulBlock","src":"10870:298:64","statements":[{"nativeSrc":"10885:47:64","nodeType":"YulVariableDeclaration","src":"10885:47:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10916:9:64","nodeType":"YulIdentifier","src":"10916:9:64"},{"kind":"number","nativeSrc":"10927:3:64","nodeType":"YulLiteral","src":"10927:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10912:3:64","nodeType":"YulIdentifier","src":"10912:3:64"},"nativeSrc":"10912:19:64","nodeType":"YulFunctionCall","src":"10912:19:64"}],"functionName":{"name":"calldataload","nativeSrc":"10899:12:64","nodeType":"YulIdentifier","src":"10899:12:64"},"nativeSrc":"10899:33:64","nodeType":"YulFunctionCall","src":"10899:33:64"},"variables":[{"name":"offset","nativeSrc":"10889:6:64","nodeType":"YulTypedName","src":"10889:6:64","type":""}]},{"body":{"nativeSrc":"10979:83:64","nodeType":"YulBlock","src":"10979:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10981:77:64","nodeType":"YulIdentifier","src":"10981:77:64"},"nativeSrc":"10981:79:64","nodeType":"YulFunctionCall","src":"10981:79:64"},"nativeSrc":"10981:79:64","nodeType":"YulExpressionStatement","src":"10981:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10951:6:64","nodeType":"YulIdentifier","src":"10951:6:64"},{"kind":"number","nativeSrc":"10959:18:64","nodeType":"YulLiteral","src":"10959:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10948:2:64","nodeType":"YulIdentifier","src":"10948:2:64"},"nativeSrc":"10948:30:64","nodeType":"YulFunctionCall","src":"10948:30:64"},"nativeSrc":"10945:117:64","nodeType":"YulIf","src":"10945:117:64"},{"nativeSrc":"11076:82:64","nodeType":"YulAssignment","src":"11076:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11130:9:64","nodeType":"YulIdentifier","src":"11130:9:64"},{"name":"offset","nativeSrc":"11141:6:64","nodeType":"YulIdentifier","src":"11141:6:64"}],"functionName":{"name":"add","nativeSrc":"11126:3:64","nodeType":"YulIdentifier","src":"11126:3:64"},"nativeSrc":"11126:22:64","nodeType":"YulFunctionCall","src":"11126:22:64"},{"name":"dataEnd","nativeSrc":"11150:7:64","nodeType":"YulIdentifier","src":"11150:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"11094:31:64","nodeType":"YulIdentifier","src":"11094:31:64"},"nativeSrc":"11094:64:64","nodeType":"YulFunctionCall","src":"11094:64:64"},"variableNames":[{"name":"value6","nativeSrc":"11076:6:64","nodeType":"YulIdentifier","src":"11076:6:64"},{"name":"value7","nativeSrc":"11084:6:64","nodeType":"YulIdentifier","src":"11084:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"9606:1569:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9743:9:64","nodeType":"YulTypedName","src":"9743:9:64","type":""},{"name":"dataEnd","nativeSrc":"9754:7:64","nodeType":"YulTypedName","src":"9754:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9766:6:64","nodeType":"YulTypedName","src":"9766:6:64","type":""},{"name":"value1","nativeSrc":"9774:6:64","nodeType":"YulTypedName","src":"9774:6:64","type":""},{"name":"value2","nativeSrc":"9782:6:64","nodeType":"YulTypedName","src":"9782:6:64","type":""},{"name":"value3","nativeSrc":"9790:6:64","nodeType":"YulTypedName","src":"9790:6:64","type":""},{"name":"value4","nativeSrc":"9798:6:64","nodeType":"YulTypedName","src":"9798:6:64","type":""},{"name":"value5","nativeSrc":"9806:6:64","nodeType":"YulTypedName","src":"9806:6:64","type":""},{"name":"value6","nativeSrc":"9814:6:64","nodeType":"YulTypedName","src":"9814:6:64","type":""},{"name":"value7","nativeSrc":"9822:6:64","nodeType":"YulTypedName","src":"9822:6:64","type":""}],"src":"9606:1569:64"},{"body":{"nativeSrc":"11334:956:64","nodeType":"YulBlock","src":"11334:956:64","statements":[{"body":{"nativeSrc":"11381:83:64","nodeType":"YulBlock","src":"11381:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11383:77:64","nodeType":"YulIdentifier","src":"11383:77:64"},"nativeSrc":"11383:79:64","nodeType":"YulFunctionCall","src":"11383:79:64"},"nativeSrc":"11383:79:64","nodeType":"YulExpressionStatement","src":"11383:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11355:7:64","nodeType":"YulIdentifier","src":"11355:7:64"},{"name":"headStart","nativeSrc":"11364:9:64","nodeType":"YulIdentifier","src":"11364:9:64"}],"functionName":{"name":"sub","nativeSrc":"11351:3:64","nodeType":"YulIdentifier","src":"11351:3:64"},"nativeSrc":"11351:23:64","nodeType":"YulFunctionCall","src":"11351:23:64"},{"kind":"number","nativeSrc":"11376:3:64","nodeType":"YulLiteral","src":"11376:3:64","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"11347:3:64","nodeType":"YulIdentifier","src":"11347:3:64"},"nativeSrc":"11347:33:64","nodeType":"YulFunctionCall","src":"11347:33:64"},"nativeSrc":"11344:120:64","nodeType":"YulIf","src":"11344:120:64"},{"nativeSrc":"11474:117:64","nodeType":"YulBlock","src":"11474:117:64","statements":[{"nativeSrc":"11489:15:64","nodeType":"YulVariableDeclaration","src":"11489:15:64","value":{"kind":"number","nativeSrc":"11503:1:64","nodeType":"YulLiteral","src":"11503:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11493:6:64","nodeType":"YulTypedName","src":"11493:6:64","type":""}]},{"nativeSrc":"11518:63:64","nodeType":"YulAssignment","src":"11518:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11553:9:64","nodeType":"YulIdentifier","src":"11553:9:64"},{"name":"offset","nativeSrc":"11564:6:64","nodeType":"YulIdentifier","src":"11564:6:64"}],"functionName":{"name":"add","nativeSrc":"11549:3:64","nodeType":"YulIdentifier","src":"11549:3:64"},"nativeSrc":"11549:22:64","nodeType":"YulFunctionCall","src":"11549:22:64"},{"name":"dataEnd","nativeSrc":"11573:7:64","nodeType":"YulIdentifier","src":"11573:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11528:20:64","nodeType":"YulIdentifier","src":"11528:20:64"},"nativeSrc":"11528:53:64","nodeType":"YulFunctionCall","src":"11528:53:64"},"variableNames":[{"name":"value0","nativeSrc":"11518:6:64","nodeType":"YulIdentifier","src":"11518:6:64"}]}]},{"nativeSrc":"11601:118:64","nodeType":"YulBlock","src":"11601:118:64","statements":[{"nativeSrc":"11616:16:64","nodeType":"YulVariableDeclaration","src":"11616:16:64","value":{"kind":"number","nativeSrc":"11630:2:64","nodeType":"YulLiteral","src":"11630:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11620:6:64","nodeType":"YulTypedName","src":"11620:6:64","type":""}]},{"nativeSrc":"11646:63:64","nodeType":"YulAssignment","src":"11646:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11681:9:64","nodeType":"YulIdentifier","src":"11681:9:64"},{"name":"offset","nativeSrc":"11692:6:64","nodeType":"YulIdentifier","src":"11692:6:64"}],"functionName":{"name":"add","nativeSrc":"11677:3:64","nodeType":"YulIdentifier","src":"11677:3:64"},"nativeSrc":"11677:22:64","nodeType":"YulFunctionCall","src":"11677:22:64"},{"name":"dataEnd","nativeSrc":"11701:7:64","nodeType":"YulIdentifier","src":"11701:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11656:20:64","nodeType":"YulIdentifier","src":"11656:20:64"},"nativeSrc":"11656:53:64","nodeType":"YulFunctionCall","src":"11656:53:64"},"variableNames":[{"name":"value1","nativeSrc":"11646:6:64","nodeType":"YulIdentifier","src":"11646:6:64"}]}]},{"nativeSrc":"11729:118:64","nodeType":"YulBlock","src":"11729:118:64","statements":[{"nativeSrc":"11744:16:64","nodeType":"YulVariableDeclaration","src":"11744:16:64","value":{"kind":"number","nativeSrc":"11758:2:64","nodeType":"YulLiteral","src":"11758:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11748:6:64","nodeType":"YulTypedName","src":"11748:6:64","type":""}]},{"nativeSrc":"11774:63:64","nodeType":"YulAssignment","src":"11774:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11809:9:64","nodeType":"YulIdentifier","src":"11809:9:64"},{"name":"offset","nativeSrc":"11820:6:64","nodeType":"YulIdentifier","src":"11820:6:64"}],"functionName":{"name":"add","nativeSrc":"11805:3:64","nodeType":"YulIdentifier","src":"11805:3:64"},"nativeSrc":"11805:22:64","nodeType":"YulFunctionCall","src":"11805:22:64"},{"name":"dataEnd","nativeSrc":"11829:7:64","nodeType":"YulIdentifier","src":"11829:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11784:20:64","nodeType":"YulIdentifier","src":"11784:20:64"},"nativeSrc":"11784:53:64","nodeType":"YulFunctionCall","src":"11784:53:64"},"variableNames":[{"name":"value2","nativeSrc":"11774:6:64","nodeType":"YulIdentifier","src":"11774:6:64"}]}]},{"nativeSrc":"11857:118:64","nodeType":"YulBlock","src":"11857:118:64","statements":[{"nativeSrc":"11872:16:64","nodeType":"YulVariableDeclaration","src":"11872:16:64","value":{"kind":"number","nativeSrc":"11886:2:64","nodeType":"YulLiteral","src":"11886:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11876:6:64","nodeType":"YulTypedName","src":"11876:6:64","type":""}]},{"nativeSrc":"11902:63:64","nodeType":"YulAssignment","src":"11902:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11937:9:64","nodeType":"YulIdentifier","src":"11937:9:64"},{"name":"offset","nativeSrc":"11948:6:64","nodeType":"YulIdentifier","src":"11948:6:64"}],"functionName":{"name":"add","nativeSrc":"11933:3:64","nodeType":"YulIdentifier","src":"11933:3:64"},"nativeSrc":"11933:22:64","nodeType":"YulFunctionCall","src":"11933:22:64"},{"name":"dataEnd","nativeSrc":"11957:7:64","nodeType":"YulIdentifier","src":"11957:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11912:20:64","nodeType":"YulIdentifier","src":"11912:20:64"},"nativeSrc":"11912:53:64","nodeType":"YulFunctionCall","src":"11912:53:64"},"variableNames":[{"name":"value3","nativeSrc":"11902:6:64","nodeType":"YulIdentifier","src":"11902:6:64"}]}]},{"nativeSrc":"11985:298:64","nodeType":"YulBlock","src":"11985:298:64","statements":[{"nativeSrc":"12000:47:64","nodeType":"YulVariableDeclaration","src":"12000:47:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12031:9:64","nodeType":"YulIdentifier","src":"12031:9:64"},{"kind":"number","nativeSrc":"12042:3:64","nodeType":"YulLiteral","src":"12042:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"12027:3:64","nodeType":"YulIdentifier","src":"12027:3:64"},"nativeSrc":"12027:19:64","nodeType":"YulFunctionCall","src":"12027:19:64"}],"functionName":{"name":"calldataload","nativeSrc":"12014:12:64","nodeType":"YulIdentifier","src":"12014:12:64"},"nativeSrc":"12014:33:64","nodeType":"YulFunctionCall","src":"12014:33:64"},"variables":[{"name":"offset","nativeSrc":"12004:6:64","nodeType":"YulTypedName","src":"12004:6:64","type":""}]},{"body":{"nativeSrc":"12094:83:64","nodeType":"YulBlock","src":"12094:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12096:77:64","nodeType":"YulIdentifier","src":"12096:77:64"},"nativeSrc":"12096:79:64","nodeType":"YulFunctionCall","src":"12096:79:64"},"nativeSrc":"12096:79:64","nodeType":"YulExpressionStatement","src":"12096:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12066:6:64","nodeType":"YulIdentifier","src":"12066:6:64"},{"kind":"number","nativeSrc":"12074:18:64","nodeType":"YulLiteral","src":"12074:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12063:2:64","nodeType":"YulIdentifier","src":"12063:2:64"},"nativeSrc":"12063:30:64","nodeType":"YulFunctionCall","src":"12063:30:64"},"nativeSrc":"12060:117:64","nodeType":"YulIf","src":"12060:117:64"},{"nativeSrc":"12191:82:64","nodeType":"YulAssignment","src":"12191:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12245:9:64","nodeType":"YulIdentifier","src":"12245:9:64"},{"name":"offset","nativeSrc":"12256:6:64","nodeType":"YulIdentifier","src":"12256:6:64"}],"functionName":{"name":"add","nativeSrc":"12241:3:64","nodeType":"YulIdentifier","src":"12241:3:64"},"nativeSrc":"12241:22:64","nodeType":"YulFunctionCall","src":"12241:22:64"},{"name":"dataEnd","nativeSrc":"12265:7:64","nodeType":"YulIdentifier","src":"12265:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"12209:31:64","nodeType":"YulIdentifier","src":"12209:31:64"},"nativeSrc":"12209:64:64","nodeType":"YulFunctionCall","src":"12209:64:64"},"variableNames":[{"name":"value4","nativeSrc":"12191:6:64","nodeType":"YulIdentifier","src":"12191:6:64"},{"name":"value5","nativeSrc":"12199:6:64","nodeType":"YulIdentifier","src":"12199:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr","nativeSrc":"11181:1109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11264:9:64","nodeType":"YulTypedName","src":"11264:9:64","type":""},{"name":"dataEnd","nativeSrc":"11275:7:64","nodeType":"YulTypedName","src":"11275:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11287:6:64","nodeType":"YulTypedName","src":"11287:6:64","type":""},{"name":"value1","nativeSrc":"11295:6:64","nodeType":"YulTypedName","src":"11295:6:64","type":""},{"name":"value2","nativeSrc":"11303:6:64","nodeType":"YulTypedName","src":"11303:6:64","type":""},{"name":"value3","nativeSrc":"11311:6:64","nodeType":"YulTypedName","src":"11311:6:64","type":""},{"name":"value4","nativeSrc":"11319:6:64","nodeType":"YulTypedName","src":"11319:6:64","type":""},{"name":"value5","nativeSrc":"11327:6:64","nodeType":"YulTypedName","src":"11327:6:64","type":""}],"src":"11181:1109:64"},{"body":{"nativeSrc":"12324:152:64","nodeType":"YulBlock","src":"12324:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12341:1:64","nodeType":"YulLiteral","src":"12341:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12344:77:64","nodeType":"YulLiteral","src":"12344:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12334:6:64","nodeType":"YulIdentifier","src":"12334:6:64"},"nativeSrc":"12334:88:64","nodeType":"YulFunctionCall","src":"12334:88:64"},"nativeSrc":"12334:88:64","nodeType":"YulExpressionStatement","src":"12334:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12438:1:64","nodeType":"YulLiteral","src":"12438:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"12441:4:64","nodeType":"YulLiteral","src":"12441:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"12431:6:64","nodeType":"YulIdentifier","src":"12431:6:64"},"nativeSrc":"12431:15:64","nodeType":"YulFunctionCall","src":"12431:15:64"},"nativeSrc":"12431:15:64","nodeType":"YulExpressionStatement","src":"12431:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12462:1:64","nodeType":"YulLiteral","src":"12462:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12465:4:64","nodeType":"YulLiteral","src":"12465:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12455:6:64","nodeType":"YulIdentifier","src":"12455:6:64"},"nativeSrc":"12455:15:64","nodeType":"YulFunctionCall","src":"12455:15:64"},"nativeSrc":"12455:15:64","nodeType":"YulExpressionStatement","src":"12455:15:64"}]},"name":"panic_error_0x32","nativeSrc":"12296:180:64","nodeType":"YulFunctionDefinition","src":"12296:180:64"},{"body":{"nativeSrc":"12522:76:64","nodeType":"YulBlock","src":"12522:76:64","statements":[{"body":{"nativeSrc":"12576:16:64","nodeType":"YulBlock","src":"12576:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12585:1:64","nodeType":"YulLiteral","src":"12585:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12588:1:64","nodeType":"YulLiteral","src":"12588:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12578:6:64","nodeType":"YulIdentifier","src":"12578:6:64"},"nativeSrc":"12578:12:64","nodeType":"YulFunctionCall","src":"12578:12:64"},"nativeSrc":"12578:12:64","nodeType":"YulExpressionStatement","src":"12578:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12545:5:64","nodeType":"YulIdentifier","src":"12545:5:64"},{"arguments":[{"name":"value","nativeSrc":"12567:5:64","nodeType":"YulIdentifier","src":"12567:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12552:14:64","nodeType":"YulIdentifier","src":"12552:14:64"},"nativeSrc":"12552:21:64","nodeType":"YulFunctionCall","src":"12552:21:64"}],"functionName":{"name":"eq","nativeSrc":"12542:2:64","nodeType":"YulIdentifier","src":"12542:2:64"},"nativeSrc":"12542:32:64","nodeType":"YulFunctionCall","src":"12542:32:64"}],"functionName":{"name":"iszero","nativeSrc":"12535:6:64","nodeType":"YulIdentifier","src":"12535:6:64"},"nativeSrc":"12535:40:64","nodeType":"YulFunctionCall","src":"12535:40:64"},"nativeSrc":"12532:60:64","nodeType":"YulIf","src":"12532:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"12482:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12515:5:64","nodeType":"YulTypedName","src":"12515:5:64","type":""}],"src":"12482:116:64"},{"body":{"nativeSrc":"12653:84:64","nodeType":"YulBlock","src":"12653:84:64","statements":[{"nativeSrc":"12663:29:64","nodeType":"YulAssignment","src":"12663:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"12685:6:64","nodeType":"YulIdentifier","src":"12685:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"12672:12:64","nodeType":"YulIdentifier","src":"12672:12:64"},"nativeSrc":"12672:20:64","nodeType":"YulFunctionCall","src":"12672:20:64"},"variableNames":[{"name":"value","nativeSrc":"12663:5:64","nodeType":"YulIdentifier","src":"12663:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12725:5:64","nodeType":"YulIdentifier","src":"12725:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"12701:23:64","nodeType":"YulIdentifier","src":"12701:23:64"},"nativeSrc":"12701:30:64","nodeType":"YulFunctionCall","src":"12701:30:64"},"nativeSrc":"12701:30:64","nodeType":"YulExpressionStatement","src":"12701:30:64"}]},"name":"abi_decode_t_bool","nativeSrc":"12604:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12631:6:64","nodeType":"YulTypedName","src":"12631:6:64","type":""},{"name":"end","nativeSrc":"12639:3:64","nodeType":"YulTypedName","src":"12639:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12647:5:64","nodeType":"YulTypedName","src":"12647:5:64","type":""}],"src":"12604:133:64"},{"body":{"nativeSrc":"12806:260:64","nodeType":"YulBlock","src":"12806:260:64","statements":[{"body":{"nativeSrc":"12852:83:64","nodeType":"YulBlock","src":"12852:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12854:77:64","nodeType":"YulIdentifier","src":"12854:77:64"},"nativeSrc":"12854:79:64","nodeType":"YulFunctionCall","src":"12854:79:64"},"nativeSrc":"12854:79:64","nodeType":"YulExpressionStatement","src":"12854:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12827:7:64","nodeType":"YulIdentifier","src":"12827:7:64"},{"name":"headStart","nativeSrc":"12836:9:64","nodeType":"YulIdentifier","src":"12836:9:64"}],"functionName":{"name":"sub","nativeSrc":"12823:3:64","nodeType":"YulIdentifier","src":"12823:3:64"},"nativeSrc":"12823:23:64","nodeType":"YulFunctionCall","src":"12823:23:64"},{"kind":"number","nativeSrc":"12848:2:64","nodeType":"YulLiteral","src":"12848:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12819:3:64","nodeType":"YulIdentifier","src":"12819:3:64"},"nativeSrc":"12819:32:64","nodeType":"YulFunctionCall","src":"12819:32:64"},"nativeSrc":"12816:119:64","nodeType":"YulIf","src":"12816:119:64"},{"nativeSrc":"12945:114:64","nodeType":"YulBlock","src":"12945:114:64","statements":[{"nativeSrc":"12960:15:64","nodeType":"YulVariableDeclaration","src":"12960:15:64","value":{"kind":"number","nativeSrc":"12974:1:64","nodeType":"YulLiteral","src":"12974:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12964:6:64","nodeType":"YulTypedName","src":"12964:6:64","type":""}]},{"nativeSrc":"12989:60:64","nodeType":"YulAssignment","src":"12989:60:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13021:9:64","nodeType":"YulIdentifier","src":"13021:9:64"},{"name":"offset","nativeSrc":"13032:6:64","nodeType":"YulIdentifier","src":"13032:6:64"}],"functionName":{"name":"add","nativeSrc":"13017:3:64","nodeType":"YulIdentifier","src":"13017:3:64"},"nativeSrc":"13017:22:64","nodeType":"YulFunctionCall","src":"13017:22:64"},{"name":"dataEnd","nativeSrc":"13041:7:64","nodeType":"YulIdentifier","src":"13041:7:64"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"12999:17:64","nodeType":"YulIdentifier","src":"12999:17:64"},"nativeSrc":"12999:50:64","nodeType":"YulFunctionCall","src":"12999:50:64"},"variableNames":[{"name":"value0","nativeSrc":"12989:6:64","nodeType":"YulIdentifier","src":"12989:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"12743:323:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12776:9:64","nodeType":"YulTypedName","src":"12776:9:64","type":""},{"name":"dataEnd","nativeSrc":"12787:7:64","nodeType":"YulTypedName","src":"12787:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12799:6:64","nodeType":"YulTypedName","src":"12799:6:64","type":""}],"src":"12743:323:64"},{"body":{"nativeSrc":"13161:28:64","nodeType":"YulBlock","src":"13161:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13178:1:64","nodeType":"YulLiteral","src":"13178:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"13181:1:64","nodeType":"YulLiteral","src":"13181:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13171:6:64","nodeType":"YulIdentifier","src":"13171:6:64"},"nativeSrc":"13171:12:64","nodeType":"YulFunctionCall","src":"13171:12:64"},"nativeSrc":"13171:12:64","nodeType":"YulExpressionStatement","src":"13171:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"13072:117:64","nodeType":"YulFunctionDefinition","src":"13072:117:64"},{"body":{"nativeSrc":"13243:54:64","nodeType":"YulBlock","src":"13243:54:64","statements":[{"nativeSrc":"13253:38:64","nodeType":"YulAssignment","src":"13253:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13271:5:64","nodeType":"YulIdentifier","src":"13271:5:64"},{"kind":"number","nativeSrc":"13278:2:64","nodeType":"YulLiteral","src":"13278:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"13267:3:64","nodeType":"YulIdentifier","src":"13267:3:64"},"nativeSrc":"13267:14:64","nodeType":"YulFunctionCall","src":"13267:14:64"},{"arguments":[{"kind":"number","nativeSrc":"13287:2:64","nodeType":"YulLiteral","src":"13287:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"13283:3:64","nodeType":"YulIdentifier","src":"13283:3:64"},"nativeSrc":"13283:7:64","nodeType":"YulFunctionCall","src":"13283:7:64"}],"functionName":{"name":"and","nativeSrc":"13263:3:64","nodeType":"YulIdentifier","src":"13263:3:64"},"nativeSrc":"13263:28:64","nodeType":"YulFunctionCall","src":"13263:28:64"},"variableNames":[{"name":"result","nativeSrc":"13253:6:64","nodeType":"YulIdentifier","src":"13253:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"13195:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13226:5:64","nodeType":"YulTypedName","src":"13226:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"13236:6:64","nodeType":"YulTypedName","src":"13236:6:64","type":""}],"src":"13195:102:64"},{"body":{"nativeSrc":"13331:152:64","nodeType":"YulBlock","src":"13331:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13348:1:64","nodeType":"YulLiteral","src":"13348:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"13351:77:64","nodeType":"YulLiteral","src":"13351:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"13341:6:64","nodeType":"YulIdentifier","src":"13341:6:64"},"nativeSrc":"13341:88:64","nodeType":"YulFunctionCall","src":"13341:88:64"},"nativeSrc":"13341:88:64","nodeType":"YulExpressionStatement","src":"13341:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13445:1:64","nodeType":"YulLiteral","src":"13445:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"13448:4:64","nodeType":"YulLiteral","src":"13448:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"13438:6:64","nodeType":"YulIdentifier","src":"13438:6:64"},"nativeSrc":"13438:15:64","nodeType":"YulFunctionCall","src":"13438:15:64"},"nativeSrc":"13438:15:64","nodeType":"YulExpressionStatement","src":"13438:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13469:1:64","nodeType":"YulLiteral","src":"13469:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"13472:4:64","nodeType":"YulLiteral","src":"13472:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"13462:6:64","nodeType":"YulIdentifier","src":"13462:6:64"},"nativeSrc":"13462:15:64","nodeType":"YulFunctionCall","src":"13462:15:64"},"nativeSrc":"13462:15:64","nodeType":"YulExpressionStatement","src":"13462:15:64"}]},"name":"panic_error_0x41","nativeSrc":"13303:180:64","nodeType":"YulFunctionDefinition","src":"13303:180:64"},{"body":{"nativeSrc":"13532:238:64","nodeType":"YulBlock","src":"13532:238:64","statements":[{"nativeSrc":"13542:58:64","nodeType":"YulVariableDeclaration","src":"13542:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"13564:6:64","nodeType":"YulIdentifier","src":"13564:6:64"},{"arguments":[{"name":"size","nativeSrc":"13594:4:64","nodeType":"YulIdentifier","src":"13594:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13572:21:64","nodeType":"YulIdentifier","src":"13572:21:64"},"nativeSrc":"13572:27:64","nodeType":"YulFunctionCall","src":"13572:27:64"}],"functionName":{"name":"add","nativeSrc":"13560:3:64","nodeType":"YulIdentifier","src":"13560:3:64"},"nativeSrc":"13560:40:64","nodeType":"YulFunctionCall","src":"13560:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"13546:10:64","nodeType":"YulTypedName","src":"13546:10:64","type":""}]},{"body":{"nativeSrc":"13711:22:64","nodeType":"YulBlock","src":"13711:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"13713:16:64","nodeType":"YulIdentifier","src":"13713:16:64"},"nativeSrc":"13713:18:64","nodeType":"YulFunctionCall","src":"13713:18:64"},"nativeSrc":"13713:18:64","nodeType":"YulExpressionStatement","src":"13713:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"13654:10:64","nodeType":"YulIdentifier","src":"13654:10:64"},{"kind":"number","nativeSrc":"13666:18:64","nodeType":"YulLiteral","src":"13666:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13651:2:64","nodeType":"YulIdentifier","src":"13651:2:64"},"nativeSrc":"13651:34:64","nodeType":"YulFunctionCall","src":"13651:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"13690:10:64","nodeType":"YulIdentifier","src":"13690:10:64"},{"name":"memPtr","nativeSrc":"13702:6:64","nodeType":"YulIdentifier","src":"13702:6:64"}],"functionName":{"name":"lt","nativeSrc":"13687:2:64","nodeType":"YulIdentifier","src":"13687:2:64"},"nativeSrc":"13687:22:64","nodeType":"YulFunctionCall","src":"13687:22:64"}],"functionName":{"name":"or","nativeSrc":"13648:2:64","nodeType":"YulIdentifier","src":"13648:2:64"},"nativeSrc":"13648:62:64","nodeType":"YulFunctionCall","src":"13648:62:64"},"nativeSrc":"13645:88:64","nodeType":"YulIf","src":"13645:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13749:2:64","nodeType":"YulLiteral","src":"13749:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"13753:10:64","nodeType":"YulIdentifier","src":"13753:10:64"}],"functionName":{"name":"mstore","nativeSrc":"13742:6:64","nodeType":"YulIdentifier","src":"13742:6:64"},"nativeSrc":"13742:22:64","nodeType":"YulFunctionCall","src":"13742:22:64"},"nativeSrc":"13742:22:64","nodeType":"YulExpressionStatement","src":"13742:22:64"}]},"name":"finalize_allocation","nativeSrc":"13489:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"13518:6:64","nodeType":"YulTypedName","src":"13518:6:64","type":""},{"name":"size","nativeSrc":"13526:4:64","nodeType":"YulTypedName","src":"13526:4:64","type":""}],"src":"13489:281:64"},{"body":{"nativeSrc":"13817:88:64","nodeType":"YulBlock","src":"13817:88:64","statements":[{"nativeSrc":"13827:30:64","nodeType":"YulAssignment","src":"13827:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"13837:18:64","nodeType":"YulIdentifier","src":"13837:18:64"},"nativeSrc":"13837:20:64","nodeType":"YulFunctionCall","src":"13837:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"13827:6:64","nodeType":"YulIdentifier","src":"13827:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"13886:6:64","nodeType":"YulIdentifier","src":"13886:6:64"},{"name":"size","nativeSrc":"13894:4:64","nodeType":"YulIdentifier","src":"13894:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"13866:19:64","nodeType":"YulIdentifier","src":"13866:19:64"},"nativeSrc":"13866:33:64","nodeType":"YulFunctionCall","src":"13866:33:64"},"nativeSrc":"13866:33:64","nodeType":"YulExpressionStatement","src":"13866:33:64"}]},"name":"allocate_memory","nativeSrc":"13776:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"13801:4:64","nodeType":"YulTypedName","src":"13801:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"13810:6:64","nodeType":"YulTypedName","src":"13810:6:64","type":""}],"src":"13776:129:64"},{"body":{"nativeSrc":"14000:28:64","nodeType":"YulBlock","src":"14000:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14017:1:64","nodeType":"YulLiteral","src":"14017:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"14020:1:64","nodeType":"YulLiteral","src":"14020:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14010:6:64","nodeType":"YulIdentifier","src":"14010:6:64"},"nativeSrc":"14010:12:64","nodeType":"YulFunctionCall","src":"14010:12:64"},"nativeSrc":"14010:12:64","nodeType":"YulExpressionStatement","src":"14010:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"13911:117:64","nodeType":"YulFunctionDefinition","src":"13911:117:64"},{"body":{"nativeSrc":"14116:229:64","nodeType":"YulBlock","src":"14116:229:64","statements":[{"body":{"nativeSrc":"14221:22:64","nodeType":"YulBlock","src":"14221:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"14223:16:64","nodeType":"YulIdentifier","src":"14223:16:64"},"nativeSrc":"14223:18:64","nodeType":"YulFunctionCall","src":"14223:18:64"},"nativeSrc":"14223:18:64","nodeType":"YulExpressionStatement","src":"14223:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14193:6:64","nodeType":"YulIdentifier","src":"14193:6:64"},{"kind":"number","nativeSrc":"14201:18:64","nodeType":"YulLiteral","src":"14201:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14190:2:64","nodeType":"YulIdentifier","src":"14190:2:64"},"nativeSrc":"14190:30:64","nodeType":"YulFunctionCall","src":"14190:30:64"},"nativeSrc":"14187:56:64","nodeType":"YulIf","src":"14187:56:64"},{"nativeSrc":"14253:25:64","nodeType":"YulAssignment","src":"14253:25:64","value":{"arguments":[{"name":"length","nativeSrc":"14265:6:64","nodeType":"YulIdentifier","src":"14265:6:64"},{"kind":"number","nativeSrc":"14273:4:64","nodeType":"YulLiteral","src":"14273:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"14261:3:64","nodeType":"YulIdentifier","src":"14261:3:64"},"nativeSrc":"14261:17:64","nodeType":"YulFunctionCall","src":"14261:17:64"},"variableNames":[{"name":"size","nativeSrc":"14253:4:64","nodeType":"YulIdentifier","src":"14253:4:64"}]},{"nativeSrc":"14315:23:64","nodeType":"YulAssignment","src":"14315:23:64","value":{"arguments":[{"name":"size","nativeSrc":"14327:4:64","nodeType":"YulIdentifier","src":"14327:4:64"},{"kind":"number","nativeSrc":"14333:4:64","nodeType":"YulLiteral","src":"14333:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14323:3:64","nodeType":"YulIdentifier","src":"14323:3:64"},"nativeSrc":"14323:15:64","nodeType":"YulFunctionCall","src":"14323:15:64"},"variableNames":[{"name":"size","nativeSrc":"14315:4:64","nodeType":"YulIdentifier","src":"14315:4:64"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14034:311:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14100:6:64","nodeType":"YulTypedName","src":"14100:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14111:4:64","nodeType":"YulTypedName","src":"14111:4:64","type":""}],"src":"14034:311:64"},{"body":{"nativeSrc":"14470:608:64","nodeType":"YulBlock","src":"14470:608:64","statements":[{"nativeSrc":"14480:90:64","nodeType":"YulAssignment","src":"14480:90:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14562:6:64","nodeType":"YulIdentifier","src":"14562:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14505:56:64","nodeType":"YulIdentifier","src":"14505:56:64"},"nativeSrc":"14505:64:64","nodeType":"YulFunctionCall","src":"14505:64:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"14489:15:64","nodeType":"YulIdentifier","src":"14489:15:64"},"nativeSrc":"14489:81:64","nodeType":"YulFunctionCall","src":"14489:81:64"},"variableNames":[{"name":"array","nativeSrc":"14480:5:64","nodeType":"YulIdentifier","src":"14480:5:64"}]},{"nativeSrc":"14579:16:64","nodeType":"YulVariableDeclaration","src":"14579:16:64","value":{"name":"array","nativeSrc":"14590:5:64","nodeType":"YulIdentifier","src":"14590:5:64"},"variables":[{"name":"dst","nativeSrc":"14583:3:64","nodeType":"YulTypedName","src":"14583:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"14612:5:64","nodeType":"YulIdentifier","src":"14612:5:64"},{"name":"length","nativeSrc":"14619:6:64","nodeType":"YulIdentifier","src":"14619:6:64"}],"functionName":{"name":"mstore","nativeSrc":"14605:6:64","nodeType":"YulIdentifier","src":"14605:6:64"},"nativeSrc":"14605:21:64","nodeType":"YulFunctionCall","src":"14605:21:64"},"nativeSrc":"14605:21:64","nodeType":"YulExpressionStatement","src":"14605:21:64"},{"nativeSrc":"14635:23:64","nodeType":"YulAssignment","src":"14635:23:64","value":{"arguments":[{"name":"array","nativeSrc":"14646:5:64","nodeType":"YulIdentifier","src":"14646:5:64"},{"kind":"number","nativeSrc":"14653:4:64","nodeType":"YulLiteral","src":"14653:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14642:3:64","nodeType":"YulIdentifier","src":"14642:3:64"},"nativeSrc":"14642:16:64","nodeType":"YulFunctionCall","src":"14642:16:64"},"variableNames":[{"name":"dst","nativeSrc":"14635:3:64","nodeType":"YulIdentifier","src":"14635:3:64"}]},{"nativeSrc":"14668:44:64","nodeType":"YulVariableDeclaration","src":"14668:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"14686:6:64","nodeType":"YulIdentifier","src":"14686:6:64"},{"arguments":[{"name":"length","nativeSrc":"14698:6:64","nodeType":"YulIdentifier","src":"14698:6:64"},{"kind":"number","nativeSrc":"14706:4:64","nodeType":"YulLiteral","src":"14706:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"14694:3:64","nodeType":"YulIdentifier","src":"14694:3:64"},"nativeSrc":"14694:17:64","nodeType":"YulFunctionCall","src":"14694:17:64"}],"functionName":{"name":"add","nativeSrc":"14682:3:64","nodeType":"YulIdentifier","src":"14682:3:64"},"nativeSrc":"14682:30:64","nodeType":"YulFunctionCall","src":"14682:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"14672:6:64","nodeType":"YulTypedName","src":"14672:6:64","type":""}]},{"body":{"nativeSrc":"14740:103:64","nodeType":"YulBlock","src":"14740:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"14754:77:64","nodeType":"YulIdentifier","src":"14754:77:64"},"nativeSrc":"14754:79:64","nodeType":"YulFunctionCall","src":"14754:79:64"},"nativeSrc":"14754:79:64","nodeType":"YulExpressionStatement","src":"14754:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"14727:6:64","nodeType":"YulIdentifier","src":"14727:6:64"},{"name":"end","nativeSrc":"14735:3:64","nodeType":"YulIdentifier","src":"14735:3:64"}],"functionName":{"name":"gt","nativeSrc":"14724:2:64","nodeType":"YulIdentifier","src":"14724:2:64"},"nativeSrc":"14724:15:64","nodeType":"YulFunctionCall","src":"14724:15:64"},"nativeSrc":"14721:122:64","nodeType":"YulIf","src":"14721:122:64"},{"body":{"nativeSrc":"14928:144:64","nodeType":"YulBlock","src":"14928:144:64","statements":[{"nativeSrc":"14943:21:64","nodeType":"YulVariableDeclaration","src":"14943:21:64","value":{"name":"src","nativeSrc":"14961:3:64","nodeType":"YulIdentifier","src":"14961:3:64"},"variables":[{"name":"elementPos","nativeSrc":"14947:10:64","nodeType":"YulTypedName","src":"14947:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"14985:3:64","nodeType":"YulIdentifier","src":"14985:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"15011:10:64","nodeType":"YulIdentifier","src":"15011:10:64"},{"name":"end","nativeSrc":"15023:3:64","nodeType":"YulIdentifier","src":"15023:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"14990:20:64","nodeType":"YulIdentifier","src":"14990:20:64"},"nativeSrc":"14990:37:64","nodeType":"YulFunctionCall","src":"14990:37:64"}],"functionName":{"name":"mstore","nativeSrc":"14978:6:64","nodeType":"YulIdentifier","src":"14978:6:64"},"nativeSrc":"14978:50:64","nodeType":"YulFunctionCall","src":"14978:50:64"},"nativeSrc":"14978:50:64","nodeType":"YulExpressionStatement","src":"14978:50:64"},{"nativeSrc":"15041:21:64","nodeType":"YulAssignment","src":"15041:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"15052:3:64","nodeType":"YulIdentifier","src":"15052:3:64"},{"kind":"number","nativeSrc":"15057:4:64","nodeType":"YulLiteral","src":"15057:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15048:3:64","nodeType":"YulIdentifier","src":"15048:3:64"},"nativeSrc":"15048:14:64","nodeType":"YulFunctionCall","src":"15048:14:64"},"variableNames":[{"name":"dst","nativeSrc":"15041:3:64","nodeType":"YulIdentifier","src":"15041:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"14881:3:64","nodeType":"YulIdentifier","src":"14881:3:64"},{"name":"srcEnd","nativeSrc":"14886:6:64","nodeType":"YulIdentifier","src":"14886:6:64"}],"functionName":{"name":"lt","nativeSrc":"14878:2:64","nodeType":"YulIdentifier","src":"14878:2:64"},"nativeSrc":"14878:15:64","nodeType":"YulFunctionCall","src":"14878:15:64"},"nativeSrc":"14852:220:64","nodeType":"YulForLoop","post":{"nativeSrc":"14894:25:64","nodeType":"YulBlock","src":"14894:25:64","statements":[{"nativeSrc":"14896:21:64","nodeType":"YulAssignment","src":"14896:21:64","value":{"arguments":[{"name":"src","nativeSrc":"14907:3:64","nodeType":"YulIdentifier","src":"14907:3:64"},{"kind":"number","nativeSrc":"14912:4:64","nodeType":"YulLiteral","src":"14912:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14903:3:64","nodeType":"YulIdentifier","src":"14903:3:64"},"nativeSrc":"14903:14:64","nodeType":"YulFunctionCall","src":"14903:14:64"},"variableNames":[{"name":"src","nativeSrc":"14896:3:64","nodeType":"YulIdentifier","src":"14896:3:64"}]}]},"pre":{"nativeSrc":"14856:21:64","nodeType":"YulBlock","src":"14856:21:64","statements":[{"nativeSrc":"14858:17:64","nodeType":"YulVariableDeclaration","src":"14858:17:64","value":{"name":"offset","nativeSrc":"14869:6:64","nodeType":"YulIdentifier","src":"14869:6:64"},"variables":[{"name":"src","nativeSrc":"14862:3:64","nodeType":"YulTypedName","src":"14862:3:64","type":""}]}]},"src":"14852:220:64"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14368:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14440:6:64","nodeType":"YulTypedName","src":"14440:6:64","type":""},{"name":"length","nativeSrc":"14448:6:64","nodeType":"YulTypedName","src":"14448:6:64","type":""},{"name":"end","nativeSrc":"14456:3:64","nodeType":"YulTypedName","src":"14456:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"14464:5:64","nodeType":"YulTypedName","src":"14464:5:64","type":""}],"src":"14368:710:64"},{"body":{"nativeSrc":"15178:293:64","nodeType":"YulBlock","src":"15178:293:64","statements":[{"body":{"nativeSrc":"15227:83:64","nodeType":"YulBlock","src":"15227:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15229:77:64","nodeType":"YulIdentifier","src":"15229:77:64"},"nativeSrc":"15229:79:64","nodeType":"YulFunctionCall","src":"15229:79:64"},"nativeSrc":"15229:79:64","nodeType":"YulExpressionStatement","src":"15229:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15206:6:64","nodeType":"YulIdentifier","src":"15206:6:64"},{"kind":"number","nativeSrc":"15214:4:64","nodeType":"YulLiteral","src":"15214:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15202:3:64","nodeType":"YulIdentifier","src":"15202:3:64"},"nativeSrc":"15202:17:64","nodeType":"YulFunctionCall","src":"15202:17:64"},{"name":"end","nativeSrc":"15221:3:64","nodeType":"YulIdentifier","src":"15221:3:64"}],"functionName":{"name":"slt","nativeSrc":"15198:3:64","nodeType":"YulIdentifier","src":"15198:3:64"},"nativeSrc":"15198:27:64","nodeType":"YulFunctionCall","src":"15198:27:64"}],"functionName":{"name":"iszero","nativeSrc":"15191:6:64","nodeType":"YulIdentifier","src":"15191:6:64"},"nativeSrc":"15191:35:64","nodeType":"YulFunctionCall","src":"15191:35:64"},"nativeSrc":"15188:122:64","nodeType":"YulIf","src":"15188:122:64"},{"nativeSrc":"15319:34:64","nodeType":"YulVariableDeclaration","src":"15319:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"15346:6:64","nodeType":"YulIdentifier","src":"15346:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"15333:12:64","nodeType":"YulIdentifier","src":"15333:12:64"},"nativeSrc":"15333:20:64","nodeType":"YulFunctionCall","src":"15333:20:64"},"variables":[{"name":"length","nativeSrc":"15323:6:64","nodeType":"YulTypedName","src":"15323:6:64","type":""}]},{"nativeSrc":"15362:103:64","nodeType":"YulAssignment","src":"15362:103:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15438:6:64","nodeType":"YulIdentifier","src":"15438:6:64"},{"kind":"number","nativeSrc":"15446:4:64","nodeType":"YulLiteral","src":"15446:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15434:3:64","nodeType":"YulIdentifier","src":"15434:3:64"},"nativeSrc":"15434:17:64","nodeType":"YulFunctionCall","src":"15434:17:64"},{"name":"length","nativeSrc":"15453:6:64","nodeType":"YulIdentifier","src":"15453:6:64"},{"name":"end","nativeSrc":"15461:3:64","nodeType":"YulIdentifier","src":"15461:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"15371:62:64","nodeType":"YulIdentifier","src":"15371:62:64"},"nativeSrc":"15371:94:64","nodeType":"YulFunctionCall","src":"15371:94:64"},"variableNames":[{"name":"array","nativeSrc":"15362:5:64","nodeType":"YulIdentifier","src":"15362:5:64"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"15101:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15156:6:64","nodeType":"YulTypedName","src":"15156:6:64","type":""},{"name":"end","nativeSrc":"15164:3:64","nodeType":"YulTypedName","src":"15164:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15172:5:64","nodeType":"YulTypedName","src":"15172:5:64","type":""}],"src":"15101:370:64"},{"body":{"nativeSrc":"15601:686:64","nodeType":"YulBlock","src":"15601:686:64","statements":[{"body":{"nativeSrc":"15645:83:64","nodeType":"YulBlock","src":"15645:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"15647:77:64","nodeType":"YulIdentifier","src":"15647:77:64"},"nativeSrc":"15647:79:64","nodeType":"YulFunctionCall","src":"15647:79:64"},"nativeSrc":"15647:79:64","nodeType":"YulExpressionStatement","src":"15647:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"15622:3:64","nodeType":"YulIdentifier","src":"15622:3:64"},{"name":"headStart","nativeSrc":"15627:9:64","nodeType":"YulIdentifier","src":"15627:9:64"}],"functionName":{"name":"sub","nativeSrc":"15618:3:64","nodeType":"YulIdentifier","src":"15618:3:64"},"nativeSrc":"15618:19:64","nodeType":"YulFunctionCall","src":"15618:19:64"},{"kind":"number","nativeSrc":"15639:4:64","nodeType":"YulLiteral","src":"15639:4:64","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"15614:3:64","nodeType":"YulIdentifier","src":"15614:3:64"},"nativeSrc":"15614:30:64","nodeType":"YulFunctionCall","src":"15614:30:64"},"nativeSrc":"15611:117:64","nodeType":"YulIf","src":"15611:117:64"},{"nativeSrc":"15737:30:64","nodeType":"YulAssignment","src":"15737:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"15762:4:64","nodeType":"YulLiteral","src":"15762:4:64","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"15746:15:64","nodeType":"YulIdentifier","src":"15746:15:64"},"nativeSrc":"15746:21:64","nodeType":"YulFunctionCall","src":"15746:21:64"},"variableNames":[{"name":"value","nativeSrc":"15737:5:64","nodeType":"YulIdentifier","src":"15737:5:64"}]},{"nativeSrc":"15777:151:64","nodeType":"YulBlock","src":"15777:151:64","statements":[{"nativeSrc":"15813:15:64","nodeType":"YulVariableDeclaration","src":"15813:15:64","value":{"kind":"number","nativeSrc":"15827:1:64","nodeType":"YulLiteral","src":"15827:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15817:6:64","nodeType":"YulTypedName","src":"15817:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15853:5:64","nodeType":"YulIdentifier","src":"15853:5:64"},{"kind":"number","nativeSrc":"15860:4:64","nodeType":"YulLiteral","src":"15860:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15849:3:64","nodeType":"YulIdentifier","src":"15849:3:64"},"nativeSrc":"15849:16:64","nodeType":"YulFunctionCall","src":"15849:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15892:9:64","nodeType":"YulIdentifier","src":"15892:9:64"},{"name":"offset","nativeSrc":"15903:6:64","nodeType":"YulIdentifier","src":"15903:6:64"}],"functionName":{"name":"add","nativeSrc":"15888:3:64","nodeType":"YulIdentifier","src":"15888:3:64"},"nativeSrc":"15888:22:64","nodeType":"YulFunctionCall","src":"15888:22:64"},{"name":"end","nativeSrc":"15912:3:64","nodeType":"YulIdentifier","src":"15912:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15867:20:64","nodeType":"YulIdentifier","src":"15867:20:64"},"nativeSrc":"15867:49:64","nodeType":"YulFunctionCall","src":"15867:49:64"}],"functionName":{"name":"mstore","nativeSrc":"15842:6:64","nodeType":"YulIdentifier","src":"15842:6:64"},"nativeSrc":"15842:75:64","nodeType":"YulFunctionCall","src":"15842:75:64"},"nativeSrc":"15842:75:64","nodeType":"YulExpressionStatement","src":"15842:75:64"}]},{"nativeSrc":"15938:342:64","nodeType":"YulBlock","src":"15938:342:64","statements":[{"nativeSrc":"15979:46:64","nodeType":"YulVariableDeclaration","src":"15979:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16010:9:64","nodeType":"YulIdentifier","src":"16010:9:64"},{"kind":"number","nativeSrc":"16021:2:64","nodeType":"YulLiteral","src":"16021:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16006:3:64","nodeType":"YulIdentifier","src":"16006:3:64"},"nativeSrc":"16006:18:64","nodeType":"YulFunctionCall","src":"16006:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"15993:12:64","nodeType":"YulIdentifier","src":"15993:12:64"},"nativeSrc":"15993:32:64","nodeType":"YulFunctionCall","src":"15993:32:64"},"variables":[{"name":"offset","nativeSrc":"15983:6:64","nodeType":"YulTypedName","src":"15983:6:64","type":""}]},{"body":{"nativeSrc":"16072:83:64","nodeType":"YulBlock","src":"16072:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16074:77:64","nodeType":"YulIdentifier","src":"16074:77:64"},"nativeSrc":"16074:79:64","nodeType":"YulFunctionCall","src":"16074:79:64"},"nativeSrc":"16074:79:64","nodeType":"YulExpressionStatement","src":"16074:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16044:6:64","nodeType":"YulIdentifier","src":"16044:6:64"},{"kind":"number","nativeSrc":"16052:18:64","nodeType":"YulLiteral","src":"16052:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16041:2:64","nodeType":"YulIdentifier","src":"16041:2:64"},"nativeSrc":"16041:30:64","nodeType":"YulFunctionCall","src":"16041:30:64"},"nativeSrc":"16038:117:64","nodeType":"YulIf","src":"16038:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16180:5:64","nodeType":"YulIdentifier","src":"16180:5:64"},{"kind":"number","nativeSrc":"16187:4:64","nodeType":"YulLiteral","src":"16187:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16176:3:64","nodeType":"YulIdentifier","src":"16176:3:64"},"nativeSrc":"16176:16:64","nodeType":"YulFunctionCall","src":"16176:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16244:9:64","nodeType":"YulIdentifier","src":"16244:9:64"},{"name":"offset","nativeSrc":"16255:6:64","nodeType":"YulIdentifier","src":"16255:6:64"}],"functionName":{"name":"add","nativeSrc":"16240:3:64","nodeType":"YulIdentifier","src":"16240:3:64"},"nativeSrc":"16240:22:64","nodeType":"YulFunctionCall","src":"16240:22:64"},{"name":"end","nativeSrc":"16264:3:64","nodeType":"YulIdentifier","src":"16264:3:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"16194:45:64","nodeType":"YulIdentifier","src":"16194:45:64"},"nativeSrc":"16194:74:64","nodeType":"YulFunctionCall","src":"16194:74:64"}],"functionName":{"name":"mstore","nativeSrc":"16169:6:64","nodeType":"YulIdentifier","src":"16169:6:64"},"nativeSrc":"16169:100:64","nodeType":"YulFunctionCall","src":"16169:100:64"},"nativeSrc":"16169:100:64","nodeType":"YulExpressionStatement","src":"16169:100:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$15673_memory_ptr","nativeSrc":"15516:771:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15576:9:64","nodeType":"YulTypedName","src":"15576:9:64","type":""},{"name":"end","nativeSrc":"15587:3:64","nodeType":"YulTypedName","src":"15587:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15595:5:64","nodeType":"YulTypedName","src":"15595:5:64","type":""}],"src":"15516:771:64"},{"body":{"nativeSrc":"16389:453:64","nodeType":"YulBlock","src":"16389:453:64","statements":[{"body":{"nativeSrc":"16435:83:64","nodeType":"YulBlock","src":"16435:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16437:77:64","nodeType":"YulIdentifier","src":"16437:77:64"},"nativeSrc":"16437:79:64","nodeType":"YulFunctionCall","src":"16437:79:64"},"nativeSrc":"16437:79:64","nodeType":"YulExpressionStatement","src":"16437:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16410:7:64","nodeType":"YulIdentifier","src":"16410:7:64"},{"name":"headStart","nativeSrc":"16419:9:64","nodeType":"YulIdentifier","src":"16419:9:64"}],"functionName":{"name":"sub","nativeSrc":"16406:3:64","nodeType":"YulIdentifier","src":"16406:3:64"},"nativeSrc":"16406:23:64","nodeType":"YulFunctionCall","src":"16406:23:64"},{"kind":"number","nativeSrc":"16431:2:64","nodeType":"YulLiteral","src":"16431:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16402:3:64","nodeType":"YulIdentifier","src":"16402:3:64"},"nativeSrc":"16402:32:64","nodeType":"YulFunctionCall","src":"16402:32:64"},"nativeSrc":"16399:119:64","nodeType":"YulIf","src":"16399:119:64"},{"nativeSrc":"16528:307:64","nodeType":"YulBlock","src":"16528:307:64","statements":[{"nativeSrc":"16543:45:64","nodeType":"YulVariableDeclaration","src":"16543:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16574:9:64","nodeType":"YulIdentifier","src":"16574:9:64"},{"kind":"number","nativeSrc":"16585:1:64","nodeType":"YulLiteral","src":"16585:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16570:3:64","nodeType":"YulIdentifier","src":"16570:3:64"},"nativeSrc":"16570:17:64","nodeType":"YulFunctionCall","src":"16570:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"16557:12:64","nodeType":"YulIdentifier","src":"16557:12:64"},"nativeSrc":"16557:31:64","nodeType":"YulFunctionCall","src":"16557:31:64"},"variables":[{"name":"offset","nativeSrc":"16547:6:64","nodeType":"YulTypedName","src":"16547:6:64","type":""}]},{"body":{"nativeSrc":"16635:83:64","nodeType":"YulBlock","src":"16635:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"16637:77:64","nodeType":"YulIdentifier","src":"16637:77:64"},"nativeSrc":"16637:79:64","nodeType":"YulFunctionCall","src":"16637:79:64"},"nativeSrc":"16637:79:64","nodeType":"YulExpressionStatement","src":"16637:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16607:6:64","nodeType":"YulIdentifier","src":"16607:6:64"},{"kind":"number","nativeSrc":"16615:18:64","nodeType":"YulLiteral","src":"16615:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16604:2:64","nodeType":"YulIdentifier","src":"16604:2:64"},"nativeSrc":"16604:30:64","nodeType":"YulFunctionCall","src":"16604:30:64"},"nativeSrc":"16601:117:64","nodeType":"YulIf","src":"16601:117:64"},{"nativeSrc":"16732:93:64","nodeType":"YulAssignment","src":"16732:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16797:9:64","nodeType":"YulIdentifier","src":"16797:9:64"},{"name":"offset","nativeSrc":"16808:6:64","nodeType":"YulIdentifier","src":"16808:6:64"}],"functionName":{"name":"add","nativeSrc":"16793:3:64","nodeType":"YulIdentifier","src":"16793:3:64"},"nativeSrc":"16793:22:64","nodeType":"YulFunctionCall","src":"16793:22:64"},{"name":"dataEnd","nativeSrc":"16817:7:64","nodeType":"YulIdentifier","src":"16817:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$15673_memory_ptr","nativeSrc":"16742:50:64","nodeType":"YulIdentifier","src":"16742:50:64"},"nativeSrc":"16742:83:64","nodeType":"YulFunctionCall","src":"16742:83:64"},"variableNames":[{"name":"value0","nativeSrc":"16732:6:64","nodeType":"YulIdentifier","src":"16732:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$15673_memory_ptr","nativeSrc":"16293:549:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16359:9:64","nodeType":"YulTypedName","src":"16359:9:64","type":""},{"name":"dataEnd","nativeSrc":"16370:7:64","nodeType":"YulTypedName","src":"16370:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16382:6:64","nodeType":"YulTypedName","src":"16382:6:64","type":""}],"src":"16293:549:64"},{"body":{"nativeSrc":"16906:56:64","nodeType":"YulBlock","src":"16906:56:64","statements":[{"body":{"nativeSrc":"16940:16:64","nodeType":"YulBlock","src":"16940:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16949:1:64","nodeType":"YulLiteral","src":"16949:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"16952:1:64","nodeType":"YulLiteral","src":"16952:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"16942:6:64","nodeType":"YulIdentifier","src":"16942:6:64"},"nativeSrc":"16942:12:64","nodeType":"YulFunctionCall","src":"16942:12:64"},"nativeSrc":"16942:12:64","nodeType":"YulExpressionStatement","src":"16942:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16929:5:64","nodeType":"YulIdentifier","src":"16929:5:64"},{"kind":"number","nativeSrc":"16936:1:64","nodeType":"YulLiteral","src":"16936:1:64","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"16926:2:64","nodeType":"YulIdentifier","src":"16926:2:64"},"nativeSrc":"16926:12:64","nodeType":"YulFunctionCall","src":"16926:12:64"}],"functionName":{"name":"iszero","nativeSrc":"16919:6:64","nodeType":"YulIdentifier","src":"16919:6:64"},"nativeSrc":"16919:20:64","nodeType":"YulFunctionCall","src":"16919:20:64"},"nativeSrc":"16916:40:64","nodeType":"YulIf","src":"16916:40:64"}]},"name":"validator_revert_t_enum$_AssetType_$15450","nativeSrc":"16848:114:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16899:5:64","nodeType":"YulTypedName","src":"16899:5:64","type":""}],"src":"16848:114:64"},{"body":{"nativeSrc":"17035:102:64","nodeType":"YulBlock","src":"17035:102:64","statements":[{"nativeSrc":"17045:29:64","nodeType":"YulAssignment","src":"17045:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"17067:6:64","nodeType":"YulIdentifier","src":"17067:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"17054:12:64","nodeType":"YulIdentifier","src":"17054:12:64"},"nativeSrc":"17054:20:64","nodeType":"YulFunctionCall","src":"17054:20:64"},"variableNames":[{"name":"value","nativeSrc":"17045:5:64","nodeType":"YulIdentifier","src":"17045:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17125:5:64","nodeType":"YulIdentifier","src":"17125:5:64"}],"functionName":{"name":"validator_revert_t_enum$_AssetType_$15450","nativeSrc":"17083:41:64","nodeType":"YulIdentifier","src":"17083:41:64"},"nativeSrc":"17083:48:64","nodeType":"YulFunctionCall","src":"17083:48:64"},"nativeSrc":"17083:48:64","nodeType":"YulExpressionStatement","src":"17083:48:64"}]},"name":"abi_decode_t_enum$_AssetType_$15450","nativeSrc":"16968:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"17013:6:64","nodeType":"YulTypedName","src":"17013:6:64","type":""},{"name":"end","nativeSrc":"17021:3:64","nodeType":"YulTypedName","src":"17021:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"17029:5:64","nodeType":"YulTypedName","src":"17029:5:64","type":""}],"src":"16968:169:64"},{"body":{"nativeSrc":"17232:28:64","nodeType":"YulBlock","src":"17232:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17249:1:64","nodeType":"YulLiteral","src":"17249:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17252:1:64","nodeType":"YulLiteral","src":"17252:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17242:6:64","nodeType":"YulIdentifier","src":"17242:6:64"},"nativeSrc":"17242:12:64","nodeType":"YulFunctionCall","src":"17242:12:64"},"nativeSrc":"17242:12:64","nodeType":"YulExpressionStatement","src":"17242:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"17143:117:64","nodeType":"YulFunctionDefinition","src":"17143:117:64"},{"body":{"nativeSrc":"17332:241:64","nodeType":"YulBlock","src":"17332:241:64","statements":[{"body":{"nativeSrc":"17437:22:64","nodeType":"YulBlock","src":"17437:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"17439:16:64","nodeType":"YulIdentifier","src":"17439:16:64"},"nativeSrc":"17439:18:64","nodeType":"YulFunctionCall","src":"17439:18:64"},"nativeSrc":"17439:18:64","nodeType":"YulExpressionStatement","src":"17439:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"17409:6:64","nodeType":"YulIdentifier","src":"17409:6:64"},{"kind":"number","nativeSrc":"17417:18:64","nodeType":"YulLiteral","src":"17417:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17406:2:64","nodeType":"YulIdentifier","src":"17406:2:64"},"nativeSrc":"17406:30:64","nodeType":"YulFunctionCall","src":"17406:30:64"},"nativeSrc":"17403:56:64","nodeType":"YulIf","src":"17403:56:64"},{"nativeSrc":"17469:37:64","nodeType":"YulAssignment","src":"17469:37:64","value":{"arguments":[{"name":"length","nativeSrc":"17499:6:64","nodeType":"YulIdentifier","src":"17499:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17477:21:64","nodeType":"YulIdentifier","src":"17477:21:64"},"nativeSrc":"17477:29:64","nodeType":"YulFunctionCall","src":"17477:29:64"},"variableNames":[{"name":"size","nativeSrc":"17469:4:64","nodeType":"YulIdentifier","src":"17469:4:64"}]},{"nativeSrc":"17543:23:64","nodeType":"YulAssignment","src":"17543:23:64","value":{"arguments":[{"name":"size","nativeSrc":"17555:4:64","nodeType":"YulIdentifier","src":"17555:4:64"},{"kind":"number","nativeSrc":"17561:4:64","nodeType":"YulLiteral","src":"17561:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17551:3:64","nodeType":"YulIdentifier","src":"17551:3:64"},"nativeSrc":"17551:15:64","nodeType":"YulFunctionCall","src":"17551:15:64"},"variableNames":[{"name":"size","nativeSrc":"17543:4:64","nodeType":"YulIdentifier","src":"17543:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17266:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"17316:6:64","nodeType":"YulTypedName","src":"17316:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"17327:4:64","nodeType":"YulTypedName","src":"17327:4:64","type":""}],"src":"17266:307:64"},{"body":{"nativeSrc":"17643:84:64","nodeType":"YulBlock","src":"17643:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"17667:3:64","nodeType":"YulIdentifier","src":"17667:3:64"},{"name":"src","nativeSrc":"17672:3:64","nodeType":"YulIdentifier","src":"17672:3:64"},{"name":"length","nativeSrc":"17677:6:64","nodeType":"YulIdentifier","src":"17677:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"17654:12:64","nodeType":"YulIdentifier","src":"17654:12:64"},"nativeSrc":"17654:30:64","nodeType":"YulFunctionCall","src":"17654:30:64"},"nativeSrc":"17654:30:64","nodeType":"YulExpressionStatement","src":"17654:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17704:3:64","nodeType":"YulIdentifier","src":"17704:3:64"},{"name":"length","nativeSrc":"17709:6:64","nodeType":"YulIdentifier","src":"17709:6:64"}],"functionName":{"name":"add","nativeSrc":"17700:3:64","nodeType":"YulIdentifier","src":"17700:3:64"},"nativeSrc":"17700:16:64","nodeType":"YulFunctionCall","src":"17700:16:64"},{"kind":"number","nativeSrc":"17718:1:64","nodeType":"YulLiteral","src":"17718:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17693:6:64","nodeType":"YulIdentifier","src":"17693:6:64"},"nativeSrc":"17693:27:64","nodeType":"YulFunctionCall","src":"17693:27:64"},"nativeSrc":"17693:27:64","nodeType":"YulExpressionStatement","src":"17693:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17579:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17625:3:64","nodeType":"YulTypedName","src":"17625:3:64","type":""},{"name":"dst","nativeSrc":"17630:3:64","nodeType":"YulTypedName","src":"17630:3:64","type":""},{"name":"length","nativeSrc":"17635:6:64","nodeType":"YulTypedName","src":"17635:6:64","type":""}],"src":"17579:148:64"},{"body":{"nativeSrc":"17816:340:64","nodeType":"YulBlock","src":"17816:340:64","statements":[{"nativeSrc":"17826:74:64","nodeType":"YulAssignment","src":"17826:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17892:6:64","nodeType":"YulIdentifier","src":"17892:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17851:40:64","nodeType":"YulIdentifier","src":"17851:40:64"},"nativeSrc":"17851:48:64","nodeType":"YulFunctionCall","src":"17851:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"17835:15:64","nodeType":"YulIdentifier","src":"17835:15:64"},"nativeSrc":"17835:65:64","nodeType":"YulFunctionCall","src":"17835:65:64"},"variableNames":[{"name":"array","nativeSrc":"17826:5:64","nodeType":"YulIdentifier","src":"17826:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"17916:5:64","nodeType":"YulIdentifier","src":"17916:5:64"},{"name":"length","nativeSrc":"17923:6:64","nodeType":"YulIdentifier","src":"17923:6:64"}],"functionName":{"name":"mstore","nativeSrc":"17909:6:64","nodeType":"YulIdentifier","src":"17909:6:64"},"nativeSrc":"17909:21:64","nodeType":"YulFunctionCall","src":"17909:21:64"},"nativeSrc":"17909:21:64","nodeType":"YulExpressionStatement","src":"17909:21:64"},{"nativeSrc":"17939:27:64","nodeType":"YulVariableDeclaration","src":"17939:27:64","value":{"arguments":[{"name":"array","nativeSrc":"17954:5:64","nodeType":"YulIdentifier","src":"17954:5:64"},{"kind":"number","nativeSrc":"17961:4:64","nodeType":"YulLiteral","src":"17961:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17950:3:64","nodeType":"YulIdentifier","src":"17950:3:64"},"nativeSrc":"17950:16:64","nodeType":"YulFunctionCall","src":"17950:16:64"},"variables":[{"name":"dst","nativeSrc":"17943:3:64","nodeType":"YulTypedName","src":"17943:3:64","type":""}]},{"body":{"nativeSrc":"18004:83:64","nodeType":"YulBlock","src":"18004:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"18006:77:64","nodeType":"YulIdentifier","src":"18006:77:64"},"nativeSrc":"18006:79:64","nodeType":"YulFunctionCall","src":"18006:79:64"},"nativeSrc":"18006:79:64","nodeType":"YulExpressionStatement","src":"18006:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17985:3:64","nodeType":"YulIdentifier","src":"17985:3:64"},{"name":"length","nativeSrc":"17990:6:64","nodeType":"YulIdentifier","src":"17990:6:64"}],"functionName":{"name":"add","nativeSrc":"17981:3:64","nodeType":"YulIdentifier","src":"17981:3:64"},"nativeSrc":"17981:16:64","nodeType":"YulFunctionCall","src":"17981:16:64"},{"name":"end","nativeSrc":"17999:3:64","nodeType":"YulIdentifier","src":"17999:3:64"}],"functionName":{"name":"gt","nativeSrc":"17978:2:64","nodeType":"YulIdentifier","src":"17978:2:64"},"nativeSrc":"17978:25:64","nodeType":"YulFunctionCall","src":"17978:25:64"},"nativeSrc":"17975:112:64","nodeType":"YulIf","src":"17975:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"18133:3:64","nodeType":"YulIdentifier","src":"18133:3:64"},{"name":"dst","nativeSrc":"18138:3:64","nodeType":"YulIdentifier","src":"18138:3:64"},{"name":"length","nativeSrc":"18143:6:64","nodeType":"YulIdentifier","src":"18143:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"18096:36:64","nodeType":"YulIdentifier","src":"18096:36:64"},"nativeSrc":"18096:54:64","nodeType":"YulFunctionCall","src":"18096:54:64"},"nativeSrc":"18096:54:64","nodeType":"YulExpressionStatement","src":"18096:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17733:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17789:3:64","nodeType":"YulTypedName","src":"17789:3:64","type":""},{"name":"length","nativeSrc":"17794:6:64","nodeType":"YulTypedName","src":"17794:6:64","type":""},{"name":"end","nativeSrc":"17802:3:64","nodeType":"YulTypedName","src":"17802:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17810:5:64","nodeType":"YulTypedName","src":"17810:5:64","type":""}],"src":"17733:423:64"},{"body":{"nativeSrc":"18236:277:64","nodeType":"YulBlock","src":"18236:277:64","statements":[{"body":{"nativeSrc":"18285:83:64","nodeType":"YulBlock","src":"18285:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"18287:77:64","nodeType":"YulIdentifier","src":"18287:77:64"},"nativeSrc":"18287:79:64","nodeType":"YulFunctionCall","src":"18287:79:64"},"nativeSrc":"18287:79:64","nodeType":"YulExpressionStatement","src":"18287:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18264:6:64","nodeType":"YulIdentifier","src":"18264:6:64"},{"kind":"number","nativeSrc":"18272:4:64","nodeType":"YulLiteral","src":"18272:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"18260:3:64","nodeType":"YulIdentifier","src":"18260:3:64"},"nativeSrc":"18260:17:64","nodeType":"YulFunctionCall","src":"18260:17:64"},{"name":"end","nativeSrc":"18279:3:64","nodeType":"YulIdentifier","src":"18279:3:64"}],"functionName":{"name":"slt","nativeSrc":"18256:3:64","nodeType":"YulIdentifier","src":"18256:3:64"},"nativeSrc":"18256:27:64","nodeType":"YulFunctionCall","src":"18256:27:64"}],"functionName":{"name":"iszero","nativeSrc":"18249:6:64","nodeType":"YulIdentifier","src":"18249:6:64"},"nativeSrc":"18249:35:64","nodeType":"YulFunctionCall","src":"18249:35:64"},"nativeSrc":"18246:122:64","nodeType":"YulIf","src":"18246:122:64"},{"nativeSrc":"18377:34:64","nodeType":"YulVariableDeclaration","src":"18377:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"18404:6:64","nodeType":"YulIdentifier","src":"18404:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"18391:12:64","nodeType":"YulIdentifier","src":"18391:12:64"},"nativeSrc":"18391:20:64","nodeType":"YulFunctionCall","src":"18391:20:64"},"variables":[{"name":"length","nativeSrc":"18381:6:64","nodeType":"YulTypedName","src":"18381:6:64","type":""}]},{"nativeSrc":"18420:87:64","nodeType":"YulAssignment","src":"18420:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18480:6:64","nodeType":"YulIdentifier","src":"18480:6:64"},{"kind":"number","nativeSrc":"18488:4:64","nodeType":"YulLiteral","src":"18488:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18476:3:64","nodeType":"YulIdentifier","src":"18476:3:64"},"nativeSrc":"18476:17:64","nodeType":"YulFunctionCall","src":"18476:17:64"},{"name":"length","nativeSrc":"18495:6:64","nodeType":"YulIdentifier","src":"18495:6:64"},{"name":"end","nativeSrc":"18503:3:64","nodeType":"YulIdentifier","src":"18503:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"18429:46:64","nodeType":"YulIdentifier","src":"18429:46:64"},"nativeSrc":"18429:78:64","nodeType":"YulFunctionCall","src":"18429:78:64"},"variableNames":[{"name":"array","nativeSrc":"18420:5:64","nodeType":"YulIdentifier","src":"18420:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"18175:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18214:6:64","nodeType":"YulTypedName","src":"18214:6:64","type":""},{"name":"end","nativeSrc":"18222:3:64","nodeType":"YulTypedName","src":"18222:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"18230:5:64","nodeType":"YulTypedName","src":"18230:5:64","type":""}],"src":"18175:338:64"},{"body":{"nativeSrc":"18631:1008:64","nodeType":"YulBlock","src":"18631:1008:64","statements":[{"body":{"nativeSrc":"18675:83:64","nodeType":"YulBlock","src":"18675:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18677:77:64","nodeType":"YulIdentifier","src":"18677:77:64"},"nativeSrc":"18677:79:64","nodeType":"YulFunctionCall","src":"18677:79:64"},"nativeSrc":"18677:79:64","nodeType":"YulExpressionStatement","src":"18677:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18652:3:64","nodeType":"YulIdentifier","src":"18652:3:64"},{"name":"headStart","nativeSrc":"18657:9:64","nodeType":"YulIdentifier","src":"18657:9:64"}],"functionName":{"name":"sub","nativeSrc":"18648:3:64","nodeType":"YulIdentifier","src":"18648:3:64"},"nativeSrc":"18648:19:64","nodeType":"YulFunctionCall","src":"18648:19:64"},{"kind":"number","nativeSrc":"18669:4:64","nodeType":"YulLiteral","src":"18669:4:64","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"18644:3:64","nodeType":"YulIdentifier","src":"18644:3:64"},"nativeSrc":"18644:30:64","nodeType":"YulFunctionCall","src":"18644:30:64"},"nativeSrc":"18641:117:64","nodeType":"YulIf","src":"18641:117:64"},{"nativeSrc":"18767:30:64","nodeType":"YulAssignment","src":"18767:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"18792:4:64","nodeType":"YulLiteral","src":"18792:4:64","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"18776:15:64","nodeType":"YulIdentifier","src":"18776:15:64"},"nativeSrc":"18776:21:64","nodeType":"YulFunctionCall","src":"18776:21:64"},"variableNames":[{"name":"value","nativeSrc":"18767:5:64","nodeType":"YulIdentifier","src":"18767:5:64"}]},{"nativeSrc":"18807:170:64","nodeType":"YulBlock","src":"18807:170:64","statements":[{"nativeSrc":"18847:15:64","nodeType":"YulVariableDeclaration","src":"18847:15:64","value":{"kind":"number","nativeSrc":"18861:1:64","nodeType":"YulLiteral","src":"18861:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18851:6:64","nodeType":"YulTypedName","src":"18851:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18887:5:64","nodeType":"YulIdentifier","src":"18887:5:64"},{"kind":"number","nativeSrc":"18894:4:64","nodeType":"YulLiteral","src":"18894:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18883:3:64","nodeType":"YulIdentifier","src":"18883:3:64"},"nativeSrc":"18883:16:64","nodeType":"YulFunctionCall","src":"18883:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18941:9:64","nodeType":"YulIdentifier","src":"18941:9:64"},{"name":"offset","nativeSrc":"18952:6:64","nodeType":"YulIdentifier","src":"18952:6:64"}],"functionName":{"name":"add","nativeSrc":"18937:3:64","nodeType":"YulIdentifier","src":"18937:3:64"},"nativeSrc":"18937:22:64","nodeType":"YulFunctionCall","src":"18937:22:64"},{"name":"end","nativeSrc":"18961:3:64","nodeType":"YulIdentifier","src":"18961:3:64"}],"functionName":{"name":"abi_decode_t_enum$_AssetType_$15450","nativeSrc":"18901:35:64","nodeType":"YulIdentifier","src":"18901:35:64"},"nativeSrc":"18901:64:64","nodeType":"YulFunctionCall","src":"18901:64:64"}],"functionName":{"name":"mstore","nativeSrc":"18876:6:64","nodeType":"YulIdentifier","src":"18876:6:64"},"nativeSrc":"18876:90:64","nodeType":"YulFunctionCall","src":"18876:90:64"},"nativeSrc":"18876:90:64","nodeType":"YulExpressionStatement","src":"18876:90:64"}]},{"nativeSrc":"18987:152:64","nodeType":"YulBlock","src":"18987:152:64","statements":[{"nativeSrc":"19023:16:64","nodeType":"YulVariableDeclaration","src":"19023:16:64","value":{"kind":"number","nativeSrc":"19037:2:64","nodeType":"YulLiteral","src":"19037:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"19027:6:64","nodeType":"YulTypedName","src":"19027:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19064:5:64","nodeType":"YulIdentifier","src":"19064:5:64"},{"kind":"number","nativeSrc":"19071:4:64","nodeType":"YulLiteral","src":"19071:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19060:3:64","nodeType":"YulIdentifier","src":"19060:3:64"},"nativeSrc":"19060:16:64","nodeType":"YulFunctionCall","src":"19060:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19103:9:64","nodeType":"YulIdentifier","src":"19103:9:64"},{"name":"offset","nativeSrc":"19114:6:64","nodeType":"YulIdentifier","src":"19114:6:64"}],"functionName":{"name":"add","nativeSrc":"19099:3:64","nodeType":"YulIdentifier","src":"19099:3:64"},"nativeSrc":"19099:22:64","nodeType":"YulFunctionCall","src":"19099:22:64"},{"name":"end","nativeSrc":"19123:3:64","nodeType":"YulIdentifier","src":"19123:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19078:20:64","nodeType":"YulIdentifier","src":"19078:20:64"},"nativeSrc":"19078:49:64","nodeType":"YulFunctionCall","src":"19078:49:64"}],"functionName":{"name":"mstore","nativeSrc":"19053:6:64","nodeType":"YulIdentifier","src":"19053:6:64"},"nativeSrc":"19053:75:64","nodeType":"YulFunctionCall","src":"19053:75:64"},"nativeSrc":"19053:75:64","nodeType":"YulExpressionStatement","src":"19053:75:64"}]},{"nativeSrc":"19149:153:64","nodeType":"YulBlock","src":"19149:153:64","statements":[{"nativeSrc":"19186:16:64","nodeType":"YulVariableDeclaration","src":"19186:16:64","value":{"kind":"number","nativeSrc":"19200:2:64","nodeType":"YulLiteral","src":"19200:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"19190:6:64","nodeType":"YulTypedName","src":"19190:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19227:5:64","nodeType":"YulIdentifier","src":"19227:5:64"},{"kind":"number","nativeSrc":"19234:4:64","nodeType":"YulLiteral","src":"19234:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"19223:3:64","nodeType":"YulIdentifier","src":"19223:3:64"},"nativeSrc":"19223:16:64","nodeType":"YulFunctionCall","src":"19223:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19266:9:64","nodeType":"YulIdentifier","src":"19266:9:64"},{"name":"offset","nativeSrc":"19277:6:64","nodeType":"YulIdentifier","src":"19277:6:64"}],"functionName":{"name":"add","nativeSrc":"19262:3:64","nodeType":"YulIdentifier","src":"19262:3:64"},"nativeSrc":"19262:22:64","nodeType":"YulFunctionCall","src":"19262:22:64"},{"name":"end","nativeSrc":"19286:3:64","nodeType":"YulIdentifier","src":"19286:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"19241:20:64","nodeType":"YulIdentifier","src":"19241:20:64"},"nativeSrc":"19241:49:64","nodeType":"YulFunctionCall","src":"19241:49:64"}],"functionName":{"name":"mstore","nativeSrc":"19216:6:64","nodeType":"YulIdentifier","src":"19216:6:64"},"nativeSrc":"19216:75:64","nodeType":"YulFunctionCall","src":"19216:75:64"},"nativeSrc":"19216:75:64","nodeType":"YulExpressionStatement","src":"19216:75:64"}]},{"nativeSrc":"19312:320:64","nodeType":"YulBlock","src":"19312:320:64","statements":[{"nativeSrc":"19347:46:64","nodeType":"YulVariableDeclaration","src":"19347:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19378:9:64","nodeType":"YulIdentifier","src":"19378:9:64"},{"kind":"number","nativeSrc":"19389:2:64","nodeType":"YulLiteral","src":"19389:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19374:3:64","nodeType":"YulIdentifier","src":"19374:3:64"},"nativeSrc":"19374:18:64","nodeType":"YulFunctionCall","src":"19374:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"19361:12:64","nodeType":"YulIdentifier","src":"19361:12:64"},"nativeSrc":"19361:32:64","nodeType":"YulFunctionCall","src":"19361:32:64"},"variables":[{"name":"offset","nativeSrc":"19351:6:64","nodeType":"YulTypedName","src":"19351:6:64","type":""}]},{"body":{"nativeSrc":"19440:83:64","nodeType":"YulBlock","src":"19440:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"19442:77:64","nodeType":"YulIdentifier","src":"19442:77:64"},"nativeSrc":"19442:79:64","nodeType":"YulFunctionCall","src":"19442:79:64"},"nativeSrc":"19442:79:64","nodeType":"YulExpressionStatement","src":"19442:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19412:6:64","nodeType":"YulIdentifier","src":"19412:6:64"},{"kind":"number","nativeSrc":"19420:18:64","nodeType":"YulLiteral","src":"19420:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19409:2:64","nodeType":"YulIdentifier","src":"19409:2:64"},"nativeSrc":"19409:30:64","nodeType":"YulFunctionCall","src":"19409:30:64"},"nativeSrc":"19406:117:64","nodeType":"YulIf","src":"19406:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19548:5:64","nodeType":"YulIdentifier","src":"19548:5:64"},{"kind":"number","nativeSrc":"19555:4:64","nodeType":"YulLiteral","src":"19555:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"19544:3:64","nodeType":"YulIdentifier","src":"19544:3:64"},"nativeSrc":"19544:16:64","nodeType":"YulFunctionCall","src":"19544:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19596:9:64","nodeType":"YulIdentifier","src":"19596:9:64"},{"name":"offset","nativeSrc":"19607:6:64","nodeType":"YulIdentifier","src":"19607:6:64"}],"functionName":{"name":"add","nativeSrc":"19592:3:64","nodeType":"YulIdentifier","src":"19592:3:64"},"nativeSrc":"19592:22:64","nodeType":"YulFunctionCall","src":"19592:22:64"},{"name":"end","nativeSrc":"19616:3:64","nodeType":"YulIdentifier","src":"19616:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"19562:29:64","nodeType":"YulIdentifier","src":"19562:29:64"},"nativeSrc":"19562:58:64","nodeType":"YulFunctionCall","src":"19562:58:64"}],"functionName":{"name":"mstore","nativeSrc":"19537:6:64","nodeType":"YulIdentifier","src":"19537:6:64"},"nativeSrc":"19537:84:64","nodeType":"YulFunctionCall","src":"19537:84:64"},"nativeSrc":"19537:84:64","nodeType":"YulExpressionStatement","src":"19537:84:64"}]}]},"name":"abi_decode_t_struct$_Transfer_$15461_memory_ptr","nativeSrc":"18549:1090:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18606:9:64","nodeType":"YulTypedName","src":"18606:9:64","type":""},{"name":"end","nativeSrc":"18617:3:64","nodeType":"YulTypedName","src":"18617:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18625:5:64","nodeType":"YulTypedName","src":"18625:5:64","type":""}],"src":"18549:1090:64"},{"body":{"nativeSrc":"19738:450:64","nodeType":"YulBlock","src":"19738:450:64","statements":[{"body":{"nativeSrc":"19784:83:64","nodeType":"YulBlock","src":"19784:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19786:77:64","nodeType":"YulIdentifier","src":"19786:77:64"},"nativeSrc":"19786:79:64","nodeType":"YulFunctionCall","src":"19786:79:64"},"nativeSrc":"19786:79:64","nodeType":"YulExpressionStatement","src":"19786:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19759:7:64","nodeType":"YulIdentifier","src":"19759:7:64"},{"name":"headStart","nativeSrc":"19768:9:64","nodeType":"YulIdentifier","src":"19768:9:64"}],"functionName":{"name":"sub","nativeSrc":"19755:3:64","nodeType":"YulIdentifier","src":"19755:3:64"},"nativeSrc":"19755:23:64","nodeType":"YulFunctionCall","src":"19755:23:64"},{"kind":"number","nativeSrc":"19780:2:64","nodeType":"YulLiteral","src":"19780:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19751:3:64","nodeType":"YulIdentifier","src":"19751:3:64"},"nativeSrc":"19751:32:64","nodeType":"YulFunctionCall","src":"19751:32:64"},"nativeSrc":"19748:119:64","nodeType":"YulIf","src":"19748:119:64"},{"nativeSrc":"19877:304:64","nodeType":"YulBlock","src":"19877:304:64","statements":[{"nativeSrc":"19892:45:64","nodeType":"YulVariableDeclaration","src":"19892:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19923:9:64","nodeType":"YulIdentifier","src":"19923:9:64"},{"kind":"number","nativeSrc":"19934:1:64","nodeType":"YulLiteral","src":"19934:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19919:3:64","nodeType":"YulIdentifier","src":"19919:3:64"},"nativeSrc":"19919:17:64","nodeType":"YulFunctionCall","src":"19919:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"19906:12:64","nodeType":"YulIdentifier","src":"19906:12:64"},"nativeSrc":"19906:31:64","nodeType":"YulFunctionCall","src":"19906:31:64"},"variables":[{"name":"offset","nativeSrc":"19896:6:64","nodeType":"YulTypedName","src":"19896:6:64","type":""}]},{"body":{"nativeSrc":"19984:83:64","nodeType":"YulBlock","src":"19984:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19986:77:64","nodeType":"YulIdentifier","src":"19986:77:64"},"nativeSrc":"19986:79:64","nodeType":"YulFunctionCall","src":"19986:79:64"},"nativeSrc":"19986:79:64","nodeType":"YulExpressionStatement","src":"19986:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19956:6:64","nodeType":"YulIdentifier","src":"19956:6:64"},{"kind":"number","nativeSrc":"19964:18:64","nodeType":"YulLiteral","src":"19964:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19953:2:64","nodeType":"YulIdentifier","src":"19953:2:64"},"nativeSrc":"19953:30:64","nodeType":"YulFunctionCall","src":"19953:30:64"},"nativeSrc":"19950:117:64","nodeType":"YulIf","src":"19950:117:64"},{"nativeSrc":"20081:90:64","nodeType":"YulAssignment","src":"20081:90:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20143:9:64","nodeType":"YulIdentifier","src":"20143:9:64"},{"name":"offset","nativeSrc":"20154:6:64","nodeType":"YulIdentifier","src":"20154:6:64"}],"functionName":{"name":"add","nativeSrc":"20139:3:64","nodeType":"YulIdentifier","src":"20139:3:64"},"nativeSrc":"20139:22:64","nodeType":"YulFunctionCall","src":"20139:22:64"},{"name":"dataEnd","nativeSrc":"20163:7:64","nodeType":"YulIdentifier","src":"20163:7:64"}],"functionName":{"name":"abi_decode_t_struct$_Transfer_$15461_memory_ptr","nativeSrc":"20091:47:64","nodeType":"YulIdentifier","src":"20091:47:64"},"nativeSrc":"20091:80:64","nodeType":"YulFunctionCall","src":"20091:80:64"},"variableNames":[{"name":"value0","nativeSrc":"20081:6:64","nodeType":"YulIdentifier","src":"20081:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_Transfer_$15461_memory_ptr","nativeSrc":"19645:543:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19708:9:64","nodeType":"YulTypedName","src":"19708:9:64","type":""},{"name":"dataEnd","nativeSrc":"19719:7:64","nodeType":"YulTypedName","src":"19719:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19731:6:64","nodeType":"YulTypedName","src":"19731:6:64","type":""}],"src":"19645:543:64"},{"body":{"nativeSrc":"20222:152:64","nodeType":"YulBlock","src":"20222:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20239:1:64","nodeType":"YulLiteral","src":"20239:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"20242:77:64","nodeType":"YulLiteral","src":"20242:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20232:6:64","nodeType":"YulIdentifier","src":"20232:6:64"},"nativeSrc":"20232:88:64","nodeType":"YulFunctionCall","src":"20232:88:64"},"nativeSrc":"20232:88:64","nodeType":"YulExpressionStatement","src":"20232:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20336:1:64","nodeType":"YulLiteral","src":"20336:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"20339:4:64","nodeType":"YulLiteral","src":"20339:4:64","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"20329:6:64","nodeType":"YulIdentifier","src":"20329:6:64"},"nativeSrc":"20329:15:64","nodeType":"YulFunctionCall","src":"20329:15:64"},"nativeSrc":"20329:15:64","nodeType":"YulExpressionStatement","src":"20329:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20360:1:64","nodeType":"YulLiteral","src":"20360:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"20363:4:64","nodeType":"YulLiteral","src":"20363:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20353:6:64","nodeType":"YulIdentifier","src":"20353:6:64"},"nativeSrc":"20353:15:64","nodeType":"YulFunctionCall","src":"20353:15:64"},"nativeSrc":"20353:15:64","nodeType":"YulExpressionStatement","src":"20353:15:64"}]},"name":"panic_error_0x21","nativeSrc":"20194:180:64","nodeType":"YulFunctionDefinition","src":"20194:180:64"},{"body":{"nativeSrc":"20443:80:64","nodeType":"YulBlock","src":"20443:80:64","statements":[{"nativeSrc":"20453:22:64","nodeType":"YulAssignment","src":"20453:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"20468:6:64","nodeType":"YulIdentifier","src":"20468:6:64"}],"functionName":{"name":"mload","nativeSrc":"20462:5:64","nodeType":"YulIdentifier","src":"20462:5:64"},"nativeSrc":"20462:13:64","nodeType":"YulFunctionCall","src":"20462:13:64"},"variableNames":[{"name":"value","nativeSrc":"20453:5:64","nodeType":"YulIdentifier","src":"20453:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"20511:5:64","nodeType":"YulIdentifier","src":"20511:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"20484:26:64","nodeType":"YulIdentifier","src":"20484:26:64"},"nativeSrc":"20484:33:64","nodeType":"YulFunctionCall","src":"20484:33:64"},"nativeSrc":"20484:33:64","nodeType":"YulExpressionStatement","src":"20484:33:64"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"20380:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"20421:6:64","nodeType":"YulTypedName","src":"20421:6:64","type":""},{"name":"end","nativeSrc":"20429:3:64","nodeType":"YulTypedName","src":"20429:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20437:5:64","nodeType":"YulTypedName","src":"20437:5:64","type":""}],"src":"20380:143:64"},{"body":{"nativeSrc":"20666:346:64","nodeType":"YulBlock","src":"20666:346:64","statements":[{"body":{"nativeSrc":"20710:83:64","nodeType":"YulBlock","src":"20710:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"20712:77:64","nodeType":"YulIdentifier","src":"20712:77:64"},"nativeSrc":"20712:79:64","nodeType":"YulFunctionCall","src":"20712:79:64"},"nativeSrc":"20712:79:64","nodeType":"YulExpressionStatement","src":"20712:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"20687:3:64","nodeType":"YulIdentifier","src":"20687:3:64"},{"name":"headStart","nativeSrc":"20692:9:64","nodeType":"YulIdentifier","src":"20692:9:64"}],"functionName":{"name":"sub","nativeSrc":"20683:3:64","nodeType":"YulIdentifier","src":"20683:3:64"},"nativeSrc":"20683:19:64","nodeType":"YulFunctionCall","src":"20683:19:64"},{"kind":"number","nativeSrc":"20704:4:64","nodeType":"YulLiteral","src":"20704:4:64","type":"","value":"0x20"}],"functionName":{"name":"slt","nativeSrc":"20679:3:64","nodeType":"YulIdentifier","src":"20679:3:64"},"nativeSrc":"20679:30:64","nodeType":"YulFunctionCall","src":"20679:30:64"},"nativeSrc":"20676:117:64","nodeType":"YulIf","src":"20676:117:64"},{"nativeSrc":"20802:30:64","nodeType":"YulAssignment","src":"20802:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"20827:4:64","nodeType":"YulLiteral","src":"20827:4:64","type":"","value":"0x20"}],"functionName":{"name":"allocate_memory","nativeSrc":"20811:15:64","nodeType":"YulIdentifier","src":"20811:15:64"},"nativeSrc":"20811:21:64","nodeType":"YulFunctionCall","src":"20811:21:64"},"variableNames":[{"name":"value","nativeSrc":"20802:5:64","nodeType":"YulIdentifier","src":"20802:5:64"}]},{"nativeSrc":"20842:163:64","nodeType":"YulBlock","src":"20842:163:64","statements":[{"nativeSrc":"20879:15:64","nodeType":"YulVariableDeclaration","src":"20879:15:64","value":{"kind":"number","nativeSrc":"20893:1:64","nodeType":"YulLiteral","src":"20893:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"20883:6:64","nodeType":"YulTypedName","src":"20883:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20919:5:64","nodeType":"YulIdentifier","src":"20919:5:64"},{"kind":"number","nativeSrc":"20926:4:64","nodeType":"YulLiteral","src":"20926:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20915:3:64","nodeType":"YulIdentifier","src":"20915:3:64"},"nativeSrc":"20915:16:64","nodeType":"YulFunctionCall","src":"20915:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20969:9:64","nodeType":"YulIdentifier","src":"20969:9:64"},{"name":"offset","nativeSrc":"20980:6:64","nodeType":"YulIdentifier","src":"20980:6:64"}],"functionName":{"name":"add","nativeSrc":"20965:3:64","nodeType":"YulIdentifier","src":"20965:3:64"},"nativeSrc":"20965:22:64","nodeType":"YulFunctionCall","src":"20965:22:64"},{"name":"end","nativeSrc":"20989:3:64","nodeType":"YulIdentifier","src":"20989:3:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"20933:31:64","nodeType":"YulIdentifier","src":"20933:31:64"},"nativeSrc":"20933:60:64","nodeType":"YulFunctionCall","src":"20933:60:64"}],"functionName":{"name":"mstore","nativeSrc":"20908:6:64","nodeType":"YulIdentifier","src":"20908:6:64"},"nativeSrc":"20908:86:64","nodeType":"YulFunctionCall","src":"20908:86:64"},"nativeSrc":"20908:86:64","nodeType":"YulExpressionStatement","src":"20908:86:64"}]}]},"name":"abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory","nativeSrc":"20566:446:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20641:9:64","nodeType":"YulTypedName","src":"20641:9:64","type":""},{"name":"end","nativeSrc":"20652:3:64","nodeType":"YulTypedName","src":"20652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"20660:5:64","nodeType":"YulTypedName","src":"20660:5:64","type":""}],"src":"20566:446:64"},{"body":{"nativeSrc":"21129:308:64","nodeType":"YulBlock","src":"21129:308:64","statements":[{"body":{"nativeSrc":"21175:83:64","nodeType":"YulBlock","src":"21175:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"21177:77:64","nodeType":"YulIdentifier","src":"21177:77:64"},"nativeSrc":"21177:79:64","nodeType":"YulFunctionCall","src":"21177:79:64"},"nativeSrc":"21177:79:64","nodeType":"YulExpressionStatement","src":"21177:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"21150:7:64","nodeType":"YulIdentifier","src":"21150:7:64"},{"name":"headStart","nativeSrc":"21159:9:64","nodeType":"YulIdentifier","src":"21159:9:64"}],"functionName":{"name":"sub","nativeSrc":"21146:3:64","nodeType":"YulIdentifier","src":"21146:3:64"},"nativeSrc":"21146:23:64","nodeType":"YulFunctionCall","src":"21146:23:64"},{"kind":"number","nativeSrc":"21171:2:64","nodeType":"YulLiteral","src":"21171:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"21142:3:64","nodeType":"YulIdentifier","src":"21142:3:64"},"nativeSrc":"21142:32:64","nodeType":"YulFunctionCall","src":"21142:32:64"},"nativeSrc":"21139:119:64","nodeType":"YulIf","src":"21139:119:64"},{"nativeSrc":"21268:162:64","nodeType":"YulBlock","src":"21268:162:64","statements":[{"nativeSrc":"21283:15:64","nodeType":"YulVariableDeclaration","src":"21283:15:64","value":{"kind":"number","nativeSrc":"21297:1:64","nodeType":"YulLiteral","src":"21297:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"21287:6:64","nodeType":"YulTypedName","src":"21287:6:64","type":""}]},{"nativeSrc":"21312:108:64","nodeType":"YulAssignment","src":"21312:108:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21392:9:64","nodeType":"YulIdentifier","src":"21392:9:64"},{"name":"offset","nativeSrc":"21403:6:64","nodeType":"YulIdentifier","src":"21403:6:64"}],"functionName":{"name":"add","nativeSrc":"21388:3:64","nodeType":"YulIdentifier","src":"21388:3:64"},"nativeSrc":"21388:22:64","nodeType":"YulFunctionCall","src":"21388:22:64"},{"name":"dataEnd","nativeSrc":"21412:7:64","nodeType":"YulIdentifier","src":"21412:7:64"}],"functionName":{"name":"abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory","nativeSrc":"21322:65:64","nodeType":"YulIdentifier","src":"21322:65:64"},"nativeSrc":"21322:98:64","nodeType":"YulFunctionCall","src":"21322:98:64"},"variableNames":[{"name":"value0","nativeSrc":"21312:6:64","nodeType":"YulIdentifier","src":"21312:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory","nativeSrc":"21018:419:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21099:9:64","nodeType":"YulTypedName","src":"21099:9:64","type":""},{"name":"dataEnd","nativeSrc":"21110:7:64","nodeType":"YulTypedName","src":"21110:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"21122:6:64","nodeType":"YulTypedName","src":"21122:6:64","type":""}],"src":"21018:419:64"},{"body":{"nativeSrc":"21569:206:64","nodeType":"YulBlock","src":"21569:206:64","statements":[{"nativeSrc":"21579:26:64","nodeType":"YulAssignment","src":"21579:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"21591:9:64","nodeType":"YulIdentifier","src":"21591:9:64"},{"kind":"number","nativeSrc":"21602:2:64","nodeType":"YulLiteral","src":"21602:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21587:3:64","nodeType":"YulIdentifier","src":"21587:3:64"},"nativeSrc":"21587:18:64","nodeType":"YulFunctionCall","src":"21587:18:64"},"variableNames":[{"name":"tail","nativeSrc":"21579:4:64","nodeType":"YulIdentifier","src":"21579:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21659:6:64","nodeType":"YulIdentifier","src":"21659:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21672:9:64","nodeType":"YulIdentifier","src":"21672:9:64"},{"kind":"number","nativeSrc":"21683:1:64","nodeType":"YulLiteral","src":"21683:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21668:3:64","nodeType":"YulIdentifier","src":"21668:3:64"},"nativeSrc":"21668:17:64","nodeType":"YulFunctionCall","src":"21668:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21615:43:64","nodeType":"YulIdentifier","src":"21615:43:64"},"nativeSrc":"21615:71:64","nodeType":"YulFunctionCall","src":"21615:71:64"},"nativeSrc":"21615:71:64","nodeType":"YulExpressionStatement","src":"21615:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21740:6:64","nodeType":"YulIdentifier","src":"21740:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21753:9:64","nodeType":"YulIdentifier","src":"21753:9:64"},{"kind":"number","nativeSrc":"21764:2:64","nodeType":"YulLiteral","src":"21764:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21749:3:64","nodeType":"YulIdentifier","src":"21749:3:64"},"nativeSrc":"21749:18:64","nodeType":"YulFunctionCall","src":"21749:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21696:43:64","nodeType":"YulIdentifier","src":"21696:43:64"},"nativeSrc":"21696:72:64","nodeType":"YulFunctionCall","src":"21696:72:64"},"nativeSrc":"21696:72:64","nodeType":"YulExpressionStatement","src":"21696:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"21443:332:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21533:9:64","nodeType":"YulTypedName","src":"21533:9:64","type":""},{"name":"value1","nativeSrc":"21545:6:64","nodeType":"YulTypedName","src":"21545:6:64","type":""},{"name":"value0","nativeSrc":"21553:6:64","nodeType":"YulTypedName","src":"21553:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21564:4:64","nodeType":"YulTypedName","src":"21564:4:64","type":""}],"src":"21443:332:64"},{"body":{"nativeSrc":"21843:77:64","nodeType":"YulBlock","src":"21843:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"21860:3:64","nodeType":"YulIdentifier","src":"21860:3:64"},{"name":"src","nativeSrc":"21865:3:64","nodeType":"YulIdentifier","src":"21865:3:64"},{"name":"length","nativeSrc":"21870:6:64","nodeType":"YulIdentifier","src":"21870:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"21854:5:64","nodeType":"YulIdentifier","src":"21854:5:64"},"nativeSrc":"21854:23:64","nodeType":"YulFunctionCall","src":"21854:23:64"},"nativeSrc":"21854:23:64","nodeType":"YulExpressionStatement","src":"21854:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"21897:3:64","nodeType":"YulIdentifier","src":"21897:3:64"},{"name":"length","nativeSrc":"21902:6:64","nodeType":"YulIdentifier","src":"21902:6:64"}],"functionName":{"name":"add","nativeSrc":"21893:3:64","nodeType":"YulIdentifier","src":"21893:3:64"},"nativeSrc":"21893:16:64","nodeType":"YulFunctionCall","src":"21893:16:64"},{"kind":"number","nativeSrc":"21911:1:64","nodeType":"YulLiteral","src":"21911:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"21886:6:64","nodeType":"YulIdentifier","src":"21886:6:64"},"nativeSrc":"21886:27:64","nodeType":"YulFunctionCall","src":"21886:27:64"},"nativeSrc":"21886:27:64","nodeType":"YulExpressionStatement","src":"21886:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"21781:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"21825:3:64","nodeType":"YulTypedName","src":"21825:3:64","type":""},{"name":"dst","nativeSrc":"21830:3:64","nodeType":"YulTypedName","src":"21830:3:64","type":""},{"name":"length","nativeSrc":"21835:6:64","nodeType":"YulTypedName","src":"21835:6:64","type":""}],"src":"21781:139:64"},{"body":{"nativeSrc":"22020:338:64","nodeType":"YulBlock","src":"22020:338:64","statements":[{"nativeSrc":"22030:74:64","nodeType":"YulAssignment","src":"22030:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"22096:6:64","nodeType":"YulIdentifier","src":"22096:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"22055:40:64","nodeType":"YulIdentifier","src":"22055:40:64"},"nativeSrc":"22055:48:64","nodeType":"YulFunctionCall","src":"22055:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"22039:15:64","nodeType":"YulIdentifier","src":"22039:15:64"},"nativeSrc":"22039:65:64","nodeType":"YulFunctionCall","src":"22039:65:64"},"variableNames":[{"name":"array","nativeSrc":"22030:5:64","nodeType":"YulIdentifier","src":"22030:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"22120:5:64","nodeType":"YulIdentifier","src":"22120:5:64"},{"name":"length","nativeSrc":"22127:6:64","nodeType":"YulIdentifier","src":"22127:6:64"}],"functionName":{"name":"mstore","nativeSrc":"22113:6:64","nodeType":"YulIdentifier","src":"22113:6:64"},"nativeSrc":"22113:21:64","nodeType":"YulFunctionCall","src":"22113:21:64"},"nativeSrc":"22113:21:64","nodeType":"YulExpressionStatement","src":"22113:21:64"},{"nativeSrc":"22143:27:64","nodeType":"YulVariableDeclaration","src":"22143:27:64","value":{"arguments":[{"name":"array","nativeSrc":"22158:5:64","nodeType":"YulIdentifier","src":"22158:5:64"},{"kind":"number","nativeSrc":"22165:4:64","nodeType":"YulLiteral","src":"22165:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22154:3:64","nodeType":"YulIdentifier","src":"22154:3:64"},"nativeSrc":"22154:16:64","nodeType":"YulFunctionCall","src":"22154:16:64"},"variables":[{"name":"dst","nativeSrc":"22147:3:64","nodeType":"YulTypedName","src":"22147:3:64","type":""}]},{"body":{"nativeSrc":"22208:83:64","nodeType":"YulBlock","src":"22208:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"22210:77:64","nodeType":"YulIdentifier","src":"22210:77:64"},"nativeSrc":"22210:79:64","nodeType":"YulFunctionCall","src":"22210:79:64"},"nativeSrc":"22210:79:64","nodeType":"YulExpressionStatement","src":"22210:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22189:3:64","nodeType":"YulIdentifier","src":"22189:3:64"},{"name":"length","nativeSrc":"22194:6:64","nodeType":"YulIdentifier","src":"22194:6:64"}],"functionName":{"name":"add","nativeSrc":"22185:3:64","nodeType":"YulIdentifier","src":"22185:3:64"},"nativeSrc":"22185:16:64","nodeType":"YulFunctionCall","src":"22185:16:64"},{"name":"end","nativeSrc":"22203:3:64","nodeType":"YulIdentifier","src":"22203:3:64"}],"functionName":{"name":"gt","nativeSrc":"22182:2:64","nodeType":"YulIdentifier","src":"22182:2:64"},"nativeSrc":"22182:25:64","nodeType":"YulFunctionCall","src":"22182:25:64"},"nativeSrc":"22179:112:64","nodeType":"YulIf","src":"22179:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"22335:3:64","nodeType":"YulIdentifier","src":"22335:3:64"},{"name":"dst","nativeSrc":"22340:3:64","nodeType":"YulIdentifier","src":"22340:3:64"},{"name":"length","nativeSrc":"22345:6:64","nodeType":"YulIdentifier","src":"22345:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"22300:34:64","nodeType":"YulIdentifier","src":"22300:34:64"},"nativeSrc":"22300:52:64","nodeType":"YulFunctionCall","src":"22300:52:64"},"nativeSrc":"22300:52:64","nodeType":"YulExpressionStatement","src":"22300:52:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"21926:432:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"21993:3:64","nodeType":"YulTypedName","src":"21993:3:64","type":""},{"name":"length","nativeSrc":"21998:6:64","nodeType":"YulTypedName","src":"21998:6:64","type":""},{"name":"end","nativeSrc":"22006:3:64","nodeType":"YulTypedName","src":"22006:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22014:5:64","nodeType":"YulTypedName","src":"22014:5:64","type":""}],"src":"21926:432:64"},{"body":{"nativeSrc":"22449:281:64","nodeType":"YulBlock","src":"22449:281:64","statements":[{"body":{"nativeSrc":"22498:83:64","nodeType":"YulBlock","src":"22498:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"22500:77:64","nodeType":"YulIdentifier","src":"22500:77:64"},"nativeSrc":"22500:79:64","nodeType":"YulFunctionCall","src":"22500:79:64"},"nativeSrc":"22500:79:64","nodeType":"YulExpressionStatement","src":"22500:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22477:6:64","nodeType":"YulIdentifier","src":"22477:6:64"},{"kind":"number","nativeSrc":"22485:4:64","nodeType":"YulLiteral","src":"22485:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"22473:3:64","nodeType":"YulIdentifier","src":"22473:3:64"},"nativeSrc":"22473:17:64","nodeType":"YulFunctionCall","src":"22473:17:64"},{"name":"end","nativeSrc":"22492:3:64","nodeType":"YulIdentifier","src":"22492:3:64"}],"functionName":{"name":"slt","nativeSrc":"22469:3:64","nodeType":"YulIdentifier","src":"22469:3:64"},"nativeSrc":"22469:27:64","nodeType":"YulFunctionCall","src":"22469:27:64"}],"functionName":{"name":"iszero","nativeSrc":"22462:6:64","nodeType":"YulIdentifier","src":"22462:6:64"},"nativeSrc":"22462:35:64","nodeType":"YulFunctionCall","src":"22462:35:64"},"nativeSrc":"22459:122:64","nodeType":"YulIf","src":"22459:122:64"},{"nativeSrc":"22590:27:64","nodeType":"YulVariableDeclaration","src":"22590:27:64","value":{"arguments":[{"name":"offset","nativeSrc":"22610:6:64","nodeType":"YulIdentifier","src":"22610:6:64"}],"functionName":{"name":"mload","nativeSrc":"22604:5:64","nodeType":"YulIdentifier","src":"22604:5:64"},"nativeSrc":"22604:13:64","nodeType":"YulFunctionCall","src":"22604:13:64"},"variables":[{"name":"length","nativeSrc":"22594:6:64","nodeType":"YulTypedName","src":"22594:6:64","type":""}]},{"nativeSrc":"22626:98:64","nodeType":"YulAssignment","src":"22626:98:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"22697:6:64","nodeType":"YulIdentifier","src":"22697:6:64"},{"kind":"number","nativeSrc":"22705:4:64","nodeType":"YulLiteral","src":"22705:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22693:3:64","nodeType":"YulIdentifier","src":"22693:3:64"},"nativeSrc":"22693:17:64","nodeType":"YulFunctionCall","src":"22693:17:64"},{"name":"length","nativeSrc":"22712:6:64","nodeType":"YulIdentifier","src":"22712:6:64"},{"name":"end","nativeSrc":"22720:3:64","nodeType":"YulIdentifier","src":"22720:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr_fromMemory","nativeSrc":"22635:57:64","nodeType":"YulIdentifier","src":"22635:57:64"},"nativeSrc":"22635:89:64","nodeType":"YulFunctionCall","src":"22635:89:64"},"variableNames":[{"name":"array","nativeSrc":"22626:5:64","nodeType":"YulIdentifier","src":"22626:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"22377:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22427:6:64","nodeType":"YulTypedName","src":"22427:6:64","type":""},{"name":"end","nativeSrc":"22435:3:64","nodeType":"YulTypedName","src":"22435:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"22443:5:64","nodeType":"YulTypedName","src":"22443:5:64","type":""}],"src":"22377:353:64"},{"body":{"nativeSrc":"22871:855:64","nodeType":"YulBlock","src":"22871:855:64","statements":[{"body":{"nativeSrc":"22915:83:64","nodeType":"YulBlock","src":"22915:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"22917:77:64","nodeType":"YulIdentifier","src":"22917:77:64"},"nativeSrc":"22917:79:64","nodeType":"YulFunctionCall","src":"22917:79:64"},"nativeSrc":"22917:79:64","nodeType":"YulExpressionStatement","src":"22917:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"22892:3:64","nodeType":"YulIdentifier","src":"22892:3:64"},{"name":"headStart","nativeSrc":"22897:9:64","nodeType":"YulIdentifier","src":"22897:9:64"}],"functionName":{"name":"sub","nativeSrc":"22888:3:64","nodeType":"YulIdentifier","src":"22888:3:64"},"nativeSrc":"22888:19:64","nodeType":"YulFunctionCall","src":"22888:19:64"},{"kind":"number","nativeSrc":"22909:4:64","nodeType":"YulLiteral","src":"22909:4:64","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"22884:3:64","nodeType":"YulIdentifier","src":"22884:3:64"},"nativeSrc":"22884:30:64","nodeType":"YulFunctionCall","src":"22884:30:64"},"nativeSrc":"22881:117:64","nodeType":"YulIf","src":"22881:117:64"},{"nativeSrc":"23007:30:64","nodeType":"YulAssignment","src":"23007:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"23032:4:64","nodeType":"YulLiteral","src":"23032:4:64","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"23016:15:64","nodeType":"YulIdentifier","src":"23016:15:64"},"nativeSrc":"23016:21:64","nodeType":"YulFunctionCall","src":"23016:21:64"},"variableNames":[{"name":"value","nativeSrc":"23007:5:64","nodeType":"YulIdentifier","src":"23007:5:64"}]},{"nativeSrc":"23047:164:64","nodeType":"YulBlock","src":"23047:164:64","statements":[{"nativeSrc":"23085:15:64","nodeType":"YulVariableDeclaration","src":"23085:15:64","value":{"kind":"number","nativeSrc":"23099:1:64","nodeType":"YulLiteral","src":"23099:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"23089:6:64","nodeType":"YulTypedName","src":"23089:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23125:5:64","nodeType":"YulIdentifier","src":"23125:5:64"},{"kind":"number","nativeSrc":"23132:4:64","nodeType":"YulLiteral","src":"23132:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23121:3:64","nodeType":"YulIdentifier","src":"23121:3:64"},"nativeSrc":"23121:16:64","nodeType":"YulFunctionCall","src":"23121:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23175:9:64","nodeType":"YulIdentifier","src":"23175:9:64"},{"name":"offset","nativeSrc":"23186:6:64","nodeType":"YulIdentifier","src":"23186:6:64"}],"functionName":{"name":"add","nativeSrc":"23171:3:64","nodeType":"YulIdentifier","src":"23171:3:64"},"nativeSrc":"23171:22:64","nodeType":"YulFunctionCall","src":"23171:22:64"},{"name":"end","nativeSrc":"23195:3:64","nodeType":"YulIdentifier","src":"23195:3:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23139:31:64","nodeType":"YulIdentifier","src":"23139:31:64"},"nativeSrc":"23139:60:64","nodeType":"YulFunctionCall","src":"23139:60:64"}],"functionName":{"name":"mstore","nativeSrc":"23114:6:64","nodeType":"YulIdentifier","src":"23114:6:64"},"nativeSrc":"23114:86:64","nodeType":"YulFunctionCall","src":"23114:86:64"},"nativeSrc":"23114:86:64","nodeType":"YulExpressionStatement","src":"23114:86:64"}]},{"nativeSrc":"23221:164:64","nodeType":"YulBlock","src":"23221:164:64","statements":[{"nativeSrc":"23258:16:64","nodeType":"YulVariableDeclaration","src":"23258:16:64","value":{"kind":"number","nativeSrc":"23272:2:64","nodeType":"YulLiteral","src":"23272:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"23262:6:64","nodeType":"YulTypedName","src":"23262:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23299:5:64","nodeType":"YulIdentifier","src":"23299:5:64"},{"kind":"number","nativeSrc":"23306:4:64","nodeType":"YulLiteral","src":"23306:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23295:3:64","nodeType":"YulIdentifier","src":"23295:3:64"},"nativeSrc":"23295:16:64","nodeType":"YulFunctionCall","src":"23295:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23349:9:64","nodeType":"YulIdentifier","src":"23349:9:64"},{"name":"offset","nativeSrc":"23360:6:64","nodeType":"YulIdentifier","src":"23360:6:64"}],"functionName":{"name":"add","nativeSrc":"23345:3:64","nodeType":"YulIdentifier","src":"23345:3:64"},"nativeSrc":"23345:22:64","nodeType":"YulFunctionCall","src":"23345:22:64"},{"name":"end","nativeSrc":"23369:3:64","nodeType":"YulIdentifier","src":"23369:3:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"23313:31:64","nodeType":"YulIdentifier","src":"23313:31:64"},"nativeSrc":"23313:60:64","nodeType":"YulFunctionCall","src":"23313:60:64"}],"functionName":{"name":"mstore","nativeSrc":"23288:6:64","nodeType":"YulIdentifier","src":"23288:6:64"},"nativeSrc":"23288:86:64","nodeType":"YulFunctionCall","src":"23288:86:64"},"nativeSrc":"23288:86:64","nodeType":"YulExpressionStatement","src":"23288:86:64"}]},{"nativeSrc":"23395:324:64","nodeType":"YulBlock","src":"23395:324:64","statements":[{"nativeSrc":"23430:39:64","nodeType":"YulVariableDeclaration","src":"23430:39:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23454:9:64","nodeType":"YulIdentifier","src":"23454:9:64"},{"kind":"number","nativeSrc":"23465:2:64","nodeType":"YulLiteral","src":"23465:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23450:3:64","nodeType":"YulIdentifier","src":"23450:3:64"},"nativeSrc":"23450:18:64","nodeType":"YulFunctionCall","src":"23450:18:64"}],"functionName":{"name":"mload","nativeSrc":"23444:5:64","nodeType":"YulIdentifier","src":"23444:5:64"},"nativeSrc":"23444:25:64","nodeType":"YulFunctionCall","src":"23444:25:64"},"variables":[{"name":"offset","nativeSrc":"23434:6:64","nodeType":"YulTypedName","src":"23434:6:64","type":""}]},{"body":{"nativeSrc":"23516:83:64","nodeType":"YulBlock","src":"23516:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"23518:77:64","nodeType":"YulIdentifier","src":"23518:77:64"},"nativeSrc":"23518:79:64","nodeType":"YulFunctionCall","src":"23518:79:64"},"nativeSrc":"23518:79:64","nodeType":"YulExpressionStatement","src":"23518:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"23488:6:64","nodeType":"YulIdentifier","src":"23488:6:64"},{"kind":"number","nativeSrc":"23496:18:64","nodeType":"YulLiteral","src":"23496:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23485:2:64","nodeType":"YulIdentifier","src":"23485:2:64"},"nativeSrc":"23485:30:64","nodeType":"YulFunctionCall","src":"23485:30:64"},"nativeSrc":"23482:117:64","nodeType":"YulIf","src":"23482:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23624:5:64","nodeType":"YulIdentifier","src":"23624:5:64"},{"kind":"number","nativeSrc":"23631:4:64","nodeType":"YulLiteral","src":"23631:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23620:3:64","nodeType":"YulIdentifier","src":"23620:3:64"},"nativeSrc":"23620:16:64","nodeType":"YulFunctionCall","src":"23620:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23683:9:64","nodeType":"YulIdentifier","src":"23683:9:64"},{"name":"offset","nativeSrc":"23694:6:64","nodeType":"YulIdentifier","src":"23694:6:64"}],"functionName":{"name":"add","nativeSrc":"23679:3:64","nodeType":"YulIdentifier","src":"23679:3:64"},"nativeSrc":"23679:22:64","nodeType":"YulFunctionCall","src":"23679:22:64"},{"name":"end","nativeSrc":"23703:3:64","nodeType":"YulIdentifier","src":"23703:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr_fromMemory","nativeSrc":"23638:40:64","nodeType":"YulIdentifier","src":"23638:40:64"},"nativeSrc":"23638:69:64","nodeType":"YulFunctionCall","src":"23638:69:64"}],"functionName":{"name":"mstore","nativeSrc":"23613:6:64","nodeType":"YulIdentifier","src":"23613:6:64"},"nativeSrc":"23613:95:64","nodeType":"YulFunctionCall","src":"23613:95:64"},"nativeSrc":"23613:95:64","nodeType":"YulExpressionStatement","src":"23613:95:64"}]}]},"name":"abi_decode_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory","nativeSrc":"22772:954:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22846:9:64","nodeType":"YulTypedName","src":"22846:9:64","type":""},{"name":"end","nativeSrc":"22857:3:64","nodeType":"YulTypedName","src":"22857:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22865:5:64","nodeType":"YulTypedName","src":"22865:5:64","type":""}],"src":"22772:954:64"},{"body":{"nativeSrc":"23842:460:64","nodeType":"YulBlock","src":"23842:460:64","statements":[{"body":{"nativeSrc":"23888:83:64","nodeType":"YulBlock","src":"23888:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"23890:77:64","nodeType":"YulIdentifier","src":"23890:77:64"},"nativeSrc":"23890:79:64","nodeType":"YulFunctionCall","src":"23890:79:64"},"nativeSrc":"23890:79:64","nodeType":"YulExpressionStatement","src":"23890:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"23863:7:64","nodeType":"YulIdentifier","src":"23863:7:64"},{"name":"headStart","nativeSrc":"23872:9:64","nodeType":"YulIdentifier","src":"23872:9:64"}],"functionName":{"name":"sub","nativeSrc":"23859:3:64","nodeType":"YulIdentifier","src":"23859:3:64"},"nativeSrc":"23859:23:64","nodeType":"YulFunctionCall","src":"23859:23:64"},{"kind":"number","nativeSrc":"23884:2:64","nodeType":"YulLiteral","src":"23884:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"23855:3:64","nodeType":"YulIdentifier","src":"23855:3:64"},"nativeSrc":"23855:32:64","nodeType":"YulFunctionCall","src":"23855:32:64"},"nativeSrc":"23852:119:64","nodeType":"YulIf","src":"23852:119:64"},{"nativeSrc":"23981:314:64","nodeType":"YulBlock","src":"23981:314:64","statements":[{"nativeSrc":"23996:38:64","nodeType":"YulVariableDeclaration","src":"23996:38:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24020:9:64","nodeType":"YulIdentifier","src":"24020:9:64"},{"kind":"number","nativeSrc":"24031:1:64","nodeType":"YulLiteral","src":"24031:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24016:3:64","nodeType":"YulIdentifier","src":"24016:3:64"},"nativeSrc":"24016:17:64","nodeType":"YulFunctionCall","src":"24016:17:64"}],"functionName":{"name":"mload","nativeSrc":"24010:5:64","nodeType":"YulIdentifier","src":"24010:5:64"},"nativeSrc":"24010:24:64","nodeType":"YulFunctionCall","src":"24010:24:64"},"variables":[{"name":"offset","nativeSrc":"24000:6:64","nodeType":"YulTypedName","src":"24000:6:64","type":""}]},{"body":{"nativeSrc":"24081:83:64","nodeType":"YulBlock","src":"24081:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"24083:77:64","nodeType":"YulIdentifier","src":"24083:77:64"},"nativeSrc":"24083:79:64","nodeType":"YulFunctionCall","src":"24083:79:64"},"nativeSrc":"24083:79:64","nodeType":"YulExpressionStatement","src":"24083:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"24053:6:64","nodeType":"YulIdentifier","src":"24053:6:64"},{"kind":"number","nativeSrc":"24061:18:64","nodeType":"YulLiteral","src":"24061:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"24050:2:64","nodeType":"YulIdentifier","src":"24050:2:64"},"nativeSrc":"24050:30:64","nodeType":"YulFunctionCall","src":"24050:30:64"},"nativeSrc":"24047:117:64","nodeType":"YulIf","src":"24047:117:64"},{"nativeSrc":"24178:107:64","nodeType":"YulAssignment","src":"24178:107:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24257:9:64","nodeType":"YulIdentifier","src":"24257:9:64"},{"name":"offset","nativeSrc":"24268:6:64","nodeType":"YulIdentifier","src":"24268:6:64"}],"functionName":{"name":"add","nativeSrc":"24253:3:64","nodeType":"YulIdentifier","src":"24253:3:64"},"nativeSrc":"24253:22:64","nodeType":"YulFunctionCall","src":"24253:22:64"},{"name":"dataEnd","nativeSrc":"24277:7:64","nodeType":"YulIdentifier","src":"24277:7:64"}],"functionName":{"name":"abi_decode_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory","nativeSrc":"24188:64:64","nodeType":"YulIdentifier","src":"24188:64:64"},"nativeSrc":"24188:97:64","nodeType":"YulFunctionCall","src":"24188:97:64"},"variableNames":[{"name":"value0","nativeSrc":"24178:6:64","nodeType":"YulIdentifier","src":"24178:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory","nativeSrc":"23732:570:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"23812:9:64","nodeType":"YulTypedName","src":"23812:9:64","type":""},{"name":"dataEnd","nativeSrc":"23823:7:64","nodeType":"YulTypedName","src":"23823:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"23835:6:64","nodeType":"YulTypedName","src":"23835:6:64","type":""}],"src":"23732:570:64"},{"body":{"nativeSrc":"24366:40:64","nodeType":"YulBlock","src":"24366:40:64","statements":[{"nativeSrc":"24377:22:64","nodeType":"YulAssignment","src":"24377:22:64","value":{"arguments":[{"name":"value","nativeSrc":"24393:5:64","nodeType":"YulIdentifier","src":"24393:5:64"}],"functionName":{"name":"mload","nativeSrc":"24387:5:64","nodeType":"YulIdentifier","src":"24387:5:64"},"nativeSrc":"24387:12:64","nodeType":"YulFunctionCall","src":"24387:12:64"},"variableNames":[{"name":"length","nativeSrc":"24377:6:64","nodeType":"YulIdentifier","src":"24377:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"24308:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24349:5:64","nodeType":"YulTypedName","src":"24349:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"24359:6:64","nodeType":"YulTypedName","src":"24359:6:64","type":""}],"src":"24308:98:64"},{"body":{"nativeSrc":"24507:73:64","nodeType":"YulBlock","src":"24507:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"24524:3:64","nodeType":"YulIdentifier","src":"24524:3:64"},{"name":"length","nativeSrc":"24529:6:64","nodeType":"YulIdentifier","src":"24529:6:64"}],"functionName":{"name":"mstore","nativeSrc":"24517:6:64","nodeType":"YulIdentifier","src":"24517:6:64"},"nativeSrc":"24517:19:64","nodeType":"YulFunctionCall","src":"24517:19:64"},"nativeSrc":"24517:19:64","nodeType":"YulExpressionStatement","src":"24517:19:64"},{"nativeSrc":"24545:29:64","nodeType":"YulAssignment","src":"24545:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"24564:3:64","nodeType":"YulIdentifier","src":"24564:3:64"},{"kind":"number","nativeSrc":"24569:4:64","nodeType":"YulLiteral","src":"24569:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24560:3:64","nodeType":"YulIdentifier","src":"24560:3:64"},"nativeSrc":"24560:14:64","nodeType":"YulFunctionCall","src":"24560:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"24545:11:64","nodeType":"YulIdentifier","src":"24545:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"24412:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"24479:3:64","nodeType":"YulTypedName","src":"24479:3:64","type":""},{"name":"length","nativeSrc":"24484:6:64","nodeType":"YulTypedName","src":"24484:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"24495:11:64","nodeType":"YulTypedName","src":"24495:11:64","type":""}],"src":"24412:168:64"},{"body":{"nativeSrc":"24676:283:64","nodeType":"YulBlock","src":"24676:283:64","statements":[{"nativeSrc":"24686:52:64","nodeType":"YulVariableDeclaration","src":"24686:52:64","value":{"arguments":[{"name":"value","nativeSrc":"24732:5:64","nodeType":"YulIdentifier","src":"24732:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"24700:31:64","nodeType":"YulIdentifier","src":"24700:31:64"},"nativeSrc":"24700:38:64","nodeType":"YulFunctionCall","src":"24700:38:64"},"variables":[{"name":"length","nativeSrc":"24690:6:64","nodeType":"YulTypedName","src":"24690:6:64","type":""}]},{"nativeSrc":"24747:77:64","nodeType":"YulAssignment","src":"24747:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"24812:3:64","nodeType":"YulIdentifier","src":"24812:3:64"},{"name":"length","nativeSrc":"24817:6:64","nodeType":"YulIdentifier","src":"24817:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"24754:57:64","nodeType":"YulIdentifier","src":"24754:57:64"},"nativeSrc":"24754:70:64","nodeType":"YulFunctionCall","src":"24754:70:64"},"variableNames":[{"name":"pos","nativeSrc":"24747:3:64","nodeType":"YulIdentifier","src":"24747:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24872:5:64","nodeType":"YulIdentifier","src":"24872:5:64"},{"kind":"number","nativeSrc":"24879:4:64","nodeType":"YulLiteral","src":"24879:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24868:3:64","nodeType":"YulIdentifier","src":"24868:3:64"},"nativeSrc":"24868:16:64","nodeType":"YulFunctionCall","src":"24868:16:64"},{"name":"pos","nativeSrc":"24886:3:64","nodeType":"YulIdentifier","src":"24886:3:64"},{"name":"length","nativeSrc":"24891:6:64","nodeType":"YulIdentifier","src":"24891:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"24833:34:64","nodeType":"YulIdentifier","src":"24833:34:64"},"nativeSrc":"24833:65:64","nodeType":"YulFunctionCall","src":"24833:65:64"},"nativeSrc":"24833:65:64","nodeType":"YulExpressionStatement","src":"24833:65:64"},{"nativeSrc":"24907:46:64","nodeType":"YulAssignment","src":"24907:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"24918:3:64","nodeType":"YulIdentifier","src":"24918:3:64"},{"arguments":[{"name":"length","nativeSrc":"24945:6:64","nodeType":"YulIdentifier","src":"24945:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"24923:21:64","nodeType":"YulIdentifier","src":"24923:21:64"},"nativeSrc":"24923:29:64","nodeType":"YulFunctionCall","src":"24923:29:64"}],"functionName":{"name":"add","nativeSrc":"24914:3:64","nodeType":"YulIdentifier","src":"24914:3:64"},"nativeSrc":"24914:39:64","nodeType":"YulFunctionCall","src":"24914:39:64"},"variableNames":[{"name":"end","nativeSrc":"24907:3:64","nodeType":"YulIdentifier","src":"24907:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"24586:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24657:5:64","nodeType":"YulTypedName","src":"24657:5:64","type":""},{"name":"pos","nativeSrc":"24664:3:64","nodeType":"YulTypedName","src":"24664:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"24672:3:64","nodeType":"YulTypedName","src":"24672:3:64","type":""}],"src":"24586:373:64"},{"body":{"nativeSrc":"25193:523:64","nodeType":"YulBlock","src":"25193:523:64","statements":[{"nativeSrc":"25203:27:64","nodeType":"YulAssignment","src":"25203:27:64","value":{"arguments":[{"name":"headStart","nativeSrc":"25215:9:64","nodeType":"YulIdentifier","src":"25215:9:64"},{"kind":"number","nativeSrc":"25226:3:64","nodeType":"YulLiteral","src":"25226:3:64","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"25211:3:64","nodeType":"YulIdentifier","src":"25211:3:64"},"nativeSrc":"25211:19:64","nodeType":"YulFunctionCall","src":"25211:19:64"},"variableNames":[{"name":"tail","nativeSrc":"25203:4:64","nodeType":"YulIdentifier","src":"25203:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25284:6:64","nodeType":"YulIdentifier","src":"25284:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"25297:9:64","nodeType":"YulIdentifier","src":"25297:9:64"},{"kind":"number","nativeSrc":"25308:1:64","nodeType":"YulLiteral","src":"25308:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25293:3:64","nodeType":"YulIdentifier","src":"25293:3:64"},"nativeSrc":"25293:17:64","nodeType":"YulFunctionCall","src":"25293:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25240:43:64","nodeType":"YulIdentifier","src":"25240:43:64"},"nativeSrc":"25240:71:64","nodeType":"YulFunctionCall","src":"25240:71:64"},"nativeSrc":"25240:71:64","nodeType":"YulExpressionStatement","src":"25240:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"25365:6:64","nodeType":"YulIdentifier","src":"25365:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"25378:9:64","nodeType":"YulIdentifier","src":"25378:9:64"},{"kind":"number","nativeSrc":"25389:2:64","nodeType":"YulLiteral","src":"25389:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25374:3:64","nodeType":"YulIdentifier","src":"25374:3:64"},"nativeSrc":"25374:18:64","nodeType":"YulFunctionCall","src":"25374:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"25321:43:64","nodeType":"YulIdentifier","src":"25321:43:64"},"nativeSrc":"25321:72:64","nodeType":"YulFunctionCall","src":"25321:72:64"},"nativeSrc":"25321:72:64","nodeType":"YulExpressionStatement","src":"25321:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"25447:6:64","nodeType":"YulIdentifier","src":"25447:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"25460:9:64","nodeType":"YulIdentifier","src":"25460:9:64"},{"kind":"number","nativeSrc":"25471:2:64","nodeType":"YulLiteral","src":"25471:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"25456:3:64","nodeType":"YulIdentifier","src":"25456:3:64"},"nativeSrc":"25456:18:64","nodeType":"YulFunctionCall","src":"25456:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"25403:43:64","nodeType":"YulIdentifier","src":"25403:43:64"},"nativeSrc":"25403:72:64","nodeType":"YulFunctionCall","src":"25403:72:64"},"nativeSrc":"25403:72:64","nodeType":"YulExpressionStatement","src":"25403:72:64"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"25529:6:64","nodeType":"YulIdentifier","src":"25529:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"25542:9:64","nodeType":"YulIdentifier","src":"25542:9:64"},{"kind":"number","nativeSrc":"25553:2:64","nodeType":"YulLiteral","src":"25553:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"25538:3:64","nodeType":"YulIdentifier","src":"25538:3:64"},"nativeSrc":"25538:18:64","nodeType":"YulFunctionCall","src":"25538:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"25485:43:64","nodeType":"YulIdentifier","src":"25485:43:64"},"nativeSrc":"25485:72:64","nodeType":"YulFunctionCall","src":"25485:72:64"},"nativeSrc":"25485:72:64","nodeType":"YulExpressionStatement","src":"25485:72:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"25578:9:64","nodeType":"YulIdentifier","src":"25578:9:64"},{"kind":"number","nativeSrc":"25589:3:64","nodeType":"YulLiteral","src":"25589:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"25574:3:64","nodeType":"YulIdentifier","src":"25574:3:64"},"nativeSrc":"25574:19:64","nodeType":"YulFunctionCall","src":"25574:19:64"},{"arguments":[{"name":"tail","nativeSrc":"25599:4:64","nodeType":"YulIdentifier","src":"25599:4:64"},{"name":"headStart","nativeSrc":"25605:9:64","nodeType":"YulIdentifier","src":"25605:9:64"}],"functionName":{"name":"sub","nativeSrc":"25595:3:64","nodeType":"YulIdentifier","src":"25595:3:64"},"nativeSrc":"25595:20:64","nodeType":"YulFunctionCall","src":"25595:20:64"}],"functionName":{"name":"mstore","nativeSrc":"25567:6:64","nodeType":"YulIdentifier","src":"25567:6:64"},"nativeSrc":"25567:49:64","nodeType":"YulFunctionCall","src":"25567:49:64"},"nativeSrc":"25567:49:64","nodeType":"YulExpressionStatement","src":"25567:49:64"},{"nativeSrc":"25625:84:64","nodeType":"YulAssignment","src":"25625:84:64","value":{"arguments":[{"name":"value4","nativeSrc":"25695:6:64","nodeType":"YulIdentifier","src":"25695:6:64"},{"name":"tail","nativeSrc":"25704:4:64","nodeType":"YulIdentifier","src":"25704:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"25633:61:64","nodeType":"YulIdentifier","src":"25633:61:64"},"nativeSrc":"25633:76:64","nodeType":"YulFunctionCall","src":"25633:76:64"},"variableNames":[{"name":"tail","nativeSrc":"25625:4:64","nodeType":"YulIdentifier","src":"25625:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"24965:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25133:9:64","nodeType":"YulTypedName","src":"25133:9:64","type":""},{"name":"value4","nativeSrc":"25145:6:64","nodeType":"YulTypedName","src":"25145:6:64","type":""},{"name":"value3","nativeSrc":"25153:6:64","nodeType":"YulTypedName","src":"25153:6:64","type":""},{"name":"value2","nativeSrc":"25161:6:64","nodeType":"YulTypedName","src":"25161:6:64","type":""},{"name":"value1","nativeSrc":"25169:6:64","nodeType":"YulTypedName","src":"25169:6:64","type":""},{"name":"value0","nativeSrc":"25177:6:64","nodeType":"YulTypedName","src":"25177:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25188:4:64","nodeType":"YulTypedName","src":"25188:4:64","type":""}],"src":"24965:751:64"},{"body":{"nativeSrc":"25799:274:64","nodeType":"YulBlock","src":"25799:274:64","statements":[{"body":{"nativeSrc":"25845:83:64","nodeType":"YulBlock","src":"25845:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"25847:77:64","nodeType":"YulIdentifier","src":"25847:77:64"},"nativeSrc":"25847:79:64","nodeType":"YulFunctionCall","src":"25847:79:64"},"nativeSrc":"25847:79:64","nodeType":"YulExpressionStatement","src":"25847:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"25820:7:64","nodeType":"YulIdentifier","src":"25820:7:64"},{"name":"headStart","nativeSrc":"25829:9:64","nodeType":"YulIdentifier","src":"25829:9:64"}],"functionName":{"name":"sub","nativeSrc":"25816:3:64","nodeType":"YulIdentifier","src":"25816:3:64"},"nativeSrc":"25816:23:64","nodeType":"YulFunctionCall","src":"25816:23:64"},{"kind":"number","nativeSrc":"25841:2:64","nodeType":"YulLiteral","src":"25841:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"25812:3:64","nodeType":"YulIdentifier","src":"25812:3:64"},"nativeSrc":"25812:32:64","nodeType":"YulFunctionCall","src":"25812:32:64"},"nativeSrc":"25809:119:64","nodeType":"YulIf","src":"25809:119:64"},{"nativeSrc":"25938:128:64","nodeType":"YulBlock","src":"25938:128:64","statements":[{"nativeSrc":"25953:15:64","nodeType":"YulVariableDeclaration","src":"25953:15:64","value":{"kind":"number","nativeSrc":"25967:1:64","nodeType":"YulLiteral","src":"25967:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"25957:6:64","nodeType":"YulTypedName","src":"25957:6:64","type":""}]},{"nativeSrc":"25982:74:64","nodeType":"YulAssignment","src":"25982:74:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26028:9:64","nodeType":"YulIdentifier","src":"26028:9:64"},{"name":"offset","nativeSrc":"26039:6:64","nodeType":"YulIdentifier","src":"26039:6:64"}],"functionName":{"name":"add","nativeSrc":"26024:3:64","nodeType":"YulIdentifier","src":"26024:3:64"},"nativeSrc":"26024:22:64","nodeType":"YulFunctionCall","src":"26024:22:64"},{"name":"dataEnd","nativeSrc":"26048:7:64","nodeType":"YulIdentifier","src":"26048:7:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"25992:31:64","nodeType":"YulIdentifier","src":"25992:31:64"},"nativeSrc":"25992:64:64","nodeType":"YulFunctionCall","src":"25992:64:64"},"variableNames":[{"name":"value0","nativeSrc":"25982:6:64","nodeType":"YulIdentifier","src":"25982:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"25722:351:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25769:9:64","nodeType":"YulTypedName","src":"25769:9:64","type":""},{"name":"dataEnd","nativeSrc":"25780:7:64","nodeType":"YulTypedName","src":"25780:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"25792:6:64","nodeType":"YulTypedName","src":"25792:6:64","type":""}],"src":"25722:351:64"},{"body":{"nativeSrc":"26168:28:64","nodeType":"YulBlock","src":"26168:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26185:1:64","nodeType":"YulLiteral","src":"26185:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"26188:1:64","nodeType":"YulLiteral","src":"26188:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26178:6:64","nodeType":"YulIdentifier","src":"26178:6:64"},"nativeSrc":"26178:12:64","nodeType":"YulFunctionCall","src":"26178:12:64"},"nativeSrc":"26178:12:64","nodeType":"YulExpressionStatement","src":"26178:12:64"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"26079:117:64","nodeType":"YulFunctionDefinition","src":"26079:117:64"},{"body":{"nativeSrc":"26291:28:64","nodeType":"YulBlock","src":"26291:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26308:1:64","nodeType":"YulLiteral","src":"26308:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"26311:1:64","nodeType":"YulLiteral","src":"26311:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26301:6:64","nodeType":"YulIdentifier","src":"26301:6:64"},"nativeSrc":"26301:12:64","nodeType":"YulFunctionCall","src":"26301:12:64"},"nativeSrc":"26301:12:64","nodeType":"YulExpressionStatement","src":"26301:12:64"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"26202:117:64","nodeType":"YulFunctionDefinition","src":"26202:117:64"},{"body":{"nativeSrc":"26414:28:64","nodeType":"YulBlock","src":"26414:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26431:1:64","nodeType":"YulLiteral","src":"26431:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"26434:1:64","nodeType":"YulLiteral","src":"26434:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"26424:6:64","nodeType":"YulIdentifier","src":"26424:6:64"},"nativeSrc":"26424:12:64","nodeType":"YulFunctionCall","src":"26424:12:64"},"nativeSrc":"26424:12:64","nodeType":"YulExpressionStatement","src":"26424:12:64"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"26325:117:64","nodeType":"YulFunctionDefinition","src":"26325:117:64"},{"body":{"nativeSrc":"26538:634:64","nodeType":"YulBlock","src":"26538:634:64","statements":[{"nativeSrc":"26548:51:64","nodeType":"YulVariableDeclaration","src":"26548:51:64","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"26587:11:64","nodeType":"YulIdentifier","src":"26587:11:64"}],"functionName":{"name":"calldataload","nativeSrc":"26574:12:64","nodeType":"YulIdentifier","src":"26574:12:64"},"nativeSrc":"26574:25:64","nodeType":"YulFunctionCall","src":"26574:25:64"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"26552:18:64","nodeType":"YulTypedName","src":"26552:18:64","type":""}]},{"body":{"nativeSrc":"26693:83:64","nodeType":"YulBlock","src":"26693:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"26695:77:64","nodeType":"YulIdentifier","src":"26695:77:64"},"nativeSrc":"26695:79:64","nodeType":"YulFunctionCall","src":"26695:79:64"},"nativeSrc":"26695:79:64","nodeType":"YulExpressionStatement","src":"26695:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"26622:18:64","nodeType":"YulIdentifier","src":"26622:18:64"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"26650:12:64","nodeType":"YulIdentifier","src":"26650:12:64"},"nativeSrc":"26650:14:64","nodeType":"YulFunctionCall","src":"26650:14:64"},{"name":"base_ref","nativeSrc":"26666:8:64","nodeType":"YulIdentifier","src":"26666:8:64"}],"functionName":{"name":"sub","nativeSrc":"26646:3:64","nodeType":"YulIdentifier","src":"26646:3:64"},"nativeSrc":"26646:29:64","nodeType":"YulFunctionCall","src":"26646:29:64"},{"arguments":[{"kind":"number","nativeSrc":"26681:4:64","nodeType":"YulLiteral","src":"26681:4:64","type":"","value":"0x20"},{"kind":"number","nativeSrc":"26687:1:64","nodeType":"YulLiteral","src":"26687:1:64","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"26677:3:64","nodeType":"YulIdentifier","src":"26677:3:64"},"nativeSrc":"26677:12:64","nodeType":"YulFunctionCall","src":"26677:12:64"}],"functionName":{"name":"sub","nativeSrc":"26642:3:64","nodeType":"YulIdentifier","src":"26642:3:64"},"nativeSrc":"26642:48:64","nodeType":"YulFunctionCall","src":"26642:48:64"}],"functionName":{"name":"slt","nativeSrc":"26618:3:64","nodeType":"YulIdentifier","src":"26618:3:64"},"nativeSrc":"26618:73:64","nodeType":"YulFunctionCall","src":"26618:73:64"}],"functionName":{"name":"iszero","nativeSrc":"26611:6:64","nodeType":"YulIdentifier","src":"26611:6:64"},"nativeSrc":"26611:81:64","nodeType":"YulFunctionCall","src":"26611:81:64"},"nativeSrc":"26608:168:64","nodeType":"YulIf","src":"26608:168:64"},{"nativeSrc":"26785:41:64","nodeType":"YulAssignment","src":"26785:41:64","value":{"arguments":[{"name":"base_ref","nativeSrc":"26797:8:64","nodeType":"YulIdentifier","src":"26797:8:64"},{"name":"rel_offset_of_tail","nativeSrc":"26807:18:64","nodeType":"YulIdentifier","src":"26807:18:64"}],"functionName":{"name":"add","nativeSrc":"26793:3:64","nodeType":"YulIdentifier","src":"26793:3:64"},"nativeSrc":"26793:33:64","nodeType":"YulFunctionCall","src":"26793:33:64"},"variableNames":[{"name":"addr","nativeSrc":"26785:4:64","nodeType":"YulIdentifier","src":"26785:4:64"}]},{"nativeSrc":"26836:28:64","nodeType":"YulAssignment","src":"26836:28:64","value":{"arguments":[{"name":"addr","nativeSrc":"26859:4:64","nodeType":"YulIdentifier","src":"26859:4:64"}],"functionName":{"name":"calldataload","nativeSrc":"26846:12:64","nodeType":"YulIdentifier","src":"26846:12:64"},"nativeSrc":"26846:18:64","nodeType":"YulFunctionCall","src":"26846:18:64"},"variableNames":[{"name":"length","nativeSrc":"26836:6:64","nodeType":"YulIdentifier","src":"26836:6:64"}]},{"body":{"nativeSrc":"26907:83:64","nodeType":"YulBlock","src":"26907:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"26909:77:64","nodeType":"YulIdentifier","src":"26909:77:64"},"nativeSrc":"26909:79:64","nodeType":"YulFunctionCall","src":"26909:79:64"},"nativeSrc":"26909:79:64","nodeType":"YulExpressionStatement","src":"26909:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"26879:6:64","nodeType":"YulIdentifier","src":"26879:6:64"},{"kind":"number","nativeSrc":"26887:18:64","nodeType":"YulLiteral","src":"26887:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"26876:2:64","nodeType":"YulIdentifier","src":"26876:2:64"},"nativeSrc":"26876:30:64","nodeType":"YulFunctionCall","src":"26876:30:64"},"nativeSrc":"26873:117:64","nodeType":"YulIf","src":"26873:117:64"},{"nativeSrc":"26999:21:64","nodeType":"YulAssignment","src":"26999:21:64","value":{"arguments":[{"name":"addr","nativeSrc":"27011:4:64","nodeType":"YulIdentifier","src":"27011:4:64"},{"kind":"number","nativeSrc":"27017:2:64","nodeType":"YulLiteral","src":"27017:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27007:3:64","nodeType":"YulIdentifier","src":"27007:3:64"},"nativeSrc":"27007:13:64","nodeType":"YulFunctionCall","src":"27007:13:64"},"variableNames":[{"name":"addr","nativeSrc":"26999:4:64","nodeType":"YulIdentifier","src":"26999:4:64"}]},{"body":{"nativeSrc":"27082:83:64","nodeType":"YulBlock","src":"27082:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"27084:77:64","nodeType":"YulIdentifier","src":"27084:77:64"},"nativeSrc":"27084:79:64","nodeType":"YulFunctionCall","src":"27084:79:64"},"nativeSrc":"27084:79:64","nodeType":"YulExpressionStatement","src":"27084:79:64"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"27036:4:64","nodeType":"YulIdentifier","src":"27036:4:64"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"27046:12:64","nodeType":"YulIdentifier","src":"27046:12:64"},"nativeSrc":"27046:14:64","nodeType":"YulFunctionCall","src":"27046:14:64"},{"arguments":[{"name":"length","nativeSrc":"27066:6:64","nodeType":"YulIdentifier","src":"27066:6:64"},{"kind":"number","nativeSrc":"27074:4:64","nodeType":"YulLiteral","src":"27074:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"27062:3:64","nodeType":"YulIdentifier","src":"27062:3:64"},"nativeSrc":"27062:17:64","nodeType":"YulFunctionCall","src":"27062:17:64"}],"functionName":{"name":"sub","nativeSrc":"27042:3:64","nodeType":"YulIdentifier","src":"27042:3:64"},"nativeSrc":"27042:38:64","nodeType":"YulFunctionCall","src":"27042:38:64"}],"functionName":{"name":"sgt","nativeSrc":"27032:3:64","nodeType":"YulIdentifier","src":"27032:3:64"},"nativeSrc":"27032:49:64","nodeType":"YulFunctionCall","src":"27032:49:64"},"nativeSrc":"27029:136:64","nodeType":"YulIf","src":"27029:136:64"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"26448:724:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"26499:8:64","nodeType":"YulTypedName","src":"26499:8:64","type":""},{"name":"ptr_to_tail","nativeSrc":"26509:11:64","nodeType":"YulTypedName","src":"26509:11:64","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"26525:4:64","nodeType":"YulTypedName","src":"26525:4:64","type":""},{"name":"length","nativeSrc":"26531:6:64","nodeType":"YulTypedName","src":"26531:6:64","type":""}],"src":"26448:724:64"},{"body":{"nativeSrc":"27206:152:64","nodeType":"YulBlock","src":"27206:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27223:1:64","nodeType":"YulLiteral","src":"27223:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"27226:77:64","nodeType":"YulLiteral","src":"27226:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"27216:6:64","nodeType":"YulIdentifier","src":"27216:6:64"},"nativeSrc":"27216:88:64","nodeType":"YulFunctionCall","src":"27216:88:64"},"nativeSrc":"27216:88:64","nodeType":"YulExpressionStatement","src":"27216:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27320:1:64","nodeType":"YulLiteral","src":"27320:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"27323:4:64","nodeType":"YulLiteral","src":"27323:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"27313:6:64","nodeType":"YulIdentifier","src":"27313:6:64"},"nativeSrc":"27313:15:64","nodeType":"YulFunctionCall","src":"27313:15:64"},"nativeSrc":"27313:15:64","nodeType":"YulExpressionStatement","src":"27313:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27344:1:64","nodeType":"YulLiteral","src":"27344:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"27347:4:64","nodeType":"YulLiteral","src":"27347:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"27337:6:64","nodeType":"YulIdentifier","src":"27337:6:64"},"nativeSrc":"27337:15:64","nodeType":"YulFunctionCall","src":"27337:15:64"},"nativeSrc":"27337:15:64","nodeType":"YulExpressionStatement","src":"27337:15:64"}]},"name":"panic_error_0x11","nativeSrc":"27178:180:64","nodeType":"YulFunctionDefinition","src":"27178:180:64"},{"body":{"nativeSrc":"27408:147:64","nodeType":"YulBlock","src":"27408:147:64","statements":[{"nativeSrc":"27418:25:64","nodeType":"YulAssignment","src":"27418:25:64","value":{"arguments":[{"name":"x","nativeSrc":"27441:1:64","nodeType":"YulIdentifier","src":"27441:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27423:17:64","nodeType":"YulIdentifier","src":"27423:17:64"},"nativeSrc":"27423:20:64","nodeType":"YulFunctionCall","src":"27423:20:64"},"variableNames":[{"name":"x","nativeSrc":"27418:1:64","nodeType":"YulIdentifier","src":"27418:1:64"}]},{"nativeSrc":"27452:25:64","nodeType":"YulAssignment","src":"27452:25:64","value":{"arguments":[{"name":"y","nativeSrc":"27475:1:64","nodeType":"YulIdentifier","src":"27475:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"27457:17:64","nodeType":"YulIdentifier","src":"27457:17:64"},"nativeSrc":"27457:20:64","nodeType":"YulFunctionCall","src":"27457:20:64"},"variableNames":[{"name":"y","nativeSrc":"27452:1:64","nodeType":"YulIdentifier","src":"27452:1:64"}]},{"nativeSrc":"27486:16:64","nodeType":"YulAssignment","src":"27486:16:64","value":{"arguments":[{"name":"x","nativeSrc":"27497:1:64","nodeType":"YulIdentifier","src":"27497:1:64"},{"name":"y","nativeSrc":"27500:1:64","nodeType":"YulIdentifier","src":"27500:1:64"}],"functionName":{"name":"add","nativeSrc":"27493:3:64","nodeType":"YulIdentifier","src":"27493:3:64"},"nativeSrc":"27493:9:64","nodeType":"YulFunctionCall","src":"27493:9:64"},"variableNames":[{"name":"sum","nativeSrc":"27486:3:64","nodeType":"YulIdentifier","src":"27486:3:64"}]},{"body":{"nativeSrc":"27526:22:64","nodeType":"YulBlock","src":"27526:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"27528:16:64","nodeType":"YulIdentifier","src":"27528:16:64"},"nativeSrc":"27528:18:64","nodeType":"YulFunctionCall","src":"27528:18:64"},"nativeSrc":"27528:18:64","nodeType":"YulExpressionStatement","src":"27528:18:64"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"27518:1:64","nodeType":"YulIdentifier","src":"27518:1:64"},{"name":"sum","nativeSrc":"27521:3:64","nodeType":"YulIdentifier","src":"27521:3:64"}],"functionName":{"name":"gt","nativeSrc":"27515:2:64","nodeType":"YulIdentifier","src":"27515:2:64"},"nativeSrc":"27515:10:64","nodeType":"YulFunctionCall","src":"27515:10:64"},"nativeSrc":"27512:36:64","nodeType":"YulIf","src":"27512:36:64"}]},"name":"checked_add_t_uint256","nativeSrc":"27364:191:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"27395:1:64","nodeType":"YulTypedName","src":"27395:1:64","type":""},{"name":"y","nativeSrc":"27398:1:64","nodeType":"YulTypedName","src":"27398:1:64","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"27404:3:64","nodeType":"YulTypedName","src":"27404:3:64","type":""}],"src":"27364:191:64"},{"body":{"nativeSrc":"27715:288:64","nodeType":"YulBlock","src":"27715:288:64","statements":[{"nativeSrc":"27725:26:64","nodeType":"YulAssignment","src":"27725:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"27737:9:64","nodeType":"YulIdentifier","src":"27737:9:64"},{"kind":"number","nativeSrc":"27748:2:64","nodeType":"YulLiteral","src":"27748:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"27733:3:64","nodeType":"YulIdentifier","src":"27733:3:64"},"nativeSrc":"27733:18:64","nodeType":"YulFunctionCall","src":"27733:18:64"},"variableNames":[{"name":"tail","nativeSrc":"27725:4:64","nodeType":"YulIdentifier","src":"27725:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"27805:6:64","nodeType":"YulIdentifier","src":"27805:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"27818:9:64","nodeType":"YulIdentifier","src":"27818:9:64"},{"kind":"number","nativeSrc":"27829:1:64","nodeType":"YulLiteral","src":"27829:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27814:3:64","nodeType":"YulIdentifier","src":"27814:3:64"},"nativeSrc":"27814:17:64","nodeType":"YulFunctionCall","src":"27814:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"27761:43:64","nodeType":"YulIdentifier","src":"27761:43:64"},"nativeSrc":"27761:71:64","nodeType":"YulFunctionCall","src":"27761:71:64"},"nativeSrc":"27761:71:64","nodeType":"YulExpressionStatement","src":"27761:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"27886:6:64","nodeType":"YulIdentifier","src":"27886:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"27899:9:64","nodeType":"YulIdentifier","src":"27899:9:64"},{"kind":"number","nativeSrc":"27910:2:64","nodeType":"YulLiteral","src":"27910:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27895:3:64","nodeType":"YulIdentifier","src":"27895:3:64"},"nativeSrc":"27895:18:64","nodeType":"YulFunctionCall","src":"27895:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"27842:43:64","nodeType":"YulIdentifier","src":"27842:43:64"},"nativeSrc":"27842:72:64","nodeType":"YulFunctionCall","src":"27842:72:64"},"nativeSrc":"27842:72:64","nodeType":"YulExpressionStatement","src":"27842:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"27968:6:64","nodeType":"YulIdentifier","src":"27968:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"27981:9:64","nodeType":"YulIdentifier","src":"27981:9:64"},{"kind":"number","nativeSrc":"27992:2:64","nodeType":"YulLiteral","src":"27992:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"27977:3:64","nodeType":"YulIdentifier","src":"27977:3:64"},"nativeSrc":"27977:18:64","nodeType":"YulFunctionCall","src":"27977:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"27924:43:64","nodeType":"YulIdentifier","src":"27924:43:64"},"nativeSrc":"27924:72:64","nodeType":"YulFunctionCall","src":"27924:72:64"},"nativeSrc":"27924:72:64","nodeType":"YulExpressionStatement","src":"27924:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"27561:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27671:9:64","nodeType":"YulTypedName","src":"27671:9:64","type":""},{"name":"value2","nativeSrc":"27683:6:64","nodeType":"YulTypedName","src":"27683:6:64","type":""},{"name":"value1","nativeSrc":"27691:6:64","nodeType":"YulTypedName","src":"27691:6:64","type":""},{"name":"value0","nativeSrc":"27699:6:64","nodeType":"YulTypedName","src":"27699:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"27710:4:64","nodeType":"YulTypedName","src":"27710:4:64","type":""}],"src":"27561:442:64"},{"body":{"nativeSrc":"28163:288:64","nodeType":"YulBlock","src":"28163:288:64","statements":[{"nativeSrc":"28173:26:64","nodeType":"YulAssignment","src":"28173:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"28185:9:64","nodeType":"YulIdentifier","src":"28185:9:64"},{"kind":"number","nativeSrc":"28196:2:64","nodeType":"YulLiteral","src":"28196:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"28181:3:64","nodeType":"YulIdentifier","src":"28181:3:64"},"nativeSrc":"28181:18:64","nodeType":"YulFunctionCall","src":"28181:18:64"},"variableNames":[{"name":"tail","nativeSrc":"28173:4:64","nodeType":"YulIdentifier","src":"28173:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"28253:6:64","nodeType":"YulIdentifier","src":"28253:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"28266:9:64","nodeType":"YulIdentifier","src":"28266:9:64"},{"kind":"number","nativeSrc":"28277:1:64","nodeType":"YulLiteral","src":"28277:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28262:3:64","nodeType":"YulIdentifier","src":"28262:3:64"},"nativeSrc":"28262:17:64","nodeType":"YulFunctionCall","src":"28262:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28209:43:64","nodeType":"YulIdentifier","src":"28209:43:64"},"nativeSrc":"28209:71:64","nodeType":"YulFunctionCall","src":"28209:71:64"},"nativeSrc":"28209:71:64","nodeType":"YulExpressionStatement","src":"28209:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"28334:6:64","nodeType":"YulIdentifier","src":"28334:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"28347:9:64","nodeType":"YulIdentifier","src":"28347:9:64"},{"kind":"number","nativeSrc":"28358:2:64","nodeType":"YulLiteral","src":"28358:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28343:3:64","nodeType":"YulIdentifier","src":"28343:3:64"},"nativeSrc":"28343:18:64","nodeType":"YulFunctionCall","src":"28343:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"28290:43:64","nodeType":"YulIdentifier","src":"28290:43:64"},"nativeSrc":"28290:72:64","nodeType":"YulFunctionCall","src":"28290:72:64"},"nativeSrc":"28290:72:64","nodeType":"YulExpressionStatement","src":"28290:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"28416:6:64","nodeType":"YulIdentifier","src":"28416:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"28429:9:64","nodeType":"YulIdentifier","src":"28429:9:64"},{"kind":"number","nativeSrc":"28440:2:64","nodeType":"YulLiteral","src":"28440:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"28425:3:64","nodeType":"YulIdentifier","src":"28425:3:64"},"nativeSrc":"28425:18:64","nodeType":"YulFunctionCall","src":"28425:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"28372:43:64","nodeType":"YulIdentifier","src":"28372:43:64"},"nativeSrc":"28372:72:64","nodeType":"YulFunctionCall","src":"28372:72:64"},"nativeSrc":"28372:72:64","nodeType":"YulExpressionStatement","src":"28372:72:64"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"28009:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28119:9:64","nodeType":"YulTypedName","src":"28119:9:64","type":""},{"name":"value2","nativeSrc":"28131:6:64","nodeType":"YulTypedName","src":"28131:6:64","type":""},{"name":"value1","nativeSrc":"28139:6:64","nodeType":"YulTypedName","src":"28139:6:64","type":""},{"name":"value0","nativeSrc":"28147:6:64","nodeType":"YulTypedName","src":"28147:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28158:4:64","nodeType":"YulTypedName","src":"28158:4:64","type":""}],"src":"28009:442:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value6, value7 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct SimpleBudget.InitPayload\n function abi_decode_t_struct$_InitPayload_$15673_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // authorized\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$15673_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$15673_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_enum$_AssetType_$15450(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_AssetType_$15450(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_AssetType_$15450(value)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Budget.Transfer\n function abi_decode_t_struct$_Transfer_$15461_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // assetType\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_enum$_AssetType_$15450(add(headStart, offset), end))\n\n }\n\n {\n // asset\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Transfer_$15461_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Transfer_$15461_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct Budget.FungiblePayload\n function abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x20) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x20)\n\n {\n // amount\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n // struct Budget.ERC1155Payload\n function abi_decode_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x60)\n\n {\n // tokenId\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // amount\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x40), abi_decode_t_bytes_memory_ptr_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ERC1155Payload_$15473_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610169575f3560e01c8063774c33ab116100d0578063f23a6e6111610089578063f9a802c311610063578063f9a802c314610530578063fa4ca9b11461056c578063fe9fbb80146105a8578063fee81cf4146105e457610170565b8063f23a6e611461049c578063f2fde38b146104d8578063f8724aba146104f457610170565b8063774c33ab146103665780638da5cb5b146103a2578063bc197c81146103cc578063d2514e8414610408578063f04e283e14610444578063f1c30ec01461046057610170565b8063451cc19111610122578063451cc1911461026e57806354d1f13d146102aa578063578bcf35146102b45780635aef467a146102f057806361400c9914610320578063715018a61461035c57610170565b806301ffc9a71461017257806310098ad5146101ae57806325692962146101ea57806328d6183b146101f45780634359d28a1461021e578063439fab911461024657610170565b3661017057005b005b34801561017d575f80fd5b5061019860048036038101906101939190611fe7565b610620565b6040516101a5919061202c565b60405180910390f35b3480156101b9575f80fd5b506101d460048036038101906101cf919061209f565b610769565b6040516101e191906120e2565b60405180910390f35b6101f26107d4565b005b3480156101ff575f80fd5b50610208610825565b604051610215919061210a565b60405180910390f35b348015610229575f80fd5b50610244600480360381019061023f91906121d9565b61084c565b005b348015610251575f80fd5b5061026c600480360381019061026791906122ac565b610956565b005b348015610279575f80fd5b50610294600480360381019061028f91906122ac565b610a7b565b6040516102a191906120e2565b60405180910390f35b6102b2610a82565b005b3480156102bf575f80fd5b506102da60048036038101906102d5919061209f565b610abb565b6040516102e791906120e2565b60405180910390f35b61030a600480360381019061030591906122ac565b610b00565b604051610317919061202c565b60405180910390f35b34801561032b575f80fd5b506103466004803603810190610341919061234c565b610e70565b604051610353919061202c565b60405180910390f35b610364610ed4565b005b348015610371575f80fd5b5061038c600480360381019061038791906123c1565b610ee7565b60405161039991906120e2565b60405180910390f35b3480156103ad575f80fd5b506103b6610f3d565b6040516103c3919061240e565b60405180910390f35b3480156103d7575f80fd5b506103f260048036038101906103ed919061247c565b610f65565b6040516103ff919061210a565b60405180910390f35b348015610413575f80fd5b5061042e6004803603810190610429919061209f565b610f7c565b60405161043b91906120e2565b60405180910390f35b61045e6004803603810190610459919061209f565b610fd4565b005b34801561046b575f80fd5b50610486600480360381019061048191906122ac565b611012565b604051610493919061202c565b60405180910390f35b3480156104a7575f80fd5b506104c260048036038101906104bd9190612553565b6111f8565b6040516104cf919061210a565b60405180910390f35b6104f260048036038101906104ed919061209f565b61120d565b005b3480156104ff575f80fd5b5061051a600480360381019061051591906123c1565b611236565b60405161052791906120e2565b60405180910390f35b34801561053b575f80fd5b50610556600480360381019061055191906123c1565b6112b8565b60405161056391906120e2565b60405180910390f35b348015610577575f80fd5b50610592600480360381019061058d91906122ac565b611391565b60405161059f919061202c565b60405180910390f35b3480156105b3575f80fd5b506105ce60048036038101906105c9919061209f565b61163d565b6040516105db919061202c565b60405180910390f35b3480156105ef575f80fd5b5061060a6004803603810190610605919061209f565b6116cc565b60405161061791906120e2565b60405180910390f35b5f7f0f2a5d52000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106ea57507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061075257507f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107625750610761826116e5565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146107cb576107c6308373ffffffffffffffffffffffffffffffffffffffff1661175e90919063ffffffff16565b6107cd565b475b9050919050565b5f6107dd611791565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f0f2a5d5200000000000000000000000000000000000000000000000000000000905090565b61085461179b565b818190508484905014610893576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b8484905081101561094f578282828181106108b3576108b26125e9565b5b90506020020160208101906108c89190612640565b60025f8787858181106108de576108dd6125e9565b5b90506020020160208101906108f3919061209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610895565b5050505050565b5f61095f6117d2565b905080546003825580156109915760018160011c14303b106109885763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906109a29190612824565b90506109b0815f01516117fb565b5f5b816020015151811015610a3f57600160025f846020015184815181106109db576109da6125e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109b2565b50508015610a76576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808383810190610b1191906129cf565b90505f6002811115610b2657610b25612a16565b5b815f01516002811115610b3c57610b3b612a16565b5b03610bb2575f8160600151806020019051810190610b5a9190612a90565b9050805f01513414610bac578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610ba3929190612abb565b60405180910390fd5b50610e64565b60016002811115610bc657610bc5612a16565b5b815f01516002811115610bdc57610bdb612a16565b5b03610cb7575f8160600151806020019051810190610bfa9190612a90565b9050610c34826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff166118d1909392919063ffffffff16565b805f0151610c6530846020015173ffffffffffffffffffffffffffffffffffffffff1661175e90919063ffffffff16565b1015610cb1578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610ca8929190612abb565b60405180910390fd5b50610e63565b600280811115610cca57610cc9612a16565b5b815f01516002811115610ce057610cdf612a16565b5b03610e59575f8160600151806020019051810190610cfe9190612bdb565b9050816020015173ffffffffffffffffffffffffffffffffffffffff1663f242432a836040015130845f0151856020015186604001516040518663ffffffff1660e01b8152600401610d54959493929190612c74565b5f604051808303815f87803b158015610d6b575f80fd5b505af1158015610d7d573d5f803e3d5ffd5b505050508060200151826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b8152600401610dc7929190612abb565b602060405180830381865afa158015610de2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e069190612ccc565b1015610e5357816020015181602001516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610e4a929190612abb565b60405180910390fd5b50610e62565b5f915050610e6a565b5b5b60019150505b92915050565b5f805f90505b83839050811015610ec857610eae848483818110610e9757610e966125e9565b5b9050602002810190610ea99190612d03565b611391565b610ebb575f915050610ece565b8080600101915050610e76565b50600190505b92915050565b610edc61179b565b610ee55f61192b565b565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f63bc197c8160e01b905098975050505050505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610fc383610769565b610fcd9190612d92565b9050919050565b610fdc61179b565b63389a75e1600c52805f526020600c20805442111561100257636f5e88185f526004601cfd5b5f81555061100f8161192b565b50565b5f61101b61179b565b5f838381019061102b91906129cf565b90505f60028111156110405761103f612a16565b5b815f0151600281111561105657611055612a16565b5b148061108957506001600281111561107157611070612a16565b5b815f0151600281111561108757611086612a16565b5b145b156110e2575f81606001518060200190518101906110a79190612a90565b90506110dc826020015183604001515f845f0151146110c957835f01516110d7565b6110d68560200151610769565b5b6119f1565b506111ec565b6002808111156110f5576110f4612a16565b5b815f0151600281111561110b5761110a612a16565b5b036111e2575f81606001518060200190518101906111299190612bdb565b90506111dc82602001518360400151835f01515f8560200151146111515784602001516111d2565b856020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30875f01516040518363ffffffff1660e01b8152600401611192929190612abb565b602060405180830381865afa1580156111ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d19190612ccc565b5b8560400151611c09565b506111eb565b5f9150506111f2565b5b60019150505b92915050565b5f63f23a6e6160e01b90509695505050505050565b61121561179b565b8060601b61122a57637448fbae5f526004601cfd5b6112338161192b565b50565b5f8273ffffffffffffffffffffffffffffffffffffffff1662fdd58e30846040518363ffffffff1660e01b8152600401611271929190612abb565b602060405180830381865afa15801561128c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b09190612ccc565b905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20548373ffffffffffffffffffffffffffffffffffffffff1662fdd58e30856040518363ffffffff1660e01b8152600401611340929190612abb565b602060405180830381865afa15801561135b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061137f9190612ccc565b6113899190612d92565b905092915050565b5f61139b3361163d565b6113d1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f83838101906113e191906129cf565b9050600160028111156113f7576113f6612a16565b5b815f0151600281111561140d5761140c612a16565b5b148061143f57505f600281111561142757611426612a16565b5b815f0151600281111561143d5761143c612a16565b5b145b156114df575f816060015180602001905181019061145d9190612a90565b90505f61146d8360200151610769565b905080825f015111156114c257826020015181835f01516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016114b993929190612dc5565b60405180910390fd5b6114d883602001518460400151845f01516119f1565b5050611631565b6002808111156114f2576114f1612a16565b5b815f0151600281111561150857611507612a16565b5b03611627575f81606001518060200190518101906115269190612bdb565b90505f826020015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e30845f01516040518363ffffffff1660e01b815260040161156a929190612abb565b602060405180830381865afa158015611585573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a99190612ccc565b905080826020015111156116005782602001518183602001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016115f793929190612dc5565b60405180910390fd5b61162083602001518460400151845f015185602001518660400151611c09565b5050611630565b5f915050611637565b5b60019150505b92915050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806116c55750611696610f3d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f74009ff1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611757575061175682611e35565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146117d0576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611803611eae565b1561187b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561183d57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3506118ce565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661191c57637939f4245f526004601cfd5b5f606052806040525050505050565b611933611eae565b15611998577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b82178155506119ee565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd212685403611a0f5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a8f578282826040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611a8693929190612dfa565b60405180910390fd5b611a9883610769565b811115611ae85782611aa984610769565b826040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611adf93929190612dc5565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611b339190612d92565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b7c57611b778282611eb2565b611ba8565b611ba782828573ffffffffffffffffffffffffffffffffffffffff16611ecf9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428383604051611bf0929190612abb565b60405180910390a23868929eee149b4bd2126855505050565b3068929eee149b4bd212685403611c275763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ca7578484836040517fbf182be8000000000000000000000000000000000000000000000000000000008152600401611c9e93929190612dfa565b60405180910390fd5b611cb18584611236565b821115611d025784611cc38685611236565b836040517f5c54305e000000000000000000000000000000000000000000000000000000008152600401611cf993929190612dc5565b60405180910390fd5b8160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205f828254611d5d9190612d92565b925050819055508473ffffffffffffffffffffffffffffffffffffffff1663f242432a30868686866040518663ffffffff1660e01b8152600401611da5959493929190612c74565b5f604051808303815f87803b158015611dbc575f80fd5b505af1158015611dce573d5f803e3d5ffd5b505050508473ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd435428584604051611e1a929190612abb565b60405180910390a23868929eee149b4bd21268555050505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ea75750611ea682611f18565b5b9050919050565b5f90565b5f385f3884865af1611ecb5763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611f0f576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611fc681611f92565b8114611fd0575f80fd5b50565b5f81359050611fe181611fbd565b92915050565b5f60208284031215611ffc57611ffb611f8a565b5b5f61200984828501611fd3565b91505092915050565b5f8115159050919050565b61202681612012565b82525050565b5f60208201905061203f5f83018461201d565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61206e82612045565b9050919050565b61207e81612064565b8114612088575f80fd5b50565b5f8135905061209981612075565b92915050565b5f602082840312156120b4576120b3611f8a565b5b5f6120c18482850161208b565b91505092915050565b5f819050919050565b6120dc816120ca565b82525050565b5f6020820190506120f55f8301846120d3565b92915050565b61210481611f92565b82525050565b5f60208201905061211d5f8301846120fb565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261214457612143612123565b5b8235905067ffffffffffffffff81111561216157612160612127565b5b60208301915083602082028301111561217d5761217c61212b565b5b9250929050565b5f8083601f84011261219957612198612123565b5b8235905067ffffffffffffffff8111156121b6576121b5612127565b5b6020830191508360208202830111156121d2576121d161212b565b5b9250929050565b5f805f80604085870312156121f1576121f0611f8a565b5b5f85013567ffffffffffffffff81111561220e5761220d611f8e565b5b61221a8782880161212f565b9450945050602085013567ffffffffffffffff81111561223d5761223c611f8e565b5b61224987828801612184565b925092505092959194509250565b5f8083601f84011261226c5761226b612123565b5b8235905067ffffffffffffffff81111561228957612288612127565b5b6020830191508360018202830111156122a5576122a461212b565b5b9250929050565b5f80602083850312156122c2576122c1611f8a565b5b5f83013567ffffffffffffffff8111156122df576122de611f8e565b5b6122eb85828601612257565b92509250509250929050565b5f8083601f84011261230c5761230b612123565b5b8235905067ffffffffffffffff81111561232957612328612127565b5b6020830191508360208202830111156123455761234461212b565b5b9250929050565b5f806020838503121561236257612361611f8a565b5b5f83013567ffffffffffffffff81111561237f5761237e611f8e565b5b61238b858286016122f7565b92509250509250929050565b6123a0816120ca565b81146123aa575f80fd5b50565b5f813590506123bb81612397565b92915050565b5f80604083850312156123d7576123d6611f8a565b5b5f6123e48582860161208b565b92505060206123f5858286016123ad565b9150509250929050565b61240881612064565b82525050565b5f6020820190506124215f8301846123ff565b92915050565b5f8083601f84011261243c5761243b612123565b5b8235905067ffffffffffffffff81111561245957612458612127565b5b6020830191508360208202830111156124755761247461212b565b5b9250929050565b5f805f805f805f8060a0898b03121561249857612497611f8a565b5b5f6124a58b828c0161208b565b98505060206124b68b828c0161208b565b975050604089013567ffffffffffffffff8111156124d7576124d6611f8e565b5b6124e38b828c01612427565b9650965050606089013567ffffffffffffffff81111561250657612505611f8e565b5b6125128b828c01612427565b9450945050608089013567ffffffffffffffff81111561253557612534611f8e565b5b6125418b828c01612257565b92509250509295985092959890939650565b5f805f805f8060a0878903121561256d5761256c611f8a565b5b5f61257a89828a0161208b565b965050602061258b89828a0161208b565b955050604061259c89828a016123ad565b94505060606125ad89828a016123ad565b935050608087013567ffffffffffffffff8111156125ce576125cd611f8e565b5b6125da89828a01612257565b92509250509295509295509295565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b61261f81612012565b8114612629575f80fd5b50565b5f8135905061263a81612616565b92915050565b5f6020828403121561265557612654611f8a565b5b5f6126628482850161262c565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126b58261266f565b810181811067ffffffffffffffff821117156126d4576126d361267f565b5b80604052505050565b5f6126e6611f81565b90506126f282826126ac565b919050565b5f80fd5b5f67ffffffffffffffff8211156127155761271461267f565b5b602082029050602081019050919050565b5f612738612733846126fb565b6126dd565b9050808382526020820190506020840283018581111561275b5761275a61212b565b5b835b818110156127845780612770888261208b565b84526020840193505060208101905061275d565b5050509392505050565b5f82601f8301126127a2576127a1612123565b5b81356127b2848260208601612726565b91505092915050565b5f604082840312156127d0576127cf61266b565b5b6127da60406126dd565b90505f6127e98482850161208b565b5f83015250602082013567ffffffffffffffff81111561280c5761280b6126f7565b5b6128188482850161278e565b60208301525092915050565b5f6020828403121561283957612838611f8a565b5b5f82013567ffffffffffffffff81111561285657612855611f8e565b5b612862848285016127bb565b91505092915050565b60038110612877575f80fd5b50565b5f813590506128888161286b565b92915050565b5f80fd5b5f67ffffffffffffffff8211156128ac576128ab61267f565b5b6128b58261266f565b9050602081019050919050565b828183375f83830152505050565b5f6128e26128dd84612892565b6126dd565b9050828152602081018484840111156128fe576128fd61288e565b5b6129098482856128c2565b509392505050565b5f82601f83011261292557612924612123565b5b81356129358482602086016128d0565b91505092915050565b5f608082840312156129535761295261266b565b5b61295d60806126dd565b90505f61296c8482850161287a565b5f83015250602061297f8482850161208b565b60208301525060406129938482850161208b565b604083015250606082013567ffffffffffffffff8111156129b7576129b66126f7565b5b6129c384828501612911565b60608301525092915050565b5f602082840312156129e4576129e3611f8a565b5b5f82013567ffffffffffffffff811115612a0157612a00611f8e565b5b612a0d8482850161293e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f81519050612a5181612397565b92915050565b5f60208284031215612a6c57612a6b61266b565b5b612a7660206126dd565b90505f612a8584828501612a43565b5f8301525092915050565b5f60208284031215612aa557612aa4611f8a565b5b5f612ab284828501612a57565b91505092915050565b5f604082019050612ace5f8301856123ff565b612adb60208301846120d3565b9392505050565b8281835e5f83830152505050565b5f612b02612afd84612892565b6126dd565b905082815260208101848484011115612b1e57612b1d61288e565b5b612b29848285612ae2565b509392505050565b5f82601f830112612b4557612b44612123565b5b8151612b55848260208601612af0565b91505092915050565b5f60608284031215612b7357612b7261266b565b5b612b7d60606126dd565b90505f612b8c84828501612a43565b5f830152506020612b9f84828501612a43565b602083015250604082015167ffffffffffffffff811115612bc357612bc26126f7565b5b612bcf84828501612b31565b60408301525092915050565b5f60208284031215612bf057612bef611f8a565b5b5f82015167ffffffffffffffff811115612c0d57612c0c611f8e565b5b612c1984828501612b5e565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f612c4682612c22565b612c508185612c2c565b9350612c60818560208601612ae2565b612c698161266f565b840191505092915050565b5f60a082019050612c875f8301886123ff565b612c9460208301876123ff565b612ca160408301866120d3565b612cae60608301856120d3565b8181036080830152612cc08184612c3c565b90509695505050505050565b5f60208284031215612ce157612ce0611f8a565b5b5f612cee84828501612a43565b91505092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083356001602003843603038112612d1f57612d1e612cf7565b5b80840192508235915067ffffffffffffffff821115612d4157612d40612cfb565b5b602083019250600182023603831315612d5d57612d5c612cff565b5b509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d9c826120ca565b9150612da7836120ca565b9250828201905080821115612dbf57612dbe612d65565b5b92915050565b5f606082019050612dd85f8301866123ff565b612de560208301856120d3565b612df260408301846120d3565b949350505050565b5f606082019050612e0d5f8301866123ff565b612e1a60208301856123ff565b612e2760408301846120d3565b94935050505056fea264697066735822122002d00ba17935017819a7e2a1470d30dfadac5570501674129c5463c07a42cd8764736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x169 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x774C33AB GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0xF23A6E61 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xF9A802C3 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xF9A802C3 EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x56C JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x5E4 JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x49C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xF8724ABA EQ PUSH2 0x4F4 JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0x774C33AB EQ PUSH2 0x366 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A2 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x3CC JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x408 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x444 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x460 JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0x451CC191 GT PUSH2 0x122 JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AA JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2B4 JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0x61400C99 EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x35C JUMPI PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x172 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x246 JUMPI PUSH2 0x170 JUMP JUMPDEST CALLDATASIZE PUSH2 0x170 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x17D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x198 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH2 0x620 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1CF SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x769 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E1 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F2 PUSH2 0x7D4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x208 PUSH2 0x825 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x210A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x229 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x244 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x21D9 JUMP JUMPDEST PUSH2 0x84C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x251 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x267 SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0x956 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x279 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x294 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28F SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0xA7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B2 PUSH2 0xA82 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0xABB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E7 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0xB00 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x346 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x341 SWAP2 SWAP1 PUSH2 0x234C JUMP JUMPDEST PUSH2 0xE70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x353 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x364 PUSH2 0xED4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x371 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x38C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x387 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST PUSH2 0xEE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x399 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B6 PUSH2 0xF3D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C3 SWAP2 SWAP1 PUSH2 0x240E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x247C JUMP JUMPDEST PUSH2 0xF65 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3FF SWAP2 SWAP1 PUSH2 0x210A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x413 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x42E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x429 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0xF7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43B SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x45E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x459 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0xFD4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x486 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x481 SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x493 SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2553 JUMP JUMPDEST PUSH2 0x11F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CF SWAP2 SWAP1 PUSH2 0x210A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4F2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4ED SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x120D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x51A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x515 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x527 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x53B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x556 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x551 SWAP2 SWAP1 PUSH2 0x23C1 JUMP JUMPDEST PUSH2 0x12B8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x563 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x577 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x592 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58D SWAP2 SWAP1 PUSH2 0x22AC JUMP JUMPDEST PUSH2 0x1391 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59F SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5CE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5C9 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x163D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x202C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x60A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x605 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH2 0x16CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x20E2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xF2A5D5200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x6EA JUMPI POP PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x752 JUMPI POP PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x762 JUMPI POP PUSH2 0x761 DUP3 PUSH2 0x16E5 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x7CB JUMPI PUSH2 0x7C6 ADDRESS DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x175E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x7CD JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x7DD PUSH2 0x1791 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xF2A5D5200000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x854 PUSH2 0x179B JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x893 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x94F JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x8B3 JUMPI PUSH2 0x8B2 PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8C8 SWAP2 SWAP1 PUSH2 0x2640 JUMP JUMPDEST PUSH1 0x2 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x8DE JUMPI PUSH2 0x8DD PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x8F3 SWAP2 SWAP1 PUSH2 0x209F JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x895 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x95F PUSH2 0x17D2 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x991 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x988 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9A2 SWAP2 SWAP1 PUSH2 0x2824 JUMP JUMPDEST SWAP1 POP PUSH2 0x9B0 DUP2 PUSH0 ADD MLOAD PUSH2 0x17FB JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0xA3F JUMPI PUSH1 0x1 PUSH1 0x2 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x9DB JUMPI PUSH2 0x9DA PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x9B2 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0xA76 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xB11 SWAP2 SWAP1 PUSH2 0x29CF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB26 JUMPI PUSH2 0xB25 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB3C JUMPI PUSH2 0xB3B PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xBB2 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB5A SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xBAC JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBA3 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBC6 JUMPI PUSH2 0xBC5 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBDC JUMPI PUSH2 0xBDB PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xCB7 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xBFA SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP PUSH2 0xC34 DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x18D1 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xC65 ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x175E SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xCB1 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA8 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xE63 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xCCA JUMPI PUSH2 0xCC9 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE0 JUMPI PUSH2 0xCDF PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE59 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xCFE SWAP2 SWAP1 PUSH2 0x2BDB JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A DUP4 PUSH1 0x40 ADD MLOAD ADDRESS DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD54 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD6B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD7D JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC7 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDE2 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE06 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST LT ISZERO PUSH2 0xE53 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE4A SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xE62 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xE6A JUMP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xEC8 JUMPI PUSH2 0xEAE DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xE97 JUMPI PUSH2 0xE96 PUSH2 0x25E9 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xEA9 SWAP2 SWAP1 PUSH2 0x2D03 JUMP JUMPDEST PUSH2 0x1391 JUMP JUMPDEST PUSH2 0xEBB JUMPI PUSH0 SWAP2 POP POP PUSH2 0xECE JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xE76 JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEDC PUSH2 0x179B JUMP JUMPDEST PUSH2 0xEE5 PUSH0 PUSH2 0x192B JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xFC3 DUP4 PUSH2 0x769 JUMP JUMPDEST PUSH2 0xFCD SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFDC PUSH2 0x179B JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x1002 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x100F DUP2 PUSH2 0x192B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x101B PUSH2 0x179B JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x102B SWAP2 SWAP1 PUSH2 0x29CF JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1040 JUMPI PUSH2 0x103F PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1089 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1071 JUMPI PUSH2 0x1070 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1087 JUMPI PUSH2 0x1086 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x10E2 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x10A7 SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP PUSH2 0x10DC DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0x10C9 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0x10D7 JUMP JUMPDEST PUSH2 0x10D6 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x769 JUMP JUMPDEST JUMPDEST PUSH2 0x19F1 JUMP JUMPDEST POP PUSH2 0x11EC JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x10F5 JUMPI PUSH2 0x10F4 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x110B JUMPI PUSH2 0x110A PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x11E2 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1129 SWAP2 SWAP1 PUSH2 0x2BDB JUMP JUMPDEST SWAP1 POP PUSH2 0x11DC DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH0 DUP6 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1151 JUMPI DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x11D2 JUMP JUMPDEST DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP8 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1192 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11AD JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11D1 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST JUMPDEST DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x1C09 JUMP JUMPDEST POP PUSH2 0x11EB JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x11F2 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1215 PUSH2 0x179B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x122A JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1233 DUP2 PUSH2 0x192B JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1271 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x128C JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12B0 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1340 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x135B JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x137F SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST PUSH2 0x1389 SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x139B CALLER PUSH2 0x163D JUMP JUMPDEST PUSH2 0x13D1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x13E1 SWAP2 SWAP1 PUSH2 0x29CF JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x13F7 JUMPI PUSH2 0x13F6 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x140D JUMPI PUSH2 0x140C PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x143F JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1427 JUMPI PUSH2 0x1426 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x143D JUMPI PUSH2 0x143C PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0x14DF JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x145D SWAP2 SWAP1 PUSH2 0x2A90 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x146D DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x769 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH0 ADD MLOAD GT ISZERO PUSH2 0x14C2 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D8 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD PUSH2 0x19F1 JUMP JUMPDEST POP POP PUSH2 0x1631 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x14F2 JUMPI PUSH2 0x14F1 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1508 JUMPI PUSH2 0x1507 PUSH2 0x2A16 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x1627 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1526 SWAP2 SWAP1 PUSH2 0x2BDB JUMP JUMPDEST SWAP1 POP PUSH0 DUP3 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x156A SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1585 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15A9 SWAP2 SWAP1 PUSH2 0x2CCC JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH1 0x20 ADD MLOAD GT ISZERO PUSH2 0x1600 JUMPI DUP3 PUSH1 0x20 ADD MLOAD DUP2 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15F7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1620 DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP5 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD PUSH2 0x1C09 JUMP JUMPDEST POP POP PUSH2 0x1630 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x1637 JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x16C5 JUMPI POP PUSH2 0x1696 PUSH2 0xF3D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x74009FF100000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1757 JUMPI POP PUSH2 0x1756 DUP3 PUSH2 0x1E35 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x17D0 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1803 PUSH2 0x1EAE JUMP JUMPDEST ISZERO PUSH2 0x187B JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x183D JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x18CE JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x191C JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1933 PUSH2 0x1EAE JUMP JUMPDEST ISZERO PUSH2 0x1998 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x19EE JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1A0F JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1A8F JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A86 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1A98 DUP4 PUSH2 0x769 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1AE8 JUMPI DUP3 PUSH2 0x1AA9 DUP5 PUSH2 0x769 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1ADF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1B33 SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1B7C JUMPI PUSH2 0x1B77 DUP3 DUP3 PUSH2 0x1EB2 JUMP JUMPDEST PUSH2 0x1BA8 JUMP JUMPDEST PUSH2 0x1BA7 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1ECF SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1BF0 SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1C27 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1CA7 JUMPI DUP5 DUP5 DUP4 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C9E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1CB1 DUP6 DUP5 PUSH2 0x1236 JUMP JUMPDEST DUP3 GT ISZERO PUSH2 0x1D02 JUMPI DUP5 PUSH2 0x1CC3 DUP7 DUP6 PUSH2 0x1236 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CF9 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2DC5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x1D5D SWAP2 SWAP1 PUSH2 0x2D92 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DA5 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DBC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1DCE JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP6 DUP5 PUSH1 0x40 MLOAD PUSH2 0x1E1A SWAP3 SWAP2 SWAP1 PUSH2 0x2ABB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1EA7 JUMPI POP PUSH2 0x1EA6 DUP3 PUSH2 0x1F18 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1ECB JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1F0F JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FC6 DUP2 PUSH2 0x1F92 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FD0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE1 DUP2 PUSH2 0x1FBD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FFC JUMPI PUSH2 0x1FFB PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2009 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2026 DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x203F PUSH0 DUP4 ADD DUP5 PUSH2 0x201D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x206E DUP3 PUSH2 0x2045 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x207E DUP2 PUSH2 0x2064 JUMP JUMPDEST DUP2 EQ PUSH2 0x2088 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2099 DUP2 PUSH2 0x2075 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B4 JUMPI PUSH2 0x20B3 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x20C1 DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x20DC DUP2 PUSH2 0x20CA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x20F5 PUSH0 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2104 DUP2 PUSH2 0x1F92 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x211D PUSH0 DUP4 ADD DUP5 PUSH2 0x20FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2144 JUMPI PUSH2 0x2143 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2161 JUMPI PUSH2 0x2160 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x217D JUMPI PUSH2 0x217C PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2199 JUMPI PUSH2 0x2198 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x21B6 JUMPI PUSH2 0x21B5 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x21D2 JUMPI PUSH2 0x21D1 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x21F1 JUMPI PUSH2 0x21F0 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x220E JUMPI PUSH2 0x220D PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x221A DUP8 DUP3 DUP9 ADD PUSH2 0x212F JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x223D JUMPI PUSH2 0x223C PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2249 DUP8 DUP3 DUP9 ADD PUSH2 0x2184 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x226C JUMPI PUSH2 0x226B PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x22A5 JUMPI PUSH2 0x22A4 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x22C2 JUMPI PUSH2 0x22C1 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22DF JUMPI PUSH2 0x22DE PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x22EB DUP6 DUP3 DUP7 ADD PUSH2 0x2257 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x230C JUMPI PUSH2 0x230B PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2329 JUMPI PUSH2 0x2328 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2345 JUMPI PUSH2 0x2344 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2362 JUMPI PUSH2 0x2361 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x237F JUMPI PUSH2 0x237E PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x238B DUP6 DUP3 DUP7 ADD PUSH2 0x22F7 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x23A0 DUP2 PUSH2 0x20CA JUMP JUMPDEST DUP2 EQ PUSH2 0x23AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23BB DUP2 PUSH2 0x2397 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23D7 JUMPI PUSH2 0x23D6 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x23E4 DUP6 DUP3 DUP7 ADD PUSH2 0x208B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x23F5 DUP6 DUP3 DUP7 ADD PUSH2 0x23AD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2408 DUP2 PUSH2 0x2064 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2421 PUSH0 DUP4 ADD DUP5 PUSH2 0x23FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x243C JUMPI PUSH2 0x243B PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2459 JUMPI PUSH2 0x2458 PUSH2 0x2127 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x2475 JUMPI PUSH2 0x2474 PUSH2 0x212B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x2498 JUMPI PUSH2 0x2497 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x24A5 DUP12 DUP3 DUP13 ADD PUSH2 0x208B JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x24B6 DUP12 DUP3 DUP13 ADD PUSH2 0x208B JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24D7 JUMPI PUSH2 0x24D6 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x24E3 DUP12 DUP3 DUP13 ADD PUSH2 0x2427 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2506 JUMPI PUSH2 0x2505 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2512 DUP12 DUP3 DUP13 ADD PUSH2 0x2427 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2535 JUMPI PUSH2 0x2534 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2541 DUP12 DUP3 DUP13 ADD PUSH2 0x2257 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x256D JUMPI PUSH2 0x256C PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x257A DUP10 DUP3 DUP11 ADD PUSH2 0x208B JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x258B DUP10 DUP3 DUP11 ADD PUSH2 0x208B JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x259C DUP10 DUP3 DUP11 ADD PUSH2 0x23AD JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x25AD DUP10 DUP3 DUP11 ADD PUSH2 0x23AD JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25CE JUMPI PUSH2 0x25CD PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x25DA DUP10 DUP3 DUP11 ADD PUSH2 0x2257 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x261F DUP2 PUSH2 0x2012 JUMP JUMPDEST DUP2 EQ PUSH2 0x2629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x263A DUP2 PUSH2 0x2616 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2655 JUMPI PUSH2 0x2654 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2662 DUP5 DUP3 DUP6 ADD PUSH2 0x262C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x26B5 DUP3 PUSH2 0x266F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x26D4 JUMPI PUSH2 0x26D3 PUSH2 0x267F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x26E6 PUSH2 0x1F81 JUMP JUMPDEST SWAP1 POP PUSH2 0x26F2 DUP3 DUP3 PUSH2 0x26AC JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2715 JUMPI PUSH2 0x2714 PUSH2 0x267F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2738 PUSH2 0x2733 DUP5 PUSH2 0x26FB JUMP JUMPDEST PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x275B JUMPI PUSH2 0x275A PUSH2 0x212B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2784 JUMPI DUP1 PUSH2 0x2770 DUP9 DUP3 PUSH2 0x208B JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x275D JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27A2 JUMPI PUSH2 0x27A1 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x27B2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2726 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27D0 JUMPI PUSH2 0x27CF PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x27DA PUSH1 0x40 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x27E9 DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x280C JUMPI PUSH2 0x280B PUSH2 0x26F7 JUMP JUMPDEST JUMPDEST PUSH2 0x2818 DUP5 DUP3 DUP6 ADD PUSH2 0x278E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2839 JUMPI PUSH2 0x2838 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2856 JUMPI PUSH2 0x2855 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2862 DUP5 DUP3 DUP6 ADD PUSH2 0x27BB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2877 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2888 DUP2 PUSH2 0x286B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28AC JUMPI PUSH2 0x28AB PUSH2 0x267F JUMP JUMPDEST JUMPDEST PUSH2 0x28B5 DUP3 PUSH2 0x266F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x28E2 PUSH2 0x28DD DUP5 PUSH2 0x2892 JUMP JUMPDEST PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x28FE JUMPI PUSH2 0x28FD PUSH2 0x288E JUMP JUMPDEST JUMPDEST PUSH2 0x2909 DUP5 DUP3 DUP6 PUSH2 0x28C2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2925 JUMPI PUSH2 0x2924 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2935 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x28D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2953 JUMPI PUSH2 0x2952 PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x295D PUSH1 0x80 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x296C DUP5 DUP3 DUP6 ADD PUSH2 0x287A JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x297F DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2993 DUP5 DUP3 DUP6 ADD PUSH2 0x208B JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29B7 JUMPI PUSH2 0x29B6 PUSH2 0x26F7 JUMP JUMPDEST JUMPDEST PUSH2 0x29C3 DUP5 DUP3 DUP6 ADD PUSH2 0x2911 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29E4 JUMPI PUSH2 0x29E3 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A01 JUMPI PUSH2 0x2A00 PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2A0D DUP5 DUP3 DUP6 ADD PUSH2 0x293E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x2A51 DUP2 PUSH2 0x2397 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A6C JUMPI PUSH2 0x2A6B PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x2A76 PUSH1 0x20 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2A85 DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA5 JUMPI PUSH2 0x2AA4 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2AB2 DUP5 DUP3 DUP6 ADD PUSH2 0x2A57 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2ACE PUSH0 DUP4 ADD DUP6 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2ADB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2B02 PUSH2 0x2AFD DUP5 PUSH2 0x2892 JUMP JUMPDEST PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2B1E JUMPI PUSH2 0x2B1D PUSH2 0x288E JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 PUSH2 0x2AE2 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B45 JUMPI PUSH2 0x2B44 PUSH2 0x2123 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x2B55 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2AF0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B73 JUMPI PUSH2 0x2B72 PUSH2 0x266B JUMP JUMPDEST JUMPDEST PUSH2 0x2B7D PUSH1 0x60 PUSH2 0x26DD JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2B8C DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x2B9F DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BC3 JUMPI PUSH2 0x2BC2 PUSH2 0x26F7 JUMP JUMPDEST JUMPDEST PUSH2 0x2BCF DUP5 DUP3 DUP6 ADD PUSH2 0x2B31 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BF0 JUMPI PUSH2 0x2BEF PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C0D JUMPI PUSH2 0x2C0C PUSH2 0x1F8E JUMP JUMPDEST JUMPDEST PUSH2 0x2C19 DUP5 DUP3 DUP6 ADD PUSH2 0x2B5E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2C46 DUP3 PUSH2 0x2C22 JUMP JUMPDEST PUSH2 0x2C50 DUP2 DUP6 PUSH2 0x2C2C JUMP JUMPDEST SWAP4 POP PUSH2 0x2C60 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2AE2 JUMP JUMPDEST PUSH2 0x2C69 DUP2 PUSH2 0x266F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x2C87 PUSH0 DUP4 ADD DUP9 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2C94 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2CA1 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x20D3 JUMP JUMPDEST PUSH2 0x2CAE PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x20D3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2CC0 DUP2 DUP5 PUSH2 0x2C3C JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CE1 JUMPI PUSH2 0x2CE0 PUSH2 0x1F8A JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x2CEE DUP5 DUP3 DUP6 ADD PUSH2 0x2A43 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2D1F JUMPI PUSH2 0x2D1E PUSH2 0x2CF7 JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2D41 JUMPI PUSH2 0x2D40 PUSH2 0x2CFB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x2D5D JUMPI PUSH2 0x2D5C PUSH2 0x2CFF JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2D9C DUP3 PUSH2 0x20CA JUMP JUMPDEST SWAP2 POP PUSH2 0x2DA7 DUP4 PUSH2 0x20CA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2DBF JUMPI PUSH2 0x2DBE PUSH2 0x2D65 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2DD8 PUSH0 DUP4 ADD DUP7 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2DE5 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x20D3 JUMP JUMPDEST PUSH2 0x2DF2 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x2E0D PUSH0 DUP4 ADD DUP7 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2E1A PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x23FF JUMP JUMPDEST PUSH2 0x2E27 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x20D3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL 0xD0 SIGNEXTEND LOG1 PUSH26 0x35017819A7E2A1470D30DFADAC5570501674129C5463C07A42CD DUP8 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"338:942:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13689:328:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9143:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;14053:134:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7240:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;956:322:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10578:104:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;9942:138:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2168:1677;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6976:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:16;;;:::i;:::-;;10318:156:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13354:299:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8119:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4274:1015:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12881:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9563:166:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8532:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5571:1181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7643:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11693:435:16;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13689:328:40;13791:4;13829:31;13814:46;;;:11;:46;;;;:99;;;;13879:34;13864:49;;;:11;:49;;;;13814:99;:155;;;;13944:25;13929:40;;;:11;:40;;;;13814:155;:196;;;;13973:37;13998:11;13973:24;:37::i;:::-;13814:196;13807:203;;13689:328;;;:::o;9143:184::-;9216:7;9260:1;9242:20;;:6;:20;;;:78;;9289:31;9314:4;9289:6;:16;;;;:31;;;;:::i;:::-;9242:78;;;9265:21;9242:78;9235:85;;9143:184;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;14053:134:40:-;14124:6;14149:31;14142:38;;14053:134;:::o;7240:370::-;12517:13:16;:11;:13::i;:::-;7426:11:40::1;;:18;;7407:8;;:15;;:37;7403:77;;7453:27;;;;;;;;;;;;;;7403:77;7495:9;7490:114;7514:8;;:15;;7510:1;:19;7490:114;;;7579:11;;7591:1;7579:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7550:13;:26;7564:8;;7573:1;7564:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7550:26;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;7531:3;;;;;;;7490:114;;;;7240:370:::0;;;;:::o;956:322:43:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1044:24:43::1;1082:5;;1071:32;;;;;;;:::i;:::-;1044:59;;1113:29;1130:5;:11;;;1113:16;:29::i;:::-;1157:9;1152:120;1176:5;:16;;;:23;1172:1;:27;1152:120;;;1257:4;1220:13;:34;1234:5;:16;;;1251:1;1234:19;;;;;;;;:::i;:::-;;;;;;;;1220:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;1201:3;;;;;;;1152:120;;;;1034:244;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;956:322:43;;:::o;10578:104:40:-;10648:7;10578:104;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;9942:138:40:-;10019:7;10045:20;:28;10066:6;10045:28;;;;;;;;;;;;;;;;10038:35;;9942:138;;;:::o;2168:1677::-;2251:4;2267:23;2304:5;;2293:29;;;;;;;:::i;:::-;2267:55;;2357:13;2336:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;2332:1485;;2386:30;2430:7;:12;;;2419:43;;;;;;;;;;;;:::i;:::-;2386:76;;2568:7;:14;;;2555:9;:27;2551:121;;2627:7;:13;;;2642:7;:14;;;2609:48;;;;;;;;;;;;:::i;:::-;;;;;;;;2551:121;2372:310;2332:1485;;;2713:15;2692:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;2688:1129;;2744:30;2788:7;:12;;;2777:43;;;;;;;;;;;;:::i;:::-;2744:76;;2906:77;2937:7;:14;;;2961:4;2968:7;:14;;;2906:7;:13;;;:30;;;;:77;;;;;;:::i;:::-;3042:7;:14;;;3001:38;3033:4;3001:7;:13;;;:23;;;;:38;;;;:::i;:::-;:55;2997:149;;;3101:7;:13;;;3116:7;:14;;;3083:48;;;;;;;;;;;;:::i;:::-;;;;;;;;2997:149;2730:426;2688:1129;;;3187:17;3166:38;;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;;3162:655;;3220:29;3263:7;:12;;;3252:42;;;;;;;;;;;;:::i;:::-;3220:74;;3397:7;:13;;;3388:40;;;3446:7;:14;;;3470:4;3477:7;:15;;;3494:7;:14;;;3510:7;:12;;;3388:148;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3622:7;:14;;;3563:7;:13;;;3554:33;;;3596:4;3603:7;:15;;;3554:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;3550:176;;;3681:7;:13;;;3696:7;:14;;;3663:48;;;;;;;;;;;;:::i;:::-;;;;;;;;3550:176;3206:530;3162:655;;;3801:5;3794:12;;;;;3162:655;2688:1129;2332:1485;3834:4;3827:11;;;2168:1677;;;;;:::o;6976:231::-;7058:4;7079:9;7091:1;7079:13;;7074:105;7098:5;;:12;;7094:1;:16;7074:105;;;7136:18;7145:5;;7151:1;7145:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;7136;:18::i;:::-;7131:37;;7163:5;7156:12;;;;;7131:37;7112:3;;;;;;;7074:105;;;;7196:4;7189:11;;6976:231;;;;;:::o;8762:100:16:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;10318:156:40:-;10404:7;10430:19;:27;10450:6;10430:27;;;;;;;;;;;;;;;:37;10458:8;10430:37;;;;;;;;;;;;10423:44;;10318:156;;;;:::o;11408:182:16:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;13354:299:40:-;13524:6;13598:48;;;13591:55;;13354:299;;;;;;;;;;:::o;8119:152::-;8190:7;8236:20;:28;8257:6;8236:28;;;;;;;;;;;;;;;;8216:17;8226:6;8216:9;:17::i;:::-;:48;;;;:::i;:::-;8209:55;;8119:152;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;4274:1015:40:-;4358:4;12517:13:16;:11;:13::i;:::-;4374:23:40::1;4411:5;;4400:29;;;;;;;:::i;:::-;4374:55;;4464:13;4443:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;:74;;;;4502:15;4481:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;4443:74;4439:822;;;4533:30;4577:7;:12;;;4566:43;;;;;;;;;;;;:::i;:::-;4533:76;;4623:143;4658:7;:13;;;4673:7;:14;;;4707:1;4689:7;:14;;;:19;:63;;4738:7;:14;;;4689:63;;;4711:24;4721:7;:13;;;4711:9;:24::i;:::-;4689:63;4623:17;:143::i;:::-;4519:258;4439:822;;;4808:17;4787:38:::0;::::1;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;::::0;4783:478:::1;;4841:29;4884:7;:12;;;4873:42;;;;;;;;;;;;:::i;:::-;4841:74;;4929:278;4963:7;:13;;;4994:7;:14;;;5026:7;:15;;;5077:1;5059:7;:14;;;:19;:104;;5149:7;:14;;;5059:104;;;5090:7;:13;;;5081:33;;;5123:4;5130:7;:15;;;5081:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5059:104;5181:7;:12;;;4929:16;:278::i;:::-;4827:391;4783:478;;;5245:5;5238:12;;;;;4783:478;4439:822;5278:4;5271:11;;;12540:1:16;4274:1015:40::0;;;;:::o;12881:267::-;13024:6;13098:43;;;13091:50;;12881:267;;;;;;;;:::o;8348:349:16:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;9563:166:40:-;9645:7;9680:6;9671:26;;;9706:4;9713:8;9671:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9664:58;;9563:166;;;;:::o;8532:204::-;8612:7;8692:19;:27;8712:6;8692:27;;;;;;;;;;;;;;;:37;8720:8;8692:37;;;;;;;;;;;;8647:6;8638:26;;;8673:4;8680:8;8638:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:91;;;;:::i;:::-;8631:98;;8532:204;;;;:::o;5571:1181::-;5659:4;1510:24;1523:10;1510:12;:24::i;:::-;1505:52;;1543:14;;;;;;;;;;;;;;1505:52;5675:23:::1;5712:5;;5701:29;;;;;;;:::i;:::-;5675:55;;5765:15;5744:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;:74;;;;5805:13;5784:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;5744:74;5740:984;;;5834:30;5878:7;:12;;;5867:43;;;;;;;;;;;;:::i;:::-;5834:76;;5925:13;5941:24;5951:7;:13;;;5941:9;:24::i;:::-;5925:40;;6000:5;5983:7;:14;;;:22;5979:123;;;6050:7;:13;;;6065:5;6072:7;:14;;;6032:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;5979:123;6116:64;6134:7;:13;;;6149:7;:14;;;6165:7;:14;;;6116:17;:64::i;:::-;5820:371;;5740:984;;;6222:17;6201:38:::0;::::1;;;;;;;:::i;:::-;;:7;:17;;;:38;;;;;;;;:::i;:::-;;::::0;6197:527:::1;;6255:29;6298:7;:12;;;6287:42;;;;;;;;;;;;:::i;:::-;6255:74;;6344:13;6369:7;:13;;;6360:33;;;6402:4;6409:7;:15;;;6360:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6344:81;;6460:5;6443:7;:14;;;:22;6439:123;;;6510:7;:13;;;6525:5;6532:7;:14;;;6492:55;;;;;;;;;;;;;:::i;:::-;;;;;;;;6439:123;6576:94;6593:7;:13;;;6608:7;:14;;;6624:7;:15;;;6641:7;:14;;;6657:7;:12;;;6576:16;:94::i;:::-;6241:440;;6197:527;;;6708:5;6701:12;;;;;6197:527;5740:984;6741:4;6734:11;;;1567:1;5571:1181:::0;;;;:::o;7643:154::-;7721:4;7744:13;:23;7758:8;7744:23;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;7783:7;:5;:7::i;:::-;7771:19;;:8;:19;;;7744:46;7737:53;;7643:154;;;:::o;11693:435:16:-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;5925:205:42:-;6021:4;6059:24;6044:39;;;:11;:39;;;;:79;;;;6087:36;6111:11;6087:23;:36::i;:::-;6044:79;6037:86;;5925:205;;;:::o;19260:739:26:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;9109:1139:26:-;9292:4;9286:11;9357:6;9351:4;9344:20;9422:2;9416:4;9409:16;9487:4;9483:2;9479:13;9473:4;9466:27;9549:34;9543:4;9536:48;9950:4;9944;9938;9932;9929:1;9922:5;9915;9910:45;9844:16;9837:24;9833:1;9826:4;9820:11;9817:18;9814:48;9729:244;9702:404;;10019:10;10013:4;10006:24;10087:4;10081;10074:18;9702:404;10132:1;10126:4;10119:15;10194:1;10188:4;10181:15;9263:979;9109:1139;;;;:::o;6145:1089:16:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;11141:708:40:-;1635:9:25;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;11352:1:40::1;11337:17;;:3;:17;;::::0;11333:66:::1;;11378:6;11386:3;11391:7;11363:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;11333:66;11423:17;11433:6;11423:9;:17::i;:::-;11413:7;:27;11409:118;;;11481:6;11489:17;11499:6;11489:9;:17::i;:::-;11508:7;11463:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;11409:118;11569:7;11537:20;:28:::0;11558:6:::1;11537:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;11656:1;11638:20;;:6;:20;;::::0;11634:160:::1;;11674:45;11706:3;11711:7;11674:31;:45::i;:::-;11634:160;;;11750:33;11770:3;11775:7;11750:6;:19;;;;:33;;;;;:::i;:::-;11634:160;11821:6;11809:33;;;11829:3;11834:7;11809:33;;;;;;;:::i;:::-;;;;;;;;1937:10:25::0;1913:22;1906:42;11141:708:40;;;:::o;11855:820::-;1635:9:25;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;12131:1:40::1;12116:17;;:3;:17;;::::0;12112:66:::1;;12157:6;12165:3;12170:7;12142:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;12112:66;12202:27;12212:6;12220:8;12202:9;:27::i;:::-;12192:7;:37;12188:138;;;12270:6;12278:27;12288:6;12296:8;12278:9;:27::i;:::-;12307:7;12252:63;;;;;;;;;;;;;:::i;:::-;;;;;;;;12188:138;12377:7;12336:19;:27;12356:6;12336:27;;;;;;;;;;;;;;;:37;12364:8;12336:37;;;;;;;;;;;;:48;;;;;;;:::i;:::-;;;;;;;;12549:6;12540:33;;;12582:4;12589:3;12594:8;12604:7;12613:5;12540:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12647:6;12635:33;;;12655:3;12660:7;12635:33;;;;;;;:::i;:::-;;;;;;;;1937:10:25::0;1913:22;1906:42;11855:820:40;;;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;4031:342:26:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;13466:939::-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:126::-;1555:7;1595:42;1588:5;1584:54;1573:65;;1518:126;;;:::o;1650:96::-;1687:7;1716:24;1734:5;1716:24;:::i;:::-;1705:35;;1650:96;;;:::o;1752:122::-;1825:24;1843:5;1825:24;:::i;:::-;1818:5;1815:35;1805:63;;1864:1;1861;1854:12;1805:63;1752:122;:::o;1880:139::-;1926:5;1964:6;1951:20;1942:29;;1980:33;2007:5;1980:33;:::i;:::-;1880:139;;;;:::o;2025:329::-;2084:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:119;;;2139:79;;:::i;:::-;2101:119;2259:1;2284:53;2329:7;2320:6;2309:9;2305:22;2284:53;:::i;:::-;2274:63;;2230:117;2025:329;;;;:::o;2360:77::-;2397:7;2426:5;2415:16;;2360:77;;;:::o;2443:118::-;2530:24;2548:5;2530:24;:::i;:::-;2525:3;2518:37;2443:118;;:::o;2567:222::-;2660:4;2698:2;2687:9;2683:18;2675:26;;2711:71;2779:1;2768:9;2764:17;2755:6;2711:71;:::i;:::-;2567:222;;;;:::o;2795:115::-;2880:23;2897:5;2880:23;:::i;:::-;2875:3;2868:36;2795:115;;:::o;2916:218::-;3007:4;3045:2;3034:9;3030:18;3022:26;;3058:69;3124:1;3113:9;3109:17;3100:6;3058:69;:::i;:::-;2916:218;;;;:::o;3140:117::-;3249:1;3246;3239:12;3263:117;3372:1;3369;3362:12;3386:117;3495:1;3492;3485:12;3526:568;3599:8;3609:6;3659:3;3652:4;3644:6;3640:17;3636:27;3626:122;;3667:79;;:::i;:::-;3626:122;3780:6;3767:20;3757:30;;3810:18;3802:6;3799:30;3796:117;;;3832:79;;:::i;:::-;3796:117;3946:4;3938:6;3934:17;3922:29;;4000:3;3992:4;3984:6;3980:17;3970:8;3966:32;3963:41;3960:128;;;4007:79;;:::i;:::-;3960:128;3526:568;;;;;:::o;4114:565::-;4184:8;4194:6;4244:3;4237:4;4229:6;4225:17;4221:27;4211:122;;4252:79;;:::i;:::-;4211:122;4365:6;4352:20;4342:30;;4395:18;4387:6;4384:30;4381:117;;;4417:79;;:::i;:::-;4381:117;4531:4;4523:6;4519:17;4507:29;;4585:3;4577:4;4569:6;4565:17;4555:8;4551:32;4548:41;4545:128;;;4592:79;;:::i;:::-;4545:128;4114:565;;;;;:::o;4685:928::-;4804:6;4812;4820;4828;4877:2;4865:9;4856:7;4852:23;4848:32;4845:119;;;4883:79;;:::i;:::-;4845:119;5031:1;5020:9;5016:17;5003:31;5061:18;5053:6;5050:30;5047:117;;;5083:79;;:::i;:::-;5047:117;5196:80;5268:7;5259:6;5248:9;5244:22;5196:80;:::i;:::-;5178:98;;;;4974:312;5353:2;5342:9;5338:18;5325:32;5384:18;5376:6;5373:30;5370:117;;;5406:79;;:::i;:::-;5370:117;5519:77;5588:7;5579:6;5568:9;5564:22;5519:77;:::i;:::-;5501:95;;;;5296:310;4685:928;;;;;;;:::o;5632:552::-;5689:8;5699:6;5749:3;5742:4;5734:6;5730:17;5726:27;5716:122;;5757:79;;:::i;:::-;5716:122;5870:6;5857:20;5847:30;;5900:18;5892:6;5889:30;5886:117;;;5922:79;;:::i;:::-;5886:117;6036:4;6028:6;6024:17;6012:29;;6090:3;6082:4;6074:6;6070:17;6060:8;6056:32;6053:41;6050:128;;;6097:79;;:::i;:::-;6050:128;5632:552;;;;;:::o;6190:527::-;6260:6;6268;6317:2;6305:9;6296:7;6292:23;6288:32;6285:119;;;6323:79;;:::i;:::-;6285:119;6471:1;6460:9;6456:17;6443:31;6501:18;6493:6;6490:30;6487:117;;;6523:79;;:::i;:::-;6487:117;6636:64;6692:7;6683:6;6672:9;6668:22;6636:64;:::i;:::-;6618:82;;;;6414:296;6190:527;;;;;:::o;6738:579::-;6822:8;6832:6;6882:3;6875:4;6867:6;6863:17;6859:27;6849:122;;6890:79;;:::i;:::-;6849:122;7003:6;6990:20;6980:30;;7033:18;7025:6;7022:30;7019:117;;;7055:79;;:::i;:::-;7019:117;7169:4;7161:6;7157:17;7145:29;;7223:3;7215:4;7207:6;7203:17;7193:8;7189:32;7186:41;7183:128;;;7230:79;;:::i;:::-;7183:128;6738:579;;;;;:::o;7323:581::-;7420:6;7428;7477:2;7465:9;7456:7;7452:23;7448:32;7445:119;;;7483:79;;:::i;:::-;7445:119;7631:1;7620:9;7616:17;7603:31;7661:18;7653:6;7650:30;7647:117;;;7683:79;;:::i;:::-;7647:117;7796:91;7879:7;7870:6;7859:9;7855:22;7796:91;:::i;:::-;7778:109;;;;7574:323;7323:581;;;;;:::o;7910:122::-;7983:24;8001:5;7983:24;:::i;:::-;7976:5;7973:35;7963:63;;8022:1;8019;8012:12;7963:63;7910:122;:::o;8038:139::-;8084:5;8122:6;8109:20;8100:29;;8138:33;8165:5;8138:33;:::i;:::-;8038:139;;;;:::o;8183:474::-;8251:6;8259;8308:2;8296:9;8287:7;8283:23;8279:32;8276:119;;;8314:79;;:::i;:::-;8276:119;8434:1;8459:53;8504:7;8495:6;8484:9;8480:22;8459:53;:::i;:::-;8449:63;;8405:117;8561:2;8587:53;8632:7;8623:6;8612:9;8608:22;8587:53;:::i;:::-;8577:63;;8532:118;8183:474;;;;;:::o;8663:118::-;8750:24;8768:5;8750:24;:::i;:::-;8745:3;8738:37;8663:118;;:::o;8787:222::-;8880:4;8918:2;8907:9;8903:18;8895:26;;8931:71;8999:1;8988:9;8984:17;8975:6;8931:71;:::i;:::-;8787:222;;;;:::o;9032:568::-;9105:8;9115:6;9165:3;9158:4;9150:6;9146:17;9142:27;9132:122;;9173:79;;:::i;:::-;9132:122;9286:6;9273:20;9263:30;;9316:18;9308:6;9305:30;9302:117;;;9338:79;;:::i;:::-;9302:117;9452:4;9444:6;9440:17;9428:29;;9506:3;9498:4;9490:6;9486:17;9476:8;9472:32;9469:41;9466:128;;;9513:79;;:::i;:::-;9466:128;9032:568;;;;;:::o;9606:1569::-;9766:6;9774;9782;9790;9798;9806;9814;9822;9871:3;9859:9;9850:7;9846:23;9842:33;9839:120;;;9878:79;;:::i;:::-;9839:120;9998:1;10023:53;10068:7;10059:6;10048:9;10044:22;10023:53;:::i;:::-;10013:63;;9969:117;10125:2;10151:53;10196:7;10187:6;10176:9;10172:22;10151:53;:::i;:::-;10141:63;;10096:118;10281:2;10270:9;10266:18;10253:32;10312:18;10304:6;10301:30;10298:117;;;10334:79;;:::i;:::-;10298:117;10447:80;10519:7;10510:6;10499:9;10495:22;10447:80;:::i;:::-;10429:98;;;;10224:313;10604:2;10593:9;10589:18;10576:32;10635:18;10627:6;10624:30;10621:117;;;10657:79;;:::i;:::-;10621:117;10770:80;10842:7;10833:6;10822:9;10818:22;10770:80;:::i;:::-;10752:98;;;;10547:313;10927:3;10916:9;10912:19;10899:33;10959:18;10951:6;10948:30;10945:117;;;10981:79;;:::i;:::-;10945:117;11094:64;11150:7;11141:6;11130:9;11126:22;11094:64;:::i;:::-;11076:82;;;;10870:298;9606:1569;;;;;;;;;;;:::o;11181:1109::-;11287:6;11295;11303;11311;11319;11327;11376:3;11364:9;11355:7;11351:23;11347:33;11344:120;;;11383:79;;:::i;:::-;11344:120;11503:1;11528:53;11573:7;11564:6;11553:9;11549:22;11528:53;:::i;:::-;11518:63;;11474:117;11630:2;11656:53;11701:7;11692:6;11681:9;11677:22;11656:53;:::i;:::-;11646:63;;11601:118;11758:2;11784:53;11829:7;11820:6;11809:9;11805:22;11784:53;:::i;:::-;11774:63;;11729:118;11886:2;11912:53;11957:7;11948:6;11937:9;11933:22;11912:53;:::i;:::-;11902:63;;11857:118;12042:3;12031:9;12027:19;12014:33;12074:18;12066:6;12063:30;12060:117;;;12096:79;;:::i;:::-;12060:117;12209:64;12265:7;12256:6;12245:9;12241:22;12209:64;:::i;:::-;12191:82;;;;11985:298;11181:1109;;;;;;;;:::o;12296:180::-;12344:77;12341:1;12334:88;12441:4;12438:1;12431:15;12465:4;12462:1;12455:15;12482:116;12552:21;12567:5;12552:21;:::i;:::-;12545:5;12542:32;12532:60;;12588:1;12585;12578:12;12532:60;12482:116;:::o;12604:133::-;12647:5;12685:6;12672:20;12663:29;;12701:30;12725:5;12701:30;:::i;:::-;12604:133;;;;:::o;12743:323::-;12799:6;12848:2;12836:9;12827:7;12823:23;12819:32;12816:119;;;12854:79;;:::i;:::-;12816:119;12974:1;12999:50;13041:7;13032:6;13021:9;13017:22;12999:50;:::i;:::-;12989:60;;12945:114;12743:323;;;;:::o;13072:117::-;13181:1;13178;13171:12;13195:102;13236:6;13287:2;13283:7;13278:2;13271:5;13267:14;13263:28;13253:38;;13195:102;;;:::o;13303:180::-;13351:77;13348:1;13341:88;13448:4;13445:1;13438:15;13472:4;13469:1;13462:15;13489:281;13572:27;13594:4;13572:27;:::i;:::-;13564:6;13560:40;13702:6;13690:10;13687:22;13666:18;13654:10;13651:34;13648:62;13645:88;;;13713:18;;:::i;:::-;13645:88;13753:10;13749:2;13742:22;13532:238;13489:281;;:::o;13776:129::-;13810:6;13837:20;;:::i;:::-;13827:30;;13866:33;13894:4;13886:6;13866:33;:::i;:::-;13776:129;;;:::o;13911:117::-;14020:1;14017;14010:12;14034:311;14111:4;14201:18;14193:6;14190:30;14187:56;;;14223:18;;:::i;:::-;14187:56;14273:4;14265:6;14261:17;14253:25;;14333:4;14327;14323:15;14315:23;;14034:311;;;:::o;14368:710::-;14464:5;14489:81;14505:64;14562:6;14505:64;:::i;:::-;14489:81;:::i;:::-;14480:90;;14590:5;14619:6;14612:5;14605:21;14653:4;14646:5;14642:16;14635:23;;14706:4;14698:6;14694:17;14686:6;14682:30;14735:3;14727:6;14724:15;14721:122;;;14754:79;;:::i;:::-;14721:122;14869:6;14852:220;14886:6;14881:3;14878:15;14852:220;;;14961:3;14990:37;15023:3;15011:10;14990:37;:::i;:::-;14985:3;14978:50;15057:4;15052:3;15048:14;15041:21;;14928:144;14912:4;14907:3;14903:14;14896:21;;14852:220;;;14856:21;14470:608;;14368:710;;;;;:::o;15101:370::-;15172:5;15221:3;15214:4;15206:6;15202:17;15198:27;15188:122;;15229:79;;:::i;:::-;15188:122;15346:6;15333:20;15371:94;15461:3;15453:6;15446:4;15438:6;15434:17;15371:94;:::i;:::-;15362:103;;15178:293;15101:370;;;;:::o;15516:771::-;15595:5;15639:4;15627:9;15622:3;15618:19;15614:30;15611:117;;;15647:79;;:::i;:::-;15611:117;15746:21;15762:4;15746:21;:::i;:::-;15737:30;;15827:1;15867:49;15912:3;15903:6;15892:9;15888:22;15867:49;:::i;:::-;15860:4;15853:5;15849:16;15842:75;15777:151;16021:2;16010:9;16006:18;15993:32;16052:18;16044:6;16041:30;16038:117;;;16074:79;;:::i;:::-;16038:117;16194:74;16264:3;16255:6;16244:9;16240:22;16194:74;:::i;:::-;16187:4;16180:5;16176:16;16169:100;15938:342;15516:771;;;;:::o;16293:549::-;16382:6;16431:2;16419:9;16410:7;16406:23;16402:32;16399:119;;;16437:79;;:::i;:::-;16399:119;16585:1;16574:9;16570:17;16557:31;16615:18;16607:6;16604:30;16601:117;;;16637:79;;:::i;:::-;16601:117;16742:83;16817:7;16808:6;16797:9;16793:22;16742:83;:::i;:::-;16732:93;;16528:307;16293:549;;;;:::o;16848:114::-;16936:1;16929:5;16926:12;16916:40;;16952:1;16949;16942:12;16916:40;16848:114;:::o;16968:169::-;17029:5;17067:6;17054:20;17045:29;;17083:48;17125:5;17083:48;:::i;:::-;16968:169;;;;:::o;17143:117::-;17252:1;17249;17242:12;17266:307;17327:4;17417:18;17409:6;17406:30;17403:56;;;17439:18;;:::i;:::-;17403:56;17477:29;17499:6;17477:29;:::i;:::-;17469:37;;17561:4;17555;17551:15;17543:23;;17266:307;;;:::o;17579:148::-;17677:6;17672:3;17667;17654:30;17718:1;17709:6;17704:3;17700:16;17693:27;17579:148;;;:::o;17733:423::-;17810:5;17835:65;17851:48;17892:6;17851:48;:::i;:::-;17835:65;:::i;:::-;17826:74;;17923:6;17916:5;17909:21;17961:4;17954:5;17950:16;17999:3;17990:6;17985:3;17981:16;17978:25;17975:112;;;18006:79;;:::i;:::-;17975:112;18096:54;18143:6;18138:3;18133;18096:54;:::i;:::-;17816:340;17733:423;;;;;:::o;18175:338::-;18230:5;18279:3;18272:4;18264:6;18260:17;18256:27;18246:122;;18287:79;;:::i;:::-;18246:122;18404:6;18391:20;18429:78;18503:3;18495:6;18488:4;18480:6;18476:17;18429:78;:::i;:::-;18420:87;;18236:277;18175:338;;;;:::o;18549:1090::-;18625:5;18669:4;18657:9;18652:3;18648:19;18644:30;18641:117;;;18677:79;;:::i;:::-;18641:117;18776:21;18792:4;18776:21;:::i;:::-;18767:30;;18861:1;18901:64;18961:3;18952:6;18941:9;18937:22;18901:64;:::i;:::-;18894:4;18887:5;18883:16;18876:90;18807:170;19037:2;19078:49;19123:3;19114:6;19103:9;19099:22;19078:49;:::i;:::-;19071:4;19064:5;19060:16;19053:75;18987:152;19200:2;19241:49;19286:3;19277:6;19266:9;19262:22;19241:49;:::i;:::-;19234:4;19227:5;19223:16;19216:75;19149:153;19389:2;19378:9;19374:18;19361:32;19420:18;19412:6;19409:30;19406:117;;;19442:79;;:::i;:::-;19406:117;19562:58;19616:3;19607:6;19596:9;19592:22;19562:58;:::i;:::-;19555:4;19548:5;19544:16;19537:84;19312:320;18549:1090;;;;:::o;19645:543::-;19731:6;19780:2;19768:9;19759:7;19755:23;19751:32;19748:119;;;19786:79;;:::i;:::-;19748:119;19934:1;19923:9;19919:17;19906:31;19964:18;19956:6;19953:30;19950:117;;;19986:79;;:::i;:::-;19950:117;20091:80;20163:7;20154:6;20143:9;20139:22;20091:80;:::i;:::-;20081:90;;19877:304;19645:543;;;;:::o;20194:180::-;20242:77;20239:1;20232:88;20339:4;20336:1;20329:15;20363:4;20360:1;20353:15;20380:143;20437:5;20468:6;20462:13;20453:22;;20484:33;20511:5;20484:33;:::i;:::-;20380:143;;;;:::o;20566:446::-;20660:5;20704:4;20692:9;20687:3;20683:19;20679:30;20676:117;;;20712:79;;:::i;:::-;20676:117;20811:21;20827:4;20811:21;:::i;:::-;20802:30;;20893:1;20933:60;20989:3;20980:6;20969:9;20965:22;20933:60;:::i;:::-;20926:4;20919:5;20915:16;20908:86;20842:163;20566:446;;;;:::o;21018:419::-;21122:6;21171:2;21159:9;21150:7;21146:23;21142:32;21139:119;;;21177:79;;:::i;:::-;21139:119;21297:1;21322:98;21412:7;21403:6;21392:9;21388:22;21322:98;:::i;:::-;21312:108;;21268:162;21018:419;;;;:::o;21443:332::-;21564:4;21602:2;21591:9;21587:18;21579:26;;21615:71;21683:1;21672:9;21668:17;21659:6;21615:71;:::i;:::-;21696:72;21764:2;21753:9;21749:18;21740:6;21696:72;:::i;:::-;21443:332;;;;;:::o;21781:139::-;21870:6;21865:3;21860;21854:23;21911:1;21902:6;21897:3;21893:16;21886:27;21781:139;;;:::o;21926:432::-;22014:5;22039:65;22055:48;22096:6;22055:48;:::i;:::-;22039:65;:::i;:::-;22030:74;;22127:6;22120:5;22113:21;22165:4;22158:5;22154:16;22203:3;22194:6;22189:3;22185:16;22182:25;22179:112;;;22210:79;;:::i;:::-;22179:112;22300:52;22345:6;22340:3;22335;22300:52;:::i;:::-;22020:338;21926:432;;;;;:::o;22377:353::-;22443:5;22492:3;22485:4;22477:6;22473:17;22469:27;22459:122;;22500:79;;:::i;:::-;22459:122;22610:6;22604:13;22635:89;22720:3;22712:6;22705:4;22697:6;22693:17;22635:89;:::i;:::-;22626:98;;22449:281;22377:353;;;;:::o;22772:954::-;22865:5;22909:4;22897:9;22892:3;22888:19;22884:30;22881:117;;;22917:79;;:::i;:::-;22881:117;23016:21;23032:4;23016:21;:::i;:::-;23007:30;;23099:1;23139:60;23195:3;23186:6;23175:9;23171:22;23139:60;:::i;:::-;23132:4;23125:5;23121:16;23114:86;23047:164;23272:2;23313:60;23369:3;23360:6;23349:9;23345:22;23313:60;:::i;:::-;23306:4;23299:5;23295:16;23288:86;23221:164;23465:2;23454:9;23450:18;23444:25;23496:18;23488:6;23485:30;23482:117;;;23518:79;;:::i;:::-;23482:117;23638:69;23703:3;23694:6;23683:9;23679:22;23638:69;:::i;:::-;23631:4;23624:5;23620:16;23613:95;23395:324;22772:954;;;;:::o;23732:570::-;23835:6;23884:2;23872:9;23863:7;23859:23;23855:32;23852:119;;;23890:79;;:::i;:::-;23852:119;24031:1;24020:9;24016:17;24010:24;24061:18;24053:6;24050:30;24047:117;;;24083:79;;:::i;:::-;24047:117;24188:97;24277:7;24268:6;24257:9;24253:22;24188:97;:::i;:::-;24178:107;;23981:314;23732:570;;;;:::o;24308:98::-;24359:6;24393:5;24387:12;24377:22;;24308:98;;;:::o;24412:168::-;24495:11;24529:6;24524:3;24517:19;24569:4;24564:3;24560:14;24545:29;;24412:168;;;;:::o;24586:373::-;24672:3;24700:38;24732:5;24700:38;:::i;:::-;24754:70;24817:6;24812:3;24754:70;:::i;:::-;24747:77;;24833:65;24891:6;24886:3;24879:4;24872:5;24868:16;24833:65;:::i;:::-;24923:29;24945:6;24923:29;:::i;:::-;24918:3;24914:39;24907:46;;24676:283;24586:373;;;;:::o;24965:751::-;25188:4;25226:3;25215:9;25211:19;25203:27;;25240:71;25308:1;25297:9;25293:17;25284:6;25240:71;:::i;:::-;25321:72;25389:2;25378:9;25374:18;25365:6;25321:72;:::i;:::-;25403;25471:2;25460:9;25456:18;25447:6;25403:72;:::i;:::-;25485;25553:2;25542:9;25538:18;25529:6;25485:72;:::i;:::-;25605:9;25599:4;25595:20;25589:3;25578:9;25574:19;25567:49;25633:76;25704:4;25695:6;25633:76;:::i;:::-;25625:84;;24965:751;;;;;;;;:::o;25722:351::-;25792:6;25841:2;25829:9;25820:7;25816:23;25812:32;25809:119;;;25847:79;;:::i;:::-;25809:119;25967:1;25992:64;26048:7;26039:6;26028:9;26024:22;25992:64;:::i;:::-;25982:74;;25938:128;25722:351;;;;:::o;26079:117::-;26188:1;26185;26178:12;26202:117;26311:1;26308;26301:12;26325:117;26434:1;26431;26424:12;26448:724;26525:4;26531:6;26587:11;26574:25;26687:1;26681:4;26677:12;26666:8;26650:14;26646:29;26642:48;26622:18;26618:73;26608:168;;26695:79;;:::i;:::-;26608:168;26807:18;26797:8;26793:33;26785:41;;26859:4;26846:18;26836:28;;26887:18;26879:6;26876:30;26873:117;;;26909:79;;:::i;:::-;26873:117;27017:2;27011:4;27007:13;26999:21;;27074:4;27066:6;27062:17;27046:14;27042:38;27036:4;27032:49;27029:136;;;27084:79;;:::i;:::-;27029:136;26538:634;26448:724;;;;;:::o;27178:180::-;27226:77;27223:1;27216:88;27323:4;27320:1;27313:15;27347:4;27344:1;27337:15;27364:191;27404:3;27423:20;27441:1;27423:20;:::i;:::-;27418:25;;27457:20;27475:1;27457:20;:::i;:::-;27452:25;;27500:1;27497;27493:9;27486:16;;27521:3;27518:1;27515:10;27512:36;;;27528:18;;:::i;:::-;27512:36;27364:191;;;;:::o;27561:442::-;27710:4;27748:2;27737:9;27733:18;27725:26;;27761:71;27829:1;27818:9;27814:17;27805:6;27761:71;:::i;:::-;27842:72;27910:2;27899:9;27895:18;27886:6;27842:72;:::i;:::-;27924;27992:2;27981:9;27977:18;27968:6;27924:72;:::i;:::-;27561:442;;;;;;:::o;28009:::-;28158:4;28196:2;28185:9;28181:18;28173:26;;28209:71;28277:1;28266:9;28262:17;28253:6;28209:71;:::i;:::-;28290:72;28358:2;28347:9;28343:18;28334:6;28290:72;:::i;:::-;28372;28440:2;28429:9;28425:18;28416:6;28372:72;:::i;:::-;28009:442;;;;;;:::o"},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","available(address,uint256)":"f8724aba","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","distributed(address,uint256)":"774c33ab","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","total(address,uint256)":"f9a802c3","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"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\":\"pure\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"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\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId_\",\"type\":\"uint256\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This type of budget supports ETH, ERC20, and ERC1155 assets only\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is simply the current balance held by the budgetIf the zero address is passed, this function will return the native balance\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"available(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets available\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"disburse(bytes)\":{\"details\":\"If the asset transfer fails, the disbursement will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"distributed(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\":\"This contract does not care about the specifics of the inbound token, so we simply return the magic value (i.e. the selector for `onERC1155Received`)\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budgetIf the amount is zero, the entire balance of the asset will be transferred to the receiverIf the asset transfer fails, the reclamation will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"authorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is simply the sum of the current balance and the distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"total(address,uint256)\":{\"params\":{\"asset_\":\"The address of the asset\",\"tokenId_\":\"The ID of the token\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Simple Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget\"},\"available(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets available for distribution from the budget\"},\"constructor\":{\"notice\":\"Construct a new SimpleBudget\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"distributed(address,uint256)\":{\"notice\":\"Get the amount of ERC1155 assets that have been distributed from the budget\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"},\"total(address,uint256)\":{\"notice\":\"Get the total amount of ERC1155 assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A minimal budget implementation that simply holds and distributes tokens (ERC20-like and native)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/SimpleBudget.sol\":\"SimpleBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/ASimpleBudget.sol\":{\"keccak256\":\"0x6b96d422e3160b9ac194d448542a78a7d72ba54c711d3a93442c07462f35e0a4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ff53d816c51af2eed27d6a242ced0a0478898306649a77b152045a0ac9ee92a5\",\"dweb:/ipfs/QmVmbqxFSqmdF4sBpmkDYcED9jowDUdtDmNHp6EeMkg3AH\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/budgets/SimpleBudget.sol\":{\"keccak256\":\"0x570c0ac389118d36daac76af34ff41fefe500d34235b2f07ab82133105bf5a64\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://39fb29e338ff667dd4a2ad7e5a023447f9065be21352884c09c0f8913be88593\",\"dweb:/ipfs/QmcUE6frhBjoFvCmhdEnLyvST7MyzqycxPBU1sEJ3PHL4f\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/budgets/VestingBudget.sol":{"VestingBudget":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InvalidAllocation","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isAuthorized","type":"bool"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"allocate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cliff","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"disburse","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data_","type":"bytes[]"}],"name":"disburseBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"distributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"end","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account_","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reconcile","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"account_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset_","type":"address"}],"name":"total","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"functionDebugData":{"@_15524":{"entryPoint":null,"id":15524,"parameterSlots":0,"returnSlots":0},"@_15774":{"entryPoint":null,"id":15774,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6125a0806101b45f395ff3fe60806040526004361061014e575f3560e01c806361400c99116100b5578063f04e283e1161006e578063f04e283e14610459578063f1c30ec014610475578063f2fde38b146104b1578063fa4ca9b1146104cd578063fe9fbb8014610509578063fee81cf41461054557610155565b806361400c9914610359578063715018a6146103955780638da5cb5b1461039f578063be9a6555146103c9578063d2514e84146103f3578063efbe1c1c1461042f57610155565b80634359d28a116101075780634359d28a14610257578063439fab911461027f578063451cc191146102a757806354d1f13d146102e3578063578bcf35146102ed5780635aef467a1461032957610155565b806301ffc9a7146101575780630fb5a6b41461019357806310098ad5146101bd57806313d033c0146101f9578063256929621461022357806328d6183b1461022d57610155565b3661015557005b005b348015610162575f80fd5b5061017d60048036038101906101789190611963565b610581565b60405161018a91906119a8565b60405180910390f35b34801561019e575f80fd5b506101a76105fa565b6040516101b491906119e3565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190611a56565b610614565b6040516101f09190611a99565b60405180910390f35b348015610204575f80fd5b5061020d61066d565b60405161021a91906119e3565b60405180910390f35b61022b610687565b005b348015610238575f80fd5b506102416106d8565b60405161024e9190611ac1565b60405180910390f35b348015610262575f80fd5b5061027d60048036038101906102789190611b90565b6106ff565b005b34801561028a575f80fd5b506102a560048036038101906102a09190611c63565b610809565b005b3480156102b2575f80fd5b506102cd60048036038101906102c89190611c63565b6109b3565b6040516102da9190611a99565b60405180910390f35b6102eb6109ba565b005b3480156102f8575f80fd5b50610313600480360381019061030e9190611a56565b6109f3565b6040516103209190611a99565b60405180910390f35b610343600480360381019061033e9190611c63565b610a38565b60405161035091906119a8565b60405180910390f35b348015610364575f80fd5b5061037f600480360381019061037a9190611d03565b610c05565b60405161038c91906119a8565b60405180910390f35b61039d610c69565b005b3480156103aa575f80fd5b506103b3610c7c565b6040516103c09190611d5d565b60405180910390f35b3480156103d4575f80fd5b506103dd610ca4565b6040516103ea91906119e3565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190611a56565b610cbd565b6040516104269190611a99565b60405180910390f35b34801561043a575f80fd5b50610443610d74565b6040516104509190611a99565b60405180910390f35b610473600480360381019061046e9190611a56565b610dbb565b005b348015610480575f80fd5b5061049b60048036038101906104969190611c63565b610df9565b6040516104a891906119a8565b60405180910390f35b6104cb60048036038101906104c69190611a56565b610ede565b005b3480156104d8575f80fd5b506104f360048036038101906104ee9190611c63565b610f07565b60405161050091906119a8565b60405180910390f35b348015610514575f80fd5b5061052f600480360381019061052a9190611a56565b611006565b60405161053c91906119a8565b60405180910390f35b348015610550575f80fd5b5061056b60048036038101906105669190611a56565b611095565b6040516105789190611a99565b60405180910390f35b5f7f7aded85d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105f357506105f2826110ae565b5b9050919050565b600260089054906101000a900467ffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461065c8342611127565b6106669190611da3565b9050919050565b600260109054906101000a900467ffffffffffffffff1681565b5f6106906111e8565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f7aded85d00000000000000000000000000000000000000000000000000000000905090565b6107076111f2565b818190508484905014610746576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156108025782828281811061076657610765611dd6565b5b905060200201602081019061077b9190611e2d565b60015f87878581811061079157610790611dd6565b5b90506020020160208101906107a69190611a56565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610748565b5050505050565b5f610812611229565b905080546003825580156108445760018160011c14303b1061083b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906108559190612077565b9050806040015160025f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060600151600260086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060800151600260106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506108e9815f0151611252565b5f5b816020015151811015610977576001805f8460200151848151811061091357610912611dd6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108eb565b505080156109ae576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808383810190610a499190612222565b90505f6002811115610a5e57610a5d612269565b5b815f01516002811115610a7457610a73612269565b5b03610aea575f8160600151806020019051810190610a9291906122f9565b9050805f01513414610ae4578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610adb929190612324565b60405180910390fd5b50610bf9565b60016002811115610afe57610afd612269565b5b815f01516002811115610b1457610b13612269565b5b03610bef575f8160600151806020019051810190610b3291906122f9565b9050610b6c826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16611328909392919063ffffffff16565b805f0151610b9d30846020015173ffffffffffffffffffffffffffffffffffffffff1661138290919063ffffffff16565b1015610be9578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610be0929190612324565b60405180910390fd5b50610bf8565b5f915050610bff565b5b60019150505b92915050565b5f805f90505b83839050811015610c5d57610c43848483818110610c2c57610c2b611dd6565b5b9050602002810190610c3e9190612357565b610f07565b610c50575f915050610c63565b8080600101915050610c0b565b50600190505b92915050565b610c716111f2565b610c7a5f6113b5565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900467ffffffffffffffff1681565b5f805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610d2057610d1b308473ffffffffffffffffffffffffffffffffffffffff1661138290919063ffffffff16565b610d22565b475b9050805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d6c91906123b9565b915050919050565b5f600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16610dac91906123ec565b67ffffffffffffffff16905090565b610dc36111f2565b63389a75e1600c52805f526020600c208054421115610de957636f5e88185f526004601cfd5b5f815550610df6816113b5565b50565b5f610e026111f2565b5f8383810190610e129190612222565b90505f6002811115610e2757610e26612269565b5b815f01516002811115610e3d57610e3c612269565b5b1480610e70575060016002811115610e5857610e57612269565b5b815f01516002811115610e6e57610e6d612269565b5b145b15610ec9575f8160600151806020019051810190610e8e91906122f9565b9050610ec3826020015183604001515f845f015114610eb057835f0151610ebe565b610ebd8560200151610614565b5b61147b565b50610ed2565b5f915050610ed8565b60019150505b92915050565b610ee66111f2565b8060601b610efb57637448fbae5f526004601cfd5b610f04816113b5565b50565b5f610f1133611006565b610f47576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610f579190612222565b905060016002811115610f6d57610f6c612269565b5b815f01516002811115610f8357610f82612269565b5b1480610fb557505f6002811115610f9d57610f9c612269565b5b815f01516002811115610fb357610fb2612269565b5b145b15610ff1575f8160600151806020019051810190610fd391906122f9565b9050610feb82602001518360400151835f015161147b565b50610ffa565b5f915050611000565b60019150505b92915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061108e575061105f610c7c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f74009ff1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611120575061111f82611693565b5b9050919050565b5f805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461118a57611185308573ffffffffffffffffffffffffffffffffffffffff1661138290919063ffffffff16565b61118c565b475b90506111df5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826111d991906123b9565b8461170c565b91505092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611227576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61125a61182a565b156112d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561129457630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611325565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661137357637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113bd61182a565b15611422577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611478565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd2126854036114995763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611519578282826040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161151093929190612427565b60405180910390fd5b61152283610614565b811115611572578261153384610614565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016115699392919061245c565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115bd91906123b9565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160657611601828261182e565b611632565b61163182828573ffffffffffffffffffffffffffffffffffffffff1661184b9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161167a929190612324565b60405180910390a23868929eee149b4bd2126855505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611705575061170482611894565b5b9050919050565b5f600260109054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661174491906123ec565b67ffffffffffffffff168267ffffffffffffffff161015611767575f9050611824565b600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661179e91906123ec565b67ffffffffffffffff168267ffffffffffffffff16106117c057829050611824565b600260089054906101000a900467ffffffffffffffff1667ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16836118029190612491565b67ffffffffffffffff168461181791906124cc565b611821919061253a565b90505b92915050565b5f90565b5f385f3884865af16118475763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661188b576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6119428161190e565b811461194c575f80fd5b50565b5f8135905061195d81611939565b92915050565b5f6020828403121561197857611977611906565b5b5f6119858482850161194f565b91505092915050565b5f8115159050919050565b6119a28161198e565b82525050565b5f6020820190506119bb5f830184611999565b92915050565b5f67ffffffffffffffff82169050919050565b6119dd816119c1565b82525050565b5f6020820190506119f65f8301846119d4565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a25826119fc565b9050919050565b611a3581611a1b565b8114611a3f575f80fd5b50565b5f81359050611a5081611a2c565b92915050565b5f60208284031215611a6b57611a6a611906565b5b5f611a7884828501611a42565b91505092915050565b5f819050919050565b611a9381611a81565b82525050565b5f602082019050611aac5f830184611a8a565b92915050565b611abb8161190e565b82525050565b5f602082019050611ad45f830184611ab2565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611afb57611afa611ada565b5b8235905067ffffffffffffffff811115611b1857611b17611ade565b5b602083019150836020820283011115611b3457611b33611ae2565b5b9250929050565b5f8083601f840112611b5057611b4f611ada565b5b8235905067ffffffffffffffff811115611b6d57611b6c611ade565b5b602083019150836020820283011115611b8957611b88611ae2565b5b9250929050565b5f805f8060408587031215611ba857611ba7611906565b5b5f85013567ffffffffffffffff811115611bc557611bc461190a565b5b611bd187828801611ae6565b9450945050602085013567ffffffffffffffff811115611bf457611bf361190a565b5b611c0087828801611b3b565b925092505092959194509250565b5f8083601f840112611c2357611c22611ada565b5b8235905067ffffffffffffffff811115611c4057611c3f611ade565b5b602083019150836001820283011115611c5c57611c5b611ae2565b5b9250929050565b5f8060208385031215611c7957611c78611906565b5b5f83013567ffffffffffffffff811115611c9657611c9561190a565b5b611ca285828601611c0e565b92509250509250929050565b5f8083601f840112611cc357611cc2611ada565b5b8235905067ffffffffffffffff811115611ce057611cdf611ade565b5b602083019150836020820283011115611cfc57611cfb611ae2565b5b9250929050565b5f8060208385031215611d1957611d18611906565b5b5f83013567ffffffffffffffff811115611d3657611d3561190a565b5b611d4285828601611cae565b92509250509250929050565b611d5781611a1b565b82525050565b5f602082019050611d705f830184611d4e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dad82611a81565b9150611db883611a81565b9250828203905081811115611dd057611dcf611d76565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e0c8161198e565b8114611e16575f80fd5b50565b5f81359050611e2781611e03565b92915050565b5f60208284031215611e4257611e41611906565b5b5f611e4f84828501611e19565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ea282611e5c565b810181811067ffffffffffffffff82111715611ec157611ec0611e6c565b5b80604052505050565b5f611ed36118fd565b9050611edf8282611e99565b919050565b5f80fd5b5f67ffffffffffffffff821115611f0257611f01611e6c565b5b602082029050602081019050919050565b5f611f25611f2084611ee8565b611eca565b90508083825260208201905060208402830185811115611f4857611f47611ae2565b5b835b81811015611f715780611f5d8882611a42565b845260208401935050602081019050611f4a565b5050509392505050565b5f82601f830112611f8f57611f8e611ada565b5b8135611f9f848260208601611f13565b91505092915050565b611fb1816119c1565b8114611fbb575f80fd5b50565b5f81359050611fcc81611fa8565b92915050565b5f60a08284031215611fe757611fe6611e58565b5b611ff160a0611eca565b90505f61200084828501611a42565b5f83015250602082013567ffffffffffffffff81111561202357612022611ee4565b5b61202f84828501611f7b565b602083015250604061204384828501611fbe565b604083015250606061205784828501611fbe565b606083015250608061206b84828501611fbe565b60808301525092915050565b5f6020828403121561208c5761208b611906565b5b5f82013567ffffffffffffffff8111156120a9576120a861190a565b5b6120b584828501611fd2565b91505092915050565b600381106120ca575f80fd5b50565b5f813590506120db816120be565b92915050565b5f80fd5b5f67ffffffffffffffff8211156120ff576120fe611e6c565b5b61210882611e5c565b9050602081019050919050565b828183375f83830152505050565b5f612135612130846120e5565b611eca565b905082815260208101848484011115612151576121506120e1565b5b61215c848285612115565b509392505050565b5f82601f83011261217857612177611ada565b5b8135612188848260208601612123565b91505092915050565b5f608082840312156121a6576121a5611e58565b5b6121b06080611eca565b90505f6121bf848285016120cd565b5f8301525060206121d284828501611a42565b60208301525060406121e684828501611a42565b604083015250606082013567ffffffffffffffff81111561220a57612209611ee4565b5b61221684828501612164565b60608301525092915050565b5f6020828403121561223757612236611906565b5b5f82013567ffffffffffffffff8111156122545761225361190a565b5b61226084828501612191565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61229f81611a81565b81146122a9575f80fd5b50565b5f815190506122ba81612296565b92915050565b5f602082840312156122d5576122d4611e58565b5b6122df6020611eca565b90505f6122ee848285016122ac565b5f8301525092915050565b5f6020828403121561230e5761230d611906565b5b5f61231b848285016122c0565b91505092915050565b5f6040820190506123375f830185611d4e565b6123446020830184611a8a565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f80833560016020038436030381126123735761237261234b565b5b80840192508235915067ffffffffffffffff8211156123955761239461234f565b5b6020830192506001820236038313156123b1576123b0612353565b5b509250929050565b5f6123c382611a81565b91506123ce83611a81565b92508282019050808211156123e6576123e5611d76565b5b92915050565b5f6123f6826119c1565b9150612401836119c1565b9250828201905067ffffffffffffffff81111561242157612420611d76565b5b92915050565b5f60608201905061243a5f830186611d4e565b6124476020830185611d4e565b6124546040830184611a8a565b949350505050565b5f60608201905061246f5f830186611d4e565b61247c6020830185611a8a565b6124896040830184611a8a565b949350505050565b5f61249b826119c1565b91506124a6836119c1565b9250828203905067ffffffffffffffff8111156124c6576124c5611d76565b5b92915050565b5f6124d682611a81565b91506124e183611a81565b92508282026124ef81611a81565b9150828204841483151761250657612505611d76565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61254482611a81565b915061254f83611a81565b92508261255f5761255e61250d565b5b82820490509291505056fea2646970667358221220e4c8645d909cb742a43f9cdf2cef9d6d1526d51beca39d4a22992606599433ef64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x25A0 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61400C99 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF04E283E GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x4CD JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x545 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x61400C99 EQ PUSH2 0x359 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0xEFBE1C1C EQ PUSH2 0x42F JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x4359D28A GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x329 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xFB5A6B4 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x13D033C0 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x22D JUMPI PUSH2 0x155 JUMP JUMPDEST CALLDATASIZE PUSH2 0x155 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH2 0x581 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x5FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH2 0x66D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22B PUSH2 0x687 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x6D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x1AC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x262 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x1B90 JUMP JUMPDEST PUSH2 0x6FF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x809 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x9B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EB PUSH2 0x9BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x320 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x343 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33E SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x350 SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x364 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37A SWAP2 SWAP1 PUSH2 0x1D03 JUMP JUMPDEST PUSH2 0xC05 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH2 0xC69 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B3 PUSH2 0xC7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C0 SWAP2 SWAP1 PUSH2 0x1D5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xCA4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EA SWAP2 SWAP1 PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xCBD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xD74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x450 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x473 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46E SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xDBB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x49B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A8 SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C6 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xEDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x500 SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x514 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x52F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x52A SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x1006 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53C SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x550 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x1095 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x7ADED85D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5F3 JUMPI POP PUSH2 0x5F2 DUP3 PUSH2 0x10AE JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x65C DUP4 TIMESTAMP PUSH2 0x1127 JUMP JUMPDEST PUSH2 0x666 SWAP2 SWAP1 PUSH2 0x1DA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x690 PUSH2 0x11E8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x7ADED85D00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x707 PUSH2 0x11F2 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x746 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x802 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x766 JUMPI PUSH2 0x765 PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x1E2D JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x748 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x812 PUSH2 0x1229 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x844 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x83B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x855 SWAP2 SWAP1 PUSH2 0x2077 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x80 ADD MLOAD PUSH1 0x2 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x8E9 DUP2 PUSH0 ADD MLOAD PUSH2 0x1252 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x977 JUMPI PUSH1 0x1 DUP1 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x913 JUMPI PUSH2 0x912 PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x8EB JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x9AE JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA49 SWAP2 SWAP1 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA5E JUMPI PUSH2 0xA5D PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA74 JUMPI PUSH2 0xA73 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xAEA JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA92 SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xAE4 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xADB SWAP3 SWAP2 SWAP1 PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xBF9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAFE JUMPI PUSH2 0xAFD PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB14 JUMPI PUSH2 0xB13 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xBEF JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB32 SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP PUSH2 0xB6C DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1328 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB9D ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1382 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xBE9 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBE0 SWAP3 SWAP2 SWAP1 PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xBF8 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xBFF JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC43 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xC2C JUMPI PUSH2 0xC2B PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xC3E SWAP2 SWAP1 PUSH2 0x2357 JUMP JUMPDEST PUSH2 0xF07 JUMP JUMPDEST PUSH2 0xC50 JUMPI PUSH0 SWAP2 POP POP PUSH2 0xC63 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC0B JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC71 PUSH2 0x11F2 JUMP JUMPDEST PUSH2 0xC7A PUSH0 PUSH2 0x13B5 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD20 JUMPI PUSH2 0xD1B ADDRESS DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1382 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xD22 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xD6C SWAP2 SWAP1 PUSH2 0x23B9 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xDAC SWAP2 SWAP1 PUSH2 0x23EC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDC3 PUSH2 0x11F2 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDE9 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xDF6 DUP2 PUSH2 0x13B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xE02 PUSH2 0x11F2 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xE12 SWAP2 SWAP1 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE27 JUMPI PUSH2 0xE26 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE3D JUMPI PUSH2 0xE3C PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xE70 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE58 JUMPI PUSH2 0xE57 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE6E JUMPI PUSH2 0xE6D PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xEC9 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE8E SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP PUSH2 0xEC3 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xEB0 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0xEBD DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x614 JUMP JUMPDEST JUMPDEST PUSH2 0x147B JUMP JUMPDEST POP PUSH2 0xED2 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEE6 PUSH2 0x11F2 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xEFB JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xF04 DUP2 PUSH2 0x13B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xF11 CALLER PUSH2 0x1006 JUMP JUMPDEST PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xF57 SWAP2 SWAP1 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF6D JUMPI PUSH2 0xF6C PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF83 JUMPI PUSH2 0xF82 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xFB5 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF9D JUMPI PUSH2 0xF9C PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFB3 JUMPI PUSH2 0xFB2 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xFF1 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFD3 SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP PUSH2 0xFEB DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x147B JUMP JUMPDEST POP PUSH2 0xFFA JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x1000 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x108E JUMPI POP PUSH2 0x105F PUSH2 0xC7C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x74009FF100000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1120 JUMPI POP PUSH2 0x111F DUP3 PUSH2 0x1693 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x118A JUMPI PUSH2 0x1185 ADDRESS DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1382 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x118C JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP PUSH2 0x11DF PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP3 PUSH2 0x11D9 SWAP2 SWAP1 PUSH2 0x23B9 JUMP JUMPDEST DUP5 PUSH2 0x170C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1227 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x125A PUSH2 0x182A JUMP JUMPDEST ISZERO PUSH2 0x12D2 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1294 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1325 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1373 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13BD PUSH2 0x182A JUMP JUMPDEST ISZERO PUSH2 0x1422 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1478 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1499 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1519 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1510 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1522 DUP4 PUSH2 0x614 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1572 JUMPI DUP3 PUSH2 0x1533 DUP5 PUSH2 0x614 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1569 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x245C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x15BD SWAP2 SWAP1 PUSH2 0x23B9 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1606 JUMPI PUSH2 0x1601 DUP3 DUP3 PUSH2 0x182E JUMP JUMPDEST PUSH2 0x1632 JUMP JUMPDEST PUSH2 0x1631 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x184B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x167A SWAP3 SWAP2 SWAP1 PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1705 JUMPI POP PUSH2 0x1704 DUP3 PUSH2 0x1894 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x1744 SWAP2 SWAP1 PUSH2 0x23EC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1767 JUMPI PUSH0 SWAP1 POP PUSH2 0x1824 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x179E SWAP2 SWAP1 PUSH2 0x23EC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT PUSH2 0x17C0 JUMPI DUP3 SWAP1 POP PUSH2 0x1824 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1802 SWAP2 SWAP1 PUSH2 0x2491 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH2 0x1817 SWAP2 SWAP1 PUSH2 0x24CC JUMP JUMPDEST PUSH2 0x1821 SWAP2 SWAP1 PUSH2 0x253A JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1847 JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x188B JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1942 DUP2 PUSH2 0x190E JUMP JUMPDEST DUP2 EQ PUSH2 0x194C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x195D DUP2 PUSH2 0x1939 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1978 JUMPI PUSH2 0x1977 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1985 DUP5 DUP3 DUP6 ADD PUSH2 0x194F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19A2 DUP2 PUSH2 0x198E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19BB PUSH0 DUP4 ADD DUP5 PUSH2 0x1999 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19DD DUP2 PUSH2 0x19C1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19F6 PUSH0 DUP4 ADD DUP5 PUSH2 0x19D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A25 DUP3 PUSH2 0x19FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A35 DUP2 PUSH2 0x1A1B JUMP JUMPDEST DUP2 EQ PUSH2 0x1A3F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A50 DUP2 PUSH2 0x1A2C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A6B JUMPI PUSH2 0x1A6A PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A78 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A93 DUP2 PUSH2 0x1A81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AAC PUSH0 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1ABB DUP2 PUSH2 0x190E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AD4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1AB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1AFB JUMPI PUSH2 0x1AFA PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B18 JUMPI PUSH2 0x1B17 PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B34 JUMPI PUSH2 0x1B33 PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B50 JUMPI PUSH2 0x1B4F PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6D JUMPI PUSH2 0x1B6C PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B89 JUMPI PUSH2 0x1B88 PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1BA8 JUMPI PUSH2 0x1BA7 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BC5 JUMPI PUSH2 0x1BC4 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1BD1 DUP8 DUP3 DUP9 ADD PUSH2 0x1AE6 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF4 JUMPI PUSH2 0x1BF3 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1C00 DUP8 DUP3 DUP9 ADD PUSH2 0x1B3B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1C23 JUMPI PUSH2 0x1C22 PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C40 JUMPI PUSH2 0x1C3F PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1C5C JUMPI PUSH2 0x1C5B PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH2 0x1C78 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C96 JUMPI PUSH2 0x1C95 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1CA2 DUP6 DUP3 DUP7 ADD PUSH2 0x1C0E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1CC3 JUMPI PUSH2 0x1CC2 PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE0 JUMPI PUSH2 0x1CDF PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1CFC JUMPI PUSH2 0x1CFB PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D19 JUMPI PUSH2 0x1D18 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D36 JUMPI PUSH2 0x1D35 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1D42 DUP6 DUP3 DUP7 ADD PUSH2 0x1CAE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D57 DUP2 PUSH2 0x1A1B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D70 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D4E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1DAD DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DB8 DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1DD0 JUMPI PUSH2 0x1DCF PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1E0C DUP2 PUSH2 0x198E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E16 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E27 DUP2 PUSH2 0x1E03 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E42 JUMPI PUSH2 0x1E41 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1E4F DUP5 DUP3 DUP6 ADD PUSH2 0x1E19 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1EA2 DUP3 PUSH2 0x1E5C JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1EC1 JUMPI PUSH2 0x1EC0 PUSH2 0x1E6C JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ED3 PUSH2 0x18FD JUMP JUMPDEST SWAP1 POP PUSH2 0x1EDF DUP3 DUP3 PUSH2 0x1E99 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1F02 JUMPI PUSH2 0x1F01 PUSH2 0x1E6C JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F25 PUSH2 0x1F20 DUP5 PUSH2 0x1EE8 JUMP JUMPDEST PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1F48 JUMPI PUSH2 0x1F47 PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F71 JUMPI DUP1 PUSH2 0x1F5D DUP9 DUP3 PUSH2 0x1A42 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1F4A JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F8F JUMPI PUSH2 0x1F8E PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F9F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1F13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FB1 DUP2 PUSH2 0x19C1 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FBB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FCC DUP2 PUSH2 0x1FA8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FE7 JUMPI PUSH2 0x1FE6 PUSH2 0x1E58 JUMP JUMPDEST JUMPDEST PUSH2 0x1FF1 PUSH1 0xA0 PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2000 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2023 JUMPI PUSH2 0x2022 PUSH2 0x1EE4 JUMP JUMPDEST JUMPDEST PUSH2 0x202F DUP5 DUP3 DUP6 ADD PUSH2 0x1F7B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2043 DUP5 DUP3 DUP6 ADD PUSH2 0x1FBE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x2057 DUP5 DUP3 DUP6 ADD PUSH2 0x1FBE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x206B DUP5 DUP3 DUP6 ADD PUSH2 0x1FBE JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x208C JUMPI PUSH2 0x208B PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20A9 JUMPI PUSH2 0x20A8 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x20B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x20CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20DB DUP2 PUSH2 0x20BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x20FF JUMPI PUSH2 0x20FE PUSH2 0x1E6C JUMP JUMPDEST JUMPDEST PUSH2 0x2108 DUP3 PUSH2 0x1E5C JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2135 PUSH2 0x2130 DUP5 PUSH2 0x20E5 JUMP JUMPDEST PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2150 PUSH2 0x20E1 JUMP JUMPDEST JUMPDEST PUSH2 0x215C DUP5 DUP3 DUP6 PUSH2 0x2115 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2178 JUMPI PUSH2 0x2177 PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2188 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2123 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21A6 JUMPI PUSH2 0x21A5 PUSH2 0x1E58 JUMP JUMPDEST JUMPDEST PUSH2 0x21B0 PUSH1 0x80 PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x21BF DUP5 DUP3 DUP6 ADD PUSH2 0x20CD JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x21D2 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x21E6 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x220A JUMPI PUSH2 0x2209 PUSH2 0x1EE4 JUMP JUMPDEST JUMPDEST PUSH2 0x2216 DUP5 DUP3 DUP6 ADD PUSH2 0x2164 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2237 JUMPI PUSH2 0x2236 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2254 JUMPI PUSH2 0x2253 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x2260 DUP5 DUP3 DUP6 ADD PUSH2 0x2191 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x229F DUP2 PUSH2 0x1A81 JUMP JUMPDEST DUP2 EQ PUSH2 0x22A9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x22BA DUP2 PUSH2 0x2296 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22D5 JUMPI PUSH2 0x22D4 PUSH2 0x1E58 JUMP JUMPDEST JUMPDEST PUSH2 0x22DF PUSH1 0x20 PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x22EE DUP5 DUP3 DUP6 ADD PUSH2 0x22AC JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x230E JUMPI PUSH2 0x230D PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x231B DUP5 DUP3 DUP6 ADD PUSH2 0x22C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2337 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x2344 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2373 JUMPI PUSH2 0x2372 PUSH2 0x234B JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2395 JUMPI PUSH2 0x2394 PUSH2 0x234F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x23B1 JUMPI PUSH2 0x23B0 PUSH2 0x2353 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x23C3 DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x23CE DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x23E6 JUMPI PUSH2 0x23E5 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23F6 DUP3 PUSH2 0x19C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x2401 DUP4 PUSH2 0x19C1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2421 JUMPI PUSH2 0x2420 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x243A PUSH0 DUP4 ADD DUP7 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x2447 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x2454 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x246F PUSH0 DUP4 ADD DUP7 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x247C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A8A JUMP JUMPDEST PUSH2 0x2489 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x249B DUP3 PUSH2 0x19C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x24A6 DUP4 PUSH2 0x19C1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24C6 JUMPI PUSH2 0x24C5 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x24D6 DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x24E1 DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x24EF DUP2 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2506 JUMPI PUSH2 0x2505 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2544 DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x254F DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x255F JUMPI PUSH2 0x255E PUSH2 0x250D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE4 0xC8 PUSH5 0x5D909CB742 LOG4 EXTCODEHASH SWAP13 0xDF 0x2C 0xEF SWAP14 PUSH14 0x1526D51BECA39D4A229926065994 CALLER 0xEF PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"1862:1090:44:-:0;;;2362:53;;;;;;;;;;2707:28:42;2724:10;2707:16;;;:28;;:::i;:::-;2386:22:44;:20;;;:22;;:::i;:::-;1862:1090;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;1862:1090:44:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_15651":{"entryPoint":null,"id":15651,"parameterSlots":0,"returnSlots":0},"@_15658":{"entryPoint":null,"id":15658,"parameterSlots":0,"returnSlots":0},"@_checkOwner_6308":{"entryPoint":4594,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":6186,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":4649,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":4690,"id":6288,"parameterSlots":1,"returnSlots":0},"@_linearVestedAmount_15388":{"entryPoint":5900,"id":15388,"parameterSlots":2,"returnSlots":1},"@_ownershipHandoverValidFor_6319":{"entryPoint":4584,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":5045,"id":6302,"parameterSlots":1,"returnSlots":0},"@_transferFungible_15307":{"entryPoint":5243,"id":15307,"parameterSlots":3,"returnSlots":0},"@_vestedAllocation_15349":{"entryPoint":4391,"id":15349,"parameterSlots":2,"returnSlots":1},"@allocate_14902":{"entryPoint":2616,"id":14902,"parameterSlots":2,"returnSlots":1},"@available_15205":{"entryPoint":1556,"id":15205,"parameterSlots":1,"returnSlots":1},"@balanceOf_11253":{"entryPoint":4994,"id":11253,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6368":{"entryPoint":2490,"id":6368,"parameterSlots":0,"returnSlots":0},"@cliff_14767":{"entryPoint":1645,"id":14767,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":3515,"id":6382,"parameterSlots":1,"returnSlots":0},"@disburseBatch_15066":{"entryPoint":3077,"id":15066,"parameterSlots":2,"returnSlots":1},"@disburse_15031":{"entryPoint":3847,"id":15031,"parameterSlots":2,"returnSlots":1},"@distributed_15219":{"entryPoint":2547,"id":15219,"parameterSlots":1,"returnSlots":1},"@duration_14764":{"entryPoint":1530,"id":14764,"parameterSlots":0,"returnSlots":0},"@end_15144":{"entryPoint":3444,"id":15144,"parameterSlots":0,"returnSlots":1},"@getComponentInterface_15423":{"entryPoint":1752,"id":15423,"parameterSlots":0,"returnSlots":1},"@initialize_15837":{"entryPoint":2057,"id":15837,"parameterSlots":2,"returnSlots":0},"@isAuthorized_15133":{"entryPoint":4102,"id":15133,"parameterSlots":1,"returnSlots":1},"@owner_6390":{"entryPoint":3196,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":4245,"id":6400,"parameterSlots":1,"returnSlots":1},"@reclaim_14971":{"entryPoint":3577,"id":14971,"parameterSlots":2,"returnSlots":1},"@reconcile_15231":{"entryPoint":2483,"id":15231,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":3177,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1671,"id":6362,"parameterSlots":0,"returnSlots":0},"@safeTransferETH_11075":{"entryPoint":6190,"id":11075,"parameterSlots":2,"returnSlots":0},"@safeTransferFrom_11163":{"entryPoint":4904,"id":11163,"parameterSlots":4,"returnSlots":0},"@safeTransfer_11205":{"entryPoint":6219,"id":11205,"parameterSlots":3,"returnSlots":0},"@setAuthorized_15114":{"entryPoint":1791,"id":15114,"parameterSlots":4,"returnSlots":0},"@start_14761":{"entryPoint":3236,"id":14761,"parameterSlots":0,"returnSlots":0},"@supportsInterface_15410":{"entryPoint":1409,"id":15410,"parameterSlots":1,"returnSlots":1},"@supportsInterface_15644":{"entryPoint":4270,"id":15644,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":5779,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":6292,"id":2830,"parameterSlots":1,"returnSlots":1},"@total_15182":{"entryPoint":3261,"id":15182,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":3806,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7955,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":8483,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6722,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":6886,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":8059,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":6971,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":7342,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":7705,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":6479,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":7182,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":8548,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_AssetType_$15450":{"entryPoint":8397,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory":{"entryPoint":8896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$15766_memory_ptr":{"entryPoint":8146,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Transfer_$15461_memory_ptr":{"entryPoint":8593,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8876,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint64":{"entryPoint":8126,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6742,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":7056,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr":{"entryPoint":7427,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool":{"entryPoint":7725,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":6499,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":7267,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory":{"entryPoint":8953,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$15766_memory_ptr":{"entryPoint":8311,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_Transfer_$15461_memory_ptr":{"entryPoint":8738,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7502,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6553,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":6834,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6794,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint64_to_t_uint64_fromStack":{"entryPoint":6612,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":9255,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":8996,"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":9308,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":6568,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":6849,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":6809,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed":{"entryPoint":6627,"id":null,"parameterSlots":2,"returnSlots":1},"access_calldata_tail_t_bytes_calldata_ptr":{"entryPoint":9047,"id":null,"parameterSlots":2,"returnSlots":2},"allocate_memory":{"entryPoint":7882,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":6397,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":7912,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":8421,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":9145,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint64":{"entryPoint":9196,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":9530,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":9420,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":7587,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint64":{"entryPoint":9361,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6683,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":6542,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":6414,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":6652,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6785,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint64":{"entryPoint":6593,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":8469,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":7833,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":7542,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":9485,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":8809,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7638,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7788,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":6878,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6874,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a":{"entryPoint":9039,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":7768,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad":{"entryPoint":9035,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":7908,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":6882,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e":{"entryPoint":9043,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":8417,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6410,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6406,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":7772,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":6700,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7683,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":6457,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_AssetType_$15450":{"entryPoint":8382,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":8854,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint64":{"entryPoint":8104,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:22877:64","nodeType":"YulBlock","src":"0:22877:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1562:57:64","nodeType":"YulBlock","src":"1562:57:64","statements":[{"nativeSrc":"1572:41:64","nodeType":"YulAssignment","src":"1572:41:64","value":{"arguments":[{"name":"value","nativeSrc":"1587:5:64","nodeType":"YulIdentifier","src":"1587:5:64"},{"kind":"number","nativeSrc":"1594:18:64","nodeType":"YulLiteral","src":"1594:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1583:3:64","nodeType":"YulIdentifier","src":"1583:3:64"},"nativeSrc":"1583:30:64","nodeType":"YulFunctionCall","src":"1583:30:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1572:7:64","nodeType":"YulIdentifier","src":"1572:7:64"}]}]},"name":"cleanup_t_uint64","nativeSrc":"1518:101:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1544:5:64","nodeType":"YulTypedName","src":"1544:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1554:7:64","nodeType":"YulTypedName","src":"1554:7:64","type":""}],"src":"1518:101:64"},{"body":{"nativeSrc":"1688:52:64","nodeType":"YulBlock","src":"1688:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1705:3:64","nodeType":"YulIdentifier","src":"1705:3:64"},{"arguments":[{"name":"value","nativeSrc":"1727:5:64","nodeType":"YulIdentifier","src":"1727:5:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"1710:16:64","nodeType":"YulIdentifier","src":"1710:16:64"},"nativeSrc":"1710:23:64","nodeType":"YulFunctionCall","src":"1710:23:64"}],"functionName":{"name":"mstore","nativeSrc":"1698:6:64","nodeType":"YulIdentifier","src":"1698:6:64"},"nativeSrc":"1698:36:64","nodeType":"YulFunctionCall","src":"1698:36:64"},"nativeSrc":"1698:36:64","nodeType":"YulExpressionStatement","src":"1698:36:64"}]},"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"1625:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1676:5:64","nodeType":"YulTypedName","src":"1676:5:64","type":""},{"name":"pos","nativeSrc":"1683:3:64","nodeType":"YulTypedName","src":"1683:3:64","type":""}],"src":"1625:115:64"},{"body":{"nativeSrc":"1842:122:64","nodeType":"YulBlock","src":"1842:122:64","statements":[{"nativeSrc":"1852:26:64","nodeType":"YulAssignment","src":"1852:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1864:9:64","nodeType":"YulIdentifier","src":"1864:9:64"},{"kind":"number","nativeSrc":"1875:2:64","nodeType":"YulLiteral","src":"1875:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1860:3:64","nodeType":"YulIdentifier","src":"1860:3:64"},"nativeSrc":"1860:18:64","nodeType":"YulFunctionCall","src":"1860:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1852:4:64","nodeType":"YulIdentifier","src":"1852:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1930:6:64","nodeType":"YulIdentifier","src":"1930:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1943:9:64","nodeType":"YulIdentifier","src":"1943:9:64"},{"kind":"number","nativeSrc":"1954:1:64","nodeType":"YulLiteral","src":"1954:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1939:3:64","nodeType":"YulIdentifier","src":"1939:3:64"},"nativeSrc":"1939:17:64","nodeType":"YulFunctionCall","src":"1939:17:64"}],"functionName":{"name":"abi_encode_t_uint64_to_t_uint64_fromStack","nativeSrc":"1888:41:64","nodeType":"YulIdentifier","src":"1888:41:64"},"nativeSrc":"1888:69:64","nodeType":"YulFunctionCall","src":"1888:69:64"},"nativeSrc":"1888:69:64","nodeType":"YulExpressionStatement","src":"1888:69:64"}]},"name":"abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed","nativeSrc":"1746:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1814:9:64","nodeType":"YulTypedName","src":"1814:9:64","type":""},{"name":"value0","nativeSrc":"1826:6:64","nodeType":"YulTypedName","src":"1826:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1837:4:64","nodeType":"YulTypedName","src":"1837:4:64","type":""}],"src":"1746:218:64"},{"body":{"nativeSrc":"2015:81:64","nodeType":"YulBlock","src":"2015:81:64","statements":[{"nativeSrc":"2025:65:64","nodeType":"YulAssignment","src":"2025:65:64","value":{"arguments":[{"name":"value","nativeSrc":"2040:5:64","nodeType":"YulIdentifier","src":"2040:5:64"},{"kind":"number","nativeSrc":"2047:42:64","nodeType":"YulLiteral","src":"2047:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2036:3:64","nodeType":"YulIdentifier","src":"2036:3:64"},"nativeSrc":"2036:54:64","nodeType":"YulFunctionCall","src":"2036:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2025:7:64","nodeType":"YulIdentifier","src":"2025:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1970:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1997:5:64","nodeType":"YulTypedName","src":"1997:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2007:7:64","nodeType":"YulTypedName","src":"2007:7:64","type":""}],"src":"1970:126:64"},{"body":{"nativeSrc":"2147:51:64","nodeType":"YulBlock","src":"2147:51:64","statements":[{"nativeSrc":"2157:35:64","nodeType":"YulAssignment","src":"2157:35:64","value":{"arguments":[{"name":"value","nativeSrc":"2186:5:64","nodeType":"YulIdentifier","src":"2186:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2168:17:64","nodeType":"YulIdentifier","src":"2168:17:64"},"nativeSrc":"2168:24:64","nodeType":"YulFunctionCall","src":"2168:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2157:7:64","nodeType":"YulIdentifier","src":"2157:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"2102:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2129:5:64","nodeType":"YulTypedName","src":"2129:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2139:7:64","nodeType":"YulTypedName","src":"2139:7:64","type":""}],"src":"2102:96:64"},{"body":{"nativeSrc":"2247:79:64","nodeType":"YulBlock","src":"2247:79:64","statements":[{"body":{"nativeSrc":"2304:16:64","nodeType":"YulBlock","src":"2304:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2313:1:64","nodeType":"YulLiteral","src":"2313:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2316:1:64","nodeType":"YulLiteral","src":"2316:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2306:6:64","nodeType":"YulIdentifier","src":"2306:6:64"},"nativeSrc":"2306:12:64","nodeType":"YulFunctionCall","src":"2306:12:64"},"nativeSrc":"2306:12:64","nodeType":"YulExpressionStatement","src":"2306:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2270:5:64","nodeType":"YulIdentifier","src":"2270:5:64"},{"arguments":[{"name":"value","nativeSrc":"2295:5:64","nodeType":"YulIdentifier","src":"2295:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2277:17:64","nodeType":"YulIdentifier","src":"2277:17:64"},"nativeSrc":"2277:24:64","nodeType":"YulFunctionCall","src":"2277:24:64"}],"functionName":{"name":"eq","nativeSrc":"2267:2:64","nodeType":"YulIdentifier","src":"2267:2:64"},"nativeSrc":"2267:35:64","nodeType":"YulFunctionCall","src":"2267:35:64"}],"functionName":{"name":"iszero","nativeSrc":"2260:6:64","nodeType":"YulIdentifier","src":"2260:6:64"},"nativeSrc":"2260:43:64","nodeType":"YulFunctionCall","src":"2260:43:64"},"nativeSrc":"2257:63:64","nodeType":"YulIf","src":"2257:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"2204:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2240:5:64","nodeType":"YulTypedName","src":"2240:5:64","type":""}],"src":"2204:122:64"},{"body":{"nativeSrc":"2384:87:64","nodeType":"YulBlock","src":"2384:87:64","statements":[{"nativeSrc":"2394:29:64","nodeType":"YulAssignment","src":"2394:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2416:6:64","nodeType":"YulIdentifier","src":"2416:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2403:12:64","nodeType":"YulIdentifier","src":"2403:12:64"},"nativeSrc":"2403:20:64","nodeType":"YulFunctionCall","src":"2403:20:64"},"variableNames":[{"name":"value","nativeSrc":"2394:5:64","nodeType":"YulIdentifier","src":"2394:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2459:5:64","nodeType":"YulIdentifier","src":"2459:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2432:26:64","nodeType":"YulIdentifier","src":"2432:26:64"},"nativeSrc":"2432:33:64","nodeType":"YulFunctionCall","src":"2432:33:64"},"nativeSrc":"2432:33:64","nodeType":"YulExpressionStatement","src":"2432:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"2332:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2362:6:64","nodeType":"YulTypedName","src":"2362:6:64","type":""},{"name":"end","nativeSrc":"2370:3:64","nodeType":"YulTypedName","src":"2370:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2378:5:64","nodeType":"YulTypedName","src":"2378:5:64","type":""}],"src":"2332:139:64"},{"body":{"nativeSrc":"2543:263:64","nodeType":"YulBlock","src":"2543:263:64","statements":[{"body":{"nativeSrc":"2589:83:64","nodeType":"YulBlock","src":"2589:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2591:77:64","nodeType":"YulIdentifier","src":"2591:77:64"},"nativeSrc":"2591:79:64","nodeType":"YulFunctionCall","src":"2591:79:64"},"nativeSrc":"2591:79:64","nodeType":"YulExpressionStatement","src":"2591:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2564:7:64","nodeType":"YulIdentifier","src":"2564:7:64"},{"name":"headStart","nativeSrc":"2573:9:64","nodeType":"YulIdentifier","src":"2573:9:64"}],"functionName":{"name":"sub","nativeSrc":"2560:3:64","nodeType":"YulIdentifier","src":"2560:3:64"},"nativeSrc":"2560:23:64","nodeType":"YulFunctionCall","src":"2560:23:64"},{"kind":"number","nativeSrc":"2585:2:64","nodeType":"YulLiteral","src":"2585:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2556:3:64","nodeType":"YulIdentifier","src":"2556:3:64"},"nativeSrc":"2556:32:64","nodeType":"YulFunctionCall","src":"2556:32:64"},"nativeSrc":"2553:119:64","nodeType":"YulIf","src":"2553:119:64"},{"nativeSrc":"2682:117:64","nodeType":"YulBlock","src":"2682:117:64","statements":[{"nativeSrc":"2697:15:64","nodeType":"YulVariableDeclaration","src":"2697:15:64","value":{"kind":"number","nativeSrc":"2711:1:64","nodeType":"YulLiteral","src":"2711:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2701:6:64","nodeType":"YulTypedName","src":"2701:6:64","type":""}]},{"nativeSrc":"2726:63:64","nodeType":"YulAssignment","src":"2726:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2761:9:64","nodeType":"YulIdentifier","src":"2761:9:64"},{"name":"offset","nativeSrc":"2772:6:64","nodeType":"YulIdentifier","src":"2772:6:64"}],"functionName":{"name":"add","nativeSrc":"2757:3:64","nodeType":"YulIdentifier","src":"2757:3:64"},"nativeSrc":"2757:22:64","nodeType":"YulFunctionCall","src":"2757:22:64"},{"name":"dataEnd","nativeSrc":"2781:7:64","nodeType":"YulIdentifier","src":"2781:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2736:20:64","nodeType":"YulIdentifier","src":"2736:20:64"},"nativeSrc":"2736:53:64","nodeType":"YulFunctionCall","src":"2736:53:64"},"variableNames":[{"name":"value0","nativeSrc":"2726:6:64","nodeType":"YulIdentifier","src":"2726:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"2477:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2513:9:64","nodeType":"YulTypedName","src":"2513:9:64","type":""},{"name":"dataEnd","nativeSrc":"2524:7:64","nodeType":"YulTypedName","src":"2524:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2536:6:64","nodeType":"YulTypedName","src":"2536:6:64","type":""}],"src":"2477:329:64"},{"body":{"nativeSrc":"2857:32:64","nodeType":"YulBlock","src":"2857:32:64","statements":[{"nativeSrc":"2867:16:64","nodeType":"YulAssignment","src":"2867:16:64","value":{"name":"value","nativeSrc":"2878:5:64","nodeType":"YulIdentifier","src":"2878:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2867:7:64","nodeType":"YulIdentifier","src":"2867:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2812:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2839:5:64","nodeType":"YulTypedName","src":"2839:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2849:7:64","nodeType":"YulTypedName","src":"2849:7:64","type":""}],"src":"2812:77:64"},{"body":{"nativeSrc":"2960:53:64","nodeType":"YulBlock","src":"2960:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2977:3:64","nodeType":"YulIdentifier","src":"2977:3:64"},{"arguments":[{"name":"value","nativeSrc":"3000:5:64","nodeType":"YulIdentifier","src":"3000:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2982:17:64","nodeType":"YulIdentifier","src":"2982:17:64"},"nativeSrc":"2982:24:64","nodeType":"YulFunctionCall","src":"2982:24:64"}],"functionName":{"name":"mstore","nativeSrc":"2970:6:64","nodeType":"YulIdentifier","src":"2970:6:64"},"nativeSrc":"2970:37:64","nodeType":"YulFunctionCall","src":"2970:37:64"},"nativeSrc":"2970:37:64","nodeType":"YulExpressionStatement","src":"2970:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"2895:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2948:5:64","nodeType":"YulTypedName","src":"2948:5:64","type":""},{"name":"pos","nativeSrc":"2955:3:64","nodeType":"YulTypedName","src":"2955:3:64","type":""}],"src":"2895:118:64"},{"body":{"nativeSrc":"3117:124:64","nodeType":"YulBlock","src":"3117:124:64","statements":[{"nativeSrc":"3127:26:64","nodeType":"YulAssignment","src":"3127:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3139:9:64","nodeType":"YulIdentifier","src":"3139:9:64"},{"kind":"number","nativeSrc":"3150:2:64","nodeType":"YulLiteral","src":"3150:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3135:3:64","nodeType":"YulIdentifier","src":"3135:3:64"},"nativeSrc":"3135:18:64","nodeType":"YulFunctionCall","src":"3135:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3127:4:64","nodeType":"YulIdentifier","src":"3127:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3207:6:64","nodeType":"YulIdentifier","src":"3207:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3220:9:64","nodeType":"YulIdentifier","src":"3220:9:64"},{"kind":"number","nativeSrc":"3231:1:64","nodeType":"YulLiteral","src":"3231:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3216:3:64","nodeType":"YulIdentifier","src":"3216:3:64"},"nativeSrc":"3216:17:64","nodeType":"YulFunctionCall","src":"3216:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3163:43:64","nodeType":"YulIdentifier","src":"3163:43:64"},"nativeSrc":"3163:71:64","nodeType":"YulFunctionCall","src":"3163:71:64"},"nativeSrc":"3163:71:64","nodeType":"YulExpressionStatement","src":"3163:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3019:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3089:9:64","nodeType":"YulTypedName","src":"3089:9:64","type":""},{"name":"value0","nativeSrc":"3101:6:64","nodeType":"YulTypedName","src":"3101:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3112:4:64","nodeType":"YulTypedName","src":"3112:4:64","type":""}],"src":"3019:222:64"},{"body":{"nativeSrc":"3310:52:64","nodeType":"YulBlock","src":"3310:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3327:3:64","nodeType":"YulIdentifier","src":"3327:3:64"},{"arguments":[{"name":"value","nativeSrc":"3349:5:64","nodeType":"YulIdentifier","src":"3349:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"3332:16:64","nodeType":"YulIdentifier","src":"3332:16:64"},"nativeSrc":"3332:23:64","nodeType":"YulFunctionCall","src":"3332:23:64"}],"functionName":{"name":"mstore","nativeSrc":"3320:6:64","nodeType":"YulIdentifier","src":"3320:6:64"},"nativeSrc":"3320:36:64","nodeType":"YulFunctionCall","src":"3320:36:64"},"nativeSrc":"3320:36:64","nodeType":"YulExpressionStatement","src":"3320:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"3247:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3298:5:64","nodeType":"YulTypedName","src":"3298:5:64","type":""},{"name":"pos","nativeSrc":"3305:3:64","nodeType":"YulTypedName","src":"3305:3:64","type":""}],"src":"3247:115:64"},{"body":{"nativeSrc":"3464:122:64","nodeType":"YulBlock","src":"3464:122:64","statements":[{"nativeSrc":"3474:26:64","nodeType":"YulAssignment","src":"3474:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3486:9:64","nodeType":"YulIdentifier","src":"3486:9:64"},{"kind":"number","nativeSrc":"3497:2:64","nodeType":"YulLiteral","src":"3497:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3482:3:64","nodeType":"YulIdentifier","src":"3482:3:64"},"nativeSrc":"3482:18:64","nodeType":"YulFunctionCall","src":"3482:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3474:4:64","nodeType":"YulIdentifier","src":"3474:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3552:6:64","nodeType":"YulIdentifier","src":"3552:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3565:9:64","nodeType":"YulIdentifier","src":"3565:9:64"},{"kind":"number","nativeSrc":"3576:1:64","nodeType":"YulLiteral","src":"3576:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3561:3:64","nodeType":"YulIdentifier","src":"3561:3:64"},"nativeSrc":"3561:17:64","nodeType":"YulFunctionCall","src":"3561:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"3510:41:64","nodeType":"YulIdentifier","src":"3510:41:64"},"nativeSrc":"3510:69:64","nodeType":"YulFunctionCall","src":"3510:69:64"},"nativeSrc":"3510:69:64","nodeType":"YulExpressionStatement","src":"3510:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"3368:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3436:9:64","nodeType":"YulTypedName","src":"3436:9:64","type":""},{"name":"value0","nativeSrc":"3448:6:64","nodeType":"YulTypedName","src":"3448:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3459:4:64","nodeType":"YulTypedName","src":"3459:4:64","type":""}],"src":"3368:218:64"},{"body":{"nativeSrc":"3681:28:64","nodeType":"YulBlock","src":"3681:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3698:1:64","nodeType":"YulLiteral","src":"3698:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3701:1:64","nodeType":"YulLiteral","src":"3701:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3691:6:64","nodeType":"YulIdentifier","src":"3691:6:64"},"nativeSrc":"3691:12:64","nodeType":"YulFunctionCall","src":"3691:12:64"},"nativeSrc":"3691:12:64","nodeType":"YulExpressionStatement","src":"3691:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3592:117:64","nodeType":"YulFunctionDefinition","src":"3592:117:64"},{"body":{"nativeSrc":"3804:28:64","nodeType":"YulBlock","src":"3804:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3821:1:64","nodeType":"YulLiteral","src":"3821:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3824:1:64","nodeType":"YulLiteral","src":"3824:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3814:6:64","nodeType":"YulIdentifier","src":"3814:6:64"},"nativeSrc":"3814:12:64","nodeType":"YulFunctionCall","src":"3814:12:64"},"nativeSrc":"3814:12:64","nodeType":"YulExpressionStatement","src":"3814:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3715:117:64","nodeType":"YulFunctionDefinition","src":"3715:117:64"},{"body":{"nativeSrc":"3927:28:64","nodeType":"YulBlock","src":"3927:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3944:1:64","nodeType":"YulLiteral","src":"3944:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3947:1:64","nodeType":"YulLiteral","src":"3947:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3937:6:64","nodeType":"YulIdentifier","src":"3937:6:64"},"nativeSrc":"3937:12:64","nodeType":"YulFunctionCall","src":"3937:12:64"},"nativeSrc":"3937:12:64","nodeType":"YulExpressionStatement","src":"3937:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3838:117:64","nodeType":"YulFunctionDefinition","src":"3838:117:64"},{"body":{"nativeSrc":"4068:478:64","nodeType":"YulBlock","src":"4068:478:64","statements":[{"body":{"nativeSrc":"4117:83:64","nodeType":"YulBlock","src":"4117:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4119:77:64","nodeType":"YulIdentifier","src":"4119:77:64"},"nativeSrc":"4119:79:64","nodeType":"YulFunctionCall","src":"4119:79:64"},"nativeSrc":"4119:79:64","nodeType":"YulExpressionStatement","src":"4119:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4096:6:64","nodeType":"YulIdentifier","src":"4096:6:64"},{"kind":"number","nativeSrc":"4104:4:64","nodeType":"YulLiteral","src":"4104:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4092:3:64","nodeType":"YulIdentifier","src":"4092:3:64"},"nativeSrc":"4092:17:64","nodeType":"YulFunctionCall","src":"4092:17:64"},{"name":"end","nativeSrc":"4111:3:64","nodeType":"YulIdentifier","src":"4111:3:64"}],"functionName":{"name":"slt","nativeSrc":"4088:3:64","nodeType":"YulIdentifier","src":"4088:3:64"},"nativeSrc":"4088:27:64","nodeType":"YulFunctionCall","src":"4088:27:64"}],"functionName":{"name":"iszero","nativeSrc":"4081:6:64","nodeType":"YulIdentifier","src":"4081:6:64"},"nativeSrc":"4081:35:64","nodeType":"YulFunctionCall","src":"4081:35:64"},"nativeSrc":"4078:122:64","nodeType":"YulIf","src":"4078:122:64"},{"nativeSrc":"4209:30:64","nodeType":"YulAssignment","src":"4209:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"4232:6:64","nodeType":"YulIdentifier","src":"4232:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4219:12:64","nodeType":"YulIdentifier","src":"4219:12:64"},"nativeSrc":"4219:20:64","nodeType":"YulFunctionCall","src":"4219:20:64"},"variableNames":[{"name":"length","nativeSrc":"4209:6:64","nodeType":"YulIdentifier","src":"4209:6:64"}]},{"body":{"nativeSrc":"4282:83:64","nodeType":"YulBlock","src":"4282:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4284:77:64","nodeType":"YulIdentifier","src":"4284:77:64"},"nativeSrc":"4284:79:64","nodeType":"YulFunctionCall","src":"4284:79:64"},"nativeSrc":"4284:79:64","nodeType":"YulExpressionStatement","src":"4284:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4254:6:64","nodeType":"YulIdentifier","src":"4254:6:64"},{"kind":"number","nativeSrc":"4262:18:64","nodeType":"YulLiteral","src":"4262:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4251:2:64","nodeType":"YulIdentifier","src":"4251:2:64"},"nativeSrc":"4251:30:64","nodeType":"YulFunctionCall","src":"4251:30:64"},"nativeSrc":"4248:117:64","nodeType":"YulIf","src":"4248:117:64"},{"nativeSrc":"4374:29:64","nodeType":"YulAssignment","src":"4374:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4390:6:64","nodeType":"YulIdentifier","src":"4390:6:64"},{"kind":"number","nativeSrc":"4398:4:64","nodeType":"YulLiteral","src":"4398:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4386:3:64","nodeType":"YulIdentifier","src":"4386:3:64"},"nativeSrc":"4386:17:64","nodeType":"YulFunctionCall","src":"4386:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"4374:8:64","nodeType":"YulIdentifier","src":"4374:8:64"}]},{"body":{"nativeSrc":"4457:83:64","nodeType":"YulBlock","src":"4457:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4459:77:64","nodeType":"YulIdentifier","src":"4459:77:64"},"nativeSrc":"4459:79:64","nodeType":"YulFunctionCall","src":"4459:79:64"},"nativeSrc":"4459:79:64","nodeType":"YulExpressionStatement","src":"4459:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4422:8:64","nodeType":"YulIdentifier","src":"4422:8:64"},{"arguments":[{"name":"length","nativeSrc":"4436:6:64","nodeType":"YulIdentifier","src":"4436:6:64"},{"kind":"number","nativeSrc":"4444:4:64","nodeType":"YulLiteral","src":"4444:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"4432:3:64","nodeType":"YulIdentifier","src":"4432:3:64"},"nativeSrc":"4432:17:64","nodeType":"YulFunctionCall","src":"4432:17:64"}],"functionName":{"name":"add","nativeSrc":"4418:3:64","nodeType":"YulIdentifier","src":"4418:3:64"},"nativeSrc":"4418:32:64","nodeType":"YulFunctionCall","src":"4418:32:64"},{"name":"end","nativeSrc":"4452:3:64","nodeType":"YulIdentifier","src":"4452:3:64"}],"functionName":{"name":"gt","nativeSrc":"4415:2:64","nodeType":"YulIdentifier","src":"4415:2:64"},"nativeSrc":"4415:41:64","nodeType":"YulFunctionCall","src":"4415:41:64"},"nativeSrc":"4412:128:64","nodeType":"YulIf","src":"4412:128:64"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3978:568:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4035:6:64","nodeType":"YulTypedName","src":"4035:6:64","type":""},{"name":"end","nativeSrc":"4043:3:64","nodeType":"YulTypedName","src":"4043:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4051:8:64","nodeType":"YulTypedName","src":"4051:8:64","type":""},{"name":"length","nativeSrc":"4061:6:64","nodeType":"YulTypedName","src":"4061:6:64","type":""}],"src":"3978:568:64"},{"body":{"nativeSrc":"4653:478:64","nodeType":"YulBlock","src":"4653:478:64","statements":[{"body":{"nativeSrc":"4702:83:64","nodeType":"YulBlock","src":"4702:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4704:77:64","nodeType":"YulIdentifier","src":"4704:77:64"},"nativeSrc":"4704:79:64","nodeType":"YulFunctionCall","src":"4704:79:64"},"nativeSrc":"4704:79:64","nodeType":"YulExpressionStatement","src":"4704:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4681:6:64","nodeType":"YulIdentifier","src":"4681:6:64"},{"kind":"number","nativeSrc":"4689:4:64","nodeType":"YulLiteral","src":"4689:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4677:3:64","nodeType":"YulIdentifier","src":"4677:3:64"},"nativeSrc":"4677:17:64","nodeType":"YulFunctionCall","src":"4677:17:64"},{"name":"end","nativeSrc":"4696:3:64","nodeType":"YulIdentifier","src":"4696:3:64"}],"functionName":{"name":"slt","nativeSrc":"4673:3:64","nodeType":"YulIdentifier","src":"4673:3:64"},"nativeSrc":"4673:27:64","nodeType":"YulFunctionCall","src":"4673:27:64"}],"functionName":{"name":"iszero","nativeSrc":"4666:6:64","nodeType":"YulIdentifier","src":"4666:6:64"},"nativeSrc":"4666:35:64","nodeType":"YulFunctionCall","src":"4666:35:64"},"nativeSrc":"4663:122:64","nodeType":"YulIf","src":"4663:122:64"},{"nativeSrc":"4794:30:64","nodeType":"YulAssignment","src":"4794:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"4817:6:64","nodeType":"YulIdentifier","src":"4817:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4804:12:64","nodeType":"YulIdentifier","src":"4804:12:64"},"nativeSrc":"4804:20:64","nodeType":"YulFunctionCall","src":"4804:20:64"},"variableNames":[{"name":"length","nativeSrc":"4794:6:64","nodeType":"YulIdentifier","src":"4794:6:64"}]},{"body":{"nativeSrc":"4867:83:64","nodeType":"YulBlock","src":"4867:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4869:77:64","nodeType":"YulIdentifier","src":"4869:77:64"},"nativeSrc":"4869:79:64","nodeType":"YulFunctionCall","src":"4869:79:64"},"nativeSrc":"4869:79:64","nodeType":"YulExpressionStatement","src":"4869:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4839:6:64","nodeType":"YulIdentifier","src":"4839:6:64"},{"kind":"number","nativeSrc":"4847:18:64","nodeType":"YulLiteral","src":"4847:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4836:2:64","nodeType":"YulIdentifier","src":"4836:2:64"},"nativeSrc":"4836:30:64","nodeType":"YulFunctionCall","src":"4836:30:64"},"nativeSrc":"4833:117:64","nodeType":"YulIf","src":"4833:117:64"},{"nativeSrc":"4959:29:64","nodeType":"YulAssignment","src":"4959:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4975:6:64","nodeType":"YulIdentifier","src":"4975:6:64"},{"kind":"number","nativeSrc":"4983:4:64","nodeType":"YulLiteral","src":"4983:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4971:3:64","nodeType":"YulIdentifier","src":"4971:3:64"},"nativeSrc":"4971:17:64","nodeType":"YulFunctionCall","src":"4971:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"4959:8:64","nodeType":"YulIdentifier","src":"4959:8:64"}]},{"body":{"nativeSrc":"5042:83:64","nodeType":"YulBlock","src":"5042:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5044:77:64","nodeType":"YulIdentifier","src":"5044:77:64"},"nativeSrc":"5044:79:64","nodeType":"YulFunctionCall","src":"5044:79:64"},"nativeSrc":"5044:79:64","nodeType":"YulExpressionStatement","src":"5044:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"5007:8:64","nodeType":"YulIdentifier","src":"5007:8:64"},{"arguments":[{"name":"length","nativeSrc":"5021:6:64","nodeType":"YulIdentifier","src":"5021:6:64"},{"kind":"number","nativeSrc":"5029:4:64","nodeType":"YulLiteral","src":"5029:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"5017:3:64","nodeType":"YulIdentifier","src":"5017:3:64"},"nativeSrc":"5017:17:64","nodeType":"YulFunctionCall","src":"5017:17:64"}],"functionName":{"name":"add","nativeSrc":"5003:3:64","nodeType":"YulIdentifier","src":"5003:3:64"},"nativeSrc":"5003:32:64","nodeType":"YulFunctionCall","src":"5003:32:64"},{"name":"end","nativeSrc":"5037:3:64","nodeType":"YulIdentifier","src":"5037:3:64"}],"functionName":{"name":"gt","nativeSrc":"5000:2:64","nodeType":"YulIdentifier","src":"5000:2:64"},"nativeSrc":"5000:41:64","nodeType":"YulFunctionCall","src":"5000:41:64"},"nativeSrc":"4997:128:64","nodeType":"YulIf","src":"4997:128:64"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4566:565:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4620:6:64","nodeType":"YulTypedName","src":"4620:6:64","type":""},{"name":"end","nativeSrc":"4628:3:64","nodeType":"YulTypedName","src":"4628:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4636:8:64","nodeType":"YulTypedName","src":"4636:8:64","type":""},{"name":"length","nativeSrc":"4646:6:64","nodeType":"YulTypedName","src":"4646:6:64","type":""}],"src":"4566:565:64"},{"body":{"nativeSrc":"5287:778:64","nodeType":"YulBlock","src":"5287:778:64","statements":[{"body":{"nativeSrc":"5333:83:64","nodeType":"YulBlock","src":"5333:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5335:77:64","nodeType":"YulIdentifier","src":"5335:77:64"},"nativeSrc":"5335:79:64","nodeType":"YulFunctionCall","src":"5335:79:64"},"nativeSrc":"5335:79:64","nodeType":"YulExpressionStatement","src":"5335:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5308:7:64","nodeType":"YulIdentifier","src":"5308:7:64"},{"name":"headStart","nativeSrc":"5317:9:64","nodeType":"YulIdentifier","src":"5317:9:64"}],"functionName":{"name":"sub","nativeSrc":"5304:3:64","nodeType":"YulIdentifier","src":"5304:3:64"},"nativeSrc":"5304:23:64","nodeType":"YulFunctionCall","src":"5304:23:64"},{"kind":"number","nativeSrc":"5329:2:64","nodeType":"YulLiteral","src":"5329:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5300:3:64","nodeType":"YulIdentifier","src":"5300:3:64"},"nativeSrc":"5300:32:64","nodeType":"YulFunctionCall","src":"5300:32:64"},"nativeSrc":"5297:119:64","nodeType":"YulIf","src":"5297:119:64"},{"nativeSrc":"5426:312:64","nodeType":"YulBlock","src":"5426:312:64","statements":[{"nativeSrc":"5441:45:64","nodeType":"YulVariableDeclaration","src":"5441:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5472:9:64","nodeType":"YulIdentifier","src":"5472:9:64"},{"kind":"number","nativeSrc":"5483:1:64","nodeType":"YulLiteral","src":"5483:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5468:3:64","nodeType":"YulIdentifier","src":"5468:3:64"},"nativeSrc":"5468:17:64","nodeType":"YulFunctionCall","src":"5468:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"5455:12:64","nodeType":"YulIdentifier","src":"5455:12:64"},"nativeSrc":"5455:31:64","nodeType":"YulFunctionCall","src":"5455:31:64"},"variables":[{"name":"offset","nativeSrc":"5445:6:64","nodeType":"YulTypedName","src":"5445:6:64","type":""}]},{"body":{"nativeSrc":"5533:83:64","nodeType":"YulBlock","src":"5533:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5535:77:64","nodeType":"YulIdentifier","src":"5535:77:64"},"nativeSrc":"5535:79:64","nodeType":"YulFunctionCall","src":"5535:79:64"},"nativeSrc":"5535:79:64","nodeType":"YulExpressionStatement","src":"5535:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5505:6:64","nodeType":"YulIdentifier","src":"5505:6:64"},{"kind":"number","nativeSrc":"5513:18:64","nodeType":"YulLiteral","src":"5513:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5502:2:64","nodeType":"YulIdentifier","src":"5502:2:64"},"nativeSrc":"5502:30:64","nodeType":"YulFunctionCall","src":"5502:30:64"},"nativeSrc":"5499:117:64","nodeType":"YulIf","src":"5499:117:64"},{"nativeSrc":"5630:98:64","nodeType":"YulAssignment","src":"5630:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5700:9:64","nodeType":"YulIdentifier","src":"5700:9:64"},{"name":"offset","nativeSrc":"5711:6:64","nodeType":"YulIdentifier","src":"5711:6:64"}],"functionName":{"name":"add","nativeSrc":"5696:3:64","nodeType":"YulIdentifier","src":"5696:3:64"},"nativeSrc":"5696:22:64","nodeType":"YulFunctionCall","src":"5696:22:64"},{"name":"dataEnd","nativeSrc":"5720:7:64","nodeType":"YulIdentifier","src":"5720:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"5648:47:64","nodeType":"YulIdentifier","src":"5648:47:64"},"nativeSrc":"5648:80:64","nodeType":"YulFunctionCall","src":"5648:80:64"},"variableNames":[{"name":"value0","nativeSrc":"5630:6:64","nodeType":"YulIdentifier","src":"5630:6:64"},{"name":"value1","nativeSrc":"5638:6:64","nodeType":"YulIdentifier","src":"5638:6:64"}]}]},{"nativeSrc":"5748:310:64","nodeType":"YulBlock","src":"5748:310:64","statements":[{"nativeSrc":"5763:46:64","nodeType":"YulVariableDeclaration","src":"5763:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5794:9:64","nodeType":"YulIdentifier","src":"5794:9:64"},{"kind":"number","nativeSrc":"5805:2:64","nodeType":"YulLiteral","src":"5805:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5790:3:64","nodeType":"YulIdentifier","src":"5790:3:64"},"nativeSrc":"5790:18:64","nodeType":"YulFunctionCall","src":"5790:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"5777:12:64","nodeType":"YulIdentifier","src":"5777:12:64"},"nativeSrc":"5777:32:64","nodeType":"YulFunctionCall","src":"5777:32:64"},"variables":[{"name":"offset","nativeSrc":"5767:6:64","nodeType":"YulTypedName","src":"5767:6:64","type":""}]},{"body":{"nativeSrc":"5856:83:64","nodeType":"YulBlock","src":"5856:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5858:77:64","nodeType":"YulIdentifier","src":"5858:77:64"},"nativeSrc":"5858:79:64","nodeType":"YulFunctionCall","src":"5858:79:64"},"nativeSrc":"5858:79:64","nodeType":"YulExpressionStatement","src":"5858:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5828:6:64","nodeType":"YulIdentifier","src":"5828:6:64"},{"kind":"number","nativeSrc":"5836:18:64","nodeType":"YulLiteral","src":"5836:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5825:2:64","nodeType":"YulIdentifier","src":"5825:2:64"},"nativeSrc":"5825:30:64","nodeType":"YulFunctionCall","src":"5825:30:64"},"nativeSrc":"5822:117:64","nodeType":"YulIf","src":"5822:117:64"},{"nativeSrc":"5953:95:64","nodeType":"YulAssignment","src":"5953:95:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6020:9:64","nodeType":"YulIdentifier","src":"6020:9:64"},{"name":"offset","nativeSrc":"6031:6:64","nodeType":"YulIdentifier","src":"6031:6:64"}],"functionName":{"name":"add","nativeSrc":"6016:3:64","nodeType":"YulIdentifier","src":"6016:3:64"},"nativeSrc":"6016:22:64","nodeType":"YulFunctionCall","src":"6016:22:64"},{"name":"dataEnd","nativeSrc":"6040:7:64","nodeType":"YulIdentifier","src":"6040:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5971:44:64","nodeType":"YulIdentifier","src":"5971:44:64"},"nativeSrc":"5971:77:64","nodeType":"YulFunctionCall","src":"5971:77:64"},"variableNames":[{"name":"value2","nativeSrc":"5953:6:64","nodeType":"YulIdentifier","src":"5953:6:64"},{"name":"value3","nativeSrc":"5961:6:64","nodeType":"YulIdentifier","src":"5961:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"5137:928:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5233:9:64","nodeType":"YulTypedName","src":"5233:9:64","type":""},{"name":"dataEnd","nativeSrc":"5244:7:64","nodeType":"YulTypedName","src":"5244:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5256:6:64","nodeType":"YulTypedName","src":"5256:6:64","type":""},{"name":"value1","nativeSrc":"5264:6:64","nodeType":"YulTypedName","src":"5264:6:64","type":""},{"name":"value2","nativeSrc":"5272:6:64","nodeType":"YulTypedName","src":"5272:6:64","type":""},{"name":"value3","nativeSrc":"5280:6:64","nodeType":"YulTypedName","src":"5280:6:64","type":""}],"src":"5137:928:64"},{"body":{"nativeSrc":"6158:478:64","nodeType":"YulBlock","src":"6158:478:64","statements":[{"body":{"nativeSrc":"6207:83:64","nodeType":"YulBlock","src":"6207:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6209:77:64","nodeType":"YulIdentifier","src":"6209:77:64"},"nativeSrc":"6209:79:64","nodeType":"YulFunctionCall","src":"6209:79:64"},"nativeSrc":"6209:79:64","nodeType":"YulExpressionStatement","src":"6209:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"6186:6:64","nodeType":"YulIdentifier","src":"6186:6:64"},{"kind":"number","nativeSrc":"6194:4:64","nodeType":"YulLiteral","src":"6194:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"6182:3:64","nodeType":"YulIdentifier","src":"6182:3:64"},"nativeSrc":"6182:17:64","nodeType":"YulFunctionCall","src":"6182:17:64"},{"name":"end","nativeSrc":"6201:3:64","nodeType":"YulIdentifier","src":"6201:3:64"}],"functionName":{"name":"slt","nativeSrc":"6178:3:64","nodeType":"YulIdentifier","src":"6178:3:64"},"nativeSrc":"6178:27:64","nodeType":"YulFunctionCall","src":"6178:27:64"}],"functionName":{"name":"iszero","nativeSrc":"6171:6:64","nodeType":"YulIdentifier","src":"6171:6:64"},"nativeSrc":"6171:35:64","nodeType":"YulFunctionCall","src":"6171:35:64"},"nativeSrc":"6168:122:64","nodeType":"YulIf","src":"6168:122:64"},{"nativeSrc":"6299:30:64","nodeType":"YulAssignment","src":"6299:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"6322:6:64","nodeType":"YulIdentifier","src":"6322:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6309:12:64","nodeType":"YulIdentifier","src":"6309:12:64"},"nativeSrc":"6309:20:64","nodeType":"YulFunctionCall","src":"6309:20:64"},"variableNames":[{"name":"length","nativeSrc":"6299:6:64","nodeType":"YulIdentifier","src":"6299:6:64"}]},{"body":{"nativeSrc":"6372:83:64","nodeType":"YulBlock","src":"6372:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6374:77:64","nodeType":"YulIdentifier","src":"6374:77:64"},"nativeSrc":"6374:79:64","nodeType":"YulFunctionCall","src":"6374:79:64"},"nativeSrc":"6374:79:64","nodeType":"YulExpressionStatement","src":"6374:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6344:6:64","nodeType":"YulIdentifier","src":"6344:6:64"},{"kind":"number","nativeSrc":"6352:18:64","nodeType":"YulLiteral","src":"6352:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6341:2:64","nodeType":"YulIdentifier","src":"6341:2:64"},"nativeSrc":"6341:30:64","nodeType":"YulFunctionCall","src":"6341:30:64"},"nativeSrc":"6338:117:64","nodeType":"YulIf","src":"6338:117:64"},{"nativeSrc":"6464:29:64","nodeType":"YulAssignment","src":"6464:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6480:6:64","nodeType":"YulIdentifier","src":"6480:6:64"},{"kind":"number","nativeSrc":"6488:4:64","nodeType":"YulLiteral","src":"6488:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6476:3:64","nodeType":"YulIdentifier","src":"6476:3:64"},"nativeSrc":"6476:17:64","nodeType":"YulFunctionCall","src":"6476:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"6464:8:64","nodeType":"YulIdentifier","src":"6464:8:64"}]},{"body":{"nativeSrc":"6547:83:64","nodeType":"YulBlock","src":"6547:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6549:77:64","nodeType":"YulIdentifier","src":"6549:77:64"},"nativeSrc":"6549:79:64","nodeType":"YulFunctionCall","src":"6549:79:64"},"nativeSrc":"6549:79:64","nodeType":"YulExpressionStatement","src":"6549:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"6512:8:64","nodeType":"YulIdentifier","src":"6512:8:64"},{"arguments":[{"name":"length","nativeSrc":"6526:6:64","nodeType":"YulIdentifier","src":"6526:6:64"},{"kind":"number","nativeSrc":"6534:4:64","nodeType":"YulLiteral","src":"6534:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"6522:3:64","nodeType":"YulIdentifier","src":"6522:3:64"},"nativeSrc":"6522:17:64","nodeType":"YulFunctionCall","src":"6522:17:64"}],"functionName":{"name":"add","nativeSrc":"6508:3:64","nodeType":"YulIdentifier","src":"6508:3:64"},"nativeSrc":"6508:32:64","nodeType":"YulFunctionCall","src":"6508:32:64"},{"name":"end","nativeSrc":"6542:3:64","nodeType":"YulIdentifier","src":"6542:3:64"}],"functionName":{"name":"gt","nativeSrc":"6505:2:64","nodeType":"YulIdentifier","src":"6505:2:64"},"nativeSrc":"6505:41:64","nodeType":"YulFunctionCall","src":"6505:41:64"},"nativeSrc":"6502:128:64","nodeType":"YulIf","src":"6502:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"6084:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6125:6:64","nodeType":"YulTypedName","src":"6125:6:64","type":""},{"name":"end","nativeSrc":"6133:3:64","nodeType":"YulTypedName","src":"6133:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"6141:8:64","nodeType":"YulTypedName","src":"6141:8:64","type":""},{"name":"length","nativeSrc":"6151:6:64","nodeType":"YulTypedName","src":"6151:6:64","type":""}],"src":"6084:552:64"},{"body":{"nativeSrc":"6727:442:64","nodeType":"YulBlock","src":"6727:442:64","statements":[{"body":{"nativeSrc":"6773:83:64","nodeType":"YulBlock","src":"6773:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6775:77:64","nodeType":"YulIdentifier","src":"6775:77:64"},"nativeSrc":"6775:79:64","nodeType":"YulFunctionCall","src":"6775:79:64"},"nativeSrc":"6775:79:64","nodeType":"YulExpressionStatement","src":"6775:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6748:7:64","nodeType":"YulIdentifier","src":"6748:7:64"},{"name":"headStart","nativeSrc":"6757:9:64","nodeType":"YulIdentifier","src":"6757:9:64"}],"functionName":{"name":"sub","nativeSrc":"6744:3:64","nodeType":"YulIdentifier","src":"6744:3:64"},"nativeSrc":"6744:23:64","nodeType":"YulFunctionCall","src":"6744:23:64"},{"kind":"number","nativeSrc":"6769:2:64","nodeType":"YulLiteral","src":"6769:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6740:3:64","nodeType":"YulIdentifier","src":"6740:3:64"},"nativeSrc":"6740:32:64","nodeType":"YulFunctionCall","src":"6740:32:64"},"nativeSrc":"6737:119:64","nodeType":"YulIf","src":"6737:119:64"},{"nativeSrc":"6866:296:64","nodeType":"YulBlock","src":"6866:296:64","statements":[{"nativeSrc":"6881:45:64","nodeType":"YulVariableDeclaration","src":"6881:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6912:9:64","nodeType":"YulIdentifier","src":"6912:9:64"},{"kind":"number","nativeSrc":"6923:1:64","nodeType":"YulLiteral","src":"6923:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6908:3:64","nodeType":"YulIdentifier","src":"6908:3:64"},"nativeSrc":"6908:17:64","nodeType":"YulFunctionCall","src":"6908:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"6895:12:64","nodeType":"YulIdentifier","src":"6895:12:64"},"nativeSrc":"6895:31:64","nodeType":"YulFunctionCall","src":"6895:31:64"},"variables":[{"name":"offset","nativeSrc":"6885:6:64","nodeType":"YulTypedName","src":"6885:6:64","type":""}]},{"body":{"nativeSrc":"6973:83:64","nodeType":"YulBlock","src":"6973:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"6975:77:64","nodeType":"YulIdentifier","src":"6975:77:64"},"nativeSrc":"6975:79:64","nodeType":"YulFunctionCall","src":"6975:79:64"},"nativeSrc":"6975:79:64","nodeType":"YulExpressionStatement","src":"6975:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"6945:6:64","nodeType":"YulIdentifier","src":"6945:6:64"},{"kind":"number","nativeSrc":"6953:18:64","nodeType":"YulLiteral","src":"6953:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6942:2:64","nodeType":"YulIdentifier","src":"6942:2:64"},"nativeSrc":"6942:30:64","nodeType":"YulFunctionCall","src":"6942:30:64"},"nativeSrc":"6939:117:64","nodeType":"YulIf","src":"6939:117:64"},{"nativeSrc":"7070:82:64","nodeType":"YulAssignment","src":"7070:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7124:9:64","nodeType":"YulIdentifier","src":"7124:9:64"},{"name":"offset","nativeSrc":"7135:6:64","nodeType":"YulIdentifier","src":"7135:6:64"}],"functionName":{"name":"add","nativeSrc":"7120:3:64","nodeType":"YulIdentifier","src":"7120:3:64"},"nativeSrc":"7120:22:64","nodeType":"YulFunctionCall","src":"7120:22:64"},{"name":"dataEnd","nativeSrc":"7144:7:64","nodeType":"YulIdentifier","src":"7144:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7088:31:64","nodeType":"YulIdentifier","src":"7088:31:64"},"nativeSrc":"7088:64:64","nodeType":"YulFunctionCall","src":"7088:64:64"},"variableNames":[{"name":"value0","nativeSrc":"7070:6:64","nodeType":"YulIdentifier","src":"7070:6:64"},{"name":"value1","nativeSrc":"7078:6:64","nodeType":"YulIdentifier","src":"7078:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"6642:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6689:9:64","nodeType":"YulTypedName","src":"6689:9:64","type":""},{"name":"dataEnd","nativeSrc":"6700:7:64","nodeType":"YulTypedName","src":"6700:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6712:6:64","nodeType":"YulTypedName","src":"6712:6:64","type":""},{"name":"value1","nativeSrc":"6720:6:64","nodeType":"YulTypedName","src":"6720:6:64","type":""}],"src":"6642:527:64"},{"body":{"nativeSrc":"7291:478:64","nodeType":"YulBlock","src":"7291:478:64","statements":[{"body":{"nativeSrc":"7340:83:64","nodeType":"YulBlock","src":"7340:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7342:77:64","nodeType":"YulIdentifier","src":"7342:77:64"},"nativeSrc":"7342:79:64","nodeType":"YulFunctionCall","src":"7342:79:64"},"nativeSrc":"7342:79:64","nodeType":"YulExpressionStatement","src":"7342:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7319:6:64","nodeType":"YulIdentifier","src":"7319:6:64"},{"kind":"number","nativeSrc":"7327:4:64","nodeType":"YulLiteral","src":"7327:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7315:3:64","nodeType":"YulIdentifier","src":"7315:3:64"},"nativeSrc":"7315:17:64","nodeType":"YulFunctionCall","src":"7315:17:64"},{"name":"end","nativeSrc":"7334:3:64","nodeType":"YulIdentifier","src":"7334:3:64"}],"functionName":{"name":"slt","nativeSrc":"7311:3:64","nodeType":"YulIdentifier","src":"7311:3:64"},"nativeSrc":"7311:27:64","nodeType":"YulFunctionCall","src":"7311:27:64"}],"functionName":{"name":"iszero","nativeSrc":"7304:6:64","nodeType":"YulIdentifier","src":"7304:6:64"},"nativeSrc":"7304:35:64","nodeType":"YulFunctionCall","src":"7304:35:64"},"nativeSrc":"7301:122:64","nodeType":"YulIf","src":"7301:122:64"},{"nativeSrc":"7432:30:64","nodeType":"YulAssignment","src":"7432:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"7455:6:64","nodeType":"YulIdentifier","src":"7455:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7442:12:64","nodeType":"YulIdentifier","src":"7442:12:64"},"nativeSrc":"7442:20:64","nodeType":"YulFunctionCall","src":"7442:20:64"},"variableNames":[{"name":"length","nativeSrc":"7432:6:64","nodeType":"YulIdentifier","src":"7432:6:64"}]},{"body":{"nativeSrc":"7505:83:64","nodeType":"YulBlock","src":"7505:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7507:77:64","nodeType":"YulIdentifier","src":"7507:77:64"},"nativeSrc":"7507:79:64","nodeType":"YulFunctionCall","src":"7507:79:64"},"nativeSrc":"7507:79:64","nodeType":"YulExpressionStatement","src":"7507:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7477:6:64","nodeType":"YulIdentifier","src":"7477:6:64"},{"kind":"number","nativeSrc":"7485:18:64","nodeType":"YulLiteral","src":"7485:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7474:2:64","nodeType":"YulIdentifier","src":"7474:2:64"},"nativeSrc":"7474:30:64","nodeType":"YulFunctionCall","src":"7474:30:64"},"nativeSrc":"7471:117:64","nodeType":"YulIf","src":"7471:117:64"},{"nativeSrc":"7597:29:64","nodeType":"YulAssignment","src":"7597:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7613:6:64","nodeType":"YulIdentifier","src":"7613:6:64"},{"kind":"number","nativeSrc":"7621:4:64","nodeType":"YulLiteral","src":"7621:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7609:3:64","nodeType":"YulIdentifier","src":"7609:3:64"},"nativeSrc":"7609:17:64","nodeType":"YulFunctionCall","src":"7609:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"7597:8:64","nodeType":"YulIdentifier","src":"7597:8:64"}]},{"body":{"nativeSrc":"7680:83:64","nodeType":"YulBlock","src":"7680:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7682:77:64","nodeType":"YulIdentifier","src":"7682:77:64"},"nativeSrc":"7682:79:64","nodeType":"YulFunctionCall","src":"7682:79:64"},"nativeSrc":"7682:79:64","nodeType":"YulExpressionStatement","src":"7682:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7645:8:64","nodeType":"YulIdentifier","src":"7645:8:64"},{"arguments":[{"name":"length","nativeSrc":"7659:6:64","nodeType":"YulIdentifier","src":"7659:6:64"},{"kind":"number","nativeSrc":"7667:4:64","nodeType":"YulLiteral","src":"7667:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7655:3:64","nodeType":"YulIdentifier","src":"7655:3:64"},"nativeSrc":"7655:17:64","nodeType":"YulFunctionCall","src":"7655:17:64"}],"functionName":{"name":"add","nativeSrc":"7641:3:64","nodeType":"YulIdentifier","src":"7641:3:64"},"nativeSrc":"7641:32:64","nodeType":"YulFunctionCall","src":"7641:32:64"},{"name":"end","nativeSrc":"7675:3:64","nodeType":"YulIdentifier","src":"7675:3:64"}],"functionName":{"name":"gt","nativeSrc":"7638:2:64","nodeType":"YulIdentifier","src":"7638:2:64"},"nativeSrc":"7638:41:64","nodeType":"YulFunctionCall","src":"7638:41:64"},"nativeSrc":"7635:128:64","nodeType":"YulIf","src":"7635:128:64"}]},"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7190:579:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7258:6:64","nodeType":"YulTypedName","src":"7258:6:64","type":""},{"name":"end","nativeSrc":"7266:3:64","nodeType":"YulTypedName","src":"7266:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7274:8:64","nodeType":"YulTypedName","src":"7274:8:64","type":""},{"name":"length","nativeSrc":"7284:6:64","nodeType":"YulTypedName","src":"7284:6:64","type":""}],"src":"7190:579:64"},{"body":{"nativeSrc":"7887:469:64","nodeType":"YulBlock","src":"7887:469:64","statements":[{"body":{"nativeSrc":"7933:83:64","nodeType":"YulBlock","src":"7933:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7935:77:64","nodeType":"YulIdentifier","src":"7935:77:64"},"nativeSrc":"7935:79:64","nodeType":"YulFunctionCall","src":"7935:79:64"},"nativeSrc":"7935:79:64","nodeType":"YulExpressionStatement","src":"7935:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7908:7:64","nodeType":"YulIdentifier","src":"7908:7:64"},{"name":"headStart","nativeSrc":"7917:9:64","nodeType":"YulIdentifier","src":"7917:9:64"}],"functionName":{"name":"sub","nativeSrc":"7904:3:64","nodeType":"YulIdentifier","src":"7904:3:64"},"nativeSrc":"7904:23:64","nodeType":"YulFunctionCall","src":"7904:23:64"},{"kind":"number","nativeSrc":"7929:2:64","nodeType":"YulLiteral","src":"7929:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7900:3:64","nodeType":"YulIdentifier","src":"7900:3:64"},"nativeSrc":"7900:32:64","nodeType":"YulFunctionCall","src":"7900:32:64"},"nativeSrc":"7897:119:64","nodeType":"YulIf","src":"7897:119:64"},{"nativeSrc":"8026:323:64","nodeType":"YulBlock","src":"8026:323:64","statements":[{"nativeSrc":"8041:45:64","nodeType":"YulVariableDeclaration","src":"8041:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8072:9:64","nodeType":"YulIdentifier","src":"8072:9:64"},{"kind":"number","nativeSrc":"8083:1:64","nodeType":"YulLiteral","src":"8083:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8068:3:64","nodeType":"YulIdentifier","src":"8068:3:64"},"nativeSrc":"8068:17:64","nodeType":"YulFunctionCall","src":"8068:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"8055:12:64","nodeType":"YulIdentifier","src":"8055:12:64"},"nativeSrc":"8055:31:64","nodeType":"YulFunctionCall","src":"8055:31:64"},"variables":[{"name":"offset","nativeSrc":"8045:6:64","nodeType":"YulTypedName","src":"8045:6:64","type":""}]},{"body":{"nativeSrc":"8133:83:64","nodeType":"YulBlock","src":"8133:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8135:77:64","nodeType":"YulIdentifier","src":"8135:77:64"},"nativeSrc":"8135:79:64","nodeType":"YulFunctionCall","src":"8135:79:64"},"nativeSrc":"8135:79:64","nodeType":"YulExpressionStatement","src":"8135:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8105:6:64","nodeType":"YulIdentifier","src":"8105:6:64"},{"kind":"number","nativeSrc":"8113:18:64","nodeType":"YulLiteral","src":"8113:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8102:2:64","nodeType":"YulIdentifier","src":"8102:2:64"},"nativeSrc":"8102:30:64","nodeType":"YulFunctionCall","src":"8102:30:64"},"nativeSrc":"8099:117:64","nodeType":"YulIf","src":"8099:117:64"},{"nativeSrc":"8230:109:64","nodeType":"YulAssignment","src":"8230:109:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8311:9:64","nodeType":"YulIdentifier","src":"8311:9:64"},{"name":"offset","nativeSrc":"8322:6:64","nodeType":"YulIdentifier","src":"8322:6:64"}],"functionName":{"name":"add","nativeSrc":"8307:3:64","nodeType":"YulIdentifier","src":"8307:3:64"},"nativeSrc":"8307:22:64","nodeType":"YulFunctionCall","src":"8307:22:64"},{"name":"dataEnd","nativeSrc":"8331:7:64","nodeType":"YulIdentifier","src":"8331:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"8248:58:64","nodeType":"YulIdentifier","src":"8248:58:64"},"nativeSrc":"8248:91:64","nodeType":"YulFunctionCall","src":"8248:91:64"},"variableNames":[{"name":"value0","nativeSrc":"8230:6:64","nodeType":"YulIdentifier","src":"8230:6:64"},{"name":"value1","nativeSrc":"8238:6:64","nodeType":"YulIdentifier","src":"8238:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","nativeSrc":"7775:581:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7849:9:64","nodeType":"YulTypedName","src":"7849:9:64","type":""},{"name":"dataEnd","nativeSrc":"7860:7:64","nodeType":"YulTypedName","src":"7860:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7872:6:64","nodeType":"YulTypedName","src":"7872:6:64","type":""},{"name":"value1","nativeSrc":"7880:6:64","nodeType":"YulTypedName","src":"7880:6:64","type":""}],"src":"7775:581:64"},{"body":{"nativeSrc":"8427:53:64","nodeType":"YulBlock","src":"8427:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8444:3:64","nodeType":"YulIdentifier","src":"8444:3:64"},{"arguments":[{"name":"value","nativeSrc":"8467:5:64","nodeType":"YulIdentifier","src":"8467:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8449:17:64","nodeType":"YulIdentifier","src":"8449:17:64"},"nativeSrc":"8449:24:64","nodeType":"YulFunctionCall","src":"8449:24:64"}],"functionName":{"name":"mstore","nativeSrc":"8437:6:64","nodeType":"YulIdentifier","src":"8437:6:64"},"nativeSrc":"8437:37:64","nodeType":"YulFunctionCall","src":"8437:37:64"},"nativeSrc":"8437:37:64","nodeType":"YulExpressionStatement","src":"8437:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8362:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8415:5:64","nodeType":"YulTypedName","src":"8415:5:64","type":""},{"name":"pos","nativeSrc":"8422:3:64","nodeType":"YulTypedName","src":"8422:3:64","type":""}],"src":"8362:118:64"},{"body":{"nativeSrc":"8584:124:64","nodeType":"YulBlock","src":"8584:124:64","statements":[{"nativeSrc":"8594:26:64","nodeType":"YulAssignment","src":"8594:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"8606:9:64","nodeType":"YulIdentifier","src":"8606:9:64"},{"kind":"number","nativeSrc":"8617:2:64","nodeType":"YulLiteral","src":"8617:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8602:3:64","nodeType":"YulIdentifier","src":"8602:3:64"},"nativeSrc":"8602:18:64","nodeType":"YulFunctionCall","src":"8602:18:64"},"variableNames":[{"name":"tail","nativeSrc":"8594:4:64","nodeType":"YulIdentifier","src":"8594:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8674:6:64","nodeType":"YulIdentifier","src":"8674:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"8687:9:64","nodeType":"YulIdentifier","src":"8687:9:64"},{"kind":"number","nativeSrc":"8698:1:64","nodeType":"YulLiteral","src":"8698:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8683:3:64","nodeType":"YulIdentifier","src":"8683:3:64"},"nativeSrc":"8683:17:64","nodeType":"YulFunctionCall","src":"8683:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8630:43:64","nodeType":"YulIdentifier","src":"8630:43:64"},"nativeSrc":"8630:71:64","nodeType":"YulFunctionCall","src":"8630:71:64"},"nativeSrc":"8630:71:64","nodeType":"YulExpressionStatement","src":"8630:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"8486:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8556:9:64","nodeType":"YulTypedName","src":"8556:9:64","type":""},{"name":"value0","nativeSrc":"8568:6:64","nodeType":"YulTypedName","src":"8568:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8579:4:64","nodeType":"YulTypedName","src":"8579:4:64","type":""}],"src":"8486:222:64"},{"body":{"nativeSrc":"8742:152:64","nodeType":"YulBlock","src":"8742:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8759:1:64","nodeType":"YulLiteral","src":"8759:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8762:77:64","nodeType":"YulLiteral","src":"8762:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8752:6:64","nodeType":"YulIdentifier","src":"8752:6:64"},"nativeSrc":"8752:88:64","nodeType":"YulFunctionCall","src":"8752:88:64"},"nativeSrc":"8752:88:64","nodeType":"YulExpressionStatement","src":"8752:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8856:1:64","nodeType":"YulLiteral","src":"8856:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8859:4:64","nodeType":"YulLiteral","src":"8859:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8849:6:64","nodeType":"YulIdentifier","src":"8849:6:64"},"nativeSrc":"8849:15:64","nodeType":"YulFunctionCall","src":"8849:15:64"},"nativeSrc":"8849:15:64","nodeType":"YulExpressionStatement","src":"8849:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8880:1:64","nodeType":"YulLiteral","src":"8880:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8883:4:64","nodeType":"YulLiteral","src":"8883:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8873:6:64","nodeType":"YulIdentifier","src":"8873:6:64"},"nativeSrc":"8873:15:64","nodeType":"YulFunctionCall","src":"8873:15:64"},"nativeSrc":"8873:15:64","nodeType":"YulExpressionStatement","src":"8873:15:64"}]},"name":"panic_error_0x11","nativeSrc":"8714:180:64","nodeType":"YulFunctionDefinition","src":"8714:180:64"},{"body":{"nativeSrc":"8945:149:64","nodeType":"YulBlock","src":"8945:149:64","statements":[{"nativeSrc":"8955:25:64","nodeType":"YulAssignment","src":"8955:25:64","value":{"arguments":[{"name":"x","nativeSrc":"8978:1:64","nodeType":"YulIdentifier","src":"8978:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8960:17:64","nodeType":"YulIdentifier","src":"8960:17:64"},"nativeSrc":"8960:20:64","nodeType":"YulFunctionCall","src":"8960:20:64"},"variableNames":[{"name":"x","nativeSrc":"8955:1:64","nodeType":"YulIdentifier","src":"8955:1:64"}]},{"nativeSrc":"8989:25:64","nodeType":"YulAssignment","src":"8989:25:64","value":{"arguments":[{"name":"y","nativeSrc":"9012:1:64","nodeType":"YulIdentifier","src":"9012:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8994:17:64","nodeType":"YulIdentifier","src":"8994:17:64"},"nativeSrc":"8994:20:64","nodeType":"YulFunctionCall","src":"8994:20:64"},"variableNames":[{"name":"y","nativeSrc":"8989:1:64","nodeType":"YulIdentifier","src":"8989:1:64"}]},{"nativeSrc":"9023:17:64","nodeType":"YulAssignment","src":"9023:17:64","value":{"arguments":[{"name":"x","nativeSrc":"9035:1:64","nodeType":"YulIdentifier","src":"9035:1:64"},{"name":"y","nativeSrc":"9038:1:64","nodeType":"YulIdentifier","src":"9038:1:64"}],"functionName":{"name":"sub","nativeSrc":"9031:3:64","nodeType":"YulIdentifier","src":"9031:3:64"},"nativeSrc":"9031:9:64","nodeType":"YulFunctionCall","src":"9031:9:64"},"variableNames":[{"name":"diff","nativeSrc":"9023:4:64","nodeType":"YulIdentifier","src":"9023:4:64"}]},{"body":{"nativeSrc":"9065:22:64","nodeType":"YulBlock","src":"9065:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"9067:16:64","nodeType":"YulIdentifier","src":"9067:16:64"},"nativeSrc":"9067:18:64","nodeType":"YulFunctionCall","src":"9067:18:64"},"nativeSrc":"9067:18:64","nodeType":"YulExpressionStatement","src":"9067:18:64"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"9056:4:64","nodeType":"YulIdentifier","src":"9056:4:64"},{"name":"x","nativeSrc":"9062:1:64","nodeType":"YulIdentifier","src":"9062:1:64"}],"functionName":{"name":"gt","nativeSrc":"9053:2:64","nodeType":"YulIdentifier","src":"9053:2:64"},"nativeSrc":"9053:11:64","nodeType":"YulFunctionCall","src":"9053:11:64"},"nativeSrc":"9050:37:64","nodeType":"YulIf","src":"9050:37:64"}]},"name":"checked_sub_t_uint256","nativeSrc":"8900:194:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8931:1:64","nodeType":"YulTypedName","src":"8931:1:64","type":""},{"name":"y","nativeSrc":"8934:1:64","nodeType":"YulTypedName","src":"8934:1:64","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"8940:4:64","nodeType":"YulTypedName","src":"8940:4:64","type":""}],"src":"8900:194:64"},{"body":{"nativeSrc":"9128:152:64","nodeType":"YulBlock","src":"9128:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9145:1:64","nodeType":"YulLiteral","src":"9145:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9148:77:64","nodeType":"YulLiteral","src":"9148:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"9138:6:64","nodeType":"YulIdentifier","src":"9138:6:64"},"nativeSrc":"9138:88:64","nodeType":"YulFunctionCall","src":"9138:88:64"},"nativeSrc":"9138:88:64","nodeType":"YulExpressionStatement","src":"9138:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9242:1:64","nodeType":"YulLiteral","src":"9242:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"9245:4:64","nodeType":"YulLiteral","src":"9245:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"9235:6:64","nodeType":"YulIdentifier","src":"9235:6:64"},"nativeSrc":"9235:15:64","nodeType":"YulFunctionCall","src":"9235:15:64"},"nativeSrc":"9235:15:64","nodeType":"YulExpressionStatement","src":"9235:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9266:1:64","nodeType":"YulLiteral","src":"9266:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9269:4:64","nodeType":"YulLiteral","src":"9269:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"9259:6:64","nodeType":"YulIdentifier","src":"9259:6:64"},"nativeSrc":"9259:15:64","nodeType":"YulFunctionCall","src":"9259:15:64"},"nativeSrc":"9259:15:64","nodeType":"YulExpressionStatement","src":"9259:15:64"}]},"name":"panic_error_0x32","nativeSrc":"9100:180:64","nodeType":"YulFunctionDefinition","src":"9100:180:64"},{"body":{"nativeSrc":"9326:76:64","nodeType":"YulBlock","src":"9326:76:64","statements":[{"body":{"nativeSrc":"9380:16:64","nodeType":"YulBlock","src":"9380:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9389:1:64","nodeType":"YulLiteral","src":"9389:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9392:1:64","nodeType":"YulLiteral","src":"9392:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9382:6:64","nodeType":"YulIdentifier","src":"9382:6:64"},"nativeSrc":"9382:12:64","nodeType":"YulFunctionCall","src":"9382:12:64"},"nativeSrc":"9382:12:64","nodeType":"YulExpressionStatement","src":"9382:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9349:5:64","nodeType":"YulIdentifier","src":"9349:5:64"},{"arguments":[{"name":"value","nativeSrc":"9371:5:64","nodeType":"YulIdentifier","src":"9371:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"9356:14:64","nodeType":"YulIdentifier","src":"9356:14:64"},"nativeSrc":"9356:21:64","nodeType":"YulFunctionCall","src":"9356:21:64"}],"functionName":{"name":"eq","nativeSrc":"9346:2:64","nodeType":"YulIdentifier","src":"9346:2:64"},"nativeSrc":"9346:32:64","nodeType":"YulFunctionCall","src":"9346:32:64"}],"functionName":{"name":"iszero","nativeSrc":"9339:6:64","nodeType":"YulIdentifier","src":"9339:6:64"},"nativeSrc":"9339:40:64","nodeType":"YulFunctionCall","src":"9339:40:64"},"nativeSrc":"9336:60:64","nodeType":"YulIf","src":"9336:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"9286:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9319:5:64","nodeType":"YulTypedName","src":"9319:5:64","type":""}],"src":"9286:116:64"},{"body":{"nativeSrc":"9457:84:64","nodeType":"YulBlock","src":"9457:84:64","statements":[{"nativeSrc":"9467:29:64","nodeType":"YulAssignment","src":"9467:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9489:6:64","nodeType":"YulIdentifier","src":"9489:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9476:12:64","nodeType":"YulIdentifier","src":"9476:12:64"},"nativeSrc":"9476:20:64","nodeType":"YulFunctionCall","src":"9476:20:64"},"variableNames":[{"name":"value","nativeSrc":"9467:5:64","nodeType":"YulIdentifier","src":"9467:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9529:5:64","nodeType":"YulIdentifier","src":"9529:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"9505:23:64","nodeType":"YulIdentifier","src":"9505:23:64"},"nativeSrc":"9505:30:64","nodeType":"YulFunctionCall","src":"9505:30:64"},"nativeSrc":"9505:30:64","nodeType":"YulExpressionStatement","src":"9505:30:64"}]},"name":"abi_decode_t_bool","nativeSrc":"9408:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9435:6:64","nodeType":"YulTypedName","src":"9435:6:64","type":""},{"name":"end","nativeSrc":"9443:3:64","nodeType":"YulTypedName","src":"9443:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9451:5:64","nodeType":"YulTypedName","src":"9451:5:64","type":""}],"src":"9408:133:64"},{"body":{"nativeSrc":"9610:260:64","nodeType":"YulBlock","src":"9610:260:64","statements":[{"body":{"nativeSrc":"9656:83:64","nodeType":"YulBlock","src":"9656:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9658:77:64","nodeType":"YulIdentifier","src":"9658:77:64"},"nativeSrc":"9658:79:64","nodeType":"YulFunctionCall","src":"9658:79:64"},"nativeSrc":"9658:79:64","nodeType":"YulExpressionStatement","src":"9658:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9631:7:64","nodeType":"YulIdentifier","src":"9631:7:64"},{"name":"headStart","nativeSrc":"9640:9:64","nodeType":"YulIdentifier","src":"9640:9:64"}],"functionName":{"name":"sub","nativeSrc":"9627:3:64","nodeType":"YulIdentifier","src":"9627:3:64"},"nativeSrc":"9627:23:64","nodeType":"YulFunctionCall","src":"9627:23:64"},{"kind":"number","nativeSrc":"9652:2:64","nodeType":"YulLiteral","src":"9652:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"9623:3:64","nodeType":"YulIdentifier","src":"9623:3:64"},"nativeSrc":"9623:32:64","nodeType":"YulFunctionCall","src":"9623:32:64"},"nativeSrc":"9620:119:64","nodeType":"YulIf","src":"9620:119:64"},{"nativeSrc":"9749:114:64","nodeType":"YulBlock","src":"9749:114:64","statements":[{"nativeSrc":"9764:15:64","nodeType":"YulVariableDeclaration","src":"9764:15:64","value":{"kind":"number","nativeSrc":"9778:1:64","nodeType":"YulLiteral","src":"9778:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9768:6:64","nodeType":"YulTypedName","src":"9768:6:64","type":""}]},{"nativeSrc":"9793:60:64","nodeType":"YulAssignment","src":"9793:60:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9825:9:64","nodeType":"YulIdentifier","src":"9825:9:64"},{"name":"offset","nativeSrc":"9836:6:64","nodeType":"YulIdentifier","src":"9836:6:64"}],"functionName":{"name":"add","nativeSrc":"9821:3:64","nodeType":"YulIdentifier","src":"9821:3:64"},"nativeSrc":"9821:22:64","nodeType":"YulFunctionCall","src":"9821:22:64"},{"name":"dataEnd","nativeSrc":"9845:7:64","nodeType":"YulIdentifier","src":"9845:7:64"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"9803:17:64","nodeType":"YulIdentifier","src":"9803:17:64"},"nativeSrc":"9803:50:64","nodeType":"YulFunctionCall","src":"9803:50:64"},"variableNames":[{"name":"value0","nativeSrc":"9793:6:64","nodeType":"YulIdentifier","src":"9793:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"9547:323:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9580:9:64","nodeType":"YulTypedName","src":"9580:9:64","type":""},{"name":"dataEnd","nativeSrc":"9591:7:64","nodeType":"YulTypedName","src":"9591:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9603:6:64","nodeType":"YulTypedName","src":"9603:6:64","type":""}],"src":"9547:323:64"},{"body":{"nativeSrc":"9965:28:64","nodeType":"YulBlock","src":"9965:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9982:1:64","nodeType":"YulLiteral","src":"9982:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9985:1:64","nodeType":"YulLiteral","src":"9985:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9975:6:64","nodeType":"YulIdentifier","src":"9975:6:64"},"nativeSrc":"9975:12:64","nodeType":"YulFunctionCall","src":"9975:12:64"},"nativeSrc":"9975:12:64","nodeType":"YulExpressionStatement","src":"9975:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9876:117:64","nodeType":"YulFunctionDefinition","src":"9876:117:64"},{"body":{"nativeSrc":"10047:54:64","nodeType":"YulBlock","src":"10047:54:64","statements":[{"nativeSrc":"10057:38:64","nodeType":"YulAssignment","src":"10057:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10075:5:64","nodeType":"YulIdentifier","src":"10075:5:64"},{"kind":"number","nativeSrc":"10082:2:64","nodeType":"YulLiteral","src":"10082:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"10071:3:64","nodeType":"YulIdentifier","src":"10071:3:64"},"nativeSrc":"10071:14:64","nodeType":"YulFunctionCall","src":"10071:14:64"},{"arguments":[{"kind":"number","nativeSrc":"10091:2:64","nodeType":"YulLiteral","src":"10091:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"10087:3:64","nodeType":"YulIdentifier","src":"10087:3:64"},"nativeSrc":"10087:7:64","nodeType":"YulFunctionCall","src":"10087:7:64"}],"functionName":{"name":"and","nativeSrc":"10067:3:64","nodeType":"YulIdentifier","src":"10067:3:64"},"nativeSrc":"10067:28:64","nodeType":"YulFunctionCall","src":"10067:28:64"},"variableNames":[{"name":"result","nativeSrc":"10057:6:64","nodeType":"YulIdentifier","src":"10057:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"9999:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10030:5:64","nodeType":"YulTypedName","src":"10030:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"10040:6:64","nodeType":"YulTypedName","src":"10040:6:64","type":""}],"src":"9999:102:64"},{"body":{"nativeSrc":"10135:152:64","nodeType":"YulBlock","src":"10135:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10152:1:64","nodeType":"YulLiteral","src":"10152:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10155:77:64","nodeType":"YulLiteral","src":"10155:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10145:6:64","nodeType":"YulIdentifier","src":"10145:6:64"},"nativeSrc":"10145:88:64","nodeType":"YulFunctionCall","src":"10145:88:64"},"nativeSrc":"10145:88:64","nodeType":"YulExpressionStatement","src":"10145:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10249:1:64","nodeType":"YulLiteral","src":"10249:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"10252:4:64","nodeType":"YulLiteral","src":"10252:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"10242:6:64","nodeType":"YulIdentifier","src":"10242:6:64"},"nativeSrc":"10242:15:64","nodeType":"YulFunctionCall","src":"10242:15:64"},"nativeSrc":"10242:15:64","nodeType":"YulExpressionStatement","src":"10242:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10273:1:64","nodeType":"YulLiteral","src":"10273:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10276:4:64","nodeType":"YulLiteral","src":"10276:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10266:6:64","nodeType":"YulIdentifier","src":"10266:6:64"},"nativeSrc":"10266:15:64","nodeType":"YulFunctionCall","src":"10266:15:64"},"nativeSrc":"10266:15:64","nodeType":"YulExpressionStatement","src":"10266:15:64"}]},"name":"panic_error_0x41","nativeSrc":"10107:180:64","nodeType":"YulFunctionDefinition","src":"10107:180:64"},{"body":{"nativeSrc":"10336:238:64","nodeType":"YulBlock","src":"10336:238:64","statements":[{"nativeSrc":"10346:58:64","nodeType":"YulVariableDeclaration","src":"10346:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"10368:6:64","nodeType":"YulIdentifier","src":"10368:6:64"},{"arguments":[{"name":"size","nativeSrc":"10398:4:64","nodeType":"YulIdentifier","src":"10398:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10376:21:64","nodeType":"YulIdentifier","src":"10376:21:64"},"nativeSrc":"10376:27:64","nodeType":"YulFunctionCall","src":"10376:27:64"}],"functionName":{"name":"add","nativeSrc":"10364:3:64","nodeType":"YulIdentifier","src":"10364:3:64"},"nativeSrc":"10364:40:64","nodeType":"YulFunctionCall","src":"10364:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"10350:10:64","nodeType":"YulTypedName","src":"10350:10:64","type":""}]},{"body":{"nativeSrc":"10515:22:64","nodeType":"YulBlock","src":"10515:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10517:16:64","nodeType":"YulIdentifier","src":"10517:16:64"},"nativeSrc":"10517:18:64","nodeType":"YulFunctionCall","src":"10517:18:64"},"nativeSrc":"10517:18:64","nodeType":"YulExpressionStatement","src":"10517:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10458:10:64","nodeType":"YulIdentifier","src":"10458:10:64"},{"kind":"number","nativeSrc":"10470:18:64","nodeType":"YulLiteral","src":"10470:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10455:2:64","nodeType":"YulIdentifier","src":"10455:2:64"},"nativeSrc":"10455:34:64","nodeType":"YulFunctionCall","src":"10455:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10494:10:64","nodeType":"YulIdentifier","src":"10494:10:64"},{"name":"memPtr","nativeSrc":"10506:6:64","nodeType":"YulIdentifier","src":"10506:6:64"}],"functionName":{"name":"lt","nativeSrc":"10491:2:64","nodeType":"YulIdentifier","src":"10491:2:64"},"nativeSrc":"10491:22:64","nodeType":"YulFunctionCall","src":"10491:22:64"}],"functionName":{"name":"or","nativeSrc":"10452:2:64","nodeType":"YulIdentifier","src":"10452:2:64"},"nativeSrc":"10452:62:64","nodeType":"YulFunctionCall","src":"10452:62:64"},"nativeSrc":"10449:88:64","nodeType":"YulIf","src":"10449:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10553:2:64","nodeType":"YulLiteral","src":"10553:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10557:10:64","nodeType":"YulIdentifier","src":"10557:10:64"}],"functionName":{"name":"mstore","nativeSrc":"10546:6:64","nodeType":"YulIdentifier","src":"10546:6:64"},"nativeSrc":"10546:22:64","nodeType":"YulFunctionCall","src":"10546:22:64"},"nativeSrc":"10546:22:64","nodeType":"YulExpressionStatement","src":"10546:22:64"}]},"name":"finalize_allocation","nativeSrc":"10293:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10322:6:64","nodeType":"YulTypedName","src":"10322:6:64","type":""},{"name":"size","nativeSrc":"10330:4:64","nodeType":"YulTypedName","src":"10330:4:64","type":""}],"src":"10293:281:64"},{"body":{"nativeSrc":"10621:88:64","nodeType":"YulBlock","src":"10621:88:64","statements":[{"nativeSrc":"10631:30:64","nodeType":"YulAssignment","src":"10631:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10641:18:64","nodeType":"YulIdentifier","src":"10641:18:64"},"nativeSrc":"10641:20:64","nodeType":"YulFunctionCall","src":"10641:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"10631:6:64","nodeType":"YulIdentifier","src":"10631:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10690:6:64","nodeType":"YulIdentifier","src":"10690:6:64"},{"name":"size","nativeSrc":"10698:4:64","nodeType":"YulIdentifier","src":"10698:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10670:19:64","nodeType":"YulIdentifier","src":"10670:19:64"},"nativeSrc":"10670:33:64","nodeType":"YulFunctionCall","src":"10670:33:64"},"nativeSrc":"10670:33:64","nodeType":"YulExpressionStatement","src":"10670:33:64"}]},"name":"allocate_memory","nativeSrc":"10580:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10605:4:64","nodeType":"YulTypedName","src":"10605:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10614:6:64","nodeType":"YulTypedName","src":"10614:6:64","type":""}],"src":"10580:129:64"},{"body":{"nativeSrc":"10804:28:64","nodeType":"YulBlock","src":"10804:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10821:1:64","nodeType":"YulLiteral","src":"10821:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10824:1:64","nodeType":"YulLiteral","src":"10824:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10814:6:64","nodeType":"YulIdentifier","src":"10814:6:64"},"nativeSrc":"10814:12:64","nodeType":"YulFunctionCall","src":"10814:12:64"},"nativeSrc":"10814:12:64","nodeType":"YulExpressionStatement","src":"10814:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10715:117:64","nodeType":"YulFunctionDefinition","src":"10715:117:64"},{"body":{"nativeSrc":"10920:229:64","nodeType":"YulBlock","src":"10920:229:64","statements":[{"body":{"nativeSrc":"11025:22:64","nodeType":"YulBlock","src":"11025:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11027:16:64","nodeType":"YulIdentifier","src":"11027:16:64"},"nativeSrc":"11027:18:64","nodeType":"YulFunctionCall","src":"11027:18:64"},"nativeSrc":"11027:18:64","nodeType":"YulExpressionStatement","src":"11027:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10997:6:64","nodeType":"YulIdentifier","src":"10997:6:64"},{"kind":"number","nativeSrc":"11005:18:64","nodeType":"YulLiteral","src":"11005:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10994:2:64","nodeType":"YulIdentifier","src":"10994:2:64"},"nativeSrc":"10994:30:64","nodeType":"YulFunctionCall","src":"10994:30:64"},"nativeSrc":"10991:56:64","nodeType":"YulIf","src":"10991:56:64"},{"nativeSrc":"11057:25:64","nodeType":"YulAssignment","src":"11057:25:64","value":{"arguments":[{"name":"length","nativeSrc":"11069:6:64","nodeType":"YulIdentifier","src":"11069:6:64"},{"kind":"number","nativeSrc":"11077:4:64","nodeType":"YulLiteral","src":"11077:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11065:3:64","nodeType":"YulIdentifier","src":"11065:3:64"},"nativeSrc":"11065:17:64","nodeType":"YulFunctionCall","src":"11065:17:64"},"variableNames":[{"name":"size","nativeSrc":"11057:4:64","nodeType":"YulIdentifier","src":"11057:4:64"}]},{"nativeSrc":"11119:23:64","nodeType":"YulAssignment","src":"11119:23:64","value":{"arguments":[{"name":"size","nativeSrc":"11131:4:64","nodeType":"YulIdentifier","src":"11131:4:64"},{"kind":"number","nativeSrc":"11137:4:64","nodeType":"YulLiteral","src":"11137:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11127:3:64","nodeType":"YulIdentifier","src":"11127:3:64"},"nativeSrc":"11127:15:64","nodeType":"YulFunctionCall","src":"11127:15:64"},"variableNames":[{"name":"size","nativeSrc":"11119:4:64","nodeType":"YulIdentifier","src":"11119:4:64"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10838:311:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10904:6:64","nodeType":"YulTypedName","src":"10904:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10915:4:64","nodeType":"YulTypedName","src":"10915:4:64","type":""}],"src":"10838:311:64"},{"body":{"nativeSrc":"11274:608:64","nodeType":"YulBlock","src":"11274:608:64","statements":[{"nativeSrc":"11284:90:64","nodeType":"YulAssignment","src":"11284:90:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11366:6:64","nodeType":"YulIdentifier","src":"11366:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11309:56:64","nodeType":"YulIdentifier","src":"11309:56:64"},"nativeSrc":"11309:64:64","nodeType":"YulFunctionCall","src":"11309:64:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"11293:15:64","nodeType":"YulIdentifier","src":"11293:15:64"},"nativeSrc":"11293:81:64","nodeType":"YulFunctionCall","src":"11293:81:64"},"variableNames":[{"name":"array","nativeSrc":"11284:5:64","nodeType":"YulIdentifier","src":"11284:5:64"}]},{"nativeSrc":"11383:16:64","nodeType":"YulVariableDeclaration","src":"11383:16:64","value":{"name":"array","nativeSrc":"11394:5:64","nodeType":"YulIdentifier","src":"11394:5:64"},"variables":[{"name":"dst","nativeSrc":"11387:3:64","nodeType":"YulTypedName","src":"11387:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11416:5:64","nodeType":"YulIdentifier","src":"11416:5:64"},{"name":"length","nativeSrc":"11423:6:64","nodeType":"YulIdentifier","src":"11423:6:64"}],"functionName":{"name":"mstore","nativeSrc":"11409:6:64","nodeType":"YulIdentifier","src":"11409:6:64"},"nativeSrc":"11409:21:64","nodeType":"YulFunctionCall","src":"11409:21:64"},"nativeSrc":"11409:21:64","nodeType":"YulExpressionStatement","src":"11409:21:64"},{"nativeSrc":"11439:23:64","nodeType":"YulAssignment","src":"11439:23:64","value":{"arguments":[{"name":"array","nativeSrc":"11450:5:64","nodeType":"YulIdentifier","src":"11450:5:64"},{"kind":"number","nativeSrc":"11457:4:64","nodeType":"YulLiteral","src":"11457:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11446:3:64","nodeType":"YulIdentifier","src":"11446:3:64"},"nativeSrc":"11446:16:64","nodeType":"YulFunctionCall","src":"11446:16:64"},"variableNames":[{"name":"dst","nativeSrc":"11439:3:64","nodeType":"YulIdentifier","src":"11439:3:64"}]},{"nativeSrc":"11472:44:64","nodeType":"YulVariableDeclaration","src":"11472:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"11490:6:64","nodeType":"YulIdentifier","src":"11490:6:64"},{"arguments":[{"name":"length","nativeSrc":"11502:6:64","nodeType":"YulIdentifier","src":"11502:6:64"},{"kind":"number","nativeSrc":"11510:4:64","nodeType":"YulLiteral","src":"11510:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11498:3:64","nodeType":"YulIdentifier","src":"11498:3:64"},"nativeSrc":"11498:17:64","nodeType":"YulFunctionCall","src":"11498:17:64"}],"functionName":{"name":"add","nativeSrc":"11486:3:64","nodeType":"YulIdentifier","src":"11486:3:64"},"nativeSrc":"11486:30:64","nodeType":"YulFunctionCall","src":"11486:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"11476:6:64","nodeType":"YulTypedName","src":"11476:6:64","type":""}]},{"body":{"nativeSrc":"11544:103:64","nodeType":"YulBlock","src":"11544:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11558:77:64","nodeType":"YulIdentifier","src":"11558:77:64"},"nativeSrc":"11558:79:64","nodeType":"YulFunctionCall","src":"11558:79:64"},"nativeSrc":"11558:79:64","nodeType":"YulExpressionStatement","src":"11558:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11531:6:64","nodeType":"YulIdentifier","src":"11531:6:64"},{"name":"end","nativeSrc":"11539:3:64","nodeType":"YulIdentifier","src":"11539:3:64"}],"functionName":{"name":"gt","nativeSrc":"11528:2:64","nodeType":"YulIdentifier","src":"11528:2:64"},"nativeSrc":"11528:15:64","nodeType":"YulFunctionCall","src":"11528:15:64"},"nativeSrc":"11525:122:64","nodeType":"YulIf","src":"11525:122:64"},{"body":{"nativeSrc":"11732:144:64","nodeType":"YulBlock","src":"11732:144:64","statements":[{"nativeSrc":"11747:21:64","nodeType":"YulVariableDeclaration","src":"11747:21:64","value":{"name":"src","nativeSrc":"11765:3:64","nodeType":"YulIdentifier","src":"11765:3:64"},"variables":[{"name":"elementPos","nativeSrc":"11751:10:64","nodeType":"YulTypedName","src":"11751:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11789:3:64","nodeType":"YulIdentifier","src":"11789:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"11815:10:64","nodeType":"YulIdentifier","src":"11815:10:64"},{"name":"end","nativeSrc":"11827:3:64","nodeType":"YulIdentifier","src":"11827:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11794:20:64","nodeType":"YulIdentifier","src":"11794:20:64"},"nativeSrc":"11794:37:64","nodeType":"YulFunctionCall","src":"11794:37:64"}],"functionName":{"name":"mstore","nativeSrc":"11782:6:64","nodeType":"YulIdentifier","src":"11782:6:64"},"nativeSrc":"11782:50:64","nodeType":"YulFunctionCall","src":"11782:50:64"},"nativeSrc":"11782:50:64","nodeType":"YulExpressionStatement","src":"11782:50:64"},{"nativeSrc":"11845:21:64","nodeType":"YulAssignment","src":"11845:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"11856:3:64","nodeType":"YulIdentifier","src":"11856:3:64"},{"kind":"number","nativeSrc":"11861:4:64","nodeType":"YulLiteral","src":"11861:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11852:3:64","nodeType":"YulIdentifier","src":"11852:3:64"},"nativeSrc":"11852:14:64","nodeType":"YulFunctionCall","src":"11852:14:64"},"variableNames":[{"name":"dst","nativeSrc":"11845:3:64","nodeType":"YulIdentifier","src":"11845:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11685:3:64","nodeType":"YulIdentifier","src":"11685:3:64"},{"name":"srcEnd","nativeSrc":"11690:6:64","nodeType":"YulIdentifier","src":"11690:6:64"}],"functionName":{"name":"lt","nativeSrc":"11682:2:64","nodeType":"YulIdentifier","src":"11682:2:64"},"nativeSrc":"11682:15:64","nodeType":"YulFunctionCall","src":"11682:15:64"},"nativeSrc":"11656:220:64","nodeType":"YulForLoop","post":{"nativeSrc":"11698:25:64","nodeType":"YulBlock","src":"11698:25:64","statements":[{"nativeSrc":"11700:21:64","nodeType":"YulAssignment","src":"11700:21:64","value":{"arguments":[{"name":"src","nativeSrc":"11711:3:64","nodeType":"YulIdentifier","src":"11711:3:64"},{"kind":"number","nativeSrc":"11716:4:64","nodeType":"YulLiteral","src":"11716:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11707:3:64","nodeType":"YulIdentifier","src":"11707:3:64"},"nativeSrc":"11707:14:64","nodeType":"YulFunctionCall","src":"11707:14:64"},"variableNames":[{"name":"src","nativeSrc":"11700:3:64","nodeType":"YulIdentifier","src":"11700:3:64"}]}]},"pre":{"nativeSrc":"11660:21:64","nodeType":"YulBlock","src":"11660:21:64","statements":[{"nativeSrc":"11662:17:64","nodeType":"YulVariableDeclaration","src":"11662:17:64","value":{"name":"offset","nativeSrc":"11673:6:64","nodeType":"YulIdentifier","src":"11673:6:64"},"variables":[{"name":"src","nativeSrc":"11666:3:64","nodeType":"YulTypedName","src":"11666:3:64","type":""}]}]},"src":"11656:220:64"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11172:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11244:6:64","nodeType":"YulTypedName","src":"11244:6:64","type":""},{"name":"length","nativeSrc":"11252:6:64","nodeType":"YulTypedName","src":"11252:6:64","type":""},{"name":"end","nativeSrc":"11260:3:64","nodeType":"YulTypedName","src":"11260:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11268:5:64","nodeType":"YulTypedName","src":"11268:5:64","type":""}],"src":"11172:710:64"},{"body":{"nativeSrc":"11982:293:64","nodeType":"YulBlock","src":"11982:293:64","statements":[{"body":{"nativeSrc":"12031:83:64","nodeType":"YulBlock","src":"12031:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"12033:77:64","nodeType":"YulIdentifier","src":"12033:77:64"},"nativeSrc":"12033:79:64","nodeType":"YulFunctionCall","src":"12033:79:64"},"nativeSrc":"12033:79:64","nodeType":"YulExpressionStatement","src":"12033:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12010:6:64","nodeType":"YulIdentifier","src":"12010:6:64"},{"kind":"number","nativeSrc":"12018:4:64","nodeType":"YulLiteral","src":"12018:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12006:3:64","nodeType":"YulIdentifier","src":"12006:3:64"},"nativeSrc":"12006:17:64","nodeType":"YulFunctionCall","src":"12006:17:64"},{"name":"end","nativeSrc":"12025:3:64","nodeType":"YulIdentifier","src":"12025:3:64"}],"functionName":{"name":"slt","nativeSrc":"12002:3:64","nodeType":"YulIdentifier","src":"12002:3:64"},"nativeSrc":"12002:27:64","nodeType":"YulFunctionCall","src":"12002:27:64"}],"functionName":{"name":"iszero","nativeSrc":"11995:6:64","nodeType":"YulIdentifier","src":"11995:6:64"},"nativeSrc":"11995:35:64","nodeType":"YulFunctionCall","src":"11995:35:64"},"nativeSrc":"11992:122:64","nodeType":"YulIf","src":"11992:122:64"},{"nativeSrc":"12123:34:64","nodeType":"YulVariableDeclaration","src":"12123:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"12150:6:64","nodeType":"YulIdentifier","src":"12150:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"12137:12:64","nodeType":"YulIdentifier","src":"12137:12:64"},"nativeSrc":"12137:20:64","nodeType":"YulFunctionCall","src":"12137:20:64"},"variables":[{"name":"length","nativeSrc":"12127:6:64","nodeType":"YulTypedName","src":"12127:6:64","type":""}]},{"nativeSrc":"12166:103:64","nodeType":"YulAssignment","src":"12166:103:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12242:6:64","nodeType":"YulIdentifier","src":"12242:6:64"},{"kind":"number","nativeSrc":"12250:4:64","nodeType":"YulLiteral","src":"12250:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12238:3:64","nodeType":"YulIdentifier","src":"12238:3:64"},"nativeSrc":"12238:17:64","nodeType":"YulFunctionCall","src":"12238:17:64"},{"name":"length","nativeSrc":"12257:6:64","nodeType":"YulIdentifier","src":"12257:6:64"},{"name":"end","nativeSrc":"12265:3:64","nodeType":"YulIdentifier","src":"12265:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12175:62:64","nodeType":"YulIdentifier","src":"12175:62:64"},"nativeSrc":"12175:94:64","nodeType":"YulFunctionCall","src":"12175:94:64"},"variableNames":[{"name":"array","nativeSrc":"12166:5:64","nodeType":"YulIdentifier","src":"12166:5:64"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11905:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11960:6:64","nodeType":"YulTypedName","src":"11960:6:64","type":""},{"name":"end","nativeSrc":"11968:3:64","nodeType":"YulTypedName","src":"11968:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11976:5:64","nodeType":"YulTypedName","src":"11976:5:64","type":""}],"src":"11905:370:64"},{"body":{"nativeSrc":"12323:78:64","nodeType":"YulBlock","src":"12323:78:64","statements":[{"body":{"nativeSrc":"12379:16:64","nodeType":"YulBlock","src":"12379:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12388:1:64","nodeType":"YulLiteral","src":"12388:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12391:1:64","nodeType":"YulLiteral","src":"12391:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12381:6:64","nodeType":"YulIdentifier","src":"12381:6:64"},"nativeSrc":"12381:12:64","nodeType":"YulFunctionCall","src":"12381:12:64"},"nativeSrc":"12381:12:64","nodeType":"YulExpressionStatement","src":"12381:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12346:5:64","nodeType":"YulIdentifier","src":"12346:5:64"},{"arguments":[{"name":"value","nativeSrc":"12370:5:64","nodeType":"YulIdentifier","src":"12370:5:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"12353:16:64","nodeType":"YulIdentifier","src":"12353:16:64"},"nativeSrc":"12353:23:64","nodeType":"YulFunctionCall","src":"12353:23:64"}],"functionName":{"name":"eq","nativeSrc":"12343:2:64","nodeType":"YulIdentifier","src":"12343:2:64"},"nativeSrc":"12343:34:64","nodeType":"YulFunctionCall","src":"12343:34:64"}],"functionName":{"name":"iszero","nativeSrc":"12336:6:64","nodeType":"YulIdentifier","src":"12336:6:64"},"nativeSrc":"12336:42:64","nodeType":"YulFunctionCall","src":"12336:42:64"},"nativeSrc":"12333:62:64","nodeType":"YulIf","src":"12333:62:64"}]},"name":"validator_revert_t_uint64","nativeSrc":"12281:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12316:5:64","nodeType":"YulTypedName","src":"12316:5:64","type":""}],"src":"12281:120:64"},{"body":{"nativeSrc":"12458:86:64","nodeType":"YulBlock","src":"12458:86:64","statements":[{"nativeSrc":"12468:29:64","nodeType":"YulAssignment","src":"12468:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"12490:6:64","nodeType":"YulIdentifier","src":"12490:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"12477:12:64","nodeType":"YulIdentifier","src":"12477:12:64"},"nativeSrc":"12477:20:64","nodeType":"YulFunctionCall","src":"12477:20:64"},"variableNames":[{"name":"value","nativeSrc":"12468:5:64","nodeType":"YulIdentifier","src":"12468:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12532:5:64","nodeType":"YulIdentifier","src":"12532:5:64"}],"functionName":{"name":"validator_revert_t_uint64","nativeSrc":"12506:25:64","nodeType":"YulIdentifier","src":"12506:25:64"},"nativeSrc":"12506:32:64","nodeType":"YulFunctionCall","src":"12506:32:64"},"nativeSrc":"12506:32:64","nodeType":"YulExpressionStatement","src":"12506:32:64"}]},"name":"abi_decode_t_uint64","nativeSrc":"12407:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12436:6:64","nodeType":"YulTypedName","src":"12436:6:64","type":""},{"name":"end","nativeSrc":"12444:3:64","nodeType":"YulTypedName","src":"12444:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12452:5:64","nodeType":"YulTypedName","src":"12452:5:64","type":""}],"src":"12407:137:64"},{"body":{"nativeSrc":"12675:1173:64","nodeType":"YulBlock","src":"12675:1173:64","statements":[{"body":{"nativeSrc":"12719:83:64","nodeType":"YulBlock","src":"12719:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"12721:77:64","nodeType":"YulIdentifier","src":"12721:77:64"},"nativeSrc":"12721:79:64","nodeType":"YulFunctionCall","src":"12721:79:64"},"nativeSrc":"12721:79:64","nodeType":"YulExpressionStatement","src":"12721:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"12696:3:64","nodeType":"YulIdentifier","src":"12696:3:64"},{"name":"headStart","nativeSrc":"12701:9:64","nodeType":"YulIdentifier","src":"12701:9:64"}],"functionName":{"name":"sub","nativeSrc":"12692:3:64","nodeType":"YulIdentifier","src":"12692:3:64"},"nativeSrc":"12692:19:64","nodeType":"YulFunctionCall","src":"12692:19:64"},{"kind":"number","nativeSrc":"12713:4:64","nodeType":"YulLiteral","src":"12713:4:64","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"12688:3:64","nodeType":"YulIdentifier","src":"12688:3:64"},"nativeSrc":"12688:30:64","nodeType":"YulFunctionCall","src":"12688:30:64"},"nativeSrc":"12685:117:64","nodeType":"YulIf","src":"12685:117:64"},{"nativeSrc":"12811:30:64","nodeType":"YulAssignment","src":"12811:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"12836:4:64","nodeType":"YulLiteral","src":"12836:4:64","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"12820:15:64","nodeType":"YulIdentifier","src":"12820:15:64"},"nativeSrc":"12820:21:64","nodeType":"YulFunctionCall","src":"12820:21:64"},"variableNames":[{"name":"value","nativeSrc":"12811:5:64","nodeType":"YulIdentifier","src":"12811:5:64"}]},{"nativeSrc":"12851:151:64","nodeType":"YulBlock","src":"12851:151:64","statements":[{"nativeSrc":"12887:15:64","nodeType":"YulVariableDeclaration","src":"12887:15:64","value":{"kind":"number","nativeSrc":"12901:1:64","nodeType":"YulLiteral","src":"12901:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12891:6:64","nodeType":"YulTypedName","src":"12891:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12927:5:64","nodeType":"YulIdentifier","src":"12927:5:64"},{"kind":"number","nativeSrc":"12934:4:64","nodeType":"YulLiteral","src":"12934:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"12923:3:64","nodeType":"YulIdentifier","src":"12923:3:64"},"nativeSrc":"12923:16:64","nodeType":"YulFunctionCall","src":"12923:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12966:9:64","nodeType":"YulIdentifier","src":"12966:9:64"},{"name":"offset","nativeSrc":"12977:6:64","nodeType":"YulIdentifier","src":"12977:6:64"}],"functionName":{"name":"add","nativeSrc":"12962:3:64","nodeType":"YulIdentifier","src":"12962:3:64"},"nativeSrc":"12962:22:64","nodeType":"YulFunctionCall","src":"12962:22:64"},{"name":"end","nativeSrc":"12986:3:64","nodeType":"YulIdentifier","src":"12986:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"12941:20:64","nodeType":"YulIdentifier","src":"12941:20:64"},"nativeSrc":"12941:49:64","nodeType":"YulFunctionCall","src":"12941:49:64"}],"functionName":{"name":"mstore","nativeSrc":"12916:6:64","nodeType":"YulIdentifier","src":"12916:6:64"},"nativeSrc":"12916:75:64","nodeType":"YulFunctionCall","src":"12916:75:64"},"nativeSrc":"12916:75:64","nodeType":"YulExpressionStatement","src":"12916:75:64"}]},{"nativeSrc":"13012:342:64","nodeType":"YulBlock","src":"13012:342:64","statements":[{"nativeSrc":"13053:46:64","nodeType":"YulVariableDeclaration","src":"13053:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13084:9:64","nodeType":"YulIdentifier","src":"13084:9:64"},{"kind":"number","nativeSrc":"13095:2:64","nodeType":"YulLiteral","src":"13095:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13080:3:64","nodeType":"YulIdentifier","src":"13080:3:64"},"nativeSrc":"13080:18:64","nodeType":"YulFunctionCall","src":"13080:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"13067:12:64","nodeType":"YulIdentifier","src":"13067:12:64"},"nativeSrc":"13067:32:64","nodeType":"YulFunctionCall","src":"13067:32:64"},"variables":[{"name":"offset","nativeSrc":"13057:6:64","nodeType":"YulTypedName","src":"13057:6:64","type":""}]},{"body":{"nativeSrc":"13146:83:64","nodeType":"YulBlock","src":"13146:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"13148:77:64","nodeType":"YulIdentifier","src":"13148:77:64"},"nativeSrc":"13148:79:64","nodeType":"YulFunctionCall","src":"13148:79:64"},"nativeSrc":"13148:79:64","nodeType":"YulExpressionStatement","src":"13148:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13118:6:64","nodeType":"YulIdentifier","src":"13118:6:64"},{"kind":"number","nativeSrc":"13126:18:64","nodeType":"YulLiteral","src":"13126:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13115:2:64","nodeType":"YulIdentifier","src":"13115:2:64"},"nativeSrc":"13115:30:64","nodeType":"YulFunctionCall","src":"13115:30:64"},"nativeSrc":"13112:117:64","nodeType":"YulIf","src":"13112:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13254:5:64","nodeType":"YulIdentifier","src":"13254:5:64"},{"kind":"number","nativeSrc":"13261:4:64","nodeType":"YulLiteral","src":"13261:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13250:3:64","nodeType":"YulIdentifier","src":"13250:3:64"},"nativeSrc":"13250:16:64","nodeType":"YulFunctionCall","src":"13250:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13318:9:64","nodeType":"YulIdentifier","src":"13318:9:64"},{"name":"offset","nativeSrc":"13329:6:64","nodeType":"YulIdentifier","src":"13329:6:64"}],"functionName":{"name":"add","nativeSrc":"13314:3:64","nodeType":"YulIdentifier","src":"13314:3:64"},"nativeSrc":"13314:22:64","nodeType":"YulFunctionCall","src":"13314:22:64"},{"name":"end","nativeSrc":"13338:3:64","nodeType":"YulIdentifier","src":"13338:3:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13268:45:64","nodeType":"YulIdentifier","src":"13268:45:64"},"nativeSrc":"13268:74:64","nodeType":"YulFunctionCall","src":"13268:74:64"}],"functionName":{"name":"mstore","nativeSrc":"13243:6:64","nodeType":"YulIdentifier","src":"13243:6:64"},"nativeSrc":"13243:100:64","nodeType":"YulFunctionCall","src":"13243:100:64"},"nativeSrc":"13243:100:64","nodeType":"YulExpressionStatement","src":"13243:100:64"}]},{"nativeSrc":"13364:151:64","nodeType":"YulBlock","src":"13364:151:64","statements":[{"nativeSrc":"13400:16:64","nodeType":"YulVariableDeclaration","src":"13400:16:64","value":{"kind":"number","nativeSrc":"13414:2:64","nodeType":"YulLiteral","src":"13414:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"13404:6:64","nodeType":"YulTypedName","src":"13404:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13441:5:64","nodeType":"YulIdentifier","src":"13441:5:64"},{"kind":"number","nativeSrc":"13448:4:64","nodeType":"YulLiteral","src":"13448:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13437:3:64","nodeType":"YulIdentifier","src":"13437:3:64"},"nativeSrc":"13437:16:64","nodeType":"YulFunctionCall","src":"13437:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13479:9:64","nodeType":"YulIdentifier","src":"13479:9:64"},{"name":"offset","nativeSrc":"13490:6:64","nodeType":"YulIdentifier","src":"13490:6:64"}],"functionName":{"name":"add","nativeSrc":"13475:3:64","nodeType":"YulIdentifier","src":"13475:3:64"},"nativeSrc":"13475:22:64","nodeType":"YulFunctionCall","src":"13475:22:64"},{"name":"end","nativeSrc":"13499:3:64","nodeType":"YulIdentifier","src":"13499:3:64"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13455:19:64","nodeType":"YulIdentifier","src":"13455:19:64"},"nativeSrc":"13455:48:64","nodeType":"YulFunctionCall","src":"13455:48:64"}],"functionName":{"name":"mstore","nativeSrc":"13430:6:64","nodeType":"YulIdentifier","src":"13430:6:64"},"nativeSrc":"13430:74:64","nodeType":"YulFunctionCall","src":"13430:74:64"},"nativeSrc":"13430:74:64","nodeType":"YulExpressionStatement","src":"13430:74:64"}]},{"nativeSrc":"13525:154:64","nodeType":"YulBlock","src":"13525:154:64","statements":[{"nativeSrc":"13564:16:64","nodeType":"YulVariableDeclaration","src":"13564:16:64","value":{"kind":"number","nativeSrc":"13578:2:64","nodeType":"YulLiteral","src":"13578:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"13568:6:64","nodeType":"YulTypedName","src":"13568:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13605:5:64","nodeType":"YulIdentifier","src":"13605:5:64"},{"kind":"number","nativeSrc":"13612:4:64","nodeType":"YulLiteral","src":"13612:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"13601:3:64","nodeType":"YulIdentifier","src":"13601:3:64"},"nativeSrc":"13601:16:64","nodeType":"YulFunctionCall","src":"13601:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13643:9:64","nodeType":"YulIdentifier","src":"13643:9:64"},{"name":"offset","nativeSrc":"13654:6:64","nodeType":"YulIdentifier","src":"13654:6:64"}],"functionName":{"name":"add","nativeSrc":"13639:3:64","nodeType":"YulIdentifier","src":"13639:3:64"},"nativeSrc":"13639:22:64","nodeType":"YulFunctionCall","src":"13639:22:64"},{"name":"end","nativeSrc":"13663:3:64","nodeType":"YulIdentifier","src":"13663:3:64"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13619:19:64","nodeType":"YulIdentifier","src":"13619:19:64"},"nativeSrc":"13619:48:64","nodeType":"YulFunctionCall","src":"13619:48:64"}],"functionName":{"name":"mstore","nativeSrc":"13594:6:64","nodeType":"YulIdentifier","src":"13594:6:64"},"nativeSrc":"13594:74:64","nodeType":"YulFunctionCall","src":"13594:74:64"},"nativeSrc":"13594:74:64","nodeType":"YulExpressionStatement","src":"13594:74:64"}]},{"nativeSrc":"13689:152:64","nodeType":"YulBlock","src":"13689:152:64","statements":[{"nativeSrc":"13725:17:64","nodeType":"YulVariableDeclaration","src":"13725:17:64","value":{"kind":"number","nativeSrc":"13739:3:64","nodeType":"YulLiteral","src":"13739:3:64","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"13729:6:64","nodeType":"YulTypedName","src":"13729:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13767:5:64","nodeType":"YulIdentifier","src":"13767:5:64"},{"kind":"number","nativeSrc":"13774:4:64","nodeType":"YulLiteral","src":"13774:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13763:3:64","nodeType":"YulIdentifier","src":"13763:3:64"},"nativeSrc":"13763:16:64","nodeType":"YulFunctionCall","src":"13763:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13805:9:64","nodeType":"YulIdentifier","src":"13805:9:64"},{"name":"offset","nativeSrc":"13816:6:64","nodeType":"YulIdentifier","src":"13816:6:64"}],"functionName":{"name":"add","nativeSrc":"13801:3:64","nodeType":"YulIdentifier","src":"13801:3:64"},"nativeSrc":"13801:22:64","nodeType":"YulFunctionCall","src":"13801:22:64"},{"name":"end","nativeSrc":"13825:3:64","nodeType":"YulIdentifier","src":"13825:3:64"}],"functionName":{"name":"abi_decode_t_uint64","nativeSrc":"13781:19:64","nodeType":"YulIdentifier","src":"13781:19:64"},"nativeSrc":"13781:48:64","nodeType":"YulFunctionCall","src":"13781:48:64"}],"functionName":{"name":"mstore","nativeSrc":"13756:6:64","nodeType":"YulIdentifier","src":"13756:6:64"},"nativeSrc":"13756:74:64","nodeType":"YulFunctionCall","src":"13756:74:64"},"nativeSrc":"13756:74:64","nodeType":"YulExpressionStatement","src":"13756:74:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$15766_memory_ptr","nativeSrc":"12590:1258:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12650:9:64","nodeType":"YulTypedName","src":"12650:9:64","type":""},{"name":"end","nativeSrc":"12661:3:64","nodeType":"YulTypedName","src":"12661:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12669:5:64","nodeType":"YulTypedName","src":"12669:5:64","type":""}],"src":"12590:1258:64"},{"body":{"nativeSrc":"13950:453:64","nodeType":"YulBlock","src":"13950:453:64","statements":[{"body":{"nativeSrc":"13996:83:64","nodeType":"YulBlock","src":"13996:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"13998:77:64","nodeType":"YulIdentifier","src":"13998:77:64"},"nativeSrc":"13998:79:64","nodeType":"YulFunctionCall","src":"13998:79:64"},"nativeSrc":"13998:79:64","nodeType":"YulExpressionStatement","src":"13998:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"13971:7:64","nodeType":"YulIdentifier","src":"13971:7:64"},{"name":"headStart","nativeSrc":"13980:9:64","nodeType":"YulIdentifier","src":"13980:9:64"}],"functionName":{"name":"sub","nativeSrc":"13967:3:64","nodeType":"YulIdentifier","src":"13967:3:64"},"nativeSrc":"13967:23:64","nodeType":"YulFunctionCall","src":"13967:23:64"},{"kind":"number","nativeSrc":"13992:2:64","nodeType":"YulLiteral","src":"13992:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"13963:3:64","nodeType":"YulIdentifier","src":"13963:3:64"},"nativeSrc":"13963:32:64","nodeType":"YulFunctionCall","src":"13963:32:64"},"nativeSrc":"13960:119:64","nodeType":"YulIf","src":"13960:119:64"},{"nativeSrc":"14089:307:64","nodeType":"YulBlock","src":"14089:307:64","statements":[{"nativeSrc":"14104:45:64","nodeType":"YulVariableDeclaration","src":"14104:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14135:9:64","nodeType":"YulIdentifier","src":"14135:9:64"},{"kind":"number","nativeSrc":"14146:1:64","nodeType":"YulLiteral","src":"14146:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14131:3:64","nodeType":"YulIdentifier","src":"14131:3:64"},"nativeSrc":"14131:17:64","nodeType":"YulFunctionCall","src":"14131:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"14118:12:64","nodeType":"YulIdentifier","src":"14118:12:64"},"nativeSrc":"14118:31:64","nodeType":"YulFunctionCall","src":"14118:31:64"},"variables":[{"name":"offset","nativeSrc":"14108:6:64","nodeType":"YulTypedName","src":"14108:6:64","type":""}]},{"body":{"nativeSrc":"14196:83:64","nodeType":"YulBlock","src":"14196:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"14198:77:64","nodeType":"YulIdentifier","src":"14198:77:64"},"nativeSrc":"14198:79:64","nodeType":"YulFunctionCall","src":"14198:79:64"},"nativeSrc":"14198:79:64","nodeType":"YulExpressionStatement","src":"14198:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14168:6:64","nodeType":"YulIdentifier","src":"14168:6:64"},{"kind":"number","nativeSrc":"14176:18:64","nodeType":"YulLiteral","src":"14176:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14165:2:64","nodeType":"YulIdentifier","src":"14165:2:64"},"nativeSrc":"14165:30:64","nodeType":"YulFunctionCall","src":"14165:30:64"},"nativeSrc":"14162:117:64","nodeType":"YulIf","src":"14162:117:64"},{"nativeSrc":"14293:93:64","nodeType":"YulAssignment","src":"14293:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14358:9:64","nodeType":"YulIdentifier","src":"14358:9:64"},{"name":"offset","nativeSrc":"14369:6:64","nodeType":"YulIdentifier","src":"14369:6:64"}],"functionName":{"name":"add","nativeSrc":"14354:3:64","nodeType":"YulIdentifier","src":"14354:3:64"},"nativeSrc":"14354:22:64","nodeType":"YulFunctionCall","src":"14354:22:64"},{"name":"dataEnd","nativeSrc":"14378:7:64","nodeType":"YulIdentifier","src":"14378:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$15766_memory_ptr","nativeSrc":"14303:50:64","nodeType":"YulIdentifier","src":"14303:50:64"},"nativeSrc":"14303:83:64","nodeType":"YulFunctionCall","src":"14303:83:64"},"variableNames":[{"name":"value0","nativeSrc":"14293:6:64","nodeType":"YulIdentifier","src":"14293:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$15766_memory_ptr","nativeSrc":"13854:549:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13920:9:64","nodeType":"YulTypedName","src":"13920:9:64","type":""},{"name":"dataEnd","nativeSrc":"13931:7:64","nodeType":"YulTypedName","src":"13931:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"13943:6:64","nodeType":"YulTypedName","src":"13943:6:64","type":""}],"src":"13854:549:64"},{"body":{"nativeSrc":"14467:56:64","nodeType":"YulBlock","src":"14467:56:64","statements":[{"body":{"nativeSrc":"14501:16:64","nodeType":"YulBlock","src":"14501:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14510:1:64","nodeType":"YulLiteral","src":"14510:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"14513:1:64","nodeType":"YulLiteral","src":"14513:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14503:6:64","nodeType":"YulIdentifier","src":"14503:6:64"},"nativeSrc":"14503:12:64","nodeType":"YulFunctionCall","src":"14503:12:64"},"nativeSrc":"14503:12:64","nodeType":"YulExpressionStatement","src":"14503:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14490:5:64","nodeType":"YulIdentifier","src":"14490:5:64"},{"kind":"number","nativeSrc":"14497:1:64","nodeType":"YulLiteral","src":"14497:1:64","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"14487:2:64","nodeType":"YulIdentifier","src":"14487:2:64"},"nativeSrc":"14487:12:64","nodeType":"YulFunctionCall","src":"14487:12:64"}],"functionName":{"name":"iszero","nativeSrc":"14480:6:64","nodeType":"YulIdentifier","src":"14480:6:64"},"nativeSrc":"14480:20:64","nodeType":"YulFunctionCall","src":"14480:20:64"},"nativeSrc":"14477:40:64","nodeType":"YulIf","src":"14477:40:64"}]},"name":"validator_revert_t_enum$_AssetType_$15450","nativeSrc":"14409:114:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14460:5:64","nodeType":"YulTypedName","src":"14460:5:64","type":""}],"src":"14409:114:64"},{"body":{"nativeSrc":"14596:102:64","nodeType":"YulBlock","src":"14596:102:64","statements":[{"nativeSrc":"14606:29:64","nodeType":"YulAssignment","src":"14606:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"14628:6:64","nodeType":"YulIdentifier","src":"14628:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"14615:12:64","nodeType":"YulIdentifier","src":"14615:12:64"},"nativeSrc":"14615:20:64","nodeType":"YulFunctionCall","src":"14615:20:64"},"variableNames":[{"name":"value","nativeSrc":"14606:5:64","nodeType":"YulIdentifier","src":"14606:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14686:5:64","nodeType":"YulIdentifier","src":"14686:5:64"}],"functionName":{"name":"validator_revert_t_enum$_AssetType_$15450","nativeSrc":"14644:41:64","nodeType":"YulIdentifier","src":"14644:41:64"},"nativeSrc":"14644:48:64","nodeType":"YulFunctionCall","src":"14644:48:64"},"nativeSrc":"14644:48:64","nodeType":"YulExpressionStatement","src":"14644:48:64"}]},"name":"abi_decode_t_enum$_AssetType_$15450","nativeSrc":"14529:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14574:6:64","nodeType":"YulTypedName","src":"14574:6:64","type":""},{"name":"end","nativeSrc":"14582:3:64","nodeType":"YulTypedName","src":"14582:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14590:5:64","nodeType":"YulTypedName","src":"14590:5:64","type":""}],"src":"14529:169:64"},{"body":{"nativeSrc":"14793:28:64","nodeType":"YulBlock","src":"14793:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14810:1:64","nodeType":"YulLiteral","src":"14810:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"14813:1:64","nodeType":"YulLiteral","src":"14813:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"14803:6:64","nodeType":"YulIdentifier","src":"14803:6:64"},"nativeSrc":"14803:12:64","nodeType":"YulFunctionCall","src":"14803:12:64"},"nativeSrc":"14803:12:64","nodeType":"YulExpressionStatement","src":"14803:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14704:117:64","nodeType":"YulFunctionDefinition","src":"14704:117:64"},{"body":{"nativeSrc":"14893:241:64","nodeType":"YulBlock","src":"14893:241:64","statements":[{"body":{"nativeSrc":"14998:22:64","nodeType":"YulBlock","src":"14998:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"15000:16:64","nodeType":"YulIdentifier","src":"15000:16:64"},"nativeSrc":"15000:18:64","nodeType":"YulFunctionCall","src":"15000:18:64"},"nativeSrc":"15000:18:64","nodeType":"YulExpressionStatement","src":"15000:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14970:6:64","nodeType":"YulIdentifier","src":"14970:6:64"},{"kind":"number","nativeSrc":"14978:18:64","nodeType":"YulLiteral","src":"14978:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14967:2:64","nodeType":"YulIdentifier","src":"14967:2:64"},"nativeSrc":"14967:30:64","nodeType":"YulFunctionCall","src":"14967:30:64"},"nativeSrc":"14964:56:64","nodeType":"YulIf","src":"14964:56:64"},{"nativeSrc":"15030:37:64","nodeType":"YulAssignment","src":"15030:37:64","value":{"arguments":[{"name":"length","nativeSrc":"15060:6:64","nodeType":"YulIdentifier","src":"15060:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15038:21:64","nodeType":"YulIdentifier","src":"15038:21:64"},"nativeSrc":"15038:29:64","nodeType":"YulFunctionCall","src":"15038:29:64"},"variableNames":[{"name":"size","nativeSrc":"15030:4:64","nodeType":"YulIdentifier","src":"15030:4:64"}]},{"nativeSrc":"15104:23:64","nodeType":"YulAssignment","src":"15104:23:64","value":{"arguments":[{"name":"size","nativeSrc":"15116:4:64","nodeType":"YulIdentifier","src":"15116:4:64"},{"kind":"number","nativeSrc":"15122:4:64","nodeType":"YulLiteral","src":"15122:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15112:3:64","nodeType":"YulIdentifier","src":"15112:3:64"},"nativeSrc":"15112:15:64","nodeType":"YulFunctionCall","src":"15112:15:64"},"variableNames":[{"name":"size","nativeSrc":"15104:4:64","nodeType":"YulIdentifier","src":"15104:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14827:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"14877:6:64","nodeType":"YulTypedName","src":"14877:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"14888:4:64","nodeType":"YulTypedName","src":"14888:4:64","type":""}],"src":"14827:307:64"},{"body":{"nativeSrc":"15204:84:64","nodeType":"YulBlock","src":"15204:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"15228:3:64","nodeType":"YulIdentifier","src":"15228:3:64"},{"name":"src","nativeSrc":"15233:3:64","nodeType":"YulIdentifier","src":"15233:3:64"},{"name":"length","nativeSrc":"15238:6:64","nodeType":"YulIdentifier","src":"15238:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"15215:12:64","nodeType":"YulIdentifier","src":"15215:12:64"},"nativeSrc":"15215:30:64","nodeType":"YulFunctionCall","src":"15215:30:64"},"nativeSrc":"15215:30:64","nodeType":"YulExpressionStatement","src":"15215:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"15265:3:64","nodeType":"YulIdentifier","src":"15265:3:64"},{"name":"length","nativeSrc":"15270:6:64","nodeType":"YulIdentifier","src":"15270:6:64"}],"functionName":{"name":"add","nativeSrc":"15261:3:64","nodeType":"YulIdentifier","src":"15261:3:64"},"nativeSrc":"15261:16:64","nodeType":"YulFunctionCall","src":"15261:16:64"},{"kind":"number","nativeSrc":"15279:1:64","nodeType":"YulLiteral","src":"15279:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15254:6:64","nodeType":"YulIdentifier","src":"15254:6:64"},"nativeSrc":"15254:27:64","nodeType":"YulFunctionCall","src":"15254:27:64"},"nativeSrc":"15254:27:64","nodeType":"YulExpressionStatement","src":"15254:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15140:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15186:3:64","nodeType":"YulTypedName","src":"15186:3:64","type":""},{"name":"dst","nativeSrc":"15191:3:64","nodeType":"YulTypedName","src":"15191:3:64","type":""},{"name":"length","nativeSrc":"15196:6:64","nodeType":"YulTypedName","src":"15196:6:64","type":""}],"src":"15140:148:64"},{"body":{"nativeSrc":"15377:340:64","nodeType":"YulBlock","src":"15377:340:64","statements":[{"nativeSrc":"15387:74:64","nodeType":"YulAssignment","src":"15387:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"15453:6:64","nodeType":"YulIdentifier","src":"15453:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"15412:40:64","nodeType":"YulIdentifier","src":"15412:40:64"},"nativeSrc":"15412:48:64","nodeType":"YulFunctionCall","src":"15412:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"15396:15:64","nodeType":"YulIdentifier","src":"15396:15:64"},"nativeSrc":"15396:65:64","nodeType":"YulFunctionCall","src":"15396:65:64"},"variableNames":[{"name":"array","nativeSrc":"15387:5:64","nodeType":"YulIdentifier","src":"15387:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"15477:5:64","nodeType":"YulIdentifier","src":"15477:5:64"},{"name":"length","nativeSrc":"15484:6:64","nodeType":"YulIdentifier","src":"15484:6:64"}],"functionName":{"name":"mstore","nativeSrc":"15470:6:64","nodeType":"YulIdentifier","src":"15470:6:64"},"nativeSrc":"15470:21:64","nodeType":"YulFunctionCall","src":"15470:21:64"},"nativeSrc":"15470:21:64","nodeType":"YulExpressionStatement","src":"15470:21:64"},{"nativeSrc":"15500:27:64","nodeType":"YulVariableDeclaration","src":"15500:27:64","value":{"arguments":[{"name":"array","nativeSrc":"15515:5:64","nodeType":"YulIdentifier","src":"15515:5:64"},{"kind":"number","nativeSrc":"15522:4:64","nodeType":"YulLiteral","src":"15522:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15511:3:64","nodeType":"YulIdentifier","src":"15511:3:64"},"nativeSrc":"15511:16:64","nodeType":"YulFunctionCall","src":"15511:16:64"},"variables":[{"name":"dst","nativeSrc":"15504:3:64","nodeType":"YulTypedName","src":"15504:3:64","type":""}]},{"body":{"nativeSrc":"15565:83:64","nodeType":"YulBlock","src":"15565:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"15567:77:64","nodeType":"YulIdentifier","src":"15567:77:64"},"nativeSrc":"15567:79:64","nodeType":"YulFunctionCall","src":"15567:79:64"},"nativeSrc":"15567:79:64","nodeType":"YulExpressionStatement","src":"15567:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15546:3:64","nodeType":"YulIdentifier","src":"15546:3:64"},{"name":"length","nativeSrc":"15551:6:64","nodeType":"YulIdentifier","src":"15551:6:64"}],"functionName":{"name":"add","nativeSrc":"15542:3:64","nodeType":"YulIdentifier","src":"15542:3:64"},"nativeSrc":"15542:16:64","nodeType":"YulFunctionCall","src":"15542:16:64"},{"name":"end","nativeSrc":"15560:3:64","nodeType":"YulIdentifier","src":"15560:3:64"}],"functionName":{"name":"gt","nativeSrc":"15539:2:64","nodeType":"YulIdentifier","src":"15539:2:64"},"nativeSrc":"15539:25:64","nodeType":"YulFunctionCall","src":"15539:25:64"},"nativeSrc":"15536:112:64","nodeType":"YulIf","src":"15536:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"15694:3:64","nodeType":"YulIdentifier","src":"15694:3:64"},{"name":"dst","nativeSrc":"15699:3:64","nodeType":"YulIdentifier","src":"15699:3:64"},{"name":"length","nativeSrc":"15704:6:64","nodeType":"YulIdentifier","src":"15704:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15657:36:64","nodeType":"YulIdentifier","src":"15657:36:64"},"nativeSrc":"15657:54:64","nodeType":"YulFunctionCall","src":"15657:54:64"},"nativeSrc":"15657:54:64","nodeType":"YulExpressionStatement","src":"15657:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15294:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15350:3:64","nodeType":"YulTypedName","src":"15350:3:64","type":""},{"name":"length","nativeSrc":"15355:6:64","nodeType":"YulTypedName","src":"15355:6:64","type":""},{"name":"end","nativeSrc":"15363:3:64","nodeType":"YulTypedName","src":"15363:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15371:5:64","nodeType":"YulTypedName","src":"15371:5:64","type":""}],"src":"15294:423:64"},{"body":{"nativeSrc":"15797:277:64","nodeType":"YulBlock","src":"15797:277:64","statements":[{"body":{"nativeSrc":"15846:83:64","nodeType":"YulBlock","src":"15846:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"15848:77:64","nodeType":"YulIdentifier","src":"15848:77:64"},"nativeSrc":"15848:79:64","nodeType":"YulFunctionCall","src":"15848:79:64"},"nativeSrc":"15848:79:64","nodeType":"YulExpressionStatement","src":"15848:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"15825:6:64","nodeType":"YulIdentifier","src":"15825:6:64"},{"kind":"number","nativeSrc":"15833:4:64","nodeType":"YulLiteral","src":"15833:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"15821:3:64","nodeType":"YulIdentifier","src":"15821:3:64"},"nativeSrc":"15821:17:64","nodeType":"YulFunctionCall","src":"15821:17:64"},{"name":"end","nativeSrc":"15840:3:64","nodeType":"YulIdentifier","src":"15840:3:64"}],"functionName":{"name":"slt","nativeSrc":"15817:3:64","nodeType":"YulIdentifier","src":"15817:3:64"},"nativeSrc":"15817:27:64","nodeType":"YulFunctionCall","src":"15817:27:64"}],"functionName":{"name":"iszero","nativeSrc":"15810:6:64","nodeType":"YulIdentifier","src":"15810:6:64"},"nativeSrc":"15810:35:64","nodeType":"YulFunctionCall","src":"15810:35:64"},"nativeSrc":"15807:122:64","nodeType":"YulIf","src":"15807:122:64"},{"nativeSrc":"15938:34:64","nodeType":"YulVariableDeclaration","src":"15938:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"15965:6:64","nodeType":"YulIdentifier","src":"15965:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"15952:12:64","nodeType":"YulIdentifier","src":"15952:12:64"},"nativeSrc":"15952:20:64","nodeType":"YulFunctionCall","src":"15952:20:64"},"variables":[{"name":"length","nativeSrc":"15942:6:64","nodeType":"YulTypedName","src":"15942:6:64","type":""}]},{"nativeSrc":"15981:87:64","nodeType":"YulAssignment","src":"15981:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"16041:6:64","nodeType":"YulIdentifier","src":"16041:6:64"},{"kind":"number","nativeSrc":"16049:4:64","nodeType":"YulLiteral","src":"16049:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16037:3:64","nodeType":"YulIdentifier","src":"16037:3:64"},"nativeSrc":"16037:17:64","nodeType":"YulFunctionCall","src":"16037:17:64"},{"name":"length","nativeSrc":"16056:6:64","nodeType":"YulIdentifier","src":"16056:6:64"},{"name":"end","nativeSrc":"16064:3:64","nodeType":"YulIdentifier","src":"16064:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15990:46:64","nodeType":"YulIdentifier","src":"15990:46:64"},"nativeSrc":"15990:78:64","nodeType":"YulFunctionCall","src":"15990:78:64"},"variableNames":[{"name":"array","nativeSrc":"15981:5:64","nodeType":"YulIdentifier","src":"15981:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15736:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15775:6:64","nodeType":"YulTypedName","src":"15775:6:64","type":""},{"name":"end","nativeSrc":"15783:3:64","nodeType":"YulTypedName","src":"15783:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15791:5:64","nodeType":"YulTypedName","src":"15791:5:64","type":""}],"src":"15736:338:64"},{"body":{"nativeSrc":"16192:1008:64","nodeType":"YulBlock","src":"16192:1008:64","statements":[{"body":{"nativeSrc":"16236:83:64","nodeType":"YulBlock","src":"16236:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"16238:77:64","nodeType":"YulIdentifier","src":"16238:77:64"},"nativeSrc":"16238:79:64","nodeType":"YulFunctionCall","src":"16238:79:64"},"nativeSrc":"16238:79:64","nodeType":"YulExpressionStatement","src":"16238:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"16213:3:64","nodeType":"YulIdentifier","src":"16213:3:64"},{"name":"headStart","nativeSrc":"16218:9:64","nodeType":"YulIdentifier","src":"16218:9:64"}],"functionName":{"name":"sub","nativeSrc":"16209:3:64","nodeType":"YulIdentifier","src":"16209:3:64"},"nativeSrc":"16209:19:64","nodeType":"YulFunctionCall","src":"16209:19:64"},{"kind":"number","nativeSrc":"16230:4:64","nodeType":"YulLiteral","src":"16230:4:64","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"16205:3:64","nodeType":"YulIdentifier","src":"16205:3:64"},"nativeSrc":"16205:30:64","nodeType":"YulFunctionCall","src":"16205:30:64"},"nativeSrc":"16202:117:64","nodeType":"YulIf","src":"16202:117:64"},{"nativeSrc":"16328:30:64","nodeType":"YulAssignment","src":"16328:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"16353:4:64","nodeType":"YulLiteral","src":"16353:4:64","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"16337:15:64","nodeType":"YulIdentifier","src":"16337:15:64"},"nativeSrc":"16337:21:64","nodeType":"YulFunctionCall","src":"16337:21:64"},"variableNames":[{"name":"value","nativeSrc":"16328:5:64","nodeType":"YulIdentifier","src":"16328:5:64"}]},{"nativeSrc":"16368:170:64","nodeType":"YulBlock","src":"16368:170:64","statements":[{"nativeSrc":"16408:15:64","nodeType":"YulVariableDeclaration","src":"16408:15:64","value":{"kind":"number","nativeSrc":"16422:1:64","nodeType":"YulLiteral","src":"16422:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16412:6:64","nodeType":"YulTypedName","src":"16412:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16448:5:64","nodeType":"YulIdentifier","src":"16448:5:64"},{"kind":"number","nativeSrc":"16455:4:64","nodeType":"YulLiteral","src":"16455:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16444:3:64","nodeType":"YulIdentifier","src":"16444:3:64"},"nativeSrc":"16444:16:64","nodeType":"YulFunctionCall","src":"16444:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16502:9:64","nodeType":"YulIdentifier","src":"16502:9:64"},{"name":"offset","nativeSrc":"16513:6:64","nodeType":"YulIdentifier","src":"16513:6:64"}],"functionName":{"name":"add","nativeSrc":"16498:3:64","nodeType":"YulIdentifier","src":"16498:3:64"},"nativeSrc":"16498:22:64","nodeType":"YulFunctionCall","src":"16498:22:64"},{"name":"end","nativeSrc":"16522:3:64","nodeType":"YulIdentifier","src":"16522:3:64"}],"functionName":{"name":"abi_decode_t_enum$_AssetType_$15450","nativeSrc":"16462:35:64","nodeType":"YulIdentifier","src":"16462:35:64"},"nativeSrc":"16462:64:64","nodeType":"YulFunctionCall","src":"16462:64:64"}],"functionName":{"name":"mstore","nativeSrc":"16437:6:64","nodeType":"YulIdentifier","src":"16437:6:64"},"nativeSrc":"16437:90:64","nodeType":"YulFunctionCall","src":"16437:90:64"},"nativeSrc":"16437:90:64","nodeType":"YulExpressionStatement","src":"16437:90:64"}]},{"nativeSrc":"16548:152:64","nodeType":"YulBlock","src":"16548:152:64","statements":[{"nativeSrc":"16584:16:64","nodeType":"YulVariableDeclaration","src":"16584:16:64","value":{"kind":"number","nativeSrc":"16598:2:64","nodeType":"YulLiteral","src":"16598:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16588:6:64","nodeType":"YulTypedName","src":"16588:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16625:5:64","nodeType":"YulIdentifier","src":"16625:5:64"},{"kind":"number","nativeSrc":"16632:4:64","nodeType":"YulLiteral","src":"16632:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16621:3:64","nodeType":"YulIdentifier","src":"16621:3:64"},"nativeSrc":"16621:16:64","nodeType":"YulFunctionCall","src":"16621:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16664:9:64","nodeType":"YulIdentifier","src":"16664:9:64"},{"name":"offset","nativeSrc":"16675:6:64","nodeType":"YulIdentifier","src":"16675:6:64"}],"functionName":{"name":"add","nativeSrc":"16660:3:64","nodeType":"YulIdentifier","src":"16660:3:64"},"nativeSrc":"16660:22:64","nodeType":"YulFunctionCall","src":"16660:22:64"},{"name":"end","nativeSrc":"16684:3:64","nodeType":"YulIdentifier","src":"16684:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16639:20:64","nodeType":"YulIdentifier","src":"16639:20:64"},"nativeSrc":"16639:49:64","nodeType":"YulFunctionCall","src":"16639:49:64"}],"functionName":{"name":"mstore","nativeSrc":"16614:6:64","nodeType":"YulIdentifier","src":"16614:6:64"},"nativeSrc":"16614:75:64","nodeType":"YulFunctionCall","src":"16614:75:64"},"nativeSrc":"16614:75:64","nodeType":"YulExpressionStatement","src":"16614:75:64"}]},{"nativeSrc":"16710:153:64","nodeType":"YulBlock","src":"16710:153:64","statements":[{"nativeSrc":"16747:16:64","nodeType":"YulVariableDeclaration","src":"16747:16:64","value":{"kind":"number","nativeSrc":"16761:2:64","nodeType":"YulLiteral","src":"16761:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16751:6:64","nodeType":"YulTypedName","src":"16751:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16788:5:64","nodeType":"YulIdentifier","src":"16788:5:64"},{"kind":"number","nativeSrc":"16795:4:64","nodeType":"YulLiteral","src":"16795:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16784:3:64","nodeType":"YulIdentifier","src":"16784:3:64"},"nativeSrc":"16784:16:64","nodeType":"YulFunctionCall","src":"16784:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16827:9:64","nodeType":"YulIdentifier","src":"16827:9:64"},{"name":"offset","nativeSrc":"16838:6:64","nodeType":"YulIdentifier","src":"16838:6:64"}],"functionName":{"name":"add","nativeSrc":"16823:3:64","nodeType":"YulIdentifier","src":"16823:3:64"},"nativeSrc":"16823:22:64","nodeType":"YulFunctionCall","src":"16823:22:64"},{"name":"end","nativeSrc":"16847:3:64","nodeType":"YulIdentifier","src":"16847:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16802:20:64","nodeType":"YulIdentifier","src":"16802:20:64"},"nativeSrc":"16802:49:64","nodeType":"YulFunctionCall","src":"16802:49:64"}],"functionName":{"name":"mstore","nativeSrc":"16777:6:64","nodeType":"YulIdentifier","src":"16777:6:64"},"nativeSrc":"16777:75:64","nodeType":"YulFunctionCall","src":"16777:75:64"},"nativeSrc":"16777:75:64","nodeType":"YulExpressionStatement","src":"16777:75:64"}]},{"nativeSrc":"16873:320:64","nodeType":"YulBlock","src":"16873:320:64","statements":[{"nativeSrc":"16908:46:64","nodeType":"YulVariableDeclaration","src":"16908:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16939:9:64","nodeType":"YulIdentifier","src":"16939:9:64"},{"kind":"number","nativeSrc":"16950:2:64","nodeType":"YulLiteral","src":"16950:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"16935:3:64","nodeType":"YulIdentifier","src":"16935:3:64"},"nativeSrc":"16935:18:64","nodeType":"YulFunctionCall","src":"16935:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"16922:12:64","nodeType":"YulIdentifier","src":"16922:12:64"},"nativeSrc":"16922:32:64","nodeType":"YulFunctionCall","src":"16922:32:64"},"variables":[{"name":"offset","nativeSrc":"16912:6:64","nodeType":"YulTypedName","src":"16912:6:64","type":""}]},{"body":{"nativeSrc":"17001:83:64","nodeType":"YulBlock","src":"17001:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"17003:77:64","nodeType":"YulIdentifier","src":"17003:77:64"},"nativeSrc":"17003:79:64","nodeType":"YulFunctionCall","src":"17003:79:64"},"nativeSrc":"17003:79:64","nodeType":"YulExpressionStatement","src":"17003:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16973:6:64","nodeType":"YulIdentifier","src":"16973:6:64"},{"kind":"number","nativeSrc":"16981:18:64","nodeType":"YulLiteral","src":"16981:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16970:2:64","nodeType":"YulIdentifier","src":"16970:2:64"},"nativeSrc":"16970:30:64","nodeType":"YulFunctionCall","src":"16970:30:64"},"nativeSrc":"16967:117:64","nodeType":"YulIf","src":"16967:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17109:5:64","nodeType":"YulIdentifier","src":"17109:5:64"},{"kind":"number","nativeSrc":"17116:4:64","nodeType":"YulLiteral","src":"17116:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17105:3:64","nodeType":"YulIdentifier","src":"17105:3:64"},"nativeSrc":"17105:16:64","nodeType":"YulFunctionCall","src":"17105:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17157:9:64","nodeType":"YulIdentifier","src":"17157:9:64"},{"name":"offset","nativeSrc":"17168:6:64","nodeType":"YulIdentifier","src":"17168:6:64"}],"functionName":{"name":"add","nativeSrc":"17153:3:64","nodeType":"YulIdentifier","src":"17153:3:64"},"nativeSrc":"17153:22:64","nodeType":"YulFunctionCall","src":"17153:22:64"},{"name":"end","nativeSrc":"17177:3:64","nodeType":"YulIdentifier","src":"17177:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17123:29:64","nodeType":"YulIdentifier","src":"17123:29:64"},"nativeSrc":"17123:58:64","nodeType":"YulFunctionCall","src":"17123:58:64"}],"functionName":{"name":"mstore","nativeSrc":"17098:6:64","nodeType":"YulIdentifier","src":"17098:6:64"},"nativeSrc":"17098:84:64","nodeType":"YulFunctionCall","src":"17098:84:64"},"nativeSrc":"17098:84:64","nodeType":"YulExpressionStatement","src":"17098:84:64"}]}]},"name":"abi_decode_t_struct$_Transfer_$15461_memory_ptr","nativeSrc":"16110:1090:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16167:9:64","nodeType":"YulTypedName","src":"16167:9:64","type":""},{"name":"end","nativeSrc":"16178:3:64","nodeType":"YulTypedName","src":"16178:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16186:5:64","nodeType":"YulTypedName","src":"16186:5:64","type":""}],"src":"16110:1090:64"},{"body":{"nativeSrc":"17299:450:64","nodeType":"YulBlock","src":"17299:450:64","statements":[{"body":{"nativeSrc":"17345:83:64","nodeType":"YulBlock","src":"17345:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17347:77:64","nodeType":"YulIdentifier","src":"17347:77:64"},"nativeSrc":"17347:79:64","nodeType":"YulFunctionCall","src":"17347:79:64"},"nativeSrc":"17347:79:64","nodeType":"YulExpressionStatement","src":"17347:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17320:7:64","nodeType":"YulIdentifier","src":"17320:7:64"},{"name":"headStart","nativeSrc":"17329:9:64","nodeType":"YulIdentifier","src":"17329:9:64"}],"functionName":{"name":"sub","nativeSrc":"17316:3:64","nodeType":"YulIdentifier","src":"17316:3:64"},"nativeSrc":"17316:23:64","nodeType":"YulFunctionCall","src":"17316:23:64"},{"kind":"number","nativeSrc":"17341:2:64","nodeType":"YulLiteral","src":"17341:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17312:3:64","nodeType":"YulIdentifier","src":"17312:3:64"},"nativeSrc":"17312:32:64","nodeType":"YulFunctionCall","src":"17312:32:64"},"nativeSrc":"17309:119:64","nodeType":"YulIf","src":"17309:119:64"},{"nativeSrc":"17438:304:64","nodeType":"YulBlock","src":"17438:304:64","statements":[{"nativeSrc":"17453:45:64","nodeType":"YulVariableDeclaration","src":"17453:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17484:9:64","nodeType":"YulIdentifier","src":"17484:9:64"},{"kind":"number","nativeSrc":"17495:1:64","nodeType":"YulLiteral","src":"17495:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17480:3:64","nodeType":"YulIdentifier","src":"17480:3:64"},"nativeSrc":"17480:17:64","nodeType":"YulFunctionCall","src":"17480:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"17467:12:64","nodeType":"YulIdentifier","src":"17467:12:64"},"nativeSrc":"17467:31:64","nodeType":"YulFunctionCall","src":"17467:31:64"},"variables":[{"name":"offset","nativeSrc":"17457:6:64","nodeType":"YulTypedName","src":"17457:6:64","type":""}]},{"body":{"nativeSrc":"17545:83:64","nodeType":"YulBlock","src":"17545:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17547:77:64","nodeType":"YulIdentifier","src":"17547:77:64"},"nativeSrc":"17547:79:64","nodeType":"YulFunctionCall","src":"17547:79:64"},"nativeSrc":"17547:79:64","nodeType":"YulExpressionStatement","src":"17547:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17517:6:64","nodeType":"YulIdentifier","src":"17517:6:64"},{"kind":"number","nativeSrc":"17525:18:64","nodeType":"YulLiteral","src":"17525:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17514:2:64","nodeType":"YulIdentifier","src":"17514:2:64"},"nativeSrc":"17514:30:64","nodeType":"YulFunctionCall","src":"17514:30:64"},"nativeSrc":"17511:117:64","nodeType":"YulIf","src":"17511:117:64"},{"nativeSrc":"17642:90:64","nodeType":"YulAssignment","src":"17642:90:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17704:9:64","nodeType":"YulIdentifier","src":"17704:9:64"},{"name":"offset","nativeSrc":"17715:6:64","nodeType":"YulIdentifier","src":"17715:6:64"}],"functionName":{"name":"add","nativeSrc":"17700:3:64","nodeType":"YulIdentifier","src":"17700:3:64"},"nativeSrc":"17700:22:64","nodeType":"YulFunctionCall","src":"17700:22:64"},{"name":"dataEnd","nativeSrc":"17724:7:64","nodeType":"YulIdentifier","src":"17724:7:64"}],"functionName":{"name":"abi_decode_t_struct$_Transfer_$15461_memory_ptr","nativeSrc":"17652:47:64","nodeType":"YulIdentifier","src":"17652:47:64"},"nativeSrc":"17652:80:64","nodeType":"YulFunctionCall","src":"17652:80:64"},"variableNames":[{"name":"value0","nativeSrc":"17642:6:64","nodeType":"YulIdentifier","src":"17642:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_Transfer_$15461_memory_ptr","nativeSrc":"17206:543:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17269:9:64","nodeType":"YulTypedName","src":"17269:9:64","type":""},{"name":"dataEnd","nativeSrc":"17280:7:64","nodeType":"YulTypedName","src":"17280:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17292:6:64","nodeType":"YulTypedName","src":"17292:6:64","type":""}],"src":"17206:543:64"},{"body":{"nativeSrc":"17783:152:64","nodeType":"YulBlock","src":"17783:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17800:1:64","nodeType":"YulLiteral","src":"17800:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17803:77:64","nodeType":"YulLiteral","src":"17803:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17793:6:64","nodeType":"YulIdentifier","src":"17793:6:64"},"nativeSrc":"17793:88:64","nodeType":"YulFunctionCall","src":"17793:88:64"},"nativeSrc":"17793:88:64","nodeType":"YulExpressionStatement","src":"17793:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17897:1:64","nodeType":"YulLiteral","src":"17897:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"17900:4:64","nodeType":"YulLiteral","src":"17900:4:64","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"17890:6:64","nodeType":"YulIdentifier","src":"17890:6:64"},"nativeSrc":"17890:15:64","nodeType":"YulFunctionCall","src":"17890:15:64"},"nativeSrc":"17890:15:64","nodeType":"YulExpressionStatement","src":"17890:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17921:1:64","nodeType":"YulLiteral","src":"17921:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17924:4:64","nodeType":"YulLiteral","src":"17924:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17914:6:64","nodeType":"YulIdentifier","src":"17914:6:64"},"nativeSrc":"17914:15:64","nodeType":"YulFunctionCall","src":"17914:15:64"},"nativeSrc":"17914:15:64","nodeType":"YulExpressionStatement","src":"17914:15:64"}]},"name":"panic_error_0x21","nativeSrc":"17755:180:64","nodeType":"YulFunctionDefinition","src":"17755:180:64"},{"body":{"nativeSrc":"17984:79:64","nodeType":"YulBlock","src":"17984:79:64","statements":[{"body":{"nativeSrc":"18041:16:64","nodeType":"YulBlock","src":"18041:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18050:1:64","nodeType":"YulLiteral","src":"18050:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18053:1:64","nodeType":"YulLiteral","src":"18053:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"18043:6:64","nodeType":"YulIdentifier","src":"18043:6:64"},"nativeSrc":"18043:12:64","nodeType":"YulFunctionCall","src":"18043:12:64"},"nativeSrc":"18043:12:64","nodeType":"YulExpressionStatement","src":"18043:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18007:5:64","nodeType":"YulIdentifier","src":"18007:5:64"},{"arguments":[{"name":"value","nativeSrc":"18032:5:64","nodeType":"YulIdentifier","src":"18032:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"18014:17:64","nodeType":"YulIdentifier","src":"18014:17:64"},"nativeSrc":"18014:24:64","nodeType":"YulFunctionCall","src":"18014:24:64"}],"functionName":{"name":"eq","nativeSrc":"18004:2:64","nodeType":"YulIdentifier","src":"18004:2:64"},"nativeSrc":"18004:35:64","nodeType":"YulFunctionCall","src":"18004:35:64"}],"functionName":{"name":"iszero","nativeSrc":"17997:6:64","nodeType":"YulIdentifier","src":"17997:6:64"},"nativeSrc":"17997:43:64","nodeType":"YulFunctionCall","src":"17997:43:64"},"nativeSrc":"17994:63:64","nodeType":"YulIf","src":"17994:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"17941:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17977:5:64","nodeType":"YulTypedName","src":"17977:5:64","type":""}],"src":"17941:122:64"},{"body":{"nativeSrc":"18132:80:64","nodeType":"YulBlock","src":"18132:80:64","statements":[{"nativeSrc":"18142:22:64","nodeType":"YulAssignment","src":"18142:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"18157:6:64","nodeType":"YulIdentifier","src":"18157:6:64"}],"functionName":{"name":"mload","nativeSrc":"18151:5:64","nodeType":"YulIdentifier","src":"18151:5:64"},"nativeSrc":"18151:13:64","nodeType":"YulFunctionCall","src":"18151:13:64"},"variableNames":[{"name":"value","nativeSrc":"18142:5:64","nodeType":"YulIdentifier","src":"18142:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18200:5:64","nodeType":"YulIdentifier","src":"18200:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"18173:26:64","nodeType":"YulIdentifier","src":"18173:26:64"},"nativeSrc":"18173:33:64","nodeType":"YulFunctionCall","src":"18173:33:64"},"nativeSrc":"18173:33:64","nodeType":"YulExpressionStatement","src":"18173:33:64"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"18069:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18110:6:64","nodeType":"YulTypedName","src":"18110:6:64","type":""},{"name":"end","nativeSrc":"18118:3:64","nodeType":"YulTypedName","src":"18118:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18126:5:64","nodeType":"YulTypedName","src":"18126:5:64","type":""}],"src":"18069:143:64"},{"body":{"nativeSrc":"18355:346:64","nodeType":"YulBlock","src":"18355:346:64","statements":[{"body":{"nativeSrc":"18399:83:64","nodeType":"YulBlock","src":"18399:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18401:77:64","nodeType":"YulIdentifier","src":"18401:77:64"},"nativeSrc":"18401:79:64","nodeType":"YulFunctionCall","src":"18401:79:64"},"nativeSrc":"18401:79:64","nodeType":"YulExpressionStatement","src":"18401:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18376:3:64","nodeType":"YulIdentifier","src":"18376:3:64"},{"name":"headStart","nativeSrc":"18381:9:64","nodeType":"YulIdentifier","src":"18381:9:64"}],"functionName":{"name":"sub","nativeSrc":"18372:3:64","nodeType":"YulIdentifier","src":"18372:3:64"},"nativeSrc":"18372:19:64","nodeType":"YulFunctionCall","src":"18372:19:64"},{"kind":"number","nativeSrc":"18393:4:64","nodeType":"YulLiteral","src":"18393:4:64","type":"","value":"0x20"}],"functionName":{"name":"slt","nativeSrc":"18368:3:64","nodeType":"YulIdentifier","src":"18368:3:64"},"nativeSrc":"18368:30:64","nodeType":"YulFunctionCall","src":"18368:30:64"},"nativeSrc":"18365:117:64","nodeType":"YulIf","src":"18365:117:64"},{"nativeSrc":"18491:30:64","nodeType":"YulAssignment","src":"18491:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"18516:4:64","nodeType":"YulLiteral","src":"18516:4:64","type":"","value":"0x20"}],"functionName":{"name":"allocate_memory","nativeSrc":"18500:15:64","nodeType":"YulIdentifier","src":"18500:15:64"},"nativeSrc":"18500:21:64","nodeType":"YulFunctionCall","src":"18500:21:64"},"variableNames":[{"name":"value","nativeSrc":"18491:5:64","nodeType":"YulIdentifier","src":"18491:5:64"}]},{"nativeSrc":"18531:163:64","nodeType":"YulBlock","src":"18531:163:64","statements":[{"nativeSrc":"18568:15:64","nodeType":"YulVariableDeclaration","src":"18568:15:64","value":{"kind":"number","nativeSrc":"18582:1:64","nodeType":"YulLiteral","src":"18582:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18572:6:64","nodeType":"YulTypedName","src":"18572:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18608:5:64","nodeType":"YulIdentifier","src":"18608:5:64"},{"kind":"number","nativeSrc":"18615:4:64","nodeType":"YulLiteral","src":"18615:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18604:3:64","nodeType":"YulIdentifier","src":"18604:3:64"},"nativeSrc":"18604:16:64","nodeType":"YulFunctionCall","src":"18604:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18658:9:64","nodeType":"YulIdentifier","src":"18658:9:64"},{"name":"offset","nativeSrc":"18669:6:64","nodeType":"YulIdentifier","src":"18669:6:64"}],"functionName":{"name":"add","nativeSrc":"18654:3:64","nodeType":"YulIdentifier","src":"18654:3:64"},"nativeSrc":"18654:22:64","nodeType":"YulFunctionCall","src":"18654:22:64"},{"name":"end","nativeSrc":"18678:3:64","nodeType":"YulIdentifier","src":"18678:3:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"18622:31:64","nodeType":"YulIdentifier","src":"18622:31:64"},"nativeSrc":"18622:60:64","nodeType":"YulFunctionCall","src":"18622:60:64"}],"functionName":{"name":"mstore","nativeSrc":"18597:6:64","nodeType":"YulIdentifier","src":"18597:6:64"},"nativeSrc":"18597:86:64","nodeType":"YulFunctionCall","src":"18597:86:64"},"nativeSrc":"18597:86:64","nodeType":"YulExpressionStatement","src":"18597:86:64"}]}]},"name":"abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory","nativeSrc":"18255:446:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18330:9:64","nodeType":"YulTypedName","src":"18330:9:64","type":""},{"name":"end","nativeSrc":"18341:3:64","nodeType":"YulTypedName","src":"18341:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18349:5:64","nodeType":"YulTypedName","src":"18349:5:64","type":""}],"src":"18255:446:64"},{"body":{"nativeSrc":"18818:308:64","nodeType":"YulBlock","src":"18818:308:64","statements":[{"body":{"nativeSrc":"18864:83:64","nodeType":"YulBlock","src":"18864:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18866:77:64","nodeType":"YulIdentifier","src":"18866:77:64"},"nativeSrc":"18866:79:64","nodeType":"YulFunctionCall","src":"18866:79:64"},"nativeSrc":"18866:79:64","nodeType":"YulExpressionStatement","src":"18866:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18839:7:64","nodeType":"YulIdentifier","src":"18839:7:64"},{"name":"headStart","nativeSrc":"18848:9:64","nodeType":"YulIdentifier","src":"18848:9:64"}],"functionName":{"name":"sub","nativeSrc":"18835:3:64","nodeType":"YulIdentifier","src":"18835:3:64"},"nativeSrc":"18835:23:64","nodeType":"YulFunctionCall","src":"18835:23:64"},{"kind":"number","nativeSrc":"18860:2:64","nodeType":"YulLiteral","src":"18860:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18831:3:64","nodeType":"YulIdentifier","src":"18831:3:64"},"nativeSrc":"18831:32:64","nodeType":"YulFunctionCall","src":"18831:32:64"},"nativeSrc":"18828:119:64","nodeType":"YulIf","src":"18828:119:64"},{"nativeSrc":"18957:162:64","nodeType":"YulBlock","src":"18957:162:64","statements":[{"nativeSrc":"18972:15:64","nodeType":"YulVariableDeclaration","src":"18972:15:64","value":{"kind":"number","nativeSrc":"18986:1:64","nodeType":"YulLiteral","src":"18986:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18976:6:64","nodeType":"YulTypedName","src":"18976:6:64","type":""}]},{"nativeSrc":"19001:108:64","nodeType":"YulAssignment","src":"19001:108:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19081:9:64","nodeType":"YulIdentifier","src":"19081:9:64"},{"name":"offset","nativeSrc":"19092:6:64","nodeType":"YulIdentifier","src":"19092:6:64"}],"functionName":{"name":"add","nativeSrc":"19077:3:64","nodeType":"YulIdentifier","src":"19077:3:64"},"nativeSrc":"19077:22:64","nodeType":"YulFunctionCall","src":"19077:22:64"},{"name":"dataEnd","nativeSrc":"19101:7:64","nodeType":"YulIdentifier","src":"19101:7:64"}],"functionName":{"name":"abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory","nativeSrc":"19011:65:64","nodeType":"YulIdentifier","src":"19011:65:64"},"nativeSrc":"19011:98:64","nodeType":"YulFunctionCall","src":"19011:98:64"},"variableNames":[{"name":"value0","nativeSrc":"19001:6:64","nodeType":"YulIdentifier","src":"19001:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory","nativeSrc":"18707:419:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18788:9:64","nodeType":"YulTypedName","src":"18788:9:64","type":""},{"name":"dataEnd","nativeSrc":"18799:7:64","nodeType":"YulTypedName","src":"18799:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18811:6:64","nodeType":"YulTypedName","src":"18811:6:64","type":""}],"src":"18707:419:64"},{"body":{"nativeSrc":"19258:206:64","nodeType":"YulBlock","src":"19258:206:64","statements":[{"nativeSrc":"19268:26:64","nodeType":"YulAssignment","src":"19268:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"19280:9:64","nodeType":"YulIdentifier","src":"19280:9:64"},{"kind":"number","nativeSrc":"19291:2:64","nodeType":"YulLiteral","src":"19291:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19276:3:64","nodeType":"YulIdentifier","src":"19276:3:64"},"nativeSrc":"19276:18:64","nodeType":"YulFunctionCall","src":"19276:18:64"},"variableNames":[{"name":"tail","nativeSrc":"19268:4:64","nodeType":"YulIdentifier","src":"19268:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19348:6:64","nodeType":"YulIdentifier","src":"19348:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19361:9:64","nodeType":"YulIdentifier","src":"19361:9:64"},{"kind":"number","nativeSrc":"19372:1:64","nodeType":"YulLiteral","src":"19372:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19357:3:64","nodeType":"YulIdentifier","src":"19357:3:64"},"nativeSrc":"19357:17:64","nodeType":"YulFunctionCall","src":"19357:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"19304:43:64","nodeType":"YulIdentifier","src":"19304:43:64"},"nativeSrc":"19304:71:64","nodeType":"YulFunctionCall","src":"19304:71:64"},"nativeSrc":"19304:71:64","nodeType":"YulExpressionStatement","src":"19304:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19429:6:64","nodeType":"YulIdentifier","src":"19429:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19442:9:64","nodeType":"YulIdentifier","src":"19442:9:64"},{"kind":"number","nativeSrc":"19453:2:64","nodeType":"YulLiteral","src":"19453:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19438:3:64","nodeType":"YulIdentifier","src":"19438:3:64"},"nativeSrc":"19438:18:64","nodeType":"YulFunctionCall","src":"19438:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19385:43:64","nodeType":"YulIdentifier","src":"19385:43:64"},"nativeSrc":"19385:72:64","nodeType":"YulFunctionCall","src":"19385:72:64"},"nativeSrc":"19385:72:64","nodeType":"YulExpressionStatement","src":"19385:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"19132:332:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19222:9:64","nodeType":"YulTypedName","src":"19222:9:64","type":""},{"name":"value1","nativeSrc":"19234:6:64","nodeType":"YulTypedName","src":"19234:6:64","type":""},{"name":"value0","nativeSrc":"19242:6:64","nodeType":"YulTypedName","src":"19242:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19253:4:64","nodeType":"YulTypedName","src":"19253:4:64","type":""}],"src":"19132:332:64"},{"body":{"nativeSrc":"19559:28:64","nodeType":"YulBlock","src":"19559:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19576:1:64","nodeType":"YulLiteral","src":"19576:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"19579:1:64","nodeType":"YulLiteral","src":"19579:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19569:6:64","nodeType":"YulIdentifier","src":"19569:6:64"},"nativeSrc":"19569:12:64","nodeType":"YulFunctionCall","src":"19569:12:64"},"nativeSrc":"19569:12:64","nodeType":"YulExpressionStatement","src":"19569:12:64"}]},"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"19470:117:64","nodeType":"YulFunctionDefinition","src":"19470:117:64"},{"body":{"nativeSrc":"19682:28:64","nodeType":"YulBlock","src":"19682:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19699:1:64","nodeType":"YulLiteral","src":"19699:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"19702:1:64","nodeType":"YulLiteral","src":"19702:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19692:6:64","nodeType":"YulIdentifier","src":"19692:6:64"},"nativeSrc":"19692:12:64","nodeType":"YulFunctionCall","src":"19692:12:64"},"nativeSrc":"19692:12:64","nodeType":"YulExpressionStatement","src":"19692:12:64"}]},"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"19593:117:64","nodeType":"YulFunctionDefinition","src":"19593:117:64"},{"body":{"nativeSrc":"19805:28:64","nodeType":"YulBlock","src":"19805:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19822:1:64","nodeType":"YulLiteral","src":"19822:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"19825:1:64","nodeType":"YulLiteral","src":"19825:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"19815:6:64","nodeType":"YulIdentifier","src":"19815:6:64"},"nativeSrc":"19815:12:64","nodeType":"YulFunctionCall","src":"19815:12:64"},"nativeSrc":"19815:12:64","nodeType":"YulExpressionStatement","src":"19815:12:64"}]},"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"19716:117:64","nodeType":"YulFunctionDefinition","src":"19716:117:64"},{"body":{"nativeSrc":"19929:634:64","nodeType":"YulBlock","src":"19929:634:64","statements":[{"nativeSrc":"19939:51:64","nodeType":"YulVariableDeclaration","src":"19939:51:64","value":{"arguments":[{"name":"ptr_to_tail","nativeSrc":"19978:11:64","nodeType":"YulIdentifier","src":"19978:11:64"}],"functionName":{"name":"calldataload","nativeSrc":"19965:12:64","nodeType":"YulIdentifier","src":"19965:12:64"},"nativeSrc":"19965:25:64","nodeType":"YulFunctionCall","src":"19965:25:64"},"variables":[{"name":"rel_offset_of_tail","nativeSrc":"19943:18:64","nodeType":"YulTypedName","src":"19943:18:64","type":""}]},{"body":{"nativeSrc":"20084:83:64","nodeType":"YulBlock","src":"20084:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad","nativeSrc":"20086:77:64","nodeType":"YulIdentifier","src":"20086:77:64"},"nativeSrc":"20086:79:64","nodeType":"YulFunctionCall","src":"20086:79:64"},"nativeSrc":"20086:79:64","nodeType":"YulExpressionStatement","src":"20086:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nativeSrc":"20013:18:64","nodeType":"YulIdentifier","src":"20013:18:64"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20041:12:64","nodeType":"YulIdentifier","src":"20041:12:64"},"nativeSrc":"20041:14:64","nodeType":"YulFunctionCall","src":"20041:14:64"},{"name":"base_ref","nativeSrc":"20057:8:64","nodeType":"YulIdentifier","src":"20057:8:64"}],"functionName":{"name":"sub","nativeSrc":"20037:3:64","nodeType":"YulIdentifier","src":"20037:3:64"},"nativeSrc":"20037:29:64","nodeType":"YulFunctionCall","src":"20037:29:64"},{"arguments":[{"kind":"number","nativeSrc":"20072:4:64","nodeType":"YulLiteral","src":"20072:4:64","type":"","value":"0x20"},{"kind":"number","nativeSrc":"20078:1:64","nodeType":"YulLiteral","src":"20078:1:64","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"20068:3:64","nodeType":"YulIdentifier","src":"20068:3:64"},"nativeSrc":"20068:12:64","nodeType":"YulFunctionCall","src":"20068:12:64"}],"functionName":{"name":"sub","nativeSrc":"20033:3:64","nodeType":"YulIdentifier","src":"20033:3:64"},"nativeSrc":"20033:48:64","nodeType":"YulFunctionCall","src":"20033:48:64"}],"functionName":{"name":"slt","nativeSrc":"20009:3:64","nodeType":"YulIdentifier","src":"20009:3:64"},"nativeSrc":"20009:73:64","nodeType":"YulFunctionCall","src":"20009:73:64"}],"functionName":{"name":"iszero","nativeSrc":"20002:6:64","nodeType":"YulIdentifier","src":"20002:6:64"},"nativeSrc":"20002:81:64","nodeType":"YulFunctionCall","src":"20002:81:64"},"nativeSrc":"19999:168:64","nodeType":"YulIf","src":"19999:168:64"},{"nativeSrc":"20176:41:64","nodeType":"YulAssignment","src":"20176:41:64","value":{"arguments":[{"name":"base_ref","nativeSrc":"20188:8:64","nodeType":"YulIdentifier","src":"20188:8:64"},{"name":"rel_offset_of_tail","nativeSrc":"20198:18:64","nodeType":"YulIdentifier","src":"20198:18:64"}],"functionName":{"name":"add","nativeSrc":"20184:3:64","nodeType":"YulIdentifier","src":"20184:3:64"},"nativeSrc":"20184:33:64","nodeType":"YulFunctionCall","src":"20184:33:64"},"variableNames":[{"name":"addr","nativeSrc":"20176:4:64","nodeType":"YulIdentifier","src":"20176:4:64"}]},{"nativeSrc":"20227:28:64","nodeType":"YulAssignment","src":"20227:28:64","value":{"arguments":[{"name":"addr","nativeSrc":"20250:4:64","nodeType":"YulIdentifier","src":"20250:4:64"}],"functionName":{"name":"calldataload","nativeSrc":"20237:12:64","nodeType":"YulIdentifier","src":"20237:12:64"},"nativeSrc":"20237:18:64","nodeType":"YulFunctionCall","src":"20237:18:64"},"variableNames":[{"name":"length","nativeSrc":"20227:6:64","nodeType":"YulIdentifier","src":"20227:6:64"}]},{"body":{"nativeSrc":"20298:83:64","nodeType":"YulBlock","src":"20298:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a","nativeSrc":"20300:77:64","nodeType":"YulIdentifier","src":"20300:77:64"},"nativeSrc":"20300:79:64","nodeType":"YulFunctionCall","src":"20300:79:64"},"nativeSrc":"20300:79:64","nodeType":"YulExpressionStatement","src":"20300:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"20270:6:64","nodeType":"YulIdentifier","src":"20270:6:64"},{"kind":"number","nativeSrc":"20278:18:64","nodeType":"YulLiteral","src":"20278:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20267:2:64","nodeType":"YulIdentifier","src":"20267:2:64"},"nativeSrc":"20267:30:64","nodeType":"YulFunctionCall","src":"20267:30:64"},"nativeSrc":"20264:117:64","nodeType":"YulIf","src":"20264:117:64"},{"nativeSrc":"20390:21:64","nodeType":"YulAssignment","src":"20390:21:64","value":{"arguments":[{"name":"addr","nativeSrc":"20402:4:64","nodeType":"YulIdentifier","src":"20402:4:64"},{"kind":"number","nativeSrc":"20408:2:64","nodeType":"YulLiteral","src":"20408:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20398:3:64","nodeType":"YulIdentifier","src":"20398:3:64"},"nativeSrc":"20398:13:64","nodeType":"YulFunctionCall","src":"20398:13:64"},"variableNames":[{"name":"addr","nativeSrc":"20390:4:64","nodeType":"YulIdentifier","src":"20390:4:64"}]},{"body":{"nativeSrc":"20473:83:64","nodeType":"YulBlock","src":"20473:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e","nativeSrc":"20475:77:64","nodeType":"YulIdentifier","src":"20475:77:64"},"nativeSrc":"20475:79:64","nodeType":"YulFunctionCall","src":"20475:79:64"},"nativeSrc":"20475:79:64","nodeType":"YulExpressionStatement","src":"20475:79:64"}]},"condition":{"arguments":[{"name":"addr","nativeSrc":"20427:4:64","nodeType":"YulIdentifier","src":"20427:4:64"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"20437:12:64","nodeType":"YulIdentifier","src":"20437:12:64"},"nativeSrc":"20437:14:64","nodeType":"YulFunctionCall","src":"20437:14:64"},{"arguments":[{"name":"length","nativeSrc":"20457:6:64","nodeType":"YulIdentifier","src":"20457:6:64"},{"kind":"number","nativeSrc":"20465:4:64","nodeType":"YulLiteral","src":"20465:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"20453:3:64","nodeType":"YulIdentifier","src":"20453:3:64"},"nativeSrc":"20453:17:64","nodeType":"YulFunctionCall","src":"20453:17:64"}],"functionName":{"name":"sub","nativeSrc":"20433:3:64","nodeType":"YulIdentifier","src":"20433:3:64"},"nativeSrc":"20433:38:64","nodeType":"YulFunctionCall","src":"20433:38:64"}],"functionName":{"name":"sgt","nativeSrc":"20423:3:64","nodeType":"YulIdentifier","src":"20423:3:64"},"nativeSrc":"20423:49:64","nodeType":"YulFunctionCall","src":"20423:49:64"},"nativeSrc":"20420:136:64","nodeType":"YulIf","src":"20420:136:64"}]},"name":"access_calldata_tail_t_bytes_calldata_ptr","nativeSrc":"19839:724:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nativeSrc":"19890:8:64","nodeType":"YulTypedName","src":"19890:8:64","type":""},{"name":"ptr_to_tail","nativeSrc":"19900:11:64","nodeType":"YulTypedName","src":"19900:11:64","type":""}],"returnVariables":[{"name":"addr","nativeSrc":"19916:4:64","nodeType":"YulTypedName","src":"19916:4:64","type":""},{"name":"length","nativeSrc":"19922:6:64","nodeType":"YulTypedName","src":"19922:6:64","type":""}],"src":"19839:724:64"},{"body":{"nativeSrc":"20613:147:64","nodeType":"YulBlock","src":"20613:147:64","statements":[{"nativeSrc":"20623:25:64","nodeType":"YulAssignment","src":"20623:25:64","value":{"arguments":[{"name":"x","nativeSrc":"20646:1:64","nodeType":"YulIdentifier","src":"20646:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20628:17:64","nodeType":"YulIdentifier","src":"20628:17:64"},"nativeSrc":"20628:20:64","nodeType":"YulFunctionCall","src":"20628:20:64"},"variableNames":[{"name":"x","nativeSrc":"20623:1:64","nodeType":"YulIdentifier","src":"20623:1:64"}]},{"nativeSrc":"20657:25:64","nodeType":"YulAssignment","src":"20657:25:64","value":{"arguments":[{"name":"y","nativeSrc":"20680:1:64","nodeType":"YulIdentifier","src":"20680:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"20662:17:64","nodeType":"YulIdentifier","src":"20662:17:64"},"nativeSrc":"20662:20:64","nodeType":"YulFunctionCall","src":"20662:20:64"},"variableNames":[{"name":"y","nativeSrc":"20657:1:64","nodeType":"YulIdentifier","src":"20657:1:64"}]},{"nativeSrc":"20691:16:64","nodeType":"YulAssignment","src":"20691:16:64","value":{"arguments":[{"name":"x","nativeSrc":"20702:1:64","nodeType":"YulIdentifier","src":"20702:1:64"},{"name":"y","nativeSrc":"20705:1:64","nodeType":"YulIdentifier","src":"20705:1:64"}],"functionName":{"name":"add","nativeSrc":"20698:3:64","nodeType":"YulIdentifier","src":"20698:3:64"},"nativeSrc":"20698:9:64","nodeType":"YulFunctionCall","src":"20698:9:64"},"variableNames":[{"name":"sum","nativeSrc":"20691:3:64","nodeType":"YulIdentifier","src":"20691:3:64"}]},{"body":{"nativeSrc":"20731:22:64","nodeType":"YulBlock","src":"20731:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20733:16:64","nodeType":"YulIdentifier","src":"20733:16:64"},"nativeSrc":"20733:18:64","nodeType":"YulFunctionCall","src":"20733:18:64"},"nativeSrc":"20733:18:64","nodeType":"YulExpressionStatement","src":"20733:18:64"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"20723:1:64","nodeType":"YulIdentifier","src":"20723:1:64"},{"name":"sum","nativeSrc":"20726:3:64","nodeType":"YulIdentifier","src":"20726:3:64"}],"functionName":{"name":"gt","nativeSrc":"20720:2:64","nodeType":"YulIdentifier","src":"20720:2:64"},"nativeSrc":"20720:10:64","nodeType":"YulFunctionCall","src":"20720:10:64"},"nativeSrc":"20717:36:64","nodeType":"YulIf","src":"20717:36:64"}]},"name":"checked_add_t_uint256","nativeSrc":"20569:191:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20600:1:64","nodeType":"YulTypedName","src":"20600:1:64","type":""},{"name":"y","nativeSrc":"20603:1:64","nodeType":"YulTypedName","src":"20603:1:64","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"20609:3:64","nodeType":"YulTypedName","src":"20609:3:64","type":""}],"src":"20569:191:64"},{"body":{"nativeSrc":"20809:162:64","nodeType":"YulBlock","src":"20809:162:64","statements":[{"nativeSrc":"20819:24:64","nodeType":"YulAssignment","src":"20819:24:64","value":{"arguments":[{"name":"x","nativeSrc":"20841:1:64","nodeType":"YulIdentifier","src":"20841:1:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"20824:16:64","nodeType":"YulIdentifier","src":"20824:16:64"},"nativeSrc":"20824:19:64","nodeType":"YulFunctionCall","src":"20824:19:64"},"variableNames":[{"name":"x","nativeSrc":"20819:1:64","nodeType":"YulIdentifier","src":"20819:1:64"}]},{"nativeSrc":"20852:24:64","nodeType":"YulAssignment","src":"20852:24:64","value":{"arguments":[{"name":"y","nativeSrc":"20874:1:64","nodeType":"YulIdentifier","src":"20874:1:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"20857:16:64","nodeType":"YulIdentifier","src":"20857:16:64"},"nativeSrc":"20857:19:64","nodeType":"YulFunctionCall","src":"20857:19:64"},"variableNames":[{"name":"y","nativeSrc":"20852:1:64","nodeType":"YulIdentifier","src":"20852:1:64"}]},{"nativeSrc":"20885:16:64","nodeType":"YulAssignment","src":"20885:16:64","value":{"arguments":[{"name":"x","nativeSrc":"20896:1:64","nodeType":"YulIdentifier","src":"20896:1:64"},{"name":"y","nativeSrc":"20899:1:64","nodeType":"YulIdentifier","src":"20899:1:64"}],"functionName":{"name":"add","nativeSrc":"20892:3:64","nodeType":"YulIdentifier","src":"20892:3:64"},"nativeSrc":"20892:9:64","nodeType":"YulFunctionCall","src":"20892:9:64"},"variableNames":[{"name":"sum","nativeSrc":"20885:3:64","nodeType":"YulIdentifier","src":"20885:3:64"}]},{"body":{"nativeSrc":"20942:22:64","nodeType":"YulBlock","src":"20942:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"20944:16:64","nodeType":"YulIdentifier","src":"20944:16:64"},"nativeSrc":"20944:18:64","nodeType":"YulFunctionCall","src":"20944:18:64"},"nativeSrc":"20944:18:64","nodeType":"YulExpressionStatement","src":"20944:18:64"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"20917:3:64","nodeType":"YulIdentifier","src":"20917:3:64"},{"kind":"number","nativeSrc":"20922:18:64","nodeType":"YulLiteral","src":"20922:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"20914:2:64","nodeType":"YulIdentifier","src":"20914:2:64"},"nativeSrc":"20914:27:64","nodeType":"YulFunctionCall","src":"20914:27:64"},"nativeSrc":"20911:53:64","nodeType":"YulIf","src":"20911:53:64"}]},"name":"checked_add_t_uint64","nativeSrc":"20766:205:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"20796:1:64","nodeType":"YulTypedName","src":"20796:1:64","type":""},{"name":"y","nativeSrc":"20799:1:64","nodeType":"YulTypedName","src":"20799:1:64","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"20805:3:64","nodeType":"YulTypedName","src":"20805:3:64","type":""}],"src":"20766:205:64"},{"body":{"nativeSrc":"21131:288:64","nodeType":"YulBlock","src":"21131:288:64","statements":[{"nativeSrc":"21141:26:64","nodeType":"YulAssignment","src":"21141:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"21153:9:64","nodeType":"YulIdentifier","src":"21153:9:64"},{"kind":"number","nativeSrc":"21164:2:64","nodeType":"YulLiteral","src":"21164:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21149:3:64","nodeType":"YulIdentifier","src":"21149:3:64"},"nativeSrc":"21149:18:64","nodeType":"YulFunctionCall","src":"21149:18:64"},"variableNames":[{"name":"tail","nativeSrc":"21141:4:64","nodeType":"YulIdentifier","src":"21141:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21221:6:64","nodeType":"YulIdentifier","src":"21221:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21234:9:64","nodeType":"YulIdentifier","src":"21234:9:64"},{"kind":"number","nativeSrc":"21245:1:64","nodeType":"YulLiteral","src":"21245:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21230:3:64","nodeType":"YulIdentifier","src":"21230:3:64"},"nativeSrc":"21230:17:64","nodeType":"YulFunctionCall","src":"21230:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21177:43:64","nodeType":"YulIdentifier","src":"21177:43:64"},"nativeSrc":"21177:71:64","nodeType":"YulFunctionCall","src":"21177:71:64"},"nativeSrc":"21177:71:64","nodeType":"YulExpressionStatement","src":"21177:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21302:6:64","nodeType":"YulIdentifier","src":"21302:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21315:9:64","nodeType":"YulIdentifier","src":"21315:9:64"},{"kind":"number","nativeSrc":"21326:2:64","nodeType":"YulLiteral","src":"21326:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21311:3:64","nodeType":"YulIdentifier","src":"21311:3:64"},"nativeSrc":"21311:18:64","nodeType":"YulFunctionCall","src":"21311:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21258:43:64","nodeType":"YulIdentifier","src":"21258:43:64"},"nativeSrc":"21258:72:64","nodeType":"YulFunctionCall","src":"21258:72:64"},"nativeSrc":"21258:72:64","nodeType":"YulExpressionStatement","src":"21258:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21384:6:64","nodeType":"YulIdentifier","src":"21384:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21397:9:64","nodeType":"YulIdentifier","src":"21397:9:64"},{"kind":"number","nativeSrc":"21408:2:64","nodeType":"YulLiteral","src":"21408:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21393:3:64","nodeType":"YulIdentifier","src":"21393:3:64"},"nativeSrc":"21393:18:64","nodeType":"YulFunctionCall","src":"21393:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21340:43:64","nodeType":"YulIdentifier","src":"21340:43:64"},"nativeSrc":"21340:72:64","nodeType":"YulFunctionCall","src":"21340:72:64"},"nativeSrc":"21340:72:64","nodeType":"YulExpressionStatement","src":"21340:72:64"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nativeSrc":"20977:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21087:9:64","nodeType":"YulTypedName","src":"21087:9:64","type":""},{"name":"value2","nativeSrc":"21099:6:64","nodeType":"YulTypedName","src":"21099:6:64","type":""},{"name":"value1","nativeSrc":"21107:6:64","nodeType":"YulTypedName","src":"21107:6:64","type":""},{"name":"value0","nativeSrc":"21115:6:64","nodeType":"YulTypedName","src":"21115:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21126:4:64","nodeType":"YulTypedName","src":"21126:4:64","type":""}],"src":"20977:442:64"},{"body":{"nativeSrc":"21579:288:64","nodeType":"YulBlock","src":"21579:288:64","statements":[{"nativeSrc":"21589:26:64","nodeType":"YulAssignment","src":"21589:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"21601:9:64","nodeType":"YulIdentifier","src":"21601:9:64"},{"kind":"number","nativeSrc":"21612:2:64","nodeType":"YulLiteral","src":"21612:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21597:3:64","nodeType":"YulIdentifier","src":"21597:3:64"},"nativeSrc":"21597:18:64","nodeType":"YulFunctionCall","src":"21597:18:64"},"variableNames":[{"name":"tail","nativeSrc":"21589:4:64","nodeType":"YulIdentifier","src":"21589:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21669:6:64","nodeType":"YulIdentifier","src":"21669:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21682:9:64","nodeType":"YulIdentifier","src":"21682:9:64"},{"kind":"number","nativeSrc":"21693:1:64","nodeType":"YulLiteral","src":"21693:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21678:3:64","nodeType":"YulIdentifier","src":"21678:3:64"},"nativeSrc":"21678:17:64","nodeType":"YulFunctionCall","src":"21678:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21625:43:64","nodeType":"YulIdentifier","src":"21625:43:64"},"nativeSrc":"21625:71:64","nodeType":"YulFunctionCall","src":"21625:71:64"},"nativeSrc":"21625:71:64","nodeType":"YulExpressionStatement","src":"21625:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21750:6:64","nodeType":"YulIdentifier","src":"21750:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21763:9:64","nodeType":"YulIdentifier","src":"21763:9:64"},{"kind":"number","nativeSrc":"21774:2:64","nodeType":"YulLiteral","src":"21774:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21759:3:64","nodeType":"YulIdentifier","src":"21759:3:64"},"nativeSrc":"21759:18:64","nodeType":"YulFunctionCall","src":"21759:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21706:43:64","nodeType":"YulIdentifier","src":"21706:43:64"},"nativeSrc":"21706:72:64","nodeType":"YulFunctionCall","src":"21706:72:64"},"nativeSrc":"21706:72:64","nodeType":"YulExpressionStatement","src":"21706:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21832:6:64","nodeType":"YulIdentifier","src":"21832:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21845:9:64","nodeType":"YulIdentifier","src":"21845:9:64"},{"kind":"number","nativeSrc":"21856:2:64","nodeType":"YulLiteral","src":"21856:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21841:3:64","nodeType":"YulIdentifier","src":"21841:3:64"},"nativeSrc":"21841:18:64","nodeType":"YulFunctionCall","src":"21841:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21788:43:64","nodeType":"YulIdentifier","src":"21788:43:64"},"nativeSrc":"21788:72:64","nodeType":"YulFunctionCall","src":"21788:72:64"},"nativeSrc":"21788:72:64","nodeType":"YulExpressionStatement","src":"21788:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"21425:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21535:9:64","nodeType":"YulTypedName","src":"21535:9:64","type":""},{"name":"value2","nativeSrc":"21547:6:64","nodeType":"YulTypedName","src":"21547:6:64","type":""},{"name":"value1","nativeSrc":"21555:6:64","nodeType":"YulTypedName","src":"21555:6:64","type":""},{"name":"value0","nativeSrc":"21563:6:64","nodeType":"YulTypedName","src":"21563:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21574:4:64","nodeType":"YulTypedName","src":"21574:4:64","type":""}],"src":"21425:442:64"},{"body":{"nativeSrc":"21917:164:64","nodeType":"YulBlock","src":"21917:164:64","statements":[{"nativeSrc":"21927:24:64","nodeType":"YulAssignment","src":"21927:24:64","value":{"arguments":[{"name":"x","nativeSrc":"21949:1:64","nodeType":"YulIdentifier","src":"21949:1:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"21932:16:64","nodeType":"YulIdentifier","src":"21932:16:64"},"nativeSrc":"21932:19:64","nodeType":"YulFunctionCall","src":"21932:19:64"},"variableNames":[{"name":"x","nativeSrc":"21927:1:64","nodeType":"YulIdentifier","src":"21927:1:64"}]},{"nativeSrc":"21960:24:64","nodeType":"YulAssignment","src":"21960:24:64","value":{"arguments":[{"name":"y","nativeSrc":"21982:1:64","nodeType":"YulIdentifier","src":"21982:1:64"}],"functionName":{"name":"cleanup_t_uint64","nativeSrc":"21965:16:64","nodeType":"YulIdentifier","src":"21965:16:64"},"nativeSrc":"21965:19:64","nodeType":"YulFunctionCall","src":"21965:19:64"},"variableNames":[{"name":"y","nativeSrc":"21960:1:64","nodeType":"YulIdentifier","src":"21960:1:64"}]},{"nativeSrc":"21993:17:64","nodeType":"YulAssignment","src":"21993:17:64","value":{"arguments":[{"name":"x","nativeSrc":"22005:1:64","nodeType":"YulIdentifier","src":"22005:1:64"},{"name":"y","nativeSrc":"22008:1:64","nodeType":"YulIdentifier","src":"22008:1:64"}],"functionName":{"name":"sub","nativeSrc":"22001:3:64","nodeType":"YulIdentifier","src":"22001:3:64"},"nativeSrc":"22001:9:64","nodeType":"YulFunctionCall","src":"22001:9:64"},"variableNames":[{"name":"diff","nativeSrc":"21993:4:64","nodeType":"YulIdentifier","src":"21993:4:64"}]},{"body":{"nativeSrc":"22052:22:64","nodeType":"YulBlock","src":"22052:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22054:16:64","nodeType":"YulIdentifier","src":"22054:16:64"},"nativeSrc":"22054:18:64","nodeType":"YulFunctionCall","src":"22054:18:64"},"nativeSrc":"22054:18:64","nodeType":"YulExpressionStatement","src":"22054:18:64"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"22026:4:64","nodeType":"YulIdentifier","src":"22026:4:64"},{"kind":"number","nativeSrc":"22032:18:64","nodeType":"YulLiteral","src":"22032:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"22023:2:64","nodeType":"YulIdentifier","src":"22023:2:64"},"nativeSrc":"22023:28:64","nodeType":"YulFunctionCall","src":"22023:28:64"},"nativeSrc":"22020:54:64","nodeType":"YulIf","src":"22020:54:64"}]},"name":"checked_sub_t_uint64","nativeSrc":"21873:208:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21903:1:64","nodeType":"YulTypedName","src":"21903:1:64","type":""},{"name":"y","nativeSrc":"21906:1:64","nodeType":"YulTypedName","src":"21906:1:64","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"21912:4:64","nodeType":"YulTypedName","src":"21912:4:64","type":""}],"src":"21873:208:64"},{"body":{"nativeSrc":"22135:362:64","nodeType":"YulBlock","src":"22135:362:64","statements":[{"nativeSrc":"22145:25:64","nodeType":"YulAssignment","src":"22145:25:64","value":{"arguments":[{"name":"x","nativeSrc":"22168:1:64","nodeType":"YulIdentifier","src":"22168:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22150:17:64","nodeType":"YulIdentifier","src":"22150:17:64"},"nativeSrc":"22150:20:64","nodeType":"YulFunctionCall","src":"22150:20:64"},"variableNames":[{"name":"x","nativeSrc":"22145:1:64","nodeType":"YulIdentifier","src":"22145:1:64"}]},{"nativeSrc":"22179:25:64","nodeType":"YulAssignment","src":"22179:25:64","value":{"arguments":[{"name":"y","nativeSrc":"22202:1:64","nodeType":"YulIdentifier","src":"22202:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22184:17:64","nodeType":"YulIdentifier","src":"22184:17:64"},"nativeSrc":"22184:20:64","nodeType":"YulFunctionCall","src":"22184:20:64"},"variableNames":[{"name":"y","nativeSrc":"22179:1:64","nodeType":"YulIdentifier","src":"22179:1:64"}]},{"nativeSrc":"22213:28:64","nodeType":"YulVariableDeclaration","src":"22213:28:64","value":{"arguments":[{"name":"x","nativeSrc":"22236:1:64","nodeType":"YulIdentifier","src":"22236:1:64"},{"name":"y","nativeSrc":"22239:1:64","nodeType":"YulIdentifier","src":"22239:1:64"}],"functionName":{"name":"mul","nativeSrc":"22232:3:64","nodeType":"YulIdentifier","src":"22232:3:64"},"nativeSrc":"22232:9:64","nodeType":"YulFunctionCall","src":"22232:9:64"},"variables":[{"name":"product_raw","nativeSrc":"22217:11:64","nodeType":"YulTypedName","src":"22217:11:64","type":""}]},{"nativeSrc":"22250:41:64","nodeType":"YulAssignment","src":"22250:41:64","value":{"arguments":[{"name":"product_raw","nativeSrc":"22279:11:64","nodeType":"YulIdentifier","src":"22279:11:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22261:17:64","nodeType":"YulIdentifier","src":"22261:17:64"},"nativeSrc":"22261:30:64","nodeType":"YulFunctionCall","src":"22261:30:64"},"variableNames":[{"name":"product","nativeSrc":"22250:7:64","nodeType":"YulIdentifier","src":"22250:7:64"}]},{"body":{"nativeSrc":"22468:22:64","nodeType":"YulBlock","src":"22468:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22470:16:64","nodeType":"YulIdentifier","src":"22470:16:64"},"nativeSrc":"22470:18:64","nodeType":"YulFunctionCall","src":"22470:18:64"},"nativeSrc":"22470:18:64","nodeType":"YulExpressionStatement","src":"22470:18:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"22401:1:64","nodeType":"YulIdentifier","src":"22401:1:64"}],"functionName":{"name":"iszero","nativeSrc":"22394:6:64","nodeType":"YulIdentifier","src":"22394:6:64"},"nativeSrc":"22394:9:64","nodeType":"YulFunctionCall","src":"22394:9:64"},{"arguments":[{"name":"y","nativeSrc":"22424:1:64","nodeType":"YulIdentifier","src":"22424:1:64"},{"arguments":[{"name":"product","nativeSrc":"22431:7:64","nodeType":"YulIdentifier","src":"22431:7:64"},{"name":"x","nativeSrc":"22440:1:64","nodeType":"YulIdentifier","src":"22440:1:64"}],"functionName":{"name":"div","nativeSrc":"22427:3:64","nodeType":"YulIdentifier","src":"22427:3:64"},"nativeSrc":"22427:15:64","nodeType":"YulFunctionCall","src":"22427:15:64"}],"functionName":{"name":"eq","nativeSrc":"22421:2:64","nodeType":"YulIdentifier","src":"22421:2:64"},"nativeSrc":"22421:22:64","nodeType":"YulFunctionCall","src":"22421:22:64"}],"functionName":{"name":"or","nativeSrc":"22374:2:64","nodeType":"YulIdentifier","src":"22374:2:64"},"nativeSrc":"22374:83:64","nodeType":"YulFunctionCall","src":"22374:83:64"}],"functionName":{"name":"iszero","nativeSrc":"22354:6:64","nodeType":"YulIdentifier","src":"22354:6:64"},"nativeSrc":"22354:113:64","nodeType":"YulFunctionCall","src":"22354:113:64"},"nativeSrc":"22351:139:64","nodeType":"YulIf","src":"22351:139:64"}]},"name":"checked_mul_t_uint256","nativeSrc":"22087:410:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"22118:1:64","nodeType":"YulTypedName","src":"22118:1:64","type":""},{"name":"y","nativeSrc":"22121:1:64","nodeType":"YulTypedName","src":"22121:1:64","type":""}],"returnVariables":[{"name":"product","nativeSrc":"22127:7:64","nodeType":"YulTypedName","src":"22127:7:64","type":""}],"src":"22087:410:64"},{"body":{"nativeSrc":"22531:152:64","nodeType":"YulBlock","src":"22531:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22548:1:64","nodeType":"YulLiteral","src":"22548:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"22551:77:64","nodeType":"YulLiteral","src":"22551:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"22541:6:64","nodeType":"YulIdentifier","src":"22541:6:64"},"nativeSrc":"22541:88:64","nodeType":"YulFunctionCall","src":"22541:88:64"},"nativeSrc":"22541:88:64","nodeType":"YulExpressionStatement","src":"22541:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22645:1:64","nodeType":"YulLiteral","src":"22645:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"22648:4:64","nodeType":"YulLiteral","src":"22648:4:64","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"22638:6:64","nodeType":"YulIdentifier","src":"22638:6:64"},"nativeSrc":"22638:15:64","nodeType":"YulFunctionCall","src":"22638:15:64"},"nativeSrc":"22638:15:64","nodeType":"YulExpressionStatement","src":"22638:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22669:1:64","nodeType":"YulLiteral","src":"22669:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"22672:4:64","nodeType":"YulLiteral","src":"22672:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"22662:6:64","nodeType":"YulIdentifier","src":"22662:6:64"},"nativeSrc":"22662:15:64","nodeType":"YulFunctionCall","src":"22662:15:64"},"nativeSrc":"22662:15:64","nodeType":"YulExpressionStatement","src":"22662:15:64"}]},"name":"panic_error_0x12","nativeSrc":"22503:180:64","nodeType":"YulFunctionDefinition","src":"22503:180:64"},{"body":{"nativeSrc":"22731:143:64","nodeType":"YulBlock","src":"22731:143:64","statements":[{"nativeSrc":"22741:25:64","nodeType":"YulAssignment","src":"22741:25:64","value":{"arguments":[{"name":"x","nativeSrc":"22764:1:64","nodeType":"YulIdentifier","src":"22764:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22746:17:64","nodeType":"YulIdentifier","src":"22746:17:64"},"nativeSrc":"22746:20:64","nodeType":"YulFunctionCall","src":"22746:20:64"},"variableNames":[{"name":"x","nativeSrc":"22741:1:64","nodeType":"YulIdentifier","src":"22741:1:64"}]},{"nativeSrc":"22775:25:64","nodeType":"YulAssignment","src":"22775:25:64","value":{"arguments":[{"name":"y","nativeSrc":"22798:1:64","nodeType":"YulIdentifier","src":"22798:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22780:17:64","nodeType":"YulIdentifier","src":"22780:17:64"},"nativeSrc":"22780:20:64","nodeType":"YulFunctionCall","src":"22780:20:64"},"variableNames":[{"name":"y","nativeSrc":"22775:1:64","nodeType":"YulIdentifier","src":"22775:1:64"}]},{"body":{"nativeSrc":"22822:22:64","nodeType":"YulBlock","src":"22822:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"22824:16:64","nodeType":"YulIdentifier","src":"22824:16:64"},"nativeSrc":"22824:18:64","nodeType":"YulFunctionCall","src":"22824:18:64"},"nativeSrc":"22824:18:64","nodeType":"YulExpressionStatement","src":"22824:18:64"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"22819:1:64","nodeType":"YulIdentifier","src":"22819:1:64"}],"functionName":{"name":"iszero","nativeSrc":"22812:6:64","nodeType":"YulIdentifier","src":"22812:6:64"},"nativeSrc":"22812:9:64","nodeType":"YulFunctionCall","src":"22812:9:64"},"nativeSrc":"22809:35:64","nodeType":"YulIf","src":"22809:35:64"},{"nativeSrc":"22854:14:64","nodeType":"YulAssignment","src":"22854:14:64","value":{"arguments":[{"name":"x","nativeSrc":"22863:1:64","nodeType":"YulIdentifier","src":"22863:1:64"},{"name":"y","nativeSrc":"22866:1:64","nodeType":"YulIdentifier","src":"22866:1:64"}],"functionName":{"name":"div","nativeSrc":"22859:3:64","nodeType":"YulIdentifier","src":"22859:3:64"},"nativeSrc":"22859:9:64","nodeType":"YulFunctionCall","src":"22859:9:64"},"variableNames":[{"name":"r","nativeSrc":"22854:1:64","nodeType":"YulIdentifier","src":"22854:1:64"}]}]},"name":"checked_div_t_uint256","nativeSrc":"22689:185:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"22720:1:64","nodeType":"YulTypedName","src":"22720:1:64","type":""},{"name":"y","nativeSrc":"22723:1:64","nodeType":"YulTypedName","src":"22723:1:64","type":""}],"returnVariables":[{"name":"r","nativeSrc":"22729:1:64","nodeType":"YulTypedName","src":"22729:1:64","type":""}],"src":"22689:185:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint64(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffff)\n }\n\n function abi_encode_t_uint64_to_t_uint64_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint64(value))\n }\n\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint64_to_t_uint64_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes[]\n function abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function validator_revert_t_uint64(value) {\n if iszero(eq(value, cleanup_t_uint64(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint64(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint64(value)\n }\n\n // struct VestingBudget.InitPayload\n function abi_decode_t_struct$_InitPayload_$15766_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // owner\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // authorized\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // start\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n {\n // duration\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n {\n // cliff\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint64(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$15766_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$15766_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_enum$_AssetType_$15450(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_AssetType_$15450(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_AssetType_$15450(value)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Budget.Transfer\n function abi_decode_t_struct$_Transfer_$15461_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // assetType\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_enum$_AssetType_$15450(add(headStart, offset), end))\n\n }\n\n {\n // asset\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // target\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_Transfer_$15461_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_Transfer_$15461_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct Budget.FungiblePayload\n function abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory(headStart, end) -> value {\n if slt(sub(end, headStart), 0x20) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x20)\n\n {\n // amount\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_uint256_fromMemory(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_FungiblePayload_$15465_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function checked_add_t_uint64(x, y) -> sum {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n sum := add(x, y)\n\n if gt(sum, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_sub_t_uint64(x, y) -> diff {\n x := cleanup_t_uint64(x)\n y := cleanup_t_uint64(y)\n diff := sub(x, y)\n\n if gt(diff, 0xffffffffffffffff) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061014e575f3560e01c806361400c99116100b5578063f04e283e1161006e578063f04e283e14610459578063f1c30ec014610475578063f2fde38b146104b1578063fa4ca9b1146104cd578063fe9fbb8014610509578063fee81cf41461054557610155565b806361400c9914610359578063715018a6146103955780638da5cb5b1461039f578063be9a6555146103c9578063d2514e84146103f3578063efbe1c1c1461042f57610155565b80634359d28a116101075780634359d28a14610257578063439fab911461027f578063451cc191146102a757806354d1f13d146102e3578063578bcf35146102ed5780635aef467a1461032957610155565b806301ffc9a7146101575780630fb5a6b41461019357806310098ad5146101bd57806313d033c0146101f9578063256929621461022357806328d6183b1461022d57610155565b3661015557005b005b348015610162575f80fd5b5061017d60048036038101906101789190611963565b610581565b60405161018a91906119a8565b60405180910390f35b34801561019e575f80fd5b506101a76105fa565b6040516101b491906119e3565b60405180910390f35b3480156101c8575f80fd5b506101e360048036038101906101de9190611a56565b610614565b6040516101f09190611a99565b60405180910390f35b348015610204575f80fd5b5061020d61066d565b60405161021a91906119e3565b60405180910390f35b61022b610687565b005b348015610238575f80fd5b506102416106d8565b60405161024e9190611ac1565b60405180910390f35b348015610262575f80fd5b5061027d60048036038101906102789190611b90565b6106ff565b005b34801561028a575f80fd5b506102a560048036038101906102a09190611c63565b610809565b005b3480156102b2575f80fd5b506102cd60048036038101906102c89190611c63565b6109b3565b6040516102da9190611a99565b60405180910390f35b6102eb6109ba565b005b3480156102f8575f80fd5b50610313600480360381019061030e9190611a56565b6109f3565b6040516103209190611a99565b60405180910390f35b610343600480360381019061033e9190611c63565b610a38565b60405161035091906119a8565b60405180910390f35b348015610364575f80fd5b5061037f600480360381019061037a9190611d03565b610c05565b60405161038c91906119a8565b60405180910390f35b61039d610c69565b005b3480156103aa575f80fd5b506103b3610c7c565b6040516103c09190611d5d565b60405180910390f35b3480156103d4575f80fd5b506103dd610ca4565b6040516103ea91906119e3565b60405180910390f35b3480156103fe575f80fd5b5061041960048036038101906104149190611a56565b610cbd565b6040516104269190611a99565b60405180910390f35b34801561043a575f80fd5b50610443610d74565b6040516104509190611a99565b60405180910390f35b610473600480360381019061046e9190611a56565b610dbb565b005b348015610480575f80fd5b5061049b60048036038101906104969190611c63565b610df9565b6040516104a891906119a8565b60405180910390f35b6104cb60048036038101906104c69190611a56565b610ede565b005b3480156104d8575f80fd5b506104f360048036038101906104ee9190611c63565b610f07565b60405161050091906119a8565b60405180910390f35b348015610514575f80fd5b5061052f600480360381019061052a9190611a56565b611006565b60405161053c91906119a8565b60405180910390f35b348015610550575f80fd5b5061056b60048036038101906105669190611a56565b611095565b6040516105789190611a99565b60405180910390f35b5f7f7aded85d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105f357506105f2826110ae565b5b9050919050565b600260089054906101000a900467ffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461065c8342611127565b6106669190611da3565b9050919050565b600260109054906101000a900467ffffffffffffffff1681565b5f6106906111e8565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f7aded85d00000000000000000000000000000000000000000000000000000000905090565b6107076111f2565b818190508484905014610746576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156108025782828281811061076657610765611dd6565b5b905060200201602081019061077b9190611e2d565b60015f87878581811061079157610790611dd6565b5b90506020020160208101906107a69190611a56565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610748565b5050505050565b5f610812611229565b905080546003825580156108445760018160011c14303b1061083b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906108559190612077565b9050806040015160025f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060600151600260086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508060800151600260106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506108e9815f0151611252565b5f5b816020015151811015610977576001805f8460200151848151811061091357610912611dd6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506108eb565b505080156109ae576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f92915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f808383810190610a499190612222565b90505f6002811115610a5e57610a5d612269565b5b815f01516002811115610a7457610a73612269565b5b03610aea575f8160600151806020019051810190610a9291906122f9565b9050805f01513414610ae4578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610adb929190612324565b60405180910390fd5b50610bf9565b60016002811115610afe57610afd612269565b5b815f01516002811115610b1457610b13612269565b5b03610bef575f8160600151806020019051810190610b3291906122f9565b9050610b6c826040015130835f0151856020015173ffffffffffffffffffffffffffffffffffffffff16611328909392919063ffffffff16565b805f0151610b9d30846020015173ffffffffffffffffffffffffffffffffffffffff1661138290919063ffffffff16565b1015610be9578160200151815f01516040517fcece04c5000000000000000000000000000000000000000000000000000000008152600401610be0929190612324565b60405180910390fd5b50610bf8565b5f915050610bff565b5b60019150505b92915050565b5f805f90505b83839050811015610c5d57610c43848483818110610c2c57610c2b611dd6565b5b9050602002810190610c3e9190612357565b610f07565b610c50575f915050610c63565b8080600101915050610c0b565b50600190505b92915050565b610c716111f2565b610c7a5f6113b5565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60025f9054906101000a900467ffffffffffffffff1681565b5f805f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610d2057610d1b308473ffffffffffffffffffffffffffffffffffffffff1661138290919063ffffffff16565b610d22565b475b9050805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d6c91906123b9565b915050919050565b5f600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16610dac91906123ec565b67ffffffffffffffff16905090565b610dc36111f2565b63389a75e1600c52805f526020600c208054421115610de957636f5e88185f526004601cfd5b5f815550610df6816113b5565b50565b5f610e026111f2565b5f8383810190610e129190612222565b90505f6002811115610e2757610e26612269565b5b815f01516002811115610e3d57610e3c612269565b5b1480610e70575060016002811115610e5857610e57612269565b5b815f01516002811115610e6e57610e6d612269565b5b145b15610ec9575f8160600151806020019051810190610e8e91906122f9565b9050610ec3826020015183604001515f845f015114610eb057835f0151610ebe565b610ebd8560200151610614565b5b61147b565b50610ed2565b5f915050610ed8565b60019150505b92915050565b610ee66111f2565b8060601b610efb57637448fbae5f526004601cfd5b610f04816113b5565b50565b5f610f1133611006565b610f47576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8383810190610f579190612222565b905060016002811115610f6d57610f6c612269565b5b815f01516002811115610f8357610f82612269565b5b1480610fb557505f6002811115610f9d57610f9c612269565b5b815f01516002811115610fb357610fb2612269565b5b145b15610ff1575f8160600151806020019051810190610fd391906122f9565b9050610feb82602001518360400151835f015161147b565b50610ffa565b5f915050611000565b60019150505b92915050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061108e575061105f610c7c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f74009ff1000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611120575061111f82611693565b5b9050919050565b5f805f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461118a57611185308573ffffffffffffffffffffffffffffffffffffffff1661138290919063ffffffff16565b61118c565b475b90506111df5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054826111d991906123b9565b8461170c565b91505092915050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314611227576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b61125a61182a565b156112d2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561129457630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350611325565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af13d1560015f5114171661137357637939f4245f526004601cfd5b5f606052806040525050505050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b6113bd61182a565b15611422577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611478565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b3068929eee149b4bd2126854036114995763ab143c065f526004601cfd5b3068929eee149b4bd21268555f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611519578282826040517fbf182be800000000000000000000000000000000000000000000000000000000815260040161151093929190612427565b60405180910390fd5b61152283610614565b811115611572578261153384610614565b826040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016115699392919061245c565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115bd91906123b9565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160657611601828261182e565b611632565b61163182828573ffffffffffffffffffffffffffffffffffffffff1661184b9092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff167fad4a9acf26d8bba7a8cf1a41160d59be042ee554578e256c98d2ab74cdd43542838360405161167a929190612324565b60405180910390a23868929eee149b4bd2126855505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611705575061170482611894565b5b9050919050565b5f600260109054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661174491906123ec565b67ffffffffffffffff168267ffffffffffffffff161015611767575f9050611824565b600260089054906101000a900467ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff1661179e91906123ec565b67ffffffffffffffff168267ffffffffffffffff16106117c057829050611824565b600260089054906101000a900467ffffffffffffffff1667ffffffffffffffff1660025f9054906101000a900467ffffffffffffffff16836118029190612491565b67ffffffffffffffff168461181791906124cc565b611821919061253a565b90505b92915050565b5f90565b5f385f3884865af16118475763b12d13eb5f526004601cfd5b5050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f5114171661188b576390b8ec185f526004601cfd5b5f603452505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6119428161190e565b811461194c575f80fd5b50565b5f8135905061195d81611939565b92915050565b5f6020828403121561197857611977611906565b5b5f6119858482850161194f565b91505092915050565b5f8115159050919050565b6119a28161198e565b82525050565b5f6020820190506119bb5f830184611999565b92915050565b5f67ffffffffffffffff82169050919050565b6119dd816119c1565b82525050565b5f6020820190506119f65f8301846119d4565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a25826119fc565b9050919050565b611a3581611a1b565b8114611a3f575f80fd5b50565b5f81359050611a5081611a2c565b92915050565b5f60208284031215611a6b57611a6a611906565b5b5f611a7884828501611a42565b91505092915050565b5f819050919050565b611a9381611a81565b82525050565b5f602082019050611aac5f830184611a8a565b92915050565b611abb8161190e565b82525050565b5f602082019050611ad45f830184611ab2565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611afb57611afa611ada565b5b8235905067ffffffffffffffff811115611b1857611b17611ade565b5b602083019150836020820283011115611b3457611b33611ae2565b5b9250929050565b5f8083601f840112611b5057611b4f611ada565b5b8235905067ffffffffffffffff811115611b6d57611b6c611ade565b5b602083019150836020820283011115611b8957611b88611ae2565b5b9250929050565b5f805f8060408587031215611ba857611ba7611906565b5b5f85013567ffffffffffffffff811115611bc557611bc461190a565b5b611bd187828801611ae6565b9450945050602085013567ffffffffffffffff811115611bf457611bf361190a565b5b611c0087828801611b3b565b925092505092959194509250565b5f8083601f840112611c2357611c22611ada565b5b8235905067ffffffffffffffff811115611c4057611c3f611ade565b5b602083019150836001820283011115611c5c57611c5b611ae2565b5b9250929050565b5f8060208385031215611c7957611c78611906565b5b5f83013567ffffffffffffffff811115611c9657611c9561190a565b5b611ca285828601611c0e565b92509250509250929050565b5f8083601f840112611cc357611cc2611ada565b5b8235905067ffffffffffffffff811115611ce057611cdf611ade565b5b602083019150836020820283011115611cfc57611cfb611ae2565b5b9250929050565b5f8060208385031215611d1957611d18611906565b5b5f83013567ffffffffffffffff811115611d3657611d3561190a565b5b611d4285828601611cae565b92509250509250929050565b611d5781611a1b565b82525050565b5f602082019050611d705f830184611d4e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611dad82611a81565b9150611db883611a81565b9250828203905081811115611dd057611dcf611d76565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b611e0c8161198e565b8114611e16575f80fd5b50565b5f81359050611e2781611e03565b92915050565b5f60208284031215611e4257611e41611906565b5b5f611e4f84828501611e19565b91505092915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611ea282611e5c565b810181811067ffffffffffffffff82111715611ec157611ec0611e6c565b5b80604052505050565b5f611ed36118fd565b9050611edf8282611e99565b919050565b5f80fd5b5f67ffffffffffffffff821115611f0257611f01611e6c565b5b602082029050602081019050919050565b5f611f25611f2084611ee8565b611eca565b90508083825260208201905060208402830185811115611f4857611f47611ae2565b5b835b81811015611f715780611f5d8882611a42565b845260208401935050602081019050611f4a565b5050509392505050565b5f82601f830112611f8f57611f8e611ada565b5b8135611f9f848260208601611f13565b91505092915050565b611fb1816119c1565b8114611fbb575f80fd5b50565b5f81359050611fcc81611fa8565b92915050565b5f60a08284031215611fe757611fe6611e58565b5b611ff160a0611eca565b90505f61200084828501611a42565b5f83015250602082013567ffffffffffffffff81111561202357612022611ee4565b5b61202f84828501611f7b565b602083015250604061204384828501611fbe565b604083015250606061205784828501611fbe565b606083015250608061206b84828501611fbe565b60808301525092915050565b5f6020828403121561208c5761208b611906565b5b5f82013567ffffffffffffffff8111156120a9576120a861190a565b5b6120b584828501611fd2565b91505092915050565b600381106120ca575f80fd5b50565b5f813590506120db816120be565b92915050565b5f80fd5b5f67ffffffffffffffff8211156120ff576120fe611e6c565b5b61210882611e5c565b9050602081019050919050565b828183375f83830152505050565b5f612135612130846120e5565b611eca565b905082815260208101848484011115612151576121506120e1565b5b61215c848285612115565b509392505050565b5f82601f83011261217857612177611ada565b5b8135612188848260208601612123565b91505092915050565b5f608082840312156121a6576121a5611e58565b5b6121b06080611eca565b90505f6121bf848285016120cd565b5f8301525060206121d284828501611a42565b60208301525060406121e684828501611a42565b604083015250606082013567ffffffffffffffff81111561220a57612209611ee4565b5b61221684828501612164565b60608301525092915050565b5f6020828403121561223757612236611906565b5b5f82013567ffffffffffffffff8111156122545761225361190a565b5b61226084828501612191565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b61229f81611a81565b81146122a9575f80fd5b50565b5f815190506122ba81612296565b92915050565b5f602082840312156122d5576122d4611e58565b5b6122df6020611eca565b90505f6122ee848285016122ac565b5f8301525092915050565b5f6020828403121561230e5761230d611906565b5b5f61231b848285016122c0565b91505092915050565b5f6040820190506123375f830185611d4e565b6123446020830184611a8a565b9392505050565b5f80fd5b5f80fd5b5f80fd5b5f80833560016020038436030381126123735761237261234b565b5b80840192508235915067ffffffffffffffff8211156123955761239461234f565b5b6020830192506001820236038313156123b1576123b0612353565b5b509250929050565b5f6123c382611a81565b91506123ce83611a81565b92508282019050808211156123e6576123e5611d76565b5b92915050565b5f6123f6826119c1565b9150612401836119c1565b9250828201905067ffffffffffffffff81111561242157612420611d76565b5b92915050565b5f60608201905061243a5f830186611d4e565b6124476020830185611d4e565b6124546040830184611a8a565b949350505050565b5f60608201905061246f5f830186611d4e565b61247c6020830185611a8a565b6124896040830184611a8a565b949350505050565b5f61249b826119c1565b91506124a6836119c1565b9250828203905067ffffffffffffffff8111156124c6576124c5611d76565b5b92915050565b5f6124d682611a81565b91506124e183611a81565b92508282026124ef81611a81565b9150828204841483151761250657612505611d76565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61254482611a81565b915061254f83611a81565b92508261255f5761255e61250d565b5b82820490509291505056fea2646970667358221220e4c8645d909cb742a43f9cdf2cef9d6d1526d51beca39d4a22992606599433ef64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x61400C99 GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xF04E283E GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x459 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x475 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0xFA4CA9B1 EQ PUSH2 0x4CD JUMPI DUP1 PUSH4 0xFE9FBB80 EQ PUSH2 0x509 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x545 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x61400C99 EQ PUSH2 0x359 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x395 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xBE9A6555 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0xD2514E84 EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0xEFBE1C1C EQ PUSH2 0x42F JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x4359D28A GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0x451CC191 EQ PUSH2 0x2A7 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x578BCF35 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x5AEF467A EQ PUSH2 0x329 JUMPI PUSH2 0x155 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x157 JUMPI DUP1 PUSH4 0xFB5A6B4 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x10098AD5 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x13D033C0 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x22D JUMPI PUSH2 0x155 JUMP JUMPDEST CALLDATASIZE PUSH2 0x155 JUMPI STOP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x162 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH2 0x581 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x5FA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DE SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH2 0x66D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22B PUSH2 0x687 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x6D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x1AC1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x262 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x1B90 JUMP JUMPDEST PUSH2 0x6FF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x809 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C8 SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0x9B3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DA SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2EB PUSH2 0x9BA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x313 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30E SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x320 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x343 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33E SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0xA38 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x350 SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x364 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x37A SWAP2 SWAP1 PUSH2 0x1D03 JUMP JUMPDEST PUSH2 0xC05 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38C SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x39D PUSH2 0xC69 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3B3 PUSH2 0xC7C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C0 SWAP2 SWAP1 PUSH2 0x1D5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DD PUSH2 0xCA4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EA SWAP2 SWAP1 PUSH2 0x19E3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x419 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xCBD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x43A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x443 PUSH2 0xD74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x450 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x473 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46E SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xDBB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x480 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x49B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0xDF9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A8 SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4CB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C6 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0xEDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x1C63 JUMP JUMPDEST PUSH2 0xF07 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x500 SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x514 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x52F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x52A SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x1006 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53C SWAP2 SWAP1 PUSH2 0x19A8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x550 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x1095 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x578 SWAP2 SWAP1 PUSH2 0x1A99 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x7ADED85D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x5F3 JUMPI POP PUSH2 0x5F2 DUP3 PUSH2 0x10AE JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0x65C DUP4 TIMESTAMP PUSH2 0x1127 JUMP JUMPDEST PUSH2 0x666 SWAP2 SWAP1 PUSH2 0x1DA3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x690 PUSH2 0x11E8 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x7ADED85D00000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x707 PUSH2 0x11F2 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x746 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x802 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x766 JUMPI PUSH2 0x765 PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x1E2D JUMP JUMPDEST PUSH1 0x1 PUSH0 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x791 JUMPI PUSH2 0x790 PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x7A6 SWAP2 SWAP1 PUSH2 0x1A56 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x748 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x812 PUSH2 0x1229 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x844 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x83B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x855 SWAP2 SWAP1 PUSH2 0x2077 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x2 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x80 ADD MLOAD PUSH1 0x2 PUSH1 0x10 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x8E9 DUP2 PUSH0 ADD MLOAD PUSH2 0x1252 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0x977 JUMPI PUSH1 0x1 DUP1 PUSH0 DUP5 PUSH1 0x20 ADD MLOAD DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x913 JUMPI PUSH2 0x912 PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x8EB JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x9AE JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA49 SWAP2 SWAP1 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA5E JUMPI PUSH2 0xA5D PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA74 JUMPI PUSH2 0xA73 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xAEA JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xA92 SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP DUP1 PUSH0 ADD MLOAD CALLVALUE EQ PUSH2 0xAE4 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xADB SWAP3 SWAP2 SWAP1 PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xBF9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAFE JUMPI PUSH2 0xAFD PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB14 JUMPI PUSH2 0xB13 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST SUB PUSH2 0xBEF JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xB32 SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP PUSH2 0xB6C DUP3 PUSH1 0x40 ADD MLOAD ADDRESS DUP4 PUSH0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1328 SWAP1 SWAP4 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH2 0xB9D ADDRESS DUP5 PUSH1 0x20 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1382 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO PUSH2 0xBE9 JUMPI DUP2 PUSH1 0x20 ADD MLOAD DUP2 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0xCECE04C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBE0 SWAP3 SWAP2 SWAP1 PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH2 0xBF8 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xBFF JUMP JUMPDEST JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 SWAP1 POP JUMPDEST DUP4 DUP4 SWAP1 POP DUP2 LT ISZERO PUSH2 0xC5D JUMPI PUSH2 0xC43 DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0xC2C JUMPI PUSH2 0xC2B PUSH2 0x1DD6 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0xC3E SWAP2 SWAP1 PUSH2 0x2357 JUMP JUMPDEST PUSH2 0xF07 JUMP JUMPDEST PUSH2 0xC50 JUMPI PUSH0 SWAP2 POP POP PUSH2 0xC63 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0xC0B JUMP JUMPDEST POP PUSH1 0x1 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC71 PUSH2 0x11F2 JUMP JUMPDEST PUSH2 0xC7A PUSH0 PUSH2 0x13B5 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD20 JUMPI PUSH2 0xD1B ADDRESS DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1382 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0xD22 JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD PUSH2 0xD6C SWAP2 SWAP1 PUSH2 0x23B9 JUMP JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0xDAC SWAP2 SWAP1 PUSH2 0x23EC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xDC3 PUSH2 0x11F2 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDE9 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xDF6 DUP2 PUSH2 0x13B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xE02 PUSH2 0x11F2 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xE12 SWAP2 SWAP1 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE27 JUMPI PUSH2 0xE26 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE3D JUMPI PUSH2 0xE3C PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xE70 JUMPI POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE58 JUMPI PUSH2 0xE57 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xE6E JUMPI PUSH2 0xE6D PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xEC9 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xE8E SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP PUSH2 0xEC3 DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD PUSH0 DUP5 PUSH0 ADD MLOAD EQ PUSH2 0xEB0 JUMPI DUP4 PUSH0 ADD MLOAD PUSH2 0xEBE JUMP JUMPDEST PUSH2 0xEBD DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x614 JUMP JUMPDEST JUMPDEST PUSH2 0x147B JUMP JUMPDEST POP PUSH2 0xED2 JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0xED8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xEE6 PUSH2 0x11F2 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xEFB JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xF04 DUP2 PUSH2 0x13B5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xF11 CALLER PUSH2 0x1006 JUMP JUMPDEST PUSH2 0xF47 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xF57 SWAP2 SWAP1 PUSH2 0x2222 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF6D JUMPI PUSH2 0xF6C PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF83 JUMPI PUSH2 0xF82 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0xFB5 JUMPI POP PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF9D JUMPI PUSH2 0xF9C PUSH2 0x2269 JUMP JUMPDEST JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFB3 JUMPI PUSH2 0xFB2 PUSH2 0x2269 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO PUSH2 0xFF1 JUMPI PUSH0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xFD3 SWAP2 SWAP1 PUSH2 0x22F9 JUMP JUMPDEST SWAP1 POP PUSH2 0xFEB DUP3 PUSH1 0x20 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD DUP4 PUSH0 ADD MLOAD PUSH2 0x147B JUMP JUMPDEST POP PUSH2 0xFFA JUMP JUMPDEST PUSH0 SWAP2 POP POP PUSH2 0x1000 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 PUSH2 0x108E JUMPI POP PUSH2 0x105F PUSH2 0xC7C JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x74009FF100000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1120 JUMPI POP PUSH2 0x111F DUP3 PUSH2 0x1693 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x118A JUMPI PUSH2 0x1185 ADDRESS DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1382 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x118C JUMP JUMPDEST SELFBALANCE JUMPDEST SWAP1 POP PUSH2 0x11DF PUSH0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD DUP3 PUSH2 0x11D9 SWAP2 SWAP1 PUSH2 0x23B9 JUMP JUMPDEST DUP5 PUSH2 0x170C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x1227 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x125A PUSH2 0x182A JUMP JUMPDEST ISZERO PUSH2 0x12D2 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x1294 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x1325 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE DUP4 PUSH1 0x60 SHL PUSH1 0x2C MSTORE PUSH16 0x23B872DD000000000000000000000000 PUSH1 0xC MSTORE PUSH1 0x20 PUSH0 PUSH1 0x64 PUSH1 0x1C PUSH0 DUP10 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1373 JUMPI PUSH4 0x7939F424 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13BD PUSH2 0x182A JUMP JUMPDEST ISZERO PUSH2 0x1422 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1478 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SLOAD SUB PUSH2 0x1499 JUMPI PUSH4 0xAB143C06 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST ADDRESS PUSH9 0x929EEE149B4BD21268 SSTORE PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1519 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xBF182BE800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1510 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1522 DUP4 PUSH2 0x614 JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1572 JUMPI DUP3 PUSH2 0x1533 DUP5 PUSH2 0x614 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1569 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x245C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x15BD SWAP2 SWAP1 PUSH2 0x23B9 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1606 JUMPI PUSH2 0x1601 DUP3 DUP3 PUSH2 0x182E JUMP JUMPDEST PUSH2 0x1632 JUMP JUMPDEST PUSH2 0x1631 DUP3 DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x184B SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xAD4A9ACF26D8BBA7A8CF1A41160D59BE042EE554578E256C98D2AB74CDD43542 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x167A SWAP3 SWAP2 SWAP1 PUSH2 0x2324 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 CODESIZE PUSH9 0x929EEE149B4BD21268 SSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1705 JUMPI POP PUSH2 0x1704 DUP3 PUSH2 0x1894 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH1 0x10 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x1744 SWAP2 SWAP1 PUSH2 0x23EC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1767 JUMPI PUSH0 SWAP1 POP PUSH2 0x1824 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH2 0x179E SWAP2 SWAP1 PUSH2 0x23EC JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND LT PUSH2 0x17C0 JUMPI DUP3 SWAP1 POP PUSH2 0x1824 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x8 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP4 PUSH2 0x1802 SWAP2 SWAP1 PUSH2 0x2491 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND DUP5 PUSH2 0x1817 SWAP2 SWAP1 PUSH2 0x24CC JUMP JUMPDEST PUSH2 0x1821 SWAP2 SWAP1 PUSH2 0x253A JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 CODESIZE PUSH0 CODESIZE DUP5 DUP7 GAS CALL PUSH2 0x1847 JUMPI PUSH4 0xB12D13EB PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x188B JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1942 DUP2 PUSH2 0x190E JUMP JUMPDEST DUP2 EQ PUSH2 0x194C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x195D DUP2 PUSH2 0x1939 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1978 JUMPI PUSH2 0x1977 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1985 DUP5 DUP3 DUP6 ADD PUSH2 0x194F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19A2 DUP2 PUSH2 0x198E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19BB PUSH0 DUP4 ADD DUP5 PUSH2 0x1999 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19DD DUP2 PUSH2 0x19C1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x19F6 PUSH0 DUP4 ADD DUP5 PUSH2 0x19D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A25 DUP3 PUSH2 0x19FC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A35 DUP2 PUSH2 0x1A1B JUMP JUMPDEST DUP2 EQ PUSH2 0x1A3F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A50 DUP2 PUSH2 0x1A2C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A6B JUMPI PUSH2 0x1A6A PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A78 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A93 DUP2 PUSH2 0x1A81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AAC PUSH0 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1ABB DUP2 PUSH2 0x190E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AD4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1AB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1AFB JUMPI PUSH2 0x1AFA PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B18 JUMPI PUSH2 0x1B17 PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B34 JUMPI PUSH2 0x1B33 PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1B50 JUMPI PUSH2 0x1B4F PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B6D JUMPI PUSH2 0x1B6C PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1B89 JUMPI PUSH2 0x1B88 PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1BA8 JUMPI PUSH2 0x1BA7 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BC5 JUMPI PUSH2 0x1BC4 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1BD1 DUP8 DUP3 DUP9 ADD PUSH2 0x1AE6 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1BF4 JUMPI PUSH2 0x1BF3 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1C00 DUP8 DUP3 DUP9 ADD PUSH2 0x1B3B JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1C23 JUMPI PUSH2 0x1C22 PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C40 JUMPI PUSH2 0x1C3F PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1C5C JUMPI PUSH2 0x1C5B PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C79 JUMPI PUSH2 0x1C78 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1C96 JUMPI PUSH2 0x1C95 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1CA2 DUP6 DUP3 DUP7 ADD PUSH2 0x1C0E JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1CC3 JUMPI PUSH2 0x1CC2 PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CE0 JUMPI PUSH2 0x1CDF PUSH2 0x1ADE JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1CFC JUMPI PUSH2 0x1CFB PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D19 JUMPI PUSH2 0x1D18 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D36 JUMPI PUSH2 0x1D35 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x1D42 DUP6 DUP3 DUP7 ADD PUSH2 0x1CAE JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D57 DUP2 PUSH2 0x1A1B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D70 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D4E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1DAD DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DB8 DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1DD0 JUMPI PUSH2 0x1DCF PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1E0C DUP2 PUSH2 0x198E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E16 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E27 DUP2 PUSH2 0x1E03 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E42 JUMPI PUSH2 0x1E41 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1E4F DUP5 DUP3 DUP6 ADD PUSH2 0x1E19 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1EA2 DUP3 PUSH2 0x1E5C JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1EC1 JUMPI PUSH2 0x1EC0 PUSH2 0x1E6C JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1ED3 PUSH2 0x18FD JUMP JUMPDEST SWAP1 POP PUSH2 0x1EDF DUP3 DUP3 PUSH2 0x1E99 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1F02 JUMPI PUSH2 0x1F01 PUSH2 0x1E6C JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F25 PUSH2 0x1F20 DUP5 PUSH2 0x1EE8 JUMP JUMPDEST PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x1F48 JUMPI PUSH2 0x1F47 PUSH2 0x1AE2 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F71 JUMPI DUP1 PUSH2 0x1F5D DUP9 DUP3 PUSH2 0x1A42 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1F4A JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1F8F JUMPI PUSH2 0x1F8E PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F9F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1F13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FB1 DUP2 PUSH2 0x19C1 JUMP JUMPDEST DUP2 EQ PUSH2 0x1FBB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FCC DUP2 PUSH2 0x1FA8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FE7 JUMPI PUSH2 0x1FE6 PUSH2 0x1E58 JUMP JUMPDEST JUMPDEST PUSH2 0x1FF1 PUSH1 0xA0 PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2000 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2023 JUMPI PUSH2 0x2022 PUSH2 0x1EE4 JUMP JUMPDEST JUMPDEST PUSH2 0x202F DUP5 DUP3 DUP6 ADD PUSH2 0x1F7B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x2043 DUP5 DUP3 DUP6 ADD PUSH2 0x1FBE JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x2057 DUP5 DUP3 DUP6 ADD PUSH2 0x1FBE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x206B DUP5 DUP3 DUP6 ADD PUSH2 0x1FBE JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x208C JUMPI PUSH2 0x208B PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20A9 JUMPI PUSH2 0x20A8 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x20B5 DUP5 DUP3 DUP6 ADD PUSH2 0x1FD2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x20CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x20DB DUP2 PUSH2 0x20BE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x20FF JUMPI PUSH2 0x20FE PUSH2 0x1E6C JUMP JUMPDEST JUMPDEST PUSH2 0x2108 DUP3 PUSH2 0x1E5C JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2135 PUSH2 0x2130 DUP5 PUSH2 0x20E5 JUMP JUMPDEST PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2151 JUMPI PUSH2 0x2150 PUSH2 0x20E1 JUMP JUMPDEST JUMPDEST PUSH2 0x215C DUP5 DUP3 DUP6 PUSH2 0x2115 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2178 JUMPI PUSH2 0x2177 PUSH2 0x1ADA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2188 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2123 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21A6 JUMPI PUSH2 0x21A5 PUSH2 0x1E58 JUMP JUMPDEST JUMPDEST PUSH2 0x21B0 PUSH1 0x80 PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x21BF DUP5 DUP3 DUP6 ADD PUSH2 0x20CD JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x21D2 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x21E6 DUP5 DUP3 DUP6 ADD PUSH2 0x1A42 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x220A JUMPI PUSH2 0x2209 PUSH2 0x1EE4 JUMP JUMPDEST JUMPDEST PUSH2 0x2216 DUP5 DUP3 DUP6 ADD PUSH2 0x2164 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2237 JUMPI PUSH2 0x2236 PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2254 JUMPI PUSH2 0x2253 PUSH2 0x190A JUMP JUMPDEST JUMPDEST PUSH2 0x2260 DUP5 DUP3 DUP6 ADD PUSH2 0x2191 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x229F DUP2 PUSH2 0x1A81 JUMP JUMPDEST DUP2 EQ PUSH2 0x22A9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x22BA DUP2 PUSH2 0x2296 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22D5 JUMPI PUSH2 0x22D4 PUSH2 0x1E58 JUMP JUMPDEST JUMPDEST PUSH2 0x22DF PUSH1 0x20 PUSH2 0x1ECA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x22EE DUP5 DUP3 DUP6 ADD PUSH2 0x22AC JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x230E JUMPI PUSH2 0x230D PUSH2 0x1906 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x231B DUP5 DUP3 DUP6 ADD PUSH2 0x22C0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2337 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x2344 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x2373 JUMPI PUSH2 0x2372 PUSH2 0x234B JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2395 JUMPI PUSH2 0x2394 PUSH2 0x234F JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x23B1 JUMPI PUSH2 0x23B0 PUSH2 0x2353 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x23C3 DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x23CE DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x23E6 JUMPI PUSH2 0x23E5 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x23F6 DUP3 PUSH2 0x19C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x2401 DUP4 PUSH2 0x19C1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2421 JUMPI PUSH2 0x2420 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x243A PUSH0 DUP4 ADD DUP7 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x2447 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x2454 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x246F PUSH0 DUP4 ADD DUP7 PUSH2 0x1D4E JUMP JUMPDEST PUSH2 0x247C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A8A JUMP JUMPDEST PUSH2 0x2489 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A8A JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x249B DUP3 PUSH2 0x19C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x24A6 DUP4 PUSH2 0x19C1 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24C6 JUMPI PUSH2 0x24C5 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x24D6 DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x24E1 DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x24EF DUP2 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x2506 JUMPI PUSH2 0x2505 PUSH2 0x1D76 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x2544 DUP3 PUSH2 0x1A81 JUMP JUMPDEST SWAP2 POP PUSH2 0x254F DUP4 PUSH2 0x1A81 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x255F JUMPI PUSH2 0x255E PUSH2 0x250D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE4 0xC8 PUSH5 0x5D909CB742 LOG4 EXTCODEHASH SWAP13 0xDF 0x2C 0xEF SWAP14 PUSH14 0x1526D51BECA39D4A229926065994 CALLER 0xEF PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"1862:1090:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11681:203:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2305:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8411:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2396:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;11920:135:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6663:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2533:417:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9053:104:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;8811:138:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3207:1097;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6399:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:16;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2213:19:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7767:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7336:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4811:574:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5676:499:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7066:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11693:435:16;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11681:203:41;11766:4;11804:32;11789:47;;;:11;:47;;;;:88;;;;11840:37;11865:11;11840:24;:37::i;:::-;11789:88;11782:95;;11681:203;;;:::o;2305:22::-;;;;;;;;;;;;;:::o;8411:187::-;8484:7;8563:20;:28;8584:6;8563:28;;;;;;;;;;;;;;;;8510:50;8528:6;8543:15;8510:17;:50::i;:::-;:81;;;;:::i;:::-;8503:88;;8411:187;;;:::o;2396:19::-;;;;;;;;;;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;11920:135:41:-;11991:6;12016:32;12009:39;;11920:135;:::o;6663:370::-;12517:13:16;:11;:13::i;:::-;6849:11:41::1;;:18;;6830:8;;:15;;:37;6826:77;;6876:27;;;;;;;;;;;;;;6826:77;6918:9;6913:114;6937:8;;:15;;6933:1;:19;6913:114;;;7002:11;;7014:1;7002:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6973:13;:26;6987:8;;6996:1;6987:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;6973:26;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;6954:3;;;;;;;6913:114;;;;6663:370:::0;;;;:::o;2533:417:44:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;2621:24:44::1;2659:5;;2648:32;;;;;;;:::i;:::-;2621:59;;2699:5;:11;;;2691:5;;:19;;;;;;;;;;;;;;;;;;2731:5;:14;;;2720:8;;:25;;;;;;;;;;;;;;;;;;2763:5;:11;;;2755:5;;:19;;;;;;;;;;;;;;;;;;2785:29;2802:5;:11;;;2785:16;:29::i;:::-;2829:9;2824:120;2848:5;:16;;;:23;2844:1;:27;2824:120;;;2929:4;2892:13:::0;:34:::1;2906:5;:16;;;2923:1;2906:19;;;;;;;;:::i;:::-;;;;;;;;2892:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;2873:3;;;;;;;2824:120;;;;2611:339;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;2533:417:44;;:::o;9053:104:41:-;9123:7;9053:104;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8811:138:41:-;8888:7;8914:20;:28;8935:6;8914:28;;;;;;;;;;;;;;;;8907:35;;8811:138;;;:::o;3207:1097::-;3290:4;3306:23;3343:5;;3332:29;;;;;;;:::i;:::-;3306:55;;3396:13;3375:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;3371:905;;3425:30;3469:7;:12;;;3458:43;;;;;;;;;;;;:::i;:::-;3425:76;;3607:7;:14;;;3594:9;:27;3590:121;;3666:7;:13;;;3681:7;:14;;;3648:48;;;;;;;;;;;;:::i;:::-;;;;;;;;3590:121;3411:310;3371:905;;;3752:15;3731:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;3727:549;;3783:30;3827:7;:12;;;3816:43;;;;;;;;;;;;:::i;:::-;3783:76;;3945:77;3976:7;:14;;;4000:4;4007:7;:14;;;3945:7;:13;;;:30;;;;:77;;;;;;:::i;:::-;4081:7;:14;;;4040:38;4072:4;4040:7;:13;;;:23;;;;:38;;;;:::i;:::-;:55;4036:149;;;4140:7;:13;;;4155:7;:14;;;4122:48;;;;;;;;;;;;:::i;:::-;;;;;;;;4036:149;3769:426;3727:549;;;4260:5;4253:12;;;;;3727:549;3371:905;4293:4;4286:11;;;3207:1097;;;;;:::o;6399:231::-;6481:4;6502:9;6514:1;6502:13;;6497:105;6521:5;;:12;;6517:1;:16;6497:105;;;6559:18;6568:5;;6574:1;6568:8;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;6559;:18::i;:::-;6554:37;;6586:5;6579:12;;;;;6554:37;6535:3;;;;;;;6497:105;;;;6619:4;6612:11;;6399:231;;;;;:::o;8762:100:16:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;2213:19:41:-;;;;;;;;;;;;;:::o;7767:248::-;7838:7;7857:15;7893:1;7875:20;;:6;:20;;;:78;;7922:31;7947:4;7922:6;:16;;;;:31;;;;:::i;:::-;7875:78;;;7898:21;7875:78;7857:96;;8001:7;7970:20;:28;7991:6;7970:28;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;7963:45;;;7767:248;;;:::o;7336:95::-;7382:7;7416:8;;;;;;;;;;;7408:5;;;;;;;;;;;:16;;;;:::i;:::-;7401:23;;;;7336:95;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;4811:574:41:-;4895:4;12517:13:16;:11;:13::i;:::-;4911:23:41::1;4948:5;;4937:29;;;;;;;:::i;:::-;4911:55;;5001:13;4980:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;:74;;;;5039:15;5018:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;4980:74;4976:381;;;5070:30;5114:7;:12;;;5103:43;;;;;;;;;;;;:::i;:::-;5070:76;;5160:143;5195:7;:13;;;5210:7;:14;;;5244:1;5226:7;:14;;;:19;:63;;5275:7;:14;;;5226:63;;;5248:24;5258:7;:13;;;5248:9;:24::i;:::-;5226:63;5160:17;:143::i;:::-;5056:258;4976:381;;;5341:5;5334:12;;;;;4976:381;5374:4;5367:11;;;12540:1:16;4811:574:41::0;;;;:::o;8348:349:16:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;5676:499:41:-;5764:4;2549:24;2562:10;2549:12;:24::i;:::-;2544:52;;2582:14;;;;;;;;;;;;;;2544:52;5780:23:::1;5817:5;;5806:29;;;;;;;:::i;:::-;5780:55;;5870:15;5849:36;;;;;;;;:::i;:::-;;:7;:17;;;:36;;;;;;;;:::i;:::-;;;:74;;;;5910:13;5889:34;;;;;;;;:::i;:::-;;:7;:17;;;:34;;;;;;;;:::i;:::-;;;5849:74;5845:302;;;5939:30;5983:7;:12;;;5972:43;;;;;;;;;;;;:::i;:::-;5939:76;;6029:64;6047:7;:13;;;6062:7;:14;;;6078:7;:14;;;6029:17;:64::i;:::-;5925:179;5845:302;;;6131:5;6124:12;;;;;5845:302;6164:4;6157:11;;;2606:1;5676:499:::0;;;;:::o;7066:154::-;7144:4;7167:13;:23;7181:8;7167:23;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;7206:7;:5;:7::i;:::-;7194:19;;:8;:19;;;7167:46;7160:53;;7066:154;;;:::o;11693:435:16:-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;5925:205:42:-;6021:4;6059:24;6044:39;;;:11;:39;;;;:79;;;;6087:36;6111:11;6087:23;:36::i;:::-;6044:79;6037:86;;5925:205;;;:::o;10605:303:41:-;10698:7;10717:15;10753:1;10735:20;;:6;:20;;;:78;;10782:31;10807:4;10782:6;:16;;;;:31;;;;:::i;:::-;10735:78;;;10758:21;10735:78;10717:96;;10830:71;10860:20;:28;10881:6;10860:28;;;;;;;;;;;;;;;;10850:7;:38;;;;:::i;:::-;10890:10;10830:19;:71::i;:::-;10823:78;;;10605:303;;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;9109:1139:26:-;9292:4;9286:11;9357:6;9351:4;9344:20;9422:2;9416:4;9409:16;9487:4;9483:2;9479:13;9473:4;9466:27;9549:34;9543:4;9536:48;9950:4;9944;9938;9932;9929:1;9922:5;9915;9910:45;9844:16;9837:24;9833:1;9826:4;9820:11;9817:18;9814:48;9729:244;9702:404;;10019:10;10013:4;10006:24;10087:4;10081;10074:18;9702:404;10132:1;10126:4;10119:15;10194:1;10188:4;10181:15;9263:979;9109:1139;;;;:::o;19260:739::-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;6145:1089:16:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;9616:708:41:-;1635:9:25;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;9827:1:41::1;9812:17;;:3;:17;;::::0;9808:66:::1;;9853:6;9861:3;9866:7;9838:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;9808:66;9898:17;9908:6;9898:9;:17::i;:::-;9888:7;:27;9884:118;;;9956:6;9964:17;9974:6;9964:9;:17::i;:::-;9983:7;9938:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;9884:118;10044:7;10012:20;:28:::0;10033:6:::1;10012:28;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;10131:1;10113:20;;:6;:20;;::::0;10109:160:::1;;10149:45;10181:3;10186:7;10149:31;:45::i;:::-;10109:160;;;10225:33;10245:3;10250:7;10225:6;:19;;;;:33;;;;;:::i;:::-;10109:160;10296:6;10284:33;;;10304:3;10309:7;10284:33;;;;;;;:::i;:::-;;;;;;;;1937:10:25::0;1913:22;1906:42;9616:708:41;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;11279:366:41:-;11382:7;11425:5;;;;;;;;;;;11417;;;;;;;;;;;:13;;;;:::i;:::-;11405:25;;:9;:25;;;11401:238;;;11453:1;11446:8;;;;11401:238;11496:8;;;;;;;;;;;11488:5;;;;;;;;;;;:16;;;;:::i;:::-;11475:29;;:9;:29;;;11471:168;;11527:15;11520:22;;;;11471:168;11620:8;;;;;;;;;;;11580:48;;11611:5;;;;;;;;;;;11599:9;:17;;;;:::i;:::-;11580:37;;:15;:37;;;;:::i;:::-;:48;;;;:::i;:::-;11573:55;;11279:366;;;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;4031:342:26:-;4233:4;4221:10;4215:4;4203:10;4195:6;4191:2;4184:5;4179:59;4169:188;;4271:10;4265:4;4258:24;4338:4;4332;4325:18;4169:188;4031:342;;:::o;13466:939::-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:101::-;1554:7;1594:18;1587:5;1583:30;1572:41;;1518:101;;;:::o;1625:115::-;1710:23;1727:5;1710:23;:::i;:::-;1705:3;1698:36;1625:115;;:::o;1746:218::-;1837:4;1875:2;1864:9;1860:18;1852:26;;1888:69;1954:1;1943:9;1939:17;1930:6;1888:69;:::i;:::-;1746:218;;;;:::o;1970:126::-;2007:7;2047:42;2040:5;2036:54;2025:65;;1970:126;;;:::o;2102:96::-;2139:7;2168:24;2186:5;2168:24;:::i;:::-;2157:35;;2102:96;;;:::o;2204:122::-;2277:24;2295:5;2277:24;:::i;:::-;2270:5;2267:35;2257:63;;2316:1;2313;2306:12;2257:63;2204:122;:::o;2332:139::-;2378:5;2416:6;2403:20;2394:29;;2432:33;2459:5;2432:33;:::i;:::-;2332:139;;;;:::o;2477:329::-;2536:6;2585:2;2573:9;2564:7;2560:23;2556:32;2553:119;;;2591:79;;:::i;:::-;2553:119;2711:1;2736:53;2781:7;2772:6;2761:9;2757:22;2736:53;:::i;:::-;2726:63;;2682:117;2477:329;;;;:::o;2812:77::-;2849:7;2878:5;2867:16;;2812:77;;;:::o;2895:118::-;2982:24;3000:5;2982:24;:::i;:::-;2977:3;2970:37;2895:118;;:::o;3019:222::-;3112:4;3150:2;3139:9;3135:18;3127:26;;3163:71;3231:1;3220:9;3216:17;3207:6;3163:71;:::i;:::-;3019:222;;;;:::o;3247:115::-;3332:23;3349:5;3332:23;:::i;:::-;3327:3;3320:36;3247:115;;:::o;3368:218::-;3459:4;3497:2;3486:9;3482:18;3474:26;;3510:69;3576:1;3565:9;3561:17;3552:6;3510:69;:::i;:::-;3368:218;;;;:::o;3592:117::-;3701:1;3698;3691:12;3715:117;3824:1;3821;3814:12;3838:117;3947:1;3944;3937:12;3978:568;4051:8;4061:6;4111:3;4104:4;4096:6;4092:17;4088:27;4078:122;;4119:79;;:::i;:::-;4078:122;4232:6;4219:20;4209:30;;4262:18;4254:6;4251:30;4248:117;;;4284:79;;:::i;:::-;4248:117;4398:4;4390:6;4386:17;4374:29;;4452:3;4444:4;4436:6;4432:17;4422:8;4418:32;4415:41;4412:128;;;4459:79;;:::i;:::-;4412:128;3978:568;;;;;:::o;4566:565::-;4636:8;4646:6;4696:3;4689:4;4681:6;4677:17;4673:27;4663:122;;4704:79;;:::i;:::-;4663:122;4817:6;4804:20;4794:30;;4847:18;4839:6;4836:30;4833:117;;;4869:79;;:::i;:::-;4833:117;4983:4;4975:6;4971:17;4959:29;;5037:3;5029:4;5021:6;5017:17;5007:8;5003:32;5000:41;4997:128;;;5044:79;;:::i;:::-;4997:128;4566:565;;;;;:::o;5137:928::-;5256:6;5264;5272;5280;5329:2;5317:9;5308:7;5304:23;5300:32;5297:119;;;5335:79;;:::i;:::-;5297:119;5483:1;5472:9;5468:17;5455:31;5513:18;5505:6;5502:30;5499:117;;;5535:79;;:::i;:::-;5499:117;5648:80;5720:7;5711:6;5700:9;5696:22;5648:80;:::i;:::-;5630:98;;;;5426:312;5805:2;5794:9;5790:18;5777:32;5836:18;5828:6;5825:30;5822:117;;;5858:79;;:::i;:::-;5822:117;5971:77;6040:7;6031:6;6020:9;6016:22;5971:77;:::i;:::-;5953:95;;;;5748:310;5137:928;;;;;;;:::o;6084:552::-;6141:8;6151:6;6201:3;6194:4;6186:6;6182:17;6178:27;6168:122;;6209:79;;:::i;:::-;6168:122;6322:6;6309:20;6299:30;;6352:18;6344:6;6341:30;6338:117;;;6374:79;;:::i;:::-;6338:117;6488:4;6480:6;6476:17;6464:29;;6542:3;6534:4;6526:6;6522:17;6512:8;6508:32;6505:41;6502:128;;;6549:79;;:::i;:::-;6502:128;6084:552;;;;;:::o;6642:527::-;6712:6;6720;6769:2;6757:9;6748:7;6744:23;6740:32;6737:119;;;6775:79;;:::i;:::-;6737:119;6923:1;6912:9;6908:17;6895:31;6953:18;6945:6;6942:30;6939:117;;;6975:79;;:::i;:::-;6939:117;7088:64;7144:7;7135:6;7124:9;7120:22;7088:64;:::i;:::-;7070:82;;;;6866:296;6642:527;;;;;:::o;7190:579::-;7274:8;7284:6;7334:3;7327:4;7319:6;7315:17;7311:27;7301:122;;7342:79;;:::i;:::-;7301:122;7455:6;7442:20;7432:30;;7485:18;7477:6;7474:30;7471:117;;;7507:79;;:::i;:::-;7471:117;7621:4;7613:6;7609:17;7597:29;;7675:3;7667:4;7659:6;7655:17;7645:8;7641:32;7638:41;7635:128;;;7682:79;;:::i;:::-;7635:128;7190:579;;;;;:::o;7775:581::-;7872:6;7880;7929:2;7917:9;7908:7;7904:23;7900:32;7897:119;;;7935:79;;:::i;:::-;7897:119;8083:1;8072:9;8068:17;8055:31;8113:18;8105:6;8102:30;8099:117;;;8135:79;;:::i;:::-;8099:117;8248:91;8331:7;8322:6;8311:9;8307:22;8248:91;:::i;:::-;8230:109;;;;8026:323;7775:581;;;;;:::o;8362:118::-;8449:24;8467:5;8449:24;:::i;:::-;8444:3;8437:37;8362:118;;:::o;8486:222::-;8579:4;8617:2;8606:9;8602:18;8594:26;;8630:71;8698:1;8687:9;8683:17;8674:6;8630:71;:::i;:::-;8486:222;;;;:::o;8714:180::-;8762:77;8759:1;8752:88;8859:4;8856:1;8849:15;8883:4;8880:1;8873:15;8900:194;8940:4;8960:20;8978:1;8960:20;:::i;:::-;8955:25;;8994:20;9012:1;8994:20;:::i;:::-;8989:25;;9038:1;9035;9031:9;9023:17;;9062:1;9056:4;9053:11;9050:37;;;9067:18;;:::i;:::-;9050:37;8900:194;;;;:::o;9100:180::-;9148:77;9145:1;9138:88;9245:4;9242:1;9235:15;9269:4;9266:1;9259:15;9286:116;9356:21;9371:5;9356:21;:::i;:::-;9349:5;9346:32;9336:60;;9392:1;9389;9382:12;9336:60;9286:116;:::o;9408:133::-;9451:5;9489:6;9476:20;9467:29;;9505:30;9529:5;9505:30;:::i;:::-;9408:133;;;;:::o;9547:323::-;9603:6;9652:2;9640:9;9631:7;9627:23;9623:32;9620:119;;;9658:79;;:::i;:::-;9620:119;9778:1;9803:50;9845:7;9836:6;9825:9;9821:22;9803:50;:::i;:::-;9793:60;;9749:114;9547:323;;;;:::o;9876:117::-;9985:1;9982;9975:12;9999:102;10040:6;10091:2;10087:7;10082:2;10075:5;10071:14;10067:28;10057:38;;9999:102;;;:::o;10107:180::-;10155:77;10152:1;10145:88;10252:4;10249:1;10242:15;10276:4;10273:1;10266:15;10293:281;10376:27;10398:4;10376:27;:::i;:::-;10368:6;10364:40;10506:6;10494:10;10491:22;10470:18;10458:10;10455:34;10452:62;10449:88;;;10517:18;;:::i;:::-;10449:88;10557:10;10553:2;10546:22;10336:238;10293:281;;:::o;10580:129::-;10614:6;10641:20;;:::i;:::-;10631:30;;10670:33;10698:4;10690:6;10670:33;:::i;:::-;10580:129;;;:::o;10715:117::-;10824:1;10821;10814:12;10838:311;10915:4;11005:18;10997:6;10994:30;10991:56;;;11027:18;;:::i;:::-;10991:56;11077:4;11069:6;11065:17;11057:25;;11137:4;11131;11127:15;11119:23;;10838:311;;;:::o;11172:710::-;11268:5;11293:81;11309:64;11366:6;11309:64;:::i;:::-;11293:81;:::i;:::-;11284:90;;11394:5;11423:6;11416:5;11409:21;11457:4;11450:5;11446:16;11439:23;;11510:4;11502:6;11498:17;11490:6;11486:30;11539:3;11531:6;11528:15;11525:122;;;11558:79;;:::i;:::-;11525:122;11673:6;11656:220;11690:6;11685:3;11682:15;11656:220;;;11765:3;11794:37;11827:3;11815:10;11794:37;:::i;:::-;11789:3;11782:50;11861:4;11856:3;11852:14;11845:21;;11732:144;11716:4;11711:3;11707:14;11700:21;;11656:220;;;11660:21;11274:608;;11172:710;;;;;:::o;11905:370::-;11976:5;12025:3;12018:4;12010:6;12006:17;12002:27;11992:122;;12033:79;;:::i;:::-;11992:122;12150:6;12137:20;12175:94;12265:3;12257:6;12250:4;12242:6;12238:17;12175:94;:::i;:::-;12166:103;;11982:293;11905:370;;;;:::o;12281:120::-;12353:23;12370:5;12353:23;:::i;:::-;12346:5;12343:34;12333:62;;12391:1;12388;12381:12;12333:62;12281:120;:::o;12407:137::-;12452:5;12490:6;12477:20;12468:29;;12506:32;12532:5;12506:32;:::i;:::-;12407:137;;;;:::o;12590:1258::-;12669:5;12713:4;12701:9;12696:3;12692:19;12688:30;12685:117;;;12721:79;;:::i;:::-;12685:117;12820:21;12836:4;12820:21;:::i;:::-;12811:30;;12901:1;12941:49;12986:3;12977:6;12966:9;12962:22;12941:49;:::i;:::-;12934:4;12927:5;12923:16;12916:75;12851:151;13095:2;13084:9;13080:18;13067:32;13126:18;13118:6;13115:30;13112:117;;;13148:79;;:::i;:::-;13112:117;13268:74;13338:3;13329:6;13318:9;13314:22;13268:74;:::i;:::-;13261:4;13254:5;13250:16;13243:100;13012:342;13414:2;13455:48;13499:3;13490:6;13479:9;13475:22;13455:48;:::i;:::-;13448:4;13441:5;13437:16;13430:74;13364:151;13578:2;13619:48;13663:3;13654:6;13643:9;13639:22;13619:48;:::i;:::-;13612:4;13605:5;13601:16;13594:74;13525:154;13739:3;13781:48;13825:3;13816:6;13805:9;13801:22;13781:48;:::i;:::-;13774:4;13767:5;13763:16;13756:74;13689:152;12590:1258;;;;:::o;13854:549::-;13943:6;13992:2;13980:9;13971:7;13967:23;13963:32;13960:119;;;13998:79;;:::i;:::-;13960:119;14146:1;14135:9;14131:17;14118:31;14176:18;14168:6;14165:30;14162:117;;;14198:79;;:::i;:::-;14162:117;14303:83;14378:7;14369:6;14358:9;14354:22;14303:83;:::i;:::-;14293:93;;14089:307;13854:549;;;;:::o;14409:114::-;14497:1;14490:5;14487:12;14477:40;;14513:1;14510;14503:12;14477:40;14409:114;:::o;14529:169::-;14590:5;14628:6;14615:20;14606:29;;14644:48;14686:5;14644:48;:::i;:::-;14529:169;;;;:::o;14704:117::-;14813:1;14810;14803:12;14827:307;14888:4;14978:18;14970:6;14967:30;14964:56;;;15000:18;;:::i;:::-;14964:56;15038:29;15060:6;15038:29;:::i;:::-;15030:37;;15122:4;15116;15112:15;15104:23;;14827:307;;;:::o;15140:148::-;15238:6;15233:3;15228;15215:30;15279:1;15270:6;15265:3;15261:16;15254:27;15140:148;;;:::o;15294:423::-;15371:5;15396:65;15412:48;15453:6;15412:48;:::i;:::-;15396:65;:::i;:::-;15387:74;;15484:6;15477:5;15470:21;15522:4;15515:5;15511:16;15560:3;15551:6;15546:3;15542:16;15539:25;15536:112;;;15567:79;;:::i;:::-;15536:112;15657:54;15704:6;15699:3;15694;15657:54;:::i;:::-;15377:340;15294:423;;;;;:::o;15736:338::-;15791:5;15840:3;15833:4;15825:6;15821:17;15817:27;15807:122;;15848:79;;:::i;:::-;15807:122;15965:6;15952:20;15990:78;16064:3;16056:6;16049:4;16041:6;16037:17;15990:78;:::i;:::-;15981:87;;15797:277;15736:338;;;;:::o;16110:1090::-;16186:5;16230:4;16218:9;16213:3;16209:19;16205:30;16202:117;;;16238:79;;:::i;:::-;16202:117;16337:21;16353:4;16337:21;:::i;:::-;16328:30;;16422:1;16462:64;16522:3;16513:6;16502:9;16498:22;16462:64;:::i;:::-;16455:4;16448:5;16444:16;16437:90;16368:170;16598:2;16639:49;16684:3;16675:6;16664:9;16660:22;16639:49;:::i;:::-;16632:4;16625:5;16621:16;16614:75;16548:152;16761:2;16802:49;16847:3;16838:6;16827:9;16823:22;16802:49;:::i;:::-;16795:4;16788:5;16784:16;16777:75;16710:153;16950:2;16939:9;16935:18;16922:32;16981:18;16973:6;16970:30;16967:117;;;17003:79;;:::i;:::-;16967:117;17123:58;17177:3;17168:6;17157:9;17153:22;17123:58;:::i;:::-;17116:4;17109:5;17105:16;17098:84;16873:320;16110:1090;;;;:::o;17206:543::-;17292:6;17341:2;17329:9;17320:7;17316:23;17312:32;17309:119;;;17347:79;;:::i;:::-;17309:119;17495:1;17484:9;17480:17;17467:31;17525:18;17517:6;17514:30;17511:117;;;17547:79;;:::i;:::-;17511:117;17652:80;17724:7;17715:6;17704:9;17700:22;17652:80;:::i;:::-;17642:90;;17438:304;17206:543;;;;:::o;17755:180::-;17803:77;17800:1;17793:88;17900:4;17897:1;17890:15;17924:4;17921:1;17914:15;17941:122;18014:24;18032:5;18014:24;:::i;:::-;18007:5;18004:35;17994:63;;18053:1;18050;18043:12;17994:63;17941:122;:::o;18069:143::-;18126:5;18157:6;18151:13;18142:22;;18173:33;18200:5;18173:33;:::i;:::-;18069:143;;;;:::o;18255:446::-;18349:5;18393:4;18381:9;18376:3;18372:19;18368:30;18365:117;;;18401:79;;:::i;:::-;18365:117;18500:21;18516:4;18500:21;:::i;:::-;18491:30;;18582:1;18622:60;18678:3;18669:6;18658:9;18654:22;18622:60;:::i;:::-;18615:4;18608:5;18604:16;18597:86;18531:163;18255:446;;;;:::o;18707:419::-;18811:6;18860:2;18848:9;18839:7;18835:23;18831:32;18828:119;;;18866:79;;:::i;:::-;18828:119;18986:1;19011:98;19101:7;19092:6;19081:9;19077:22;19011:98;:::i;:::-;19001:108;;18957:162;18707:419;;;;:::o;19132:332::-;19253:4;19291:2;19280:9;19276:18;19268:26;;19304:71;19372:1;19361:9;19357:17;19348:6;19304:71;:::i;:::-;19385:72;19453:2;19442:9;19438:18;19429:6;19385:72;:::i;:::-;19132:332;;;;;:::o;19470:117::-;19579:1;19576;19569:12;19593:117;19702:1;19699;19692:12;19716:117;19825:1;19822;19815:12;19839:724;19916:4;19922:6;19978:11;19965:25;20078:1;20072:4;20068:12;20057:8;20041:14;20037:29;20033:48;20013:18;20009:73;19999:168;;20086:79;;:::i;:::-;19999:168;20198:18;20188:8;20184:33;20176:41;;20250:4;20237:18;20227:28;;20278:18;20270:6;20267:30;20264:117;;;20300:79;;:::i;:::-;20264:117;20408:2;20402:4;20398:13;20390:21;;20465:4;20457:6;20453:17;20437:14;20433:38;20427:4;20423:49;20420:136;;;20475:79;;:::i;:::-;20420:136;19929:634;19839:724;;;;;:::o;20569:191::-;20609:3;20628:20;20646:1;20628:20;:::i;:::-;20623:25;;20662:20;20680:1;20662:20;:::i;:::-;20657:25;;20705:1;20702;20698:9;20691:16;;20726:3;20723:1;20720:10;20717:36;;;20733:18;;:::i;:::-;20717:36;20569:191;;;;:::o;20766:205::-;20805:3;20824:19;20841:1;20824:19;:::i;:::-;20819:24;;20857:19;20874:1;20857:19;:::i;:::-;20852:24;;20899:1;20896;20892:9;20885:16;;20922:18;20917:3;20914:27;20911:53;;;20944:18;;:::i;:::-;20911:53;20766:205;;;;:::o;20977:442::-;21126:4;21164:2;21153:9;21149:18;21141:26;;21177:71;21245:1;21234:9;21230:17;21221:6;21177:71;:::i;:::-;21258:72;21326:2;21315:9;21311:18;21302:6;21258:72;:::i;:::-;21340;21408:2;21397:9;21393:18;21384:6;21340:72;:::i;:::-;20977:442;;;;;;:::o;21425:::-;21574:4;21612:2;21601:9;21597:18;21589:26;;21625:71;21693:1;21682:9;21678:17;21669:6;21625:71;:::i;:::-;21706:72;21774:2;21763:9;21759:18;21750:6;21706:72;:::i;:::-;21788;21856:2;21845:9;21841:18;21832:6;21788:72;:::i;:::-;21425:442;;;;;;:::o;21873:208::-;21912:4;21932:19;21949:1;21932:19;:::i;:::-;21927:24;;21965:19;21982:1;21965:19;:::i;:::-;21960:24;;22008:1;22005;22001:9;21993:17;;22032:18;22026:4;22023:28;22020:54;;;22054:18;;:::i;:::-;22020:54;21873:208;;;;:::o;22087:410::-;22127:7;22150:20;22168:1;22150:20;:::i;:::-;22145:25;;22184:20;22202:1;22184:20;:::i;:::-;22179:25;;22239:1;22236;22232:9;22261:30;22279:11;22261:30;:::i;:::-;22250:41;;22440:1;22431:7;22427:15;22424:1;22421:22;22401:1;22394:9;22374:83;22351:139;;22470:18;;:::i;:::-;22351:139;22135:362;22087:410;;;;:::o;22503:180::-;22551:77;22548:1;22541:88;22648:4;22645:1;22638:15;22672:4;22669:1;22662:15;22689:185;22729:1;22746:20;22764:1;22746:20;:::i;:::-;22741:25;;22780:20;22798:1;22780:20;:::i;:::-;22775:25;;22819:1;22809:35;;22824:18;;:::i;:::-;22809:35;22866:1;22863;22859:9;22854:14;;22689:185;;;;:::o"},"methodIdentifiers":{"allocate(bytes)":"5aef467a","available(address)":"10098ad5","cancelOwnershipHandover()":"54d1f13d","cliff()":"13d033c0","completeOwnershipHandover(address)":"f04e283e","disburse(bytes)":"fa4ca9b1","disburseBatch(bytes[])":"61400c99","distributed(address)":"578bcf35","duration()":"0fb5a6b4","end()":"efbe1c1c","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isAuthorized(address)":"fe9fbb80","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","reclaim(bytes)":"f1c30ec0","reconcile(bytes)":"451cc191","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","start()":"be9a6555","supportsInterface(bytes4)":"01ffc9a7","total(address)":"d2514e84","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InvalidAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"}],\"name\":\"Authorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cliff\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data_\",\"type\":\"bytes[]\"}],\"name\":\"disburseBatch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"distributed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"duration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"end\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account_\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reconcile\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"account_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"start\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"}],\"name\":\"total\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"Take note of the following when making use of this budget type: - The budget is designed to manage native and ERC20 token balances only. Using rebasing tokens or other non-standard token types may result in unexpected behavior. - Any assets allocated to this type of budget will follow the vesting schedule as if they were locked from the beginning, which is to say that, if the vesting has already started, some portion of the assets will be immediately available for distribution. - A vesting budget can also act as a time-lock, unlocking all assets at a specified point in time. To release assets at a specific time rather than vesting them over time, set the `start` to the desired time and the `duration` to zero. - This contract is {Ownable} to enable the owner to allocate to the budget, reclaim and disburse assets from the budget, and to set authorized addresses. Additionally, the owner can transfer ownership of the budget to another address. Doing so has no effect on the vesting schedule.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes)\":{\"details\":\"The caller must have already approved the contract to transfer the assetIf the asset transfer fails, the allocation will revert\",\"params\":{\"data_\":\"The packed data for the {Transfer} request\"},\"returns\":{\"_0\":\"True if the allocation was successful\"}},\"available(address)\":{\"details\":\"This is equal to the total vested amount minus any already distributed\",\"params\":{\"asset_\":\"The address of the asset (or the zero address for native assets)\"},\"returns\":{\"_0\":\"The amount of assets currently available for distribution\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"disburse(bytes)\":{\"details\":\"The maximum amount that can be disbursed is the {available} amount\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the disbursement was successful\"}},\"disburseBatch(bytes[])\":{\"params\":{\"data_\":\"The packed array of {Transfer} requests\"},\"returns\":{\"_0\":\"True if all disbursements were successful\"}},\"distributed(address)\":{\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The amount of assets distributed\"}},\"end()\":{\"returns\":{\"_0\":\"The end time of the vesting schedule\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget (see {InitPayload})\"}},\"isAuthorized(address)\":{\"details\":\"The mechanism for checking authorization is left to the implementing contract\",\"params\":{\"account_\":\"The account to check\"},\"returns\":{\"_0\":\"True if the account is authorized\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"reclaim(bytes)\":{\"details\":\"Only the owner can directly reclaim assets from the budget, and this action is not subject to the vesting scheduleIf the amount is zero, the entire available balance of the asset will be transferred to the receiverIf the asset transfer fails for any reason, the function will revert\",\"params\":{\"data_\":\"The packed {Transfer} request\"},\"returns\":{\"_0\":\"True if the request was successful\"}},\"reconcile(bytes)\":{\"details\":\"This is a no-op as there is no local balance to reconcile\",\"params\":{\"data_\":\"The compressed data for the reconciliation (amount, token address, token ID, etc.)\"},\"returns\":{\"_0\":\"The amount of assets reconciled\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"details\":\"The mechanism for managing authorization is left to the implementing contract\",\"params\":{\"accounts_\":\"The accounts to authorize or deauthorize\",\"authorized_\":\"The authorization status for the given accounts\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"total(address)\":{\"details\":\"This is equal to the sum of the total current balance and the total distributed amount\",\"params\":{\"asset_\":\"The address of the asset\"},\"returns\":{\"_0\":\"The total amount of assets\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Vesting Budget\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidAllocation(address,uint256)\":[{\"notice\":\"Thrown when the allocation is invalid\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}]},\"events\":{\"Authorized(address,bool)\":{\"notice\":\"Emitted when an address's authorization status changes\"},\"Distributed(address,address,uint256)\":{\"notice\":\"Emitted when assets are distributed from the budget\"}},\"kind\":\"user\",\"methods\":{\"allocate(bytes)\":{\"notice\":\"Allocates assets to the budget\"},\"available(address)\":{\"notice\":\"Get the amount of assets available for distribution from the budget as of the current block timestamp\"},\"cliff()\":{\"notice\":\"The duration of the cliff period (in seconds)\"},\"constructor\":{\"notice\":\"Construct a new SimpleBudget\"},\"disburse(bytes)\":{\"notice\":\"Disburses assets from the budget to a single recipient\"},\"disburseBatch(bytes[])\":{\"notice\":\"Disburses assets from the budget to multiple recipients\"},\"distributed(address)\":{\"notice\":\"Get the amount of assets that have been distributed from the budget\"},\"duration()\":{\"notice\":\"The duration of the vesting schedule (in seconds)\"},\"end()\":{\"notice\":\"Get the end time of the vesting schedule\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isAuthorized(address)\":{\"notice\":\"Check if the given account is authorized to use the budget\"},\"reclaim(bytes)\":{\"notice\":\"Reclaims assets from the budget\"},\"reconcile(bytes)\":{\"notice\":\"Reconcile the budget to ensure the known state matches the actual state\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of the given accounts\"},\"start()\":{\"notice\":\"The timestamp at which the vesting schedule begins\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"total(address)\":{\"notice\":\"Get the total amount of assets allocated to the budget, including any that have been distributed\"}},\"notice\":\"A vesting-based budget implementation that allows for the distribution of assets over time\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/budgets/VestingBudget.sol\":\"VestingBudget\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/AVestingBudget.sol\":{\"keccak256\":\"0x3ee9e391fc031813e51ddec6cedc7b07fec1bb692962b07a5a56193d30d4a66a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://073354050ba17f7c2f1ec7966c85d041c8e932382885efa0baf773fb244c2c5d\",\"dweb:/ipfs/QmTYj4kmDtBFnYSxRGQtdn39jhUJpE93LAb8fdiGjh1vLu\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/budgets/VestingBudget.sol\":{\"keccak256\":\"0x08097b80f9b16caa90226c4a9ef6e7afb0633d156144d7ae43238916ee26db06\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ed81161984f00b62a6f06c52f61d35c0cec8a028cda3dccde4d9013695ded22f\",\"dweb:/ipfs/QmeVzydgWgtgtsWsRSqdu9CgzrbRRcKEpAabK9MbwqkYzd\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/AAllowListIncentive.sol":{"AAllowListIncentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"allowList","outputs":[{"internalType":"contract SimpleAllowList","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowList()":"87b9d25c","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowList\",\"outputs\":[{\"internalType\":\"contract SimpleAllowList\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not already be on the allow list; and - The maximum number of claims must not have been reached; and - This contract must be authorized to modify the allow list\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The claim data\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the allowlist\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"No preflight approval is required for this incentive (no tokens are handled)\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"SimpleAllowList Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"allowList()\":{\"notice\":\"The SimpleAllowList contract\"},\"claim(bytes)\":{\"notice\":\"Claim a slot on the {SimpleAllowList}\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/AAllowListIncentive.sol\":\"AAllowListIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"contracts/allowlists/ASimpleAllowList.sol\":{\"keccak256\":\"0x5eaa5dd8c8950c248d1f9e35c2b37182aa30e94f29a7c40124533e05365a961c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6c74d9642b12b51a71b37d2c44c8f9d013f1e482603435aa69f885efb0957776\",\"dweb:/ipfs/QmU1VFaUvKQhL54jrpvUen5D9qaMEtP5JWdzNxtdaF4Wbk\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/allowlists/SimpleAllowList.sol\":{\"keccak256\":\"0xc8081da07ec10a14bc9f0106fbbaa1d3dc6caf0f15af735ad4bc1885be234922\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2f8559c3969ad76707078c68afa34206e4a82d310ee807a6dc0096176474bb17\",\"dweb:/ipfs/QmYdrxCWgaXsjbESyfkuZneiyVnizjqic7Tcv6BaNjQrFM\"]},\"contracts/incentives/AAllowListIncentive.sol\":{\"keccak256\":\"0x7cbcfc93d4044bc887b5abd5876ae738a7aafa97e4bbaf577f0a422a87118286\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2f1ad86304b69fb3a36d77c7e1853a1e639d0345a7c1130171f950f7aeec6b67\",\"dweb:/ipfs/QmcqZ7f12TkLEayWR9ANQCCn4DuPCKh87BQ75MDpZdxhek\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/ACGDAIncentive.sol":{"ACGDAIncentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cgdaParams","outputs":[{"internalType":"uint256","name":"rewardDecay","type":"uint256"},{"internalType":"uint256","name":"rewardBoost","type":"uint256"},{"internalType":"uint256","name":"lastClaimTime","type":"uint256"},{"internalType":"uint256","name":"currentReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBudget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","cgdaParams()":"75ef18d0","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","supportsInterface(bytes4)":"01ffc9a7","totalBudget()":"c78da39a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cgdaParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rewardDecay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardBoost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastClaimTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentReward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"currentReward()\":{\"details\":\"The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\",\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the incentive\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Continuous Gradual Dutch Auction Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The ERC20-like token used for the incentive\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"currentReward()\":{\"notice\":\"Calculates the current reward based on the time since the last claim.\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/ACGDAIncentive.sol\":\"ACGDAIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/ACGDAIncentive.sol\":{\"keccak256\":\"0xca4f967a2235d7eb78354dd338ae95ed03a76a449043822b5676621afff87988\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b2318bcd0f6bc55e776c89e3c5577e0a58b3367c85b8afff38278ef8cc51fea9\",\"dweb:/ipfs/QmbMDwF9sgpDUz9onzRKXL7rweNaKSc3sKBXC5mkcvTnGC\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/AERC1155Incentive.sol":{"AERC1155Incentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"contract IERC1155","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pure","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":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum AERC1155Incentive.Strategy","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":"tokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","extraData()":"609d3334","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","tokenId()":"17d70f7c","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract IERC1155\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pure\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum AERC1155Incentive.Strategy\",\"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\":\"tokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the incentive\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not check the token ID and will accept all batches\",\"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\":\"This contract does not check the token ID and will accept all tokens\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC1155Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC1155-compliant contract\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"extraData()\":{\"notice\":\"Extra data to be passed to the ERC1155 contract\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"tokenId()\":{\"notice\":\"The ERC1155 token ID for the incentive\"}},\"notice\":\"A simple ERC1155 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/AERC1155Incentive.sol\":\"AERC1155Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/AERC1155Incentive.sol\":{\"keccak256\":\"0xe0e62b237f24ea4d9071c347f7e641a7e61774015b1994cca98b278b79a0e457\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a592a2f9708f1e779db67c6d9a7fcb6975c6bfc784ce972f9cf9736855d7d7e0\",\"dweb:/ipfs/QmVvRfdPJ5Mma7Z3LovZctoKgG6npdTFXHpZZammq4ky6g\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/AERC20Incentive.sol":{"AERC20Incentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"entry","type":"address"}],"name":"Entry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"drawRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"entries","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum AERC20Incentive.Strategy","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","drawRaffle()":"2275aea9","entries(uint256)":"b30906d4","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entry\",\"type\":\"address\"}],\"name\":\"Entry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"drawRaffle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"entries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum AERC20Incentive.Strategy\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"drawRaffle()\":{\"details\":\"Only valid when the strategy is set to `Strategy.RAFFLE`\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the budget `(address owner, address[] authorized)`\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC20 Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"},\"Entry(address)\":{\"notice\":\"Emitted when an entry is added to the raffle\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC20-like token\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"drawRaffle()\":{\"notice\":\"Draw a winner from the raffle\"},\"entries(uint256)\":{\"notice\":\"The set of addresses that have claimed a slot in the incentive raffle\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The limit (max claims, or max entries for raffles)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple ERC20 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/AERC20Incentive.sol\":\"AERC20Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibPRNG.sol\":{\"keccak256\":\"0xdcb71f8dc72bb7384776154ca24d34c23e3c9bcf124bc75f0d2e379f9ebd021d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64e23b9ccfd1a5842268d36fe2798a13b063fe7821d0e952ea4758df5cc386f\",\"dweb:/ipfs/QmVTtkbUuEMi4gryE6NW2BGg5WGwRt1LX4KXNfH87BBZQk\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/AERC20Incentive.sol\":{\"keccak256\":\"0xb3072201faaf1eb3943478e48896562e8d5d9addd1b66e94b50cb4299cbba432\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5969de8d460b9e7c0846a414bf8c73529ddbda32f40df5df68d3a712a2fc8bd1\",\"dweb:/ipfs/QmZyp4jL8ax6UHSgmXKhGLgowBwDbgLSxEdmoPk71EXFfX\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/APointsIncentive.sol":{"APointsIncentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"venue","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":{"cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","venue()":"a270a737"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"venue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not have already claimed the incentive; and - The maximum number of claims must not have been reached; and - This contract must be authorized to operate the points contract's issuance function\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"data_\":\"The packed init data for the incentive\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"budgetData\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Points Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"No token approvals are required for this incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"selector()\":{\"notice\":\"The selector for the issuance function on the points contract\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"venue()\":{\"notice\":\"The address of the points contract\"}},\"notice\":\"A simple on-chain points incentive implementation that allows claiming of soulbound tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/APointsIncentive.sol\":\"APointsIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/APointsIncentive.sol\":{\"keccak256\":\"0x9145d2452b224427307f02b2cd3b3005a67b2a74e76d1091eca557099124cdbe\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://33ab789bafabd599eddabdcbe7f7f029620868ce17c12c8916921cd402fa3cbc\",\"dweb:/ipfs/QmeV5JXAjAx8PTNS5iQyzfJi74k6Ms5LdZVobMRzexe5Pc\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/AllowListIncentive.sol":{"AllowListIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"allowList","outputs":[{"internalType":"contract SimpleAllowList","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17429":{"entryPoint":null,"id":17429,"parameterSlots":0,"returnSlots":0},"@_18117":{"entryPoint":null,"id":18117,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6118cb806101b45f395ff3fe60806040526004361061011e575f3560e01c80638da5cb5b1161009f578063e18e650811610063578063e18e65081461037e578063f04e283e146103ba578063f1c30ec0146103d6578063f2fde38b14610412578063fee81cf41461042e5761011e565b80638da5cb5b14610288578063a4d66daf146102b2578063c63ff8dd146102dc578063c884ef8314610318578063dcc59b6f146103545761011e565b8063439fab91116100e6578063439fab91146101e65780634e7165a21461020e57806354d1f13d1461024a578063715018a61461025457806387b9d25c1461025e5761011e565b806301ffc9a71461012257806307621eca1461015e578063228cb7331461018857806325692962146101b257806328d6183b146101bc575b5f80fd5b34801561012d575f80fd5b5061014860048036038101906101439190610fdc565b61046a565b6040516101559190611021565b60405180910390f35b348015610169575f80fd5b506101726104e3565b60405161017f9190611052565b60405180910390f35b348015610193575f80fd5b5061019c6104ec565b6040516101a99190611052565b60405180910390f35b6101ba6104f2565b005b3480156101c7575f80fd5b506101d0610543565b6040516101dd919061107a565b60405180910390f35b3480156101f1575f80fd5b5061020c600480360381019061020791906110f4565b61056a565b005b348015610219575f80fd5b50610234600480360381019061022f91906110f4565b61064a565b60405161024191906111af565b60405180910390f35b6102526106a1565b005b61025c6106da565b005b348015610269575f80fd5b506102726106ed565b60405161027f9190611249565b60405180910390f35b348015610293575f80fd5b5061029c610712565b6040516102a99190611282565b60405180910390f35b3480156102bd575f80fd5b506102c661073a565b6040516102d39190611052565b60405180910390f35b3480156102e7575f80fd5b5061030260048036038101906102fd91906110f4565b610740565b60405161030f9190611021565b60405180910390f35b348015610323575f80fd5b5061033e600480360381019061033991906112c5565b610900565b60405161034b9190611021565b60405180910390f35b34801561035f575f80fd5b5061036861091d565b6040516103759190611052565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f91906110f4565b610922565b6040516103b19190611021565b60405180910390f35b6103d460048036038101906103cf91906112c5565b610a3f565b005b3480156103e1575f80fd5b506103fc60048036038101906103f791906110f4565b610a7d565b6040516104099190611021565b60405180910390f35b61042c600480360381019061042791906112c5565b610ab0565b005b348015610439575f80fd5b50610454600480360381019061044f91906112c5565b610ad9565b6040516104619190611052565b60405180910390f35b5f7fd1da3349000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104dc57506104db82610af2565b5b9050919050565b5f600154905090565b60015481565b5f6104fb610b6b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fd1da334900000000000000000000000000000000000000000000000000000000905090565b5f610573610b75565b905080546003825580156105a55760018160011c14303b1061059c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105b69190611422565b90506105c133610b9e565b805f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600481905550508015610645576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff811115610666576106656112f4565b5b6040519080825280601f01601f1916602001820160405280156106985781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6106e2610c74565b6106eb5f610cab565b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b5f610749610c74565b5f83838101906107599190611566565b90506004545f8081548092919061076f906115da565b919050551015806107c9575060025f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15610800576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f80610866835f0151610d71565b9150915060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b81526004016108c692919061178f565b5f604051808303815f87803b1580156108dd575f80fd5b505af11580156108ef573d5f803e3d5ffd5b505050506001935050505092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f8083838101906109339190611566565b90506004545f54108015610991575060025f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610a36575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de825f01516040518263ffffffff1660e01b81526004016109f591906117e7565b602060405180830381865afa158015610a10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a34919061183d565b155b91505092915050565b610a47610c74565b63389a75e1600c52805f526020600c208054421115610a6d57636f5e88185f526004601cfd5b5f815550610a7a81610cab565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab8610c74565b8060601b610acd57637448fbae5f526004601cfd5b610ad681610cab565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b645750610b6382610e90565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610ba6610f09565b15610c1e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610be057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c71565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ca9576382b429005f526004601cfd5b565b610cb3610f09565b15610d18577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d6e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610d9057610d8f6112f4565b5b604051908082528060200260200182016040528015610dbe5781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610ddd57610ddc6112f4565b5b604051908082528060200260200182016040528015610e0b5781602001602082028036833780820191505090505b50905084825f81518110610e2257610e21611868565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610e7157610e70611868565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f025750610f0182610f0d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610fbb81610f87565b8114610fc5575f80fd5b50565b5f81359050610fd681610fb2565b92915050565b5f60208284031215610ff157610ff0610f7f565b5b5f610ffe84828501610fc8565b91505092915050565b5f8115159050919050565b61101b81611007565b82525050565b5f6020820190506110345f830184611012565b92915050565b5f819050919050565b61104c8161103a565b82525050565b5f6020820190506110655f830184611043565b92915050565b61107481610f87565b82525050565b5f60208201905061108d5f83018461106b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126110b4576110b3611093565b5b8235905067ffffffffffffffff8111156110d1576110d0611097565b5b6020830191508360018202830111156110ed576110ec61109b565b5b9250929050565b5f806020838503121561110a57611109610f7f565b5b5f83013567ffffffffffffffff81111561112757611126610f83565b5b6111338582860161109f565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6111818261113f565b61118b8185611149565b935061119b818560208601611159565b6111a481611167565b840191505092915050565b5f6020820190508181035f8301526111c78184611177565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61121161120c611207846111cf565b6111ee565b6111cf565b9050919050565b5f611222826111f7565b9050919050565b5f61123382611218565b9050919050565b61124381611229565b82525050565b5f60208201905061125c5f83018461123a565b92915050565b5f61126c826111cf565b9050919050565b61127c81611262565b82525050565b5f6020820190506112955f830184611273565b92915050565b6112a481611262565b81146112ae575f80fd5b50565b5f813590506112bf8161129b565b92915050565b5f602082840312156112da576112d9610f7f565b5b5f6112e7848285016112b1565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61132a82611167565b810181811067ffffffffffffffff82111715611349576113486112f4565b5b80604052505050565b5f61135b610f76565b90506113678282611321565b919050565b5f80fd5b5f61137a82611262565b9050919050565b61138a81611370565b8114611394575f80fd5b50565b5f813590506113a581611381565b92915050565b6113b48161103a565b81146113be575f80fd5b50565b5f813590506113cf816113ab565b92915050565b5f604082840312156113ea576113e96112f0565b5b6113f46040611352565b90505f61140384828501611397565b5f830152506020611416848285016113c1565b60208301525092915050565b5f6040828403121561143757611436610f7f565b5b5f611444848285016113d5565b91505092915050565b5f80fd5b5f67ffffffffffffffff82111561146b5761146a6112f4565b5b61147482611167565b9050602081019050919050565b828183375f83830152505050565b5f6114a161149c84611451565b611352565b9050828152602081018484840111156114bd576114bc61144d565b5b6114c8848285611481565b509392505050565b5f82601f8301126114e4576114e3611093565b5b81356114f484826020860161148f565b91505092915050565b5f60408284031215611512576115116112f0565b5b61151c6040611352565b90505f61152b848285016112b1565b5f83015250602082013567ffffffffffffffff81111561154e5761154d61136c565b5b61155a848285016114d0565b60208301525092915050565b5f6020828403121561157b5761157a610f7f565b5b5f82013567ffffffffffffffff81111561159857611597610f83565b5b6115a4848285016114fd565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115e48261103a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611616576116156115ad565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61165381611262565b82525050565b5f611664838361164a565b60208301905092915050565b5f602082019050919050565b5f61168682611621565b611690818561162b565b935061169b8361163b565b805f5b838110156116cb5781516116b28882611659565b97506116bd83611670565b92505060018101905061169e565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61170a81611007565b82525050565b5f61171b8383611701565b60208301905092915050565b5f602082019050919050565b5f61173d826116d8565b61174781856116e2565b9350611752836116f2565b805f5b838110156117825781516117698882611710565b975061177483611727565b925050600181019050611755565b5085935050505092915050565b5f6040820190508181035f8301526117a7818561167c565b905081810360208301526117bb8184611733565b90509392505050565b50565b5f6117d25f83611149565b91506117dd826117c4565b5f82019050919050565b5f6040820190506117fa5f830184611273565b818103602083015261180b816117c7565b905092915050565b61181c81611007565b8114611826575f80fd5b50565b5f8151905061183781611813565b92915050565b5f6020828403121561185257611851610f7f565b5b5f61185f84828501611829565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212205c7361d526ac192286ca680cf357034b4f4341bbc45462a68b1796fbabd8d9f164736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x18CB DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x42E JUMPI PUSH2 0x11E JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x354 JUMPI PUSH2 0x11E JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x87B9D25C EQ PUSH2 0x25E JUMPI PUSH2 0x11E JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1BC JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x148 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x143 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST PUSH2 0x46A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH2 0x4E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BA PUSH2 0x4F2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D0 PUSH2 0x543 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x107A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x207 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x56A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x234 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22F SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x64A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x241 SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x252 PUSH2 0x6A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25C PUSH2 0x6DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1249 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x293 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x29C PUSH2 0x712 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A9 SWAP2 SWAP1 PUSH2 0x1282 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C6 PUSH2 0x73A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D3 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x302 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FD SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x740 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30F SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x323 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0x900 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0xA3F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F7 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0xA7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x409 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x42C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x427 SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x439 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x454 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44F SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xD1DA334900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4DC JUMPI POP PUSH2 0x4DB DUP3 PUSH2 0xAF2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4FB PUSH2 0xB6B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xD1DA334900000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x573 PUSH2 0xB75 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x5A5 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x59C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x5B6 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST SWAP1 POP PUSH2 0x5C1 CALLER PUSH2 0xB9E JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP DUP1 ISZERO PUSH2 0x645 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x666 JUMPI PUSH2 0x665 PUSH2 0x12F4 JUMP JUMPDEST 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 0x698 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x6E2 PUSH2 0xC74 JUMP JUMPDEST PUSH2 0x6EB PUSH0 PUSH2 0xCAB JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x749 PUSH2 0xC74 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x759 SWAP2 SWAP1 PUSH2 0x1566 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x76F SWAP1 PUSH2 0x15DA JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE LT ISZERO DUP1 PUSH2 0x7C9 JUMPI POP PUSH1 0x2 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x800 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP1 PUSH2 0x866 DUP4 PUSH0 ADD MLOAD PUSH2 0xD71 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3ABB0604 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C6 SWAP3 SWAP2 SWAP1 PUSH2 0x178F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8EF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x933 SWAP2 SWAP1 PUSH2 0x1566 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT DUP1 ISZERO PUSH2 0x991 JUMPI POP PUSH1 0x2 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xA36 JUMPI POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3F756DE DUP3 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F5 SWAP2 SWAP1 PUSH2 0x17E7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA10 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA34 SWAP2 SWAP1 PUSH2 0x183D JUMP JUMPDEST ISZERO JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA47 PUSH2 0xC74 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xA6D JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xA7A DUP2 PUSH2 0xCAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAB8 PUSH2 0xC74 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xACD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xAD6 DUP2 PUSH2 0xCAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB64 JUMPI POP PUSH2 0xB63 DUP3 PUSH2 0xE90 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBA6 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xC1E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xBE0 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC71 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xCA9 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xCB3 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xD18 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xD6E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD90 JUMPI PUSH2 0xD8F PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xDBE JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDDD JUMPI PUSH2 0xDDC PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE0B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP5 DUP3 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xE22 JUMPI PUSH2 0xE21 PUSH2 0x1868 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x1 DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xE71 JUMPI PUSH2 0xE70 PUSH2 0x1868 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF02 JUMPI POP PUSH2 0xF01 DUP3 PUSH2 0xF0D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFBB DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP2 EQ PUSH2 0xFC5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFD6 DUP2 PUSH2 0xFB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF1 JUMPI PUSH2 0xFF0 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFFE DUP5 DUP3 DUP6 ADD PUSH2 0xFC8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x101B DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1034 PUSH0 DUP4 ADD DUP5 PUSH2 0x1012 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104C DUP2 PUSH2 0x103A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1065 PUSH0 DUP4 ADD DUP5 PUSH2 0x1043 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1074 DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x108D PUSH0 DUP4 ADD DUP5 PUSH2 0x106B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x10B4 JUMPI PUSH2 0x10B3 PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10D1 JUMPI PUSH2 0x10D0 PUSH2 0x1097 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x10ED JUMPI PUSH2 0x10EC PUSH2 0x109B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x110A JUMPI PUSH2 0x1109 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x1133 DUP6 DUP3 DUP7 ADD PUSH2 0x109F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x113F JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1149 JUMP JUMPDEST SWAP4 POP PUSH2 0x119B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x11A4 DUP2 PUSH2 0x1167 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11C7 DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1211 PUSH2 0x120C PUSH2 0x1207 DUP5 PUSH2 0x11CF JUMP JUMPDEST PUSH2 0x11EE JUMP JUMPDEST PUSH2 0x11CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1222 DUP3 PUSH2 0x11F7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1233 DUP3 PUSH2 0x1218 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1243 DUP2 PUSH2 0x1229 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x125C PUSH0 DUP4 ADD DUP5 PUSH2 0x123A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x126C DUP3 PUSH2 0x11CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x127C DUP2 PUSH2 0x1262 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1295 PUSH0 DUP4 ADD DUP5 PUSH2 0x1273 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1262 JUMP JUMPDEST DUP2 EQ PUSH2 0x12AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12BF DUP2 PUSH2 0x129B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12DA JUMPI PUSH2 0x12D9 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12E7 DUP5 DUP3 DUP6 ADD PUSH2 0x12B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x132A DUP3 PUSH2 0x1167 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x135B PUSH2 0xF76 JUMP JUMPDEST SWAP1 POP PUSH2 0x1367 DUP3 DUP3 PUSH2 0x1321 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x137A DUP3 PUSH2 0x1262 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x138A DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP2 EQ PUSH2 0x1394 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13A5 DUP2 PUSH2 0x1381 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13B4 DUP2 PUSH2 0x103A JUMP JUMPDEST DUP2 EQ PUSH2 0x13BE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13CF DUP2 PUSH2 0x13AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13EA JUMPI PUSH2 0x13E9 PUSH2 0x12F0 JUMP JUMPDEST JUMPDEST PUSH2 0x13F4 PUSH1 0x40 PUSH2 0x1352 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1403 DUP5 DUP3 DUP6 ADD PUSH2 0x1397 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1416 DUP5 DUP3 DUP6 ADD PUSH2 0x13C1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1437 JUMPI PUSH2 0x1436 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1444 DUP5 DUP3 DUP6 ADD PUSH2 0x13D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x146B JUMPI PUSH2 0x146A PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST PUSH2 0x1474 DUP3 PUSH2 0x1167 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14A1 PUSH2 0x149C DUP5 PUSH2 0x1451 JUMP JUMPDEST PUSH2 0x1352 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x14BD JUMPI PUSH2 0x14BC PUSH2 0x144D JUMP JUMPDEST JUMPDEST PUSH2 0x14C8 DUP5 DUP3 DUP6 PUSH2 0x1481 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x14E4 JUMPI PUSH2 0x14E3 PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14F4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1512 JUMPI PUSH2 0x1511 PUSH2 0x12F0 JUMP JUMPDEST JUMPDEST PUSH2 0x151C PUSH1 0x40 PUSH2 0x1352 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x152B DUP5 DUP3 DUP6 ADD PUSH2 0x12B1 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x154E JUMPI PUSH2 0x154D PUSH2 0x136C JUMP JUMPDEST JUMPDEST PUSH2 0x155A DUP5 DUP3 DUP6 ADD PUSH2 0x14D0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x157B JUMPI PUSH2 0x157A PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1598 JUMPI PUSH2 0x1597 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x15A4 DUP5 DUP3 DUP6 ADD PUSH2 0x14FD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x15E4 DUP3 PUSH2 0x103A JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1616 JUMPI PUSH2 0x1615 PUSH2 0x15AD JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1653 DUP2 PUSH2 0x1262 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1664 DUP4 DUP4 PUSH2 0x164A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1686 DUP3 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x1690 DUP2 DUP6 PUSH2 0x162B JUMP JUMPDEST SWAP4 POP PUSH2 0x169B DUP4 PUSH2 0x163B JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16CB JUMPI DUP2 MLOAD PUSH2 0x16B2 DUP9 DUP3 PUSH2 0x1659 JUMP JUMPDEST SWAP8 POP PUSH2 0x16BD DUP4 PUSH2 0x1670 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x169E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x170A DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x171B DUP4 DUP4 PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x173D DUP3 PUSH2 0x16D8 JUMP JUMPDEST PUSH2 0x1747 DUP2 DUP6 PUSH2 0x16E2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1752 DUP4 PUSH2 0x16F2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1782 JUMPI DUP2 MLOAD PUSH2 0x1769 DUP9 DUP3 PUSH2 0x1710 JUMP JUMPDEST SWAP8 POP PUSH2 0x1774 DUP4 PUSH2 0x1727 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1755 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x17A7 DUP2 DUP6 PUSH2 0x167C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x17BB DUP2 DUP5 PUSH2 0x1733 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x17D2 PUSH0 DUP4 PUSH2 0x1149 JUMP JUMPDEST SWAP2 POP PUSH2 0x17DD DUP3 PUSH2 0x17C4 JUMP JUMPDEST PUSH0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17FA PUSH0 DUP4 ADD DUP5 PUSH2 0x1273 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x180B DUP2 PUSH2 0x17C7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x181C DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP2 EQ PUSH2 0x1826 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1837 DUP2 PUSH2 0x1813 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1852 JUMPI PUSH2 0x1851 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x185F DUP5 DUP3 DUP6 ADD PUSH2 0x1829 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD PUSH20 0x61D526AC192286CA680CF357034B4F4341BBC454 PUSH3 0xA68B17 SWAP7 0xFB 0xAB 0xD8 0xD9 CALL PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"786:936:50:-:0;;;1244:53;;;;;;;;;;1647:28:54;1664:10;1647:16;;;:28;;:::i;:::-;1268:22:50;:20;;;:22;;:::i;:::-;786:936;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;786:936:50:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6308":{"entryPoint":3188,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":3849,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":2933,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":2974,"id":6288,"parameterSlots":1,"returnSlots":0},"@_makeAllowListPayload_16052":{"entryPoint":3441,"id":16052,"parameterSlots":1,"returnSlots":2},"@_ownershipHandoverValidFor_6319":{"entryPoint":2923,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":3243,"id":6302,"parameterSlots":1,"returnSlots":0},"@allowList_15855":{"entryPoint":1773,"id":15855,"parameterSlots":0,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":1697,"id":6368,"parameterSlots":0,"returnSlots":0},"@claim_15933":{"entryPoint":1856,"id":15933,"parameterSlots":2,"returnSlots":1},"@claimed_18107":{"entryPoint":2304,"id":18107,"parameterSlots":0,"returnSlots":0},"@claims_18099":{"entryPoint":2333,"id":18099,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":2623,"id":6382,"parameterSlots":1,"returnSlots":0},"@currentReward_18158":{"entryPoint":1251,"id":18158,"parameterSlots":0,"returnSlots":1},"@getComponentInterface_16066":{"entryPoint":1347,"id":16066,"parameterSlots":0,"returnSlots":1},"@initialize_17464":{"entryPoint":1386,"id":17464,"parameterSlots":2,"returnSlots":0},"@isClaimable_15986":{"entryPoint":2338,"id":15986,"parameterSlots":2,"returnSlots":1},"@limit_15858":{"entryPoint":1850,"id":15858,"parameterSlots":0,"returnSlots":0},"@owner_6390":{"entryPoint":1810,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":2777,"id":6400,"parameterSlots":1,"returnSlots":1},"@preflight_16001":{"entryPoint":1610,"id":16001,"parameterSlots":2,"returnSlots":1},"@reclaim_15948":{"entryPoint":2685,"id":15948,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":1754,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1266,"id":6362,"parameterSlots":0,"returnSlots":0},"@reward_18102":{"entryPoint":1260,"id":18102,"parameterSlots":0,"returnSlots":0},"@supportsInterface_16089":{"entryPoint":1130,"id":16089,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18181":{"entryPoint":2802,"id":18181,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":3728,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":3853,"id":2830,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":2736,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":5263,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4785,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":6185,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":4040,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":4255,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":5328,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_SimpleAllowList_$13665":{"entryPoint":5015,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":5373,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$17421_memory_ptr":{"entryPoint":5077,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5057,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4805,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":6205,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":4060,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4340,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":5478,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$17421_memory_ptr":{"entryPoint":5154,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_address_to_t_address":{"entryPoint":5721,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_bool_to_t_bool":{"entryPoint":5904,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":5706,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4723,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack":{"entryPoint":5756,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack":{"entryPoint":5939,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool":{"entryPoint":5889,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4114,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4203,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4471,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_SimpleAllowList_$13665_to_t_address_fromStack":{"entryPoint":4666,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6087,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4163,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4738,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6119,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":6031,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4129,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4527,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_SimpleAllowList_$13665__to_t_address__fromStack_reversed":{"entryPoint":4681,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4178,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4946,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3958,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":5201,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5691,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5874,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5665,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5848,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4415,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":5744,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bool_$dyn_memory_ptr":{"entryPoint":5927,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack":{"entryPoint":5675,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack":{"entryPoint":5858,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4425,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4706,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":4103,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3975,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_SimpleAllowList_$13665":{"entryPoint":4976,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4559,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4154,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_SimpleAllowList_$13665_to_t_address":{"entryPoint":4649,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":4632,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":4599,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5249,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4441,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4897,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":4590,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":5594,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5549,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":6248,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4852,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":4247,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4243,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4848,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":4972,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":4251,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":5197,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3971,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3967,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4455,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470":{"entryPoint":6084,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":4763,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":6163,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":4018,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_SimpleAllowList_$13665":{"entryPoint":4993,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5035,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:18646:64","nodeType":"YulBlock","src":"0:18646:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:32:64","nodeType":"YulBlock","src":"1563:32:64","statements":[{"nativeSrc":"1573:16:64","nodeType":"YulAssignment","src":"1573:16:64","value":{"name":"value","nativeSrc":"1584:5:64","nodeType":"YulIdentifier","src":"1584:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:77:64"},{"body":{"nativeSrc":"1666:53:64","nodeType":"YulBlock","src":"1666:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:64","nodeType":"YulIdentifier","src":"1683:3:64"},{"arguments":[{"name":"value","nativeSrc":"1706:5:64","nodeType":"YulIdentifier","src":"1706:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:64","nodeType":"YulIdentifier","src":"1688:17:64"},"nativeSrc":"1688:24:64","nodeType":"YulFunctionCall","src":"1688:24:64"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:64","nodeType":"YulIdentifier","src":"1676:6:64"},"nativeSrc":"1676:37:64","nodeType":"YulFunctionCall","src":"1676:37:64"},"nativeSrc":"1676:37:64","nodeType":"YulExpressionStatement","src":"1676:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:64","nodeType":"YulTypedName","src":"1654:5:64","type":""},{"name":"pos","nativeSrc":"1661:3:64","nodeType":"YulTypedName","src":"1661:3:64","type":""}],"src":"1601:118:64"},{"body":{"nativeSrc":"1823:124:64","nodeType":"YulBlock","src":"1823:124:64","statements":[{"nativeSrc":"1833:26:64","nodeType":"YulAssignment","src":"1833:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:64","nodeType":"YulIdentifier","src":"1845:9:64"},{"kind":"number","nativeSrc":"1856:2:64","nodeType":"YulLiteral","src":"1856:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:64","nodeType":"YulIdentifier","src":"1841:3:64"},"nativeSrc":"1841:18:64","nodeType":"YulFunctionCall","src":"1841:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:64","nodeType":"YulIdentifier","src":"1833:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:64","nodeType":"YulIdentifier","src":"1913:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:64","nodeType":"YulIdentifier","src":"1926:9:64"},{"kind":"number","nativeSrc":"1937:1:64","nodeType":"YulLiteral","src":"1937:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:64","nodeType":"YulIdentifier","src":"1922:3:64"},"nativeSrc":"1922:17:64","nodeType":"YulFunctionCall","src":"1922:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:64","nodeType":"YulIdentifier","src":"1869:43:64"},"nativeSrc":"1869:71:64","nodeType":"YulFunctionCall","src":"1869:71:64"},"nativeSrc":"1869:71:64","nodeType":"YulExpressionStatement","src":"1869:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:64","nodeType":"YulTypedName","src":"1795:9:64","type":""},{"name":"value0","nativeSrc":"1807:6:64","nodeType":"YulTypedName","src":"1807:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:64","nodeType":"YulTypedName","src":"1818:4:64","type":""}],"src":"1725:222:64"},{"body":{"nativeSrc":"2016:52:64","nodeType":"YulBlock","src":"2016:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2033:3:64","nodeType":"YulIdentifier","src":"2033:3:64"},{"arguments":[{"name":"value","nativeSrc":"2055:5:64","nodeType":"YulIdentifier","src":"2055:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2038:16:64","nodeType":"YulIdentifier","src":"2038:16:64"},"nativeSrc":"2038:23:64","nodeType":"YulFunctionCall","src":"2038:23:64"}],"functionName":{"name":"mstore","nativeSrc":"2026:6:64","nodeType":"YulIdentifier","src":"2026:6:64"},"nativeSrc":"2026:36:64","nodeType":"YulFunctionCall","src":"2026:36:64"},"nativeSrc":"2026:36:64","nodeType":"YulExpressionStatement","src":"2026:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"1953:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2004:5:64","nodeType":"YulTypedName","src":"2004:5:64","type":""},{"name":"pos","nativeSrc":"2011:3:64","nodeType":"YulTypedName","src":"2011:3:64","type":""}],"src":"1953:115:64"},{"body":{"nativeSrc":"2170:122:64","nodeType":"YulBlock","src":"2170:122:64","statements":[{"nativeSrc":"2180:26:64","nodeType":"YulAssignment","src":"2180:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2192:9:64","nodeType":"YulIdentifier","src":"2192:9:64"},{"kind":"number","nativeSrc":"2203:2:64","nodeType":"YulLiteral","src":"2203:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2188:3:64","nodeType":"YulIdentifier","src":"2188:3:64"},"nativeSrc":"2188:18:64","nodeType":"YulFunctionCall","src":"2188:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2180:4:64","nodeType":"YulIdentifier","src":"2180:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2258:6:64","nodeType":"YulIdentifier","src":"2258:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2271:9:64","nodeType":"YulIdentifier","src":"2271:9:64"},{"kind":"number","nativeSrc":"2282:1:64","nodeType":"YulLiteral","src":"2282:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2267:3:64","nodeType":"YulIdentifier","src":"2267:3:64"},"nativeSrc":"2267:17:64","nodeType":"YulFunctionCall","src":"2267:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"2216:41:64","nodeType":"YulIdentifier","src":"2216:41:64"},"nativeSrc":"2216:69:64","nodeType":"YulFunctionCall","src":"2216:69:64"},"nativeSrc":"2216:69:64","nodeType":"YulExpressionStatement","src":"2216:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"2074:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2142:9:64","nodeType":"YulTypedName","src":"2142:9:64","type":""},{"name":"value0","nativeSrc":"2154:6:64","nodeType":"YulTypedName","src":"2154:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2165:4:64","nodeType":"YulTypedName","src":"2165:4:64","type":""}],"src":"2074:218:64"},{"body":{"nativeSrc":"2387:28:64","nodeType":"YulBlock","src":"2387:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2404:1:64","nodeType":"YulLiteral","src":"2404:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2407:1:64","nodeType":"YulLiteral","src":"2407:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2397:6:64","nodeType":"YulIdentifier","src":"2397:6:64"},"nativeSrc":"2397:12:64","nodeType":"YulFunctionCall","src":"2397:12:64"},"nativeSrc":"2397:12:64","nodeType":"YulExpressionStatement","src":"2397:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2298:117:64","nodeType":"YulFunctionDefinition","src":"2298:117:64"},{"body":{"nativeSrc":"2510:28:64","nodeType":"YulBlock","src":"2510:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2527:1:64","nodeType":"YulLiteral","src":"2527:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2530:1:64","nodeType":"YulLiteral","src":"2530:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2520:6:64","nodeType":"YulIdentifier","src":"2520:6:64"},"nativeSrc":"2520:12:64","nodeType":"YulFunctionCall","src":"2520:12:64"},"nativeSrc":"2520:12:64","nodeType":"YulExpressionStatement","src":"2520:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2421:117:64","nodeType":"YulFunctionDefinition","src":"2421:117:64"},{"body":{"nativeSrc":"2633:28:64","nodeType":"YulBlock","src":"2633:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2650:1:64","nodeType":"YulLiteral","src":"2650:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2653:1:64","nodeType":"YulLiteral","src":"2653:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2643:6:64","nodeType":"YulIdentifier","src":"2643:6:64"},"nativeSrc":"2643:12:64","nodeType":"YulFunctionCall","src":"2643:12:64"},"nativeSrc":"2643:12:64","nodeType":"YulExpressionStatement","src":"2643:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2544:117:64","nodeType":"YulFunctionDefinition","src":"2544:117:64"},{"body":{"nativeSrc":"2754:478:64","nodeType":"YulBlock","src":"2754:478:64","statements":[{"body":{"nativeSrc":"2803:83:64","nodeType":"YulBlock","src":"2803:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2805:77:64","nodeType":"YulIdentifier","src":"2805:77:64"},"nativeSrc":"2805:79:64","nodeType":"YulFunctionCall","src":"2805:79:64"},"nativeSrc":"2805:79:64","nodeType":"YulExpressionStatement","src":"2805:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2782:6:64","nodeType":"YulIdentifier","src":"2782:6:64"},{"kind":"number","nativeSrc":"2790:4:64","nodeType":"YulLiteral","src":"2790:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2778:3:64","nodeType":"YulIdentifier","src":"2778:3:64"},"nativeSrc":"2778:17:64","nodeType":"YulFunctionCall","src":"2778:17:64"},{"name":"end","nativeSrc":"2797:3:64","nodeType":"YulIdentifier","src":"2797:3:64"}],"functionName":{"name":"slt","nativeSrc":"2774:3:64","nodeType":"YulIdentifier","src":"2774:3:64"},"nativeSrc":"2774:27:64","nodeType":"YulFunctionCall","src":"2774:27:64"}],"functionName":{"name":"iszero","nativeSrc":"2767:6:64","nodeType":"YulIdentifier","src":"2767:6:64"},"nativeSrc":"2767:35:64","nodeType":"YulFunctionCall","src":"2767:35:64"},"nativeSrc":"2764:122:64","nodeType":"YulIf","src":"2764:122:64"},{"nativeSrc":"2895:30:64","nodeType":"YulAssignment","src":"2895:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"2918:6:64","nodeType":"YulIdentifier","src":"2918:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2905:12:64","nodeType":"YulIdentifier","src":"2905:12:64"},"nativeSrc":"2905:20:64","nodeType":"YulFunctionCall","src":"2905:20:64"},"variableNames":[{"name":"length","nativeSrc":"2895:6:64","nodeType":"YulIdentifier","src":"2895:6:64"}]},{"body":{"nativeSrc":"2968:83:64","nodeType":"YulBlock","src":"2968:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2970:77:64","nodeType":"YulIdentifier","src":"2970:77:64"},"nativeSrc":"2970:79:64","nodeType":"YulFunctionCall","src":"2970:79:64"},"nativeSrc":"2970:79:64","nodeType":"YulExpressionStatement","src":"2970:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2940:6:64","nodeType":"YulIdentifier","src":"2940:6:64"},{"kind":"number","nativeSrc":"2948:18:64","nodeType":"YulLiteral","src":"2948:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2937:2:64","nodeType":"YulIdentifier","src":"2937:2:64"},"nativeSrc":"2937:30:64","nodeType":"YulFunctionCall","src":"2937:30:64"},"nativeSrc":"2934:117:64","nodeType":"YulIf","src":"2934:117:64"},{"nativeSrc":"3060:29:64","nodeType":"YulAssignment","src":"3060:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"3076:6:64","nodeType":"YulIdentifier","src":"3076:6:64"},{"kind":"number","nativeSrc":"3084:4:64","nodeType":"YulLiteral","src":"3084:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3072:3:64","nodeType":"YulIdentifier","src":"3072:3:64"},"nativeSrc":"3072:17:64","nodeType":"YulFunctionCall","src":"3072:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"3060:8:64","nodeType":"YulIdentifier","src":"3060:8:64"}]},{"body":{"nativeSrc":"3143:83:64","nodeType":"YulBlock","src":"3143:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3145:77:64","nodeType":"YulIdentifier","src":"3145:77:64"},"nativeSrc":"3145:79:64","nodeType":"YulFunctionCall","src":"3145:79:64"},"nativeSrc":"3145:79:64","nodeType":"YulExpressionStatement","src":"3145:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3108:8:64","nodeType":"YulIdentifier","src":"3108:8:64"},{"arguments":[{"name":"length","nativeSrc":"3122:6:64","nodeType":"YulIdentifier","src":"3122:6:64"},{"kind":"number","nativeSrc":"3130:4:64","nodeType":"YulLiteral","src":"3130:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3118:3:64","nodeType":"YulIdentifier","src":"3118:3:64"},"nativeSrc":"3118:17:64","nodeType":"YulFunctionCall","src":"3118:17:64"}],"functionName":{"name":"add","nativeSrc":"3104:3:64","nodeType":"YulIdentifier","src":"3104:3:64"},"nativeSrc":"3104:32:64","nodeType":"YulFunctionCall","src":"3104:32:64"},{"name":"end","nativeSrc":"3138:3:64","nodeType":"YulIdentifier","src":"3138:3:64"}],"functionName":{"name":"gt","nativeSrc":"3101:2:64","nodeType":"YulIdentifier","src":"3101:2:64"},"nativeSrc":"3101:41:64","nodeType":"YulFunctionCall","src":"3101:41:64"},"nativeSrc":"3098:128:64","nodeType":"YulIf","src":"3098:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2680:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2721:6:64","nodeType":"YulTypedName","src":"2721:6:64","type":""},{"name":"end","nativeSrc":"2729:3:64","nodeType":"YulTypedName","src":"2729:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2737:8:64","nodeType":"YulTypedName","src":"2737:8:64","type":""},{"name":"length","nativeSrc":"2747:6:64","nodeType":"YulTypedName","src":"2747:6:64","type":""}],"src":"2680:552:64"},{"body":{"nativeSrc":"3323:442:64","nodeType":"YulBlock","src":"3323:442:64","statements":[{"body":{"nativeSrc":"3369:83:64","nodeType":"YulBlock","src":"3369:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3371:77:64","nodeType":"YulIdentifier","src":"3371:77:64"},"nativeSrc":"3371:79:64","nodeType":"YulFunctionCall","src":"3371:79:64"},"nativeSrc":"3371:79:64","nodeType":"YulExpressionStatement","src":"3371:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3344:7:64","nodeType":"YulIdentifier","src":"3344:7:64"},{"name":"headStart","nativeSrc":"3353:9:64","nodeType":"YulIdentifier","src":"3353:9:64"}],"functionName":{"name":"sub","nativeSrc":"3340:3:64","nodeType":"YulIdentifier","src":"3340:3:64"},"nativeSrc":"3340:23:64","nodeType":"YulFunctionCall","src":"3340:23:64"},{"kind":"number","nativeSrc":"3365:2:64","nodeType":"YulLiteral","src":"3365:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3336:3:64","nodeType":"YulIdentifier","src":"3336:3:64"},"nativeSrc":"3336:32:64","nodeType":"YulFunctionCall","src":"3336:32:64"},"nativeSrc":"3333:119:64","nodeType":"YulIf","src":"3333:119:64"},{"nativeSrc":"3462:296:64","nodeType":"YulBlock","src":"3462:296:64","statements":[{"nativeSrc":"3477:45:64","nodeType":"YulVariableDeclaration","src":"3477:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3508:9:64","nodeType":"YulIdentifier","src":"3508:9:64"},{"kind":"number","nativeSrc":"3519:1:64","nodeType":"YulLiteral","src":"3519:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3504:3:64","nodeType":"YulIdentifier","src":"3504:3:64"},"nativeSrc":"3504:17:64","nodeType":"YulFunctionCall","src":"3504:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"3491:12:64","nodeType":"YulIdentifier","src":"3491:12:64"},"nativeSrc":"3491:31:64","nodeType":"YulFunctionCall","src":"3491:31:64"},"variables":[{"name":"offset","nativeSrc":"3481:6:64","nodeType":"YulTypedName","src":"3481:6:64","type":""}]},{"body":{"nativeSrc":"3569:83:64","nodeType":"YulBlock","src":"3569:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3571:77:64","nodeType":"YulIdentifier","src":"3571:77:64"},"nativeSrc":"3571:79:64","nodeType":"YulFunctionCall","src":"3571:79:64"},"nativeSrc":"3571:79:64","nodeType":"YulExpressionStatement","src":"3571:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3541:6:64","nodeType":"YulIdentifier","src":"3541:6:64"},{"kind":"number","nativeSrc":"3549:18:64","nodeType":"YulLiteral","src":"3549:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3538:2:64","nodeType":"YulIdentifier","src":"3538:2:64"},"nativeSrc":"3538:30:64","nodeType":"YulFunctionCall","src":"3538:30:64"},"nativeSrc":"3535:117:64","nodeType":"YulIf","src":"3535:117:64"},{"nativeSrc":"3666:82:64","nodeType":"YulAssignment","src":"3666:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3720:9:64","nodeType":"YulIdentifier","src":"3720:9:64"},{"name":"offset","nativeSrc":"3731:6:64","nodeType":"YulIdentifier","src":"3731:6:64"}],"functionName":{"name":"add","nativeSrc":"3716:3:64","nodeType":"YulIdentifier","src":"3716:3:64"},"nativeSrc":"3716:22:64","nodeType":"YulFunctionCall","src":"3716:22:64"},{"name":"dataEnd","nativeSrc":"3740:7:64","nodeType":"YulIdentifier","src":"3740:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3684:31:64","nodeType":"YulIdentifier","src":"3684:31:64"},"nativeSrc":"3684:64:64","nodeType":"YulFunctionCall","src":"3684:64:64"},"variableNames":[{"name":"value0","nativeSrc":"3666:6:64","nodeType":"YulIdentifier","src":"3666:6:64"},{"name":"value1","nativeSrc":"3674:6:64","nodeType":"YulIdentifier","src":"3674:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3238:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3285:9:64","nodeType":"YulTypedName","src":"3285:9:64","type":""},{"name":"dataEnd","nativeSrc":"3296:7:64","nodeType":"YulTypedName","src":"3296:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3308:6:64","nodeType":"YulTypedName","src":"3308:6:64","type":""},{"name":"value1","nativeSrc":"3316:6:64","nodeType":"YulTypedName","src":"3316:6:64","type":""}],"src":"3238:527:64"},{"body":{"nativeSrc":"3829:40:64","nodeType":"YulBlock","src":"3829:40:64","statements":[{"nativeSrc":"3840:22:64","nodeType":"YulAssignment","src":"3840:22:64","value":{"arguments":[{"name":"value","nativeSrc":"3856:5:64","nodeType":"YulIdentifier","src":"3856:5:64"}],"functionName":{"name":"mload","nativeSrc":"3850:5:64","nodeType":"YulIdentifier","src":"3850:5:64"},"nativeSrc":"3850:12:64","nodeType":"YulFunctionCall","src":"3850:12:64"},"variableNames":[{"name":"length","nativeSrc":"3840:6:64","nodeType":"YulIdentifier","src":"3840:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3771:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3812:5:64","nodeType":"YulTypedName","src":"3812:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3822:6:64","nodeType":"YulTypedName","src":"3822:6:64","type":""}],"src":"3771:98:64"},{"body":{"nativeSrc":"3970:73:64","nodeType":"YulBlock","src":"3970:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3987:3:64","nodeType":"YulIdentifier","src":"3987:3:64"},{"name":"length","nativeSrc":"3992:6:64","nodeType":"YulIdentifier","src":"3992:6:64"}],"functionName":{"name":"mstore","nativeSrc":"3980:6:64","nodeType":"YulIdentifier","src":"3980:6:64"},"nativeSrc":"3980:19:64","nodeType":"YulFunctionCall","src":"3980:19:64"},"nativeSrc":"3980:19:64","nodeType":"YulExpressionStatement","src":"3980:19:64"},{"nativeSrc":"4008:29:64","nodeType":"YulAssignment","src":"4008:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"4027:3:64","nodeType":"YulIdentifier","src":"4027:3:64"},{"kind":"number","nativeSrc":"4032:4:64","nodeType":"YulLiteral","src":"4032:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4023:3:64","nodeType":"YulIdentifier","src":"4023:3:64"},"nativeSrc":"4023:14:64","nodeType":"YulFunctionCall","src":"4023:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"4008:11:64","nodeType":"YulIdentifier","src":"4008:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3875:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3942:3:64","nodeType":"YulTypedName","src":"3942:3:64","type":""},{"name":"length","nativeSrc":"3947:6:64","nodeType":"YulTypedName","src":"3947:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3958:11:64","nodeType":"YulTypedName","src":"3958:11:64","type":""}],"src":"3875:168:64"},{"body":{"nativeSrc":"4111:77:64","nodeType":"YulBlock","src":"4111:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4128:3:64","nodeType":"YulIdentifier","src":"4128:3:64"},{"name":"src","nativeSrc":"4133:3:64","nodeType":"YulIdentifier","src":"4133:3:64"},{"name":"length","nativeSrc":"4138:6:64","nodeType":"YulIdentifier","src":"4138:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"4122:5:64","nodeType":"YulIdentifier","src":"4122:5:64"},"nativeSrc":"4122:23:64","nodeType":"YulFunctionCall","src":"4122:23:64"},"nativeSrc":"4122:23:64","nodeType":"YulExpressionStatement","src":"4122:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4165:3:64","nodeType":"YulIdentifier","src":"4165:3:64"},{"name":"length","nativeSrc":"4170:6:64","nodeType":"YulIdentifier","src":"4170:6:64"}],"functionName":{"name":"add","nativeSrc":"4161:3:64","nodeType":"YulIdentifier","src":"4161:3:64"},"nativeSrc":"4161:16:64","nodeType":"YulFunctionCall","src":"4161:16:64"},{"kind":"number","nativeSrc":"4179:1:64","nodeType":"YulLiteral","src":"4179:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4154:6:64","nodeType":"YulIdentifier","src":"4154:6:64"},"nativeSrc":"4154:27:64","nodeType":"YulFunctionCall","src":"4154:27:64"},"nativeSrc":"4154:27:64","nodeType":"YulExpressionStatement","src":"4154:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4049:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4093:3:64","nodeType":"YulTypedName","src":"4093:3:64","type":""},{"name":"dst","nativeSrc":"4098:3:64","nodeType":"YulTypedName","src":"4098:3:64","type":""},{"name":"length","nativeSrc":"4103:6:64","nodeType":"YulTypedName","src":"4103:6:64","type":""}],"src":"4049:139:64"},{"body":{"nativeSrc":"4242:54:64","nodeType":"YulBlock","src":"4242:54:64","statements":[{"nativeSrc":"4252:38:64","nodeType":"YulAssignment","src":"4252:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4270:5:64","nodeType":"YulIdentifier","src":"4270:5:64"},{"kind":"number","nativeSrc":"4277:2:64","nodeType":"YulLiteral","src":"4277:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4266:3:64","nodeType":"YulIdentifier","src":"4266:3:64"},"nativeSrc":"4266:14:64","nodeType":"YulFunctionCall","src":"4266:14:64"},{"arguments":[{"kind":"number","nativeSrc":"4286:2:64","nodeType":"YulLiteral","src":"4286:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4282:3:64","nodeType":"YulIdentifier","src":"4282:3:64"},"nativeSrc":"4282:7:64","nodeType":"YulFunctionCall","src":"4282:7:64"}],"functionName":{"name":"and","nativeSrc":"4262:3:64","nodeType":"YulIdentifier","src":"4262:3:64"},"nativeSrc":"4262:28:64","nodeType":"YulFunctionCall","src":"4262:28:64"},"variableNames":[{"name":"result","nativeSrc":"4252:6:64","nodeType":"YulIdentifier","src":"4252:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4194:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4225:5:64","nodeType":"YulTypedName","src":"4225:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4235:6:64","nodeType":"YulTypedName","src":"4235:6:64","type":""}],"src":"4194:102:64"},{"body":{"nativeSrc":"4392:283:64","nodeType":"YulBlock","src":"4392:283:64","statements":[{"nativeSrc":"4402:52:64","nodeType":"YulVariableDeclaration","src":"4402:52:64","value":{"arguments":[{"name":"value","nativeSrc":"4448:5:64","nodeType":"YulIdentifier","src":"4448:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4416:31:64","nodeType":"YulIdentifier","src":"4416:31:64"},"nativeSrc":"4416:38:64","nodeType":"YulFunctionCall","src":"4416:38:64"},"variables":[{"name":"length","nativeSrc":"4406:6:64","nodeType":"YulTypedName","src":"4406:6:64","type":""}]},{"nativeSrc":"4463:77:64","nodeType":"YulAssignment","src":"4463:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"4528:3:64","nodeType":"YulIdentifier","src":"4528:3:64"},{"name":"length","nativeSrc":"4533:6:64","nodeType":"YulIdentifier","src":"4533:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4470:57:64","nodeType":"YulIdentifier","src":"4470:57:64"},"nativeSrc":"4470:70:64","nodeType":"YulFunctionCall","src":"4470:70:64"},"variableNames":[{"name":"pos","nativeSrc":"4463:3:64","nodeType":"YulIdentifier","src":"4463:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4588:5:64","nodeType":"YulIdentifier","src":"4588:5:64"},{"kind":"number","nativeSrc":"4595:4:64","nodeType":"YulLiteral","src":"4595:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4584:3:64","nodeType":"YulIdentifier","src":"4584:3:64"},"nativeSrc":"4584:16:64","nodeType":"YulFunctionCall","src":"4584:16:64"},{"name":"pos","nativeSrc":"4602:3:64","nodeType":"YulIdentifier","src":"4602:3:64"},{"name":"length","nativeSrc":"4607:6:64","nodeType":"YulIdentifier","src":"4607:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4549:34:64","nodeType":"YulIdentifier","src":"4549:34:64"},"nativeSrc":"4549:65:64","nodeType":"YulFunctionCall","src":"4549:65:64"},"nativeSrc":"4549:65:64","nodeType":"YulExpressionStatement","src":"4549:65:64"},{"nativeSrc":"4623:46:64","nodeType":"YulAssignment","src":"4623:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"4634:3:64","nodeType":"YulIdentifier","src":"4634:3:64"},{"arguments":[{"name":"length","nativeSrc":"4661:6:64","nodeType":"YulIdentifier","src":"4661:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4639:21:64","nodeType":"YulIdentifier","src":"4639:21:64"},"nativeSrc":"4639:29:64","nodeType":"YulFunctionCall","src":"4639:29:64"}],"functionName":{"name":"add","nativeSrc":"4630:3:64","nodeType":"YulIdentifier","src":"4630:3:64"},"nativeSrc":"4630:39:64","nodeType":"YulFunctionCall","src":"4630:39:64"},"variableNames":[{"name":"end","nativeSrc":"4623:3:64","nodeType":"YulIdentifier","src":"4623:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4302:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4373:5:64","nodeType":"YulTypedName","src":"4373:5:64","type":""},{"name":"pos","nativeSrc":"4380:3:64","nodeType":"YulTypedName","src":"4380:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4388:3:64","nodeType":"YulTypedName","src":"4388:3:64","type":""}],"src":"4302:373:64"},{"body":{"nativeSrc":"4797:193:64","nodeType":"YulBlock","src":"4797:193:64","statements":[{"nativeSrc":"4807:26:64","nodeType":"YulAssignment","src":"4807:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4819:9:64","nodeType":"YulIdentifier","src":"4819:9:64"},{"kind":"number","nativeSrc":"4830:2:64","nodeType":"YulLiteral","src":"4830:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4815:3:64","nodeType":"YulIdentifier","src":"4815:3:64"},"nativeSrc":"4815:18:64","nodeType":"YulFunctionCall","src":"4815:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4807:4:64","nodeType":"YulIdentifier","src":"4807:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4854:9:64","nodeType":"YulIdentifier","src":"4854:9:64"},{"kind":"number","nativeSrc":"4865:1:64","nodeType":"YulLiteral","src":"4865:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4850:3:64","nodeType":"YulIdentifier","src":"4850:3:64"},"nativeSrc":"4850:17:64","nodeType":"YulFunctionCall","src":"4850:17:64"},{"arguments":[{"name":"tail","nativeSrc":"4873:4:64","nodeType":"YulIdentifier","src":"4873:4:64"},{"name":"headStart","nativeSrc":"4879:9:64","nodeType":"YulIdentifier","src":"4879:9:64"}],"functionName":{"name":"sub","nativeSrc":"4869:3:64","nodeType":"YulIdentifier","src":"4869:3:64"},"nativeSrc":"4869:20:64","nodeType":"YulFunctionCall","src":"4869:20:64"}],"functionName":{"name":"mstore","nativeSrc":"4843:6:64","nodeType":"YulIdentifier","src":"4843:6:64"},"nativeSrc":"4843:47:64","nodeType":"YulFunctionCall","src":"4843:47:64"},"nativeSrc":"4843:47:64","nodeType":"YulExpressionStatement","src":"4843:47:64"},{"nativeSrc":"4899:84:64","nodeType":"YulAssignment","src":"4899:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"4969:6:64","nodeType":"YulIdentifier","src":"4969:6:64"},{"name":"tail","nativeSrc":"4978:4:64","nodeType":"YulIdentifier","src":"4978:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4907:61:64","nodeType":"YulIdentifier","src":"4907:61:64"},"nativeSrc":"4907:76:64","nodeType":"YulFunctionCall","src":"4907:76:64"},"variableNames":[{"name":"tail","nativeSrc":"4899:4:64","nodeType":"YulIdentifier","src":"4899:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4681:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4769:9:64","nodeType":"YulTypedName","src":"4769:9:64","type":""},{"name":"value0","nativeSrc":"4781:6:64","nodeType":"YulTypedName","src":"4781:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4792:4:64","nodeType":"YulTypedName","src":"4792:4:64","type":""}],"src":"4681:309:64"},{"body":{"nativeSrc":"5041:81:64","nodeType":"YulBlock","src":"5041:81:64","statements":[{"nativeSrc":"5051:65:64","nodeType":"YulAssignment","src":"5051:65:64","value":{"arguments":[{"name":"value","nativeSrc":"5066:5:64","nodeType":"YulIdentifier","src":"5066:5:64"},{"kind":"number","nativeSrc":"5073:42:64","nodeType":"YulLiteral","src":"5073:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5062:3:64","nodeType":"YulIdentifier","src":"5062:3:64"},"nativeSrc":"5062:54:64","nodeType":"YulFunctionCall","src":"5062:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5051:7:64","nodeType":"YulIdentifier","src":"5051:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4996:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5023:5:64","nodeType":"YulTypedName","src":"5023:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5033:7:64","nodeType":"YulTypedName","src":"5033:7:64","type":""}],"src":"4996:126:64"},{"body":{"nativeSrc":"5160:28:64","nodeType":"YulBlock","src":"5160:28:64","statements":[{"nativeSrc":"5170:12:64","nodeType":"YulAssignment","src":"5170:12:64","value":{"name":"value","nativeSrc":"5177:5:64","nodeType":"YulIdentifier","src":"5177:5:64"},"variableNames":[{"name":"ret","nativeSrc":"5170:3:64","nodeType":"YulIdentifier","src":"5170:3:64"}]}]},"name":"identity","nativeSrc":"5128:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5146:5:64","nodeType":"YulTypedName","src":"5146:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"5156:3:64","nodeType":"YulTypedName","src":"5156:3:64","type":""}],"src":"5128:60:64"},{"body":{"nativeSrc":"5254:82:64","nodeType":"YulBlock","src":"5254:82:64","statements":[{"nativeSrc":"5264:66:64","nodeType":"YulAssignment","src":"5264:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5322:5:64","nodeType":"YulIdentifier","src":"5322:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5304:17:64","nodeType":"YulIdentifier","src":"5304:17:64"},"nativeSrc":"5304:24:64","nodeType":"YulFunctionCall","src":"5304:24:64"}],"functionName":{"name":"identity","nativeSrc":"5295:8:64","nodeType":"YulIdentifier","src":"5295:8:64"},"nativeSrc":"5295:34:64","nodeType":"YulFunctionCall","src":"5295:34:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5277:17:64","nodeType":"YulIdentifier","src":"5277:17:64"},"nativeSrc":"5277:53:64","nodeType":"YulFunctionCall","src":"5277:53:64"},"variableNames":[{"name":"converted","nativeSrc":"5264:9:64","nodeType":"YulIdentifier","src":"5264:9:64"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"5194:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5234:5:64","nodeType":"YulTypedName","src":"5234:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5244:9:64","nodeType":"YulTypedName","src":"5244:9:64","type":""}],"src":"5194:142:64"},{"body":{"nativeSrc":"5402:66:64","nodeType":"YulBlock","src":"5402:66:64","statements":[{"nativeSrc":"5412:50:64","nodeType":"YulAssignment","src":"5412:50:64","value":{"arguments":[{"name":"value","nativeSrc":"5456:5:64","nodeType":"YulIdentifier","src":"5456:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"5425:30:64","nodeType":"YulIdentifier","src":"5425:30:64"},"nativeSrc":"5425:37:64","nodeType":"YulFunctionCall","src":"5425:37:64"},"variableNames":[{"name":"converted","nativeSrc":"5412:9:64","nodeType":"YulIdentifier","src":"5412:9:64"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"5342:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5382:5:64","nodeType":"YulTypedName","src":"5382:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5392:9:64","nodeType":"YulTypedName","src":"5392:9:64","type":""}],"src":"5342:126:64"},{"body":{"nativeSrc":"5559:66:64","nodeType":"YulBlock","src":"5559:66:64","statements":[{"nativeSrc":"5569:50:64","nodeType":"YulAssignment","src":"5569:50:64","value":{"arguments":[{"name":"value","nativeSrc":"5613:5:64","nodeType":"YulIdentifier","src":"5613:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"5582:30:64","nodeType":"YulIdentifier","src":"5582:30:64"},"nativeSrc":"5582:37:64","nodeType":"YulFunctionCall","src":"5582:37:64"},"variableNames":[{"name":"converted","nativeSrc":"5569:9:64","nodeType":"YulIdentifier","src":"5569:9:64"}]}]},"name":"convert_t_contract$_SimpleAllowList_$13665_to_t_address","nativeSrc":"5474:151:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5539:5:64","nodeType":"YulTypedName","src":"5539:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"5549:9:64","nodeType":"YulTypedName","src":"5549:9:64","type":""}],"src":"5474:151:64"},{"body":{"nativeSrc":"5721:91:64","nodeType":"YulBlock","src":"5721:91:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5738:3:64","nodeType":"YulIdentifier","src":"5738:3:64"},{"arguments":[{"name":"value","nativeSrc":"5799:5:64","nodeType":"YulIdentifier","src":"5799:5:64"}],"functionName":{"name":"convert_t_contract$_SimpleAllowList_$13665_to_t_address","nativeSrc":"5743:55:64","nodeType":"YulIdentifier","src":"5743:55:64"},"nativeSrc":"5743:62:64","nodeType":"YulFunctionCall","src":"5743:62:64"}],"functionName":{"name":"mstore","nativeSrc":"5731:6:64","nodeType":"YulIdentifier","src":"5731:6:64"},"nativeSrc":"5731:75:64","nodeType":"YulFunctionCall","src":"5731:75:64"},"nativeSrc":"5731:75:64","nodeType":"YulExpressionStatement","src":"5731:75:64"}]},"name":"abi_encode_t_contract$_SimpleAllowList_$13665_to_t_address_fromStack","nativeSrc":"5631:181:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5709:5:64","nodeType":"YulTypedName","src":"5709:5:64","type":""},{"name":"pos","nativeSrc":"5716:3:64","nodeType":"YulTypedName","src":"5716:3:64","type":""}],"src":"5631:181:64"},{"body":{"nativeSrc":"5941:149:64","nodeType":"YulBlock","src":"5941:149:64","statements":[{"nativeSrc":"5951:26:64","nodeType":"YulAssignment","src":"5951:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5963:9:64","nodeType":"YulIdentifier","src":"5963:9:64"},{"kind":"number","nativeSrc":"5974:2:64","nodeType":"YulLiteral","src":"5974:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5959:3:64","nodeType":"YulIdentifier","src":"5959:3:64"},"nativeSrc":"5959:18:64","nodeType":"YulFunctionCall","src":"5959:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5951:4:64","nodeType":"YulIdentifier","src":"5951:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6056:6:64","nodeType":"YulIdentifier","src":"6056:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6069:9:64","nodeType":"YulIdentifier","src":"6069:9:64"},{"kind":"number","nativeSrc":"6080:1:64","nodeType":"YulLiteral","src":"6080:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6065:3:64","nodeType":"YulIdentifier","src":"6065:3:64"},"nativeSrc":"6065:17:64","nodeType":"YulFunctionCall","src":"6065:17:64"}],"functionName":{"name":"abi_encode_t_contract$_SimpleAllowList_$13665_to_t_address_fromStack","nativeSrc":"5987:68:64","nodeType":"YulIdentifier","src":"5987:68:64"},"nativeSrc":"5987:96:64","nodeType":"YulFunctionCall","src":"5987:96:64"},"nativeSrc":"5987:96:64","nodeType":"YulExpressionStatement","src":"5987:96:64"}]},"name":"abi_encode_tuple_t_contract$_SimpleAllowList_$13665__to_t_address__fromStack_reversed","nativeSrc":"5818:272:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5913:9:64","nodeType":"YulTypedName","src":"5913:9:64","type":""},{"name":"value0","nativeSrc":"5925:6:64","nodeType":"YulTypedName","src":"5925:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5936:4:64","nodeType":"YulTypedName","src":"5936:4:64","type":""}],"src":"5818:272:64"},{"body":{"nativeSrc":"6141:51:64","nodeType":"YulBlock","src":"6141:51:64","statements":[{"nativeSrc":"6151:35:64","nodeType":"YulAssignment","src":"6151:35:64","value":{"arguments":[{"name":"value","nativeSrc":"6180:5:64","nodeType":"YulIdentifier","src":"6180:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"6162:17:64","nodeType":"YulIdentifier","src":"6162:17:64"},"nativeSrc":"6162:24:64","nodeType":"YulFunctionCall","src":"6162:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"6151:7:64","nodeType":"YulIdentifier","src":"6151:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"6096:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6123:5:64","nodeType":"YulTypedName","src":"6123:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6133:7:64","nodeType":"YulTypedName","src":"6133:7:64","type":""}],"src":"6096:96:64"},{"body":{"nativeSrc":"6263:53:64","nodeType":"YulBlock","src":"6263:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6280:3:64","nodeType":"YulIdentifier","src":"6280:3:64"},{"arguments":[{"name":"value","nativeSrc":"6303:5:64","nodeType":"YulIdentifier","src":"6303:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6285:17:64","nodeType":"YulIdentifier","src":"6285:17:64"},"nativeSrc":"6285:24:64","nodeType":"YulFunctionCall","src":"6285:24:64"}],"functionName":{"name":"mstore","nativeSrc":"6273:6:64","nodeType":"YulIdentifier","src":"6273:6:64"},"nativeSrc":"6273:37:64","nodeType":"YulFunctionCall","src":"6273:37:64"},"nativeSrc":"6273:37:64","nodeType":"YulExpressionStatement","src":"6273:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6198:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6251:5:64","nodeType":"YulTypedName","src":"6251:5:64","type":""},{"name":"pos","nativeSrc":"6258:3:64","nodeType":"YulTypedName","src":"6258:3:64","type":""}],"src":"6198:118:64"},{"body":{"nativeSrc":"6420:124:64","nodeType":"YulBlock","src":"6420:124:64","statements":[{"nativeSrc":"6430:26:64","nodeType":"YulAssignment","src":"6430:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6442:9:64","nodeType":"YulIdentifier","src":"6442:9:64"},{"kind":"number","nativeSrc":"6453:2:64","nodeType":"YulLiteral","src":"6453:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6438:3:64","nodeType":"YulIdentifier","src":"6438:3:64"},"nativeSrc":"6438:18:64","nodeType":"YulFunctionCall","src":"6438:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6430:4:64","nodeType":"YulIdentifier","src":"6430:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6510:6:64","nodeType":"YulIdentifier","src":"6510:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6523:9:64","nodeType":"YulIdentifier","src":"6523:9:64"},{"kind":"number","nativeSrc":"6534:1:64","nodeType":"YulLiteral","src":"6534:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6519:3:64","nodeType":"YulIdentifier","src":"6519:3:64"},"nativeSrc":"6519:17:64","nodeType":"YulFunctionCall","src":"6519:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6466:43:64","nodeType":"YulIdentifier","src":"6466:43:64"},"nativeSrc":"6466:71:64","nodeType":"YulFunctionCall","src":"6466:71:64"},"nativeSrc":"6466:71:64","nodeType":"YulExpressionStatement","src":"6466:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6322:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6392:9:64","nodeType":"YulTypedName","src":"6392:9:64","type":""},{"name":"value0","nativeSrc":"6404:6:64","nodeType":"YulTypedName","src":"6404:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6415:4:64","nodeType":"YulTypedName","src":"6415:4:64","type":""}],"src":"6322:222:64"},{"body":{"nativeSrc":"6593:79:64","nodeType":"YulBlock","src":"6593:79:64","statements":[{"body":{"nativeSrc":"6650:16:64","nodeType":"YulBlock","src":"6650:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6659:1:64","nodeType":"YulLiteral","src":"6659:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6662:1:64","nodeType":"YulLiteral","src":"6662:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6652:6:64","nodeType":"YulIdentifier","src":"6652:6:64"},"nativeSrc":"6652:12:64","nodeType":"YulFunctionCall","src":"6652:12:64"},"nativeSrc":"6652:12:64","nodeType":"YulExpressionStatement","src":"6652:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6616:5:64","nodeType":"YulIdentifier","src":"6616:5:64"},{"arguments":[{"name":"value","nativeSrc":"6641:5:64","nodeType":"YulIdentifier","src":"6641:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6623:17:64","nodeType":"YulIdentifier","src":"6623:17:64"},"nativeSrc":"6623:24:64","nodeType":"YulFunctionCall","src":"6623:24:64"}],"functionName":{"name":"eq","nativeSrc":"6613:2:64","nodeType":"YulIdentifier","src":"6613:2:64"},"nativeSrc":"6613:35:64","nodeType":"YulFunctionCall","src":"6613:35:64"}],"functionName":{"name":"iszero","nativeSrc":"6606:6:64","nodeType":"YulIdentifier","src":"6606:6:64"},"nativeSrc":"6606:43:64","nodeType":"YulFunctionCall","src":"6606:43:64"},"nativeSrc":"6603:63:64","nodeType":"YulIf","src":"6603:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"6550:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6586:5:64","nodeType":"YulTypedName","src":"6586:5:64","type":""}],"src":"6550:122:64"},{"body":{"nativeSrc":"6730:87:64","nodeType":"YulBlock","src":"6730:87:64","statements":[{"nativeSrc":"6740:29:64","nodeType":"YulAssignment","src":"6740:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6762:6:64","nodeType":"YulIdentifier","src":"6762:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6749:12:64","nodeType":"YulIdentifier","src":"6749:12:64"},"nativeSrc":"6749:20:64","nodeType":"YulFunctionCall","src":"6749:20:64"},"variableNames":[{"name":"value","nativeSrc":"6740:5:64","nodeType":"YulIdentifier","src":"6740:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6805:5:64","nodeType":"YulIdentifier","src":"6805:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6778:26:64","nodeType":"YulIdentifier","src":"6778:26:64"},"nativeSrc":"6778:33:64","nodeType":"YulFunctionCall","src":"6778:33:64"},"nativeSrc":"6778:33:64","nodeType":"YulExpressionStatement","src":"6778:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"6678:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6708:6:64","nodeType":"YulTypedName","src":"6708:6:64","type":""},{"name":"end","nativeSrc":"6716:3:64","nodeType":"YulTypedName","src":"6716:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6724:5:64","nodeType":"YulTypedName","src":"6724:5:64","type":""}],"src":"6678:139:64"},{"body":{"nativeSrc":"6889:263:64","nodeType":"YulBlock","src":"6889:263:64","statements":[{"body":{"nativeSrc":"6935:83:64","nodeType":"YulBlock","src":"6935:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6937:77:64","nodeType":"YulIdentifier","src":"6937:77:64"},"nativeSrc":"6937:79:64","nodeType":"YulFunctionCall","src":"6937:79:64"},"nativeSrc":"6937:79:64","nodeType":"YulExpressionStatement","src":"6937:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6910:7:64","nodeType":"YulIdentifier","src":"6910:7:64"},{"name":"headStart","nativeSrc":"6919:9:64","nodeType":"YulIdentifier","src":"6919:9:64"}],"functionName":{"name":"sub","nativeSrc":"6906:3:64","nodeType":"YulIdentifier","src":"6906:3:64"},"nativeSrc":"6906:23:64","nodeType":"YulFunctionCall","src":"6906:23:64"},{"kind":"number","nativeSrc":"6931:2:64","nodeType":"YulLiteral","src":"6931:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6902:3:64","nodeType":"YulIdentifier","src":"6902:3:64"},"nativeSrc":"6902:32:64","nodeType":"YulFunctionCall","src":"6902:32:64"},"nativeSrc":"6899:119:64","nodeType":"YulIf","src":"6899:119:64"},{"nativeSrc":"7028:117:64","nodeType":"YulBlock","src":"7028:117:64","statements":[{"nativeSrc":"7043:15:64","nodeType":"YulVariableDeclaration","src":"7043:15:64","value":{"kind":"number","nativeSrc":"7057:1:64","nodeType":"YulLiteral","src":"7057:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7047:6:64","nodeType":"YulTypedName","src":"7047:6:64","type":""}]},{"nativeSrc":"7072:63:64","nodeType":"YulAssignment","src":"7072:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7107:9:64","nodeType":"YulIdentifier","src":"7107:9:64"},{"name":"offset","nativeSrc":"7118:6:64","nodeType":"YulIdentifier","src":"7118:6:64"}],"functionName":{"name":"add","nativeSrc":"7103:3:64","nodeType":"YulIdentifier","src":"7103:3:64"},"nativeSrc":"7103:22:64","nodeType":"YulFunctionCall","src":"7103:22:64"},{"name":"dataEnd","nativeSrc":"7127:7:64","nodeType":"YulIdentifier","src":"7127:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7082:20:64","nodeType":"YulIdentifier","src":"7082:20:64"},"nativeSrc":"7082:53:64","nodeType":"YulFunctionCall","src":"7082:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7072:6:64","nodeType":"YulIdentifier","src":"7072:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6823:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6859:9:64","nodeType":"YulTypedName","src":"6859:9:64","type":""},{"name":"dataEnd","nativeSrc":"6870:7:64","nodeType":"YulTypedName","src":"6870:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6882:6:64","nodeType":"YulTypedName","src":"6882:6:64","type":""}],"src":"6823:329:64"},{"body":{"nativeSrc":"7247:28:64","nodeType":"YulBlock","src":"7247:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7264:1:64","nodeType":"YulLiteral","src":"7264:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7267:1:64","nodeType":"YulLiteral","src":"7267:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7257:6:64","nodeType":"YulIdentifier","src":"7257:6:64"},"nativeSrc":"7257:12:64","nodeType":"YulFunctionCall","src":"7257:12:64"},"nativeSrc":"7257:12:64","nodeType":"YulExpressionStatement","src":"7257:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7158:117:64","nodeType":"YulFunctionDefinition","src":"7158:117:64"},{"body":{"nativeSrc":"7309:152:64","nodeType":"YulBlock","src":"7309:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7326:1:64","nodeType":"YulLiteral","src":"7326:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7329:77:64","nodeType":"YulLiteral","src":"7329:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7319:6:64","nodeType":"YulIdentifier","src":"7319:6:64"},"nativeSrc":"7319:88:64","nodeType":"YulFunctionCall","src":"7319:88:64"},"nativeSrc":"7319:88:64","nodeType":"YulExpressionStatement","src":"7319:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7423:1:64","nodeType":"YulLiteral","src":"7423:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"7426:4:64","nodeType":"YulLiteral","src":"7426:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"7416:6:64","nodeType":"YulIdentifier","src":"7416:6:64"},"nativeSrc":"7416:15:64","nodeType":"YulFunctionCall","src":"7416:15:64"},"nativeSrc":"7416:15:64","nodeType":"YulExpressionStatement","src":"7416:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7447:1:64","nodeType":"YulLiteral","src":"7447:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7450:4:64","nodeType":"YulLiteral","src":"7450:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7440:6:64","nodeType":"YulIdentifier","src":"7440:6:64"},"nativeSrc":"7440:15:64","nodeType":"YulFunctionCall","src":"7440:15:64"},"nativeSrc":"7440:15:64","nodeType":"YulExpressionStatement","src":"7440:15:64"}]},"name":"panic_error_0x41","nativeSrc":"7281:180:64","nodeType":"YulFunctionDefinition","src":"7281:180:64"},{"body":{"nativeSrc":"7510:238:64","nodeType":"YulBlock","src":"7510:238:64","statements":[{"nativeSrc":"7520:58:64","nodeType":"YulVariableDeclaration","src":"7520:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"7542:6:64","nodeType":"YulIdentifier","src":"7542:6:64"},{"arguments":[{"name":"size","nativeSrc":"7572:4:64","nodeType":"YulIdentifier","src":"7572:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"7550:21:64","nodeType":"YulIdentifier","src":"7550:21:64"},"nativeSrc":"7550:27:64","nodeType":"YulFunctionCall","src":"7550:27:64"}],"functionName":{"name":"add","nativeSrc":"7538:3:64","nodeType":"YulIdentifier","src":"7538:3:64"},"nativeSrc":"7538:40:64","nodeType":"YulFunctionCall","src":"7538:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"7524:10:64","nodeType":"YulTypedName","src":"7524:10:64","type":""}]},{"body":{"nativeSrc":"7689:22:64","nodeType":"YulBlock","src":"7689:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"7691:16:64","nodeType":"YulIdentifier","src":"7691:16:64"},"nativeSrc":"7691:18:64","nodeType":"YulFunctionCall","src":"7691:18:64"},"nativeSrc":"7691:18:64","nodeType":"YulExpressionStatement","src":"7691:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"7632:10:64","nodeType":"YulIdentifier","src":"7632:10:64"},{"kind":"number","nativeSrc":"7644:18:64","nodeType":"YulLiteral","src":"7644:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7629:2:64","nodeType":"YulIdentifier","src":"7629:2:64"},"nativeSrc":"7629:34:64","nodeType":"YulFunctionCall","src":"7629:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"7668:10:64","nodeType":"YulIdentifier","src":"7668:10:64"},{"name":"memPtr","nativeSrc":"7680:6:64","nodeType":"YulIdentifier","src":"7680:6:64"}],"functionName":{"name":"lt","nativeSrc":"7665:2:64","nodeType":"YulIdentifier","src":"7665:2:64"},"nativeSrc":"7665:22:64","nodeType":"YulFunctionCall","src":"7665:22:64"}],"functionName":{"name":"or","nativeSrc":"7626:2:64","nodeType":"YulIdentifier","src":"7626:2:64"},"nativeSrc":"7626:62:64","nodeType":"YulFunctionCall","src":"7626:62:64"},"nativeSrc":"7623:88:64","nodeType":"YulIf","src":"7623:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7727:2:64","nodeType":"YulLiteral","src":"7727:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"7731:10:64","nodeType":"YulIdentifier","src":"7731:10:64"}],"functionName":{"name":"mstore","nativeSrc":"7720:6:64","nodeType":"YulIdentifier","src":"7720:6:64"},"nativeSrc":"7720:22:64","nodeType":"YulFunctionCall","src":"7720:22:64"},"nativeSrc":"7720:22:64","nodeType":"YulExpressionStatement","src":"7720:22:64"}]},"name":"finalize_allocation","nativeSrc":"7467:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"7496:6:64","nodeType":"YulTypedName","src":"7496:6:64","type":""},{"name":"size","nativeSrc":"7504:4:64","nodeType":"YulTypedName","src":"7504:4:64","type":""}],"src":"7467:281:64"},{"body":{"nativeSrc":"7795:88:64","nodeType":"YulBlock","src":"7795:88:64","statements":[{"nativeSrc":"7805:30:64","nodeType":"YulAssignment","src":"7805:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"7815:18:64","nodeType":"YulIdentifier","src":"7815:18:64"},"nativeSrc":"7815:20:64","nodeType":"YulFunctionCall","src":"7815:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"7805:6:64","nodeType":"YulIdentifier","src":"7805:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"7864:6:64","nodeType":"YulIdentifier","src":"7864:6:64"},{"name":"size","nativeSrc":"7872:4:64","nodeType":"YulIdentifier","src":"7872:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"7844:19:64","nodeType":"YulIdentifier","src":"7844:19:64"},"nativeSrc":"7844:33:64","nodeType":"YulFunctionCall","src":"7844:33:64"},"nativeSrc":"7844:33:64","nodeType":"YulExpressionStatement","src":"7844:33:64"}]},"name":"allocate_memory","nativeSrc":"7754:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"7779:4:64","nodeType":"YulTypedName","src":"7779:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"7788:6:64","nodeType":"YulTypedName","src":"7788:6:64","type":""}],"src":"7754:129:64"},{"body":{"nativeSrc":"7978:28:64","nodeType":"YulBlock","src":"7978:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7995:1:64","nodeType":"YulLiteral","src":"7995:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7998:1:64","nodeType":"YulLiteral","src":"7998:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7988:6:64","nodeType":"YulIdentifier","src":"7988:6:64"},"nativeSrc":"7988:12:64","nodeType":"YulFunctionCall","src":"7988:12:64"},"nativeSrc":"7988:12:64","nodeType":"YulExpressionStatement","src":"7988:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"7889:117:64","nodeType":"YulFunctionDefinition","src":"7889:117:64"},{"body":{"nativeSrc":"8082:51:64","nodeType":"YulBlock","src":"8082:51:64","statements":[{"nativeSrc":"8092:35:64","nodeType":"YulAssignment","src":"8092:35:64","value":{"arguments":[{"name":"value","nativeSrc":"8121:5:64","nodeType":"YulIdentifier","src":"8121:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"8103:17:64","nodeType":"YulIdentifier","src":"8103:17:64"},"nativeSrc":"8103:24:64","nodeType":"YulFunctionCall","src":"8103:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"8092:7:64","nodeType":"YulIdentifier","src":"8092:7:64"}]}]},"name":"cleanup_t_contract$_SimpleAllowList_$13665","nativeSrc":"8012:121:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8064:5:64","nodeType":"YulTypedName","src":"8064:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8074:7:64","nodeType":"YulTypedName","src":"8074:7:64","type":""}],"src":"8012:121:64"},{"body":{"nativeSrc":"8207:104:64","nodeType":"YulBlock","src":"8207:104:64","statements":[{"body":{"nativeSrc":"8289:16:64","nodeType":"YulBlock","src":"8289:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8298:1:64","nodeType":"YulLiteral","src":"8298:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8301:1:64","nodeType":"YulLiteral","src":"8301:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8291:6:64","nodeType":"YulIdentifier","src":"8291:6:64"},"nativeSrc":"8291:12:64","nodeType":"YulFunctionCall","src":"8291:12:64"},"nativeSrc":"8291:12:64","nodeType":"YulExpressionStatement","src":"8291:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8230:5:64","nodeType":"YulIdentifier","src":"8230:5:64"},{"arguments":[{"name":"value","nativeSrc":"8280:5:64","nodeType":"YulIdentifier","src":"8280:5:64"}],"functionName":{"name":"cleanup_t_contract$_SimpleAllowList_$13665","nativeSrc":"8237:42:64","nodeType":"YulIdentifier","src":"8237:42:64"},"nativeSrc":"8237:49:64","nodeType":"YulFunctionCall","src":"8237:49:64"}],"functionName":{"name":"eq","nativeSrc":"8227:2:64","nodeType":"YulIdentifier","src":"8227:2:64"},"nativeSrc":"8227:60:64","nodeType":"YulFunctionCall","src":"8227:60:64"}],"functionName":{"name":"iszero","nativeSrc":"8220:6:64","nodeType":"YulIdentifier","src":"8220:6:64"},"nativeSrc":"8220:68:64","nodeType":"YulFunctionCall","src":"8220:68:64"},"nativeSrc":"8217:88:64","nodeType":"YulIf","src":"8217:88:64"}]},"name":"validator_revert_t_contract$_SimpleAllowList_$13665","nativeSrc":"8139:172:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8200:5:64","nodeType":"YulTypedName","src":"8200:5:64","type":""}],"src":"8139:172:64"},{"body":{"nativeSrc":"8394:112:64","nodeType":"YulBlock","src":"8394:112:64","statements":[{"nativeSrc":"8404:29:64","nodeType":"YulAssignment","src":"8404:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8426:6:64","nodeType":"YulIdentifier","src":"8426:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8413:12:64","nodeType":"YulIdentifier","src":"8413:12:64"},"nativeSrc":"8413:20:64","nodeType":"YulFunctionCall","src":"8413:20:64"},"variableNames":[{"name":"value","nativeSrc":"8404:5:64","nodeType":"YulIdentifier","src":"8404:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8494:5:64","nodeType":"YulIdentifier","src":"8494:5:64"}],"functionName":{"name":"validator_revert_t_contract$_SimpleAllowList_$13665","nativeSrc":"8442:51:64","nodeType":"YulIdentifier","src":"8442:51:64"},"nativeSrc":"8442:58:64","nodeType":"YulFunctionCall","src":"8442:58:64"},"nativeSrc":"8442:58:64","nodeType":"YulExpressionStatement","src":"8442:58:64"}]},"name":"abi_decode_t_contract$_SimpleAllowList_$13665","nativeSrc":"8317:189:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8372:6:64","nodeType":"YulTypedName","src":"8372:6:64","type":""},{"name":"end","nativeSrc":"8380:3:64","nodeType":"YulTypedName","src":"8380:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8388:5:64","nodeType":"YulTypedName","src":"8388:5:64","type":""}],"src":"8317:189:64"},{"body":{"nativeSrc":"8555:79:64","nodeType":"YulBlock","src":"8555:79:64","statements":[{"body":{"nativeSrc":"8612:16:64","nodeType":"YulBlock","src":"8612:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8621:1:64","nodeType":"YulLiteral","src":"8621:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8624:1:64","nodeType":"YulLiteral","src":"8624:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8614:6:64","nodeType":"YulIdentifier","src":"8614:6:64"},"nativeSrc":"8614:12:64","nodeType":"YulFunctionCall","src":"8614:12:64"},"nativeSrc":"8614:12:64","nodeType":"YulExpressionStatement","src":"8614:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8578:5:64","nodeType":"YulIdentifier","src":"8578:5:64"},{"arguments":[{"name":"value","nativeSrc":"8603:5:64","nodeType":"YulIdentifier","src":"8603:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8585:17:64","nodeType":"YulIdentifier","src":"8585:17:64"},"nativeSrc":"8585:24:64","nodeType":"YulFunctionCall","src":"8585:24:64"}],"functionName":{"name":"eq","nativeSrc":"8575:2:64","nodeType":"YulIdentifier","src":"8575:2:64"},"nativeSrc":"8575:35:64","nodeType":"YulFunctionCall","src":"8575:35:64"}],"functionName":{"name":"iszero","nativeSrc":"8568:6:64","nodeType":"YulIdentifier","src":"8568:6:64"},"nativeSrc":"8568:43:64","nodeType":"YulFunctionCall","src":"8568:43:64"},"nativeSrc":"8565:63:64","nodeType":"YulIf","src":"8565:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"8512:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8548:5:64","nodeType":"YulTypedName","src":"8548:5:64","type":""}],"src":"8512:122:64"},{"body":{"nativeSrc":"8692:87:64","nodeType":"YulBlock","src":"8692:87:64","statements":[{"nativeSrc":"8702:29:64","nodeType":"YulAssignment","src":"8702:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8724:6:64","nodeType":"YulIdentifier","src":"8724:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8711:12:64","nodeType":"YulIdentifier","src":"8711:12:64"},"nativeSrc":"8711:20:64","nodeType":"YulFunctionCall","src":"8711:20:64"},"variableNames":[{"name":"value","nativeSrc":"8702:5:64","nodeType":"YulIdentifier","src":"8702:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8767:5:64","nodeType":"YulIdentifier","src":"8767:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"8740:26:64","nodeType":"YulIdentifier","src":"8740:26:64"},"nativeSrc":"8740:33:64","nodeType":"YulFunctionCall","src":"8740:33:64"},"nativeSrc":"8740:33:64","nodeType":"YulExpressionStatement","src":"8740:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"8640:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8670:6:64","nodeType":"YulTypedName","src":"8670:6:64","type":""},{"name":"end","nativeSrc":"8678:3:64","nodeType":"YulTypedName","src":"8678:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8686:5:64","nodeType":"YulTypedName","src":"8686:5:64","type":""}],"src":"8640:139:64"},{"body":{"nativeSrc":"8915:525:64","nodeType":"YulBlock","src":"8915:525:64","statements":[{"body":{"nativeSrc":"8959:83:64","nodeType":"YulBlock","src":"8959:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8961:77:64","nodeType":"YulIdentifier","src":"8961:77:64"},"nativeSrc":"8961:79:64","nodeType":"YulFunctionCall","src":"8961:79:64"},"nativeSrc":"8961:79:64","nodeType":"YulExpressionStatement","src":"8961:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"8936:3:64","nodeType":"YulIdentifier","src":"8936:3:64"},{"name":"headStart","nativeSrc":"8941:9:64","nodeType":"YulIdentifier","src":"8941:9:64"}],"functionName":{"name":"sub","nativeSrc":"8932:3:64","nodeType":"YulIdentifier","src":"8932:3:64"},"nativeSrc":"8932:19:64","nodeType":"YulFunctionCall","src":"8932:19:64"},{"kind":"number","nativeSrc":"8953:4:64","nodeType":"YulLiteral","src":"8953:4:64","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"8928:3:64","nodeType":"YulIdentifier","src":"8928:3:64"},"nativeSrc":"8928:30:64","nodeType":"YulFunctionCall","src":"8928:30:64"},"nativeSrc":"8925:117:64","nodeType":"YulIf","src":"8925:117:64"},{"nativeSrc":"9051:30:64","nodeType":"YulAssignment","src":"9051:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"9076:4:64","nodeType":"YulLiteral","src":"9076:4:64","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"9060:15:64","nodeType":"YulIdentifier","src":"9060:15:64"},"nativeSrc":"9060:21:64","nodeType":"YulFunctionCall","src":"9060:21:64"},"variableNames":[{"name":"value","nativeSrc":"9051:5:64","nodeType":"YulIdentifier","src":"9051:5:64"}]},{"nativeSrc":"9091:180:64","nodeType":"YulBlock","src":"9091:180:64","statements":[{"nativeSrc":"9131:15:64","nodeType":"YulVariableDeclaration","src":"9131:15:64","value":{"kind":"number","nativeSrc":"9145:1:64","nodeType":"YulLiteral","src":"9145:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9135:6:64","nodeType":"YulTypedName","src":"9135:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9171:5:64","nodeType":"YulIdentifier","src":"9171:5:64"},{"kind":"number","nativeSrc":"9178:4:64","nodeType":"YulLiteral","src":"9178:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9167:3:64","nodeType":"YulIdentifier","src":"9167:3:64"},"nativeSrc":"9167:16:64","nodeType":"YulFunctionCall","src":"9167:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9235:9:64","nodeType":"YulIdentifier","src":"9235:9:64"},{"name":"offset","nativeSrc":"9246:6:64","nodeType":"YulIdentifier","src":"9246:6:64"}],"functionName":{"name":"add","nativeSrc":"9231:3:64","nodeType":"YulIdentifier","src":"9231:3:64"},"nativeSrc":"9231:22:64","nodeType":"YulFunctionCall","src":"9231:22:64"},{"name":"end","nativeSrc":"9255:3:64","nodeType":"YulIdentifier","src":"9255:3:64"}],"functionName":{"name":"abi_decode_t_contract$_SimpleAllowList_$13665","nativeSrc":"9185:45:64","nodeType":"YulIdentifier","src":"9185:45:64"},"nativeSrc":"9185:74:64","nodeType":"YulFunctionCall","src":"9185:74:64"}],"functionName":{"name":"mstore","nativeSrc":"9160:6:64","nodeType":"YulIdentifier","src":"9160:6:64"},"nativeSrc":"9160:100:64","nodeType":"YulFunctionCall","src":"9160:100:64"},"nativeSrc":"9160:100:64","nodeType":"YulExpressionStatement","src":"9160:100:64"}]},{"nativeSrc":"9281:152:64","nodeType":"YulBlock","src":"9281:152:64","statements":[{"nativeSrc":"9317:16:64","nodeType":"YulVariableDeclaration","src":"9317:16:64","value":{"kind":"number","nativeSrc":"9331:2:64","nodeType":"YulLiteral","src":"9331:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9321:6:64","nodeType":"YulTypedName","src":"9321:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9358:5:64","nodeType":"YulIdentifier","src":"9358:5:64"},{"kind":"number","nativeSrc":"9365:4:64","nodeType":"YulLiteral","src":"9365:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9354:3:64","nodeType":"YulIdentifier","src":"9354:3:64"},"nativeSrc":"9354:16:64","nodeType":"YulFunctionCall","src":"9354:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9397:9:64","nodeType":"YulIdentifier","src":"9397:9:64"},{"name":"offset","nativeSrc":"9408:6:64","nodeType":"YulIdentifier","src":"9408:6:64"}],"functionName":{"name":"add","nativeSrc":"9393:3:64","nodeType":"YulIdentifier","src":"9393:3:64"},"nativeSrc":"9393:22:64","nodeType":"YulFunctionCall","src":"9393:22:64"},{"name":"end","nativeSrc":"9417:3:64","nodeType":"YulIdentifier","src":"9417:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9372:20:64","nodeType":"YulIdentifier","src":"9372:20:64"},"nativeSrc":"9372:49:64","nodeType":"YulFunctionCall","src":"9372:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9347:6:64","nodeType":"YulIdentifier","src":"9347:6:64"},"nativeSrc":"9347:75:64","nodeType":"YulFunctionCall","src":"9347:75:64"},"nativeSrc":"9347:75:64","nodeType":"YulExpressionStatement","src":"9347:75:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$17421_memory_ptr","nativeSrc":"8830:610:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8890:9:64","nodeType":"YulTypedName","src":"8890:9:64","type":""},{"name":"end","nativeSrc":"8901:3:64","nodeType":"YulTypedName","src":"8901:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8909:5:64","nodeType":"YulTypedName","src":"8909:5:64","type":""}],"src":"8830:610:64"},{"body":{"nativeSrc":"9542:293:64","nodeType":"YulBlock","src":"9542:293:64","statements":[{"body":{"nativeSrc":"9588:83:64","nodeType":"YulBlock","src":"9588:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9590:77:64","nodeType":"YulIdentifier","src":"9590:77:64"},"nativeSrc":"9590:79:64","nodeType":"YulFunctionCall","src":"9590:79:64"},"nativeSrc":"9590:79:64","nodeType":"YulExpressionStatement","src":"9590:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9563:7:64","nodeType":"YulIdentifier","src":"9563:7:64"},{"name":"headStart","nativeSrc":"9572:9:64","nodeType":"YulIdentifier","src":"9572:9:64"}],"functionName":{"name":"sub","nativeSrc":"9559:3:64","nodeType":"YulIdentifier","src":"9559:3:64"},"nativeSrc":"9559:23:64","nodeType":"YulFunctionCall","src":"9559:23:64"},{"kind":"number","nativeSrc":"9584:2:64","nodeType":"YulLiteral","src":"9584:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"9555:3:64","nodeType":"YulIdentifier","src":"9555:3:64"},"nativeSrc":"9555:32:64","nodeType":"YulFunctionCall","src":"9555:32:64"},"nativeSrc":"9552:119:64","nodeType":"YulIf","src":"9552:119:64"},{"nativeSrc":"9681:147:64","nodeType":"YulBlock","src":"9681:147:64","statements":[{"nativeSrc":"9696:15:64","nodeType":"YulVariableDeclaration","src":"9696:15:64","value":{"kind":"number","nativeSrc":"9710:1:64","nodeType":"YulLiteral","src":"9710:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9700:6:64","nodeType":"YulTypedName","src":"9700:6:64","type":""}]},{"nativeSrc":"9725:93:64","nodeType":"YulAssignment","src":"9725:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9790:9:64","nodeType":"YulIdentifier","src":"9790:9:64"},{"name":"offset","nativeSrc":"9801:6:64","nodeType":"YulIdentifier","src":"9801:6:64"}],"functionName":{"name":"add","nativeSrc":"9786:3:64","nodeType":"YulIdentifier","src":"9786:3:64"},"nativeSrc":"9786:22:64","nodeType":"YulFunctionCall","src":"9786:22:64"},{"name":"dataEnd","nativeSrc":"9810:7:64","nodeType":"YulIdentifier","src":"9810:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$17421_memory_ptr","nativeSrc":"9735:50:64","nodeType":"YulIdentifier","src":"9735:50:64"},"nativeSrc":"9735:83:64","nodeType":"YulFunctionCall","src":"9735:83:64"},"variableNames":[{"name":"value0","nativeSrc":"9725:6:64","nodeType":"YulIdentifier","src":"9725:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$17421_memory_ptr","nativeSrc":"9446:389:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9512:9:64","nodeType":"YulTypedName","src":"9512:9:64","type":""},{"name":"dataEnd","nativeSrc":"9523:7:64","nodeType":"YulTypedName","src":"9523:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9535:6:64","nodeType":"YulTypedName","src":"9535:6:64","type":""}],"src":"9446:389:64"},{"body":{"nativeSrc":"9930:28:64","nodeType":"YulBlock","src":"9930:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9947:1:64","nodeType":"YulLiteral","src":"9947:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9950:1:64","nodeType":"YulLiteral","src":"9950:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9940:6:64","nodeType":"YulIdentifier","src":"9940:6:64"},"nativeSrc":"9940:12:64","nodeType":"YulFunctionCall","src":"9940:12:64"},"nativeSrc":"9940:12:64","nodeType":"YulExpressionStatement","src":"9940:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"9841:117:64","nodeType":"YulFunctionDefinition","src":"9841:117:64"},{"body":{"nativeSrc":"10030:241:64","nodeType":"YulBlock","src":"10030:241:64","statements":[{"body":{"nativeSrc":"10135:22:64","nodeType":"YulBlock","src":"10135:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10137:16:64","nodeType":"YulIdentifier","src":"10137:16:64"},"nativeSrc":"10137:18:64","nodeType":"YulFunctionCall","src":"10137:18:64"},"nativeSrc":"10137:18:64","nodeType":"YulExpressionStatement","src":"10137:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10107:6:64","nodeType":"YulIdentifier","src":"10107:6:64"},{"kind":"number","nativeSrc":"10115:18:64","nodeType":"YulLiteral","src":"10115:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10104:2:64","nodeType":"YulIdentifier","src":"10104:2:64"},"nativeSrc":"10104:30:64","nodeType":"YulFunctionCall","src":"10104:30:64"},"nativeSrc":"10101:56:64","nodeType":"YulIf","src":"10101:56:64"},{"nativeSrc":"10167:37:64","nodeType":"YulAssignment","src":"10167:37:64","value":{"arguments":[{"name":"length","nativeSrc":"10197:6:64","nodeType":"YulIdentifier","src":"10197:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10175:21:64","nodeType":"YulIdentifier","src":"10175:21:64"},"nativeSrc":"10175:29:64","nodeType":"YulFunctionCall","src":"10175:29:64"},"variableNames":[{"name":"size","nativeSrc":"10167:4:64","nodeType":"YulIdentifier","src":"10167:4:64"}]},{"nativeSrc":"10241:23:64","nodeType":"YulAssignment","src":"10241:23:64","value":{"arguments":[{"name":"size","nativeSrc":"10253:4:64","nodeType":"YulIdentifier","src":"10253:4:64"},{"kind":"number","nativeSrc":"10259:4:64","nodeType":"YulLiteral","src":"10259:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10249:3:64","nodeType":"YulIdentifier","src":"10249:3:64"},"nativeSrc":"10249:15:64","nodeType":"YulFunctionCall","src":"10249:15:64"},"variableNames":[{"name":"size","nativeSrc":"10241:4:64","nodeType":"YulIdentifier","src":"10241:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"9964:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10014:6:64","nodeType":"YulTypedName","src":"10014:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10025:4:64","nodeType":"YulTypedName","src":"10025:4:64","type":""}],"src":"9964:307:64"},{"body":{"nativeSrc":"10341:84:64","nodeType":"YulBlock","src":"10341:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"10365:3:64","nodeType":"YulIdentifier","src":"10365:3:64"},{"name":"src","nativeSrc":"10370:3:64","nodeType":"YulIdentifier","src":"10370:3:64"},{"name":"length","nativeSrc":"10375:6:64","nodeType":"YulIdentifier","src":"10375:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"10352:12:64","nodeType":"YulIdentifier","src":"10352:12:64"},"nativeSrc":"10352:30:64","nodeType":"YulFunctionCall","src":"10352:30:64"},"nativeSrc":"10352:30:64","nodeType":"YulExpressionStatement","src":"10352:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"10402:3:64","nodeType":"YulIdentifier","src":"10402:3:64"},{"name":"length","nativeSrc":"10407:6:64","nodeType":"YulIdentifier","src":"10407:6:64"}],"functionName":{"name":"add","nativeSrc":"10398:3:64","nodeType":"YulIdentifier","src":"10398:3:64"},"nativeSrc":"10398:16:64","nodeType":"YulFunctionCall","src":"10398:16:64"},{"kind":"number","nativeSrc":"10416:1:64","nodeType":"YulLiteral","src":"10416:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"10391:6:64","nodeType":"YulIdentifier","src":"10391:6:64"},"nativeSrc":"10391:27:64","nodeType":"YulFunctionCall","src":"10391:27:64"},"nativeSrc":"10391:27:64","nodeType":"YulExpressionStatement","src":"10391:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"10277:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10323:3:64","nodeType":"YulTypedName","src":"10323:3:64","type":""},{"name":"dst","nativeSrc":"10328:3:64","nodeType":"YulTypedName","src":"10328:3:64","type":""},{"name":"length","nativeSrc":"10333:6:64","nodeType":"YulTypedName","src":"10333:6:64","type":""}],"src":"10277:148:64"},{"body":{"nativeSrc":"10514:340:64","nodeType":"YulBlock","src":"10514:340:64","statements":[{"nativeSrc":"10524:74:64","nodeType":"YulAssignment","src":"10524:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10590:6:64","nodeType":"YulIdentifier","src":"10590:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"10549:40:64","nodeType":"YulIdentifier","src":"10549:40:64"},"nativeSrc":"10549:48:64","nodeType":"YulFunctionCall","src":"10549:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"10533:15:64","nodeType":"YulIdentifier","src":"10533:15:64"},"nativeSrc":"10533:65:64","nodeType":"YulFunctionCall","src":"10533:65:64"},"variableNames":[{"name":"array","nativeSrc":"10524:5:64","nodeType":"YulIdentifier","src":"10524:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"10614:5:64","nodeType":"YulIdentifier","src":"10614:5:64"},{"name":"length","nativeSrc":"10621:6:64","nodeType":"YulIdentifier","src":"10621:6:64"}],"functionName":{"name":"mstore","nativeSrc":"10607:6:64","nodeType":"YulIdentifier","src":"10607:6:64"},"nativeSrc":"10607:21:64","nodeType":"YulFunctionCall","src":"10607:21:64"},"nativeSrc":"10607:21:64","nodeType":"YulExpressionStatement","src":"10607:21:64"},{"nativeSrc":"10637:27:64","nodeType":"YulVariableDeclaration","src":"10637:27:64","value":{"arguments":[{"name":"array","nativeSrc":"10652:5:64","nodeType":"YulIdentifier","src":"10652:5:64"},{"kind":"number","nativeSrc":"10659:4:64","nodeType":"YulLiteral","src":"10659:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10648:3:64","nodeType":"YulIdentifier","src":"10648:3:64"},"nativeSrc":"10648:16:64","nodeType":"YulFunctionCall","src":"10648:16:64"},"variables":[{"name":"dst","nativeSrc":"10641:3:64","nodeType":"YulTypedName","src":"10641:3:64","type":""}]},{"body":{"nativeSrc":"10702:83:64","nodeType":"YulBlock","src":"10702:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"10704:77:64","nodeType":"YulIdentifier","src":"10704:77:64"},"nativeSrc":"10704:79:64","nodeType":"YulFunctionCall","src":"10704:79:64"},"nativeSrc":"10704:79:64","nodeType":"YulExpressionStatement","src":"10704:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"10683:3:64","nodeType":"YulIdentifier","src":"10683:3:64"},{"name":"length","nativeSrc":"10688:6:64","nodeType":"YulIdentifier","src":"10688:6:64"}],"functionName":{"name":"add","nativeSrc":"10679:3:64","nodeType":"YulIdentifier","src":"10679:3:64"},"nativeSrc":"10679:16:64","nodeType":"YulFunctionCall","src":"10679:16:64"},{"name":"end","nativeSrc":"10697:3:64","nodeType":"YulIdentifier","src":"10697:3:64"}],"functionName":{"name":"gt","nativeSrc":"10676:2:64","nodeType":"YulIdentifier","src":"10676:2:64"},"nativeSrc":"10676:25:64","nodeType":"YulFunctionCall","src":"10676:25:64"},"nativeSrc":"10673:112:64","nodeType":"YulIf","src":"10673:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"10831:3:64","nodeType":"YulIdentifier","src":"10831:3:64"},{"name":"dst","nativeSrc":"10836:3:64","nodeType":"YulIdentifier","src":"10836:3:64"},{"name":"length","nativeSrc":"10841:6:64","nodeType":"YulIdentifier","src":"10841:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"10794:36:64","nodeType":"YulIdentifier","src":"10794:36:64"},"nativeSrc":"10794:54:64","nodeType":"YulFunctionCall","src":"10794:54:64"},"nativeSrc":"10794:54:64","nodeType":"YulExpressionStatement","src":"10794:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"10431:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"10487:3:64","nodeType":"YulTypedName","src":"10487:3:64","type":""},{"name":"length","nativeSrc":"10492:6:64","nodeType":"YulTypedName","src":"10492:6:64","type":""},{"name":"end","nativeSrc":"10500:3:64","nodeType":"YulTypedName","src":"10500:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10508:5:64","nodeType":"YulTypedName","src":"10508:5:64","type":""}],"src":"10431:423:64"},{"body":{"nativeSrc":"10934:277:64","nodeType":"YulBlock","src":"10934:277:64","statements":[{"body":{"nativeSrc":"10983:83:64","nodeType":"YulBlock","src":"10983:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"10985:77:64","nodeType":"YulIdentifier","src":"10985:77:64"},"nativeSrc":"10985:79:64","nodeType":"YulFunctionCall","src":"10985:79:64"},"nativeSrc":"10985:79:64","nodeType":"YulExpressionStatement","src":"10985:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10962:6:64","nodeType":"YulIdentifier","src":"10962:6:64"},{"kind":"number","nativeSrc":"10970:4:64","nodeType":"YulLiteral","src":"10970:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"10958:3:64","nodeType":"YulIdentifier","src":"10958:3:64"},"nativeSrc":"10958:17:64","nodeType":"YulFunctionCall","src":"10958:17:64"},{"name":"end","nativeSrc":"10977:3:64","nodeType":"YulIdentifier","src":"10977:3:64"}],"functionName":{"name":"slt","nativeSrc":"10954:3:64","nodeType":"YulIdentifier","src":"10954:3:64"},"nativeSrc":"10954:27:64","nodeType":"YulFunctionCall","src":"10954:27:64"}],"functionName":{"name":"iszero","nativeSrc":"10947:6:64","nodeType":"YulIdentifier","src":"10947:6:64"},"nativeSrc":"10947:35:64","nodeType":"YulFunctionCall","src":"10947:35:64"},"nativeSrc":"10944:122:64","nodeType":"YulIf","src":"10944:122:64"},{"nativeSrc":"11075:34:64","nodeType":"YulVariableDeclaration","src":"11075:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"11102:6:64","nodeType":"YulIdentifier","src":"11102:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"11089:12:64","nodeType":"YulIdentifier","src":"11089:12:64"},"nativeSrc":"11089:20:64","nodeType":"YulFunctionCall","src":"11089:20:64"},"variables":[{"name":"length","nativeSrc":"11079:6:64","nodeType":"YulTypedName","src":"11079:6:64","type":""}]},{"nativeSrc":"11118:87:64","nodeType":"YulAssignment","src":"11118:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11178:6:64","nodeType":"YulIdentifier","src":"11178:6:64"},{"kind":"number","nativeSrc":"11186:4:64","nodeType":"YulLiteral","src":"11186:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11174:3:64","nodeType":"YulIdentifier","src":"11174:3:64"},"nativeSrc":"11174:17:64","nodeType":"YulFunctionCall","src":"11174:17:64"},{"name":"length","nativeSrc":"11193:6:64","nodeType":"YulIdentifier","src":"11193:6:64"},{"name":"end","nativeSrc":"11201:3:64","nodeType":"YulIdentifier","src":"11201:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"11127:46:64","nodeType":"YulIdentifier","src":"11127:46:64"},"nativeSrc":"11127:78:64","nodeType":"YulFunctionCall","src":"11127:78:64"},"variableNames":[{"name":"array","nativeSrc":"11118:5:64","nodeType":"YulIdentifier","src":"11118:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10873:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10912:6:64","nodeType":"YulTypedName","src":"10912:6:64","type":""},{"name":"end","nativeSrc":"10920:3:64","nodeType":"YulTypedName","src":"10920:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"10928:5:64","nodeType":"YulTypedName","src":"10928:5:64","type":""}],"src":"10873:338:64"},{"body":{"nativeSrc":"11340:665:64","nodeType":"YulBlock","src":"11340:665:64","statements":[{"body":{"nativeSrc":"11384:83:64","nodeType":"YulBlock","src":"11384:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"11386:77:64","nodeType":"YulIdentifier","src":"11386:77:64"},"nativeSrc":"11386:79:64","nodeType":"YulFunctionCall","src":"11386:79:64"},"nativeSrc":"11386:79:64","nodeType":"YulExpressionStatement","src":"11386:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"11361:3:64","nodeType":"YulIdentifier","src":"11361:3:64"},{"name":"headStart","nativeSrc":"11366:9:64","nodeType":"YulIdentifier","src":"11366:9:64"}],"functionName":{"name":"sub","nativeSrc":"11357:3:64","nodeType":"YulIdentifier","src":"11357:3:64"},"nativeSrc":"11357:19:64","nodeType":"YulFunctionCall","src":"11357:19:64"},{"kind":"number","nativeSrc":"11378:4:64","nodeType":"YulLiteral","src":"11378:4:64","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"11353:3:64","nodeType":"YulIdentifier","src":"11353:3:64"},"nativeSrc":"11353:30:64","nodeType":"YulFunctionCall","src":"11353:30:64"},"nativeSrc":"11350:117:64","nodeType":"YulIf","src":"11350:117:64"},{"nativeSrc":"11476:30:64","nodeType":"YulAssignment","src":"11476:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"11501:4:64","nodeType":"YulLiteral","src":"11501:4:64","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"11485:15:64","nodeType":"YulIdentifier","src":"11485:15:64"},"nativeSrc":"11485:21:64","nodeType":"YulFunctionCall","src":"11485:21:64"},"variableNames":[{"name":"value","nativeSrc":"11476:5:64","nodeType":"YulIdentifier","src":"11476:5:64"}]},{"nativeSrc":"11516:152:64","nodeType":"YulBlock","src":"11516:152:64","statements":[{"nativeSrc":"11553:15:64","nodeType":"YulVariableDeclaration","src":"11553:15:64","value":{"kind":"number","nativeSrc":"11567:1:64","nodeType":"YulLiteral","src":"11567:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11557:6:64","nodeType":"YulTypedName","src":"11557:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11593:5:64","nodeType":"YulIdentifier","src":"11593:5:64"},{"kind":"number","nativeSrc":"11600:4:64","nodeType":"YulLiteral","src":"11600:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11589:3:64","nodeType":"YulIdentifier","src":"11589:3:64"},"nativeSrc":"11589:16:64","nodeType":"YulFunctionCall","src":"11589:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11632:9:64","nodeType":"YulIdentifier","src":"11632:9:64"},{"name":"offset","nativeSrc":"11643:6:64","nodeType":"YulIdentifier","src":"11643:6:64"}],"functionName":{"name":"add","nativeSrc":"11628:3:64","nodeType":"YulIdentifier","src":"11628:3:64"},"nativeSrc":"11628:22:64","nodeType":"YulFunctionCall","src":"11628:22:64"},{"name":"end","nativeSrc":"11652:3:64","nodeType":"YulIdentifier","src":"11652:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11607:20:64","nodeType":"YulIdentifier","src":"11607:20:64"},"nativeSrc":"11607:49:64","nodeType":"YulFunctionCall","src":"11607:49:64"}],"functionName":{"name":"mstore","nativeSrc":"11582:6:64","nodeType":"YulIdentifier","src":"11582:6:64"},"nativeSrc":"11582:75:64","nodeType":"YulFunctionCall","src":"11582:75:64"},"nativeSrc":"11582:75:64","nodeType":"YulExpressionStatement","src":"11582:75:64"}]},{"nativeSrc":"11678:320:64","nodeType":"YulBlock","src":"11678:320:64","statements":[{"nativeSrc":"11713:46:64","nodeType":"YulVariableDeclaration","src":"11713:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11744:9:64","nodeType":"YulIdentifier","src":"11744:9:64"},{"kind":"number","nativeSrc":"11755:2:64","nodeType":"YulLiteral","src":"11755:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11740:3:64","nodeType":"YulIdentifier","src":"11740:3:64"},"nativeSrc":"11740:18:64","nodeType":"YulFunctionCall","src":"11740:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"11727:12:64","nodeType":"YulIdentifier","src":"11727:12:64"},"nativeSrc":"11727:32:64","nodeType":"YulFunctionCall","src":"11727:32:64"},"variables":[{"name":"offset","nativeSrc":"11717:6:64","nodeType":"YulTypedName","src":"11717:6:64","type":""}]},{"body":{"nativeSrc":"11806:83:64","nodeType":"YulBlock","src":"11806:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"11808:77:64","nodeType":"YulIdentifier","src":"11808:77:64"},"nativeSrc":"11808:79:64","nodeType":"YulFunctionCall","src":"11808:79:64"},"nativeSrc":"11808:79:64","nodeType":"YulExpressionStatement","src":"11808:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11778:6:64","nodeType":"YulIdentifier","src":"11778:6:64"},{"kind":"number","nativeSrc":"11786:18:64","nodeType":"YulLiteral","src":"11786:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11775:2:64","nodeType":"YulIdentifier","src":"11775:2:64"},"nativeSrc":"11775:30:64","nodeType":"YulFunctionCall","src":"11775:30:64"},"nativeSrc":"11772:117:64","nodeType":"YulIf","src":"11772:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11914:5:64","nodeType":"YulIdentifier","src":"11914:5:64"},{"kind":"number","nativeSrc":"11921:4:64","nodeType":"YulLiteral","src":"11921:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11910:3:64","nodeType":"YulIdentifier","src":"11910:3:64"},"nativeSrc":"11910:16:64","nodeType":"YulFunctionCall","src":"11910:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11962:9:64","nodeType":"YulIdentifier","src":"11962:9:64"},{"name":"offset","nativeSrc":"11973:6:64","nodeType":"YulIdentifier","src":"11973:6:64"}],"functionName":{"name":"add","nativeSrc":"11958:3:64","nodeType":"YulIdentifier","src":"11958:3:64"},"nativeSrc":"11958:22:64","nodeType":"YulFunctionCall","src":"11958:22:64"},{"name":"end","nativeSrc":"11982:3:64","nodeType":"YulIdentifier","src":"11982:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"11928:29:64","nodeType":"YulIdentifier","src":"11928:29:64"},"nativeSrc":"11928:58:64","nodeType":"YulFunctionCall","src":"11928:58:64"}],"functionName":{"name":"mstore","nativeSrc":"11903:6:64","nodeType":"YulIdentifier","src":"11903:6:64"},"nativeSrc":"11903:84:64","nodeType":"YulFunctionCall","src":"11903:84:64"},"nativeSrc":"11903:84:64","nodeType":"YulExpressionStatement","src":"11903:84:64"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"11254:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11315:9:64","nodeType":"YulTypedName","src":"11315:9:64","type":""},{"name":"end","nativeSrc":"11326:3:64","nodeType":"YulTypedName","src":"11326:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11334:5:64","nodeType":"YulTypedName","src":"11334:5:64","type":""}],"src":"11254:751:64"},{"body":{"nativeSrc":"12108:454:64","nodeType":"YulBlock","src":"12108:454:64","statements":[{"body":{"nativeSrc":"12154:83:64","nodeType":"YulBlock","src":"12154:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12156:77:64","nodeType":"YulIdentifier","src":"12156:77:64"},"nativeSrc":"12156:79:64","nodeType":"YulFunctionCall","src":"12156:79:64"},"nativeSrc":"12156:79:64","nodeType":"YulExpressionStatement","src":"12156:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12129:7:64","nodeType":"YulIdentifier","src":"12129:7:64"},{"name":"headStart","nativeSrc":"12138:9:64","nodeType":"YulIdentifier","src":"12138:9:64"}],"functionName":{"name":"sub","nativeSrc":"12125:3:64","nodeType":"YulIdentifier","src":"12125:3:64"},"nativeSrc":"12125:23:64","nodeType":"YulFunctionCall","src":"12125:23:64"},{"kind":"number","nativeSrc":"12150:2:64","nodeType":"YulLiteral","src":"12150:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"12121:3:64","nodeType":"YulIdentifier","src":"12121:3:64"},"nativeSrc":"12121:32:64","nodeType":"YulFunctionCall","src":"12121:32:64"},"nativeSrc":"12118:119:64","nodeType":"YulIf","src":"12118:119:64"},{"nativeSrc":"12247:308:64","nodeType":"YulBlock","src":"12247:308:64","statements":[{"nativeSrc":"12262:45:64","nodeType":"YulVariableDeclaration","src":"12262:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12293:9:64","nodeType":"YulIdentifier","src":"12293:9:64"},{"kind":"number","nativeSrc":"12304:1:64","nodeType":"YulLiteral","src":"12304:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12289:3:64","nodeType":"YulIdentifier","src":"12289:3:64"},"nativeSrc":"12289:17:64","nodeType":"YulFunctionCall","src":"12289:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"12276:12:64","nodeType":"YulIdentifier","src":"12276:12:64"},"nativeSrc":"12276:31:64","nodeType":"YulFunctionCall","src":"12276:31:64"},"variables":[{"name":"offset","nativeSrc":"12266:6:64","nodeType":"YulTypedName","src":"12266:6:64","type":""}]},{"body":{"nativeSrc":"12354:83:64","nodeType":"YulBlock","src":"12354:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12356:77:64","nodeType":"YulIdentifier","src":"12356:77:64"},"nativeSrc":"12356:79:64","nodeType":"YulFunctionCall","src":"12356:79:64"},"nativeSrc":"12356:79:64","nodeType":"YulExpressionStatement","src":"12356:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12326:6:64","nodeType":"YulIdentifier","src":"12326:6:64"},{"kind":"number","nativeSrc":"12334:18:64","nodeType":"YulLiteral","src":"12334:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12323:2:64","nodeType":"YulIdentifier","src":"12323:2:64"},"nativeSrc":"12323:30:64","nodeType":"YulFunctionCall","src":"12323:30:64"},"nativeSrc":"12320:117:64","nodeType":"YulIf","src":"12320:117:64"},{"nativeSrc":"12451:94:64","nodeType":"YulAssignment","src":"12451:94:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12517:9:64","nodeType":"YulIdentifier","src":"12517:9:64"},{"name":"offset","nativeSrc":"12528:6:64","nodeType":"YulIdentifier","src":"12528:6:64"}],"functionName":{"name":"add","nativeSrc":"12513:3:64","nodeType":"YulIdentifier","src":"12513:3:64"},"nativeSrc":"12513:22:64","nodeType":"YulFunctionCall","src":"12513:22:64"},{"name":"dataEnd","nativeSrc":"12537:7:64","nodeType":"YulIdentifier","src":"12537:7:64"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"12461:51:64","nodeType":"YulIdentifier","src":"12461:51:64"},"nativeSrc":"12461:84:64","nodeType":"YulFunctionCall","src":"12461:84:64"},"variableNames":[{"name":"value0","nativeSrc":"12451:6:64","nodeType":"YulIdentifier","src":"12451:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"12011:551:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12078:9:64","nodeType":"YulTypedName","src":"12078:9:64","type":""},{"name":"dataEnd","nativeSrc":"12089:7:64","nodeType":"YulTypedName","src":"12089:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12101:6:64","nodeType":"YulTypedName","src":"12101:6:64","type":""}],"src":"12011:551:64"},{"body":{"nativeSrc":"12596:152:64","nodeType":"YulBlock","src":"12596:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12613:1:64","nodeType":"YulLiteral","src":"12613:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12616:77:64","nodeType":"YulLiteral","src":"12616:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12606:6:64","nodeType":"YulIdentifier","src":"12606:6:64"},"nativeSrc":"12606:88:64","nodeType":"YulFunctionCall","src":"12606:88:64"},"nativeSrc":"12606:88:64","nodeType":"YulExpressionStatement","src":"12606:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12710:1:64","nodeType":"YulLiteral","src":"12710:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"12713:4:64","nodeType":"YulLiteral","src":"12713:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"12703:6:64","nodeType":"YulIdentifier","src":"12703:6:64"},"nativeSrc":"12703:15:64","nodeType":"YulFunctionCall","src":"12703:15:64"},"nativeSrc":"12703:15:64","nodeType":"YulExpressionStatement","src":"12703:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12734:1:64","nodeType":"YulLiteral","src":"12734:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12737:4:64","nodeType":"YulLiteral","src":"12737:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12727:6:64","nodeType":"YulIdentifier","src":"12727:6:64"},"nativeSrc":"12727:15:64","nodeType":"YulFunctionCall","src":"12727:15:64"},"nativeSrc":"12727:15:64","nodeType":"YulExpressionStatement","src":"12727:15:64"}]},"name":"panic_error_0x11","nativeSrc":"12568:180:64","nodeType":"YulFunctionDefinition","src":"12568:180:64"},{"body":{"nativeSrc":"12797:190:64","nodeType":"YulBlock","src":"12797:190:64","statements":[{"nativeSrc":"12807:33:64","nodeType":"YulAssignment","src":"12807:33:64","value":{"arguments":[{"name":"value","nativeSrc":"12834:5:64","nodeType":"YulIdentifier","src":"12834:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12816:17:64","nodeType":"YulIdentifier","src":"12816:17:64"},"nativeSrc":"12816:24:64","nodeType":"YulFunctionCall","src":"12816:24:64"},"variableNames":[{"name":"value","nativeSrc":"12807:5:64","nodeType":"YulIdentifier","src":"12807:5:64"}]},{"body":{"nativeSrc":"12930:22:64","nodeType":"YulBlock","src":"12930:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12932:16:64","nodeType":"YulIdentifier","src":"12932:16:64"},"nativeSrc":"12932:18:64","nodeType":"YulFunctionCall","src":"12932:18:64"},"nativeSrc":"12932:18:64","nodeType":"YulExpressionStatement","src":"12932:18:64"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"12855:5:64","nodeType":"YulIdentifier","src":"12855:5:64"},{"kind":"number","nativeSrc":"12862:66:64","nodeType":"YulLiteral","src":"12862:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"12852:2:64","nodeType":"YulIdentifier","src":"12852:2:64"},"nativeSrc":"12852:77:64","nodeType":"YulFunctionCall","src":"12852:77:64"},"nativeSrc":"12849:103:64","nodeType":"YulIf","src":"12849:103:64"},{"nativeSrc":"12961:20:64","nodeType":"YulAssignment","src":"12961:20:64","value":{"arguments":[{"name":"value","nativeSrc":"12972:5:64","nodeType":"YulIdentifier","src":"12972:5:64"},{"kind":"number","nativeSrc":"12979:1:64","nodeType":"YulLiteral","src":"12979:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12968:3:64","nodeType":"YulIdentifier","src":"12968:3:64"},"nativeSrc":"12968:13:64","nodeType":"YulFunctionCall","src":"12968:13:64"},"variableNames":[{"name":"ret","nativeSrc":"12961:3:64","nodeType":"YulIdentifier","src":"12961:3:64"}]}]},"name":"increment_t_uint256","nativeSrc":"12754:233:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12783:5:64","nodeType":"YulTypedName","src":"12783:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"12793:3:64","nodeType":"YulTypedName","src":"12793:3:64","type":""}],"src":"12754:233:64"},{"body":{"nativeSrc":"13067:40:64","nodeType":"YulBlock","src":"13067:40:64","statements":[{"nativeSrc":"13078:22:64","nodeType":"YulAssignment","src":"13078:22:64","value":{"arguments":[{"name":"value","nativeSrc":"13094:5:64","nodeType":"YulIdentifier","src":"13094:5:64"}],"functionName":{"name":"mload","nativeSrc":"13088:5:64","nodeType":"YulIdentifier","src":"13088:5:64"},"nativeSrc":"13088:12:64","nodeType":"YulFunctionCall","src":"13088:12:64"},"variableNames":[{"name":"length","nativeSrc":"13078:6:64","nodeType":"YulIdentifier","src":"13078:6:64"}]}]},"name":"array_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12993:114:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13050:5:64","nodeType":"YulTypedName","src":"13050:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13060:6:64","nodeType":"YulTypedName","src":"13060:6:64","type":""}],"src":"12993:114:64"},{"body":{"nativeSrc":"13224:73:64","nodeType":"YulBlock","src":"13224:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13241:3:64","nodeType":"YulIdentifier","src":"13241:3:64"},{"name":"length","nativeSrc":"13246:6:64","nodeType":"YulIdentifier","src":"13246:6:64"}],"functionName":{"name":"mstore","nativeSrc":"13234:6:64","nodeType":"YulIdentifier","src":"13234:6:64"},"nativeSrc":"13234:19:64","nodeType":"YulFunctionCall","src":"13234:19:64"},"nativeSrc":"13234:19:64","nodeType":"YulExpressionStatement","src":"13234:19:64"},{"nativeSrc":"13262:29:64","nodeType":"YulAssignment","src":"13262:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"13281:3:64","nodeType":"YulIdentifier","src":"13281:3:64"},{"kind":"number","nativeSrc":"13286:4:64","nodeType":"YulLiteral","src":"13286:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13277:3:64","nodeType":"YulIdentifier","src":"13277:3:64"},"nativeSrc":"13277:14:64","nodeType":"YulFunctionCall","src":"13277:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"13262:11:64","nodeType":"YulIdentifier","src":"13262:11:64"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"13113:184:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13196:3:64","nodeType":"YulTypedName","src":"13196:3:64","type":""},{"name":"length","nativeSrc":"13201:6:64","nodeType":"YulTypedName","src":"13201:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13212:11:64","nodeType":"YulTypedName","src":"13212:11:64","type":""}],"src":"13113:184:64"},{"body":{"nativeSrc":"13375:60:64","nodeType":"YulBlock","src":"13375:60:64","statements":[{"nativeSrc":"13385:11:64","nodeType":"YulAssignment","src":"13385:11:64","value":{"name":"ptr","nativeSrc":"13393:3:64","nodeType":"YulIdentifier","src":"13393:3:64"},"variableNames":[{"name":"data","nativeSrc":"13385:4:64","nodeType":"YulIdentifier","src":"13385:4:64"}]},{"nativeSrc":"13406:22:64","nodeType":"YulAssignment","src":"13406:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"13418:3:64","nodeType":"YulIdentifier","src":"13418:3:64"},{"kind":"number","nativeSrc":"13423:4:64","nodeType":"YulLiteral","src":"13423:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13414:3:64","nodeType":"YulIdentifier","src":"13414:3:64"},"nativeSrc":"13414:14:64","nodeType":"YulFunctionCall","src":"13414:14:64"},"variableNames":[{"name":"data","nativeSrc":"13406:4:64","nodeType":"YulIdentifier","src":"13406:4:64"}]}]},"name":"array_dataslot_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13303:132:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13362:3:64","nodeType":"YulTypedName","src":"13362:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"13370:4:64","nodeType":"YulTypedName","src":"13370:4:64","type":""}],"src":"13303:132:64"},{"body":{"nativeSrc":"13496:53:64","nodeType":"YulBlock","src":"13496:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13513:3:64","nodeType":"YulIdentifier","src":"13513:3:64"},{"arguments":[{"name":"value","nativeSrc":"13536:5:64","nodeType":"YulIdentifier","src":"13536:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"13518:17:64","nodeType":"YulIdentifier","src":"13518:17:64"},"nativeSrc":"13518:24:64","nodeType":"YulFunctionCall","src":"13518:24:64"}],"functionName":{"name":"mstore","nativeSrc":"13506:6:64","nodeType":"YulIdentifier","src":"13506:6:64"},"nativeSrc":"13506:37:64","nodeType":"YulFunctionCall","src":"13506:37:64"},"nativeSrc":"13506:37:64","nodeType":"YulExpressionStatement","src":"13506:37:64"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"13441:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13484:5:64","nodeType":"YulTypedName","src":"13484:5:64","type":""},{"name":"pos","nativeSrc":"13491:3:64","nodeType":"YulTypedName","src":"13491:3:64","type":""}],"src":"13441:108:64"},{"body":{"nativeSrc":"13635:99:64","nodeType":"YulBlock","src":"13635:99:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13679:6:64","nodeType":"YulIdentifier","src":"13679:6:64"},{"name":"pos","nativeSrc":"13687:3:64","nodeType":"YulIdentifier","src":"13687:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"13645:33:64","nodeType":"YulIdentifier","src":"13645:33:64"},"nativeSrc":"13645:46:64","nodeType":"YulFunctionCall","src":"13645:46:64"},"nativeSrc":"13645:46:64","nodeType":"YulExpressionStatement","src":"13645:46:64"},{"nativeSrc":"13700:28:64","nodeType":"YulAssignment","src":"13700:28:64","value":{"arguments":[{"name":"pos","nativeSrc":"13718:3:64","nodeType":"YulIdentifier","src":"13718:3:64"},{"kind":"number","nativeSrc":"13723:4:64","nodeType":"YulLiteral","src":"13723:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13714:3:64","nodeType":"YulIdentifier","src":"13714:3:64"},"nativeSrc":"13714:14:64","nodeType":"YulFunctionCall","src":"13714:14:64"},"variableNames":[{"name":"updatedPos","nativeSrc":"13700:10:64","nodeType":"YulIdentifier","src":"13700:10:64"}]}]},"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"13555:179:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"13608:6:64","nodeType":"YulTypedName","src":"13608:6:64","type":""},{"name":"pos","nativeSrc":"13616:3:64","nodeType":"YulTypedName","src":"13616:3:64","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"13624:10:64","nodeType":"YulTypedName","src":"13624:10:64","type":""}],"src":"13555:179:64"},{"body":{"nativeSrc":"13815:38:64","nodeType":"YulBlock","src":"13815:38:64","statements":[{"nativeSrc":"13825:22:64","nodeType":"YulAssignment","src":"13825:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"13837:3:64","nodeType":"YulIdentifier","src":"13837:3:64"},{"kind":"number","nativeSrc":"13842:4:64","nodeType":"YulLiteral","src":"13842:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13833:3:64","nodeType":"YulIdentifier","src":"13833:3:64"},"nativeSrc":"13833:14:64","nodeType":"YulFunctionCall","src":"13833:14:64"},"variableNames":[{"name":"next","nativeSrc":"13825:4:64","nodeType":"YulIdentifier","src":"13825:4:64"}]}]},"name":"array_nextElement_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"13740:113:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13802:3:64","nodeType":"YulTypedName","src":"13802:3:64","type":""}],"returnVariables":[{"name":"next","nativeSrc":"13810:4:64","nodeType":"YulTypedName","src":"13810:4:64","type":""}],"src":"13740:113:64"},{"body":{"nativeSrc":"14013:608:64","nodeType":"YulBlock","src":"14013:608:64","statements":[{"nativeSrc":"14023:68:64","nodeType":"YulVariableDeclaration","src":"14023:68:64","value":{"arguments":[{"name":"value","nativeSrc":"14085:5:64","nodeType":"YulIdentifier","src":"14085:5:64"}],"functionName":{"name":"array_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14037:47:64","nodeType":"YulIdentifier","src":"14037:47:64"},"nativeSrc":"14037:54:64","nodeType":"YulFunctionCall","src":"14037:54:64"},"variables":[{"name":"length","nativeSrc":"14027:6:64","nodeType":"YulTypedName","src":"14027:6:64","type":""}]},{"nativeSrc":"14100:93:64","nodeType":"YulAssignment","src":"14100:93:64","value":{"arguments":[{"name":"pos","nativeSrc":"14181:3:64","nodeType":"YulIdentifier","src":"14181:3:64"},{"name":"length","nativeSrc":"14186:6:64","nodeType":"YulIdentifier","src":"14186:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"14107:73:64","nodeType":"YulIdentifier","src":"14107:73:64"},"nativeSrc":"14107:86:64","nodeType":"YulFunctionCall","src":"14107:86:64"},"variableNames":[{"name":"pos","nativeSrc":"14100:3:64","nodeType":"YulIdentifier","src":"14100:3:64"}]},{"nativeSrc":"14202:71:64","nodeType":"YulVariableDeclaration","src":"14202:71:64","value":{"arguments":[{"name":"value","nativeSrc":"14267:5:64","nodeType":"YulIdentifier","src":"14267:5:64"}],"functionName":{"name":"array_dataslot_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14217:49:64","nodeType":"YulIdentifier","src":"14217:49:64"},"nativeSrc":"14217:56:64","nodeType":"YulFunctionCall","src":"14217:56:64"},"variables":[{"name":"baseRef","nativeSrc":"14206:7:64","nodeType":"YulTypedName","src":"14206:7:64","type":""}]},{"nativeSrc":"14282:21:64","nodeType":"YulVariableDeclaration","src":"14282:21:64","value":{"name":"baseRef","nativeSrc":"14296:7:64","nodeType":"YulIdentifier","src":"14296:7:64"},"variables":[{"name":"srcPtr","nativeSrc":"14286:6:64","nodeType":"YulTypedName","src":"14286:6:64","type":""}]},{"body":{"nativeSrc":"14372:224:64","nodeType":"YulBlock","src":"14372:224:64","statements":[{"nativeSrc":"14386:34:64","nodeType":"YulVariableDeclaration","src":"14386:34:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14413:6:64","nodeType":"YulIdentifier","src":"14413:6:64"}],"functionName":{"name":"mload","nativeSrc":"14407:5:64","nodeType":"YulIdentifier","src":"14407:5:64"},"nativeSrc":"14407:13:64","nodeType":"YulFunctionCall","src":"14407:13:64"},"variables":[{"name":"elementValue0","nativeSrc":"14390:13:64","nodeType":"YulTypedName","src":"14390:13:64","type":""}]},{"nativeSrc":"14433:70:64","nodeType":"YulAssignment","src":"14433:70:64","value":{"arguments":[{"name":"elementValue0","nativeSrc":"14484:13:64","nodeType":"YulIdentifier","src":"14484:13:64"},{"name":"pos","nativeSrc":"14499:3:64","nodeType":"YulIdentifier","src":"14499:3:64"}],"functionName":{"name":"abi_encodeUpdatedPos_t_address_to_t_address","nativeSrc":"14440:43:64","nodeType":"YulIdentifier","src":"14440:43:64"},"nativeSrc":"14440:63:64","nodeType":"YulFunctionCall","src":"14440:63:64"},"variableNames":[{"name":"pos","nativeSrc":"14433:3:64","nodeType":"YulIdentifier","src":"14433:3:64"}]},{"nativeSrc":"14516:70:64","nodeType":"YulAssignment","src":"14516:70:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14579:6:64","nodeType":"YulIdentifier","src":"14579:6:64"}],"functionName":{"name":"array_nextElement_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"14526:52:64","nodeType":"YulIdentifier","src":"14526:52:64"},"nativeSrc":"14526:60:64","nodeType":"YulFunctionCall","src":"14526:60:64"},"variableNames":[{"name":"srcPtr","nativeSrc":"14516:6:64","nodeType":"YulIdentifier","src":"14516:6:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14334:1:64","nodeType":"YulIdentifier","src":"14334:1:64"},{"name":"length","nativeSrc":"14337:6:64","nodeType":"YulIdentifier","src":"14337:6:64"}],"functionName":{"name":"lt","nativeSrc":"14331:2:64","nodeType":"YulIdentifier","src":"14331:2:64"},"nativeSrc":"14331:13:64","nodeType":"YulFunctionCall","src":"14331:13:64"},"nativeSrc":"14312:284:64","nodeType":"YulForLoop","post":{"nativeSrc":"14345:18:64","nodeType":"YulBlock","src":"14345:18:64","statements":[{"nativeSrc":"14347:14:64","nodeType":"YulAssignment","src":"14347:14:64","value":{"arguments":[{"name":"i","nativeSrc":"14356:1:64","nodeType":"YulIdentifier","src":"14356:1:64"},{"kind":"number","nativeSrc":"14359:1:64","nodeType":"YulLiteral","src":"14359:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14352:3:64","nodeType":"YulIdentifier","src":"14352:3:64"},"nativeSrc":"14352:9:64","nodeType":"YulFunctionCall","src":"14352:9:64"},"variableNames":[{"name":"i","nativeSrc":"14347:1:64","nodeType":"YulIdentifier","src":"14347:1:64"}]}]},"pre":{"nativeSrc":"14316:14:64","nodeType":"YulBlock","src":"14316:14:64","statements":[{"nativeSrc":"14318:10:64","nodeType":"YulVariableDeclaration","src":"14318:10:64","value":{"kind":"number","nativeSrc":"14327:1:64","nodeType":"YulLiteral","src":"14327:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14322:1:64","nodeType":"YulTypedName","src":"14322:1:64","type":""}]}]},"src":"14312:284:64"},{"nativeSrc":"14605:10:64","nodeType":"YulAssignment","src":"14605:10:64","value":{"name":"pos","nativeSrc":"14612:3:64","nodeType":"YulIdentifier","src":"14612:3:64"},"variableNames":[{"name":"end","nativeSrc":"14605:3:64","nodeType":"YulIdentifier","src":"14605:3:64"}]}]},"name":"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"13889:732:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13992:5:64","nodeType":"YulTypedName","src":"13992:5:64","type":""},{"name":"pos","nativeSrc":"13999:3:64","nodeType":"YulTypedName","src":"13999:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14008:3:64","nodeType":"YulTypedName","src":"14008:3:64","type":""}],"src":"13889:732:64"},{"body":{"nativeSrc":"14698:40:64","nodeType":"YulBlock","src":"14698:40:64","statements":[{"nativeSrc":"14709:22:64","nodeType":"YulAssignment","src":"14709:22:64","value":{"arguments":[{"name":"value","nativeSrc":"14725:5:64","nodeType":"YulIdentifier","src":"14725:5:64"}],"functionName":{"name":"mload","nativeSrc":"14719:5:64","nodeType":"YulIdentifier","src":"14719:5:64"},"nativeSrc":"14719:12:64","nodeType":"YulFunctionCall","src":"14719:12:64"},"variableNames":[{"name":"length","nativeSrc":"14709:6:64","nodeType":"YulIdentifier","src":"14709:6:64"}]}]},"name":"array_length_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14627:111:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14681:5:64","nodeType":"YulTypedName","src":"14681:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"14691:6:64","nodeType":"YulTypedName","src":"14691:6:64","type":""}],"src":"14627:111:64"},{"body":{"nativeSrc":"14852:73:64","nodeType":"YulBlock","src":"14852:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14869:3:64","nodeType":"YulIdentifier","src":"14869:3:64"},{"name":"length","nativeSrc":"14874:6:64","nodeType":"YulIdentifier","src":"14874:6:64"}],"functionName":{"name":"mstore","nativeSrc":"14862:6:64","nodeType":"YulIdentifier","src":"14862:6:64"},"nativeSrc":"14862:19:64","nodeType":"YulFunctionCall","src":"14862:19:64"},"nativeSrc":"14862:19:64","nodeType":"YulExpressionStatement","src":"14862:19:64"},{"nativeSrc":"14890:29:64","nodeType":"YulAssignment","src":"14890:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"14909:3:64","nodeType":"YulIdentifier","src":"14909:3:64"},{"kind":"number","nativeSrc":"14914:4:64","nodeType":"YulLiteral","src":"14914:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14905:3:64","nodeType":"YulIdentifier","src":"14905:3:64"},"nativeSrc":"14905:14:64","nodeType":"YulFunctionCall","src":"14905:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"14890:11:64","nodeType":"YulIdentifier","src":"14890:11:64"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"14744:181:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14824:3:64","nodeType":"YulTypedName","src":"14824:3:64","type":""},{"name":"length","nativeSrc":"14829:6:64","nodeType":"YulTypedName","src":"14829:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14840:11:64","nodeType":"YulTypedName","src":"14840:11:64","type":""}],"src":"14744:181:64"},{"body":{"nativeSrc":"15000:60:64","nodeType":"YulBlock","src":"15000:60:64","statements":[{"nativeSrc":"15010:11:64","nodeType":"YulAssignment","src":"15010:11:64","value":{"name":"ptr","nativeSrc":"15018:3:64","nodeType":"YulIdentifier","src":"15018:3:64"},"variableNames":[{"name":"data","nativeSrc":"15010:4:64","nodeType":"YulIdentifier","src":"15010:4:64"}]},{"nativeSrc":"15031:22:64","nodeType":"YulAssignment","src":"15031:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"15043:3:64","nodeType":"YulIdentifier","src":"15043:3:64"},{"kind":"number","nativeSrc":"15048:4:64","nodeType":"YulLiteral","src":"15048:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15039:3:64","nodeType":"YulIdentifier","src":"15039:3:64"},"nativeSrc":"15039:14:64","nodeType":"YulFunctionCall","src":"15039:14:64"},"variableNames":[{"name":"data","nativeSrc":"15031:4:64","nodeType":"YulIdentifier","src":"15031:4:64"}]}]},"name":"array_dataslot_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"14931:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14987:3:64","nodeType":"YulTypedName","src":"14987:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"14995:4:64","nodeType":"YulTypedName","src":"14995:4:64","type":""}],"src":"14931:129:64"},{"body":{"nativeSrc":"15115:50:64","nodeType":"YulBlock","src":"15115:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15132:3:64","nodeType":"YulIdentifier","src":"15132:3:64"},{"arguments":[{"name":"value","nativeSrc":"15152:5:64","nodeType":"YulIdentifier","src":"15152:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"15137:14:64","nodeType":"YulIdentifier","src":"15137:14:64"},"nativeSrc":"15137:21:64","nodeType":"YulFunctionCall","src":"15137:21:64"}],"functionName":{"name":"mstore","nativeSrc":"15125:6:64","nodeType":"YulIdentifier","src":"15125:6:64"},"nativeSrc":"15125:34:64","nodeType":"YulFunctionCall","src":"15125:34:64"},"nativeSrc":"15125:34:64","nodeType":"YulExpressionStatement","src":"15125:34:64"}]},"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"15066:99:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15103:5:64","nodeType":"YulTypedName","src":"15103:5:64","type":""},{"name":"pos","nativeSrc":"15110:3:64","nodeType":"YulTypedName","src":"15110:3:64","type":""}],"src":"15066:99:64"},{"body":{"nativeSrc":"15245:93:64","nodeType":"YulBlock","src":"15245:93:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"15283:6:64","nodeType":"YulIdentifier","src":"15283:6:64"},{"name":"pos","nativeSrc":"15291:3:64","nodeType":"YulIdentifier","src":"15291:3:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"15255:27:64","nodeType":"YulIdentifier","src":"15255:27:64"},"nativeSrc":"15255:40:64","nodeType":"YulFunctionCall","src":"15255:40:64"},"nativeSrc":"15255:40:64","nodeType":"YulExpressionStatement","src":"15255:40:64"},{"nativeSrc":"15304:28:64","nodeType":"YulAssignment","src":"15304:28:64","value":{"arguments":[{"name":"pos","nativeSrc":"15322:3:64","nodeType":"YulIdentifier","src":"15322:3:64"},{"kind":"number","nativeSrc":"15327:4:64","nodeType":"YulLiteral","src":"15327:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15318:3:64","nodeType":"YulIdentifier","src":"15318:3:64"},"nativeSrc":"15318:14:64","nodeType":"YulFunctionCall","src":"15318:14:64"},"variableNames":[{"name":"updatedPos","nativeSrc":"15304:10:64","nodeType":"YulIdentifier","src":"15304:10:64"}]}]},"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"15171:167:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"15218:6:64","nodeType":"YulTypedName","src":"15218:6:64","type":""},{"name":"pos","nativeSrc":"15226:3:64","nodeType":"YulTypedName","src":"15226:3:64","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"15234:10:64","nodeType":"YulTypedName","src":"15234:10:64","type":""}],"src":"15171:167:64"},{"body":{"nativeSrc":"15416:38:64","nodeType":"YulBlock","src":"15416:38:64","statements":[{"nativeSrc":"15426:22:64","nodeType":"YulAssignment","src":"15426:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"15438:3:64","nodeType":"YulIdentifier","src":"15438:3:64"},{"kind":"number","nativeSrc":"15443:4:64","nodeType":"YulLiteral","src":"15443:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15434:3:64","nodeType":"YulIdentifier","src":"15434:3:64"},"nativeSrc":"15434:14:64","nodeType":"YulFunctionCall","src":"15434:14:64"},"variableNames":[{"name":"next","nativeSrc":"15426:4:64","nodeType":"YulIdentifier","src":"15426:4:64"}]}]},"name":"array_nextElement_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15344:110:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"15403:3:64","nodeType":"YulTypedName","src":"15403:3:64","type":""}],"returnVariables":[{"name":"next","nativeSrc":"15411:4:64","nodeType":"YulTypedName","src":"15411:4:64","type":""}],"src":"15344:110:64"},{"body":{"nativeSrc":"15602:590:64","nodeType":"YulBlock","src":"15602:590:64","statements":[{"nativeSrc":"15612:65:64","nodeType":"YulVariableDeclaration","src":"15612:65:64","value":{"arguments":[{"name":"value","nativeSrc":"15671:5:64","nodeType":"YulIdentifier","src":"15671:5:64"}],"functionName":{"name":"array_length_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15626:44:64","nodeType":"YulIdentifier","src":"15626:44:64"},"nativeSrc":"15626:51:64","nodeType":"YulFunctionCall","src":"15626:51:64"},"variables":[{"name":"length","nativeSrc":"15616:6:64","nodeType":"YulTypedName","src":"15616:6:64","type":""}]},{"nativeSrc":"15686:90:64","nodeType":"YulAssignment","src":"15686:90:64","value":{"arguments":[{"name":"pos","nativeSrc":"15764:3:64","nodeType":"YulIdentifier","src":"15764:3:64"},{"name":"length","nativeSrc":"15769:6:64","nodeType":"YulIdentifier","src":"15769:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"15693:70:64","nodeType":"YulIdentifier","src":"15693:70:64"},"nativeSrc":"15693:83:64","nodeType":"YulFunctionCall","src":"15693:83:64"},"variableNames":[{"name":"pos","nativeSrc":"15686:3:64","nodeType":"YulIdentifier","src":"15686:3:64"}]},{"nativeSrc":"15785:68:64","nodeType":"YulVariableDeclaration","src":"15785:68:64","value":{"arguments":[{"name":"value","nativeSrc":"15847:5:64","nodeType":"YulIdentifier","src":"15847:5:64"}],"functionName":{"name":"array_dataslot_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"15800:46:64","nodeType":"YulIdentifier","src":"15800:46:64"},"nativeSrc":"15800:53:64","nodeType":"YulFunctionCall","src":"15800:53:64"},"variables":[{"name":"baseRef","nativeSrc":"15789:7:64","nodeType":"YulTypedName","src":"15789:7:64","type":""}]},{"nativeSrc":"15862:21:64","nodeType":"YulVariableDeclaration","src":"15862:21:64","value":{"name":"baseRef","nativeSrc":"15876:7:64","nodeType":"YulIdentifier","src":"15876:7:64"},"variables":[{"name":"srcPtr","nativeSrc":"15866:6:64","nodeType":"YulTypedName","src":"15866:6:64","type":""}]},{"body":{"nativeSrc":"15952:215:64","nodeType":"YulBlock","src":"15952:215:64","statements":[{"nativeSrc":"15966:34:64","nodeType":"YulVariableDeclaration","src":"15966:34:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15993:6:64","nodeType":"YulIdentifier","src":"15993:6:64"}],"functionName":{"name":"mload","nativeSrc":"15987:5:64","nodeType":"YulIdentifier","src":"15987:5:64"},"nativeSrc":"15987:13:64","nodeType":"YulFunctionCall","src":"15987:13:64"},"variables":[{"name":"elementValue0","nativeSrc":"15970:13:64","nodeType":"YulTypedName","src":"15970:13:64","type":""}]},{"nativeSrc":"16013:64:64","nodeType":"YulAssignment","src":"16013:64:64","value":{"arguments":[{"name":"elementValue0","nativeSrc":"16058:13:64","nodeType":"YulIdentifier","src":"16058:13:64"},{"name":"pos","nativeSrc":"16073:3:64","nodeType":"YulIdentifier","src":"16073:3:64"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bool_to_t_bool","nativeSrc":"16020:37:64","nodeType":"YulIdentifier","src":"16020:37:64"},"nativeSrc":"16020:57:64","nodeType":"YulFunctionCall","src":"16020:57:64"},"variableNames":[{"name":"pos","nativeSrc":"16013:3:64","nodeType":"YulIdentifier","src":"16013:3:64"}]},{"nativeSrc":"16090:67:64","nodeType":"YulAssignment","src":"16090:67:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"16150:6:64","nodeType":"YulIdentifier","src":"16150:6:64"}],"functionName":{"name":"array_nextElement_t_array$_t_bool_$dyn_memory_ptr","nativeSrc":"16100:49:64","nodeType":"YulIdentifier","src":"16100:49:64"},"nativeSrc":"16100:57:64","nodeType":"YulFunctionCall","src":"16100:57:64"},"variableNames":[{"name":"srcPtr","nativeSrc":"16090:6:64","nodeType":"YulIdentifier","src":"16090:6:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15914:1:64","nodeType":"YulIdentifier","src":"15914:1:64"},{"name":"length","nativeSrc":"15917:6:64","nodeType":"YulIdentifier","src":"15917:6:64"}],"functionName":{"name":"lt","nativeSrc":"15911:2:64","nodeType":"YulIdentifier","src":"15911:2:64"},"nativeSrc":"15911:13:64","nodeType":"YulFunctionCall","src":"15911:13:64"},"nativeSrc":"15892:275:64","nodeType":"YulForLoop","post":{"nativeSrc":"15925:18:64","nodeType":"YulBlock","src":"15925:18:64","statements":[{"nativeSrc":"15927:14:64","nodeType":"YulAssignment","src":"15927:14:64","value":{"arguments":[{"name":"i","nativeSrc":"15936:1:64","nodeType":"YulIdentifier","src":"15936:1:64"},{"kind":"number","nativeSrc":"15939:1:64","nodeType":"YulLiteral","src":"15939:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15932:3:64","nodeType":"YulIdentifier","src":"15932:3:64"},"nativeSrc":"15932:9:64","nodeType":"YulFunctionCall","src":"15932:9:64"},"variableNames":[{"name":"i","nativeSrc":"15927:1:64","nodeType":"YulIdentifier","src":"15927:1:64"}]}]},"pre":{"nativeSrc":"15896:14:64","nodeType":"YulBlock","src":"15896:14:64","statements":[{"nativeSrc":"15898:10:64","nodeType":"YulVariableDeclaration","src":"15898:10:64","value":{"kind":"number","nativeSrc":"15907:1:64","nodeType":"YulLiteral","src":"15907:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15902:1:64","nodeType":"YulTypedName","src":"15902:1:64","type":""}]}]},"src":"15892:275:64"},{"nativeSrc":"16176:10:64","nodeType":"YulAssignment","src":"16176:10:64","value":{"name":"pos","nativeSrc":"16183:3:64","nodeType":"YulIdentifier","src":"16183:3:64"},"variableNames":[{"name":"end","nativeSrc":"16176:3:64","nodeType":"YulIdentifier","src":"16176:3:64"}]}]},"name":"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"15484:708:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15581:5:64","nodeType":"YulTypedName","src":"15581:5:64","type":""},{"name":"pos","nativeSrc":"15588:3:64","nodeType":"YulTypedName","src":"15588:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15597:3:64","nodeType":"YulTypedName","src":"15597:3:64","type":""}],"src":"15484:708:64"},{"body":{"nativeSrc":"16418:402:64","nodeType":"YulBlock","src":"16418:402:64","statements":[{"nativeSrc":"16428:26:64","nodeType":"YulAssignment","src":"16428:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"16440:9:64","nodeType":"YulIdentifier","src":"16440:9:64"},{"kind":"number","nativeSrc":"16451:2:64","nodeType":"YulLiteral","src":"16451:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16436:3:64","nodeType":"YulIdentifier","src":"16436:3:64"},"nativeSrc":"16436:18:64","nodeType":"YulFunctionCall","src":"16436:18:64"},"variableNames":[{"name":"tail","nativeSrc":"16428:4:64","nodeType":"YulIdentifier","src":"16428:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16475:9:64","nodeType":"YulIdentifier","src":"16475:9:64"},{"kind":"number","nativeSrc":"16486:1:64","nodeType":"YulLiteral","src":"16486:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16471:3:64","nodeType":"YulIdentifier","src":"16471:3:64"},"nativeSrc":"16471:17:64","nodeType":"YulFunctionCall","src":"16471:17:64"},{"arguments":[{"name":"tail","nativeSrc":"16494:4:64","nodeType":"YulIdentifier","src":"16494:4:64"},{"name":"headStart","nativeSrc":"16500:9:64","nodeType":"YulIdentifier","src":"16500:9:64"}],"functionName":{"name":"sub","nativeSrc":"16490:3:64","nodeType":"YulIdentifier","src":"16490:3:64"},"nativeSrc":"16490:20:64","nodeType":"YulFunctionCall","src":"16490:20:64"}],"functionName":{"name":"mstore","nativeSrc":"16464:6:64","nodeType":"YulIdentifier","src":"16464:6:64"},"nativeSrc":"16464:47:64","nodeType":"YulFunctionCall","src":"16464:47:64"},"nativeSrc":"16464:47:64","nodeType":"YulExpressionStatement","src":"16464:47:64"},{"nativeSrc":"16520:116:64","nodeType":"YulAssignment","src":"16520:116:64","value":{"arguments":[{"name":"value0","nativeSrc":"16622:6:64","nodeType":"YulIdentifier","src":"16622:6:64"},{"name":"tail","nativeSrc":"16631:4:64","nodeType":"YulIdentifier","src":"16631:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack","nativeSrc":"16528:93:64","nodeType":"YulIdentifier","src":"16528:93:64"},"nativeSrc":"16528:108:64","nodeType":"YulFunctionCall","src":"16528:108:64"},"variableNames":[{"name":"tail","nativeSrc":"16520:4:64","nodeType":"YulIdentifier","src":"16520:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16657:9:64","nodeType":"YulIdentifier","src":"16657:9:64"},{"kind":"number","nativeSrc":"16668:2:64","nodeType":"YulLiteral","src":"16668:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16653:3:64","nodeType":"YulIdentifier","src":"16653:3:64"},"nativeSrc":"16653:18:64","nodeType":"YulFunctionCall","src":"16653:18:64"},{"arguments":[{"name":"tail","nativeSrc":"16677:4:64","nodeType":"YulIdentifier","src":"16677:4:64"},{"name":"headStart","nativeSrc":"16683:9:64","nodeType":"YulIdentifier","src":"16683:9:64"}],"functionName":{"name":"sub","nativeSrc":"16673:3:64","nodeType":"YulIdentifier","src":"16673:3:64"},"nativeSrc":"16673:20:64","nodeType":"YulFunctionCall","src":"16673:20:64"}],"functionName":{"name":"mstore","nativeSrc":"16646:6:64","nodeType":"YulIdentifier","src":"16646:6:64"},"nativeSrc":"16646:48:64","nodeType":"YulFunctionCall","src":"16646:48:64"},"nativeSrc":"16646:48:64","nodeType":"YulExpressionStatement","src":"16646:48:64"},{"nativeSrc":"16703:110:64","nodeType":"YulAssignment","src":"16703:110:64","value":{"arguments":[{"name":"value1","nativeSrc":"16799:6:64","nodeType":"YulIdentifier","src":"16799:6:64"},{"name":"tail","nativeSrc":"16808:4:64","nodeType":"YulIdentifier","src":"16808:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack","nativeSrc":"16711:87:64","nodeType":"YulIdentifier","src":"16711:87:64"},"nativeSrc":"16711:102:64","nodeType":"YulFunctionCall","src":"16711:102:64"},"variableNames":[{"name":"tail","nativeSrc":"16703:4:64","nodeType":"YulIdentifier","src":"16703:4:64"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"16198:622:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16382:9:64","nodeType":"YulTypedName","src":"16382:9:64","type":""},{"name":"value1","nativeSrc":"16394:6:64","nodeType":"YulTypedName","src":"16394:6:64","type":""},{"name":"value0","nativeSrc":"16402:6:64","nodeType":"YulTypedName","src":"16402:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16413:4:64","nodeType":"YulTypedName","src":"16413:4:64","type":""}],"src":"16198:622:64"},{"body":{"nativeSrc":"16932:8:64","nodeType":"YulBlock","src":"16932:8:64","statements":[]},"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"16826:114:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"16924:6:64","nodeType":"YulTypedName","src":"16924:6:64","type":""}],"src":"16826:114:64"},{"body":{"nativeSrc":"17091:217:64","nodeType":"YulBlock","src":"17091:217:64","statements":[{"nativeSrc":"17101:72:64","nodeType":"YulAssignment","src":"17101:72:64","value":{"arguments":[{"name":"pos","nativeSrc":"17166:3:64","nodeType":"YulIdentifier","src":"17166:3:64"},{"kind":"number","nativeSrc":"17171:1:64","nodeType":"YulLiteral","src":"17171:1:64","type":"","value":"0"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"17108:57:64","nodeType":"YulIdentifier","src":"17108:57:64"},"nativeSrc":"17108:65:64","nodeType":"YulFunctionCall","src":"17108:65:64"},"variableNames":[{"name":"pos","nativeSrc":"17101:3:64","nodeType":"YulIdentifier","src":"17101:3:64"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17271:3:64","nodeType":"YulIdentifier","src":"17271:3:64"}],"functionName":{"name":"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","nativeSrc":"17182:88:64","nodeType":"YulIdentifier","src":"17182:88:64"},"nativeSrc":"17182:93:64","nodeType":"YulFunctionCall","src":"17182:93:64"},"nativeSrc":"17182:93:64","nodeType":"YulExpressionStatement","src":"17182:93:64"},{"nativeSrc":"17284:18:64","nodeType":"YulAssignment","src":"17284:18:64","value":{"arguments":[{"name":"pos","nativeSrc":"17295:3:64","nodeType":"YulIdentifier","src":"17295:3:64"},{"kind":"number","nativeSrc":"17300:1:64","nodeType":"YulLiteral","src":"17300:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17291:3:64","nodeType":"YulIdentifier","src":"17291:3:64"},"nativeSrc":"17291:11:64","nodeType":"YulFunctionCall","src":"17291:11:64"},"variableNames":[{"name":"end","nativeSrc":"17284:3:64","nodeType":"YulIdentifier","src":"17284:3:64"}]}]},"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack","nativeSrc":"16946:362:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17079:3:64","nodeType":"YulTypedName","src":"17079:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17087:3:64","nodeType":"YulTypedName","src":"17087:3:64","type":""}],"src":"16946:362:64"},{"body":{"nativeSrc":"17512:329:64","nodeType":"YulBlock","src":"17512:329:64","statements":[{"nativeSrc":"17522:26:64","nodeType":"YulAssignment","src":"17522:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"17534:9:64","nodeType":"YulIdentifier","src":"17534:9:64"},{"kind":"number","nativeSrc":"17545:2:64","nodeType":"YulLiteral","src":"17545:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17530:3:64","nodeType":"YulIdentifier","src":"17530:3:64"},"nativeSrc":"17530:18:64","nodeType":"YulFunctionCall","src":"17530:18:64"},"variableNames":[{"name":"tail","nativeSrc":"17522:4:64","nodeType":"YulIdentifier","src":"17522:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17602:6:64","nodeType":"YulIdentifier","src":"17602:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"17615:9:64","nodeType":"YulIdentifier","src":"17615:9:64"},{"kind":"number","nativeSrc":"17626:1:64","nodeType":"YulLiteral","src":"17626:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17611:3:64","nodeType":"YulIdentifier","src":"17611:3:64"},"nativeSrc":"17611:17:64","nodeType":"YulFunctionCall","src":"17611:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17558:43:64","nodeType":"YulIdentifier","src":"17558:43:64"},"nativeSrc":"17558:71:64","nodeType":"YulFunctionCall","src":"17558:71:64"},"nativeSrc":"17558:71:64","nodeType":"YulExpressionStatement","src":"17558:71:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17650:9:64","nodeType":"YulIdentifier","src":"17650:9:64"},{"kind":"number","nativeSrc":"17661:2:64","nodeType":"YulLiteral","src":"17661:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17646:3:64","nodeType":"YulIdentifier","src":"17646:3:64"},"nativeSrc":"17646:18:64","nodeType":"YulFunctionCall","src":"17646:18:64"},{"arguments":[{"name":"tail","nativeSrc":"17670:4:64","nodeType":"YulIdentifier","src":"17670:4:64"},{"name":"headStart","nativeSrc":"17676:9:64","nodeType":"YulIdentifier","src":"17676:9:64"}],"functionName":{"name":"sub","nativeSrc":"17666:3:64","nodeType":"YulIdentifier","src":"17666:3:64"},"nativeSrc":"17666:20:64","nodeType":"YulFunctionCall","src":"17666:20:64"}],"functionName":{"name":"mstore","nativeSrc":"17639:6:64","nodeType":"YulIdentifier","src":"17639:6:64"},"nativeSrc":"17639:48:64","nodeType":"YulFunctionCall","src":"17639:48:64"},"nativeSrc":"17639:48:64","nodeType":"YulExpressionStatement","src":"17639:48:64"},{"nativeSrc":"17696:138:64","nodeType":"YulAssignment","src":"17696:138:64","value":{"arguments":[{"name":"tail","nativeSrc":"17829:4:64","nodeType":"YulIdentifier","src":"17829:4:64"}],"functionName":{"name":"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack","nativeSrc":"17704:123:64","nodeType":"YulIdentifier","src":"17704:123:64"},"nativeSrc":"17704:130:64","nodeType":"YulFunctionCall","src":"17704:130:64"},"variableNames":[{"name":"tail","nativeSrc":"17696:4:64","nodeType":"YulIdentifier","src":"17696:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"17314:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17484:9:64","nodeType":"YulTypedName","src":"17484:9:64","type":""},{"name":"value0","nativeSrc":"17496:6:64","nodeType":"YulTypedName","src":"17496:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17507:4:64","nodeType":"YulTypedName","src":"17507:4:64","type":""}],"src":"17314:527:64"},{"body":{"nativeSrc":"17887:76:64","nodeType":"YulBlock","src":"17887:76:64","statements":[{"body":{"nativeSrc":"17941:16:64","nodeType":"YulBlock","src":"17941:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17950:1:64","nodeType":"YulLiteral","src":"17950:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17953:1:64","nodeType":"YulLiteral","src":"17953:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17943:6:64","nodeType":"YulIdentifier","src":"17943:6:64"},"nativeSrc":"17943:12:64","nodeType":"YulFunctionCall","src":"17943:12:64"},"nativeSrc":"17943:12:64","nodeType":"YulExpressionStatement","src":"17943:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17910:5:64","nodeType":"YulIdentifier","src":"17910:5:64"},{"arguments":[{"name":"value","nativeSrc":"17932:5:64","nodeType":"YulIdentifier","src":"17932:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"17917:14:64","nodeType":"YulIdentifier","src":"17917:14:64"},"nativeSrc":"17917:21:64","nodeType":"YulFunctionCall","src":"17917:21:64"}],"functionName":{"name":"eq","nativeSrc":"17907:2:64","nodeType":"YulIdentifier","src":"17907:2:64"},"nativeSrc":"17907:32:64","nodeType":"YulFunctionCall","src":"17907:32:64"}],"functionName":{"name":"iszero","nativeSrc":"17900:6:64","nodeType":"YulIdentifier","src":"17900:6:64"},"nativeSrc":"17900:40:64","nodeType":"YulFunctionCall","src":"17900:40:64"},"nativeSrc":"17897:60:64","nodeType":"YulIf","src":"17897:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"17847:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17880:5:64","nodeType":"YulTypedName","src":"17880:5:64","type":""}],"src":"17847:116:64"},{"body":{"nativeSrc":"18029:77:64","nodeType":"YulBlock","src":"18029:77:64","statements":[{"nativeSrc":"18039:22:64","nodeType":"YulAssignment","src":"18039:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"18054:6:64","nodeType":"YulIdentifier","src":"18054:6:64"}],"functionName":{"name":"mload","nativeSrc":"18048:5:64","nodeType":"YulIdentifier","src":"18048:5:64"},"nativeSrc":"18048:13:64","nodeType":"YulFunctionCall","src":"18048:13:64"},"variableNames":[{"name":"value","nativeSrc":"18039:5:64","nodeType":"YulIdentifier","src":"18039:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"18094:5:64","nodeType":"YulIdentifier","src":"18094:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"18070:23:64","nodeType":"YulIdentifier","src":"18070:23:64"},"nativeSrc":"18070:30:64","nodeType":"YulFunctionCall","src":"18070:30:64"},"nativeSrc":"18070:30:64","nodeType":"YulExpressionStatement","src":"18070:30:64"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"17969:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18007:6:64","nodeType":"YulTypedName","src":"18007:6:64","type":""},{"name":"end","nativeSrc":"18015:3:64","nodeType":"YulTypedName","src":"18015:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18023:5:64","nodeType":"YulTypedName","src":"18023:5:64","type":""}],"src":"17969:137:64"},{"body":{"nativeSrc":"18186:271:64","nodeType":"YulBlock","src":"18186:271:64","statements":[{"body":{"nativeSrc":"18232:83:64","nodeType":"YulBlock","src":"18232:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"18234:77:64","nodeType":"YulIdentifier","src":"18234:77:64"},"nativeSrc":"18234:79:64","nodeType":"YulFunctionCall","src":"18234:79:64"},"nativeSrc":"18234:79:64","nodeType":"YulExpressionStatement","src":"18234:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"18207:7:64","nodeType":"YulIdentifier","src":"18207:7:64"},{"name":"headStart","nativeSrc":"18216:9:64","nodeType":"YulIdentifier","src":"18216:9:64"}],"functionName":{"name":"sub","nativeSrc":"18203:3:64","nodeType":"YulIdentifier","src":"18203:3:64"},"nativeSrc":"18203:23:64","nodeType":"YulFunctionCall","src":"18203:23:64"},{"kind":"number","nativeSrc":"18228:2:64","nodeType":"YulLiteral","src":"18228:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"18199:3:64","nodeType":"YulIdentifier","src":"18199:3:64"},"nativeSrc":"18199:32:64","nodeType":"YulFunctionCall","src":"18199:32:64"},"nativeSrc":"18196:119:64","nodeType":"YulIf","src":"18196:119:64"},{"nativeSrc":"18325:125:64","nodeType":"YulBlock","src":"18325:125:64","statements":[{"nativeSrc":"18340:15:64","nodeType":"YulVariableDeclaration","src":"18340:15:64","value":{"kind":"number","nativeSrc":"18354:1:64","nodeType":"YulLiteral","src":"18354:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18344:6:64","nodeType":"YulTypedName","src":"18344:6:64","type":""}]},{"nativeSrc":"18369:71:64","nodeType":"YulAssignment","src":"18369:71:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18412:9:64","nodeType":"YulIdentifier","src":"18412:9:64"},{"name":"offset","nativeSrc":"18423:6:64","nodeType":"YulIdentifier","src":"18423:6:64"}],"functionName":{"name":"add","nativeSrc":"18408:3:64","nodeType":"YulIdentifier","src":"18408:3:64"},"nativeSrc":"18408:22:64","nodeType":"YulFunctionCall","src":"18408:22:64"},{"name":"dataEnd","nativeSrc":"18432:7:64","nodeType":"YulIdentifier","src":"18432:7:64"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"18379:28:64","nodeType":"YulIdentifier","src":"18379:28:64"},"nativeSrc":"18379:61:64","nodeType":"YulFunctionCall","src":"18379:61:64"},"variableNames":[{"name":"value0","nativeSrc":"18369:6:64","nodeType":"YulIdentifier","src":"18369:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nativeSrc":"18112:345:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18156:9:64","nodeType":"YulTypedName","src":"18156:9:64","type":""},{"name":"dataEnd","nativeSrc":"18167:7:64","nodeType":"YulTypedName","src":"18167:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"18179:6:64","nodeType":"YulTypedName","src":"18179:6:64","type":""}],"src":"18112:345:64"},{"body":{"nativeSrc":"18491:152:64","nodeType":"YulBlock","src":"18491:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18508:1:64","nodeType":"YulLiteral","src":"18508:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18511:77:64","nodeType":"YulLiteral","src":"18511:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18501:6:64","nodeType":"YulIdentifier","src":"18501:6:64"},"nativeSrc":"18501:88:64","nodeType":"YulFunctionCall","src":"18501:88:64"},"nativeSrc":"18501:88:64","nodeType":"YulExpressionStatement","src":"18501:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18605:1:64","nodeType":"YulLiteral","src":"18605:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"18608:4:64","nodeType":"YulLiteral","src":"18608:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"18598:6:64","nodeType":"YulIdentifier","src":"18598:6:64"},"nativeSrc":"18598:15:64","nodeType":"YulFunctionCall","src":"18598:15:64"},"nativeSrc":"18598:15:64","nodeType":"YulExpressionStatement","src":"18598:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18629:1:64","nodeType":"YulLiteral","src":"18629:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18632:4:64","nodeType":"YulLiteral","src":"18632:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18622:6:64","nodeType":"YulIdentifier","src":"18622:6:64"},"nativeSrc":"18622:15:64","nodeType":"YulFunctionCall","src":"18622:15:64"},"nativeSrc":"18622:15:64","nodeType":"YulExpressionStatement","src":"18622:15:64"}]},"name":"panic_error_0x32","nativeSrc":"18463:180:64","nodeType":"YulFunctionDefinition","src":"18463:180:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_SimpleAllowList_$13665_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_SimpleAllowList_$13665_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_SimpleAllowList_$13665_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_SimpleAllowList_$13665__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_SimpleAllowList_$13665_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_SimpleAllowList_$13665(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_SimpleAllowList_$13665(value) {\n if iszero(eq(value, cleanup_t_contract$_SimpleAllowList_$13665(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_SimpleAllowList_$13665(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_SimpleAllowList_$13665(value)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct AllowListIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$17421_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // allowList\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_SimpleAllowList_$13665(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$17421_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$17421_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function array_length_t_array$_t_bool_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_bool_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_bool_to_t_bool(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encodeUpdatedPos_t_bool_to_t_bool(value0, pos) -> updatedPos {\n abi_encode_t_bool_to_t_bool(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_bool_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // bool[] -> bool[]\n function abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bool_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bool_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_bool_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_bool_to_t_bool(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_bool_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bool_$dyn_memory_ptr_to_t_array$_t_bool_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_t_address_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_fromStack( tail)\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061011e575f3560e01c80638da5cb5b1161009f578063e18e650811610063578063e18e65081461037e578063f04e283e146103ba578063f1c30ec0146103d6578063f2fde38b14610412578063fee81cf41461042e5761011e565b80638da5cb5b14610288578063a4d66daf146102b2578063c63ff8dd146102dc578063c884ef8314610318578063dcc59b6f146103545761011e565b8063439fab91116100e6578063439fab91146101e65780634e7165a21461020e57806354d1f13d1461024a578063715018a61461025457806387b9d25c1461025e5761011e565b806301ffc9a71461012257806307621eca1461015e578063228cb7331461018857806325692962146101b257806328d6183b146101bc575b5f80fd5b34801561012d575f80fd5b5061014860048036038101906101439190610fdc565b61046a565b6040516101559190611021565b60405180910390f35b348015610169575f80fd5b506101726104e3565b60405161017f9190611052565b60405180910390f35b348015610193575f80fd5b5061019c6104ec565b6040516101a99190611052565b60405180910390f35b6101ba6104f2565b005b3480156101c7575f80fd5b506101d0610543565b6040516101dd919061107a565b60405180910390f35b3480156101f1575f80fd5b5061020c600480360381019061020791906110f4565b61056a565b005b348015610219575f80fd5b50610234600480360381019061022f91906110f4565b61064a565b60405161024191906111af565b60405180910390f35b6102526106a1565b005b61025c6106da565b005b348015610269575f80fd5b506102726106ed565b60405161027f9190611249565b60405180910390f35b348015610293575f80fd5b5061029c610712565b6040516102a99190611282565b60405180910390f35b3480156102bd575f80fd5b506102c661073a565b6040516102d39190611052565b60405180910390f35b3480156102e7575f80fd5b5061030260048036038101906102fd91906110f4565b610740565b60405161030f9190611021565b60405180910390f35b348015610323575f80fd5b5061033e600480360381019061033991906112c5565b610900565b60405161034b9190611021565b60405180910390f35b34801561035f575f80fd5b5061036861091d565b6040516103759190611052565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f91906110f4565b610922565b6040516103b19190611021565b60405180910390f35b6103d460048036038101906103cf91906112c5565b610a3f565b005b3480156103e1575f80fd5b506103fc60048036038101906103f791906110f4565b610a7d565b6040516104099190611021565b60405180910390f35b61042c600480360381019061042791906112c5565b610ab0565b005b348015610439575f80fd5b50610454600480360381019061044f91906112c5565b610ad9565b6040516104619190611052565b60405180910390f35b5f7fd1da3349000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104dc57506104db82610af2565b5b9050919050565b5f600154905090565b60015481565b5f6104fb610b6b565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fd1da334900000000000000000000000000000000000000000000000000000000905090565b5f610573610b75565b905080546003825580156105a55760018160011c14303b1061059c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105b69190611422565b90506105c133610b9e565b805f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060200151600481905550508015610645576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff811115610666576106656112f4565b5b6040519080825280601f01601f1916602001820160405280156106985781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6106e2610c74565b6106eb5f610cab565b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b5f610749610c74565b5f83838101906107599190611566565b90506004545f8081548092919061076f906115da565b919050551015806107c9575060025f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15610800576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f80610866835f0151610d71565b9150915060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633abb060483836040518363ffffffff1660e01b81526004016108c692919061178f565b5f604051808303815f87803b1580156108dd575f80fd5b505af11580156108ef573d5f803e3d5ffd5b505050506001935050505092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f8083838101906109339190611566565b90506004545f54108015610991575060025f825f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015610a36575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e3f756de825f01516040518263ffffffff1660e01b81526004016109f591906117e7565b602060405180830381865afa158015610a10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a34919061183d565b155b91505092915050565b610a47610c74565b63389a75e1600c52805f526020600c208054421115610a6d57636f5e88185f526004601cfd5b5f815550610a7a81610cab565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ab8610c74565b8060601b610acd57637448fbae5f526004601cfd5b610ad681610cab565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b645750610b6382610e90565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610ba6610f09565b15610c1e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610be057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610c71565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610ca9576382b429005f526004601cfd5b565b610cb3610f09565b15610d18577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610d6e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b6060805f600167ffffffffffffffff811115610d9057610d8f6112f4565b5b604051908082528060200260200182016040528015610dbe5781602001602082028036833780820191505090505b5090505f600167ffffffffffffffff811115610ddd57610ddc6112f4565b5b604051908082528060200260200182016040528015610e0b5781602001602082028036833780820191505090505b50905084825f81518110610e2257610e21611868565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001815f81518110610e7157610e70611868565b5b6020026020010190151590811515815250508181935093505050915091565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f025750610f0182610f0d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610fbb81610f87565b8114610fc5575f80fd5b50565b5f81359050610fd681610fb2565b92915050565b5f60208284031215610ff157610ff0610f7f565b5b5f610ffe84828501610fc8565b91505092915050565b5f8115159050919050565b61101b81611007565b82525050565b5f6020820190506110345f830184611012565b92915050565b5f819050919050565b61104c8161103a565b82525050565b5f6020820190506110655f830184611043565b92915050565b61107481610f87565b82525050565b5f60208201905061108d5f83018461106b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126110b4576110b3611093565b5b8235905067ffffffffffffffff8111156110d1576110d0611097565b5b6020830191508360018202830111156110ed576110ec61109b565b5b9250929050565b5f806020838503121561110a57611109610f7f565b5b5f83013567ffffffffffffffff81111561112757611126610f83565b5b6111338582860161109f565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6111818261113f565b61118b8185611149565b935061119b818560208601611159565b6111a481611167565b840191505092915050565b5f6020820190508181035f8301526111c78184611177565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61121161120c611207846111cf565b6111ee565b6111cf565b9050919050565b5f611222826111f7565b9050919050565b5f61123382611218565b9050919050565b61124381611229565b82525050565b5f60208201905061125c5f83018461123a565b92915050565b5f61126c826111cf565b9050919050565b61127c81611262565b82525050565b5f6020820190506112955f830184611273565b92915050565b6112a481611262565b81146112ae575f80fd5b50565b5f813590506112bf8161129b565b92915050565b5f602082840312156112da576112d9610f7f565b5b5f6112e7848285016112b1565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61132a82611167565b810181811067ffffffffffffffff82111715611349576113486112f4565b5b80604052505050565b5f61135b610f76565b90506113678282611321565b919050565b5f80fd5b5f61137a82611262565b9050919050565b61138a81611370565b8114611394575f80fd5b50565b5f813590506113a581611381565b92915050565b6113b48161103a565b81146113be575f80fd5b50565b5f813590506113cf816113ab565b92915050565b5f604082840312156113ea576113e96112f0565b5b6113f46040611352565b90505f61140384828501611397565b5f830152506020611416848285016113c1565b60208301525092915050565b5f6040828403121561143757611436610f7f565b5b5f611444848285016113d5565b91505092915050565b5f80fd5b5f67ffffffffffffffff82111561146b5761146a6112f4565b5b61147482611167565b9050602081019050919050565b828183375f83830152505050565b5f6114a161149c84611451565b611352565b9050828152602081018484840111156114bd576114bc61144d565b5b6114c8848285611481565b509392505050565b5f82601f8301126114e4576114e3611093565b5b81356114f484826020860161148f565b91505092915050565b5f60408284031215611512576115116112f0565b5b61151c6040611352565b90505f61152b848285016112b1565b5f83015250602082013567ffffffffffffffff81111561154e5761154d61136c565b5b61155a848285016114d0565b60208301525092915050565b5f6020828403121561157b5761157a610f7f565b5b5f82013567ffffffffffffffff81111561159857611597610f83565b5b6115a4848285016114fd565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115e48261103a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611616576116156115ad565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61165381611262565b82525050565b5f611664838361164a565b60208301905092915050565b5f602082019050919050565b5f61168682611621565b611690818561162b565b935061169b8361163b565b805f5b838110156116cb5781516116b28882611659565b97506116bd83611670565b92505060018101905061169e565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61170a81611007565b82525050565b5f61171b8383611701565b60208301905092915050565b5f602082019050919050565b5f61173d826116d8565b61174781856116e2565b9350611752836116f2565b805f5b838110156117825781516117698882611710565b975061177483611727565b925050600181019050611755565b5085935050505092915050565b5f6040820190508181035f8301526117a7818561167c565b905081810360208301526117bb8184611733565b90509392505050565b50565b5f6117d25f83611149565b91506117dd826117c4565b5f82019050919050565b5f6040820190506117fa5f830184611273565b818103602083015261180b816117c7565b905092915050565b61181c81611007565b8114611826575f80fd5b50565b5f8151905061183781611813565b92915050565b5f6020828403121561185257611851610f7f565b5b5f61185f84828501611829565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212205c7361d526ac192286ca680cf357034b4f4341bbc45462a68b1796fbabd8d9f164736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11E JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x9F JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x3D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x412 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x42E JUMPI PUSH2 0x11E JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x2B2 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x354 JUMPI PUSH2 0x11E JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xE6 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1E6 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x254 JUMPI DUP1 PUSH4 0x87B9D25C EQ PUSH2 0x25E JUMPI PUSH2 0x11E JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x122 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1B2 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1BC JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x148 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x143 SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST PUSH2 0x46A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x172 PUSH2 0x4E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17F SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x193 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x19C PUSH2 0x4EC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A9 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1BA PUSH2 0x4F2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D0 PUSH2 0x543 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0x107A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x207 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x56A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x234 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22F SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x64A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x241 SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x252 PUSH2 0x6A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25C PUSH2 0x6DA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x269 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x272 PUSH2 0x6ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x27F SWAP2 SWAP1 PUSH2 0x1249 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x293 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x29C PUSH2 0x712 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A9 SWAP2 SWAP1 PUSH2 0x1282 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2BD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C6 PUSH2 0x73A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D3 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2E7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x302 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2FD SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x740 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30F SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x323 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x33E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x339 SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0x900 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH2 0x91D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x922 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0xA3F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F7 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0xA7D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x409 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x42C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x427 SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x439 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x454 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x44F SWAP2 SWAP1 PUSH2 0x12C5 JUMP JUMPDEST PUSH2 0xAD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x461 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xD1DA334900000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x4DC JUMPI POP PUSH2 0x4DB DUP3 PUSH2 0xAF2 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x4FB PUSH2 0xB6B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xD1DA334900000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x573 PUSH2 0xB75 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x5A5 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x59C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x5B6 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST SWAP1 POP PUSH2 0x5C1 CALLER PUSH2 0xB9E JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP DUP1 ISZERO PUSH2 0x645 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x666 JUMPI PUSH2 0x665 PUSH2 0x12F4 JUMP JUMPDEST 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 0x698 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x6E2 PUSH2 0xC74 JUMP JUMPDEST PUSH2 0x6EB PUSH0 PUSH2 0xCAB JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x749 PUSH2 0xC74 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x759 SWAP2 SWAP1 PUSH2 0x1566 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x76F SWAP1 PUSH2 0x15DA JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE LT ISZERO DUP1 PUSH2 0x7C9 JUMPI POP PUSH1 0x2 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST ISZERO PUSH2 0x800 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 DUP1 PUSH2 0x866 DUP4 PUSH0 ADD MLOAD PUSH2 0xD71 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x3ABB0604 DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C6 SWAP3 SWAP2 SWAP1 PUSH2 0x178F JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8DD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8EF JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x933 SWAP2 SWAP1 PUSH2 0x1566 JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT DUP1 ISZERO PUSH2 0x991 JUMPI POP PUSH1 0x2 PUSH0 DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xA36 JUMPI POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3F756DE DUP3 PUSH0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F5 SWAP2 SWAP1 PUSH2 0x17E7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA10 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA34 SWAP2 SWAP1 PUSH2 0x183D JUMP JUMPDEST ISZERO JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA47 PUSH2 0xC74 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xA6D JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xA7A DUP2 PUSH2 0xCAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xAB8 PUSH2 0xC74 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xACD JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xAD6 DUP2 PUSH2 0xCAB JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xB64 JUMPI POP PUSH2 0xB63 DUP3 PUSH2 0xE90 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBA6 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xC1E JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xBE0 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xC71 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xCA9 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xCB3 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xD18 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xD6E JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD90 JUMPI PUSH2 0xD8F PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xDBE JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xDDD JUMPI PUSH2 0xDDC PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE0B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP5 DUP3 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xE22 JUMPI PUSH2 0xE21 PUSH2 0x1868 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH1 0x1 DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0xE71 JUMPI PUSH2 0xE70 PUSH2 0x1868 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD SWAP1 ISZERO ISZERO SWAP1 DUP2 ISZERO ISZERO DUP2 MSTORE POP POP DUP2 DUP2 SWAP4 POP SWAP4 POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF02 JUMPI POP PUSH2 0xF01 DUP3 PUSH2 0xF0D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFBB DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP2 EQ PUSH2 0xFC5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFD6 DUP2 PUSH2 0xFB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF1 JUMPI PUSH2 0xFF0 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFFE DUP5 DUP3 DUP6 ADD PUSH2 0xFC8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x101B DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1034 PUSH0 DUP4 ADD DUP5 PUSH2 0x1012 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104C DUP2 PUSH2 0x103A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1065 PUSH0 DUP4 ADD DUP5 PUSH2 0x1043 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1074 DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x108D PUSH0 DUP4 ADD DUP5 PUSH2 0x106B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x10B4 JUMPI PUSH2 0x10B3 PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10D1 JUMPI PUSH2 0x10D0 PUSH2 0x1097 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x10ED JUMPI PUSH2 0x10EC PUSH2 0x109B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x110A JUMPI PUSH2 0x1109 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x1133 DUP6 DUP3 DUP7 ADD PUSH2 0x109F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x113F JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1149 JUMP JUMPDEST SWAP4 POP PUSH2 0x119B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x11A4 DUP2 PUSH2 0x1167 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11C7 DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1211 PUSH2 0x120C PUSH2 0x1207 DUP5 PUSH2 0x11CF JUMP JUMPDEST PUSH2 0x11EE JUMP JUMPDEST PUSH2 0x11CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1222 DUP3 PUSH2 0x11F7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1233 DUP3 PUSH2 0x1218 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1243 DUP2 PUSH2 0x1229 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x125C PUSH0 DUP4 ADD DUP5 PUSH2 0x123A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x126C DUP3 PUSH2 0x11CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x127C DUP2 PUSH2 0x1262 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1295 PUSH0 DUP4 ADD DUP5 PUSH2 0x1273 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1262 JUMP JUMPDEST DUP2 EQ PUSH2 0x12AE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12BF DUP2 PUSH2 0x129B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12DA JUMPI PUSH2 0x12D9 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12E7 DUP5 DUP3 DUP6 ADD PUSH2 0x12B1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x132A DUP3 PUSH2 0x1167 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1349 JUMPI PUSH2 0x1348 PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x135B PUSH2 0xF76 JUMP JUMPDEST SWAP1 POP PUSH2 0x1367 DUP3 DUP3 PUSH2 0x1321 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x137A DUP3 PUSH2 0x1262 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x138A DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP2 EQ PUSH2 0x1394 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13A5 DUP2 PUSH2 0x1381 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x13B4 DUP2 PUSH2 0x103A JUMP JUMPDEST DUP2 EQ PUSH2 0x13BE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x13CF DUP2 PUSH2 0x13AB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13EA JUMPI PUSH2 0x13E9 PUSH2 0x12F0 JUMP JUMPDEST JUMPDEST PUSH2 0x13F4 PUSH1 0x40 PUSH2 0x1352 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1403 DUP5 DUP3 DUP6 ADD PUSH2 0x1397 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1416 DUP5 DUP3 DUP6 ADD PUSH2 0x13C1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1437 JUMPI PUSH2 0x1436 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1444 DUP5 DUP3 DUP6 ADD PUSH2 0x13D5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x146B JUMPI PUSH2 0x146A PUSH2 0x12F4 JUMP JUMPDEST JUMPDEST PUSH2 0x1474 DUP3 PUSH2 0x1167 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x14A1 PUSH2 0x149C DUP5 PUSH2 0x1451 JUMP JUMPDEST PUSH2 0x1352 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x14BD JUMPI PUSH2 0x14BC PUSH2 0x144D JUMP JUMPDEST JUMPDEST PUSH2 0x14C8 DUP5 DUP3 DUP6 PUSH2 0x1481 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x14E4 JUMPI PUSH2 0x14E3 PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x14F4 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1512 JUMPI PUSH2 0x1511 PUSH2 0x12F0 JUMP JUMPDEST JUMPDEST PUSH2 0x151C PUSH1 0x40 PUSH2 0x1352 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x152B DUP5 DUP3 DUP6 ADD PUSH2 0x12B1 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x154E JUMPI PUSH2 0x154D PUSH2 0x136C JUMP JUMPDEST JUMPDEST PUSH2 0x155A DUP5 DUP3 DUP6 ADD PUSH2 0x14D0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x157B JUMPI PUSH2 0x157A PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1598 JUMPI PUSH2 0x1597 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x15A4 DUP5 DUP3 DUP6 ADD PUSH2 0x14FD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x15E4 DUP3 PUSH2 0x103A JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1616 JUMPI PUSH2 0x1615 PUSH2 0x15AD JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1653 DUP2 PUSH2 0x1262 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1664 DUP4 DUP4 PUSH2 0x164A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1686 DUP3 PUSH2 0x1621 JUMP JUMPDEST PUSH2 0x1690 DUP2 DUP6 PUSH2 0x162B JUMP JUMPDEST SWAP4 POP PUSH2 0x169B DUP4 PUSH2 0x163B JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x16CB JUMPI DUP2 MLOAD PUSH2 0x16B2 DUP9 DUP3 PUSH2 0x1659 JUMP JUMPDEST SWAP8 POP PUSH2 0x16BD DUP4 PUSH2 0x1670 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x169E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x170A DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x171B DUP4 DUP4 PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x173D DUP3 PUSH2 0x16D8 JUMP JUMPDEST PUSH2 0x1747 DUP2 DUP6 PUSH2 0x16E2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1752 DUP4 PUSH2 0x16F2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1782 JUMPI DUP2 MLOAD PUSH2 0x1769 DUP9 DUP3 PUSH2 0x1710 JUMP JUMPDEST SWAP8 POP PUSH2 0x1774 DUP4 PUSH2 0x1727 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1755 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x17A7 DUP2 DUP6 PUSH2 0x167C JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x17BB DUP2 DUP5 PUSH2 0x1733 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x17D2 PUSH0 DUP4 PUSH2 0x1149 JUMP JUMPDEST SWAP2 POP PUSH2 0x17DD DUP3 PUSH2 0x17C4 JUMP JUMPDEST PUSH0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x17FA PUSH0 DUP4 ADD DUP5 PUSH2 0x1273 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x180B DUP2 PUSH2 0x17C7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x181C DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP2 EQ PUSH2 0x1826 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1837 DUP2 PUSH2 0x1813 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1852 JUMPI PUSH2 0x1851 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x185F DUP5 DUP3 DUP6 ADD PUSH2 0x1829 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TLOAD PUSH20 0x61D526AC192286CA680CF357034B4F4341BBC454 PUSH3 0xA68B17 SWAP7 0xFB 0xAB 0xD8 0xD9 CALL PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"786:936:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3200:218:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3044:93:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1383:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;3013:151:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1470:250:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2377:117:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;806:32:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;925:20:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1275:451;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1464:39:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1982:269:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1824:122:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3200:218:45;3296:4;3334:37;3319:52;;;:11;:52;;;;:92;;;;3375:36;3399:11;3375:23;:36::i;:::-;3319:92;3312:99;;3200:218;;;:::o;3044:93:54:-;3098:7;3124:6;;3117:13;;3044:93;:::o;1383:21::-;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;3013:151:45:-;3095:6;3120:37;3113:44;;3013:151;:::o;1470:250:50:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1550:24:50::1;1588:5;;1577:32;;;;;;;:::i;:::-;1550:59;;1619:28;1636:10;1619:16;:28::i;:::-;1669:5;:15;;;1657:9;;:27;;;;;;;;;;;;;;;;;;1702:5;:11;;;1694:5;:19;;;;1540:180;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1470:250:50;;:::o;2377:117:45:-;2444:12;2485:1;2475:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2468:19;;2377:117;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;806:32:45:-;;;;;;;;;;;;;:::o;11408:182:16:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;925:20:45:-;;;;:::o;1275:451::-;1357:4;12517:13:16;:11;:13::i;:::-;1373:26:45::1;1413:5;;1402:33;;;;;;;:::i;:::-;1373:62;;1461:5;;1449:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;:17;;:43;;;;1470:7;:22;1478:6;:13;;;1470:22;;;;;;;;;;;;;;;;;;;;;;;;;1449:43;1445:70;;;1501:14;;;;;;;;;;;;;;1445:70;1550:4;1525:7;:22;1533:6;:13;;;1525:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1566:22;1590:21:::0;1615:36:::1;1637:6;:13;;;1615:21;:36::i;:::-;1565:86;;;;1662:9;;;;;;;;;;;:20;;;1683:5;1690:7;1662:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1715:4;1708:11;;;;;1275:451:::0;;;;:::o;1464:39:54:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;1982:269:45:-;2065:4;2081:26;2121:5;;2110:33;;;;;;;:::i;:::-;2081:62;;2169:5;;2160:6;;:14;:41;;;;;2179:7;:22;2187:6;:13;;;2179:22;;;;;;;;;;;;;;;;;;;;;;;;;2178:23;2160:41;:84;;;;;2206:9;;;;;;;;;;;:19;;;2226:6;:13;;;2206:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2205:39;2160:84;2153:91;;;1982:269;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;1824:122:45:-;1889:4;1912:27;;;;;;;;;;;;;;8348:349:16;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;3173:208:54:-;3269:4;3307:27;3292:42;;;:11;:42;;;;:82;;;;3338:36;3362:11;3338:23;:36::i;:::-;3292:82;3285:89;;3173:208;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;2680:297:45:-;2751:16;2769:13;2794:22;2833:1;2819:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2794:41;;2845:21;2880:1;2869:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2845:37;;2903:7;2892:5;2898:1;2892:8;;;;;;;;:::i;:::-;;;;;;;:18;;;;;;;;;;;2933:4;2920:7;2928:1;2920:10;;;;;;;;:::i;:::-;;;;;;;:17;;;;;;;;;;;2955:5;2962:7;2947:23;;;;;;2680:297;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:115::-;2038:23;2055:5;2038:23;:::i;:::-;2033:3;2026:36;1953:115;;:::o;2074:218::-;2165:4;2203:2;2192:9;2188:18;2180:26;;2216:69;2282:1;2271:9;2267:17;2258:6;2216:69;:::i;:::-;2074:218;;;;:::o;2298:117::-;2407:1;2404;2397:12;2421:117;2530:1;2527;2520:12;2544:117;2653:1;2650;2643:12;2680:552;2737:8;2747:6;2797:3;2790:4;2782:6;2778:17;2774:27;2764:122;;2805:79;;:::i;:::-;2764:122;2918:6;2905:20;2895:30;;2948:18;2940:6;2937:30;2934:117;;;2970:79;;:::i;:::-;2934:117;3084:4;3076:6;3072:17;3060:29;;3138:3;3130:4;3122:6;3118:17;3108:8;3104:32;3101:41;3098:128;;;3145:79;;:::i;:::-;3098:128;2680:552;;;;;:::o;3238:527::-;3308:6;3316;3365:2;3353:9;3344:7;3340:23;3336:32;3333:119;;;3371:79;;:::i;:::-;3333:119;3519:1;3508:9;3504:17;3491:31;3549:18;3541:6;3538:30;3535:117;;;3571:79;;:::i;:::-;3535:117;3684:64;3740:7;3731:6;3720:9;3716:22;3684:64;:::i;:::-;3666:82;;;;3462:296;3238:527;;;;;:::o;3771:98::-;3822:6;3856:5;3850:12;3840:22;;3771:98;;;:::o;3875:168::-;3958:11;3992:6;3987:3;3980:19;4032:4;4027:3;4023:14;4008:29;;3875:168;;;;:::o;4049:139::-;4138:6;4133:3;4128;4122:23;4179:1;4170:6;4165:3;4161:16;4154:27;4049:139;;;:::o;4194:102::-;4235:6;4286:2;4282:7;4277:2;4270:5;4266:14;4262:28;4252:38;;4194:102;;;:::o;4302:373::-;4388:3;4416:38;4448:5;4416:38;:::i;:::-;4470:70;4533:6;4528:3;4470:70;:::i;:::-;4463:77;;4549:65;4607:6;4602:3;4595:4;4588:5;4584:16;4549:65;:::i;:::-;4639:29;4661:6;4639:29;:::i;:::-;4634:3;4630:39;4623:46;;4392:283;4302:373;;;;:::o;4681:309::-;4792:4;4830:2;4819:9;4815:18;4807:26;;4879:9;4873:4;4869:20;4865:1;4854:9;4850:17;4843:47;4907:76;4978:4;4969:6;4907:76;:::i;:::-;4899:84;;4681:309;;;;:::o;4996:126::-;5033:7;5073:42;5066:5;5062:54;5051:65;;4996:126;;;:::o;5128:60::-;5156:3;5177:5;5170:12;;5128:60;;;:::o;5194:142::-;5244:9;5277:53;5295:34;5304:24;5322:5;5304:24;:::i;:::-;5295:34;:::i;:::-;5277:53;:::i;:::-;5264:66;;5194:142;;;:::o;5342:126::-;5392:9;5425:37;5456:5;5425:37;:::i;:::-;5412:50;;5342:126;;;:::o;5474:151::-;5549:9;5582:37;5613:5;5582:37;:::i;:::-;5569:50;;5474:151;;;:::o;5631:181::-;5743:62;5799:5;5743:62;:::i;:::-;5738:3;5731:75;5631:181;;:::o;5818:272::-;5936:4;5974:2;5963:9;5959:18;5951:26;;5987:96;6080:1;6069:9;6065:17;6056:6;5987:96;:::i;:::-;5818:272;;;;:::o;6096:96::-;6133:7;6162:24;6180:5;6162:24;:::i;:::-;6151:35;;6096:96;;;:::o;6198:118::-;6285:24;6303:5;6285:24;:::i;:::-;6280:3;6273:37;6198:118;;:::o;6322:222::-;6415:4;6453:2;6442:9;6438:18;6430:26;;6466:71;6534:1;6523:9;6519:17;6510:6;6466:71;:::i;:::-;6322:222;;;;:::o;6550:122::-;6623:24;6641:5;6623:24;:::i;:::-;6616:5;6613:35;6603:63;;6662:1;6659;6652:12;6603:63;6550:122;:::o;6678:139::-;6724:5;6762:6;6749:20;6740:29;;6778:33;6805:5;6778:33;:::i;:::-;6678:139;;;;:::o;6823:329::-;6882:6;6931:2;6919:9;6910:7;6906:23;6902:32;6899:119;;;6937:79;;:::i;:::-;6899:119;7057:1;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7028:117;6823:329;;;;:::o;7158:117::-;7267:1;7264;7257:12;7281:180;7329:77;7326:1;7319:88;7426:4;7423:1;7416:15;7450:4;7447:1;7440:15;7467:281;7550:27;7572:4;7550:27;:::i;:::-;7542:6;7538:40;7680:6;7668:10;7665:22;7644:18;7632:10;7629:34;7626:62;7623:88;;;7691:18;;:::i;:::-;7623:88;7731:10;7727:2;7720:22;7510:238;7467:281;;:::o;7754:129::-;7788:6;7815:20;;:::i;:::-;7805:30;;7844:33;7872:4;7864:6;7844:33;:::i;:::-;7754:129;;;:::o;7889:117::-;7998:1;7995;7988:12;8012:121;8074:7;8103:24;8121:5;8103:24;:::i;:::-;8092:35;;8012:121;;;:::o;8139:172::-;8237:49;8280:5;8237:49;:::i;:::-;8230:5;8227:60;8217:88;;8301:1;8298;8291:12;8217:88;8139:172;:::o;8317:189::-;8388:5;8426:6;8413:20;8404:29;;8442:58;8494:5;8442:58;:::i;:::-;8317:189;;;;:::o;8512:122::-;8585:24;8603:5;8585:24;:::i;:::-;8578:5;8575:35;8565:63;;8624:1;8621;8614:12;8565:63;8512:122;:::o;8640:139::-;8686:5;8724:6;8711:20;8702:29;;8740:33;8767:5;8740:33;:::i;:::-;8640:139;;;;:::o;8830:610::-;8909:5;8953:4;8941:9;8936:3;8932:19;8928:30;8925:117;;;8961:79;;:::i;:::-;8925:117;9060:21;9076:4;9060:21;:::i;:::-;9051:30;;9145:1;9185:74;9255:3;9246:6;9235:9;9231:22;9185:74;:::i;:::-;9178:4;9171:5;9167:16;9160:100;9091:180;9331:2;9372:49;9417:3;9408:6;9397:9;9393:22;9372:49;:::i;:::-;9365:4;9358:5;9354:16;9347:75;9281:152;8830:610;;;;:::o;9446:389::-;9535:6;9584:2;9572:9;9563:7;9559:23;9555:32;9552:119;;;9590:79;;:::i;:::-;9552:119;9710:1;9735:83;9810:7;9801:6;9790:9;9786:22;9735:83;:::i;:::-;9725:93;;9681:147;9446:389;;;;:::o;9841:117::-;9950:1;9947;9940:12;9964:307;10025:4;10115:18;10107:6;10104:30;10101:56;;;10137:18;;:::i;:::-;10101:56;10175:29;10197:6;10175:29;:::i;:::-;10167:37;;10259:4;10253;10249:15;10241:23;;9964:307;;;:::o;10277:148::-;10375:6;10370:3;10365;10352:30;10416:1;10407:6;10402:3;10398:16;10391:27;10277:148;;;:::o;10431:423::-;10508:5;10533:65;10549:48;10590:6;10549:48;:::i;:::-;10533:65;:::i;:::-;10524:74;;10621:6;10614:5;10607:21;10659:4;10652:5;10648:16;10697:3;10688:6;10683:3;10679:16;10676:25;10673:112;;;10704:79;;:::i;:::-;10673:112;10794:54;10841:6;10836:3;10831;10794:54;:::i;:::-;10514:340;10431:423;;;;;:::o;10873:338::-;10928:5;10977:3;10970:4;10962:6;10958:17;10954:27;10944:122;;10985:79;;:::i;:::-;10944:122;11102:6;11089:20;11127:78;11201:3;11193:6;11186:4;11178:6;11174:17;11127:78;:::i;:::-;11118:87;;10934:277;10873:338;;;;:::o;11254:751::-;11334:5;11378:4;11366:9;11361:3;11357:19;11353:30;11350:117;;;11386:79;;:::i;:::-;11350:117;11485:21;11501:4;11485:21;:::i;:::-;11476:30;;11567:1;11607:49;11652:3;11643:6;11632:9;11628:22;11607:49;:::i;:::-;11600:4;11593:5;11589:16;11582:75;11516:152;11755:2;11744:9;11740:18;11727:32;11786:18;11778:6;11775:30;11772:117;;;11808:79;;:::i;:::-;11772:117;11928:58;11982:3;11973:6;11962:9;11958:22;11928:58;:::i;:::-;11921:4;11914:5;11910:16;11903:84;11678:320;11254:751;;;;:::o;12011:551::-;12101:6;12150:2;12138:9;12129:7;12125:23;12121:32;12118:119;;;12156:79;;:::i;:::-;12118:119;12304:1;12293:9;12289:17;12276:31;12334:18;12326:6;12323:30;12320:117;;;12356:79;;:::i;:::-;12320:117;12461:84;12537:7;12528:6;12517:9;12513:22;12461:84;:::i;:::-;12451:94;;12247:308;12011:551;;;;:::o;12568:180::-;12616:77;12613:1;12606:88;12713:4;12710:1;12703:15;12737:4;12734:1;12727:15;12754:233;12793:3;12816:24;12834:5;12816:24;:::i;:::-;12807:33;;12862:66;12855:5;12852:77;12849:103;;12932:18;;:::i;:::-;12849:103;12979:1;12972:5;12968:13;12961:20;;12754:233;;;:::o;12993:114::-;13060:6;13094:5;13088:12;13078:22;;12993:114;;;:::o;13113:184::-;13212:11;13246:6;13241:3;13234:19;13286:4;13281:3;13277:14;13262:29;;13113:184;;;;:::o;13303:132::-;13370:4;13393:3;13385:11;;13423:4;13418:3;13414:14;13406:22;;13303:132;;;:::o;13441:108::-;13518:24;13536:5;13518:24;:::i;:::-;13513:3;13506:37;13441:108;;:::o;13555:179::-;13624:10;13645:46;13687:3;13679:6;13645:46;:::i;:::-;13723:4;13718:3;13714:14;13700:28;;13555:179;;;;:::o;13740:113::-;13810:4;13842;13837:3;13833:14;13825:22;;13740:113;;;:::o;13889:732::-;14008:3;14037:54;14085:5;14037:54;:::i;:::-;14107:86;14186:6;14181:3;14107:86;:::i;:::-;14100:93;;14217:56;14267:5;14217:56;:::i;:::-;14296:7;14327:1;14312:284;14337:6;14334:1;14331:13;14312:284;;;14413:6;14407:13;14440:63;14499:3;14484:13;14440:63;:::i;:::-;14433:70;;14526:60;14579:6;14526:60;:::i;:::-;14516:70;;14372:224;14359:1;14356;14352:9;14347:14;;14312:284;;;14316:14;14612:3;14605:10;;14013:608;;;13889:732;;;;:::o;14627:111::-;14691:6;14725:5;14719:12;14709:22;;14627:111;;;:::o;14744:181::-;14840:11;14874:6;14869:3;14862:19;14914:4;14909:3;14905:14;14890:29;;14744:181;;;;:::o;14931:129::-;14995:4;15018:3;15010:11;;15048:4;15043:3;15039:14;15031:22;;14931:129;;;:::o;15066:99::-;15137:21;15152:5;15137:21;:::i;:::-;15132:3;15125:34;15066:99;;:::o;15171:167::-;15234:10;15255:40;15291:3;15283:6;15255:40;:::i;:::-;15327:4;15322:3;15318:14;15304:28;;15171:167;;;;:::o;15344:110::-;15411:4;15443;15438:3;15434:14;15426:22;;15344:110;;;:::o;15484:708::-;15597:3;15626:51;15671:5;15626:51;:::i;:::-;15693:83;15769:6;15764:3;15693:83;:::i;:::-;15686:90;;15800:53;15847:5;15800:53;:::i;:::-;15876:7;15907:1;15892:275;15917:6;15914:1;15911:13;15892:275;;;15993:6;15987:13;16020:57;16073:3;16058:13;16020:57;:::i;:::-;16013:64;;16100:57;16150:6;16100:57;:::i;:::-;16090:67;;15952:215;15939:1;15936;15932:9;15927:14;;15892:275;;;15896:14;16183:3;16176:10;;15602:590;;;15484:708;;;;:::o;16198:622::-;16413:4;16451:2;16440:9;16436:18;16428:26;;16500:9;16494:4;16490:20;16486:1;16475:9;16471:17;16464:47;16528:108;16631:4;16622:6;16528:108;:::i;:::-;16520:116;;16683:9;16677:4;16673:20;16668:2;16657:9;16653:18;16646:48;16711:102;16808:4;16799:6;16711:102;:::i;:::-;16703:110;;16198:622;;;;;:::o;16826:114::-;;:::o;16946:362::-;17087:3;17108:65;17171:1;17166:3;17108:65;:::i;:::-;17101:72;;17182:93;17271:3;17182:93;:::i;:::-;17300:1;17295:3;17291:11;17284:18;;16946:362;;;:::o;17314:527::-;17507:4;17545:2;17534:9;17530:18;17522:26;;17558:71;17626:1;17615:9;17611:17;17602:6;17558:71;:::i;:::-;17676:9;17670:4;17666:20;17661:2;17650:9;17646:18;17639:48;17704:130;17829:4;17704:130;:::i;:::-;17696:138;;17314:527;;;;:::o;17847:116::-;17917:21;17932:5;17917:21;:::i;:::-;17910:5;17907:32;17897:60;;17953:1;17950;17943:12;17897:60;17847:116;:::o;17969:137::-;18023:5;18054:6;18048:13;18039:22;;18070:30;18094:5;18070:30;:::i;:::-;17969:137;;;;:::o;18112:345::-;18179:6;18228:2;18216:9;18207:7;18203:23;18199:32;18196:119;;;18234:79;;:::i;:::-;18196:119;18354:1;18379:61;18432:7;18423:6;18412:9;18408:22;18379:61;:::i;:::-;18369:71;;18325:125;18112:345;;;;:::o;18463:180::-;18511:77;18508:1;18501:88;18608:4;18605:1;18598:15;18632:4;18629:1;18622:15"},"methodIdentifiers":{"allowList()":"87b9d25c","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"allowList\",\"outputs\":[{\"internalType\":\"contract SimpleAllowList\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not already be on the allow list; and - The maximum number of claims must not have been reached; and - This contract must be authorized to modify the allow list\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The claim data\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The packed initialization data `(SimpleAllowList allowList, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"No preflight approval is required for this incentive (no tokens are handled)\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"SimpleAllowList Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"allowList()\":{\"notice\":\"The SimpleAllowList contract\"},\"claim(bytes)\":{\"notice\":\"Claim a slot on the {SimpleAllowList}\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new AllowListIncentive\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An incentive implementation that grants the claimer a slot on an {SimpleAllowList}\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/AllowListIncentive.sol\":\"AllowListIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"contracts/allowlists/ASimpleAllowList.sol\":{\"keccak256\":\"0x5eaa5dd8c8950c248d1f9e35c2b37182aa30e94f29a7c40124533e05365a961c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6c74d9642b12b51a71b37d2c44c8f9d013f1e482603435aa69f885efb0957776\",\"dweb:/ipfs/QmU1VFaUvKQhL54jrpvUen5D9qaMEtP5JWdzNxtdaF4Wbk\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/allowlists/SimpleAllowList.sol\":{\"keccak256\":\"0xc8081da07ec10a14bc9f0106fbbaa1d3dc6caf0f15af735ad4bc1885be234922\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2f8559c3969ad76707078c68afa34206e4a82d310ee807a6dc0096176474bb17\",\"dweb:/ipfs/QmYdrxCWgaXsjbESyfkuZneiyVnizjqic7Tcv6BaNjQrFM\"]},\"contracts/incentives/AAllowListIncentive.sol\":{\"keccak256\":\"0x7cbcfc93d4044bc887b5abd5876ae738a7aafa97e4bbaf577f0a422a87118286\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2f1ad86304b69fb3a36d77c7e1853a1e639d0345a7c1130171f950f7aeec6b67\",\"dweb:/ipfs/QmcqZ7f12TkLEayWR9ANQCCn4DuPCKh87BQ75MDpZdxhek\"]},\"contracts/incentives/AllowListIncentive.sol\":{\"keccak256\":\"0xaeb3f27157f8156ce5120de978b7cd5ee16c938bd301825d3d761da5e70181b3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f1f81765e510efe9c61c5775891572473201976d60b2e4bc25a80d50431c7fb2\",\"dweb:/ipfs/QmSQQuAjjTCRuWiQd3JAKWtcem8X1NxoMdfrA1ZCzNP2iP\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/CGDAIncentive.sol":{"CGDAIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cgdaParams","outputs":[{"internalType":"uint256","name":"rewardDecay","type":"uint256"},{"internalType":"uint256","name":"rewardBoost","type":"uint256"},{"internalType":"uint256","name":"lastClaimTime","type":"uint256"},{"internalType":"uint256","name":"currentReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBudget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17505":{"entryPoint":null,"id":17505,"parameterSlots":0,"returnSlots":0},"@_18117":{"entryPoint":null,"id":18117,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611c8a806101b45f395ff3fe608060405260043610610129575f3560e01c806375ef18d0116100aa578063dcc59b6f1161006e578063dcc59b6f1461038c578063e18e6508146103b6578063f04e283e146103f2578063f1c30ec01461040e578063f2fde38b1461044a578063fee81cf41461046657610129565b806375ef18d0146102935780638da5cb5b146102c0578063c63ff8dd146102ea578063c78da39a14610326578063c884ef831461035057610129565b806338d52e0f116100f157806338d52e0f146101f1578063439fab911461021b5780634e7165a21461024357806354d1f13d1461027f578063715018a61461028957610129565b806301ffc9a71461012d57806307621eca14610169578063228cb7331461019357806325692962146101bd57806328d6183b146101c7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e919061129a565b6104a2565b60405161016091906112df565b60405180910390f35b348015610174575f80fd5b5061017d61051b565b60405161018a9190611310565b60405180910390f35b34801561019e575f80fd5b506101a76105c5565b6040516101b49190611310565b60405180910390f35b6101c56105cb565b005b3480156101d2575f80fd5b506101db61061c565b6040516101e89190611338565b60405180910390f35b3480156101fc575f80fd5b50610205610643565b6040516102129190611390565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c919061140a565b610668565b005b34801561024e575f80fd5b506102696004803603810190610264919061140a565b610890565b60405161027691906114c5565b60405180910390f35b610287610960565b005b610291610999565b005b34801561029e575f80fd5b506102a76109ac565b6040516102b794939291906114e5565b60405180910390f35b3480156102cb575f80fd5b506102d46109c9565b6040516102e19190611390565b60405180910390f35b3480156102f5575f80fd5b50610310600480360381019061030b919061140a565b6109f1565b60405161031d91906112df565b60405180910390f35b348015610331575f80fd5b5061033a610b9b565b6040516103479190611310565b60405180910390f35b34801561035b575f80fd5b5061037660048036038101906103719190611552565b610ba1565b60405161038391906112df565b60405180910390f35b348015610397575f80fd5b506103a0610bbe565b6040516103ad9190611310565b60405180910390f35b3480156103c1575f80fd5b506103dc60048036038101906103d7919061140a565b610bc3565b6040516103e991906112df565b60405180910390f35b61040c60048036038101906104079190611552565b610beb565b005b348015610419575f80fd5b50610434600480360381019061042f919061140a565b610c29565b60405161044191906112df565b60405180910390f35b610464600480360381019061045f9190611552565b610d52565b005b348015610471575f80fd5b5061048c60048036038101906104879190611552565b610d7b565b6040516104999190611310565b60405180910390f35b5f7f31116297000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610514575061051382610d94565b5b9050919050565b5f806004600201544261052e91906115aa565b90505f61057b3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0d90919063ffffffff16565b90505f610e106004600101548461059291906115dd565b61059c919061164b565b6004600301546105ac919061167b565b90508181116105bb57806105bd565b815b935050505090565b60015481565b5f6105d4610e40565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f3111629700000000000000000000000000000000000000000000000000000000905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610671610e4a565b905080546003825580156106a35760018160011c14303b1061069a5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106b491906117e1565b90505f6106e330835f015173ffffffffffffffffffffffffffffffffffffffff16610e0d90919063ffffffff16565b9050816080015181101561073957815f01518183608001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107309392919061180c565b60405180910390fd5b5f8260200151148061074e57505f8260400151145b8061075c57505f8260600151145b8061076e575081602001518260800151105b156107a5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052808360400151815260200183606001518152602001428152602001836020015181525060045f820151815f0155602082015181600101556040820151816002015560608201518160030155905050816080015160088190555061085433610e73565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a291906117e1565b90506040518060800160405280600160028111156108c3576108c2611841565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084608001518152506040516020016109269190611897565b60405160208183030381529060405281525060405160200161094891906119ad565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6109a1610f49565b6109aa5f610f80565b565b6004805f0154908060010154908060020154908060030154905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f6109fa610f49565b5f8383810190610a0a9190611ae6565b9050610a18815f0151611046565b610a4e576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610a5f90611b2d565b91905055505f610a6d61051b565b90504260046002018190555060045f01548111610a8e5760045f0154610a9f565b60045f015481610a9e91906115aa565b5b600460030181905550610af7825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111059092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610b6b93929190611bd9565b604051602081830303815290604052604051610b8791906114c5565b60405180910390a260019250505092915050565b60085481565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610bd49190611ae6565b9050610be2815f0151611046565b91505092915050565b610bf3610f49565b63389a75e1600c52805f526020600c208054421115610c1957636f5e88185f526004601cfd5b5f815550610c2681610f80565b50565b5f610c32610f49565b5f8383810190610c429190611ae6565b90505f8160200151806020019051810190610c5d9190611c29565b9050610cae825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111059092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610d2293929190611bd9565b604051602081830303815290604052604051610d3e91906114c5565b60405180910390a260019250505092915050565b610d5a610f49565b8060601b610d6f57637448fbae5f526004601cfd5b610d7881610f80565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610e065750610e058261114e565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111c7565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f7e576382b429005f526004601cfd5b565b610f886111c7565b15610fed577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611043565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f8061105061051b565b90505f811180156110aa5750806110a73060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0d90919063ffffffff16565b10155b80156110fd575060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b915050919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611145576390b8ec185f526004601cfd5b5f603452505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111c057506111bf826111cb565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61127981611245565b8114611283575f80fd5b50565b5f8135905061129481611270565b92915050565b5f602082840312156112af576112ae61123d565b5b5f6112bc84828501611286565b91505092915050565b5f8115159050919050565b6112d9816112c5565b82525050565b5f6020820190506112f25f8301846112d0565b92915050565b5f819050919050565b61130a816112f8565b82525050565b5f6020820190506113235f830184611301565b92915050565b61133281611245565b82525050565b5f60208201905061134b5f830184611329565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61137a82611351565b9050919050565b61138a81611370565b82525050565b5f6020820190506113a35f830184611381565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126113ca576113c96113a9565b5b8235905067ffffffffffffffff8111156113e7576113e66113ad565b5b602083019150836001820283011115611403576114026113b1565b5b9250929050565b5f80602083850312156114205761141f61123d565b5b5f83013567ffffffffffffffff81111561143d5761143c611241565b5b611449858286016113b5565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61149782611455565b6114a1818561145f565b93506114b181856020860161146f565b6114ba8161147d565b840191505092915050565b5f6020820190508181035f8301526114dd818461148d565b905092915050565b5f6080820190506114f85f830187611301565b6115056020830186611301565b6115126040830185611301565b61151f6060830184611301565b95945050505050565b61153181611370565b811461153b575f80fd5b50565b5f8135905061154c81611528565b92915050565b5f602082840312156115675761156661123d565b5b5f6115748482850161153e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115b4826112f8565b91506115bf836112f8565b92508282039050818111156115d7576115d661157d565b5b92915050565b5f6115e7826112f8565b91506115f2836112f8565b9250828202611600816112f8565b915082820484148315176116175761161661157d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611655826112f8565b9150611660836112f8565b9250826116705761166f61161e565b5b828204905092915050565b5f611685826112f8565b9150611690836112f8565b92508282019050808211156116a8576116a761157d565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116e88261147d565b810181811067ffffffffffffffff82111715611707576117066116b2565b5b80604052505050565b5f611719611234565b905061172582826116df565b919050565b5f80fd5b611737816112f8565b8114611741575f80fd5b50565b5f813590506117528161172e565b92915050565b5f60a0828403121561176d5761176c6116ae565b5b61177760a0611710565b90505f6117868482850161153e565b5f83015250602061179984828501611744565b60208301525060406117ad84828501611744565b60408301525060606117c184828501611744565b60608301525060806117d584828501611744565b60808301525092915050565b5f60a082840312156117f6576117f561123d565b5b5f61180384828501611758565b91505092915050565b5f60608201905061181f5f830186611381565b61182c6020830185611301565b6118396040830184611301565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b611877816112f8565b82525050565b602082015f8201516118915f85018261186e565b50505050565b5f6020820190506118aa5f83018461187d565b92915050565b600381106118c1576118c0611841565b5b50565b5f8190506118d1826118b0565b919050565b5f6118e0826118c4565b9050919050565b6118f0816118d6565b82525050565b6118ff81611370565b82525050565b5f82825260208201905092915050565b5f61191f82611455565b6119298185611905565b935061193981856020860161146f565b6119428161147d565b840191505092915050565b5f608083015f8301516119625f8601826118e7565b50602083015161197560208601826118f6565b50604083015161198860408601826118f6565b50606083015184820360608601526119a08282611915565b9150508091505092915050565b5f6020820190508181035f8301526119c5818461194d565b905092915050565b5f80fd5b5f67ffffffffffffffff8211156119eb576119ea6116b2565b5b6119f48261147d565b9050602081019050919050565b828183375f83830152505050565b5f611a21611a1c846119d1565b611710565b905082815260208101848484011115611a3d57611a3c6119cd565b5b611a48848285611a01565b509392505050565b5f82601f830112611a6457611a636113a9565b5b8135611a74848260208601611a0f565b91505092915050565b5f60408284031215611a9257611a916116ae565b5b611a9c6040611710565b90505f611aab8482850161153e565b5f83015250602082013567ffffffffffffffff811115611ace57611acd61172a565b5b611ada84828501611a50565b60208301525092915050565b5f60208284031215611afb57611afa61123d565b5b5f82013567ffffffffffffffff811115611b1857611b17611241565b5b611b2484828501611a7d565b91505092915050565b5f611b37826112f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b6957611b6861157d565b5b600182019050919050565b5f8160601b9050919050565b5f611b8a82611b74565b9050919050565b5f611b9b82611b80565b9050919050565b611bb3611bae82611370565b611b91565b82525050565b5f819050919050565b611bd3611bce826112f8565b611bb9565b82525050565b5f611be48286611ba2565b601482019150611bf48285611ba2565b601482019150611c048284611bc2565b602082019150819050949350505050565b5f81519050611c238161172e565b92915050565b5f60208284031215611c3e57611c3d61123d565b5b5f611c4b84828501611c15565b9150509291505056fea264697066735822122086e8fcf0781064379931bf3b076395baded394e0cb30f9a8d5f272ef2e78a58764736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1C8A DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x75EF18D0 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x44A JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x466 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x75EF18D0 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0xC78DA39A EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x350 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x38D52E0F GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x289 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x51B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH2 0x5CB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x61C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x1338 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x205 PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x212 SWAP2 SWAP1 PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x226 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x14C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH2 0x960 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x291 PUSH2 0x999 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x14E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D4 PUSH2 0x9C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30B SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31D SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x376 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x371 SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xBA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x397 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A0 PUSH2 0xBBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AD SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0xBC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E9 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x40C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x407 SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xBEB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0xC29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x441 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x464 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xD52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x487 SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xD7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x3111629700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x514 JUMPI POP PUSH2 0x513 DUP3 PUSH2 0xD94 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x4 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x52E SWAP2 SWAP1 PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x57B ADDRESS PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE0D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xE10 PUSH1 0x4 PUSH1 0x1 ADD SLOAD DUP5 PUSH2 0x592 SWAP2 SWAP1 PUSH2 0x15DD JUMP JUMPDEST PUSH2 0x59C SWAP2 SWAP1 PUSH2 0x164B JUMP JUMPDEST PUSH1 0x4 PUSH1 0x3 ADD SLOAD PUSH2 0x5AC SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x5BB JUMPI DUP1 PUSH2 0x5BD JUMP JUMPDEST DUP2 JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5D4 PUSH2 0xE40 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x3111629700000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x671 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x69A JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x6B4 SWAP2 SWAP1 PUSH2 0x17E1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x6E3 ADDRESS DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE0D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x80 ADD MLOAD DUP2 LT ISZERO PUSH2 0x739 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x730 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x180C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x20 ADD MLOAD EQ DUP1 PUSH2 0x74E JUMPI POP PUSH0 DUP3 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x75C JUMPI POP PUSH0 DUP3 PUSH1 0x60 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x76E JUMPI POP DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD LT JUMPDEST ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE POP PUSH1 0x4 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH2 0x854 CALLER PUSH2 0xE73 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x88B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x8A2 SWAP2 SWAP1 PUSH2 0x17E1 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x1841 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x926 SWAP2 SWAP1 PUSH2 0x1897 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x948 SWAP2 SWAP1 PUSH2 0x19AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x9A1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x9AA PUSH0 PUSH2 0xF80 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x9FA PUSH2 0xF49 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA0A SWAP2 SWAP1 PUSH2 0x1AE6 JUMP JUMPDEST SWAP1 POP PUSH2 0xA18 DUP2 PUSH0 ADD MLOAD PUSH2 0x1046 JUMP JUMPDEST PUSH2 0xA4E JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xA5F SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH0 PUSH2 0xA6D PUSH2 0x51B JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x4 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH0 ADD SLOAD DUP2 GT PUSH2 0xA8E JUMPI PUSH1 0x4 PUSH0 ADD SLOAD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x4 PUSH0 ADD SLOAD DUP2 PUSH2 0xA9E SWAP2 SWAP1 PUSH2 0x15AA JUMP JUMPDEST JUMPDEST PUSH1 0x4 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xAF7 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1105 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB6B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1BD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xB87 SWAP2 SWAP1 PUSH2 0x14C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBD4 SWAP2 SWAP1 PUSH2 0x1AE6 JUMP JUMPDEST SWAP1 POP PUSH2 0xBE2 DUP2 PUSH0 ADD MLOAD PUSH2 0x1046 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF3 PUSH2 0xF49 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xC19 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xC26 DUP2 PUSH2 0xF80 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xC32 PUSH2 0xF49 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xC42 SWAP2 SWAP1 PUSH2 0x1AE6 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1C29 JUMP JUMPDEST SWAP1 POP PUSH2 0xCAE DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1105 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD22 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1BD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xD3E SWAP2 SWAP1 PUSH2 0x14C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD5A PUSH2 0xF49 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xD6F JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xD78 DUP2 PUSH2 0xF80 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xE06 JUMPI POP PUSH2 0xE05 DUP3 PUSH2 0x114E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11C7 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF7E JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xF88 PUSH2 0x11C7 JUMP JUMPDEST ISZERO PUSH2 0xFED JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1043 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x1050 PUSH2 0x51B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x10AA JUMPI POP DUP1 PUSH2 0x10A7 ADDRESS PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE0D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x10FD JUMPI POP PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1145 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x11C0 JUMPI POP PUSH2 0x11BF DUP3 PUSH2 0x11CB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1279 DUP2 PUSH2 0x1245 JUMP JUMPDEST DUP2 EQ PUSH2 0x1283 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1294 DUP2 PUSH2 0x1270 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AF JUMPI PUSH2 0x12AE PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12BC DUP5 DUP3 DUP6 ADD PUSH2 0x1286 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12D9 DUP2 PUSH2 0x12C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x12F2 PUSH0 DUP4 ADD DUP5 PUSH2 0x12D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x130A DUP2 PUSH2 0x12F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1323 PUSH0 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1332 DUP2 PUSH2 0x1245 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x134B PUSH0 DUP4 ADD DUP5 PUSH2 0x1329 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x137A DUP3 PUSH2 0x1351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x138A DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13A3 PUSH0 DUP4 ADD DUP5 PUSH2 0x1381 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x13CA JUMPI PUSH2 0x13C9 PUSH2 0x13A9 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13E7 JUMPI PUSH2 0x13E6 PUSH2 0x13AD JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1403 JUMPI PUSH2 0x1402 PUSH2 0x13B1 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1420 JUMPI PUSH2 0x141F PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x143D JUMPI PUSH2 0x143C PUSH2 0x1241 JUMP JUMPDEST JUMPDEST PUSH2 0x1449 DUP6 DUP3 DUP7 ADD PUSH2 0x13B5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1497 DUP3 PUSH2 0x1455 JUMP JUMPDEST PUSH2 0x14A1 DUP2 DUP6 PUSH2 0x145F JUMP JUMPDEST SWAP4 POP PUSH2 0x14B1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x146F JUMP JUMPDEST PUSH2 0x14BA DUP2 PUSH2 0x147D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x14DD DUP2 DUP5 PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x14F8 PUSH0 DUP4 ADD DUP8 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x1505 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x1512 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x151F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1531 DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP2 EQ PUSH2 0x153B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154C DUP2 PUSH2 0x1528 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1567 JUMPI PUSH2 0x1566 PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1574 DUP5 DUP3 DUP6 ADD PUSH2 0x153E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x15B4 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BF DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D7 JUMPI PUSH2 0x15D6 PUSH2 0x157D JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15E7 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x15F2 DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1600 DUP2 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1617 JUMPI PUSH2 0x1616 PUSH2 0x157D JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1655 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1660 DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1670 JUMPI PUSH2 0x166F PUSH2 0x161E JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1685 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1690 DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16A8 JUMPI PUSH2 0x16A7 PUSH2 0x157D JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x16E8 DUP3 PUSH2 0x147D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1707 JUMPI PUSH2 0x1706 PUSH2 0x16B2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1719 PUSH2 0x1234 JUMP JUMPDEST SWAP1 POP PUSH2 0x1725 DUP3 DUP3 PUSH2 0x16DF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1737 DUP2 PUSH2 0x12F8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1741 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1752 DUP2 PUSH2 0x172E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x176D JUMPI PUSH2 0x176C PUSH2 0x16AE JUMP JUMPDEST JUMPDEST PUSH2 0x1777 PUSH1 0xA0 PUSH2 0x1710 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1786 DUP5 DUP3 DUP6 ADD PUSH2 0x153E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1799 DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17AD DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17C1 DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17D5 DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17F6 JUMPI PUSH2 0x17F5 PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1803 DUP5 DUP3 DUP6 ADD PUSH2 0x1758 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x181F PUSH0 DUP4 ADD DUP7 PUSH2 0x1381 JUMP JUMPDEST PUSH2 0x182C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x1839 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1877 DUP2 PUSH2 0x12F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1891 PUSH0 DUP6 ADD DUP3 PUSH2 0x186E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18AA PUSH0 DUP4 ADD DUP5 PUSH2 0x187D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x18C1 JUMPI PUSH2 0x18C0 PUSH2 0x1841 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x18D1 DUP3 PUSH2 0x18B0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x18E0 DUP3 PUSH2 0x18C4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18F0 DUP2 PUSH2 0x18D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x18FF DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x191F DUP3 PUSH2 0x1455 JUMP JUMPDEST PUSH2 0x1929 DUP2 DUP6 PUSH2 0x1905 JUMP JUMPDEST SWAP4 POP PUSH2 0x1939 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x146F JUMP JUMPDEST PUSH2 0x1942 DUP2 PUSH2 0x147D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1962 PUSH0 DUP7 ADD DUP3 PUSH2 0x18E7 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1975 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x18F6 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1988 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x18F6 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x19A0 DUP3 DUP3 PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x19C5 DUP2 DUP5 PUSH2 0x194D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x19EB JUMPI PUSH2 0x19EA PUSH2 0x16B2 JUMP JUMPDEST JUMPDEST PUSH2 0x19F4 DUP3 PUSH2 0x147D JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A21 PUSH2 0x1A1C DUP5 PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x1710 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1A3D JUMPI PUSH2 0x1A3C PUSH2 0x19CD JUMP JUMPDEST JUMPDEST PUSH2 0x1A48 DUP5 DUP3 DUP6 PUSH2 0x1A01 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A64 JUMPI PUSH2 0x1A63 PUSH2 0x13A9 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A74 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1A0F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A92 JUMPI PUSH2 0x1A91 PUSH2 0x16AE JUMP JUMPDEST JUMPDEST PUSH2 0x1A9C PUSH1 0x40 PUSH2 0x1710 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1AAB DUP5 DUP3 DUP6 ADD PUSH2 0x153E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACE JUMPI PUSH2 0x1ACD PUSH2 0x172A JUMP JUMPDEST JUMPDEST PUSH2 0x1ADA DUP5 DUP3 DUP6 ADD PUSH2 0x1A50 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AFB JUMPI PUSH2 0x1AFA PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B18 JUMPI PUSH2 0x1B17 PUSH2 0x1241 JUMP JUMPDEST JUMPDEST PUSH2 0x1B24 DUP5 DUP3 DUP6 ADD PUSH2 0x1A7D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B37 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1B69 JUMPI PUSH2 0x1B68 PUSH2 0x157D JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B8A DUP3 PUSH2 0x1B74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B9B DUP3 PUSH2 0x1B80 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BB3 PUSH2 0x1BAE DUP3 PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x1B91 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BD3 PUSH2 0x1BCE DUP3 PUSH2 0x12F8 JUMP JUMPDEST PUSH2 0x1BB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1BE4 DUP3 DUP7 PUSH2 0x1BA2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1BF4 DUP3 DUP6 PUSH2 0x1BA2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1C04 DUP3 DUP5 PUSH2 0x1BC2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C23 DUP2 PUSH2 0x172E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C3E JUMPI PUSH2 0x1C3D PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C4B DUP5 DUP3 DUP6 ADD PUSH2 0x1C15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP7 0xE8 0xFC CREATE PUSH25 0x1064379931BF3B076395BADED394E0CB30F9A8D5F272EF2E78 0xA5 DUP8 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"602:2792:51:-:0;;;1476:53;;;;;;;;;;1647:28:54;1664:10;1647:16;;;:28;;:::i;:::-;1500:22:51;:20;;;:22;;:::i;:::-;602:2792;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;602:2792:51:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6308":{"entryPoint":3913,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":4551,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":3658,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":3699,"id":6288,"parameterSlots":1,"returnSlots":0},"@_isClaimable_16379":{"entryPoint":4166,"id":16379,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6319":{"entryPoint":3648,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":3968,"id":6302,"parameterSlots":1,"returnSlots":0},"@asset_16111":{"entryPoint":1603,"id":16111,"parameterSlots":0,"returnSlots":0},"@balanceOf_11253":{"entryPoint":3597,"id":11253,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6368":{"entryPoint":2400,"id":6368,"parameterSlots":0,"returnSlots":0},"@cgdaParams_16124":{"entryPoint":2476,"id":16124,"parameterSlots":0,"returnSlots":0},"@claim_16221":{"entryPoint":2545,"id":16221,"parameterSlots":2,"returnSlots":1},"@claimed_18107":{"entryPoint":2977,"id":18107,"parameterSlots":0,"returnSlots":0},"@claims_18099":{"entryPoint":3006,"id":18099,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":3051,"id":6382,"parameterSlots":1,"returnSlots":0},"@currentReward_16347":{"entryPoint":1307,"id":16347,"parameterSlots":0,"returnSlots":1},"@getComponentInterface_16393":{"entryPoint":1564,"id":16393,"parameterSlots":0,"returnSlots":1},"@initialize_17606":{"entryPoint":1640,"id":17606,"parameterSlots":2,"returnSlots":0},"@isClaimable_16301":{"entryPoint":3011,"id":16301,"parameterSlots":2,"returnSlots":1},"@owner_6390":{"entryPoint":2505,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":3451,"id":6400,"parameterSlots":1,"returnSlots":1},"@preflight_17650":{"entryPoint":2192,"id":17650,"parameterSlots":2,"returnSlots":1},"@reclaim_16276":{"entryPoint":3113,"id":16276,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":2457,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1483,"id":6362,"parameterSlots":0,"returnSlots":0},"@reward_18102":{"entryPoint":1477,"id":18102,"parameterSlots":0,"returnSlots":0},"@safeTransfer_11205":{"entryPoint":4357,"id":11205,"parameterSlots":3,"returnSlots":0},"@supportsInterface_16416":{"entryPoint":1186,"id":16416,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18181":{"entryPoint":3476,"id":18181,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":4430,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":4555,"id":2830,"parameterSlots":1,"returnSlots":1},"@totalBudget_16126":{"entryPoint":2971,"id":16126,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6333":{"entryPoint":3410,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6671,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5438,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":4742,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":5045,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6736,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":6781,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$17497_memory_ptr":{"entryPoint":5976,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5956,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":7189,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5458,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":4762,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":5130,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":6886,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$17497_memory_ptr":{"entryPoint":6113,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":7209,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":6390,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4993,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":7074,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4816,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4905,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":6421,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":5261,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_enum$_AssetType_$15450_to_t_uint8":{"entryPoint":6375,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack":{"entryPoint":6269,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack":{"entryPoint":6477,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":6254,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4865,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":7106,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":7129,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5008,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":6156,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4831,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4920,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr__to_t_struct$_FungiblePayload_$15465_memory_ptr__fromStack_reversed":{"entryPoint":6295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed":{"entryPoint":6573,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4880,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":5349,"id":null,"parameterSlots":5,"returnSlots":1},"allocate_memory":{"entryPoint":5904,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":4660,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6609,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":5205,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":6405,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":5215,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":5755,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":5707,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":5597,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":5546,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4976,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":4805,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":4677,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$15450":{"entryPoint":6340,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4945,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4856,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$15450_to_t_uint8":{"entryPoint":6358,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6657,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5231,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":5855,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":6957,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":7057,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":7040,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":7097,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5501,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":5662,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":6209,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5810,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":5037,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":5033,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":5806,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":5930,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":5041,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6605,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":4673,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":4669,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":5245,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":7028,"id":null,"parameterSlots":1,"returnSlots":1},"validator_assert_t_enum$_AssetType_$15450":{"entryPoint":6320,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5416,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":4720,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5934,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:19695:64","nodeType":"YulBlock","src":"0:19695:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:32:64","nodeType":"YulBlock","src":"1563:32:64","statements":[{"nativeSrc":"1573:16:64","nodeType":"YulAssignment","src":"1573:16:64","value":{"name":"value","nativeSrc":"1584:5:64","nodeType":"YulIdentifier","src":"1584:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:77:64"},{"body":{"nativeSrc":"1666:53:64","nodeType":"YulBlock","src":"1666:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:64","nodeType":"YulIdentifier","src":"1683:3:64"},{"arguments":[{"name":"value","nativeSrc":"1706:5:64","nodeType":"YulIdentifier","src":"1706:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:64","nodeType":"YulIdentifier","src":"1688:17:64"},"nativeSrc":"1688:24:64","nodeType":"YulFunctionCall","src":"1688:24:64"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:64","nodeType":"YulIdentifier","src":"1676:6:64"},"nativeSrc":"1676:37:64","nodeType":"YulFunctionCall","src":"1676:37:64"},"nativeSrc":"1676:37:64","nodeType":"YulExpressionStatement","src":"1676:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:64","nodeType":"YulTypedName","src":"1654:5:64","type":""},{"name":"pos","nativeSrc":"1661:3:64","nodeType":"YulTypedName","src":"1661:3:64","type":""}],"src":"1601:118:64"},{"body":{"nativeSrc":"1823:124:64","nodeType":"YulBlock","src":"1823:124:64","statements":[{"nativeSrc":"1833:26:64","nodeType":"YulAssignment","src":"1833:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:64","nodeType":"YulIdentifier","src":"1845:9:64"},{"kind":"number","nativeSrc":"1856:2:64","nodeType":"YulLiteral","src":"1856:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:64","nodeType":"YulIdentifier","src":"1841:3:64"},"nativeSrc":"1841:18:64","nodeType":"YulFunctionCall","src":"1841:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:64","nodeType":"YulIdentifier","src":"1833:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:64","nodeType":"YulIdentifier","src":"1913:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:64","nodeType":"YulIdentifier","src":"1926:9:64"},{"kind":"number","nativeSrc":"1937:1:64","nodeType":"YulLiteral","src":"1937:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:64","nodeType":"YulIdentifier","src":"1922:3:64"},"nativeSrc":"1922:17:64","nodeType":"YulFunctionCall","src":"1922:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:64","nodeType":"YulIdentifier","src":"1869:43:64"},"nativeSrc":"1869:71:64","nodeType":"YulFunctionCall","src":"1869:71:64"},"nativeSrc":"1869:71:64","nodeType":"YulExpressionStatement","src":"1869:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:64","nodeType":"YulTypedName","src":"1795:9:64","type":""},{"name":"value0","nativeSrc":"1807:6:64","nodeType":"YulTypedName","src":"1807:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:64","nodeType":"YulTypedName","src":"1818:4:64","type":""}],"src":"1725:222:64"},{"body":{"nativeSrc":"2016:52:64","nodeType":"YulBlock","src":"2016:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2033:3:64","nodeType":"YulIdentifier","src":"2033:3:64"},{"arguments":[{"name":"value","nativeSrc":"2055:5:64","nodeType":"YulIdentifier","src":"2055:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2038:16:64","nodeType":"YulIdentifier","src":"2038:16:64"},"nativeSrc":"2038:23:64","nodeType":"YulFunctionCall","src":"2038:23:64"}],"functionName":{"name":"mstore","nativeSrc":"2026:6:64","nodeType":"YulIdentifier","src":"2026:6:64"},"nativeSrc":"2026:36:64","nodeType":"YulFunctionCall","src":"2026:36:64"},"nativeSrc":"2026:36:64","nodeType":"YulExpressionStatement","src":"2026:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"1953:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2004:5:64","nodeType":"YulTypedName","src":"2004:5:64","type":""},{"name":"pos","nativeSrc":"2011:3:64","nodeType":"YulTypedName","src":"2011:3:64","type":""}],"src":"1953:115:64"},{"body":{"nativeSrc":"2170:122:64","nodeType":"YulBlock","src":"2170:122:64","statements":[{"nativeSrc":"2180:26:64","nodeType":"YulAssignment","src":"2180:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2192:9:64","nodeType":"YulIdentifier","src":"2192:9:64"},{"kind":"number","nativeSrc":"2203:2:64","nodeType":"YulLiteral","src":"2203:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2188:3:64","nodeType":"YulIdentifier","src":"2188:3:64"},"nativeSrc":"2188:18:64","nodeType":"YulFunctionCall","src":"2188:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2180:4:64","nodeType":"YulIdentifier","src":"2180:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2258:6:64","nodeType":"YulIdentifier","src":"2258:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2271:9:64","nodeType":"YulIdentifier","src":"2271:9:64"},{"kind":"number","nativeSrc":"2282:1:64","nodeType":"YulLiteral","src":"2282:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2267:3:64","nodeType":"YulIdentifier","src":"2267:3:64"},"nativeSrc":"2267:17:64","nodeType":"YulFunctionCall","src":"2267:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"2216:41:64","nodeType":"YulIdentifier","src":"2216:41:64"},"nativeSrc":"2216:69:64","nodeType":"YulFunctionCall","src":"2216:69:64"},"nativeSrc":"2216:69:64","nodeType":"YulExpressionStatement","src":"2216:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"2074:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2142:9:64","nodeType":"YulTypedName","src":"2142:9:64","type":""},{"name":"value0","nativeSrc":"2154:6:64","nodeType":"YulTypedName","src":"2154:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2165:4:64","nodeType":"YulTypedName","src":"2165:4:64","type":""}],"src":"2074:218:64"},{"body":{"nativeSrc":"2343:81:64","nodeType":"YulBlock","src":"2343:81:64","statements":[{"nativeSrc":"2353:65:64","nodeType":"YulAssignment","src":"2353:65:64","value":{"arguments":[{"name":"value","nativeSrc":"2368:5:64","nodeType":"YulIdentifier","src":"2368:5:64"},{"kind":"number","nativeSrc":"2375:42:64","nodeType":"YulLiteral","src":"2375:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2364:3:64","nodeType":"YulIdentifier","src":"2364:3:64"},"nativeSrc":"2364:54:64","nodeType":"YulFunctionCall","src":"2364:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2353:7:64","nodeType":"YulIdentifier","src":"2353:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2298:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2325:5:64","nodeType":"YulTypedName","src":"2325:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2335:7:64","nodeType":"YulTypedName","src":"2335:7:64","type":""}],"src":"2298:126:64"},{"body":{"nativeSrc":"2475:51:64","nodeType":"YulBlock","src":"2475:51:64","statements":[{"nativeSrc":"2485:35:64","nodeType":"YulAssignment","src":"2485:35:64","value":{"arguments":[{"name":"value","nativeSrc":"2514:5:64","nodeType":"YulIdentifier","src":"2514:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2496:17:64","nodeType":"YulIdentifier","src":"2496:17:64"},"nativeSrc":"2496:24:64","nodeType":"YulFunctionCall","src":"2496:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2485:7:64","nodeType":"YulIdentifier","src":"2485:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"2430:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2457:5:64","nodeType":"YulTypedName","src":"2457:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2467:7:64","nodeType":"YulTypedName","src":"2467:7:64","type":""}],"src":"2430:96:64"},{"body":{"nativeSrc":"2597:53:64","nodeType":"YulBlock","src":"2597:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2614:3:64","nodeType":"YulIdentifier","src":"2614:3:64"},{"arguments":[{"name":"value","nativeSrc":"2637:5:64","nodeType":"YulIdentifier","src":"2637:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2619:17:64","nodeType":"YulIdentifier","src":"2619:17:64"},"nativeSrc":"2619:24:64","nodeType":"YulFunctionCall","src":"2619:24:64"}],"functionName":{"name":"mstore","nativeSrc":"2607:6:64","nodeType":"YulIdentifier","src":"2607:6:64"},"nativeSrc":"2607:37:64","nodeType":"YulFunctionCall","src":"2607:37:64"},"nativeSrc":"2607:37:64","nodeType":"YulExpressionStatement","src":"2607:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2532:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2585:5:64","nodeType":"YulTypedName","src":"2585:5:64","type":""},{"name":"pos","nativeSrc":"2592:3:64","nodeType":"YulTypedName","src":"2592:3:64","type":""}],"src":"2532:118:64"},{"body":{"nativeSrc":"2754:124:64","nodeType":"YulBlock","src":"2754:124:64","statements":[{"nativeSrc":"2764:26:64","nodeType":"YulAssignment","src":"2764:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2776:9:64","nodeType":"YulIdentifier","src":"2776:9:64"},{"kind":"number","nativeSrc":"2787:2:64","nodeType":"YulLiteral","src":"2787:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2772:3:64","nodeType":"YulIdentifier","src":"2772:3:64"},"nativeSrc":"2772:18:64","nodeType":"YulFunctionCall","src":"2772:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2764:4:64","nodeType":"YulIdentifier","src":"2764:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2844:6:64","nodeType":"YulIdentifier","src":"2844:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2857:9:64","nodeType":"YulIdentifier","src":"2857:9:64"},{"kind":"number","nativeSrc":"2868:1:64","nodeType":"YulLiteral","src":"2868:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2853:3:64","nodeType":"YulIdentifier","src":"2853:3:64"},"nativeSrc":"2853:17:64","nodeType":"YulFunctionCall","src":"2853:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2800:43:64","nodeType":"YulIdentifier","src":"2800:43:64"},"nativeSrc":"2800:71:64","nodeType":"YulFunctionCall","src":"2800:71:64"},"nativeSrc":"2800:71:64","nodeType":"YulExpressionStatement","src":"2800:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2656:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2726:9:64","nodeType":"YulTypedName","src":"2726:9:64","type":""},{"name":"value0","nativeSrc":"2738:6:64","nodeType":"YulTypedName","src":"2738:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2749:4:64","nodeType":"YulTypedName","src":"2749:4:64","type":""}],"src":"2656:222:64"},{"body":{"nativeSrc":"2973:28:64","nodeType":"YulBlock","src":"2973:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2990:1:64","nodeType":"YulLiteral","src":"2990:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2993:1:64","nodeType":"YulLiteral","src":"2993:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2983:6:64","nodeType":"YulIdentifier","src":"2983:6:64"},"nativeSrc":"2983:12:64","nodeType":"YulFunctionCall","src":"2983:12:64"},"nativeSrc":"2983:12:64","nodeType":"YulExpressionStatement","src":"2983:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2884:117:64","nodeType":"YulFunctionDefinition","src":"2884:117:64"},{"body":{"nativeSrc":"3096:28:64","nodeType":"YulBlock","src":"3096:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3113:1:64","nodeType":"YulLiteral","src":"3113:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3116:1:64","nodeType":"YulLiteral","src":"3116:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3106:6:64","nodeType":"YulIdentifier","src":"3106:6:64"},"nativeSrc":"3106:12:64","nodeType":"YulFunctionCall","src":"3106:12:64"},"nativeSrc":"3106:12:64","nodeType":"YulExpressionStatement","src":"3106:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3007:117:64","nodeType":"YulFunctionDefinition","src":"3007:117:64"},{"body":{"nativeSrc":"3219:28:64","nodeType":"YulBlock","src":"3219:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3236:1:64","nodeType":"YulLiteral","src":"3236:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3239:1:64","nodeType":"YulLiteral","src":"3239:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3229:6:64","nodeType":"YulIdentifier","src":"3229:6:64"},"nativeSrc":"3229:12:64","nodeType":"YulFunctionCall","src":"3229:12:64"},"nativeSrc":"3229:12:64","nodeType":"YulExpressionStatement","src":"3229:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3130:117:64","nodeType":"YulFunctionDefinition","src":"3130:117:64"},{"body":{"nativeSrc":"3340:478:64","nodeType":"YulBlock","src":"3340:478:64","statements":[{"body":{"nativeSrc":"3389:83:64","nodeType":"YulBlock","src":"3389:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3391:77:64","nodeType":"YulIdentifier","src":"3391:77:64"},"nativeSrc":"3391:79:64","nodeType":"YulFunctionCall","src":"3391:79:64"},"nativeSrc":"3391:79:64","nodeType":"YulExpressionStatement","src":"3391:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3368:6:64","nodeType":"YulIdentifier","src":"3368:6:64"},{"kind":"number","nativeSrc":"3376:4:64","nodeType":"YulLiteral","src":"3376:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3364:3:64","nodeType":"YulIdentifier","src":"3364:3:64"},"nativeSrc":"3364:17:64","nodeType":"YulFunctionCall","src":"3364:17:64"},{"name":"end","nativeSrc":"3383:3:64","nodeType":"YulIdentifier","src":"3383:3:64"}],"functionName":{"name":"slt","nativeSrc":"3360:3:64","nodeType":"YulIdentifier","src":"3360:3:64"},"nativeSrc":"3360:27:64","nodeType":"YulFunctionCall","src":"3360:27:64"}],"functionName":{"name":"iszero","nativeSrc":"3353:6:64","nodeType":"YulIdentifier","src":"3353:6:64"},"nativeSrc":"3353:35:64","nodeType":"YulFunctionCall","src":"3353:35:64"},"nativeSrc":"3350:122:64","nodeType":"YulIf","src":"3350:122:64"},{"nativeSrc":"3481:30:64","nodeType":"YulAssignment","src":"3481:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"3504:6:64","nodeType":"YulIdentifier","src":"3504:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"3491:12:64","nodeType":"YulIdentifier","src":"3491:12:64"},"nativeSrc":"3491:20:64","nodeType":"YulFunctionCall","src":"3491:20:64"},"variableNames":[{"name":"length","nativeSrc":"3481:6:64","nodeType":"YulIdentifier","src":"3481:6:64"}]},{"body":{"nativeSrc":"3554:83:64","nodeType":"YulBlock","src":"3554:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3556:77:64","nodeType":"YulIdentifier","src":"3556:77:64"},"nativeSrc":"3556:79:64","nodeType":"YulFunctionCall","src":"3556:79:64"},"nativeSrc":"3556:79:64","nodeType":"YulExpressionStatement","src":"3556:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3526:6:64","nodeType":"YulIdentifier","src":"3526:6:64"},{"kind":"number","nativeSrc":"3534:18:64","nodeType":"YulLiteral","src":"3534:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3523:2:64","nodeType":"YulIdentifier","src":"3523:2:64"},"nativeSrc":"3523:30:64","nodeType":"YulFunctionCall","src":"3523:30:64"},"nativeSrc":"3520:117:64","nodeType":"YulIf","src":"3520:117:64"},{"nativeSrc":"3646:29:64","nodeType":"YulAssignment","src":"3646:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"3662:6:64","nodeType":"YulIdentifier","src":"3662:6:64"},{"kind":"number","nativeSrc":"3670:4:64","nodeType":"YulLiteral","src":"3670:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3658:3:64","nodeType":"YulIdentifier","src":"3658:3:64"},"nativeSrc":"3658:17:64","nodeType":"YulFunctionCall","src":"3658:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"3646:8:64","nodeType":"YulIdentifier","src":"3646:8:64"}]},{"body":{"nativeSrc":"3729:83:64","nodeType":"YulBlock","src":"3729:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3731:77:64","nodeType":"YulIdentifier","src":"3731:77:64"},"nativeSrc":"3731:79:64","nodeType":"YulFunctionCall","src":"3731:79:64"},"nativeSrc":"3731:79:64","nodeType":"YulExpressionStatement","src":"3731:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3694:8:64","nodeType":"YulIdentifier","src":"3694:8:64"},{"arguments":[{"name":"length","nativeSrc":"3708:6:64","nodeType":"YulIdentifier","src":"3708:6:64"},{"kind":"number","nativeSrc":"3716:4:64","nodeType":"YulLiteral","src":"3716:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3704:3:64","nodeType":"YulIdentifier","src":"3704:3:64"},"nativeSrc":"3704:17:64","nodeType":"YulFunctionCall","src":"3704:17:64"}],"functionName":{"name":"add","nativeSrc":"3690:3:64","nodeType":"YulIdentifier","src":"3690:3:64"},"nativeSrc":"3690:32:64","nodeType":"YulFunctionCall","src":"3690:32:64"},{"name":"end","nativeSrc":"3724:3:64","nodeType":"YulIdentifier","src":"3724:3:64"}],"functionName":{"name":"gt","nativeSrc":"3687:2:64","nodeType":"YulIdentifier","src":"3687:2:64"},"nativeSrc":"3687:41:64","nodeType":"YulFunctionCall","src":"3687:41:64"},"nativeSrc":"3684:128:64","nodeType":"YulIf","src":"3684:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3266:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3307:6:64","nodeType":"YulTypedName","src":"3307:6:64","type":""},{"name":"end","nativeSrc":"3315:3:64","nodeType":"YulTypedName","src":"3315:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3323:8:64","nodeType":"YulTypedName","src":"3323:8:64","type":""},{"name":"length","nativeSrc":"3333:6:64","nodeType":"YulTypedName","src":"3333:6:64","type":""}],"src":"3266:552:64"},{"body":{"nativeSrc":"3909:442:64","nodeType":"YulBlock","src":"3909:442:64","statements":[{"body":{"nativeSrc":"3955:83:64","nodeType":"YulBlock","src":"3955:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3957:77:64","nodeType":"YulIdentifier","src":"3957:77:64"},"nativeSrc":"3957:79:64","nodeType":"YulFunctionCall","src":"3957:79:64"},"nativeSrc":"3957:79:64","nodeType":"YulExpressionStatement","src":"3957:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3930:7:64","nodeType":"YulIdentifier","src":"3930:7:64"},{"name":"headStart","nativeSrc":"3939:9:64","nodeType":"YulIdentifier","src":"3939:9:64"}],"functionName":{"name":"sub","nativeSrc":"3926:3:64","nodeType":"YulIdentifier","src":"3926:3:64"},"nativeSrc":"3926:23:64","nodeType":"YulFunctionCall","src":"3926:23:64"},{"kind":"number","nativeSrc":"3951:2:64","nodeType":"YulLiteral","src":"3951:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3922:3:64","nodeType":"YulIdentifier","src":"3922:3:64"},"nativeSrc":"3922:32:64","nodeType":"YulFunctionCall","src":"3922:32:64"},"nativeSrc":"3919:119:64","nodeType":"YulIf","src":"3919:119:64"},{"nativeSrc":"4048:296:64","nodeType":"YulBlock","src":"4048:296:64","statements":[{"nativeSrc":"4063:45:64","nodeType":"YulVariableDeclaration","src":"4063:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4094:9:64","nodeType":"YulIdentifier","src":"4094:9:64"},{"kind":"number","nativeSrc":"4105:1:64","nodeType":"YulLiteral","src":"4105:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4090:3:64","nodeType":"YulIdentifier","src":"4090:3:64"},"nativeSrc":"4090:17:64","nodeType":"YulFunctionCall","src":"4090:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"4077:12:64","nodeType":"YulIdentifier","src":"4077:12:64"},"nativeSrc":"4077:31:64","nodeType":"YulFunctionCall","src":"4077:31:64"},"variables":[{"name":"offset","nativeSrc":"4067:6:64","nodeType":"YulTypedName","src":"4067:6:64","type":""}]},{"body":{"nativeSrc":"4155:83:64","nodeType":"YulBlock","src":"4155:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4157:77:64","nodeType":"YulIdentifier","src":"4157:77:64"},"nativeSrc":"4157:79:64","nodeType":"YulFunctionCall","src":"4157:79:64"},"nativeSrc":"4157:79:64","nodeType":"YulExpressionStatement","src":"4157:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4127:6:64","nodeType":"YulIdentifier","src":"4127:6:64"},{"kind":"number","nativeSrc":"4135:18:64","nodeType":"YulLiteral","src":"4135:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4124:2:64","nodeType":"YulIdentifier","src":"4124:2:64"},"nativeSrc":"4124:30:64","nodeType":"YulFunctionCall","src":"4124:30:64"},"nativeSrc":"4121:117:64","nodeType":"YulIf","src":"4121:117:64"},{"nativeSrc":"4252:82:64","nodeType":"YulAssignment","src":"4252:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4306:9:64","nodeType":"YulIdentifier","src":"4306:9:64"},{"name":"offset","nativeSrc":"4317:6:64","nodeType":"YulIdentifier","src":"4317:6:64"}],"functionName":{"name":"add","nativeSrc":"4302:3:64","nodeType":"YulIdentifier","src":"4302:3:64"},"nativeSrc":"4302:22:64","nodeType":"YulFunctionCall","src":"4302:22:64"},{"name":"dataEnd","nativeSrc":"4326:7:64","nodeType":"YulIdentifier","src":"4326:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4270:31:64","nodeType":"YulIdentifier","src":"4270:31:64"},"nativeSrc":"4270:64:64","nodeType":"YulFunctionCall","src":"4270:64:64"},"variableNames":[{"name":"value0","nativeSrc":"4252:6:64","nodeType":"YulIdentifier","src":"4252:6:64"},{"name":"value1","nativeSrc":"4260:6:64","nodeType":"YulIdentifier","src":"4260:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3824:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3871:9:64","nodeType":"YulTypedName","src":"3871:9:64","type":""},{"name":"dataEnd","nativeSrc":"3882:7:64","nodeType":"YulTypedName","src":"3882:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3894:6:64","nodeType":"YulTypedName","src":"3894:6:64","type":""},{"name":"value1","nativeSrc":"3902:6:64","nodeType":"YulTypedName","src":"3902:6:64","type":""}],"src":"3824:527:64"},{"body":{"nativeSrc":"4415:40:64","nodeType":"YulBlock","src":"4415:40:64","statements":[{"nativeSrc":"4426:22:64","nodeType":"YulAssignment","src":"4426:22:64","value":{"arguments":[{"name":"value","nativeSrc":"4442:5:64","nodeType":"YulIdentifier","src":"4442:5:64"}],"functionName":{"name":"mload","nativeSrc":"4436:5:64","nodeType":"YulIdentifier","src":"4436:5:64"},"nativeSrc":"4436:12:64","nodeType":"YulFunctionCall","src":"4436:12:64"},"variableNames":[{"name":"length","nativeSrc":"4426:6:64","nodeType":"YulIdentifier","src":"4426:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4357:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4398:5:64","nodeType":"YulTypedName","src":"4398:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4408:6:64","nodeType":"YulTypedName","src":"4408:6:64","type":""}],"src":"4357:98:64"},{"body":{"nativeSrc":"4556:73:64","nodeType":"YulBlock","src":"4556:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4573:3:64","nodeType":"YulIdentifier","src":"4573:3:64"},{"name":"length","nativeSrc":"4578:6:64","nodeType":"YulIdentifier","src":"4578:6:64"}],"functionName":{"name":"mstore","nativeSrc":"4566:6:64","nodeType":"YulIdentifier","src":"4566:6:64"},"nativeSrc":"4566:19:64","nodeType":"YulFunctionCall","src":"4566:19:64"},"nativeSrc":"4566:19:64","nodeType":"YulExpressionStatement","src":"4566:19:64"},{"nativeSrc":"4594:29:64","nodeType":"YulAssignment","src":"4594:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"4613:3:64","nodeType":"YulIdentifier","src":"4613:3:64"},{"kind":"number","nativeSrc":"4618:4:64","nodeType":"YulLiteral","src":"4618:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4609:3:64","nodeType":"YulIdentifier","src":"4609:3:64"},"nativeSrc":"4609:14:64","nodeType":"YulFunctionCall","src":"4609:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"4594:11:64","nodeType":"YulIdentifier","src":"4594:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4461:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4528:3:64","nodeType":"YulTypedName","src":"4528:3:64","type":""},{"name":"length","nativeSrc":"4533:6:64","nodeType":"YulTypedName","src":"4533:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4544:11:64","nodeType":"YulTypedName","src":"4544:11:64","type":""}],"src":"4461:168:64"},{"body":{"nativeSrc":"4697:77:64","nodeType":"YulBlock","src":"4697:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4714:3:64","nodeType":"YulIdentifier","src":"4714:3:64"},{"name":"src","nativeSrc":"4719:3:64","nodeType":"YulIdentifier","src":"4719:3:64"},{"name":"length","nativeSrc":"4724:6:64","nodeType":"YulIdentifier","src":"4724:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"4708:5:64","nodeType":"YulIdentifier","src":"4708:5:64"},"nativeSrc":"4708:23:64","nodeType":"YulFunctionCall","src":"4708:23:64"},"nativeSrc":"4708:23:64","nodeType":"YulExpressionStatement","src":"4708:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4751:3:64","nodeType":"YulIdentifier","src":"4751:3:64"},{"name":"length","nativeSrc":"4756:6:64","nodeType":"YulIdentifier","src":"4756:6:64"}],"functionName":{"name":"add","nativeSrc":"4747:3:64","nodeType":"YulIdentifier","src":"4747:3:64"},"nativeSrc":"4747:16:64","nodeType":"YulFunctionCall","src":"4747:16:64"},{"kind":"number","nativeSrc":"4765:1:64","nodeType":"YulLiteral","src":"4765:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4740:6:64","nodeType":"YulIdentifier","src":"4740:6:64"},"nativeSrc":"4740:27:64","nodeType":"YulFunctionCall","src":"4740:27:64"},"nativeSrc":"4740:27:64","nodeType":"YulExpressionStatement","src":"4740:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4635:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4679:3:64","nodeType":"YulTypedName","src":"4679:3:64","type":""},{"name":"dst","nativeSrc":"4684:3:64","nodeType":"YulTypedName","src":"4684:3:64","type":""},{"name":"length","nativeSrc":"4689:6:64","nodeType":"YulTypedName","src":"4689:6:64","type":""}],"src":"4635:139:64"},{"body":{"nativeSrc":"4828:54:64","nodeType":"YulBlock","src":"4828:54:64","statements":[{"nativeSrc":"4838:38:64","nodeType":"YulAssignment","src":"4838:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4856:5:64","nodeType":"YulIdentifier","src":"4856:5:64"},{"kind":"number","nativeSrc":"4863:2:64","nodeType":"YulLiteral","src":"4863:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4852:3:64","nodeType":"YulIdentifier","src":"4852:3:64"},"nativeSrc":"4852:14:64","nodeType":"YulFunctionCall","src":"4852:14:64"},{"arguments":[{"kind":"number","nativeSrc":"4872:2:64","nodeType":"YulLiteral","src":"4872:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4868:3:64","nodeType":"YulIdentifier","src":"4868:3:64"},"nativeSrc":"4868:7:64","nodeType":"YulFunctionCall","src":"4868:7:64"}],"functionName":{"name":"and","nativeSrc":"4848:3:64","nodeType":"YulIdentifier","src":"4848:3:64"},"nativeSrc":"4848:28:64","nodeType":"YulFunctionCall","src":"4848:28:64"},"variableNames":[{"name":"result","nativeSrc":"4838:6:64","nodeType":"YulIdentifier","src":"4838:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4780:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4811:5:64","nodeType":"YulTypedName","src":"4811:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4821:6:64","nodeType":"YulTypedName","src":"4821:6:64","type":""}],"src":"4780:102:64"},{"body":{"nativeSrc":"4978:283:64","nodeType":"YulBlock","src":"4978:283:64","statements":[{"nativeSrc":"4988:52:64","nodeType":"YulVariableDeclaration","src":"4988:52:64","value":{"arguments":[{"name":"value","nativeSrc":"5034:5:64","nodeType":"YulIdentifier","src":"5034:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5002:31:64","nodeType":"YulIdentifier","src":"5002:31:64"},"nativeSrc":"5002:38:64","nodeType":"YulFunctionCall","src":"5002:38:64"},"variables":[{"name":"length","nativeSrc":"4992:6:64","nodeType":"YulTypedName","src":"4992:6:64","type":""}]},{"nativeSrc":"5049:77:64","nodeType":"YulAssignment","src":"5049:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"5114:3:64","nodeType":"YulIdentifier","src":"5114:3:64"},{"name":"length","nativeSrc":"5119:6:64","nodeType":"YulIdentifier","src":"5119:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"5056:57:64","nodeType":"YulIdentifier","src":"5056:57:64"},"nativeSrc":"5056:70:64","nodeType":"YulFunctionCall","src":"5056:70:64"},"variableNames":[{"name":"pos","nativeSrc":"5049:3:64","nodeType":"YulIdentifier","src":"5049:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5174:5:64","nodeType":"YulIdentifier","src":"5174:5:64"},{"kind":"number","nativeSrc":"5181:4:64","nodeType":"YulLiteral","src":"5181:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5170:3:64","nodeType":"YulIdentifier","src":"5170:3:64"},"nativeSrc":"5170:16:64","nodeType":"YulFunctionCall","src":"5170:16:64"},{"name":"pos","nativeSrc":"5188:3:64","nodeType":"YulIdentifier","src":"5188:3:64"},{"name":"length","nativeSrc":"5193:6:64","nodeType":"YulIdentifier","src":"5193:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5135:34:64","nodeType":"YulIdentifier","src":"5135:34:64"},"nativeSrc":"5135:65:64","nodeType":"YulFunctionCall","src":"5135:65:64"},"nativeSrc":"5135:65:64","nodeType":"YulExpressionStatement","src":"5135:65:64"},{"nativeSrc":"5209:46:64","nodeType":"YulAssignment","src":"5209:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"5220:3:64","nodeType":"YulIdentifier","src":"5220:3:64"},{"arguments":[{"name":"length","nativeSrc":"5247:6:64","nodeType":"YulIdentifier","src":"5247:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5225:21:64","nodeType":"YulIdentifier","src":"5225:21:64"},"nativeSrc":"5225:29:64","nodeType":"YulFunctionCall","src":"5225:29:64"}],"functionName":{"name":"add","nativeSrc":"5216:3:64","nodeType":"YulIdentifier","src":"5216:3:64"},"nativeSrc":"5216:39:64","nodeType":"YulFunctionCall","src":"5216:39:64"},"variableNames":[{"name":"end","nativeSrc":"5209:3:64","nodeType":"YulIdentifier","src":"5209:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4888:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4959:5:64","nodeType":"YulTypedName","src":"4959:5:64","type":""},{"name":"pos","nativeSrc":"4966:3:64","nodeType":"YulTypedName","src":"4966:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4974:3:64","nodeType":"YulTypedName","src":"4974:3:64","type":""}],"src":"4888:373:64"},{"body":{"nativeSrc":"5383:193:64","nodeType":"YulBlock","src":"5383:193:64","statements":[{"nativeSrc":"5393:26:64","nodeType":"YulAssignment","src":"5393:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5405:9:64","nodeType":"YulIdentifier","src":"5405:9:64"},{"kind":"number","nativeSrc":"5416:2:64","nodeType":"YulLiteral","src":"5416:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5401:3:64","nodeType":"YulIdentifier","src":"5401:3:64"},"nativeSrc":"5401:18:64","nodeType":"YulFunctionCall","src":"5401:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5393:4:64","nodeType":"YulIdentifier","src":"5393:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5440:9:64","nodeType":"YulIdentifier","src":"5440:9:64"},{"kind":"number","nativeSrc":"5451:1:64","nodeType":"YulLiteral","src":"5451:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5436:3:64","nodeType":"YulIdentifier","src":"5436:3:64"},"nativeSrc":"5436:17:64","nodeType":"YulFunctionCall","src":"5436:17:64"},{"arguments":[{"name":"tail","nativeSrc":"5459:4:64","nodeType":"YulIdentifier","src":"5459:4:64"},{"name":"headStart","nativeSrc":"5465:9:64","nodeType":"YulIdentifier","src":"5465:9:64"}],"functionName":{"name":"sub","nativeSrc":"5455:3:64","nodeType":"YulIdentifier","src":"5455:3:64"},"nativeSrc":"5455:20:64","nodeType":"YulFunctionCall","src":"5455:20:64"}],"functionName":{"name":"mstore","nativeSrc":"5429:6:64","nodeType":"YulIdentifier","src":"5429:6:64"},"nativeSrc":"5429:47:64","nodeType":"YulFunctionCall","src":"5429:47:64"},"nativeSrc":"5429:47:64","nodeType":"YulExpressionStatement","src":"5429:47:64"},{"nativeSrc":"5485:84:64","nodeType":"YulAssignment","src":"5485:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"5555:6:64","nodeType":"YulIdentifier","src":"5555:6:64"},{"name":"tail","nativeSrc":"5564:4:64","nodeType":"YulIdentifier","src":"5564:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5493:61:64","nodeType":"YulIdentifier","src":"5493:61:64"},"nativeSrc":"5493:76:64","nodeType":"YulFunctionCall","src":"5493:76:64"},"variableNames":[{"name":"tail","nativeSrc":"5485:4:64","nodeType":"YulIdentifier","src":"5485:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5267:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5355:9:64","nodeType":"YulTypedName","src":"5355:9:64","type":""},{"name":"value0","nativeSrc":"5367:6:64","nodeType":"YulTypedName","src":"5367:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5378:4:64","nodeType":"YulTypedName","src":"5378:4:64","type":""}],"src":"5267:309:64"},{"body":{"nativeSrc":"5764:371:64","nodeType":"YulBlock","src":"5764:371:64","statements":[{"nativeSrc":"5774:27:64","nodeType":"YulAssignment","src":"5774:27:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5786:9:64","nodeType":"YulIdentifier","src":"5786:9:64"},{"kind":"number","nativeSrc":"5797:3:64","nodeType":"YulLiteral","src":"5797:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"5782:3:64","nodeType":"YulIdentifier","src":"5782:3:64"},"nativeSrc":"5782:19:64","nodeType":"YulFunctionCall","src":"5782:19:64"},"variableNames":[{"name":"tail","nativeSrc":"5774:4:64","nodeType":"YulIdentifier","src":"5774:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5855:6:64","nodeType":"YulIdentifier","src":"5855:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"5868:9:64","nodeType":"YulIdentifier","src":"5868:9:64"},{"kind":"number","nativeSrc":"5879:1:64","nodeType":"YulLiteral","src":"5879:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5864:3:64","nodeType":"YulIdentifier","src":"5864:3:64"},"nativeSrc":"5864:17:64","nodeType":"YulFunctionCall","src":"5864:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5811:43:64","nodeType":"YulIdentifier","src":"5811:43:64"},"nativeSrc":"5811:71:64","nodeType":"YulFunctionCall","src":"5811:71:64"},"nativeSrc":"5811:71:64","nodeType":"YulExpressionStatement","src":"5811:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"5936:6:64","nodeType":"YulIdentifier","src":"5936:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"5949:9:64","nodeType":"YulIdentifier","src":"5949:9:64"},{"kind":"number","nativeSrc":"5960:2:64","nodeType":"YulLiteral","src":"5960:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5945:3:64","nodeType":"YulIdentifier","src":"5945:3:64"},"nativeSrc":"5945:18:64","nodeType":"YulFunctionCall","src":"5945:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5892:43:64","nodeType":"YulIdentifier","src":"5892:43:64"},"nativeSrc":"5892:72:64","nodeType":"YulFunctionCall","src":"5892:72:64"},"nativeSrc":"5892:72:64","nodeType":"YulExpressionStatement","src":"5892:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"6018:6:64","nodeType":"YulIdentifier","src":"6018:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6031:9:64","nodeType":"YulIdentifier","src":"6031:9:64"},{"kind":"number","nativeSrc":"6042:2:64","nodeType":"YulLiteral","src":"6042:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"6027:3:64","nodeType":"YulIdentifier","src":"6027:3:64"},"nativeSrc":"6027:18:64","nodeType":"YulFunctionCall","src":"6027:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5974:43:64","nodeType":"YulIdentifier","src":"5974:43:64"},"nativeSrc":"5974:72:64","nodeType":"YulFunctionCall","src":"5974:72:64"},"nativeSrc":"5974:72:64","nodeType":"YulExpressionStatement","src":"5974:72:64"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"6100:6:64","nodeType":"YulIdentifier","src":"6100:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6113:9:64","nodeType":"YulIdentifier","src":"6113:9:64"},{"kind":"number","nativeSrc":"6124:2:64","nodeType":"YulLiteral","src":"6124:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"6109:3:64","nodeType":"YulIdentifier","src":"6109:3:64"},"nativeSrc":"6109:18:64","nodeType":"YulFunctionCall","src":"6109:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6056:43:64","nodeType":"YulIdentifier","src":"6056:43:64"},"nativeSrc":"6056:72:64","nodeType":"YulFunctionCall","src":"6056:72:64"},"nativeSrc":"6056:72:64","nodeType":"YulExpressionStatement","src":"6056:72:64"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"5582:553:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5712:9:64","nodeType":"YulTypedName","src":"5712:9:64","type":""},{"name":"value3","nativeSrc":"5724:6:64","nodeType":"YulTypedName","src":"5724:6:64","type":""},{"name":"value2","nativeSrc":"5732:6:64","nodeType":"YulTypedName","src":"5732:6:64","type":""},{"name":"value1","nativeSrc":"5740:6:64","nodeType":"YulTypedName","src":"5740:6:64","type":""},{"name":"value0","nativeSrc":"5748:6:64","nodeType":"YulTypedName","src":"5748:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5759:4:64","nodeType":"YulTypedName","src":"5759:4:64","type":""}],"src":"5582:553:64"},{"body":{"nativeSrc":"6184:79:64","nodeType":"YulBlock","src":"6184:79:64","statements":[{"body":{"nativeSrc":"6241:16:64","nodeType":"YulBlock","src":"6241:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6250:1:64","nodeType":"YulLiteral","src":"6250:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6253:1:64","nodeType":"YulLiteral","src":"6253:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6243:6:64","nodeType":"YulIdentifier","src":"6243:6:64"},"nativeSrc":"6243:12:64","nodeType":"YulFunctionCall","src":"6243:12:64"},"nativeSrc":"6243:12:64","nodeType":"YulExpressionStatement","src":"6243:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6207:5:64","nodeType":"YulIdentifier","src":"6207:5:64"},{"arguments":[{"name":"value","nativeSrc":"6232:5:64","nodeType":"YulIdentifier","src":"6232:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6214:17:64","nodeType":"YulIdentifier","src":"6214:17:64"},"nativeSrc":"6214:24:64","nodeType":"YulFunctionCall","src":"6214:24:64"}],"functionName":{"name":"eq","nativeSrc":"6204:2:64","nodeType":"YulIdentifier","src":"6204:2:64"},"nativeSrc":"6204:35:64","nodeType":"YulFunctionCall","src":"6204:35:64"}],"functionName":{"name":"iszero","nativeSrc":"6197:6:64","nodeType":"YulIdentifier","src":"6197:6:64"},"nativeSrc":"6197:43:64","nodeType":"YulFunctionCall","src":"6197:43:64"},"nativeSrc":"6194:63:64","nodeType":"YulIf","src":"6194:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"6141:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6177:5:64","nodeType":"YulTypedName","src":"6177:5:64","type":""}],"src":"6141:122:64"},{"body":{"nativeSrc":"6321:87:64","nodeType":"YulBlock","src":"6321:87:64","statements":[{"nativeSrc":"6331:29:64","nodeType":"YulAssignment","src":"6331:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6353:6:64","nodeType":"YulIdentifier","src":"6353:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6340:12:64","nodeType":"YulIdentifier","src":"6340:12:64"},"nativeSrc":"6340:20:64","nodeType":"YulFunctionCall","src":"6340:20:64"},"variableNames":[{"name":"value","nativeSrc":"6331:5:64","nodeType":"YulIdentifier","src":"6331:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6396:5:64","nodeType":"YulIdentifier","src":"6396:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"6369:26:64","nodeType":"YulIdentifier","src":"6369:26:64"},"nativeSrc":"6369:33:64","nodeType":"YulFunctionCall","src":"6369:33:64"},"nativeSrc":"6369:33:64","nodeType":"YulExpressionStatement","src":"6369:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"6269:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6299:6:64","nodeType":"YulTypedName","src":"6299:6:64","type":""},{"name":"end","nativeSrc":"6307:3:64","nodeType":"YulTypedName","src":"6307:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6315:5:64","nodeType":"YulTypedName","src":"6315:5:64","type":""}],"src":"6269:139:64"},{"body":{"nativeSrc":"6480:263:64","nodeType":"YulBlock","src":"6480:263:64","statements":[{"body":{"nativeSrc":"6526:83:64","nodeType":"YulBlock","src":"6526:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6528:77:64","nodeType":"YulIdentifier","src":"6528:77:64"},"nativeSrc":"6528:79:64","nodeType":"YulFunctionCall","src":"6528:79:64"},"nativeSrc":"6528:79:64","nodeType":"YulExpressionStatement","src":"6528:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6501:7:64","nodeType":"YulIdentifier","src":"6501:7:64"},{"name":"headStart","nativeSrc":"6510:9:64","nodeType":"YulIdentifier","src":"6510:9:64"}],"functionName":{"name":"sub","nativeSrc":"6497:3:64","nodeType":"YulIdentifier","src":"6497:3:64"},"nativeSrc":"6497:23:64","nodeType":"YulFunctionCall","src":"6497:23:64"},{"kind":"number","nativeSrc":"6522:2:64","nodeType":"YulLiteral","src":"6522:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6493:3:64","nodeType":"YulIdentifier","src":"6493:3:64"},"nativeSrc":"6493:32:64","nodeType":"YulFunctionCall","src":"6493:32:64"},"nativeSrc":"6490:119:64","nodeType":"YulIf","src":"6490:119:64"},{"nativeSrc":"6619:117:64","nodeType":"YulBlock","src":"6619:117:64","statements":[{"nativeSrc":"6634:15:64","nodeType":"YulVariableDeclaration","src":"6634:15:64","value":{"kind":"number","nativeSrc":"6648:1:64","nodeType":"YulLiteral","src":"6648:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6638:6:64","nodeType":"YulTypedName","src":"6638:6:64","type":""}]},{"nativeSrc":"6663:63:64","nodeType":"YulAssignment","src":"6663:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6698:9:64","nodeType":"YulIdentifier","src":"6698:9:64"},{"name":"offset","nativeSrc":"6709:6:64","nodeType":"YulIdentifier","src":"6709:6:64"}],"functionName":{"name":"add","nativeSrc":"6694:3:64","nodeType":"YulIdentifier","src":"6694:3:64"},"nativeSrc":"6694:22:64","nodeType":"YulFunctionCall","src":"6694:22:64"},{"name":"dataEnd","nativeSrc":"6718:7:64","nodeType":"YulIdentifier","src":"6718:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6673:20:64","nodeType":"YulIdentifier","src":"6673:20:64"},"nativeSrc":"6673:53:64","nodeType":"YulFunctionCall","src":"6673:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6663:6:64","nodeType":"YulIdentifier","src":"6663:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"6414:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6450:9:64","nodeType":"YulTypedName","src":"6450:9:64","type":""},{"name":"dataEnd","nativeSrc":"6461:7:64","nodeType":"YulTypedName","src":"6461:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6473:6:64","nodeType":"YulTypedName","src":"6473:6:64","type":""}],"src":"6414:329:64"},{"body":{"nativeSrc":"6777:152:64","nodeType":"YulBlock","src":"6777:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6794:1:64","nodeType":"YulLiteral","src":"6794:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6797:77:64","nodeType":"YulLiteral","src":"6797:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6787:6:64","nodeType":"YulIdentifier","src":"6787:6:64"},"nativeSrc":"6787:88:64","nodeType":"YulFunctionCall","src":"6787:88:64"},"nativeSrc":"6787:88:64","nodeType":"YulExpressionStatement","src":"6787:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6891:1:64","nodeType":"YulLiteral","src":"6891:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"6894:4:64","nodeType":"YulLiteral","src":"6894:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"6884:6:64","nodeType":"YulIdentifier","src":"6884:6:64"},"nativeSrc":"6884:15:64","nodeType":"YulFunctionCall","src":"6884:15:64"},"nativeSrc":"6884:15:64","nodeType":"YulExpressionStatement","src":"6884:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6915:1:64","nodeType":"YulLiteral","src":"6915:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6918:4:64","nodeType":"YulLiteral","src":"6918:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6908:6:64","nodeType":"YulIdentifier","src":"6908:6:64"},"nativeSrc":"6908:15:64","nodeType":"YulFunctionCall","src":"6908:15:64"},"nativeSrc":"6908:15:64","nodeType":"YulExpressionStatement","src":"6908:15:64"}]},"name":"panic_error_0x11","nativeSrc":"6749:180:64","nodeType":"YulFunctionDefinition","src":"6749:180:64"},{"body":{"nativeSrc":"6980:149:64","nodeType":"YulBlock","src":"6980:149:64","statements":[{"nativeSrc":"6990:25:64","nodeType":"YulAssignment","src":"6990:25:64","value":{"arguments":[{"name":"x","nativeSrc":"7013:1:64","nodeType":"YulIdentifier","src":"7013:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6995:17:64","nodeType":"YulIdentifier","src":"6995:17:64"},"nativeSrc":"6995:20:64","nodeType":"YulFunctionCall","src":"6995:20:64"},"variableNames":[{"name":"x","nativeSrc":"6990:1:64","nodeType":"YulIdentifier","src":"6990:1:64"}]},{"nativeSrc":"7024:25:64","nodeType":"YulAssignment","src":"7024:25:64","value":{"arguments":[{"name":"y","nativeSrc":"7047:1:64","nodeType":"YulIdentifier","src":"7047:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7029:17:64","nodeType":"YulIdentifier","src":"7029:17:64"},"nativeSrc":"7029:20:64","nodeType":"YulFunctionCall","src":"7029:20:64"},"variableNames":[{"name":"y","nativeSrc":"7024:1:64","nodeType":"YulIdentifier","src":"7024:1:64"}]},{"nativeSrc":"7058:17:64","nodeType":"YulAssignment","src":"7058:17:64","value":{"arguments":[{"name":"x","nativeSrc":"7070:1:64","nodeType":"YulIdentifier","src":"7070:1:64"},{"name":"y","nativeSrc":"7073:1:64","nodeType":"YulIdentifier","src":"7073:1:64"}],"functionName":{"name":"sub","nativeSrc":"7066:3:64","nodeType":"YulIdentifier","src":"7066:3:64"},"nativeSrc":"7066:9:64","nodeType":"YulFunctionCall","src":"7066:9:64"},"variableNames":[{"name":"diff","nativeSrc":"7058:4:64","nodeType":"YulIdentifier","src":"7058:4:64"}]},{"body":{"nativeSrc":"7100:22:64","nodeType":"YulBlock","src":"7100:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7102:16:64","nodeType":"YulIdentifier","src":"7102:16:64"},"nativeSrc":"7102:18:64","nodeType":"YulFunctionCall","src":"7102:18:64"},"nativeSrc":"7102:18:64","nodeType":"YulExpressionStatement","src":"7102:18:64"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"7091:4:64","nodeType":"YulIdentifier","src":"7091:4:64"},{"name":"x","nativeSrc":"7097:1:64","nodeType":"YulIdentifier","src":"7097:1:64"}],"functionName":{"name":"gt","nativeSrc":"7088:2:64","nodeType":"YulIdentifier","src":"7088:2:64"},"nativeSrc":"7088:11:64","nodeType":"YulFunctionCall","src":"7088:11:64"},"nativeSrc":"7085:37:64","nodeType":"YulIf","src":"7085:37:64"}]},"name":"checked_sub_t_uint256","nativeSrc":"6935:194:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"6966:1:64","nodeType":"YulTypedName","src":"6966:1:64","type":""},{"name":"y","nativeSrc":"6969:1:64","nodeType":"YulTypedName","src":"6969:1:64","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"6975:4:64","nodeType":"YulTypedName","src":"6975:4:64","type":""}],"src":"6935:194:64"},{"body":{"nativeSrc":"7183:362:64","nodeType":"YulBlock","src":"7183:362:64","statements":[{"nativeSrc":"7193:25:64","nodeType":"YulAssignment","src":"7193:25:64","value":{"arguments":[{"name":"x","nativeSrc":"7216:1:64","nodeType":"YulIdentifier","src":"7216:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7198:17:64","nodeType":"YulIdentifier","src":"7198:17:64"},"nativeSrc":"7198:20:64","nodeType":"YulFunctionCall","src":"7198:20:64"},"variableNames":[{"name":"x","nativeSrc":"7193:1:64","nodeType":"YulIdentifier","src":"7193:1:64"}]},{"nativeSrc":"7227:25:64","nodeType":"YulAssignment","src":"7227:25:64","value":{"arguments":[{"name":"y","nativeSrc":"7250:1:64","nodeType":"YulIdentifier","src":"7250:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7232:17:64","nodeType":"YulIdentifier","src":"7232:17:64"},"nativeSrc":"7232:20:64","nodeType":"YulFunctionCall","src":"7232:20:64"},"variableNames":[{"name":"y","nativeSrc":"7227:1:64","nodeType":"YulIdentifier","src":"7227:1:64"}]},{"nativeSrc":"7261:28:64","nodeType":"YulVariableDeclaration","src":"7261:28:64","value":{"arguments":[{"name":"x","nativeSrc":"7284:1:64","nodeType":"YulIdentifier","src":"7284:1:64"},{"name":"y","nativeSrc":"7287:1:64","nodeType":"YulIdentifier","src":"7287:1:64"}],"functionName":{"name":"mul","nativeSrc":"7280:3:64","nodeType":"YulIdentifier","src":"7280:3:64"},"nativeSrc":"7280:9:64","nodeType":"YulFunctionCall","src":"7280:9:64"},"variables":[{"name":"product_raw","nativeSrc":"7265:11:64","nodeType":"YulTypedName","src":"7265:11:64","type":""}]},{"nativeSrc":"7298:41:64","nodeType":"YulAssignment","src":"7298:41:64","value":{"arguments":[{"name":"product_raw","nativeSrc":"7327:11:64","nodeType":"YulIdentifier","src":"7327:11:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7309:17:64","nodeType":"YulIdentifier","src":"7309:17:64"},"nativeSrc":"7309:30:64","nodeType":"YulFunctionCall","src":"7309:30:64"},"variableNames":[{"name":"product","nativeSrc":"7298:7:64","nodeType":"YulIdentifier","src":"7298:7:64"}]},{"body":{"nativeSrc":"7516:22:64","nodeType":"YulBlock","src":"7516:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"7518:16:64","nodeType":"YulIdentifier","src":"7518:16:64"},"nativeSrc":"7518:18:64","nodeType":"YulFunctionCall","src":"7518:18:64"},"nativeSrc":"7518:18:64","nodeType":"YulExpressionStatement","src":"7518:18:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"7449:1:64","nodeType":"YulIdentifier","src":"7449:1:64"}],"functionName":{"name":"iszero","nativeSrc":"7442:6:64","nodeType":"YulIdentifier","src":"7442:6:64"},"nativeSrc":"7442:9:64","nodeType":"YulFunctionCall","src":"7442:9:64"},{"arguments":[{"name":"y","nativeSrc":"7472:1:64","nodeType":"YulIdentifier","src":"7472:1:64"},{"arguments":[{"name":"product","nativeSrc":"7479:7:64","nodeType":"YulIdentifier","src":"7479:7:64"},{"name":"x","nativeSrc":"7488:1:64","nodeType":"YulIdentifier","src":"7488:1:64"}],"functionName":{"name":"div","nativeSrc":"7475:3:64","nodeType":"YulIdentifier","src":"7475:3:64"},"nativeSrc":"7475:15:64","nodeType":"YulFunctionCall","src":"7475:15:64"}],"functionName":{"name":"eq","nativeSrc":"7469:2:64","nodeType":"YulIdentifier","src":"7469:2:64"},"nativeSrc":"7469:22:64","nodeType":"YulFunctionCall","src":"7469:22:64"}],"functionName":{"name":"or","nativeSrc":"7422:2:64","nodeType":"YulIdentifier","src":"7422:2:64"},"nativeSrc":"7422:83:64","nodeType":"YulFunctionCall","src":"7422:83:64"}],"functionName":{"name":"iszero","nativeSrc":"7402:6:64","nodeType":"YulIdentifier","src":"7402:6:64"},"nativeSrc":"7402:113:64","nodeType":"YulFunctionCall","src":"7402:113:64"},"nativeSrc":"7399:139:64","nodeType":"YulIf","src":"7399:139:64"}]},"name":"checked_mul_t_uint256","nativeSrc":"7135:410:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7166:1:64","nodeType":"YulTypedName","src":"7166:1:64","type":""},{"name":"y","nativeSrc":"7169:1:64","nodeType":"YulTypedName","src":"7169:1:64","type":""}],"returnVariables":[{"name":"product","nativeSrc":"7175:7:64","nodeType":"YulTypedName","src":"7175:7:64","type":""}],"src":"7135:410:64"},{"body":{"nativeSrc":"7579:152:64","nodeType":"YulBlock","src":"7579:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7596:1:64","nodeType":"YulLiteral","src":"7596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7599:77:64","nodeType":"YulLiteral","src":"7599:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7589:6:64","nodeType":"YulIdentifier","src":"7589:6:64"},"nativeSrc":"7589:88:64","nodeType":"YulFunctionCall","src":"7589:88:64"},"nativeSrc":"7589:88:64","nodeType":"YulExpressionStatement","src":"7589:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7693:1:64","nodeType":"YulLiteral","src":"7693:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"7696:4:64","nodeType":"YulLiteral","src":"7696:4:64","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7686:6:64","nodeType":"YulIdentifier","src":"7686:6:64"},"nativeSrc":"7686:15:64","nodeType":"YulFunctionCall","src":"7686:15:64"},"nativeSrc":"7686:15:64","nodeType":"YulExpressionStatement","src":"7686:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7717:1:64","nodeType":"YulLiteral","src":"7717:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7720:4:64","nodeType":"YulLiteral","src":"7720:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7710:6:64","nodeType":"YulIdentifier","src":"7710:6:64"},"nativeSrc":"7710:15:64","nodeType":"YulFunctionCall","src":"7710:15:64"},"nativeSrc":"7710:15:64","nodeType":"YulExpressionStatement","src":"7710:15:64"}]},"name":"panic_error_0x12","nativeSrc":"7551:180:64","nodeType":"YulFunctionDefinition","src":"7551:180:64"},{"body":{"nativeSrc":"7779:143:64","nodeType":"YulBlock","src":"7779:143:64","statements":[{"nativeSrc":"7789:25:64","nodeType":"YulAssignment","src":"7789:25:64","value":{"arguments":[{"name":"x","nativeSrc":"7812:1:64","nodeType":"YulIdentifier","src":"7812:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7794:17:64","nodeType":"YulIdentifier","src":"7794:17:64"},"nativeSrc":"7794:20:64","nodeType":"YulFunctionCall","src":"7794:20:64"},"variableNames":[{"name":"x","nativeSrc":"7789:1:64","nodeType":"YulIdentifier","src":"7789:1:64"}]},{"nativeSrc":"7823:25:64","nodeType":"YulAssignment","src":"7823:25:64","value":{"arguments":[{"name":"y","nativeSrc":"7846:1:64","nodeType":"YulIdentifier","src":"7846:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7828:17:64","nodeType":"YulIdentifier","src":"7828:17:64"},"nativeSrc":"7828:20:64","nodeType":"YulFunctionCall","src":"7828:20:64"},"variableNames":[{"name":"y","nativeSrc":"7823:1:64","nodeType":"YulIdentifier","src":"7823:1:64"}]},{"body":{"nativeSrc":"7870:22:64","nodeType":"YulBlock","src":"7870:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"7872:16:64","nodeType":"YulIdentifier","src":"7872:16:64"},"nativeSrc":"7872:18:64","nodeType":"YulFunctionCall","src":"7872:18:64"},"nativeSrc":"7872:18:64","nodeType":"YulExpressionStatement","src":"7872:18:64"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"7867:1:64","nodeType":"YulIdentifier","src":"7867:1:64"}],"functionName":{"name":"iszero","nativeSrc":"7860:6:64","nodeType":"YulIdentifier","src":"7860:6:64"},"nativeSrc":"7860:9:64","nodeType":"YulFunctionCall","src":"7860:9:64"},"nativeSrc":"7857:35:64","nodeType":"YulIf","src":"7857:35:64"},{"nativeSrc":"7902:14:64","nodeType":"YulAssignment","src":"7902:14:64","value":{"arguments":[{"name":"x","nativeSrc":"7911:1:64","nodeType":"YulIdentifier","src":"7911:1:64"},{"name":"y","nativeSrc":"7914:1:64","nodeType":"YulIdentifier","src":"7914:1:64"}],"functionName":{"name":"div","nativeSrc":"7907:3:64","nodeType":"YulIdentifier","src":"7907:3:64"},"nativeSrc":"7907:9:64","nodeType":"YulFunctionCall","src":"7907:9:64"},"variableNames":[{"name":"r","nativeSrc":"7902:1:64","nodeType":"YulIdentifier","src":"7902:1:64"}]}]},"name":"checked_div_t_uint256","nativeSrc":"7737:185:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7768:1:64","nodeType":"YulTypedName","src":"7768:1:64","type":""},{"name":"y","nativeSrc":"7771:1:64","nodeType":"YulTypedName","src":"7771:1:64","type":""}],"returnVariables":[{"name":"r","nativeSrc":"7777:1:64","nodeType":"YulTypedName","src":"7777:1:64","type":""}],"src":"7737:185:64"},{"body":{"nativeSrc":"7972:147:64","nodeType":"YulBlock","src":"7972:147:64","statements":[{"nativeSrc":"7982:25:64","nodeType":"YulAssignment","src":"7982:25:64","value":{"arguments":[{"name":"x","nativeSrc":"8005:1:64","nodeType":"YulIdentifier","src":"8005:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7987:17:64","nodeType":"YulIdentifier","src":"7987:17:64"},"nativeSrc":"7987:20:64","nodeType":"YulFunctionCall","src":"7987:20:64"},"variableNames":[{"name":"x","nativeSrc":"7982:1:64","nodeType":"YulIdentifier","src":"7982:1:64"}]},{"nativeSrc":"8016:25:64","nodeType":"YulAssignment","src":"8016:25:64","value":{"arguments":[{"name":"y","nativeSrc":"8039:1:64","nodeType":"YulIdentifier","src":"8039:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8021:17:64","nodeType":"YulIdentifier","src":"8021:17:64"},"nativeSrc":"8021:20:64","nodeType":"YulFunctionCall","src":"8021:20:64"},"variableNames":[{"name":"y","nativeSrc":"8016:1:64","nodeType":"YulIdentifier","src":"8016:1:64"}]},{"nativeSrc":"8050:16:64","nodeType":"YulAssignment","src":"8050:16:64","value":{"arguments":[{"name":"x","nativeSrc":"8061:1:64","nodeType":"YulIdentifier","src":"8061:1:64"},{"name":"y","nativeSrc":"8064:1:64","nodeType":"YulIdentifier","src":"8064:1:64"}],"functionName":{"name":"add","nativeSrc":"8057:3:64","nodeType":"YulIdentifier","src":"8057:3:64"},"nativeSrc":"8057:9:64","nodeType":"YulFunctionCall","src":"8057:9:64"},"variableNames":[{"name":"sum","nativeSrc":"8050:3:64","nodeType":"YulIdentifier","src":"8050:3:64"}]},{"body":{"nativeSrc":"8090:22:64","nodeType":"YulBlock","src":"8090:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8092:16:64","nodeType":"YulIdentifier","src":"8092:16:64"},"nativeSrc":"8092:18:64","nodeType":"YulFunctionCall","src":"8092:18:64"},"nativeSrc":"8092:18:64","nodeType":"YulExpressionStatement","src":"8092:18:64"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"8082:1:64","nodeType":"YulIdentifier","src":"8082:1:64"},{"name":"sum","nativeSrc":"8085:3:64","nodeType":"YulIdentifier","src":"8085:3:64"}],"functionName":{"name":"gt","nativeSrc":"8079:2:64","nodeType":"YulIdentifier","src":"8079:2:64"},"nativeSrc":"8079:10:64","nodeType":"YulFunctionCall","src":"8079:10:64"},"nativeSrc":"8076:36:64","nodeType":"YulIf","src":"8076:36:64"}]},"name":"checked_add_t_uint256","nativeSrc":"7928:191:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"7959:1:64","nodeType":"YulTypedName","src":"7959:1:64","type":""},{"name":"y","nativeSrc":"7962:1:64","nodeType":"YulTypedName","src":"7962:1:64","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"7968:3:64","nodeType":"YulTypedName","src":"7968:3:64","type":""}],"src":"7928:191:64"},{"body":{"nativeSrc":"8214:28:64","nodeType":"YulBlock","src":"8214:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8231:1:64","nodeType":"YulLiteral","src":"8231:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8234:1:64","nodeType":"YulLiteral","src":"8234:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8224:6:64","nodeType":"YulIdentifier","src":"8224:6:64"},"nativeSrc":"8224:12:64","nodeType":"YulFunctionCall","src":"8224:12:64"},"nativeSrc":"8224:12:64","nodeType":"YulExpressionStatement","src":"8224:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8125:117:64","nodeType":"YulFunctionDefinition","src":"8125:117:64"},{"body":{"nativeSrc":"8276:152:64","nodeType":"YulBlock","src":"8276:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8293:1:64","nodeType":"YulLiteral","src":"8293:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8296:77:64","nodeType":"YulLiteral","src":"8296:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8286:6:64","nodeType":"YulIdentifier","src":"8286:6:64"},"nativeSrc":"8286:88:64","nodeType":"YulFunctionCall","src":"8286:88:64"},"nativeSrc":"8286:88:64","nodeType":"YulExpressionStatement","src":"8286:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8390:1:64","nodeType":"YulLiteral","src":"8390:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8393:4:64","nodeType":"YulLiteral","src":"8393:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8383:6:64","nodeType":"YulIdentifier","src":"8383:6:64"},"nativeSrc":"8383:15:64","nodeType":"YulFunctionCall","src":"8383:15:64"},"nativeSrc":"8383:15:64","nodeType":"YulExpressionStatement","src":"8383:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8414:1:64","nodeType":"YulLiteral","src":"8414:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8417:4:64","nodeType":"YulLiteral","src":"8417:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8407:6:64","nodeType":"YulIdentifier","src":"8407:6:64"},"nativeSrc":"8407:15:64","nodeType":"YulFunctionCall","src":"8407:15:64"},"nativeSrc":"8407:15:64","nodeType":"YulExpressionStatement","src":"8407:15:64"}]},"name":"panic_error_0x41","nativeSrc":"8248:180:64","nodeType":"YulFunctionDefinition","src":"8248:180:64"},{"body":{"nativeSrc":"8477:238:64","nodeType":"YulBlock","src":"8477:238:64","statements":[{"nativeSrc":"8487:58:64","nodeType":"YulVariableDeclaration","src":"8487:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"8509:6:64","nodeType":"YulIdentifier","src":"8509:6:64"},{"arguments":[{"name":"size","nativeSrc":"8539:4:64","nodeType":"YulIdentifier","src":"8539:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8517:21:64","nodeType":"YulIdentifier","src":"8517:21:64"},"nativeSrc":"8517:27:64","nodeType":"YulFunctionCall","src":"8517:27:64"}],"functionName":{"name":"add","nativeSrc":"8505:3:64","nodeType":"YulIdentifier","src":"8505:3:64"},"nativeSrc":"8505:40:64","nodeType":"YulFunctionCall","src":"8505:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"8491:10:64","nodeType":"YulTypedName","src":"8491:10:64","type":""}]},{"body":{"nativeSrc":"8656:22:64","nodeType":"YulBlock","src":"8656:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8658:16:64","nodeType":"YulIdentifier","src":"8658:16:64"},"nativeSrc":"8658:18:64","nodeType":"YulFunctionCall","src":"8658:18:64"},"nativeSrc":"8658:18:64","nodeType":"YulExpressionStatement","src":"8658:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8599:10:64","nodeType":"YulIdentifier","src":"8599:10:64"},{"kind":"number","nativeSrc":"8611:18:64","nodeType":"YulLiteral","src":"8611:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8596:2:64","nodeType":"YulIdentifier","src":"8596:2:64"},"nativeSrc":"8596:34:64","nodeType":"YulFunctionCall","src":"8596:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8635:10:64","nodeType":"YulIdentifier","src":"8635:10:64"},{"name":"memPtr","nativeSrc":"8647:6:64","nodeType":"YulIdentifier","src":"8647:6:64"}],"functionName":{"name":"lt","nativeSrc":"8632:2:64","nodeType":"YulIdentifier","src":"8632:2:64"},"nativeSrc":"8632:22:64","nodeType":"YulFunctionCall","src":"8632:22:64"}],"functionName":{"name":"or","nativeSrc":"8593:2:64","nodeType":"YulIdentifier","src":"8593:2:64"},"nativeSrc":"8593:62:64","nodeType":"YulFunctionCall","src":"8593:62:64"},"nativeSrc":"8590:88:64","nodeType":"YulIf","src":"8590:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8694:2:64","nodeType":"YulLiteral","src":"8694:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8698:10:64","nodeType":"YulIdentifier","src":"8698:10:64"}],"functionName":{"name":"mstore","nativeSrc":"8687:6:64","nodeType":"YulIdentifier","src":"8687:6:64"},"nativeSrc":"8687:22:64","nodeType":"YulFunctionCall","src":"8687:22:64"},"nativeSrc":"8687:22:64","nodeType":"YulExpressionStatement","src":"8687:22:64"}]},"name":"finalize_allocation","nativeSrc":"8434:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8463:6:64","nodeType":"YulTypedName","src":"8463:6:64","type":""},{"name":"size","nativeSrc":"8471:4:64","nodeType":"YulTypedName","src":"8471:4:64","type":""}],"src":"8434:281:64"},{"body":{"nativeSrc":"8762:88:64","nodeType":"YulBlock","src":"8762:88:64","statements":[{"nativeSrc":"8772:30:64","nodeType":"YulAssignment","src":"8772:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8782:18:64","nodeType":"YulIdentifier","src":"8782:18:64"},"nativeSrc":"8782:20:64","nodeType":"YulFunctionCall","src":"8782:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"8772:6:64","nodeType":"YulIdentifier","src":"8772:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8831:6:64","nodeType":"YulIdentifier","src":"8831:6:64"},{"name":"size","nativeSrc":"8839:4:64","nodeType":"YulIdentifier","src":"8839:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8811:19:64","nodeType":"YulIdentifier","src":"8811:19:64"},"nativeSrc":"8811:33:64","nodeType":"YulFunctionCall","src":"8811:33:64"},"nativeSrc":"8811:33:64","nodeType":"YulExpressionStatement","src":"8811:33:64"}]},"name":"allocate_memory","nativeSrc":"8721:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8746:4:64","nodeType":"YulTypedName","src":"8746:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8755:6:64","nodeType":"YulTypedName","src":"8755:6:64","type":""}],"src":"8721:129:64"},{"body":{"nativeSrc":"8945:28:64","nodeType":"YulBlock","src":"8945:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8962:1:64","nodeType":"YulLiteral","src":"8962:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8965:1:64","nodeType":"YulLiteral","src":"8965:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8955:6:64","nodeType":"YulIdentifier","src":"8955:6:64"},"nativeSrc":"8955:12:64","nodeType":"YulFunctionCall","src":"8955:12:64"},"nativeSrc":"8955:12:64","nodeType":"YulExpressionStatement","src":"8955:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8856:117:64","nodeType":"YulFunctionDefinition","src":"8856:117:64"},{"body":{"nativeSrc":"9022:79:64","nodeType":"YulBlock","src":"9022:79:64","statements":[{"body":{"nativeSrc":"9079:16:64","nodeType":"YulBlock","src":"9079:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9088:1:64","nodeType":"YulLiteral","src":"9088:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9091:1:64","nodeType":"YulLiteral","src":"9091:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9081:6:64","nodeType":"YulIdentifier","src":"9081:6:64"},"nativeSrc":"9081:12:64","nodeType":"YulFunctionCall","src":"9081:12:64"},"nativeSrc":"9081:12:64","nodeType":"YulExpressionStatement","src":"9081:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9045:5:64","nodeType":"YulIdentifier","src":"9045:5:64"},{"arguments":[{"name":"value","nativeSrc":"9070:5:64","nodeType":"YulIdentifier","src":"9070:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9052:17:64","nodeType":"YulIdentifier","src":"9052:17:64"},"nativeSrc":"9052:24:64","nodeType":"YulFunctionCall","src":"9052:24:64"}],"functionName":{"name":"eq","nativeSrc":"9042:2:64","nodeType":"YulIdentifier","src":"9042:2:64"},"nativeSrc":"9042:35:64","nodeType":"YulFunctionCall","src":"9042:35:64"}],"functionName":{"name":"iszero","nativeSrc":"9035:6:64","nodeType":"YulIdentifier","src":"9035:6:64"},"nativeSrc":"9035:43:64","nodeType":"YulFunctionCall","src":"9035:43:64"},"nativeSrc":"9032:63:64","nodeType":"YulIf","src":"9032:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"8979:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9015:5:64","nodeType":"YulTypedName","src":"9015:5:64","type":""}],"src":"8979:122:64"},{"body":{"nativeSrc":"9159:87:64","nodeType":"YulBlock","src":"9159:87:64","statements":[{"nativeSrc":"9169:29:64","nodeType":"YulAssignment","src":"9169:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9191:6:64","nodeType":"YulIdentifier","src":"9191:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9178:12:64","nodeType":"YulIdentifier","src":"9178:12:64"},"nativeSrc":"9178:20:64","nodeType":"YulFunctionCall","src":"9178:20:64"},"variableNames":[{"name":"value","nativeSrc":"9169:5:64","nodeType":"YulIdentifier","src":"9169:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9234:5:64","nodeType":"YulIdentifier","src":"9234:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"9207:26:64","nodeType":"YulIdentifier","src":"9207:26:64"},"nativeSrc":"9207:33:64","nodeType":"YulFunctionCall","src":"9207:33:64"},"nativeSrc":"9207:33:64","nodeType":"YulExpressionStatement","src":"9207:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"9107:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9137:6:64","nodeType":"YulTypedName","src":"9137:6:64","type":""},{"name":"end","nativeSrc":"9145:3:64","nodeType":"YulTypedName","src":"9145:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9153:5:64","nodeType":"YulTypedName","src":"9153:5:64","type":""}],"src":"9107:139:64"},{"body":{"nativeSrc":"9377:1009:64","nodeType":"YulBlock","src":"9377:1009:64","statements":[{"body":{"nativeSrc":"9421:83:64","nodeType":"YulBlock","src":"9421:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9423:77:64","nodeType":"YulIdentifier","src":"9423:77:64"},"nativeSrc":"9423:79:64","nodeType":"YulFunctionCall","src":"9423:79:64"},"nativeSrc":"9423:79:64","nodeType":"YulExpressionStatement","src":"9423:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9398:3:64","nodeType":"YulIdentifier","src":"9398:3:64"},{"name":"headStart","nativeSrc":"9403:9:64","nodeType":"YulIdentifier","src":"9403:9:64"}],"functionName":{"name":"sub","nativeSrc":"9394:3:64","nodeType":"YulIdentifier","src":"9394:3:64"},"nativeSrc":"9394:19:64","nodeType":"YulFunctionCall","src":"9394:19:64"},{"kind":"number","nativeSrc":"9415:4:64","nodeType":"YulLiteral","src":"9415:4:64","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"9390:3:64","nodeType":"YulIdentifier","src":"9390:3:64"},"nativeSrc":"9390:30:64","nodeType":"YulFunctionCall","src":"9390:30:64"},"nativeSrc":"9387:117:64","nodeType":"YulIf","src":"9387:117:64"},{"nativeSrc":"9513:30:64","nodeType":"YulAssignment","src":"9513:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"9538:4:64","nodeType":"YulLiteral","src":"9538:4:64","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"9522:15:64","nodeType":"YulIdentifier","src":"9522:15:64"},"nativeSrc":"9522:21:64","nodeType":"YulFunctionCall","src":"9522:21:64"},"variableNames":[{"name":"value","nativeSrc":"9513:5:64","nodeType":"YulIdentifier","src":"9513:5:64"}]},{"nativeSrc":"9553:151:64","nodeType":"YulBlock","src":"9553:151:64","statements":[{"nativeSrc":"9589:15:64","nodeType":"YulVariableDeclaration","src":"9589:15:64","value":{"kind":"number","nativeSrc":"9603:1:64","nodeType":"YulLiteral","src":"9603:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9593:6:64","nodeType":"YulTypedName","src":"9593:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9629:5:64","nodeType":"YulIdentifier","src":"9629:5:64"},{"kind":"number","nativeSrc":"9636:4:64","nodeType":"YulLiteral","src":"9636:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9625:3:64","nodeType":"YulIdentifier","src":"9625:3:64"},"nativeSrc":"9625:16:64","nodeType":"YulFunctionCall","src":"9625:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9668:9:64","nodeType":"YulIdentifier","src":"9668:9:64"},{"name":"offset","nativeSrc":"9679:6:64","nodeType":"YulIdentifier","src":"9679:6:64"}],"functionName":{"name":"add","nativeSrc":"9664:3:64","nodeType":"YulIdentifier","src":"9664:3:64"},"nativeSrc":"9664:22:64","nodeType":"YulFunctionCall","src":"9664:22:64"},{"name":"end","nativeSrc":"9688:3:64","nodeType":"YulIdentifier","src":"9688:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9643:20:64","nodeType":"YulIdentifier","src":"9643:20:64"},"nativeSrc":"9643:49:64","nodeType":"YulFunctionCall","src":"9643:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9618:6:64","nodeType":"YulIdentifier","src":"9618:6:64"},"nativeSrc":"9618:75:64","nodeType":"YulFunctionCall","src":"9618:75:64"},"nativeSrc":"9618:75:64","nodeType":"YulExpressionStatement","src":"9618:75:64"}]},{"nativeSrc":"9714:160:64","nodeType":"YulBlock","src":"9714:160:64","statements":[{"nativeSrc":"9758:16:64","nodeType":"YulVariableDeclaration","src":"9758:16:64","value":{"kind":"number","nativeSrc":"9772:2:64","nodeType":"YulLiteral","src":"9772:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9762:6:64","nodeType":"YulTypedName","src":"9762:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9799:5:64","nodeType":"YulIdentifier","src":"9799:5:64"},{"kind":"number","nativeSrc":"9806:4:64","nodeType":"YulLiteral","src":"9806:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9795:3:64","nodeType":"YulIdentifier","src":"9795:3:64"},"nativeSrc":"9795:16:64","nodeType":"YulFunctionCall","src":"9795:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9838:9:64","nodeType":"YulIdentifier","src":"9838:9:64"},{"name":"offset","nativeSrc":"9849:6:64","nodeType":"YulIdentifier","src":"9849:6:64"}],"functionName":{"name":"add","nativeSrc":"9834:3:64","nodeType":"YulIdentifier","src":"9834:3:64"},"nativeSrc":"9834:22:64","nodeType":"YulFunctionCall","src":"9834:22:64"},{"name":"end","nativeSrc":"9858:3:64","nodeType":"YulIdentifier","src":"9858:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9813:20:64","nodeType":"YulIdentifier","src":"9813:20:64"},"nativeSrc":"9813:49:64","nodeType":"YulFunctionCall","src":"9813:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9788:6:64","nodeType":"YulIdentifier","src":"9788:6:64"},"nativeSrc":"9788:75:64","nodeType":"YulFunctionCall","src":"9788:75:64"},"nativeSrc":"9788:75:64","nodeType":"YulExpressionStatement","src":"9788:75:64"}]},{"nativeSrc":"9884:158:64","nodeType":"YulBlock","src":"9884:158:64","statements":[{"nativeSrc":"9926:16:64","nodeType":"YulVariableDeclaration","src":"9926:16:64","value":{"kind":"number","nativeSrc":"9940:2:64","nodeType":"YulLiteral","src":"9940:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"9930:6:64","nodeType":"YulTypedName","src":"9930:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9967:5:64","nodeType":"YulIdentifier","src":"9967:5:64"},{"kind":"number","nativeSrc":"9974:4:64","nodeType":"YulLiteral","src":"9974:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"9963:3:64","nodeType":"YulIdentifier","src":"9963:3:64"},"nativeSrc":"9963:16:64","nodeType":"YulFunctionCall","src":"9963:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10006:9:64","nodeType":"YulIdentifier","src":"10006:9:64"},{"name":"offset","nativeSrc":"10017:6:64","nodeType":"YulIdentifier","src":"10017:6:64"}],"functionName":{"name":"add","nativeSrc":"10002:3:64","nodeType":"YulIdentifier","src":"10002:3:64"},"nativeSrc":"10002:22:64","nodeType":"YulFunctionCall","src":"10002:22:64"},{"name":"end","nativeSrc":"10026:3:64","nodeType":"YulIdentifier","src":"10026:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"9981:20:64","nodeType":"YulIdentifier","src":"9981:20:64"},"nativeSrc":"9981:49:64","nodeType":"YulFunctionCall","src":"9981:49:64"}],"functionName":{"name":"mstore","nativeSrc":"9956:6:64","nodeType":"YulIdentifier","src":"9956:6:64"},"nativeSrc":"9956:75:64","nodeType":"YulFunctionCall","src":"9956:75:64"},"nativeSrc":"9956:75:64","nodeType":"YulExpressionStatement","src":"9956:75:64"}]},{"nativeSrc":"10052:158:64","nodeType":"YulBlock","src":"10052:158:64","statements":[{"nativeSrc":"10094:16:64","nodeType":"YulVariableDeclaration","src":"10094:16:64","value":{"kind":"number","nativeSrc":"10108:2:64","nodeType":"YulLiteral","src":"10108:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"10098:6:64","nodeType":"YulTypedName","src":"10098:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10135:5:64","nodeType":"YulIdentifier","src":"10135:5:64"},{"kind":"number","nativeSrc":"10142:4:64","nodeType":"YulLiteral","src":"10142:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"10131:3:64","nodeType":"YulIdentifier","src":"10131:3:64"},"nativeSrc":"10131:16:64","nodeType":"YulFunctionCall","src":"10131:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10174:9:64","nodeType":"YulIdentifier","src":"10174:9:64"},{"name":"offset","nativeSrc":"10185:6:64","nodeType":"YulIdentifier","src":"10185:6:64"}],"functionName":{"name":"add","nativeSrc":"10170:3:64","nodeType":"YulIdentifier","src":"10170:3:64"},"nativeSrc":"10170:22:64","nodeType":"YulFunctionCall","src":"10170:22:64"},{"name":"end","nativeSrc":"10194:3:64","nodeType":"YulIdentifier","src":"10194:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10149:20:64","nodeType":"YulIdentifier","src":"10149:20:64"},"nativeSrc":"10149:49:64","nodeType":"YulFunctionCall","src":"10149:49:64"}],"functionName":{"name":"mstore","nativeSrc":"10124:6:64","nodeType":"YulIdentifier","src":"10124:6:64"},"nativeSrc":"10124:75:64","nodeType":"YulFunctionCall","src":"10124:75:64"},"nativeSrc":"10124:75:64","nodeType":"YulExpressionStatement","src":"10124:75:64"}]},{"nativeSrc":"10220:159:64","nodeType":"YulBlock","src":"10220:159:64","statements":[{"nativeSrc":"10262:17:64","nodeType":"YulVariableDeclaration","src":"10262:17:64","value":{"kind":"number","nativeSrc":"10276:3:64","nodeType":"YulLiteral","src":"10276:3:64","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"10266:6:64","nodeType":"YulTypedName","src":"10266:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10304:5:64","nodeType":"YulIdentifier","src":"10304:5:64"},{"kind":"number","nativeSrc":"10311:4:64","nodeType":"YulLiteral","src":"10311:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"10300:3:64","nodeType":"YulIdentifier","src":"10300:3:64"},"nativeSrc":"10300:16:64","nodeType":"YulFunctionCall","src":"10300:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10343:9:64","nodeType":"YulIdentifier","src":"10343:9:64"},{"name":"offset","nativeSrc":"10354:6:64","nodeType":"YulIdentifier","src":"10354:6:64"}],"functionName":{"name":"add","nativeSrc":"10339:3:64","nodeType":"YulIdentifier","src":"10339:3:64"},"nativeSrc":"10339:22:64","nodeType":"YulFunctionCall","src":"10339:22:64"},{"name":"end","nativeSrc":"10363:3:64","nodeType":"YulIdentifier","src":"10363:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10318:20:64","nodeType":"YulIdentifier","src":"10318:20:64"},"nativeSrc":"10318:49:64","nodeType":"YulFunctionCall","src":"10318:49:64"}],"functionName":{"name":"mstore","nativeSrc":"10293:6:64","nodeType":"YulIdentifier","src":"10293:6:64"},"nativeSrc":"10293:75:64","nodeType":"YulFunctionCall","src":"10293:75:64"},"nativeSrc":"10293:75:64","nodeType":"YulExpressionStatement","src":"10293:75:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$17497_memory_ptr","nativeSrc":"9292:1094:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9352:9:64","nodeType":"YulTypedName","src":"9352:9:64","type":""},{"name":"end","nativeSrc":"9363:3:64","nodeType":"YulTypedName","src":"9363:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9371:5:64","nodeType":"YulTypedName","src":"9371:5:64","type":""}],"src":"9292:1094:64"},{"body":{"nativeSrc":"10488:294:64","nodeType":"YulBlock","src":"10488:294:64","statements":[{"body":{"nativeSrc":"10535:83:64","nodeType":"YulBlock","src":"10535:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10537:77:64","nodeType":"YulIdentifier","src":"10537:77:64"},"nativeSrc":"10537:79:64","nodeType":"YulFunctionCall","src":"10537:79:64"},"nativeSrc":"10537:79:64","nodeType":"YulExpressionStatement","src":"10537:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10509:7:64","nodeType":"YulIdentifier","src":"10509:7:64"},{"name":"headStart","nativeSrc":"10518:9:64","nodeType":"YulIdentifier","src":"10518:9:64"}],"functionName":{"name":"sub","nativeSrc":"10505:3:64","nodeType":"YulIdentifier","src":"10505:3:64"},"nativeSrc":"10505:23:64","nodeType":"YulFunctionCall","src":"10505:23:64"},{"kind":"number","nativeSrc":"10530:3:64","nodeType":"YulLiteral","src":"10530:3:64","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"10501:3:64","nodeType":"YulIdentifier","src":"10501:3:64"},"nativeSrc":"10501:33:64","nodeType":"YulFunctionCall","src":"10501:33:64"},"nativeSrc":"10498:120:64","nodeType":"YulIf","src":"10498:120:64"},{"nativeSrc":"10628:147:64","nodeType":"YulBlock","src":"10628:147:64","statements":[{"nativeSrc":"10643:15:64","nodeType":"YulVariableDeclaration","src":"10643:15:64","value":{"kind":"number","nativeSrc":"10657:1:64","nodeType":"YulLiteral","src":"10657:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10647:6:64","nodeType":"YulTypedName","src":"10647:6:64","type":""}]},{"nativeSrc":"10672:93:64","nodeType":"YulAssignment","src":"10672:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10737:9:64","nodeType":"YulIdentifier","src":"10737:9:64"},{"name":"offset","nativeSrc":"10748:6:64","nodeType":"YulIdentifier","src":"10748:6:64"}],"functionName":{"name":"add","nativeSrc":"10733:3:64","nodeType":"YulIdentifier","src":"10733:3:64"},"nativeSrc":"10733:22:64","nodeType":"YulFunctionCall","src":"10733:22:64"},{"name":"dataEnd","nativeSrc":"10757:7:64","nodeType":"YulIdentifier","src":"10757:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$17497_memory_ptr","nativeSrc":"10682:50:64","nodeType":"YulIdentifier","src":"10682:50:64"},"nativeSrc":"10682:83:64","nodeType":"YulFunctionCall","src":"10682:83:64"},"variableNames":[{"name":"value0","nativeSrc":"10672:6:64","nodeType":"YulIdentifier","src":"10672:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$17497_memory_ptr","nativeSrc":"10392:390:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10458:9:64","nodeType":"YulTypedName","src":"10458:9:64","type":""},{"name":"dataEnd","nativeSrc":"10469:7:64","nodeType":"YulTypedName","src":"10469:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10481:6:64","nodeType":"YulTypedName","src":"10481:6:64","type":""}],"src":"10392:390:64"},{"body":{"nativeSrc":"10942:288:64","nodeType":"YulBlock","src":"10942:288:64","statements":[{"nativeSrc":"10952:26:64","nodeType":"YulAssignment","src":"10952:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"10964:9:64","nodeType":"YulIdentifier","src":"10964:9:64"},{"kind":"number","nativeSrc":"10975:2:64","nodeType":"YulLiteral","src":"10975:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10960:3:64","nodeType":"YulIdentifier","src":"10960:3:64"},"nativeSrc":"10960:18:64","nodeType":"YulFunctionCall","src":"10960:18:64"},"variableNames":[{"name":"tail","nativeSrc":"10952:4:64","nodeType":"YulIdentifier","src":"10952:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"11032:6:64","nodeType":"YulIdentifier","src":"11032:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"11045:9:64","nodeType":"YulIdentifier","src":"11045:9:64"},{"kind":"number","nativeSrc":"11056:1:64","nodeType":"YulLiteral","src":"11056:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11041:3:64","nodeType":"YulIdentifier","src":"11041:3:64"},"nativeSrc":"11041:17:64","nodeType":"YulFunctionCall","src":"11041:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"10988:43:64","nodeType":"YulIdentifier","src":"10988:43:64"},"nativeSrc":"10988:71:64","nodeType":"YulFunctionCall","src":"10988:71:64"},"nativeSrc":"10988:71:64","nodeType":"YulExpressionStatement","src":"10988:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"11113:6:64","nodeType":"YulIdentifier","src":"11113:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"11126:9:64","nodeType":"YulIdentifier","src":"11126:9:64"},{"kind":"number","nativeSrc":"11137:2:64","nodeType":"YulLiteral","src":"11137:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"11122:3:64","nodeType":"YulIdentifier","src":"11122:3:64"},"nativeSrc":"11122:18:64","nodeType":"YulFunctionCall","src":"11122:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"11069:43:64","nodeType":"YulIdentifier","src":"11069:43:64"},"nativeSrc":"11069:72:64","nodeType":"YulFunctionCall","src":"11069:72:64"},"nativeSrc":"11069:72:64","nodeType":"YulExpressionStatement","src":"11069:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"11195:6:64","nodeType":"YulIdentifier","src":"11195:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"11208:9:64","nodeType":"YulIdentifier","src":"11208:9:64"},{"kind":"number","nativeSrc":"11219:2:64","nodeType":"YulLiteral","src":"11219:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11204:3:64","nodeType":"YulIdentifier","src":"11204:3:64"},"nativeSrc":"11204:18:64","nodeType":"YulFunctionCall","src":"11204:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"11151:43:64","nodeType":"YulIdentifier","src":"11151:43:64"},"nativeSrc":"11151:72:64","nodeType":"YulFunctionCall","src":"11151:72:64"},"nativeSrc":"11151:72:64","nodeType":"YulExpressionStatement","src":"11151:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"10788:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10898:9:64","nodeType":"YulTypedName","src":"10898:9:64","type":""},{"name":"value2","nativeSrc":"10910:6:64","nodeType":"YulTypedName","src":"10910:6:64","type":""},{"name":"value1","nativeSrc":"10918:6:64","nodeType":"YulTypedName","src":"10918:6:64","type":""},{"name":"value0","nativeSrc":"10926:6:64","nodeType":"YulTypedName","src":"10926:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"10937:4:64","nodeType":"YulTypedName","src":"10937:4:64","type":""}],"src":"10788:442:64"},{"body":{"nativeSrc":"11264:152:64","nodeType":"YulBlock","src":"11264:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11281:1:64","nodeType":"YulLiteral","src":"11281:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11284:77:64","nodeType":"YulLiteral","src":"11284:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11274:6:64","nodeType":"YulIdentifier","src":"11274:6:64"},"nativeSrc":"11274:88:64","nodeType":"YulFunctionCall","src":"11274:88:64"},"nativeSrc":"11274:88:64","nodeType":"YulExpressionStatement","src":"11274:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11378:1:64","nodeType":"YulLiteral","src":"11378:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"11381:4:64","nodeType":"YulLiteral","src":"11381:4:64","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"11371:6:64","nodeType":"YulIdentifier","src":"11371:6:64"},"nativeSrc":"11371:15:64","nodeType":"YulFunctionCall","src":"11371:15:64"},"nativeSrc":"11371:15:64","nodeType":"YulExpressionStatement","src":"11371:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11402:1:64","nodeType":"YulLiteral","src":"11402:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11405:4:64","nodeType":"YulLiteral","src":"11405:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11395:6:64","nodeType":"YulIdentifier","src":"11395:6:64"},"nativeSrc":"11395:15:64","nodeType":"YulFunctionCall","src":"11395:15:64"},"nativeSrc":"11395:15:64","nodeType":"YulExpressionStatement","src":"11395:15:64"}]},"name":"panic_error_0x21","nativeSrc":"11236:180:64","nodeType":"YulFunctionDefinition","src":"11236:180:64"},{"body":{"nativeSrc":"11477:53:64","nodeType":"YulBlock","src":"11477:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"11494:3:64","nodeType":"YulIdentifier","src":"11494:3:64"},{"arguments":[{"name":"value","nativeSrc":"11517:5:64","nodeType":"YulIdentifier","src":"11517:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11499:17:64","nodeType":"YulIdentifier","src":"11499:17:64"},"nativeSrc":"11499:24:64","nodeType":"YulFunctionCall","src":"11499:24:64"}],"functionName":{"name":"mstore","nativeSrc":"11487:6:64","nodeType":"YulIdentifier","src":"11487:6:64"},"nativeSrc":"11487:37:64","nodeType":"YulFunctionCall","src":"11487:37:64"},"nativeSrc":"11487:37:64","nodeType":"YulExpressionStatement","src":"11487:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"11422:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11465:5:64","nodeType":"YulTypedName","src":"11465:5:64","type":""},{"name":"pos","nativeSrc":"11472:3:64","nodeType":"YulTypedName","src":"11472:3:64","type":""}],"src":"11422:108:64"},{"body":{"nativeSrc":"11740:219:64","nodeType":"YulBlock","src":"11740:219:64","statements":[{"nativeSrc":"11750:26:64","nodeType":"YulVariableDeclaration","src":"11750:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"11766:3:64","nodeType":"YulIdentifier","src":"11766:3:64"},{"kind":"number","nativeSrc":"11771:4:64","nodeType":"YulLiteral","src":"11771:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11762:3:64","nodeType":"YulIdentifier","src":"11762:3:64"},"nativeSrc":"11762:14:64","nodeType":"YulFunctionCall","src":"11762:14:64"},"variables":[{"name":"tail","nativeSrc":"11754:4:64","nodeType":"YulTypedName","src":"11754:4:64","type":""}]},{"nativeSrc":"11786:166:64","nodeType":"YulBlock","src":"11786:166:64","statements":[{"nativeSrc":"11823:43:64","nodeType":"YulVariableDeclaration","src":"11823:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11853:5:64","nodeType":"YulIdentifier","src":"11853:5:64"},{"kind":"number","nativeSrc":"11860:4:64","nodeType":"YulLiteral","src":"11860:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11849:3:64","nodeType":"YulIdentifier","src":"11849:3:64"},"nativeSrc":"11849:16:64","nodeType":"YulFunctionCall","src":"11849:16:64"}],"functionName":{"name":"mload","nativeSrc":"11843:5:64","nodeType":"YulIdentifier","src":"11843:5:64"},"nativeSrc":"11843:23:64","nodeType":"YulFunctionCall","src":"11843:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"11827:12:64","nodeType":"YulTypedName","src":"11827:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"11913:12:64","nodeType":"YulIdentifier","src":"11913:12:64"},{"arguments":[{"name":"pos","nativeSrc":"11931:3:64","nodeType":"YulIdentifier","src":"11931:3:64"},{"kind":"number","nativeSrc":"11936:4:64","nodeType":"YulLiteral","src":"11936:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11927:3:64","nodeType":"YulIdentifier","src":"11927:3:64"},"nativeSrc":"11927:14:64","nodeType":"YulFunctionCall","src":"11927:14:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"11879:33:64","nodeType":"YulIdentifier","src":"11879:33:64"},"nativeSrc":"11879:63:64","nodeType":"YulFunctionCall","src":"11879:63:64"},"nativeSrc":"11879:63:64","nodeType":"YulExpressionStatement","src":"11879:63:64"}]}]},"name":"abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack","nativeSrc":"11606:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11727:5:64","nodeType":"YulTypedName","src":"11727:5:64","type":""},{"name":"pos","nativeSrc":"11734:3:64","nodeType":"YulTypedName","src":"11734:3:64","type":""}],"src":"11606:353:64"},{"body":{"nativeSrc":"12131:192:64","nodeType":"YulBlock","src":"12131:192:64","statements":[{"nativeSrc":"12141:26:64","nodeType":"YulAssignment","src":"12141:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"12153:9:64","nodeType":"YulIdentifier","src":"12153:9:64"},{"kind":"number","nativeSrc":"12164:2:64","nodeType":"YulLiteral","src":"12164:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12149:3:64","nodeType":"YulIdentifier","src":"12149:3:64"},"nativeSrc":"12149:18:64","nodeType":"YulFunctionCall","src":"12149:18:64"},"variableNames":[{"name":"tail","nativeSrc":"12141:4:64","nodeType":"YulIdentifier","src":"12141:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12289:6:64","nodeType":"YulIdentifier","src":"12289:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"12302:9:64","nodeType":"YulIdentifier","src":"12302:9:64"},{"kind":"number","nativeSrc":"12313:1:64","nodeType":"YulLiteral","src":"12313:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12298:3:64","nodeType":"YulIdentifier","src":"12298:3:64"},"nativeSrc":"12298:17:64","nodeType":"YulFunctionCall","src":"12298:17:64"}],"functionName":{"name":"abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack","nativeSrc":"12177:111:64","nodeType":"YulIdentifier","src":"12177:111:64"},"nativeSrc":"12177:139:64","nodeType":"YulFunctionCall","src":"12177:139:64"},"nativeSrc":"12177:139:64","nodeType":"YulExpressionStatement","src":"12177:139:64"}]},"name":"abi_encode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr__to_t_struct$_FungiblePayload_$15465_memory_ptr__fromStack_reversed","nativeSrc":"11965:358:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12103:9:64","nodeType":"YulTypedName","src":"12103:9:64","type":""},{"name":"value0","nativeSrc":"12115:6:64","nodeType":"YulTypedName","src":"12115:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"12126:4:64","nodeType":"YulTypedName","src":"12126:4:64","type":""}],"src":"11965:358:64"},{"body":{"nativeSrc":"12387:62:64","nodeType":"YulBlock","src":"12387:62:64","statements":[{"body":{"nativeSrc":"12421:22:64","nodeType":"YulBlock","src":"12421:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"12423:16:64","nodeType":"YulIdentifier","src":"12423:16:64"},"nativeSrc":"12423:18:64","nodeType":"YulFunctionCall","src":"12423:18:64"},"nativeSrc":"12423:18:64","nodeType":"YulExpressionStatement","src":"12423:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12410:5:64","nodeType":"YulIdentifier","src":"12410:5:64"},{"kind":"number","nativeSrc":"12417:1:64","nodeType":"YulLiteral","src":"12417:1:64","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"12407:2:64","nodeType":"YulIdentifier","src":"12407:2:64"},"nativeSrc":"12407:12:64","nodeType":"YulFunctionCall","src":"12407:12:64"}],"functionName":{"name":"iszero","nativeSrc":"12400:6:64","nodeType":"YulIdentifier","src":"12400:6:64"},"nativeSrc":"12400:20:64","nodeType":"YulFunctionCall","src":"12400:20:64"},"nativeSrc":"12397:46:64","nodeType":"YulIf","src":"12397:46:64"}]},"name":"validator_assert_t_enum$_AssetType_$15450","nativeSrc":"12329:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12380:5:64","nodeType":"YulTypedName","src":"12380:5:64","type":""}],"src":"12329:120:64"},{"body":{"nativeSrc":"12515:81:64","nodeType":"YulBlock","src":"12515:81:64","statements":[{"nativeSrc":"12525:16:64","nodeType":"YulAssignment","src":"12525:16:64","value":{"name":"value","nativeSrc":"12536:5:64","nodeType":"YulIdentifier","src":"12536:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"12525:7:64","nodeType":"YulIdentifier","src":"12525:7:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12584:5:64","nodeType":"YulIdentifier","src":"12584:5:64"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$15450","nativeSrc":"12542:41:64","nodeType":"YulIdentifier","src":"12542:41:64"},"nativeSrc":"12542:48:64","nodeType":"YulFunctionCall","src":"12542:48:64"},"nativeSrc":"12542:48:64","nodeType":"YulExpressionStatement","src":"12542:48:64"}]},"name":"cleanup_t_enum$_AssetType_$15450","nativeSrc":"12455:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12497:5:64","nodeType":"YulTypedName","src":"12497:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12507:7:64","nodeType":"YulTypedName","src":"12507:7:64","type":""}],"src":"12455:141:64"},{"body":{"nativeSrc":"12675:68:64","nodeType":"YulBlock","src":"12675:68:64","statements":[{"nativeSrc":"12685:52:64","nodeType":"YulAssignment","src":"12685:52:64","value":{"arguments":[{"name":"value","nativeSrc":"12731:5:64","nodeType":"YulIdentifier","src":"12731:5:64"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$15450","nativeSrc":"12698:32:64","nodeType":"YulIdentifier","src":"12698:32:64"},"nativeSrc":"12698:39:64","nodeType":"YulFunctionCall","src":"12698:39:64"},"variableNames":[{"name":"converted","nativeSrc":"12685:9:64","nodeType":"YulIdentifier","src":"12685:9:64"}]}]},"name":"convert_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"12602:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12655:5:64","nodeType":"YulTypedName","src":"12655:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12665:9:64","nodeType":"YulTypedName","src":"12665:9:64","type":""}],"src":"12602:141:64"},{"body":{"nativeSrc":"12817:79:64","nodeType":"YulBlock","src":"12817:79:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12834:3:64","nodeType":"YulIdentifier","src":"12834:3:64"},{"arguments":[{"name":"value","nativeSrc":"12883:5:64","nodeType":"YulIdentifier","src":"12883:5:64"}],"functionName":{"name":"convert_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"12839:43:64","nodeType":"YulIdentifier","src":"12839:43:64"},"nativeSrc":"12839:50:64","nodeType":"YulFunctionCall","src":"12839:50:64"}],"functionName":{"name":"mstore","nativeSrc":"12827:6:64","nodeType":"YulIdentifier","src":"12827:6:64"},"nativeSrc":"12827:63:64","nodeType":"YulFunctionCall","src":"12827:63:64"},"nativeSrc":"12827:63:64","nodeType":"YulExpressionStatement","src":"12827:63:64"}]},"name":"abi_encode_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"12749:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12805:5:64","nodeType":"YulTypedName","src":"12805:5:64","type":""},{"name":"pos","nativeSrc":"12812:3:64","nodeType":"YulTypedName","src":"12812:3:64","type":""}],"src":"12749:147:64"},{"body":{"nativeSrc":"12957:53:64","nodeType":"YulBlock","src":"12957:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12974:3:64","nodeType":"YulIdentifier","src":"12974:3:64"},{"arguments":[{"name":"value","nativeSrc":"12997:5:64","nodeType":"YulIdentifier","src":"12997:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"12979:17:64","nodeType":"YulIdentifier","src":"12979:17:64"},"nativeSrc":"12979:24:64","nodeType":"YulFunctionCall","src":"12979:24:64"}],"functionName":{"name":"mstore","nativeSrc":"12967:6:64","nodeType":"YulIdentifier","src":"12967:6:64"},"nativeSrc":"12967:37:64","nodeType":"YulFunctionCall","src":"12967:37:64"},"nativeSrc":"12967:37:64","nodeType":"YulExpressionStatement","src":"12967:37:64"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"12902:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12945:5:64","nodeType":"YulTypedName","src":"12945:5:64","type":""},{"name":"pos","nativeSrc":"12952:3:64","nodeType":"YulTypedName","src":"12952:3:64","type":""}],"src":"12902:108:64"},{"body":{"nativeSrc":"13101:73:64","nodeType":"YulBlock","src":"13101:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13118:3:64","nodeType":"YulIdentifier","src":"13118:3:64"},{"name":"length","nativeSrc":"13123:6:64","nodeType":"YulIdentifier","src":"13123:6:64"}],"functionName":{"name":"mstore","nativeSrc":"13111:6:64","nodeType":"YulIdentifier","src":"13111:6:64"},"nativeSrc":"13111:19:64","nodeType":"YulFunctionCall","src":"13111:19:64"},"nativeSrc":"13111:19:64","nodeType":"YulExpressionStatement","src":"13111:19:64"},{"nativeSrc":"13139:29:64","nodeType":"YulAssignment","src":"13139:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"13158:3:64","nodeType":"YulIdentifier","src":"13158:3:64"},{"kind":"number","nativeSrc":"13163:4:64","nodeType":"YulLiteral","src":"13163:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13154:3:64","nodeType":"YulIdentifier","src":"13154:3:64"},"nativeSrc":"13154:14:64","nodeType":"YulFunctionCall","src":"13154:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"13139:11:64","nodeType":"YulIdentifier","src":"13139:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"13016:158:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13073:3:64","nodeType":"YulTypedName","src":"13073:3:64","type":""},{"name":"length","nativeSrc":"13078:6:64","nodeType":"YulTypedName","src":"13078:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13089:11:64","nodeType":"YulTypedName","src":"13089:11:64","type":""}],"src":"13016:158:64"},{"body":{"nativeSrc":"13260:273:64","nodeType":"YulBlock","src":"13260:273:64","statements":[{"nativeSrc":"13270:52:64","nodeType":"YulVariableDeclaration","src":"13270:52:64","value":{"arguments":[{"name":"value","nativeSrc":"13316:5:64","nodeType":"YulIdentifier","src":"13316:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13284:31:64","nodeType":"YulIdentifier","src":"13284:31:64"},"nativeSrc":"13284:38:64","nodeType":"YulFunctionCall","src":"13284:38:64"},"variables":[{"name":"length","nativeSrc":"13274:6:64","nodeType":"YulTypedName","src":"13274:6:64","type":""}]},{"nativeSrc":"13331:67:64","nodeType":"YulAssignment","src":"13331:67:64","value":{"arguments":[{"name":"pos","nativeSrc":"13386:3:64","nodeType":"YulIdentifier","src":"13386:3:64"},{"name":"length","nativeSrc":"13391:6:64","nodeType":"YulIdentifier","src":"13391:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"13338:47:64","nodeType":"YulIdentifier","src":"13338:47:64"},"nativeSrc":"13338:60:64","nodeType":"YulFunctionCall","src":"13338:60:64"},"variableNames":[{"name":"pos","nativeSrc":"13331:3:64","nodeType":"YulIdentifier","src":"13331:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13446:5:64","nodeType":"YulIdentifier","src":"13446:5:64"},{"kind":"number","nativeSrc":"13453:4:64","nodeType":"YulLiteral","src":"13453:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13442:3:64","nodeType":"YulIdentifier","src":"13442:3:64"},"nativeSrc":"13442:16:64","nodeType":"YulFunctionCall","src":"13442:16:64"},{"name":"pos","nativeSrc":"13460:3:64","nodeType":"YulIdentifier","src":"13460:3:64"},{"name":"length","nativeSrc":"13465:6:64","nodeType":"YulIdentifier","src":"13465:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13407:34:64","nodeType":"YulIdentifier","src":"13407:34:64"},"nativeSrc":"13407:65:64","nodeType":"YulFunctionCall","src":"13407:65:64"},"nativeSrc":"13407:65:64","nodeType":"YulExpressionStatement","src":"13407:65:64"},{"nativeSrc":"13481:46:64","nodeType":"YulAssignment","src":"13481:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"13492:3:64","nodeType":"YulIdentifier","src":"13492:3:64"},{"arguments":[{"name":"length","nativeSrc":"13519:6:64","nodeType":"YulIdentifier","src":"13519:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13497:21:64","nodeType":"YulIdentifier","src":"13497:21:64"},"nativeSrc":"13497:29:64","nodeType":"YulFunctionCall","src":"13497:29:64"}],"functionName":{"name":"add","nativeSrc":"13488:3:64","nodeType":"YulIdentifier","src":"13488:3:64"},"nativeSrc":"13488:39:64","nodeType":"YulFunctionCall","src":"13488:39:64"},"variableNames":[{"name":"end","nativeSrc":"13481:3:64","nodeType":"YulIdentifier","src":"13481:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"13180:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13241:5:64","nodeType":"YulTypedName","src":"13241:5:64","type":""},{"name":"pos","nativeSrc":"13248:3:64","nodeType":"YulTypedName","src":"13248:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13256:3:64","nodeType":"YulTypedName","src":"13256:3:64","type":""}],"src":"13180:353:64"},{"body":{"nativeSrc":"13723:849:64","nodeType":"YulBlock","src":"13723:849:64","statements":[{"nativeSrc":"13733:26:64","nodeType":"YulVariableDeclaration","src":"13733:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"13749:3:64","nodeType":"YulIdentifier","src":"13749:3:64"},{"kind":"number","nativeSrc":"13754:4:64","nodeType":"YulLiteral","src":"13754:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"13745:3:64","nodeType":"YulIdentifier","src":"13745:3:64"},"nativeSrc":"13745:14:64","nodeType":"YulFunctionCall","src":"13745:14:64"},"variables":[{"name":"tail","nativeSrc":"13737:4:64","nodeType":"YulTypedName","src":"13737:4:64","type":""}]},{"nativeSrc":"13769:182:64","nodeType":"YulBlock","src":"13769:182:64","statements":[{"nativeSrc":"13809:43:64","nodeType":"YulVariableDeclaration","src":"13809:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13839:5:64","nodeType":"YulIdentifier","src":"13839:5:64"},{"kind":"number","nativeSrc":"13846:4:64","nodeType":"YulLiteral","src":"13846:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13835:3:64","nodeType":"YulIdentifier","src":"13835:3:64"},"nativeSrc":"13835:16:64","nodeType":"YulFunctionCall","src":"13835:16:64"}],"functionName":{"name":"mload","nativeSrc":"13829:5:64","nodeType":"YulIdentifier","src":"13829:5:64"},"nativeSrc":"13829:23:64","nodeType":"YulFunctionCall","src":"13829:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"13813:12:64","nodeType":"YulTypedName","src":"13813:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13912:12:64","nodeType":"YulIdentifier","src":"13912:12:64"},{"arguments":[{"name":"pos","nativeSrc":"13930:3:64","nodeType":"YulIdentifier","src":"13930:3:64"},{"kind":"number","nativeSrc":"13935:4:64","nodeType":"YulLiteral","src":"13935:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13926:3:64","nodeType":"YulIdentifier","src":"13926:3:64"},"nativeSrc":"13926:14:64","nodeType":"YulFunctionCall","src":"13926:14:64"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"13865:46:64","nodeType":"YulIdentifier","src":"13865:46:64"},"nativeSrc":"13865:76:64","nodeType":"YulFunctionCall","src":"13865:76:64"},"nativeSrc":"13865:76:64","nodeType":"YulExpressionStatement","src":"13865:76:64"}]},{"nativeSrc":"13961:165:64","nodeType":"YulBlock","src":"13961:165:64","statements":[{"nativeSrc":"13997:43:64","nodeType":"YulVariableDeclaration","src":"13997:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14027:5:64","nodeType":"YulIdentifier","src":"14027:5:64"},{"kind":"number","nativeSrc":"14034:4:64","nodeType":"YulLiteral","src":"14034:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14023:3:64","nodeType":"YulIdentifier","src":"14023:3:64"},"nativeSrc":"14023:16:64","nodeType":"YulFunctionCall","src":"14023:16:64"}],"functionName":{"name":"mload","nativeSrc":"14017:5:64","nodeType":"YulIdentifier","src":"14017:5:64"},"nativeSrc":"14017:23:64","nodeType":"YulFunctionCall","src":"14017:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"14001:12:64","nodeType":"YulTypedName","src":"14001:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"14087:12:64","nodeType":"YulIdentifier","src":"14087:12:64"},{"arguments":[{"name":"pos","nativeSrc":"14105:3:64","nodeType":"YulIdentifier","src":"14105:3:64"},{"kind":"number","nativeSrc":"14110:4:64","nodeType":"YulLiteral","src":"14110:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14101:3:64","nodeType":"YulIdentifier","src":"14101:3:64"},"nativeSrc":"14101:14:64","nodeType":"YulFunctionCall","src":"14101:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"14053:33:64","nodeType":"YulIdentifier","src":"14053:33:64"},"nativeSrc":"14053:63:64","nodeType":"YulFunctionCall","src":"14053:63:64"},"nativeSrc":"14053:63:64","nodeType":"YulExpressionStatement","src":"14053:63:64"}]},{"nativeSrc":"14136:166:64","nodeType":"YulBlock","src":"14136:166:64","statements":[{"nativeSrc":"14173:43:64","nodeType":"YulVariableDeclaration","src":"14173:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14203:5:64","nodeType":"YulIdentifier","src":"14203:5:64"},{"kind":"number","nativeSrc":"14210:4:64","nodeType":"YulLiteral","src":"14210:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14199:3:64","nodeType":"YulIdentifier","src":"14199:3:64"},"nativeSrc":"14199:16:64","nodeType":"YulFunctionCall","src":"14199:16:64"}],"functionName":{"name":"mload","nativeSrc":"14193:5:64","nodeType":"YulIdentifier","src":"14193:5:64"},"nativeSrc":"14193:23:64","nodeType":"YulFunctionCall","src":"14193:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"14177:12:64","nodeType":"YulTypedName","src":"14177:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"14263:12:64","nodeType":"YulIdentifier","src":"14263:12:64"},{"arguments":[{"name":"pos","nativeSrc":"14281:3:64","nodeType":"YulIdentifier","src":"14281:3:64"},{"kind":"number","nativeSrc":"14286:4:64","nodeType":"YulLiteral","src":"14286:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14277:3:64","nodeType":"YulIdentifier","src":"14277:3:64"},"nativeSrc":"14277:14:64","nodeType":"YulFunctionCall","src":"14277:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"14229:33:64","nodeType":"YulIdentifier","src":"14229:33:64"},"nativeSrc":"14229:63:64","nodeType":"YulFunctionCall","src":"14229:63:64"},"nativeSrc":"14229:63:64","nodeType":"YulExpressionStatement","src":"14229:63:64"}]},{"nativeSrc":"14312:233:64","nodeType":"YulBlock","src":"14312:233:64","statements":[{"nativeSrc":"14347:43:64","nodeType":"YulVariableDeclaration","src":"14347:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14377:5:64","nodeType":"YulIdentifier","src":"14377:5:64"},{"kind":"number","nativeSrc":"14384:4:64","nodeType":"YulLiteral","src":"14384:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14373:3:64","nodeType":"YulIdentifier","src":"14373:3:64"},"nativeSrc":"14373:16:64","nodeType":"YulFunctionCall","src":"14373:16:64"}],"functionName":{"name":"mload","nativeSrc":"14367:5:64","nodeType":"YulIdentifier","src":"14367:5:64"},"nativeSrc":"14367:23:64","nodeType":"YulFunctionCall","src":"14367:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"14351:12:64","nodeType":"YulTypedName","src":"14351:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14415:3:64","nodeType":"YulIdentifier","src":"14415:3:64"},{"kind":"number","nativeSrc":"14420:4:64","nodeType":"YulLiteral","src":"14420:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"14411:3:64","nodeType":"YulIdentifier","src":"14411:3:64"},"nativeSrc":"14411:14:64","nodeType":"YulFunctionCall","src":"14411:14:64"},{"arguments":[{"name":"tail","nativeSrc":"14431:4:64","nodeType":"YulIdentifier","src":"14431:4:64"},{"name":"pos","nativeSrc":"14437:3:64","nodeType":"YulIdentifier","src":"14437:3:64"}],"functionName":{"name":"sub","nativeSrc":"14427:3:64","nodeType":"YulIdentifier","src":"14427:3:64"},"nativeSrc":"14427:14:64","nodeType":"YulFunctionCall","src":"14427:14:64"}],"functionName":{"name":"mstore","nativeSrc":"14404:6:64","nodeType":"YulIdentifier","src":"14404:6:64"},"nativeSrc":"14404:38:64","nodeType":"YulFunctionCall","src":"14404:38:64"},"nativeSrc":"14404:38:64","nodeType":"YulExpressionStatement","src":"14404:38:64"},{"nativeSrc":"14455:79:64","nodeType":"YulAssignment","src":"14455:79:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"14515:12:64","nodeType":"YulIdentifier","src":"14515:12:64"},{"name":"tail","nativeSrc":"14529:4:64","nodeType":"YulIdentifier","src":"14529:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"14463:51:64","nodeType":"YulIdentifier","src":"14463:51:64"},"nativeSrc":"14463:71:64","nodeType":"YulFunctionCall","src":"14463:71:64"},"variableNames":[{"name":"tail","nativeSrc":"14455:4:64","nodeType":"YulIdentifier","src":"14455:4:64"}]}]},{"nativeSrc":"14555:11:64","nodeType":"YulAssignment","src":"14555:11:64","value":{"name":"tail","nativeSrc":"14562:4:64","nodeType":"YulIdentifier","src":"14562:4:64"},"variableNames":[{"name":"end","nativeSrc":"14555:3:64","nodeType":"YulIdentifier","src":"14555:3:64"}]}]},"name":"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack","nativeSrc":"13595:977:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13702:5:64","nodeType":"YulTypedName","src":"13702:5:64","type":""},{"name":"pos","nativeSrc":"13709:3:64","nodeType":"YulTypedName","src":"13709:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13718:3:64","nodeType":"YulTypedName","src":"13718:3:64","type":""}],"src":"13595:977:64"},{"body":{"nativeSrc":"14730:229:64","nodeType":"YulBlock","src":"14730:229:64","statements":[{"nativeSrc":"14740:26:64","nodeType":"YulAssignment","src":"14740:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"14752:9:64","nodeType":"YulIdentifier","src":"14752:9:64"},{"kind":"number","nativeSrc":"14763:2:64","nodeType":"YulLiteral","src":"14763:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14748:3:64","nodeType":"YulIdentifier","src":"14748:3:64"},"nativeSrc":"14748:18:64","nodeType":"YulFunctionCall","src":"14748:18:64"},"variableNames":[{"name":"tail","nativeSrc":"14740:4:64","nodeType":"YulIdentifier","src":"14740:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14787:9:64","nodeType":"YulIdentifier","src":"14787:9:64"},{"kind":"number","nativeSrc":"14798:1:64","nodeType":"YulLiteral","src":"14798:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14783:3:64","nodeType":"YulIdentifier","src":"14783:3:64"},"nativeSrc":"14783:17:64","nodeType":"YulFunctionCall","src":"14783:17:64"},{"arguments":[{"name":"tail","nativeSrc":"14806:4:64","nodeType":"YulIdentifier","src":"14806:4:64"},{"name":"headStart","nativeSrc":"14812:9:64","nodeType":"YulIdentifier","src":"14812:9:64"}],"functionName":{"name":"sub","nativeSrc":"14802:3:64","nodeType":"YulIdentifier","src":"14802:3:64"},"nativeSrc":"14802:20:64","nodeType":"YulFunctionCall","src":"14802:20:64"}],"functionName":{"name":"mstore","nativeSrc":"14776:6:64","nodeType":"YulIdentifier","src":"14776:6:64"},"nativeSrc":"14776:47:64","nodeType":"YulFunctionCall","src":"14776:47:64"},"nativeSrc":"14776:47:64","nodeType":"YulExpressionStatement","src":"14776:47:64"},{"nativeSrc":"14832:120:64","nodeType":"YulAssignment","src":"14832:120:64","value":{"arguments":[{"name":"value0","nativeSrc":"14938:6:64","nodeType":"YulIdentifier","src":"14938:6:64"},{"name":"tail","nativeSrc":"14947:4:64","nodeType":"YulIdentifier","src":"14947:4:64"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack","nativeSrc":"14840:97:64","nodeType":"YulIdentifier","src":"14840:97:64"},"nativeSrc":"14840:112:64","nodeType":"YulFunctionCall","src":"14840:112:64"},"variableNames":[{"name":"tail","nativeSrc":"14832:4:64","nodeType":"YulIdentifier","src":"14832:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed","nativeSrc":"14578:381:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14702:9:64","nodeType":"YulTypedName","src":"14702:9:64","type":""},{"name":"value0","nativeSrc":"14714:6:64","nodeType":"YulTypedName","src":"14714:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14725:4:64","nodeType":"YulTypedName","src":"14725:4:64","type":""}],"src":"14578:381:64"},{"body":{"nativeSrc":"15054:28:64","nodeType":"YulBlock","src":"15054:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15071:1:64","nodeType":"YulLiteral","src":"15071:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"15074:1:64","nodeType":"YulLiteral","src":"15074:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15064:6:64","nodeType":"YulIdentifier","src":"15064:6:64"},"nativeSrc":"15064:12:64","nodeType":"YulFunctionCall","src":"15064:12:64"},"nativeSrc":"15064:12:64","nodeType":"YulExpressionStatement","src":"15064:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14965:117:64","nodeType":"YulFunctionDefinition","src":"14965:117:64"},{"body":{"nativeSrc":"15154:241:64","nodeType":"YulBlock","src":"15154:241:64","statements":[{"body":{"nativeSrc":"15259:22:64","nodeType":"YulBlock","src":"15259:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"15261:16:64","nodeType":"YulIdentifier","src":"15261:16:64"},"nativeSrc":"15261:18:64","nodeType":"YulFunctionCall","src":"15261:18:64"},"nativeSrc":"15261:18:64","nodeType":"YulExpressionStatement","src":"15261:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"15231:6:64","nodeType":"YulIdentifier","src":"15231:6:64"},{"kind":"number","nativeSrc":"15239:18:64","nodeType":"YulLiteral","src":"15239:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15228:2:64","nodeType":"YulIdentifier","src":"15228:2:64"},"nativeSrc":"15228:30:64","nodeType":"YulFunctionCall","src":"15228:30:64"},"nativeSrc":"15225:56:64","nodeType":"YulIf","src":"15225:56:64"},{"nativeSrc":"15291:37:64","nodeType":"YulAssignment","src":"15291:37:64","value":{"arguments":[{"name":"length","nativeSrc":"15321:6:64","nodeType":"YulIdentifier","src":"15321:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15299:21:64","nodeType":"YulIdentifier","src":"15299:21:64"},"nativeSrc":"15299:29:64","nodeType":"YulFunctionCall","src":"15299:29:64"},"variableNames":[{"name":"size","nativeSrc":"15291:4:64","nodeType":"YulIdentifier","src":"15291:4:64"}]},{"nativeSrc":"15365:23:64","nodeType":"YulAssignment","src":"15365:23:64","value":{"arguments":[{"name":"size","nativeSrc":"15377:4:64","nodeType":"YulIdentifier","src":"15377:4:64"},{"kind":"number","nativeSrc":"15383:4:64","nodeType":"YulLiteral","src":"15383:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15373:3:64","nodeType":"YulIdentifier","src":"15373:3:64"},"nativeSrc":"15373:15:64","nodeType":"YulFunctionCall","src":"15373:15:64"},"variableNames":[{"name":"size","nativeSrc":"15365:4:64","nodeType":"YulIdentifier","src":"15365:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"15088:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"15138:6:64","nodeType":"YulTypedName","src":"15138:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"15149:4:64","nodeType":"YulTypedName","src":"15149:4:64","type":""}],"src":"15088:307:64"},{"body":{"nativeSrc":"15465:84:64","nodeType":"YulBlock","src":"15465:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"15489:3:64","nodeType":"YulIdentifier","src":"15489:3:64"},{"name":"src","nativeSrc":"15494:3:64","nodeType":"YulIdentifier","src":"15494:3:64"},{"name":"length","nativeSrc":"15499:6:64","nodeType":"YulIdentifier","src":"15499:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"15476:12:64","nodeType":"YulIdentifier","src":"15476:12:64"},"nativeSrc":"15476:30:64","nodeType":"YulFunctionCall","src":"15476:30:64"},"nativeSrc":"15476:30:64","nodeType":"YulExpressionStatement","src":"15476:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"15526:3:64","nodeType":"YulIdentifier","src":"15526:3:64"},{"name":"length","nativeSrc":"15531:6:64","nodeType":"YulIdentifier","src":"15531:6:64"}],"functionName":{"name":"add","nativeSrc":"15522:3:64","nodeType":"YulIdentifier","src":"15522:3:64"},"nativeSrc":"15522:16:64","nodeType":"YulFunctionCall","src":"15522:16:64"},{"kind":"number","nativeSrc":"15540:1:64","nodeType":"YulLiteral","src":"15540:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"15515:6:64","nodeType":"YulIdentifier","src":"15515:6:64"},"nativeSrc":"15515:27:64","nodeType":"YulFunctionCall","src":"15515:27:64"},"nativeSrc":"15515:27:64","nodeType":"YulExpressionStatement","src":"15515:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15401:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15447:3:64","nodeType":"YulTypedName","src":"15447:3:64","type":""},{"name":"dst","nativeSrc":"15452:3:64","nodeType":"YulTypedName","src":"15452:3:64","type":""},{"name":"length","nativeSrc":"15457:6:64","nodeType":"YulTypedName","src":"15457:6:64","type":""}],"src":"15401:148:64"},{"body":{"nativeSrc":"15638:340:64","nodeType":"YulBlock","src":"15638:340:64","statements":[{"nativeSrc":"15648:74:64","nodeType":"YulAssignment","src":"15648:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"15714:6:64","nodeType":"YulIdentifier","src":"15714:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"15673:40:64","nodeType":"YulIdentifier","src":"15673:40:64"},"nativeSrc":"15673:48:64","nodeType":"YulFunctionCall","src":"15673:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"15657:15:64","nodeType":"YulIdentifier","src":"15657:15:64"},"nativeSrc":"15657:65:64","nodeType":"YulFunctionCall","src":"15657:65:64"},"variableNames":[{"name":"array","nativeSrc":"15648:5:64","nodeType":"YulIdentifier","src":"15648:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"15738:5:64","nodeType":"YulIdentifier","src":"15738:5:64"},{"name":"length","nativeSrc":"15745:6:64","nodeType":"YulIdentifier","src":"15745:6:64"}],"functionName":{"name":"mstore","nativeSrc":"15731:6:64","nodeType":"YulIdentifier","src":"15731:6:64"},"nativeSrc":"15731:21:64","nodeType":"YulFunctionCall","src":"15731:21:64"},"nativeSrc":"15731:21:64","nodeType":"YulExpressionStatement","src":"15731:21:64"},{"nativeSrc":"15761:27:64","nodeType":"YulVariableDeclaration","src":"15761:27:64","value":{"arguments":[{"name":"array","nativeSrc":"15776:5:64","nodeType":"YulIdentifier","src":"15776:5:64"},{"kind":"number","nativeSrc":"15783:4:64","nodeType":"YulLiteral","src":"15783:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15772:3:64","nodeType":"YulIdentifier","src":"15772:3:64"},"nativeSrc":"15772:16:64","nodeType":"YulFunctionCall","src":"15772:16:64"},"variables":[{"name":"dst","nativeSrc":"15765:3:64","nodeType":"YulTypedName","src":"15765:3:64","type":""}]},{"body":{"nativeSrc":"15826:83:64","nodeType":"YulBlock","src":"15826:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"15828:77:64","nodeType":"YulIdentifier","src":"15828:77:64"},"nativeSrc":"15828:79:64","nodeType":"YulFunctionCall","src":"15828:79:64"},"nativeSrc":"15828:79:64","nodeType":"YulExpressionStatement","src":"15828:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15807:3:64","nodeType":"YulIdentifier","src":"15807:3:64"},{"name":"length","nativeSrc":"15812:6:64","nodeType":"YulIdentifier","src":"15812:6:64"}],"functionName":{"name":"add","nativeSrc":"15803:3:64","nodeType":"YulIdentifier","src":"15803:3:64"},"nativeSrc":"15803:16:64","nodeType":"YulFunctionCall","src":"15803:16:64"},{"name":"end","nativeSrc":"15821:3:64","nodeType":"YulIdentifier","src":"15821:3:64"}],"functionName":{"name":"gt","nativeSrc":"15800:2:64","nodeType":"YulIdentifier","src":"15800:2:64"},"nativeSrc":"15800:25:64","nodeType":"YulFunctionCall","src":"15800:25:64"},"nativeSrc":"15797:112:64","nodeType":"YulIf","src":"15797:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"15955:3:64","nodeType":"YulIdentifier","src":"15955:3:64"},{"name":"dst","nativeSrc":"15960:3:64","nodeType":"YulIdentifier","src":"15960:3:64"},{"name":"length","nativeSrc":"15965:6:64","nodeType":"YulIdentifier","src":"15965:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"15918:36:64","nodeType":"YulIdentifier","src":"15918:36:64"},"nativeSrc":"15918:54:64","nodeType":"YulFunctionCall","src":"15918:54:64"},"nativeSrc":"15918:54:64","nodeType":"YulExpressionStatement","src":"15918:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"15555:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"15611:3:64","nodeType":"YulTypedName","src":"15611:3:64","type":""},{"name":"length","nativeSrc":"15616:6:64","nodeType":"YulTypedName","src":"15616:6:64","type":""},{"name":"end","nativeSrc":"15624:3:64","nodeType":"YulTypedName","src":"15624:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"15632:5:64","nodeType":"YulTypedName","src":"15632:5:64","type":""}],"src":"15555:423:64"},{"body":{"nativeSrc":"16058:277:64","nodeType":"YulBlock","src":"16058:277:64","statements":[{"body":{"nativeSrc":"16107:83:64","nodeType":"YulBlock","src":"16107:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"16109:77:64","nodeType":"YulIdentifier","src":"16109:77:64"},"nativeSrc":"16109:79:64","nodeType":"YulFunctionCall","src":"16109:79:64"},"nativeSrc":"16109:79:64","nodeType":"YulExpressionStatement","src":"16109:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"16086:6:64","nodeType":"YulIdentifier","src":"16086:6:64"},{"kind":"number","nativeSrc":"16094:4:64","nodeType":"YulLiteral","src":"16094:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"16082:3:64","nodeType":"YulIdentifier","src":"16082:3:64"},"nativeSrc":"16082:17:64","nodeType":"YulFunctionCall","src":"16082:17:64"},{"name":"end","nativeSrc":"16101:3:64","nodeType":"YulIdentifier","src":"16101:3:64"}],"functionName":{"name":"slt","nativeSrc":"16078:3:64","nodeType":"YulIdentifier","src":"16078:3:64"},"nativeSrc":"16078:27:64","nodeType":"YulFunctionCall","src":"16078:27:64"}],"functionName":{"name":"iszero","nativeSrc":"16071:6:64","nodeType":"YulIdentifier","src":"16071:6:64"},"nativeSrc":"16071:35:64","nodeType":"YulFunctionCall","src":"16071:35:64"},"nativeSrc":"16068:122:64","nodeType":"YulIf","src":"16068:122:64"},{"nativeSrc":"16199:34:64","nodeType":"YulVariableDeclaration","src":"16199:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"16226:6:64","nodeType":"YulIdentifier","src":"16226:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"16213:12:64","nodeType":"YulIdentifier","src":"16213:12:64"},"nativeSrc":"16213:20:64","nodeType":"YulFunctionCall","src":"16213:20:64"},"variables":[{"name":"length","nativeSrc":"16203:6:64","nodeType":"YulTypedName","src":"16203:6:64","type":""}]},{"nativeSrc":"16242:87:64","nodeType":"YulAssignment","src":"16242:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"16302:6:64","nodeType":"YulIdentifier","src":"16302:6:64"},{"kind":"number","nativeSrc":"16310:4:64","nodeType":"YulLiteral","src":"16310:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16298:3:64","nodeType":"YulIdentifier","src":"16298:3:64"},"nativeSrc":"16298:17:64","nodeType":"YulFunctionCall","src":"16298:17:64"},{"name":"length","nativeSrc":"16317:6:64","nodeType":"YulIdentifier","src":"16317:6:64"},{"name":"end","nativeSrc":"16325:3:64","nodeType":"YulIdentifier","src":"16325:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"16251:46:64","nodeType":"YulIdentifier","src":"16251:46:64"},"nativeSrc":"16251:78:64","nodeType":"YulFunctionCall","src":"16251:78:64"},"variableNames":[{"name":"array","nativeSrc":"16242:5:64","nodeType":"YulIdentifier","src":"16242:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15997:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"16036:6:64","nodeType":"YulTypedName","src":"16036:6:64","type":""},{"name":"end","nativeSrc":"16044:3:64","nodeType":"YulTypedName","src":"16044:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"16052:5:64","nodeType":"YulTypedName","src":"16052:5:64","type":""}],"src":"15997:338:64"},{"body":{"nativeSrc":"16464:665:64","nodeType":"YulBlock","src":"16464:665:64","statements":[{"body":{"nativeSrc":"16508:83:64","nodeType":"YulBlock","src":"16508:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"16510:77:64","nodeType":"YulIdentifier","src":"16510:77:64"},"nativeSrc":"16510:79:64","nodeType":"YulFunctionCall","src":"16510:79:64"},"nativeSrc":"16510:79:64","nodeType":"YulExpressionStatement","src":"16510:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"16485:3:64","nodeType":"YulIdentifier","src":"16485:3:64"},{"name":"headStart","nativeSrc":"16490:9:64","nodeType":"YulIdentifier","src":"16490:9:64"}],"functionName":{"name":"sub","nativeSrc":"16481:3:64","nodeType":"YulIdentifier","src":"16481:3:64"},"nativeSrc":"16481:19:64","nodeType":"YulFunctionCall","src":"16481:19:64"},{"kind":"number","nativeSrc":"16502:4:64","nodeType":"YulLiteral","src":"16502:4:64","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"16477:3:64","nodeType":"YulIdentifier","src":"16477:3:64"},"nativeSrc":"16477:30:64","nodeType":"YulFunctionCall","src":"16477:30:64"},"nativeSrc":"16474:117:64","nodeType":"YulIf","src":"16474:117:64"},{"nativeSrc":"16600:30:64","nodeType":"YulAssignment","src":"16600:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"16625:4:64","nodeType":"YulLiteral","src":"16625:4:64","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"16609:15:64","nodeType":"YulIdentifier","src":"16609:15:64"},"nativeSrc":"16609:21:64","nodeType":"YulFunctionCall","src":"16609:21:64"},"variableNames":[{"name":"value","nativeSrc":"16600:5:64","nodeType":"YulIdentifier","src":"16600:5:64"}]},{"nativeSrc":"16640:152:64","nodeType":"YulBlock","src":"16640:152:64","statements":[{"nativeSrc":"16677:15:64","nodeType":"YulVariableDeclaration","src":"16677:15:64","value":{"kind":"number","nativeSrc":"16691:1:64","nodeType":"YulLiteral","src":"16691:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16681:6:64","nodeType":"YulTypedName","src":"16681:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16717:5:64","nodeType":"YulIdentifier","src":"16717:5:64"},{"kind":"number","nativeSrc":"16724:4:64","nodeType":"YulLiteral","src":"16724:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"16713:3:64","nodeType":"YulIdentifier","src":"16713:3:64"},"nativeSrc":"16713:16:64","nodeType":"YulFunctionCall","src":"16713:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16756:9:64","nodeType":"YulIdentifier","src":"16756:9:64"},{"name":"offset","nativeSrc":"16767:6:64","nodeType":"YulIdentifier","src":"16767:6:64"}],"functionName":{"name":"add","nativeSrc":"16752:3:64","nodeType":"YulIdentifier","src":"16752:3:64"},"nativeSrc":"16752:22:64","nodeType":"YulFunctionCall","src":"16752:22:64"},{"name":"end","nativeSrc":"16776:3:64","nodeType":"YulIdentifier","src":"16776:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16731:20:64","nodeType":"YulIdentifier","src":"16731:20:64"},"nativeSrc":"16731:49:64","nodeType":"YulFunctionCall","src":"16731:49:64"}],"functionName":{"name":"mstore","nativeSrc":"16706:6:64","nodeType":"YulIdentifier","src":"16706:6:64"},"nativeSrc":"16706:75:64","nodeType":"YulFunctionCall","src":"16706:75:64"},"nativeSrc":"16706:75:64","nodeType":"YulExpressionStatement","src":"16706:75:64"}]},{"nativeSrc":"16802:320:64","nodeType":"YulBlock","src":"16802:320:64","statements":[{"nativeSrc":"16837:46:64","nodeType":"YulVariableDeclaration","src":"16837:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16868:9:64","nodeType":"YulIdentifier","src":"16868:9:64"},{"kind":"number","nativeSrc":"16879:2:64","nodeType":"YulLiteral","src":"16879:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16864:3:64","nodeType":"YulIdentifier","src":"16864:3:64"},"nativeSrc":"16864:18:64","nodeType":"YulFunctionCall","src":"16864:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"16851:12:64","nodeType":"YulIdentifier","src":"16851:12:64"},"nativeSrc":"16851:32:64","nodeType":"YulFunctionCall","src":"16851:32:64"},"variables":[{"name":"offset","nativeSrc":"16841:6:64","nodeType":"YulTypedName","src":"16841:6:64","type":""}]},{"body":{"nativeSrc":"16930:83:64","nodeType":"YulBlock","src":"16930:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"16932:77:64","nodeType":"YulIdentifier","src":"16932:77:64"},"nativeSrc":"16932:79:64","nodeType":"YulFunctionCall","src":"16932:79:64"},"nativeSrc":"16932:79:64","nodeType":"YulExpressionStatement","src":"16932:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16902:6:64","nodeType":"YulIdentifier","src":"16902:6:64"},{"kind":"number","nativeSrc":"16910:18:64","nodeType":"YulLiteral","src":"16910:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16899:2:64","nodeType":"YulIdentifier","src":"16899:2:64"},"nativeSrc":"16899:30:64","nodeType":"YulFunctionCall","src":"16899:30:64"},"nativeSrc":"16896:117:64","nodeType":"YulIf","src":"16896:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17038:5:64","nodeType":"YulIdentifier","src":"17038:5:64"},{"kind":"number","nativeSrc":"17045:4:64","nodeType":"YulLiteral","src":"17045:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17034:3:64","nodeType":"YulIdentifier","src":"17034:3:64"},"nativeSrc":"17034:16:64","nodeType":"YulFunctionCall","src":"17034:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17086:9:64","nodeType":"YulIdentifier","src":"17086:9:64"},{"name":"offset","nativeSrc":"17097:6:64","nodeType":"YulIdentifier","src":"17097:6:64"}],"functionName":{"name":"add","nativeSrc":"17082:3:64","nodeType":"YulIdentifier","src":"17082:3:64"},"nativeSrc":"17082:22:64","nodeType":"YulFunctionCall","src":"17082:22:64"},{"name":"end","nativeSrc":"17106:3:64","nodeType":"YulIdentifier","src":"17106:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17052:29:64","nodeType":"YulIdentifier","src":"17052:29:64"},"nativeSrc":"17052:58:64","nodeType":"YulFunctionCall","src":"17052:58:64"}],"functionName":{"name":"mstore","nativeSrc":"17027:6:64","nodeType":"YulIdentifier","src":"17027:6:64"},"nativeSrc":"17027:84:64","nodeType":"YulFunctionCall","src":"17027:84:64"},"nativeSrc":"17027:84:64","nodeType":"YulExpressionStatement","src":"17027:84:64"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"16378:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16439:9:64","nodeType":"YulTypedName","src":"16439:9:64","type":""},{"name":"end","nativeSrc":"16450:3:64","nodeType":"YulTypedName","src":"16450:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16458:5:64","nodeType":"YulTypedName","src":"16458:5:64","type":""}],"src":"16378:751:64"},{"body":{"nativeSrc":"17232:454:64","nodeType":"YulBlock","src":"17232:454:64","statements":[{"body":{"nativeSrc":"17278:83:64","nodeType":"YulBlock","src":"17278:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17280:77:64","nodeType":"YulIdentifier","src":"17280:77:64"},"nativeSrc":"17280:79:64","nodeType":"YulFunctionCall","src":"17280:79:64"},"nativeSrc":"17280:79:64","nodeType":"YulExpressionStatement","src":"17280:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17253:7:64","nodeType":"YulIdentifier","src":"17253:7:64"},{"name":"headStart","nativeSrc":"17262:9:64","nodeType":"YulIdentifier","src":"17262:9:64"}],"functionName":{"name":"sub","nativeSrc":"17249:3:64","nodeType":"YulIdentifier","src":"17249:3:64"},"nativeSrc":"17249:23:64","nodeType":"YulFunctionCall","src":"17249:23:64"},{"kind":"number","nativeSrc":"17274:2:64","nodeType":"YulLiteral","src":"17274:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17245:3:64","nodeType":"YulIdentifier","src":"17245:3:64"},"nativeSrc":"17245:32:64","nodeType":"YulFunctionCall","src":"17245:32:64"},"nativeSrc":"17242:119:64","nodeType":"YulIf","src":"17242:119:64"},{"nativeSrc":"17371:308:64","nodeType":"YulBlock","src":"17371:308:64","statements":[{"nativeSrc":"17386:45:64","nodeType":"YulVariableDeclaration","src":"17386:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17417:9:64","nodeType":"YulIdentifier","src":"17417:9:64"},{"kind":"number","nativeSrc":"17428:1:64","nodeType":"YulLiteral","src":"17428:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17413:3:64","nodeType":"YulIdentifier","src":"17413:3:64"},"nativeSrc":"17413:17:64","nodeType":"YulFunctionCall","src":"17413:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"17400:12:64","nodeType":"YulIdentifier","src":"17400:12:64"},"nativeSrc":"17400:31:64","nodeType":"YulFunctionCall","src":"17400:31:64"},"variables":[{"name":"offset","nativeSrc":"17390:6:64","nodeType":"YulTypedName","src":"17390:6:64","type":""}]},{"body":{"nativeSrc":"17478:83:64","nodeType":"YulBlock","src":"17478:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17480:77:64","nodeType":"YulIdentifier","src":"17480:77:64"},"nativeSrc":"17480:79:64","nodeType":"YulFunctionCall","src":"17480:79:64"},"nativeSrc":"17480:79:64","nodeType":"YulExpressionStatement","src":"17480:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17450:6:64","nodeType":"YulIdentifier","src":"17450:6:64"},{"kind":"number","nativeSrc":"17458:18:64","nodeType":"YulLiteral","src":"17458:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17447:2:64","nodeType":"YulIdentifier","src":"17447:2:64"},"nativeSrc":"17447:30:64","nodeType":"YulFunctionCall","src":"17447:30:64"},"nativeSrc":"17444:117:64","nodeType":"YulIf","src":"17444:117:64"},{"nativeSrc":"17575:94:64","nodeType":"YulAssignment","src":"17575:94:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17641:9:64","nodeType":"YulIdentifier","src":"17641:9:64"},{"name":"offset","nativeSrc":"17652:6:64","nodeType":"YulIdentifier","src":"17652:6:64"}],"functionName":{"name":"add","nativeSrc":"17637:3:64","nodeType":"YulIdentifier","src":"17637:3:64"},"nativeSrc":"17637:22:64","nodeType":"YulFunctionCall","src":"17637:22:64"},{"name":"dataEnd","nativeSrc":"17661:7:64","nodeType":"YulIdentifier","src":"17661:7:64"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"17585:51:64","nodeType":"YulIdentifier","src":"17585:51:64"},"nativeSrc":"17585:84:64","nodeType":"YulFunctionCall","src":"17585:84:64"},"variableNames":[{"name":"value0","nativeSrc":"17575:6:64","nodeType":"YulIdentifier","src":"17575:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"17135:551:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17202:9:64","nodeType":"YulTypedName","src":"17202:9:64","type":""},{"name":"dataEnd","nativeSrc":"17213:7:64","nodeType":"YulTypedName","src":"17213:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17225:6:64","nodeType":"YulTypedName","src":"17225:6:64","type":""}],"src":"17135:551:64"},{"body":{"nativeSrc":"17735:190:64","nodeType":"YulBlock","src":"17735:190:64","statements":[{"nativeSrc":"17745:33:64","nodeType":"YulAssignment","src":"17745:33:64","value":{"arguments":[{"name":"value","nativeSrc":"17772:5:64","nodeType":"YulIdentifier","src":"17772:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"17754:17:64","nodeType":"YulIdentifier","src":"17754:17:64"},"nativeSrc":"17754:24:64","nodeType":"YulFunctionCall","src":"17754:24:64"},"variableNames":[{"name":"value","nativeSrc":"17745:5:64","nodeType":"YulIdentifier","src":"17745:5:64"}]},{"body":{"nativeSrc":"17868:22:64","nodeType":"YulBlock","src":"17868:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"17870:16:64","nodeType":"YulIdentifier","src":"17870:16:64"},"nativeSrc":"17870:18:64","nodeType":"YulFunctionCall","src":"17870:18:64"},"nativeSrc":"17870:18:64","nodeType":"YulExpressionStatement","src":"17870:18:64"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"17793:5:64","nodeType":"YulIdentifier","src":"17793:5:64"},{"kind":"number","nativeSrc":"17800:66:64","nodeType":"YulLiteral","src":"17800:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"17790:2:64","nodeType":"YulIdentifier","src":"17790:2:64"},"nativeSrc":"17790:77:64","nodeType":"YulFunctionCall","src":"17790:77:64"},"nativeSrc":"17787:103:64","nodeType":"YulIf","src":"17787:103:64"},{"nativeSrc":"17899:20:64","nodeType":"YulAssignment","src":"17899:20:64","value":{"arguments":[{"name":"value","nativeSrc":"17910:5:64","nodeType":"YulIdentifier","src":"17910:5:64"},{"kind":"number","nativeSrc":"17917:1:64","nodeType":"YulLiteral","src":"17917:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17906:3:64","nodeType":"YulIdentifier","src":"17906:3:64"},"nativeSrc":"17906:13:64","nodeType":"YulFunctionCall","src":"17906:13:64"},"variableNames":[{"name":"ret","nativeSrc":"17899:3:64","nodeType":"YulIdentifier","src":"17899:3:64"}]}]},"name":"increment_t_uint256","nativeSrc":"17692:233:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17721:5:64","nodeType":"YulTypedName","src":"17721:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"17731:3:64","nodeType":"YulTypedName","src":"17731:3:64","type":""}],"src":"17692:233:64"},{"body":{"nativeSrc":"17973:52:64","nodeType":"YulBlock","src":"17973:52:64","statements":[{"nativeSrc":"17983:35:64","nodeType":"YulAssignment","src":"17983:35:64","value":{"arguments":[{"kind":"number","nativeSrc":"18008:2:64","nodeType":"YulLiteral","src":"18008:2:64","type":"","value":"96"},{"name":"value","nativeSrc":"18012:5:64","nodeType":"YulIdentifier","src":"18012:5:64"}],"functionName":{"name":"shl","nativeSrc":"18004:3:64","nodeType":"YulIdentifier","src":"18004:3:64"},"nativeSrc":"18004:14:64","nodeType":"YulFunctionCall","src":"18004:14:64"},"variableNames":[{"name":"newValue","nativeSrc":"17983:8:64","nodeType":"YulIdentifier","src":"17983:8:64"}]}]},"name":"shift_left_96","nativeSrc":"17931:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17954:5:64","nodeType":"YulTypedName","src":"17954:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"17964:8:64","nodeType":"YulTypedName","src":"17964:8:64","type":""}],"src":"17931:94:64"},{"body":{"nativeSrc":"18078:47:64","nodeType":"YulBlock","src":"18078:47:64","statements":[{"nativeSrc":"18088:31:64","nodeType":"YulAssignment","src":"18088:31:64","value":{"arguments":[{"name":"value","nativeSrc":"18113:5:64","nodeType":"YulIdentifier","src":"18113:5:64"}],"functionName":{"name":"shift_left_96","nativeSrc":"18099:13:64","nodeType":"YulIdentifier","src":"18099:13:64"},"nativeSrc":"18099:20:64","nodeType":"YulFunctionCall","src":"18099:20:64"},"variableNames":[{"name":"aligned","nativeSrc":"18088:7:64","nodeType":"YulIdentifier","src":"18088:7:64"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"18031:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18060:5:64","nodeType":"YulTypedName","src":"18060:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"18070:7:64","nodeType":"YulTypedName","src":"18070:7:64","type":""}],"src":"18031:94:64"},{"body":{"nativeSrc":"18178:53:64","nodeType":"YulBlock","src":"18178:53:64","statements":[{"nativeSrc":"18188:37:64","nodeType":"YulAssignment","src":"18188:37:64","value":{"arguments":[{"name":"value","nativeSrc":"18219:5:64","nodeType":"YulIdentifier","src":"18219:5:64"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"18199:19:64","nodeType":"YulIdentifier","src":"18199:19:64"},"nativeSrc":"18199:26:64","nodeType":"YulFunctionCall","src":"18199:26:64"},"variableNames":[{"name":"aligned","nativeSrc":"18188:7:64","nodeType":"YulIdentifier","src":"18188:7:64"}]}]},"name":"leftAlign_t_address","nativeSrc":"18131:100:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18160:5:64","nodeType":"YulTypedName","src":"18160:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"18170:7:64","nodeType":"YulTypedName","src":"18170:7:64","type":""}],"src":"18131:100:64"},{"body":{"nativeSrc":"18320:74:64","nodeType":"YulBlock","src":"18320:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18337:3:64","nodeType":"YulIdentifier","src":"18337:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18380:5:64","nodeType":"YulIdentifier","src":"18380:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"18362:17:64","nodeType":"YulIdentifier","src":"18362:17:64"},"nativeSrc":"18362:24:64","nodeType":"YulFunctionCall","src":"18362:24:64"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"18342:19:64","nodeType":"YulIdentifier","src":"18342:19:64"},"nativeSrc":"18342:45:64","nodeType":"YulFunctionCall","src":"18342:45:64"}],"functionName":{"name":"mstore","nativeSrc":"18330:6:64","nodeType":"YulIdentifier","src":"18330:6:64"},"nativeSrc":"18330:58:64","nodeType":"YulFunctionCall","src":"18330:58:64"},"nativeSrc":"18330:58:64","nodeType":"YulExpressionStatement","src":"18330:58:64"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"18237:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18308:5:64","nodeType":"YulTypedName","src":"18308:5:64","type":""},{"name":"pos","nativeSrc":"18315:3:64","nodeType":"YulTypedName","src":"18315:3:64","type":""}],"src":"18237:157:64"},{"body":{"nativeSrc":"18447:32:64","nodeType":"YulBlock","src":"18447:32:64","statements":[{"nativeSrc":"18457:16:64","nodeType":"YulAssignment","src":"18457:16:64","value":{"name":"value","nativeSrc":"18468:5:64","nodeType":"YulIdentifier","src":"18468:5:64"},"variableNames":[{"name":"aligned","nativeSrc":"18457:7:64","nodeType":"YulIdentifier","src":"18457:7:64"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"18400:79:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18429:5:64","nodeType":"YulTypedName","src":"18429:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"18439:7:64","nodeType":"YulTypedName","src":"18439:7:64","type":""}],"src":"18400:79:64"},{"body":{"nativeSrc":"18568:74:64","nodeType":"YulBlock","src":"18568:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18585:3:64","nodeType":"YulIdentifier","src":"18585:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18628:5:64","nodeType":"YulIdentifier","src":"18628:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"18610:17:64","nodeType":"YulIdentifier","src":"18610:17:64"},"nativeSrc":"18610:24:64","nodeType":"YulFunctionCall","src":"18610:24:64"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"18590:19:64","nodeType":"YulIdentifier","src":"18590:19:64"},"nativeSrc":"18590:45:64","nodeType":"YulFunctionCall","src":"18590:45:64"}],"functionName":{"name":"mstore","nativeSrc":"18578:6:64","nodeType":"YulIdentifier","src":"18578:6:64"},"nativeSrc":"18578:58:64","nodeType":"YulFunctionCall","src":"18578:58:64"},"nativeSrc":"18578:58:64","nodeType":"YulExpressionStatement","src":"18578:58:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"18485:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18556:5:64","nodeType":"YulTypedName","src":"18556:5:64","type":""},{"name":"pos","nativeSrc":"18563:3:64","nodeType":"YulTypedName","src":"18563:3:64","type":""}],"src":"18485:157:64"},{"body":{"nativeSrc":"18820:366:64","nodeType":"YulBlock","src":"18820:366:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"18893:6:64","nodeType":"YulIdentifier","src":"18893:6:64"},{"name":"pos","nativeSrc":"18902:3:64","nodeType":"YulIdentifier","src":"18902:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"18831:61:64","nodeType":"YulIdentifier","src":"18831:61:64"},"nativeSrc":"18831:75:64","nodeType":"YulFunctionCall","src":"18831:75:64"},"nativeSrc":"18831:75:64","nodeType":"YulExpressionStatement","src":"18831:75:64"},{"nativeSrc":"18915:19:64","nodeType":"YulAssignment","src":"18915:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"18926:3:64","nodeType":"YulIdentifier","src":"18926:3:64"},{"kind":"number","nativeSrc":"18931:2:64","nodeType":"YulLiteral","src":"18931:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"18922:3:64","nodeType":"YulIdentifier","src":"18922:3:64"},"nativeSrc":"18922:12:64","nodeType":"YulFunctionCall","src":"18922:12:64"},"variableNames":[{"name":"pos","nativeSrc":"18915:3:64","nodeType":"YulIdentifier","src":"18915:3:64"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19006:6:64","nodeType":"YulIdentifier","src":"19006:6:64"},{"name":"pos","nativeSrc":"19015:3:64","nodeType":"YulIdentifier","src":"19015:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"18944:61:64","nodeType":"YulIdentifier","src":"18944:61:64"},"nativeSrc":"18944:75:64","nodeType":"YulFunctionCall","src":"18944:75:64"},"nativeSrc":"18944:75:64","nodeType":"YulExpressionStatement","src":"18944:75:64"},{"nativeSrc":"19028:19:64","nodeType":"YulAssignment","src":"19028:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"19039:3:64","nodeType":"YulIdentifier","src":"19039:3:64"},{"kind":"number","nativeSrc":"19044:2:64","nodeType":"YulLiteral","src":"19044:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"19035:3:64","nodeType":"YulIdentifier","src":"19035:3:64"},"nativeSrc":"19035:12:64","nodeType":"YulFunctionCall","src":"19035:12:64"},"variableNames":[{"name":"pos","nativeSrc":"19028:3:64","nodeType":"YulIdentifier","src":"19028:3:64"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"19119:6:64","nodeType":"YulIdentifier","src":"19119:6:64"},{"name":"pos","nativeSrc":"19128:3:64","nodeType":"YulIdentifier","src":"19128:3:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"19057:61:64","nodeType":"YulIdentifier","src":"19057:61:64"},"nativeSrc":"19057:75:64","nodeType":"YulFunctionCall","src":"19057:75:64"},"nativeSrc":"19057:75:64","nodeType":"YulExpressionStatement","src":"19057:75:64"},{"nativeSrc":"19141:19:64","nodeType":"YulAssignment","src":"19141:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"19152:3:64","nodeType":"YulIdentifier","src":"19152:3:64"},{"kind":"number","nativeSrc":"19157:2:64","nodeType":"YulLiteral","src":"19157:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19148:3:64","nodeType":"YulIdentifier","src":"19148:3:64"},"nativeSrc":"19148:12:64","nodeType":"YulFunctionCall","src":"19148:12:64"},"variableNames":[{"name":"pos","nativeSrc":"19141:3:64","nodeType":"YulIdentifier","src":"19141:3:64"}]},{"nativeSrc":"19170:10:64","nodeType":"YulAssignment","src":"19170:10:64","value":{"name":"pos","nativeSrc":"19177:3:64","nodeType":"YulIdentifier","src":"19177:3:64"},"variableNames":[{"name":"end","nativeSrc":"19170:3:64","nodeType":"YulIdentifier","src":"19170:3:64"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"18648:538:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18783:3:64","nodeType":"YulTypedName","src":"18783:3:64","type":""},{"name":"value2","nativeSrc":"18789:6:64","nodeType":"YulTypedName","src":"18789:6:64","type":""},{"name":"value1","nativeSrc":"18797:6:64","nodeType":"YulTypedName","src":"18797:6:64","type":""},{"name":"value0","nativeSrc":"18805:6:64","nodeType":"YulTypedName","src":"18805:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18816:3:64","nodeType":"YulTypedName","src":"18816:3:64","type":""}],"src":"18648:538:64"},{"body":{"nativeSrc":"19255:80:64","nodeType":"YulBlock","src":"19255:80:64","statements":[{"nativeSrc":"19265:22:64","nodeType":"YulAssignment","src":"19265:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"19280:6:64","nodeType":"YulIdentifier","src":"19280:6:64"}],"functionName":{"name":"mload","nativeSrc":"19274:5:64","nodeType":"YulIdentifier","src":"19274:5:64"},"nativeSrc":"19274:13:64","nodeType":"YulFunctionCall","src":"19274:13:64"},"variableNames":[{"name":"value","nativeSrc":"19265:5:64","nodeType":"YulIdentifier","src":"19265:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"19323:5:64","nodeType":"YulIdentifier","src":"19323:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"19296:26:64","nodeType":"YulIdentifier","src":"19296:26:64"},"nativeSrc":"19296:33:64","nodeType":"YulFunctionCall","src":"19296:33:64"},"nativeSrc":"19296:33:64","nodeType":"YulExpressionStatement","src":"19296:33:64"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19192:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19233:6:64","nodeType":"YulTypedName","src":"19233:6:64","type":""},{"name":"end","nativeSrc":"19241:3:64","nodeType":"YulTypedName","src":"19241:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19249:5:64","nodeType":"YulTypedName","src":"19249:5:64","type":""}],"src":"19192:143:64"},{"body":{"nativeSrc":"19418:274:64","nodeType":"YulBlock","src":"19418:274:64","statements":[{"body":{"nativeSrc":"19464:83:64","nodeType":"YulBlock","src":"19464:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19466:77:64","nodeType":"YulIdentifier","src":"19466:77:64"},"nativeSrc":"19466:79:64","nodeType":"YulFunctionCall","src":"19466:79:64"},"nativeSrc":"19466:79:64","nodeType":"YulExpressionStatement","src":"19466:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19439:7:64","nodeType":"YulIdentifier","src":"19439:7:64"},{"name":"headStart","nativeSrc":"19448:9:64","nodeType":"YulIdentifier","src":"19448:9:64"}],"functionName":{"name":"sub","nativeSrc":"19435:3:64","nodeType":"YulIdentifier","src":"19435:3:64"},"nativeSrc":"19435:23:64","nodeType":"YulFunctionCall","src":"19435:23:64"},{"kind":"number","nativeSrc":"19460:2:64","nodeType":"YulLiteral","src":"19460:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19431:3:64","nodeType":"YulIdentifier","src":"19431:3:64"},"nativeSrc":"19431:32:64","nodeType":"YulFunctionCall","src":"19431:32:64"},"nativeSrc":"19428:119:64","nodeType":"YulIf","src":"19428:119:64"},{"nativeSrc":"19557:128:64","nodeType":"YulBlock","src":"19557:128:64","statements":[{"nativeSrc":"19572:15:64","nodeType":"YulVariableDeclaration","src":"19572:15:64","value":{"kind":"number","nativeSrc":"19586:1:64","nodeType":"YulLiteral","src":"19586:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"19576:6:64","nodeType":"YulTypedName","src":"19576:6:64","type":""}]},{"nativeSrc":"19601:74:64","nodeType":"YulAssignment","src":"19601:74:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19647:9:64","nodeType":"YulIdentifier","src":"19647:9:64"},{"name":"offset","nativeSrc":"19658:6:64","nodeType":"YulIdentifier","src":"19658:6:64"}],"functionName":{"name":"add","nativeSrc":"19643:3:64","nodeType":"YulIdentifier","src":"19643:3:64"},"nativeSrc":"19643:22:64","nodeType":"YulFunctionCall","src":"19643:22:64"},{"name":"dataEnd","nativeSrc":"19667:7:64","nodeType":"YulIdentifier","src":"19667:7:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19611:31:64","nodeType":"YulIdentifier","src":"19611:31:64"},"nativeSrc":"19611:64:64","nodeType":"YulFunctionCall","src":"19611:64:64"},"variableNames":[{"name":"value0","nativeSrc":"19601:6:64","nodeType":"YulIdentifier","src":"19601:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"19341:351:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19388:9:64","nodeType":"YulTypedName","src":"19388:9:64","type":""},{"name":"dataEnd","nativeSrc":"19399:7:64","nodeType":"YulTypedName","src":"19399:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19411:6:64","nodeType":"YulTypedName","src":"19411:6:64","type":""}],"src":"19341:351:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct CGDAIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$17497_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // initialReward\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // rewardDecay\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // rewardBoost\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // totalBudget\n\n let offset := 128\n\n mstore(add(value, 0x80), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$17497_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$17497_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct Budget.FungiblePayload -> struct Budget.FungiblePayload\n function abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x20)\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr__to_t_struct$_FungiblePayload_$15465_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_assert_t_enum$_AssetType_$15450(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$15450(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$15450(value)\n }\n\n function convert_t_enum$_AssetType_$15450_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$15450(value)\n }\n\n function abi_encode_t_enum$_AssetType_$15450_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$15450_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$15450_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610129575f3560e01c806375ef18d0116100aa578063dcc59b6f1161006e578063dcc59b6f1461038c578063e18e6508146103b6578063f04e283e146103f2578063f1c30ec01461040e578063f2fde38b1461044a578063fee81cf41461046657610129565b806375ef18d0146102935780638da5cb5b146102c0578063c63ff8dd146102ea578063c78da39a14610326578063c884ef831461035057610129565b806338d52e0f116100f157806338d52e0f146101f1578063439fab911461021b5780634e7165a21461024357806354d1f13d1461027f578063715018a61461028957610129565b806301ffc9a71461012d57806307621eca14610169578063228cb7331461019357806325692962146101bd57806328d6183b146101c7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e919061129a565b6104a2565b60405161016091906112df565b60405180910390f35b348015610174575f80fd5b5061017d61051b565b60405161018a9190611310565b60405180910390f35b34801561019e575f80fd5b506101a76105c5565b6040516101b49190611310565b60405180910390f35b6101c56105cb565b005b3480156101d2575f80fd5b506101db61061c565b6040516101e89190611338565b60405180910390f35b3480156101fc575f80fd5b50610205610643565b6040516102129190611390565b60405180910390f35b348015610226575f80fd5b50610241600480360381019061023c919061140a565b610668565b005b34801561024e575f80fd5b506102696004803603810190610264919061140a565b610890565b60405161027691906114c5565b60405180910390f35b610287610960565b005b610291610999565b005b34801561029e575f80fd5b506102a76109ac565b6040516102b794939291906114e5565b60405180910390f35b3480156102cb575f80fd5b506102d46109c9565b6040516102e19190611390565b60405180910390f35b3480156102f5575f80fd5b50610310600480360381019061030b919061140a565b6109f1565b60405161031d91906112df565b60405180910390f35b348015610331575f80fd5b5061033a610b9b565b6040516103479190611310565b60405180910390f35b34801561035b575f80fd5b5061037660048036038101906103719190611552565b610ba1565b60405161038391906112df565b60405180910390f35b348015610397575f80fd5b506103a0610bbe565b6040516103ad9190611310565b60405180910390f35b3480156103c1575f80fd5b506103dc60048036038101906103d7919061140a565b610bc3565b6040516103e991906112df565b60405180910390f35b61040c60048036038101906104079190611552565b610beb565b005b348015610419575f80fd5b50610434600480360381019061042f919061140a565b610c29565b60405161044191906112df565b60405180910390f35b610464600480360381019061045f9190611552565b610d52565b005b348015610471575f80fd5b5061048c60048036038101906104879190611552565b610d7b565b6040516104999190611310565b60405180910390f35b5f7f31116297000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610514575061051382610d94565b5b9050919050565b5f806004600201544261052e91906115aa565b90505f61057b3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0d90919063ffffffff16565b90505f610e106004600101548461059291906115dd565b61059c919061164b565b6004600301546105ac919061167b565b90508181116105bb57806105bd565b815b935050505090565b60015481565b5f6105d4610e40565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f3111629700000000000000000000000000000000000000000000000000000000905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610671610e4a565b905080546003825580156106a35760018160011c14303b1061069a5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906106b491906117e1565b90505f6106e330835f015173ffffffffffffffffffffffffffffffffffffffff16610e0d90919063ffffffff16565b9050816080015181101561073957815f01518183608001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016107309392919061180c565b60405180910390fd5b5f8260200151148061074e57505f8260400151145b8061075c57505f8260600151145b8061076e575081602001518260800151105b156107a5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180608001604052808360400151815260200183606001518152602001428152602001836020015181525060045f820151815f0155602082015181600101556040820151816002015560608201518160030155905050816080015160088190555061085433610e73565b5050801561088b576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906108a291906117e1565b90506040518060800160405280600160028111156108c3576108c2611841565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084608001518152506040516020016109269190611897565b60405160208183030381529060405281525060405160200161094891906119ad565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b6109a1610f49565b6109aa5f610f80565b565b6004805f0154908060010154908060020154908060030154905084565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f6109fa610f49565b5f8383810190610a0a9190611ae6565b9050610a18815f0151611046565b610a4e576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610a5f90611b2d565b91905055505f610a6d61051b565b90504260046002018190555060045f01548111610a8e5760045f0154610a9f565b60045f015481610a9e91906115aa565b5b600460030181905550610af7825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111059092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610b6b93929190611bd9565b604051602081830303815290604052604051610b8791906114c5565b60405180910390a260019250505092915050565b60085481565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610bd49190611ae6565b9050610be2815f0151611046565b91505092915050565b610bf3610f49565b63389a75e1600c52805f526020600c208054421115610c1957636f5e88185f526004601cfd5b5f815550610c2681610f80565b50565b5f610c32610f49565b5f8383810190610c429190611ae6565b90505f8160200151806020019051810190610c5d9190611c29565b9050610cae825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111059092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f015184604051602001610d2293929190611bd9565b604051602081830303815290604052604051610d3e91906114c5565b60405180910390a260019250505092915050565b610d5a610f49565b8060601b610d6f57637448fbae5f526004601cfd5b610d7881610f80565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610e065750610e058261114e565b5b9050919050565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111c7565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f7e576382b429005f526004601cfd5b565b610f886111c7565b15610fed577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611043565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f8061105061051b565b90505f811180156110aa5750806110a73060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0d90919063ffffffff16565b10155b80156110fd575060025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b915050919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611145576390b8ec185f526004601cfd5b5f603452505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111c057506111bf826111cb565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61127981611245565b8114611283575f80fd5b50565b5f8135905061129481611270565b92915050565b5f602082840312156112af576112ae61123d565b5b5f6112bc84828501611286565b91505092915050565b5f8115159050919050565b6112d9816112c5565b82525050565b5f6020820190506112f25f8301846112d0565b92915050565b5f819050919050565b61130a816112f8565b82525050565b5f6020820190506113235f830184611301565b92915050565b61133281611245565b82525050565b5f60208201905061134b5f830184611329565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61137a82611351565b9050919050565b61138a81611370565b82525050565b5f6020820190506113a35f830184611381565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126113ca576113c96113a9565b5b8235905067ffffffffffffffff8111156113e7576113e66113ad565b5b602083019150836001820283011115611403576114026113b1565b5b9250929050565b5f80602083850312156114205761141f61123d565b5b5f83013567ffffffffffffffff81111561143d5761143c611241565b5b611449858286016113b5565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61149782611455565b6114a1818561145f565b93506114b181856020860161146f565b6114ba8161147d565b840191505092915050565b5f6020820190508181035f8301526114dd818461148d565b905092915050565b5f6080820190506114f85f830187611301565b6115056020830186611301565b6115126040830185611301565b61151f6060830184611301565b95945050505050565b61153181611370565b811461153b575f80fd5b50565b5f8135905061154c81611528565b92915050565b5f602082840312156115675761156661123d565b5b5f6115748482850161153e565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6115b4826112f8565b91506115bf836112f8565b92508282039050818111156115d7576115d661157d565b5b92915050565b5f6115e7826112f8565b91506115f2836112f8565b9250828202611600816112f8565b915082820484148315176116175761161661157d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611655826112f8565b9150611660836112f8565b9250826116705761166f61161e565b5b828204905092915050565b5f611685826112f8565b9150611690836112f8565b92508282019050808211156116a8576116a761157d565b5b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116e88261147d565b810181811067ffffffffffffffff82111715611707576117066116b2565b5b80604052505050565b5f611719611234565b905061172582826116df565b919050565b5f80fd5b611737816112f8565b8114611741575f80fd5b50565b5f813590506117528161172e565b92915050565b5f60a0828403121561176d5761176c6116ae565b5b61177760a0611710565b90505f6117868482850161153e565b5f83015250602061179984828501611744565b60208301525060406117ad84828501611744565b60408301525060606117c184828501611744565b60608301525060806117d584828501611744565b60808301525092915050565b5f60a082840312156117f6576117f561123d565b5b5f61180384828501611758565b91505092915050565b5f60608201905061181f5f830186611381565b61182c6020830185611301565b6118396040830184611301565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b611877816112f8565b82525050565b602082015f8201516118915f85018261186e565b50505050565b5f6020820190506118aa5f83018461187d565b92915050565b600381106118c1576118c0611841565b5b50565b5f8190506118d1826118b0565b919050565b5f6118e0826118c4565b9050919050565b6118f0816118d6565b82525050565b6118ff81611370565b82525050565b5f82825260208201905092915050565b5f61191f82611455565b6119298185611905565b935061193981856020860161146f565b6119428161147d565b840191505092915050565b5f608083015f8301516119625f8601826118e7565b50602083015161197560208601826118f6565b50604083015161198860408601826118f6565b50606083015184820360608601526119a08282611915565b9150508091505092915050565b5f6020820190508181035f8301526119c5818461194d565b905092915050565b5f80fd5b5f67ffffffffffffffff8211156119eb576119ea6116b2565b5b6119f48261147d565b9050602081019050919050565b828183375f83830152505050565b5f611a21611a1c846119d1565b611710565b905082815260208101848484011115611a3d57611a3c6119cd565b5b611a48848285611a01565b509392505050565b5f82601f830112611a6457611a636113a9565b5b8135611a74848260208601611a0f565b91505092915050565b5f60408284031215611a9257611a916116ae565b5b611a9c6040611710565b90505f611aab8482850161153e565b5f83015250602082013567ffffffffffffffff811115611ace57611acd61172a565b5b611ada84828501611a50565b60208301525092915050565b5f60208284031215611afb57611afa61123d565b5b5f82013567ffffffffffffffff811115611b1857611b17611241565b5b611b2484828501611a7d565b91505092915050565b5f611b37826112f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b6957611b6861157d565b5b600182019050919050565b5f8160601b9050919050565b5f611b8a82611b74565b9050919050565b5f611b9b82611b80565b9050919050565b611bb3611bae82611370565b611b91565b82525050565b5f819050919050565b611bd3611bce826112f8565b611bb9565b82525050565b5f611be48286611ba2565b601482019150611bf48285611ba2565b601482019150611c048284611bc2565b602082019150819050949350505050565b5f81519050611c238161172e565b92915050565b5f60208284031215611c3e57611c3d61123d565b5b5f611c4b84828501611c15565b9150509291505056fea264697066735822122086e8fcf0781064379931bf3b076395baded394e0cb30f9a8d5f272ef2e78a58764736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x75EF18D0 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x44A JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x466 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x75EF18D0 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2C0 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x2EA JUMPI DUP1 PUSH4 0xC78DA39A EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x350 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x38D52E0F GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x21B JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x243 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x289 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0x129A JUMP JUMPDEST PUSH2 0x4A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x51B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x5C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH2 0x5CB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x61C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x1338 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x205 PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x212 SWAP2 SWAP1 PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x226 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x668 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x269 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x890 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x276 SWAP2 SWAP1 PUSH2 0x14C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x287 PUSH2 0x960 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x291 PUSH2 0x999 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x9AC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B7 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x14E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D4 PUSH2 0x9C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x1390 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x310 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30B SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0x9F1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31D SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x33A PUSH2 0xB9B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x347 SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x376 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x371 SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xBA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x397 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A0 PUSH2 0xBBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AD SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0xBC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E9 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x40C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x407 SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xBEB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x419 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x434 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x140A JUMP JUMPDEST PUSH2 0xC29 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x441 SWAP2 SWAP1 PUSH2 0x12DF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x464 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45F SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xD52 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x471 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x487 SWAP2 SWAP1 PUSH2 0x1552 JUMP JUMPDEST PUSH2 0xD7B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x499 SWAP2 SWAP1 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x3111629700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x514 JUMPI POP PUSH2 0x513 DUP3 PUSH2 0xD94 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x4 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x52E SWAP2 SWAP1 PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x57B ADDRESS PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE0D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xE10 PUSH1 0x4 PUSH1 0x1 ADD SLOAD DUP5 PUSH2 0x592 SWAP2 SWAP1 PUSH2 0x15DD JUMP JUMPDEST PUSH2 0x59C SWAP2 SWAP1 PUSH2 0x164B JUMP JUMPDEST PUSH1 0x4 PUSH1 0x3 ADD SLOAD PUSH2 0x5AC SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST SWAP1 POP DUP2 DUP2 GT PUSH2 0x5BB JUMPI DUP1 PUSH2 0x5BD JUMP JUMPDEST DUP2 JUMPDEST SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x5D4 PUSH2 0xE40 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x3111629700000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x671 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x6A3 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x69A JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x6B4 SWAP2 SWAP1 PUSH2 0x17E1 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x6E3 ADDRESS DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE0D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x80 ADD MLOAD DUP2 LT ISZERO PUSH2 0x739 JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x80 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x730 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x180C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP3 PUSH1 0x20 ADD MLOAD EQ DUP1 PUSH2 0x74E JUMPI POP PUSH0 DUP3 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x75C JUMPI POP PUSH0 DUP3 PUSH1 0x60 ADD MLOAD EQ JUMPDEST DUP1 PUSH2 0x76E JUMPI POP DUP2 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x80 ADD MLOAD LT JUMPDEST ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE POP PUSH1 0x4 PUSH0 DUP3 ADD MLOAD DUP2 PUSH0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE SWAP1 POP POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x8 DUP2 SWAP1 SSTORE POP PUSH2 0x854 CALLER PUSH2 0xE73 JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x88B JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x8A2 SWAP2 SWAP1 PUSH2 0x17E1 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0x1841 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x926 SWAP2 SWAP1 PUSH2 0x1897 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x948 SWAP2 SWAP1 PUSH2 0x19AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x9A1 PUSH2 0xF49 JUMP JUMPDEST PUSH2 0x9AA PUSH0 PUSH2 0xF80 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x4 DUP1 PUSH0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 DUP1 PUSH1 0x3 ADD SLOAD SWAP1 POP DUP5 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x9FA PUSH2 0xF49 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xA0A SWAP2 SWAP1 PUSH2 0x1AE6 JUMP JUMPDEST SWAP1 POP PUSH2 0xA18 DUP2 PUSH0 ADD MLOAD PUSH2 0x1046 JUMP JUMPDEST PUSH2 0xA4E JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xA5F SWAP1 PUSH2 0x1B2D JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH0 PUSH2 0xA6D PUSH2 0x51B JUMP JUMPDEST SWAP1 POP TIMESTAMP PUSH1 0x4 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x4 PUSH0 ADD SLOAD DUP2 GT PUSH2 0xA8E JUMPI PUSH1 0x4 PUSH0 ADD SLOAD PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x4 PUSH0 ADD SLOAD DUP2 PUSH2 0xA9E SWAP2 SWAP1 PUSH2 0x15AA JUMP JUMPDEST JUMPDEST PUSH1 0x4 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH2 0xAF7 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1105 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB6B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1BD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xB87 SWAP2 SWAP1 PUSH2 0x14C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xBD4 SWAP2 SWAP1 PUSH2 0x1AE6 JUMP JUMPDEST SWAP1 POP PUSH2 0xBE2 DUP2 PUSH0 ADD MLOAD PUSH2 0x1046 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF3 PUSH2 0xF49 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xC19 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xC26 DUP2 PUSH2 0xF80 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xC32 PUSH2 0xF49 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xC42 SWAP2 SWAP1 PUSH2 0x1AE6 JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1C29 JUMP JUMPDEST SWAP1 POP PUSH2 0xCAE DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1105 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xD22 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1BD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xD3E SWAP2 SWAP1 PUSH2 0x14C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD5A PUSH2 0xF49 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xD6F JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xD78 DUP2 PUSH2 0xF80 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xE06 JUMPI POP PUSH2 0xE05 DUP3 PUSH2 0x114E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11C7 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF7E JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xF88 PUSH2 0x11C7 JUMP JUMPDEST ISZERO PUSH2 0xFED JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1043 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x1050 PUSH2 0x51B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 GT DUP1 ISZERO PUSH2 0x10AA JUMPI POP DUP1 PUSH2 0x10A7 ADDRESS PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xE0D SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x10FD JUMPI POP PUSH1 0x2 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO JUMPDEST SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1145 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x11C0 JUMPI POP PUSH2 0x11BF DUP3 PUSH2 0x11CB JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1279 DUP2 PUSH2 0x1245 JUMP JUMPDEST DUP2 EQ PUSH2 0x1283 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1294 DUP2 PUSH2 0x1270 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AF JUMPI PUSH2 0x12AE PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x12BC DUP5 DUP3 DUP6 ADD PUSH2 0x1286 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12D9 DUP2 PUSH2 0x12C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x12F2 PUSH0 DUP4 ADD DUP5 PUSH2 0x12D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x130A DUP2 PUSH2 0x12F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1323 PUSH0 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1332 DUP2 PUSH2 0x1245 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x134B PUSH0 DUP4 ADD DUP5 PUSH2 0x1329 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x137A DUP3 PUSH2 0x1351 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x138A DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x13A3 PUSH0 DUP4 ADD DUP5 PUSH2 0x1381 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x13CA JUMPI PUSH2 0x13C9 PUSH2 0x13A9 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x13E7 JUMPI PUSH2 0x13E6 PUSH2 0x13AD JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1403 JUMPI PUSH2 0x1402 PUSH2 0x13B1 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1420 JUMPI PUSH2 0x141F PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x143D JUMPI PUSH2 0x143C PUSH2 0x1241 JUMP JUMPDEST JUMPDEST PUSH2 0x1449 DUP6 DUP3 DUP7 ADD PUSH2 0x13B5 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1497 DUP3 PUSH2 0x1455 JUMP JUMPDEST PUSH2 0x14A1 DUP2 DUP6 PUSH2 0x145F JUMP JUMPDEST SWAP4 POP PUSH2 0x14B1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x146F JUMP JUMPDEST PUSH2 0x14BA DUP2 PUSH2 0x147D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x14DD DUP2 DUP5 PUSH2 0x148D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x14F8 PUSH0 DUP4 ADD DUP8 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x1505 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x1512 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x151F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1531 DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP2 EQ PUSH2 0x153B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154C DUP2 PUSH2 0x1528 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1567 JUMPI PUSH2 0x1566 PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1574 DUP5 DUP3 DUP6 ADD PUSH2 0x153E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x15B4 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BF DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D7 JUMPI PUSH2 0x15D6 PUSH2 0x157D JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15E7 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x15F2 DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1600 DUP2 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1617 JUMPI PUSH2 0x1616 PUSH2 0x157D JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1655 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1660 DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1670 JUMPI PUSH2 0x166F PUSH2 0x161E JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1685 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1690 DUP4 PUSH2 0x12F8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16A8 JUMPI PUSH2 0x16A7 PUSH2 0x157D JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x16E8 DUP3 PUSH2 0x147D JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1707 JUMPI PUSH2 0x1706 PUSH2 0x16B2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1719 PUSH2 0x1234 JUMP JUMPDEST SWAP1 POP PUSH2 0x1725 DUP3 DUP3 PUSH2 0x16DF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1737 DUP2 PUSH2 0x12F8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1741 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1752 DUP2 PUSH2 0x172E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x176D JUMPI PUSH2 0x176C PUSH2 0x16AE JUMP JUMPDEST JUMPDEST PUSH2 0x1777 PUSH1 0xA0 PUSH2 0x1710 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1786 DUP5 DUP3 DUP6 ADD PUSH2 0x153E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1799 DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x17AD DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x17C1 DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 PUSH2 0x17D5 DUP5 DUP3 DUP6 ADD PUSH2 0x1744 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17F6 JUMPI PUSH2 0x17F5 PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1803 DUP5 DUP3 DUP6 ADD PUSH2 0x1758 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x181F PUSH0 DUP4 ADD DUP7 PUSH2 0x1381 JUMP JUMPDEST PUSH2 0x182C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1301 JUMP JUMPDEST PUSH2 0x1839 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1301 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1877 DUP2 PUSH2 0x12F8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1891 PUSH0 DUP6 ADD DUP3 PUSH2 0x186E JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18AA PUSH0 DUP4 ADD DUP5 PUSH2 0x187D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x18C1 JUMPI PUSH2 0x18C0 PUSH2 0x1841 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x18D1 DUP3 PUSH2 0x18B0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x18E0 DUP3 PUSH2 0x18C4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18F0 DUP2 PUSH2 0x18D6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x18FF DUP2 PUSH2 0x1370 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x191F DUP3 PUSH2 0x1455 JUMP JUMPDEST PUSH2 0x1929 DUP2 DUP6 PUSH2 0x1905 JUMP JUMPDEST SWAP4 POP PUSH2 0x1939 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x146F JUMP JUMPDEST PUSH2 0x1942 DUP2 PUSH2 0x147D JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1962 PUSH0 DUP7 ADD DUP3 PUSH2 0x18E7 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1975 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x18F6 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1988 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x18F6 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x19A0 DUP3 DUP3 PUSH2 0x1915 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x19C5 DUP2 DUP5 PUSH2 0x194D JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x19EB JUMPI PUSH2 0x19EA PUSH2 0x16B2 JUMP JUMPDEST JUMPDEST PUSH2 0x19F4 DUP3 PUSH2 0x147D JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A21 PUSH2 0x1A1C DUP5 PUSH2 0x19D1 JUMP JUMPDEST PUSH2 0x1710 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1A3D JUMPI PUSH2 0x1A3C PUSH2 0x19CD JUMP JUMPDEST JUMPDEST PUSH2 0x1A48 DUP5 DUP3 DUP6 PUSH2 0x1A01 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A64 JUMPI PUSH2 0x1A63 PUSH2 0x13A9 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A74 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1A0F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A92 JUMPI PUSH2 0x1A91 PUSH2 0x16AE JUMP JUMPDEST JUMPDEST PUSH2 0x1A9C PUSH1 0x40 PUSH2 0x1710 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1AAB DUP5 DUP3 DUP6 ADD PUSH2 0x153E JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ACE JUMPI PUSH2 0x1ACD PUSH2 0x172A JUMP JUMPDEST JUMPDEST PUSH2 0x1ADA DUP5 DUP3 DUP6 ADD PUSH2 0x1A50 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AFB JUMPI PUSH2 0x1AFA PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1B18 JUMPI PUSH2 0x1B17 PUSH2 0x1241 JUMP JUMPDEST JUMPDEST PUSH2 0x1B24 DUP5 DUP3 DUP6 ADD PUSH2 0x1A7D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B37 DUP3 PUSH2 0x12F8 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1B69 JUMPI PUSH2 0x1B68 PUSH2 0x157D JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B8A DUP3 PUSH2 0x1B74 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B9B DUP3 PUSH2 0x1B80 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BB3 PUSH2 0x1BAE DUP3 PUSH2 0x1370 JUMP JUMPDEST PUSH2 0x1B91 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1BD3 PUSH2 0x1BCE DUP3 PUSH2 0x12F8 JUMP JUMPDEST PUSH2 0x1BB9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1BE4 DUP3 DUP7 PUSH2 0x1BA2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1BF4 DUP3 DUP6 PUSH2 0x1BA2 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1C04 DUP3 DUP5 PUSH2 0x1BC2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1C23 DUP2 PUSH2 0x172E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C3E JUMPI PUSH2 0x1C3D PUSH2 0x123D JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C4B DUP5 DUP3 DUP6 ADD PUSH2 0x1C15 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP7 0xE8 0xFC CREATE PUSH25 0x1064379931BF3B076395BADED394E0CB30F9A8D5F272EF2E78 0xA5 DUP8 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"602:2792:51:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4671:213:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3654:578;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1383:21:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;4489:146:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;664:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1629:914:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2925:467;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;1247:32:46;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11408:182:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1587:752:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1285:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1464:39:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2864:212:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2375:453:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4671:213:46;4767:4;4805:32;4790:47;;;:11;:47;;;;:87;;;;4841:36;4865:11;4841:23;:36::i;:::-;4790:87;4783:94;;4671:213;;;:::o;3654:578::-;3709:7;3728:26;3775:10;:24;;;3757:15;:42;;;;:::i;:::-;3728:71;;3809:17;3829:30;3853:4;3829:5;;;;;;;;;;;:15;;;;:30;;;;:::i;:::-;3809:50;;4046:23;4147:4;4121:10;:22;;;4100:18;:43;;;;:::i;:::-;4099:52;;;;:::i;:::-;4072:10;:24;;;:79;;;;:::i;:::-;4046:105;;4186:9;4168:15;:27;:57;;4210:15;4168:57;;;4198:9;4168:57;4161:64;;;;;3654:578;:::o;1383:21:54:-;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;4489:146:46:-;4571:6;4596:32;4589:39;;4489:146;:::o;664:20::-;;;;;;;;;;;;;:::o;1629:914:51:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1709:24:51::1;1747:5;;1736:32;;;;;;;:::i;:::-;1709:59;;1779:17;1799:36;1829:4;1799:5;:11;;;:21;;;;:36;;;;:::i;:::-;1779:56;;1861:5;:17;;;1849:9;:29;1845:138;;;1930:5;:11;;;1943:9;1954:5;:17;;;1901:71;;;;;;;;;;;;;:::i;:::-;;;;;;;;1845:138;2033:1;2010:5;:19;;;:24;:50;;;;2059:1;2038:5;:17;;;:22;2010:50;:76;;;;2085:1;2064:5;:17;;;:22;2010:76;:135;;;;2126:5;:19;;;2106:5;:17;;;:39;2010:135;1993:204;;;2163:34;;;;;;;;;;;;;;1993:204;2216:5;:11;;;2208:5;;:19;;;;;;;;;;;;;;;;;;2250:206;;;;;;;;2292:5;:17;;;2250:206;;;;2336:5;:17;;;2250:206;;;;2382:15;2250:206;;;;2426:5;:19;;;2250:206;;::::0;2237:10:::1;:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2481:5;:17;;;2467:11;:31;;;;2508:28;2525:10;2508:16;:28::i;:::-;1699:844;;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1629:914:51;;:::o;2925:467::-;3006:12;3030:24;3068:5;;3057:32;;;;;;;:::i;:::-;3030:59;;3131:244;;;;;;;;3176:22;3131:244;;;;;;;;:::i;:::-;;;;;;3223:5;:11;;;3131:244;;;;;;3268:4;3131:244;;;;;;3308:51;;;;;;;;3340:5;:17;;;3308:51;;;3297:63;;;;;;;;:::i;:::-;;;;;;;;;;;;;3131:244;;;3107:278;;;;;;;;:::i;:::-;;;;;;;;;;;;;3100:285;;;2925:467;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;1247:32:46:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;11408:182:16:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1587:752:46:-;1669:4;12517:13:16;:11;:13::i;:::-;1685:26:46::1;1725:5;;1714:33;;;;;;;:::i;:::-;1685:62;;1762:27;1775:6;:13;;;1762:12;:27::i;:::-;1757:55;;1798:14;;;;;;;;;;;;;;1757:55;1822:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;1902:14;1919:15;:13;:15::i;:::-;1902:32;;1971:15;1944:10;:24;;:42;;;;2044:10;:22;;;2035:6;:31;:90;;2103:10;:22;;;2035:90;;;2078:10;:22;;;2069:6;:31;;;;:::i;:::-;2035:90;1996:10;:24;;:129;;;;2184:41;2203:6;:13;;;2218:6;2184:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;2249:6;:13;;;2241:70;;;2281:5;;;;;;;;;;;2288:6;:13;;;2303:6;2264:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2241:70;;;;;;:::i;:::-;;;;;;;;2328:4;2321:11;;;;1587:752:::0;;;;:::o;1285:26::-;;;;:::o;1464:39:54:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;2864:212:46:-;2947:4;2963:26;3003:5;;2992:33;;;;;;;:::i;:::-;2963:62;;3042:27;3055:6;:13;;;3042:12;:27::i;:::-;3035:34;;;2864:212;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2375:453:46:-;2459:4;12517:13:16;:11;:13::i;:::-;2475:26:46::1;2515:5;;2504:33;;;;;;;:::i;:::-;2475:62;;2548:14;2577:6;:11;;;2566:34;;;;;;;;;;;;:::i;:::-;2547:53;;2673:41;2692:6;:13;;;2707:6;2673:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;2737:6;:13;;;2729:70;;;2769:5;;;;;;;;;;;2776:6;:13;;;2791:6;2752:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2729:70;;;;;;:::i;:::-;;;;;;;;2817:4;2810:11;;;;2375:453:::0;;;;:::o;8348:349:16:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;3173:208:54:-;3269:4;3307:27;3292:42;;;:11;:42;;;;:82;;;;3338:36;3362:11;3338:23;:36::i;:::-;3292:82;3285:89;;3173:208;;;:::o;19260:739:26:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;4238:215:46:-;4303:4;4319:14;4336:15;:13;:15::i;:::-;4319:32;;4377:1;4368:6;:10;:54;;;;;4416:6;4382:30;4406:4;4382:5;;;;;;;;;;;:15;;;;:30;;;;:::i;:::-;:40;;4368:54;:78;;;;;4427:7;:19;4435:10;4427:19;;;;;;;;;;;;;;;;;;;;;;;;;4426:20;4368:78;4361:85;;;4238:215;;;:::o;13466:939:26:-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:115::-;2038:23;2055:5;2038:23;:::i;:::-;2033:3;2026:36;1953:115;;:::o;2074:218::-;2165:4;2203:2;2192:9;2188:18;2180:26;;2216:69;2282:1;2271:9;2267:17;2258:6;2216:69;:::i;:::-;2074:218;;;;:::o;2298:126::-;2335:7;2375:42;2368:5;2364:54;2353:65;;2298:126;;;:::o;2430:96::-;2467:7;2496:24;2514:5;2496:24;:::i;:::-;2485:35;;2430:96;;;:::o;2532:118::-;2619:24;2637:5;2619:24;:::i;:::-;2614:3;2607:37;2532:118;;:::o;2656:222::-;2749:4;2787:2;2776:9;2772:18;2764:26;;2800:71;2868:1;2857:9;2853:17;2844:6;2800:71;:::i;:::-;2656:222;;;;:::o;2884:117::-;2993:1;2990;2983:12;3007:117;3116:1;3113;3106:12;3130:117;3239:1;3236;3229:12;3266:552;3323:8;3333:6;3383:3;3376:4;3368:6;3364:17;3360:27;3350:122;;3391:79;;:::i;:::-;3350:122;3504:6;3491:20;3481:30;;3534:18;3526:6;3523:30;3520:117;;;3556:79;;:::i;:::-;3520:117;3670:4;3662:6;3658:17;3646:29;;3724:3;3716:4;3708:6;3704:17;3694:8;3690:32;3687:41;3684:128;;;3731:79;;:::i;:::-;3684:128;3266:552;;;;;:::o;3824:527::-;3894:6;3902;3951:2;3939:9;3930:7;3926:23;3922:32;3919:119;;;3957:79;;:::i;:::-;3919:119;4105:1;4094:9;4090:17;4077:31;4135:18;4127:6;4124:30;4121:117;;;4157:79;;:::i;:::-;4121:117;4270:64;4326:7;4317:6;4306:9;4302:22;4270:64;:::i;:::-;4252:82;;;;4048:296;3824:527;;;;;:::o;4357:98::-;4408:6;4442:5;4436:12;4426:22;;4357:98;;;:::o;4461:168::-;4544:11;4578:6;4573:3;4566:19;4618:4;4613:3;4609:14;4594:29;;4461:168;;;;:::o;4635:139::-;4724:6;4719:3;4714;4708:23;4765:1;4756:6;4751:3;4747:16;4740:27;4635:139;;;:::o;4780:102::-;4821:6;4872:2;4868:7;4863:2;4856:5;4852:14;4848:28;4838:38;;4780:102;;;:::o;4888:373::-;4974:3;5002:38;5034:5;5002:38;:::i;:::-;5056:70;5119:6;5114:3;5056:70;:::i;:::-;5049:77;;5135:65;5193:6;5188:3;5181:4;5174:5;5170:16;5135:65;:::i;:::-;5225:29;5247:6;5225:29;:::i;:::-;5220:3;5216:39;5209:46;;4978:283;4888:373;;;;:::o;5267:309::-;5378:4;5416:2;5405:9;5401:18;5393:26;;5465:9;5459:4;5455:20;5451:1;5440:9;5436:17;5429:47;5493:76;5564:4;5555:6;5493:76;:::i;:::-;5485:84;;5267:309;;;;:::o;5582:553::-;5759:4;5797:3;5786:9;5782:19;5774:27;;5811:71;5879:1;5868:9;5864:17;5855:6;5811:71;:::i;:::-;5892:72;5960:2;5949:9;5945:18;5936:6;5892:72;:::i;:::-;5974;6042:2;6031:9;6027:18;6018:6;5974:72;:::i;:::-;6056;6124:2;6113:9;6109:18;6100:6;6056:72;:::i;:::-;5582:553;;;;;;;:::o;6141:122::-;6214:24;6232:5;6214:24;:::i;:::-;6207:5;6204:35;6194:63;;6253:1;6250;6243:12;6194:63;6141:122;:::o;6269:139::-;6315:5;6353:6;6340:20;6331:29;;6369:33;6396:5;6369:33;:::i;:::-;6269:139;;;;:::o;6414:329::-;6473:6;6522:2;6510:9;6501:7;6497:23;6493:32;6490:119;;;6528:79;;:::i;:::-;6490:119;6648:1;6673:53;6718:7;6709:6;6698:9;6694:22;6673:53;:::i;:::-;6663:63;;6619:117;6414:329;;;;:::o;6749:180::-;6797:77;6794:1;6787:88;6894:4;6891:1;6884:15;6918:4;6915:1;6908:15;6935:194;6975:4;6995:20;7013:1;6995:20;:::i;:::-;6990:25;;7029:20;7047:1;7029:20;:::i;:::-;7024:25;;7073:1;7070;7066:9;7058:17;;7097:1;7091:4;7088:11;7085:37;;;7102:18;;:::i;:::-;7085:37;6935:194;;;;:::o;7135:410::-;7175:7;7198:20;7216:1;7198:20;:::i;:::-;7193:25;;7232:20;7250:1;7232:20;:::i;:::-;7227:25;;7287:1;7284;7280:9;7309:30;7327:11;7309:30;:::i;:::-;7298:41;;7488:1;7479:7;7475:15;7472:1;7469:22;7449:1;7442:9;7422:83;7399:139;;7518:18;;:::i;:::-;7399:139;7183:362;7135:410;;;;:::o;7551:180::-;7599:77;7596:1;7589:88;7696:4;7693:1;7686:15;7720:4;7717:1;7710:15;7737:185;7777:1;7794:20;7812:1;7794:20;:::i;:::-;7789:25;;7828:20;7846:1;7828:20;:::i;:::-;7823:25;;7867:1;7857:35;;7872:18;;:::i;:::-;7857:35;7914:1;7911;7907:9;7902:14;;7737:185;;;;:::o;7928:191::-;7968:3;7987:20;8005:1;7987:20;:::i;:::-;7982:25;;8021:20;8039:1;8021:20;:::i;:::-;8016:25;;8064:1;8061;8057:9;8050:16;;8085:3;8082:1;8079:10;8076:36;;;8092:18;;:::i;:::-;8076:36;7928:191;;;;:::o;8125:117::-;8234:1;8231;8224:12;8248:180;8296:77;8293:1;8286:88;8393:4;8390:1;8383:15;8417:4;8414:1;8407:15;8434:281;8517:27;8539:4;8517:27;:::i;:::-;8509:6;8505:40;8647:6;8635:10;8632:22;8611:18;8599:10;8596:34;8593:62;8590:88;;;8658:18;;:::i;:::-;8590:88;8698:10;8694:2;8687:22;8477:238;8434:281;;:::o;8721:129::-;8755:6;8782:20;;:::i;:::-;8772:30;;8811:33;8839:4;8831:6;8811:33;:::i;:::-;8721:129;;;:::o;8856:117::-;8965:1;8962;8955:12;8979:122;9052:24;9070:5;9052:24;:::i;:::-;9045:5;9042:35;9032:63;;9091:1;9088;9081:12;9032:63;8979:122;:::o;9107:139::-;9153:5;9191:6;9178:20;9169:29;;9207:33;9234:5;9207:33;:::i;:::-;9107:139;;;;:::o;9292:1094::-;9371:5;9415:4;9403:9;9398:3;9394:19;9390:30;9387:117;;;9423:79;;:::i;:::-;9387:117;9522:21;9538:4;9522:21;:::i;:::-;9513:30;;9603:1;9643:49;9688:3;9679:6;9668:9;9664:22;9643:49;:::i;:::-;9636:4;9629:5;9625:16;9618:75;9553:151;9772:2;9813:49;9858:3;9849:6;9838:9;9834:22;9813:49;:::i;:::-;9806:4;9799:5;9795:16;9788:75;9714:160;9940:2;9981:49;10026:3;10017:6;10006:9;10002:22;9981:49;:::i;:::-;9974:4;9967:5;9963:16;9956:75;9884:158;10108:2;10149:49;10194:3;10185:6;10174:9;10170:22;10149:49;:::i;:::-;10142:4;10135:5;10131:16;10124:75;10052:158;10276:3;10318:49;10363:3;10354:6;10343:9;10339:22;10318:49;:::i;:::-;10311:4;10304:5;10300:16;10293:75;10220:159;9292:1094;;;;:::o;10392:390::-;10481:6;10530:3;10518:9;10509:7;10505:23;10501:33;10498:120;;;10537:79;;:::i;:::-;10498:120;10657:1;10682:83;10757:7;10748:6;10737:9;10733:22;10682:83;:::i;:::-;10672:93;;10628:147;10392:390;;;;:::o;10788:442::-;10937:4;10975:2;10964:9;10960:18;10952:26;;10988:71;11056:1;11045:9;11041:17;11032:6;10988:71;:::i;:::-;11069:72;11137:2;11126:9;11122:18;11113:6;11069:72;:::i;:::-;11151;11219:2;11208:9;11204:18;11195:6;11151:72;:::i;:::-;10788:442;;;;;;:::o;11236:180::-;11284:77;11281:1;11274:88;11381:4;11378:1;11371:15;11405:4;11402:1;11395:15;11422:108;11499:24;11517:5;11499:24;:::i;:::-;11494:3;11487:37;11422:108;;:::o;11606:353::-;11771:4;11766:3;11762:14;11860:4;11853:5;11849:16;11843:23;11879:63;11936:4;11931:3;11927:14;11913:12;11879:63;:::i;:::-;11786:166;11740:219;11606:353;;:::o;11965:358::-;12126:4;12164:2;12153:9;12149:18;12141:26;;12177:139;12313:1;12302:9;12298:17;12289:6;12177:139;:::i;:::-;11965:358;;;;:::o;12329:120::-;12417:1;12410:5;12407:12;12397:46;;12423:18;;:::i;:::-;12397:46;12329:120;:::o;12455:141::-;12507:7;12536:5;12525:16;;12542:48;12584:5;12542:48;:::i;:::-;12455:141;;;:::o;12602:::-;12665:9;12698:39;12731:5;12698:39;:::i;:::-;12685:52;;12602:141;;;:::o;12749:147::-;12839:50;12883:5;12839:50;:::i;:::-;12834:3;12827:63;12749:147;;:::o;12902:108::-;12979:24;12997:5;12979:24;:::i;:::-;12974:3;12967:37;12902:108;;:::o;13016:158::-;13089:11;13123:6;13118:3;13111:19;13163:4;13158:3;13154:14;13139:29;;13016:158;;;;:::o;13180:353::-;13256:3;13284:38;13316:5;13284:38;:::i;:::-;13338:60;13391:6;13386:3;13338:60;:::i;:::-;13331:67;;13407:65;13465:6;13460:3;13453:4;13446:5;13442:16;13407:65;:::i;:::-;13497:29;13519:6;13497:29;:::i;:::-;13492:3;13488:39;13481:46;;13260:273;13180:353;;;;:::o;13595:977::-;13718:3;13754:4;13749:3;13745:14;13846:4;13839:5;13835:16;13829:23;13865:76;13935:4;13930:3;13926:14;13912:12;13865:76;:::i;:::-;13769:182;14034:4;14027:5;14023:16;14017:23;14053:63;14110:4;14105:3;14101:14;14087:12;14053:63;:::i;:::-;13961:165;14210:4;14203:5;14199:16;14193:23;14229:63;14286:4;14281:3;14277:14;14263:12;14229:63;:::i;:::-;14136:166;14384:4;14377:5;14373:16;14367:23;14437:3;14431:4;14427:14;14420:4;14415:3;14411:14;14404:38;14463:71;14529:4;14515:12;14463:71;:::i;:::-;14455:79;;14312:233;14562:4;14555:11;;13723:849;13595:977;;;;:::o;14578:381::-;14725:4;14763:2;14752:9;14748:18;14740:26;;14812:9;14806:4;14802:20;14798:1;14787:9;14783:17;14776:47;14840:112;14947:4;14938:6;14840:112;:::i;:::-;14832:120;;14578:381;;;;:::o;14965:117::-;15074:1;15071;15064:12;15088:307;15149:4;15239:18;15231:6;15228:30;15225:56;;;15261:18;;:::i;:::-;15225:56;15299:29;15321:6;15299:29;:::i;:::-;15291:37;;15383:4;15377;15373:15;15365:23;;15088:307;;;:::o;15401:148::-;15499:6;15494:3;15489;15476:30;15540:1;15531:6;15526:3;15522:16;15515:27;15401:148;;;:::o;15555:423::-;15632:5;15657:65;15673:48;15714:6;15673:48;:::i;:::-;15657:65;:::i;:::-;15648:74;;15745:6;15738:5;15731:21;15783:4;15776:5;15772:16;15821:3;15812:6;15807:3;15803:16;15800:25;15797:112;;;15828:79;;:::i;:::-;15797:112;15918:54;15965:6;15960:3;15955;15918:54;:::i;:::-;15638:340;15555:423;;;;;:::o;15997:338::-;16052:5;16101:3;16094:4;16086:6;16082:17;16078:27;16068:122;;16109:79;;:::i;:::-;16068:122;16226:6;16213:20;16251:78;16325:3;16317:6;16310:4;16302:6;16298:17;16251:78;:::i;:::-;16242:87;;16058:277;15997:338;;;;:::o;16378:751::-;16458:5;16502:4;16490:9;16485:3;16481:19;16477:30;16474:117;;;16510:79;;:::i;:::-;16474:117;16609:21;16625:4;16609:21;:::i;:::-;16600:30;;16691:1;16731:49;16776:3;16767:6;16756:9;16752:22;16731:49;:::i;:::-;16724:4;16717:5;16713:16;16706:75;16640:152;16879:2;16868:9;16864:18;16851:32;16910:18;16902:6;16899:30;16896:117;;;16932:79;;:::i;:::-;16896:117;17052:58;17106:3;17097:6;17086:9;17082:22;17052:58;:::i;:::-;17045:4;17038:5;17034:16;17027:84;16802:320;16378:751;;;;:::o;17135:551::-;17225:6;17274:2;17262:9;17253:7;17249:23;17245:32;17242:119;;;17280:79;;:::i;:::-;17242:119;17428:1;17417:9;17413:17;17400:31;17458:18;17450:6;17447:30;17444:117;;;17480:79;;:::i;:::-;17444:117;17585:84;17661:7;17652:6;17641:9;17637:22;17585:84;:::i;:::-;17575:94;;17371:308;17135:551;;;;:::o;17692:233::-;17731:3;17754:24;17772:5;17754:24;:::i;:::-;17745:33;;17800:66;17793:5;17790:77;17787:103;;17870:18;;:::i;:::-;17787:103;17917:1;17910:5;17906:13;17899:20;;17692:233;;;:::o;17931:94::-;17964:8;18012:5;18008:2;18004:14;17983:35;;17931:94;;;:::o;18031:::-;18070:7;18099:20;18113:5;18099:20;:::i;:::-;18088:31;;18031:94;;;:::o;18131:100::-;18170:7;18199:26;18219:5;18199:26;:::i;:::-;18188:37;;18131:100;;;:::o;18237:157::-;18342:45;18362:24;18380:5;18362:24;:::i;:::-;18342:45;:::i;:::-;18337:3;18330:58;18237:157;;:::o;18400:79::-;18439:7;18468:5;18457:16;;18400:79;;;:::o;18485:157::-;18590:45;18610:24;18628:5;18610:24;:::i;:::-;18590:45;:::i;:::-;18585:3;18578:58;18485:157;;:::o;18648:538::-;18816:3;18831:75;18902:3;18893:6;18831:75;:::i;:::-;18931:2;18926:3;18922:12;18915:19;;18944:75;19015:3;19006:6;18944:75;:::i;:::-;19044:2;19039:3;19035:12;19028:19;;19057:75;19128:3;19119:6;19057:75;:::i;:::-;19157:2;19152:3;19148:12;19141:19;;19177:3;19170:10;;18648:538;;;;;;:::o;19192:143::-;19249:5;19280:6;19274:13;19265:22;;19296:33;19323:5;19296:33;:::i;:::-;19192:143;;;;:::o;19341:351::-;19411:6;19460:2;19448:9;19439:7;19435:23;19431:32;19428:119;;;19466:79;;:::i;:::-;19428:119;19586:1;19611:64;19667:7;19658:6;19647:9;19643:22;19611:64;:::i;:::-;19601:74;;19557:128;19341:351;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","cgdaParams()":"75ef18d0","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","supportsInterface(bytes4)":"01ffc9a7","totalBudget()":"c78da39a","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cgdaParams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"rewardDecay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardBoost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastClaimTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentReward\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalBudget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor.\"},\"currentReward()\":{\"details\":\"The reward is calculated based on the time since the last claim, the available budget, and the reward parameters. It increases linearly over time in the absence of claims, with each hour adding `rewardBoost` to the current reward, up to the available budget.For example, if there is one claim in the first hour, then no claims for three hours, the claimable reward would be `initialReward - rewardDecay + (rewardBoost * 3)`\",\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"Initialization parameters.\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The compressed incentive parameters `(address asset, uint256 initialReward, uint256 rewardDecay, uint256 rewardBoost, uint256 totalBudget)`\"},\"returns\":{\"_0\":\"The amount of tokens required\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Continuous Gradual Dutch Auction Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The ERC20-like token used for the incentive\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new CGDAIncentive\"},\"currentReward()\":{\"notice\":\"Calculates the current reward based on the time since the last claim.\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the CGDA Incentive\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"preflight(bytes)\":{\"notice\":\"Preflight the incentive to determine the budget required for all potential claims, which in this case is the `totalBudget`\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"An ERC20 incentive implementation with reward amounts adjusting dynamically based on claim volume.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/CGDAIncentive.sol\":\"CGDAIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/ACGDAIncentive.sol\":{\"keccak256\":\"0xca4f967a2235d7eb78354dd338ae95ed03a76a449043822b5676621afff87988\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b2318bcd0f6bc55e776c89e3c5577e0a58b3367c85b8afff38278ef8cc51fea9\",\"dweb:/ipfs/QmbMDwF9sgpDUz9onzRKXL7rweNaKSc3sKBXC5mkcvTnGC\"]},\"contracts/incentives/CGDAIncentive.sol\":{\"keccak256\":\"0xbbbf3b308dd0d09bc97e6905582c41d34eb05c0ed5f0ae64eba97f16806c0282\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://030998e9ea230ce972ba89d5c45d0cff997f934ae449fb23037da551d7c03160\",\"dweb:/ipfs/QmY6J9vDk2arjJNpYNfWDwBj4yKfe2EdSgiDJP2uWosyva\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/ERC1155Incentive.sol":{"ERC1155Incentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"contract IERC1155","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"pure","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":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum AERC1155Incentive.Strategy","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":"tokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17692":{"entryPoint":null,"id":17692,"parameterSlots":0,"returnSlots":0},"@_18117":{"entryPoint":null,"id":18117,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":277,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":385,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":389,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":57,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003960201b60201c565b6001808190555061003461011560201b60201c565b6101ae565b61004761018160201b60201c565b156100bf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561008157630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610112565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61012461018560201b60201c565b90508054600181161561013e5763f92ee8a95f526004601cfd5b8160c01c808260011c1461017c578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b612654806101bb5f395ff3fe608060405260043610610165575f3560e01c80638da5cb5b116100d0578063dcc59b6f11610089578063f1c30ec011610063578063f1c30ec0146104d7578063f23a6e6114610513578063f2fde38b1461054f578063fee81cf41461056b57610165565b8063dcc59b6f14610455578063e18e65081461047f578063f04e283e146104bb57610165565b80638da5cb5b14610323578063a4d66daf1461034d578063a8c62e7614610377578063bc197c81146103a1578063c63ff8dd146103dd578063c884ef831461041957610165565b806338d52e0f1161012257806338d52e0f14610257578063439fab91146102815780634e7165a2146102a957806354d1f13d146102e5578063609d3334146102ef578063715018a61461031957610165565b806301ffc9a71461016957806307621eca146101a557806317d70f7c146101cf578063228cb733146101f9578063256929621461022357806328d6183b1461022d575b5f80fd5b348015610174575f80fd5b5061018f600480360381019061018a919061154c565b6105a7565b60405161019c9190611591565b60405180910390f35b3480156101b0575f80fd5b506101b9610688565b6040516101c691906115c2565b60405180910390f35b3480156101da575f80fd5b506101e3610691565b6040516101f091906115c2565b60405180910390f35b348015610204575f80fd5b5061020d610697565b60405161021a91906115c2565b60405180910390f35b61022b61069d565b005b348015610238575f80fd5b506102416106ee565b60405161024e91906115ea565b60405180910390f35b348015610262575f80fd5b5061026b610715565b604051610278919061167d565b60405180910390f35b34801561028c575f80fd5b506102a760048036038101906102a291906116f7565b61073a565b005b3480156102b4575f80fd5b506102cf60048036038101906102ca91906116f7565b6109dd565b6040516102dc91906117b2565b60405180910390f35b6102ed610ac0565b005b3480156102fa575f80fd5b50610303610af9565b60405161031091906117b2565b60405180910390f35b610321610b85565b005b34801561032e575f80fd5b50610337610b98565b60405161034491906117f2565b60405180910390f35b348015610358575f80fd5b50610361610bc0565b60405161036e91906115c2565b60405180910390f35b348015610382575f80fd5b5061038b610bc6565b604051610398919061187e565b60405180910390f35b3480156103ac575f80fd5b506103c760048036038101906103c29190611916565b610bd9565b6040516103d491906115ea565b60405180910390f35b3480156103e8575f80fd5b5061040360048036038101906103fe91906116f7565b610bf0565b6040516104109190611591565b60405180910390f35b348015610424575f80fd5b5061043f600480360381019061043a91906119ed565b610e45565b60405161044c9190611591565b60405180910390f35b348015610460575f80fd5b50610469610e62565b60405161047691906115c2565b60405180910390f35b34801561048a575f80fd5b506104a560048036038101906104a091906116f7565b610e67565b6040516104b29190611591565b60405180910390f35b6104d560048036038101906104d091906119ed565b610e8f565b005b3480156104e2575f80fd5b506104fd60048036038101906104f891906116f7565b610ecd565b60405161050a9190611591565b60405180910390f35b34801561051e575f80fd5b5061053960048036038101906105349190611a42565b6110c9565b60405161054691906115ea565b60405180910390f35b610569600480360381019061056491906119ed565b6110de565b005b348015610576575f80fd5b50610591600480360381019061058c91906119ed565b611107565b60405161059e91906115c2565b60405180910390f35b5f7fb168aa66000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061067157507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610681575061068082611120565b5b9050919050565b5f600154905090565b60055481565b60015481565b5f6106a6611199565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fb168aa6600000000000000000000000000000000000000000000000000000000905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6107436111a3565b905080546003825580156107755760018160011c14303b1061076c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107869190611d0b565b905060018081111561079b5761079a61180b565b5b816020015160018111156107b2576107b161180b565b5b036107e9576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015103610826576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b8152600401610868929190611d52565b602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190611d8d565b905081606001518110156108fd57815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108f493929190611db8565b60405180910390fd5b815f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600360146101000a81548160ff021916908360018111156109695761096861180b565b5b0217905550816040015160058190555081606001516004819055508160800151600690816109979190611fde565b506109a1336111cc565b505080156109d8576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906109ef9190611d0b565b90506040518060800160405280600280811115610a0f57610a0e61180b565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806060016040528084604001518152602001846060015181526020018460800151815250604051602001610a869190612151565b604051602081830303815290604052815250604051602001610aa89190612226565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b60068054610b0690611e1a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3290611e1a565b8015610b7d5780601f10610b5457610100808354040283529160200191610b7d565b820191905f5260205f20905b815481529060010190602001808311610b6057829003601f168201915b505050505081565b610b8d6112a2565b610b965f6112d9565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600360149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610bf96112a2565b5f6001811115610c0c57610c0b61180b565b5b600360149054906101000a900460ff166001811115610c2e57610c2d61180b565b5b03610e3b575f8383810190610c4391906122af565b9050610c51815f015161139f565b610c87576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610c9890612323565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600554600186602001516040518663ffffffff1660e01b8152600401610d619594939291906123a3565b5f604051808303815f87803b158015610d78575f80fd5b505af1158015610d8a573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160055460018660200151604051602001610e0d9594939291906124b1565b604051602081830303815290604052604051610e2991906117b2565b60405180910390a26001915050610e3f565b5f90505b92915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610e7891906122af565b9050610e86815f015161139f565b91505092915050565b610e976112a2565b63389a75e1600c52805f526020600c208054421115610ebd57636f5e88185f526004601cfd5b5f815550610eca816112d9565b50565b5f610ed66112a2565b5f8383810190610ee691906122af565b90505f8160200151806020019051810190610f019190611d8d565b9050600454811115610f6b573382604051602001610f1f9190612545565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610f62929190612565565b60405180910390fd5b8060045f828254610f7c9190612593565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516005548587602001516040518663ffffffff1660e01b8152600401610fee9594939291906125c6565b5f604051808303815f87803b158015611005575f80fd5b505af1158015611017573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01516005548587602001516040516020016110999594939291906124b1565b6040516020818303038152906040526040516110b591906117b2565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b6110e66112a2565b8060601b6110fb57637448fbae5f526004601cfd5b611104816112d9565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611192575061119182611400565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6111d4611479565b1561124c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561120e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061129f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146112d7576382b429005f526004601cfd5b565b6112e1611479565b15611346577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061139c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113f957506004545f54105b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061147257506114718261147d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61152b816114f7565b8114611535575f80fd5b50565b5f8135905061154681611522565b92915050565b5f60208284031215611561576115606114ef565b5b5f61156e84828501611538565b91505092915050565b5f8115159050919050565b61158b81611577565b82525050565b5f6020820190506115a45f830184611582565b92915050565b5f819050919050565b6115bc816115aa565b82525050565b5f6020820190506115d55f8301846115b3565b92915050565b6115e4816114f7565b82525050565b5f6020820190506115fd5f8301846115db565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61164561164061163b84611603565b611622565b611603565b9050919050565b5f6116568261162b565b9050919050565b5f6116678261164c565b9050919050565b6116778161165d565b82525050565b5f6020820190506116905f83018461166e565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126116b7576116b6611696565b5b8235905067ffffffffffffffff8111156116d4576116d361169a565b5b6020830191508360018202830111156116f0576116ef61169e565b5b9250929050565b5f806020838503121561170d5761170c6114ef565b5b5f83013567ffffffffffffffff81111561172a576117296114f3565b5b611736858286016116a2565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61178482611742565b61178e818561174c565b935061179e81856020860161175c565b6117a78161176a565b840191505092915050565b5f6020820190508181035f8301526117ca818461177a565b905092915050565b5f6117dc82611603565b9050919050565b6117ec816117d2565b82525050565b5f6020820190506118055f8301846117e3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106118495761184861180b565b5b50565b5f81905061185982611838565b919050565b5f6118688261184c565b9050919050565b6118788161185e565b82525050565b5f6020820190506118915f83018461186f565b92915050565b6118a0816117d2565b81146118aa575f80fd5b50565b5f813590506118bb81611897565b92915050565b5f8083601f8401126118d6576118d5611696565b5b8235905067ffffffffffffffff8111156118f3576118f261169a565b5b60208301915083602082028301111561190f5761190e61169e565b5b9250929050565b5f805f805f805f8060a0898b031215611932576119316114ef565b5b5f61193f8b828c016118ad565b98505060206119508b828c016118ad565b975050604089013567ffffffffffffffff811115611971576119706114f3565b5b61197d8b828c016118c1565b9650965050606089013567ffffffffffffffff8111156119a05761199f6114f3565b5b6119ac8b828c016118c1565b9450945050608089013567ffffffffffffffff8111156119cf576119ce6114f3565b5b6119db8b828c016116a2565b92509250509295985092959890939650565b5f60208284031215611a0257611a016114ef565b5b5f611a0f848285016118ad565b91505092915050565b611a21816115aa565b8114611a2b575f80fd5b50565b5f81359050611a3c81611a18565b92915050565b5f805f805f8060a08789031215611a5c57611a5b6114ef565b5b5f611a6989828a016118ad565b9650506020611a7a89828a016118ad565b9550506040611a8b89828a01611a2e565b9450506060611a9c89828a01611a2e565b935050608087013567ffffffffffffffff811115611abd57611abc6114f3565b5b611ac989828a016116a2565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b128261176a565b810181811067ffffffffffffffff82111715611b3157611b30611adc565b5b80604052505050565b5f611b436114e6565b9050611b4f8282611b09565b919050565b5f80fd5b5f611b62826117d2565b9050919050565b611b7281611b58565b8114611b7c575f80fd5b50565b5f81359050611b8d81611b69565b92915050565b60028110611b9f575f80fd5b50565b5f81359050611bb081611b93565b92915050565b5f80fd5b5f67ffffffffffffffff821115611bd457611bd3611adc565b5b611bdd8261176a565b9050602081019050919050565b828183375f83830152505050565b5f611c0a611c0584611bba565b611b3a565b905082815260208101848484011115611c2657611c25611bb6565b5b611c31848285611bea565b509392505050565b5f82601f830112611c4d57611c4c611696565b5b8135611c5d848260208601611bf8565b91505092915050565b5f60a08284031215611c7b57611c7a611ad8565b5b611c8560a0611b3a565b90505f611c9484828501611b7f565b5f830152506020611ca784828501611ba2565b6020830152506040611cbb84828501611a2e565b6040830152506060611ccf84828501611a2e565b606083015250608082013567ffffffffffffffff811115611cf357611cf2611b54565b5b611cff84828501611c39565b60808301525092915050565b5f60208284031215611d2057611d1f6114ef565b5b5f82013567ffffffffffffffff811115611d3d57611d3c6114f3565b5b611d4984828501611c66565b91505092915050565b5f604082019050611d655f8301856117e3565b611d7260208301846115b3565b9392505050565b5f81519050611d8781611a18565b92915050565b5f60208284031215611da257611da16114ef565b5b5f611daf84828501611d79565b91505092915050565b5f606082019050611dcb5f8301866117e3565b611dd860208301856115b3565b611de560408301846115b3565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e3157607f821691505b602082108103611e4457611e43611ded565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611ea67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611e6b565b611eb08683611e6b565b95508019841693508086168417925050509392505050565b5f611ee2611edd611ed8846115aa565b611622565b6115aa565b9050919050565b5f819050919050565b611efb83611ec8565b611f0f611f0782611ee9565b848454611e77565b825550505050565b5f90565b611f23611f17565b611f2e818484611ef2565b505050565b5b81811015611f5157611f465f82611f1b565b600181019050611f34565b5050565b601f821115611f9657611f6781611e4a565b611f7084611e5c565b81016020851015611f7f578190505b611f93611f8b85611e5c565b830182611f33565b50505b505050565b5f82821c905092915050565b5f611fb65f1984600802611f9b565b1980831691505092915050565b5f611fce8383611fa7565b9150826002028217905092915050565b611fe782611742565b67ffffffffffffffff81111561200057611fff611adc565b5b61200a8254611e1a565b612015828285611f55565b5f60209050601f831160018114612046575f8415612034578287015190505b61203e8582611fc3565b8655506120a5565b601f19841661205486611e4a565b5f5b8281101561207b57848901518255600182019150602085019450602081019050612056565b868310156120985784890151612094601f891682611fa7565b8355505b6001600288020188555050505b505050505050565b6120b6816115aa565b82525050565b5f82825260208201905092915050565b5f6120d682611742565b6120e081856120bc565b93506120f081856020860161175c565b6120f98161176a565b840191505092915050565b5f606083015f8301516121195f8601826120ad565b50602083015161212c60208601826120ad565b506040830151848203604086015261214482826120cc565b9150508091505092915050565b5f6020820190508181035f8301526121698184612104565b905092915050565b600381106121825761218161180b565b5b50565b5f81905061219282612171565b919050565b5f6121a182612185565b9050919050565b6121b181612197565b82525050565b6121c0816117d2565b82525050565b5f608083015f8301516121db5f8601826121a8565b5060208301516121ee60208601826121b7565b50604083015161220160408601826121b7565b506060830151848203606086015261221982826120cc565b9150508091505092915050565b5f6020820190508181035f83015261223e81846121c6565b905092915050565b5f6040828403121561225b5761225a611ad8565b5b6122656040611b3a565b90505f612274848285016118ad565b5f83015250602082013567ffffffffffffffff81111561229757612296611b54565b5b6122a384828501611c39565b60208301525092915050565b5f602082840312156122c4576122c36114ef565b5b5f82013567ffffffffffffffff8111156122e1576122e06114f3565b5b6122ed84828501612246565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61232d826115aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361235f5761235e6122f6565b5b600182019050919050565b5f819050919050565b5f61238d6123886123838461236a565b611622565b6115aa565b9050919050565b61239d81612373565b82525050565b5f60a0820190506123b65f8301886117e3565b6123c360208301876117e3565b6123d060408301866115b3565b6123dd6060830185612394565b81810360808301526123ef818461177a565b90509695505050505050565b5f8160601b9050919050565b5f612411826123fb565b9050919050565b5f61242282612407565b9050919050565b61243a6124358261165d565b612418565b82525050565b61245161244c826117d2565b612418565b82525050565b5f819050919050565b61247161246c826115aa565b612457565b82525050565b5f81905092915050565b5f61248b82611742565b6124958185612477565b93506124a581856020860161175c565b80840191505092915050565b5f6124bc8288612429565b6014820191506124cc8287612440565b6014820191506124dc8286612460565b6020820191506124ec8285612460565b6020820191506124fc8284612481565b91508190509695505050505050565b5f604083015f8301516125205f8601826121b7565b506020830151848203602086015261253882826120cc565b9150508091505092915050565b5f6020820190508181035f83015261255d818461250b565b905092915050565b5f6040820190506125785f8301856117e3565b818103602083015261258a818461177a565b90509392505050565b5f61259d826115aa565b91506125a8836115aa565b92508282039050818111156125c0576125bf6122f6565b5b92915050565b5f60a0820190506125d95f8301886117e3565b6125e660208301876117e3565b6125f360408301866115b3565b61260060608301856115b3565b8181036080830152612612818461177a565b9050969550505050505056fea2646970667358221220a900c15f02a358cd74c915a462105bc7f50c7bcfe67bc1cb2f7214fceea3e93264736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x39 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x1 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x34 PUSH2 0x115 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1AE JUMP JUMPDEST PUSH2 0x47 PUSH2 0x181 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xBF JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x81 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x112 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x124 PUSH2 0x185 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x13E JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x17C JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x2654 DUP1 PUSH2 0x1BB PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x165 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xF1C30EC0 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x513 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x54F JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x56B JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x455 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x4BB JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x323 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x419 JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0x38D52E0F GT PUSH2 0x122 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x609D3334 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x319 JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x17D70F7C EQ PUSH2 0x1CF JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x22D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x18F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x154C JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19C SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x688 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH2 0x697 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22B PUSH2 0x69D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x6EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x262 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x715 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0x73A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CA SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0x9DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DC SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2ED PUSH2 0xAC0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x303 PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x310 SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x321 PUSH2 0xB85 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x337 PUSH2 0xB98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x17F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xBC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36E SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x382 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x187E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x1916 JUMP JUMPDEST PUSH2 0xBD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x403 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FE SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0xBF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x424 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x43F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43A SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0xE45 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44C SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x469 PUSH2 0xE62 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x476 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A0 SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0xE67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0xE8F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F8 SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0xECD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50A SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x539 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x10C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x569 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x564 SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0x10DE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x591 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58C SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0x1107 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xB168AA6600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x671 JUMPI POP PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x681 JUMPI POP PUSH2 0x680 DUP3 PUSH2 0x1120 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x6A6 PUSH2 0x1199 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xB168AA6600000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x743 PUSH2 0x11A3 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x775 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x76C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x786 SWAP2 SWAP1 PUSH2 0x1D0B JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x79B JUMPI PUSH2 0x79A PUSH2 0x180B JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH2 0x7B1 PUSH2 0x180B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x868 SWAP3 SWAP2 SWAP1 PUSH2 0x1D52 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x883 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A7 SWAP2 SWAP1 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD DUP2 LT ISZERO PUSH2 0x8FD JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x3 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x969 JUMPI PUSH2 0x968 PUSH2 0x180B JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x5 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x6 SWAP1 DUP2 PUSH2 0x997 SWAP2 SWAP1 PUSH2 0x1FDE JUMP JUMPDEST POP PUSH2 0x9A1 CALLER PUSH2 0x11CC JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x9D8 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9EF SWAP2 SWAP1 PUSH2 0x1D0B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA0F JUMPI PUSH2 0xA0E PUSH2 0x180B JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x2151 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAA8 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH2 0xB06 SWAP1 PUSH2 0x1E1A 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 0xB32 SWAP1 PUSH2 0x1E1A JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB7D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB54 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB7D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB60 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xB8D PUSH2 0x12A2 JUMP JUMPDEST PUSH2 0xB96 PUSH0 PUSH2 0x12D9 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xBF9 PUSH2 0x12A2 JUMP JUMPDEST PUSH0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xC0C JUMPI PUSH2 0xC0B PUSH2 0x180B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xC2E JUMPI PUSH2 0xC2D PUSH2 0x180B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE3B JUMPI PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xC43 SWAP2 SWAP1 PUSH2 0x22AF JUMP JUMPDEST SWAP1 POP PUSH2 0xC51 DUP2 PUSH0 ADD MLOAD PUSH2 0x139F JUMP JUMPDEST PUSH2 0xC87 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xC98 SWAP1 PUSH2 0x2323 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP4 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD61 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23A3 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD78 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD8A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE0D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE29 SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xE3F JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xE78 SWAP2 SWAP1 PUSH2 0x22AF JUMP JUMPDEST SWAP1 POP PUSH2 0xE86 DUP2 PUSH0 ADD MLOAD PUSH2 0x139F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE97 PUSH2 0x12A2 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xEBD JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xECA DUP2 PUSH2 0x12D9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xED6 PUSH2 0x12A2 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEE6 SWAP2 SWAP1 PUSH2 0x22AF JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF01 SWAP2 SWAP1 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 GT ISZERO PUSH2 0xF6B JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF1F SWAP2 SWAP1 PUSH2 0x2545 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF62 SWAP3 SWAP2 SWAP1 PUSH2 0x2565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF7C SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFEE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x25C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1005 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1017 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1099 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x10B5 SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10E6 PUSH2 0x12A2 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x10FB JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1104 DUP2 PUSH2 0x12D9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1192 JUMPI POP PUSH2 0x1191 DUP3 PUSH2 0x1400 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11D4 PUSH2 0x1479 JUMP JUMPDEST ISZERO PUSH2 0x124C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x120E JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x129F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x12D7 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x12E1 PUSH2 0x1479 JUMP JUMPDEST ISZERO PUSH2 0x1346 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x139C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x13F9 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1472 JUMPI POP PUSH2 0x1471 DUP3 PUSH2 0x147D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x152B DUP2 PUSH2 0x14F7 JUMP JUMPDEST DUP2 EQ PUSH2 0x1535 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1546 DUP2 PUSH2 0x1522 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1561 JUMPI PUSH2 0x1560 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0x1538 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x158B DUP2 PUSH2 0x1577 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15A4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1582 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15BC DUP2 PUSH2 0x15AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15D5 PUSH0 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15E4 DUP2 PUSH2 0x14F7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15FD PUSH0 DUP4 ADD DUP5 PUSH2 0x15DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1645 PUSH2 0x1640 PUSH2 0x163B DUP5 PUSH2 0x1603 JUMP JUMPDEST PUSH2 0x1622 JUMP JUMPDEST PUSH2 0x1603 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1656 DUP3 PUSH2 0x162B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1667 DUP3 PUSH2 0x164C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1677 DUP2 PUSH2 0x165D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1690 PUSH0 DUP4 ADD DUP5 PUSH2 0x166E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x16B7 JUMPI PUSH2 0x16B6 PUSH2 0x1696 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16D4 JUMPI PUSH2 0x16D3 PUSH2 0x169A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x16F0 JUMPI PUSH2 0x16EF PUSH2 0x169E JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x170D JUMPI PUSH2 0x170C PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x172A JUMPI PUSH2 0x1729 PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x1736 DUP6 DUP3 DUP7 ADD PUSH2 0x16A2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1784 DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x178E DUP2 DUP6 PUSH2 0x174C JUMP JUMPDEST SWAP4 POP PUSH2 0x179E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST PUSH2 0x17A7 DUP2 PUSH2 0x176A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x17CA DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x17DC DUP3 PUSH2 0x1603 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17EC DUP2 PUSH2 0x17D2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1805 PUSH0 DUP4 ADD DUP5 PUSH2 0x17E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1849 JUMPI PUSH2 0x1848 PUSH2 0x180B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1859 DUP3 PUSH2 0x1838 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1868 DUP3 PUSH2 0x184C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1878 DUP2 PUSH2 0x185E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1891 PUSH0 DUP4 ADD DUP5 PUSH2 0x186F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18A0 DUP2 PUSH2 0x17D2 JUMP JUMPDEST DUP2 EQ PUSH2 0x18AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18BB DUP2 PUSH2 0x1897 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x18D6 JUMPI PUSH2 0x18D5 PUSH2 0x1696 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18F3 JUMPI PUSH2 0x18F2 PUSH2 0x169A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x169E JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1932 JUMPI PUSH2 0x1931 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x193F DUP12 DUP3 DUP13 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x1950 DUP12 DUP3 DUP13 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1971 JUMPI PUSH2 0x1970 PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x197D DUP12 DUP3 DUP13 ADD PUSH2 0x18C1 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19A0 JUMPI PUSH2 0x199F PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x19AC DUP12 DUP3 DUP13 ADD PUSH2 0x18C1 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19CF JUMPI PUSH2 0x19CE PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x19DB DUP12 DUP3 DUP13 ADD PUSH2 0x16A2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A02 JUMPI PUSH2 0x1A01 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A0F DUP5 DUP3 DUP6 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A21 DUP2 PUSH2 0x15AA JUMP JUMPDEST DUP2 EQ PUSH2 0x1A2B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A3C DUP2 PUSH2 0x1A18 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5C JUMPI PUSH2 0x1A5B PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A69 DUP10 DUP3 DUP11 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x1A7A DUP10 DUP3 DUP11 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1A8B DUP10 DUP3 DUP11 ADD PUSH2 0x1A2E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x1A9C DUP10 DUP3 DUP11 ADD PUSH2 0x1A2E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ABD JUMPI PUSH2 0x1ABC PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x1AC9 DUP10 DUP3 DUP11 ADD PUSH2 0x16A2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1B12 DUP3 PUSH2 0x176A JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B31 JUMPI PUSH2 0x1B30 PUSH2 0x1ADC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B43 PUSH2 0x14E6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B4F DUP3 DUP3 PUSH2 0x1B09 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1B62 DUP3 PUSH2 0x17D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B72 DUP2 PUSH2 0x1B58 JUMP JUMPDEST DUP2 EQ PUSH2 0x1B7C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1B8D DUP2 PUSH2 0x1B69 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1B9F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB0 DUP2 PUSH2 0x1B93 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BD4 JUMPI PUSH2 0x1BD3 PUSH2 0x1ADC JUMP JUMPDEST JUMPDEST PUSH2 0x1BDD DUP3 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0A PUSH2 0x1C05 DUP5 PUSH2 0x1BBA JUMP JUMPDEST PUSH2 0x1B3A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1C26 JUMPI PUSH2 0x1C25 PUSH2 0x1BB6 JUMP JUMPDEST JUMPDEST PUSH2 0x1C31 DUP5 DUP3 DUP6 PUSH2 0x1BEA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C4D JUMPI PUSH2 0x1C4C PUSH2 0x1696 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1C5D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1BF8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C7B JUMPI PUSH2 0x1C7A PUSH2 0x1AD8 JUMP JUMPDEST JUMPDEST PUSH2 0x1C85 PUSH1 0xA0 PUSH2 0x1B3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C94 DUP5 DUP3 DUP6 ADD PUSH2 0x1B7F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1CA7 DUP5 DUP3 DUP6 ADD PUSH2 0x1BA2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1CBB DUP5 DUP3 DUP6 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1CCF DUP5 DUP3 DUP6 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CF3 JUMPI PUSH2 0x1CF2 PUSH2 0x1B54 JUMP JUMPDEST JUMPDEST PUSH2 0x1CFF DUP5 DUP3 DUP6 ADD PUSH2 0x1C39 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D20 JUMPI PUSH2 0x1D1F PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D3D JUMPI PUSH2 0x1D3C PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x1D49 DUP5 DUP3 DUP6 ADD PUSH2 0x1C66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D65 PUSH0 DUP4 ADD DUP6 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x1D72 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1D87 DUP2 PUSH2 0x1A18 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DA2 JUMPI PUSH2 0x1DA1 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1DAF DUP5 DUP3 DUP6 ADD PUSH2 0x1D79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1DCB PUSH0 DUP4 ADD DUP7 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x1DD8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x1DE5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1E31 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1E44 JUMPI PUSH2 0x1E43 PUSH2 0x1DED JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1EA6 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1E6B JUMP JUMPDEST PUSH2 0x1EB0 DUP7 DUP4 PUSH2 0x1E6B JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EE2 PUSH2 0x1EDD PUSH2 0x1ED8 DUP5 PUSH2 0x15AA JUMP JUMPDEST PUSH2 0x1622 JUMP JUMPDEST PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EFB DUP4 PUSH2 0x1EC8 JUMP JUMPDEST PUSH2 0x1F0F PUSH2 0x1F07 DUP3 PUSH2 0x1EE9 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1E77 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1F23 PUSH2 0x1F17 JUMP JUMPDEST PUSH2 0x1F2E DUP2 DUP5 DUP5 PUSH2 0x1EF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F51 JUMPI PUSH2 0x1F46 PUSH0 DUP3 PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1F34 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1F96 JUMPI PUSH2 0x1F67 DUP2 PUSH2 0x1E4A JUMP JUMPDEST PUSH2 0x1F70 DUP5 PUSH2 0x1E5C JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1F7F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1F93 PUSH2 0x1F8B DUP6 PUSH2 0x1E5C JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1F33 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FB6 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1F9B JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FCE DUP4 DUP4 PUSH2 0x1FA7 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FE7 DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2000 JUMPI PUSH2 0x1FFF PUSH2 0x1ADC JUMP JUMPDEST JUMPDEST PUSH2 0x200A DUP3 SLOAD PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2015 DUP3 DUP3 DUP6 PUSH2 0x1F55 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2046 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x2034 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x203E DUP6 DUP3 PUSH2 0x1FC3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2054 DUP7 PUSH2 0x1E4A JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x207B JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2056 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2098 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2094 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1FA7 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x20B6 DUP2 PUSH2 0x15AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20D6 DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x20E0 DUP2 DUP6 PUSH2 0x20BC JUMP JUMPDEST SWAP4 POP PUSH2 0x20F0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST PUSH2 0x20F9 DUP2 PUSH2 0x176A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2119 PUSH0 DUP7 ADD DUP3 PUSH2 0x20AD JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x212C PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x20AD JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x2144 DUP3 DUP3 PUSH2 0x20CC JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2169 DUP2 DUP5 PUSH2 0x2104 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x180B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x2192 DUP3 PUSH2 0x2171 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x21A1 DUP3 PUSH2 0x2185 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x21B1 DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x21C0 DUP2 PUSH2 0x17D2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x21DB PUSH0 DUP7 ADD DUP3 PUSH2 0x21A8 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x21EE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x21B7 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2201 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x21B7 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x2219 DUP3 DUP3 PUSH2 0x20CC JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x223E DUP2 DUP5 PUSH2 0x21C6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x225B JUMPI PUSH2 0x225A PUSH2 0x1AD8 JUMP JUMPDEST JUMPDEST PUSH2 0x2265 PUSH1 0x40 PUSH2 0x1B3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2274 DUP5 DUP3 DUP6 ADD PUSH2 0x18AD JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2297 JUMPI PUSH2 0x2296 PUSH2 0x1B54 JUMP JUMPDEST JUMPDEST PUSH2 0x22A3 DUP5 DUP3 DUP6 ADD PUSH2 0x1C39 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22C4 JUMPI PUSH2 0x22C3 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22E1 JUMPI PUSH2 0x22E0 PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x22ED DUP5 DUP3 DUP6 ADD PUSH2 0x2246 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x232D DUP3 PUSH2 0x15AA JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x235F JUMPI PUSH2 0x235E PUSH2 0x22F6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x238D PUSH2 0x2388 PUSH2 0x2383 DUP5 PUSH2 0x236A JUMP JUMPDEST PUSH2 0x1622 JUMP JUMPDEST PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x239D DUP2 PUSH2 0x2373 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x23B6 PUSH0 DUP4 ADD DUP9 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x23C3 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x23DD PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2394 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x23EF DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2411 DUP3 PUSH2 0x23FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2422 DUP3 PUSH2 0x2407 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x243A PUSH2 0x2435 DUP3 PUSH2 0x165D JUMP JUMPDEST PUSH2 0x2418 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2451 PUSH2 0x244C DUP3 PUSH2 0x17D2 JUMP JUMPDEST PUSH2 0x2418 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2471 PUSH2 0x246C DUP3 PUSH2 0x15AA JUMP JUMPDEST PUSH2 0x2457 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x248B DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x2495 DUP2 DUP6 PUSH2 0x2477 JUMP JUMPDEST SWAP4 POP PUSH2 0x24A5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x24BC DUP3 DUP9 PUSH2 0x2429 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x24CC DUP3 DUP8 PUSH2 0x2440 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x24DC DUP3 DUP7 PUSH2 0x2460 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x24EC DUP3 DUP6 PUSH2 0x2460 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x24FC DUP3 DUP5 PUSH2 0x2481 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2520 PUSH0 DUP7 ADD DUP3 PUSH2 0x21B7 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2538 DUP3 DUP3 PUSH2 0x20CC JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x255D DUP2 DUP5 PUSH2 0x250B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2578 PUSH0 DUP4 ADD DUP6 PUSH2 0x17E3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x258A DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x259D DUP3 PUSH2 0x15AA JUMP JUMPDEST SWAP2 POP PUSH2 0x25A8 DUP4 PUSH2 0x15AA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x25C0 JUMPI PUSH2 0x25BF PUSH2 0x22F6 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x25D9 PUSH0 DUP4 ADD DUP9 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x25E6 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x25F3 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x2600 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2612 DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 STOP 0xC1 PUSH0 MUL LOG3 PC 0xCD PUSH21 0xC915A462105BC7F50C7BCFE67BC1CB2F7214FCEEA3 0xE9 ORIGIN PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"508:2398:52:-:0;;;1024:73;;;;;;;;;;1647:28:54;1664:10;1647:16;;;:28;;:::i;:::-;1057:1:52;1048:6;:10;;;;1068:22;:20;;;:22;;:::i;:::-;508:2398;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;508:2398:52:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6308":{"entryPoint":4770,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":5241,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":4515,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":4556,"id":6288,"parameterSlots":1,"returnSlots":0},"@_isClaimable_16681":{"entryPoint":5023,"id":16681,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6319":{"entryPoint":4505,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":4825,"id":6302,"parameterSlots":1,"returnSlots":0},"@asset_16446":{"entryPoint":1813,"id":16446,"parameterSlots":0,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":2752,"id":6368,"parameterSlots":0,"returnSlots":0},"@claim_16554":{"entryPoint":3056,"id":16554,"parameterSlots":2,"returnSlots":1},"@claimed_18107":{"entryPoint":3653,"id":18107,"parameterSlots":0,"returnSlots":0},"@claims_18099":{"entryPoint":3682,"id":18099,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":3727,"id":6382,"parameterSlots":1,"returnSlots":0},"@currentReward_18158":{"entryPoint":1672,"id":18158,"parameterSlots":0,"returnSlots":1},"@extraData_16459":{"entryPoint":2809,"id":16459,"parameterSlots":0,"returnSlots":0},"@getComponentInterface_16741":{"entryPoint":1774,"id":16741,"parameterSlots":0,"returnSlots":1},"@initialize_17795":{"entryPoint":1850,"id":17795,"parameterSlots":2,"returnSlots":0},"@isClaimable_16663":{"entryPoint":3687,"id":16663,"parameterSlots":2,"returnSlots":1},"@limit_16453":{"entryPoint":3008,"id":16453,"parameterSlots":0,"returnSlots":0},"@onERC1155BatchReceived_16727":{"entryPoint":3033,"id":16727,"parameterSlots":8,"returnSlots":1},"@onERC1155Received_16703":{"entryPoint":4297,"id":16703,"parameterSlots":6,"returnSlots":1},"@owner_6390":{"entryPoint":2968,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":4359,"id":6400,"parameterSlots":1,"returnSlots":1},"@preflight_17846":{"entryPoint":2525,"id":17846,"parameterSlots":2,"returnSlots":1},"@reclaim_16638":{"entryPoint":3789,"id":16638,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":2949,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1693,"id":6362,"parameterSlots":0,"returnSlots":0},"@reward_18102":{"entryPoint":1687,"id":18102,"parameterSlots":0,"returnSlots":0},"@strategy_16450":{"entryPoint":3014,"id":16450,"parameterSlots":0,"returnSlots":0},"@supportsInterface_16772":{"entryPoint":1447,"id":16772,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18181":{"entryPoint":4384,"id":18181,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":5120,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":5245,"id":2830,"parameterSlots":1,"returnSlots":1},"@tokenId_16456":{"entryPoint":1681,"id":16456,"parameterSlots":0,"returnSlots":0},"@transferOwnership_6333":{"entryPoint":4318,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":7160,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6317,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr":{"entryPoint":6337,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes4":{"entryPoint":5432,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":5794,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":7225,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IERC1155_$1176":{"entryPoint":7039,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_Strategy_$16442":{"entryPoint":7074,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":8774,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$17680_memory_ptr":{"entryPoint":7270,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6702,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":7545,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6637,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr":{"entryPoint":6422,"id":null,"parameterSlots":2,"returnSlots":8},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr":{"entryPoint":6722,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_bytes4":{"entryPoint":5452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":5879,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":8879,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$17680_memory_ptr":{"entryPoint":7435,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":7565,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":8631,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6115,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":9280,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5506,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":5595,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":8396,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6010,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":9345,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_IERC1155_$1176_to_t_address_fromStack":{"entryPoint":5742,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IERC1155_$1176_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":9257,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_AssetType_$15450_to_t_uint8":{"entryPoint":8616,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_Strategy_$16442_to_t_uint8_fromStack":{"entryPoint":6255,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack":{"entryPoint":9108,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack":{"entryPoint":9483,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ERC1155Payload_$15473_memory_ptr_to_t_struct$_ERC1155Payload_$15473_memory_ptr_fromStack":{"entryPoint":8452,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack":{"entryPoint":8646,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":8365,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5555,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":9312,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_contract$_IERC1155_$1176_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":9393,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":6130,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_rational_1_by_1_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9123,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9670,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":9573,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":7506,"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":7608,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5521,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":5610,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6066,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IERC1155_$1176__to_t_address__fromStack_reversed":{"entryPoint":5757,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_Strategy_$16442__to_t_uint8__fromStack_reversed":{"entryPoint":6270,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed":{"entryPoint":9541,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ERC1155Payload_$15473_memory_ptr__to_t_struct$_ERC1155Payload_$15473_memory_ptr__fromStack_reversed":{"entryPoint":8529,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed":{"entryPoint":8742,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5570,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":6970,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5350,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":7098,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_bytes_storage":{"entryPoint":7754,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":5954,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":8380,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":5964,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":9335,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":9619,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_bytes_storage":{"entryPoint":8021,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":6098,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5495,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5367,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IERC1155_$1176":{"entryPoint":7000,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$15450":{"entryPoint":8581,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_Strategy_$16442":{"entryPoint":6220,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_rational_1_by_1":{"entryPoint":9066,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5635,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5546,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":7987,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_IERC1155_$1176_to_t_address":{"entryPoint":5725,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$15450_to_t_uint8":{"entryPoint":8599,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_Strategy_$16442_to_t_uint8":{"entryPoint":6238,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_rational_1_by_1_to_t_uint256":{"entryPoint":9075,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":5708,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":5675,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":7880,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage":{"entryPoint":8158,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":7146,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5980,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":7772,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":7706,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":8131,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":6921,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":5666,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":8995,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":9240,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":9223,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":9303,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":8103,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":8950,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":6155,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":7661,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":6876,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":7913,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":5786,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":5782,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":6872,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":6996,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":5790,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":7094,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5363,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5359,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":5994,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":9211,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":7787,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":8091,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":7963,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":7799,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":7922,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_AssetType_$15450":{"entryPoint":8561,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_Strategy_$16442":{"entryPoint":6200,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6295,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5410,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IERC1155_$1176":{"entryPoint":7017,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_Strategy_$16442":{"entryPoint":7059,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6680,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":7959,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:34434:64","nodeType":"YulBlock","src":"0:34434:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:32:64","nodeType":"YulBlock","src":"1563:32:64","statements":[{"nativeSrc":"1573:16:64","nodeType":"YulAssignment","src":"1573:16:64","value":{"name":"value","nativeSrc":"1584:5:64","nodeType":"YulIdentifier","src":"1584:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:77:64"},{"body":{"nativeSrc":"1666:53:64","nodeType":"YulBlock","src":"1666:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:64","nodeType":"YulIdentifier","src":"1683:3:64"},{"arguments":[{"name":"value","nativeSrc":"1706:5:64","nodeType":"YulIdentifier","src":"1706:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:64","nodeType":"YulIdentifier","src":"1688:17:64"},"nativeSrc":"1688:24:64","nodeType":"YulFunctionCall","src":"1688:24:64"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:64","nodeType":"YulIdentifier","src":"1676:6:64"},"nativeSrc":"1676:37:64","nodeType":"YulFunctionCall","src":"1676:37:64"},"nativeSrc":"1676:37:64","nodeType":"YulExpressionStatement","src":"1676:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:64","nodeType":"YulTypedName","src":"1654:5:64","type":""},{"name":"pos","nativeSrc":"1661:3:64","nodeType":"YulTypedName","src":"1661:3:64","type":""}],"src":"1601:118:64"},{"body":{"nativeSrc":"1823:124:64","nodeType":"YulBlock","src":"1823:124:64","statements":[{"nativeSrc":"1833:26:64","nodeType":"YulAssignment","src":"1833:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:64","nodeType":"YulIdentifier","src":"1845:9:64"},{"kind":"number","nativeSrc":"1856:2:64","nodeType":"YulLiteral","src":"1856:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:64","nodeType":"YulIdentifier","src":"1841:3:64"},"nativeSrc":"1841:18:64","nodeType":"YulFunctionCall","src":"1841:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:64","nodeType":"YulIdentifier","src":"1833:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:64","nodeType":"YulIdentifier","src":"1913:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:64","nodeType":"YulIdentifier","src":"1926:9:64"},{"kind":"number","nativeSrc":"1937:1:64","nodeType":"YulLiteral","src":"1937:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:64","nodeType":"YulIdentifier","src":"1922:3:64"},"nativeSrc":"1922:17:64","nodeType":"YulFunctionCall","src":"1922:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:64","nodeType":"YulIdentifier","src":"1869:43:64"},"nativeSrc":"1869:71:64","nodeType":"YulFunctionCall","src":"1869:71:64"},"nativeSrc":"1869:71:64","nodeType":"YulExpressionStatement","src":"1869:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:64","nodeType":"YulTypedName","src":"1795:9:64","type":""},{"name":"value0","nativeSrc":"1807:6:64","nodeType":"YulTypedName","src":"1807:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:64","nodeType":"YulTypedName","src":"1818:4:64","type":""}],"src":"1725:222:64"},{"body":{"nativeSrc":"2016:52:64","nodeType":"YulBlock","src":"2016:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2033:3:64","nodeType":"YulIdentifier","src":"2033:3:64"},{"arguments":[{"name":"value","nativeSrc":"2055:5:64","nodeType":"YulIdentifier","src":"2055:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2038:16:64","nodeType":"YulIdentifier","src":"2038:16:64"},"nativeSrc":"2038:23:64","nodeType":"YulFunctionCall","src":"2038:23:64"}],"functionName":{"name":"mstore","nativeSrc":"2026:6:64","nodeType":"YulIdentifier","src":"2026:6:64"},"nativeSrc":"2026:36:64","nodeType":"YulFunctionCall","src":"2026:36:64"},"nativeSrc":"2026:36:64","nodeType":"YulExpressionStatement","src":"2026:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"1953:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2004:5:64","nodeType":"YulTypedName","src":"2004:5:64","type":""},{"name":"pos","nativeSrc":"2011:3:64","nodeType":"YulTypedName","src":"2011:3:64","type":""}],"src":"1953:115:64"},{"body":{"nativeSrc":"2170:122:64","nodeType":"YulBlock","src":"2170:122:64","statements":[{"nativeSrc":"2180:26:64","nodeType":"YulAssignment","src":"2180:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2192:9:64","nodeType":"YulIdentifier","src":"2192:9:64"},{"kind":"number","nativeSrc":"2203:2:64","nodeType":"YulLiteral","src":"2203:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2188:3:64","nodeType":"YulIdentifier","src":"2188:3:64"},"nativeSrc":"2188:18:64","nodeType":"YulFunctionCall","src":"2188:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2180:4:64","nodeType":"YulIdentifier","src":"2180:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2258:6:64","nodeType":"YulIdentifier","src":"2258:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2271:9:64","nodeType":"YulIdentifier","src":"2271:9:64"},{"kind":"number","nativeSrc":"2282:1:64","nodeType":"YulLiteral","src":"2282:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2267:3:64","nodeType":"YulIdentifier","src":"2267:3:64"},"nativeSrc":"2267:17:64","nodeType":"YulFunctionCall","src":"2267:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"2216:41:64","nodeType":"YulIdentifier","src":"2216:41:64"},"nativeSrc":"2216:69:64","nodeType":"YulFunctionCall","src":"2216:69:64"},"nativeSrc":"2216:69:64","nodeType":"YulExpressionStatement","src":"2216:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"2074:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2142:9:64","nodeType":"YulTypedName","src":"2142:9:64","type":""},{"name":"value0","nativeSrc":"2154:6:64","nodeType":"YulTypedName","src":"2154:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2165:4:64","nodeType":"YulTypedName","src":"2165:4:64","type":""}],"src":"2074:218:64"},{"body":{"nativeSrc":"2343:81:64","nodeType":"YulBlock","src":"2343:81:64","statements":[{"nativeSrc":"2353:65:64","nodeType":"YulAssignment","src":"2353:65:64","value":{"arguments":[{"name":"value","nativeSrc":"2368:5:64","nodeType":"YulIdentifier","src":"2368:5:64"},{"kind":"number","nativeSrc":"2375:42:64","nodeType":"YulLiteral","src":"2375:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2364:3:64","nodeType":"YulIdentifier","src":"2364:3:64"},"nativeSrc":"2364:54:64","nodeType":"YulFunctionCall","src":"2364:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2353:7:64","nodeType":"YulIdentifier","src":"2353:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2298:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2325:5:64","nodeType":"YulTypedName","src":"2325:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2335:7:64","nodeType":"YulTypedName","src":"2335:7:64","type":""}],"src":"2298:126:64"},{"body":{"nativeSrc":"2462:28:64","nodeType":"YulBlock","src":"2462:28:64","statements":[{"nativeSrc":"2472:12:64","nodeType":"YulAssignment","src":"2472:12:64","value":{"name":"value","nativeSrc":"2479:5:64","nodeType":"YulIdentifier","src":"2479:5:64"},"variableNames":[{"name":"ret","nativeSrc":"2472:3:64","nodeType":"YulIdentifier","src":"2472:3:64"}]}]},"name":"identity","nativeSrc":"2430:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2448:5:64","nodeType":"YulTypedName","src":"2448:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"2458:3:64","nodeType":"YulTypedName","src":"2458:3:64","type":""}],"src":"2430:60:64"},{"body":{"nativeSrc":"2556:82:64","nodeType":"YulBlock","src":"2556:82:64","statements":[{"nativeSrc":"2566:66:64","nodeType":"YulAssignment","src":"2566:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2624:5:64","nodeType":"YulIdentifier","src":"2624:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2606:17:64","nodeType":"YulIdentifier","src":"2606:17:64"},"nativeSrc":"2606:24:64","nodeType":"YulFunctionCall","src":"2606:24:64"}],"functionName":{"name":"identity","nativeSrc":"2597:8:64","nodeType":"YulIdentifier","src":"2597:8:64"},"nativeSrc":"2597:34:64","nodeType":"YulFunctionCall","src":"2597:34:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2579:17:64","nodeType":"YulIdentifier","src":"2579:17:64"},"nativeSrc":"2579:53:64","nodeType":"YulFunctionCall","src":"2579:53:64"},"variableNames":[{"name":"converted","nativeSrc":"2566:9:64","nodeType":"YulIdentifier","src":"2566:9:64"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2496:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2536:5:64","nodeType":"YulTypedName","src":"2536:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2546:9:64","nodeType":"YulTypedName","src":"2546:9:64","type":""}],"src":"2496:142:64"},{"body":{"nativeSrc":"2704:66:64","nodeType":"YulBlock","src":"2704:66:64","statements":[{"nativeSrc":"2714:50:64","nodeType":"YulAssignment","src":"2714:50:64","value":{"arguments":[{"name":"value","nativeSrc":"2758:5:64","nodeType":"YulIdentifier","src":"2758:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"2727:30:64","nodeType":"YulIdentifier","src":"2727:30:64"},"nativeSrc":"2727:37:64","nodeType":"YulFunctionCall","src":"2727:37:64"},"variableNames":[{"name":"converted","nativeSrc":"2714:9:64","nodeType":"YulIdentifier","src":"2714:9:64"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"2644:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2684:5:64","nodeType":"YulTypedName","src":"2684:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2694:9:64","nodeType":"YulTypedName","src":"2694:9:64","type":""}],"src":"2644:126:64"},{"body":{"nativeSrc":"2853:66:64","nodeType":"YulBlock","src":"2853:66:64","statements":[{"nativeSrc":"2863:50:64","nodeType":"YulAssignment","src":"2863:50:64","value":{"arguments":[{"name":"value","nativeSrc":"2907:5:64","nodeType":"YulIdentifier","src":"2907:5:64"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"2876:30:64","nodeType":"YulIdentifier","src":"2876:30:64"},"nativeSrc":"2876:37:64","nodeType":"YulFunctionCall","src":"2876:37:64"},"variableNames":[{"name":"converted","nativeSrc":"2863:9:64","nodeType":"YulIdentifier","src":"2863:9:64"}]}]},"name":"convert_t_contract$_IERC1155_$1176_to_t_address","nativeSrc":"2776:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2833:5:64","nodeType":"YulTypedName","src":"2833:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"2843:9:64","nodeType":"YulTypedName","src":"2843:9:64","type":""}],"src":"2776:143:64"},{"body":{"nativeSrc":"3007:83:64","nodeType":"YulBlock","src":"3007:83:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3024:3:64","nodeType":"YulIdentifier","src":"3024:3:64"},{"arguments":[{"name":"value","nativeSrc":"3077:5:64","nodeType":"YulIdentifier","src":"3077:5:64"}],"functionName":{"name":"convert_t_contract$_IERC1155_$1176_to_t_address","nativeSrc":"3029:47:64","nodeType":"YulIdentifier","src":"3029:47:64"},"nativeSrc":"3029:54:64","nodeType":"YulFunctionCall","src":"3029:54:64"}],"functionName":{"name":"mstore","nativeSrc":"3017:6:64","nodeType":"YulIdentifier","src":"3017:6:64"},"nativeSrc":"3017:67:64","nodeType":"YulFunctionCall","src":"3017:67:64"},"nativeSrc":"3017:67:64","nodeType":"YulExpressionStatement","src":"3017:67:64"}]},"name":"abi_encode_t_contract$_IERC1155_$1176_to_t_address_fromStack","nativeSrc":"2925:165:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2995:5:64","nodeType":"YulTypedName","src":"2995:5:64","type":""},{"name":"pos","nativeSrc":"3002:3:64","nodeType":"YulTypedName","src":"3002:3:64","type":""}],"src":"2925:165:64"},{"body":{"nativeSrc":"3211:141:64","nodeType":"YulBlock","src":"3211:141:64","statements":[{"nativeSrc":"3221:26:64","nodeType":"YulAssignment","src":"3221:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3233:9:64","nodeType":"YulIdentifier","src":"3233:9:64"},{"kind":"number","nativeSrc":"3244:2:64","nodeType":"YulLiteral","src":"3244:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3229:3:64","nodeType":"YulIdentifier","src":"3229:3:64"},"nativeSrc":"3229:18:64","nodeType":"YulFunctionCall","src":"3229:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3221:4:64","nodeType":"YulIdentifier","src":"3221:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3318:6:64","nodeType":"YulIdentifier","src":"3318:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3331:9:64","nodeType":"YulIdentifier","src":"3331:9:64"},{"kind":"number","nativeSrc":"3342:1:64","nodeType":"YulLiteral","src":"3342:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3327:3:64","nodeType":"YulIdentifier","src":"3327:3:64"},"nativeSrc":"3327:17:64","nodeType":"YulFunctionCall","src":"3327:17:64"}],"functionName":{"name":"abi_encode_t_contract$_IERC1155_$1176_to_t_address_fromStack","nativeSrc":"3257:60:64","nodeType":"YulIdentifier","src":"3257:60:64"},"nativeSrc":"3257:88:64","nodeType":"YulFunctionCall","src":"3257:88:64"},"nativeSrc":"3257:88:64","nodeType":"YulExpressionStatement","src":"3257:88:64"}]},"name":"abi_encode_tuple_t_contract$_IERC1155_$1176__to_t_address__fromStack_reversed","nativeSrc":"3096:256:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3183:9:64","nodeType":"YulTypedName","src":"3183:9:64","type":""},{"name":"value0","nativeSrc":"3195:6:64","nodeType":"YulTypedName","src":"3195:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3206:4:64","nodeType":"YulTypedName","src":"3206:4:64","type":""}],"src":"3096:256:64"},{"body":{"nativeSrc":"3447:28:64","nodeType":"YulBlock","src":"3447:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3464:1:64","nodeType":"YulLiteral","src":"3464:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3467:1:64","nodeType":"YulLiteral","src":"3467:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3457:6:64","nodeType":"YulIdentifier","src":"3457:6:64"},"nativeSrc":"3457:12:64","nodeType":"YulFunctionCall","src":"3457:12:64"},"nativeSrc":"3457:12:64","nodeType":"YulExpressionStatement","src":"3457:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3358:117:64","nodeType":"YulFunctionDefinition","src":"3358:117:64"},{"body":{"nativeSrc":"3570:28:64","nodeType":"YulBlock","src":"3570:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3587:1:64","nodeType":"YulLiteral","src":"3587:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3590:1:64","nodeType":"YulLiteral","src":"3590:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3580:6:64","nodeType":"YulIdentifier","src":"3580:6:64"},"nativeSrc":"3580:12:64","nodeType":"YulFunctionCall","src":"3580:12:64"},"nativeSrc":"3580:12:64","nodeType":"YulExpressionStatement","src":"3580:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3481:117:64","nodeType":"YulFunctionDefinition","src":"3481:117:64"},{"body":{"nativeSrc":"3693:28:64","nodeType":"YulBlock","src":"3693:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3710:1:64","nodeType":"YulLiteral","src":"3710:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3713:1:64","nodeType":"YulLiteral","src":"3713:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3703:6:64","nodeType":"YulIdentifier","src":"3703:6:64"},"nativeSrc":"3703:12:64","nodeType":"YulFunctionCall","src":"3703:12:64"},"nativeSrc":"3703:12:64","nodeType":"YulExpressionStatement","src":"3703:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3604:117:64","nodeType":"YulFunctionDefinition","src":"3604:117:64"},{"body":{"nativeSrc":"3814:478:64","nodeType":"YulBlock","src":"3814:478:64","statements":[{"body":{"nativeSrc":"3863:83:64","nodeType":"YulBlock","src":"3863:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3865:77:64","nodeType":"YulIdentifier","src":"3865:77:64"},"nativeSrc":"3865:79:64","nodeType":"YulFunctionCall","src":"3865:79:64"},"nativeSrc":"3865:79:64","nodeType":"YulExpressionStatement","src":"3865:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3842:6:64","nodeType":"YulIdentifier","src":"3842:6:64"},{"kind":"number","nativeSrc":"3850:4:64","nodeType":"YulLiteral","src":"3850:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3838:3:64","nodeType":"YulIdentifier","src":"3838:3:64"},"nativeSrc":"3838:17:64","nodeType":"YulFunctionCall","src":"3838:17:64"},{"name":"end","nativeSrc":"3857:3:64","nodeType":"YulIdentifier","src":"3857:3:64"}],"functionName":{"name":"slt","nativeSrc":"3834:3:64","nodeType":"YulIdentifier","src":"3834:3:64"},"nativeSrc":"3834:27:64","nodeType":"YulFunctionCall","src":"3834:27:64"}],"functionName":{"name":"iszero","nativeSrc":"3827:6:64","nodeType":"YulIdentifier","src":"3827:6:64"},"nativeSrc":"3827:35:64","nodeType":"YulFunctionCall","src":"3827:35:64"},"nativeSrc":"3824:122:64","nodeType":"YulIf","src":"3824:122:64"},{"nativeSrc":"3955:30:64","nodeType":"YulAssignment","src":"3955:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"3978:6:64","nodeType":"YulIdentifier","src":"3978:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"3965:12:64","nodeType":"YulIdentifier","src":"3965:12:64"},"nativeSrc":"3965:20:64","nodeType":"YulFunctionCall","src":"3965:20:64"},"variableNames":[{"name":"length","nativeSrc":"3955:6:64","nodeType":"YulIdentifier","src":"3955:6:64"}]},{"body":{"nativeSrc":"4028:83:64","nodeType":"YulBlock","src":"4028:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4030:77:64","nodeType":"YulIdentifier","src":"4030:77:64"},"nativeSrc":"4030:79:64","nodeType":"YulFunctionCall","src":"4030:79:64"},"nativeSrc":"4030:79:64","nodeType":"YulExpressionStatement","src":"4030:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4000:6:64","nodeType":"YulIdentifier","src":"4000:6:64"},{"kind":"number","nativeSrc":"4008:18:64","nodeType":"YulLiteral","src":"4008:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3997:2:64","nodeType":"YulIdentifier","src":"3997:2:64"},"nativeSrc":"3997:30:64","nodeType":"YulFunctionCall","src":"3997:30:64"},"nativeSrc":"3994:117:64","nodeType":"YulIf","src":"3994:117:64"},{"nativeSrc":"4120:29:64","nodeType":"YulAssignment","src":"4120:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4136:6:64","nodeType":"YulIdentifier","src":"4136:6:64"},{"kind":"number","nativeSrc":"4144:4:64","nodeType":"YulLiteral","src":"4144:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4132:3:64","nodeType":"YulIdentifier","src":"4132:3:64"},"nativeSrc":"4132:17:64","nodeType":"YulFunctionCall","src":"4132:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"4120:8:64","nodeType":"YulIdentifier","src":"4120:8:64"}]},{"body":{"nativeSrc":"4203:83:64","nodeType":"YulBlock","src":"4203:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4205:77:64","nodeType":"YulIdentifier","src":"4205:77:64"},"nativeSrc":"4205:79:64","nodeType":"YulFunctionCall","src":"4205:79:64"},"nativeSrc":"4205:79:64","nodeType":"YulExpressionStatement","src":"4205:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4168:8:64","nodeType":"YulIdentifier","src":"4168:8:64"},{"arguments":[{"name":"length","nativeSrc":"4182:6:64","nodeType":"YulIdentifier","src":"4182:6:64"},{"kind":"number","nativeSrc":"4190:4:64","nodeType":"YulLiteral","src":"4190:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"4178:3:64","nodeType":"YulIdentifier","src":"4178:3:64"},"nativeSrc":"4178:17:64","nodeType":"YulFunctionCall","src":"4178:17:64"}],"functionName":{"name":"add","nativeSrc":"4164:3:64","nodeType":"YulIdentifier","src":"4164:3:64"},"nativeSrc":"4164:32:64","nodeType":"YulFunctionCall","src":"4164:32:64"},{"name":"end","nativeSrc":"4198:3:64","nodeType":"YulIdentifier","src":"4198:3:64"}],"functionName":{"name":"gt","nativeSrc":"4161:2:64","nodeType":"YulIdentifier","src":"4161:2:64"},"nativeSrc":"4161:41:64","nodeType":"YulFunctionCall","src":"4161:41:64"},"nativeSrc":"4158:128:64","nodeType":"YulIf","src":"4158:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3740:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3781:6:64","nodeType":"YulTypedName","src":"3781:6:64","type":""},{"name":"end","nativeSrc":"3789:3:64","nodeType":"YulTypedName","src":"3789:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3797:8:64","nodeType":"YulTypedName","src":"3797:8:64","type":""},{"name":"length","nativeSrc":"3807:6:64","nodeType":"YulTypedName","src":"3807:6:64","type":""}],"src":"3740:552:64"},{"body":{"nativeSrc":"4383:442:64","nodeType":"YulBlock","src":"4383:442:64","statements":[{"body":{"nativeSrc":"4429:83:64","nodeType":"YulBlock","src":"4429:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4431:77:64","nodeType":"YulIdentifier","src":"4431:77:64"},"nativeSrc":"4431:79:64","nodeType":"YulFunctionCall","src":"4431:79:64"},"nativeSrc":"4431:79:64","nodeType":"YulExpressionStatement","src":"4431:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4404:7:64","nodeType":"YulIdentifier","src":"4404:7:64"},{"name":"headStart","nativeSrc":"4413:9:64","nodeType":"YulIdentifier","src":"4413:9:64"}],"functionName":{"name":"sub","nativeSrc":"4400:3:64","nodeType":"YulIdentifier","src":"4400:3:64"},"nativeSrc":"4400:23:64","nodeType":"YulFunctionCall","src":"4400:23:64"},{"kind":"number","nativeSrc":"4425:2:64","nodeType":"YulLiteral","src":"4425:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"4396:3:64","nodeType":"YulIdentifier","src":"4396:3:64"},"nativeSrc":"4396:32:64","nodeType":"YulFunctionCall","src":"4396:32:64"},"nativeSrc":"4393:119:64","nodeType":"YulIf","src":"4393:119:64"},{"nativeSrc":"4522:296:64","nodeType":"YulBlock","src":"4522:296:64","statements":[{"nativeSrc":"4537:45:64","nodeType":"YulVariableDeclaration","src":"4537:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4568:9:64","nodeType":"YulIdentifier","src":"4568:9:64"},{"kind":"number","nativeSrc":"4579:1:64","nodeType":"YulLiteral","src":"4579:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4564:3:64","nodeType":"YulIdentifier","src":"4564:3:64"},"nativeSrc":"4564:17:64","nodeType":"YulFunctionCall","src":"4564:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"4551:12:64","nodeType":"YulIdentifier","src":"4551:12:64"},"nativeSrc":"4551:31:64","nodeType":"YulFunctionCall","src":"4551:31:64"},"variables":[{"name":"offset","nativeSrc":"4541:6:64","nodeType":"YulTypedName","src":"4541:6:64","type":""}]},{"body":{"nativeSrc":"4629:83:64","nodeType":"YulBlock","src":"4629:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4631:77:64","nodeType":"YulIdentifier","src":"4631:77:64"},"nativeSrc":"4631:79:64","nodeType":"YulFunctionCall","src":"4631:79:64"},"nativeSrc":"4631:79:64","nodeType":"YulExpressionStatement","src":"4631:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4601:6:64","nodeType":"YulIdentifier","src":"4601:6:64"},{"kind":"number","nativeSrc":"4609:18:64","nodeType":"YulLiteral","src":"4609:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4598:2:64","nodeType":"YulIdentifier","src":"4598:2:64"},"nativeSrc":"4598:30:64","nodeType":"YulFunctionCall","src":"4598:30:64"},"nativeSrc":"4595:117:64","nodeType":"YulIf","src":"4595:117:64"},{"nativeSrc":"4726:82:64","nodeType":"YulAssignment","src":"4726:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4780:9:64","nodeType":"YulIdentifier","src":"4780:9:64"},{"name":"offset","nativeSrc":"4791:6:64","nodeType":"YulIdentifier","src":"4791:6:64"}],"functionName":{"name":"add","nativeSrc":"4776:3:64","nodeType":"YulIdentifier","src":"4776:3:64"},"nativeSrc":"4776:22:64","nodeType":"YulFunctionCall","src":"4776:22:64"},{"name":"dataEnd","nativeSrc":"4800:7:64","nodeType":"YulIdentifier","src":"4800:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4744:31:64","nodeType":"YulIdentifier","src":"4744:31:64"},"nativeSrc":"4744:64:64","nodeType":"YulFunctionCall","src":"4744:64:64"},"variableNames":[{"name":"value0","nativeSrc":"4726:6:64","nodeType":"YulIdentifier","src":"4726:6:64"},{"name":"value1","nativeSrc":"4734:6:64","nodeType":"YulIdentifier","src":"4734:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"4298:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4345:9:64","nodeType":"YulTypedName","src":"4345:9:64","type":""},{"name":"dataEnd","nativeSrc":"4356:7:64","nodeType":"YulTypedName","src":"4356:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4368:6:64","nodeType":"YulTypedName","src":"4368:6:64","type":""},{"name":"value1","nativeSrc":"4376:6:64","nodeType":"YulTypedName","src":"4376:6:64","type":""}],"src":"4298:527:64"},{"body":{"nativeSrc":"4889:40:64","nodeType":"YulBlock","src":"4889:40:64","statements":[{"nativeSrc":"4900:22:64","nodeType":"YulAssignment","src":"4900:22:64","value":{"arguments":[{"name":"value","nativeSrc":"4916:5:64","nodeType":"YulIdentifier","src":"4916:5:64"}],"functionName":{"name":"mload","nativeSrc":"4910:5:64","nodeType":"YulIdentifier","src":"4910:5:64"},"nativeSrc":"4910:12:64","nodeType":"YulFunctionCall","src":"4910:12:64"},"variableNames":[{"name":"length","nativeSrc":"4900:6:64","nodeType":"YulIdentifier","src":"4900:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4831:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4872:5:64","nodeType":"YulTypedName","src":"4872:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4882:6:64","nodeType":"YulTypedName","src":"4882:6:64","type":""}],"src":"4831:98:64"},{"body":{"nativeSrc":"5030:73:64","nodeType":"YulBlock","src":"5030:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5047:3:64","nodeType":"YulIdentifier","src":"5047:3:64"},{"name":"length","nativeSrc":"5052:6:64","nodeType":"YulIdentifier","src":"5052:6:64"}],"functionName":{"name":"mstore","nativeSrc":"5040:6:64","nodeType":"YulIdentifier","src":"5040:6:64"},"nativeSrc":"5040:19:64","nodeType":"YulFunctionCall","src":"5040:19:64"},"nativeSrc":"5040:19:64","nodeType":"YulExpressionStatement","src":"5040:19:64"},{"nativeSrc":"5068:29:64","nodeType":"YulAssignment","src":"5068:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"5087:3:64","nodeType":"YulIdentifier","src":"5087:3:64"},{"kind":"number","nativeSrc":"5092:4:64","nodeType":"YulLiteral","src":"5092:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5083:3:64","nodeType":"YulIdentifier","src":"5083:3:64"},"nativeSrc":"5083:14:64","nodeType":"YulFunctionCall","src":"5083:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"5068:11:64","nodeType":"YulIdentifier","src":"5068:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4935:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"5002:3:64","nodeType":"YulTypedName","src":"5002:3:64","type":""},{"name":"length","nativeSrc":"5007:6:64","nodeType":"YulTypedName","src":"5007:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"5018:11:64","nodeType":"YulTypedName","src":"5018:11:64","type":""}],"src":"4935:168:64"},{"body":{"nativeSrc":"5171:77:64","nodeType":"YulBlock","src":"5171:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"5188:3:64","nodeType":"YulIdentifier","src":"5188:3:64"},{"name":"src","nativeSrc":"5193:3:64","nodeType":"YulIdentifier","src":"5193:3:64"},{"name":"length","nativeSrc":"5198:6:64","nodeType":"YulIdentifier","src":"5198:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"5182:5:64","nodeType":"YulIdentifier","src":"5182:5:64"},"nativeSrc":"5182:23:64","nodeType":"YulFunctionCall","src":"5182:23:64"},"nativeSrc":"5182:23:64","nodeType":"YulExpressionStatement","src":"5182:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"5225:3:64","nodeType":"YulIdentifier","src":"5225:3:64"},{"name":"length","nativeSrc":"5230:6:64","nodeType":"YulIdentifier","src":"5230:6:64"}],"functionName":{"name":"add","nativeSrc":"5221:3:64","nodeType":"YulIdentifier","src":"5221:3:64"},"nativeSrc":"5221:16:64","nodeType":"YulFunctionCall","src":"5221:16:64"},{"kind":"number","nativeSrc":"5239:1:64","nodeType":"YulLiteral","src":"5239:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"5214:6:64","nodeType":"YulIdentifier","src":"5214:6:64"},"nativeSrc":"5214:27:64","nodeType":"YulFunctionCall","src":"5214:27:64"},"nativeSrc":"5214:27:64","nodeType":"YulExpressionStatement","src":"5214:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5109:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"5153:3:64","nodeType":"YulTypedName","src":"5153:3:64","type":""},{"name":"dst","nativeSrc":"5158:3:64","nodeType":"YulTypedName","src":"5158:3:64","type":""},{"name":"length","nativeSrc":"5163:6:64","nodeType":"YulTypedName","src":"5163:6:64","type":""}],"src":"5109:139:64"},{"body":{"nativeSrc":"5302:54:64","nodeType":"YulBlock","src":"5302:54:64","statements":[{"nativeSrc":"5312:38:64","nodeType":"YulAssignment","src":"5312:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5330:5:64","nodeType":"YulIdentifier","src":"5330:5:64"},{"kind":"number","nativeSrc":"5337:2:64","nodeType":"YulLiteral","src":"5337:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"5326:3:64","nodeType":"YulIdentifier","src":"5326:3:64"},"nativeSrc":"5326:14:64","nodeType":"YulFunctionCall","src":"5326:14:64"},{"arguments":[{"kind":"number","nativeSrc":"5346:2:64","nodeType":"YulLiteral","src":"5346:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"5342:3:64","nodeType":"YulIdentifier","src":"5342:3:64"},"nativeSrc":"5342:7:64","nodeType":"YulFunctionCall","src":"5342:7:64"}],"functionName":{"name":"and","nativeSrc":"5322:3:64","nodeType":"YulIdentifier","src":"5322:3:64"},"nativeSrc":"5322:28:64","nodeType":"YulFunctionCall","src":"5322:28:64"},"variableNames":[{"name":"result","nativeSrc":"5312:6:64","nodeType":"YulIdentifier","src":"5312:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"5254:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5285:5:64","nodeType":"YulTypedName","src":"5285:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"5295:6:64","nodeType":"YulTypedName","src":"5295:6:64","type":""}],"src":"5254:102:64"},{"body":{"nativeSrc":"5452:283:64","nodeType":"YulBlock","src":"5452:283:64","statements":[{"nativeSrc":"5462:52:64","nodeType":"YulVariableDeclaration","src":"5462:52:64","value":{"arguments":[{"name":"value","nativeSrc":"5508:5:64","nodeType":"YulIdentifier","src":"5508:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5476:31:64","nodeType":"YulIdentifier","src":"5476:31:64"},"nativeSrc":"5476:38:64","nodeType":"YulFunctionCall","src":"5476:38:64"},"variables":[{"name":"length","nativeSrc":"5466:6:64","nodeType":"YulTypedName","src":"5466:6:64","type":""}]},{"nativeSrc":"5523:77:64","nodeType":"YulAssignment","src":"5523:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"5588:3:64","nodeType":"YulIdentifier","src":"5588:3:64"},{"name":"length","nativeSrc":"5593:6:64","nodeType":"YulIdentifier","src":"5593:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"5530:57:64","nodeType":"YulIdentifier","src":"5530:57:64"},"nativeSrc":"5530:70:64","nodeType":"YulFunctionCall","src":"5530:70:64"},"variableNames":[{"name":"pos","nativeSrc":"5523:3:64","nodeType":"YulIdentifier","src":"5523:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5648:5:64","nodeType":"YulIdentifier","src":"5648:5:64"},{"kind":"number","nativeSrc":"5655:4:64","nodeType":"YulLiteral","src":"5655:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5644:3:64","nodeType":"YulIdentifier","src":"5644:3:64"},"nativeSrc":"5644:16:64","nodeType":"YulFunctionCall","src":"5644:16:64"},{"name":"pos","nativeSrc":"5662:3:64","nodeType":"YulIdentifier","src":"5662:3:64"},{"name":"length","nativeSrc":"5667:6:64","nodeType":"YulIdentifier","src":"5667:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5609:34:64","nodeType":"YulIdentifier","src":"5609:34:64"},"nativeSrc":"5609:65:64","nodeType":"YulFunctionCall","src":"5609:65:64"},"nativeSrc":"5609:65:64","nodeType":"YulExpressionStatement","src":"5609:65:64"},{"nativeSrc":"5683:46:64","nodeType":"YulAssignment","src":"5683:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"5694:3:64","nodeType":"YulIdentifier","src":"5694:3:64"},{"arguments":[{"name":"length","nativeSrc":"5721:6:64","nodeType":"YulIdentifier","src":"5721:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5699:21:64","nodeType":"YulIdentifier","src":"5699:21:64"},"nativeSrc":"5699:29:64","nodeType":"YulFunctionCall","src":"5699:29:64"}],"functionName":{"name":"add","nativeSrc":"5690:3:64","nodeType":"YulIdentifier","src":"5690:3:64"},"nativeSrc":"5690:39:64","nodeType":"YulFunctionCall","src":"5690:39:64"},"variableNames":[{"name":"end","nativeSrc":"5683:3:64","nodeType":"YulIdentifier","src":"5683:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5362:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5433:5:64","nodeType":"YulTypedName","src":"5433:5:64","type":""},{"name":"pos","nativeSrc":"5440:3:64","nodeType":"YulTypedName","src":"5440:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"5448:3:64","nodeType":"YulTypedName","src":"5448:3:64","type":""}],"src":"5362:373:64"},{"body":{"nativeSrc":"5857:193:64","nodeType":"YulBlock","src":"5857:193:64","statements":[{"nativeSrc":"5867:26:64","nodeType":"YulAssignment","src":"5867:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5879:9:64","nodeType":"YulIdentifier","src":"5879:9:64"},{"kind":"number","nativeSrc":"5890:2:64","nodeType":"YulLiteral","src":"5890:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5875:3:64","nodeType":"YulIdentifier","src":"5875:3:64"},"nativeSrc":"5875:18:64","nodeType":"YulFunctionCall","src":"5875:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5867:4:64","nodeType":"YulIdentifier","src":"5867:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5914:9:64","nodeType":"YulIdentifier","src":"5914:9:64"},{"kind":"number","nativeSrc":"5925:1:64","nodeType":"YulLiteral","src":"5925:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5910:3:64","nodeType":"YulIdentifier","src":"5910:3:64"},"nativeSrc":"5910:17:64","nodeType":"YulFunctionCall","src":"5910:17:64"},{"arguments":[{"name":"tail","nativeSrc":"5933:4:64","nodeType":"YulIdentifier","src":"5933:4:64"},{"name":"headStart","nativeSrc":"5939:9:64","nodeType":"YulIdentifier","src":"5939:9:64"}],"functionName":{"name":"sub","nativeSrc":"5929:3:64","nodeType":"YulIdentifier","src":"5929:3:64"},"nativeSrc":"5929:20:64","nodeType":"YulFunctionCall","src":"5929:20:64"}],"functionName":{"name":"mstore","nativeSrc":"5903:6:64","nodeType":"YulIdentifier","src":"5903:6:64"},"nativeSrc":"5903:47:64","nodeType":"YulFunctionCall","src":"5903:47:64"},"nativeSrc":"5903:47:64","nodeType":"YulExpressionStatement","src":"5903:47:64"},{"nativeSrc":"5959:84:64","nodeType":"YulAssignment","src":"5959:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"6029:6:64","nodeType":"YulIdentifier","src":"6029:6:64"},{"name":"tail","nativeSrc":"6038:4:64","nodeType":"YulIdentifier","src":"6038:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5967:61:64","nodeType":"YulIdentifier","src":"5967:61:64"},"nativeSrc":"5967:76:64","nodeType":"YulFunctionCall","src":"5967:76:64"},"variableNames":[{"name":"tail","nativeSrc":"5959:4:64","nodeType":"YulIdentifier","src":"5959:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5741:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5829:9:64","nodeType":"YulTypedName","src":"5829:9:64","type":""},{"name":"value0","nativeSrc":"5841:6:64","nodeType":"YulTypedName","src":"5841:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5852:4:64","nodeType":"YulTypedName","src":"5852:4:64","type":""}],"src":"5741:309:64"},{"body":{"nativeSrc":"6101:51:64","nodeType":"YulBlock","src":"6101:51:64","statements":[{"nativeSrc":"6111:35:64","nodeType":"YulAssignment","src":"6111:35:64","value":{"arguments":[{"name":"value","nativeSrc":"6140:5:64","nodeType":"YulIdentifier","src":"6140:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"6122:17:64","nodeType":"YulIdentifier","src":"6122:17:64"},"nativeSrc":"6122:24:64","nodeType":"YulFunctionCall","src":"6122:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"6111:7:64","nodeType":"YulIdentifier","src":"6111:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"6056:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6083:5:64","nodeType":"YulTypedName","src":"6083:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6093:7:64","nodeType":"YulTypedName","src":"6093:7:64","type":""}],"src":"6056:96:64"},{"body":{"nativeSrc":"6223:53:64","nodeType":"YulBlock","src":"6223:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6240:3:64","nodeType":"YulIdentifier","src":"6240:3:64"},{"arguments":[{"name":"value","nativeSrc":"6263:5:64","nodeType":"YulIdentifier","src":"6263:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6245:17:64","nodeType":"YulIdentifier","src":"6245:17:64"},"nativeSrc":"6245:24:64","nodeType":"YulFunctionCall","src":"6245:24:64"}],"functionName":{"name":"mstore","nativeSrc":"6233:6:64","nodeType":"YulIdentifier","src":"6233:6:64"},"nativeSrc":"6233:37:64","nodeType":"YulFunctionCall","src":"6233:37:64"},"nativeSrc":"6233:37:64","nodeType":"YulExpressionStatement","src":"6233:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6158:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6211:5:64","nodeType":"YulTypedName","src":"6211:5:64","type":""},{"name":"pos","nativeSrc":"6218:3:64","nodeType":"YulTypedName","src":"6218:3:64","type":""}],"src":"6158:118:64"},{"body":{"nativeSrc":"6380:124:64","nodeType":"YulBlock","src":"6380:124:64","statements":[{"nativeSrc":"6390:26:64","nodeType":"YulAssignment","src":"6390:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6402:9:64","nodeType":"YulIdentifier","src":"6402:9:64"},{"kind":"number","nativeSrc":"6413:2:64","nodeType":"YulLiteral","src":"6413:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6398:3:64","nodeType":"YulIdentifier","src":"6398:3:64"},"nativeSrc":"6398:18:64","nodeType":"YulFunctionCall","src":"6398:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6390:4:64","nodeType":"YulIdentifier","src":"6390:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6470:6:64","nodeType":"YulIdentifier","src":"6470:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6483:9:64","nodeType":"YulIdentifier","src":"6483:9:64"},{"kind":"number","nativeSrc":"6494:1:64","nodeType":"YulLiteral","src":"6494:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6479:3:64","nodeType":"YulIdentifier","src":"6479:3:64"},"nativeSrc":"6479:17:64","nodeType":"YulFunctionCall","src":"6479:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6426:43:64","nodeType":"YulIdentifier","src":"6426:43:64"},"nativeSrc":"6426:71:64","nodeType":"YulFunctionCall","src":"6426:71:64"},"nativeSrc":"6426:71:64","nodeType":"YulExpressionStatement","src":"6426:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6282:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6352:9:64","nodeType":"YulTypedName","src":"6352:9:64","type":""},{"name":"value0","nativeSrc":"6364:6:64","nodeType":"YulTypedName","src":"6364:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6375:4:64","nodeType":"YulTypedName","src":"6375:4:64","type":""}],"src":"6282:222:64"},{"body":{"nativeSrc":"6538:152:64","nodeType":"YulBlock","src":"6538:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6555:1:64","nodeType":"YulLiteral","src":"6555:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6558:77:64","nodeType":"YulLiteral","src":"6558:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6548:6:64","nodeType":"YulIdentifier","src":"6548:6:64"},"nativeSrc":"6548:88:64","nodeType":"YulFunctionCall","src":"6548:88:64"},"nativeSrc":"6548:88:64","nodeType":"YulExpressionStatement","src":"6548:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6652:1:64","nodeType":"YulLiteral","src":"6652:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"6655:4:64","nodeType":"YulLiteral","src":"6655:4:64","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"6645:6:64","nodeType":"YulIdentifier","src":"6645:6:64"},"nativeSrc":"6645:15:64","nodeType":"YulFunctionCall","src":"6645:15:64"},"nativeSrc":"6645:15:64","nodeType":"YulExpressionStatement","src":"6645:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6676:1:64","nodeType":"YulLiteral","src":"6676:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6679:4:64","nodeType":"YulLiteral","src":"6679:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6669:6:64","nodeType":"YulIdentifier","src":"6669:6:64"},"nativeSrc":"6669:15:64","nodeType":"YulFunctionCall","src":"6669:15:64"},"nativeSrc":"6669:15:64","nodeType":"YulExpressionStatement","src":"6669:15:64"}]},"name":"panic_error_0x21","nativeSrc":"6510:180:64","nodeType":"YulFunctionDefinition","src":"6510:180:64"},{"body":{"nativeSrc":"6753:62:64","nodeType":"YulBlock","src":"6753:62:64","statements":[{"body":{"nativeSrc":"6787:22:64","nodeType":"YulBlock","src":"6787:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"6789:16:64","nodeType":"YulIdentifier","src":"6789:16:64"},"nativeSrc":"6789:18:64","nodeType":"YulFunctionCall","src":"6789:18:64"},"nativeSrc":"6789:18:64","nodeType":"YulExpressionStatement","src":"6789:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6776:5:64","nodeType":"YulIdentifier","src":"6776:5:64"},{"kind":"number","nativeSrc":"6783:1:64","nodeType":"YulLiteral","src":"6783:1:64","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"6773:2:64","nodeType":"YulIdentifier","src":"6773:2:64"},"nativeSrc":"6773:12:64","nodeType":"YulFunctionCall","src":"6773:12:64"}],"functionName":{"name":"iszero","nativeSrc":"6766:6:64","nodeType":"YulIdentifier","src":"6766:6:64"},"nativeSrc":"6766:20:64","nodeType":"YulFunctionCall","src":"6766:20:64"},"nativeSrc":"6763:46:64","nodeType":"YulIf","src":"6763:46:64"}]},"name":"validator_assert_t_enum$_Strategy_$16442","nativeSrc":"6696:119:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6746:5:64","nodeType":"YulTypedName","src":"6746:5:64","type":""}],"src":"6696:119:64"},{"body":{"nativeSrc":"6880:80:64","nodeType":"YulBlock","src":"6880:80:64","statements":[{"nativeSrc":"6890:16:64","nodeType":"YulAssignment","src":"6890:16:64","value":{"name":"value","nativeSrc":"6901:5:64","nodeType":"YulIdentifier","src":"6901:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"6890:7:64","nodeType":"YulIdentifier","src":"6890:7:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6948:5:64","nodeType":"YulIdentifier","src":"6948:5:64"}],"functionName":{"name":"validator_assert_t_enum$_Strategy_$16442","nativeSrc":"6907:40:64","nodeType":"YulIdentifier","src":"6907:40:64"},"nativeSrc":"6907:47:64","nodeType":"YulFunctionCall","src":"6907:47:64"},"nativeSrc":"6907:47:64","nodeType":"YulExpressionStatement","src":"6907:47:64"}]},"name":"cleanup_t_enum$_Strategy_$16442","nativeSrc":"6821:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6862:5:64","nodeType":"YulTypedName","src":"6862:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6872:7:64","nodeType":"YulTypedName","src":"6872:7:64","type":""}],"src":"6821:139:64"},{"body":{"nativeSrc":"7038:67:64","nodeType":"YulBlock","src":"7038:67:64","statements":[{"nativeSrc":"7048:51:64","nodeType":"YulAssignment","src":"7048:51:64","value":{"arguments":[{"name":"value","nativeSrc":"7093:5:64","nodeType":"YulIdentifier","src":"7093:5:64"}],"functionName":{"name":"cleanup_t_enum$_Strategy_$16442","nativeSrc":"7061:31:64","nodeType":"YulIdentifier","src":"7061:31:64"},"nativeSrc":"7061:38:64","nodeType":"YulFunctionCall","src":"7061:38:64"},"variableNames":[{"name":"converted","nativeSrc":"7048:9:64","nodeType":"YulIdentifier","src":"7048:9:64"}]}]},"name":"convert_t_enum$_Strategy_$16442_to_t_uint8","nativeSrc":"6966:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7018:5:64","nodeType":"YulTypedName","src":"7018:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"7028:9:64","nodeType":"YulTypedName","src":"7028:9:64","type":""}],"src":"6966:139:64"},{"body":{"nativeSrc":"7188:78:64","nodeType":"YulBlock","src":"7188:78:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"7205:3:64","nodeType":"YulIdentifier","src":"7205:3:64"},{"arguments":[{"name":"value","nativeSrc":"7253:5:64","nodeType":"YulIdentifier","src":"7253:5:64"}],"functionName":{"name":"convert_t_enum$_Strategy_$16442_to_t_uint8","nativeSrc":"7210:42:64","nodeType":"YulIdentifier","src":"7210:42:64"},"nativeSrc":"7210:49:64","nodeType":"YulFunctionCall","src":"7210:49:64"}],"functionName":{"name":"mstore","nativeSrc":"7198:6:64","nodeType":"YulIdentifier","src":"7198:6:64"},"nativeSrc":"7198:62:64","nodeType":"YulFunctionCall","src":"7198:62:64"},"nativeSrc":"7198:62:64","nodeType":"YulExpressionStatement","src":"7198:62:64"}]},"name":"abi_encode_t_enum$_Strategy_$16442_to_t_uint8_fromStack","nativeSrc":"7111:155:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7176:5:64","nodeType":"YulTypedName","src":"7176:5:64","type":""},{"name":"pos","nativeSrc":"7183:3:64","nodeType":"YulTypedName","src":"7183:3:64","type":""}],"src":"7111:155:64"},{"body":{"nativeSrc":"7382:136:64","nodeType":"YulBlock","src":"7382:136:64","statements":[{"nativeSrc":"7392:26:64","nodeType":"YulAssignment","src":"7392:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"7404:9:64","nodeType":"YulIdentifier","src":"7404:9:64"},{"kind":"number","nativeSrc":"7415:2:64","nodeType":"YulLiteral","src":"7415:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"7400:3:64","nodeType":"YulIdentifier","src":"7400:3:64"},"nativeSrc":"7400:18:64","nodeType":"YulFunctionCall","src":"7400:18:64"},"variableNames":[{"name":"tail","nativeSrc":"7392:4:64","nodeType":"YulIdentifier","src":"7392:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7484:6:64","nodeType":"YulIdentifier","src":"7484:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"7497:9:64","nodeType":"YulIdentifier","src":"7497:9:64"},{"kind":"number","nativeSrc":"7508:1:64","nodeType":"YulLiteral","src":"7508:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7493:3:64","nodeType":"YulIdentifier","src":"7493:3:64"},"nativeSrc":"7493:17:64","nodeType":"YulFunctionCall","src":"7493:17:64"}],"functionName":{"name":"abi_encode_t_enum$_Strategy_$16442_to_t_uint8_fromStack","nativeSrc":"7428:55:64","nodeType":"YulIdentifier","src":"7428:55:64"},"nativeSrc":"7428:83:64","nodeType":"YulFunctionCall","src":"7428:83:64"},"nativeSrc":"7428:83:64","nodeType":"YulExpressionStatement","src":"7428:83:64"}]},"name":"abi_encode_tuple_t_enum$_Strategy_$16442__to_t_uint8__fromStack_reversed","nativeSrc":"7272:246:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7354:9:64","nodeType":"YulTypedName","src":"7354:9:64","type":""},{"name":"value0","nativeSrc":"7366:6:64","nodeType":"YulTypedName","src":"7366:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"7377:4:64","nodeType":"YulTypedName","src":"7377:4:64","type":""}],"src":"7272:246:64"},{"body":{"nativeSrc":"7567:79:64","nodeType":"YulBlock","src":"7567:79:64","statements":[{"body":{"nativeSrc":"7624:16:64","nodeType":"YulBlock","src":"7624:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7633:1:64","nodeType":"YulLiteral","src":"7633:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7636:1:64","nodeType":"YulLiteral","src":"7636:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7626:6:64","nodeType":"YulIdentifier","src":"7626:6:64"},"nativeSrc":"7626:12:64","nodeType":"YulFunctionCall","src":"7626:12:64"},"nativeSrc":"7626:12:64","nodeType":"YulExpressionStatement","src":"7626:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7590:5:64","nodeType":"YulIdentifier","src":"7590:5:64"},{"arguments":[{"name":"value","nativeSrc":"7615:5:64","nodeType":"YulIdentifier","src":"7615:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7597:17:64","nodeType":"YulIdentifier","src":"7597:17:64"},"nativeSrc":"7597:24:64","nodeType":"YulFunctionCall","src":"7597:24:64"}],"functionName":{"name":"eq","nativeSrc":"7587:2:64","nodeType":"YulIdentifier","src":"7587:2:64"},"nativeSrc":"7587:35:64","nodeType":"YulFunctionCall","src":"7587:35:64"}],"functionName":{"name":"iszero","nativeSrc":"7580:6:64","nodeType":"YulIdentifier","src":"7580:6:64"},"nativeSrc":"7580:43:64","nodeType":"YulFunctionCall","src":"7580:43:64"},"nativeSrc":"7577:63:64","nodeType":"YulIf","src":"7577:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"7524:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7560:5:64","nodeType":"YulTypedName","src":"7560:5:64","type":""}],"src":"7524:122:64"},{"body":{"nativeSrc":"7704:87:64","nodeType":"YulBlock","src":"7704:87:64","statements":[{"nativeSrc":"7714:29:64","nodeType":"YulAssignment","src":"7714:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7736:6:64","nodeType":"YulIdentifier","src":"7736:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7723:12:64","nodeType":"YulIdentifier","src":"7723:12:64"},"nativeSrc":"7723:20:64","nodeType":"YulFunctionCall","src":"7723:20:64"},"variableNames":[{"name":"value","nativeSrc":"7714:5:64","nodeType":"YulIdentifier","src":"7714:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7779:5:64","nodeType":"YulIdentifier","src":"7779:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7752:26:64","nodeType":"YulIdentifier","src":"7752:26:64"},"nativeSrc":"7752:33:64","nodeType":"YulFunctionCall","src":"7752:33:64"},"nativeSrc":"7752:33:64","nodeType":"YulExpressionStatement","src":"7752:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"7652:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7682:6:64","nodeType":"YulTypedName","src":"7682:6:64","type":""},{"name":"end","nativeSrc":"7690:3:64","nodeType":"YulTypedName","src":"7690:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7698:5:64","nodeType":"YulTypedName","src":"7698:5:64","type":""}],"src":"7652:139:64"},{"body":{"nativeSrc":"7904:478:64","nodeType":"YulBlock","src":"7904:478:64","statements":[{"body":{"nativeSrc":"7953:83:64","nodeType":"YulBlock","src":"7953:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7955:77:64","nodeType":"YulIdentifier","src":"7955:77:64"},"nativeSrc":"7955:79:64","nodeType":"YulFunctionCall","src":"7955:79:64"},"nativeSrc":"7955:79:64","nodeType":"YulExpressionStatement","src":"7955:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7932:6:64","nodeType":"YulIdentifier","src":"7932:6:64"},{"kind":"number","nativeSrc":"7940:4:64","nodeType":"YulLiteral","src":"7940:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7928:3:64","nodeType":"YulIdentifier","src":"7928:3:64"},"nativeSrc":"7928:17:64","nodeType":"YulFunctionCall","src":"7928:17:64"},{"name":"end","nativeSrc":"7947:3:64","nodeType":"YulIdentifier","src":"7947:3:64"}],"functionName":{"name":"slt","nativeSrc":"7924:3:64","nodeType":"YulIdentifier","src":"7924:3:64"},"nativeSrc":"7924:27:64","nodeType":"YulFunctionCall","src":"7924:27:64"}],"functionName":{"name":"iszero","nativeSrc":"7917:6:64","nodeType":"YulIdentifier","src":"7917:6:64"},"nativeSrc":"7917:35:64","nodeType":"YulFunctionCall","src":"7917:35:64"},"nativeSrc":"7914:122:64","nodeType":"YulIf","src":"7914:122:64"},{"nativeSrc":"8045:30:64","nodeType":"YulAssignment","src":"8045:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"8068:6:64","nodeType":"YulIdentifier","src":"8068:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8055:12:64","nodeType":"YulIdentifier","src":"8055:12:64"},"nativeSrc":"8055:20:64","nodeType":"YulFunctionCall","src":"8055:20:64"},"variableNames":[{"name":"length","nativeSrc":"8045:6:64","nodeType":"YulIdentifier","src":"8045:6:64"}]},{"body":{"nativeSrc":"8118:83:64","nodeType":"YulBlock","src":"8118:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"8120:77:64","nodeType":"YulIdentifier","src":"8120:77:64"},"nativeSrc":"8120:79:64","nodeType":"YulFunctionCall","src":"8120:79:64"},"nativeSrc":"8120:79:64","nodeType":"YulExpressionStatement","src":"8120:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8090:6:64","nodeType":"YulIdentifier","src":"8090:6:64"},{"kind":"number","nativeSrc":"8098:18:64","nodeType":"YulLiteral","src":"8098:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8087:2:64","nodeType":"YulIdentifier","src":"8087:2:64"},"nativeSrc":"8087:30:64","nodeType":"YulFunctionCall","src":"8087:30:64"},"nativeSrc":"8084:117:64","nodeType":"YulIf","src":"8084:117:64"},{"nativeSrc":"8210:29:64","nodeType":"YulAssignment","src":"8210:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"8226:6:64","nodeType":"YulIdentifier","src":"8226:6:64"},{"kind":"number","nativeSrc":"8234:4:64","nodeType":"YulLiteral","src":"8234:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8222:3:64","nodeType":"YulIdentifier","src":"8222:3:64"},"nativeSrc":"8222:17:64","nodeType":"YulFunctionCall","src":"8222:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"8210:8:64","nodeType":"YulIdentifier","src":"8210:8:64"}]},{"body":{"nativeSrc":"8293:83:64","nodeType":"YulBlock","src":"8293:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"8295:77:64","nodeType":"YulIdentifier","src":"8295:77:64"},"nativeSrc":"8295:79:64","nodeType":"YulFunctionCall","src":"8295:79:64"},"nativeSrc":"8295:79:64","nodeType":"YulExpressionStatement","src":"8295:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"8258:8:64","nodeType":"YulIdentifier","src":"8258:8:64"},{"arguments":[{"name":"length","nativeSrc":"8272:6:64","nodeType":"YulIdentifier","src":"8272:6:64"},{"kind":"number","nativeSrc":"8280:4:64","nodeType":"YulLiteral","src":"8280:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"8268:3:64","nodeType":"YulIdentifier","src":"8268:3:64"},"nativeSrc":"8268:17:64","nodeType":"YulFunctionCall","src":"8268:17:64"}],"functionName":{"name":"add","nativeSrc":"8254:3:64","nodeType":"YulIdentifier","src":"8254:3:64"},"nativeSrc":"8254:32:64","nodeType":"YulFunctionCall","src":"8254:32:64"},{"name":"end","nativeSrc":"8288:3:64","nodeType":"YulIdentifier","src":"8288:3:64"}],"functionName":{"name":"gt","nativeSrc":"8251:2:64","nodeType":"YulIdentifier","src":"8251:2:64"},"nativeSrc":"8251:41:64","nodeType":"YulFunctionCall","src":"8251:41:64"},"nativeSrc":"8248:128:64","nodeType":"YulIf","src":"8248:128:64"}]},"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"7814:568:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7871:6:64","nodeType":"YulTypedName","src":"7871:6:64","type":""},{"name":"end","nativeSrc":"7879:3:64","nodeType":"YulTypedName","src":"7879:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7887:8:64","nodeType":"YulTypedName","src":"7887:8:64","type":""},{"name":"length","nativeSrc":"7897:6:64","nodeType":"YulTypedName","src":"7897:6:64","type":""}],"src":"7814:568:64"},{"body":{"nativeSrc":"8611:1346:64","nodeType":"YulBlock","src":"8611:1346:64","statements":[{"body":{"nativeSrc":"8658:83:64","nodeType":"YulBlock","src":"8658:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8660:77:64","nodeType":"YulIdentifier","src":"8660:77:64"},"nativeSrc":"8660:79:64","nodeType":"YulFunctionCall","src":"8660:79:64"},"nativeSrc":"8660:79:64","nodeType":"YulExpressionStatement","src":"8660:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8632:7:64","nodeType":"YulIdentifier","src":"8632:7:64"},{"name":"headStart","nativeSrc":"8641:9:64","nodeType":"YulIdentifier","src":"8641:9:64"}],"functionName":{"name":"sub","nativeSrc":"8628:3:64","nodeType":"YulIdentifier","src":"8628:3:64"},"nativeSrc":"8628:23:64","nodeType":"YulFunctionCall","src":"8628:23:64"},{"kind":"number","nativeSrc":"8653:3:64","nodeType":"YulLiteral","src":"8653:3:64","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"8624:3:64","nodeType":"YulIdentifier","src":"8624:3:64"},"nativeSrc":"8624:33:64","nodeType":"YulFunctionCall","src":"8624:33:64"},"nativeSrc":"8621:120:64","nodeType":"YulIf","src":"8621:120:64"},{"nativeSrc":"8751:117:64","nodeType":"YulBlock","src":"8751:117:64","statements":[{"nativeSrc":"8766:15:64","nodeType":"YulVariableDeclaration","src":"8766:15:64","value":{"kind":"number","nativeSrc":"8780:1:64","nodeType":"YulLiteral","src":"8780:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8770:6:64","nodeType":"YulTypedName","src":"8770:6:64","type":""}]},{"nativeSrc":"8795:63:64","nodeType":"YulAssignment","src":"8795:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8830:9:64","nodeType":"YulIdentifier","src":"8830:9:64"},{"name":"offset","nativeSrc":"8841:6:64","nodeType":"YulIdentifier","src":"8841:6:64"}],"functionName":{"name":"add","nativeSrc":"8826:3:64","nodeType":"YulIdentifier","src":"8826:3:64"},"nativeSrc":"8826:22:64","nodeType":"YulFunctionCall","src":"8826:22:64"},{"name":"dataEnd","nativeSrc":"8850:7:64","nodeType":"YulIdentifier","src":"8850:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8805:20:64","nodeType":"YulIdentifier","src":"8805:20:64"},"nativeSrc":"8805:53:64","nodeType":"YulFunctionCall","src":"8805:53:64"},"variableNames":[{"name":"value0","nativeSrc":"8795:6:64","nodeType":"YulIdentifier","src":"8795:6:64"}]}]},{"nativeSrc":"8878:118:64","nodeType":"YulBlock","src":"8878:118:64","statements":[{"nativeSrc":"8893:16:64","nodeType":"YulVariableDeclaration","src":"8893:16:64","value":{"kind":"number","nativeSrc":"8907:2:64","nodeType":"YulLiteral","src":"8907:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8897:6:64","nodeType":"YulTypedName","src":"8897:6:64","type":""}]},{"nativeSrc":"8923:63:64","nodeType":"YulAssignment","src":"8923:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8958:9:64","nodeType":"YulIdentifier","src":"8958:9:64"},{"name":"offset","nativeSrc":"8969:6:64","nodeType":"YulIdentifier","src":"8969:6:64"}],"functionName":{"name":"add","nativeSrc":"8954:3:64","nodeType":"YulIdentifier","src":"8954:3:64"},"nativeSrc":"8954:22:64","nodeType":"YulFunctionCall","src":"8954:22:64"},{"name":"dataEnd","nativeSrc":"8978:7:64","nodeType":"YulIdentifier","src":"8978:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8933:20:64","nodeType":"YulIdentifier","src":"8933:20:64"},"nativeSrc":"8933:53:64","nodeType":"YulFunctionCall","src":"8933:53:64"},"variableNames":[{"name":"value1","nativeSrc":"8923:6:64","nodeType":"YulIdentifier","src":"8923:6:64"}]}]},{"nativeSrc":"9006:313:64","nodeType":"YulBlock","src":"9006:313:64","statements":[{"nativeSrc":"9021:46:64","nodeType":"YulVariableDeclaration","src":"9021:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9052:9:64","nodeType":"YulIdentifier","src":"9052:9:64"},{"kind":"number","nativeSrc":"9063:2:64","nodeType":"YulLiteral","src":"9063:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9048:3:64","nodeType":"YulIdentifier","src":"9048:3:64"},"nativeSrc":"9048:18:64","nodeType":"YulFunctionCall","src":"9048:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"9035:12:64","nodeType":"YulIdentifier","src":"9035:12:64"},"nativeSrc":"9035:32:64","nodeType":"YulFunctionCall","src":"9035:32:64"},"variables":[{"name":"offset","nativeSrc":"9025:6:64","nodeType":"YulTypedName","src":"9025:6:64","type":""}]},{"body":{"nativeSrc":"9114:83:64","nodeType":"YulBlock","src":"9114:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9116:77:64","nodeType":"YulIdentifier","src":"9116:77:64"},"nativeSrc":"9116:79:64","nodeType":"YulFunctionCall","src":"9116:79:64"},"nativeSrc":"9116:79:64","nodeType":"YulExpressionStatement","src":"9116:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9086:6:64","nodeType":"YulIdentifier","src":"9086:6:64"},{"kind":"number","nativeSrc":"9094:18:64","nodeType":"YulLiteral","src":"9094:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9083:2:64","nodeType":"YulIdentifier","src":"9083:2:64"},"nativeSrc":"9083:30:64","nodeType":"YulFunctionCall","src":"9083:30:64"},"nativeSrc":"9080:117:64","nodeType":"YulIf","src":"9080:117:64"},{"nativeSrc":"9211:98:64","nodeType":"YulAssignment","src":"9211:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9281:9:64","nodeType":"YulIdentifier","src":"9281:9:64"},{"name":"offset","nativeSrc":"9292:6:64","nodeType":"YulIdentifier","src":"9292:6:64"}],"functionName":{"name":"add","nativeSrc":"9277:3:64","nodeType":"YulIdentifier","src":"9277:3:64"},"nativeSrc":"9277:22:64","nodeType":"YulFunctionCall","src":"9277:22:64"},{"name":"dataEnd","nativeSrc":"9301:7:64","nodeType":"YulIdentifier","src":"9301:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"9229:47:64","nodeType":"YulIdentifier","src":"9229:47:64"},"nativeSrc":"9229:80:64","nodeType":"YulFunctionCall","src":"9229:80:64"},"variableNames":[{"name":"value2","nativeSrc":"9211:6:64","nodeType":"YulIdentifier","src":"9211:6:64"},{"name":"value3","nativeSrc":"9219:6:64","nodeType":"YulIdentifier","src":"9219:6:64"}]}]},{"nativeSrc":"9329:313:64","nodeType":"YulBlock","src":"9329:313:64","statements":[{"nativeSrc":"9344:46:64","nodeType":"YulVariableDeclaration","src":"9344:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9375:9:64","nodeType":"YulIdentifier","src":"9375:9:64"},{"kind":"number","nativeSrc":"9386:2:64","nodeType":"YulLiteral","src":"9386:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9371:3:64","nodeType":"YulIdentifier","src":"9371:3:64"},"nativeSrc":"9371:18:64","nodeType":"YulFunctionCall","src":"9371:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"9358:12:64","nodeType":"YulIdentifier","src":"9358:12:64"},"nativeSrc":"9358:32:64","nodeType":"YulFunctionCall","src":"9358:32:64"},"variables":[{"name":"offset","nativeSrc":"9348:6:64","nodeType":"YulTypedName","src":"9348:6:64","type":""}]},{"body":{"nativeSrc":"9437:83:64","nodeType":"YulBlock","src":"9437:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9439:77:64","nodeType":"YulIdentifier","src":"9439:77:64"},"nativeSrc":"9439:79:64","nodeType":"YulFunctionCall","src":"9439:79:64"},"nativeSrc":"9439:79:64","nodeType":"YulExpressionStatement","src":"9439:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9409:6:64","nodeType":"YulIdentifier","src":"9409:6:64"},{"kind":"number","nativeSrc":"9417:18:64","nodeType":"YulLiteral","src":"9417:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9406:2:64","nodeType":"YulIdentifier","src":"9406:2:64"},"nativeSrc":"9406:30:64","nodeType":"YulFunctionCall","src":"9406:30:64"},"nativeSrc":"9403:117:64","nodeType":"YulIf","src":"9403:117:64"},{"nativeSrc":"9534:98:64","nodeType":"YulAssignment","src":"9534:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9604:9:64","nodeType":"YulIdentifier","src":"9604:9:64"},{"name":"offset","nativeSrc":"9615:6:64","nodeType":"YulIdentifier","src":"9615:6:64"}],"functionName":{"name":"add","nativeSrc":"9600:3:64","nodeType":"YulIdentifier","src":"9600:3:64"},"nativeSrc":"9600:22:64","nodeType":"YulFunctionCall","src":"9600:22:64"},{"name":"dataEnd","nativeSrc":"9624:7:64","nodeType":"YulIdentifier","src":"9624:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_calldata_ptr","nativeSrc":"9552:47:64","nodeType":"YulIdentifier","src":"9552:47:64"},"nativeSrc":"9552:80:64","nodeType":"YulFunctionCall","src":"9552:80:64"},"variableNames":[{"name":"value4","nativeSrc":"9534:6:64","nodeType":"YulIdentifier","src":"9534:6:64"},{"name":"value5","nativeSrc":"9542:6:64","nodeType":"YulIdentifier","src":"9542:6:64"}]}]},{"nativeSrc":"9652:298:64","nodeType":"YulBlock","src":"9652:298:64","statements":[{"nativeSrc":"9667:47:64","nodeType":"YulVariableDeclaration","src":"9667:47:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9698:9:64","nodeType":"YulIdentifier","src":"9698:9:64"},{"kind":"number","nativeSrc":"9709:3:64","nodeType":"YulLiteral","src":"9709:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"9694:3:64","nodeType":"YulIdentifier","src":"9694:3:64"},"nativeSrc":"9694:19:64","nodeType":"YulFunctionCall","src":"9694:19:64"}],"functionName":{"name":"calldataload","nativeSrc":"9681:12:64","nodeType":"YulIdentifier","src":"9681:12:64"},"nativeSrc":"9681:33:64","nodeType":"YulFunctionCall","src":"9681:33:64"},"variables":[{"name":"offset","nativeSrc":"9671:6:64","nodeType":"YulTypedName","src":"9671:6:64","type":""}]},{"body":{"nativeSrc":"9761:83:64","nodeType":"YulBlock","src":"9761:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9763:77:64","nodeType":"YulIdentifier","src":"9763:77:64"},"nativeSrc":"9763:79:64","nodeType":"YulFunctionCall","src":"9763:79:64"},"nativeSrc":"9763:79:64","nodeType":"YulExpressionStatement","src":"9763:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9733:6:64","nodeType":"YulIdentifier","src":"9733:6:64"},{"kind":"number","nativeSrc":"9741:18:64","nodeType":"YulLiteral","src":"9741:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9730:2:64","nodeType":"YulIdentifier","src":"9730:2:64"},"nativeSrc":"9730:30:64","nodeType":"YulFunctionCall","src":"9730:30:64"},"nativeSrc":"9727:117:64","nodeType":"YulIf","src":"9727:117:64"},{"nativeSrc":"9858:82:64","nodeType":"YulAssignment","src":"9858:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9912:9:64","nodeType":"YulIdentifier","src":"9912:9:64"},{"name":"offset","nativeSrc":"9923:6:64","nodeType":"YulIdentifier","src":"9923:6:64"}],"functionName":{"name":"add","nativeSrc":"9908:3:64","nodeType":"YulIdentifier","src":"9908:3:64"},"nativeSrc":"9908:22:64","nodeType":"YulFunctionCall","src":"9908:22:64"},{"name":"dataEnd","nativeSrc":"9932:7:64","nodeType":"YulIdentifier","src":"9932:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"9876:31:64","nodeType":"YulIdentifier","src":"9876:31:64"},"nativeSrc":"9876:64:64","nodeType":"YulFunctionCall","src":"9876:64:64"},"variableNames":[{"name":"value6","nativeSrc":"9858:6:64","nodeType":"YulIdentifier","src":"9858:6:64"},{"name":"value7","nativeSrc":"9866:6:64","nodeType":"YulIdentifier","src":"9866:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr","nativeSrc":"8388:1569:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8525:9:64","nodeType":"YulTypedName","src":"8525:9:64","type":""},{"name":"dataEnd","nativeSrc":"8536:7:64","nodeType":"YulTypedName","src":"8536:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8548:6:64","nodeType":"YulTypedName","src":"8548:6:64","type":""},{"name":"value1","nativeSrc":"8556:6:64","nodeType":"YulTypedName","src":"8556:6:64","type":""},{"name":"value2","nativeSrc":"8564:6:64","nodeType":"YulTypedName","src":"8564:6:64","type":""},{"name":"value3","nativeSrc":"8572:6:64","nodeType":"YulTypedName","src":"8572:6:64","type":""},{"name":"value4","nativeSrc":"8580:6:64","nodeType":"YulTypedName","src":"8580:6:64","type":""},{"name":"value5","nativeSrc":"8588:6:64","nodeType":"YulTypedName","src":"8588:6:64","type":""},{"name":"value6","nativeSrc":"8596:6:64","nodeType":"YulTypedName","src":"8596:6:64","type":""},{"name":"value7","nativeSrc":"8604:6:64","nodeType":"YulTypedName","src":"8604:6:64","type":""}],"src":"8388:1569:64"},{"body":{"nativeSrc":"10029:263:64","nodeType":"YulBlock","src":"10029:263:64","statements":[{"body":{"nativeSrc":"10075:83:64","nodeType":"YulBlock","src":"10075:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10077:77:64","nodeType":"YulIdentifier","src":"10077:77:64"},"nativeSrc":"10077:79:64","nodeType":"YulFunctionCall","src":"10077:79:64"},"nativeSrc":"10077:79:64","nodeType":"YulExpressionStatement","src":"10077:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10050:7:64","nodeType":"YulIdentifier","src":"10050:7:64"},{"name":"headStart","nativeSrc":"10059:9:64","nodeType":"YulIdentifier","src":"10059:9:64"}],"functionName":{"name":"sub","nativeSrc":"10046:3:64","nodeType":"YulIdentifier","src":"10046:3:64"},"nativeSrc":"10046:23:64","nodeType":"YulFunctionCall","src":"10046:23:64"},{"kind":"number","nativeSrc":"10071:2:64","nodeType":"YulLiteral","src":"10071:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10042:3:64","nodeType":"YulIdentifier","src":"10042:3:64"},"nativeSrc":"10042:32:64","nodeType":"YulFunctionCall","src":"10042:32:64"},"nativeSrc":"10039:119:64","nodeType":"YulIf","src":"10039:119:64"},{"nativeSrc":"10168:117:64","nodeType":"YulBlock","src":"10168:117:64","statements":[{"nativeSrc":"10183:15:64","nodeType":"YulVariableDeclaration","src":"10183:15:64","value":{"kind":"number","nativeSrc":"10197:1:64","nodeType":"YulLiteral","src":"10197:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10187:6:64","nodeType":"YulTypedName","src":"10187:6:64","type":""}]},{"nativeSrc":"10212:63:64","nodeType":"YulAssignment","src":"10212:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10247:9:64","nodeType":"YulIdentifier","src":"10247:9:64"},{"name":"offset","nativeSrc":"10258:6:64","nodeType":"YulIdentifier","src":"10258:6:64"}],"functionName":{"name":"add","nativeSrc":"10243:3:64","nodeType":"YulIdentifier","src":"10243:3:64"},"nativeSrc":"10243:22:64","nodeType":"YulFunctionCall","src":"10243:22:64"},{"name":"dataEnd","nativeSrc":"10267:7:64","nodeType":"YulIdentifier","src":"10267:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10222:20:64","nodeType":"YulIdentifier","src":"10222:20:64"},"nativeSrc":"10222:53:64","nodeType":"YulFunctionCall","src":"10222:53:64"},"variableNames":[{"name":"value0","nativeSrc":"10212:6:64","nodeType":"YulIdentifier","src":"10212:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"9963:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9999:9:64","nodeType":"YulTypedName","src":"9999:9:64","type":""},{"name":"dataEnd","nativeSrc":"10010:7:64","nodeType":"YulTypedName","src":"10010:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10022:6:64","nodeType":"YulTypedName","src":"10022:6:64","type":""}],"src":"9963:329:64"},{"body":{"nativeSrc":"10341:79:64","nodeType":"YulBlock","src":"10341:79:64","statements":[{"body":{"nativeSrc":"10398:16:64","nodeType":"YulBlock","src":"10398:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10407:1:64","nodeType":"YulLiteral","src":"10407:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10410:1:64","nodeType":"YulLiteral","src":"10410:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10400:6:64","nodeType":"YulIdentifier","src":"10400:6:64"},"nativeSrc":"10400:12:64","nodeType":"YulFunctionCall","src":"10400:12:64"},"nativeSrc":"10400:12:64","nodeType":"YulExpressionStatement","src":"10400:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10364:5:64","nodeType":"YulIdentifier","src":"10364:5:64"},{"arguments":[{"name":"value","nativeSrc":"10389:5:64","nodeType":"YulIdentifier","src":"10389:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10371:17:64","nodeType":"YulIdentifier","src":"10371:17:64"},"nativeSrc":"10371:24:64","nodeType":"YulFunctionCall","src":"10371:24:64"}],"functionName":{"name":"eq","nativeSrc":"10361:2:64","nodeType":"YulIdentifier","src":"10361:2:64"},"nativeSrc":"10361:35:64","nodeType":"YulFunctionCall","src":"10361:35:64"}],"functionName":{"name":"iszero","nativeSrc":"10354:6:64","nodeType":"YulIdentifier","src":"10354:6:64"},"nativeSrc":"10354:43:64","nodeType":"YulFunctionCall","src":"10354:43:64"},"nativeSrc":"10351:63:64","nodeType":"YulIf","src":"10351:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"10298:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10334:5:64","nodeType":"YulTypedName","src":"10334:5:64","type":""}],"src":"10298:122:64"},{"body":{"nativeSrc":"10478:87:64","nodeType":"YulBlock","src":"10478:87:64","statements":[{"nativeSrc":"10488:29:64","nodeType":"YulAssignment","src":"10488:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"10510:6:64","nodeType":"YulIdentifier","src":"10510:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"10497:12:64","nodeType":"YulIdentifier","src":"10497:12:64"},"nativeSrc":"10497:20:64","nodeType":"YulFunctionCall","src":"10497:20:64"},"variableNames":[{"name":"value","nativeSrc":"10488:5:64","nodeType":"YulIdentifier","src":"10488:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10553:5:64","nodeType":"YulIdentifier","src":"10553:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"10526:26:64","nodeType":"YulIdentifier","src":"10526:26:64"},"nativeSrc":"10526:33:64","nodeType":"YulFunctionCall","src":"10526:33:64"},"nativeSrc":"10526:33:64","nodeType":"YulExpressionStatement","src":"10526:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"10426:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10456:6:64","nodeType":"YulTypedName","src":"10456:6:64","type":""},{"name":"end","nativeSrc":"10464:3:64","nodeType":"YulTypedName","src":"10464:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10472:5:64","nodeType":"YulTypedName","src":"10472:5:64","type":""}],"src":"10426:139:64"},{"body":{"nativeSrc":"10724:956:64","nodeType":"YulBlock","src":"10724:956:64","statements":[{"body":{"nativeSrc":"10771:83:64","nodeType":"YulBlock","src":"10771:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10773:77:64","nodeType":"YulIdentifier","src":"10773:77:64"},"nativeSrc":"10773:79:64","nodeType":"YulFunctionCall","src":"10773:79:64"},"nativeSrc":"10773:79:64","nodeType":"YulExpressionStatement","src":"10773:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10745:7:64","nodeType":"YulIdentifier","src":"10745:7:64"},{"name":"headStart","nativeSrc":"10754:9:64","nodeType":"YulIdentifier","src":"10754:9:64"}],"functionName":{"name":"sub","nativeSrc":"10741:3:64","nodeType":"YulIdentifier","src":"10741:3:64"},"nativeSrc":"10741:23:64","nodeType":"YulFunctionCall","src":"10741:23:64"},{"kind":"number","nativeSrc":"10766:3:64","nodeType":"YulLiteral","src":"10766:3:64","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"10737:3:64","nodeType":"YulIdentifier","src":"10737:3:64"},"nativeSrc":"10737:33:64","nodeType":"YulFunctionCall","src":"10737:33:64"},"nativeSrc":"10734:120:64","nodeType":"YulIf","src":"10734:120:64"},{"nativeSrc":"10864:117:64","nodeType":"YulBlock","src":"10864:117:64","statements":[{"nativeSrc":"10879:15:64","nodeType":"YulVariableDeclaration","src":"10879:15:64","value":{"kind":"number","nativeSrc":"10893:1:64","nodeType":"YulLiteral","src":"10893:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10883:6:64","nodeType":"YulTypedName","src":"10883:6:64","type":""}]},{"nativeSrc":"10908:63:64","nodeType":"YulAssignment","src":"10908:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10943:9:64","nodeType":"YulIdentifier","src":"10943:9:64"},{"name":"offset","nativeSrc":"10954:6:64","nodeType":"YulIdentifier","src":"10954:6:64"}],"functionName":{"name":"add","nativeSrc":"10939:3:64","nodeType":"YulIdentifier","src":"10939:3:64"},"nativeSrc":"10939:22:64","nodeType":"YulFunctionCall","src":"10939:22:64"},{"name":"dataEnd","nativeSrc":"10963:7:64","nodeType":"YulIdentifier","src":"10963:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10918:20:64","nodeType":"YulIdentifier","src":"10918:20:64"},"nativeSrc":"10918:53:64","nodeType":"YulFunctionCall","src":"10918:53:64"},"variableNames":[{"name":"value0","nativeSrc":"10908:6:64","nodeType":"YulIdentifier","src":"10908:6:64"}]}]},{"nativeSrc":"10991:118:64","nodeType":"YulBlock","src":"10991:118:64","statements":[{"nativeSrc":"11006:16:64","nodeType":"YulVariableDeclaration","src":"11006:16:64","value":{"kind":"number","nativeSrc":"11020:2:64","nodeType":"YulLiteral","src":"11020:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11010:6:64","nodeType":"YulTypedName","src":"11010:6:64","type":""}]},{"nativeSrc":"11036:63:64","nodeType":"YulAssignment","src":"11036:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11071:9:64","nodeType":"YulIdentifier","src":"11071:9:64"},{"name":"offset","nativeSrc":"11082:6:64","nodeType":"YulIdentifier","src":"11082:6:64"}],"functionName":{"name":"add","nativeSrc":"11067:3:64","nodeType":"YulIdentifier","src":"11067:3:64"},"nativeSrc":"11067:22:64","nodeType":"YulFunctionCall","src":"11067:22:64"},{"name":"dataEnd","nativeSrc":"11091:7:64","nodeType":"YulIdentifier","src":"11091:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11046:20:64","nodeType":"YulIdentifier","src":"11046:20:64"},"nativeSrc":"11046:53:64","nodeType":"YulFunctionCall","src":"11046:53:64"},"variableNames":[{"name":"value1","nativeSrc":"11036:6:64","nodeType":"YulIdentifier","src":"11036:6:64"}]}]},{"nativeSrc":"11119:118:64","nodeType":"YulBlock","src":"11119:118:64","statements":[{"nativeSrc":"11134:16:64","nodeType":"YulVariableDeclaration","src":"11134:16:64","value":{"kind":"number","nativeSrc":"11148:2:64","nodeType":"YulLiteral","src":"11148:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11138:6:64","nodeType":"YulTypedName","src":"11138:6:64","type":""}]},{"nativeSrc":"11164:63:64","nodeType":"YulAssignment","src":"11164:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11199:9:64","nodeType":"YulIdentifier","src":"11199:9:64"},{"name":"offset","nativeSrc":"11210:6:64","nodeType":"YulIdentifier","src":"11210:6:64"}],"functionName":{"name":"add","nativeSrc":"11195:3:64","nodeType":"YulIdentifier","src":"11195:3:64"},"nativeSrc":"11195:22:64","nodeType":"YulFunctionCall","src":"11195:22:64"},{"name":"dataEnd","nativeSrc":"11219:7:64","nodeType":"YulIdentifier","src":"11219:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11174:20:64","nodeType":"YulIdentifier","src":"11174:20:64"},"nativeSrc":"11174:53:64","nodeType":"YulFunctionCall","src":"11174:53:64"},"variableNames":[{"name":"value2","nativeSrc":"11164:6:64","nodeType":"YulIdentifier","src":"11164:6:64"}]}]},{"nativeSrc":"11247:118:64","nodeType":"YulBlock","src":"11247:118:64","statements":[{"nativeSrc":"11262:16:64","nodeType":"YulVariableDeclaration","src":"11262:16:64","value":{"kind":"number","nativeSrc":"11276:2:64","nodeType":"YulLiteral","src":"11276:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"11266:6:64","nodeType":"YulTypedName","src":"11266:6:64","type":""}]},{"nativeSrc":"11292:63:64","nodeType":"YulAssignment","src":"11292:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11327:9:64","nodeType":"YulIdentifier","src":"11327:9:64"},{"name":"offset","nativeSrc":"11338:6:64","nodeType":"YulIdentifier","src":"11338:6:64"}],"functionName":{"name":"add","nativeSrc":"11323:3:64","nodeType":"YulIdentifier","src":"11323:3:64"},"nativeSrc":"11323:22:64","nodeType":"YulFunctionCall","src":"11323:22:64"},{"name":"dataEnd","nativeSrc":"11347:7:64","nodeType":"YulIdentifier","src":"11347:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11302:20:64","nodeType":"YulIdentifier","src":"11302:20:64"},"nativeSrc":"11302:53:64","nodeType":"YulFunctionCall","src":"11302:53:64"},"variableNames":[{"name":"value3","nativeSrc":"11292:6:64","nodeType":"YulIdentifier","src":"11292:6:64"}]}]},{"nativeSrc":"11375:298:64","nodeType":"YulBlock","src":"11375:298:64","statements":[{"nativeSrc":"11390:47:64","nodeType":"YulVariableDeclaration","src":"11390:47:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11421:9:64","nodeType":"YulIdentifier","src":"11421:9:64"},{"kind":"number","nativeSrc":"11432:3:64","nodeType":"YulLiteral","src":"11432:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"11417:3:64","nodeType":"YulIdentifier","src":"11417:3:64"},"nativeSrc":"11417:19:64","nodeType":"YulFunctionCall","src":"11417:19:64"}],"functionName":{"name":"calldataload","nativeSrc":"11404:12:64","nodeType":"YulIdentifier","src":"11404:12:64"},"nativeSrc":"11404:33:64","nodeType":"YulFunctionCall","src":"11404:33:64"},"variables":[{"name":"offset","nativeSrc":"11394:6:64","nodeType":"YulTypedName","src":"11394:6:64","type":""}]},{"body":{"nativeSrc":"11484:83:64","nodeType":"YulBlock","src":"11484:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11486:77:64","nodeType":"YulIdentifier","src":"11486:77:64"},"nativeSrc":"11486:79:64","nodeType":"YulFunctionCall","src":"11486:79:64"},"nativeSrc":"11486:79:64","nodeType":"YulExpressionStatement","src":"11486:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11456:6:64","nodeType":"YulIdentifier","src":"11456:6:64"},{"kind":"number","nativeSrc":"11464:18:64","nodeType":"YulLiteral","src":"11464:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11453:2:64","nodeType":"YulIdentifier","src":"11453:2:64"},"nativeSrc":"11453:30:64","nodeType":"YulFunctionCall","src":"11453:30:64"},"nativeSrc":"11450:117:64","nodeType":"YulIf","src":"11450:117:64"},{"nativeSrc":"11581:82:64","nodeType":"YulAssignment","src":"11581:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11635:9:64","nodeType":"YulIdentifier","src":"11635:9:64"},{"name":"offset","nativeSrc":"11646:6:64","nodeType":"YulIdentifier","src":"11646:6:64"}],"functionName":{"name":"add","nativeSrc":"11631:3:64","nodeType":"YulIdentifier","src":"11631:3:64"},"nativeSrc":"11631:22:64","nodeType":"YulFunctionCall","src":"11631:22:64"},{"name":"dataEnd","nativeSrc":"11655:7:64","nodeType":"YulIdentifier","src":"11655:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"11599:31:64","nodeType":"YulIdentifier","src":"11599:31:64"},"nativeSrc":"11599:64:64","nodeType":"YulFunctionCall","src":"11599:64:64"},"variableNames":[{"name":"value4","nativeSrc":"11581:6:64","nodeType":"YulIdentifier","src":"11581:6:64"},{"name":"value5","nativeSrc":"11589:6:64","nodeType":"YulIdentifier","src":"11589:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr","nativeSrc":"10571:1109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10654:9:64","nodeType":"YulTypedName","src":"10654:9:64","type":""},{"name":"dataEnd","nativeSrc":"10665:7:64","nodeType":"YulTypedName","src":"10665:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10677:6:64","nodeType":"YulTypedName","src":"10677:6:64","type":""},{"name":"value1","nativeSrc":"10685:6:64","nodeType":"YulTypedName","src":"10685:6:64","type":""},{"name":"value2","nativeSrc":"10693:6:64","nodeType":"YulTypedName","src":"10693:6:64","type":""},{"name":"value3","nativeSrc":"10701:6:64","nodeType":"YulTypedName","src":"10701:6:64","type":""},{"name":"value4","nativeSrc":"10709:6:64","nodeType":"YulTypedName","src":"10709:6:64","type":""},{"name":"value5","nativeSrc":"10717:6:64","nodeType":"YulTypedName","src":"10717:6:64","type":""}],"src":"10571:1109:64"},{"body":{"nativeSrc":"11775:28:64","nodeType":"YulBlock","src":"11775:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11792:1:64","nodeType":"YulLiteral","src":"11792:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11795:1:64","nodeType":"YulLiteral","src":"11795:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11785:6:64","nodeType":"YulIdentifier","src":"11785:6:64"},"nativeSrc":"11785:12:64","nodeType":"YulFunctionCall","src":"11785:12:64"},"nativeSrc":"11785:12:64","nodeType":"YulExpressionStatement","src":"11785:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"11686:117:64","nodeType":"YulFunctionDefinition","src":"11686:117:64"},{"body":{"nativeSrc":"11837:152:64","nodeType":"YulBlock","src":"11837:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11854:1:64","nodeType":"YulLiteral","src":"11854:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11857:77:64","nodeType":"YulLiteral","src":"11857:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11847:6:64","nodeType":"YulIdentifier","src":"11847:6:64"},"nativeSrc":"11847:88:64","nodeType":"YulFunctionCall","src":"11847:88:64"},"nativeSrc":"11847:88:64","nodeType":"YulExpressionStatement","src":"11847:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11951:1:64","nodeType":"YulLiteral","src":"11951:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"11954:4:64","nodeType":"YulLiteral","src":"11954:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"11944:6:64","nodeType":"YulIdentifier","src":"11944:6:64"},"nativeSrc":"11944:15:64","nodeType":"YulFunctionCall","src":"11944:15:64"},"nativeSrc":"11944:15:64","nodeType":"YulExpressionStatement","src":"11944:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11975:1:64","nodeType":"YulLiteral","src":"11975:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11978:4:64","nodeType":"YulLiteral","src":"11978:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11968:6:64","nodeType":"YulIdentifier","src":"11968:6:64"},"nativeSrc":"11968:15:64","nodeType":"YulFunctionCall","src":"11968:15:64"},"nativeSrc":"11968:15:64","nodeType":"YulExpressionStatement","src":"11968:15:64"}]},"name":"panic_error_0x41","nativeSrc":"11809:180:64","nodeType":"YulFunctionDefinition","src":"11809:180:64"},{"body":{"nativeSrc":"12038:238:64","nodeType":"YulBlock","src":"12038:238:64","statements":[{"nativeSrc":"12048:58:64","nodeType":"YulVariableDeclaration","src":"12048:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"12070:6:64","nodeType":"YulIdentifier","src":"12070:6:64"},{"arguments":[{"name":"size","nativeSrc":"12100:4:64","nodeType":"YulIdentifier","src":"12100:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"12078:21:64","nodeType":"YulIdentifier","src":"12078:21:64"},"nativeSrc":"12078:27:64","nodeType":"YulFunctionCall","src":"12078:27:64"}],"functionName":{"name":"add","nativeSrc":"12066:3:64","nodeType":"YulIdentifier","src":"12066:3:64"},"nativeSrc":"12066:40:64","nodeType":"YulFunctionCall","src":"12066:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"12052:10:64","nodeType":"YulTypedName","src":"12052:10:64","type":""}]},{"body":{"nativeSrc":"12217:22:64","nodeType":"YulBlock","src":"12217:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"12219:16:64","nodeType":"YulIdentifier","src":"12219:16:64"},"nativeSrc":"12219:18:64","nodeType":"YulFunctionCall","src":"12219:18:64"},"nativeSrc":"12219:18:64","nodeType":"YulExpressionStatement","src":"12219:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"12160:10:64","nodeType":"YulIdentifier","src":"12160:10:64"},{"kind":"number","nativeSrc":"12172:18:64","nodeType":"YulLiteral","src":"12172:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12157:2:64","nodeType":"YulIdentifier","src":"12157:2:64"},"nativeSrc":"12157:34:64","nodeType":"YulFunctionCall","src":"12157:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"12196:10:64","nodeType":"YulIdentifier","src":"12196:10:64"},{"name":"memPtr","nativeSrc":"12208:6:64","nodeType":"YulIdentifier","src":"12208:6:64"}],"functionName":{"name":"lt","nativeSrc":"12193:2:64","nodeType":"YulIdentifier","src":"12193:2:64"},"nativeSrc":"12193:22:64","nodeType":"YulFunctionCall","src":"12193:22:64"}],"functionName":{"name":"or","nativeSrc":"12154:2:64","nodeType":"YulIdentifier","src":"12154:2:64"},"nativeSrc":"12154:62:64","nodeType":"YulFunctionCall","src":"12154:62:64"},"nativeSrc":"12151:88:64","nodeType":"YulIf","src":"12151:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12255:2:64","nodeType":"YulLiteral","src":"12255:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"12259:10:64","nodeType":"YulIdentifier","src":"12259:10:64"}],"functionName":{"name":"mstore","nativeSrc":"12248:6:64","nodeType":"YulIdentifier","src":"12248:6:64"},"nativeSrc":"12248:22:64","nodeType":"YulFunctionCall","src":"12248:22:64"},"nativeSrc":"12248:22:64","nodeType":"YulExpressionStatement","src":"12248:22:64"}]},"name":"finalize_allocation","nativeSrc":"11995:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"12024:6:64","nodeType":"YulTypedName","src":"12024:6:64","type":""},{"name":"size","nativeSrc":"12032:4:64","nodeType":"YulTypedName","src":"12032:4:64","type":""}],"src":"11995:281:64"},{"body":{"nativeSrc":"12323:88:64","nodeType":"YulBlock","src":"12323:88:64","statements":[{"nativeSrc":"12333:30:64","nodeType":"YulAssignment","src":"12333:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"12343:18:64","nodeType":"YulIdentifier","src":"12343:18:64"},"nativeSrc":"12343:20:64","nodeType":"YulFunctionCall","src":"12343:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"12333:6:64","nodeType":"YulIdentifier","src":"12333:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"12392:6:64","nodeType":"YulIdentifier","src":"12392:6:64"},{"name":"size","nativeSrc":"12400:4:64","nodeType":"YulIdentifier","src":"12400:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"12372:19:64","nodeType":"YulIdentifier","src":"12372:19:64"},"nativeSrc":"12372:33:64","nodeType":"YulFunctionCall","src":"12372:33:64"},"nativeSrc":"12372:33:64","nodeType":"YulExpressionStatement","src":"12372:33:64"}]},"name":"allocate_memory","nativeSrc":"12282:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"12307:4:64","nodeType":"YulTypedName","src":"12307:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"12316:6:64","nodeType":"YulTypedName","src":"12316:6:64","type":""}],"src":"12282:129:64"},{"body":{"nativeSrc":"12506:28:64","nodeType":"YulBlock","src":"12506:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12523:1:64","nodeType":"YulLiteral","src":"12523:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12526:1:64","nodeType":"YulLiteral","src":"12526:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12516:6:64","nodeType":"YulIdentifier","src":"12516:6:64"},"nativeSrc":"12516:12:64","nodeType":"YulFunctionCall","src":"12516:12:64"},"nativeSrc":"12516:12:64","nodeType":"YulExpressionStatement","src":"12516:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"12417:117:64","nodeType":"YulFunctionDefinition","src":"12417:117:64"},{"body":{"nativeSrc":"12602:51:64","nodeType":"YulBlock","src":"12602:51:64","statements":[{"nativeSrc":"12612:35:64","nodeType":"YulAssignment","src":"12612:35:64","value":{"arguments":[{"name":"value","nativeSrc":"12641:5:64","nodeType":"YulIdentifier","src":"12641:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"12623:17:64","nodeType":"YulIdentifier","src":"12623:17:64"},"nativeSrc":"12623:24:64","nodeType":"YulFunctionCall","src":"12623:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"12612:7:64","nodeType":"YulIdentifier","src":"12612:7:64"}]}]},"name":"cleanup_t_contract$_IERC1155_$1176","nativeSrc":"12540:113:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12584:5:64","nodeType":"YulTypedName","src":"12584:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12594:7:64","nodeType":"YulTypedName","src":"12594:7:64","type":""}],"src":"12540:113:64"},{"body":{"nativeSrc":"12719:96:64","nodeType":"YulBlock","src":"12719:96:64","statements":[{"body":{"nativeSrc":"12793:16:64","nodeType":"YulBlock","src":"12793:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12802:1:64","nodeType":"YulLiteral","src":"12802:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12805:1:64","nodeType":"YulLiteral","src":"12805:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12795:6:64","nodeType":"YulIdentifier","src":"12795:6:64"},"nativeSrc":"12795:12:64","nodeType":"YulFunctionCall","src":"12795:12:64"},"nativeSrc":"12795:12:64","nodeType":"YulExpressionStatement","src":"12795:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12742:5:64","nodeType":"YulIdentifier","src":"12742:5:64"},{"arguments":[{"name":"value","nativeSrc":"12784:5:64","nodeType":"YulIdentifier","src":"12784:5:64"}],"functionName":{"name":"cleanup_t_contract$_IERC1155_$1176","nativeSrc":"12749:34:64","nodeType":"YulIdentifier","src":"12749:34:64"},"nativeSrc":"12749:41:64","nodeType":"YulFunctionCall","src":"12749:41:64"}],"functionName":{"name":"eq","nativeSrc":"12739:2:64","nodeType":"YulIdentifier","src":"12739:2:64"},"nativeSrc":"12739:52:64","nodeType":"YulFunctionCall","src":"12739:52:64"}],"functionName":{"name":"iszero","nativeSrc":"12732:6:64","nodeType":"YulIdentifier","src":"12732:6:64"},"nativeSrc":"12732:60:64","nodeType":"YulFunctionCall","src":"12732:60:64"},"nativeSrc":"12729:80:64","nodeType":"YulIf","src":"12729:80:64"}]},"name":"validator_revert_t_contract$_IERC1155_$1176","nativeSrc":"12659:156:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12712:5:64","nodeType":"YulTypedName","src":"12712:5:64","type":""}],"src":"12659:156:64"},{"body":{"nativeSrc":"12890:104:64","nodeType":"YulBlock","src":"12890:104:64","statements":[{"nativeSrc":"12900:29:64","nodeType":"YulAssignment","src":"12900:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"12922:6:64","nodeType":"YulIdentifier","src":"12922:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"12909:12:64","nodeType":"YulIdentifier","src":"12909:12:64"},"nativeSrc":"12909:20:64","nodeType":"YulFunctionCall","src":"12909:20:64"},"variableNames":[{"name":"value","nativeSrc":"12900:5:64","nodeType":"YulIdentifier","src":"12900:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12982:5:64","nodeType":"YulIdentifier","src":"12982:5:64"}],"functionName":{"name":"validator_revert_t_contract$_IERC1155_$1176","nativeSrc":"12938:43:64","nodeType":"YulIdentifier","src":"12938:43:64"},"nativeSrc":"12938:50:64","nodeType":"YulFunctionCall","src":"12938:50:64"},"nativeSrc":"12938:50:64","nodeType":"YulExpressionStatement","src":"12938:50:64"}]},"name":"abi_decode_t_contract$_IERC1155_$1176","nativeSrc":"12821:173:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12868:6:64","nodeType":"YulTypedName","src":"12868:6:64","type":""},{"name":"end","nativeSrc":"12876:3:64","nodeType":"YulTypedName","src":"12876:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12884:5:64","nodeType":"YulTypedName","src":"12884:5:64","type":""}],"src":"12821:173:64"},{"body":{"nativeSrc":"13057:56:64","nodeType":"YulBlock","src":"13057:56:64","statements":[{"body":{"nativeSrc":"13091:16:64","nodeType":"YulBlock","src":"13091:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13100:1:64","nodeType":"YulLiteral","src":"13100:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"13103:1:64","nodeType":"YulLiteral","src":"13103:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13093:6:64","nodeType":"YulIdentifier","src":"13093:6:64"},"nativeSrc":"13093:12:64","nodeType":"YulFunctionCall","src":"13093:12:64"},"nativeSrc":"13093:12:64","nodeType":"YulExpressionStatement","src":"13093:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13080:5:64","nodeType":"YulIdentifier","src":"13080:5:64"},{"kind":"number","nativeSrc":"13087:1:64","nodeType":"YulLiteral","src":"13087:1:64","type":"","value":"2"}],"functionName":{"name":"lt","nativeSrc":"13077:2:64","nodeType":"YulIdentifier","src":"13077:2:64"},"nativeSrc":"13077:12:64","nodeType":"YulFunctionCall","src":"13077:12:64"}],"functionName":{"name":"iszero","nativeSrc":"13070:6:64","nodeType":"YulIdentifier","src":"13070:6:64"},"nativeSrc":"13070:20:64","nodeType":"YulFunctionCall","src":"13070:20:64"},"nativeSrc":"13067:40:64","nodeType":"YulIf","src":"13067:40:64"}]},"name":"validator_revert_t_enum$_Strategy_$16442","nativeSrc":"13000:113:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13050:5:64","nodeType":"YulTypedName","src":"13050:5:64","type":""}],"src":"13000:113:64"},{"body":{"nativeSrc":"13185:101:64","nodeType":"YulBlock","src":"13185:101:64","statements":[{"nativeSrc":"13195:29:64","nodeType":"YulAssignment","src":"13195:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"13217:6:64","nodeType":"YulIdentifier","src":"13217:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"13204:12:64","nodeType":"YulIdentifier","src":"13204:12:64"},"nativeSrc":"13204:20:64","nodeType":"YulFunctionCall","src":"13204:20:64"},"variableNames":[{"name":"value","nativeSrc":"13195:5:64","nodeType":"YulIdentifier","src":"13195:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13274:5:64","nodeType":"YulIdentifier","src":"13274:5:64"}],"functionName":{"name":"validator_revert_t_enum$_Strategy_$16442","nativeSrc":"13233:40:64","nodeType":"YulIdentifier","src":"13233:40:64"},"nativeSrc":"13233:47:64","nodeType":"YulFunctionCall","src":"13233:47:64"},"nativeSrc":"13233:47:64","nodeType":"YulExpressionStatement","src":"13233:47:64"}]},"name":"abi_decode_t_enum$_Strategy_$16442","nativeSrc":"13119:167:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13163:6:64","nodeType":"YulTypedName","src":"13163:6:64","type":""},{"name":"end","nativeSrc":"13171:3:64","nodeType":"YulTypedName","src":"13171:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13179:5:64","nodeType":"YulTypedName","src":"13179:5:64","type":""}],"src":"13119:167:64"},{"body":{"nativeSrc":"13381:28:64","nodeType":"YulBlock","src":"13381:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13398:1:64","nodeType":"YulLiteral","src":"13398:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"13401:1:64","nodeType":"YulLiteral","src":"13401:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13391:6:64","nodeType":"YulIdentifier","src":"13391:6:64"},"nativeSrc":"13391:12:64","nodeType":"YulFunctionCall","src":"13391:12:64"},"nativeSrc":"13391:12:64","nodeType":"YulExpressionStatement","src":"13391:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"13292:117:64","nodeType":"YulFunctionDefinition","src":"13292:117:64"},{"body":{"nativeSrc":"13481:241:64","nodeType":"YulBlock","src":"13481:241:64","statements":[{"body":{"nativeSrc":"13586:22:64","nodeType":"YulBlock","src":"13586:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"13588:16:64","nodeType":"YulIdentifier","src":"13588:16:64"},"nativeSrc":"13588:18:64","nodeType":"YulFunctionCall","src":"13588:18:64"},"nativeSrc":"13588:18:64","nodeType":"YulExpressionStatement","src":"13588:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"13558:6:64","nodeType":"YulIdentifier","src":"13558:6:64"},{"kind":"number","nativeSrc":"13566:18:64","nodeType":"YulLiteral","src":"13566:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13555:2:64","nodeType":"YulIdentifier","src":"13555:2:64"},"nativeSrc":"13555:30:64","nodeType":"YulFunctionCall","src":"13555:30:64"},"nativeSrc":"13552:56:64","nodeType":"YulIf","src":"13552:56:64"},{"nativeSrc":"13618:37:64","nodeType":"YulAssignment","src":"13618:37:64","value":{"arguments":[{"name":"length","nativeSrc":"13648:6:64","nodeType":"YulIdentifier","src":"13648:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13626:21:64","nodeType":"YulIdentifier","src":"13626:21:64"},"nativeSrc":"13626:29:64","nodeType":"YulFunctionCall","src":"13626:29:64"},"variableNames":[{"name":"size","nativeSrc":"13618:4:64","nodeType":"YulIdentifier","src":"13618:4:64"}]},{"nativeSrc":"13692:23:64","nodeType":"YulAssignment","src":"13692:23:64","value":{"arguments":[{"name":"size","nativeSrc":"13704:4:64","nodeType":"YulIdentifier","src":"13704:4:64"},{"kind":"number","nativeSrc":"13710:4:64","nodeType":"YulLiteral","src":"13710:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13700:3:64","nodeType":"YulIdentifier","src":"13700:3:64"},"nativeSrc":"13700:15:64","nodeType":"YulFunctionCall","src":"13700:15:64"},"variableNames":[{"name":"size","nativeSrc":"13692:4:64","nodeType":"YulIdentifier","src":"13692:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"13415:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"13465:6:64","nodeType":"YulTypedName","src":"13465:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"13476:4:64","nodeType":"YulTypedName","src":"13476:4:64","type":""}],"src":"13415:307:64"},{"body":{"nativeSrc":"13792:84:64","nodeType":"YulBlock","src":"13792:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"13816:3:64","nodeType":"YulIdentifier","src":"13816:3:64"},{"name":"src","nativeSrc":"13821:3:64","nodeType":"YulIdentifier","src":"13821:3:64"},{"name":"length","nativeSrc":"13826:6:64","nodeType":"YulIdentifier","src":"13826:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"13803:12:64","nodeType":"YulIdentifier","src":"13803:12:64"},"nativeSrc":"13803:30:64","nodeType":"YulFunctionCall","src":"13803:30:64"},"nativeSrc":"13803:30:64","nodeType":"YulExpressionStatement","src":"13803:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"13853:3:64","nodeType":"YulIdentifier","src":"13853:3:64"},{"name":"length","nativeSrc":"13858:6:64","nodeType":"YulIdentifier","src":"13858:6:64"}],"functionName":{"name":"add","nativeSrc":"13849:3:64","nodeType":"YulIdentifier","src":"13849:3:64"},"nativeSrc":"13849:16:64","nodeType":"YulFunctionCall","src":"13849:16:64"},{"kind":"number","nativeSrc":"13867:1:64","nodeType":"YulLiteral","src":"13867:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"13842:6:64","nodeType":"YulIdentifier","src":"13842:6:64"},"nativeSrc":"13842:27:64","nodeType":"YulFunctionCall","src":"13842:27:64"},"nativeSrc":"13842:27:64","nodeType":"YulExpressionStatement","src":"13842:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"13728:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13774:3:64","nodeType":"YulTypedName","src":"13774:3:64","type":""},{"name":"dst","nativeSrc":"13779:3:64","nodeType":"YulTypedName","src":"13779:3:64","type":""},{"name":"length","nativeSrc":"13784:6:64","nodeType":"YulTypedName","src":"13784:6:64","type":""}],"src":"13728:148:64"},{"body":{"nativeSrc":"13965:340:64","nodeType":"YulBlock","src":"13965:340:64","statements":[{"nativeSrc":"13975:74:64","nodeType":"YulAssignment","src":"13975:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14041:6:64","nodeType":"YulIdentifier","src":"14041:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"14000:40:64","nodeType":"YulIdentifier","src":"14000:40:64"},"nativeSrc":"14000:48:64","nodeType":"YulFunctionCall","src":"14000:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"13984:15:64","nodeType":"YulIdentifier","src":"13984:15:64"},"nativeSrc":"13984:65:64","nodeType":"YulFunctionCall","src":"13984:65:64"},"variableNames":[{"name":"array","nativeSrc":"13975:5:64","nodeType":"YulIdentifier","src":"13975:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"14065:5:64","nodeType":"YulIdentifier","src":"14065:5:64"},{"name":"length","nativeSrc":"14072:6:64","nodeType":"YulIdentifier","src":"14072:6:64"}],"functionName":{"name":"mstore","nativeSrc":"14058:6:64","nodeType":"YulIdentifier","src":"14058:6:64"},"nativeSrc":"14058:21:64","nodeType":"YulFunctionCall","src":"14058:21:64"},"nativeSrc":"14058:21:64","nodeType":"YulExpressionStatement","src":"14058:21:64"},{"nativeSrc":"14088:27:64","nodeType":"YulVariableDeclaration","src":"14088:27:64","value":{"arguments":[{"name":"array","nativeSrc":"14103:5:64","nodeType":"YulIdentifier","src":"14103:5:64"},{"kind":"number","nativeSrc":"14110:4:64","nodeType":"YulLiteral","src":"14110:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14099:3:64","nodeType":"YulIdentifier","src":"14099:3:64"},"nativeSrc":"14099:16:64","nodeType":"YulFunctionCall","src":"14099:16:64"},"variables":[{"name":"dst","nativeSrc":"14092:3:64","nodeType":"YulTypedName","src":"14092:3:64","type":""}]},{"body":{"nativeSrc":"14153:83:64","nodeType":"YulBlock","src":"14153:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"14155:77:64","nodeType":"YulIdentifier","src":"14155:77:64"},"nativeSrc":"14155:79:64","nodeType":"YulFunctionCall","src":"14155:79:64"},"nativeSrc":"14155:79:64","nodeType":"YulExpressionStatement","src":"14155:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"14134:3:64","nodeType":"YulIdentifier","src":"14134:3:64"},{"name":"length","nativeSrc":"14139:6:64","nodeType":"YulIdentifier","src":"14139:6:64"}],"functionName":{"name":"add","nativeSrc":"14130:3:64","nodeType":"YulIdentifier","src":"14130:3:64"},"nativeSrc":"14130:16:64","nodeType":"YulFunctionCall","src":"14130:16:64"},{"name":"end","nativeSrc":"14148:3:64","nodeType":"YulIdentifier","src":"14148:3:64"}],"functionName":{"name":"gt","nativeSrc":"14127:2:64","nodeType":"YulIdentifier","src":"14127:2:64"},"nativeSrc":"14127:25:64","nodeType":"YulFunctionCall","src":"14127:25:64"},"nativeSrc":"14124:112:64","nodeType":"YulIf","src":"14124:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"14282:3:64","nodeType":"YulIdentifier","src":"14282:3:64"},{"name":"dst","nativeSrc":"14287:3:64","nodeType":"YulIdentifier","src":"14287:3:64"},{"name":"length","nativeSrc":"14292:6:64","nodeType":"YulIdentifier","src":"14292:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"14245:36:64","nodeType":"YulIdentifier","src":"14245:36:64"},"nativeSrc":"14245:54:64","nodeType":"YulFunctionCall","src":"14245:54:64"},"nativeSrc":"14245:54:64","nodeType":"YulExpressionStatement","src":"14245:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"13882:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13938:3:64","nodeType":"YulTypedName","src":"13938:3:64","type":""},{"name":"length","nativeSrc":"13943:6:64","nodeType":"YulTypedName","src":"13943:6:64","type":""},{"name":"end","nativeSrc":"13951:3:64","nodeType":"YulTypedName","src":"13951:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"13959:5:64","nodeType":"YulTypedName","src":"13959:5:64","type":""}],"src":"13882:423:64"},{"body":{"nativeSrc":"14385:277:64","nodeType":"YulBlock","src":"14385:277:64","statements":[{"body":{"nativeSrc":"14434:83:64","nodeType":"YulBlock","src":"14434:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"14436:77:64","nodeType":"YulIdentifier","src":"14436:77:64"},"nativeSrc":"14436:79:64","nodeType":"YulFunctionCall","src":"14436:79:64"},"nativeSrc":"14436:79:64","nodeType":"YulExpressionStatement","src":"14436:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14413:6:64","nodeType":"YulIdentifier","src":"14413:6:64"},{"kind":"number","nativeSrc":"14421:4:64","nodeType":"YulLiteral","src":"14421:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"14409:3:64","nodeType":"YulIdentifier","src":"14409:3:64"},"nativeSrc":"14409:17:64","nodeType":"YulFunctionCall","src":"14409:17:64"},{"name":"end","nativeSrc":"14428:3:64","nodeType":"YulIdentifier","src":"14428:3:64"}],"functionName":{"name":"slt","nativeSrc":"14405:3:64","nodeType":"YulIdentifier","src":"14405:3:64"},"nativeSrc":"14405:27:64","nodeType":"YulFunctionCall","src":"14405:27:64"}],"functionName":{"name":"iszero","nativeSrc":"14398:6:64","nodeType":"YulIdentifier","src":"14398:6:64"},"nativeSrc":"14398:35:64","nodeType":"YulFunctionCall","src":"14398:35:64"},"nativeSrc":"14395:122:64","nodeType":"YulIf","src":"14395:122:64"},{"nativeSrc":"14526:34:64","nodeType":"YulVariableDeclaration","src":"14526:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"14553:6:64","nodeType":"YulIdentifier","src":"14553:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"14540:12:64","nodeType":"YulIdentifier","src":"14540:12:64"},"nativeSrc":"14540:20:64","nodeType":"YulFunctionCall","src":"14540:20:64"},"variables":[{"name":"length","nativeSrc":"14530:6:64","nodeType":"YulTypedName","src":"14530:6:64","type":""}]},{"nativeSrc":"14569:87:64","nodeType":"YulAssignment","src":"14569:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"14629:6:64","nodeType":"YulIdentifier","src":"14629:6:64"},{"kind":"number","nativeSrc":"14637:4:64","nodeType":"YulLiteral","src":"14637:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14625:3:64","nodeType":"YulIdentifier","src":"14625:3:64"},"nativeSrc":"14625:17:64","nodeType":"YulFunctionCall","src":"14625:17:64"},{"name":"length","nativeSrc":"14644:6:64","nodeType":"YulIdentifier","src":"14644:6:64"},{"name":"end","nativeSrc":"14652:3:64","nodeType":"YulIdentifier","src":"14652:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"14578:46:64","nodeType":"YulIdentifier","src":"14578:46:64"},"nativeSrc":"14578:78:64","nodeType":"YulFunctionCall","src":"14578:78:64"},"variableNames":[{"name":"array","nativeSrc":"14569:5:64","nodeType":"YulIdentifier","src":"14569:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"14324:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"14363:6:64","nodeType":"YulTypedName","src":"14363:6:64","type":""},{"name":"end","nativeSrc":"14371:3:64","nodeType":"YulTypedName","src":"14371:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"14379:5:64","nodeType":"YulTypedName","src":"14379:5:64","type":""}],"src":"14324:338:64"},{"body":{"nativeSrc":"14796:1192:64","nodeType":"YulBlock","src":"14796:1192:64","statements":[{"body":{"nativeSrc":"14840:83:64","nodeType":"YulBlock","src":"14840:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"14842:77:64","nodeType":"YulIdentifier","src":"14842:77:64"},"nativeSrc":"14842:79:64","nodeType":"YulFunctionCall","src":"14842:79:64"},"nativeSrc":"14842:79:64","nodeType":"YulExpressionStatement","src":"14842:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"14817:3:64","nodeType":"YulIdentifier","src":"14817:3:64"},{"name":"headStart","nativeSrc":"14822:9:64","nodeType":"YulIdentifier","src":"14822:9:64"}],"functionName":{"name":"sub","nativeSrc":"14813:3:64","nodeType":"YulIdentifier","src":"14813:3:64"},"nativeSrc":"14813:19:64","nodeType":"YulFunctionCall","src":"14813:19:64"},{"kind":"number","nativeSrc":"14834:4:64","nodeType":"YulLiteral","src":"14834:4:64","type":"","value":"0xa0"}],"functionName":{"name":"slt","nativeSrc":"14809:3:64","nodeType":"YulIdentifier","src":"14809:3:64"},"nativeSrc":"14809:30:64","nodeType":"YulFunctionCall","src":"14809:30:64"},"nativeSrc":"14806:117:64","nodeType":"YulIf","src":"14806:117:64"},{"nativeSrc":"14932:30:64","nodeType":"YulAssignment","src":"14932:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"14957:4:64","nodeType":"YulLiteral","src":"14957:4:64","type":"","value":"0xa0"}],"functionName":{"name":"allocate_memory","nativeSrc":"14941:15:64","nodeType":"YulIdentifier","src":"14941:15:64"},"nativeSrc":"14941:21:64","nodeType":"YulFunctionCall","src":"14941:21:64"},"variableNames":[{"name":"value","nativeSrc":"14932:5:64","nodeType":"YulIdentifier","src":"14932:5:64"}]},{"nativeSrc":"14972:168:64","nodeType":"YulBlock","src":"14972:168:64","statements":[{"nativeSrc":"15008:15:64","nodeType":"YulVariableDeclaration","src":"15008:15:64","value":{"kind":"number","nativeSrc":"15022:1:64","nodeType":"YulLiteral","src":"15022:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15012:6:64","nodeType":"YulTypedName","src":"15012:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15048:5:64","nodeType":"YulIdentifier","src":"15048:5:64"},{"kind":"number","nativeSrc":"15055:4:64","nodeType":"YulLiteral","src":"15055:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15044:3:64","nodeType":"YulIdentifier","src":"15044:3:64"},"nativeSrc":"15044:16:64","nodeType":"YulFunctionCall","src":"15044:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15104:9:64","nodeType":"YulIdentifier","src":"15104:9:64"},{"name":"offset","nativeSrc":"15115:6:64","nodeType":"YulIdentifier","src":"15115:6:64"}],"functionName":{"name":"add","nativeSrc":"15100:3:64","nodeType":"YulIdentifier","src":"15100:3:64"},"nativeSrc":"15100:22:64","nodeType":"YulFunctionCall","src":"15100:22:64"},{"name":"end","nativeSrc":"15124:3:64","nodeType":"YulIdentifier","src":"15124:3:64"}],"functionName":{"name":"abi_decode_t_contract$_IERC1155_$1176","nativeSrc":"15062:37:64","nodeType":"YulIdentifier","src":"15062:37:64"},"nativeSrc":"15062:66:64","nodeType":"YulFunctionCall","src":"15062:66:64"}],"functionName":{"name":"mstore","nativeSrc":"15037:6:64","nodeType":"YulIdentifier","src":"15037:6:64"},"nativeSrc":"15037:92:64","nodeType":"YulFunctionCall","src":"15037:92:64"},"nativeSrc":"15037:92:64","nodeType":"YulExpressionStatement","src":"15037:92:64"}]},{"nativeSrc":"15150:169:64","nodeType":"YulBlock","src":"15150:169:64","statements":[{"nativeSrc":"15189:16:64","nodeType":"YulVariableDeclaration","src":"15189:16:64","value":{"kind":"number","nativeSrc":"15203:2:64","nodeType":"YulLiteral","src":"15203:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15193:6:64","nodeType":"YulTypedName","src":"15193:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15230:5:64","nodeType":"YulIdentifier","src":"15230:5:64"},{"kind":"number","nativeSrc":"15237:4:64","nodeType":"YulLiteral","src":"15237:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15226:3:64","nodeType":"YulIdentifier","src":"15226:3:64"},"nativeSrc":"15226:16:64","nodeType":"YulFunctionCall","src":"15226:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15283:9:64","nodeType":"YulIdentifier","src":"15283:9:64"},{"name":"offset","nativeSrc":"15294:6:64","nodeType":"YulIdentifier","src":"15294:6:64"}],"functionName":{"name":"add","nativeSrc":"15279:3:64","nodeType":"YulIdentifier","src":"15279:3:64"},"nativeSrc":"15279:22:64","nodeType":"YulFunctionCall","src":"15279:22:64"},{"name":"end","nativeSrc":"15303:3:64","nodeType":"YulIdentifier","src":"15303:3:64"}],"functionName":{"name":"abi_decode_t_enum$_Strategy_$16442","nativeSrc":"15244:34:64","nodeType":"YulIdentifier","src":"15244:34:64"},"nativeSrc":"15244:63:64","nodeType":"YulFunctionCall","src":"15244:63:64"}],"functionName":{"name":"mstore","nativeSrc":"15219:6:64","nodeType":"YulIdentifier","src":"15219:6:64"},"nativeSrc":"15219:89:64","nodeType":"YulFunctionCall","src":"15219:89:64"},"nativeSrc":"15219:89:64","nodeType":"YulExpressionStatement","src":"15219:89:64"}]},{"nativeSrc":"15329:154:64","nodeType":"YulBlock","src":"15329:154:64","statements":[{"nativeSrc":"15367:16:64","nodeType":"YulVariableDeclaration","src":"15367:16:64","value":{"kind":"number","nativeSrc":"15381:2:64","nodeType":"YulLiteral","src":"15381:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"15371:6:64","nodeType":"YulTypedName","src":"15371:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15408:5:64","nodeType":"YulIdentifier","src":"15408:5:64"},{"kind":"number","nativeSrc":"15415:4:64","nodeType":"YulLiteral","src":"15415:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"15404:3:64","nodeType":"YulIdentifier","src":"15404:3:64"},"nativeSrc":"15404:16:64","nodeType":"YulFunctionCall","src":"15404:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15447:9:64","nodeType":"YulIdentifier","src":"15447:9:64"},{"name":"offset","nativeSrc":"15458:6:64","nodeType":"YulIdentifier","src":"15458:6:64"}],"functionName":{"name":"add","nativeSrc":"15443:3:64","nodeType":"YulIdentifier","src":"15443:3:64"},"nativeSrc":"15443:22:64","nodeType":"YulFunctionCall","src":"15443:22:64"},{"name":"end","nativeSrc":"15467:3:64","nodeType":"YulIdentifier","src":"15467:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"15422:20:64","nodeType":"YulIdentifier","src":"15422:20:64"},"nativeSrc":"15422:49:64","nodeType":"YulFunctionCall","src":"15422:49:64"}],"functionName":{"name":"mstore","nativeSrc":"15397:6:64","nodeType":"YulIdentifier","src":"15397:6:64"},"nativeSrc":"15397:75:64","nodeType":"YulFunctionCall","src":"15397:75:64"},"nativeSrc":"15397:75:64","nodeType":"YulExpressionStatement","src":"15397:75:64"}]},{"nativeSrc":"15493:152:64","nodeType":"YulBlock","src":"15493:152:64","statements":[{"nativeSrc":"15529:16:64","nodeType":"YulVariableDeclaration","src":"15529:16:64","value":{"kind":"number","nativeSrc":"15543:2:64","nodeType":"YulLiteral","src":"15543:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"15533:6:64","nodeType":"YulTypedName","src":"15533:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15570:5:64","nodeType":"YulIdentifier","src":"15570:5:64"},{"kind":"number","nativeSrc":"15577:4:64","nodeType":"YulLiteral","src":"15577:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"15566:3:64","nodeType":"YulIdentifier","src":"15566:3:64"},"nativeSrc":"15566:16:64","nodeType":"YulFunctionCall","src":"15566:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15609:9:64","nodeType":"YulIdentifier","src":"15609:9:64"},{"name":"offset","nativeSrc":"15620:6:64","nodeType":"YulIdentifier","src":"15620:6:64"}],"functionName":{"name":"add","nativeSrc":"15605:3:64","nodeType":"YulIdentifier","src":"15605:3:64"},"nativeSrc":"15605:22:64","nodeType":"YulFunctionCall","src":"15605:22:64"},{"name":"end","nativeSrc":"15629:3:64","nodeType":"YulIdentifier","src":"15629:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"15584:20:64","nodeType":"YulIdentifier","src":"15584:20:64"},"nativeSrc":"15584:49:64","nodeType":"YulFunctionCall","src":"15584:49:64"}],"functionName":{"name":"mstore","nativeSrc":"15559:6:64","nodeType":"YulIdentifier","src":"15559:6:64"},"nativeSrc":"15559:75:64","nodeType":"YulFunctionCall","src":"15559:75:64"},"nativeSrc":"15559:75:64","nodeType":"YulExpressionStatement","src":"15559:75:64"}]},{"nativeSrc":"15655:326:64","nodeType":"YulBlock","src":"15655:326:64","statements":[{"nativeSrc":"15695:47:64","nodeType":"YulVariableDeclaration","src":"15695:47:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15726:9:64","nodeType":"YulIdentifier","src":"15726:9:64"},{"kind":"number","nativeSrc":"15737:3:64","nodeType":"YulLiteral","src":"15737:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"15722:3:64","nodeType":"YulIdentifier","src":"15722:3:64"},"nativeSrc":"15722:19:64","nodeType":"YulFunctionCall","src":"15722:19:64"}],"functionName":{"name":"calldataload","nativeSrc":"15709:12:64","nodeType":"YulIdentifier","src":"15709:12:64"},"nativeSrc":"15709:33:64","nodeType":"YulFunctionCall","src":"15709:33:64"},"variables":[{"name":"offset","nativeSrc":"15699:6:64","nodeType":"YulTypedName","src":"15699:6:64","type":""}]},{"body":{"nativeSrc":"15789:83:64","nodeType":"YulBlock","src":"15789:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"15791:77:64","nodeType":"YulIdentifier","src":"15791:77:64"},"nativeSrc":"15791:79:64","nodeType":"YulFunctionCall","src":"15791:79:64"},"nativeSrc":"15791:79:64","nodeType":"YulExpressionStatement","src":"15791:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15761:6:64","nodeType":"YulIdentifier","src":"15761:6:64"},{"kind":"number","nativeSrc":"15769:18:64","nodeType":"YulLiteral","src":"15769:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15758:2:64","nodeType":"YulIdentifier","src":"15758:2:64"},"nativeSrc":"15758:30:64","nodeType":"YulFunctionCall","src":"15758:30:64"},"nativeSrc":"15755:117:64","nodeType":"YulIf","src":"15755:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15897:5:64","nodeType":"YulIdentifier","src":"15897:5:64"},{"kind":"number","nativeSrc":"15904:4:64","nodeType":"YulLiteral","src":"15904:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15893:3:64","nodeType":"YulIdentifier","src":"15893:3:64"},"nativeSrc":"15893:16:64","nodeType":"YulFunctionCall","src":"15893:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15945:9:64","nodeType":"YulIdentifier","src":"15945:9:64"},{"name":"offset","nativeSrc":"15956:6:64","nodeType":"YulIdentifier","src":"15956:6:64"}],"functionName":{"name":"add","nativeSrc":"15941:3:64","nodeType":"YulIdentifier","src":"15941:3:64"},"nativeSrc":"15941:22:64","nodeType":"YulFunctionCall","src":"15941:22:64"},{"name":"end","nativeSrc":"15965:3:64","nodeType":"YulIdentifier","src":"15965:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"15911:29:64","nodeType":"YulIdentifier","src":"15911:29:64"},"nativeSrc":"15911:58:64","nodeType":"YulFunctionCall","src":"15911:58:64"}],"functionName":{"name":"mstore","nativeSrc":"15886:6:64","nodeType":"YulIdentifier","src":"15886:6:64"},"nativeSrc":"15886:84:64","nodeType":"YulFunctionCall","src":"15886:84:64"},"nativeSrc":"15886:84:64","nodeType":"YulExpressionStatement","src":"15886:84:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$17680_memory_ptr","nativeSrc":"14711:1277:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14771:9:64","nodeType":"YulTypedName","src":"14771:9:64","type":""},{"name":"end","nativeSrc":"14782:3:64","nodeType":"YulTypedName","src":"14782:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14790:5:64","nodeType":"YulTypedName","src":"14790:5:64","type":""}],"src":"14711:1277:64"},{"body":{"nativeSrc":"16090:453:64","nodeType":"YulBlock","src":"16090:453:64","statements":[{"body":{"nativeSrc":"16136:83:64","nodeType":"YulBlock","src":"16136:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16138:77:64","nodeType":"YulIdentifier","src":"16138:77:64"},"nativeSrc":"16138:79:64","nodeType":"YulFunctionCall","src":"16138:79:64"},"nativeSrc":"16138:79:64","nodeType":"YulExpressionStatement","src":"16138:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16111:7:64","nodeType":"YulIdentifier","src":"16111:7:64"},{"name":"headStart","nativeSrc":"16120:9:64","nodeType":"YulIdentifier","src":"16120:9:64"}],"functionName":{"name":"sub","nativeSrc":"16107:3:64","nodeType":"YulIdentifier","src":"16107:3:64"},"nativeSrc":"16107:23:64","nodeType":"YulFunctionCall","src":"16107:23:64"},{"kind":"number","nativeSrc":"16132:2:64","nodeType":"YulLiteral","src":"16132:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"16103:3:64","nodeType":"YulIdentifier","src":"16103:3:64"},"nativeSrc":"16103:32:64","nodeType":"YulFunctionCall","src":"16103:32:64"},"nativeSrc":"16100:119:64","nodeType":"YulIf","src":"16100:119:64"},{"nativeSrc":"16229:307:64","nodeType":"YulBlock","src":"16229:307:64","statements":[{"nativeSrc":"16244:45:64","nodeType":"YulVariableDeclaration","src":"16244:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16275:9:64","nodeType":"YulIdentifier","src":"16275:9:64"},{"kind":"number","nativeSrc":"16286:1:64","nodeType":"YulLiteral","src":"16286:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16271:3:64","nodeType":"YulIdentifier","src":"16271:3:64"},"nativeSrc":"16271:17:64","nodeType":"YulFunctionCall","src":"16271:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"16258:12:64","nodeType":"YulIdentifier","src":"16258:12:64"},"nativeSrc":"16258:31:64","nodeType":"YulFunctionCall","src":"16258:31:64"},"variables":[{"name":"offset","nativeSrc":"16248:6:64","nodeType":"YulTypedName","src":"16248:6:64","type":""}]},{"body":{"nativeSrc":"16336:83:64","nodeType":"YulBlock","src":"16336:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"16338:77:64","nodeType":"YulIdentifier","src":"16338:77:64"},"nativeSrc":"16338:79:64","nodeType":"YulFunctionCall","src":"16338:79:64"},"nativeSrc":"16338:79:64","nodeType":"YulExpressionStatement","src":"16338:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"16308:6:64","nodeType":"YulIdentifier","src":"16308:6:64"},{"kind":"number","nativeSrc":"16316:18:64","nodeType":"YulLiteral","src":"16316:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"16305:2:64","nodeType":"YulIdentifier","src":"16305:2:64"},"nativeSrc":"16305:30:64","nodeType":"YulFunctionCall","src":"16305:30:64"},"nativeSrc":"16302:117:64","nodeType":"YulIf","src":"16302:117:64"},{"nativeSrc":"16433:93:64","nodeType":"YulAssignment","src":"16433:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16498:9:64","nodeType":"YulIdentifier","src":"16498:9:64"},{"name":"offset","nativeSrc":"16509:6:64","nodeType":"YulIdentifier","src":"16509:6:64"}],"functionName":{"name":"add","nativeSrc":"16494:3:64","nodeType":"YulIdentifier","src":"16494:3:64"},"nativeSrc":"16494:22:64","nodeType":"YulFunctionCall","src":"16494:22:64"},{"name":"dataEnd","nativeSrc":"16518:7:64","nodeType":"YulIdentifier","src":"16518:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$17680_memory_ptr","nativeSrc":"16443:50:64","nodeType":"YulIdentifier","src":"16443:50:64"},"nativeSrc":"16443:83:64","nodeType":"YulFunctionCall","src":"16443:83:64"},"variableNames":[{"name":"value0","nativeSrc":"16433:6:64","nodeType":"YulIdentifier","src":"16433:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$17680_memory_ptr","nativeSrc":"15994:549:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16060:9:64","nodeType":"YulTypedName","src":"16060:9:64","type":""},{"name":"dataEnd","nativeSrc":"16071:7:64","nodeType":"YulTypedName","src":"16071:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16083:6:64","nodeType":"YulTypedName","src":"16083:6:64","type":""}],"src":"15994:549:64"},{"body":{"nativeSrc":"16675:206:64","nodeType":"YulBlock","src":"16675:206:64","statements":[{"nativeSrc":"16685:26:64","nodeType":"YulAssignment","src":"16685:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"16697:9:64","nodeType":"YulIdentifier","src":"16697:9:64"},{"kind":"number","nativeSrc":"16708:2:64","nodeType":"YulLiteral","src":"16708:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"16693:3:64","nodeType":"YulIdentifier","src":"16693:3:64"},"nativeSrc":"16693:18:64","nodeType":"YulFunctionCall","src":"16693:18:64"},"variableNames":[{"name":"tail","nativeSrc":"16685:4:64","nodeType":"YulIdentifier","src":"16685:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"16765:6:64","nodeType":"YulIdentifier","src":"16765:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"16778:9:64","nodeType":"YulIdentifier","src":"16778:9:64"},{"kind":"number","nativeSrc":"16789:1:64","nodeType":"YulLiteral","src":"16789:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16774:3:64","nodeType":"YulIdentifier","src":"16774:3:64"},"nativeSrc":"16774:17:64","nodeType":"YulFunctionCall","src":"16774:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"16721:43:64","nodeType":"YulIdentifier","src":"16721:43:64"},"nativeSrc":"16721:71:64","nodeType":"YulFunctionCall","src":"16721:71:64"},"nativeSrc":"16721:71:64","nodeType":"YulExpressionStatement","src":"16721:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"16846:6:64","nodeType":"YulIdentifier","src":"16846:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"16859:9:64","nodeType":"YulIdentifier","src":"16859:9:64"},{"kind":"number","nativeSrc":"16870:2:64","nodeType":"YulLiteral","src":"16870:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16855:3:64","nodeType":"YulIdentifier","src":"16855:3:64"},"nativeSrc":"16855:18:64","nodeType":"YulFunctionCall","src":"16855:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"16802:43:64","nodeType":"YulIdentifier","src":"16802:43:64"},"nativeSrc":"16802:72:64","nodeType":"YulFunctionCall","src":"16802:72:64"},"nativeSrc":"16802:72:64","nodeType":"YulExpressionStatement","src":"16802:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"16549:332:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16639:9:64","nodeType":"YulTypedName","src":"16639:9:64","type":""},{"name":"value1","nativeSrc":"16651:6:64","nodeType":"YulTypedName","src":"16651:6:64","type":""},{"name":"value0","nativeSrc":"16659:6:64","nodeType":"YulTypedName","src":"16659:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16670:4:64","nodeType":"YulTypedName","src":"16670:4:64","type":""}],"src":"16549:332:64"},{"body":{"nativeSrc":"16950:80:64","nodeType":"YulBlock","src":"16950:80:64","statements":[{"nativeSrc":"16960:22:64","nodeType":"YulAssignment","src":"16960:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"16975:6:64","nodeType":"YulIdentifier","src":"16975:6:64"}],"functionName":{"name":"mload","nativeSrc":"16969:5:64","nodeType":"YulIdentifier","src":"16969:5:64"},"nativeSrc":"16969:13:64","nodeType":"YulFunctionCall","src":"16969:13:64"},"variableNames":[{"name":"value","nativeSrc":"16960:5:64","nodeType":"YulIdentifier","src":"16960:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"17018:5:64","nodeType":"YulIdentifier","src":"17018:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"16991:26:64","nodeType":"YulIdentifier","src":"16991:26:64"},"nativeSrc":"16991:33:64","nodeType":"YulFunctionCall","src":"16991:33:64"},"nativeSrc":"16991:33:64","nodeType":"YulExpressionStatement","src":"16991:33:64"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"16887:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"16928:6:64","nodeType":"YulTypedName","src":"16928:6:64","type":""},{"name":"end","nativeSrc":"16936:3:64","nodeType":"YulTypedName","src":"16936:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"16944:5:64","nodeType":"YulTypedName","src":"16944:5:64","type":""}],"src":"16887:143:64"},{"body":{"nativeSrc":"17113:274:64","nodeType":"YulBlock","src":"17113:274:64","statements":[{"body":{"nativeSrc":"17159:83:64","nodeType":"YulBlock","src":"17159:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"17161:77:64","nodeType":"YulIdentifier","src":"17161:77:64"},"nativeSrc":"17161:79:64","nodeType":"YulFunctionCall","src":"17161:79:64"},"nativeSrc":"17161:79:64","nodeType":"YulExpressionStatement","src":"17161:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"17134:7:64","nodeType":"YulIdentifier","src":"17134:7:64"},{"name":"headStart","nativeSrc":"17143:9:64","nodeType":"YulIdentifier","src":"17143:9:64"}],"functionName":{"name":"sub","nativeSrc":"17130:3:64","nodeType":"YulIdentifier","src":"17130:3:64"},"nativeSrc":"17130:23:64","nodeType":"YulFunctionCall","src":"17130:23:64"},{"kind":"number","nativeSrc":"17155:2:64","nodeType":"YulLiteral","src":"17155:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"17126:3:64","nodeType":"YulIdentifier","src":"17126:3:64"},"nativeSrc":"17126:32:64","nodeType":"YulFunctionCall","src":"17126:32:64"},"nativeSrc":"17123:119:64","nodeType":"YulIf","src":"17123:119:64"},{"nativeSrc":"17252:128:64","nodeType":"YulBlock","src":"17252:128:64","statements":[{"nativeSrc":"17267:15:64","nodeType":"YulVariableDeclaration","src":"17267:15:64","value":{"kind":"number","nativeSrc":"17281:1:64","nodeType":"YulLiteral","src":"17281:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"17271:6:64","nodeType":"YulTypedName","src":"17271:6:64","type":""}]},{"nativeSrc":"17296:74:64","nodeType":"YulAssignment","src":"17296:74:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17342:9:64","nodeType":"YulIdentifier","src":"17342:9:64"},{"name":"offset","nativeSrc":"17353:6:64","nodeType":"YulIdentifier","src":"17353:6:64"}],"functionName":{"name":"add","nativeSrc":"17338:3:64","nodeType":"YulIdentifier","src":"17338:3:64"},"nativeSrc":"17338:22:64","nodeType":"YulFunctionCall","src":"17338:22:64"},{"name":"dataEnd","nativeSrc":"17362:7:64","nodeType":"YulIdentifier","src":"17362:7:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"17306:31:64","nodeType":"YulIdentifier","src":"17306:31:64"},"nativeSrc":"17306:64:64","nodeType":"YulFunctionCall","src":"17306:64:64"},"variableNames":[{"name":"value0","nativeSrc":"17296:6:64","nodeType":"YulIdentifier","src":"17296:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"17036:351:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17083:9:64","nodeType":"YulTypedName","src":"17083:9:64","type":""},{"name":"dataEnd","nativeSrc":"17094:7:64","nodeType":"YulTypedName","src":"17094:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"17106:6:64","nodeType":"YulTypedName","src":"17106:6:64","type":""}],"src":"17036:351:64"},{"body":{"nativeSrc":"17547:288:64","nodeType":"YulBlock","src":"17547:288:64","statements":[{"nativeSrc":"17557:26:64","nodeType":"YulAssignment","src":"17557:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"17569:9:64","nodeType":"YulIdentifier","src":"17569:9:64"},{"kind":"number","nativeSrc":"17580:2:64","nodeType":"YulLiteral","src":"17580:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"17565:3:64","nodeType":"YulIdentifier","src":"17565:3:64"},"nativeSrc":"17565:18:64","nodeType":"YulFunctionCall","src":"17565:18:64"},"variableNames":[{"name":"tail","nativeSrc":"17557:4:64","nodeType":"YulIdentifier","src":"17557:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"17637:6:64","nodeType":"YulIdentifier","src":"17637:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"17650:9:64","nodeType":"YulIdentifier","src":"17650:9:64"},{"kind":"number","nativeSrc":"17661:1:64","nodeType":"YulLiteral","src":"17661:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"17646:3:64","nodeType":"YulIdentifier","src":"17646:3:64"},"nativeSrc":"17646:17:64","nodeType":"YulFunctionCall","src":"17646:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17593:43:64","nodeType":"YulIdentifier","src":"17593:43:64"},"nativeSrc":"17593:71:64","nodeType":"YulFunctionCall","src":"17593:71:64"},"nativeSrc":"17593:71:64","nodeType":"YulExpressionStatement","src":"17593:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"17718:6:64","nodeType":"YulIdentifier","src":"17718:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"17731:9:64","nodeType":"YulIdentifier","src":"17731:9:64"},{"kind":"number","nativeSrc":"17742:2:64","nodeType":"YulLiteral","src":"17742:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17727:3:64","nodeType":"YulIdentifier","src":"17727:3:64"},"nativeSrc":"17727:18:64","nodeType":"YulFunctionCall","src":"17727:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"17674:43:64","nodeType":"YulIdentifier","src":"17674:43:64"},"nativeSrc":"17674:72:64","nodeType":"YulFunctionCall","src":"17674:72:64"},"nativeSrc":"17674:72:64","nodeType":"YulExpressionStatement","src":"17674:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"17800:6:64","nodeType":"YulIdentifier","src":"17800:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"17813:9:64","nodeType":"YulIdentifier","src":"17813:9:64"},{"kind":"number","nativeSrc":"17824:2:64","nodeType":"YulLiteral","src":"17824:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"17809:3:64","nodeType":"YulIdentifier","src":"17809:3:64"},"nativeSrc":"17809:18:64","nodeType":"YulFunctionCall","src":"17809:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"17756:43:64","nodeType":"YulIdentifier","src":"17756:43:64"},"nativeSrc":"17756:72:64","nodeType":"YulFunctionCall","src":"17756:72:64"},"nativeSrc":"17756:72:64","nodeType":"YulExpressionStatement","src":"17756:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"17393:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17503:9:64","nodeType":"YulTypedName","src":"17503:9:64","type":""},{"name":"value2","nativeSrc":"17515:6:64","nodeType":"YulTypedName","src":"17515:6:64","type":""},{"name":"value1","nativeSrc":"17523:6:64","nodeType":"YulTypedName","src":"17523:6:64","type":""},{"name":"value0","nativeSrc":"17531:6:64","nodeType":"YulTypedName","src":"17531:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"17542:4:64","nodeType":"YulTypedName","src":"17542:4:64","type":""}],"src":"17393:442:64"},{"body":{"nativeSrc":"17869:152:64","nodeType":"YulBlock","src":"17869:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17886:1:64","nodeType":"YulLiteral","src":"17886:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17889:77:64","nodeType":"YulLiteral","src":"17889:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17879:6:64","nodeType":"YulIdentifier","src":"17879:6:64"},"nativeSrc":"17879:88:64","nodeType":"YulFunctionCall","src":"17879:88:64"},"nativeSrc":"17879:88:64","nodeType":"YulExpressionStatement","src":"17879:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17983:1:64","nodeType":"YulLiteral","src":"17983:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"17986:4:64","nodeType":"YulLiteral","src":"17986:4:64","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"17976:6:64","nodeType":"YulIdentifier","src":"17976:6:64"},"nativeSrc":"17976:15:64","nodeType":"YulFunctionCall","src":"17976:15:64"},"nativeSrc":"17976:15:64","nodeType":"YulExpressionStatement","src":"17976:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18007:1:64","nodeType":"YulLiteral","src":"18007:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18010:4:64","nodeType":"YulLiteral","src":"18010:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18000:6:64","nodeType":"YulIdentifier","src":"18000:6:64"},"nativeSrc":"18000:15:64","nodeType":"YulFunctionCall","src":"18000:15:64"},"nativeSrc":"18000:15:64","nodeType":"YulExpressionStatement","src":"18000:15:64"}]},"name":"panic_error_0x22","nativeSrc":"17841:180:64","nodeType":"YulFunctionDefinition","src":"17841:180:64"},{"body":{"nativeSrc":"18078:269:64","nodeType":"YulBlock","src":"18078:269:64","statements":[{"nativeSrc":"18088:22:64","nodeType":"YulAssignment","src":"18088:22:64","value":{"arguments":[{"name":"data","nativeSrc":"18102:4:64","nodeType":"YulIdentifier","src":"18102:4:64"},{"kind":"number","nativeSrc":"18108:1:64","nodeType":"YulLiteral","src":"18108:1:64","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"18098:3:64","nodeType":"YulIdentifier","src":"18098:3:64"},"nativeSrc":"18098:12:64","nodeType":"YulFunctionCall","src":"18098:12:64"},"variableNames":[{"name":"length","nativeSrc":"18088:6:64","nodeType":"YulIdentifier","src":"18088:6:64"}]},{"nativeSrc":"18119:38:64","nodeType":"YulVariableDeclaration","src":"18119:38:64","value":{"arguments":[{"name":"data","nativeSrc":"18149:4:64","nodeType":"YulIdentifier","src":"18149:4:64"},{"kind":"number","nativeSrc":"18155:1:64","nodeType":"YulLiteral","src":"18155:1:64","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"18145:3:64","nodeType":"YulIdentifier","src":"18145:3:64"},"nativeSrc":"18145:12:64","nodeType":"YulFunctionCall","src":"18145:12:64"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"18123:18:64","nodeType":"YulTypedName","src":"18123:18:64","type":""}]},{"body":{"nativeSrc":"18196:51:64","nodeType":"YulBlock","src":"18196:51:64","statements":[{"nativeSrc":"18210:27:64","nodeType":"YulAssignment","src":"18210:27:64","value":{"arguments":[{"name":"length","nativeSrc":"18224:6:64","nodeType":"YulIdentifier","src":"18224:6:64"},{"kind":"number","nativeSrc":"18232:4:64","nodeType":"YulLiteral","src":"18232:4:64","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"18220:3:64","nodeType":"YulIdentifier","src":"18220:3:64"},"nativeSrc":"18220:17:64","nodeType":"YulFunctionCall","src":"18220:17:64"},"variableNames":[{"name":"length","nativeSrc":"18210:6:64","nodeType":"YulIdentifier","src":"18210:6:64"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"18176:18:64","nodeType":"YulIdentifier","src":"18176:18:64"}],"functionName":{"name":"iszero","nativeSrc":"18169:6:64","nodeType":"YulIdentifier","src":"18169:6:64"},"nativeSrc":"18169:26:64","nodeType":"YulFunctionCall","src":"18169:26:64"},"nativeSrc":"18166:81:64","nodeType":"YulIf","src":"18166:81:64"},{"body":{"nativeSrc":"18299:42:64","nodeType":"YulBlock","src":"18299:42:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"18313:16:64","nodeType":"YulIdentifier","src":"18313:16:64"},"nativeSrc":"18313:18:64","nodeType":"YulFunctionCall","src":"18313:18:64"},"nativeSrc":"18313:18:64","nodeType":"YulExpressionStatement","src":"18313:18:64"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"18263:18:64","nodeType":"YulIdentifier","src":"18263:18:64"},{"arguments":[{"name":"length","nativeSrc":"18286:6:64","nodeType":"YulIdentifier","src":"18286:6:64"},{"kind":"number","nativeSrc":"18294:2:64","nodeType":"YulLiteral","src":"18294:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"18283:2:64","nodeType":"YulIdentifier","src":"18283:2:64"},"nativeSrc":"18283:14:64","nodeType":"YulFunctionCall","src":"18283:14:64"}],"functionName":{"name":"eq","nativeSrc":"18260:2:64","nodeType":"YulIdentifier","src":"18260:2:64"},"nativeSrc":"18260:38:64","nodeType":"YulFunctionCall","src":"18260:38:64"},"nativeSrc":"18257:84:64","nodeType":"YulIf","src":"18257:84:64"}]},"name":"extract_byte_array_length","nativeSrc":"18027:320:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"18062:4:64","nodeType":"YulTypedName","src":"18062:4:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"18071:6:64","nodeType":"YulTypedName","src":"18071:6:64","type":""}],"src":"18027:320:64"},{"body":{"nativeSrc":"18406:87:64","nodeType":"YulBlock","src":"18406:87:64","statements":[{"nativeSrc":"18416:11:64","nodeType":"YulAssignment","src":"18416:11:64","value":{"name":"ptr","nativeSrc":"18424:3:64","nodeType":"YulIdentifier","src":"18424:3:64"},"variableNames":[{"name":"data","nativeSrc":"18416:4:64","nodeType":"YulIdentifier","src":"18416:4:64"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18444:1:64","nodeType":"YulLiteral","src":"18444:1:64","type":"","value":"0"},{"name":"ptr","nativeSrc":"18447:3:64","nodeType":"YulIdentifier","src":"18447:3:64"}],"functionName":{"name":"mstore","nativeSrc":"18437:6:64","nodeType":"YulIdentifier","src":"18437:6:64"},"nativeSrc":"18437:14:64","nodeType":"YulFunctionCall","src":"18437:14:64"},"nativeSrc":"18437:14:64","nodeType":"YulExpressionStatement","src":"18437:14:64"},{"nativeSrc":"18460:26:64","nodeType":"YulAssignment","src":"18460:26:64","value":{"arguments":[{"kind":"number","nativeSrc":"18478:1:64","nodeType":"YulLiteral","src":"18478:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18481:4:64","nodeType":"YulLiteral","src":"18481:4:64","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"18468:9:64","nodeType":"YulIdentifier","src":"18468:9:64"},"nativeSrc":"18468:18:64","nodeType":"YulFunctionCall","src":"18468:18:64"},"variableNames":[{"name":"data","nativeSrc":"18460:4:64","nodeType":"YulIdentifier","src":"18460:4:64"}]}]},"name":"array_dataslot_t_bytes_storage","nativeSrc":"18353:140:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"18393:3:64","nodeType":"YulTypedName","src":"18393:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"18401:4:64","nodeType":"YulTypedName","src":"18401:4:64","type":""}],"src":"18353:140:64"},{"body":{"nativeSrc":"18543:49:64","nodeType":"YulBlock","src":"18543:49:64","statements":[{"nativeSrc":"18553:33:64","nodeType":"YulAssignment","src":"18553:33:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18571:5:64","nodeType":"YulIdentifier","src":"18571:5:64"},{"kind":"number","nativeSrc":"18578:2:64","nodeType":"YulLiteral","src":"18578:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"18567:3:64","nodeType":"YulIdentifier","src":"18567:3:64"},"nativeSrc":"18567:14:64","nodeType":"YulFunctionCall","src":"18567:14:64"},{"kind":"number","nativeSrc":"18583:2:64","nodeType":"YulLiteral","src":"18583:2:64","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"18563:3:64","nodeType":"YulIdentifier","src":"18563:3:64"},"nativeSrc":"18563:23:64","nodeType":"YulFunctionCall","src":"18563:23:64"},"variableNames":[{"name":"result","nativeSrc":"18553:6:64","nodeType":"YulIdentifier","src":"18553:6:64"}]}]},"name":"divide_by_32_ceil","nativeSrc":"18499:93:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18526:5:64","nodeType":"YulTypedName","src":"18526:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"18536:6:64","nodeType":"YulTypedName","src":"18536:6:64","type":""}],"src":"18499:93:64"},{"body":{"nativeSrc":"18651:54:64","nodeType":"YulBlock","src":"18651:54:64","statements":[{"nativeSrc":"18661:37:64","nodeType":"YulAssignment","src":"18661:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"18686:4:64","nodeType":"YulIdentifier","src":"18686:4:64"},{"name":"value","nativeSrc":"18692:5:64","nodeType":"YulIdentifier","src":"18692:5:64"}],"functionName":{"name":"shl","nativeSrc":"18682:3:64","nodeType":"YulIdentifier","src":"18682:3:64"},"nativeSrc":"18682:16:64","nodeType":"YulFunctionCall","src":"18682:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"18661:8:64","nodeType":"YulIdentifier","src":"18661:8:64"}]}]},"name":"shift_left_dynamic","nativeSrc":"18598:107:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"18626:4:64","nodeType":"YulTypedName","src":"18626:4:64","type":""},{"name":"value","nativeSrc":"18632:5:64","nodeType":"YulTypedName","src":"18632:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"18642:8:64","nodeType":"YulTypedName","src":"18642:8:64","type":""}],"src":"18598:107:64"},{"body":{"nativeSrc":"18787:317:64","nodeType":"YulBlock","src":"18787:317:64","statements":[{"nativeSrc":"18797:35:64","nodeType":"YulVariableDeclaration","src":"18797:35:64","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"18818:10:64","nodeType":"YulIdentifier","src":"18818:10:64"},{"kind":"number","nativeSrc":"18830:1:64","nodeType":"YulLiteral","src":"18830:1:64","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"18814:3:64","nodeType":"YulIdentifier","src":"18814:3:64"},"nativeSrc":"18814:18:64","nodeType":"YulFunctionCall","src":"18814:18:64"},"variables":[{"name":"shiftBits","nativeSrc":"18801:9:64","nodeType":"YulTypedName","src":"18801:9:64","type":""}]},{"nativeSrc":"18841:109:64","nodeType":"YulVariableDeclaration","src":"18841:109:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"18872:9:64","nodeType":"YulIdentifier","src":"18872:9:64"},{"kind":"number","nativeSrc":"18883:66:64","nodeType":"YulLiteral","src":"18883:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"18853:18:64","nodeType":"YulIdentifier","src":"18853:18:64"},"nativeSrc":"18853:97:64","nodeType":"YulFunctionCall","src":"18853:97:64"},"variables":[{"name":"mask","nativeSrc":"18845:4:64","nodeType":"YulTypedName","src":"18845:4:64","type":""}]},{"nativeSrc":"18959:51:64","nodeType":"YulAssignment","src":"18959:51:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"18990:9:64","nodeType":"YulIdentifier","src":"18990:9:64"},{"name":"toInsert","nativeSrc":"19001:8:64","nodeType":"YulIdentifier","src":"19001:8:64"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"18971:18:64","nodeType":"YulIdentifier","src":"18971:18:64"},"nativeSrc":"18971:39:64","nodeType":"YulFunctionCall","src":"18971:39:64"},"variableNames":[{"name":"toInsert","nativeSrc":"18959:8:64","nodeType":"YulIdentifier","src":"18959:8:64"}]},{"nativeSrc":"19019:30:64","nodeType":"YulAssignment","src":"19019:30:64","value":{"arguments":[{"name":"value","nativeSrc":"19032:5:64","nodeType":"YulIdentifier","src":"19032:5:64"},{"arguments":[{"name":"mask","nativeSrc":"19043:4:64","nodeType":"YulIdentifier","src":"19043:4:64"}],"functionName":{"name":"not","nativeSrc":"19039:3:64","nodeType":"YulIdentifier","src":"19039:3:64"},"nativeSrc":"19039:9:64","nodeType":"YulFunctionCall","src":"19039:9:64"}],"functionName":{"name":"and","nativeSrc":"19028:3:64","nodeType":"YulIdentifier","src":"19028:3:64"},"nativeSrc":"19028:21:64","nodeType":"YulFunctionCall","src":"19028:21:64"},"variableNames":[{"name":"value","nativeSrc":"19019:5:64","nodeType":"YulIdentifier","src":"19019:5:64"}]},{"nativeSrc":"19058:40:64","nodeType":"YulAssignment","src":"19058:40:64","value":{"arguments":[{"name":"value","nativeSrc":"19071:5:64","nodeType":"YulIdentifier","src":"19071:5:64"},{"arguments":[{"name":"toInsert","nativeSrc":"19082:8:64","nodeType":"YulIdentifier","src":"19082:8:64"},{"name":"mask","nativeSrc":"19092:4:64","nodeType":"YulIdentifier","src":"19092:4:64"}],"functionName":{"name":"and","nativeSrc":"19078:3:64","nodeType":"YulIdentifier","src":"19078:3:64"},"nativeSrc":"19078:19:64","nodeType":"YulFunctionCall","src":"19078:19:64"}],"functionName":{"name":"or","nativeSrc":"19068:2:64","nodeType":"YulIdentifier","src":"19068:2:64"},"nativeSrc":"19068:30:64","nodeType":"YulFunctionCall","src":"19068:30:64"},"variableNames":[{"name":"result","nativeSrc":"19058:6:64","nodeType":"YulIdentifier","src":"19058:6:64"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"18711:393:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18748:5:64","nodeType":"YulTypedName","src":"18748:5:64","type":""},{"name":"shiftBytes","nativeSrc":"18755:10:64","nodeType":"YulTypedName","src":"18755:10:64","type":""},{"name":"toInsert","nativeSrc":"18767:8:64","nodeType":"YulTypedName","src":"18767:8:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"18780:6:64","nodeType":"YulTypedName","src":"18780:6:64","type":""}],"src":"18711:393:64"},{"body":{"nativeSrc":"19170:82:64","nodeType":"YulBlock","src":"19170:82:64","statements":[{"nativeSrc":"19180:66:64","nodeType":"YulAssignment","src":"19180:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19238:5:64","nodeType":"YulIdentifier","src":"19238:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19220:17:64","nodeType":"YulIdentifier","src":"19220:17:64"},"nativeSrc":"19220:24:64","nodeType":"YulFunctionCall","src":"19220:24:64"}],"functionName":{"name":"identity","nativeSrc":"19211:8:64","nodeType":"YulIdentifier","src":"19211:8:64"},"nativeSrc":"19211:34:64","nodeType":"YulFunctionCall","src":"19211:34:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19193:17:64","nodeType":"YulIdentifier","src":"19193:17:64"},"nativeSrc":"19193:53:64","nodeType":"YulFunctionCall","src":"19193:53:64"},"variableNames":[{"name":"converted","nativeSrc":"19180:9:64","nodeType":"YulIdentifier","src":"19180:9:64"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"19110:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19150:5:64","nodeType":"YulTypedName","src":"19150:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"19160:9:64","nodeType":"YulTypedName","src":"19160:9:64","type":""}],"src":"19110:142:64"},{"body":{"nativeSrc":"19305:28:64","nodeType":"YulBlock","src":"19305:28:64","statements":[{"nativeSrc":"19315:12:64","nodeType":"YulAssignment","src":"19315:12:64","value":{"name":"value","nativeSrc":"19322:5:64","nodeType":"YulIdentifier","src":"19322:5:64"},"variableNames":[{"name":"ret","nativeSrc":"19315:3:64","nodeType":"YulIdentifier","src":"19315:3:64"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"19258:75:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19291:5:64","nodeType":"YulTypedName","src":"19291:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"19301:3:64","nodeType":"YulTypedName","src":"19301:3:64","type":""}],"src":"19258:75:64"},{"body":{"nativeSrc":"19415:193:64","nodeType":"YulBlock","src":"19415:193:64","statements":[{"nativeSrc":"19425:63:64","nodeType":"YulVariableDeclaration","src":"19425:63:64","value":{"arguments":[{"name":"value_0","nativeSrc":"19480:7:64","nodeType":"YulIdentifier","src":"19480:7:64"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"19449:30:64","nodeType":"YulIdentifier","src":"19449:30:64"},"nativeSrc":"19449:39:64","nodeType":"YulFunctionCall","src":"19449:39:64"},"variables":[{"name":"convertedValue_0","nativeSrc":"19429:16:64","nodeType":"YulTypedName","src":"19429:16:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19504:4:64","nodeType":"YulIdentifier","src":"19504:4:64"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"19544:4:64","nodeType":"YulIdentifier","src":"19544:4:64"}],"functionName":{"name":"sload","nativeSrc":"19538:5:64","nodeType":"YulIdentifier","src":"19538:5:64"},"nativeSrc":"19538:11:64","nodeType":"YulFunctionCall","src":"19538:11:64"},{"name":"offset","nativeSrc":"19551:6:64","nodeType":"YulIdentifier","src":"19551:6:64"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"19583:16:64","nodeType":"YulIdentifier","src":"19583:16:64"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"19559:23:64","nodeType":"YulIdentifier","src":"19559:23:64"},"nativeSrc":"19559:41:64","nodeType":"YulFunctionCall","src":"19559:41:64"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"19510:27:64","nodeType":"YulIdentifier","src":"19510:27:64"},"nativeSrc":"19510:91:64","nodeType":"YulFunctionCall","src":"19510:91:64"}],"functionName":{"name":"sstore","nativeSrc":"19497:6:64","nodeType":"YulIdentifier","src":"19497:6:64"},"nativeSrc":"19497:105:64","nodeType":"YulFunctionCall","src":"19497:105:64"},"nativeSrc":"19497:105:64","nodeType":"YulExpressionStatement","src":"19497:105:64"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"19339:269:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19392:4:64","nodeType":"YulTypedName","src":"19392:4:64","type":""},{"name":"offset","nativeSrc":"19398:6:64","nodeType":"YulTypedName","src":"19398:6:64","type":""},{"name":"value_0","nativeSrc":"19406:7:64","nodeType":"YulTypedName","src":"19406:7:64","type":""}],"src":"19339:269:64"},{"body":{"nativeSrc":"19663:24:64","nodeType":"YulBlock","src":"19663:24:64","statements":[{"nativeSrc":"19673:8:64","nodeType":"YulAssignment","src":"19673:8:64","value":{"kind":"number","nativeSrc":"19680:1:64","nodeType":"YulLiteral","src":"19680:1:64","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"19673:3:64","nodeType":"YulIdentifier","src":"19673:3:64"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"19614:73:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"19659:3:64","nodeType":"YulTypedName","src":"19659:3:64","type":""}],"src":"19614:73:64"},{"body":{"nativeSrc":"19746:136:64","nodeType":"YulBlock","src":"19746:136:64","statements":[{"nativeSrc":"19756:46:64","nodeType":"YulVariableDeclaration","src":"19756:46:64","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"19770:30:64","nodeType":"YulIdentifier","src":"19770:30:64"},"nativeSrc":"19770:32:64","nodeType":"YulFunctionCall","src":"19770:32:64"},"variables":[{"name":"zero_0","nativeSrc":"19760:6:64","nodeType":"YulTypedName","src":"19760:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"19855:4:64","nodeType":"YulIdentifier","src":"19855:4:64"},{"name":"offset","nativeSrc":"19861:6:64","nodeType":"YulIdentifier","src":"19861:6:64"},{"name":"zero_0","nativeSrc":"19869:6:64","nodeType":"YulIdentifier","src":"19869:6:64"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"19811:43:64","nodeType":"YulIdentifier","src":"19811:43:64"},"nativeSrc":"19811:65:64","nodeType":"YulFunctionCall","src":"19811:65:64"},"nativeSrc":"19811:65:64","nodeType":"YulExpressionStatement","src":"19811:65:64"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"19693:189:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"19732:4:64","nodeType":"YulTypedName","src":"19732:4:64","type":""},{"name":"offset","nativeSrc":"19738:6:64","nodeType":"YulTypedName","src":"19738:6:64","type":""}],"src":"19693:189:64"},{"body":{"nativeSrc":"19938:136:64","nodeType":"YulBlock","src":"19938:136:64","statements":[{"body":{"nativeSrc":"20005:63:64","nodeType":"YulBlock","src":"20005:63:64","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"20049:5:64","nodeType":"YulIdentifier","src":"20049:5:64"},{"kind":"number","nativeSrc":"20056:1:64","nodeType":"YulLiteral","src":"20056:1:64","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"20019:29:64","nodeType":"YulIdentifier","src":"20019:29:64"},"nativeSrc":"20019:39:64","nodeType":"YulFunctionCall","src":"20019:39:64"},"nativeSrc":"20019:39:64","nodeType":"YulExpressionStatement","src":"20019:39:64"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"19958:5:64","nodeType":"YulIdentifier","src":"19958:5:64"},{"name":"end","nativeSrc":"19965:3:64","nodeType":"YulIdentifier","src":"19965:3:64"}],"functionName":{"name":"lt","nativeSrc":"19955:2:64","nodeType":"YulIdentifier","src":"19955:2:64"},"nativeSrc":"19955:14:64","nodeType":"YulFunctionCall","src":"19955:14:64"},"nativeSrc":"19948:120:64","nodeType":"YulForLoop","post":{"nativeSrc":"19970:26:64","nodeType":"YulBlock","src":"19970:26:64","statements":[{"nativeSrc":"19972:22:64","nodeType":"YulAssignment","src":"19972:22:64","value":{"arguments":[{"name":"start","nativeSrc":"19985:5:64","nodeType":"YulIdentifier","src":"19985:5:64"},{"kind":"number","nativeSrc":"19992:1:64","nodeType":"YulLiteral","src":"19992:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19981:3:64","nodeType":"YulIdentifier","src":"19981:3:64"},"nativeSrc":"19981:13:64","nodeType":"YulFunctionCall","src":"19981:13:64"},"variableNames":[{"name":"start","nativeSrc":"19972:5:64","nodeType":"YulIdentifier","src":"19972:5:64"}]}]},"pre":{"nativeSrc":"19952:2:64","nodeType":"YulBlock","src":"19952:2:64","statements":[]},"src":"19948:120:64"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"19888:186:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"19926:5:64","nodeType":"YulTypedName","src":"19926:5:64","type":""},{"name":"end","nativeSrc":"19933:3:64","nodeType":"YulTypedName","src":"19933:3:64","type":""}],"src":"19888:186:64"},{"body":{"nativeSrc":"20158:463:64","nodeType":"YulBlock","src":"20158:463:64","statements":[{"body":{"nativeSrc":"20184:430:64","nodeType":"YulBlock","src":"20184:430:64","statements":[{"nativeSrc":"20198:53:64","nodeType":"YulVariableDeclaration","src":"20198:53:64","value":{"arguments":[{"name":"array","nativeSrc":"20245:5:64","nodeType":"YulIdentifier","src":"20245:5:64"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"20214:30:64","nodeType":"YulIdentifier","src":"20214:30:64"},"nativeSrc":"20214:37:64","nodeType":"YulFunctionCall","src":"20214:37:64"},"variables":[{"name":"dataArea","nativeSrc":"20202:8:64","nodeType":"YulTypedName","src":"20202:8:64","type":""}]},{"nativeSrc":"20264:63:64","nodeType":"YulVariableDeclaration","src":"20264:63:64","value":{"arguments":[{"name":"dataArea","nativeSrc":"20287:8:64","nodeType":"YulIdentifier","src":"20287:8:64"},{"arguments":[{"name":"startIndex","nativeSrc":"20315:10:64","nodeType":"YulIdentifier","src":"20315:10:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"20297:17:64","nodeType":"YulIdentifier","src":"20297:17:64"},"nativeSrc":"20297:29:64","nodeType":"YulFunctionCall","src":"20297:29:64"}],"functionName":{"name":"add","nativeSrc":"20283:3:64","nodeType":"YulIdentifier","src":"20283:3:64"},"nativeSrc":"20283:44:64","nodeType":"YulFunctionCall","src":"20283:44:64"},"variables":[{"name":"deleteStart","nativeSrc":"20268:11:64","nodeType":"YulTypedName","src":"20268:11:64","type":""}]},{"body":{"nativeSrc":"20484:27:64","nodeType":"YulBlock","src":"20484:27:64","statements":[{"nativeSrc":"20486:23:64","nodeType":"YulAssignment","src":"20486:23:64","value":{"name":"dataArea","nativeSrc":"20501:8:64","nodeType":"YulIdentifier","src":"20501:8:64"},"variableNames":[{"name":"deleteStart","nativeSrc":"20486:11:64","nodeType":"YulIdentifier","src":"20486:11:64"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"20468:10:64","nodeType":"YulIdentifier","src":"20468:10:64"},{"kind":"number","nativeSrc":"20480:2:64","nodeType":"YulLiteral","src":"20480:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"20465:2:64","nodeType":"YulIdentifier","src":"20465:2:64"},"nativeSrc":"20465:18:64","nodeType":"YulFunctionCall","src":"20465:18:64"},"nativeSrc":"20462:49:64","nodeType":"YulIf","src":"20462:49:64"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"20553:11:64","nodeType":"YulIdentifier","src":"20553:11:64"},{"arguments":[{"name":"dataArea","nativeSrc":"20570:8:64","nodeType":"YulIdentifier","src":"20570:8:64"},{"arguments":[{"name":"len","nativeSrc":"20598:3:64","nodeType":"YulIdentifier","src":"20598:3:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"20580:17:64","nodeType":"YulIdentifier","src":"20580:17:64"},"nativeSrc":"20580:22:64","nodeType":"YulFunctionCall","src":"20580:22:64"}],"functionName":{"name":"add","nativeSrc":"20566:3:64","nodeType":"YulIdentifier","src":"20566:3:64"},"nativeSrc":"20566:37:64","nodeType":"YulFunctionCall","src":"20566:37:64"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"20524:28:64","nodeType":"YulIdentifier","src":"20524:28:64"},"nativeSrc":"20524:80:64","nodeType":"YulFunctionCall","src":"20524:80:64"},"nativeSrc":"20524:80:64","nodeType":"YulExpressionStatement","src":"20524:80:64"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"20175:3:64","nodeType":"YulIdentifier","src":"20175:3:64"},{"kind":"number","nativeSrc":"20180:2:64","nodeType":"YulLiteral","src":"20180:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"20172:2:64","nodeType":"YulIdentifier","src":"20172:2:64"},"nativeSrc":"20172:11:64","nodeType":"YulFunctionCall","src":"20172:11:64"},"nativeSrc":"20169:445:64","nodeType":"YulIf","src":"20169:445:64"}]},"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"20080:541:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"20134:5:64","nodeType":"YulTypedName","src":"20134:5:64","type":""},{"name":"len","nativeSrc":"20141:3:64","nodeType":"YulTypedName","src":"20141:3:64","type":""},{"name":"startIndex","nativeSrc":"20146:10:64","nodeType":"YulTypedName","src":"20146:10:64","type":""}],"src":"20080:541:64"},{"body":{"nativeSrc":"20690:54:64","nodeType":"YulBlock","src":"20690:54:64","statements":[{"nativeSrc":"20700:37:64","nodeType":"YulAssignment","src":"20700:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"20725:4:64","nodeType":"YulIdentifier","src":"20725:4:64"},{"name":"value","nativeSrc":"20731:5:64","nodeType":"YulIdentifier","src":"20731:5:64"}],"functionName":{"name":"shr","nativeSrc":"20721:3:64","nodeType":"YulIdentifier","src":"20721:3:64"},"nativeSrc":"20721:16:64","nodeType":"YulFunctionCall","src":"20721:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"20700:8:64","nodeType":"YulIdentifier","src":"20700:8:64"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"20627:117:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"20665:4:64","nodeType":"YulTypedName","src":"20665:4:64","type":""},{"name":"value","nativeSrc":"20671:5:64","nodeType":"YulTypedName","src":"20671:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"20681:8:64","nodeType":"YulTypedName","src":"20681:8:64","type":""}],"src":"20627:117:64"},{"body":{"nativeSrc":"20801:118:64","nodeType":"YulBlock","src":"20801:118:64","statements":[{"nativeSrc":"20811:68:64","nodeType":"YulVariableDeclaration","src":"20811:68:64","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"20860:1:64","nodeType":"YulLiteral","src":"20860:1:64","type":"","value":"8"},{"name":"bytes","nativeSrc":"20863:5:64","nodeType":"YulIdentifier","src":"20863:5:64"}],"functionName":{"name":"mul","nativeSrc":"20856:3:64","nodeType":"YulIdentifier","src":"20856:3:64"},"nativeSrc":"20856:13:64","nodeType":"YulFunctionCall","src":"20856:13:64"},{"arguments":[{"kind":"number","nativeSrc":"20875:1:64","nodeType":"YulLiteral","src":"20875:1:64","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"20871:3:64","nodeType":"YulIdentifier","src":"20871:3:64"},"nativeSrc":"20871:6:64","nodeType":"YulFunctionCall","src":"20871:6:64"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"20827:28:64","nodeType":"YulIdentifier","src":"20827:28:64"},"nativeSrc":"20827:51:64","nodeType":"YulFunctionCall","src":"20827:51:64"}],"functionName":{"name":"not","nativeSrc":"20823:3:64","nodeType":"YulIdentifier","src":"20823:3:64"},"nativeSrc":"20823:56:64","nodeType":"YulFunctionCall","src":"20823:56:64"},"variables":[{"name":"mask","nativeSrc":"20815:4:64","nodeType":"YulTypedName","src":"20815:4:64","type":""}]},{"nativeSrc":"20888:25:64","nodeType":"YulAssignment","src":"20888:25:64","value":{"arguments":[{"name":"data","nativeSrc":"20902:4:64","nodeType":"YulIdentifier","src":"20902:4:64"},{"name":"mask","nativeSrc":"20908:4:64","nodeType":"YulIdentifier","src":"20908:4:64"}],"functionName":{"name":"and","nativeSrc":"20898:3:64","nodeType":"YulIdentifier","src":"20898:3:64"},"nativeSrc":"20898:15:64","nodeType":"YulFunctionCall","src":"20898:15:64"},"variableNames":[{"name":"result","nativeSrc":"20888:6:64","nodeType":"YulIdentifier","src":"20888:6:64"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"20750:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"20778:4:64","nodeType":"YulTypedName","src":"20778:4:64","type":""},{"name":"bytes","nativeSrc":"20784:5:64","nodeType":"YulTypedName","src":"20784:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"20794:6:64","nodeType":"YulTypedName","src":"20794:6:64","type":""}],"src":"20750:169:64"},{"body":{"nativeSrc":"21005:214:64","nodeType":"YulBlock","src":"21005:214:64","statements":[{"nativeSrc":"21138:37:64","nodeType":"YulAssignment","src":"21138:37:64","value":{"arguments":[{"name":"data","nativeSrc":"21165:4:64","nodeType":"YulIdentifier","src":"21165:4:64"},{"name":"len","nativeSrc":"21171:3:64","nodeType":"YulIdentifier","src":"21171:3:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"21146:18:64","nodeType":"YulIdentifier","src":"21146:18:64"},"nativeSrc":"21146:29:64","nodeType":"YulFunctionCall","src":"21146:29:64"},"variableNames":[{"name":"data","nativeSrc":"21138:4:64","nodeType":"YulIdentifier","src":"21138:4:64"}]},{"nativeSrc":"21184:29:64","nodeType":"YulAssignment","src":"21184:29:64","value":{"arguments":[{"name":"data","nativeSrc":"21195:4:64","nodeType":"YulIdentifier","src":"21195:4:64"},{"arguments":[{"kind":"number","nativeSrc":"21205:1:64","nodeType":"YulLiteral","src":"21205:1:64","type":"","value":"2"},{"name":"len","nativeSrc":"21208:3:64","nodeType":"YulIdentifier","src":"21208:3:64"}],"functionName":{"name":"mul","nativeSrc":"21201:3:64","nodeType":"YulIdentifier","src":"21201:3:64"},"nativeSrc":"21201:11:64","nodeType":"YulFunctionCall","src":"21201:11:64"}],"functionName":{"name":"or","nativeSrc":"21192:2:64","nodeType":"YulIdentifier","src":"21192:2:64"},"nativeSrc":"21192:21:64","nodeType":"YulFunctionCall","src":"21192:21:64"},"variableNames":[{"name":"used","nativeSrc":"21184:4:64","nodeType":"YulIdentifier","src":"21184:4:64"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"20924:295:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"20986:4:64","nodeType":"YulTypedName","src":"20986:4:64","type":""},{"name":"len","nativeSrc":"20992:3:64","nodeType":"YulTypedName","src":"20992:3:64","type":""}],"returnVariables":[{"name":"used","nativeSrc":"21000:4:64","nodeType":"YulTypedName","src":"21000:4:64","type":""}],"src":"20924:295:64"},{"body":{"nativeSrc":"21314:1300:64","nodeType":"YulBlock","src":"21314:1300:64","statements":[{"nativeSrc":"21325:50:64","nodeType":"YulVariableDeclaration","src":"21325:50:64","value":{"arguments":[{"name":"src","nativeSrc":"21371:3:64","nodeType":"YulIdentifier","src":"21371:3:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"21339:31:64","nodeType":"YulIdentifier","src":"21339:31:64"},"nativeSrc":"21339:36:64","nodeType":"YulFunctionCall","src":"21339:36:64"},"variables":[{"name":"newLen","nativeSrc":"21329:6:64","nodeType":"YulTypedName","src":"21329:6:64","type":""}]},{"body":{"nativeSrc":"21460:22:64","nodeType":"YulBlock","src":"21460:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"21462:16:64","nodeType":"YulIdentifier","src":"21462:16:64"},"nativeSrc":"21462:18:64","nodeType":"YulFunctionCall","src":"21462:18:64"},"nativeSrc":"21462:18:64","nodeType":"YulExpressionStatement","src":"21462:18:64"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"21432:6:64","nodeType":"YulIdentifier","src":"21432:6:64"},{"kind":"number","nativeSrc":"21440:18:64","nodeType":"YulLiteral","src":"21440:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"21429:2:64","nodeType":"YulIdentifier","src":"21429:2:64"},"nativeSrc":"21429:30:64","nodeType":"YulFunctionCall","src":"21429:30:64"},"nativeSrc":"21426:56:64","nodeType":"YulIf","src":"21426:56:64"},{"nativeSrc":"21492:52:64","nodeType":"YulVariableDeclaration","src":"21492:52:64","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"21538:4:64","nodeType":"YulIdentifier","src":"21538:4:64"}],"functionName":{"name":"sload","nativeSrc":"21532:5:64","nodeType":"YulIdentifier","src":"21532:5:64"},"nativeSrc":"21532:11:64","nodeType":"YulFunctionCall","src":"21532:11:64"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"21506:25:64","nodeType":"YulIdentifier","src":"21506:25:64"},"nativeSrc":"21506:38:64","nodeType":"YulFunctionCall","src":"21506:38:64"},"variables":[{"name":"oldLen","nativeSrc":"21496:6:64","nodeType":"YulTypedName","src":"21496:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21636:4:64","nodeType":"YulIdentifier","src":"21636:4:64"},{"name":"oldLen","nativeSrc":"21642:6:64","nodeType":"YulIdentifier","src":"21642:6:64"},{"name":"newLen","nativeSrc":"21650:6:64","nodeType":"YulIdentifier","src":"21650:6:64"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_bytes_storage","nativeSrc":"21591:44:64","nodeType":"YulIdentifier","src":"21591:44:64"},"nativeSrc":"21591:66:64","nodeType":"YulFunctionCall","src":"21591:66:64"},"nativeSrc":"21591:66:64","nodeType":"YulExpressionStatement","src":"21591:66:64"},{"nativeSrc":"21667:18:64","nodeType":"YulVariableDeclaration","src":"21667:18:64","value":{"kind":"number","nativeSrc":"21684:1:64","nodeType":"YulLiteral","src":"21684:1:64","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"21671:9:64","nodeType":"YulTypedName","src":"21671:9:64","type":""}]},{"nativeSrc":"21695:17:64","nodeType":"YulAssignment","src":"21695:17:64","value":{"kind":"number","nativeSrc":"21708:4:64","nodeType":"YulLiteral","src":"21708:4:64","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"21695:9:64","nodeType":"YulIdentifier","src":"21695:9:64"}]},{"cases":[{"body":{"nativeSrc":"21759:610:64","nodeType":"YulBlock","src":"21759:610:64","statements":[{"nativeSrc":"21773:37:64","nodeType":"YulVariableDeclaration","src":"21773:37:64","value":{"arguments":[{"name":"newLen","nativeSrc":"21792:6:64","nodeType":"YulIdentifier","src":"21792:6:64"},{"arguments":[{"kind":"number","nativeSrc":"21804:4:64","nodeType":"YulLiteral","src":"21804:4:64","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"21800:3:64","nodeType":"YulIdentifier","src":"21800:3:64"},"nativeSrc":"21800:9:64","nodeType":"YulFunctionCall","src":"21800:9:64"}],"functionName":{"name":"and","nativeSrc":"21788:3:64","nodeType":"YulIdentifier","src":"21788:3:64"},"nativeSrc":"21788:22:64","nodeType":"YulFunctionCall","src":"21788:22:64"},"variables":[{"name":"loopEnd","nativeSrc":"21777:7:64","nodeType":"YulTypedName","src":"21777:7:64","type":""}]},{"nativeSrc":"21824:50:64","nodeType":"YulVariableDeclaration","src":"21824:50:64","value":{"arguments":[{"name":"slot","nativeSrc":"21869:4:64","nodeType":"YulIdentifier","src":"21869:4:64"}],"functionName":{"name":"array_dataslot_t_bytes_storage","nativeSrc":"21838:30:64","nodeType":"YulIdentifier","src":"21838:30:64"},"nativeSrc":"21838:36:64","nodeType":"YulFunctionCall","src":"21838:36:64"},"variables":[{"name":"dstPtr","nativeSrc":"21828:6:64","nodeType":"YulTypedName","src":"21828:6:64","type":""}]},{"nativeSrc":"21887:10:64","nodeType":"YulVariableDeclaration","src":"21887:10:64","value":{"kind":"number","nativeSrc":"21896:1:64","nodeType":"YulLiteral","src":"21896:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"21891:1:64","nodeType":"YulTypedName","src":"21891:1:64","type":""}]},{"body":{"nativeSrc":"21955:163:64","nodeType":"YulBlock","src":"21955:163:64","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"21980:6:64","nodeType":"YulIdentifier","src":"21980:6:64"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"21998:3:64","nodeType":"YulIdentifier","src":"21998:3:64"},{"name":"srcOffset","nativeSrc":"22003:9:64","nodeType":"YulIdentifier","src":"22003:9:64"}],"functionName":{"name":"add","nativeSrc":"21994:3:64","nodeType":"YulIdentifier","src":"21994:3:64"},"nativeSrc":"21994:19:64","nodeType":"YulFunctionCall","src":"21994:19:64"}],"functionName":{"name":"mload","nativeSrc":"21988:5:64","nodeType":"YulIdentifier","src":"21988:5:64"},"nativeSrc":"21988:26:64","nodeType":"YulFunctionCall","src":"21988:26:64"}],"functionName":{"name":"sstore","nativeSrc":"21973:6:64","nodeType":"YulIdentifier","src":"21973:6:64"},"nativeSrc":"21973:42:64","nodeType":"YulFunctionCall","src":"21973:42:64"},"nativeSrc":"21973:42:64","nodeType":"YulExpressionStatement","src":"21973:42:64"},{"nativeSrc":"22032:24:64","nodeType":"YulAssignment","src":"22032:24:64","value":{"arguments":[{"name":"dstPtr","nativeSrc":"22046:6:64","nodeType":"YulIdentifier","src":"22046:6:64"},{"kind":"number","nativeSrc":"22054:1:64","nodeType":"YulLiteral","src":"22054:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22042:3:64","nodeType":"YulIdentifier","src":"22042:3:64"},"nativeSrc":"22042:14:64","nodeType":"YulFunctionCall","src":"22042:14:64"},"variableNames":[{"name":"dstPtr","nativeSrc":"22032:6:64","nodeType":"YulIdentifier","src":"22032:6:64"}]},{"nativeSrc":"22073:31:64","nodeType":"YulAssignment","src":"22073:31:64","value":{"arguments":[{"name":"srcOffset","nativeSrc":"22090:9:64","nodeType":"YulIdentifier","src":"22090:9:64"},{"kind":"number","nativeSrc":"22101:2:64","nodeType":"YulLiteral","src":"22101:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22086:3:64","nodeType":"YulIdentifier","src":"22086:3:64"},"nativeSrc":"22086:18:64","nodeType":"YulFunctionCall","src":"22086:18:64"},"variableNames":[{"name":"srcOffset","nativeSrc":"22073:9:64","nodeType":"YulIdentifier","src":"22073:9:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"21921:1:64","nodeType":"YulIdentifier","src":"21921:1:64"},{"name":"loopEnd","nativeSrc":"21924:7:64","nodeType":"YulIdentifier","src":"21924:7:64"}],"functionName":{"name":"lt","nativeSrc":"21918:2:64","nodeType":"YulIdentifier","src":"21918:2:64"},"nativeSrc":"21918:14:64","nodeType":"YulFunctionCall","src":"21918:14:64"},"nativeSrc":"21910:208:64","nodeType":"YulForLoop","post":{"nativeSrc":"21933:21:64","nodeType":"YulBlock","src":"21933:21:64","statements":[{"nativeSrc":"21935:17:64","nodeType":"YulAssignment","src":"21935:17:64","value":{"arguments":[{"name":"i","nativeSrc":"21944:1:64","nodeType":"YulIdentifier","src":"21944:1:64"},{"kind":"number","nativeSrc":"21947:4:64","nodeType":"YulLiteral","src":"21947:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21940:3:64","nodeType":"YulIdentifier","src":"21940:3:64"},"nativeSrc":"21940:12:64","nodeType":"YulFunctionCall","src":"21940:12:64"},"variableNames":[{"name":"i","nativeSrc":"21935:1:64","nodeType":"YulIdentifier","src":"21935:1:64"}]}]},"pre":{"nativeSrc":"21914:3:64","nodeType":"YulBlock","src":"21914:3:64","statements":[]},"src":"21910:208:64"},{"body":{"nativeSrc":"22154:156:64","nodeType":"YulBlock","src":"22154:156:64","statements":[{"nativeSrc":"22172:43:64","nodeType":"YulVariableDeclaration","src":"22172:43:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22199:3:64","nodeType":"YulIdentifier","src":"22199:3:64"},{"name":"srcOffset","nativeSrc":"22204:9:64","nodeType":"YulIdentifier","src":"22204:9:64"}],"functionName":{"name":"add","nativeSrc":"22195:3:64","nodeType":"YulIdentifier","src":"22195:3:64"},"nativeSrc":"22195:19:64","nodeType":"YulFunctionCall","src":"22195:19:64"}],"functionName":{"name":"mload","nativeSrc":"22189:5:64","nodeType":"YulIdentifier","src":"22189:5:64"},"nativeSrc":"22189:26:64","nodeType":"YulFunctionCall","src":"22189:26:64"},"variables":[{"name":"lastValue","nativeSrc":"22176:9:64","nodeType":"YulTypedName","src":"22176:9:64","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"22239:6:64","nodeType":"YulIdentifier","src":"22239:6:64"},{"arguments":[{"name":"lastValue","nativeSrc":"22266:9:64","nodeType":"YulIdentifier","src":"22266:9:64"},{"arguments":[{"name":"newLen","nativeSrc":"22281:6:64","nodeType":"YulIdentifier","src":"22281:6:64"},{"kind":"number","nativeSrc":"22289:4:64","nodeType":"YulLiteral","src":"22289:4:64","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"22277:3:64","nodeType":"YulIdentifier","src":"22277:3:64"},"nativeSrc":"22277:17:64","nodeType":"YulFunctionCall","src":"22277:17:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"22247:18:64","nodeType":"YulIdentifier","src":"22247:18:64"},"nativeSrc":"22247:48:64","nodeType":"YulFunctionCall","src":"22247:48:64"}],"functionName":{"name":"sstore","nativeSrc":"22232:6:64","nodeType":"YulIdentifier","src":"22232:6:64"},"nativeSrc":"22232:64:64","nodeType":"YulFunctionCall","src":"22232:64:64"},"nativeSrc":"22232:64:64","nodeType":"YulExpressionStatement","src":"22232:64:64"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"22137:7:64","nodeType":"YulIdentifier","src":"22137:7:64"},{"name":"newLen","nativeSrc":"22146:6:64","nodeType":"YulIdentifier","src":"22146:6:64"}],"functionName":{"name":"lt","nativeSrc":"22134:2:64","nodeType":"YulIdentifier","src":"22134:2:64"},"nativeSrc":"22134:19:64","nodeType":"YulFunctionCall","src":"22134:19:64"},"nativeSrc":"22131:179:64","nodeType":"YulIf","src":"22131:179:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22330:4:64","nodeType":"YulIdentifier","src":"22330:4:64"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"22344:6:64","nodeType":"YulIdentifier","src":"22344:6:64"},{"kind":"number","nativeSrc":"22352:1:64","nodeType":"YulLiteral","src":"22352:1:64","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"22340:3:64","nodeType":"YulIdentifier","src":"22340:3:64"},"nativeSrc":"22340:14:64","nodeType":"YulFunctionCall","src":"22340:14:64"},{"kind":"number","nativeSrc":"22356:1:64","nodeType":"YulLiteral","src":"22356:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22336:3:64","nodeType":"YulIdentifier","src":"22336:3:64"},"nativeSrc":"22336:22:64","nodeType":"YulFunctionCall","src":"22336:22:64"}],"functionName":{"name":"sstore","nativeSrc":"22323:6:64","nodeType":"YulIdentifier","src":"22323:6:64"},"nativeSrc":"22323:36:64","nodeType":"YulFunctionCall","src":"22323:36:64"},"nativeSrc":"22323:36:64","nodeType":"YulExpressionStatement","src":"22323:36:64"}]},"nativeSrc":"21752:617:64","nodeType":"YulCase","src":"21752:617:64","value":{"kind":"number","nativeSrc":"21757:1:64","nodeType":"YulLiteral","src":"21757:1:64","type":"","value":"1"}},{"body":{"nativeSrc":"22386:222:64","nodeType":"YulBlock","src":"22386:222:64","statements":[{"nativeSrc":"22400:14:64","nodeType":"YulVariableDeclaration","src":"22400:14:64","value":{"kind":"number","nativeSrc":"22413:1:64","nodeType":"YulLiteral","src":"22413:1:64","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"22404:5:64","nodeType":"YulTypedName","src":"22404:5:64","type":""}]},{"body":{"nativeSrc":"22437:67:64","nodeType":"YulBlock","src":"22437:67:64","statements":[{"nativeSrc":"22455:35:64","nodeType":"YulAssignment","src":"22455:35:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"22474:3:64","nodeType":"YulIdentifier","src":"22474:3:64"},{"name":"srcOffset","nativeSrc":"22479:9:64","nodeType":"YulIdentifier","src":"22479:9:64"}],"functionName":{"name":"add","nativeSrc":"22470:3:64","nodeType":"YulIdentifier","src":"22470:3:64"},"nativeSrc":"22470:19:64","nodeType":"YulFunctionCall","src":"22470:19:64"}],"functionName":{"name":"mload","nativeSrc":"22464:5:64","nodeType":"YulIdentifier","src":"22464:5:64"},"nativeSrc":"22464:26:64","nodeType":"YulFunctionCall","src":"22464:26:64"},"variableNames":[{"name":"value","nativeSrc":"22455:5:64","nodeType":"YulIdentifier","src":"22455:5:64"}]}]},"condition":{"name":"newLen","nativeSrc":"22430:6:64","nodeType":"YulIdentifier","src":"22430:6:64"},"nativeSrc":"22427:77:64","nodeType":"YulIf","src":"22427:77:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22524:4:64","nodeType":"YulIdentifier","src":"22524:4:64"},{"arguments":[{"name":"value","nativeSrc":"22583:5:64","nodeType":"YulIdentifier","src":"22583:5:64"},{"name":"newLen","nativeSrc":"22590:6:64","nodeType":"YulIdentifier","src":"22590:6:64"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"22530:52:64","nodeType":"YulIdentifier","src":"22530:52:64"},"nativeSrc":"22530:67:64","nodeType":"YulFunctionCall","src":"22530:67:64"}],"functionName":{"name":"sstore","nativeSrc":"22517:6:64","nodeType":"YulIdentifier","src":"22517:6:64"},"nativeSrc":"22517:81:64","nodeType":"YulFunctionCall","src":"22517:81:64"},"nativeSrc":"22517:81:64","nodeType":"YulExpressionStatement","src":"22517:81:64"}]},"nativeSrc":"22378:230:64","nodeType":"YulCase","src":"22378:230:64","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"21732:6:64","nodeType":"YulIdentifier","src":"21732:6:64"},{"kind":"number","nativeSrc":"21740:2:64","nodeType":"YulLiteral","src":"21740:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"21729:2:64","nodeType":"YulIdentifier","src":"21729:2:64"},"nativeSrc":"21729:14:64","nodeType":"YulFunctionCall","src":"21729:14:64"},"nativeSrc":"21722:886:64","nodeType":"YulSwitch","src":"21722:886:64"}]},"name":"copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage","nativeSrc":"21224:1390:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21303:4:64","nodeType":"YulTypedName","src":"21303:4:64","type":""},{"name":"src","nativeSrc":"21309:3:64","nodeType":"YulTypedName","src":"21309:3:64","type":""}],"src":"21224:1390:64"},{"body":{"nativeSrc":"22675:53:64","nodeType":"YulBlock","src":"22675:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22692:3:64","nodeType":"YulIdentifier","src":"22692:3:64"},{"arguments":[{"name":"value","nativeSrc":"22715:5:64","nodeType":"YulIdentifier","src":"22715:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22697:17:64","nodeType":"YulIdentifier","src":"22697:17:64"},"nativeSrc":"22697:24:64","nodeType":"YulFunctionCall","src":"22697:24:64"}],"functionName":{"name":"mstore","nativeSrc":"22685:6:64","nodeType":"YulIdentifier","src":"22685:6:64"},"nativeSrc":"22685:37:64","nodeType":"YulFunctionCall","src":"22685:37:64"},"nativeSrc":"22685:37:64","nodeType":"YulExpressionStatement","src":"22685:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"22620:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22663:5:64","nodeType":"YulTypedName","src":"22663:5:64","type":""},{"name":"pos","nativeSrc":"22670:3:64","nodeType":"YulTypedName","src":"22670:3:64","type":""}],"src":"22620:108:64"},{"body":{"nativeSrc":"22819:73:64","nodeType":"YulBlock","src":"22819:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"22836:3:64","nodeType":"YulIdentifier","src":"22836:3:64"},{"name":"length","nativeSrc":"22841:6:64","nodeType":"YulIdentifier","src":"22841:6:64"}],"functionName":{"name":"mstore","nativeSrc":"22829:6:64","nodeType":"YulIdentifier","src":"22829:6:64"},"nativeSrc":"22829:19:64","nodeType":"YulFunctionCall","src":"22829:19:64"},"nativeSrc":"22829:19:64","nodeType":"YulExpressionStatement","src":"22829:19:64"},{"nativeSrc":"22857:29:64","nodeType":"YulAssignment","src":"22857:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"22876:3:64","nodeType":"YulIdentifier","src":"22876:3:64"},{"kind":"number","nativeSrc":"22881:4:64","nodeType":"YulLiteral","src":"22881:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22872:3:64","nodeType":"YulIdentifier","src":"22872:3:64"},"nativeSrc":"22872:14:64","nodeType":"YulFunctionCall","src":"22872:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"22857:11:64","nodeType":"YulIdentifier","src":"22857:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"22734:158:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"22791:3:64","nodeType":"YulTypedName","src":"22791:3:64","type":""},{"name":"length","nativeSrc":"22796:6:64","nodeType":"YulTypedName","src":"22796:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"22807:11:64","nodeType":"YulTypedName","src":"22807:11:64","type":""}],"src":"22734:158:64"},{"body":{"nativeSrc":"22978:273:64","nodeType":"YulBlock","src":"22978:273:64","statements":[{"nativeSrc":"22988:52:64","nodeType":"YulVariableDeclaration","src":"22988:52:64","value":{"arguments":[{"name":"value","nativeSrc":"23034:5:64","nodeType":"YulIdentifier","src":"23034:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"23002:31:64","nodeType":"YulIdentifier","src":"23002:31:64"},"nativeSrc":"23002:38:64","nodeType":"YulFunctionCall","src":"23002:38:64"},"variables":[{"name":"length","nativeSrc":"22992:6:64","nodeType":"YulTypedName","src":"22992:6:64","type":""}]},{"nativeSrc":"23049:67:64","nodeType":"YulAssignment","src":"23049:67:64","value":{"arguments":[{"name":"pos","nativeSrc":"23104:3:64","nodeType":"YulIdentifier","src":"23104:3:64"},{"name":"length","nativeSrc":"23109:6:64","nodeType":"YulIdentifier","src":"23109:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"23056:47:64","nodeType":"YulIdentifier","src":"23056:47:64"},"nativeSrc":"23056:60:64","nodeType":"YulFunctionCall","src":"23056:60:64"},"variableNames":[{"name":"pos","nativeSrc":"23049:3:64","nodeType":"YulIdentifier","src":"23049:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23164:5:64","nodeType":"YulIdentifier","src":"23164:5:64"},{"kind":"number","nativeSrc":"23171:4:64","nodeType":"YulLiteral","src":"23171:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23160:3:64","nodeType":"YulIdentifier","src":"23160:3:64"},"nativeSrc":"23160:16:64","nodeType":"YulFunctionCall","src":"23160:16:64"},{"name":"pos","nativeSrc":"23178:3:64","nodeType":"YulIdentifier","src":"23178:3:64"},{"name":"length","nativeSrc":"23183:6:64","nodeType":"YulIdentifier","src":"23183:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"23125:34:64","nodeType":"YulIdentifier","src":"23125:34:64"},"nativeSrc":"23125:65:64","nodeType":"YulFunctionCall","src":"23125:65:64"},"nativeSrc":"23125:65:64","nodeType":"YulExpressionStatement","src":"23125:65:64"},{"nativeSrc":"23199:46:64","nodeType":"YulAssignment","src":"23199:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"23210:3:64","nodeType":"YulIdentifier","src":"23210:3:64"},{"arguments":[{"name":"length","nativeSrc":"23237:6:64","nodeType":"YulIdentifier","src":"23237:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"23215:21:64","nodeType":"YulIdentifier","src":"23215:21:64"},"nativeSrc":"23215:29:64","nodeType":"YulFunctionCall","src":"23215:29:64"}],"functionName":{"name":"add","nativeSrc":"23206:3:64","nodeType":"YulIdentifier","src":"23206:3:64"},"nativeSrc":"23206:39:64","nodeType":"YulFunctionCall","src":"23206:39:64"},"variableNames":[{"name":"end","nativeSrc":"23199:3:64","nodeType":"YulIdentifier","src":"23199:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"22898:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22959:5:64","nodeType":"YulTypedName","src":"22959:5:64","type":""},{"name":"pos","nativeSrc":"22966:3:64","nodeType":"YulTypedName","src":"22966:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22974:3:64","nodeType":"YulTypedName","src":"22974:3:64","type":""}],"src":"22898:353:64"},{"body":{"nativeSrc":"23465:659:64","nodeType":"YulBlock","src":"23465:659:64","statements":[{"nativeSrc":"23475:26:64","nodeType":"YulVariableDeclaration","src":"23475:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"23491:3:64","nodeType":"YulIdentifier","src":"23491:3:64"},{"kind":"number","nativeSrc":"23496:4:64","nodeType":"YulLiteral","src":"23496:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"23487:3:64","nodeType":"YulIdentifier","src":"23487:3:64"},"nativeSrc":"23487:14:64","nodeType":"YulFunctionCall","src":"23487:14:64"},"variables":[{"name":"tail","nativeSrc":"23479:4:64","nodeType":"YulTypedName","src":"23479:4:64","type":""}]},{"nativeSrc":"23511:167:64","nodeType":"YulBlock","src":"23511:167:64","statements":[{"nativeSrc":"23549:43:64","nodeType":"YulVariableDeclaration","src":"23549:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23579:5:64","nodeType":"YulIdentifier","src":"23579:5:64"},{"kind":"number","nativeSrc":"23586:4:64","nodeType":"YulLiteral","src":"23586:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23575:3:64","nodeType":"YulIdentifier","src":"23575:3:64"},"nativeSrc":"23575:16:64","nodeType":"YulFunctionCall","src":"23575:16:64"}],"functionName":{"name":"mload","nativeSrc":"23569:5:64","nodeType":"YulIdentifier","src":"23569:5:64"},"nativeSrc":"23569:23:64","nodeType":"YulFunctionCall","src":"23569:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"23553:12:64","nodeType":"YulTypedName","src":"23553:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"23639:12:64","nodeType":"YulIdentifier","src":"23639:12:64"},{"arguments":[{"name":"pos","nativeSrc":"23657:3:64","nodeType":"YulIdentifier","src":"23657:3:64"},{"kind":"number","nativeSrc":"23662:4:64","nodeType":"YulLiteral","src":"23662:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"23653:3:64","nodeType":"YulIdentifier","src":"23653:3:64"},"nativeSrc":"23653:14:64","nodeType":"YulFunctionCall","src":"23653:14:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"23605:33:64","nodeType":"YulIdentifier","src":"23605:33:64"},"nativeSrc":"23605:63:64","nodeType":"YulFunctionCall","src":"23605:63:64"},"nativeSrc":"23605:63:64","nodeType":"YulExpressionStatement","src":"23605:63:64"}]},{"nativeSrc":"23688:166:64","nodeType":"YulBlock","src":"23688:166:64","statements":[{"nativeSrc":"23725:43:64","nodeType":"YulVariableDeclaration","src":"23725:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23755:5:64","nodeType":"YulIdentifier","src":"23755:5:64"},{"kind":"number","nativeSrc":"23762:4:64","nodeType":"YulLiteral","src":"23762:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23751:3:64","nodeType":"YulIdentifier","src":"23751:3:64"},"nativeSrc":"23751:16:64","nodeType":"YulFunctionCall","src":"23751:16:64"}],"functionName":{"name":"mload","nativeSrc":"23745:5:64","nodeType":"YulIdentifier","src":"23745:5:64"},"nativeSrc":"23745:23:64","nodeType":"YulFunctionCall","src":"23745:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"23729:12:64","nodeType":"YulTypedName","src":"23729:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"23815:12:64","nodeType":"YulIdentifier","src":"23815:12:64"},{"arguments":[{"name":"pos","nativeSrc":"23833:3:64","nodeType":"YulIdentifier","src":"23833:3:64"},{"kind":"number","nativeSrc":"23838:4:64","nodeType":"YulLiteral","src":"23838:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23829:3:64","nodeType":"YulIdentifier","src":"23829:3:64"},"nativeSrc":"23829:14:64","nodeType":"YulFunctionCall","src":"23829:14:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"23781:33:64","nodeType":"YulIdentifier","src":"23781:33:64"},"nativeSrc":"23781:63:64","nodeType":"YulFunctionCall","src":"23781:63:64"},"nativeSrc":"23781:63:64","nodeType":"YulExpressionStatement","src":"23781:63:64"}]},{"nativeSrc":"23864:233:64","nodeType":"YulBlock","src":"23864:233:64","statements":[{"nativeSrc":"23899:43:64","nodeType":"YulVariableDeclaration","src":"23899:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23929:5:64","nodeType":"YulIdentifier","src":"23929:5:64"},{"kind":"number","nativeSrc":"23936:4:64","nodeType":"YulLiteral","src":"23936:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23925:3:64","nodeType":"YulIdentifier","src":"23925:3:64"},"nativeSrc":"23925:16:64","nodeType":"YulFunctionCall","src":"23925:16:64"}],"functionName":{"name":"mload","nativeSrc":"23919:5:64","nodeType":"YulIdentifier","src":"23919:5:64"},"nativeSrc":"23919:23:64","nodeType":"YulFunctionCall","src":"23919:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"23903:12:64","nodeType":"YulTypedName","src":"23903:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23967:3:64","nodeType":"YulIdentifier","src":"23967:3:64"},{"kind":"number","nativeSrc":"23972:4:64","nodeType":"YulLiteral","src":"23972:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23963:3:64","nodeType":"YulIdentifier","src":"23963:3:64"},"nativeSrc":"23963:14:64","nodeType":"YulFunctionCall","src":"23963:14:64"},{"arguments":[{"name":"tail","nativeSrc":"23983:4:64","nodeType":"YulIdentifier","src":"23983:4:64"},{"name":"pos","nativeSrc":"23989:3:64","nodeType":"YulIdentifier","src":"23989:3:64"}],"functionName":{"name":"sub","nativeSrc":"23979:3:64","nodeType":"YulIdentifier","src":"23979:3:64"},"nativeSrc":"23979:14:64","nodeType":"YulFunctionCall","src":"23979:14:64"}],"functionName":{"name":"mstore","nativeSrc":"23956:6:64","nodeType":"YulIdentifier","src":"23956:6:64"},"nativeSrc":"23956:38:64","nodeType":"YulFunctionCall","src":"23956:38:64"},"nativeSrc":"23956:38:64","nodeType":"YulExpressionStatement","src":"23956:38:64"},{"nativeSrc":"24007:79:64","nodeType":"YulAssignment","src":"24007:79:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"24067:12:64","nodeType":"YulIdentifier","src":"24067:12:64"},{"name":"tail","nativeSrc":"24081:4:64","nodeType":"YulIdentifier","src":"24081:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"24015:51:64","nodeType":"YulIdentifier","src":"24015:51:64"},"nativeSrc":"24015:71:64","nodeType":"YulFunctionCall","src":"24015:71:64"},"variableNames":[{"name":"tail","nativeSrc":"24007:4:64","nodeType":"YulIdentifier","src":"24007:4:64"}]}]},{"nativeSrc":"24107:11:64","nodeType":"YulAssignment","src":"24107:11:64","value":{"name":"tail","nativeSrc":"24114:4:64","nodeType":"YulIdentifier","src":"24114:4:64"},"variableNames":[{"name":"end","nativeSrc":"24107:3:64","nodeType":"YulIdentifier","src":"24107:3:64"}]}]},"name":"abi_encode_t_struct$_ERC1155Payload_$15473_memory_ptr_to_t_struct$_ERC1155Payload_$15473_memory_ptr_fromStack","nativeSrc":"23325:799:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23444:5:64","nodeType":"YulTypedName","src":"23444:5:64","type":""},{"name":"pos","nativeSrc":"23451:3:64","nodeType":"YulTypedName","src":"23451:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"23460:3:64","nodeType":"YulTypedName","src":"23460:3:64","type":""}],"src":"23325:799:64"},{"body":{"nativeSrc":"24294:241:64","nodeType":"YulBlock","src":"24294:241:64","statements":[{"nativeSrc":"24304:26:64","nodeType":"YulAssignment","src":"24304:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"24316:9:64","nodeType":"YulIdentifier","src":"24316:9:64"},{"kind":"number","nativeSrc":"24327:2:64","nodeType":"YulLiteral","src":"24327:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24312:3:64","nodeType":"YulIdentifier","src":"24312:3:64"},"nativeSrc":"24312:18:64","nodeType":"YulFunctionCall","src":"24312:18:64"},"variableNames":[{"name":"tail","nativeSrc":"24304:4:64","nodeType":"YulIdentifier","src":"24304:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"24351:9:64","nodeType":"YulIdentifier","src":"24351:9:64"},{"kind":"number","nativeSrc":"24362:1:64","nodeType":"YulLiteral","src":"24362:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"24347:3:64","nodeType":"YulIdentifier","src":"24347:3:64"},"nativeSrc":"24347:17:64","nodeType":"YulFunctionCall","src":"24347:17:64"},{"arguments":[{"name":"tail","nativeSrc":"24370:4:64","nodeType":"YulIdentifier","src":"24370:4:64"},{"name":"headStart","nativeSrc":"24376:9:64","nodeType":"YulIdentifier","src":"24376:9:64"}],"functionName":{"name":"sub","nativeSrc":"24366:3:64","nodeType":"YulIdentifier","src":"24366:3:64"},"nativeSrc":"24366:20:64","nodeType":"YulFunctionCall","src":"24366:20:64"}],"functionName":{"name":"mstore","nativeSrc":"24340:6:64","nodeType":"YulIdentifier","src":"24340:6:64"},"nativeSrc":"24340:47:64","nodeType":"YulFunctionCall","src":"24340:47:64"},"nativeSrc":"24340:47:64","nodeType":"YulExpressionStatement","src":"24340:47:64"},{"nativeSrc":"24396:132:64","nodeType":"YulAssignment","src":"24396:132:64","value":{"arguments":[{"name":"value0","nativeSrc":"24514:6:64","nodeType":"YulIdentifier","src":"24514:6:64"},{"name":"tail","nativeSrc":"24523:4:64","nodeType":"YulIdentifier","src":"24523:4:64"}],"functionName":{"name":"abi_encode_t_struct$_ERC1155Payload_$15473_memory_ptr_to_t_struct$_ERC1155Payload_$15473_memory_ptr_fromStack","nativeSrc":"24404:109:64","nodeType":"YulIdentifier","src":"24404:109:64"},"nativeSrc":"24404:124:64","nodeType":"YulFunctionCall","src":"24404:124:64"},"variableNames":[{"name":"tail","nativeSrc":"24396:4:64","nodeType":"YulIdentifier","src":"24396:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_ERC1155Payload_$15473_memory_ptr__to_t_struct$_ERC1155Payload_$15473_memory_ptr__fromStack_reversed","nativeSrc":"24130:405:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"24266:9:64","nodeType":"YulTypedName","src":"24266:9:64","type":""},{"name":"value0","nativeSrc":"24278:6:64","nodeType":"YulTypedName","src":"24278:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"24289:4:64","nodeType":"YulTypedName","src":"24289:4:64","type":""}],"src":"24130:405:64"},{"body":{"nativeSrc":"24599:62:64","nodeType":"YulBlock","src":"24599:62:64","statements":[{"body":{"nativeSrc":"24633:22:64","nodeType":"YulBlock","src":"24633:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"24635:16:64","nodeType":"YulIdentifier","src":"24635:16:64"},"nativeSrc":"24635:18:64","nodeType":"YulFunctionCall","src":"24635:18:64"},"nativeSrc":"24635:18:64","nodeType":"YulExpressionStatement","src":"24635:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24622:5:64","nodeType":"YulIdentifier","src":"24622:5:64"},{"kind":"number","nativeSrc":"24629:1:64","nodeType":"YulLiteral","src":"24629:1:64","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"24619:2:64","nodeType":"YulIdentifier","src":"24619:2:64"},"nativeSrc":"24619:12:64","nodeType":"YulFunctionCall","src":"24619:12:64"}],"functionName":{"name":"iszero","nativeSrc":"24612:6:64","nodeType":"YulIdentifier","src":"24612:6:64"},"nativeSrc":"24612:20:64","nodeType":"YulFunctionCall","src":"24612:20:64"},"nativeSrc":"24609:46:64","nodeType":"YulIf","src":"24609:46:64"}]},"name":"validator_assert_t_enum$_AssetType_$15450","nativeSrc":"24541:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24592:5:64","nodeType":"YulTypedName","src":"24592:5:64","type":""}],"src":"24541:120:64"},{"body":{"nativeSrc":"24727:81:64","nodeType":"YulBlock","src":"24727:81:64","statements":[{"nativeSrc":"24737:16:64","nodeType":"YulAssignment","src":"24737:16:64","value":{"name":"value","nativeSrc":"24748:5:64","nodeType":"YulIdentifier","src":"24748:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"24737:7:64","nodeType":"YulIdentifier","src":"24737:7:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"24796:5:64","nodeType":"YulIdentifier","src":"24796:5:64"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$15450","nativeSrc":"24754:41:64","nodeType":"YulIdentifier","src":"24754:41:64"},"nativeSrc":"24754:48:64","nodeType":"YulFunctionCall","src":"24754:48:64"},"nativeSrc":"24754:48:64","nodeType":"YulExpressionStatement","src":"24754:48:64"}]},"name":"cleanup_t_enum$_AssetType_$15450","nativeSrc":"24667:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24709:5:64","nodeType":"YulTypedName","src":"24709:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"24719:7:64","nodeType":"YulTypedName","src":"24719:7:64","type":""}],"src":"24667:141:64"},{"body":{"nativeSrc":"24887:68:64","nodeType":"YulBlock","src":"24887:68:64","statements":[{"nativeSrc":"24897:52:64","nodeType":"YulAssignment","src":"24897:52:64","value":{"arguments":[{"name":"value","nativeSrc":"24943:5:64","nodeType":"YulIdentifier","src":"24943:5:64"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$15450","nativeSrc":"24910:32:64","nodeType":"YulIdentifier","src":"24910:32:64"},"nativeSrc":"24910:39:64","nodeType":"YulFunctionCall","src":"24910:39:64"},"variableNames":[{"name":"converted","nativeSrc":"24897:9:64","nodeType":"YulIdentifier","src":"24897:9:64"}]}]},"name":"convert_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"24814:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24867:5:64","nodeType":"YulTypedName","src":"24867:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"24877:9:64","nodeType":"YulTypedName","src":"24877:9:64","type":""}],"src":"24814:141:64"},{"body":{"nativeSrc":"25029:79:64","nodeType":"YulBlock","src":"25029:79:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25046:3:64","nodeType":"YulIdentifier","src":"25046:3:64"},{"arguments":[{"name":"value","nativeSrc":"25095:5:64","nodeType":"YulIdentifier","src":"25095:5:64"}],"functionName":{"name":"convert_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"25051:43:64","nodeType":"YulIdentifier","src":"25051:43:64"},"nativeSrc":"25051:50:64","nodeType":"YulFunctionCall","src":"25051:50:64"}],"functionName":{"name":"mstore","nativeSrc":"25039:6:64","nodeType":"YulIdentifier","src":"25039:6:64"},"nativeSrc":"25039:63:64","nodeType":"YulFunctionCall","src":"25039:63:64"},"nativeSrc":"25039:63:64","nodeType":"YulExpressionStatement","src":"25039:63:64"}]},"name":"abi_encode_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"24961:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25017:5:64","nodeType":"YulTypedName","src":"25017:5:64","type":""},{"name":"pos","nativeSrc":"25024:3:64","nodeType":"YulTypedName","src":"25024:3:64","type":""}],"src":"24961:147:64"},{"body":{"nativeSrc":"25169:53:64","nodeType":"YulBlock","src":"25169:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25186:3:64","nodeType":"YulIdentifier","src":"25186:3:64"},{"arguments":[{"name":"value","nativeSrc":"25209:5:64","nodeType":"YulIdentifier","src":"25209:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"25191:17:64","nodeType":"YulIdentifier","src":"25191:17:64"},"nativeSrc":"25191:24:64","nodeType":"YulFunctionCall","src":"25191:24:64"}],"functionName":{"name":"mstore","nativeSrc":"25179:6:64","nodeType":"YulIdentifier","src":"25179:6:64"},"nativeSrc":"25179:37:64","nodeType":"YulFunctionCall","src":"25179:37:64"},"nativeSrc":"25179:37:64","nodeType":"YulExpressionStatement","src":"25179:37:64"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"25114:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25157:5:64","nodeType":"YulTypedName","src":"25157:5:64","type":""},{"name":"pos","nativeSrc":"25164:3:64","nodeType":"YulTypedName","src":"25164:3:64","type":""}],"src":"25114:108:64"},{"body":{"nativeSrc":"25412:849:64","nodeType":"YulBlock","src":"25412:849:64","statements":[{"nativeSrc":"25422:26:64","nodeType":"YulVariableDeclaration","src":"25422:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"25438:3:64","nodeType":"YulIdentifier","src":"25438:3:64"},{"kind":"number","nativeSrc":"25443:4:64","nodeType":"YulLiteral","src":"25443:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25434:3:64","nodeType":"YulIdentifier","src":"25434:3:64"},"nativeSrc":"25434:14:64","nodeType":"YulFunctionCall","src":"25434:14:64"},"variables":[{"name":"tail","nativeSrc":"25426:4:64","nodeType":"YulTypedName","src":"25426:4:64","type":""}]},{"nativeSrc":"25458:182:64","nodeType":"YulBlock","src":"25458:182:64","statements":[{"nativeSrc":"25498:43:64","nodeType":"YulVariableDeclaration","src":"25498:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25528:5:64","nodeType":"YulIdentifier","src":"25528:5:64"},{"kind":"number","nativeSrc":"25535:4:64","nodeType":"YulLiteral","src":"25535:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25524:3:64","nodeType":"YulIdentifier","src":"25524:3:64"},"nativeSrc":"25524:16:64","nodeType":"YulFunctionCall","src":"25524:16:64"}],"functionName":{"name":"mload","nativeSrc":"25518:5:64","nodeType":"YulIdentifier","src":"25518:5:64"},"nativeSrc":"25518:23:64","nodeType":"YulFunctionCall","src":"25518:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"25502:12:64","nodeType":"YulTypedName","src":"25502:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25601:12:64","nodeType":"YulIdentifier","src":"25601:12:64"},{"arguments":[{"name":"pos","nativeSrc":"25619:3:64","nodeType":"YulIdentifier","src":"25619:3:64"},{"kind":"number","nativeSrc":"25624:4:64","nodeType":"YulLiteral","src":"25624:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25615:3:64","nodeType":"YulIdentifier","src":"25615:3:64"},"nativeSrc":"25615:14:64","nodeType":"YulFunctionCall","src":"25615:14:64"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"25554:46:64","nodeType":"YulIdentifier","src":"25554:46:64"},"nativeSrc":"25554:76:64","nodeType":"YulFunctionCall","src":"25554:76:64"},"nativeSrc":"25554:76:64","nodeType":"YulExpressionStatement","src":"25554:76:64"}]},{"nativeSrc":"25650:165:64","nodeType":"YulBlock","src":"25650:165:64","statements":[{"nativeSrc":"25686:43:64","nodeType":"YulVariableDeclaration","src":"25686:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25716:5:64","nodeType":"YulIdentifier","src":"25716:5:64"},{"kind":"number","nativeSrc":"25723:4:64","nodeType":"YulLiteral","src":"25723:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25712:3:64","nodeType":"YulIdentifier","src":"25712:3:64"},"nativeSrc":"25712:16:64","nodeType":"YulFunctionCall","src":"25712:16:64"}],"functionName":{"name":"mload","nativeSrc":"25706:5:64","nodeType":"YulIdentifier","src":"25706:5:64"},"nativeSrc":"25706:23:64","nodeType":"YulFunctionCall","src":"25706:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"25690:12:64","nodeType":"YulTypedName","src":"25690:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25776:12:64","nodeType":"YulIdentifier","src":"25776:12:64"},{"arguments":[{"name":"pos","nativeSrc":"25794:3:64","nodeType":"YulIdentifier","src":"25794:3:64"},{"kind":"number","nativeSrc":"25799:4:64","nodeType":"YulLiteral","src":"25799:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25790:3:64","nodeType":"YulIdentifier","src":"25790:3:64"},"nativeSrc":"25790:14:64","nodeType":"YulFunctionCall","src":"25790:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"25742:33:64","nodeType":"YulIdentifier","src":"25742:33:64"},"nativeSrc":"25742:63:64","nodeType":"YulFunctionCall","src":"25742:63:64"},"nativeSrc":"25742:63:64","nodeType":"YulExpressionStatement","src":"25742:63:64"}]},{"nativeSrc":"25825:166:64","nodeType":"YulBlock","src":"25825:166:64","statements":[{"nativeSrc":"25862:43:64","nodeType":"YulVariableDeclaration","src":"25862:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25892:5:64","nodeType":"YulIdentifier","src":"25892:5:64"},{"kind":"number","nativeSrc":"25899:4:64","nodeType":"YulLiteral","src":"25899:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25888:3:64","nodeType":"YulIdentifier","src":"25888:3:64"},"nativeSrc":"25888:16:64","nodeType":"YulFunctionCall","src":"25888:16:64"}],"functionName":{"name":"mload","nativeSrc":"25882:5:64","nodeType":"YulIdentifier","src":"25882:5:64"},"nativeSrc":"25882:23:64","nodeType":"YulFunctionCall","src":"25882:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"25866:12:64","nodeType":"YulTypedName","src":"25866:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25952:12:64","nodeType":"YulIdentifier","src":"25952:12:64"},{"arguments":[{"name":"pos","nativeSrc":"25970:3:64","nodeType":"YulIdentifier","src":"25970:3:64"},{"kind":"number","nativeSrc":"25975:4:64","nodeType":"YulLiteral","src":"25975:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25966:3:64","nodeType":"YulIdentifier","src":"25966:3:64"},"nativeSrc":"25966:14:64","nodeType":"YulFunctionCall","src":"25966:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"25918:33:64","nodeType":"YulIdentifier","src":"25918:33:64"},"nativeSrc":"25918:63:64","nodeType":"YulFunctionCall","src":"25918:63:64"},"nativeSrc":"25918:63:64","nodeType":"YulExpressionStatement","src":"25918:63:64"}]},{"nativeSrc":"26001:233:64","nodeType":"YulBlock","src":"26001:233:64","statements":[{"nativeSrc":"26036:43:64","nodeType":"YulVariableDeclaration","src":"26036:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26066:5:64","nodeType":"YulIdentifier","src":"26066:5:64"},{"kind":"number","nativeSrc":"26073:4:64","nodeType":"YulLiteral","src":"26073:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26062:3:64","nodeType":"YulIdentifier","src":"26062:3:64"},"nativeSrc":"26062:16:64","nodeType":"YulFunctionCall","src":"26062:16:64"}],"functionName":{"name":"mload","nativeSrc":"26056:5:64","nodeType":"YulIdentifier","src":"26056:5:64"},"nativeSrc":"26056:23:64","nodeType":"YulFunctionCall","src":"26056:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"26040:12:64","nodeType":"YulTypedName","src":"26040:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"26104:3:64","nodeType":"YulIdentifier","src":"26104:3:64"},{"kind":"number","nativeSrc":"26109:4:64","nodeType":"YulLiteral","src":"26109:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26100:3:64","nodeType":"YulIdentifier","src":"26100:3:64"},"nativeSrc":"26100:14:64","nodeType":"YulFunctionCall","src":"26100:14:64"},{"arguments":[{"name":"tail","nativeSrc":"26120:4:64","nodeType":"YulIdentifier","src":"26120:4:64"},{"name":"pos","nativeSrc":"26126:3:64","nodeType":"YulIdentifier","src":"26126:3:64"}],"functionName":{"name":"sub","nativeSrc":"26116:3:64","nodeType":"YulIdentifier","src":"26116:3:64"},"nativeSrc":"26116:14:64","nodeType":"YulFunctionCall","src":"26116:14:64"}],"functionName":{"name":"mstore","nativeSrc":"26093:6:64","nodeType":"YulIdentifier","src":"26093:6:64"},"nativeSrc":"26093:38:64","nodeType":"YulFunctionCall","src":"26093:38:64"},"nativeSrc":"26093:38:64","nodeType":"YulExpressionStatement","src":"26093:38:64"},{"nativeSrc":"26144:79:64","nodeType":"YulAssignment","src":"26144:79:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"26204:12:64","nodeType":"YulIdentifier","src":"26204:12:64"},{"name":"tail","nativeSrc":"26218:4:64","nodeType":"YulIdentifier","src":"26218:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"26152:51:64","nodeType":"YulIdentifier","src":"26152:51:64"},"nativeSrc":"26152:71:64","nodeType":"YulFunctionCall","src":"26152:71:64"},"variableNames":[{"name":"tail","nativeSrc":"26144:4:64","nodeType":"YulIdentifier","src":"26144:4:64"}]}]},{"nativeSrc":"26244:11:64","nodeType":"YulAssignment","src":"26244:11:64","value":{"name":"tail","nativeSrc":"26251:4:64","nodeType":"YulIdentifier","src":"26251:4:64"},"variableNames":[{"name":"end","nativeSrc":"26244:3:64","nodeType":"YulIdentifier","src":"26244:3:64"}]}]},"name":"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack","nativeSrc":"25284:977:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"25391:5:64","nodeType":"YulTypedName","src":"25391:5:64","type":""},{"name":"pos","nativeSrc":"25398:3:64","nodeType":"YulTypedName","src":"25398:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"25407:3:64","nodeType":"YulTypedName","src":"25407:3:64","type":""}],"src":"25284:977:64"},{"body":{"nativeSrc":"26419:229:64","nodeType":"YulBlock","src":"26419:229:64","statements":[{"nativeSrc":"26429:26:64","nodeType":"YulAssignment","src":"26429:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"26441:9:64","nodeType":"YulIdentifier","src":"26441:9:64"},{"kind":"number","nativeSrc":"26452:2:64","nodeType":"YulLiteral","src":"26452:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"26437:3:64","nodeType":"YulIdentifier","src":"26437:3:64"},"nativeSrc":"26437:18:64","nodeType":"YulFunctionCall","src":"26437:18:64"},"variableNames":[{"name":"tail","nativeSrc":"26429:4:64","nodeType":"YulIdentifier","src":"26429:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"26476:9:64","nodeType":"YulIdentifier","src":"26476:9:64"},{"kind":"number","nativeSrc":"26487:1:64","nodeType":"YulLiteral","src":"26487:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"26472:3:64","nodeType":"YulIdentifier","src":"26472:3:64"},"nativeSrc":"26472:17:64","nodeType":"YulFunctionCall","src":"26472:17:64"},{"arguments":[{"name":"tail","nativeSrc":"26495:4:64","nodeType":"YulIdentifier","src":"26495:4:64"},{"name":"headStart","nativeSrc":"26501:9:64","nodeType":"YulIdentifier","src":"26501:9:64"}],"functionName":{"name":"sub","nativeSrc":"26491:3:64","nodeType":"YulIdentifier","src":"26491:3:64"},"nativeSrc":"26491:20:64","nodeType":"YulFunctionCall","src":"26491:20:64"}],"functionName":{"name":"mstore","nativeSrc":"26465:6:64","nodeType":"YulIdentifier","src":"26465:6:64"},"nativeSrc":"26465:47:64","nodeType":"YulFunctionCall","src":"26465:47:64"},"nativeSrc":"26465:47:64","nodeType":"YulExpressionStatement","src":"26465:47:64"},{"nativeSrc":"26521:120:64","nodeType":"YulAssignment","src":"26521:120:64","value":{"arguments":[{"name":"value0","nativeSrc":"26627:6:64","nodeType":"YulIdentifier","src":"26627:6:64"},{"name":"tail","nativeSrc":"26636:4:64","nodeType":"YulIdentifier","src":"26636:4:64"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack","nativeSrc":"26529:97:64","nodeType":"YulIdentifier","src":"26529:97:64"},"nativeSrc":"26529:112:64","nodeType":"YulFunctionCall","src":"26529:112:64"},"variableNames":[{"name":"tail","nativeSrc":"26521:4:64","nodeType":"YulIdentifier","src":"26521:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed","nativeSrc":"26267:381:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26391:9:64","nodeType":"YulTypedName","src":"26391:9:64","type":""},{"name":"value0","nativeSrc":"26403:6:64","nodeType":"YulTypedName","src":"26403:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"26414:4:64","nodeType":"YulTypedName","src":"26414:4:64","type":""}],"src":"26267:381:64"},{"body":{"nativeSrc":"26777:665:64","nodeType":"YulBlock","src":"26777:665:64","statements":[{"body":{"nativeSrc":"26821:83:64","nodeType":"YulBlock","src":"26821:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"26823:77:64","nodeType":"YulIdentifier","src":"26823:77:64"},"nativeSrc":"26823:79:64","nodeType":"YulFunctionCall","src":"26823:79:64"},"nativeSrc":"26823:79:64","nodeType":"YulExpressionStatement","src":"26823:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"26798:3:64","nodeType":"YulIdentifier","src":"26798:3:64"},{"name":"headStart","nativeSrc":"26803:9:64","nodeType":"YulIdentifier","src":"26803:9:64"}],"functionName":{"name":"sub","nativeSrc":"26794:3:64","nodeType":"YulIdentifier","src":"26794:3:64"},"nativeSrc":"26794:19:64","nodeType":"YulFunctionCall","src":"26794:19:64"},{"kind":"number","nativeSrc":"26815:4:64","nodeType":"YulLiteral","src":"26815:4:64","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"26790:3:64","nodeType":"YulIdentifier","src":"26790:3:64"},"nativeSrc":"26790:30:64","nodeType":"YulFunctionCall","src":"26790:30:64"},"nativeSrc":"26787:117:64","nodeType":"YulIf","src":"26787:117:64"},{"nativeSrc":"26913:30:64","nodeType":"YulAssignment","src":"26913:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"26938:4:64","nodeType":"YulLiteral","src":"26938:4:64","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"26922:15:64","nodeType":"YulIdentifier","src":"26922:15:64"},"nativeSrc":"26922:21:64","nodeType":"YulFunctionCall","src":"26922:21:64"},"variableNames":[{"name":"value","nativeSrc":"26913:5:64","nodeType":"YulIdentifier","src":"26913:5:64"}]},{"nativeSrc":"26953:152:64","nodeType":"YulBlock","src":"26953:152:64","statements":[{"nativeSrc":"26990:15:64","nodeType":"YulVariableDeclaration","src":"26990:15:64","value":{"kind":"number","nativeSrc":"27004:1:64","nodeType":"YulLiteral","src":"27004:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"26994:6:64","nodeType":"YulTypedName","src":"26994:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27030:5:64","nodeType":"YulIdentifier","src":"27030:5:64"},{"kind":"number","nativeSrc":"27037:4:64","nodeType":"YulLiteral","src":"27037:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"27026:3:64","nodeType":"YulIdentifier","src":"27026:3:64"},"nativeSrc":"27026:16:64","nodeType":"YulFunctionCall","src":"27026:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27069:9:64","nodeType":"YulIdentifier","src":"27069:9:64"},{"name":"offset","nativeSrc":"27080:6:64","nodeType":"YulIdentifier","src":"27080:6:64"}],"functionName":{"name":"add","nativeSrc":"27065:3:64","nodeType":"YulIdentifier","src":"27065:3:64"},"nativeSrc":"27065:22:64","nodeType":"YulFunctionCall","src":"27065:22:64"},{"name":"end","nativeSrc":"27089:3:64","nodeType":"YulIdentifier","src":"27089:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"27044:20:64","nodeType":"YulIdentifier","src":"27044:20:64"},"nativeSrc":"27044:49:64","nodeType":"YulFunctionCall","src":"27044:49:64"}],"functionName":{"name":"mstore","nativeSrc":"27019:6:64","nodeType":"YulIdentifier","src":"27019:6:64"},"nativeSrc":"27019:75:64","nodeType":"YulFunctionCall","src":"27019:75:64"},"nativeSrc":"27019:75:64","nodeType":"YulExpressionStatement","src":"27019:75:64"}]},{"nativeSrc":"27115:320:64","nodeType":"YulBlock","src":"27115:320:64","statements":[{"nativeSrc":"27150:46:64","nodeType":"YulVariableDeclaration","src":"27150:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27181:9:64","nodeType":"YulIdentifier","src":"27181:9:64"},{"kind":"number","nativeSrc":"27192:2:64","nodeType":"YulLiteral","src":"27192:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"27177:3:64","nodeType":"YulIdentifier","src":"27177:3:64"},"nativeSrc":"27177:18:64","nodeType":"YulFunctionCall","src":"27177:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"27164:12:64","nodeType":"YulIdentifier","src":"27164:12:64"},"nativeSrc":"27164:32:64","nodeType":"YulFunctionCall","src":"27164:32:64"},"variables":[{"name":"offset","nativeSrc":"27154:6:64","nodeType":"YulTypedName","src":"27154:6:64","type":""}]},{"body":{"nativeSrc":"27243:83:64","nodeType":"YulBlock","src":"27243:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"27245:77:64","nodeType":"YulIdentifier","src":"27245:77:64"},"nativeSrc":"27245:79:64","nodeType":"YulFunctionCall","src":"27245:79:64"},"nativeSrc":"27245:79:64","nodeType":"YulExpressionStatement","src":"27245:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27215:6:64","nodeType":"YulIdentifier","src":"27215:6:64"},{"kind":"number","nativeSrc":"27223:18:64","nodeType":"YulLiteral","src":"27223:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27212:2:64","nodeType":"YulIdentifier","src":"27212:2:64"},"nativeSrc":"27212:30:64","nodeType":"YulFunctionCall","src":"27212:30:64"},"nativeSrc":"27209:117:64","nodeType":"YulIf","src":"27209:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27351:5:64","nodeType":"YulIdentifier","src":"27351:5:64"},{"kind":"number","nativeSrc":"27358:4:64","nodeType":"YulLiteral","src":"27358:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27347:3:64","nodeType":"YulIdentifier","src":"27347:3:64"},"nativeSrc":"27347:16:64","nodeType":"YulFunctionCall","src":"27347:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27399:9:64","nodeType":"YulIdentifier","src":"27399:9:64"},{"name":"offset","nativeSrc":"27410:6:64","nodeType":"YulIdentifier","src":"27410:6:64"}],"functionName":{"name":"add","nativeSrc":"27395:3:64","nodeType":"YulIdentifier","src":"27395:3:64"},"nativeSrc":"27395:22:64","nodeType":"YulFunctionCall","src":"27395:22:64"},{"name":"end","nativeSrc":"27419:3:64","nodeType":"YulIdentifier","src":"27419:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"27365:29:64","nodeType":"YulIdentifier","src":"27365:29:64"},"nativeSrc":"27365:58:64","nodeType":"YulFunctionCall","src":"27365:58:64"}],"functionName":{"name":"mstore","nativeSrc":"27340:6:64","nodeType":"YulIdentifier","src":"27340:6:64"},"nativeSrc":"27340:84:64","nodeType":"YulFunctionCall","src":"27340:84:64"},"nativeSrc":"27340:84:64","nodeType":"YulExpressionStatement","src":"27340:84:64"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"26691:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"26752:9:64","nodeType":"YulTypedName","src":"26752:9:64","type":""},{"name":"end","nativeSrc":"26763:3:64","nodeType":"YulTypedName","src":"26763:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"26771:5:64","nodeType":"YulTypedName","src":"26771:5:64","type":""}],"src":"26691:751:64"},{"body":{"nativeSrc":"27545:454:64","nodeType":"YulBlock","src":"27545:454:64","statements":[{"body":{"nativeSrc":"27591:83:64","nodeType":"YulBlock","src":"27591:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"27593:77:64","nodeType":"YulIdentifier","src":"27593:77:64"},"nativeSrc":"27593:79:64","nodeType":"YulFunctionCall","src":"27593:79:64"},"nativeSrc":"27593:79:64","nodeType":"YulExpressionStatement","src":"27593:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"27566:7:64","nodeType":"YulIdentifier","src":"27566:7:64"},{"name":"headStart","nativeSrc":"27575:9:64","nodeType":"YulIdentifier","src":"27575:9:64"}],"functionName":{"name":"sub","nativeSrc":"27562:3:64","nodeType":"YulIdentifier","src":"27562:3:64"},"nativeSrc":"27562:23:64","nodeType":"YulFunctionCall","src":"27562:23:64"},{"kind":"number","nativeSrc":"27587:2:64","nodeType":"YulLiteral","src":"27587:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"27558:3:64","nodeType":"YulIdentifier","src":"27558:3:64"},"nativeSrc":"27558:32:64","nodeType":"YulFunctionCall","src":"27558:32:64"},"nativeSrc":"27555:119:64","nodeType":"YulIf","src":"27555:119:64"},{"nativeSrc":"27684:308:64","nodeType":"YulBlock","src":"27684:308:64","statements":[{"nativeSrc":"27699:45:64","nodeType":"YulVariableDeclaration","src":"27699:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27730:9:64","nodeType":"YulIdentifier","src":"27730:9:64"},{"kind":"number","nativeSrc":"27741:1:64","nodeType":"YulLiteral","src":"27741:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"27726:3:64","nodeType":"YulIdentifier","src":"27726:3:64"},"nativeSrc":"27726:17:64","nodeType":"YulFunctionCall","src":"27726:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"27713:12:64","nodeType":"YulIdentifier","src":"27713:12:64"},"nativeSrc":"27713:31:64","nodeType":"YulFunctionCall","src":"27713:31:64"},"variables":[{"name":"offset","nativeSrc":"27703:6:64","nodeType":"YulTypedName","src":"27703:6:64","type":""}]},{"body":{"nativeSrc":"27791:83:64","nodeType":"YulBlock","src":"27791:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"27793:77:64","nodeType":"YulIdentifier","src":"27793:77:64"},"nativeSrc":"27793:79:64","nodeType":"YulFunctionCall","src":"27793:79:64"},"nativeSrc":"27793:79:64","nodeType":"YulExpressionStatement","src":"27793:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"27763:6:64","nodeType":"YulIdentifier","src":"27763:6:64"},{"kind":"number","nativeSrc":"27771:18:64","nodeType":"YulLiteral","src":"27771:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"27760:2:64","nodeType":"YulIdentifier","src":"27760:2:64"},"nativeSrc":"27760:30:64","nodeType":"YulFunctionCall","src":"27760:30:64"},"nativeSrc":"27757:117:64","nodeType":"YulIf","src":"27757:117:64"},{"nativeSrc":"27888:94:64","nodeType":"YulAssignment","src":"27888:94:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"27954:9:64","nodeType":"YulIdentifier","src":"27954:9:64"},{"name":"offset","nativeSrc":"27965:6:64","nodeType":"YulIdentifier","src":"27965:6:64"}],"functionName":{"name":"add","nativeSrc":"27950:3:64","nodeType":"YulIdentifier","src":"27950:3:64"},"nativeSrc":"27950:22:64","nodeType":"YulFunctionCall","src":"27950:22:64"},{"name":"dataEnd","nativeSrc":"27974:7:64","nodeType":"YulIdentifier","src":"27974:7:64"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"27898:51:64","nodeType":"YulIdentifier","src":"27898:51:64"},"nativeSrc":"27898:84:64","nodeType":"YulFunctionCall","src":"27898:84:64"},"variableNames":[{"name":"value0","nativeSrc":"27888:6:64","nodeType":"YulIdentifier","src":"27888:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"27448:551:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"27515:9:64","nodeType":"YulTypedName","src":"27515:9:64","type":""},{"name":"dataEnd","nativeSrc":"27526:7:64","nodeType":"YulTypedName","src":"27526:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"27538:6:64","nodeType":"YulTypedName","src":"27538:6:64","type":""}],"src":"27448:551:64"},{"body":{"nativeSrc":"28033:152:64","nodeType":"YulBlock","src":"28033:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28050:1:64","nodeType":"YulLiteral","src":"28050:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"28053:77:64","nodeType":"YulLiteral","src":"28053:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"28043:6:64","nodeType":"YulIdentifier","src":"28043:6:64"},"nativeSrc":"28043:88:64","nodeType":"YulFunctionCall","src":"28043:88:64"},"nativeSrc":"28043:88:64","nodeType":"YulExpressionStatement","src":"28043:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28147:1:64","nodeType":"YulLiteral","src":"28147:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"28150:4:64","nodeType":"YulLiteral","src":"28150:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"28140:6:64","nodeType":"YulIdentifier","src":"28140:6:64"},"nativeSrc":"28140:15:64","nodeType":"YulFunctionCall","src":"28140:15:64"},"nativeSrc":"28140:15:64","nodeType":"YulExpressionStatement","src":"28140:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28171:1:64","nodeType":"YulLiteral","src":"28171:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"28174:4:64","nodeType":"YulLiteral","src":"28174:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"28164:6:64","nodeType":"YulIdentifier","src":"28164:6:64"},"nativeSrc":"28164:15:64","nodeType":"YulFunctionCall","src":"28164:15:64"},"nativeSrc":"28164:15:64","nodeType":"YulExpressionStatement","src":"28164:15:64"}]},"name":"panic_error_0x11","nativeSrc":"28005:180:64","nodeType":"YulFunctionDefinition","src":"28005:180:64"},{"body":{"nativeSrc":"28234:190:64","nodeType":"YulBlock","src":"28234:190:64","statements":[{"nativeSrc":"28244:33:64","nodeType":"YulAssignment","src":"28244:33:64","value":{"arguments":[{"name":"value","nativeSrc":"28271:5:64","nodeType":"YulIdentifier","src":"28271:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28253:17:64","nodeType":"YulIdentifier","src":"28253:17:64"},"nativeSrc":"28253:24:64","nodeType":"YulFunctionCall","src":"28253:24:64"},"variableNames":[{"name":"value","nativeSrc":"28244:5:64","nodeType":"YulIdentifier","src":"28244:5:64"}]},{"body":{"nativeSrc":"28367:22:64","nodeType":"YulBlock","src":"28367:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"28369:16:64","nodeType":"YulIdentifier","src":"28369:16:64"},"nativeSrc":"28369:18:64","nodeType":"YulFunctionCall","src":"28369:18:64"},"nativeSrc":"28369:18:64","nodeType":"YulExpressionStatement","src":"28369:18:64"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"28292:5:64","nodeType":"YulIdentifier","src":"28292:5:64"},{"kind":"number","nativeSrc":"28299:66:64","nodeType":"YulLiteral","src":"28299:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"28289:2:64","nodeType":"YulIdentifier","src":"28289:2:64"},"nativeSrc":"28289:77:64","nodeType":"YulFunctionCall","src":"28289:77:64"},"nativeSrc":"28286:103:64","nodeType":"YulIf","src":"28286:103:64"},{"nativeSrc":"28398:20:64","nodeType":"YulAssignment","src":"28398:20:64","value":{"arguments":[{"name":"value","nativeSrc":"28409:5:64","nodeType":"YulIdentifier","src":"28409:5:64"},{"kind":"number","nativeSrc":"28416:1:64","nodeType":"YulLiteral","src":"28416:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28405:3:64","nodeType":"YulIdentifier","src":"28405:3:64"},"nativeSrc":"28405:13:64","nodeType":"YulFunctionCall","src":"28405:13:64"},"variableNames":[{"name":"ret","nativeSrc":"28398:3:64","nodeType":"YulIdentifier","src":"28398:3:64"}]}]},"name":"increment_t_uint256","nativeSrc":"28191:233:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28220:5:64","nodeType":"YulTypedName","src":"28220:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"28230:3:64","nodeType":"YulTypedName","src":"28230:3:64","type":""}],"src":"28191:233:64"},{"body":{"nativeSrc":"28483:32:64","nodeType":"YulBlock","src":"28483:32:64","statements":[{"nativeSrc":"28493:16:64","nodeType":"YulAssignment","src":"28493:16:64","value":{"name":"value","nativeSrc":"28504:5:64","nodeType":"YulIdentifier","src":"28504:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"28493:7:64","nodeType":"YulIdentifier","src":"28493:7:64"}]}]},"name":"cleanup_t_rational_1_by_1","nativeSrc":"28430:85:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28465:5:64","nodeType":"YulTypedName","src":"28465:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"28475:7:64","nodeType":"YulTypedName","src":"28475:7:64","type":""}],"src":"28430:85:64"},{"body":{"nativeSrc":"28589:90:64","nodeType":"YulBlock","src":"28589:90:64","statements":[{"nativeSrc":"28599:74:64","nodeType":"YulAssignment","src":"28599:74:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"28665:5:64","nodeType":"YulIdentifier","src":"28665:5:64"}],"functionName":{"name":"cleanup_t_rational_1_by_1","nativeSrc":"28639:25:64","nodeType":"YulIdentifier","src":"28639:25:64"},"nativeSrc":"28639:32:64","nodeType":"YulFunctionCall","src":"28639:32:64"}],"functionName":{"name":"identity","nativeSrc":"28630:8:64","nodeType":"YulIdentifier","src":"28630:8:64"},"nativeSrc":"28630:42:64","nodeType":"YulFunctionCall","src":"28630:42:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"28612:17:64","nodeType":"YulIdentifier","src":"28612:17:64"},"nativeSrc":"28612:61:64","nodeType":"YulFunctionCall","src":"28612:61:64"},"variableNames":[{"name":"converted","nativeSrc":"28599:9:64","nodeType":"YulIdentifier","src":"28599:9:64"}]}]},"name":"convert_t_rational_1_by_1_to_t_uint256","nativeSrc":"28521:158:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28569:5:64","nodeType":"YulTypedName","src":"28569:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"28579:9:64","nodeType":"YulTypedName","src":"28579:9:64","type":""}],"src":"28521:158:64"},{"body":{"nativeSrc":"28758:74:64","nodeType":"YulBlock","src":"28758:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"28775:3:64","nodeType":"YulIdentifier","src":"28775:3:64"},{"arguments":[{"name":"value","nativeSrc":"28819:5:64","nodeType":"YulIdentifier","src":"28819:5:64"}],"functionName":{"name":"convert_t_rational_1_by_1_to_t_uint256","nativeSrc":"28780:38:64","nodeType":"YulIdentifier","src":"28780:38:64"},"nativeSrc":"28780:45:64","nodeType":"YulFunctionCall","src":"28780:45:64"}],"functionName":{"name":"mstore","nativeSrc":"28768:6:64","nodeType":"YulIdentifier","src":"28768:6:64"},"nativeSrc":"28768:58:64","nodeType":"YulFunctionCall","src":"28768:58:64"},"nativeSrc":"28768:58:64","nodeType":"YulExpressionStatement","src":"28768:58:64"}]},"name":"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack","nativeSrc":"28685:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"28746:5:64","nodeType":"YulTypedName","src":"28746:5:64","type":""},{"name":"pos","nativeSrc":"28753:3:64","nodeType":"YulTypedName","src":"28753:3:64","type":""}],"src":"28685:147:64"},{"body":{"nativeSrc":"29074:531:64","nodeType":"YulBlock","src":"29074:531:64","statements":[{"nativeSrc":"29084:27:64","nodeType":"YulAssignment","src":"29084:27:64","value":{"arguments":[{"name":"headStart","nativeSrc":"29096:9:64","nodeType":"YulIdentifier","src":"29096:9:64"},{"kind":"number","nativeSrc":"29107:3:64","nodeType":"YulLiteral","src":"29107:3:64","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"29092:3:64","nodeType":"YulIdentifier","src":"29092:3:64"},"nativeSrc":"29092:19:64","nodeType":"YulFunctionCall","src":"29092:19:64"},"variableNames":[{"name":"tail","nativeSrc":"29084:4:64","nodeType":"YulIdentifier","src":"29084:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29165:6:64","nodeType":"YulIdentifier","src":"29165:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"29178:9:64","nodeType":"YulIdentifier","src":"29178:9:64"},{"kind":"number","nativeSrc":"29189:1:64","nodeType":"YulLiteral","src":"29189:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29174:3:64","nodeType":"YulIdentifier","src":"29174:3:64"},"nativeSrc":"29174:17:64","nodeType":"YulFunctionCall","src":"29174:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29121:43:64","nodeType":"YulIdentifier","src":"29121:43:64"},"nativeSrc":"29121:71:64","nodeType":"YulFunctionCall","src":"29121:71:64"},"nativeSrc":"29121:71:64","nodeType":"YulExpressionStatement","src":"29121:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"29246:6:64","nodeType":"YulIdentifier","src":"29246:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"29259:9:64","nodeType":"YulIdentifier","src":"29259:9:64"},{"kind":"number","nativeSrc":"29270:2:64","nodeType":"YulLiteral","src":"29270:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29255:3:64","nodeType":"YulIdentifier","src":"29255:3:64"},"nativeSrc":"29255:18:64","nodeType":"YulFunctionCall","src":"29255:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"29202:43:64","nodeType":"YulIdentifier","src":"29202:43:64"},"nativeSrc":"29202:72:64","nodeType":"YulFunctionCall","src":"29202:72:64"},"nativeSrc":"29202:72:64","nodeType":"YulExpressionStatement","src":"29202:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"29328:6:64","nodeType":"YulIdentifier","src":"29328:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"29341:9:64","nodeType":"YulIdentifier","src":"29341:9:64"},{"kind":"number","nativeSrc":"29352:2:64","nodeType":"YulLiteral","src":"29352:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"29337:3:64","nodeType":"YulIdentifier","src":"29337:3:64"},"nativeSrc":"29337:18:64","nodeType":"YulFunctionCall","src":"29337:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"29284:43:64","nodeType":"YulIdentifier","src":"29284:43:64"},"nativeSrc":"29284:72:64","nodeType":"YulFunctionCall","src":"29284:72:64"},"nativeSrc":"29284:72:64","nodeType":"YulExpressionStatement","src":"29284:72:64"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"29418:6:64","nodeType":"YulIdentifier","src":"29418:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"29431:9:64","nodeType":"YulIdentifier","src":"29431:9:64"},{"kind":"number","nativeSrc":"29442:2:64","nodeType":"YulLiteral","src":"29442:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"29427:3:64","nodeType":"YulIdentifier","src":"29427:3:64"},"nativeSrc":"29427:18:64","nodeType":"YulFunctionCall","src":"29427:18:64"}],"functionName":{"name":"abi_encode_t_rational_1_by_1_to_t_uint256_fromStack","nativeSrc":"29366:51:64","nodeType":"YulIdentifier","src":"29366:51:64"},"nativeSrc":"29366:80:64","nodeType":"YulFunctionCall","src":"29366:80:64"},"nativeSrc":"29366:80:64","nodeType":"YulExpressionStatement","src":"29366:80:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29467:9:64","nodeType":"YulIdentifier","src":"29467:9:64"},{"kind":"number","nativeSrc":"29478:3:64","nodeType":"YulLiteral","src":"29478:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"29463:3:64","nodeType":"YulIdentifier","src":"29463:3:64"},"nativeSrc":"29463:19:64","nodeType":"YulFunctionCall","src":"29463:19:64"},{"arguments":[{"name":"tail","nativeSrc":"29488:4:64","nodeType":"YulIdentifier","src":"29488:4:64"},{"name":"headStart","nativeSrc":"29494:9:64","nodeType":"YulIdentifier","src":"29494:9:64"}],"functionName":{"name":"sub","nativeSrc":"29484:3:64","nodeType":"YulIdentifier","src":"29484:3:64"},"nativeSrc":"29484:20:64","nodeType":"YulFunctionCall","src":"29484:20:64"}],"functionName":{"name":"mstore","nativeSrc":"29456:6:64","nodeType":"YulIdentifier","src":"29456:6:64"},"nativeSrc":"29456:49:64","nodeType":"YulFunctionCall","src":"29456:49:64"},"nativeSrc":"29456:49:64","nodeType":"YulExpressionStatement","src":"29456:49:64"},{"nativeSrc":"29514:84:64","nodeType":"YulAssignment","src":"29514:84:64","value":{"arguments":[{"name":"value4","nativeSrc":"29584:6:64","nodeType":"YulIdentifier","src":"29584:6:64"},{"name":"tail","nativeSrc":"29593:4:64","nodeType":"YulIdentifier","src":"29593:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"29522:61:64","nodeType":"YulIdentifier","src":"29522:61:64"},"nativeSrc":"29522:76:64","nodeType":"YulFunctionCall","src":"29522:76:64"},"variableNames":[{"name":"tail","nativeSrc":"29514:4:64","nodeType":"YulIdentifier","src":"29514:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_rational_1_by_1_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"28838:767:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29014:9:64","nodeType":"YulTypedName","src":"29014:9:64","type":""},{"name":"value4","nativeSrc":"29026:6:64","nodeType":"YulTypedName","src":"29026:6:64","type":""},{"name":"value3","nativeSrc":"29034:6:64","nodeType":"YulTypedName","src":"29034:6:64","type":""},{"name":"value2","nativeSrc":"29042:6:64","nodeType":"YulTypedName","src":"29042:6:64","type":""},{"name":"value1","nativeSrc":"29050:6:64","nodeType":"YulTypedName","src":"29050:6:64","type":""},{"name":"value0","nativeSrc":"29058:6:64","nodeType":"YulTypedName","src":"29058:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29069:4:64","nodeType":"YulTypedName","src":"29069:4:64","type":""}],"src":"28838:767:64"},{"body":{"nativeSrc":"29653:52:64","nodeType":"YulBlock","src":"29653:52:64","statements":[{"nativeSrc":"29663:35:64","nodeType":"YulAssignment","src":"29663:35:64","value":{"arguments":[{"kind":"number","nativeSrc":"29688:2:64","nodeType":"YulLiteral","src":"29688:2:64","type":"","value":"96"},{"name":"value","nativeSrc":"29692:5:64","nodeType":"YulIdentifier","src":"29692:5:64"}],"functionName":{"name":"shl","nativeSrc":"29684:3:64","nodeType":"YulIdentifier","src":"29684:3:64"},"nativeSrc":"29684:14:64","nodeType":"YulFunctionCall","src":"29684:14:64"},"variableNames":[{"name":"newValue","nativeSrc":"29663:8:64","nodeType":"YulIdentifier","src":"29663:8:64"}]}]},"name":"shift_left_96","nativeSrc":"29611:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29634:5:64","nodeType":"YulTypedName","src":"29634:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"29644:8:64","nodeType":"YulTypedName","src":"29644:8:64","type":""}],"src":"29611:94:64"},{"body":{"nativeSrc":"29758:47:64","nodeType":"YulBlock","src":"29758:47:64","statements":[{"nativeSrc":"29768:31:64","nodeType":"YulAssignment","src":"29768:31:64","value":{"arguments":[{"name":"value","nativeSrc":"29793:5:64","nodeType":"YulIdentifier","src":"29793:5:64"}],"functionName":{"name":"shift_left_96","nativeSrc":"29779:13:64","nodeType":"YulIdentifier","src":"29779:13:64"},"nativeSrc":"29779:20:64","nodeType":"YulFunctionCall","src":"29779:20:64"},"variableNames":[{"name":"aligned","nativeSrc":"29768:7:64","nodeType":"YulIdentifier","src":"29768:7:64"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"29711:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29740:5:64","nodeType":"YulTypedName","src":"29740:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"29750:7:64","nodeType":"YulTypedName","src":"29750:7:64","type":""}],"src":"29711:94:64"},{"body":{"nativeSrc":"29858:53:64","nodeType":"YulBlock","src":"29858:53:64","statements":[{"nativeSrc":"29868:37:64","nodeType":"YulAssignment","src":"29868:37:64","value":{"arguments":[{"name":"value","nativeSrc":"29899:5:64","nodeType":"YulIdentifier","src":"29899:5:64"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"29879:19:64","nodeType":"YulIdentifier","src":"29879:19:64"},"nativeSrc":"29879:26:64","nodeType":"YulFunctionCall","src":"29879:26:64"},"variableNames":[{"name":"aligned","nativeSrc":"29868:7:64","nodeType":"YulIdentifier","src":"29868:7:64"}]}]},"name":"leftAlign_t_address","nativeSrc":"29811:100:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29840:5:64","nodeType":"YulTypedName","src":"29840:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"29850:7:64","nodeType":"YulTypedName","src":"29850:7:64","type":""}],"src":"29811:100:64"},{"body":{"nativeSrc":"30017:104:64","nodeType":"YulBlock","src":"30017:104:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30034:3:64","nodeType":"YulIdentifier","src":"30034:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30107:5:64","nodeType":"YulIdentifier","src":"30107:5:64"}],"functionName":{"name":"convert_t_contract$_IERC1155_$1176_to_t_address","nativeSrc":"30059:47:64","nodeType":"YulIdentifier","src":"30059:47:64"},"nativeSrc":"30059:54:64","nodeType":"YulFunctionCall","src":"30059:54:64"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"30039:19:64","nodeType":"YulIdentifier","src":"30039:19:64"},"nativeSrc":"30039:75:64","nodeType":"YulFunctionCall","src":"30039:75:64"}],"functionName":{"name":"mstore","nativeSrc":"30027:6:64","nodeType":"YulIdentifier","src":"30027:6:64"},"nativeSrc":"30027:88:64","nodeType":"YulFunctionCall","src":"30027:88:64"},"nativeSrc":"30027:88:64","nodeType":"YulExpressionStatement","src":"30027:88:64"}]},"name":"abi_encode_t_contract$_IERC1155_$1176_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"29917:204:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30005:5:64","nodeType":"YulTypedName","src":"30005:5:64","type":""},{"name":"pos","nativeSrc":"30012:3:64","nodeType":"YulTypedName","src":"30012:3:64","type":""}],"src":"29917:204:64"},{"body":{"nativeSrc":"30210:74:64","nodeType":"YulBlock","src":"30210:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30227:3:64","nodeType":"YulIdentifier","src":"30227:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30270:5:64","nodeType":"YulIdentifier","src":"30270:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"30252:17:64","nodeType":"YulIdentifier","src":"30252:17:64"},"nativeSrc":"30252:24:64","nodeType":"YulFunctionCall","src":"30252:24:64"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"30232:19:64","nodeType":"YulIdentifier","src":"30232:19:64"},"nativeSrc":"30232:45:64","nodeType":"YulFunctionCall","src":"30232:45:64"}],"functionName":{"name":"mstore","nativeSrc":"30220:6:64","nodeType":"YulIdentifier","src":"30220:6:64"},"nativeSrc":"30220:58:64","nodeType":"YulFunctionCall","src":"30220:58:64"},"nativeSrc":"30220:58:64","nodeType":"YulExpressionStatement","src":"30220:58:64"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"30127:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30198:5:64","nodeType":"YulTypedName","src":"30198:5:64","type":""},{"name":"pos","nativeSrc":"30205:3:64","nodeType":"YulTypedName","src":"30205:3:64","type":""}],"src":"30127:157:64"},{"body":{"nativeSrc":"30337:32:64","nodeType":"YulBlock","src":"30337:32:64","statements":[{"nativeSrc":"30347:16:64","nodeType":"YulAssignment","src":"30347:16:64","value":{"name":"value","nativeSrc":"30358:5:64","nodeType":"YulIdentifier","src":"30358:5:64"},"variableNames":[{"name":"aligned","nativeSrc":"30347:7:64","nodeType":"YulIdentifier","src":"30347:7:64"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"30290:79:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30319:5:64","nodeType":"YulTypedName","src":"30319:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"30329:7:64","nodeType":"YulTypedName","src":"30329:7:64","type":""}],"src":"30290:79:64"},{"body":{"nativeSrc":"30458:74:64","nodeType":"YulBlock","src":"30458:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"30475:3:64","nodeType":"YulIdentifier","src":"30475:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30518:5:64","nodeType":"YulIdentifier","src":"30518:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"30500:17:64","nodeType":"YulIdentifier","src":"30500:17:64"},"nativeSrc":"30500:24:64","nodeType":"YulFunctionCall","src":"30500:24:64"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"30480:19:64","nodeType":"YulIdentifier","src":"30480:19:64"},"nativeSrc":"30480:45:64","nodeType":"YulFunctionCall","src":"30480:45:64"}],"functionName":{"name":"mstore","nativeSrc":"30468:6:64","nodeType":"YulIdentifier","src":"30468:6:64"},"nativeSrc":"30468:58:64","nodeType":"YulFunctionCall","src":"30468:58:64"},"nativeSrc":"30468:58:64","nodeType":"YulExpressionStatement","src":"30468:58:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"30375:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30446:5:64","nodeType":"YulTypedName","src":"30446:5:64","type":""},{"name":"pos","nativeSrc":"30453:3:64","nodeType":"YulTypedName","src":"30453:3:64","type":""}],"src":"30375:157:64"},{"body":{"nativeSrc":"30651:34:64","nodeType":"YulBlock","src":"30651:34:64","statements":[{"nativeSrc":"30661:18:64","nodeType":"YulAssignment","src":"30661:18:64","value":{"name":"pos","nativeSrc":"30676:3:64","nodeType":"YulIdentifier","src":"30676:3:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"30661:11:64","nodeType":"YulIdentifier","src":"30661:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30538:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30623:3:64","nodeType":"YulTypedName","src":"30623:3:64","type":""},{"name":"length","nativeSrc":"30628:6:64","nodeType":"YulTypedName","src":"30628:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"30639:11:64","nodeType":"YulTypedName","src":"30639:11:64","type":""}],"src":"30538:147:64"},{"body":{"nativeSrc":"30799:278:64","nodeType":"YulBlock","src":"30799:278:64","statements":[{"nativeSrc":"30809:52:64","nodeType":"YulVariableDeclaration","src":"30809:52:64","value":{"arguments":[{"name":"value","nativeSrc":"30855:5:64","nodeType":"YulIdentifier","src":"30855:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"30823:31:64","nodeType":"YulIdentifier","src":"30823:31:64"},"nativeSrc":"30823:38:64","nodeType":"YulFunctionCall","src":"30823:38:64"},"variables":[{"name":"length","nativeSrc":"30813:6:64","nodeType":"YulTypedName","src":"30813:6:64","type":""}]},{"nativeSrc":"30870:95:64","nodeType":"YulAssignment","src":"30870:95:64","value":{"arguments":[{"name":"pos","nativeSrc":"30953:3:64","nodeType":"YulIdentifier","src":"30953:3:64"},{"name":"length","nativeSrc":"30958:6:64","nodeType":"YulIdentifier","src":"30958:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30877:75:64","nodeType":"YulIdentifier","src":"30877:75:64"},"nativeSrc":"30877:88:64","nodeType":"YulFunctionCall","src":"30877:88:64"},"variableNames":[{"name":"pos","nativeSrc":"30870:3:64","nodeType":"YulIdentifier","src":"30870:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31013:5:64","nodeType":"YulIdentifier","src":"31013:5:64"},{"kind":"number","nativeSrc":"31020:4:64","nodeType":"YulLiteral","src":"31020:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"31009:3:64","nodeType":"YulIdentifier","src":"31009:3:64"},"nativeSrc":"31009:16:64","nodeType":"YulFunctionCall","src":"31009:16:64"},{"name":"pos","nativeSrc":"31027:3:64","nodeType":"YulIdentifier","src":"31027:3:64"},{"name":"length","nativeSrc":"31032:6:64","nodeType":"YulIdentifier","src":"31032:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"30974:34:64","nodeType":"YulIdentifier","src":"30974:34:64"},"nativeSrc":"30974:65:64","nodeType":"YulFunctionCall","src":"30974:65:64"},"nativeSrc":"30974:65:64","nodeType":"YulExpressionStatement","src":"30974:65:64"},{"nativeSrc":"31048:23:64","nodeType":"YulAssignment","src":"31048:23:64","value":{"arguments":[{"name":"pos","nativeSrc":"31059:3:64","nodeType":"YulIdentifier","src":"31059:3:64"},{"name":"length","nativeSrc":"31064:6:64","nodeType":"YulIdentifier","src":"31064:6:64"}],"functionName":{"name":"add","nativeSrc":"31055:3:64","nodeType":"YulIdentifier","src":"31055:3:64"},"nativeSrc":"31055:16:64","nodeType":"YulFunctionCall","src":"31055:16:64"},"variableNames":[{"name":"end","nativeSrc":"31048:3:64","nodeType":"YulIdentifier","src":"31048:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"30691:386:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30780:5:64","nodeType":"YulTypedName","src":"30780:5:64","type":""},{"name":"pos","nativeSrc":"30787:3:64","nodeType":"YulTypedName","src":"30787:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30795:3:64","nodeType":"YulTypedName","src":"30795:3:64","type":""}],"src":"30691:386:64"},{"body":{"nativeSrc":"31346:606:64","nodeType":"YulBlock","src":"31346:606:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"31436:6:64","nodeType":"YulIdentifier","src":"31436:6:64"},{"name":"pos","nativeSrc":"31445:3:64","nodeType":"YulIdentifier","src":"31445:3:64"}],"functionName":{"name":"abi_encode_t_contract$_IERC1155_$1176_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"31357:78:64","nodeType":"YulIdentifier","src":"31357:78:64"},"nativeSrc":"31357:92:64","nodeType":"YulFunctionCall","src":"31357:92:64"},"nativeSrc":"31357:92:64","nodeType":"YulExpressionStatement","src":"31357:92:64"},{"nativeSrc":"31458:19:64","nodeType":"YulAssignment","src":"31458:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"31469:3:64","nodeType":"YulIdentifier","src":"31469:3:64"},{"kind":"number","nativeSrc":"31474:2:64","nodeType":"YulLiteral","src":"31474:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"31465:3:64","nodeType":"YulIdentifier","src":"31465:3:64"},"nativeSrc":"31465:12:64","nodeType":"YulFunctionCall","src":"31465:12:64"},"variableNames":[{"name":"pos","nativeSrc":"31458:3:64","nodeType":"YulIdentifier","src":"31458:3:64"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"31549:6:64","nodeType":"YulIdentifier","src":"31549:6:64"},{"name":"pos","nativeSrc":"31558:3:64","nodeType":"YulIdentifier","src":"31558:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"31487:61:64","nodeType":"YulIdentifier","src":"31487:61:64"},"nativeSrc":"31487:75:64","nodeType":"YulFunctionCall","src":"31487:75:64"},"nativeSrc":"31487:75:64","nodeType":"YulExpressionStatement","src":"31487:75:64"},{"nativeSrc":"31571:19:64","nodeType":"YulAssignment","src":"31571:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"31582:3:64","nodeType":"YulIdentifier","src":"31582:3:64"},{"kind":"number","nativeSrc":"31587:2:64","nodeType":"YulLiteral","src":"31587:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"31578:3:64","nodeType":"YulIdentifier","src":"31578:3:64"},"nativeSrc":"31578:12:64","nodeType":"YulFunctionCall","src":"31578:12:64"},"variableNames":[{"name":"pos","nativeSrc":"31571:3:64","nodeType":"YulIdentifier","src":"31571:3:64"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"31662:6:64","nodeType":"YulIdentifier","src":"31662:6:64"},{"name":"pos","nativeSrc":"31671:3:64","nodeType":"YulIdentifier","src":"31671:3:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"31600:61:64","nodeType":"YulIdentifier","src":"31600:61:64"},"nativeSrc":"31600:75:64","nodeType":"YulFunctionCall","src":"31600:75:64"},"nativeSrc":"31600:75:64","nodeType":"YulExpressionStatement","src":"31600:75:64"},{"nativeSrc":"31684:19:64","nodeType":"YulAssignment","src":"31684:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"31695:3:64","nodeType":"YulIdentifier","src":"31695:3:64"},{"kind":"number","nativeSrc":"31700:2:64","nodeType":"YulLiteral","src":"31700:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31691:3:64","nodeType":"YulIdentifier","src":"31691:3:64"},"nativeSrc":"31691:12:64","nodeType":"YulFunctionCall","src":"31691:12:64"},"variableNames":[{"name":"pos","nativeSrc":"31684:3:64","nodeType":"YulIdentifier","src":"31684:3:64"}]},{"expression":{"arguments":[{"name":"value3","nativeSrc":"31775:6:64","nodeType":"YulIdentifier","src":"31775:6:64"},{"name":"pos","nativeSrc":"31784:3:64","nodeType":"YulIdentifier","src":"31784:3:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"31713:61:64","nodeType":"YulIdentifier","src":"31713:61:64"},"nativeSrc":"31713:75:64","nodeType":"YulFunctionCall","src":"31713:75:64"},"nativeSrc":"31713:75:64","nodeType":"YulExpressionStatement","src":"31713:75:64"},{"nativeSrc":"31797:19:64","nodeType":"YulAssignment","src":"31797:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"31808:3:64","nodeType":"YulIdentifier","src":"31808:3:64"},{"kind":"number","nativeSrc":"31813:2:64","nodeType":"YulLiteral","src":"31813:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31804:3:64","nodeType":"YulIdentifier","src":"31804:3:64"},"nativeSrc":"31804:12:64","nodeType":"YulFunctionCall","src":"31804:12:64"},"variableNames":[{"name":"pos","nativeSrc":"31797:3:64","nodeType":"YulIdentifier","src":"31797:3:64"}]},{"nativeSrc":"31826:100:64","nodeType":"YulAssignment","src":"31826:100:64","value":{"arguments":[{"name":"value4","nativeSrc":"31913:6:64","nodeType":"YulIdentifier","src":"31913:6:64"},{"name":"pos","nativeSrc":"31922:3:64","nodeType":"YulIdentifier","src":"31922:3:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"31833:79:64","nodeType":"YulIdentifier","src":"31833:79:64"},"nativeSrc":"31833:93:64","nodeType":"YulFunctionCall","src":"31833:93:64"},"variableNames":[{"name":"pos","nativeSrc":"31826:3:64","nodeType":"YulIdentifier","src":"31826:3:64"}]},{"nativeSrc":"31936:10:64","nodeType":"YulAssignment","src":"31936:10:64","value":{"name":"pos","nativeSrc":"31943:3:64","nodeType":"YulIdentifier","src":"31943:3:64"},"variableNames":[{"name":"end","nativeSrc":"31936:3:64","nodeType":"YulIdentifier","src":"31936:3:64"}]}]},"name":"abi_encode_tuple_packed_t_contract$_IERC1155_$1176_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"31083:869:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31293:3:64","nodeType":"YulTypedName","src":"31293:3:64","type":""},{"name":"value4","nativeSrc":"31299:6:64","nodeType":"YulTypedName","src":"31299:6:64","type":""},{"name":"value3","nativeSrc":"31307:6:64","nodeType":"YulTypedName","src":"31307:6:64","type":""},{"name":"value2","nativeSrc":"31315:6:64","nodeType":"YulTypedName","src":"31315:6:64","type":""},{"name":"value1","nativeSrc":"31323:6:64","nodeType":"YulTypedName","src":"31323:6:64","type":""},{"name":"value0","nativeSrc":"31331:6:64","nodeType":"YulTypedName","src":"31331:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"31342:3:64","nodeType":"YulTypedName","src":"31342:3:64","type":""}],"src":"31083:869:64"},{"body":{"nativeSrc":"32164:482:64","nodeType":"YulBlock","src":"32164:482:64","statements":[{"nativeSrc":"32174:26:64","nodeType":"YulVariableDeclaration","src":"32174:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"32190:3:64","nodeType":"YulIdentifier","src":"32190:3:64"},{"kind":"number","nativeSrc":"32195:4:64","nodeType":"YulLiteral","src":"32195:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"32186:3:64","nodeType":"YulIdentifier","src":"32186:3:64"},"nativeSrc":"32186:14:64","nodeType":"YulFunctionCall","src":"32186:14:64"},"variables":[{"name":"tail","nativeSrc":"32178:4:64","nodeType":"YulTypedName","src":"32178:4:64","type":""}]},{"nativeSrc":"32210:166:64","nodeType":"YulBlock","src":"32210:166:64","statements":[{"nativeSrc":"32247:43:64","nodeType":"YulVariableDeclaration","src":"32247:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32277:5:64","nodeType":"YulIdentifier","src":"32277:5:64"},{"kind":"number","nativeSrc":"32284:4:64","nodeType":"YulLiteral","src":"32284:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"32273:3:64","nodeType":"YulIdentifier","src":"32273:3:64"},"nativeSrc":"32273:16:64","nodeType":"YulFunctionCall","src":"32273:16:64"}],"functionName":{"name":"mload","nativeSrc":"32267:5:64","nodeType":"YulIdentifier","src":"32267:5:64"},"nativeSrc":"32267:23:64","nodeType":"YulFunctionCall","src":"32267:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"32251:12:64","nodeType":"YulTypedName","src":"32251:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"32337:12:64","nodeType":"YulIdentifier","src":"32337:12:64"},{"arguments":[{"name":"pos","nativeSrc":"32355:3:64","nodeType":"YulIdentifier","src":"32355:3:64"},{"kind":"number","nativeSrc":"32360:4:64","nodeType":"YulLiteral","src":"32360:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"32351:3:64","nodeType":"YulIdentifier","src":"32351:3:64"},"nativeSrc":"32351:14:64","nodeType":"YulFunctionCall","src":"32351:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"32303:33:64","nodeType":"YulIdentifier","src":"32303:33:64"},"nativeSrc":"32303:63:64","nodeType":"YulFunctionCall","src":"32303:63:64"},"nativeSrc":"32303:63:64","nodeType":"YulExpressionStatement","src":"32303:63:64"}]},{"nativeSrc":"32386:233:64","nodeType":"YulBlock","src":"32386:233:64","statements":[{"nativeSrc":"32421:43:64","nodeType":"YulVariableDeclaration","src":"32421:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32451:5:64","nodeType":"YulIdentifier","src":"32451:5:64"},{"kind":"number","nativeSrc":"32458:4:64","nodeType":"YulLiteral","src":"32458:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32447:3:64","nodeType":"YulIdentifier","src":"32447:3:64"},"nativeSrc":"32447:16:64","nodeType":"YulFunctionCall","src":"32447:16:64"}],"functionName":{"name":"mload","nativeSrc":"32441:5:64","nodeType":"YulIdentifier","src":"32441:5:64"},"nativeSrc":"32441:23:64","nodeType":"YulFunctionCall","src":"32441:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"32425:12:64","nodeType":"YulTypedName","src":"32425:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32489:3:64","nodeType":"YulIdentifier","src":"32489:3:64"},{"kind":"number","nativeSrc":"32494:4:64","nodeType":"YulLiteral","src":"32494:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32485:3:64","nodeType":"YulIdentifier","src":"32485:3:64"},"nativeSrc":"32485:14:64","nodeType":"YulFunctionCall","src":"32485:14:64"},{"arguments":[{"name":"tail","nativeSrc":"32505:4:64","nodeType":"YulIdentifier","src":"32505:4:64"},{"name":"pos","nativeSrc":"32511:3:64","nodeType":"YulIdentifier","src":"32511:3:64"}],"functionName":{"name":"sub","nativeSrc":"32501:3:64","nodeType":"YulIdentifier","src":"32501:3:64"},"nativeSrc":"32501:14:64","nodeType":"YulFunctionCall","src":"32501:14:64"}],"functionName":{"name":"mstore","nativeSrc":"32478:6:64","nodeType":"YulIdentifier","src":"32478:6:64"},"nativeSrc":"32478:38:64","nodeType":"YulFunctionCall","src":"32478:38:64"},"nativeSrc":"32478:38:64","nodeType":"YulExpressionStatement","src":"32478:38:64"},{"nativeSrc":"32529:79:64","nodeType":"YulAssignment","src":"32529:79:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"32589:12:64","nodeType":"YulIdentifier","src":"32589:12:64"},{"name":"tail","nativeSrc":"32603:4:64","nodeType":"YulIdentifier","src":"32603:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"32537:51:64","nodeType":"YulIdentifier","src":"32537:51:64"},"nativeSrc":"32537:71:64","nodeType":"YulFunctionCall","src":"32537:71:64"},"variableNames":[{"name":"tail","nativeSrc":"32529:4:64","nodeType":"YulIdentifier","src":"32529:4:64"}]}]},{"nativeSrc":"32629:11:64","nodeType":"YulAssignment","src":"32629:11:64","value":{"name":"tail","nativeSrc":"32636:4:64","nodeType":"YulIdentifier","src":"32636:4:64"},"variableNames":[{"name":"end","nativeSrc":"32629:3:64","nodeType":"YulIdentifier","src":"32629:3:64"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack","nativeSrc":"32028:618:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"32143:5:64","nodeType":"YulTypedName","src":"32143:5:64","type":""},{"name":"pos","nativeSrc":"32150:3:64","nodeType":"YulTypedName","src":"32150:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"32159:3:64","nodeType":"YulTypedName","src":"32159:3:64","type":""}],"src":"32028:618:64"},{"body":{"nativeSrc":"32812:237:64","nodeType":"YulBlock","src":"32812:237:64","statements":[{"nativeSrc":"32822:26:64","nodeType":"YulAssignment","src":"32822:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"32834:9:64","nodeType":"YulIdentifier","src":"32834:9:64"},{"kind":"number","nativeSrc":"32845:2:64","nodeType":"YulLiteral","src":"32845:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"32830:3:64","nodeType":"YulIdentifier","src":"32830:3:64"},"nativeSrc":"32830:18:64","nodeType":"YulFunctionCall","src":"32830:18:64"},"variableNames":[{"name":"tail","nativeSrc":"32822:4:64","nodeType":"YulIdentifier","src":"32822:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32869:9:64","nodeType":"YulIdentifier","src":"32869:9:64"},{"kind":"number","nativeSrc":"32880:1:64","nodeType":"YulLiteral","src":"32880:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"32865:3:64","nodeType":"YulIdentifier","src":"32865:3:64"},"nativeSrc":"32865:17:64","nodeType":"YulFunctionCall","src":"32865:17:64"},{"arguments":[{"name":"tail","nativeSrc":"32888:4:64","nodeType":"YulIdentifier","src":"32888:4:64"},{"name":"headStart","nativeSrc":"32894:9:64","nodeType":"YulIdentifier","src":"32894:9:64"}],"functionName":{"name":"sub","nativeSrc":"32884:3:64","nodeType":"YulIdentifier","src":"32884:3:64"},"nativeSrc":"32884:20:64","nodeType":"YulFunctionCall","src":"32884:20:64"}],"functionName":{"name":"mstore","nativeSrc":"32858:6:64","nodeType":"YulIdentifier","src":"32858:6:64"},"nativeSrc":"32858:47:64","nodeType":"YulFunctionCall","src":"32858:47:64"},"nativeSrc":"32858:47:64","nodeType":"YulExpressionStatement","src":"32858:47:64"},{"nativeSrc":"32914:128:64","nodeType":"YulAssignment","src":"32914:128:64","value":{"arguments":[{"name":"value0","nativeSrc":"33028:6:64","nodeType":"YulIdentifier","src":"33028:6:64"},{"name":"tail","nativeSrc":"33037:4:64","nodeType":"YulIdentifier","src":"33037:4:64"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack","nativeSrc":"32922:105:64","nodeType":"YulIdentifier","src":"32922:105:64"},"nativeSrc":"32922:120:64","nodeType":"YulFunctionCall","src":"32922:120:64"},"variableNames":[{"name":"tail","nativeSrc":"32914:4:64","nodeType":"YulIdentifier","src":"32914:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed","nativeSrc":"32652:397:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32784:9:64","nodeType":"YulTypedName","src":"32784:9:64","type":""},{"name":"value0","nativeSrc":"32796:6:64","nodeType":"YulTypedName","src":"32796:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"32807:4:64","nodeType":"YulTypedName","src":"32807:4:64","type":""}],"src":"32652:397:64"},{"body":{"nativeSrc":"33199:275:64","nodeType":"YulBlock","src":"33199:275:64","statements":[{"nativeSrc":"33209:26:64","nodeType":"YulAssignment","src":"33209:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"33221:9:64","nodeType":"YulIdentifier","src":"33221:9:64"},{"kind":"number","nativeSrc":"33232:2:64","nodeType":"YulLiteral","src":"33232:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"33217:3:64","nodeType":"YulIdentifier","src":"33217:3:64"},"nativeSrc":"33217:18:64","nodeType":"YulFunctionCall","src":"33217:18:64"},"variableNames":[{"name":"tail","nativeSrc":"33209:4:64","nodeType":"YulIdentifier","src":"33209:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"33289:6:64","nodeType":"YulIdentifier","src":"33289:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"33302:9:64","nodeType":"YulIdentifier","src":"33302:9:64"},{"kind":"number","nativeSrc":"33313:1:64","nodeType":"YulLiteral","src":"33313:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33298:3:64","nodeType":"YulIdentifier","src":"33298:3:64"},"nativeSrc":"33298:17:64","nodeType":"YulFunctionCall","src":"33298:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"33245:43:64","nodeType":"YulIdentifier","src":"33245:43:64"},"nativeSrc":"33245:71:64","nodeType":"YulFunctionCall","src":"33245:71:64"},"nativeSrc":"33245:71:64","nodeType":"YulExpressionStatement","src":"33245:71:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33337:9:64","nodeType":"YulIdentifier","src":"33337:9:64"},{"kind":"number","nativeSrc":"33348:2:64","nodeType":"YulLiteral","src":"33348:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33333:3:64","nodeType":"YulIdentifier","src":"33333:3:64"},"nativeSrc":"33333:18:64","nodeType":"YulFunctionCall","src":"33333:18:64"},{"arguments":[{"name":"tail","nativeSrc":"33357:4:64","nodeType":"YulIdentifier","src":"33357:4:64"},{"name":"headStart","nativeSrc":"33363:9:64","nodeType":"YulIdentifier","src":"33363:9:64"}],"functionName":{"name":"sub","nativeSrc":"33353:3:64","nodeType":"YulIdentifier","src":"33353:3:64"},"nativeSrc":"33353:20:64","nodeType":"YulFunctionCall","src":"33353:20:64"}],"functionName":{"name":"mstore","nativeSrc":"33326:6:64","nodeType":"YulIdentifier","src":"33326:6:64"},"nativeSrc":"33326:48:64","nodeType":"YulFunctionCall","src":"33326:48:64"},"nativeSrc":"33326:48:64","nodeType":"YulExpressionStatement","src":"33326:48:64"},{"nativeSrc":"33383:84:64","nodeType":"YulAssignment","src":"33383:84:64","value":{"arguments":[{"name":"value1","nativeSrc":"33453:6:64","nodeType":"YulIdentifier","src":"33453:6:64"},{"name":"tail","nativeSrc":"33462:4:64","nodeType":"YulIdentifier","src":"33462:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"33391:61:64","nodeType":"YulIdentifier","src":"33391:61:64"},"nativeSrc":"33391:76:64","nodeType":"YulFunctionCall","src":"33391:76:64"},"variableNames":[{"name":"tail","nativeSrc":"33383:4:64","nodeType":"YulIdentifier","src":"33383:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"33055:419:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33163:9:64","nodeType":"YulTypedName","src":"33163:9:64","type":""},{"name":"value1","nativeSrc":"33175:6:64","nodeType":"YulTypedName","src":"33175:6:64","type":""},{"name":"value0","nativeSrc":"33183:6:64","nodeType":"YulTypedName","src":"33183:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33194:4:64","nodeType":"YulTypedName","src":"33194:4:64","type":""}],"src":"33055:419:64"},{"body":{"nativeSrc":"33525:149:64","nodeType":"YulBlock","src":"33525:149:64","statements":[{"nativeSrc":"33535:25:64","nodeType":"YulAssignment","src":"33535:25:64","value":{"arguments":[{"name":"x","nativeSrc":"33558:1:64","nodeType":"YulIdentifier","src":"33558:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33540:17:64","nodeType":"YulIdentifier","src":"33540:17:64"},"nativeSrc":"33540:20:64","nodeType":"YulFunctionCall","src":"33540:20:64"},"variableNames":[{"name":"x","nativeSrc":"33535:1:64","nodeType":"YulIdentifier","src":"33535:1:64"}]},{"nativeSrc":"33569:25:64","nodeType":"YulAssignment","src":"33569:25:64","value":{"arguments":[{"name":"y","nativeSrc":"33592:1:64","nodeType":"YulIdentifier","src":"33592:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"33574:17:64","nodeType":"YulIdentifier","src":"33574:17:64"},"nativeSrc":"33574:20:64","nodeType":"YulFunctionCall","src":"33574:20:64"},"variableNames":[{"name":"y","nativeSrc":"33569:1:64","nodeType":"YulIdentifier","src":"33569:1:64"}]},{"nativeSrc":"33603:17:64","nodeType":"YulAssignment","src":"33603:17:64","value":{"arguments":[{"name":"x","nativeSrc":"33615:1:64","nodeType":"YulIdentifier","src":"33615:1:64"},{"name":"y","nativeSrc":"33618:1:64","nodeType":"YulIdentifier","src":"33618:1:64"}],"functionName":{"name":"sub","nativeSrc":"33611:3:64","nodeType":"YulIdentifier","src":"33611:3:64"},"nativeSrc":"33611:9:64","nodeType":"YulFunctionCall","src":"33611:9:64"},"variableNames":[{"name":"diff","nativeSrc":"33603:4:64","nodeType":"YulIdentifier","src":"33603:4:64"}]},{"body":{"nativeSrc":"33645:22:64","nodeType":"YulBlock","src":"33645:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"33647:16:64","nodeType":"YulIdentifier","src":"33647:16:64"},"nativeSrc":"33647:18:64","nodeType":"YulFunctionCall","src":"33647:18:64"},"nativeSrc":"33647:18:64","nodeType":"YulExpressionStatement","src":"33647:18:64"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"33636:4:64","nodeType":"YulIdentifier","src":"33636:4:64"},{"name":"x","nativeSrc":"33642:1:64","nodeType":"YulIdentifier","src":"33642:1:64"}],"functionName":{"name":"gt","nativeSrc":"33633:2:64","nodeType":"YulIdentifier","src":"33633:2:64"},"nativeSrc":"33633:11:64","nodeType":"YulFunctionCall","src":"33633:11:64"},"nativeSrc":"33630:37:64","nodeType":"YulIf","src":"33630:37:64"}]},"name":"checked_sub_t_uint256","nativeSrc":"33480:194:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"33511:1:64","nodeType":"YulTypedName","src":"33511:1:64","type":""},{"name":"y","nativeSrc":"33514:1:64","nodeType":"YulTypedName","src":"33514:1:64","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"33520:4:64","nodeType":"YulTypedName","src":"33520:4:64","type":""}],"src":"33480:194:64"},{"body":{"nativeSrc":"33908:523:64","nodeType":"YulBlock","src":"33908:523:64","statements":[{"nativeSrc":"33918:27:64","nodeType":"YulAssignment","src":"33918:27:64","value":{"arguments":[{"name":"headStart","nativeSrc":"33930:9:64","nodeType":"YulIdentifier","src":"33930:9:64"},{"kind":"number","nativeSrc":"33941:3:64","nodeType":"YulLiteral","src":"33941:3:64","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"33926:3:64","nodeType":"YulIdentifier","src":"33926:3:64"},"nativeSrc":"33926:19:64","nodeType":"YulFunctionCall","src":"33926:19:64"},"variableNames":[{"name":"tail","nativeSrc":"33918:4:64","nodeType":"YulIdentifier","src":"33918:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"33999:6:64","nodeType":"YulIdentifier","src":"33999:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"34012:9:64","nodeType":"YulIdentifier","src":"34012:9:64"},{"kind":"number","nativeSrc":"34023:1:64","nodeType":"YulLiteral","src":"34023:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34008:3:64","nodeType":"YulIdentifier","src":"34008:3:64"},"nativeSrc":"34008:17:64","nodeType":"YulFunctionCall","src":"34008:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"33955:43:64","nodeType":"YulIdentifier","src":"33955:43:64"},"nativeSrc":"33955:71:64","nodeType":"YulFunctionCall","src":"33955:71:64"},"nativeSrc":"33955:71:64","nodeType":"YulExpressionStatement","src":"33955:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"34080:6:64","nodeType":"YulIdentifier","src":"34080:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"34093:9:64","nodeType":"YulIdentifier","src":"34093:9:64"},{"kind":"number","nativeSrc":"34104:2:64","nodeType":"YulLiteral","src":"34104:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"34089:3:64","nodeType":"YulIdentifier","src":"34089:3:64"},"nativeSrc":"34089:18:64","nodeType":"YulFunctionCall","src":"34089:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"34036:43:64","nodeType":"YulIdentifier","src":"34036:43:64"},"nativeSrc":"34036:72:64","nodeType":"YulFunctionCall","src":"34036:72:64"},"nativeSrc":"34036:72:64","nodeType":"YulExpressionStatement","src":"34036:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"34162:6:64","nodeType":"YulIdentifier","src":"34162:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"34175:9:64","nodeType":"YulIdentifier","src":"34175:9:64"},{"kind":"number","nativeSrc":"34186:2:64","nodeType":"YulLiteral","src":"34186:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"34171:3:64","nodeType":"YulIdentifier","src":"34171:3:64"},"nativeSrc":"34171:18:64","nodeType":"YulFunctionCall","src":"34171:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"34118:43:64","nodeType":"YulIdentifier","src":"34118:43:64"},"nativeSrc":"34118:72:64","nodeType":"YulFunctionCall","src":"34118:72:64"},"nativeSrc":"34118:72:64","nodeType":"YulExpressionStatement","src":"34118:72:64"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"34244:6:64","nodeType":"YulIdentifier","src":"34244:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"34257:9:64","nodeType":"YulIdentifier","src":"34257:9:64"},{"kind":"number","nativeSrc":"34268:2:64","nodeType":"YulLiteral","src":"34268:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"34253:3:64","nodeType":"YulIdentifier","src":"34253:3:64"},"nativeSrc":"34253:18:64","nodeType":"YulFunctionCall","src":"34253:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"34200:43:64","nodeType":"YulIdentifier","src":"34200:43:64"},"nativeSrc":"34200:72:64","nodeType":"YulFunctionCall","src":"34200:72:64"},"nativeSrc":"34200:72:64","nodeType":"YulExpressionStatement","src":"34200:72:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34293:9:64","nodeType":"YulIdentifier","src":"34293:9:64"},{"kind":"number","nativeSrc":"34304:3:64","nodeType":"YulLiteral","src":"34304:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"34289:3:64","nodeType":"YulIdentifier","src":"34289:3:64"},"nativeSrc":"34289:19:64","nodeType":"YulFunctionCall","src":"34289:19:64"},{"arguments":[{"name":"tail","nativeSrc":"34314:4:64","nodeType":"YulIdentifier","src":"34314:4:64"},{"name":"headStart","nativeSrc":"34320:9:64","nodeType":"YulIdentifier","src":"34320:9:64"}],"functionName":{"name":"sub","nativeSrc":"34310:3:64","nodeType":"YulIdentifier","src":"34310:3:64"},"nativeSrc":"34310:20:64","nodeType":"YulFunctionCall","src":"34310:20:64"}],"functionName":{"name":"mstore","nativeSrc":"34282:6:64","nodeType":"YulIdentifier","src":"34282:6:64"},"nativeSrc":"34282:49:64","nodeType":"YulFunctionCall","src":"34282:49:64"},"nativeSrc":"34282:49:64","nodeType":"YulExpressionStatement","src":"34282:49:64"},{"nativeSrc":"34340:84:64","nodeType":"YulAssignment","src":"34340:84:64","value":{"arguments":[{"name":"value4","nativeSrc":"34410:6:64","nodeType":"YulIdentifier","src":"34410:6:64"},{"name":"tail","nativeSrc":"34419:4:64","nodeType":"YulIdentifier","src":"34419:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"34348:61:64","nodeType":"YulIdentifier","src":"34348:61:64"},"nativeSrc":"34348:76:64","nodeType":"YulFunctionCall","src":"34348:76:64"},"variableNames":[{"name":"tail","nativeSrc":"34340:4:64","nodeType":"YulIdentifier","src":"34340:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"33680:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33848:9:64","nodeType":"YulTypedName","src":"33848:9:64","type":""},{"name":"value4","nativeSrc":"33860:6:64","nodeType":"YulTypedName","src":"33860:6:64","type":""},{"name":"value3","nativeSrc":"33868:6:64","nodeType":"YulTypedName","src":"33868:6:64","type":""},{"name":"value2","nativeSrc":"33876:6:64","nodeType":"YulTypedName","src":"33876:6:64","type":""},{"name":"value1","nativeSrc":"33884:6:64","nodeType":"YulTypedName","src":"33884:6:64","type":""},{"name":"value0","nativeSrc":"33892:6:64","nodeType":"YulTypedName","src":"33892:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"33903:4:64","nodeType":"YulTypedName","src":"33903:4:64","type":""}],"src":"33680:751:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IERC1155_$1176_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IERC1155_$1176_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IERC1155_$1176_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IERC1155_$1176__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IERC1155_$1176_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_Strategy_$16442(value) {\n if iszero(lt(value, 2)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_Strategy_$16442(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Strategy_$16442(value)\n }\n\n function convert_t_enum$_Strategy_$16442_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Strategy_$16442(value)\n }\n\n function abi_encode_t_enum$_Strategy_$16442_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Strategy_$16442_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_Strategy_$16442__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_Strategy_$16442_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value6, value7 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4, value5 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function cleanup_t_contract$_IERC1155_$1176(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC1155_$1176(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC1155_$1176(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC1155_$1176(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC1155_$1176(value)\n }\n\n function validator_revert_t_enum$_Strategy_$16442(value) {\n if iszero(lt(value, 2)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_Strategy_$16442(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Strategy_$16442(value)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct ERC1155Incentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$17680_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xa0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xa0)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_contract$_IERC1155_$1176(add(headStart, offset), end))\n\n }\n\n {\n // strategy\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_enum$_Strategy_$16442(add(headStart, offset), end))\n\n }\n\n {\n // tokenId\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // extraData\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$17680_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_InitPayload_$17680_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_bytes_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_bytes_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_bytes_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_bytes_memory_ptr_to_t_bytes_storage(slot, src) {\n\n let newLen := array_length_t_bytes_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_bytes_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_bytes_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.ERC1155Payload -> struct Budget.ERC1155Payload\n function abi_encode_t_struct$_ERC1155Payload_$15473_memory_ptr_to_t_struct$_ERC1155Payload_$15473_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x60)\n\n {\n // tokenId\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x40))\n\n mstore(add(pos, 0x40), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ERC1155Payload_$15473_memory_ptr__to_t_struct$_ERC1155Payload_$15473_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ERC1155Payload_$15473_memory_ptr_to_t_struct$_ERC1155Payload_$15473_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_assert_t_enum$_AssetType_$15450(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$15450(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$15450(value)\n }\n\n function convert_t_enum$_AssetType_$15450_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$15450(value)\n }\n\n function abi_encode_t_enum$_AssetType_$15450_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$15450_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$15450_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack(value0, tail)\n\n }\n\n // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_rational_1_by_1_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_contract$_IERC1155_$1176_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(convert_t_contract$_IERC1155_$1176_to_t_address(value)))\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_contract$_IERC1155_$1176_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_contract$_IERC1155_$1176_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value4, pos)\n\n end := pos\n }\n\n // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610165575f3560e01c80638da5cb5b116100d0578063dcc59b6f11610089578063f1c30ec011610063578063f1c30ec0146104d7578063f23a6e6114610513578063f2fde38b1461054f578063fee81cf41461056b57610165565b8063dcc59b6f14610455578063e18e65081461047f578063f04e283e146104bb57610165565b80638da5cb5b14610323578063a4d66daf1461034d578063a8c62e7614610377578063bc197c81146103a1578063c63ff8dd146103dd578063c884ef831461041957610165565b806338d52e0f1161012257806338d52e0f14610257578063439fab91146102815780634e7165a2146102a957806354d1f13d146102e5578063609d3334146102ef578063715018a61461031957610165565b806301ffc9a71461016957806307621eca146101a557806317d70f7c146101cf578063228cb733146101f9578063256929621461022357806328d6183b1461022d575b5f80fd5b348015610174575f80fd5b5061018f600480360381019061018a919061154c565b6105a7565b60405161019c9190611591565b60405180910390f35b3480156101b0575f80fd5b506101b9610688565b6040516101c691906115c2565b60405180910390f35b3480156101da575f80fd5b506101e3610691565b6040516101f091906115c2565b60405180910390f35b348015610204575f80fd5b5061020d610697565b60405161021a91906115c2565b60405180910390f35b61022b61069d565b005b348015610238575f80fd5b506102416106ee565b60405161024e91906115ea565b60405180910390f35b348015610262575f80fd5b5061026b610715565b604051610278919061167d565b60405180910390f35b34801561028c575f80fd5b506102a760048036038101906102a291906116f7565b61073a565b005b3480156102b4575f80fd5b506102cf60048036038101906102ca91906116f7565b6109dd565b6040516102dc91906117b2565b60405180910390f35b6102ed610ac0565b005b3480156102fa575f80fd5b50610303610af9565b60405161031091906117b2565b60405180910390f35b610321610b85565b005b34801561032e575f80fd5b50610337610b98565b60405161034491906117f2565b60405180910390f35b348015610358575f80fd5b50610361610bc0565b60405161036e91906115c2565b60405180910390f35b348015610382575f80fd5b5061038b610bc6565b604051610398919061187e565b60405180910390f35b3480156103ac575f80fd5b506103c760048036038101906103c29190611916565b610bd9565b6040516103d491906115ea565b60405180910390f35b3480156103e8575f80fd5b5061040360048036038101906103fe91906116f7565b610bf0565b6040516104109190611591565b60405180910390f35b348015610424575f80fd5b5061043f600480360381019061043a91906119ed565b610e45565b60405161044c9190611591565b60405180910390f35b348015610460575f80fd5b50610469610e62565b60405161047691906115c2565b60405180910390f35b34801561048a575f80fd5b506104a560048036038101906104a091906116f7565b610e67565b6040516104b29190611591565b60405180910390f35b6104d560048036038101906104d091906119ed565b610e8f565b005b3480156104e2575f80fd5b506104fd60048036038101906104f891906116f7565b610ecd565b60405161050a9190611591565b60405180910390f35b34801561051e575f80fd5b5061053960048036038101906105349190611a42565b6110c9565b60405161054691906115ea565b60405180910390f35b610569600480360381019061056491906119ed565b6110de565b005b348015610576575f80fd5b50610591600480360381019061058c91906119ed565b611107565b60405161059e91906115c2565b60405180910390f35b5f7fb168aa66000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061067157507f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610681575061068082611120565b5b9050919050565b5f600154905090565b60055481565b60015481565b5f6106a6611199565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fb168aa6600000000000000000000000000000000000000000000000000000000905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6107436111a3565b905080546003825580156107755760018160011c14303b1061076c5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906107869190611d0b565b905060018081111561079b5761079a61180b565b5b816020015160018111156107b2576107b161180b565b5b036107e9576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816060015103610826576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f015173ffffffffffffffffffffffffffffffffffffffff1662fdd58e3084604001516040518363ffffffff1660e01b8152600401610868929190611d52565b602060405180830381865afa158015610883573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a79190611d8d565b905081606001518110156108fd57815f01518183606001516040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016108f493929190611db8565b60405180910390fd5b815f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160200151600360146101000a81548160ff021916908360018111156109695761096861180b565b5b0217905550816040015160058190555081606001516004819055508160800151600690816109979190611fde565b506109a1336111cc565b505080156109d8576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f83838101906109ef9190611d0b565b90506040518060800160405280600280811115610a0f57610a0e61180b565b5b8152602001825f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806060016040528084604001518152602001846060015181526020018460800151815250604051602001610a869190612151565b604051602081830303815290604052815250604051602001610aa89190612226565b60405160208183030381529060405291505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b60068054610b0690611e1a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3290611e1a565b8015610b7d5780601f10610b5457610100808354040283529160200191610b7d565b820191905f5260205f20905b815481529060010190602001808311610b6057829003601f168201915b505050505081565b610b8d6112a2565b610b965f6112d9565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600360149054906101000a900460ff1681565b5f63bc197c8160e01b905098975050505050505050565b5f610bf96112a2565b5f6001811115610c0c57610c0b61180b565b5b600360149054906101000a900460ff166001811115610c2e57610c2d61180b565b5b03610e3b575f8383810190610c4391906122af565b9050610c51815f015161139f565b610c87576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f80815480929190610c9890612323565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30835f0151600554600186602001516040518663ffffffff1660e01b8152600401610d619594939291906123a3565b5f604051808303815f87803b158015610d78575f80fd5b505af1158015610d8a573d5f803e3d5ffd5b50505050805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f015160055460018660200151604051602001610e0d9594939291906124b1565b604051602081830303815290604052604051610e2991906117b2565b60405180910390a26001915050610e3f565b5f90505b92915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610e7891906122af565b9050610e86815f015161139f565b91505092915050565b610e976112a2565b63389a75e1600c52805f526020600c208054421115610ebd57636f5e88185f526004601cfd5b5f815550610eca816112d9565b50565b5f610ed66112a2565b5f8383810190610ee691906122af565b90505f8160200151806020019051810190610f019190611d8d565b9050600454811115610f6b573382604051602001610f1f9190612545565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401610f62929190612565565b60405180910390fd5b8060045f828254610f7c9190612593565b9250508190555060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a30845f01516005548587602001516040518663ffffffff1660e01b8152600401610fee9594939291906125c6565b5f604051808303815f87803b158015611005575f80fd5b505af1158015611017573d5f803e3d5ffd5b50505050815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f01516005548587602001516040516020016110999594939291906124b1565b6040516020818303038152906040526040516110b591906117b2565b60405180910390a260019250505092915050565b5f63f23a6e6160e01b90509695505050505050565b6110e66112a2565b8060601b6110fb57637448fbae5f526004601cfd5b611104816112d9565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611192575061119182611400565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6111d4611479565b1561124c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561120e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061129f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146112d7576382b429005f526004601cfd5b565b6112e1611479565b15611346577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b821781555061139c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113f957506004545f54105b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061147257506114718261147d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61152b816114f7565b8114611535575f80fd5b50565b5f8135905061154681611522565b92915050565b5f60208284031215611561576115606114ef565b5b5f61156e84828501611538565b91505092915050565b5f8115159050919050565b61158b81611577565b82525050565b5f6020820190506115a45f830184611582565b92915050565b5f819050919050565b6115bc816115aa565b82525050565b5f6020820190506115d55f8301846115b3565b92915050565b6115e4816114f7565b82525050565b5f6020820190506115fd5f8301846115db565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61164561164061163b84611603565b611622565b611603565b9050919050565b5f6116568261162b565b9050919050565b5f6116678261164c565b9050919050565b6116778161165d565b82525050565b5f6020820190506116905f83018461166e565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126116b7576116b6611696565b5b8235905067ffffffffffffffff8111156116d4576116d361169a565b5b6020830191508360018202830111156116f0576116ef61169e565b5b9250929050565b5f806020838503121561170d5761170c6114ef565b5b5f83013567ffffffffffffffff81111561172a576117296114f3565b5b611736858286016116a2565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61178482611742565b61178e818561174c565b935061179e81856020860161175c565b6117a78161176a565b840191505092915050565b5f6020820190508181035f8301526117ca818461177a565b905092915050565b5f6117dc82611603565b9050919050565b6117ec816117d2565b82525050565b5f6020820190506118055f8301846117e3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106118495761184861180b565b5b50565b5f81905061185982611838565b919050565b5f6118688261184c565b9050919050565b6118788161185e565b82525050565b5f6020820190506118915f83018461186f565b92915050565b6118a0816117d2565b81146118aa575f80fd5b50565b5f813590506118bb81611897565b92915050565b5f8083601f8401126118d6576118d5611696565b5b8235905067ffffffffffffffff8111156118f3576118f261169a565b5b60208301915083602082028301111561190f5761190e61169e565b5b9250929050565b5f805f805f805f8060a0898b031215611932576119316114ef565b5b5f61193f8b828c016118ad565b98505060206119508b828c016118ad565b975050604089013567ffffffffffffffff811115611971576119706114f3565b5b61197d8b828c016118c1565b9650965050606089013567ffffffffffffffff8111156119a05761199f6114f3565b5b6119ac8b828c016118c1565b9450945050608089013567ffffffffffffffff8111156119cf576119ce6114f3565b5b6119db8b828c016116a2565b92509250509295985092959890939650565b5f60208284031215611a0257611a016114ef565b5b5f611a0f848285016118ad565b91505092915050565b611a21816115aa565b8114611a2b575f80fd5b50565b5f81359050611a3c81611a18565b92915050565b5f805f805f8060a08789031215611a5c57611a5b6114ef565b5b5f611a6989828a016118ad565b9650506020611a7a89828a016118ad565b9550506040611a8b89828a01611a2e565b9450506060611a9c89828a01611a2e565b935050608087013567ffffffffffffffff811115611abd57611abc6114f3565b5b611ac989828a016116a2565b92509250509295509295509295565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611b128261176a565b810181811067ffffffffffffffff82111715611b3157611b30611adc565b5b80604052505050565b5f611b436114e6565b9050611b4f8282611b09565b919050565b5f80fd5b5f611b62826117d2565b9050919050565b611b7281611b58565b8114611b7c575f80fd5b50565b5f81359050611b8d81611b69565b92915050565b60028110611b9f575f80fd5b50565b5f81359050611bb081611b93565b92915050565b5f80fd5b5f67ffffffffffffffff821115611bd457611bd3611adc565b5b611bdd8261176a565b9050602081019050919050565b828183375f83830152505050565b5f611c0a611c0584611bba565b611b3a565b905082815260208101848484011115611c2657611c25611bb6565b5b611c31848285611bea565b509392505050565b5f82601f830112611c4d57611c4c611696565b5b8135611c5d848260208601611bf8565b91505092915050565b5f60a08284031215611c7b57611c7a611ad8565b5b611c8560a0611b3a565b90505f611c9484828501611b7f565b5f830152506020611ca784828501611ba2565b6020830152506040611cbb84828501611a2e565b6040830152506060611ccf84828501611a2e565b606083015250608082013567ffffffffffffffff811115611cf357611cf2611b54565b5b611cff84828501611c39565b60808301525092915050565b5f60208284031215611d2057611d1f6114ef565b5b5f82013567ffffffffffffffff811115611d3d57611d3c6114f3565b5b611d4984828501611c66565b91505092915050565b5f604082019050611d655f8301856117e3565b611d7260208301846115b3565b9392505050565b5f81519050611d8781611a18565b92915050565b5f60208284031215611da257611da16114ef565b5b5f611daf84828501611d79565b91505092915050565b5f606082019050611dcb5f8301866117e3565b611dd860208301856115b3565b611de560408301846115b3565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611e3157607f821691505b602082108103611e4457611e43611ded565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302611ea67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611e6b565b611eb08683611e6b565b95508019841693508086168417925050509392505050565b5f611ee2611edd611ed8846115aa565b611622565b6115aa565b9050919050565b5f819050919050565b611efb83611ec8565b611f0f611f0782611ee9565b848454611e77565b825550505050565b5f90565b611f23611f17565b611f2e818484611ef2565b505050565b5b81811015611f5157611f465f82611f1b565b600181019050611f34565b5050565b601f821115611f9657611f6781611e4a565b611f7084611e5c565b81016020851015611f7f578190505b611f93611f8b85611e5c565b830182611f33565b50505b505050565b5f82821c905092915050565b5f611fb65f1984600802611f9b565b1980831691505092915050565b5f611fce8383611fa7565b9150826002028217905092915050565b611fe782611742565b67ffffffffffffffff81111561200057611fff611adc565b5b61200a8254611e1a565b612015828285611f55565b5f60209050601f831160018114612046575f8415612034578287015190505b61203e8582611fc3565b8655506120a5565b601f19841661205486611e4a565b5f5b8281101561207b57848901518255600182019150602085019450602081019050612056565b868310156120985784890151612094601f891682611fa7565b8355505b6001600288020188555050505b505050505050565b6120b6816115aa565b82525050565b5f82825260208201905092915050565b5f6120d682611742565b6120e081856120bc565b93506120f081856020860161175c565b6120f98161176a565b840191505092915050565b5f606083015f8301516121195f8601826120ad565b50602083015161212c60208601826120ad565b506040830151848203604086015261214482826120cc565b9150508091505092915050565b5f6020820190508181035f8301526121698184612104565b905092915050565b600381106121825761218161180b565b5b50565b5f81905061219282612171565b919050565b5f6121a182612185565b9050919050565b6121b181612197565b82525050565b6121c0816117d2565b82525050565b5f608083015f8301516121db5f8601826121a8565b5060208301516121ee60208601826121b7565b50604083015161220160408601826121b7565b506060830151848203606086015261221982826120cc565b9150508091505092915050565b5f6020820190508181035f83015261223e81846121c6565b905092915050565b5f6040828403121561225b5761225a611ad8565b5b6122656040611b3a565b90505f612274848285016118ad565b5f83015250602082013567ffffffffffffffff81111561229757612296611b54565b5b6122a384828501611c39565b60208301525092915050565b5f602082840312156122c4576122c36114ef565b5b5f82013567ffffffffffffffff8111156122e1576122e06114f3565b5b6122ed84828501612246565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61232d826115aa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361235f5761235e6122f6565b5b600182019050919050565b5f819050919050565b5f61238d6123886123838461236a565b611622565b6115aa565b9050919050565b61239d81612373565b82525050565b5f60a0820190506123b65f8301886117e3565b6123c360208301876117e3565b6123d060408301866115b3565b6123dd6060830185612394565b81810360808301526123ef818461177a565b90509695505050505050565b5f8160601b9050919050565b5f612411826123fb565b9050919050565b5f61242282612407565b9050919050565b61243a6124358261165d565b612418565b82525050565b61245161244c826117d2565b612418565b82525050565b5f819050919050565b61247161246c826115aa565b612457565b82525050565b5f81905092915050565b5f61248b82611742565b6124958185612477565b93506124a581856020860161175c565b80840191505092915050565b5f6124bc8288612429565b6014820191506124cc8287612440565b6014820191506124dc8286612460565b6020820191506124ec8285612460565b6020820191506124fc8284612481565b91508190509695505050505050565b5f604083015f8301516125205f8601826121b7565b506020830151848203602086015261253882826120cc565b9150508091505092915050565b5f6020820190508181035f83015261255d818461250b565b905092915050565b5f6040820190506125785f8301856117e3565b818103602083015261258a818461177a565b90509392505050565b5f61259d826115aa565b91506125a8836115aa565b92508282039050818111156125c0576125bf6122f6565b5b92915050565b5f60a0820190506125d95f8301886117e3565b6125e660208301876117e3565b6125f360408301866115b3565b61260060608301856115b3565b8181036080830152612612818461177a565b9050969550505050505056fea2646970667358221220a900c15f02a358cd74c915a462105bc7f50c7bcfe67bc1cb2f7214fceea3e93264736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x165 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xD0 JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xF1C30EC0 GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x4D7 JUMPI DUP1 PUSH4 0xF23A6E61 EQ PUSH2 0x513 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x54F JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x56B JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x455 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x47F JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x4BB JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x323 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0xBC197C81 EQ PUSH2 0x3A1 JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x3DD JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x419 JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0x38D52E0F GT PUSH2 0x122 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2E5 JUMPI DUP1 PUSH4 0x609D3334 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x319 JUMPI PUSH2 0x165 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0x17D70F7C EQ PUSH2 0x1CF JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x223 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x22D JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x18F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x154C JUMP JUMPDEST PUSH2 0x5A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x19C SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH2 0x688 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C6 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1DA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 PUSH2 0x691 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F0 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x204 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20D PUSH2 0x697 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21A SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x22B PUSH2 0x69D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x238 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x241 PUSH2 0x6EE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24E SWAP2 SWAP1 PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x262 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26B PUSH2 0x715 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x167D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0x73A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2CF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CA SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0x9DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DC SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2ED PUSH2 0xAC0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2FA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x303 PUSH2 0xAF9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x310 SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x321 PUSH2 0xB85 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x337 PUSH2 0xB98 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x17F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x358 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x361 PUSH2 0xBC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x36E SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x382 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x38B PUSH2 0xBC6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x398 SWAP2 SWAP1 PUSH2 0x187E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3AC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3C2 SWAP2 SWAP1 PUSH2 0x1916 JUMP JUMPDEST PUSH2 0xBD9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D4 SWAP2 SWAP1 PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x403 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3FE SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0xBF0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x410 SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x424 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x43F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43A SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0xE45 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44C SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x460 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x469 PUSH2 0xE62 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x476 SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4A5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4A0 SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0xE67 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4D5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4D0 SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0xE8F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F8 SWAP2 SWAP1 PUSH2 0x16F7 JUMP JUMPDEST PUSH2 0xECD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50A SWAP2 SWAP1 PUSH2 0x1591 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x51E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x539 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x534 SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x10C9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x15EA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x569 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x564 SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0x10DE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x591 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x58C SWAP2 SWAP1 PUSH2 0x19ED JUMP JUMPDEST PUSH2 0x1107 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x59E SWAP2 SWAP1 PUSH2 0x15C2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xB168AA6600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x671 JUMPI POP PUSH32 0x4E2312E000000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x681 JUMPI POP PUSH2 0x680 DUP3 PUSH2 0x1120 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x6A6 PUSH2 0x1199 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xB168AA6600000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x743 PUSH2 0x11A3 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x775 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x76C JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x786 SWAP2 SWAP1 PUSH2 0x1D0B JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP1 DUP2 GT ISZERO PUSH2 0x79B JUMPI PUSH2 0x79A PUSH2 0x180B JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH2 0x7B1 PUSH2 0x180B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH3 0xFDD58E ADDRESS DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x868 SWAP3 SWAP2 SWAP1 PUSH2 0x1D52 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x883 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A7 SWAP2 SWAP1 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x60 ADD MLOAD DUP2 LT ISZERO PUSH2 0x8FD JUMPI DUP2 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8F4 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x3 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x969 JUMPI PUSH2 0x968 PUSH2 0x180B JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x5 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x80 ADD MLOAD PUSH1 0x6 SWAP1 DUP2 PUSH2 0x997 SWAP2 SWAP1 PUSH2 0x1FDE JUMP JUMPDEST POP PUSH2 0x9A1 CALLER PUSH2 0x11CC JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x9D8 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x9EF SWAP2 SWAP1 PUSH2 0x1D0B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xA0F JUMPI PUSH2 0xA0E PUSH2 0x180B JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x2151 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xAA8 SWAP2 SWAP1 PUSH2 0x2226 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH2 0xB06 SWAP1 PUSH2 0x1E1A 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 0xB32 SWAP1 PUSH2 0x1E1A JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB7D JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB54 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB7D JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB60 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH2 0xB8D PUSH2 0x12A2 JUMP JUMPDEST PUSH2 0xB96 PUSH0 PUSH2 0x12D9 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH4 0xBC197C81 PUSH1 0xE0 SHL SWAP1 POP SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0xBF9 PUSH2 0x12A2 JUMP JUMPDEST PUSH0 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xC0C JUMPI PUSH2 0xC0B PUSH2 0x180B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xC2E JUMPI PUSH2 0xC2D PUSH2 0x180B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE3B JUMPI PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xC43 SWAP2 SWAP1 PUSH2 0x22AF JUMP JUMPDEST SWAP1 POP PUSH2 0xC51 DUP2 PUSH0 ADD MLOAD PUSH2 0x139F JUMP JUMPDEST PUSH2 0xC87 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xC98 SWAP1 PUSH2 0x2323 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP4 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD61 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23A3 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD78 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD8A JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD PUSH1 0x1 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE0D SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE29 SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xE3F JUMP JUMPDEST PUSH0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xE78 SWAP2 SWAP1 PUSH2 0x22AF JUMP JUMPDEST SWAP1 POP PUSH2 0xE86 DUP2 PUSH0 ADD MLOAD PUSH2 0x139F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE97 PUSH2 0x12A2 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xEBD JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xECA DUP2 PUSH2 0x12D9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0xED6 PUSH2 0x12A2 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xEE6 SWAP2 SWAP1 PUSH2 0x22AF JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF01 SWAP2 SWAP1 PUSH2 0x1D8D JUMP JUMPDEST SWAP1 POP PUSH1 0x4 SLOAD DUP2 GT ISZERO PUSH2 0xF6B JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xF1F SWAP2 SWAP1 PUSH2 0x2545 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF62 SWAP3 SWAP2 SWAP1 PUSH2 0x2565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF7C SWAP2 SWAP1 PUSH2 0x2593 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF242432A ADDRESS DUP5 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFEE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x25C6 JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1005 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1017 JUMPI RETURNDATASIZE PUSH0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH0 REVERT JUMPDEST POP POP POP POP DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x5 SLOAD DUP6 DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1099 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x24B1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x10B5 SWAP2 SWAP1 PUSH2 0x17B2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH4 0xF23A6E61 PUSH1 0xE0 SHL SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x10E6 PUSH2 0x12A2 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x10FB JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x1104 DUP2 PUSH2 0x12D9 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1192 JUMPI POP PUSH2 0x1191 DUP3 PUSH2 0x1400 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11D4 PUSH2 0x1479 JUMP JUMPDEST ISZERO PUSH2 0x124C JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x120E JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x129F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x12D7 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0x12E1 PUSH2 0x1479 JUMP JUMPDEST ISZERO PUSH2 0x1346 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x139C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x13F9 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x1472 JUMPI POP PUSH2 0x1471 DUP3 PUSH2 0x147D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x152B DUP2 PUSH2 0x14F7 JUMP JUMPDEST DUP2 EQ PUSH2 0x1535 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1546 DUP2 PUSH2 0x1522 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1561 JUMPI PUSH2 0x1560 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0x1538 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x158B DUP2 PUSH2 0x1577 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15A4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1582 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15BC DUP2 PUSH2 0x15AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15D5 PUSH0 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15E4 DUP2 PUSH2 0x14F7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15FD PUSH0 DUP4 ADD DUP5 PUSH2 0x15DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1645 PUSH2 0x1640 PUSH2 0x163B DUP5 PUSH2 0x1603 JUMP JUMPDEST PUSH2 0x1622 JUMP JUMPDEST PUSH2 0x1603 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1656 DUP3 PUSH2 0x162B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1667 DUP3 PUSH2 0x164C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1677 DUP2 PUSH2 0x165D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1690 PUSH0 DUP4 ADD DUP5 PUSH2 0x166E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x16B7 JUMPI PUSH2 0x16B6 PUSH2 0x1696 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x16D4 JUMPI PUSH2 0x16D3 PUSH2 0x169A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x16F0 JUMPI PUSH2 0x16EF PUSH2 0x169E JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x170D JUMPI PUSH2 0x170C PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x172A JUMPI PUSH2 0x1729 PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x1736 DUP6 DUP3 DUP7 ADD PUSH2 0x16A2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1784 DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x178E DUP2 DUP6 PUSH2 0x174C JUMP JUMPDEST SWAP4 POP PUSH2 0x179E DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST PUSH2 0x17A7 DUP2 PUSH2 0x176A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x17CA DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x17DC DUP3 PUSH2 0x1603 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17EC DUP2 PUSH2 0x17D2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1805 PUSH0 DUP4 ADD DUP5 PUSH2 0x17E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1849 JUMPI PUSH2 0x1848 PUSH2 0x180B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1859 DUP3 PUSH2 0x1838 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1868 DUP3 PUSH2 0x184C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1878 DUP2 PUSH2 0x185E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1891 PUSH0 DUP4 ADD DUP5 PUSH2 0x186F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18A0 DUP2 PUSH2 0x17D2 JUMP JUMPDEST DUP2 EQ PUSH2 0x18AA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x18BB DUP2 PUSH2 0x1897 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x18D6 JUMPI PUSH2 0x18D5 PUSH2 0x1696 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18F3 JUMPI PUSH2 0x18F2 PUSH2 0x169A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x169E JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP10 DUP12 SUB SLT ISZERO PUSH2 0x1932 JUMPI PUSH2 0x1931 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x193F DUP12 DUP3 DUP13 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP9 POP POP PUSH1 0x20 PUSH2 0x1950 DUP12 DUP3 DUP13 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP8 POP POP PUSH1 0x40 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1971 JUMPI PUSH2 0x1970 PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x197D DUP12 DUP3 DUP13 ADD PUSH2 0x18C1 JUMP JUMPDEST SWAP7 POP SWAP7 POP POP PUSH1 0x60 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19A0 JUMPI PUSH2 0x199F PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x19AC DUP12 DUP3 DUP13 ADD PUSH2 0x18C1 JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x80 DUP10 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19CF JUMPI PUSH2 0x19CE PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x19DB DUP12 DUP3 DUP13 ADD PUSH2 0x16A2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 SWAP1 SWAP4 SWAP7 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1A02 JUMPI PUSH2 0x1A01 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A0F DUP5 DUP3 DUP6 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A21 DUP2 PUSH2 0x15AA JUMP JUMPDEST DUP2 EQ PUSH2 0x1A2B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A3C DUP2 PUSH2 0x1A18 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH1 0xA0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x1A5C JUMPI PUSH2 0x1A5B PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1A69 DUP10 DUP3 DUP11 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0x1A7A DUP10 DUP3 DUP11 ADD PUSH2 0x18AD JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0x1A8B DUP10 DUP3 DUP11 ADD PUSH2 0x1A2E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0x1A9C DUP10 DUP3 DUP11 ADD PUSH2 0x1A2E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1ABD JUMPI PUSH2 0x1ABC PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x1AC9 DUP10 DUP3 DUP11 ADD PUSH2 0x16A2 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1B12 DUP3 PUSH2 0x176A JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1B31 JUMPI PUSH2 0x1B30 PUSH2 0x1ADC JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1B43 PUSH2 0x14E6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1B4F DUP3 DUP3 PUSH2 0x1B09 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1B62 DUP3 PUSH2 0x17D2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B72 DUP2 PUSH2 0x1B58 JUMP JUMPDEST DUP2 EQ PUSH2 0x1B7C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1B8D DUP2 PUSH2 0x1B69 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x1B9F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB0 DUP2 PUSH2 0x1B93 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1BD4 JUMPI PUSH2 0x1BD3 PUSH2 0x1ADC JUMP JUMPDEST JUMPDEST PUSH2 0x1BDD DUP3 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1C0A PUSH2 0x1C05 DUP5 PUSH2 0x1BBA JUMP JUMPDEST PUSH2 0x1B3A JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1C26 JUMPI PUSH2 0x1C25 PUSH2 0x1BB6 JUMP JUMPDEST JUMPDEST PUSH2 0x1C31 DUP5 DUP3 DUP6 PUSH2 0x1BEA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C4D JUMPI PUSH2 0x1C4C PUSH2 0x1696 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1C5D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1BF8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1C7B JUMPI PUSH2 0x1C7A PUSH2 0x1AD8 JUMP JUMPDEST JUMPDEST PUSH2 0x1C85 PUSH1 0xA0 PUSH2 0x1B3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1C94 DUP5 DUP3 DUP6 ADD PUSH2 0x1B7F JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1CA7 DUP5 DUP3 DUP6 ADD PUSH2 0x1BA2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1CBB DUP5 DUP3 DUP6 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1CCF DUP5 DUP3 DUP6 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CF3 JUMPI PUSH2 0x1CF2 PUSH2 0x1B54 JUMP JUMPDEST JUMPDEST PUSH2 0x1CFF DUP5 DUP3 DUP6 ADD PUSH2 0x1C39 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D20 JUMPI PUSH2 0x1D1F PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1D3D JUMPI PUSH2 0x1D3C PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x1D49 DUP5 DUP3 DUP6 ADD PUSH2 0x1C66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D65 PUSH0 DUP4 ADD DUP6 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x1D72 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1D87 DUP2 PUSH2 0x1A18 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1DA2 JUMPI PUSH2 0x1DA1 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1DAF DUP5 DUP3 DUP6 ADD PUSH2 0x1D79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1DCB PUSH0 DUP4 ADD DUP7 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x1DD8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x1DE5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x15B3 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1E31 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1E44 JUMPI PUSH2 0x1E43 PUSH2 0x1DED JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x1EA6 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x1E6B JUMP JUMPDEST PUSH2 0x1EB0 DUP7 DUP4 PUSH2 0x1E6B JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EE2 PUSH2 0x1EDD PUSH2 0x1ED8 DUP5 PUSH2 0x15AA JUMP JUMPDEST PUSH2 0x1622 JUMP JUMPDEST PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1EFB DUP4 PUSH2 0x1EC8 JUMP JUMPDEST PUSH2 0x1F0F PUSH2 0x1F07 DUP3 PUSH2 0x1EE9 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x1E77 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1F23 PUSH2 0x1F17 JUMP JUMPDEST PUSH2 0x1F2E DUP2 DUP5 DUP5 PUSH2 0x1EF2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1F51 JUMPI PUSH2 0x1F46 PUSH0 DUP3 PUSH2 0x1F1B JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1F34 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1F96 JUMPI PUSH2 0x1F67 DUP2 PUSH2 0x1E4A JUMP JUMPDEST PUSH2 0x1F70 DUP5 PUSH2 0x1E5C JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1F7F JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1F93 PUSH2 0x1F8B DUP6 PUSH2 0x1E5C JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1F33 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FB6 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1F9B JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1FCE DUP4 DUP4 PUSH2 0x1FA7 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1FE7 DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2000 JUMPI PUSH2 0x1FFF PUSH2 0x1ADC JUMP JUMPDEST JUMPDEST PUSH2 0x200A DUP3 SLOAD PUSH2 0x1E1A JUMP JUMPDEST PUSH2 0x2015 DUP3 DUP3 DUP6 PUSH2 0x1F55 JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2046 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x2034 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x203E DUP6 DUP3 PUSH2 0x1FC3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x20A5 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2054 DUP7 PUSH2 0x1E4A JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x207B JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2056 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2098 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2094 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x1FA7 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x20B6 DUP2 PUSH2 0x15AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x20D6 DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x20E0 DUP2 DUP6 PUSH2 0x20BC JUMP JUMPDEST SWAP4 POP PUSH2 0x20F0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST PUSH2 0x20F9 DUP2 PUSH2 0x176A JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2119 PUSH0 DUP7 ADD DUP3 PUSH2 0x20AD JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x212C PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x20AD JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x2144 DUP3 DUP3 PUSH2 0x20CC JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x2169 DUP2 DUP5 PUSH2 0x2104 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2182 JUMPI PUSH2 0x2181 PUSH2 0x180B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x2192 DUP3 PUSH2 0x2171 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x21A1 DUP3 PUSH2 0x2185 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x21B1 DUP2 PUSH2 0x2197 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x21C0 DUP2 PUSH2 0x17D2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x21DB PUSH0 DUP7 ADD DUP3 PUSH2 0x21A8 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x21EE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x21B7 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2201 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x21B7 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x2219 DUP3 DUP3 PUSH2 0x20CC JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x223E DUP2 DUP5 PUSH2 0x21C6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x225B JUMPI PUSH2 0x225A PUSH2 0x1AD8 JUMP JUMPDEST JUMPDEST PUSH2 0x2265 PUSH1 0x40 PUSH2 0x1B3A JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x2274 DUP5 DUP3 DUP6 ADD PUSH2 0x18AD JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2297 JUMPI PUSH2 0x2296 PUSH2 0x1B54 JUMP JUMPDEST JUMPDEST PUSH2 0x22A3 DUP5 DUP3 DUP6 ADD PUSH2 0x1C39 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22C4 JUMPI PUSH2 0x22C3 PUSH2 0x14EF JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x22E1 JUMPI PUSH2 0x22E0 PUSH2 0x14F3 JUMP JUMPDEST JUMPDEST PUSH2 0x22ED DUP5 DUP3 DUP6 ADD PUSH2 0x2246 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x232D DUP3 PUSH2 0x15AA JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x235F JUMPI PUSH2 0x235E PUSH2 0x22F6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x238D PUSH2 0x2388 PUSH2 0x2383 DUP5 PUSH2 0x236A JUMP JUMPDEST PUSH2 0x1622 JUMP JUMPDEST PUSH2 0x15AA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x239D DUP2 PUSH2 0x2373 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x23B6 PUSH0 DUP4 ADD DUP9 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x23C3 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x23D0 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x23DD PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2394 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x23EF DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2411 DUP3 PUSH2 0x23FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x2422 DUP3 PUSH2 0x2407 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x243A PUSH2 0x2435 DUP3 PUSH2 0x165D JUMP JUMPDEST PUSH2 0x2418 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2451 PUSH2 0x244C DUP3 PUSH2 0x17D2 JUMP JUMPDEST PUSH2 0x2418 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2471 PUSH2 0x246C DUP3 PUSH2 0x15AA JUMP JUMPDEST PUSH2 0x2457 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x248B DUP3 PUSH2 0x1742 JUMP JUMPDEST PUSH2 0x2495 DUP2 DUP6 PUSH2 0x2477 JUMP JUMPDEST SWAP4 POP PUSH2 0x24A5 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x175C JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x24BC DUP3 DUP9 PUSH2 0x2429 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x24CC DUP3 DUP8 PUSH2 0x2440 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x24DC DUP3 DUP7 PUSH2 0x2460 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x24EC DUP3 DUP6 PUSH2 0x2460 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x24FC DUP3 DUP5 PUSH2 0x2481 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x2520 PUSH0 DUP7 ADD DUP3 PUSH2 0x21B7 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2538 DUP3 DUP3 PUSH2 0x20CC JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x255D DUP2 DUP5 PUSH2 0x250B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2578 PUSH0 DUP4 ADD DUP6 PUSH2 0x17E3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x258A DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x259D DUP3 PUSH2 0x15AA JUMP JUMPDEST SWAP2 POP PUSH2 0x25A8 DUP4 PUSH2 0x15AA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x25C0 JUMPI PUSH2 0x25BF PUSH2 0x22F6 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x25D9 PUSH0 DUP4 ADD DUP9 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x25E6 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x17E3 JUMP JUMPDEST PUSH2 0x25F3 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x15B3 JUMP JUMPDEST PUSH2 0x2600 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x15B3 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2612 DUP2 DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA9 STOP 0xC1 PUSH0 MUL LOG3 PC 0xCD PUSH21 0xC915A462105BC7F50C7BCFE67BC1CB2F7214FCEEA3 0xE9 ORIGIN PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"508:2398:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5308:290:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3044:93:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1397:22:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1383:21:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;5123:149:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1114:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1232:861:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2346:558;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;1490:22:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:16;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1315:20:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1204:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4845:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1917:748;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1464:39:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3843:202:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2701:761:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4509:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5308:290:47;5413:4;5451:35;5436:50;;;:11;:50;;;;:103;;;;5505:34;5490:49;;;:11;:49;;;;5436:103;:155;;;;5555:36;5579:11;5555:23;:36::i;:::-;5436:155;5429:162;;5308:290;;;:::o;3044:93:54:-;3098:7;3124:6;;3117:13;;3044:93;:::o;1397:22:47:-;;;;:::o;1383:21:54:-;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;5123:149:47:-;5205:6;5230:35;5223:42;;5123:149;:::o;1114:21::-;;;;;;;;;;;;;:::o;1232:861:52:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1312:24:52::1;1350:5;;1339:32;;;;;;;:::i;:::-;1312:59;;1472:13;1454:31:::0;::::1;;;;;;;:::i;:::-;;:5;:14;;;:31;;;;;;;;:::i;:::-;;::::0;1450:71:::1;;1494:27;;;;;;;;;;;;;;1450:71;1550:1;1535:5;:11;;;:16:::0;1531:63:::1;;1560:34;;;;;;;;;;;;;;1531:63;1668:17;1688:5;:11;;;:21;;;1718:4;1725:5;:13;;;1688:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1668:71;;1765:5;:11;;;1753:9;:23;1749:135;;;1836:5;:11;;;1850:9;1861:5;:11;;;1799:74;;;;;;;;;;;;;:::i;:::-;;;;;;;;1749:135;1902:5;:11;;;1894:5;;:19;;;;;;;;;;;;;;;;;;1934:5;:14;;;1923:8;;:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;1968:5;:13;;;1958:7;:23;;;;1999:5;:11;;;1991:5;:19;;;;2032:5;:15;;;2020:9;:27;;;;;;:::i;:::-;;2058:28;2075:10;2058:16;:28::i;:::-;1302:791;;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1232:861:52;;:::o;2346:558::-;2419:23;2454:24;2492:5;;2481:32;;;;;;;:::i;:::-;2454:59;;2554:333;;;;;;;;2599:24;2554:333;;;;;;;;:::i;:::-;;;;;;2656:5;:11;;;2554:333;;;;;;2702:4;2554:333;;;;;;2763:91;;;;;;;;2795:5;:13;;;2763:91;;;;2818:5;:11;;;2763:91;;;;2837:5;:15;;;2763:91;;;2731:141;;;;;;;;:::i;:::-;;;;;;;;;;;;;2554:333;;;2530:367;;;;;;;;:::i;:::-;;;;;;;;;;;;;2523:374;;;2346:558;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;1490:22:47:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8762:100:16:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1315:20:47:-;;;;:::o;1204:24::-;;;;;;;;;;;;;:::o;4845:242::-;5015:6;5044:36;;;5037:43;;4845:242;;;;;;;;;;:::o;1917:748::-;1991:4;12517:13:16;:11;:13::i;:::-;2099::47::1;2087:25;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:25;;;;;;;;:::i;:::-;;::::0;2083:553:::1;;2128:26;2168:5;;2157:33;;;;;;;:::i;:::-;2128:62;;2209:27;2222:6;:13;;;2209:12;:27::i;:::-;2204:55;;2245:14;;;;;;;;;;;;;;2204:55;2274:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;2321:4;2296:7;:22;2304:6;:13;;;2296:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2407:5;;;;;;;;;;;:22;;;2438:4;2445:6;:13;;;2460:7;;2469:1;2472:6;:11;;;2407:77;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2511:6;:13;;;2503:96;;;2543:5;;;;;;;;;;;2550:6;:13;;;2565:7;;2582:1;2586:6;:11;;;2526:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2503:96;;;;;;:::i;:::-;;;;;;;;2621:4;2614:11;;;;;2083:553;2653:5;2646:12;;12540:1:16;1917:748:47::0;;;;:::o;1464:39:54:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;3843:202:47:-;3916:4;3932:26;3972:5;;3961:33;;;;;;;:::i;:::-;3932:62;;4011:27;4024:6;:13;;;4011:12;:27::i;:::-;4004:34;;;3843:202;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2701:761:47:-;2777:4;12517:13:16;:11;:13::i;:::-;2793:26:47::1;2833:5;;2822:33;;;;;;;:::i;:::-;2793:62;;2866:14;2895:6;:11;;;2884:34;;;;;;;;;;;;:::i;:::-;2865:53;;3018:5;;3009:6;:14;3005:81;;;3055:10;3078:6;3067:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;3032:54;;;;;;;;;;;;:::i;:::-;;;;;;;;3005:81;3105:6;3096:5;;:15;;;;;;;:::i;:::-;;;;;;;;3244:5;;;;;;;;;;;:22;;;3275:4;3282:6;:13;;;3297:7;;3306:6;3314;:11;;;3244:82;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3349:6;:13;;;3341:92;;;3381:5;;;;;;;;;;;3388:6;:13;;;3403:7;;3412:6;3420;:11;;;3364:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3341:92;;;;;;:::i;:::-;;;;;;;;3451:4;3444:11;;;;2701:761:::0;;;;:::o;4509:210::-;4652:6;4681:31;;;4674:38;;4509:210;;;;;;;;:::o;8348:349:16:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;3173:208:54:-;3269:4;3307:27;3292:42;;;:11;:42;;;;:82;;;;3338:36;3362:11;3338:23;:36::i;:::-;3292:82;3285:89;;3173:208;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;4251:133:47:-;4316:4;4340:7;:19;4348:10;4340:19;;;;;;;;;;;;;;;;;;;;;;;;;4339:20;:38;;;;;4372:5;;4363:6;;:14;4339:38;4332:45;;4251:133;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:115::-;2038:23;2055:5;2038:23;:::i;:::-;2033:3;2026:36;1953:115;;:::o;2074:218::-;2165:4;2203:2;2192:9;2188:18;2180:26;;2216:69;2282:1;2271:9;2267:17;2258:6;2216:69;:::i;:::-;2074:218;;;;:::o;2298:126::-;2335:7;2375:42;2368:5;2364:54;2353:65;;2298:126;;;:::o;2430:60::-;2458:3;2479:5;2472:12;;2430:60;;;:::o;2496:142::-;2546:9;2579:53;2597:34;2606:24;2624:5;2606:24;:::i;:::-;2597:34;:::i;:::-;2579:53;:::i;:::-;2566:66;;2496:142;;;:::o;2644:126::-;2694:9;2727:37;2758:5;2727:37;:::i;:::-;2714:50;;2644:126;;;:::o;2776:143::-;2843:9;2876:37;2907:5;2876:37;:::i;:::-;2863:50;;2776:143;;;:::o;2925:165::-;3029:54;3077:5;3029:54;:::i;:::-;3024:3;3017:67;2925:165;;:::o;3096:256::-;3206:4;3244:2;3233:9;3229:18;3221:26;;3257:88;3342:1;3331:9;3327:17;3318:6;3257:88;:::i;:::-;3096:256;;;;:::o;3358:117::-;3467:1;3464;3457:12;3481:117;3590:1;3587;3580:12;3604:117;3713:1;3710;3703:12;3740:552;3797:8;3807:6;3857:3;3850:4;3842:6;3838:17;3834:27;3824:122;;3865:79;;:::i;:::-;3824:122;3978:6;3965:20;3955:30;;4008:18;4000:6;3997:30;3994:117;;;4030:79;;:::i;:::-;3994:117;4144:4;4136:6;4132:17;4120:29;;4198:3;4190:4;4182:6;4178:17;4168:8;4164:32;4161:41;4158:128;;;4205:79;;:::i;:::-;4158:128;3740:552;;;;;:::o;4298:527::-;4368:6;4376;4425:2;4413:9;4404:7;4400:23;4396:32;4393:119;;;4431:79;;:::i;:::-;4393:119;4579:1;4568:9;4564:17;4551:31;4609:18;4601:6;4598:30;4595:117;;;4631:79;;:::i;:::-;4595:117;4744:64;4800:7;4791:6;4780:9;4776:22;4744:64;:::i;:::-;4726:82;;;;4522:296;4298:527;;;;;:::o;4831:98::-;4882:6;4916:5;4910:12;4900:22;;4831:98;;;:::o;4935:168::-;5018:11;5052:6;5047:3;5040:19;5092:4;5087:3;5083:14;5068:29;;4935:168;;;;:::o;5109:139::-;5198:6;5193:3;5188;5182:23;5239:1;5230:6;5225:3;5221:16;5214:27;5109:139;;;:::o;5254:102::-;5295:6;5346:2;5342:7;5337:2;5330:5;5326:14;5322:28;5312:38;;5254:102;;;:::o;5362:373::-;5448:3;5476:38;5508:5;5476:38;:::i;:::-;5530:70;5593:6;5588:3;5530:70;:::i;:::-;5523:77;;5609:65;5667:6;5662:3;5655:4;5648:5;5644:16;5609:65;:::i;:::-;5699:29;5721:6;5699:29;:::i;:::-;5694:3;5690:39;5683:46;;5452:283;5362:373;;;;:::o;5741:309::-;5852:4;5890:2;5879:9;5875:18;5867:26;;5939:9;5933:4;5929:20;5925:1;5914:9;5910:17;5903:47;5967:76;6038:4;6029:6;5967:76;:::i;:::-;5959:84;;5741:309;;;;:::o;6056:96::-;6093:7;6122:24;6140:5;6122:24;:::i;:::-;6111:35;;6056:96;;;:::o;6158:118::-;6245:24;6263:5;6245:24;:::i;:::-;6240:3;6233:37;6158:118;;:::o;6282:222::-;6375:4;6413:2;6402:9;6398:18;6390:26;;6426:71;6494:1;6483:9;6479:17;6470:6;6426:71;:::i;:::-;6282:222;;;;:::o;6510:180::-;6558:77;6555:1;6548:88;6655:4;6652:1;6645:15;6679:4;6676:1;6669:15;6696:119;6783:1;6776:5;6773:12;6763:46;;6789:18;;:::i;:::-;6763:46;6696:119;:::o;6821:139::-;6872:7;6901:5;6890:16;;6907:47;6948:5;6907:47;:::i;:::-;6821:139;;;:::o;6966:::-;7028:9;7061:38;7093:5;7061:38;:::i;:::-;7048:51;;6966:139;;;:::o;7111:155::-;7210:49;7253:5;7210:49;:::i;:::-;7205:3;7198:62;7111:155;;:::o;7272:246::-;7377:4;7415:2;7404:9;7400:18;7392:26;;7428:83;7508:1;7497:9;7493:17;7484:6;7428:83;:::i;:::-;7272:246;;;;:::o;7524:122::-;7597:24;7615:5;7597:24;:::i;:::-;7590:5;7587:35;7577:63;;7636:1;7633;7626:12;7577:63;7524:122;:::o;7652:139::-;7698:5;7736:6;7723:20;7714:29;;7752:33;7779:5;7752:33;:::i;:::-;7652:139;;;;:::o;7814:568::-;7887:8;7897:6;7947:3;7940:4;7932:6;7928:17;7924:27;7914:122;;7955:79;;:::i;:::-;7914:122;8068:6;8055:20;8045:30;;8098:18;8090:6;8087:30;8084:117;;;8120:79;;:::i;:::-;8084:117;8234:4;8226:6;8222:17;8210:29;;8288:3;8280:4;8272:6;8268:17;8258:8;8254:32;8251:41;8248:128;;;8295:79;;:::i;:::-;8248:128;7814:568;;;;;:::o;8388:1569::-;8548:6;8556;8564;8572;8580;8588;8596;8604;8653:3;8641:9;8632:7;8628:23;8624:33;8621:120;;;8660:79;;:::i;:::-;8621:120;8780:1;8805:53;8850:7;8841:6;8830:9;8826:22;8805:53;:::i;:::-;8795:63;;8751:117;8907:2;8933:53;8978:7;8969:6;8958:9;8954:22;8933:53;:::i;:::-;8923:63;;8878:118;9063:2;9052:9;9048:18;9035:32;9094:18;9086:6;9083:30;9080:117;;;9116:79;;:::i;:::-;9080:117;9229:80;9301:7;9292:6;9281:9;9277:22;9229:80;:::i;:::-;9211:98;;;;9006:313;9386:2;9375:9;9371:18;9358:32;9417:18;9409:6;9406:30;9403:117;;;9439:79;;:::i;:::-;9403:117;9552:80;9624:7;9615:6;9604:9;9600:22;9552:80;:::i;:::-;9534:98;;;;9329:313;9709:3;9698:9;9694:19;9681:33;9741:18;9733:6;9730:30;9727:117;;;9763:79;;:::i;:::-;9727:117;9876:64;9932:7;9923:6;9912:9;9908:22;9876:64;:::i;:::-;9858:82;;;;9652:298;8388:1569;;;;;;;;;;;:::o;9963:329::-;10022:6;10071:2;10059:9;10050:7;10046:23;10042:32;10039:119;;;10077:79;;:::i;:::-;10039:119;10197:1;10222:53;10267:7;10258:6;10247:9;10243:22;10222:53;:::i;:::-;10212:63;;10168:117;9963:329;;;;:::o;10298:122::-;10371:24;10389:5;10371:24;:::i;:::-;10364:5;10361:35;10351:63;;10410:1;10407;10400:12;10351:63;10298:122;:::o;10426:139::-;10472:5;10510:6;10497:20;10488:29;;10526:33;10553:5;10526:33;:::i;:::-;10426:139;;;;:::o;10571:1109::-;10677:6;10685;10693;10701;10709;10717;10766:3;10754:9;10745:7;10741:23;10737:33;10734:120;;;10773:79;;:::i;:::-;10734:120;10893:1;10918:53;10963:7;10954:6;10943:9;10939:22;10918:53;:::i;:::-;10908:63;;10864:117;11020:2;11046:53;11091:7;11082:6;11071:9;11067:22;11046:53;:::i;:::-;11036:63;;10991:118;11148:2;11174:53;11219:7;11210:6;11199:9;11195:22;11174:53;:::i;:::-;11164:63;;11119:118;11276:2;11302:53;11347:7;11338:6;11327:9;11323:22;11302:53;:::i;:::-;11292:63;;11247:118;11432:3;11421:9;11417:19;11404:33;11464:18;11456:6;11453:30;11450:117;;;11486:79;;:::i;:::-;11450:117;11599:64;11655:7;11646:6;11635:9;11631:22;11599:64;:::i;:::-;11581:82;;;;11375:298;10571:1109;;;;;;;;:::o;11686:117::-;11795:1;11792;11785:12;11809:180;11857:77;11854:1;11847:88;11954:4;11951:1;11944:15;11978:4;11975:1;11968:15;11995:281;12078:27;12100:4;12078:27;:::i;:::-;12070:6;12066:40;12208:6;12196:10;12193:22;12172:18;12160:10;12157:34;12154:62;12151:88;;;12219:18;;:::i;:::-;12151:88;12259:10;12255:2;12248:22;12038:238;11995:281;;:::o;12282:129::-;12316:6;12343:20;;:::i;:::-;12333:30;;12372:33;12400:4;12392:6;12372:33;:::i;:::-;12282:129;;;:::o;12417:117::-;12526:1;12523;12516:12;12540:113;12594:7;12623:24;12641:5;12623:24;:::i;:::-;12612:35;;12540:113;;;:::o;12659:156::-;12749:41;12784:5;12749:41;:::i;:::-;12742:5;12739:52;12729:80;;12805:1;12802;12795:12;12729:80;12659:156;:::o;12821:173::-;12884:5;12922:6;12909:20;12900:29;;12938:50;12982:5;12938:50;:::i;:::-;12821:173;;;;:::o;13000:113::-;13087:1;13080:5;13077:12;13067:40;;13103:1;13100;13093:12;13067:40;13000:113;:::o;13119:167::-;13179:5;13217:6;13204:20;13195:29;;13233:47;13274:5;13233:47;:::i;:::-;13119:167;;;;:::o;13292:117::-;13401:1;13398;13391:12;13415:307;13476:4;13566:18;13558:6;13555:30;13552:56;;;13588:18;;:::i;:::-;13552:56;13626:29;13648:6;13626:29;:::i;:::-;13618:37;;13710:4;13704;13700:15;13692:23;;13415:307;;;:::o;13728:148::-;13826:6;13821:3;13816;13803:30;13867:1;13858:6;13853:3;13849:16;13842:27;13728:148;;;:::o;13882:423::-;13959:5;13984:65;14000:48;14041:6;14000:48;:::i;:::-;13984:65;:::i;:::-;13975:74;;14072:6;14065:5;14058:21;14110:4;14103:5;14099:16;14148:3;14139:6;14134:3;14130:16;14127:25;14124:112;;;14155:79;;:::i;:::-;14124:112;14245:54;14292:6;14287:3;14282;14245:54;:::i;:::-;13965:340;13882:423;;;;;:::o;14324:338::-;14379:5;14428:3;14421:4;14413:6;14409:17;14405:27;14395:122;;14436:79;;:::i;:::-;14395:122;14553:6;14540:20;14578:78;14652:3;14644:6;14637:4;14629:6;14625:17;14578:78;:::i;:::-;14569:87;;14385:277;14324:338;;;;:::o;14711:1277::-;14790:5;14834:4;14822:9;14817:3;14813:19;14809:30;14806:117;;;14842:79;;:::i;:::-;14806:117;14941:21;14957:4;14941:21;:::i;:::-;14932:30;;15022:1;15062:66;15124:3;15115:6;15104:9;15100:22;15062:66;:::i;:::-;15055:4;15048:5;15044:16;15037:92;14972:168;15203:2;15244:63;15303:3;15294:6;15283:9;15279:22;15244:63;:::i;:::-;15237:4;15230:5;15226:16;15219:89;15150:169;15381:2;15422:49;15467:3;15458:6;15447:9;15443:22;15422:49;:::i;:::-;15415:4;15408:5;15404:16;15397:75;15329:154;15543:2;15584:49;15629:3;15620:6;15609:9;15605:22;15584:49;:::i;:::-;15577:4;15570:5;15566:16;15559:75;15493:152;15737:3;15726:9;15722:19;15709:33;15769:18;15761:6;15758:30;15755:117;;;15791:79;;:::i;:::-;15755:117;15911:58;15965:3;15956:6;15945:9;15941:22;15911:58;:::i;:::-;15904:4;15897:5;15893:16;15886:84;15655:326;14711:1277;;;;:::o;15994:549::-;16083:6;16132:2;16120:9;16111:7;16107:23;16103:32;16100:119;;;16138:79;;:::i;:::-;16100:119;16286:1;16275:9;16271:17;16258:31;16316:18;16308:6;16305:30;16302:117;;;16338:79;;:::i;:::-;16302:117;16443:83;16518:7;16509:6;16498:9;16494:22;16443:83;:::i;:::-;16433:93;;16229:307;15994:549;;;;:::o;16549:332::-;16670:4;16708:2;16697:9;16693:18;16685:26;;16721:71;16789:1;16778:9;16774:17;16765:6;16721:71;:::i;:::-;16802:72;16870:2;16859:9;16855:18;16846:6;16802:72;:::i;:::-;16549:332;;;;;:::o;16887:143::-;16944:5;16975:6;16969:13;16960:22;;16991:33;17018:5;16991:33;:::i;:::-;16887:143;;;;:::o;17036:351::-;17106:6;17155:2;17143:9;17134:7;17130:23;17126:32;17123:119;;;17161:79;;:::i;:::-;17123:119;17281:1;17306:64;17362:7;17353:6;17342:9;17338:22;17306:64;:::i;:::-;17296:74;;17252:128;17036:351;;;;:::o;17393:442::-;17542:4;17580:2;17569:9;17565:18;17557:26;;17593:71;17661:1;17650:9;17646:17;17637:6;17593:71;:::i;:::-;17674:72;17742:2;17731:9;17727:18;17718:6;17674:72;:::i;:::-;17756;17824:2;17813:9;17809:18;17800:6;17756:72;:::i;:::-;17393:442;;;;;;:::o;17841:180::-;17889:77;17886:1;17879:88;17986:4;17983:1;17976:15;18010:4;18007:1;18000:15;18027:320;18071:6;18108:1;18102:4;18098:12;18088:22;;18155:1;18149:4;18145:12;18176:18;18166:81;;18232:4;18224:6;18220:17;18210:27;;18166:81;18294:2;18286:6;18283:14;18263:18;18260:38;18257:84;;18313:18;;:::i;:::-;18257:84;18078:269;18027:320;;;:::o;18353:140::-;18401:4;18424:3;18416:11;;18447:3;18444:1;18437:14;18481:4;18478:1;18468:18;18460:26;;18353:140;;;:::o;18499:93::-;18536:6;18583:2;18578;18571:5;18567:14;18563:23;18553:33;;18499:93;;;:::o;18598:107::-;18642:8;18692:5;18686:4;18682:16;18661:37;;18598:107;;;;:::o;18711:393::-;18780:6;18830:1;18818:10;18814:18;18853:97;18883:66;18872:9;18853:97;:::i;:::-;18971:39;19001:8;18990:9;18971:39;:::i;:::-;18959:51;;19043:4;19039:9;19032:5;19028:21;19019:30;;19092:4;19082:8;19078:19;19071:5;19068:30;19058:40;;18787:317;;18711:393;;;;;:::o;19110:142::-;19160:9;19193:53;19211:34;19220:24;19238:5;19220:24;:::i;:::-;19211:34;:::i;:::-;19193:53;:::i;:::-;19180:66;;19110:142;;;:::o;19258:75::-;19301:3;19322:5;19315:12;;19258:75;;;:::o;19339:269::-;19449:39;19480:7;19449:39;:::i;:::-;19510:91;19559:41;19583:16;19559:41;:::i;:::-;19551:6;19544:4;19538:11;19510:91;:::i;:::-;19504:4;19497:105;19415:193;19339:269;;;:::o;19614:73::-;19659:3;19614:73;:::o;19693:189::-;19770:32;;:::i;:::-;19811:65;19869:6;19861;19855:4;19811:65;:::i;:::-;19746:136;19693:189;;:::o;19888:186::-;19948:120;19965:3;19958:5;19955:14;19948:120;;;20019:39;20056:1;20049:5;20019:39;:::i;:::-;19992:1;19985:5;19981:13;19972:22;;19948:120;;;19888:186;;:::o;20080:541::-;20180:2;20175:3;20172:11;20169:445;;;20214:37;20245:5;20214:37;:::i;:::-;20297:29;20315:10;20297:29;:::i;:::-;20287:8;20283:44;20480:2;20468:10;20465:18;20462:49;;;20501:8;20486:23;;20462:49;20524:80;20580:22;20598:3;20580:22;:::i;:::-;20570:8;20566:37;20553:11;20524:80;:::i;:::-;20184:430;;20169:445;20080:541;;;:::o;20627:117::-;20681:8;20731:5;20725:4;20721:16;20700:37;;20627:117;;;;:::o;20750:169::-;20794:6;20827:51;20875:1;20871:6;20863:5;20860:1;20856:13;20827:51;:::i;:::-;20823:56;20908:4;20902;20898:15;20888:25;;20801:118;20750:169;;;;:::o;20924:295::-;21000:4;21146:29;21171:3;21165:4;21146:29;:::i;:::-;21138:37;;21208:3;21205:1;21201:11;21195:4;21192:21;21184:29;;20924:295;;;;:::o;21224:1390::-;21339:36;21371:3;21339:36;:::i;:::-;21440:18;21432:6;21429:30;21426:56;;;21462:18;;:::i;:::-;21426:56;21506:38;21538:4;21532:11;21506:38;:::i;:::-;21591:66;21650:6;21642;21636:4;21591:66;:::i;:::-;21684:1;21708:4;21695:17;;21740:2;21732:6;21729:14;21757:1;21752:617;;;;22413:1;22430:6;22427:77;;;22479:9;22474:3;22470:19;22464:26;22455:35;;22427:77;22530:67;22590:6;22583:5;22530:67;:::i;:::-;22524:4;22517:81;22386:222;21722:886;;21752:617;21804:4;21800:9;21792:6;21788:22;21838:36;21869:4;21838:36;:::i;:::-;21896:1;21910:208;21924:7;21921:1;21918:14;21910:208;;;22003:9;21998:3;21994:19;21988:26;21980:6;21973:42;22054:1;22046:6;22042:14;22032:24;;22101:2;22090:9;22086:18;22073:31;;21947:4;21944:1;21940:12;21935:17;;21910:208;;;22146:6;22137:7;22134:19;22131:179;;;22204:9;22199:3;22195:19;22189:26;22247:48;22289:4;22281:6;22277:17;22266:9;22247:48;:::i;:::-;22239:6;22232:64;22154:156;22131:179;22356:1;22352;22344:6;22340:14;22336:22;22330:4;22323:36;21759:610;;;21722:886;;21314:1300;;;21224:1390;;:::o;22620:108::-;22697:24;22715:5;22697:24;:::i;:::-;22692:3;22685:37;22620:108;;:::o;22734:158::-;22807:11;22841:6;22836:3;22829:19;22881:4;22876:3;22872:14;22857:29;;22734:158;;;;:::o;22898:353::-;22974:3;23002:38;23034:5;23002:38;:::i;:::-;23056:60;23109:6;23104:3;23056:60;:::i;:::-;23049:67;;23125:65;23183:6;23178:3;23171:4;23164:5;23160:16;23125:65;:::i;:::-;23215:29;23237:6;23215:29;:::i;:::-;23210:3;23206:39;23199:46;;22978:273;22898:353;;;;:::o;23325:799::-;23460:3;23496:4;23491:3;23487:14;23586:4;23579:5;23575:16;23569:23;23605:63;23662:4;23657:3;23653:14;23639:12;23605:63;:::i;:::-;23511:167;23762:4;23755:5;23751:16;23745:23;23781:63;23838:4;23833:3;23829:14;23815:12;23781:63;:::i;:::-;23688:166;23936:4;23929:5;23925:16;23919:23;23989:3;23983:4;23979:14;23972:4;23967:3;23963:14;23956:38;24015:71;24081:4;24067:12;24015:71;:::i;:::-;24007:79;;23864:233;24114:4;24107:11;;23465:659;23325:799;;;;:::o;24130:405::-;24289:4;24327:2;24316:9;24312:18;24304:26;;24376:9;24370:4;24366:20;24362:1;24351:9;24347:17;24340:47;24404:124;24523:4;24514:6;24404:124;:::i;:::-;24396:132;;24130:405;;;;:::o;24541:120::-;24629:1;24622:5;24619:12;24609:46;;24635:18;;:::i;:::-;24609:46;24541:120;:::o;24667:141::-;24719:7;24748:5;24737:16;;24754:48;24796:5;24754:48;:::i;:::-;24667:141;;;:::o;24814:::-;24877:9;24910:39;24943:5;24910:39;:::i;:::-;24897:52;;24814:141;;;:::o;24961:147::-;25051:50;25095:5;25051:50;:::i;:::-;25046:3;25039:63;24961:147;;:::o;25114:108::-;25191:24;25209:5;25191:24;:::i;:::-;25186:3;25179:37;25114:108;;:::o;25284:977::-;25407:3;25443:4;25438:3;25434:14;25535:4;25528:5;25524:16;25518:23;25554:76;25624:4;25619:3;25615:14;25601:12;25554:76;:::i;:::-;25458:182;25723:4;25716:5;25712:16;25706:23;25742:63;25799:4;25794:3;25790:14;25776:12;25742:63;:::i;:::-;25650:165;25899:4;25892:5;25888:16;25882:23;25918:63;25975:4;25970:3;25966:14;25952:12;25918:63;:::i;:::-;25825:166;26073:4;26066:5;26062:16;26056:23;26126:3;26120:4;26116:14;26109:4;26104:3;26100:14;26093:38;26152:71;26218:4;26204:12;26152:71;:::i;:::-;26144:79;;26001:233;26251:4;26244:11;;25412:849;25284:977;;;;:::o;26267:381::-;26414:4;26452:2;26441:9;26437:18;26429:26;;26501:9;26495:4;26491:20;26487:1;26476:9;26472:17;26465:47;26529:112;26636:4;26627:6;26529:112;:::i;:::-;26521:120;;26267:381;;;;:::o;26691:751::-;26771:5;26815:4;26803:9;26798:3;26794:19;26790:30;26787:117;;;26823:79;;:::i;:::-;26787:117;26922:21;26938:4;26922:21;:::i;:::-;26913:30;;27004:1;27044:49;27089:3;27080:6;27069:9;27065:22;27044:49;:::i;:::-;27037:4;27030:5;27026:16;27019:75;26953:152;27192:2;27181:9;27177:18;27164:32;27223:18;27215:6;27212:30;27209:117;;;27245:79;;:::i;:::-;27209:117;27365:58;27419:3;27410:6;27399:9;27395:22;27365:58;:::i;:::-;27358:4;27351:5;27347:16;27340:84;27115:320;26691:751;;;;:::o;27448:551::-;27538:6;27587:2;27575:9;27566:7;27562:23;27558:32;27555:119;;;27593:79;;:::i;:::-;27555:119;27741:1;27730:9;27726:17;27713:31;27771:18;27763:6;27760:30;27757:117;;;27793:79;;:::i;:::-;27757:117;27898:84;27974:7;27965:6;27954:9;27950:22;27898:84;:::i;:::-;27888:94;;27684:308;27448:551;;;;:::o;28005:180::-;28053:77;28050:1;28043:88;28150:4;28147:1;28140:15;28174:4;28171:1;28164:15;28191:233;28230:3;28253:24;28271:5;28253:24;:::i;:::-;28244:33;;28299:66;28292:5;28289:77;28286:103;;28369:18;;:::i;:::-;28286:103;28416:1;28409:5;28405:13;28398:20;;28191:233;;;:::o;28430:85::-;28475:7;28504:5;28493:16;;28430:85;;;:::o;28521:158::-;28579:9;28612:61;28630:42;28639:32;28665:5;28639:32;:::i;:::-;28630:42;:::i;:::-;28612:61;:::i;:::-;28599:74;;28521:158;;;:::o;28685:147::-;28780:45;28819:5;28780:45;:::i;:::-;28775:3;28768:58;28685:147;;:::o;28838:767::-;29069:4;29107:3;29096:9;29092:19;29084:27;;29121:71;29189:1;29178:9;29174:17;29165:6;29121:71;:::i;:::-;29202:72;29270:2;29259:9;29255:18;29246:6;29202:72;:::i;:::-;29284;29352:2;29341:9;29337:18;29328:6;29284:72;:::i;:::-;29366:80;29442:2;29431:9;29427:18;29418:6;29366:80;:::i;:::-;29494:9;29488:4;29484:20;29478:3;29467:9;29463:19;29456:49;29522:76;29593:4;29584:6;29522:76;:::i;:::-;29514:84;;28838:767;;;;;;;;:::o;29611:94::-;29644:8;29692:5;29688:2;29684:14;29663:35;;29611:94;;;:::o;29711:::-;29750:7;29779:20;29793:5;29779:20;:::i;:::-;29768:31;;29711:94;;;:::o;29811:100::-;29850:7;29879:26;29899:5;29879:26;:::i;:::-;29868:37;;29811:100;;;:::o;29917:204::-;30039:75;30059:54;30107:5;30059:54;:::i;:::-;30039:75;:::i;:::-;30034:3;30027:88;29917:204;;:::o;30127:157::-;30232:45;30252:24;30270:5;30252:24;:::i;:::-;30232:45;:::i;:::-;30227:3;30220:58;30127:157;;:::o;30290:79::-;30329:7;30358:5;30347:16;;30290:79;;;:::o;30375:157::-;30480:45;30500:24;30518:5;30500:24;:::i;:::-;30480:45;:::i;:::-;30475:3;30468:58;30375:157;;:::o;30538:147::-;30639:11;30676:3;30661:18;;30538:147;;;;:::o;30691:386::-;30795:3;30823:38;30855:5;30823:38;:::i;:::-;30877:88;30958:6;30953:3;30877:88;:::i;:::-;30870:95;;30974:65;31032:6;31027:3;31020:4;31013:5;31009:16;30974:65;:::i;:::-;31064:6;31059:3;31055:16;31048:23;;30799:278;30691:386;;;;:::o;31083:869::-;31342:3;31357:92;31445:3;31436:6;31357:92;:::i;:::-;31474:2;31469:3;31465:12;31458:19;;31487:75;31558:3;31549:6;31487:75;:::i;:::-;31587:2;31582:3;31578:12;31571:19;;31600:75;31671:3;31662:6;31600:75;:::i;:::-;31700:2;31695:3;31691:12;31684:19;;31713:75;31784:3;31775:6;31713:75;:::i;:::-;31813:2;31808:3;31804:12;31797:19;;31833:93;31922:3;31913:6;31833:93;:::i;:::-;31826:100;;31943:3;31936:10;;31083:869;;;;;;;;:::o;32028:618::-;32159:3;32195:4;32190:3;32186:14;32284:4;32277:5;32273:16;32267:23;32303:63;32360:4;32355:3;32351:14;32337:12;32303:63;:::i;:::-;32210:166;32458:4;32451:5;32447:16;32441:23;32511:3;32505:4;32501:14;32494:4;32489:3;32485:14;32478:38;32537:71;32603:4;32589:12;32537:71;:::i;:::-;32529:79;;32386:233;32636:4;32629:11;;32164:482;32028:618;;;;:::o;32652:397::-;32807:4;32845:2;32834:9;32830:18;32822:26;;32894:9;32888:4;32884:20;32880:1;32869:9;32865:17;32858:47;32922:120;33037:4;33028:6;32922:120;:::i;:::-;32914:128;;32652:397;;;;:::o;33055:419::-;33194:4;33232:2;33221:9;33217:18;33209:26;;33245:71;33313:1;33302:9;33298:17;33289:6;33245:71;:::i;:::-;33363:9;33357:4;33353:20;33348:2;33337:9;33333:18;33326:48;33391:76;33462:4;33453:6;33391:76;:::i;:::-;33383:84;;33055:419;;;;;:::o;33480:194::-;33520:4;33540:20;33558:1;33540:20;:::i;:::-;33535:25;;33574:20;33592:1;33574:20;:::i;:::-;33569:25;;33618:1;33615;33611:9;33603:17;;33642:1;33636:4;33633:11;33630:37;;;33647:18;;:::i;:::-;33630:37;33480:194;;;;:::o;33680:751::-;33903:4;33941:3;33930:9;33926:19;33918:27;;33955:71;34023:1;34012:9;34008:17;33999:6;33955:71;:::i;:::-;34036:72;34104:2;34093:9;34089:18;34080:6;34036:72;:::i;:::-;34118;34186:2;34175:9;34171:18;34162:6;34118:72;:::i;:::-;34200;34268:2;34257:9;34253:18;34244:6;34200:72;:::i;:::-;34320:9;34314:4;34310:20;34304:3;34293:9;34289:19;34282:49;34348:76;34419:4;34410:6;34348:76;:::i;:::-;34340:84;;33680:751;;;;;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","extraData()":"609d3334","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)":"bc197c81","onERC1155Received(address,address,uint256,uint256,bytes)":"f23a6e61","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","tokenId()":"17d70f7c","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"contract IERC1155\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"extraData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"pure\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum AERC1155Incentive.Strategy\",\"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\":\"tokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed initialization payload\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"This contract does not check the token ID and will accept all batches\",\"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\":\"This contract does not check the token ID and will accept all tokens\",\"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\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"budgetData\":\"The data payload to be passed to the Budget for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC1155Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC1155-compliant contract\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new ERC1155Incentive\"},\"extraData()\":{\"notice\":\"Extra data to be passed to the ERC1155 contract\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"tokenId()\":{\"notice\":\"The ERC1155 token ID for the incentive\"}},\"notice\":\"A simple ERC1155 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/ERC1155Incentive.sol\":\"ERC1155Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/AERC1155Incentive.sol\":{\"keccak256\":\"0xe0e62b237f24ea4d9071c347f7e641a7e61774015b1994cca98b278b79a0e457\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a592a2f9708f1e779db67c6d9a7fcb6975c6bfc784ce972f9cf9736855d7d7e0\",\"dweb:/ipfs/QmVvRfdPJ5Mma7Z3LovZctoKgG6npdTFXHpZZammq4ky6g\"]},\"contracts/incentives/ERC1155Incentive.sol\":{\"keccak256\":\"0xd5d8d6a6e1eb757c373b5573625a1b66b5969bf4a7a525f622a56f077fc3f75f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9804c05ebbfe9c6c2e46d9cce656cab15523b829ff0b1d20664de4a73098618c\",\"dweb:/ipfs/QmWiU37dHwamJCxzZEL4ySNXjGuxoTerWhqDGdF7i35xTf\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/ERC20Incentive.sol":{"ERC20Incentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"entry","type":"address"}],"name":"Entry","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"drawRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"entries","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"strategy","outputs":[{"internalType":"enum AERC20Incentive.Strategy","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_17890":{"entryPoint":null,"id":17890,"parameterSlots":0,"returnSlots":0},"@_18117":{"entryPoint":null,"id":18117,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6122fb806101b45f395ff3fe60806040526004361061013f575f3560e01c80638da5cb5b116100b5578063dcc59b6f1161006e578063dcc59b6f146103f1578063e18e65081461041b578063f04e283e14610457578063f1c30ec014610473578063f2fde38b146104af578063fee81cf4146104cb5761013f565b80638da5cb5b146102bf578063a4d66daf146102e9578063a8c62e7614610313578063b30906d41461033d578063c63ff8dd14610379578063c884ef83146103b55761013f565b806328d6183b1161010757806328d6183b146101f357806338d52e0f1461021d578063439fab91146102475780634e7165a21461026f57806354d1f13d146102ab578063715018a6146102b55761013f565b806301ffc9a71461014357806307621eca1461017f5780632275aea9146101a9578063228cb733146101bf57806325692962146101e9575b5f80fd5b34801561014e575f80fd5b50610169600480360381019061016491906117d0565b610507565b6040516101769190611815565b60405180910390f35b34801561018a575f80fd5b50610193610580565b6040516101a09190611846565b60405180910390f35b3480156101b4575f80fd5b506101bd610589565b005b3480156101ca575f80fd5b506101d3610756565b6040516101e09190611846565b60405180910390f35b6101f161075c565b005b3480156101fe575f80fd5b506102076107ad565b604051610214919061186e565b60405180910390f35b348015610228575f80fd5b506102316107d4565b60405161023e91906118c6565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190611940565b6107f9565b005b34801561027a575f80fd5b5061029560048036038101906102909190611940565b610a8e565b6040516102a291906119fb565b60405180910390f35b6102b3610bac565b005b6102bd610be5565b005b3480156102ca575f80fd5b506102d3610bf8565b6040516102e091906118c6565b60405180910390f35b3480156102f4575f80fd5b506102fd610c20565b60405161030a9190611846565b60405180910390f35b34801561031e575f80fd5b50610327610c26565b6040516103349190611a8e565b60405180910390f35b348015610348575f80fd5b50610363600480360381019061035e9190611ad1565b610c39565b60405161037091906118c6565b60405180910390f35b348015610384575f80fd5b5061039f600480360381019061039a9190611940565b610c74565b6040516103ac9190611815565b60405180910390f35b3480156103c0575f80fd5b506103db60048036038101906103d69190611b26565b610fd4565b6040516103e89190611815565b60405180910390f35b3480156103fc575f80fd5b50610405610ff1565b6040516104129190611846565b60405180910390f35b348015610426575f80fd5b50610441600480360381019061043c9190611940565b610ff6565b60405161044e9190611815565b60405180910390f35b610471600480360381019061046c9190611b26565b61101e565b005b34801561047e575f80fd5b5061049960048036038101906104949190611940565b61105c565b6040516104a69190611815565b60405180910390f35b6104c960048036038101906104c49190611b26565b6112d7565b005b3480156104d6575f80fd5b506104f160048036038101906104ec9190611b26565b611300565b6040516104fe9190611846565b60405180910390f35b5f7f197d2cb3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610579575061057882611319565b5b9050919050565b5f600154905090565b610591611392565b6002808111156105a4576105a3611a1b565b5b600360149054906101000a900460ff1660028111156105c6576105c5611a1b565b5b146105fd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446106159190611b7e565b81525090505f6005808054905061062b846113c9565b6106359190611bde565b8154811061064657610645611c0e565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506106be8160015460035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113d89092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360015460405160200161072e93929190611ca0565b60405160208183030381529060405260405161074a91906119fb565b60405180910390a25050565b60015481565b5f610765611421565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f197d2cb300000000000000000000000000000000000000000000000000000000905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61080261142b565b905080546003825580156108345760018160011c14303b1061082b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906108459190611df4565b90506001600281111561085b5761085a611a1b565b5b8160200151600281111561087257610871611a1b565b5b036108a9576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816040015114806108be57505f8160600151145b156108f5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60028081111561090957610908611a1b565b5b826020015160028111156109205761091f611a1b565b5b0361092f578160400151610944565b816060015182604001516109439190611e1f565b5b90505f61097330845f015173ffffffffffffffffffffffffffffffffffffffff1661145490919063ffffffff16565b9050818110156109c157825f015181836040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016109b893929190611e60565b60405180910390fd5b825f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260200151600360146101000a81548160ff02191690836002811115610a2d57610a2c611a1b565b5b021790555082604001516001819055508260600151600481905550610a5133611487565b5050508015610a89576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f8383810190610aa09190611df4565b90505f600280811115610ab657610ab5611a1b565b5b82602001516002811115610acd57610acc611a1b565b5b03610adc578160400151610af1565b81606001518260400151610af09190611e1f565b5b9050604051806080016040528060016002811115610b1257610b11611a1b565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610b719190611ebe565b604051602081830303815290604052815250604051602001610b939190611fd4565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610bed611392565b610bf65f61155d565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600360149054906101000a900460ff1681565b60058181548110610c48575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610c7d611392565b5f8383810190610c8d919061210d565b9050610c9b815f0151611623565b610cd1576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002811115610ce457610ce3611a1b565b5b600360149054906101000a900460ff166002811115610d0657610d05611a1b565b5b03610e6e575f80815480929190610d1c90612154565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610dca815f015160015460035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113d89092919063ffffffff16565b805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f0151600154604051602001610e4093929190611ca0565b604051602081830303815290604052604051610e5c91906119fb565b60405180910390a26001915050610fce565b600280811115610e8157610e80611a1b565b5b600360149054906101000a900460ff166002811115610ea357610ea2611a1b565b5b03610fc9575f80815480929190610eb990612154565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506005815f0151908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015173ffffffffffffffffffffffffffffffffffffffff167ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f15360405160405180910390a26001915050610fce565b5f9150505b92915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190611007919061210d565b9050611015815f0151611623565b91505092915050565b611026611392565b63389a75e1600c52805f526020600c20805442111561104c57636f5e88185f526004601cfd5b5f8155506110598161155d565b50565b5f611065611392565b5f8383810190611075919061210d565b90505f816020015180602001905181019061109091906121af565b90506002808111156110a5576110a4611a1b565b5b600360149054906101000a900460ff1660028111156110c7576110c6611a1b565b5b0361114c57600154811415806110dd57505f8054115b156111405733826040516020016110f49190612214565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401611137929190612234565b60405180910390fd5b5f6004819055506111e4565b5f6001548261115b9190611bde565b146111be5733826040516020016111729190612214565b6040516020818303038152906040526040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016111b5929190612234565b60405180910390fd5b600154816111cc9190612262565b60045f8282546111dc9190612292565b925050819055505b611233825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113d89092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151846040516020016112a793929190611ca0565b6040516020818303038152906040526040516112c391906119fb565b60405180910390a260019250505092915050565b6112df611392565b8060601b6112f457637448fbae5f526004601cfd5b6112fd8161155d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061138b575061138a82611684565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113c7576382b429005f526004601cfd5b565b5f602082209050808252919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611418576390b8ec185f526004601cfd5b5f603452505050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61148f6116fd565b15611507577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156114c957630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061155a565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6115656116fd565b156115ca577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611620565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561167d57506004545f54105b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f657506116f582611701565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117af8161177b565b81146117b9575f80fd5b50565b5f813590506117ca816117a6565b92915050565b5f602082840312156117e5576117e4611773565b5b5f6117f2848285016117bc565b91505092915050565b5f8115159050919050565b61180f816117fb565b82525050565b5f6020820190506118285f830184611806565b92915050565b5f819050919050565b6118408161182e565b82525050565b5f6020820190506118595f830184611837565b92915050565b6118688161177b565b82525050565b5f6020820190506118815f83018461185f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118b082611887565b9050919050565b6118c0816118a6565b82525050565b5f6020820190506118d95f8301846118b7565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611900576118ff6118df565b5b8235905067ffffffffffffffff81111561191d5761191c6118e3565b5b602083019150836001820283011115611939576119386118e7565b5b9250929050565b5f806020838503121561195657611955611773565b5b5f83013567ffffffffffffffff81111561197357611972611777565b5b61197f858286016118eb565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119cd8261198b565b6119d78185611995565b93506119e78185602086016119a5565b6119f0816119b3565b840191505092915050565b5f6020820190508181035f830152611a1381846119c3565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110611a5957611a58611a1b565b5b50565b5f819050611a6982611a48565b919050565b5f611a7882611a5c565b9050919050565b611a8881611a6e565b82525050565b5f602082019050611aa15f830184611a7f565b92915050565b611ab08161182e565b8114611aba575f80fd5b50565b5f81359050611acb81611aa7565b92915050565b5f60208284031215611ae657611ae5611773565b5b5f611af384828501611abd565b91505092915050565b611b05816118a6565b8114611b0f575f80fd5b50565b5f81359050611b2081611afc565b92915050565b5f60208284031215611b3b57611b3a611773565b5b5f611b4884828501611b12565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b888261182e565b9150611b938361182e565b9250828201905080821115611bab57611baa611b51565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611be88261182e565b9150611bf38361182e565b925082611c0357611c02611bb1565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160601b9050919050565b5f611c5182611c3b565b9050919050565b5f611c6282611c47565b9050919050565b611c7a611c75826118a6565b611c58565b82525050565b5f819050919050565b611c9a611c958261182e565b611c80565b82525050565b5f611cab8286611c69565b601482019150611cbb8285611c69565b601482019150611ccb8284611c89565b602082019150819050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611d16826119b3565b810181811067ffffffffffffffff82111715611d3557611d34611ce0565b5b80604052505050565b5f611d4761176a565b9050611d538282611d0d565b919050565b5f80fd5b60038110611d68575f80fd5b50565b5f81359050611d7981611d5c565b92915050565b5f60808284031215611d9457611d93611cdc565b5b611d9e6080611d3e565b90505f611dad84828501611b12565b5f830152506020611dc084828501611d6b565b6020830152506040611dd484828501611abd565b6040830152506060611de884828501611abd565b60608301525092915050565b5f60808284031215611e0957611e08611773565b5b5f611e1684828501611d7f565b91505092915050565b5f611e298261182e565b9150611e348361182e565b9250828202611e428161182e565b91508282048414831517611e5957611e58611b51565b5b5092915050565b5f606082019050611e735f8301866118b7565b611e806020830185611837565b611e8d6040830184611837565b949350505050565b611e9e8161182e565b82525050565b602082015f820151611eb85f850182611e95565b50505050565b5f602082019050611ed15f830184611ea4565b92915050565b60038110611ee857611ee7611a1b565b5b50565b5f819050611ef882611ed7565b919050565b5f611f0782611eeb565b9050919050565b611f1781611efd565b82525050565b611f26816118a6565b82525050565b5f82825260208201905092915050565b5f611f468261198b565b611f508185611f2c565b9350611f608185602086016119a5565b611f69816119b3565b840191505092915050565b5f608083015f830151611f895f860182611f0e565b506020830151611f9c6020860182611f1d565b506040830151611faf6040860182611f1d565b5060608301518482036060860152611fc78282611f3c565b9150508091505092915050565b5f6020820190508181035f830152611fec8184611f74565b905092915050565b5f80fd5b5f67ffffffffffffffff82111561201257612011611ce0565b5b61201b826119b3565b9050602081019050919050565b828183375f83830152505050565b5f61204861204384611ff8565b611d3e565b90508281526020810184848401111561206457612063611ff4565b5b61206f848285612028565b509392505050565b5f82601f83011261208b5761208a6118df565b5b813561209b848260208601612036565b91505092915050565b5f604082840312156120b9576120b8611cdc565b5b6120c36040611d3e565b90505f6120d284828501611b12565b5f83015250602082013567ffffffffffffffff8111156120f5576120f4611d58565b5b61210184828501612077565b60208301525092915050565b5f6020828403121561212257612121611773565b5b5f82013567ffffffffffffffff81111561213f5761213e611777565b5b61214b848285016120a4565b91505092915050565b5f61215e8261182e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121905761218f611b51565b5b600182019050919050565b5f815190506121a981611aa7565b92915050565b5f602082840312156121c4576121c3611773565b5b5f6121d18482850161219b565b91505092915050565b5f604083015f8301516121ef5f860182611f1d565b50602083015184820360208601526122078282611f3c565b9150508091505092915050565b5f6020820190508181035f83015261222c81846121da565b905092915050565b5f6040820190506122475f8301856118b7565b818103602083015261225981846119c3565b90509392505050565b5f61226c8261182e565b91506122778361182e565b92508261228757612286611bb1565b5b828204905092915050565b5f61229c8261182e565b91506122a78361182e565b92508282039050818111156122bf576122be611b51565b5b9291505056fea2646970667358221220dd1633c750247aba42d284277d7637a736348882bc404248ac36fb7857638ed464736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x22FB DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x3F1 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x4CB JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0xB30906D4 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x3B5 JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x28D6183B GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x247 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2B5 JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x2275AEA9 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x169 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x164 SWAP2 SWAP1 PUSH2 0x17D0 JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH2 0x580 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x589 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x756 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F1 PUSH2 0x75C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x207 PUSH2 0x7AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x186E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x7D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23E SWAP2 SWAP1 PUSH2 0x18C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x252 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x268 SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0x7F9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0xA8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B3 PUSH2 0xBAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BD PUSH2 0xBE5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0xBF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x18C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FD PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x327 PUSH2 0xC26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x334 SWAP2 SWAP1 PUSH2 0x1A8E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35E SWAP2 SWAP1 PUSH2 0x1AD1 JUMP JUMPDEST PUSH2 0xC39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x18C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x384 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0xC74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AC SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D6 SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0xFD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E8 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x405 PUSH2 0xFF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x441 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0xFF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x471 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46C SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0x101E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x499 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x494 SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0x105C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A6 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0x12D7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EC SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4FE SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x197D2CB300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x579 JUMPI POP PUSH2 0x578 DUP3 PUSH2 0x1319 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x591 PUSH2 0x1392 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5C6 JUMPI PUSH2 0x5C5 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST EQ PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP PREVRANDAO PUSH2 0x615 SWAP2 SWAP1 PUSH2 0x1B7E JUMP JUMPDEST DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x5 DUP1 DUP1 SLOAD SWAP1 POP PUSH2 0x62B DUP5 PUSH2 0x13C9 JUMP JUMPDEST PUSH2 0x635 SWAP2 SWAP1 PUSH2 0x1BDE JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x646 JUMPI PUSH2 0x645 PUSH2 0x1C0E JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x6BE DUP2 PUSH1 0x1 SLOAD PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x72E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x74A SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x765 PUSH2 0x1421 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x197D2CB300000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x802 PUSH2 0x142B JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x834 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x82B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x845 SWAP2 SWAP1 PUSH2 0x1DF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x85B JUMPI PUSH2 0x85A PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x872 JUMPI PUSH2 0x871 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x8A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x8BE JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x909 JUMPI PUSH2 0x908 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x920 JUMPI PUSH2 0x91F PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x92F JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x944 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x943 SWAP2 SWAP1 PUSH2 0x1E1F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH0 PUSH2 0x973 ADDRESS DUP5 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1454 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x9C1 JUMPI DUP3 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x3 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA2D JUMPI PUSH2 0xA2C PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0xA51 CALLER PUSH2 0x1487 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0xA89 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAA0 SWAP2 SWAP1 PUSH2 0x1DF4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xAB6 JUMPI PUSH2 0xAB5 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xACD JUMPI PUSH2 0xACC PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xADC JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0xAF1 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xAF0 SWAP2 SWAP1 PUSH2 0x1E1F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB11 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1EBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB93 SWAP2 SWAP1 PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0xBED PUSH2 0x1392 JUMP JUMPDEST PUSH2 0xBF6 PUSH0 PUSH2 0x155D JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xC48 JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0xC7D PUSH2 0x1392 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xC8D SWAP2 SWAP1 PUSH2 0x210D JUMP JUMPDEST SWAP1 POP PUSH2 0xC9B DUP2 PUSH0 ADD MLOAD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE4 JUMPI PUSH2 0xCE3 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xD06 JUMPI PUSH2 0xD05 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE6E JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xD1C SWAP1 PUSH2 0x2154 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xDCA DUP2 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE40 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xFCE JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEA3 JUMPI PUSH2 0xEA2 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xFC9 JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xEB9 SWAP1 PUSH2 0x2154 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x5 DUP2 PUSH0 ADD MLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0ABE0F5C6F02112A9A4332E7B091BF49040FFDDEEDB73785A9B9A0A3CA7F153 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xFCE JUMP JUMPDEST PUSH0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x1007 SWAP2 SWAP1 PUSH2 0x210D JUMP JUMPDEST SWAP1 POP PUSH2 0x1015 DUP2 PUSH0 ADD MLOAD PUSH2 0x1623 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1026 PUSH2 0x1392 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x104C JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1059 DUP2 PUSH2 0x155D JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x1065 PUSH2 0x1392 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x1075 SWAP2 SWAP1 PUSH2 0x210D JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1090 SWAP2 SWAP1 PUSH2 0x21AF JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x10A5 JUMPI PUSH2 0x10A4 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x10C7 JUMPI PUSH2 0x10C6 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x114C JUMPI PUSH1 0x1 SLOAD DUP2 EQ ISZERO DUP1 PUSH2 0x10DD JUMPI POP PUSH0 DUP1 SLOAD GT JUMPDEST ISZERO PUSH2 0x1140 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10F4 SWAP2 SWAP1 PUSH2 0x2214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1137 SWAP3 SWAP2 SWAP1 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x11E4 JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD DUP3 PUSH2 0x115B SWAP2 SWAP1 PUSH2 0x1BDE JUMP JUMPDEST EQ PUSH2 0x11BE JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1172 SWAP2 SWAP1 PUSH2 0x2214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B5 SWAP3 SWAP2 SWAP1 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP2 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x2262 JUMP JUMPDEST PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x11DC SWAP2 SWAP1 PUSH2 0x2292 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x1233 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x12C3 SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12DF PUSH2 0x1392 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x12F4 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x12FD DUP2 PUSH2 0x155D JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x138B JUMPI POP PUSH2 0x138A DUP3 PUSH2 0x1684 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x13C7 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 KECCAK256 SWAP1 POP DUP1 DUP3 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1418 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x148F PUSH2 0x16FD JUMP JUMPDEST ISZERO PUSH2 0x1507 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x14C9 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x155A JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x1565 PUSH2 0x16FD JUMP JUMPDEST ISZERO PUSH2 0x15CA JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1620 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x167D JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F6 JUMPI POP PUSH2 0x16F5 DUP3 PUSH2 0x1701 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17AF DUP2 PUSH2 0x177B JUMP JUMPDEST DUP2 EQ PUSH2 0x17B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17CA DUP2 PUSH2 0x17A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17E5 JUMPI PUSH2 0x17E4 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x17F2 DUP5 DUP3 DUP6 ADD PUSH2 0x17BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x180F DUP2 PUSH2 0x17FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1828 PUSH0 DUP4 ADD DUP5 PUSH2 0x1806 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1840 DUP2 PUSH2 0x182E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1859 PUSH0 DUP4 ADD DUP5 PUSH2 0x1837 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1868 DUP2 PUSH2 0x177B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1881 PUSH0 DUP4 ADD DUP5 PUSH2 0x185F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x18B0 DUP3 PUSH2 0x1887 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18C0 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18D9 PUSH0 DUP4 ADD DUP5 PUSH2 0x18B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1900 JUMPI PUSH2 0x18FF PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x191C PUSH2 0x18E3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1939 JUMPI PUSH2 0x1938 PUSH2 0x18E7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1956 JUMPI PUSH2 0x1955 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1973 JUMPI PUSH2 0x1972 PUSH2 0x1777 JUMP JUMPDEST JUMPDEST PUSH2 0x197F DUP6 DUP3 DUP7 ADD PUSH2 0x18EB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19CD DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x19D7 DUP2 DUP6 PUSH2 0x1995 JUMP JUMPDEST SWAP4 POP PUSH2 0x19E7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x19A5 JUMP JUMPDEST PUSH2 0x19F0 DUP2 PUSH2 0x19B3 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1A13 DUP2 DUP5 PUSH2 0x19C3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1A59 JUMPI PUSH2 0x1A58 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1A69 DUP3 PUSH2 0x1A48 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A78 DUP3 PUSH2 0x1A5C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A88 DUP2 PUSH2 0x1A6E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AA1 PUSH0 DUP4 ADD DUP5 PUSH2 0x1A7F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1AB0 DUP2 PUSH2 0x182E JUMP JUMPDEST DUP2 EQ PUSH2 0x1ABA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1ACB DUP2 PUSH2 0x1AA7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AE6 JUMPI PUSH2 0x1AE5 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1AF3 DUP5 DUP3 DUP6 ADD PUSH2 0x1ABD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B05 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1B0F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1B20 DUP2 PUSH2 0x1AFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3B JUMPI PUSH2 0x1B3A PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1B48 DUP5 DUP3 DUP6 ADD PUSH2 0x1B12 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1B88 DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x1B93 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1BAB JUMPI PUSH2 0x1BAA PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1BE8 DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x1BF3 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1C03 JUMPI PUSH2 0x1C02 PUSH2 0x1BB1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C51 DUP3 PUSH2 0x1C3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C62 DUP3 PUSH2 0x1C47 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C7A PUSH2 0x1C75 DUP3 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A PUSH2 0x1C95 DUP3 PUSH2 0x182E JUMP JUMPDEST PUSH2 0x1C80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1CAB DUP3 DUP7 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1CBB DUP3 DUP6 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1CCB DUP3 DUP5 PUSH2 0x1C89 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1D16 DUP3 PUSH2 0x19B3 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1D35 JUMPI PUSH2 0x1D34 PUSH2 0x1CE0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D47 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH2 0x1D53 DUP3 DUP3 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1D68 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D79 DUP2 PUSH2 0x1D5C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D94 JUMPI PUSH2 0x1D93 PUSH2 0x1CDC JUMP JUMPDEST JUMPDEST PUSH2 0x1D9E PUSH1 0x80 PUSH2 0x1D3E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1DAD DUP5 DUP3 DUP6 ADD PUSH2 0x1B12 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1DC0 DUP5 DUP3 DUP6 ADD PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1DD4 DUP5 DUP3 DUP6 ADD PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1DE8 DUP5 DUP3 DUP6 ADD PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E09 JUMPI PUSH2 0x1E08 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1E16 DUP5 DUP3 DUP6 ADD PUSH2 0x1D7F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E29 DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x1E34 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1E42 DUP2 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1E59 JUMPI PUSH2 0x1E58 PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E73 PUSH0 DUP4 ADD DUP7 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x1E80 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x1E8D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1837 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1E9E DUP2 PUSH2 0x182E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1EB8 PUSH0 DUP6 ADD DUP3 PUSH2 0x1E95 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1ED1 PUSH0 DUP4 ADD DUP5 PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1EE8 JUMPI PUSH2 0x1EE7 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1EF8 DUP3 PUSH2 0x1ED7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F07 DUP3 PUSH2 0x1EEB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F17 DUP2 PUSH2 0x1EFD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1F26 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F46 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x1F50 DUP2 DUP6 PUSH2 0x1F2C JUMP JUMPDEST SWAP4 POP PUSH2 0x1F60 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x19A5 JUMP JUMPDEST PUSH2 0x1F69 DUP2 PUSH2 0x19B3 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1F89 PUSH0 DUP7 ADD DUP3 PUSH2 0x1F0E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1F9C PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1F1D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1FAF PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1F1D JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1FC7 DUP3 DUP3 PUSH2 0x1F3C JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1FEC DUP2 DUP5 PUSH2 0x1F74 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2012 JUMPI PUSH2 0x2011 PUSH2 0x1CE0 JUMP JUMPDEST JUMPDEST PUSH2 0x201B DUP3 PUSH2 0x19B3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2048 PUSH2 0x2043 DUP5 PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x1D3E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2064 JUMPI PUSH2 0x2063 PUSH2 0x1FF4 JUMP JUMPDEST JUMPDEST PUSH2 0x206F DUP5 DUP3 DUP6 PUSH2 0x2028 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x208B JUMPI PUSH2 0x208A PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x209B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2036 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B9 JUMPI PUSH2 0x20B8 PUSH2 0x1CDC JUMP JUMPDEST JUMPDEST PUSH2 0x20C3 PUSH1 0x40 PUSH2 0x1D3E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x20D2 DUP5 DUP3 DUP6 ADD PUSH2 0x1B12 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20F5 JUMPI PUSH2 0x20F4 PUSH2 0x1D58 JUMP JUMPDEST JUMPDEST PUSH2 0x2101 DUP5 DUP3 DUP6 ADD PUSH2 0x2077 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2122 JUMPI PUSH2 0x2121 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x213F JUMPI PUSH2 0x213E PUSH2 0x1777 JUMP JUMPDEST JUMPDEST PUSH2 0x214B DUP5 DUP3 DUP6 ADD PUSH2 0x20A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x215E DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2190 JUMPI PUSH2 0x218F PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x21A9 DUP2 PUSH2 0x1AA7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21C4 JUMPI PUSH2 0x21C3 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x21D1 DUP5 DUP3 DUP6 ADD PUSH2 0x219B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x21EF PUSH0 DUP7 ADD DUP3 PUSH2 0x1F1D JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2207 DUP3 DUP3 PUSH2 0x1F3C JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x222C DUP2 DUP5 PUSH2 0x21DA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2247 PUSH0 DUP4 ADD DUP6 PUSH2 0x18B7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2259 DUP2 DUP5 PUSH2 0x19C3 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x226C DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x2277 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2287 JUMPI PUSH2 0x2286 PUSH2 0x1BB1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x229C DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x22A7 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x22BF JUMPI PUSH2 0x22BE PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD AND CALLER 0xC7 POP 0x24 PUSH27 0xBA42D284277D7637A736348882BC404248AC36FB7857638ED46473 PUSH16 0x6C634300081A00330000000000000000 ","sourceMap":"542:2579:53:-:0;;;1095:53;;;;;;;;;;1647:28:54;1664:10;1647:16;;;:28;;:::i;:::-;1119:22:53;:20;;;:22;;:::i;:::-;542:2579;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;542:2579:53:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6308":{"entryPoint":5010,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":5885,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":5163,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":5255,"id":6288,"parameterSlots":1,"returnSlots":0},"@_isClaimable_17084":{"entryPoint":5667,"id":17084,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6319":{"entryPoint":5153,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":5469,"id":6302,"parameterSlots":1,"returnSlots":0},"@asset_16821":{"entryPoint":2004,"id":16821,"parameterSlots":0,"returnSlots":0},"@balanceOf_11253":{"entryPoint":5204,"id":11253,"parameterSlots":2,"returnSlots":1},"@cancelOwnershipHandover_6368":{"entryPoint":2988,"id":6368,"parameterSlots":0,"returnSlots":0},"@claim_16933":{"entryPoint":3188,"id":16933,"parameterSlots":2,"returnSlots":1},"@claimed_18107":{"entryPoint":4052,"id":18107,"parameterSlots":0,"returnSlots":0},"@claims_18099":{"entryPoint":4081,"id":18099,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":4126,"id":6382,"parameterSlots":1,"returnSlots":0},"@currentReward_18158":{"entryPoint":1408,"id":18158,"parameterSlots":0,"returnSlots":1},"@drawRaffle_17143":{"entryPoint":1417,"id":17143,"parameterSlots":0,"returnSlots":0},"@entries_16832":{"entryPoint":3129,"id":16832,"parameterSlots":0,"returnSlots":0},"@getComponentInterface_17157":{"entryPoint":1965,"id":17157,"parameterSlots":0,"returnSlots":1},"@initialize_18002":{"entryPoint":2041,"id":18002,"parameterSlots":2,"returnSlots":0},"@isClaimable_17066":{"entryPoint":4086,"id":17066,"parameterSlots":2,"returnSlots":1},"@limit_16828":{"entryPoint":3104,"id":16828,"parameterSlots":0,"returnSlots":0},"@next_10133":{"entryPoint":5065,"id":10133,"parameterSlots":1,"returnSlots":1},"@owner_6390":{"entryPoint":3064,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":4864,"id":6400,"parameterSlots":1,"returnSlots":1},"@preflight_18061":{"entryPoint":2702,"id":18061,"parameterSlots":2,"returnSlots":1},"@reclaim_17041":{"entryPoint":4188,"id":17041,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":3045,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1884,"id":6362,"parameterSlots":0,"returnSlots":0},"@reward_18102":{"entryPoint":1878,"id":18102,"parameterSlots":0,"returnSlots":0},"@safeTransfer_11205":{"entryPoint":5080,"id":11205,"parameterSlots":3,"returnSlots":0},"@strategy_16825":{"entryPoint":3110,"id":16825,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17180":{"entryPoint":1287,"id":17180,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18181":{"entryPoint":4889,"id":18181,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":5764,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":5889,"id":2830,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":4823,"id":6333,"parameterSlots":1,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":8246,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":6930,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":6076,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":6379,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":8311,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_Strategy_$16818":{"entryPoint":7531,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":8356,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$17882_memory_ptr":{"entryPoint":7551,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":6845,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":8603,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":6950,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":6096,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":6464,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":8461,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$17882_memory_ptr":{"entryPoint":7668,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":6865,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":8623,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address":{"entryPoint":7965,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":6327,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":7273,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":6150,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":6239,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr":{"entryPoint":7996,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":6595,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_enum$_AssetType_$15450_to_t_uint8":{"entryPoint":7950,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_Strategy_$16818_to_t_uint8_fromStack":{"entryPoint":6783,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack":{"entryPoint":8666,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack":{"entryPoint":7844,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack":{"entryPoint":8052,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":7829,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":6199,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":7305,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":7328,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":6342,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8756,"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":7776,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":6165,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":6254,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":6651,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_enum$_Strategy_$16818__to_t_uint8__fromStack_reversed":{"entryPoint":6798,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed":{"entryPoint":8724,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr__to_t_struct$_FungiblePayload_$15465_memory_ptr__fromStack_reversed":{"entryPoint":7870,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed":{"entryPoint":8148,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":6214,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":7486,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5994,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":8184,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":6539,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr":{"entryPoint":7980,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":6549,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7038,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":8802,"id":null,"parameterSlots":2,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":7711,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":8850,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":6310,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":6139,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":6011,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_AssetType_$15450":{"entryPoint":7915,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_Strategy_$16818":{"entryPoint":6748,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":6279,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":6190,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_AssetType_$15450_to_t_uint8":{"entryPoint":7933,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_Strategy_$16818_to_t_uint8":{"entryPoint":6766,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":8232,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":6565,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":7437,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":8532,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":7256,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":7239,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":7296,"id":null,"parameterSlots":1,"returnSlots":1},"mod_t_uint256":{"entryPoint":7134,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":6993,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":7089,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":6683,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7182,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":7392,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":6371,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":6367,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":7388,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":7512,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":6375,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":8180,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":6007,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":6003,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":6579,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":7227,"id":null,"parameterSlots":1,"returnSlots":1},"validator_assert_t_enum$_AssetType_$15450":{"entryPoint":7895,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_Strategy_$16818":{"entryPoint":6728,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":6908,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":6054,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_Strategy_$16818":{"entryPoint":7516,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":6823,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:22311:64","nodeType":"YulBlock","src":"0:22311:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:32:64","nodeType":"YulBlock","src":"1563:32:64","statements":[{"nativeSrc":"1573:16:64","nodeType":"YulAssignment","src":"1573:16:64","value":{"name":"value","nativeSrc":"1584:5:64","nodeType":"YulIdentifier","src":"1584:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:77:64"},{"body":{"nativeSrc":"1666:53:64","nodeType":"YulBlock","src":"1666:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:64","nodeType":"YulIdentifier","src":"1683:3:64"},{"arguments":[{"name":"value","nativeSrc":"1706:5:64","nodeType":"YulIdentifier","src":"1706:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:64","nodeType":"YulIdentifier","src":"1688:17:64"},"nativeSrc":"1688:24:64","nodeType":"YulFunctionCall","src":"1688:24:64"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:64","nodeType":"YulIdentifier","src":"1676:6:64"},"nativeSrc":"1676:37:64","nodeType":"YulFunctionCall","src":"1676:37:64"},"nativeSrc":"1676:37:64","nodeType":"YulExpressionStatement","src":"1676:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:64","nodeType":"YulTypedName","src":"1654:5:64","type":""},{"name":"pos","nativeSrc":"1661:3:64","nodeType":"YulTypedName","src":"1661:3:64","type":""}],"src":"1601:118:64"},{"body":{"nativeSrc":"1823:124:64","nodeType":"YulBlock","src":"1823:124:64","statements":[{"nativeSrc":"1833:26:64","nodeType":"YulAssignment","src":"1833:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:64","nodeType":"YulIdentifier","src":"1845:9:64"},{"kind":"number","nativeSrc":"1856:2:64","nodeType":"YulLiteral","src":"1856:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:64","nodeType":"YulIdentifier","src":"1841:3:64"},"nativeSrc":"1841:18:64","nodeType":"YulFunctionCall","src":"1841:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:64","nodeType":"YulIdentifier","src":"1833:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:64","nodeType":"YulIdentifier","src":"1913:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:64","nodeType":"YulIdentifier","src":"1926:9:64"},{"kind":"number","nativeSrc":"1937:1:64","nodeType":"YulLiteral","src":"1937:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:64","nodeType":"YulIdentifier","src":"1922:3:64"},"nativeSrc":"1922:17:64","nodeType":"YulFunctionCall","src":"1922:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:64","nodeType":"YulIdentifier","src":"1869:43:64"},"nativeSrc":"1869:71:64","nodeType":"YulFunctionCall","src":"1869:71:64"},"nativeSrc":"1869:71:64","nodeType":"YulExpressionStatement","src":"1869:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:64","nodeType":"YulTypedName","src":"1795:9:64","type":""},{"name":"value0","nativeSrc":"1807:6:64","nodeType":"YulTypedName","src":"1807:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:64","nodeType":"YulTypedName","src":"1818:4:64","type":""}],"src":"1725:222:64"},{"body":{"nativeSrc":"2016:52:64","nodeType":"YulBlock","src":"2016:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2033:3:64","nodeType":"YulIdentifier","src":"2033:3:64"},{"arguments":[{"name":"value","nativeSrc":"2055:5:64","nodeType":"YulIdentifier","src":"2055:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2038:16:64","nodeType":"YulIdentifier","src":"2038:16:64"},"nativeSrc":"2038:23:64","nodeType":"YulFunctionCall","src":"2038:23:64"}],"functionName":{"name":"mstore","nativeSrc":"2026:6:64","nodeType":"YulIdentifier","src":"2026:6:64"},"nativeSrc":"2026:36:64","nodeType":"YulFunctionCall","src":"2026:36:64"},"nativeSrc":"2026:36:64","nodeType":"YulExpressionStatement","src":"2026:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"1953:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2004:5:64","nodeType":"YulTypedName","src":"2004:5:64","type":""},{"name":"pos","nativeSrc":"2011:3:64","nodeType":"YulTypedName","src":"2011:3:64","type":""}],"src":"1953:115:64"},{"body":{"nativeSrc":"2170:122:64","nodeType":"YulBlock","src":"2170:122:64","statements":[{"nativeSrc":"2180:26:64","nodeType":"YulAssignment","src":"2180:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2192:9:64","nodeType":"YulIdentifier","src":"2192:9:64"},{"kind":"number","nativeSrc":"2203:2:64","nodeType":"YulLiteral","src":"2203:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2188:3:64","nodeType":"YulIdentifier","src":"2188:3:64"},"nativeSrc":"2188:18:64","nodeType":"YulFunctionCall","src":"2188:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2180:4:64","nodeType":"YulIdentifier","src":"2180:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2258:6:64","nodeType":"YulIdentifier","src":"2258:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2271:9:64","nodeType":"YulIdentifier","src":"2271:9:64"},{"kind":"number","nativeSrc":"2282:1:64","nodeType":"YulLiteral","src":"2282:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2267:3:64","nodeType":"YulIdentifier","src":"2267:3:64"},"nativeSrc":"2267:17:64","nodeType":"YulFunctionCall","src":"2267:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"2216:41:64","nodeType":"YulIdentifier","src":"2216:41:64"},"nativeSrc":"2216:69:64","nodeType":"YulFunctionCall","src":"2216:69:64"},"nativeSrc":"2216:69:64","nodeType":"YulExpressionStatement","src":"2216:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"2074:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2142:9:64","nodeType":"YulTypedName","src":"2142:9:64","type":""},{"name":"value0","nativeSrc":"2154:6:64","nodeType":"YulTypedName","src":"2154:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2165:4:64","nodeType":"YulTypedName","src":"2165:4:64","type":""}],"src":"2074:218:64"},{"body":{"nativeSrc":"2343:81:64","nodeType":"YulBlock","src":"2343:81:64","statements":[{"nativeSrc":"2353:65:64","nodeType":"YulAssignment","src":"2353:65:64","value":{"arguments":[{"name":"value","nativeSrc":"2368:5:64","nodeType":"YulIdentifier","src":"2368:5:64"},{"kind":"number","nativeSrc":"2375:42:64","nodeType":"YulLiteral","src":"2375:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"2364:3:64","nodeType":"YulIdentifier","src":"2364:3:64"},"nativeSrc":"2364:54:64","nodeType":"YulFunctionCall","src":"2364:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2353:7:64","nodeType":"YulIdentifier","src":"2353:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"2298:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2325:5:64","nodeType":"YulTypedName","src":"2325:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2335:7:64","nodeType":"YulTypedName","src":"2335:7:64","type":""}],"src":"2298:126:64"},{"body":{"nativeSrc":"2475:51:64","nodeType":"YulBlock","src":"2475:51:64","statements":[{"nativeSrc":"2485:35:64","nodeType":"YulAssignment","src":"2485:35:64","value":{"arguments":[{"name":"value","nativeSrc":"2514:5:64","nodeType":"YulIdentifier","src":"2514:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"2496:17:64","nodeType":"YulIdentifier","src":"2496:17:64"},"nativeSrc":"2496:24:64","nodeType":"YulFunctionCall","src":"2496:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2485:7:64","nodeType":"YulIdentifier","src":"2485:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"2430:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2457:5:64","nodeType":"YulTypedName","src":"2457:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2467:7:64","nodeType":"YulTypedName","src":"2467:7:64","type":""}],"src":"2430:96:64"},{"body":{"nativeSrc":"2597:53:64","nodeType":"YulBlock","src":"2597:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2614:3:64","nodeType":"YulIdentifier","src":"2614:3:64"},{"arguments":[{"name":"value","nativeSrc":"2637:5:64","nodeType":"YulIdentifier","src":"2637:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"2619:17:64","nodeType":"YulIdentifier","src":"2619:17:64"},"nativeSrc":"2619:24:64","nodeType":"YulFunctionCall","src":"2619:24:64"}],"functionName":{"name":"mstore","nativeSrc":"2607:6:64","nodeType":"YulIdentifier","src":"2607:6:64"},"nativeSrc":"2607:37:64","nodeType":"YulFunctionCall","src":"2607:37:64"},"nativeSrc":"2607:37:64","nodeType":"YulExpressionStatement","src":"2607:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2532:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2585:5:64","nodeType":"YulTypedName","src":"2585:5:64","type":""},{"name":"pos","nativeSrc":"2592:3:64","nodeType":"YulTypedName","src":"2592:3:64","type":""}],"src":"2532:118:64"},{"body":{"nativeSrc":"2754:124:64","nodeType":"YulBlock","src":"2754:124:64","statements":[{"nativeSrc":"2764:26:64","nodeType":"YulAssignment","src":"2764:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2776:9:64","nodeType":"YulIdentifier","src":"2776:9:64"},{"kind":"number","nativeSrc":"2787:2:64","nodeType":"YulLiteral","src":"2787:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2772:3:64","nodeType":"YulIdentifier","src":"2772:3:64"},"nativeSrc":"2772:18:64","nodeType":"YulFunctionCall","src":"2772:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2764:4:64","nodeType":"YulIdentifier","src":"2764:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2844:6:64","nodeType":"YulIdentifier","src":"2844:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2857:9:64","nodeType":"YulIdentifier","src":"2857:9:64"},{"kind":"number","nativeSrc":"2868:1:64","nodeType":"YulLiteral","src":"2868:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2853:3:64","nodeType":"YulIdentifier","src":"2853:3:64"},"nativeSrc":"2853:17:64","nodeType":"YulFunctionCall","src":"2853:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"2800:43:64","nodeType":"YulIdentifier","src":"2800:43:64"},"nativeSrc":"2800:71:64","nodeType":"YulFunctionCall","src":"2800:71:64"},"nativeSrc":"2800:71:64","nodeType":"YulExpressionStatement","src":"2800:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"2656:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2726:9:64","nodeType":"YulTypedName","src":"2726:9:64","type":""},{"name":"value0","nativeSrc":"2738:6:64","nodeType":"YulTypedName","src":"2738:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2749:4:64","nodeType":"YulTypedName","src":"2749:4:64","type":""}],"src":"2656:222:64"},{"body":{"nativeSrc":"2973:28:64","nodeType":"YulBlock","src":"2973:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2990:1:64","nodeType":"YulLiteral","src":"2990:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2993:1:64","nodeType":"YulLiteral","src":"2993:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2983:6:64","nodeType":"YulIdentifier","src":"2983:6:64"},"nativeSrc":"2983:12:64","nodeType":"YulFunctionCall","src":"2983:12:64"},"nativeSrc":"2983:12:64","nodeType":"YulExpressionStatement","src":"2983:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2884:117:64","nodeType":"YulFunctionDefinition","src":"2884:117:64"},{"body":{"nativeSrc":"3096:28:64","nodeType":"YulBlock","src":"3096:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3113:1:64","nodeType":"YulLiteral","src":"3113:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3116:1:64","nodeType":"YulLiteral","src":"3116:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3106:6:64","nodeType":"YulIdentifier","src":"3106:6:64"},"nativeSrc":"3106:12:64","nodeType":"YulFunctionCall","src":"3106:12:64"},"nativeSrc":"3106:12:64","nodeType":"YulExpressionStatement","src":"3106:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3007:117:64","nodeType":"YulFunctionDefinition","src":"3007:117:64"},{"body":{"nativeSrc":"3219:28:64","nodeType":"YulBlock","src":"3219:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3236:1:64","nodeType":"YulLiteral","src":"3236:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"3239:1:64","nodeType":"YulLiteral","src":"3239:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3229:6:64","nodeType":"YulIdentifier","src":"3229:6:64"},"nativeSrc":"3229:12:64","nodeType":"YulFunctionCall","src":"3229:12:64"},"nativeSrc":"3229:12:64","nodeType":"YulExpressionStatement","src":"3229:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3130:117:64","nodeType":"YulFunctionDefinition","src":"3130:117:64"},{"body":{"nativeSrc":"3340:478:64","nodeType":"YulBlock","src":"3340:478:64","statements":[{"body":{"nativeSrc":"3389:83:64","nodeType":"YulBlock","src":"3389:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3391:77:64","nodeType":"YulIdentifier","src":"3391:77:64"},"nativeSrc":"3391:79:64","nodeType":"YulFunctionCall","src":"3391:79:64"},"nativeSrc":"3391:79:64","nodeType":"YulExpressionStatement","src":"3391:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3368:6:64","nodeType":"YulIdentifier","src":"3368:6:64"},{"kind":"number","nativeSrc":"3376:4:64","nodeType":"YulLiteral","src":"3376:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3364:3:64","nodeType":"YulIdentifier","src":"3364:3:64"},"nativeSrc":"3364:17:64","nodeType":"YulFunctionCall","src":"3364:17:64"},{"name":"end","nativeSrc":"3383:3:64","nodeType":"YulIdentifier","src":"3383:3:64"}],"functionName":{"name":"slt","nativeSrc":"3360:3:64","nodeType":"YulIdentifier","src":"3360:3:64"},"nativeSrc":"3360:27:64","nodeType":"YulFunctionCall","src":"3360:27:64"}],"functionName":{"name":"iszero","nativeSrc":"3353:6:64","nodeType":"YulIdentifier","src":"3353:6:64"},"nativeSrc":"3353:35:64","nodeType":"YulFunctionCall","src":"3353:35:64"},"nativeSrc":"3350:122:64","nodeType":"YulIf","src":"3350:122:64"},{"nativeSrc":"3481:30:64","nodeType":"YulAssignment","src":"3481:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"3504:6:64","nodeType":"YulIdentifier","src":"3504:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"3491:12:64","nodeType":"YulIdentifier","src":"3491:12:64"},"nativeSrc":"3491:20:64","nodeType":"YulFunctionCall","src":"3491:20:64"},"variableNames":[{"name":"length","nativeSrc":"3481:6:64","nodeType":"YulIdentifier","src":"3481:6:64"}]},{"body":{"nativeSrc":"3554:83:64","nodeType":"YulBlock","src":"3554:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3556:77:64","nodeType":"YulIdentifier","src":"3556:77:64"},"nativeSrc":"3556:79:64","nodeType":"YulFunctionCall","src":"3556:79:64"},"nativeSrc":"3556:79:64","nodeType":"YulExpressionStatement","src":"3556:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3526:6:64","nodeType":"YulIdentifier","src":"3526:6:64"},{"kind":"number","nativeSrc":"3534:18:64","nodeType":"YulLiteral","src":"3534:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3523:2:64","nodeType":"YulIdentifier","src":"3523:2:64"},"nativeSrc":"3523:30:64","nodeType":"YulFunctionCall","src":"3523:30:64"},"nativeSrc":"3520:117:64","nodeType":"YulIf","src":"3520:117:64"},{"nativeSrc":"3646:29:64","nodeType":"YulAssignment","src":"3646:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"3662:6:64","nodeType":"YulIdentifier","src":"3662:6:64"},{"kind":"number","nativeSrc":"3670:4:64","nodeType":"YulLiteral","src":"3670:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3658:3:64","nodeType":"YulIdentifier","src":"3658:3:64"},"nativeSrc":"3658:17:64","nodeType":"YulFunctionCall","src":"3658:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"3646:8:64","nodeType":"YulIdentifier","src":"3646:8:64"}]},{"body":{"nativeSrc":"3729:83:64","nodeType":"YulBlock","src":"3729:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3731:77:64","nodeType":"YulIdentifier","src":"3731:77:64"},"nativeSrc":"3731:79:64","nodeType":"YulFunctionCall","src":"3731:79:64"},"nativeSrc":"3731:79:64","nodeType":"YulExpressionStatement","src":"3731:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3694:8:64","nodeType":"YulIdentifier","src":"3694:8:64"},{"arguments":[{"name":"length","nativeSrc":"3708:6:64","nodeType":"YulIdentifier","src":"3708:6:64"},{"kind":"number","nativeSrc":"3716:4:64","nodeType":"YulLiteral","src":"3716:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3704:3:64","nodeType":"YulIdentifier","src":"3704:3:64"},"nativeSrc":"3704:17:64","nodeType":"YulFunctionCall","src":"3704:17:64"}],"functionName":{"name":"add","nativeSrc":"3690:3:64","nodeType":"YulIdentifier","src":"3690:3:64"},"nativeSrc":"3690:32:64","nodeType":"YulFunctionCall","src":"3690:32:64"},{"name":"end","nativeSrc":"3724:3:64","nodeType":"YulIdentifier","src":"3724:3:64"}],"functionName":{"name":"gt","nativeSrc":"3687:2:64","nodeType":"YulIdentifier","src":"3687:2:64"},"nativeSrc":"3687:41:64","nodeType":"YulFunctionCall","src":"3687:41:64"},"nativeSrc":"3684:128:64","nodeType":"YulIf","src":"3684:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3266:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3307:6:64","nodeType":"YulTypedName","src":"3307:6:64","type":""},{"name":"end","nativeSrc":"3315:3:64","nodeType":"YulTypedName","src":"3315:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"3323:8:64","nodeType":"YulTypedName","src":"3323:8:64","type":""},{"name":"length","nativeSrc":"3333:6:64","nodeType":"YulTypedName","src":"3333:6:64","type":""}],"src":"3266:552:64"},{"body":{"nativeSrc":"3909:442:64","nodeType":"YulBlock","src":"3909:442:64","statements":[{"body":{"nativeSrc":"3955:83:64","nodeType":"YulBlock","src":"3955:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3957:77:64","nodeType":"YulIdentifier","src":"3957:77:64"},"nativeSrc":"3957:79:64","nodeType":"YulFunctionCall","src":"3957:79:64"},"nativeSrc":"3957:79:64","nodeType":"YulExpressionStatement","src":"3957:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3930:7:64","nodeType":"YulIdentifier","src":"3930:7:64"},{"name":"headStart","nativeSrc":"3939:9:64","nodeType":"YulIdentifier","src":"3939:9:64"}],"functionName":{"name":"sub","nativeSrc":"3926:3:64","nodeType":"YulIdentifier","src":"3926:3:64"},"nativeSrc":"3926:23:64","nodeType":"YulFunctionCall","src":"3926:23:64"},{"kind":"number","nativeSrc":"3951:2:64","nodeType":"YulLiteral","src":"3951:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3922:3:64","nodeType":"YulIdentifier","src":"3922:3:64"},"nativeSrc":"3922:32:64","nodeType":"YulFunctionCall","src":"3922:32:64"},"nativeSrc":"3919:119:64","nodeType":"YulIf","src":"3919:119:64"},{"nativeSrc":"4048:296:64","nodeType":"YulBlock","src":"4048:296:64","statements":[{"nativeSrc":"4063:45:64","nodeType":"YulVariableDeclaration","src":"4063:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4094:9:64","nodeType":"YulIdentifier","src":"4094:9:64"},{"kind":"number","nativeSrc":"4105:1:64","nodeType":"YulLiteral","src":"4105:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4090:3:64","nodeType":"YulIdentifier","src":"4090:3:64"},"nativeSrc":"4090:17:64","nodeType":"YulFunctionCall","src":"4090:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"4077:12:64","nodeType":"YulIdentifier","src":"4077:12:64"},"nativeSrc":"4077:31:64","nodeType":"YulFunctionCall","src":"4077:31:64"},"variables":[{"name":"offset","nativeSrc":"4067:6:64","nodeType":"YulTypedName","src":"4067:6:64","type":""}]},{"body":{"nativeSrc":"4155:83:64","nodeType":"YulBlock","src":"4155:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4157:77:64","nodeType":"YulIdentifier","src":"4157:77:64"},"nativeSrc":"4157:79:64","nodeType":"YulFunctionCall","src":"4157:79:64"},"nativeSrc":"4157:79:64","nodeType":"YulExpressionStatement","src":"4157:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4127:6:64","nodeType":"YulIdentifier","src":"4127:6:64"},{"kind":"number","nativeSrc":"4135:18:64","nodeType":"YulLiteral","src":"4135:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4124:2:64","nodeType":"YulIdentifier","src":"4124:2:64"},"nativeSrc":"4124:30:64","nodeType":"YulFunctionCall","src":"4124:30:64"},"nativeSrc":"4121:117:64","nodeType":"YulIf","src":"4121:117:64"},{"nativeSrc":"4252:82:64","nodeType":"YulAssignment","src":"4252:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4306:9:64","nodeType":"YulIdentifier","src":"4306:9:64"},{"name":"offset","nativeSrc":"4317:6:64","nodeType":"YulIdentifier","src":"4317:6:64"}],"functionName":{"name":"add","nativeSrc":"4302:3:64","nodeType":"YulIdentifier","src":"4302:3:64"},"nativeSrc":"4302:22:64","nodeType":"YulFunctionCall","src":"4302:22:64"},{"name":"dataEnd","nativeSrc":"4326:7:64","nodeType":"YulIdentifier","src":"4326:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4270:31:64","nodeType":"YulIdentifier","src":"4270:31:64"},"nativeSrc":"4270:64:64","nodeType":"YulFunctionCall","src":"4270:64:64"},"variableNames":[{"name":"value0","nativeSrc":"4252:6:64","nodeType":"YulIdentifier","src":"4252:6:64"},{"name":"value1","nativeSrc":"4260:6:64","nodeType":"YulIdentifier","src":"4260:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3824:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3871:9:64","nodeType":"YulTypedName","src":"3871:9:64","type":""},{"name":"dataEnd","nativeSrc":"3882:7:64","nodeType":"YulTypedName","src":"3882:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3894:6:64","nodeType":"YulTypedName","src":"3894:6:64","type":""},{"name":"value1","nativeSrc":"3902:6:64","nodeType":"YulTypedName","src":"3902:6:64","type":""}],"src":"3824:527:64"},{"body":{"nativeSrc":"4415:40:64","nodeType":"YulBlock","src":"4415:40:64","statements":[{"nativeSrc":"4426:22:64","nodeType":"YulAssignment","src":"4426:22:64","value":{"arguments":[{"name":"value","nativeSrc":"4442:5:64","nodeType":"YulIdentifier","src":"4442:5:64"}],"functionName":{"name":"mload","nativeSrc":"4436:5:64","nodeType":"YulIdentifier","src":"4436:5:64"},"nativeSrc":"4436:12:64","nodeType":"YulFunctionCall","src":"4436:12:64"},"variableNames":[{"name":"length","nativeSrc":"4426:6:64","nodeType":"YulIdentifier","src":"4426:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4357:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4398:5:64","nodeType":"YulTypedName","src":"4398:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"4408:6:64","nodeType":"YulTypedName","src":"4408:6:64","type":""}],"src":"4357:98:64"},{"body":{"nativeSrc":"4556:73:64","nodeType":"YulBlock","src":"4556:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4573:3:64","nodeType":"YulIdentifier","src":"4573:3:64"},{"name":"length","nativeSrc":"4578:6:64","nodeType":"YulIdentifier","src":"4578:6:64"}],"functionName":{"name":"mstore","nativeSrc":"4566:6:64","nodeType":"YulIdentifier","src":"4566:6:64"},"nativeSrc":"4566:19:64","nodeType":"YulFunctionCall","src":"4566:19:64"},"nativeSrc":"4566:19:64","nodeType":"YulExpressionStatement","src":"4566:19:64"},{"nativeSrc":"4594:29:64","nodeType":"YulAssignment","src":"4594:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"4613:3:64","nodeType":"YulIdentifier","src":"4613:3:64"},{"kind":"number","nativeSrc":"4618:4:64","nodeType":"YulLiteral","src":"4618:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4609:3:64","nodeType":"YulIdentifier","src":"4609:3:64"},"nativeSrc":"4609:14:64","nodeType":"YulFunctionCall","src":"4609:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"4594:11:64","nodeType":"YulIdentifier","src":"4594:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4461:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4528:3:64","nodeType":"YulTypedName","src":"4528:3:64","type":""},{"name":"length","nativeSrc":"4533:6:64","nodeType":"YulTypedName","src":"4533:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"4544:11:64","nodeType":"YulTypedName","src":"4544:11:64","type":""}],"src":"4461:168:64"},{"body":{"nativeSrc":"4697:77:64","nodeType":"YulBlock","src":"4697:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4714:3:64","nodeType":"YulIdentifier","src":"4714:3:64"},{"name":"src","nativeSrc":"4719:3:64","nodeType":"YulIdentifier","src":"4719:3:64"},{"name":"length","nativeSrc":"4724:6:64","nodeType":"YulIdentifier","src":"4724:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"4708:5:64","nodeType":"YulIdentifier","src":"4708:5:64"},"nativeSrc":"4708:23:64","nodeType":"YulFunctionCall","src":"4708:23:64"},"nativeSrc":"4708:23:64","nodeType":"YulExpressionStatement","src":"4708:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4751:3:64","nodeType":"YulIdentifier","src":"4751:3:64"},{"name":"length","nativeSrc":"4756:6:64","nodeType":"YulIdentifier","src":"4756:6:64"}],"functionName":{"name":"add","nativeSrc":"4747:3:64","nodeType":"YulIdentifier","src":"4747:3:64"},"nativeSrc":"4747:16:64","nodeType":"YulFunctionCall","src":"4747:16:64"},{"kind":"number","nativeSrc":"4765:1:64","nodeType":"YulLiteral","src":"4765:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4740:6:64","nodeType":"YulIdentifier","src":"4740:6:64"},"nativeSrc":"4740:27:64","nodeType":"YulFunctionCall","src":"4740:27:64"},"nativeSrc":"4740:27:64","nodeType":"YulExpressionStatement","src":"4740:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4635:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4679:3:64","nodeType":"YulTypedName","src":"4679:3:64","type":""},{"name":"dst","nativeSrc":"4684:3:64","nodeType":"YulTypedName","src":"4684:3:64","type":""},{"name":"length","nativeSrc":"4689:6:64","nodeType":"YulTypedName","src":"4689:6:64","type":""}],"src":"4635:139:64"},{"body":{"nativeSrc":"4828:54:64","nodeType":"YulBlock","src":"4828:54:64","statements":[{"nativeSrc":"4838:38:64","nodeType":"YulAssignment","src":"4838:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4856:5:64","nodeType":"YulIdentifier","src":"4856:5:64"},{"kind":"number","nativeSrc":"4863:2:64","nodeType":"YulLiteral","src":"4863:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4852:3:64","nodeType":"YulIdentifier","src":"4852:3:64"},"nativeSrc":"4852:14:64","nodeType":"YulFunctionCall","src":"4852:14:64"},{"arguments":[{"kind":"number","nativeSrc":"4872:2:64","nodeType":"YulLiteral","src":"4872:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4868:3:64","nodeType":"YulIdentifier","src":"4868:3:64"},"nativeSrc":"4868:7:64","nodeType":"YulFunctionCall","src":"4868:7:64"}],"functionName":{"name":"and","nativeSrc":"4848:3:64","nodeType":"YulIdentifier","src":"4848:3:64"},"nativeSrc":"4848:28:64","nodeType":"YulFunctionCall","src":"4848:28:64"},"variableNames":[{"name":"result","nativeSrc":"4838:6:64","nodeType":"YulIdentifier","src":"4838:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4780:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4811:5:64","nodeType":"YulTypedName","src":"4811:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4821:6:64","nodeType":"YulTypedName","src":"4821:6:64","type":""}],"src":"4780:102:64"},{"body":{"nativeSrc":"4978:283:64","nodeType":"YulBlock","src":"4978:283:64","statements":[{"nativeSrc":"4988:52:64","nodeType":"YulVariableDeclaration","src":"4988:52:64","value":{"arguments":[{"name":"value","nativeSrc":"5034:5:64","nodeType":"YulIdentifier","src":"5034:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"5002:31:64","nodeType":"YulIdentifier","src":"5002:31:64"},"nativeSrc":"5002:38:64","nodeType":"YulFunctionCall","src":"5002:38:64"},"variables":[{"name":"length","nativeSrc":"4992:6:64","nodeType":"YulTypedName","src":"4992:6:64","type":""}]},{"nativeSrc":"5049:77:64","nodeType":"YulAssignment","src":"5049:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"5114:3:64","nodeType":"YulIdentifier","src":"5114:3:64"},{"name":"length","nativeSrc":"5119:6:64","nodeType":"YulIdentifier","src":"5119:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"5056:57:64","nodeType":"YulIdentifier","src":"5056:57:64"},"nativeSrc":"5056:70:64","nodeType":"YulFunctionCall","src":"5056:70:64"},"variableNames":[{"name":"pos","nativeSrc":"5049:3:64","nodeType":"YulIdentifier","src":"5049:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5174:5:64","nodeType":"YulIdentifier","src":"5174:5:64"},{"kind":"number","nativeSrc":"5181:4:64","nodeType":"YulLiteral","src":"5181:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5170:3:64","nodeType":"YulIdentifier","src":"5170:3:64"},"nativeSrc":"5170:16:64","nodeType":"YulFunctionCall","src":"5170:16:64"},{"name":"pos","nativeSrc":"5188:3:64","nodeType":"YulIdentifier","src":"5188:3:64"},{"name":"length","nativeSrc":"5193:6:64","nodeType":"YulIdentifier","src":"5193:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"5135:34:64","nodeType":"YulIdentifier","src":"5135:34:64"},"nativeSrc":"5135:65:64","nodeType":"YulFunctionCall","src":"5135:65:64"},"nativeSrc":"5135:65:64","nodeType":"YulExpressionStatement","src":"5135:65:64"},{"nativeSrc":"5209:46:64","nodeType":"YulAssignment","src":"5209:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"5220:3:64","nodeType":"YulIdentifier","src":"5220:3:64"},{"arguments":[{"name":"length","nativeSrc":"5247:6:64","nodeType":"YulIdentifier","src":"5247:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5225:21:64","nodeType":"YulIdentifier","src":"5225:21:64"},"nativeSrc":"5225:29:64","nodeType":"YulFunctionCall","src":"5225:29:64"}],"functionName":{"name":"add","nativeSrc":"5216:3:64","nodeType":"YulIdentifier","src":"5216:3:64"},"nativeSrc":"5216:39:64","nodeType":"YulFunctionCall","src":"5216:39:64"},"variableNames":[{"name":"end","nativeSrc":"5209:3:64","nodeType":"YulIdentifier","src":"5209:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4888:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4959:5:64","nodeType":"YulTypedName","src":"4959:5:64","type":""},{"name":"pos","nativeSrc":"4966:3:64","nodeType":"YulTypedName","src":"4966:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4974:3:64","nodeType":"YulTypedName","src":"4974:3:64","type":""}],"src":"4888:373:64"},{"body":{"nativeSrc":"5383:193:64","nodeType":"YulBlock","src":"5383:193:64","statements":[{"nativeSrc":"5393:26:64","nodeType":"YulAssignment","src":"5393:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5405:9:64","nodeType":"YulIdentifier","src":"5405:9:64"},{"kind":"number","nativeSrc":"5416:2:64","nodeType":"YulLiteral","src":"5416:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5401:3:64","nodeType":"YulIdentifier","src":"5401:3:64"},"nativeSrc":"5401:18:64","nodeType":"YulFunctionCall","src":"5401:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5393:4:64","nodeType":"YulIdentifier","src":"5393:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5440:9:64","nodeType":"YulIdentifier","src":"5440:9:64"},{"kind":"number","nativeSrc":"5451:1:64","nodeType":"YulLiteral","src":"5451:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5436:3:64","nodeType":"YulIdentifier","src":"5436:3:64"},"nativeSrc":"5436:17:64","nodeType":"YulFunctionCall","src":"5436:17:64"},{"arguments":[{"name":"tail","nativeSrc":"5459:4:64","nodeType":"YulIdentifier","src":"5459:4:64"},{"name":"headStart","nativeSrc":"5465:9:64","nodeType":"YulIdentifier","src":"5465:9:64"}],"functionName":{"name":"sub","nativeSrc":"5455:3:64","nodeType":"YulIdentifier","src":"5455:3:64"},"nativeSrc":"5455:20:64","nodeType":"YulFunctionCall","src":"5455:20:64"}],"functionName":{"name":"mstore","nativeSrc":"5429:6:64","nodeType":"YulIdentifier","src":"5429:6:64"},"nativeSrc":"5429:47:64","nodeType":"YulFunctionCall","src":"5429:47:64"},"nativeSrc":"5429:47:64","nodeType":"YulExpressionStatement","src":"5429:47:64"},{"nativeSrc":"5485:84:64","nodeType":"YulAssignment","src":"5485:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"5555:6:64","nodeType":"YulIdentifier","src":"5555:6:64"},{"name":"tail","nativeSrc":"5564:4:64","nodeType":"YulIdentifier","src":"5564:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"5493:61:64","nodeType":"YulIdentifier","src":"5493:61:64"},"nativeSrc":"5493:76:64","nodeType":"YulFunctionCall","src":"5493:76:64"},"variableNames":[{"name":"tail","nativeSrc":"5485:4:64","nodeType":"YulIdentifier","src":"5485:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"5267:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5355:9:64","nodeType":"YulTypedName","src":"5355:9:64","type":""},{"name":"value0","nativeSrc":"5367:6:64","nodeType":"YulTypedName","src":"5367:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5378:4:64","nodeType":"YulTypedName","src":"5378:4:64","type":""}],"src":"5267:309:64"},{"body":{"nativeSrc":"5610:152:64","nodeType":"YulBlock","src":"5610:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5627:1:64","nodeType":"YulLiteral","src":"5627:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5630:77:64","nodeType":"YulLiteral","src":"5630:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5620:6:64","nodeType":"YulIdentifier","src":"5620:6:64"},"nativeSrc":"5620:88:64","nodeType":"YulFunctionCall","src":"5620:88:64"},"nativeSrc":"5620:88:64","nodeType":"YulExpressionStatement","src":"5620:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5724:1:64","nodeType":"YulLiteral","src":"5724:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"5727:4:64","nodeType":"YulLiteral","src":"5727:4:64","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"5717:6:64","nodeType":"YulIdentifier","src":"5717:6:64"},"nativeSrc":"5717:15:64","nodeType":"YulFunctionCall","src":"5717:15:64"},"nativeSrc":"5717:15:64","nodeType":"YulExpressionStatement","src":"5717:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5748:1:64","nodeType":"YulLiteral","src":"5748:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5751:4:64","nodeType":"YulLiteral","src":"5751:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5741:6:64","nodeType":"YulIdentifier","src":"5741:6:64"},"nativeSrc":"5741:15:64","nodeType":"YulFunctionCall","src":"5741:15:64"},"nativeSrc":"5741:15:64","nodeType":"YulExpressionStatement","src":"5741:15:64"}]},"name":"panic_error_0x21","nativeSrc":"5582:180:64","nodeType":"YulFunctionDefinition","src":"5582:180:64"},{"body":{"nativeSrc":"5825:62:64","nodeType":"YulBlock","src":"5825:62:64","statements":[{"body":{"nativeSrc":"5859:22:64","nodeType":"YulBlock","src":"5859:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"5861:16:64","nodeType":"YulIdentifier","src":"5861:16:64"},"nativeSrc":"5861:18:64","nodeType":"YulFunctionCall","src":"5861:18:64"},"nativeSrc":"5861:18:64","nodeType":"YulExpressionStatement","src":"5861:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5848:5:64","nodeType":"YulIdentifier","src":"5848:5:64"},{"kind":"number","nativeSrc":"5855:1:64","nodeType":"YulLiteral","src":"5855:1:64","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"5845:2:64","nodeType":"YulIdentifier","src":"5845:2:64"},"nativeSrc":"5845:12:64","nodeType":"YulFunctionCall","src":"5845:12:64"}],"functionName":{"name":"iszero","nativeSrc":"5838:6:64","nodeType":"YulIdentifier","src":"5838:6:64"},"nativeSrc":"5838:20:64","nodeType":"YulFunctionCall","src":"5838:20:64"},"nativeSrc":"5835:46:64","nodeType":"YulIf","src":"5835:46:64"}]},"name":"validator_assert_t_enum$_Strategy_$16818","nativeSrc":"5768:119:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5818:5:64","nodeType":"YulTypedName","src":"5818:5:64","type":""}],"src":"5768:119:64"},{"body":{"nativeSrc":"5952:80:64","nodeType":"YulBlock","src":"5952:80:64","statements":[{"nativeSrc":"5962:16:64","nodeType":"YulAssignment","src":"5962:16:64","value":{"name":"value","nativeSrc":"5973:5:64","nodeType":"YulIdentifier","src":"5973:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5962:7:64","nodeType":"YulIdentifier","src":"5962:7:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6020:5:64","nodeType":"YulIdentifier","src":"6020:5:64"}],"functionName":{"name":"validator_assert_t_enum$_Strategy_$16818","nativeSrc":"5979:40:64","nodeType":"YulIdentifier","src":"5979:40:64"},"nativeSrc":"5979:47:64","nodeType":"YulFunctionCall","src":"5979:47:64"},"nativeSrc":"5979:47:64","nodeType":"YulExpressionStatement","src":"5979:47:64"}]},"name":"cleanup_t_enum$_Strategy_$16818","nativeSrc":"5893:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5934:5:64","nodeType":"YulTypedName","src":"5934:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5944:7:64","nodeType":"YulTypedName","src":"5944:7:64","type":""}],"src":"5893:139:64"},{"body":{"nativeSrc":"6110:67:64","nodeType":"YulBlock","src":"6110:67:64","statements":[{"nativeSrc":"6120:51:64","nodeType":"YulAssignment","src":"6120:51:64","value":{"arguments":[{"name":"value","nativeSrc":"6165:5:64","nodeType":"YulIdentifier","src":"6165:5:64"}],"functionName":{"name":"cleanup_t_enum$_Strategy_$16818","nativeSrc":"6133:31:64","nodeType":"YulIdentifier","src":"6133:31:64"},"nativeSrc":"6133:38:64","nodeType":"YulFunctionCall","src":"6133:38:64"},"variableNames":[{"name":"converted","nativeSrc":"6120:9:64","nodeType":"YulIdentifier","src":"6120:9:64"}]}]},"name":"convert_t_enum$_Strategy_$16818_to_t_uint8","nativeSrc":"6038:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6090:5:64","nodeType":"YulTypedName","src":"6090:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"6100:9:64","nodeType":"YulTypedName","src":"6100:9:64","type":""}],"src":"6038:139:64"},{"body":{"nativeSrc":"6260:78:64","nodeType":"YulBlock","src":"6260:78:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6277:3:64","nodeType":"YulIdentifier","src":"6277:3:64"},{"arguments":[{"name":"value","nativeSrc":"6325:5:64","nodeType":"YulIdentifier","src":"6325:5:64"}],"functionName":{"name":"convert_t_enum$_Strategy_$16818_to_t_uint8","nativeSrc":"6282:42:64","nodeType":"YulIdentifier","src":"6282:42:64"},"nativeSrc":"6282:49:64","nodeType":"YulFunctionCall","src":"6282:49:64"}],"functionName":{"name":"mstore","nativeSrc":"6270:6:64","nodeType":"YulIdentifier","src":"6270:6:64"},"nativeSrc":"6270:62:64","nodeType":"YulFunctionCall","src":"6270:62:64"},"nativeSrc":"6270:62:64","nodeType":"YulExpressionStatement","src":"6270:62:64"}]},"name":"abi_encode_t_enum$_Strategy_$16818_to_t_uint8_fromStack","nativeSrc":"6183:155:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6248:5:64","nodeType":"YulTypedName","src":"6248:5:64","type":""},{"name":"pos","nativeSrc":"6255:3:64","nodeType":"YulTypedName","src":"6255:3:64","type":""}],"src":"6183:155:64"},{"body":{"nativeSrc":"6454:136:64","nodeType":"YulBlock","src":"6454:136:64","statements":[{"nativeSrc":"6464:26:64","nodeType":"YulAssignment","src":"6464:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6476:9:64","nodeType":"YulIdentifier","src":"6476:9:64"},{"kind":"number","nativeSrc":"6487:2:64","nodeType":"YulLiteral","src":"6487:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6472:3:64","nodeType":"YulIdentifier","src":"6472:3:64"},"nativeSrc":"6472:18:64","nodeType":"YulFunctionCall","src":"6472:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6464:4:64","nodeType":"YulIdentifier","src":"6464:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6556:6:64","nodeType":"YulIdentifier","src":"6556:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6569:9:64","nodeType":"YulIdentifier","src":"6569:9:64"},{"kind":"number","nativeSrc":"6580:1:64","nodeType":"YulLiteral","src":"6580:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6565:3:64","nodeType":"YulIdentifier","src":"6565:3:64"},"nativeSrc":"6565:17:64","nodeType":"YulFunctionCall","src":"6565:17:64"}],"functionName":{"name":"abi_encode_t_enum$_Strategy_$16818_to_t_uint8_fromStack","nativeSrc":"6500:55:64","nodeType":"YulIdentifier","src":"6500:55:64"},"nativeSrc":"6500:83:64","nodeType":"YulFunctionCall","src":"6500:83:64"},"nativeSrc":"6500:83:64","nodeType":"YulExpressionStatement","src":"6500:83:64"}]},"name":"abi_encode_tuple_t_enum$_Strategy_$16818__to_t_uint8__fromStack_reversed","nativeSrc":"6344:246:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6426:9:64","nodeType":"YulTypedName","src":"6426:9:64","type":""},{"name":"value0","nativeSrc":"6438:6:64","nodeType":"YulTypedName","src":"6438:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6449:4:64","nodeType":"YulTypedName","src":"6449:4:64","type":""}],"src":"6344:246:64"},{"body":{"nativeSrc":"6639:79:64","nodeType":"YulBlock","src":"6639:79:64","statements":[{"body":{"nativeSrc":"6696:16:64","nodeType":"YulBlock","src":"6696:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6705:1:64","nodeType":"YulLiteral","src":"6705:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6708:1:64","nodeType":"YulLiteral","src":"6708:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6698:6:64","nodeType":"YulIdentifier","src":"6698:6:64"},"nativeSrc":"6698:12:64","nodeType":"YulFunctionCall","src":"6698:12:64"},"nativeSrc":"6698:12:64","nodeType":"YulExpressionStatement","src":"6698:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6662:5:64","nodeType":"YulIdentifier","src":"6662:5:64"},{"arguments":[{"name":"value","nativeSrc":"6687:5:64","nodeType":"YulIdentifier","src":"6687:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6669:17:64","nodeType":"YulIdentifier","src":"6669:17:64"},"nativeSrc":"6669:24:64","nodeType":"YulFunctionCall","src":"6669:24:64"}],"functionName":{"name":"eq","nativeSrc":"6659:2:64","nodeType":"YulIdentifier","src":"6659:2:64"},"nativeSrc":"6659:35:64","nodeType":"YulFunctionCall","src":"6659:35:64"}],"functionName":{"name":"iszero","nativeSrc":"6652:6:64","nodeType":"YulIdentifier","src":"6652:6:64"},"nativeSrc":"6652:43:64","nodeType":"YulFunctionCall","src":"6652:43:64"},"nativeSrc":"6649:63:64","nodeType":"YulIf","src":"6649:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"6596:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6632:5:64","nodeType":"YulTypedName","src":"6632:5:64","type":""}],"src":"6596:122:64"},{"body":{"nativeSrc":"6776:87:64","nodeType":"YulBlock","src":"6776:87:64","statements":[{"nativeSrc":"6786:29:64","nodeType":"YulAssignment","src":"6786:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6808:6:64","nodeType":"YulIdentifier","src":"6808:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6795:12:64","nodeType":"YulIdentifier","src":"6795:12:64"},"nativeSrc":"6795:20:64","nodeType":"YulFunctionCall","src":"6795:20:64"},"variableNames":[{"name":"value","nativeSrc":"6786:5:64","nodeType":"YulIdentifier","src":"6786:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6851:5:64","nodeType":"YulIdentifier","src":"6851:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"6824:26:64","nodeType":"YulIdentifier","src":"6824:26:64"},"nativeSrc":"6824:33:64","nodeType":"YulFunctionCall","src":"6824:33:64"},"nativeSrc":"6824:33:64","nodeType":"YulExpressionStatement","src":"6824:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"6724:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6754:6:64","nodeType":"YulTypedName","src":"6754:6:64","type":""},{"name":"end","nativeSrc":"6762:3:64","nodeType":"YulTypedName","src":"6762:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6770:5:64","nodeType":"YulTypedName","src":"6770:5:64","type":""}],"src":"6724:139:64"},{"body":{"nativeSrc":"6935:263:64","nodeType":"YulBlock","src":"6935:263:64","statements":[{"body":{"nativeSrc":"6981:83:64","nodeType":"YulBlock","src":"6981:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6983:77:64","nodeType":"YulIdentifier","src":"6983:77:64"},"nativeSrc":"6983:79:64","nodeType":"YulFunctionCall","src":"6983:79:64"},"nativeSrc":"6983:79:64","nodeType":"YulExpressionStatement","src":"6983:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6956:7:64","nodeType":"YulIdentifier","src":"6956:7:64"},{"name":"headStart","nativeSrc":"6965:9:64","nodeType":"YulIdentifier","src":"6965:9:64"}],"functionName":{"name":"sub","nativeSrc":"6952:3:64","nodeType":"YulIdentifier","src":"6952:3:64"},"nativeSrc":"6952:23:64","nodeType":"YulFunctionCall","src":"6952:23:64"},{"kind":"number","nativeSrc":"6977:2:64","nodeType":"YulLiteral","src":"6977:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6948:3:64","nodeType":"YulIdentifier","src":"6948:3:64"},"nativeSrc":"6948:32:64","nodeType":"YulFunctionCall","src":"6948:32:64"},"nativeSrc":"6945:119:64","nodeType":"YulIf","src":"6945:119:64"},{"nativeSrc":"7074:117:64","nodeType":"YulBlock","src":"7074:117:64","statements":[{"nativeSrc":"7089:15:64","nodeType":"YulVariableDeclaration","src":"7089:15:64","value":{"kind":"number","nativeSrc":"7103:1:64","nodeType":"YulLiteral","src":"7103:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7093:6:64","nodeType":"YulTypedName","src":"7093:6:64","type":""}]},{"nativeSrc":"7118:63:64","nodeType":"YulAssignment","src":"7118:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7153:9:64","nodeType":"YulIdentifier","src":"7153:9:64"},{"name":"offset","nativeSrc":"7164:6:64","nodeType":"YulIdentifier","src":"7164:6:64"}],"functionName":{"name":"add","nativeSrc":"7149:3:64","nodeType":"YulIdentifier","src":"7149:3:64"},"nativeSrc":"7149:22:64","nodeType":"YulFunctionCall","src":"7149:22:64"},{"name":"dataEnd","nativeSrc":"7173:7:64","nodeType":"YulIdentifier","src":"7173:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7128:20:64","nodeType":"YulIdentifier","src":"7128:20:64"},"nativeSrc":"7128:53:64","nodeType":"YulFunctionCall","src":"7128:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7118:6:64","nodeType":"YulIdentifier","src":"7118:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6869:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6905:9:64","nodeType":"YulTypedName","src":"6905:9:64","type":""},{"name":"dataEnd","nativeSrc":"6916:7:64","nodeType":"YulTypedName","src":"6916:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6928:6:64","nodeType":"YulTypedName","src":"6928:6:64","type":""}],"src":"6869:329:64"},{"body":{"nativeSrc":"7247:79:64","nodeType":"YulBlock","src":"7247:79:64","statements":[{"body":{"nativeSrc":"7304:16:64","nodeType":"YulBlock","src":"7304:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7313:1:64","nodeType":"YulLiteral","src":"7313:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7316:1:64","nodeType":"YulLiteral","src":"7316:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7306:6:64","nodeType":"YulIdentifier","src":"7306:6:64"},"nativeSrc":"7306:12:64","nodeType":"YulFunctionCall","src":"7306:12:64"},"nativeSrc":"7306:12:64","nodeType":"YulExpressionStatement","src":"7306:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7270:5:64","nodeType":"YulIdentifier","src":"7270:5:64"},{"arguments":[{"name":"value","nativeSrc":"7295:5:64","nodeType":"YulIdentifier","src":"7295:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"7277:17:64","nodeType":"YulIdentifier","src":"7277:17:64"},"nativeSrc":"7277:24:64","nodeType":"YulFunctionCall","src":"7277:24:64"}],"functionName":{"name":"eq","nativeSrc":"7267:2:64","nodeType":"YulIdentifier","src":"7267:2:64"},"nativeSrc":"7267:35:64","nodeType":"YulFunctionCall","src":"7267:35:64"}],"functionName":{"name":"iszero","nativeSrc":"7260:6:64","nodeType":"YulIdentifier","src":"7260:6:64"},"nativeSrc":"7260:43:64","nodeType":"YulFunctionCall","src":"7260:43:64"},"nativeSrc":"7257:63:64","nodeType":"YulIf","src":"7257:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"7204:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7240:5:64","nodeType":"YulTypedName","src":"7240:5:64","type":""}],"src":"7204:122:64"},{"body":{"nativeSrc":"7384:87:64","nodeType":"YulBlock","src":"7384:87:64","statements":[{"nativeSrc":"7394:29:64","nodeType":"YulAssignment","src":"7394:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7416:6:64","nodeType":"YulIdentifier","src":"7416:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7403:12:64","nodeType":"YulIdentifier","src":"7403:12:64"},"nativeSrc":"7403:20:64","nodeType":"YulFunctionCall","src":"7403:20:64"},"variableNames":[{"name":"value","nativeSrc":"7394:5:64","nodeType":"YulIdentifier","src":"7394:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7459:5:64","nodeType":"YulIdentifier","src":"7459:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"7432:26:64","nodeType":"YulIdentifier","src":"7432:26:64"},"nativeSrc":"7432:33:64","nodeType":"YulFunctionCall","src":"7432:33:64"},"nativeSrc":"7432:33:64","nodeType":"YulExpressionStatement","src":"7432:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"7332:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7362:6:64","nodeType":"YulTypedName","src":"7362:6:64","type":""},{"name":"end","nativeSrc":"7370:3:64","nodeType":"YulTypedName","src":"7370:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7378:5:64","nodeType":"YulTypedName","src":"7378:5:64","type":""}],"src":"7332:139:64"},{"body":{"nativeSrc":"7543:263:64","nodeType":"YulBlock","src":"7543:263:64","statements":[{"body":{"nativeSrc":"7589:83:64","nodeType":"YulBlock","src":"7589:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7591:77:64","nodeType":"YulIdentifier","src":"7591:77:64"},"nativeSrc":"7591:79:64","nodeType":"YulFunctionCall","src":"7591:79:64"},"nativeSrc":"7591:79:64","nodeType":"YulExpressionStatement","src":"7591:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7564:7:64","nodeType":"YulIdentifier","src":"7564:7:64"},{"name":"headStart","nativeSrc":"7573:9:64","nodeType":"YulIdentifier","src":"7573:9:64"}],"functionName":{"name":"sub","nativeSrc":"7560:3:64","nodeType":"YulIdentifier","src":"7560:3:64"},"nativeSrc":"7560:23:64","nodeType":"YulFunctionCall","src":"7560:23:64"},{"kind":"number","nativeSrc":"7585:2:64","nodeType":"YulLiteral","src":"7585:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7556:3:64","nodeType":"YulIdentifier","src":"7556:3:64"},"nativeSrc":"7556:32:64","nodeType":"YulFunctionCall","src":"7556:32:64"},"nativeSrc":"7553:119:64","nodeType":"YulIf","src":"7553:119:64"},{"nativeSrc":"7682:117:64","nodeType":"YulBlock","src":"7682:117:64","statements":[{"nativeSrc":"7697:15:64","nodeType":"YulVariableDeclaration","src":"7697:15:64","value":{"kind":"number","nativeSrc":"7711:1:64","nodeType":"YulLiteral","src":"7711:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7701:6:64","nodeType":"YulTypedName","src":"7701:6:64","type":""}]},{"nativeSrc":"7726:63:64","nodeType":"YulAssignment","src":"7726:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7761:9:64","nodeType":"YulIdentifier","src":"7761:9:64"},{"name":"offset","nativeSrc":"7772:6:64","nodeType":"YulIdentifier","src":"7772:6:64"}],"functionName":{"name":"add","nativeSrc":"7757:3:64","nodeType":"YulIdentifier","src":"7757:3:64"},"nativeSrc":"7757:22:64","nodeType":"YulFunctionCall","src":"7757:22:64"},{"name":"dataEnd","nativeSrc":"7781:7:64","nodeType":"YulIdentifier","src":"7781:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7736:20:64","nodeType":"YulIdentifier","src":"7736:20:64"},"nativeSrc":"7736:53:64","nodeType":"YulFunctionCall","src":"7736:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7726:6:64","nodeType":"YulIdentifier","src":"7726:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7477:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7513:9:64","nodeType":"YulTypedName","src":"7513:9:64","type":""},{"name":"dataEnd","nativeSrc":"7524:7:64","nodeType":"YulTypedName","src":"7524:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7536:6:64","nodeType":"YulTypedName","src":"7536:6:64","type":""}],"src":"7477:329:64"},{"body":{"nativeSrc":"7840:152:64","nodeType":"YulBlock","src":"7840:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7857:1:64","nodeType":"YulLiteral","src":"7857:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7860:77:64","nodeType":"YulLiteral","src":"7860:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7850:6:64","nodeType":"YulIdentifier","src":"7850:6:64"},"nativeSrc":"7850:88:64","nodeType":"YulFunctionCall","src":"7850:88:64"},"nativeSrc":"7850:88:64","nodeType":"YulExpressionStatement","src":"7850:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7954:1:64","nodeType":"YulLiteral","src":"7954:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"7957:4:64","nodeType":"YulLiteral","src":"7957:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"7947:6:64","nodeType":"YulIdentifier","src":"7947:6:64"},"nativeSrc":"7947:15:64","nodeType":"YulFunctionCall","src":"7947:15:64"},"nativeSrc":"7947:15:64","nodeType":"YulExpressionStatement","src":"7947:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7978:1:64","nodeType":"YulLiteral","src":"7978:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7981:4:64","nodeType":"YulLiteral","src":"7981:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7971:6:64","nodeType":"YulIdentifier","src":"7971:6:64"},"nativeSrc":"7971:15:64","nodeType":"YulFunctionCall","src":"7971:15:64"},"nativeSrc":"7971:15:64","nodeType":"YulExpressionStatement","src":"7971:15:64"}]},"name":"panic_error_0x11","nativeSrc":"7812:180:64","nodeType":"YulFunctionDefinition","src":"7812:180:64"},{"body":{"nativeSrc":"8042:147:64","nodeType":"YulBlock","src":"8042:147:64","statements":[{"nativeSrc":"8052:25:64","nodeType":"YulAssignment","src":"8052:25:64","value":{"arguments":[{"name":"x","nativeSrc":"8075:1:64","nodeType":"YulIdentifier","src":"8075:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8057:17:64","nodeType":"YulIdentifier","src":"8057:17:64"},"nativeSrc":"8057:20:64","nodeType":"YulFunctionCall","src":"8057:20:64"},"variableNames":[{"name":"x","nativeSrc":"8052:1:64","nodeType":"YulIdentifier","src":"8052:1:64"}]},{"nativeSrc":"8086:25:64","nodeType":"YulAssignment","src":"8086:25:64","value":{"arguments":[{"name":"y","nativeSrc":"8109:1:64","nodeType":"YulIdentifier","src":"8109:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8091:17:64","nodeType":"YulIdentifier","src":"8091:17:64"},"nativeSrc":"8091:20:64","nodeType":"YulFunctionCall","src":"8091:20:64"},"variableNames":[{"name":"y","nativeSrc":"8086:1:64","nodeType":"YulIdentifier","src":"8086:1:64"}]},{"nativeSrc":"8120:16:64","nodeType":"YulAssignment","src":"8120:16:64","value":{"arguments":[{"name":"x","nativeSrc":"8131:1:64","nodeType":"YulIdentifier","src":"8131:1:64"},{"name":"y","nativeSrc":"8134:1:64","nodeType":"YulIdentifier","src":"8134:1:64"}],"functionName":{"name":"add","nativeSrc":"8127:3:64","nodeType":"YulIdentifier","src":"8127:3:64"},"nativeSrc":"8127:9:64","nodeType":"YulFunctionCall","src":"8127:9:64"},"variableNames":[{"name":"sum","nativeSrc":"8120:3:64","nodeType":"YulIdentifier","src":"8120:3:64"}]},{"body":{"nativeSrc":"8160:22:64","nodeType":"YulBlock","src":"8160:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"8162:16:64","nodeType":"YulIdentifier","src":"8162:16:64"},"nativeSrc":"8162:18:64","nodeType":"YulFunctionCall","src":"8162:18:64"},"nativeSrc":"8162:18:64","nodeType":"YulExpressionStatement","src":"8162:18:64"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"8152:1:64","nodeType":"YulIdentifier","src":"8152:1:64"},{"name":"sum","nativeSrc":"8155:3:64","nodeType":"YulIdentifier","src":"8155:3:64"}],"functionName":{"name":"gt","nativeSrc":"8149:2:64","nodeType":"YulIdentifier","src":"8149:2:64"},"nativeSrc":"8149:10:64","nodeType":"YulFunctionCall","src":"8149:10:64"},"nativeSrc":"8146:36:64","nodeType":"YulIf","src":"8146:36:64"}]},"name":"checked_add_t_uint256","nativeSrc":"7998:191:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8029:1:64","nodeType":"YulTypedName","src":"8029:1:64","type":""},{"name":"y","nativeSrc":"8032:1:64","nodeType":"YulTypedName","src":"8032:1:64","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"8038:3:64","nodeType":"YulTypedName","src":"8038:3:64","type":""}],"src":"7998:191:64"},{"body":{"nativeSrc":"8223:152:64","nodeType":"YulBlock","src":"8223:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8240:1:64","nodeType":"YulLiteral","src":"8240:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8243:77:64","nodeType":"YulLiteral","src":"8243:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8233:6:64","nodeType":"YulIdentifier","src":"8233:6:64"},"nativeSrc":"8233:88:64","nodeType":"YulFunctionCall","src":"8233:88:64"},"nativeSrc":"8233:88:64","nodeType":"YulExpressionStatement","src":"8233:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8337:1:64","nodeType":"YulLiteral","src":"8337:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8340:4:64","nodeType":"YulLiteral","src":"8340:4:64","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"8330:6:64","nodeType":"YulIdentifier","src":"8330:6:64"},"nativeSrc":"8330:15:64","nodeType":"YulFunctionCall","src":"8330:15:64"},"nativeSrc":"8330:15:64","nodeType":"YulExpressionStatement","src":"8330:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8361:1:64","nodeType":"YulLiteral","src":"8361:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8364:4:64","nodeType":"YulLiteral","src":"8364:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8354:6:64","nodeType":"YulIdentifier","src":"8354:6:64"},"nativeSrc":"8354:15:64","nodeType":"YulFunctionCall","src":"8354:15:64"},"nativeSrc":"8354:15:64","nodeType":"YulExpressionStatement","src":"8354:15:64"}]},"name":"panic_error_0x12","nativeSrc":"8195:180:64","nodeType":"YulFunctionDefinition","src":"8195:180:64"},{"body":{"nativeSrc":"8415:142:64","nodeType":"YulBlock","src":"8415:142:64","statements":[{"nativeSrc":"8425:25:64","nodeType":"YulAssignment","src":"8425:25:64","value":{"arguments":[{"name":"x","nativeSrc":"8448:1:64","nodeType":"YulIdentifier","src":"8448:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8430:17:64","nodeType":"YulIdentifier","src":"8430:17:64"},"nativeSrc":"8430:20:64","nodeType":"YulFunctionCall","src":"8430:20:64"},"variableNames":[{"name":"x","nativeSrc":"8425:1:64","nodeType":"YulIdentifier","src":"8425:1:64"}]},{"nativeSrc":"8459:25:64","nodeType":"YulAssignment","src":"8459:25:64","value":{"arguments":[{"name":"y","nativeSrc":"8482:1:64","nodeType":"YulIdentifier","src":"8482:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8464:17:64","nodeType":"YulIdentifier","src":"8464:17:64"},"nativeSrc":"8464:20:64","nodeType":"YulFunctionCall","src":"8464:20:64"},"variableNames":[{"name":"y","nativeSrc":"8459:1:64","nodeType":"YulIdentifier","src":"8459:1:64"}]},{"body":{"nativeSrc":"8506:22:64","nodeType":"YulBlock","src":"8506:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8508:16:64","nodeType":"YulIdentifier","src":"8508:16:64"},"nativeSrc":"8508:18:64","nodeType":"YulFunctionCall","src":"8508:18:64"},"nativeSrc":"8508:18:64","nodeType":"YulExpressionStatement","src":"8508:18:64"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8503:1:64","nodeType":"YulIdentifier","src":"8503:1:64"}],"functionName":{"name":"iszero","nativeSrc":"8496:6:64","nodeType":"YulIdentifier","src":"8496:6:64"},"nativeSrc":"8496:9:64","nodeType":"YulFunctionCall","src":"8496:9:64"},"nativeSrc":"8493:35:64","nodeType":"YulIf","src":"8493:35:64"},{"nativeSrc":"8537:14:64","nodeType":"YulAssignment","src":"8537:14:64","value":{"arguments":[{"name":"x","nativeSrc":"8546:1:64","nodeType":"YulIdentifier","src":"8546:1:64"},{"name":"y","nativeSrc":"8549:1:64","nodeType":"YulIdentifier","src":"8549:1:64"}],"functionName":{"name":"mod","nativeSrc":"8542:3:64","nodeType":"YulIdentifier","src":"8542:3:64"},"nativeSrc":"8542:9:64","nodeType":"YulFunctionCall","src":"8542:9:64"},"variableNames":[{"name":"r","nativeSrc":"8537:1:64","nodeType":"YulIdentifier","src":"8537:1:64"}]}]},"name":"mod_t_uint256","nativeSrc":"8381:176:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8404:1:64","nodeType":"YulTypedName","src":"8404:1:64","type":""},{"name":"y","nativeSrc":"8407:1:64","nodeType":"YulTypedName","src":"8407:1:64","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8413:1:64","nodeType":"YulTypedName","src":"8413:1:64","type":""}],"src":"8381:176:64"},{"body":{"nativeSrc":"8591:152:64","nodeType":"YulBlock","src":"8591:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8608:1:64","nodeType":"YulLiteral","src":"8608:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8611:77:64","nodeType":"YulLiteral","src":"8611:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"8601:6:64","nodeType":"YulIdentifier","src":"8601:6:64"},"nativeSrc":"8601:88:64","nodeType":"YulFunctionCall","src":"8601:88:64"},"nativeSrc":"8601:88:64","nodeType":"YulExpressionStatement","src":"8601:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8705:1:64","nodeType":"YulLiteral","src":"8705:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8708:4:64","nodeType":"YulLiteral","src":"8708:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"8698:6:64","nodeType":"YulIdentifier","src":"8698:6:64"},"nativeSrc":"8698:15:64","nodeType":"YulFunctionCall","src":"8698:15:64"},"nativeSrc":"8698:15:64","nodeType":"YulExpressionStatement","src":"8698:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8729:1:64","nodeType":"YulLiteral","src":"8729:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8732:4:64","nodeType":"YulLiteral","src":"8732:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8722:6:64","nodeType":"YulIdentifier","src":"8722:6:64"},"nativeSrc":"8722:15:64","nodeType":"YulFunctionCall","src":"8722:15:64"},"nativeSrc":"8722:15:64","nodeType":"YulExpressionStatement","src":"8722:15:64"}]},"name":"panic_error_0x32","nativeSrc":"8563:180:64","nodeType":"YulFunctionDefinition","src":"8563:180:64"},{"body":{"nativeSrc":"8791:52:64","nodeType":"YulBlock","src":"8791:52:64","statements":[{"nativeSrc":"8801:35:64","nodeType":"YulAssignment","src":"8801:35:64","value":{"arguments":[{"kind":"number","nativeSrc":"8826:2:64","nodeType":"YulLiteral","src":"8826:2:64","type":"","value":"96"},{"name":"value","nativeSrc":"8830:5:64","nodeType":"YulIdentifier","src":"8830:5:64"}],"functionName":{"name":"shl","nativeSrc":"8822:3:64","nodeType":"YulIdentifier","src":"8822:3:64"},"nativeSrc":"8822:14:64","nodeType":"YulFunctionCall","src":"8822:14:64"},"variableNames":[{"name":"newValue","nativeSrc":"8801:8:64","nodeType":"YulIdentifier","src":"8801:8:64"}]}]},"name":"shift_left_96","nativeSrc":"8749:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8772:5:64","nodeType":"YulTypedName","src":"8772:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"8782:8:64","nodeType":"YulTypedName","src":"8782:8:64","type":""}],"src":"8749:94:64"},{"body":{"nativeSrc":"8896:47:64","nodeType":"YulBlock","src":"8896:47:64","statements":[{"nativeSrc":"8906:31:64","nodeType":"YulAssignment","src":"8906:31:64","value":{"arguments":[{"name":"value","nativeSrc":"8931:5:64","nodeType":"YulIdentifier","src":"8931:5:64"}],"functionName":{"name":"shift_left_96","nativeSrc":"8917:13:64","nodeType":"YulIdentifier","src":"8917:13:64"},"nativeSrc":"8917:20:64","nodeType":"YulFunctionCall","src":"8917:20:64"},"variableNames":[{"name":"aligned","nativeSrc":"8906:7:64","nodeType":"YulIdentifier","src":"8906:7:64"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"8849:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8878:5:64","nodeType":"YulTypedName","src":"8878:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8888:7:64","nodeType":"YulTypedName","src":"8888:7:64","type":""}],"src":"8849:94:64"},{"body":{"nativeSrc":"8996:53:64","nodeType":"YulBlock","src":"8996:53:64","statements":[{"nativeSrc":"9006:37:64","nodeType":"YulAssignment","src":"9006:37:64","value":{"arguments":[{"name":"value","nativeSrc":"9037:5:64","nodeType":"YulIdentifier","src":"9037:5:64"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"9017:19:64","nodeType":"YulIdentifier","src":"9017:19:64"},"nativeSrc":"9017:26:64","nodeType":"YulFunctionCall","src":"9017:26:64"},"variableNames":[{"name":"aligned","nativeSrc":"9006:7:64","nodeType":"YulIdentifier","src":"9006:7:64"}]}]},"name":"leftAlign_t_address","nativeSrc":"8949:100:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8978:5:64","nodeType":"YulTypedName","src":"8978:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"8988:7:64","nodeType":"YulTypedName","src":"8988:7:64","type":""}],"src":"8949:100:64"},{"body":{"nativeSrc":"9138:74:64","nodeType":"YulBlock","src":"9138:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9155:3:64","nodeType":"YulIdentifier","src":"9155:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9198:5:64","nodeType":"YulIdentifier","src":"9198:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"9180:17:64","nodeType":"YulIdentifier","src":"9180:17:64"},"nativeSrc":"9180:24:64","nodeType":"YulFunctionCall","src":"9180:24:64"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"9160:19:64","nodeType":"YulIdentifier","src":"9160:19:64"},"nativeSrc":"9160:45:64","nodeType":"YulFunctionCall","src":"9160:45:64"}],"functionName":{"name":"mstore","nativeSrc":"9148:6:64","nodeType":"YulIdentifier","src":"9148:6:64"},"nativeSrc":"9148:58:64","nodeType":"YulFunctionCall","src":"9148:58:64"},"nativeSrc":"9148:58:64","nodeType":"YulExpressionStatement","src":"9148:58:64"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"9055:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9126:5:64","nodeType":"YulTypedName","src":"9126:5:64","type":""},{"name":"pos","nativeSrc":"9133:3:64","nodeType":"YulTypedName","src":"9133:3:64","type":""}],"src":"9055:157:64"},{"body":{"nativeSrc":"9265:32:64","nodeType":"YulBlock","src":"9265:32:64","statements":[{"nativeSrc":"9275:16:64","nodeType":"YulAssignment","src":"9275:16:64","value":{"name":"value","nativeSrc":"9286:5:64","nodeType":"YulIdentifier","src":"9286:5:64"},"variableNames":[{"name":"aligned","nativeSrc":"9275:7:64","nodeType":"YulIdentifier","src":"9275:7:64"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"9218:79:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9247:5:64","nodeType":"YulTypedName","src":"9247:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"9257:7:64","nodeType":"YulTypedName","src":"9257:7:64","type":""}],"src":"9218:79:64"},{"body":{"nativeSrc":"9386:74:64","nodeType":"YulBlock","src":"9386:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9403:3:64","nodeType":"YulIdentifier","src":"9403:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9446:5:64","nodeType":"YulIdentifier","src":"9446:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"9428:17:64","nodeType":"YulIdentifier","src":"9428:17:64"},"nativeSrc":"9428:24:64","nodeType":"YulFunctionCall","src":"9428:24:64"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"9408:19:64","nodeType":"YulIdentifier","src":"9408:19:64"},"nativeSrc":"9408:45:64","nodeType":"YulFunctionCall","src":"9408:45:64"}],"functionName":{"name":"mstore","nativeSrc":"9396:6:64","nodeType":"YulIdentifier","src":"9396:6:64"},"nativeSrc":"9396:58:64","nodeType":"YulFunctionCall","src":"9396:58:64"},"nativeSrc":"9396:58:64","nodeType":"YulExpressionStatement","src":"9396:58:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"9303:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9374:5:64","nodeType":"YulTypedName","src":"9374:5:64","type":""},{"name":"pos","nativeSrc":"9381:3:64","nodeType":"YulTypedName","src":"9381:3:64","type":""}],"src":"9303:157:64"},{"body":{"nativeSrc":"9638:366:64","nodeType":"YulBlock","src":"9638:366:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"9711:6:64","nodeType":"YulIdentifier","src":"9711:6:64"},{"name":"pos","nativeSrc":"9720:3:64","nodeType":"YulIdentifier","src":"9720:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"9649:61:64","nodeType":"YulIdentifier","src":"9649:61:64"},"nativeSrc":"9649:75:64","nodeType":"YulFunctionCall","src":"9649:75:64"},"nativeSrc":"9649:75:64","nodeType":"YulExpressionStatement","src":"9649:75:64"},{"nativeSrc":"9733:19:64","nodeType":"YulAssignment","src":"9733:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"9744:3:64","nodeType":"YulIdentifier","src":"9744:3:64"},{"kind":"number","nativeSrc":"9749:2:64","nodeType":"YulLiteral","src":"9749:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"9740:3:64","nodeType":"YulIdentifier","src":"9740:3:64"},"nativeSrc":"9740:12:64","nodeType":"YulFunctionCall","src":"9740:12:64"},"variableNames":[{"name":"pos","nativeSrc":"9733:3:64","nodeType":"YulIdentifier","src":"9733:3:64"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"9824:6:64","nodeType":"YulIdentifier","src":"9824:6:64"},{"name":"pos","nativeSrc":"9833:3:64","nodeType":"YulIdentifier","src":"9833:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"9762:61:64","nodeType":"YulIdentifier","src":"9762:61:64"},"nativeSrc":"9762:75:64","nodeType":"YulFunctionCall","src":"9762:75:64"},"nativeSrc":"9762:75:64","nodeType":"YulExpressionStatement","src":"9762:75:64"},{"nativeSrc":"9846:19:64","nodeType":"YulAssignment","src":"9846:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"9857:3:64","nodeType":"YulIdentifier","src":"9857:3:64"},{"kind":"number","nativeSrc":"9862:2:64","nodeType":"YulLiteral","src":"9862:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"9853:3:64","nodeType":"YulIdentifier","src":"9853:3:64"},"nativeSrc":"9853:12:64","nodeType":"YulFunctionCall","src":"9853:12:64"},"variableNames":[{"name":"pos","nativeSrc":"9846:3:64","nodeType":"YulIdentifier","src":"9846:3:64"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"9937:6:64","nodeType":"YulIdentifier","src":"9937:6:64"},{"name":"pos","nativeSrc":"9946:3:64","nodeType":"YulIdentifier","src":"9946:3:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"9875:61:64","nodeType":"YulIdentifier","src":"9875:61:64"},"nativeSrc":"9875:75:64","nodeType":"YulFunctionCall","src":"9875:75:64"},"nativeSrc":"9875:75:64","nodeType":"YulExpressionStatement","src":"9875:75:64"},{"nativeSrc":"9959:19:64","nodeType":"YulAssignment","src":"9959:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"9970:3:64","nodeType":"YulIdentifier","src":"9970:3:64"},{"kind":"number","nativeSrc":"9975:2:64","nodeType":"YulLiteral","src":"9975:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9966:3:64","nodeType":"YulIdentifier","src":"9966:3:64"},"nativeSrc":"9966:12:64","nodeType":"YulFunctionCall","src":"9966:12:64"},"variableNames":[{"name":"pos","nativeSrc":"9959:3:64","nodeType":"YulIdentifier","src":"9959:3:64"}]},{"nativeSrc":"9988:10:64","nodeType":"YulAssignment","src":"9988:10:64","value":{"name":"pos","nativeSrc":"9995:3:64","nodeType":"YulIdentifier","src":"9995:3:64"},"variableNames":[{"name":"end","nativeSrc":"9988:3:64","nodeType":"YulIdentifier","src":"9988:3:64"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"9466:538:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9601:3:64","nodeType":"YulTypedName","src":"9601:3:64","type":""},{"name":"value2","nativeSrc":"9607:6:64","nodeType":"YulTypedName","src":"9607:6:64","type":""},{"name":"value1","nativeSrc":"9615:6:64","nodeType":"YulTypedName","src":"9615:6:64","type":""},{"name":"value0","nativeSrc":"9623:6:64","nodeType":"YulTypedName","src":"9623:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9634:3:64","nodeType":"YulTypedName","src":"9634:3:64","type":""}],"src":"9466:538:64"},{"body":{"nativeSrc":"10099:28:64","nodeType":"YulBlock","src":"10099:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10116:1:64","nodeType":"YulLiteral","src":"10116:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10119:1:64","nodeType":"YulLiteral","src":"10119:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10109:6:64","nodeType":"YulIdentifier","src":"10109:6:64"},"nativeSrc":"10109:12:64","nodeType":"YulFunctionCall","src":"10109:12:64"},"nativeSrc":"10109:12:64","nodeType":"YulExpressionStatement","src":"10109:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10010:117:64","nodeType":"YulFunctionDefinition","src":"10010:117:64"},{"body":{"nativeSrc":"10161:152:64","nodeType":"YulBlock","src":"10161:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10178:1:64","nodeType":"YulLiteral","src":"10178:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10181:77:64","nodeType":"YulLiteral","src":"10181:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10171:6:64","nodeType":"YulIdentifier","src":"10171:6:64"},"nativeSrc":"10171:88:64","nodeType":"YulFunctionCall","src":"10171:88:64"},"nativeSrc":"10171:88:64","nodeType":"YulExpressionStatement","src":"10171:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10275:1:64","nodeType":"YulLiteral","src":"10275:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"10278:4:64","nodeType":"YulLiteral","src":"10278:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"10268:6:64","nodeType":"YulIdentifier","src":"10268:6:64"},"nativeSrc":"10268:15:64","nodeType":"YulFunctionCall","src":"10268:15:64"},"nativeSrc":"10268:15:64","nodeType":"YulExpressionStatement","src":"10268:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10299:1:64","nodeType":"YulLiteral","src":"10299:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10302:4:64","nodeType":"YulLiteral","src":"10302:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10292:6:64","nodeType":"YulIdentifier","src":"10292:6:64"},"nativeSrc":"10292:15:64","nodeType":"YulFunctionCall","src":"10292:15:64"},"nativeSrc":"10292:15:64","nodeType":"YulExpressionStatement","src":"10292:15:64"}]},"name":"panic_error_0x41","nativeSrc":"10133:180:64","nodeType":"YulFunctionDefinition","src":"10133:180:64"},{"body":{"nativeSrc":"10362:238:64","nodeType":"YulBlock","src":"10362:238:64","statements":[{"nativeSrc":"10372:58:64","nodeType":"YulVariableDeclaration","src":"10372:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"10394:6:64","nodeType":"YulIdentifier","src":"10394:6:64"},{"arguments":[{"name":"size","nativeSrc":"10424:4:64","nodeType":"YulIdentifier","src":"10424:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"10402:21:64","nodeType":"YulIdentifier","src":"10402:21:64"},"nativeSrc":"10402:27:64","nodeType":"YulFunctionCall","src":"10402:27:64"}],"functionName":{"name":"add","nativeSrc":"10390:3:64","nodeType":"YulIdentifier","src":"10390:3:64"},"nativeSrc":"10390:40:64","nodeType":"YulFunctionCall","src":"10390:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"10376:10:64","nodeType":"YulTypedName","src":"10376:10:64","type":""}]},{"body":{"nativeSrc":"10541:22:64","nodeType":"YulBlock","src":"10541:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10543:16:64","nodeType":"YulIdentifier","src":"10543:16:64"},"nativeSrc":"10543:18:64","nodeType":"YulFunctionCall","src":"10543:18:64"},"nativeSrc":"10543:18:64","nodeType":"YulExpressionStatement","src":"10543:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"10484:10:64","nodeType":"YulIdentifier","src":"10484:10:64"},{"kind":"number","nativeSrc":"10496:18:64","nodeType":"YulLiteral","src":"10496:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10481:2:64","nodeType":"YulIdentifier","src":"10481:2:64"},"nativeSrc":"10481:34:64","nodeType":"YulFunctionCall","src":"10481:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"10520:10:64","nodeType":"YulIdentifier","src":"10520:10:64"},{"name":"memPtr","nativeSrc":"10532:6:64","nodeType":"YulIdentifier","src":"10532:6:64"}],"functionName":{"name":"lt","nativeSrc":"10517:2:64","nodeType":"YulIdentifier","src":"10517:2:64"},"nativeSrc":"10517:22:64","nodeType":"YulFunctionCall","src":"10517:22:64"}],"functionName":{"name":"or","nativeSrc":"10478:2:64","nodeType":"YulIdentifier","src":"10478:2:64"},"nativeSrc":"10478:62:64","nodeType":"YulFunctionCall","src":"10478:62:64"},"nativeSrc":"10475:88:64","nodeType":"YulIf","src":"10475:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10579:2:64","nodeType":"YulLiteral","src":"10579:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"10583:10:64","nodeType":"YulIdentifier","src":"10583:10:64"}],"functionName":{"name":"mstore","nativeSrc":"10572:6:64","nodeType":"YulIdentifier","src":"10572:6:64"},"nativeSrc":"10572:22:64","nodeType":"YulFunctionCall","src":"10572:22:64"},"nativeSrc":"10572:22:64","nodeType":"YulExpressionStatement","src":"10572:22:64"}]},"name":"finalize_allocation","nativeSrc":"10319:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10348:6:64","nodeType":"YulTypedName","src":"10348:6:64","type":""},{"name":"size","nativeSrc":"10356:4:64","nodeType":"YulTypedName","src":"10356:4:64","type":""}],"src":"10319:281:64"},{"body":{"nativeSrc":"10647:88:64","nodeType":"YulBlock","src":"10647:88:64","statements":[{"nativeSrc":"10657:30:64","nodeType":"YulAssignment","src":"10657:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"10667:18:64","nodeType":"YulIdentifier","src":"10667:18:64"},"nativeSrc":"10667:20:64","nodeType":"YulFunctionCall","src":"10667:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"10657:6:64","nodeType":"YulIdentifier","src":"10657:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"10716:6:64","nodeType":"YulIdentifier","src":"10716:6:64"},{"name":"size","nativeSrc":"10724:4:64","nodeType":"YulIdentifier","src":"10724:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"10696:19:64","nodeType":"YulIdentifier","src":"10696:19:64"},"nativeSrc":"10696:33:64","nodeType":"YulFunctionCall","src":"10696:33:64"},"nativeSrc":"10696:33:64","nodeType":"YulExpressionStatement","src":"10696:33:64"}]},"name":"allocate_memory","nativeSrc":"10606:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"10631:4:64","nodeType":"YulTypedName","src":"10631:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"10640:6:64","nodeType":"YulTypedName","src":"10640:6:64","type":""}],"src":"10606:129:64"},{"body":{"nativeSrc":"10830:28:64","nodeType":"YulBlock","src":"10830:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10847:1:64","nodeType":"YulLiteral","src":"10847:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10850:1:64","nodeType":"YulLiteral","src":"10850:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10840:6:64","nodeType":"YulIdentifier","src":"10840:6:64"},"nativeSrc":"10840:12:64","nodeType":"YulFunctionCall","src":"10840:12:64"},"nativeSrc":"10840:12:64","nodeType":"YulExpressionStatement","src":"10840:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10741:117:64","nodeType":"YulFunctionDefinition","src":"10741:117:64"},{"body":{"nativeSrc":"10921:56:64","nodeType":"YulBlock","src":"10921:56:64","statements":[{"body":{"nativeSrc":"10955:16:64","nodeType":"YulBlock","src":"10955:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10964:1:64","nodeType":"YulLiteral","src":"10964:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10967:1:64","nodeType":"YulLiteral","src":"10967:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10957:6:64","nodeType":"YulIdentifier","src":"10957:6:64"},"nativeSrc":"10957:12:64","nodeType":"YulFunctionCall","src":"10957:12:64"},"nativeSrc":"10957:12:64","nodeType":"YulExpressionStatement","src":"10957:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10944:5:64","nodeType":"YulIdentifier","src":"10944:5:64"},{"kind":"number","nativeSrc":"10951:1:64","nodeType":"YulLiteral","src":"10951:1:64","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"10941:2:64","nodeType":"YulIdentifier","src":"10941:2:64"},"nativeSrc":"10941:12:64","nodeType":"YulFunctionCall","src":"10941:12:64"}],"functionName":{"name":"iszero","nativeSrc":"10934:6:64","nodeType":"YulIdentifier","src":"10934:6:64"},"nativeSrc":"10934:20:64","nodeType":"YulFunctionCall","src":"10934:20:64"},"nativeSrc":"10931:40:64","nodeType":"YulIf","src":"10931:40:64"}]},"name":"validator_revert_t_enum$_Strategy_$16818","nativeSrc":"10864:113:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10914:5:64","nodeType":"YulTypedName","src":"10914:5:64","type":""}],"src":"10864:113:64"},{"body":{"nativeSrc":"11049:101:64","nodeType":"YulBlock","src":"11049:101:64","statements":[{"nativeSrc":"11059:29:64","nodeType":"YulAssignment","src":"11059:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"11081:6:64","nodeType":"YulIdentifier","src":"11081:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"11068:12:64","nodeType":"YulIdentifier","src":"11068:12:64"},"nativeSrc":"11068:20:64","nodeType":"YulFunctionCall","src":"11068:20:64"},"variableNames":[{"name":"value","nativeSrc":"11059:5:64","nodeType":"YulIdentifier","src":"11059:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11138:5:64","nodeType":"YulIdentifier","src":"11138:5:64"}],"functionName":{"name":"validator_revert_t_enum$_Strategy_$16818","nativeSrc":"11097:40:64","nodeType":"YulIdentifier","src":"11097:40:64"},"nativeSrc":"11097:47:64","nodeType":"YulFunctionCall","src":"11097:47:64"},"nativeSrc":"11097:47:64","nodeType":"YulExpressionStatement","src":"11097:47:64"}]},"name":"abi_decode_t_enum$_Strategy_$16818","nativeSrc":"10983:167:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11027:6:64","nodeType":"YulTypedName","src":"11027:6:64","type":""},{"name":"end","nativeSrc":"11035:3:64","nodeType":"YulTypedName","src":"11035:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11043:5:64","nodeType":"YulTypedName","src":"11043:5:64","type":""}],"src":"10983:167:64"},{"body":{"nativeSrc":"11282:838:64","nodeType":"YulBlock","src":"11282:838:64","statements":[{"body":{"nativeSrc":"11326:83:64","nodeType":"YulBlock","src":"11326:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"11328:77:64","nodeType":"YulIdentifier","src":"11328:77:64"},"nativeSrc":"11328:79:64","nodeType":"YulFunctionCall","src":"11328:79:64"},"nativeSrc":"11328:79:64","nodeType":"YulExpressionStatement","src":"11328:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"11303:3:64","nodeType":"YulIdentifier","src":"11303:3:64"},{"name":"headStart","nativeSrc":"11308:9:64","nodeType":"YulIdentifier","src":"11308:9:64"}],"functionName":{"name":"sub","nativeSrc":"11299:3:64","nodeType":"YulIdentifier","src":"11299:3:64"},"nativeSrc":"11299:19:64","nodeType":"YulFunctionCall","src":"11299:19:64"},{"kind":"number","nativeSrc":"11320:4:64","nodeType":"YulLiteral","src":"11320:4:64","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"11295:3:64","nodeType":"YulIdentifier","src":"11295:3:64"},"nativeSrc":"11295:30:64","nodeType":"YulFunctionCall","src":"11295:30:64"},"nativeSrc":"11292:117:64","nodeType":"YulIf","src":"11292:117:64"},{"nativeSrc":"11418:30:64","nodeType":"YulAssignment","src":"11418:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"11443:4:64","nodeType":"YulLiteral","src":"11443:4:64","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"11427:15:64","nodeType":"YulIdentifier","src":"11427:15:64"},"nativeSrc":"11427:21:64","nodeType":"YulFunctionCall","src":"11427:21:64"},"variableNames":[{"name":"value","nativeSrc":"11418:5:64","nodeType":"YulIdentifier","src":"11418:5:64"}]},{"nativeSrc":"11458:151:64","nodeType":"YulBlock","src":"11458:151:64","statements":[{"nativeSrc":"11494:15:64","nodeType":"YulVariableDeclaration","src":"11494:15:64","value":{"kind":"number","nativeSrc":"11508:1:64","nodeType":"YulLiteral","src":"11508:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11498:6:64","nodeType":"YulTypedName","src":"11498:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11534:5:64","nodeType":"YulIdentifier","src":"11534:5:64"},{"kind":"number","nativeSrc":"11541:4:64","nodeType":"YulLiteral","src":"11541:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"11530:3:64","nodeType":"YulIdentifier","src":"11530:3:64"},"nativeSrc":"11530:16:64","nodeType":"YulFunctionCall","src":"11530:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11573:9:64","nodeType":"YulIdentifier","src":"11573:9:64"},{"name":"offset","nativeSrc":"11584:6:64","nodeType":"YulIdentifier","src":"11584:6:64"}],"functionName":{"name":"add","nativeSrc":"11569:3:64","nodeType":"YulIdentifier","src":"11569:3:64"},"nativeSrc":"11569:22:64","nodeType":"YulFunctionCall","src":"11569:22:64"},{"name":"end","nativeSrc":"11593:3:64","nodeType":"YulIdentifier","src":"11593:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11548:20:64","nodeType":"YulIdentifier","src":"11548:20:64"},"nativeSrc":"11548:49:64","nodeType":"YulFunctionCall","src":"11548:49:64"}],"functionName":{"name":"mstore","nativeSrc":"11523:6:64","nodeType":"YulIdentifier","src":"11523:6:64"},"nativeSrc":"11523:75:64","nodeType":"YulFunctionCall","src":"11523:75:64"},"nativeSrc":"11523:75:64","nodeType":"YulExpressionStatement","src":"11523:75:64"}]},{"nativeSrc":"11619:169:64","nodeType":"YulBlock","src":"11619:169:64","statements":[{"nativeSrc":"11658:16:64","nodeType":"YulVariableDeclaration","src":"11658:16:64","value":{"kind":"number","nativeSrc":"11672:2:64","nodeType":"YulLiteral","src":"11672:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11662:6:64","nodeType":"YulTypedName","src":"11662:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11699:5:64","nodeType":"YulIdentifier","src":"11699:5:64"},{"kind":"number","nativeSrc":"11706:4:64","nodeType":"YulLiteral","src":"11706:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11695:3:64","nodeType":"YulIdentifier","src":"11695:3:64"},"nativeSrc":"11695:16:64","nodeType":"YulFunctionCall","src":"11695:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11752:9:64","nodeType":"YulIdentifier","src":"11752:9:64"},{"name":"offset","nativeSrc":"11763:6:64","nodeType":"YulIdentifier","src":"11763:6:64"}],"functionName":{"name":"add","nativeSrc":"11748:3:64","nodeType":"YulIdentifier","src":"11748:3:64"},"nativeSrc":"11748:22:64","nodeType":"YulFunctionCall","src":"11748:22:64"},{"name":"end","nativeSrc":"11772:3:64","nodeType":"YulIdentifier","src":"11772:3:64"}],"functionName":{"name":"abi_decode_t_enum$_Strategy_$16818","nativeSrc":"11713:34:64","nodeType":"YulIdentifier","src":"11713:34:64"},"nativeSrc":"11713:63:64","nodeType":"YulFunctionCall","src":"11713:63:64"}],"functionName":{"name":"mstore","nativeSrc":"11688:6:64","nodeType":"YulIdentifier","src":"11688:6:64"},"nativeSrc":"11688:89:64","nodeType":"YulFunctionCall","src":"11688:89:64"},"nativeSrc":"11688:89:64","nodeType":"YulExpressionStatement","src":"11688:89:64"}]},{"nativeSrc":"11798:153:64","nodeType":"YulBlock","src":"11798:153:64","statements":[{"nativeSrc":"11835:16:64","nodeType":"YulVariableDeclaration","src":"11835:16:64","value":{"kind":"number","nativeSrc":"11849:2:64","nodeType":"YulLiteral","src":"11849:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"11839:6:64","nodeType":"YulTypedName","src":"11839:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11876:5:64","nodeType":"YulIdentifier","src":"11876:5:64"},{"kind":"number","nativeSrc":"11883:4:64","nodeType":"YulLiteral","src":"11883:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11872:3:64","nodeType":"YulIdentifier","src":"11872:3:64"},"nativeSrc":"11872:16:64","nodeType":"YulFunctionCall","src":"11872:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11915:9:64","nodeType":"YulIdentifier","src":"11915:9:64"},{"name":"offset","nativeSrc":"11926:6:64","nodeType":"YulIdentifier","src":"11926:6:64"}],"functionName":{"name":"add","nativeSrc":"11911:3:64","nodeType":"YulIdentifier","src":"11911:3:64"},"nativeSrc":"11911:22:64","nodeType":"YulFunctionCall","src":"11911:22:64"},{"name":"end","nativeSrc":"11935:3:64","nodeType":"YulIdentifier","src":"11935:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"11890:20:64","nodeType":"YulIdentifier","src":"11890:20:64"},"nativeSrc":"11890:49:64","nodeType":"YulFunctionCall","src":"11890:49:64"}],"functionName":{"name":"mstore","nativeSrc":"11865:6:64","nodeType":"YulIdentifier","src":"11865:6:64"},"nativeSrc":"11865:75:64","nodeType":"YulFunctionCall","src":"11865:75:64"},"nativeSrc":"11865:75:64","nodeType":"YulExpressionStatement","src":"11865:75:64"}]},{"nativeSrc":"11961:152:64","nodeType":"YulBlock","src":"11961:152:64","statements":[{"nativeSrc":"11997:16:64","nodeType":"YulVariableDeclaration","src":"11997:16:64","value":{"kind":"number","nativeSrc":"12011:2:64","nodeType":"YulLiteral","src":"12011:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"12001:6:64","nodeType":"YulTypedName","src":"12001:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12038:5:64","nodeType":"YulIdentifier","src":"12038:5:64"},{"kind":"number","nativeSrc":"12045:4:64","nodeType":"YulLiteral","src":"12045:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"12034:3:64","nodeType":"YulIdentifier","src":"12034:3:64"},"nativeSrc":"12034:16:64","nodeType":"YulFunctionCall","src":"12034:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12077:9:64","nodeType":"YulIdentifier","src":"12077:9:64"},{"name":"offset","nativeSrc":"12088:6:64","nodeType":"YulIdentifier","src":"12088:6:64"}],"functionName":{"name":"add","nativeSrc":"12073:3:64","nodeType":"YulIdentifier","src":"12073:3:64"},"nativeSrc":"12073:22:64","nodeType":"YulFunctionCall","src":"12073:22:64"},{"name":"end","nativeSrc":"12097:3:64","nodeType":"YulIdentifier","src":"12097:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"12052:20:64","nodeType":"YulIdentifier","src":"12052:20:64"},"nativeSrc":"12052:49:64","nodeType":"YulFunctionCall","src":"12052:49:64"}],"functionName":{"name":"mstore","nativeSrc":"12027:6:64","nodeType":"YulIdentifier","src":"12027:6:64"},"nativeSrc":"12027:75:64","nodeType":"YulFunctionCall","src":"12027:75:64"},"nativeSrc":"12027:75:64","nodeType":"YulExpressionStatement","src":"12027:75:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$17882_memory_ptr","nativeSrc":"11197:923:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11257:9:64","nodeType":"YulTypedName","src":"11257:9:64","type":""},{"name":"end","nativeSrc":"11268:3:64","nodeType":"YulTypedName","src":"11268:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11276:5:64","nodeType":"YulTypedName","src":"11276:5:64","type":""}],"src":"11197:923:64"},{"body":{"nativeSrc":"12222:294:64","nodeType":"YulBlock","src":"12222:294:64","statements":[{"body":{"nativeSrc":"12269:83:64","nodeType":"YulBlock","src":"12269:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12271:77:64","nodeType":"YulIdentifier","src":"12271:77:64"},"nativeSrc":"12271:79:64","nodeType":"YulFunctionCall","src":"12271:79:64"},"nativeSrc":"12271:79:64","nodeType":"YulExpressionStatement","src":"12271:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12243:7:64","nodeType":"YulIdentifier","src":"12243:7:64"},{"name":"headStart","nativeSrc":"12252:9:64","nodeType":"YulIdentifier","src":"12252:9:64"}],"functionName":{"name":"sub","nativeSrc":"12239:3:64","nodeType":"YulIdentifier","src":"12239:3:64"},"nativeSrc":"12239:23:64","nodeType":"YulFunctionCall","src":"12239:23:64"},{"kind":"number","nativeSrc":"12264:3:64","nodeType":"YulLiteral","src":"12264:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"12235:3:64","nodeType":"YulIdentifier","src":"12235:3:64"},"nativeSrc":"12235:33:64","nodeType":"YulFunctionCall","src":"12235:33:64"},"nativeSrc":"12232:120:64","nodeType":"YulIf","src":"12232:120:64"},{"nativeSrc":"12362:147:64","nodeType":"YulBlock","src":"12362:147:64","statements":[{"nativeSrc":"12377:15:64","nodeType":"YulVariableDeclaration","src":"12377:15:64","value":{"kind":"number","nativeSrc":"12391:1:64","nodeType":"YulLiteral","src":"12391:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12381:6:64","nodeType":"YulTypedName","src":"12381:6:64","type":""}]},{"nativeSrc":"12406:93:64","nodeType":"YulAssignment","src":"12406:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12471:9:64","nodeType":"YulIdentifier","src":"12471:9:64"},{"name":"offset","nativeSrc":"12482:6:64","nodeType":"YulIdentifier","src":"12482:6:64"}],"functionName":{"name":"add","nativeSrc":"12467:3:64","nodeType":"YulIdentifier","src":"12467:3:64"},"nativeSrc":"12467:22:64","nodeType":"YulFunctionCall","src":"12467:22:64"},{"name":"dataEnd","nativeSrc":"12491:7:64","nodeType":"YulIdentifier","src":"12491:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$17882_memory_ptr","nativeSrc":"12416:50:64","nodeType":"YulIdentifier","src":"12416:50:64"},"nativeSrc":"12416:83:64","nodeType":"YulFunctionCall","src":"12416:83:64"},"variableNames":[{"name":"value0","nativeSrc":"12406:6:64","nodeType":"YulIdentifier","src":"12406:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$17882_memory_ptr","nativeSrc":"12126:390:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12192:9:64","nodeType":"YulTypedName","src":"12192:9:64","type":""},{"name":"dataEnd","nativeSrc":"12203:7:64","nodeType":"YulTypedName","src":"12203:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12215:6:64","nodeType":"YulTypedName","src":"12215:6:64","type":""}],"src":"12126:390:64"},{"body":{"nativeSrc":"12570:362:64","nodeType":"YulBlock","src":"12570:362:64","statements":[{"nativeSrc":"12580:25:64","nodeType":"YulAssignment","src":"12580:25:64","value":{"arguments":[{"name":"x","nativeSrc":"12603:1:64","nodeType":"YulIdentifier","src":"12603:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12585:17:64","nodeType":"YulIdentifier","src":"12585:17:64"},"nativeSrc":"12585:20:64","nodeType":"YulFunctionCall","src":"12585:20:64"},"variableNames":[{"name":"x","nativeSrc":"12580:1:64","nodeType":"YulIdentifier","src":"12580:1:64"}]},{"nativeSrc":"12614:25:64","nodeType":"YulAssignment","src":"12614:25:64","value":{"arguments":[{"name":"y","nativeSrc":"12637:1:64","nodeType":"YulIdentifier","src":"12637:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12619:17:64","nodeType":"YulIdentifier","src":"12619:17:64"},"nativeSrc":"12619:20:64","nodeType":"YulFunctionCall","src":"12619:20:64"},"variableNames":[{"name":"y","nativeSrc":"12614:1:64","nodeType":"YulIdentifier","src":"12614:1:64"}]},{"nativeSrc":"12648:28:64","nodeType":"YulVariableDeclaration","src":"12648:28:64","value":{"arguments":[{"name":"x","nativeSrc":"12671:1:64","nodeType":"YulIdentifier","src":"12671:1:64"},{"name":"y","nativeSrc":"12674:1:64","nodeType":"YulIdentifier","src":"12674:1:64"}],"functionName":{"name":"mul","nativeSrc":"12667:3:64","nodeType":"YulIdentifier","src":"12667:3:64"},"nativeSrc":"12667:9:64","nodeType":"YulFunctionCall","src":"12667:9:64"},"variables":[{"name":"product_raw","nativeSrc":"12652:11:64","nodeType":"YulTypedName","src":"12652:11:64","type":""}]},{"nativeSrc":"12685:41:64","nodeType":"YulAssignment","src":"12685:41:64","value":{"arguments":[{"name":"product_raw","nativeSrc":"12714:11:64","nodeType":"YulIdentifier","src":"12714:11:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12696:17:64","nodeType":"YulIdentifier","src":"12696:17:64"},"nativeSrc":"12696:30:64","nodeType":"YulFunctionCall","src":"12696:30:64"},"variableNames":[{"name":"product","nativeSrc":"12685:7:64","nodeType":"YulIdentifier","src":"12685:7:64"}]},{"body":{"nativeSrc":"12903:22:64","nodeType":"YulBlock","src":"12903:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"12905:16:64","nodeType":"YulIdentifier","src":"12905:16:64"},"nativeSrc":"12905:18:64","nodeType":"YulFunctionCall","src":"12905:18:64"},"nativeSrc":"12905:18:64","nodeType":"YulExpressionStatement","src":"12905:18:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"12836:1:64","nodeType":"YulIdentifier","src":"12836:1:64"}],"functionName":{"name":"iszero","nativeSrc":"12829:6:64","nodeType":"YulIdentifier","src":"12829:6:64"},"nativeSrc":"12829:9:64","nodeType":"YulFunctionCall","src":"12829:9:64"},{"arguments":[{"name":"y","nativeSrc":"12859:1:64","nodeType":"YulIdentifier","src":"12859:1:64"},{"arguments":[{"name":"product","nativeSrc":"12866:7:64","nodeType":"YulIdentifier","src":"12866:7:64"},{"name":"x","nativeSrc":"12875:1:64","nodeType":"YulIdentifier","src":"12875:1:64"}],"functionName":{"name":"div","nativeSrc":"12862:3:64","nodeType":"YulIdentifier","src":"12862:3:64"},"nativeSrc":"12862:15:64","nodeType":"YulFunctionCall","src":"12862:15:64"}],"functionName":{"name":"eq","nativeSrc":"12856:2:64","nodeType":"YulIdentifier","src":"12856:2:64"},"nativeSrc":"12856:22:64","nodeType":"YulFunctionCall","src":"12856:22:64"}],"functionName":{"name":"or","nativeSrc":"12809:2:64","nodeType":"YulIdentifier","src":"12809:2:64"},"nativeSrc":"12809:83:64","nodeType":"YulFunctionCall","src":"12809:83:64"}],"functionName":{"name":"iszero","nativeSrc":"12789:6:64","nodeType":"YulIdentifier","src":"12789:6:64"},"nativeSrc":"12789:113:64","nodeType":"YulFunctionCall","src":"12789:113:64"},"nativeSrc":"12786:139:64","nodeType":"YulIf","src":"12786:139:64"}]},"name":"checked_mul_t_uint256","nativeSrc":"12522:410:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"12553:1:64","nodeType":"YulTypedName","src":"12553:1:64","type":""},{"name":"y","nativeSrc":"12556:1:64","nodeType":"YulTypedName","src":"12556:1:64","type":""}],"returnVariables":[{"name":"product","nativeSrc":"12562:7:64","nodeType":"YulTypedName","src":"12562:7:64","type":""}],"src":"12522:410:64"},{"body":{"nativeSrc":"13092:288:64","nodeType":"YulBlock","src":"13092:288:64","statements":[{"nativeSrc":"13102:26:64","nodeType":"YulAssignment","src":"13102:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"13114:9:64","nodeType":"YulIdentifier","src":"13114:9:64"},{"kind":"number","nativeSrc":"13125:2:64","nodeType":"YulLiteral","src":"13125:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"13110:3:64","nodeType":"YulIdentifier","src":"13110:3:64"},"nativeSrc":"13110:18:64","nodeType":"YulFunctionCall","src":"13110:18:64"},"variableNames":[{"name":"tail","nativeSrc":"13102:4:64","nodeType":"YulIdentifier","src":"13102:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"13182:6:64","nodeType":"YulIdentifier","src":"13182:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"13195:9:64","nodeType":"YulIdentifier","src":"13195:9:64"},{"kind":"number","nativeSrc":"13206:1:64","nodeType":"YulLiteral","src":"13206:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"13191:3:64","nodeType":"YulIdentifier","src":"13191:3:64"},"nativeSrc":"13191:17:64","nodeType":"YulFunctionCall","src":"13191:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"13138:43:64","nodeType":"YulIdentifier","src":"13138:43:64"},"nativeSrc":"13138:71:64","nodeType":"YulFunctionCall","src":"13138:71:64"},"nativeSrc":"13138:71:64","nodeType":"YulExpressionStatement","src":"13138:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"13263:6:64","nodeType":"YulIdentifier","src":"13263:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"13276:9:64","nodeType":"YulIdentifier","src":"13276:9:64"},{"kind":"number","nativeSrc":"13287:2:64","nodeType":"YulLiteral","src":"13287:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"13272:3:64","nodeType":"YulIdentifier","src":"13272:3:64"},"nativeSrc":"13272:18:64","nodeType":"YulFunctionCall","src":"13272:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13219:43:64","nodeType":"YulIdentifier","src":"13219:43:64"},"nativeSrc":"13219:72:64","nodeType":"YulFunctionCall","src":"13219:72:64"},"nativeSrc":"13219:72:64","nodeType":"YulExpressionStatement","src":"13219:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"13345:6:64","nodeType":"YulIdentifier","src":"13345:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"13358:9:64","nodeType":"YulIdentifier","src":"13358:9:64"},{"kind":"number","nativeSrc":"13369:2:64","nodeType":"YulLiteral","src":"13369:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13354:3:64","nodeType":"YulIdentifier","src":"13354:3:64"},"nativeSrc":"13354:18:64","nodeType":"YulFunctionCall","src":"13354:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"13301:43:64","nodeType":"YulIdentifier","src":"13301:43:64"},"nativeSrc":"13301:72:64","nodeType":"YulFunctionCall","src":"13301:72:64"},"nativeSrc":"13301:72:64","nodeType":"YulExpressionStatement","src":"13301:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"12938:442:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13048:9:64","nodeType":"YulTypedName","src":"13048:9:64","type":""},{"name":"value2","nativeSrc":"13060:6:64","nodeType":"YulTypedName","src":"13060:6:64","type":""},{"name":"value1","nativeSrc":"13068:6:64","nodeType":"YulTypedName","src":"13068:6:64","type":""},{"name":"value0","nativeSrc":"13076:6:64","nodeType":"YulTypedName","src":"13076:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"13087:4:64","nodeType":"YulTypedName","src":"13087:4:64","type":""}],"src":"12938:442:64"},{"body":{"nativeSrc":"13441:53:64","nodeType":"YulBlock","src":"13441:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13458:3:64","nodeType":"YulIdentifier","src":"13458:3:64"},{"arguments":[{"name":"value","nativeSrc":"13481:5:64","nodeType":"YulIdentifier","src":"13481:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13463:17:64","nodeType":"YulIdentifier","src":"13463:17:64"},"nativeSrc":"13463:24:64","nodeType":"YulFunctionCall","src":"13463:24:64"}],"functionName":{"name":"mstore","nativeSrc":"13451:6:64","nodeType":"YulIdentifier","src":"13451:6:64"},"nativeSrc":"13451:37:64","nodeType":"YulFunctionCall","src":"13451:37:64"},"nativeSrc":"13451:37:64","nodeType":"YulExpressionStatement","src":"13451:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13386:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13429:5:64","nodeType":"YulTypedName","src":"13429:5:64","type":""},{"name":"pos","nativeSrc":"13436:3:64","nodeType":"YulTypedName","src":"13436:3:64","type":""}],"src":"13386:108:64"},{"body":{"nativeSrc":"13704:219:64","nodeType":"YulBlock","src":"13704:219:64","statements":[{"nativeSrc":"13714:26:64","nodeType":"YulVariableDeclaration","src":"13714:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"13730:3:64","nodeType":"YulIdentifier","src":"13730:3:64"},{"kind":"number","nativeSrc":"13735:4:64","nodeType":"YulLiteral","src":"13735:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13726:3:64","nodeType":"YulIdentifier","src":"13726:3:64"},"nativeSrc":"13726:14:64","nodeType":"YulFunctionCall","src":"13726:14:64"},"variables":[{"name":"tail","nativeSrc":"13718:4:64","nodeType":"YulTypedName","src":"13718:4:64","type":""}]},{"nativeSrc":"13750:166:64","nodeType":"YulBlock","src":"13750:166:64","statements":[{"nativeSrc":"13787:43:64","nodeType":"YulVariableDeclaration","src":"13787:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13817:5:64","nodeType":"YulIdentifier","src":"13817:5:64"},{"kind":"number","nativeSrc":"13824:4:64","nodeType":"YulLiteral","src":"13824:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13813:3:64","nodeType":"YulIdentifier","src":"13813:3:64"},"nativeSrc":"13813:16:64","nodeType":"YulFunctionCall","src":"13813:16:64"}],"functionName":{"name":"mload","nativeSrc":"13807:5:64","nodeType":"YulIdentifier","src":"13807:5:64"},"nativeSrc":"13807:23:64","nodeType":"YulFunctionCall","src":"13807:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"13791:12:64","nodeType":"YulTypedName","src":"13791:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13877:12:64","nodeType":"YulIdentifier","src":"13877:12:64"},{"arguments":[{"name":"pos","nativeSrc":"13895:3:64","nodeType":"YulIdentifier","src":"13895:3:64"},{"kind":"number","nativeSrc":"13900:4:64","nodeType":"YulLiteral","src":"13900:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13891:3:64","nodeType":"YulIdentifier","src":"13891:3:64"},"nativeSrc":"13891:14:64","nodeType":"YulFunctionCall","src":"13891:14:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13843:33:64","nodeType":"YulIdentifier","src":"13843:33:64"},"nativeSrc":"13843:63:64","nodeType":"YulFunctionCall","src":"13843:63:64"},"nativeSrc":"13843:63:64","nodeType":"YulExpressionStatement","src":"13843:63:64"}]}]},"name":"abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack","nativeSrc":"13570:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13691:5:64","nodeType":"YulTypedName","src":"13691:5:64","type":""},{"name":"pos","nativeSrc":"13698:3:64","nodeType":"YulTypedName","src":"13698:3:64","type":""}],"src":"13570:353:64"},{"body":{"nativeSrc":"14095:192:64","nodeType":"YulBlock","src":"14095:192:64","statements":[{"nativeSrc":"14105:26:64","nodeType":"YulAssignment","src":"14105:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"14117:9:64","nodeType":"YulIdentifier","src":"14117:9:64"},{"kind":"number","nativeSrc":"14128:2:64","nodeType":"YulLiteral","src":"14128:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14113:3:64","nodeType":"YulIdentifier","src":"14113:3:64"},"nativeSrc":"14113:18:64","nodeType":"YulFunctionCall","src":"14113:18:64"},"variableNames":[{"name":"tail","nativeSrc":"14105:4:64","nodeType":"YulIdentifier","src":"14105:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14253:6:64","nodeType":"YulIdentifier","src":"14253:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"14266:9:64","nodeType":"YulIdentifier","src":"14266:9:64"},{"kind":"number","nativeSrc":"14277:1:64","nodeType":"YulLiteral","src":"14277:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14262:3:64","nodeType":"YulIdentifier","src":"14262:3:64"},"nativeSrc":"14262:17:64","nodeType":"YulFunctionCall","src":"14262:17:64"}],"functionName":{"name":"abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack","nativeSrc":"14141:111:64","nodeType":"YulIdentifier","src":"14141:111:64"},"nativeSrc":"14141:139:64","nodeType":"YulFunctionCall","src":"14141:139:64"},"nativeSrc":"14141:139:64","nodeType":"YulExpressionStatement","src":"14141:139:64"}]},"name":"abi_encode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr__to_t_struct$_FungiblePayload_$15465_memory_ptr__fromStack_reversed","nativeSrc":"13929:358:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14067:9:64","nodeType":"YulTypedName","src":"14067:9:64","type":""},{"name":"value0","nativeSrc":"14079:6:64","nodeType":"YulTypedName","src":"14079:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14090:4:64","nodeType":"YulTypedName","src":"14090:4:64","type":""}],"src":"13929:358:64"},{"body":{"nativeSrc":"14351:62:64","nodeType":"YulBlock","src":"14351:62:64","statements":[{"body":{"nativeSrc":"14385:22:64","nodeType":"YulBlock","src":"14385:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"14387:16:64","nodeType":"YulIdentifier","src":"14387:16:64"},"nativeSrc":"14387:18:64","nodeType":"YulFunctionCall","src":"14387:18:64"},"nativeSrc":"14387:18:64","nodeType":"YulExpressionStatement","src":"14387:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14374:5:64","nodeType":"YulIdentifier","src":"14374:5:64"},{"kind":"number","nativeSrc":"14381:1:64","nodeType":"YulLiteral","src":"14381:1:64","type":"","value":"3"}],"functionName":{"name":"lt","nativeSrc":"14371:2:64","nodeType":"YulIdentifier","src":"14371:2:64"},"nativeSrc":"14371:12:64","nodeType":"YulFunctionCall","src":"14371:12:64"}],"functionName":{"name":"iszero","nativeSrc":"14364:6:64","nodeType":"YulIdentifier","src":"14364:6:64"},"nativeSrc":"14364:20:64","nodeType":"YulFunctionCall","src":"14364:20:64"},"nativeSrc":"14361:46:64","nodeType":"YulIf","src":"14361:46:64"}]},"name":"validator_assert_t_enum$_AssetType_$15450","nativeSrc":"14293:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14344:5:64","nodeType":"YulTypedName","src":"14344:5:64","type":""}],"src":"14293:120:64"},{"body":{"nativeSrc":"14479:81:64","nodeType":"YulBlock","src":"14479:81:64","statements":[{"nativeSrc":"14489:16:64","nodeType":"YulAssignment","src":"14489:16:64","value":{"name":"value","nativeSrc":"14500:5:64","nodeType":"YulIdentifier","src":"14500:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"14489:7:64","nodeType":"YulIdentifier","src":"14489:7:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"14548:5:64","nodeType":"YulIdentifier","src":"14548:5:64"}],"functionName":{"name":"validator_assert_t_enum$_AssetType_$15450","nativeSrc":"14506:41:64","nodeType":"YulIdentifier","src":"14506:41:64"},"nativeSrc":"14506:48:64","nodeType":"YulFunctionCall","src":"14506:48:64"},"nativeSrc":"14506:48:64","nodeType":"YulExpressionStatement","src":"14506:48:64"}]},"name":"cleanup_t_enum$_AssetType_$15450","nativeSrc":"14419:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14461:5:64","nodeType":"YulTypedName","src":"14461:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"14471:7:64","nodeType":"YulTypedName","src":"14471:7:64","type":""}],"src":"14419:141:64"},{"body":{"nativeSrc":"14639:68:64","nodeType":"YulBlock","src":"14639:68:64","statements":[{"nativeSrc":"14649:52:64","nodeType":"YulAssignment","src":"14649:52:64","value":{"arguments":[{"name":"value","nativeSrc":"14695:5:64","nodeType":"YulIdentifier","src":"14695:5:64"}],"functionName":{"name":"cleanup_t_enum$_AssetType_$15450","nativeSrc":"14662:32:64","nodeType":"YulIdentifier","src":"14662:32:64"},"nativeSrc":"14662:39:64","nodeType":"YulFunctionCall","src":"14662:39:64"},"variableNames":[{"name":"converted","nativeSrc":"14649:9:64","nodeType":"YulIdentifier","src":"14649:9:64"}]}]},"name":"convert_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"14566:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14619:5:64","nodeType":"YulTypedName","src":"14619:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"14629:9:64","nodeType":"YulTypedName","src":"14629:9:64","type":""}],"src":"14566:141:64"},{"body":{"nativeSrc":"14781:79:64","nodeType":"YulBlock","src":"14781:79:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14798:3:64","nodeType":"YulIdentifier","src":"14798:3:64"},{"arguments":[{"name":"value","nativeSrc":"14847:5:64","nodeType":"YulIdentifier","src":"14847:5:64"}],"functionName":{"name":"convert_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"14803:43:64","nodeType":"YulIdentifier","src":"14803:43:64"},"nativeSrc":"14803:50:64","nodeType":"YulFunctionCall","src":"14803:50:64"}],"functionName":{"name":"mstore","nativeSrc":"14791:6:64","nodeType":"YulIdentifier","src":"14791:6:64"},"nativeSrc":"14791:63:64","nodeType":"YulFunctionCall","src":"14791:63:64"},"nativeSrc":"14791:63:64","nodeType":"YulExpressionStatement","src":"14791:63:64"}]},"name":"abi_encode_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"14713:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14769:5:64","nodeType":"YulTypedName","src":"14769:5:64","type":""},{"name":"pos","nativeSrc":"14776:3:64","nodeType":"YulTypedName","src":"14776:3:64","type":""}],"src":"14713:147:64"},{"body":{"nativeSrc":"14921:53:64","nodeType":"YulBlock","src":"14921:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14938:3:64","nodeType":"YulIdentifier","src":"14938:3:64"},{"arguments":[{"name":"value","nativeSrc":"14961:5:64","nodeType":"YulIdentifier","src":"14961:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"14943:17:64","nodeType":"YulIdentifier","src":"14943:17:64"},"nativeSrc":"14943:24:64","nodeType":"YulFunctionCall","src":"14943:24:64"}],"functionName":{"name":"mstore","nativeSrc":"14931:6:64","nodeType":"YulIdentifier","src":"14931:6:64"},"nativeSrc":"14931:37:64","nodeType":"YulFunctionCall","src":"14931:37:64"},"nativeSrc":"14931:37:64","nodeType":"YulExpressionStatement","src":"14931:37:64"}]},"name":"abi_encode_t_address_to_t_address","nativeSrc":"14866:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14909:5:64","nodeType":"YulTypedName","src":"14909:5:64","type":""},{"name":"pos","nativeSrc":"14916:3:64","nodeType":"YulTypedName","src":"14916:3:64","type":""}],"src":"14866:108:64"},{"body":{"nativeSrc":"15065:73:64","nodeType":"YulBlock","src":"15065:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15082:3:64","nodeType":"YulIdentifier","src":"15082:3:64"},{"name":"length","nativeSrc":"15087:6:64","nodeType":"YulIdentifier","src":"15087:6:64"}],"functionName":{"name":"mstore","nativeSrc":"15075:6:64","nodeType":"YulIdentifier","src":"15075:6:64"},"nativeSrc":"15075:19:64","nodeType":"YulFunctionCall","src":"15075:19:64"},"nativeSrc":"15075:19:64","nodeType":"YulExpressionStatement","src":"15075:19:64"},{"nativeSrc":"15103:29:64","nodeType":"YulAssignment","src":"15103:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"15122:3:64","nodeType":"YulIdentifier","src":"15122:3:64"},{"kind":"number","nativeSrc":"15127:4:64","nodeType":"YulLiteral","src":"15127:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15118:3:64","nodeType":"YulIdentifier","src":"15118:3:64"},"nativeSrc":"15118:14:64","nodeType":"YulFunctionCall","src":"15118:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"15103:11:64","nodeType":"YulIdentifier","src":"15103:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"14980:158:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15037:3:64","nodeType":"YulTypedName","src":"15037:3:64","type":""},{"name":"length","nativeSrc":"15042:6:64","nodeType":"YulTypedName","src":"15042:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"15053:11:64","nodeType":"YulTypedName","src":"15053:11:64","type":""}],"src":"14980:158:64"},{"body":{"nativeSrc":"15224:273:64","nodeType":"YulBlock","src":"15224:273:64","statements":[{"nativeSrc":"15234:52:64","nodeType":"YulVariableDeclaration","src":"15234:52:64","value":{"arguments":[{"name":"value","nativeSrc":"15280:5:64","nodeType":"YulIdentifier","src":"15280:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"15248:31:64","nodeType":"YulIdentifier","src":"15248:31:64"},"nativeSrc":"15248:38:64","nodeType":"YulFunctionCall","src":"15248:38:64"},"variables":[{"name":"length","nativeSrc":"15238:6:64","nodeType":"YulTypedName","src":"15238:6:64","type":""}]},{"nativeSrc":"15295:67:64","nodeType":"YulAssignment","src":"15295:67:64","value":{"arguments":[{"name":"pos","nativeSrc":"15350:3:64","nodeType":"YulIdentifier","src":"15350:3:64"},{"name":"length","nativeSrc":"15355:6:64","nodeType":"YulIdentifier","src":"15355:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr","nativeSrc":"15302:47:64","nodeType":"YulIdentifier","src":"15302:47:64"},"nativeSrc":"15302:60:64","nodeType":"YulFunctionCall","src":"15302:60:64"},"variableNames":[{"name":"pos","nativeSrc":"15295:3:64","nodeType":"YulIdentifier","src":"15295:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15410:5:64","nodeType":"YulIdentifier","src":"15410:5:64"},{"kind":"number","nativeSrc":"15417:4:64","nodeType":"YulLiteral","src":"15417:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15406:3:64","nodeType":"YulIdentifier","src":"15406:3:64"},"nativeSrc":"15406:16:64","nodeType":"YulFunctionCall","src":"15406:16:64"},{"name":"pos","nativeSrc":"15424:3:64","nodeType":"YulIdentifier","src":"15424:3:64"},{"name":"length","nativeSrc":"15429:6:64","nodeType":"YulIdentifier","src":"15429:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"15371:34:64","nodeType":"YulIdentifier","src":"15371:34:64"},"nativeSrc":"15371:65:64","nodeType":"YulFunctionCall","src":"15371:65:64"},"nativeSrc":"15371:65:64","nodeType":"YulExpressionStatement","src":"15371:65:64"},{"nativeSrc":"15445:46:64","nodeType":"YulAssignment","src":"15445:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"15456:3:64","nodeType":"YulIdentifier","src":"15456:3:64"},{"arguments":[{"name":"length","nativeSrc":"15483:6:64","nodeType":"YulIdentifier","src":"15483:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"15461:21:64","nodeType":"YulIdentifier","src":"15461:21:64"},"nativeSrc":"15461:29:64","nodeType":"YulFunctionCall","src":"15461:29:64"}],"functionName":{"name":"add","nativeSrc":"15452:3:64","nodeType":"YulIdentifier","src":"15452:3:64"},"nativeSrc":"15452:39:64","nodeType":"YulFunctionCall","src":"15452:39:64"},"variableNames":[{"name":"end","nativeSrc":"15445:3:64","nodeType":"YulIdentifier","src":"15445:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"15144:353:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15205:5:64","nodeType":"YulTypedName","src":"15205:5:64","type":""},{"name":"pos","nativeSrc":"15212:3:64","nodeType":"YulTypedName","src":"15212:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15220:3:64","nodeType":"YulTypedName","src":"15220:3:64","type":""}],"src":"15144:353:64"},{"body":{"nativeSrc":"15687:849:64","nodeType":"YulBlock","src":"15687:849:64","statements":[{"nativeSrc":"15697:26:64","nodeType":"YulVariableDeclaration","src":"15697:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"15713:3:64","nodeType":"YulIdentifier","src":"15713:3:64"},{"kind":"number","nativeSrc":"15718:4:64","nodeType":"YulLiteral","src":"15718:4:64","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"15709:3:64","nodeType":"YulIdentifier","src":"15709:3:64"},"nativeSrc":"15709:14:64","nodeType":"YulFunctionCall","src":"15709:14:64"},"variables":[{"name":"tail","nativeSrc":"15701:4:64","nodeType":"YulTypedName","src":"15701:4:64","type":""}]},{"nativeSrc":"15733:182:64","nodeType":"YulBlock","src":"15733:182:64","statements":[{"nativeSrc":"15773:43:64","nodeType":"YulVariableDeclaration","src":"15773:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15803:5:64","nodeType":"YulIdentifier","src":"15803:5:64"},{"kind":"number","nativeSrc":"15810:4:64","nodeType":"YulLiteral","src":"15810:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15799:3:64","nodeType":"YulIdentifier","src":"15799:3:64"},"nativeSrc":"15799:16:64","nodeType":"YulFunctionCall","src":"15799:16:64"}],"functionName":{"name":"mload","nativeSrc":"15793:5:64","nodeType":"YulIdentifier","src":"15793:5:64"},"nativeSrc":"15793:23:64","nodeType":"YulFunctionCall","src":"15793:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"15777:12:64","nodeType":"YulTypedName","src":"15777:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"15876:12:64","nodeType":"YulIdentifier","src":"15876:12:64"},{"arguments":[{"name":"pos","nativeSrc":"15894:3:64","nodeType":"YulIdentifier","src":"15894:3:64"},{"kind":"number","nativeSrc":"15899:4:64","nodeType":"YulLiteral","src":"15899:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"15890:3:64","nodeType":"YulIdentifier","src":"15890:3:64"},"nativeSrc":"15890:14:64","nodeType":"YulFunctionCall","src":"15890:14:64"}],"functionName":{"name":"abi_encode_t_enum$_AssetType_$15450_to_t_uint8","nativeSrc":"15829:46:64","nodeType":"YulIdentifier","src":"15829:46:64"},"nativeSrc":"15829:76:64","nodeType":"YulFunctionCall","src":"15829:76:64"},"nativeSrc":"15829:76:64","nodeType":"YulExpressionStatement","src":"15829:76:64"}]},{"nativeSrc":"15925:165:64","nodeType":"YulBlock","src":"15925:165:64","statements":[{"nativeSrc":"15961:43:64","nodeType":"YulVariableDeclaration","src":"15961:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15991:5:64","nodeType":"YulIdentifier","src":"15991:5:64"},{"kind":"number","nativeSrc":"15998:4:64","nodeType":"YulLiteral","src":"15998:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15987:3:64","nodeType":"YulIdentifier","src":"15987:3:64"},"nativeSrc":"15987:16:64","nodeType":"YulFunctionCall","src":"15987:16:64"}],"functionName":{"name":"mload","nativeSrc":"15981:5:64","nodeType":"YulIdentifier","src":"15981:5:64"},"nativeSrc":"15981:23:64","nodeType":"YulFunctionCall","src":"15981:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"15965:12:64","nodeType":"YulTypedName","src":"15965:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"16051:12:64","nodeType":"YulIdentifier","src":"16051:12:64"},{"arguments":[{"name":"pos","nativeSrc":"16069:3:64","nodeType":"YulIdentifier","src":"16069:3:64"},{"kind":"number","nativeSrc":"16074:4:64","nodeType":"YulLiteral","src":"16074:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16065:3:64","nodeType":"YulIdentifier","src":"16065:3:64"},"nativeSrc":"16065:14:64","nodeType":"YulFunctionCall","src":"16065:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"16017:33:64","nodeType":"YulIdentifier","src":"16017:33:64"},"nativeSrc":"16017:63:64","nodeType":"YulFunctionCall","src":"16017:63:64"},"nativeSrc":"16017:63:64","nodeType":"YulExpressionStatement","src":"16017:63:64"}]},{"nativeSrc":"16100:166:64","nodeType":"YulBlock","src":"16100:166:64","statements":[{"nativeSrc":"16137:43:64","nodeType":"YulVariableDeclaration","src":"16137:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16167:5:64","nodeType":"YulIdentifier","src":"16167:5:64"},{"kind":"number","nativeSrc":"16174:4:64","nodeType":"YulLiteral","src":"16174:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16163:3:64","nodeType":"YulIdentifier","src":"16163:3:64"},"nativeSrc":"16163:16:64","nodeType":"YulFunctionCall","src":"16163:16:64"}],"functionName":{"name":"mload","nativeSrc":"16157:5:64","nodeType":"YulIdentifier","src":"16157:5:64"},"nativeSrc":"16157:23:64","nodeType":"YulFunctionCall","src":"16157:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"16141:12:64","nodeType":"YulTypedName","src":"16141:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"16227:12:64","nodeType":"YulIdentifier","src":"16227:12:64"},{"arguments":[{"name":"pos","nativeSrc":"16245:3:64","nodeType":"YulIdentifier","src":"16245:3:64"},{"kind":"number","nativeSrc":"16250:4:64","nodeType":"YulLiteral","src":"16250:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"16241:3:64","nodeType":"YulIdentifier","src":"16241:3:64"},"nativeSrc":"16241:14:64","nodeType":"YulFunctionCall","src":"16241:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"16193:33:64","nodeType":"YulIdentifier","src":"16193:33:64"},"nativeSrc":"16193:63:64","nodeType":"YulFunctionCall","src":"16193:63:64"},"nativeSrc":"16193:63:64","nodeType":"YulExpressionStatement","src":"16193:63:64"}]},{"nativeSrc":"16276:233:64","nodeType":"YulBlock","src":"16276:233:64","statements":[{"nativeSrc":"16311:43:64","nodeType":"YulVariableDeclaration","src":"16311:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16341:5:64","nodeType":"YulIdentifier","src":"16341:5:64"},{"kind":"number","nativeSrc":"16348:4:64","nodeType":"YulLiteral","src":"16348:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16337:3:64","nodeType":"YulIdentifier","src":"16337:3:64"},"nativeSrc":"16337:16:64","nodeType":"YulFunctionCall","src":"16337:16:64"}],"functionName":{"name":"mload","nativeSrc":"16331:5:64","nodeType":"YulIdentifier","src":"16331:5:64"},"nativeSrc":"16331:23:64","nodeType":"YulFunctionCall","src":"16331:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"16315:12:64","nodeType":"YulTypedName","src":"16315:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16379:3:64","nodeType":"YulIdentifier","src":"16379:3:64"},{"kind":"number","nativeSrc":"16384:4:64","nodeType":"YulLiteral","src":"16384:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"16375:3:64","nodeType":"YulIdentifier","src":"16375:3:64"},"nativeSrc":"16375:14:64","nodeType":"YulFunctionCall","src":"16375:14:64"},{"arguments":[{"name":"tail","nativeSrc":"16395:4:64","nodeType":"YulIdentifier","src":"16395:4:64"},{"name":"pos","nativeSrc":"16401:3:64","nodeType":"YulIdentifier","src":"16401:3:64"}],"functionName":{"name":"sub","nativeSrc":"16391:3:64","nodeType":"YulIdentifier","src":"16391:3:64"},"nativeSrc":"16391:14:64","nodeType":"YulFunctionCall","src":"16391:14:64"}],"functionName":{"name":"mstore","nativeSrc":"16368:6:64","nodeType":"YulIdentifier","src":"16368:6:64"},"nativeSrc":"16368:38:64","nodeType":"YulFunctionCall","src":"16368:38:64"},"nativeSrc":"16368:38:64","nodeType":"YulExpressionStatement","src":"16368:38:64"},{"nativeSrc":"16419:79:64","nodeType":"YulAssignment","src":"16419:79:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"16479:12:64","nodeType":"YulIdentifier","src":"16479:12:64"},{"name":"tail","nativeSrc":"16493:4:64","nodeType":"YulIdentifier","src":"16493:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"16427:51:64","nodeType":"YulIdentifier","src":"16427:51:64"},"nativeSrc":"16427:71:64","nodeType":"YulFunctionCall","src":"16427:71:64"},"variableNames":[{"name":"tail","nativeSrc":"16419:4:64","nodeType":"YulIdentifier","src":"16419:4:64"}]}]},{"nativeSrc":"16519:11:64","nodeType":"YulAssignment","src":"16519:11:64","value":{"name":"tail","nativeSrc":"16526:4:64","nodeType":"YulIdentifier","src":"16526:4:64"},"variableNames":[{"name":"end","nativeSrc":"16519:3:64","nodeType":"YulIdentifier","src":"16519:3:64"}]}]},"name":"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack","nativeSrc":"15559:977:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15666:5:64","nodeType":"YulTypedName","src":"15666:5:64","type":""},{"name":"pos","nativeSrc":"15673:3:64","nodeType":"YulTypedName","src":"15673:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15682:3:64","nodeType":"YulTypedName","src":"15682:3:64","type":""}],"src":"15559:977:64"},{"body":{"nativeSrc":"16694:229:64","nodeType":"YulBlock","src":"16694:229:64","statements":[{"nativeSrc":"16704:26:64","nodeType":"YulAssignment","src":"16704:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"16716:9:64","nodeType":"YulIdentifier","src":"16716:9:64"},{"kind":"number","nativeSrc":"16727:2:64","nodeType":"YulLiteral","src":"16727:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"16712:3:64","nodeType":"YulIdentifier","src":"16712:3:64"},"nativeSrc":"16712:18:64","nodeType":"YulFunctionCall","src":"16712:18:64"},"variableNames":[{"name":"tail","nativeSrc":"16704:4:64","nodeType":"YulIdentifier","src":"16704:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16751:9:64","nodeType":"YulIdentifier","src":"16751:9:64"},{"kind":"number","nativeSrc":"16762:1:64","nodeType":"YulLiteral","src":"16762:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"16747:3:64","nodeType":"YulIdentifier","src":"16747:3:64"},"nativeSrc":"16747:17:64","nodeType":"YulFunctionCall","src":"16747:17:64"},{"arguments":[{"name":"tail","nativeSrc":"16770:4:64","nodeType":"YulIdentifier","src":"16770:4:64"},{"name":"headStart","nativeSrc":"16776:9:64","nodeType":"YulIdentifier","src":"16776:9:64"}],"functionName":{"name":"sub","nativeSrc":"16766:3:64","nodeType":"YulIdentifier","src":"16766:3:64"},"nativeSrc":"16766:20:64","nodeType":"YulFunctionCall","src":"16766:20:64"}],"functionName":{"name":"mstore","nativeSrc":"16740:6:64","nodeType":"YulIdentifier","src":"16740:6:64"},"nativeSrc":"16740:47:64","nodeType":"YulFunctionCall","src":"16740:47:64"},"nativeSrc":"16740:47:64","nodeType":"YulExpressionStatement","src":"16740:47:64"},{"nativeSrc":"16796:120:64","nodeType":"YulAssignment","src":"16796:120:64","value":{"arguments":[{"name":"value0","nativeSrc":"16902:6:64","nodeType":"YulIdentifier","src":"16902:6:64"},{"name":"tail","nativeSrc":"16911:4:64","nodeType":"YulIdentifier","src":"16911:4:64"}],"functionName":{"name":"abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack","nativeSrc":"16804:97:64","nodeType":"YulIdentifier","src":"16804:97:64"},"nativeSrc":"16804:112:64","nodeType":"YulFunctionCall","src":"16804:112:64"},"variableNames":[{"name":"tail","nativeSrc":"16796:4:64","nodeType":"YulIdentifier","src":"16796:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed","nativeSrc":"16542:381:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16666:9:64","nodeType":"YulTypedName","src":"16666:9:64","type":""},{"name":"value0","nativeSrc":"16678:6:64","nodeType":"YulTypedName","src":"16678:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"16689:4:64","nodeType":"YulTypedName","src":"16689:4:64","type":""}],"src":"16542:381:64"},{"body":{"nativeSrc":"17018:28:64","nodeType":"YulBlock","src":"17018:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17035:1:64","nodeType":"YulLiteral","src":"17035:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17038:1:64","nodeType":"YulLiteral","src":"17038:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"17028:6:64","nodeType":"YulIdentifier","src":"17028:6:64"},"nativeSrc":"17028:12:64","nodeType":"YulFunctionCall","src":"17028:12:64"},"nativeSrc":"17028:12:64","nodeType":"YulExpressionStatement","src":"17028:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"16929:117:64","nodeType":"YulFunctionDefinition","src":"16929:117:64"},{"body":{"nativeSrc":"17118:241:64","nodeType":"YulBlock","src":"17118:241:64","statements":[{"body":{"nativeSrc":"17223:22:64","nodeType":"YulBlock","src":"17223:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"17225:16:64","nodeType":"YulIdentifier","src":"17225:16:64"},"nativeSrc":"17225:18:64","nodeType":"YulFunctionCall","src":"17225:18:64"},"nativeSrc":"17225:18:64","nodeType":"YulExpressionStatement","src":"17225:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"17195:6:64","nodeType":"YulIdentifier","src":"17195:6:64"},{"kind":"number","nativeSrc":"17203:18:64","nodeType":"YulLiteral","src":"17203:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17192:2:64","nodeType":"YulIdentifier","src":"17192:2:64"},"nativeSrc":"17192:30:64","nodeType":"YulFunctionCall","src":"17192:30:64"},"nativeSrc":"17189:56:64","nodeType":"YulIf","src":"17189:56:64"},{"nativeSrc":"17255:37:64","nodeType":"YulAssignment","src":"17255:37:64","value":{"arguments":[{"name":"length","nativeSrc":"17285:6:64","nodeType":"YulIdentifier","src":"17285:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17263:21:64","nodeType":"YulIdentifier","src":"17263:21:64"},"nativeSrc":"17263:29:64","nodeType":"YulFunctionCall","src":"17263:29:64"},"variableNames":[{"name":"size","nativeSrc":"17255:4:64","nodeType":"YulIdentifier","src":"17255:4:64"}]},{"nativeSrc":"17329:23:64","nodeType":"YulAssignment","src":"17329:23:64","value":{"arguments":[{"name":"size","nativeSrc":"17341:4:64","nodeType":"YulIdentifier","src":"17341:4:64"},{"kind":"number","nativeSrc":"17347:4:64","nodeType":"YulLiteral","src":"17347:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17337:3:64","nodeType":"YulIdentifier","src":"17337:3:64"},"nativeSrc":"17337:15:64","nodeType":"YulFunctionCall","src":"17337:15:64"},"variableNames":[{"name":"size","nativeSrc":"17329:4:64","nodeType":"YulIdentifier","src":"17329:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17052:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"17102:6:64","nodeType":"YulTypedName","src":"17102:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"17113:4:64","nodeType":"YulTypedName","src":"17113:4:64","type":""}],"src":"17052:307:64"},{"body":{"nativeSrc":"17429:84:64","nodeType":"YulBlock","src":"17429:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"17453:3:64","nodeType":"YulIdentifier","src":"17453:3:64"},{"name":"src","nativeSrc":"17458:3:64","nodeType":"YulIdentifier","src":"17458:3:64"},{"name":"length","nativeSrc":"17463:6:64","nodeType":"YulIdentifier","src":"17463:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"17440:12:64","nodeType":"YulIdentifier","src":"17440:12:64"},"nativeSrc":"17440:30:64","nodeType":"YulFunctionCall","src":"17440:30:64"},"nativeSrc":"17440:30:64","nodeType":"YulExpressionStatement","src":"17440:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17490:3:64","nodeType":"YulIdentifier","src":"17490:3:64"},{"name":"length","nativeSrc":"17495:6:64","nodeType":"YulIdentifier","src":"17495:6:64"}],"functionName":{"name":"add","nativeSrc":"17486:3:64","nodeType":"YulIdentifier","src":"17486:3:64"},"nativeSrc":"17486:16:64","nodeType":"YulFunctionCall","src":"17486:16:64"},{"kind":"number","nativeSrc":"17504:1:64","nodeType":"YulLiteral","src":"17504:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17479:6:64","nodeType":"YulIdentifier","src":"17479:6:64"},"nativeSrc":"17479:27:64","nodeType":"YulFunctionCall","src":"17479:27:64"},"nativeSrc":"17479:27:64","nodeType":"YulExpressionStatement","src":"17479:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17365:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17411:3:64","nodeType":"YulTypedName","src":"17411:3:64","type":""},{"name":"dst","nativeSrc":"17416:3:64","nodeType":"YulTypedName","src":"17416:3:64","type":""},{"name":"length","nativeSrc":"17421:6:64","nodeType":"YulTypedName","src":"17421:6:64","type":""}],"src":"17365:148:64"},{"body":{"nativeSrc":"17602:340:64","nodeType":"YulBlock","src":"17602:340:64","statements":[{"nativeSrc":"17612:74:64","nodeType":"YulAssignment","src":"17612:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17678:6:64","nodeType":"YulIdentifier","src":"17678:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"17637:40:64","nodeType":"YulIdentifier","src":"17637:40:64"},"nativeSrc":"17637:48:64","nodeType":"YulFunctionCall","src":"17637:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"17621:15:64","nodeType":"YulIdentifier","src":"17621:15:64"},"nativeSrc":"17621:65:64","nodeType":"YulFunctionCall","src":"17621:65:64"},"variableNames":[{"name":"array","nativeSrc":"17612:5:64","nodeType":"YulIdentifier","src":"17612:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"17702:5:64","nodeType":"YulIdentifier","src":"17702:5:64"},{"name":"length","nativeSrc":"17709:6:64","nodeType":"YulIdentifier","src":"17709:6:64"}],"functionName":{"name":"mstore","nativeSrc":"17695:6:64","nodeType":"YulIdentifier","src":"17695:6:64"},"nativeSrc":"17695:21:64","nodeType":"YulFunctionCall","src":"17695:21:64"},"nativeSrc":"17695:21:64","nodeType":"YulExpressionStatement","src":"17695:21:64"},{"nativeSrc":"17725:27:64","nodeType":"YulVariableDeclaration","src":"17725:27:64","value":{"arguments":[{"name":"array","nativeSrc":"17740:5:64","nodeType":"YulIdentifier","src":"17740:5:64"},{"kind":"number","nativeSrc":"17747:4:64","nodeType":"YulLiteral","src":"17747:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17736:3:64","nodeType":"YulIdentifier","src":"17736:3:64"},"nativeSrc":"17736:16:64","nodeType":"YulFunctionCall","src":"17736:16:64"},"variables":[{"name":"dst","nativeSrc":"17729:3:64","nodeType":"YulTypedName","src":"17729:3:64","type":""}]},{"body":{"nativeSrc":"17790:83:64","nodeType":"YulBlock","src":"17790:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"17792:77:64","nodeType":"YulIdentifier","src":"17792:77:64"},"nativeSrc":"17792:79:64","nodeType":"YulFunctionCall","src":"17792:79:64"},"nativeSrc":"17792:79:64","nodeType":"YulExpressionStatement","src":"17792:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17771:3:64","nodeType":"YulIdentifier","src":"17771:3:64"},{"name":"length","nativeSrc":"17776:6:64","nodeType":"YulIdentifier","src":"17776:6:64"}],"functionName":{"name":"add","nativeSrc":"17767:3:64","nodeType":"YulIdentifier","src":"17767:3:64"},"nativeSrc":"17767:16:64","nodeType":"YulFunctionCall","src":"17767:16:64"},{"name":"end","nativeSrc":"17785:3:64","nodeType":"YulIdentifier","src":"17785:3:64"}],"functionName":{"name":"gt","nativeSrc":"17764:2:64","nodeType":"YulIdentifier","src":"17764:2:64"},"nativeSrc":"17764:25:64","nodeType":"YulFunctionCall","src":"17764:25:64"},"nativeSrc":"17761:112:64","nodeType":"YulIf","src":"17761:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"17919:3:64","nodeType":"YulIdentifier","src":"17919:3:64"},{"name":"dst","nativeSrc":"17924:3:64","nodeType":"YulIdentifier","src":"17924:3:64"},{"name":"length","nativeSrc":"17929:6:64","nodeType":"YulIdentifier","src":"17929:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"17882:36:64","nodeType":"YulIdentifier","src":"17882:36:64"},"nativeSrc":"17882:54:64","nodeType":"YulFunctionCall","src":"17882:54:64"},"nativeSrc":"17882:54:64","nodeType":"YulExpressionStatement","src":"17882:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"17519:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17575:3:64","nodeType":"YulTypedName","src":"17575:3:64","type":""},{"name":"length","nativeSrc":"17580:6:64","nodeType":"YulTypedName","src":"17580:6:64","type":""},{"name":"end","nativeSrc":"17588:3:64","nodeType":"YulTypedName","src":"17588:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"17596:5:64","nodeType":"YulTypedName","src":"17596:5:64","type":""}],"src":"17519:423:64"},{"body":{"nativeSrc":"18022:277:64","nodeType":"YulBlock","src":"18022:277:64","statements":[{"body":{"nativeSrc":"18071:83:64","nodeType":"YulBlock","src":"18071:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"18073:77:64","nodeType":"YulIdentifier","src":"18073:77:64"},"nativeSrc":"18073:79:64","nodeType":"YulFunctionCall","src":"18073:79:64"},"nativeSrc":"18073:79:64","nodeType":"YulExpressionStatement","src":"18073:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18050:6:64","nodeType":"YulIdentifier","src":"18050:6:64"},{"kind":"number","nativeSrc":"18058:4:64","nodeType":"YulLiteral","src":"18058:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"18046:3:64","nodeType":"YulIdentifier","src":"18046:3:64"},"nativeSrc":"18046:17:64","nodeType":"YulFunctionCall","src":"18046:17:64"},{"name":"end","nativeSrc":"18065:3:64","nodeType":"YulIdentifier","src":"18065:3:64"}],"functionName":{"name":"slt","nativeSrc":"18042:3:64","nodeType":"YulIdentifier","src":"18042:3:64"},"nativeSrc":"18042:27:64","nodeType":"YulFunctionCall","src":"18042:27:64"}],"functionName":{"name":"iszero","nativeSrc":"18035:6:64","nodeType":"YulIdentifier","src":"18035:6:64"},"nativeSrc":"18035:35:64","nodeType":"YulFunctionCall","src":"18035:35:64"},"nativeSrc":"18032:122:64","nodeType":"YulIf","src":"18032:122:64"},{"nativeSrc":"18163:34:64","nodeType":"YulVariableDeclaration","src":"18163:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"18190:6:64","nodeType":"YulIdentifier","src":"18190:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"18177:12:64","nodeType":"YulIdentifier","src":"18177:12:64"},"nativeSrc":"18177:20:64","nodeType":"YulFunctionCall","src":"18177:20:64"},"variables":[{"name":"length","nativeSrc":"18167:6:64","nodeType":"YulTypedName","src":"18167:6:64","type":""}]},{"nativeSrc":"18206:87:64","nodeType":"YulAssignment","src":"18206:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"18266:6:64","nodeType":"YulIdentifier","src":"18266:6:64"},{"kind":"number","nativeSrc":"18274:4:64","nodeType":"YulLiteral","src":"18274:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18262:3:64","nodeType":"YulIdentifier","src":"18262:3:64"},"nativeSrc":"18262:17:64","nodeType":"YulFunctionCall","src":"18262:17:64"},{"name":"length","nativeSrc":"18281:6:64","nodeType":"YulIdentifier","src":"18281:6:64"},{"name":"end","nativeSrc":"18289:3:64","nodeType":"YulIdentifier","src":"18289:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"18215:46:64","nodeType":"YulIdentifier","src":"18215:46:64"},"nativeSrc":"18215:78:64","nodeType":"YulFunctionCall","src":"18215:78:64"},"variableNames":[{"name":"array","nativeSrc":"18206:5:64","nodeType":"YulIdentifier","src":"18206:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17961:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"18000:6:64","nodeType":"YulTypedName","src":"18000:6:64","type":""},{"name":"end","nativeSrc":"18008:3:64","nodeType":"YulTypedName","src":"18008:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"18016:5:64","nodeType":"YulTypedName","src":"18016:5:64","type":""}],"src":"17961:338:64"},{"body":{"nativeSrc":"18428:665:64","nodeType":"YulBlock","src":"18428:665:64","statements":[{"body":{"nativeSrc":"18472:83:64","nodeType":"YulBlock","src":"18472:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"18474:77:64","nodeType":"YulIdentifier","src":"18474:77:64"},"nativeSrc":"18474:79:64","nodeType":"YulFunctionCall","src":"18474:79:64"},"nativeSrc":"18474:79:64","nodeType":"YulExpressionStatement","src":"18474:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"18449:3:64","nodeType":"YulIdentifier","src":"18449:3:64"},{"name":"headStart","nativeSrc":"18454:9:64","nodeType":"YulIdentifier","src":"18454:9:64"}],"functionName":{"name":"sub","nativeSrc":"18445:3:64","nodeType":"YulIdentifier","src":"18445:3:64"},"nativeSrc":"18445:19:64","nodeType":"YulFunctionCall","src":"18445:19:64"},{"kind":"number","nativeSrc":"18466:4:64","nodeType":"YulLiteral","src":"18466:4:64","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"18441:3:64","nodeType":"YulIdentifier","src":"18441:3:64"},"nativeSrc":"18441:30:64","nodeType":"YulFunctionCall","src":"18441:30:64"},"nativeSrc":"18438:117:64","nodeType":"YulIf","src":"18438:117:64"},{"nativeSrc":"18564:30:64","nodeType":"YulAssignment","src":"18564:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"18589:4:64","nodeType":"YulLiteral","src":"18589:4:64","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"18573:15:64","nodeType":"YulIdentifier","src":"18573:15:64"},"nativeSrc":"18573:21:64","nodeType":"YulFunctionCall","src":"18573:21:64"},"variableNames":[{"name":"value","nativeSrc":"18564:5:64","nodeType":"YulIdentifier","src":"18564:5:64"}]},{"nativeSrc":"18604:152:64","nodeType":"YulBlock","src":"18604:152:64","statements":[{"nativeSrc":"18641:15:64","nodeType":"YulVariableDeclaration","src":"18641:15:64","value":{"kind":"number","nativeSrc":"18655:1:64","nodeType":"YulLiteral","src":"18655:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"18645:6:64","nodeType":"YulTypedName","src":"18645:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18681:5:64","nodeType":"YulIdentifier","src":"18681:5:64"},{"kind":"number","nativeSrc":"18688:4:64","nodeType":"YulLiteral","src":"18688:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18677:3:64","nodeType":"YulIdentifier","src":"18677:3:64"},"nativeSrc":"18677:16:64","nodeType":"YulFunctionCall","src":"18677:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18720:9:64","nodeType":"YulIdentifier","src":"18720:9:64"},{"name":"offset","nativeSrc":"18731:6:64","nodeType":"YulIdentifier","src":"18731:6:64"}],"functionName":{"name":"add","nativeSrc":"18716:3:64","nodeType":"YulIdentifier","src":"18716:3:64"},"nativeSrc":"18716:22:64","nodeType":"YulFunctionCall","src":"18716:22:64"},{"name":"end","nativeSrc":"18740:3:64","nodeType":"YulIdentifier","src":"18740:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"18695:20:64","nodeType":"YulIdentifier","src":"18695:20:64"},"nativeSrc":"18695:49:64","nodeType":"YulFunctionCall","src":"18695:49:64"}],"functionName":{"name":"mstore","nativeSrc":"18670:6:64","nodeType":"YulIdentifier","src":"18670:6:64"},"nativeSrc":"18670:75:64","nodeType":"YulFunctionCall","src":"18670:75:64"},"nativeSrc":"18670:75:64","nodeType":"YulExpressionStatement","src":"18670:75:64"}]},{"nativeSrc":"18766:320:64","nodeType":"YulBlock","src":"18766:320:64","statements":[{"nativeSrc":"18801:46:64","nodeType":"YulVariableDeclaration","src":"18801:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"18832:9:64","nodeType":"YulIdentifier","src":"18832:9:64"},{"kind":"number","nativeSrc":"18843:2:64","nodeType":"YulLiteral","src":"18843:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18828:3:64","nodeType":"YulIdentifier","src":"18828:3:64"},"nativeSrc":"18828:18:64","nodeType":"YulFunctionCall","src":"18828:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"18815:12:64","nodeType":"YulIdentifier","src":"18815:12:64"},"nativeSrc":"18815:32:64","nodeType":"YulFunctionCall","src":"18815:32:64"},"variables":[{"name":"offset","nativeSrc":"18805:6:64","nodeType":"YulTypedName","src":"18805:6:64","type":""}]},{"body":{"nativeSrc":"18894:83:64","nodeType":"YulBlock","src":"18894:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"18896:77:64","nodeType":"YulIdentifier","src":"18896:77:64"},"nativeSrc":"18896:79:64","nodeType":"YulFunctionCall","src":"18896:79:64"},"nativeSrc":"18896:79:64","nodeType":"YulExpressionStatement","src":"18896:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"18866:6:64","nodeType":"YulIdentifier","src":"18866:6:64"},{"kind":"number","nativeSrc":"18874:18:64","nodeType":"YulLiteral","src":"18874:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"18863:2:64","nodeType":"YulIdentifier","src":"18863:2:64"},"nativeSrc":"18863:30:64","nodeType":"YulFunctionCall","src":"18863:30:64"},"nativeSrc":"18860:117:64","nodeType":"YulIf","src":"18860:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19002:5:64","nodeType":"YulIdentifier","src":"19002:5:64"},{"kind":"number","nativeSrc":"19009:4:64","nodeType":"YulLiteral","src":"19009:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18998:3:64","nodeType":"YulIdentifier","src":"18998:3:64"},"nativeSrc":"18998:16:64","nodeType":"YulFunctionCall","src":"18998:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19050:9:64","nodeType":"YulIdentifier","src":"19050:9:64"},{"name":"offset","nativeSrc":"19061:6:64","nodeType":"YulIdentifier","src":"19061:6:64"}],"functionName":{"name":"add","nativeSrc":"19046:3:64","nodeType":"YulIdentifier","src":"19046:3:64"},"nativeSrc":"19046:22:64","nodeType":"YulFunctionCall","src":"19046:22:64"},{"name":"end","nativeSrc":"19070:3:64","nodeType":"YulIdentifier","src":"19070:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"19016:29:64","nodeType":"YulIdentifier","src":"19016:29:64"},"nativeSrc":"19016:58:64","nodeType":"YulFunctionCall","src":"19016:58:64"}],"functionName":{"name":"mstore","nativeSrc":"18991:6:64","nodeType":"YulIdentifier","src":"18991:6:64"},"nativeSrc":"18991:84:64","nodeType":"YulFunctionCall","src":"18991:84:64"},"nativeSrc":"18991:84:64","nodeType":"YulExpressionStatement","src":"18991:84:64"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"18342:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18403:9:64","nodeType":"YulTypedName","src":"18403:9:64","type":""},{"name":"end","nativeSrc":"18414:3:64","nodeType":"YulTypedName","src":"18414:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"18422:5:64","nodeType":"YulTypedName","src":"18422:5:64","type":""}],"src":"18342:751:64"},{"body":{"nativeSrc":"19196:454:64","nodeType":"YulBlock","src":"19196:454:64","statements":[{"body":{"nativeSrc":"19242:83:64","nodeType":"YulBlock","src":"19242:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"19244:77:64","nodeType":"YulIdentifier","src":"19244:77:64"},"nativeSrc":"19244:79:64","nodeType":"YulFunctionCall","src":"19244:79:64"},"nativeSrc":"19244:79:64","nodeType":"YulExpressionStatement","src":"19244:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"19217:7:64","nodeType":"YulIdentifier","src":"19217:7:64"},{"name":"headStart","nativeSrc":"19226:9:64","nodeType":"YulIdentifier","src":"19226:9:64"}],"functionName":{"name":"sub","nativeSrc":"19213:3:64","nodeType":"YulIdentifier","src":"19213:3:64"},"nativeSrc":"19213:23:64","nodeType":"YulFunctionCall","src":"19213:23:64"},{"kind":"number","nativeSrc":"19238:2:64","nodeType":"YulLiteral","src":"19238:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"19209:3:64","nodeType":"YulIdentifier","src":"19209:3:64"},"nativeSrc":"19209:32:64","nodeType":"YulFunctionCall","src":"19209:32:64"},"nativeSrc":"19206:119:64","nodeType":"YulIf","src":"19206:119:64"},{"nativeSrc":"19335:308:64","nodeType":"YulBlock","src":"19335:308:64","statements":[{"nativeSrc":"19350:45:64","nodeType":"YulVariableDeclaration","src":"19350:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19381:9:64","nodeType":"YulIdentifier","src":"19381:9:64"},{"kind":"number","nativeSrc":"19392:1:64","nodeType":"YulLiteral","src":"19392:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19377:3:64","nodeType":"YulIdentifier","src":"19377:3:64"},"nativeSrc":"19377:17:64","nodeType":"YulFunctionCall","src":"19377:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"19364:12:64","nodeType":"YulIdentifier","src":"19364:12:64"},"nativeSrc":"19364:31:64","nodeType":"YulFunctionCall","src":"19364:31:64"},"variables":[{"name":"offset","nativeSrc":"19354:6:64","nodeType":"YulTypedName","src":"19354:6:64","type":""}]},{"body":{"nativeSrc":"19442:83:64","nodeType":"YulBlock","src":"19442:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"19444:77:64","nodeType":"YulIdentifier","src":"19444:77:64"},"nativeSrc":"19444:79:64","nodeType":"YulFunctionCall","src":"19444:79:64"},"nativeSrc":"19444:79:64","nodeType":"YulExpressionStatement","src":"19444:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"19414:6:64","nodeType":"YulIdentifier","src":"19414:6:64"},{"kind":"number","nativeSrc":"19422:18:64","nodeType":"YulLiteral","src":"19422:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"19411:2:64","nodeType":"YulIdentifier","src":"19411:2:64"},"nativeSrc":"19411:30:64","nodeType":"YulFunctionCall","src":"19411:30:64"},"nativeSrc":"19408:117:64","nodeType":"YulIf","src":"19408:117:64"},{"nativeSrc":"19539:94:64","nodeType":"YulAssignment","src":"19539:94:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19605:9:64","nodeType":"YulIdentifier","src":"19605:9:64"},{"name":"offset","nativeSrc":"19616:6:64","nodeType":"YulIdentifier","src":"19616:6:64"}],"functionName":{"name":"add","nativeSrc":"19601:3:64","nodeType":"YulIdentifier","src":"19601:3:64"},"nativeSrc":"19601:22:64","nodeType":"YulFunctionCall","src":"19601:22:64"},{"name":"dataEnd","nativeSrc":"19625:7:64","nodeType":"YulIdentifier","src":"19625:7:64"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"19549:51:64","nodeType":"YulIdentifier","src":"19549:51:64"},"nativeSrc":"19549:84:64","nodeType":"YulFunctionCall","src":"19549:84:64"},"variableNames":[{"name":"value0","nativeSrc":"19539:6:64","nodeType":"YulIdentifier","src":"19539:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"19099:551:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19166:9:64","nodeType":"YulTypedName","src":"19166:9:64","type":""},{"name":"dataEnd","nativeSrc":"19177:7:64","nodeType":"YulTypedName","src":"19177:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"19189:6:64","nodeType":"YulTypedName","src":"19189:6:64","type":""}],"src":"19099:551:64"},{"body":{"nativeSrc":"19699:190:64","nodeType":"YulBlock","src":"19699:190:64","statements":[{"nativeSrc":"19709:33:64","nodeType":"YulAssignment","src":"19709:33:64","value":{"arguments":[{"name":"value","nativeSrc":"19736:5:64","nodeType":"YulIdentifier","src":"19736:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19718:17:64","nodeType":"YulIdentifier","src":"19718:17:64"},"nativeSrc":"19718:24:64","nodeType":"YulFunctionCall","src":"19718:24:64"},"variableNames":[{"name":"value","nativeSrc":"19709:5:64","nodeType":"YulIdentifier","src":"19709:5:64"}]},{"body":{"nativeSrc":"19832:22:64","nodeType":"YulBlock","src":"19832:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19834:16:64","nodeType":"YulIdentifier","src":"19834:16:64"},"nativeSrc":"19834:18:64","nodeType":"YulFunctionCall","src":"19834:18:64"},"nativeSrc":"19834:18:64","nodeType":"YulExpressionStatement","src":"19834:18:64"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"19757:5:64","nodeType":"YulIdentifier","src":"19757:5:64"},{"kind":"number","nativeSrc":"19764:66:64","nodeType":"YulLiteral","src":"19764:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"19754:2:64","nodeType":"YulIdentifier","src":"19754:2:64"},"nativeSrc":"19754:77:64","nodeType":"YulFunctionCall","src":"19754:77:64"},"nativeSrc":"19751:103:64","nodeType":"YulIf","src":"19751:103:64"},{"nativeSrc":"19863:20:64","nodeType":"YulAssignment","src":"19863:20:64","value":{"arguments":[{"name":"value","nativeSrc":"19874:5:64","nodeType":"YulIdentifier","src":"19874:5:64"},{"kind":"number","nativeSrc":"19881:1:64","nodeType":"YulLiteral","src":"19881:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19870:3:64","nodeType":"YulIdentifier","src":"19870:3:64"},"nativeSrc":"19870:13:64","nodeType":"YulFunctionCall","src":"19870:13:64"},"variableNames":[{"name":"ret","nativeSrc":"19863:3:64","nodeType":"YulIdentifier","src":"19863:3:64"}]}]},"name":"increment_t_uint256","nativeSrc":"19656:233:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19685:5:64","nodeType":"YulTypedName","src":"19685:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"19695:3:64","nodeType":"YulTypedName","src":"19695:3:64","type":""}],"src":"19656:233:64"},{"body":{"nativeSrc":"19958:80:64","nodeType":"YulBlock","src":"19958:80:64","statements":[{"nativeSrc":"19968:22:64","nodeType":"YulAssignment","src":"19968:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"19983:6:64","nodeType":"YulIdentifier","src":"19983:6:64"}],"functionName":{"name":"mload","nativeSrc":"19977:5:64","nodeType":"YulIdentifier","src":"19977:5:64"},"nativeSrc":"19977:13:64","nodeType":"YulFunctionCall","src":"19977:13:64"},"variableNames":[{"name":"value","nativeSrc":"19968:5:64","nodeType":"YulIdentifier","src":"19968:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"20026:5:64","nodeType":"YulIdentifier","src":"20026:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"19999:26:64","nodeType":"YulIdentifier","src":"19999:26:64"},"nativeSrc":"19999:33:64","nodeType":"YulFunctionCall","src":"19999:33:64"},"nativeSrc":"19999:33:64","nodeType":"YulExpressionStatement","src":"19999:33:64"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"19895:143:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"19936:6:64","nodeType":"YulTypedName","src":"19936:6:64","type":""},{"name":"end","nativeSrc":"19944:3:64","nodeType":"YulTypedName","src":"19944:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"19952:5:64","nodeType":"YulTypedName","src":"19952:5:64","type":""}],"src":"19895:143:64"},{"body":{"nativeSrc":"20121:274:64","nodeType":"YulBlock","src":"20121:274:64","statements":[{"body":{"nativeSrc":"20167:83:64","nodeType":"YulBlock","src":"20167:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"20169:77:64","nodeType":"YulIdentifier","src":"20169:77:64"},"nativeSrc":"20169:79:64","nodeType":"YulFunctionCall","src":"20169:79:64"},"nativeSrc":"20169:79:64","nodeType":"YulExpressionStatement","src":"20169:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"20142:7:64","nodeType":"YulIdentifier","src":"20142:7:64"},{"name":"headStart","nativeSrc":"20151:9:64","nodeType":"YulIdentifier","src":"20151:9:64"}],"functionName":{"name":"sub","nativeSrc":"20138:3:64","nodeType":"YulIdentifier","src":"20138:3:64"},"nativeSrc":"20138:23:64","nodeType":"YulFunctionCall","src":"20138:23:64"},{"kind":"number","nativeSrc":"20163:2:64","nodeType":"YulLiteral","src":"20163:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"20134:3:64","nodeType":"YulIdentifier","src":"20134:3:64"},"nativeSrc":"20134:32:64","nodeType":"YulFunctionCall","src":"20134:32:64"},"nativeSrc":"20131:119:64","nodeType":"YulIf","src":"20131:119:64"},{"nativeSrc":"20260:128:64","nodeType":"YulBlock","src":"20260:128:64","statements":[{"nativeSrc":"20275:15:64","nodeType":"YulVariableDeclaration","src":"20275:15:64","value":{"kind":"number","nativeSrc":"20289:1:64","nodeType":"YulLiteral","src":"20289:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"20279:6:64","nodeType":"YulTypedName","src":"20279:6:64","type":""}]},{"nativeSrc":"20304:74:64","nodeType":"YulAssignment","src":"20304:74:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20350:9:64","nodeType":"YulIdentifier","src":"20350:9:64"},{"name":"offset","nativeSrc":"20361:6:64","nodeType":"YulIdentifier","src":"20361:6:64"}],"functionName":{"name":"add","nativeSrc":"20346:3:64","nodeType":"YulIdentifier","src":"20346:3:64"},"nativeSrc":"20346:22:64","nodeType":"YulFunctionCall","src":"20346:22:64"},{"name":"dataEnd","nativeSrc":"20370:7:64","nodeType":"YulIdentifier","src":"20370:7:64"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"20314:31:64","nodeType":"YulIdentifier","src":"20314:31:64"},"nativeSrc":"20314:64:64","nodeType":"YulFunctionCall","src":"20314:64:64"},"variableNames":[{"name":"value0","nativeSrc":"20304:6:64","nodeType":"YulIdentifier","src":"20304:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"20044:351:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20091:9:64","nodeType":"YulTypedName","src":"20091:9:64","type":""},{"name":"dataEnd","nativeSrc":"20102:7:64","nodeType":"YulTypedName","src":"20102:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"20114:6:64","nodeType":"YulTypedName","src":"20114:6:64","type":""}],"src":"20044:351:64"},{"body":{"nativeSrc":"20607:482:64","nodeType":"YulBlock","src":"20607:482:64","statements":[{"nativeSrc":"20617:26:64","nodeType":"YulVariableDeclaration","src":"20617:26:64","value":{"arguments":[{"name":"pos","nativeSrc":"20633:3:64","nodeType":"YulIdentifier","src":"20633:3:64"},{"kind":"number","nativeSrc":"20638:4:64","nodeType":"YulLiteral","src":"20638:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"20629:3:64","nodeType":"YulIdentifier","src":"20629:3:64"},"nativeSrc":"20629:14:64","nodeType":"YulFunctionCall","src":"20629:14:64"},"variables":[{"name":"tail","nativeSrc":"20621:4:64","nodeType":"YulTypedName","src":"20621:4:64","type":""}]},{"nativeSrc":"20653:166:64","nodeType":"YulBlock","src":"20653:166:64","statements":[{"nativeSrc":"20690:43:64","nodeType":"YulVariableDeclaration","src":"20690:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20720:5:64","nodeType":"YulIdentifier","src":"20720:5:64"},{"kind":"number","nativeSrc":"20727:4:64","nodeType":"YulLiteral","src":"20727:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20716:3:64","nodeType":"YulIdentifier","src":"20716:3:64"},"nativeSrc":"20716:16:64","nodeType":"YulFunctionCall","src":"20716:16:64"}],"functionName":{"name":"mload","nativeSrc":"20710:5:64","nodeType":"YulIdentifier","src":"20710:5:64"},"nativeSrc":"20710:23:64","nodeType":"YulFunctionCall","src":"20710:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"20694:12:64","nodeType":"YulTypedName","src":"20694:12:64","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"20780:12:64","nodeType":"YulIdentifier","src":"20780:12:64"},{"arguments":[{"name":"pos","nativeSrc":"20798:3:64","nodeType":"YulIdentifier","src":"20798:3:64"},{"kind":"number","nativeSrc":"20803:4:64","nodeType":"YulLiteral","src":"20803:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20794:3:64","nodeType":"YulIdentifier","src":"20794:3:64"},"nativeSrc":"20794:14:64","nodeType":"YulFunctionCall","src":"20794:14:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address","nativeSrc":"20746:33:64","nodeType":"YulIdentifier","src":"20746:33:64"},"nativeSrc":"20746:63:64","nodeType":"YulFunctionCall","src":"20746:63:64"},"nativeSrc":"20746:63:64","nodeType":"YulExpressionStatement","src":"20746:63:64"}]},{"nativeSrc":"20829:233:64","nodeType":"YulBlock","src":"20829:233:64","statements":[{"nativeSrc":"20864:43:64","nodeType":"YulVariableDeclaration","src":"20864:43:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20894:5:64","nodeType":"YulIdentifier","src":"20894:5:64"},{"kind":"number","nativeSrc":"20901:4:64","nodeType":"YulLiteral","src":"20901:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20890:3:64","nodeType":"YulIdentifier","src":"20890:3:64"},"nativeSrc":"20890:16:64","nodeType":"YulFunctionCall","src":"20890:16:64"}],"functionName":{"name":"mload","nativeSrc":"20884:5:64","nodeType":"YulIdentifier","src":"20884:5:64"},"nativeSrc":"20884:23:64","nodeType":"YulFunctionCall","src":"20884:23:64"},"variables":[{"name":"memberValue0","nativeSrc":"20868:12:64","nodeType":"YulTypedName","src":"20868:12:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20932:3:64","nodeType":"YulIdentifier","src":"20932:3:64"},{"kind":"number","nativeSrc":"20937:4:64","nodeType":"YulLiteral","src":"20937:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20928:3:64","nodeType":"YulIdentifier","src":"20928:3:64"},"nativeSrc":"20928:14:64","nodeType":"YulFunctionCall","src":"20928:14:64"},{"arguments":[{"name":"tail","nativeSrc":"20948:4:64","nodeType":"YulIdentifier","src":"20948:4:64"},{"name":"pos","nativeSrc":"20954:3:64","nodeType":"YulIdentifier","src":"20954:3:64"}],"functionName":{"name":"sub","nativeSrc":"20944:3:64","nodeType":"YulIdentifier","src":"20944:3:64"},"nativeSrc":"20944:14:64","nodeType":"YulFunctionCall","src":"20944:14:64"}],"functionName":{"name":"mstore","nativeSrc":"20921:6:64","nodeType":"YulIdentifier","src":"20921:6:64"},"nativeSrc":"20921:38:64","nodeType":"YulFunctionCall","src":"20921:38:64"},"nativeSrc":"20921:38:64","nodeType":"YulExpressionStatement","src":"20921:38:64"},{"nativeSrc":"20972:79:64","nodeType":"YulAssignment","src":"20972:79:64","value":{"arguments":[{"name":"memberValue0","nativeSrc":"21032:12:64","nodeType":"YulIdentifier","src":"21032:12:64"},{"name":"tail","nativeSrc":"21046:4:64","nodeType":"YulIdentifier","src":"21046:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr","nativeSrc":"20980:51:64","nodeType":"YulIdentifier","src":"20980:51:64"},"nativeSrc":"20980:71:64","nodeType":"YulFunctionCall","src":"20980:71:64"},"variableNames":[{"name":"tail","nativeSrc":"20972:4:64","nodeType":"YulIdentifier","src":"20972:4:64"}]}]},{"nativeSrc":"21072:11:64","nodeType":"YulAssignment","src":"21072:11:64","value":{"name":"tail","nativeSrc":"21079:4:64","nodeType":"YulIdentifier","src":"21079:4:64"},"variableNames":[{"name":"end","nativeSrc":"21072:3:64","nodeType":"YulIdentifier","src":"21072:3:64"}]}]},"name":"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack","nativeSrc":"20471:618:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20586:5:64","nodeType":"YulTypedName","src":"20586:5:64","type":""},{"name":"pos","nativeSrc":"20593:3:64","nodeType":"YulTypedName","src":"20593:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20602:3:64","nodeType":"YulTypedName","src":"20602:3:64","type":""}],"src":"20471:618:64"},{"body":{"nativeSrc":"21255:237:64","nodeType":"YulBlock","src":"21255:237:64","statements":[{"nativeSrc":"21265:26:64","nodeType":"YulAssignment","src":"21265:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"21277:9:64","nodeType":"YulIdentifier","src":"21277:9:64"},{"kind":"number","nativeSrc":"21288:2:64","nodeType":"YulLiteral","src":"21288:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21273:3:64","nodeType":"YulIdentifier","src":"21273:3:64"},"nativeSrc":"21273:18:64","nodeType":"YulFunctionCall","src":"21273:18:64"},"variableNames":[{"name":"tail","nativeSrc":"21265:4:64","nodeType":"YulIdentifier","src":"21265:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21312:9:64","nodeType":"YulIdentifier","src":"21312:9:64"},{"kind":"number","nativeSrc":"21323:1:64","nodeType":"YulLiteral","src":"21323:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21308:3:64","nodeType":"YulIdentifier","src":"21308:3:64"},"nativeSrc":"21308:17:64","nodeType":"YulFunctionCall","src":"21308:17:64"},{"arguments":[{"name":"tail","nativeSrc":"21331:4:64","nodeType":"YulIdentifier","src":"21331:4:64"},{"name":"headStart","nativeSrc":"21337:9:64","nodeType":"YulIdentifier","src":"21337:9:64"}],"functionName":{"name":"sub","nativeSrc":"21327:3:64","nodeType":"YulIdentifier","src":"21327:3:64"},"nativeSrc":"21327:20:64","nodeType":"YulFunctionCall","src":"21327:20:64"}],"functionName":{"name":"mstore","nativeSrc":"21301:6:64","nodeType":"YulIdentifier","src":"21301:6:64"},"nativeSrc":"21301:47:64","nodeType":"YulFunctionCall","src":"21301:47:64"},"nativeSrc":"21301:47:64","nodeType":"YulExpressionStatement","src":"21301:47:64"},{"nativeSrc":"21357:128:64","nodeType":"YulAssignment","src":"21357:128:64","value":{"arguments":[{"name":"value0","nativeSrc":"21471:6:64","nodeType":"YulIdentifier","src":"21471:6:64"},{"name":"tail","nativeSrc":"21480:4:64","nodeType":"YulIdentifier","src":"21480:4:64"}],"functionName":{"name":"abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack","nativeSrc":"21365:105:64","nodeType":"YulIdentifier","src":"21365:105:64"},"nativeSrc":"21365:120:64","nodeType":"YulFunctionCall","src":"21365:120:64"},"variableNames":[{"name":"tail","nativeSrc":"21357:4:64","nodeType":"YulIdentifier","src":"21357:4:64"}]}]},"name":"abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed","nativeSrc":"21095:397:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21227:9:64","nodeType":"YulTypedName","src":"21227:9:64","type":""},{"name":"value0","nativeSrc":"21239:6:64","nodeType":"YulTypedName","src":"21239:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21250:4:64","nodeType":"YulTypedName","src":"21250:4:64","type":""}],"src":"21095:397:64"},{"body":{"nativeSrc":"21642:275:64","nodeType":"YulBlock","src":"21642:275:64","statements":[{"nativeSrc":"21652:26:64","nodeType":"YulAssignment","src":"21652:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"21664:9:64","nodeType":"YulIdentifier","src":"21664:9:64"},{"kind":"number","nativeSrc":"21675:2:64","nodeType":"YulLiteral","src":"21675:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21660:3:64","nodeType":"YulIdentifier","src":"21660:3:64"},"nativeSrc":"21660:18:64","nodeType":"YulFunctionCall","src":"21660:18:64"},"variableNames":[{"name":"tail","nativeSrc":"21652:4:64","nodeType":"YulIdentifier","src":"21652:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21732:6:64","nodeType":"YulIdentifier","src":"21732:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21745:9:64","nodeType":"YulIdentifier","src":"21745:9:64"},{"kind":"number","nativeSrc":"21756:1:64","nodeType":"YulLiteral","src":"21756:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21741:3:64","nodeType":"YulIdentifier","src":"21741:3:64"},"nativeSrc":"21741:17:64","nodeType":"YulFunctionCall","src":"21741:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21688:43:64","nodeType":"YulIdentifier","src":"21688:43:64"},"nativeSrc":"21688:71:64","nodeType":"YulFunctionCall","src":"21688:71:64"},"nativeSrc":"21688:71:64","nodeType":"YulExpressionStatement","src":"21688:71:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21780:9:64","nodeType":"YulIdentifier","src":"21780:9:64"},{"kind":"number","nativeSrc":"21791:2:64","nodeType":"YulLiteral","src":"21791:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21776:3:64","nodeType":"YulIdentifier","src":"21776:3:64"},"nativeSrc":"21776:18:64","nodeType":"YulFunctionCall","src":"21776:18:64"},{"arguments":[{"name":"tail","nativeSrc":"21800:4:64","nodeType":"YulIdentifier","src":"21800:4:64"},{"name":"headStart","nativeSrc":"21806:9:64","nodeType":"YulIdentifier","src":"21806:9:64"}],"functionName":{"name":"sub","nativeSrc":"21796:3:64","nodeType":"YulIdentifier","src":"21796:3:64"},"nativeSrc":"21796:20:64","nodeType":"YulFunctionCall","src":"21796:20:64"}],"functionName":{"name":"mstore","nativeSrc":"21769:6:64","nodeType":"YulIdentifier","src":"21769:6:64"},"nativeSrc":"21769:48:64","nodeType":"YulFunctionCall","src":"21769:48:64"},"nativeSrc":"21769:48:64","nodeType":"YulExpressionStatement","src":"21769:48:64"},{"nativeSrc":"21826:84:64","nodeType":"YulAssignment","src":"21826:84:64","value":{"arguments":[{"name":"value1","nativeSrc":"21896:6:64","nodeType":"YulIdentifier","src":"21896:6:64"},{"name":"tail","nativeSrc":"21905:4:64","nodeType":"YulIdentifier","src":"21905:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"21834:61:64","nodeType":"YulIdentifier","src":"21834:61:64"},"nativeSrc":"21834:76:64","nodeType":"YulFunctionCall","src":"21834:76:64"},"variableNames":[{"name":"tail","nativeSrc":"21826:4:64","nodeType":"YulIdentifier","src":"21826:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"21498:419:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21606:9:64","nodeType":"YulTypedName","src":"21606:9:64","type":""},{"name":"value1","nativeSrc":"21618:6:64","nodeType":"YulTypedName","src":"21618:6:64","type":""},{"name":"value0","nativeSrc":"21626:6:64","nodeType":"YulTypedName","src":"21626:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21637:4:64","nodeType":"YulTypedName","src":"21637:4:64","type":""}],"src":"21498:419:64"},{"body":{"nativeSrc":"21965:143:64","nodeType":"YulBlock","src":"21965:143:64","statements":[{"nativeSrc":"21975:25:64","nodeType":"YulAssignment","src":"21975:25:64","value":{"arguments":[{"name":"x","nativeSrc":"21998:1:64","nodeType":"YulIdentifier","src":"21998:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21980:17:64","nodeType":"YulIdentifier","src":"21980:17:64"},"nativeSrc":"21980:20:64","nodeType":"YulFunctionCall","src":"21980:20:64"},"variableNames":[{"name":"x","nativeSrc":"21975:1:64","nodeType":"YulIdentifier","src":"21975:1:64"}]},{"nativeSrc":"22009:25:64","nodeType":"YulAssignment","src":"22009:25:64","value":{"arguments":[{"name":"y","nativeSrc":"22032:1:64","nodeType":"YulIdentifier","src":"22032:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22014:17:64","nodeType":"YulIdentifier","src":"22014:17:64"},"nativeSrc":"22014:20:64","nodeType":"YulFunctionCall","src":"22014:20:64"},"variableNames":[{"name":"y","nativeSrc":"22009:1:64","nodeType":"YulIdentifier","src":"22009:1:64"}]},{"body":{"nativeSrc":"22056:22:64","nodeType":"YulBlock","src":"22056:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"22058:16:64","nodeType":"YulIdentifier","src":"22058:16:64"},"nativeSrc":"22058:18:64","nodeType":"YulFunctionCall","src":"22058:18:64"},"nativeSrc":"22058:18:64","nodeType":"YulExpressionStatement","src":"22058:18:64"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"22053:1:64","nodeType":"YulIdentifier","src":"22053:1:64"}],"functionName":{"name":"iszero","nativeSrc":"22046:6:64","nodeType":"YulIdentifier","src":"22046:6:64"},"nativeSrc":"22046:9:64","nodeType":"YulFunctionCall","src":"22046:9:64"},"nativeSrc":"22043:35:64","nodeType":"YulIf","src":"22043:35:64"},{"nativeSrc":"22088:14:64","nodeType":"YulAssignment","src":"22088:14:64","value":{"arguments":[{"name":"x","nativeSrc":"22097:1:64","nodeType":"YulIdentifier","src":"22097:1:64"},{"name":"y","nativeSrc":"22100:1:64","nodeType":"YulIdentifier","src":"22100:1:64"}],"functionName":{"name":"div","nativeSrc":"22093:3:64","nodeType":"YulIdentifier","src":"22093:3:64"},"nativeSrc":"22093:9:64","nodeType":"YulFunctionCall","src":"22093:9:64"},"variableNames":[{"name":"r","nativeSrc":"22088:1:64","nodeType":"YulIdentifier","src":"22088:1:64"}]}]},"name":"checked_div_t_uint256","nativeSrc":"21923:185:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"21954:1:64","nodeType":"YulTypedName","src":"21954:1:64","type":""},{"name":"y","nativeSrc":"21957:1:64","nodeType":"YulTypedName","src":"21957:1:64","type":""}],"returnVariables":[{"name":"r","nativeSrc":"21963:1:64","nodeType":"YulTypedName","src":"21963:1:64","type":""}],"src":"21923:185:64"},{"body":{"nativeSrc":"22159:149:64","nodeType":"YulBlock","src":"22159:149:64","statements":[{"nativeSrc":"22169:25:64","nodeType":"YulAssignment","src":"22169:25:64","value":{"arguments":[{"name":"x","nativeSrc":"22192:1:64","nodeType":"YulIdentifier","src":"22192:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22174:17:64","nodeType":"YulIdentifier","src":"22174:17:64"},"nativeSrc":"22174:20:64","nodeType":"YulFunctionCall","src":"22174:20:64"},"variableNames":[{"name":"x","nativeSrc":"22169:1:64","nodeType":"YulIdentifier","src":"22169:1:64"}]},{"nativeSrc":"22203:25:64","nodeType":"YulAssignment","src":"22203:25:64","value":{"arguments":[{"name":"y","nativeSrc":"22226:1:64","nodeType":"YulIdentifier","src":"22226:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"22208:17:64","nodeType":"YulIdentifier","src":"22208:17:64"},"nativeSrc":"22208:20:64","nodeType":"YulFunctionCall","src":"22208:20:64"},"variableNames":[{"name":"y","nativeSrc":"22203:1:64","nodeType":"YulIdentifier","src":"22203:1:64"}]},{"nativeSrc":"22237:17:64","nodeType":"YulAssignment","src":"22237:17:64","value":{"arguments":[{"name":"x","nativeSrc":"22249:1:64","nodeType":"YulIdentifier","src":"22249:1:64"},{"name":"y","nativeSrc":"22252:1:64","nodeType":"YulIdentifier","src":"22252:1:64"}],"functionName":{"name":"sub","nativeSrc":"22245:3:64","nodeType":"YulIdentifier","src":"22245:3:64"},"nativeSrc":"22245:9:64","nodeType":"YulFunctionCall","src":"22245:9:64"},"variableNames":[{"name":"diff","nativeSrc":"22237:4:64","nodeType":"YulIdentifier","src":"22237:4:64"}]},{"body":{"nativeSrc":"22279:22:64","nodeType":"YulBlock","src":"22279:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"22281:16:64","nodeType":"YulIdentifier","src":"22281:16:64"},"nativeSrc":"22281:18:64","nodeType":"YulFunctionCall","src":"22281:18:64"},"nativeSrc":"22281:18:64","nodeType":"YulExpressionStatement","src":"22281:18:64"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"22270:4:64","nodeType":"YulIdentifier","src":"22270:4:64"},{"name":"x","nativeSrc":"22276:1:64","nodeType":"YulIdentifier","src":"22276:1:64"}],"functionName":{"name":"gt","nativeSrc":"22267:2:64","nodeType":"YulIdentifier","src":"22267:2:64"},"nativeSrc":"22267:11:64","nodeType":"YulFunctionCall","src":"22267:11:64"},"nativeSrc":"22264:37:64","nodeType":"YulIf","src":"22264:37:64"}]},"name":"checked_sub_t_uint256","nativeSrc":"22114:194:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"22145:1:64","nodeType":"YulTypedName","src":"22145:1:64","type":""},{"name":"y","nativeSrc":"22148:1:64","nodeType":"YulTypedName","src":"22148:1:64","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"22154:4:64","nodeType":"YulTypedName","src":"22154:4:64","type":""}],"src":"22114:194:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_Strategy_$16818(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_Strategy_$16818(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_Strategy_$16818(value)\n }\n\n function convert_t_enum$_Strategy_$16818_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_Strategy_$16818(value)\n }\n\n function abi_encode_t_enum$_Strategy_$16818_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_Strategy_$16818_to_t_uint8(value))\n }\n\n function abi_encode_tuple_t_enum$_Strategy_$16818__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_Strategy_$16818_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function mod_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_enum$_Strategy_$16818(value) {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n\n function abi_decode_t_enum$_Strategy_$16818(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_enum$_Strategy_$16818(value)\n }\n\n // struct ERC20Incentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$17882_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // asset\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // strategy\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_enum$_Strategy_$16818(add(headStart, offset), end))\n\n }\n\n {\n // reward\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$17882_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$17882_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct Budget.FungiblePayload -> struct Budget.FungiblePayload\n function abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x20)\n\n {\n // amount\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n }\n\n function abi_encode_tuple_t_struct$_FungiblePayload_$15465_memory_ptr__to_t_struct$_FungiblePayload_$15465_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_struct$_FungiblePayload_$15465_memory_ptr_to_t_struct$_FungiblePayload_$15465_memory_ptr_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_assert_t_enum$_AssetType_$15450(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n function cleanup_t_enum$_AssetType_$15450(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_AssetType_$15450(value)\n }\n\n function convert_t_enum$_AssetType_$15450_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_AssetType_$15450(value)\n }\n\n function abi_encode_t_enum$_AssetType_$15450_to_t_uint8(value, pos) {\n mstore(pos, convert_t_enum$_AssetType_$15450_to_t_uint8(value))\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct Budget.Transfer -> struct Budget.Transfer\n function abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x80)\n\n {\n // assetType\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_enum$_AssetType_$15450_to_t_uint8(memberValue0, add(pos, 0x00))\n }\n\n {\n // asset\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x20))\n }\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x40))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x60))\n\n mstore(add(pos, 0x60), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_Transfer_$15461_memory_ptr__to_t_struct$_Transfer_$15461_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Transfer_$15461_memory_ptr_to_t_struct$_Transfer_$15461_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n // struct Incentive.ClaimPayload -> struct Incentive.ClaimPayload\n function abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0x40)\n\n {\n // target\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_to_t_address(memberValue0, add(pos, 0x00))\n }\n\n {\n // data\n\n let memberValue0 := mload(add(value, 0x20))\n\n mstore(add(pos, 0x20), sub(tail, pos))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(memberValue0, tail)\n\n }\n\n end := tail\n }\n\n function abi_encode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr__to_t_struct$_ClaimPayload_$18096_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_ClaimPayload_$18096_memory_ptr_to_t_struct$_ClaimPayload_$18096_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value1, tail)\n\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061013f575f3560e01c80638da5cb5b116100b5578063dcc59b6f1161006e578063dcc59b6f146103f1578063e18e65081461041b578063f04e283e14610457578063f1c30ec014610473578063f2fde38b146104af578063fee81cf4146104cb5761013f565b80638da5cb5b146102bf578063a4d66daf146102e9578063a8c62e7614610313578063b30906d41461033d578063c63ff8dd14610379578063c884ef83146103b55761013f565b806328d6183b1161010757806328d6183b146101f357806338d52e0f1461021d578063439fab91146102475780634e7165a21461026f57806354d1f13d146102ab578063715018a6146102b55761013f565b806301ffc9a71461014357806307621eca1461017f5780632275aea9146101a9578063228cb733146101bf57806325692962146101e9575b5f80fd5b34801561014e575f80fd5b50610169600480360381019061016491906117d0565b610507565b6040516101769190611815565b60405180910390f35b34801561018a575f80fd5b50610193610580565b6040516101a09190611846565b60405180910390f35b3480156101b4575f80fd5b506101bd610589565b005b3480156101ca575f80fd5b506101d3610756565b6040516101e09190611846565b60405180910390f35b6101f161075c565b005b3480156101fe575f80fd5b506102076107ad565b604051610214919061186e565b60405180910390f35b348015610228575f80fd5b506102316107d4565b60405161023e91906118c6565b60405180910390f35b348015610252575f80fd5b5061026d60048036038101906102689190611940565b6107f9565b005b34801561027a575f80fd5b5061029560048036038101906102909190611940565b610a8e565b6040516102a291906119fb565b60405180910390f35b6102b3610bac565b005b6102bd610be5565b005b3480156102ca575f80fd5b506102d3610bf8565b6040516102e091906118c6565b60405180910390f35b3480156102f4575f80fd5b506102fd610c20565b60405161030a9190611846565b60405180910390f35b34801561031e575f80fd5b50610327610c26565b6040516103349190611a8e565b60405180910390f35b348015610348575f80fd5b50610363600480360381019061035e9190611ad1565b610c39565b60405161037091906118c6565b60405180910390f35b348015610384575f80fd5b5061039f600480360381019061039a9190611940565b610c74565b6040516103ac9190611815565b60405180910390f35b3480156103c0575f80fd5b506103db60048036038101906103d69190611b26565b610fd4565b6040516103e89190611815565b60405180910390f35b3480156103fc575f80fd5b50610405610ff1565b6040516104129190611846565b60405180910390f35b348015610426575f80fd5b50610441600480360381019061043c9190611940565b610ff6565b60405161044e9190611815565b60405180910390f35b610471600480360381019061046c9190611b26565b61101e565b005b34801561047e575f80fd5b5061049960048036038101906104949190611940565b61105c565b6040516104a69190611815565b60405180910390f35b6104c960048036038101906104c49190611b26565b6112d7565b005b3480156104d6575f80fd5b506104f160048036038101906104ec9190611b26565b611300565b6040516104fe9190611846565b60405180910390f35b5f7f197d2cb3000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610579575061057882611319565b5b9050919050565b5f600154905090565b610591611392565b6002808111156105a4576105a3611a1b565b5b600360149054906101000a900460ff1660028111156105c6576105c5611a1b565b5b146105fd576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051806020016040528042446106159190611b7e565b81525090505f6005808054905061062b846113c9565b6106359190611bde565b8154811061064657610645611c0e565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506106be8160015460035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113d89092919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360015460405160200161072e93929190611ca0565b60405160208183030381529060405260405161074a91906119fb565b60405180910390a25050565b60015481565b5f610765611421565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f197d2cb300000000000000000000000000000000000000000000000000000000905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61080261142b565b905080546003825580156108345760018160011c14303b1061082b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906108459190611df4565b90506001600281111561085b5761085a611a1b565b5b8160200151600281111561087257610871611a1b565b5b036108a9576040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816040015114806108be57505f8160600151145b156108f5576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60028081111561090957610908611a1b565b5b826020015160028111156109205761091f611a1b565b5b0361092f578160400151610944565b816060015182604001516109439190611e1f565b5b90505f61097330845f015173ffffffffffffffffffffffffffffffffffffffff1661145490919063ffffffff16565b9050818110156109c157825f015181836040517f5c54305e0000000000000000000000000000000000000000000000000000000081526004016109b893929190611e60565b60405180910390fd5b825f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260200151600360146101000a81548160ff02191690836002811115610a2d57610a2c611a1b565b5b021790555082604001516001819055508260600151600481905550610a5133611487565b5050508015610a89576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f8383810190610aa09190611df4565b90505f600280811115610ab657610ab5611a1b565b5b82602001516002811115610acd57610acc611a1b565b5b03610adc578160400151610af1565b81606001518260400151610af09190611e1f565b5b9050604051806080016040528060016002811115610b1257610b11611a1b565b5b8152602001835f015173ffffffffffffffffffffffffffffffffffffffff1681526020013073ffffffffffffffffffffffffffffffffffffffff168152602001604051806020016040528084815250604051602001610b719190611ebe565b604051602081830303815290604052815250604051602001610b939190611fd4565b6040516020818303038152906040529250505092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b610bed611392565b610bf65f61155d565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60045481565b600360149054906101000a900460ff1681565b60058181548110610c48575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610c7d611392565b5f8383810190610c8d919061210d565b9050610c9b815f0151611623565b610cd1576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6002811115610ce457610ce3611a1b565b5b600360149054906101000a900460ff166002811115610d0657610d05611a1b565b5b03610e6e575f80815480929190610d1c90612154565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610dca815f015160015460035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113d89092919063ffffffff16565b805f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16835f0151600154604051602001610e4093929190611ca0565b604051602081830303815290604052604051610e5c91906119fb565b60405180910390a26001915050610fce565b600280811115610e8157610e80611a1b565b5b600360149054906101000a900460ff166002811115610ea357610ea2611a1b565b5b03610fc9575f80815480929190610eb990612154565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506005815f0151908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f015173ffffffffffffffffffffffffffffffffffffffff167ff0abe0f5c6f02112a9a4332e7b091bf49040ffddeedb73785a9b9a0a3ca7f15360405160405180910390a26001915050610fce565b5f9150505b92915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190611007919061210d565b9050611015815f0151611623565b91505092915050565b611026611392565b63389a75e1600c52805f526020600c20805442111561104c57636f5e88185f526004601cfd5b5f8155506110598161155d565b50565b5f611065611392565b5f8383810190611075919061210d565b90505f816020015180602001905181019061109091906121af565b90506002808111156110a5576110a4611a1b565b5b600360149054906101000a900460ff1660028111156110c7576110c6611a1b565b5b0361114c57600154811415806110dd57505f8054115b156111405733826040516020016110f49190612214565b6040516020818303038152906040526040517f4139d81d000000000000000000000000000000000000000000000000000000008152600401611137929190612234565b60405180910390fd5b5f6004819055506111e4565b5f6001548261115b9190611bde565b146111be5733826040516020016111729190612214565b6040516020818303038152906040526040517f4139d81d0000000000000000000000000000000000000000000000000000000081526004016111b5929190612234565b60405180910390fd5b600154816111cc9190612262565b60045f8282546111dc9190612292565b925050819055505b611233825f01518260035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113d89092919063ffffffff16565b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151846040516020016112a793929190611ca0565b6040516020818303038152906040526040516112c391906119fb565b60405180910390a260019250505092915050565b6112df611392565b8060601b6112f457637448fbae5f526004601cfd5b6112fd8161155d565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061138b575061138a82611684565b5b9050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113c7576382b429005f526004601cfd5b565b5f602082209050808252919050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af13d1560015f51141716611418576390b8ec185f526004601cfd5b5f603452505050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b61148f6116fd565b15611507577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156114c957630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061155a565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b6115656116fd565b156115ca577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611620565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561167d57506004545f54105b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f657506116f582611701565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6117af8161177b565b81146117b9575f80fd5b50565b5f813590506117ca816117a6565b92915050565b5f602082840312156117e5576117e4611773565b5b5f6117f2848285016117bc565b91505092915050565b5f8115159050919050565b61180f816117fb565b82525050565b5f6020820190506118285f830184611806565b92915050565b5f819050919050565b6118408161182e565b82525050565b5f6020820190506118595f830184611837565b92915050565b6118688161177b565b82525050565b5f6020820190506118815f83018461185f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118b082611887565b9050919050565b6118c0816118a6565b82525050565b5f6020820190506118d95f8301846118b7565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611900576118ff6118df565b5b8235905067ffffffffffffffff81111561191d5761191c6118e3565b5b602083019150836001820283011115611939576119386118e7565b5b9250929050565b5f806020838503121561195657611955611773565b5b5f83013567ffffffffffffffff81111561197357611972611777565b5b61197f858286016118eb565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6119cd8261198b565b6119d78185611995565b93506119e78185602086016119a5565b6119f0816119b3565b840191505092915050565b5f6020820190508181035f830152611a1381846119c3565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60038110611a5957611a58611a1b565b5b50565b5f819050611a6982611a48565b919050565b5f611a7882611a5c565b9050919050565b611a8881611a6e565b82525050565b5f602082019050611aa15f830184611a7f565b92915050565b611ab08161182e565b8114611aba575f80fd5b50565b5f81359050611acb81611aa7565b92915050565b5f60208284031215611ae657611ae5611773565b5b5f611af384828501611abd565b91505092915050565b611b05816118a6565b8114611b0f575f80fd5b50565b5f81359050611b2081611afc565b92915050565b5f60208284031215611b3b57611b3a611773565b5b5f611b4884828501611b12565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b888261182e565b9150611b938361182e565b9250828201905080821115611bab57611baa611b51565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611be88261182e565b9150611bf38361182e565b925082611c0357611c02611bb1565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160601b9050919050565b5f611c5182611c3b565b9050919050565b5f611c6282611c47565b9050919050565b611c7a611c75826118a6565b611c58565b82525050565b5f819050919050565b611c9a611c958261182e565b611c80565b82525050565b5f611cab8286611c69565b601482019150611cbb8285611c69565b601482019150611ccb8284611c89565b602082019150819050949350505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611d16826119b3565b810181811067ffffffffffffffff82111715611d3557611d34611ce0565b5b80604052505050565b5f611d4761176a565b9050611d538282611d0d565b919050565b5f80fd5b60038110611d68575f80fd5b50565b5f81359050611d7981611d5c565b92915050565b5f60808284031215611d9457611d93611cdc565b5b611d9e6080611d3e565b90505f611dad84828501611b12565b5f830152506020611dc084828501611d6b565b6020830152506040611dd484828501611abd565b6040830152506060611de884828501611abd565b60608301525092915050565b5f60808284031215611e0957611e08611773565b5b5f611e1684828501611d7f565b91505092915050565b5f611e298261182e565b9150611e348361182e565b9250828202611e428161182e565b91508282048414831517611e5957611e58611b51565b5b5092915050565b5f606082019050611e735f8301866118b7565b611e806020830185611837565b611e8d6040830184611837565b949350505050565b611e9e8161182e565b82525050565b602082015f820151611eb85f850182611e95565b50505050565b5f602082019050611ed15f830184611ea4565b92915050565b60038110611ee857611ee7611a1b565b5b50565b5f819050611ef882611ed7565b919050565b5f611f0782611eeb565b9050919050565b611f1781611efd565b82525050565b611f26816118a6565b82525050565b5f82825260208201905092915050565b5f611f468261198b565b611f508185611f2c565b9350611f608185602086016119a5565b611f69816119b3565b840191505092915050565b5f608083015f830151611f895f860182611f0e565b506020830151611f9c6020860182611f1d565b506040830151611faf6040860182611f1d565b5060608301518482036060860152611fc78282611f3c565b9150508091505092915050565b5f6020820190508181035f830152611fec8184611f74565b905092915050565b5f80fd5b5f67ffffffffffffffff82111561201257612011611ce0565b5b61201b826119b3565b9050602081019050919050565b828183375f83830152505050565b5f61204861204384611ff8565b611d3e565b90508281526020810184848401111561206457612063611ff4565b5b61206f848285612028565b509392505050565b5f82601f83011261208b5761208a6118df565b5b813561209b848260208601612036565b91505092915050565b5f604082840312156120b9576120b8611cdc565b5b6120c36040611d3e565b90505f6120d284828501611b12565b5f83015250602082013567ffffffffffffffff8111156120f5576120f4611d58565b5b61210184828501612077565b60208301525092915050565b5f6020828403121561212257612121611773565b5b5f82013567ffffffffffffffff81111561213f5761213e611777565b5b61214b848285016120a4565b91505092915050565b5f61215e8261182e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121905761218f611b51565b5b600182019050919050565b5f815190506121a981611aa7565b92915050565b5f602082840312156121c4576121c3611773565b5b5f6121d18482850161219b565b91505092915050565b5f604083015f8301516121ef5f860182611f1d565b50602083015184820360208601526122078282611f3c565b9150508091505092915050565b5f6020820190508181035f83015261222c81846121da565b905092915050565b5f6040820190506122475f8301856118b7565b818103602083015261225981846119c3565b90509392505050565b5f61226c8261182e565b91506122778361182e565b92508261228757612286611bb1565b5b828204905092915050565b5f61229c8261182e565b91506122a78361182e565b92508282039050818111156122bf576122be611b51565b5b9291505056fea2646970667358221220dd1633c750247aba42d284277d7637a736348882bc404248ac36fb7857638ed464736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13F JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB5 JUMPI DUP1 PUSH4 0xDCC59B6F GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x3F1 JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x457 JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x473 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4AF JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x4CB JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0xA8C62E76 EQ PUSH2 0x313 JUMPI DUP1 PUSH4 0xB30906D4 EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x3B5 JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x28D6183B GT PUSH2 0x107 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x38D52E0F EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x247 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x2B5 JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x2275AEA9 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1E9 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x169 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x164 SWAP2 SWAP1 PUSH2 0x17D0 JUMP JUMPDEST PUSH2 0x507 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH2 0x580 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BD PUSH2 0x589 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D3 PUSH2 0x756 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F1 PUSH2 0x75C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x207 PUSH2 0x7AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x186E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x228 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x231 PUSH2 0x7D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23E SWAP2 SWAP1 PUSH2 0x18C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x252 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x268 SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0x7F9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x295 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x290 SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0xA8E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2B3 PUSH2 0xBAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BD PUSH2 0xBE5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D3 PUSH2 0xBF8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x18C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FD PUSH2 0xC20 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x30A SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x327 PUSH2 0xC26 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x334 SWAP2 SWAP1 PUSH2 0x1A8E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x348 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x363 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35E SWAP2 SWAP1 PUSH2 0x1AD1 JUMP JUMPDEST PUSH2 0xC39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x370 SWAP2 SWAP1 PUSH2 0x18C6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x384 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x39F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39A SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0xC74 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3AC SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D6 SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0xFD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E8 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x405 PUSH2 0xFF1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x426 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x441 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43C SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0xFF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x471 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46C SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0x101E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x47E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x499 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x494 SWAP2 SWAP1 PUSH2 0x1940 JUMP JUMPDEST PUSH2 0x105C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A6 SWAP2 SWAP1 PUSH2 0x1815 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x4C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0x12D7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D6 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EC SWAP2 SWAP1 PUSH2 0x1B26 JUMP JUMPDEST PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4FE SWAP2 SWAP1 PUSH2 0x1846 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x197D2CB300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x579 JUMPI POP PUSH2 0x578 DUP3 PUSH2 0x1319 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x591 PUSH2 0x1392 JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x5A3 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x5C6 JUMPI PUSH2 0x5C5 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST EQ PUSH2 0x5FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 TIMESTAMP PREVRANDAO PUSH2 0x615 SWAP2 SWAP1 PUSH2 0x1B7E JUMP JUMPDEST DUP2 MSTORE POP SWAP1 POP PUSH0 PUSH1 0x5 DUP1 DUP1 SLOAD SWAP1 POP PUSH2 0x62B DUP5 PUSH2 0x13C9 JUMP JUMPDEST PUSH2 0x635 SWAP2 SWAP1 PUSH2 0x1BDE JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x646 JUMPI PUSH2 0x645 PUSH2 0x1C0E JUMP JUMPDEST JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH2 0x6BE DUP2 PUSH1 0x1 SLOAD PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x72E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x74A SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x765 PUSH2 0x1421 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x197D2CB300000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x802 PUSH2 0x142B JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x834 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x82B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x845 SWAP2 SWAP1 PUSH2 0x1DF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x85B JUMPI PUSH2 0x85A PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x872 JUMPI PUSH2 0x871 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x8A9 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x8BE JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x909 JUMPI PUSH2 0x908 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x920 JUMPI PUSH2 0x91F PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x92F JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0x944 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x943 SWAP2 SWAP1 PUSH2 0x1E1F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH0 PUSH2 0x973 ADDRESS DUP5 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1454 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x9C1 JUMPI DUP3 PUSH0 ADD MLOAD DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0x5C54305E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9B8 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x3 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xA2D JUMPI PUSH2 0xA2C PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x1 DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0xA51 CALLER PUSH2 0x1487 JUMP JUMPDEST POP POP POP DUP1 ISZERO PUSH2 0xA89 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAA0 SWAP2 SWAP1 PUSH2 0x1DF4 JUMP JUMPDEST SWAP1 POP PUSH0 PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xAB6 JUMPI PUSH2 0xAB5 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xACD JUMPI PUSH2 0xACC PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xADC JUMPI DUP2 PUSH1 0x40 ADD MLOAD PUSH2 0xAF1 JUMP JUMPDEST DUP2 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0xAF0 SWAP2 SWAP1 PUSH2 0x1E1F JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xB12 JUMPI PUSH2 0xB11 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1EBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xB93 SWAP2 SWAP1 PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0xBED PUSH2 0x1392 JUMP JUMPDEST PUSH2 0xBF6 PUSH0 PUSH2 0x155D JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x5 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xC48 JUMPI PUSH0 DUP1 REVERT JUMPDEST SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH2 0xC7D PUSH2 0x1392 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xC8D SWAP2 SWAP1 PUSH2 0x210D JUMP JUMPDEST SWAP1 POP PUSH2 0xC9B DUP2 PUSH0 ADD MLOAD PUSH2 0x1623 JUMP JUMPDEST PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE4 JUMPI PUSH2 0xCE3 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xD06 JUMPI PUSH2 0xD05 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xE6E JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xD1C SWAP1 PUSH2 0x2154 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xDCA DUP2 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE40 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xFCE JUMP JUMPDEST PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEA3 JUMPI PUSH2 0xEA2 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0xFC9 JUMPI PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0xEB9 SWAP1 PUSH2 0x2154 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x5 DUP2 PUSH0 ADD MLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 ADD PUSH0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xF0ABE0F5C6F02112A9A4332E7B091BF49040FFDDEEDB73785A9B9A0A3CA7F153 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP2 POP POP PUSH2 0xFCE JUMP JUMPDEST PUSH0 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x1007 SWAP2 SWAP1 PUSH2 0x210D JUMP JUMPDEST SWAP1 POP PUSH2 0x1015 DUP2 PUSH0 ADD MLOAD PUSH2 0x1623 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1026 PUSH2 0x1392 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x104C JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x1059 DUP2 PUSH2 0x155D JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x1065 PUSH2 0x1392 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x1075 SWAP2 SWAP1 PUSH2 0x210D JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1090 SWAP2 SWAP1 PUSH2 0x21AF JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 DUP2 GT ISZERO PUSH2 0x10A5 JUMPI PUSH2 0x10A4 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST PUSH1 0x3 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x10C7 JUMPI PUSH2 0x10C6 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST SUB PUSH2 0x114C JUMPI PUSH1 0x1 SLOAD DUP2 EQ ISZERO DUP1 PUSH2 0x10DD JUMPI POP PUSH0 DUP1 SLOAD GT JUMPDEST ISZERO PUSH2 0x1140 JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x10F4 SWAP2 SWAP1 PUSH2 0x2214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1137 SWAP3 SWAP2 SWAP1 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x11E4 JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD DUP3 PUSH2 0x115B SWAP2 SWAP1 PUSH2 0x1BDE JUMP JUMPDEST EQ PUSH2 0x11BE JUMPI CALLER DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1172 SWAP2 SWAP1 PUSH2 0x2214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH32 0x4139D81D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B5 SWAP3 SWAP2 SWAP1 PUSH2 0x2234 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP2 PUSH2 0x11CC SWAP2 SWAP1 PUSH2 0x2262 JUMP JUMPDEST PUSH1 0x4 PUSH0 DUP3 DUP3 SLOAD PUSH2 0x11DC SWAP2 SWAP1 PUSH2 0x2292 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x1233 DUP3 PUSH0 ADD MLOAD DUP3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x13D8 SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x12A7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x12C3 SWAP2 SWAP1 PUSH2 0x19FB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12DF PUSH2 0x1392 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x12F4 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x12FD DUP2 PUSH2 0x155D JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x138B JUMPI POP PUSH2 0x138A DUP3 PUSH2 0x1684 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x13C7 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 KECCAK256 SWAP1 POP DUP1 DUP3 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 PUSH1 0x14 MSTORE DUP1 PUSH1 0x34 MSTORE PUSH16 0xA9059CBB000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 PUSH0 PUSH1 0x44 PUSH1 0x10 PUSH0 DUP8 GAS CALL RETURNDATASIZE ISZERO PUSH1 0x1 PUSH0 MLOAD EQ OR AND PUSH2 0x1418 JUMPI PUSH4 0x90B8EC18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 PUSH1 0x34 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x14 MSTORE PUSH16 0x70A08231000000000000000000000000 PUSH0 MSTORE PUSH1 0x20 DUP1 PUSH1 0x24 PUSH1 0x10 DUP7 GAS STATICCALL PUSH1 0x1F RETURNDATASIZE GT AND PUSH1 0x20 MLOAD MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x148F PUSH2 0x16FD JUMP JUMPDEST ISZERO PUSH2 0x1507 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x14C9 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x155A JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0x1565 PUSH2 0x16FD JUMP JUMPDEST ISZERO PUSH2 0x15CA JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1620 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0x167D JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F6 JUMPI POP PUSH2 0x16F5 DUP3 PUSH2 0x1701 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17AF DUP2 PUSH2 0x177B JUMP JUMPDEST DUP2 EQ PUSH2 0x17B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x17CA DUP2 PUSH2 0x17A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17E5 JUMPI PUSH2 0x17E4 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x17F2 DUP5 DUP3 DUP6 ADD PUSH2 0x17BC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x180F DUP2 PUSH2 0x17FB JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1828 PUSH0 DUP4 ADD DUP5 PUSH2 0x1806 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1840 DUP2 PUSH2 0x182E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1859 PUSH0 DUP4 ADD DUP5 PUSH2 0x1837 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1868 DUP2 PUSH2 0x177B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1881 PUSH0 DUP4 ADD DUP5 PUSH2 0x185F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x18B0 DUP3 PUSH2 0x1887 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x18C0 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x18D9 PUSH0 DUP4 ADD DUP5 PUSH2 0x18B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1900 JUMPI PUSH2 0x18FF PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x191D JUMPI PUSH2 0x191C PUSH2 0x18E3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1939 JUMPI PUSH2 0x1938 PUSH2 0x18E7 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1956 JUMPI PUSH2 0x1955 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1973 JUMPI PUSH2 0x1972 PUSH2 0x1777 JUMP JUMPDEST JUMPDEST PUSH2 0x197F DUP6 DUP3 DUP7 ADD PUSH2 0x18EB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19CD DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x19D7 DUP2 DUP6 PUSH2 0x1995 JUMP JUMPDEST SWAP4 POP PUSH2 0x19E7 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x19A5 JUMP JUMPDEST PUSH2 0x19F0 DUP2 PUSH2 0x19B3 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1A13 DUP2 DUP5 PUSH2 0x19C3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1A59 JUMPI PUSH2 0x1A58 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1A69 DUP3 PUSH2 0x1A48 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1A78 DUP3 PUSH2 0x1A5C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A88 DUP2 PUSH2 0x1A6E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AA1 PUSH0 DUP4 ADD DUP5 PUSH2 0x1A7F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1AB0 DUP2 PUSH2 0x182E JUMP JUMPDEST DUP2 EQ PUSH2 0x1ABA JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1ACB DUP2 PUSH2 0x1AA7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1AE6 JUMPI PUSH2 0x1AE5 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1AF3 DUP5 DUP3 DUP6 ADD PUSH2 0x1ABD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B05 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP2 EQ PUSH2 0x1B0F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1B20 DUP2 PUSH2 0x1AFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B3B JUMPI PUSH2 0x1B3A PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1B48 DUP5 DUP3 DUP6 ADD PUSH2 0x1B12 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1B88 DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x1B93 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1BAB JUMPI PUSH2 0x1BAA PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1BE8 DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x1BF3 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1C03 JUMPI PUSH2 0x1C02 PUSH2 0x1BB1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C51 DUP3 PUSH2 0x1C3B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1C62 DUP3 PUSH2 0x1C47 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C7A PUSH2 0x1C75 DUP3 PUSH2 0x18A6 JUMP JUMPDEST PUSH2 0x1C58 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A PUSH2 0x1C95 DUP3 PUSH2 0x182E JUMP JUMPDEST PUSH2 0x1C80 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1CAB DUP3 DUP7 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1CBB DUP3 DUP6 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1CCB DUP3 DUP5 PUSH2 0x1C89 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1D16 DUP3 PUSH2 0x19B3 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1D35 JUMPI PUSH2 0x1D34 PUSH2 0x1CE0 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1D47 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP PUSH2 0x1D53 DUP3 DUP3 PUSH2 0x1D0D JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1D68 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1D79 DUP2 PUSH2 0x1D5C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D94 JUMPI PUSH2 0x1D93 PUSH2 0x1CDC JUMP JUMPDEST JUMPDEST PUSH2 0x1D9E PUSH1 0x80 PUSH2 0x1D3E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1DAD DUP5 DUP3 DUP6 ADD PUSH2 0x1B12 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1DC0 DUP5 DUP3 DUP6 ADD PUSH2 0x1D6B JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x1DD4 DUP5 DUP3 DUP6 ADD PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x1DE8 DUP5 DUP3 DUP6 ADD PUSH2 0x1ABD JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E09 JUMPI PUSH2 0x1E08 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1E16 DUP5 DUP3 DUP6 ADD PUSH2 0x1D7F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1E29 DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x1E34 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1E42 DUP2 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1E59 JUMPI PUSH2 0x1E58 PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E73 PUSH0 DUP4 ADD DUP7 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x1E80 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1837 JUMP JUMPDEST PUSH2 0x1E8D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1837 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x1E9E DUP2 PUSH2 0x182E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP3 ADD PUSH0 DUP3 ADD MLOAD PUSH2 0x1EB8 PUSH0 DUP6 ADD DUP3 PUSH2 0x1E95 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1ED1 PUSH0 DUP4 ADD DUP5 PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x1EE8 JUMPI PUSH2 0x1EE7 PUSH2 0x1A1B JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH2 0x1EF8 DUP3 PUSH2 0x1ED7 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1F07 DUP3 PUSH2 0x1EEB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F17 DUP2 PUSH2 0x1EFD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x1F26 DUP2 PUSH2 0x18A6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1F46 DUP3 PUSH2 0x198B JUMP JUMPDEST PUSH2 0x1F50 DUP2 DUP6 PUSH2 0x1F2C JUMP JUMPDEST SWAP4 POP PUSH2 0x1F60 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x19A5 JUMP JUMPDEST PUSH2 0x1F69 DUP2 PUSH2 0x19B3 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x1F89 PUSH0 DUP7 ADD DUP3 PUSH2 0x1F0E JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x1F9C PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x1F1D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x1FAF PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x1F1D JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x1FC7 DUP3 DUP3 PUSH2 0x1F3C JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1FEC DUP2 DUP5 PUSH2 0x1F74 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2012 JUMPI PUSH2 0x2011 PUSH2 0x1CE0 JUMP JUMPDEST JUMPDEST PUSH2 0x201B DUP3 PUSH2 0x19B3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x2048 PUSH2 0x2043 DUP5 PUSH2 0x1FF8 JUMP JUMPDEST PUSH2 0x1D3E JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2064 JUMPI PUSH2 0x2063 PUSH2 0x1FF4 JUMP JUMPDEST JUMPDEST PUSH2 0x206F DUP5 DUP3 DUP6 PUSH2 0x2028 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x208B JUMPI PUSH2 0x208A PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x209B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2036 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B9 JUMPI PUSH2 0x20B8 PUSH2 0x1CDC JUMP JUMPDEST JUMPDEST PUSH2 0x20C3 PUSH1 0x40 PUSH2 0x1D3E JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x20D2 DUP5 DUP3 DUP6 ADD PUSH2 0x1B12 JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x20F5 JUMPI PUSH2 0x20F4 PUSH2 0x1D58 JUMP JUMPDEST JUMPDEST PUSH2 0x2101 DUP5 DUP3 DUP6 ADD PUSH2 0x2077 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2122 JUMPI PUSH2 0x2121 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x213F JUMPI PUSH2 0x213E PUSH2 0x1777 JUMP JUMPDEST JUMPDEST PUSH2 0x214B DUP5 DUP3 DUP6 ADD PUSH2 0x20A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x215E DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2190 JUMPI PUSH2 0x218F PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x21A9 DUP2 PUSH2 0x1AA7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21C4 JUMPI PUSH2 0x21C3 PUSH2 0x1773 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x21D1 DUP5 DUP3 DUP6 ADD PUSH2 0x219B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP4 ADD PUSH0 DUP4 ADD MLOAD PUSH2 0x21EF PUSH0 DUP7 ADD DUP3 PUSH2 0x1F1D JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x2207 DUP3 DUP3 PUSH2 0x1F3C JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x222C DUP2 DUP5 PUSH2 0x21DA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2247 PUSH0 DUP4 ADD DUP6 PUSH2 0x18B7 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x2259 DUP2 DUP5 PUSH2 0x19C3 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x226C DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x2277 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x2287 JUMPI PUSH2 0x2286 PUSH2 0x1BB1 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x229C DUP3 PUSH2 0x182E JUMP JUMPDEST SWAP2 POP PUSH2 0x22A7 DUP4 PUSH2 0x182E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x22BF JUMPI PUSH2 0x22BE PUSH2 0x1B51 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD AND CALLER 0xC7 POP 0x24 PUSH27 0xBA42D284277D7637A736348882BC404248AC36FB7857638ED46473 PUSH16 0x6C634300081A00330000000000000000 ","sourceMap":"542:2579:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5629:214:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3044:93:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4981:429:48;;;;;;;;;;;;;:::i;:::-;;1383:21:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;5446:147:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1625:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1349:936:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2556:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1812:20:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1714:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1925;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2151:756;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1464:39:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4318:202:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2943:994:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5629:214:48;5725:4;5763:33;5748:48;;;:11;:48;;;;:88;;;;5800:36;5824:11;5800:23;:36::i;:::-;5748:88;5741:95;;5629:214;;;:::o;3044:93:54:-;3098:7;3124:6;;3117:13;;3044:93;:::o;4981:429:48:-;12517:13:16;:11;:13::i;:::-;5048:15:48::1;5036:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;;5032:65;;5072:25;;;;;;;;;;;;;;5032:65;5108:25;5136:57;;;;;;;;5176:15;5157:16;:34;;;;:::i;:::-;5136:57;;::::0;5108:85:::1;;5204:21;5228:7;5251::::0;:14:::1;;;;5236:12;:5;:10;:12::i;:::-;:29;;;;:::i;:::-;5228:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5204:62;;5277:41;5296:13;5311:6;;5277:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;5341:13;5333:70;;;5373:5;;;;;;;;;;;5380:13;5395:6;;5356:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5333:70;;;;;;:::i;:::-;;;;;;;;5022:388;;4981:429::o:0;1383:21:54:-;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;5446:147:48:-;5528:6;5553:33;5546:40;;5446:147;:::o;1625:20::-;;;;;;;;;;;;;:::o;1349:936:53:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1429:24:53::1;1467:5;;1456:32;;;;;;;:::i;:::-;1429:59;;1589:13;1571:31;;;;;;;;:::i;:::-;;:5;:14;;;:31;;;;;;;;:::i;:::-;;::::0;1567:71:::1;;1611:27;;;;;;;;;;;;;;1567:71;1668:1;1652:5;:12;;;:17;:37;;;;1688:1;1673:5;:11;;;:16;1652:37;1648:84;;;1698:34;;;;;;;;;;;;;;1648:84;1806:22;1849:15;1831:33:::0;::::1;;;;;;;:::i;:::-;;:5;:14;;;:33;;;;;;;;:::i;:::-;;::::0;:77:::1;;1896:5;:12;;;1831:77;;;1882:5;:11;;;1867:5;:12;;;:26;;;;:::i;:::-;1831:77;1806:102;;1918:17;1938:36;1968:4;1938:5;:11;;;:21;;;;:36;;;;:::i;:::-;1918:56;;2000:14;1988:9;:26;1984:132;;;2066:5;:11;;;2079:9;2090:14;2037:68;;;;;;;;;;;;;:::i;:::-;;;;;;;;1984:132;2134:5;:11;;;2126:5;;:19;;;;;;;;;;;;;;;;;;2166:5;:14;;;2155:8;;:25;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;2199:5;:12;;;2190:6;:21;;;;2229:5;:11;;;2221:5;:19;;;;2250:28;2267:10;2250:16;:28::i;:::-;1419:866;;;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1349:936:53;;:::o;2556:563::-;2629:23;2664:24;2702:5;;2691:32;;;;;;;:::i;:::-;2664:59;;2733:14;2768:15;2750:33;;;;;;;;:::i;:::-;;:5;:14;;;:33;;;;;;;;:::i;:::-;;;:77;;2815:5;:12;;;2750:77;;;2801:5;:11;;;2786:5;:12;;;:26;;;;:::i;:::-;2750:77;2733:94;;2869:233;;;;;;;;2914:22;2869:233;;;;;;;;:::i;:::-;;;;;;2961:5;:11;;;2869:233;;;;;;3006:4;2869:233;;;;;;3046:40;;;;;;;;3078:6;3046:40;;;3035:52;;;;;;;;:::i;:::-;;;;;;;;;;;;;2869:233;;;2845:267;;;;;;;;:::i;:::-;;;;;;;;;;;;;2838:274;;;;2556:563;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1812:20:48:-;;;;:::o;1714:24::-;;;;;;;;;;;;;:::o;1925:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2151:756::-;2225:4;12517:13:16;:11;:13::i;:::-;2241:26:48::1;2281:5;;2270:33;;;;;;;:::i;:::-;2241:62;;2318:27;2331:6;:13;;;2318:12;:27::i;:::-;2313:55;;2354:14;;;;;;;;;;;;;;2313:55;2395:13;2383:25;;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:25;;;;;;;;:::i;:::-;;::::0;2379:499:::1;;2424:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;2471:4;2446:7;:22;2454:6;:13;;;2446:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2490:41;2509:6;:13;;;2524:6;;2490:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;2559:6;:13;;;2551:70;;;2591:5;;;;;;;;;;;2598:6;:13;;;2613:6;;2574:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2551:70;;;;;;:::i;:::-;;;;;;;;2642:4;2635:11;;;;;2379:499;2679:15;2667:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;::::0;2663:215:::1;;2710:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;2757:4;2732:7;:22;2740:6;:13;;;2732:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;2775:7;2788:6;:13;;;2775:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2828:6;:13;;;2822:20;;;;;;;;;;;;2863:4;2856:11;;;;;2663:215;2895:5;2888:12;;;12540:1:16;2151:756:48::0;;;;:::o;1464:39:54:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;4318:202:48:-;4391:4;4407:26;4447:5;;4436:33;;;;;;;:::i;:::-;4407:62;;4486:27;4499:6;:13;;;4486:12;:27::i;:::-;4479:34;;;4318:202;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2943:994:48:-;3019:4;12517:13:16;:11;:13::i;:::-;3035:26:48::1;3075:5;;3064:33;;;;;;;:::i;:::-;3035:62;;3108:14;3137:6;:11;;;3126:34;;;;;;;;;;;;:::i;:::-;3107:53;;3187:15;3175:27:::0;::::1;;;;;;;:::i;:::-;;:8;;;;;;;;;;;:27;;;;;;;;:::i;:::-;;::::0;3171:539:::1;;3338:6;;3328;:16;;:30;;;;3357:1;3348:6:::0;::::1;:10;3328:30;3324:97;;;3390:10;3413:6;3402:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;3367:54;;;;;;;;;;;;:::i;:::-;;;;;;;;3324:97;3443:1;3435:5;:9;;;;3171:539;;;3597:1;3587:6;;3578;:15;;;;:::i;:::-;:20;3574:87;;3630:10;3653:6;3642:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;3607:54;;;;;;;;;;;;:::i;:::-;;;;;;;;3574:87;3693:6;;3684;:15;;;;:::i;:::-;3675:5;;:24;;;;;;;:::i;:::-;;;;;;;;3171:539;3782:41;3801:6;:13;;;3816:6;3782:5;;;;;;;;;;;:18;;;;:41;;;;;:::i;:::-;3846:6;:13;;;3838:70;;;3878:5;;;;;;;;;;;3885:6;:13;;;3900:6;3861:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3838:70;;;;;;:::i;:::-;;;;;;;;3926:4;3919:11;;;;2943:994:::0;;;;:::o;8348:349:16:-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;3173:208:54:-;3269:4;3307:27;3292:42;;;:11;:42;;;;:82;;;;3338:36;3362:11;3338:23;:36::i;:::-;3292:82;3285:89;;3173:208;;;:::o;7292:355:16:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2955:756:22:-;3010:14;3657:4;3651;3641:21;3631:31;;3688:6;3682:4;3675:20;2955:756;;;:::o;13466:939:26:-;13629:2;13623:4;13616:16;13686:6;13680:4;13673:20;13751:34;13745:4;13738:48;14140:4;14134;14128;14122;14119:1;14112:5;14105;14100:45;14034:16;14027:24;14023:1;14016:4;14010:11;14007:18;14004:48;13919:244;13892:400;;14209:10;14203:4;14196:24;14273:4;14267;14260:18;13892:400;14318:1;14312:4;14305:15;13466:939;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;19260:739:26:-;19334:14;19439:7;19433:4;19426:21;19506:34;19500:4;19493:48;19938:4;19932;19926;19920;19913:5;19906;19895:48;19833:4;19815:16;19812:26;19723:242;19696:4;19690:11;19605:378;19579:404;;19260:739;;;;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;4726:133:48:-;4791:4;4815:7;:19;4823:10;4815:19;;;;;;;;;;;;;;;;;;;;;;;;;4814:20;:38;;;;;4847:5;;4838:6;;:14;4814:38;4807:45;;4726:133;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:115::-;2038:23;2055:5;2038:23;:::i;:::-;2033:3;2026:36;1953:115;;:::o;2074:218::-;2165:4;2203:2;2192:9;2188:18;2180:26;;2216:69;2282:1;2271:9;2267:17;2258:6;2216:69;:::i;:::-;2074:218;;;;:::o;2298:126::-;2335:7;2375:42;2368:5;2364:54;2353:65;;2298:126;;;:::o;2430:96::-;2467:7;2496:24;2514:5;2496:24;:::i;:::-;2485:35;;2430:96;;;:::o;2532:118::-;2619:24;2637:5;2619:24;:::i;:::-;2614:3;2607:37;2532:118;;:::o;2656:222::-;2749:4;2787:2;2776:9;2772:18;2764:26;;2800:71;2868:1;2857:9;2853:17;2844:6;2800:71;:::i;:::-;2656:222;;;;:::o;2884:117::-;2993:1;2990;2983:12;3007:117;3116:1;3113;3106:12;3130:117;3239:1;3236;3229:12;3266:552;3323:8;3333:6;3383:3;3376:4;3368:6;3364:17;3360:27;3350:122;;3391:79;;:::i;:::-;3350:122;3504:6;3491:20;3481:30;;3534:18;3526:6;3523:30;3520:117;;;3556:79;;:::i;:::-;3520:117;3670:4;3662:6;3658:17;3646:29;;3724:3;3716:4;3708:6;3704:17;3694:8;3690:32;3687:41;3684:128;;;3731:79;;:::i;:::-;3684:128;3266:552;;;;;:::o;3824:527::-;3894:6;3902;3951:2;3939:9;3930:7;3926:23;3922:32;3919:119;;;3957:79;;:::i;:::-;3919:119;4105:1;4094:9;4090:17;4077:31;4135:18;4127:6;4124:30;4121:117;;;4157:79;;:::i;:::-;4121:117;4270:64;4326:7;4317:6;4306:9;4302:22;4270:64;:::i;:::-;4252:82;;;;4048:296;3824:527;;;;;:::o;4357:98::-;4408:6;4442:5;4436:12;4426:22;;4357:98;;;:::o;4461:168::-;4544:11;4578:6;4573:3;4566:19;4618:4;4613:3;4609:14;4594:29;;4461:168;;;;:::o;4635:139::-;4724:6;4719:3;4714;4708:23;4765:1;4756:6;4751:3;4747:16;4740:27;4635:139;;;:::o;4780:102::-;4821:6;4872:2;4868:7;4863:2;4856:5;4852:14;4848:28;4838:38;;4780:102;;;:::o;4888:373::-;4974:3;5002:38;5034:5;5002:38;:::i;:::-;5056:70;5119:6;5114:3;5056:70;:::i;:::-;5049:77;;5135:65;5193:6;5188:3;5181:4;5174:5;5170:16;5135:65;:::i;:::-;5225:29;5247:6;5225:29;:::i;:::-;5220:3;5216:39;5209:46;;4978:283;4888:373;;;;:::o;5267:309::-;5378:4;5416:2;5405:9;5401:18;5393:26;;5465:9;5459:4;5455:20;5451:1;5440:9;5436:17;5429:47;5493:76;5564:4;5555:6;5493:76;:::i;:::-;5485:84;;5267:309;;;;:::o;5582:180::-;5630:77;5627:1;5620:88;5727:4;5724:1;5717:15;5751:4;5748:1;5741:15;5768:119;5855:1;5848:5;5845:12;5835:46;;5861:18;;:::i;:::-;5835:46;5768:119;:::o;5893:139::-;5944:7;5973:5;5962:16;;5979:47;6020:5;5979:47;:::i;:::-;5893:139;;;:::o;6038:::-;6100:9;6133:38;6165:5;6133:38;:::i;:::-;6120:51;;6038:139;;;:::o;6183:155::-;6282:49;6325:5;6282:49;:::i;:::-;6277:3;6270:62;6183:155;;:::o;6344:246::-;6449:4;6487:2;6476:9;6472:18;6464:26;;6500:83;6580:1;6569:9;6565:17;6556:6;6500:83;:::i;:::-;6344:246;;;;:::o;6596:122::-;6669:24;6687:5;6669:24;:::i;:::-;6662:5;6659:35;6649:63;;6708:1;6705;6698:12;6649:63;6596:122;:::o;6724:139::-;6770:5;6808:6;6795:20;6786:29;;6824:33;6851:5;6824:33;:::i;:::-;6724:139;;;;:::o;6869:329::-;6928:6;6977:2;6965:9;6956:7;6952:23;6948:32;6945:119;;;6983:79;;:::i;:::-;6945:119;7103:1;7128:53;7173:7;7164:6;7153:9;7149:22;7128:53;:::i;:::-;7118:63;;7074:117;6869:329;;;;:::o;7204:122::-;7277:24;7295:5;7277:24;:::i;:::-;7270:5;7267:35;7257:63;;7316:1;7313;7306:12;7257:63;7204:122;:::o;7332:139::-;7378:5;7416:6;7403:20;7394:29;;7432:33;7459:5;7432:33;:::i;:::-;7332:139;;;;:::o;7477:329::-;7536:6;7585:2;7573:9;7564:7;7560:23;7556:32;7553:119;;;7591:79;;:::i;:::-;7553:119;7711:1;7736:53;7781:7;7772:6;7761:9;7757:22;7736:53;:::i;:::-;7726:63;;7682:117;7477:329;;;;:::o;7812:180::-;7860:77;7857:1;7850:88;7957:4;7954:1;7947:15;7981:4;7978:1;7971:15;7998:191;8038:3;8057:20;8075:1;8057:20;:::i;:::-;8052:25;;8091:20;8109:1;8091:20;:::i;:::-;8086:25;;8134:1;8131;8127:9;8120:16;;8155:3;8152:1;8149:10;8146:36;;;8162:18;;:::i;:::-;8146:36;7998:191;;;;:::o;8195:180::-;8243:77;8240:1;8233:88;8340:4;8337:1;8330:15;8364:4;8361:1;8354:15;8381:176;8413:1;8430:20;8448:1;8430:20;:::i;:::-;8425:25;;8464:20;8482:1;8464:20;:::i;:::-;8459:25;;8503:1;8493:35;;8508:18;;:::i;:::-;8493:35;8549:1;8546;8542:9;8537:14;;8381:176;;;;:::o;8563:180::-;8611:77;8608:1;8601:88;8708:4;8705:1;8698:15;8732:4;8729:1;8722:15;8749:94;8782:8;8830:5;8826:2;8822:14;8801:35;;8749:94;;;:::o;8849:::-;8888:7;8917:20;8931:5;8917:20;:::i;:::-;8906:31;;8849:94;;;:::o;8949:100::-;8988:7;9017:26;9037:5;9017:26;:::i;:::-;9006:37;;8949:100;;;:::o;9055:157::-;9160:45;9180:24;9198:5;9180:24;:::i;:::-;9160:45;:::i;:::-;9155:3;9148:58;9055:157;;:::o;9218:79::-;9257:7;9286:5;9275:16;;9218:79;;;:::o;9303:157::-;9408:45;9428:24;9446:5;9428:24;:::i;:::-;9408:45;:::i;:::-;9403:3;9396:58;9303:157;;:::o;9466:538::-;9634:3;9649:75;9720:3;9711:6;9649:75;:::i;:::-;9749:2;9744:3;9740:12;9733:19;;9762:75;9833:3;9824:6;9762:75;:::i;:::-;9862:2;9857:3;9853:12;9846:19;;9875:75;9946:3;9937:6;9875:75;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9995:3;9988:10;;9466:538;;;;;;:::o;10010:117::-;10119:1;10116;10109:12;10133:180;10181:77;10178:1;10171:88;10278:4;10275:1;10268:15;10302:4;10299:1;10292:15;10319:281;10402:27;10424:4;10402:27;:::i;:::-;10394:6;10390:40;10532:6;10520:10;10517:22;10496:18;10484:10;10481:34;10478:62;10475:88;;;10543:18;;:::i;:::-;10475:88;10583:10;10579:2;10572:22;10362:238;10319:281;;:::o;10606:129::-;10640:6;10667:20;;:::i;:::-;10657:30;;10696:33;10724:4;10716:6;10696:33;:::i;:::-;10606:129;;;:::o;10741:117::-;10850:1;10847;10840:12;10864:113;10951:1;10944:5;10941:12;10931:40;;10967:1;10964;10957:12;10931:40;10864:113;:::o;10983:167::-;11043:5;11081:6;11068:20;11059:29;;11097:47;11138:5;11097:47;:::i;:::-;10983:167;;;;:::o;11197:923::-;11276:5;11320:4;11308:9;11303:3;11299:19;11295:30;11292:117;;;11328:79;;:::i;:::-;11292:117;11427:21;11443:4;11427:21;:::i;:::-;11418:30;;11508:1;11548:49;11593:3;11584:6;11573:9;11569:22;11548:49;:::i;:::-;11541:4;11534:5;11530:16;11523:75;11458:151;11672:2;11713:63;11772:3;11763:6;11752:9;11748:22;11713:63;:::i;:::-;11706:4;11699:5;11695:16;11688:89;11619:169;11849:2;11890:49;11935:3;11926:6;11915:9;11911:22;11890:49;:::i;:::-;11883:4;11876:5;11872:16;11865:75;11798:153;12011:2;12052:49;12097:3;12088:6;12077:9;12073:22;12052:49;:::i;:::-;12045:4;12038:5;12034:16;12027:75;11961:152;11197:923;;;;:::o;12126:390::-;12215:6;12264:3;12252:9;12243:7;12239:23;12235:33;12232:120;;;12271:79;;:::i;:::-;12232:120;12391:1;12416:83;12491:7;12482:6;12471:9;12467:22;12416:83;:::i;:::-;12406:93;;12362:147;12126:390;;;;:::o;12522:410::-;12562:7;12585:20;12603:1;12585:20;:::i;:::-;12580:25;;12619:20;12637:1;12619:20;:::i;:::-;12614:25;;12674:1;12671;12667:9;12696:30;12714:11;12696:30;:::i;:::-;12685:41;;12875:1;12866:7;12862:15;12859:1;12856:22;12836:1;12829:9;12809:83;12786:139;;12905:18;;:::i;:::-;12786:139;12570:362;12522:410;;;;:::o;12938:442::-;13087:4;13125:2;13114:9;13110:18;13102:26;;13138:71;13206:1;13195:9;13191:17;13182:6;13138:71;:::i;:::-;13219:72;13287:2;13276:9;13272:18;13263:6;13219:72;:::i;:::-;13301;13369:2;13358:9;13354:18;13345:6;13301:72;:::i;:::-;12938:442;;;;;;:::o;13386:108::-;13463:24;13481:5;13463:24;:::i;:::-;13458:3;13451:37;13386:108;;:::o;13570:353::-;13735:4;13730:3;13726:14;13824:4;13817:5;13813:16;13807:23;13843:63;13900:4;13895:3;13891:14;13877:12;13843:63;:::i;:::-;13750:166;13704:219;13570:353;;:::o;13929:358::-;14090:4;14128:2;14117:9;14113:18;14105:26;;14141:139;14277:1;14266:9;14262:17;14253:6;14141:139;:::i;:::-;13929:358;;;;:::o;14293:120::-;14381:1;14374:5;14371:12;14361:46;;14387:18;;:::i;:::-;14361:46;14293:120;:::o;14419:141::-;14471:7;14500:5;14489:16;;14506:48;14548:5;14506:48;:::i;:::-;14419:141;;;:::o;14566:::-;14629:9;14662:39;14695:5;14662:39;:::i;:::-;14649:52;;14566:141;;;:::o;14713:147::-;14803:50;14847:5;14803:50;:::i;:::-;14798:3;14791:63;14713:147;;:::o;14866:108::-;14943:24;14961:5;14943:24;:::i;:::-;14938:3;14931:37;14866:108;;:::o;14980:158::-;15053:11;15087:6;15082:3;15075:19;15127:4;15122:3;15118:14;15103:29;;14980:158;;;;:::o;15144:353::-;15220:3;15248:38;15280:5;15248:38;:::i;:::-;15302:60;15355:6;15350:3;15302:60;:::i;:::-;15295:67;;15371:65;15429:6;15424:3;15417:4;15410:5;15406:16;15371:65;:::i;:::-;15461:29;15483:6;15461:29;:::i;:::-;15456:3;15452:39;15445:46;;15224:273;15144:353;;;;:::o;15559:977::-;15682:3;15718:4;15713:3;15709:14;15810:4;15803:5;15799:16;15793:23;15829:76;15899:4;15894:3;15890:14;15876:12;15829:76;:::i;:::-;15733:182;15998:4;15991:5;15987:16;15981:23;16017:63;16074:4;16069:3;16065:14;16051:12;16017:63;:::i;:::-;15925:165;16174:4;16167:5;16163:16;16157:23;16193:63;16250:4;16245:3;16241:14;16227:12;16193:63;:::i;:::-;16100:166;16348:4;16341:5;16337:16;16331:23;16401:3;16395:4;16391:14;16384:4;16379:3;16375:14;16368:38;16427:71;16493:4;16479:12;16427:71;:::i;:::-;16419:79;;16276:233;16526:4;16519:11;;15687:849;15559:977;;;;:::o;16542:381::-;16689:4;16727:2;16716:9;16712:18;16704:26;;16776:9;16770:4;16766:20;16762:1;16751:9;16747:17;16740:47;16804:112;16911:4;16902:6;16804:112;:::i;:::-;16796:120;;16542:381;;;;:::o;16929:117::-;17038:1;17035;17028:12;17052:307;17113:4;17203:18;17195:6;17192:30;17189:56;;;17225:18;;:::i;:::-;17189:56;17263:29;17285:6;17263:29;:::i;:::-;17255:37;;17347:4;17341;17337:15;17329:23;;17052:307;;;:::o;17365:148::-;17463:6;17458:3;17453;17440:30;17504:1;17495:6;17490:3;17486:16;17479:27;17365:148;;;:::o;17519:423::-;17596:5;17621:65;17637:48;17678:6;17637:48;:::i;:::-;17621:65;:::i;:::-;17612:74;;17709:6;17702:5;17695:21;17747:4;17740:5;17736:16;17785:3;17776:6;17771:3;17767:16;17764:25;17761:112;;;17792:79;;:::i;:::-;17761:112;17882:54;17929:6;17924:3;17919;17882:54;:::i;:::-;17602:340;17519:423;;;;;:::o;17961:338::-;18016:5;18065:3;18058:4;18050:6;18046:17;18042:27;18032:122;;18073:79;;:::i;:::-;18032:122;18190:6;18177:20;18215:78;18289:3;18281:6;18274:4;18266:6;18262:17;18215:78;:::i;:::-;18206:87;;18022:277;17961:338;;;;:::o;18342:751::-;18422:5;18466:4;18454:9;18449:3;18445:19;18441:30;18438:117;;;18474:79;;:::i;:::-;18438:117;18573:21;18589:4;18573:21;:::i;:::-;18564:30;;18655:1;18695:49;18740:3;18731:6;18720:9;18716:22;18695:49;:::i;:::-;18688:4;18681:5;18677:16;18670:75;18604:152;18843:2;18832:9;18828:18;18815:32;18874:18;18866:6;18863:30;18860:117;;;18896:79;;:::i;:::-;18860:117;19016:58;19070:3;19061:6;19050:9;19046:22;19016:58;:::i;:::-;19009:4;19002:5;18998:16;18991:84;18766:320;18342:751;;;;:::o;19099:551::-;19189:6;19238:2;19226:9;19217:7;19213:23;19209:32;19206:119;;;19244:79;;:::i;:::-;19206:119;19392:1;19381:9;19377:17;19364:31;19422:18;19414:6;19411:30;19408:117;;;19444:79;;:::i;:::-;19408:117;19549:84;19625:7;19616:6;19605:9;19601:22;19549:84;:::i;:::-;19539:94;;19335:308;19099:551;;;;:::o;19656:233::-;19695:3;19718:24;19736:5;19718:24;:::i;:::-;19709:33;;19764:66;19757:5;19754:77;19751:103;;19834:18;;:::i;:::-;19751:103;19881:1;19874:5;19870:13;19863:20;;19656:233;;;:::o;19895:143::-;19952:5;19983:6;19977:13;19968:22;;19999:33;20026:5;19999:33;:::i;:::-;19895:143;;;;:::o;20044:351::-;20114:6;20163:2;20151:9;20142:7;20138:23;20134:32;20131:119;;;20169:79;;:::i;:::-;20131:119;20289:1;20314:64;20370:7;20361:6;20350:9;20346:22;20314:64;:::i;:::-;20304:74;;20260:128;20044:351;;;;:::o;20471:618::-;20602:3;20638:4;20633:3;20629:14;20727:4;20720:5;20716:16;20710:23;20746:63;20803:4;20798:3;20794:14;20780:12;20746:63;:::i;:::-;20653:166;20901:4;20894:5;20890:16;20884:23;20954:3;20948:4;20944:14;20937:4;20932:3;20928:14;20921:38;20980:71;21046:4;21032:12;20980:71;:::i;:::-;20972:79;;20829:233;21079:4;21072:11;;20607:482;20471:618;;;;:::o;21095:397::-;21250:4;21288:2;21277:9;21273:18;21265:26;;21337:9;21331:4;21327:20;21323:1;21312:9;21308:17;21301:47;21365:120;21480:4;21471:6;21365:120;:::i;:::-;21357:128;;21095:397;;;;:::o;21498:419::-;21637:4;21675:2;21664:9;21660:18;21652:26;;21688:71;21756:1;21745:9;21741:17;21732:6;21688:71;:::i;:::-;21806:9;21800:4;21796:20;21791:2;21780:9;21776:18;21769:48;21834:76;21905:4;21896:6;21834:76;:::i;:::-;21826:84;;21498:419;;;;;:::o;21923:185::-;21963:1;21980:20;21998:1;21980:20;:::i;:::-;21975:25;;22014:20;22032:1;22014:20;:::i;:::-;22009:25;;22053:1;22043:35;;22058:18;;:::i;:::-;22043:35;22100:1;22097;22093:9;22088:14;;21923:185;;;;:::o;22114:194::-;22154:4;22174:20;22192:1;22174:20;:::i;:::-;22169:25;;22208:20;22226:1;22208:20;:::i;:::-;22203:25;;22252:1;22249;22245:9;22237:17;;22276:1;22270:4;22267:11;22264:37;;;22281:18;;:::i;:::-;22264:37;22114:194;;;;:::o"},"methodIdentifiers":{"asset()":"38d52e0f","cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","drawRaffle()":"2275aea9","entries(uint256)":"b30906d4","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","strategy()":"a8c62e76","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"entry\",\"type\":\"address\"}],\"name\":\"Entry\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"drawRaffle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"entries\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategy\",\"outputs\":[{\"internalType\":\"enum AERC20Incentive.Strategy\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"drawRaffle()\":{\"details\":\"Only valid when the strategy is set to `Strategy.RAFFLE`\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed incentive parameters `(address asset, Strategy strategy, uint256 reward, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The {InitPayload} for the incentive\"},\"returns\":{\"budgetData\":\"The {Transfer} payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"ERC20 Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"},\"Entry(address)\":{\"notice\":\"Emitted when an entry is added to the raffle\"}},\"kind\":\"user\",\"methods\":{\"asset()\":{\"notice\":\"The address of the ERC20-like token\"},\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new ERC20Incentive\"},\"drawRaffle()\":{\"notice\":\"Draw a winner from the raffle\"},\"entries(uint256)\":{\"notice\":\"The set of addresses that have claimed a slot in the incentive raffle\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The limit (max claims, or max entries for raffles)\"},\"preflight(bytes)\":{\"notice\":\"Preflight the incentive to determine the required budget action\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"strategy()\":{\"notice\":\"The strategy for the incentive (MINT or POOL)\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A simple ERC20 incentive implementation that allows claiming of tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/ERC20Incentive.sol\":\"ERC20Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibPRNG.sol\":{\"keccak256\":\"0xdcb71f8dc72bb7384776154ca24d34c23e3c9bcf124bc75f0d2e379f9ebd021d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64e23b9ccfd1a5842268d36fe2798a13b063fe7821d0e952ea4758df5cc386f\",\"dweb:/ipfs/QmVTtkbUuEMi4gryE6NW2BGg5WGwRt1LX4KXNfH87BBZQk\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/AERC20Incentive.sol\":{\"keccak256\":\"0xb3072201faaf1eb3943478e48896562e8d5d9addd1b66e94b50cb4299cbba432\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5969de8d460b9e7c0846a414bf8c73529ddbda32f40df5df68d3a712a2fc8bd1\",\"dweb:/ipfs/QmZyp4jL8ax6UHSgmXKhGLgowBwDbgLSxEdmoPk71EXFfX\"]},\"contracts/incentives/ERC20Incentive.sol\":{\"keccak256\":\"0x0d7f620e58a2cb7de3e50f46dc8b7d045f9eae6bf62e43cfaab8c26c99306302\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://5b38edbd6aa9a0b25a38f02305fd81164b616893e9edb3920c0dca5ca92c4f06\",\"dweb:/ipfs/QmQmRFUdYhnim7sho6DAm7EH75vEhbbFVsYRzVZvqugRKQ\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/Incentive.sol":{"Incentive":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Incentive classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"isClaimable(bytes)\":{\"params\":{\"data_\":\"The data payload for the claim check (data, signature, etc.)\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"_0\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Boost Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Initialize the contract and set the owner\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"preflight(bytes)\":{\"notice\":\"Get the required allowance for the incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"Abstract contract for a generic Incentive within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/Incentive.sol\":\"Incentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/incentives/PointsIncentive.sol":{"PointsIncentive":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ClaimFailed","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotClaimable","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"claim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"currentReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"preflight","outputs":[{"internalType":"bytes","name":"budgetData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"reclaim","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"selector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"venue","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_18117":{"entryPoint":null,"id":18117,"parameterSlots":0,"returnSlots":0},"@_18225":{"entryPoint":null,"id":18225,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b6116e8806101b45f395ff3fe608060405260043610610129575f3560e01c8063a270a737116100aa578063e18e65081161006e578063e18e650814610389578063ea3d508a146103c5578063f04e283e146103ef578063f1c30ec01461040b578063f2fde38b14610447578063fee81cf41461046357610129565b8063a270a73714610293578063a4d66daf146102bd578063c63ff8dd146102e7578063c884ef8314610323578063dcc59b6f1461035f57610129565b8063439fab91116100f1578063439fab91146101f15780634e7165a21461021957806354d1f13d14610255578063715018a61461025f5780638da5cb5b1461026957610129565b806301ffc9a71461012d57806307621eca14610169578063228cb7331461019357806325692962146101bd57806328d6183b146101c7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e9190610fdc565b61049f565b6040516101609190611021565b60405180910390f35b348015610174575f80fd5b5061017d610518565b60405161018a9190611052565b60405180910390f35b34801561019e575f80fd5b506101a7610521565b6040516101b49190611052565b60405180910390f35b6101c5610527565b005b3480156101d2575f80fd5b506101db610578565b6040516101e8919061107a565b60405180910390f35b3480156101fc575f80fd5b50610217600480360381019061021291906110f4565b61059f565b005b348015610224575f80fd5b5061023f600480360381019061023a91906110f4565b6106f7565b60405161024c91906111af565b60405180910390f35b61025d61074e565b005b610267610787565b005b348015610274575f80fd5b5061027d61079a565b60405161028a919061120e565b60405180910390f35b34801561029e575f80fd5b506102a76107c2565b6040516102b4919061120e565b60405180910390f35b3480156102c8575f80fd5b506102d16107e7565b6040516102de9190611052565b60405180910390f35b3480156102f2575f80fd5b5061030d600480360381019061030891906110f4565b6107ed565b60405161031a9190611021565b60405180910390f35b34801561032e575f80fd5b5061034960048036038101906103449190611251565b610aa1565b6040516103569190611021565b60405180910390f35b34801561036a575f80fd5b50610373610abe565b6040516103809190611052565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa91906110f4565b610ac3565b6040516103bc9190611021565b60405180910390f35b3480156103d0575f80fd5b506103d9610aeb565b6040516103e6919061107a565b60405180910390f35b61040960048036038101906104049190611251565b610afd565b005b348015610416575f80fd5b50610431600480360381019061042c91906110f4565b610b3b565b60405161043e9190611021565b60405180910390f35b610461600480360381019061045c9190611251565b610b6e565b005b34801561046e575f80fd5b5061048960048036038101906104849190611251565b610b97565b6040516104969190611052565b60405180910390f35b5f7f1e2e16a8000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610511575061051082610bb0565b5b9050919050565b5f600154905090565b60015481565b5f610530610c29565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f1e2e16a800000000000000000000000000000000000000000000000000000000905090565b5f6105a8610c33565b905080546003825580156105da5760018160011c14303b106105d15763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105eb919061139b565b90505f8160400151148061060257505f8160600151145b15610639576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015160055f6101000a81548163ffffffff021916908360e01c0217905550806040015160018190555080606001516004819055506106bc33610c5c565b5080156106f2576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff81111561071357610712611280565b5b6040519080825280601f01601f1916602001820160405280156107455781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61078f610d32565b6107985f610d69565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b5f6107f6610d32565b5f838381019061080691906114df565b9050610814815f0151610e2f565b61084a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8081548092919061085b90611553565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900460e01b835f015160015460405160240161091892919061159a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161098291906115fb565b5f604051808303815f865af19150503d805f81146109bb576040519150601f19603f3d011682016040523d82523d5f602084013e6109c0565b606091505b50509050806109fb576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600154604051602001610a7193929190611676565b604051602081830303815290604052604051610a8d91906111af565b60405180910390a260019250505092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610ad491906114df565b9050610ae2815f0151610e2f565b91505092915050565b60055f9054906101000a900460e01b81565b610b05610d32565b63389a75e1600c52805f526020600c208054421115610b2b57636f5e88185f526004601cfd5b5f815550610b3881610d69565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b76610d32565b8060601b610b8b57637448fbae5f526004601cfd5b610b9481610d69565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c225750610c2182610e90565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610c64610f09565b15610cdc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c9e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610d2f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610d67576382b429005f526004601cfd5b565b610d71610f09565b15610dd6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610e2c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610e8957506004545f54105b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f025750610f0182610f0d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610fbb81610f87565b8114610fc5575f80fd5b50565b5f81359050610fd681610fb2565b92915050565b5f60208284031215610ff157610ff0610f7f565b5b5f610ffe84828501610fc8565b91505092915050565b5f8115159050919050565b61101b81611007565b82525050565b5f6020820190506110345f830184611012565b92915050565b5f819050919050565b61104c8161103a565b82525050565b5f6020820190506110655f830184611043565b92915050565b61107481610f87565b82525050565b5f60208201905061108d5f83018461106b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126110b4576110b3611093565b5b8235905067ffffffffffffffff8111156110d1576110d0611097565b5b6020830191508360018202830111156110ed576110ec61109b565b5b9250929050565b5f806020838503121561110a57611109610f7f565b5b5f83013567ffffffffffffffff81111561112757611126610f83565b5b6111338582860161109f565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6111818261113f565b61118b8185611149565b935061119b818560208601611159565b6111a481611167565b840191505092915050565b5f6020820190508181035f8301526111c78184611177565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111f8826111cf565b9050919050565b611208816111ee565b82525050565b5f6020820190506112215f8301846111ff565b92915050565b611230816111ee565b811461123a575f80fd5b50565b5f8135905061124b81611227565b92915050565b5f6020828403121561126657611265610f7f565b5b5f6112738482850161123d565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6112b682611167565b810181811067ffffffffffffffff821117156112d5576112d4611280565b5b80604052505050565b5f6112e7610f76565b90506112f382826112ad565b919050565b5f80fd5b6113058161103a565b811461130f575f80fd5b50565b5f81359050611320816112fc565b92915050565b5f6080828403121561133b5761133a61127c565b5b61134560806112de565b90505f6113548482850161123d565b5f83015250602061136784828501610fc8565b602083015250604061137b84828501611312565b604083015250606061138f84828501611312565b60608301525092915050565b5f608082840312156113b0576113af610f7f565b5b5f6113bd84828501611326565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156113e4576113e3611280565b5b6113ed82611167565b9050602081019050919050565b828183375f83830152505050565b5f61141a611415846113ca565b6112de565b905082815260208101848484011115611436576114356113c6565b5b6114418482856113fa565b509392505050565b5f82601f83011261145d5761145c611093565b5b813561146d848260208601611408565b91505092915050565b5f6040828403121561148b5761148a61127c565b5b61149560406112de565b90505f6114a48482850161123d565b5f83015250602082013567ffffffffffffffff8111156114c7576114c66112f8565b5b6114d384828501611449565b60208301525092915050565b5f602082840312156114f4576114f3610f7f565b5b5f82013567ffffffffffffffff81111561151157611510610f83565b5b61151d84828501611476565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61155d8261103a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361158f5761158e611526565b5b600182019050919050565b5f6040820190506115ad5f8301856111ff565b6115ba6020830184611043565b9392505050565b5f81905092915050565b5f6115d58261113f565b6115df81856115c1565b93506115ef818560208601611159565b80840191505092915050565b5f61160682846115cb565b915081905092915050565b5f8160601b9050919050565b5f61162782611611565b9050919050565b5f6116388261161d565b9050919050565b61165061164b826111ee565b61162e565b82525050565b5f819050919050565b61167061166b8261103a565b611656565b82525050565b5f611681828661163f565b601482019150611691828561163f565b6014820191506116a1828461165f565b60208201915081905094935050505056fea26469706673582212202fc079fb65343fea841b98c134ef18046776671385a6cde592e7bf8577fa57a064736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x16E8 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA270A737 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x447 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x463 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0xA270A737 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x323 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x35F JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST PUSH2 0x49F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH2 0x527 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x578 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x107A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x217 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x212 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x59F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x224 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x6F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24C SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH2 0x74E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x267 PUSH2 0x787 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x79A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x120E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B4 SWAP2 SWAP1 PUSH2 0x120E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D1 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31A SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x349 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x356 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x373 PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3AA SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0xAC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BC SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D9 PUSH2 0xAEB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E6 SWAP2 SWAP1 PUSH2 0x107A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x409 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x404 SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0xB3B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x461 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45C SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB6E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x489 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x484 SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB97 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1E2E16A800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x511 JUMPI POP PUSH2 0x510 DUP3 PUSH2 0xBB0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x530 PUSH2 0xC29 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x1E2E16A800000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x5A8 PUSH2 0xC33 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x5D1 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0x139B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x602 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x5 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x6BC CALLER PUSH2 0xC5C JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x6F2 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x713 JUMPI PUSH2 0x712 PUSH2 0x1280 JUMP JUMPDEST 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 0x745 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x78F PUSH2 0xD32 JUMP JUMPDEST PUSH2 0x798 PUSH0 PUSH2 0xD69 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x7F6 PUSH2 0xD32 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x806 SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST SWAP1 POP PUSH2 0x814 DUP2 PUSH0 ADD MLOAD PUSH2 0xE2F JUMP JUMPDEST PUSH2 0x84A JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x85B SWAP1 PUSH2 0x1553 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP4 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x918 SWAP3 SWAP2 SWAP1 PUSH2 0x159A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x982 SWAP2 SWAP1 PUSH2 0x15FB JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x9BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9C0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x9FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x360E42E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA71 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1676 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xA8D SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAD4 SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST SWAP1 POP PUSH2 0xAE2 DUP2 PUSH0 ADD MLOAD PUSH2 0xE2F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xB05 PUSH2 0xD32 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xB2B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xB38 DUP2 PUSH2 0xD69 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB76 PUSH2 0xD32 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xB8B JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xB94 DUP2 PUSH2 0xD69 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC22 JUMPI POP PUSH2 0xC21 DUP3 PUSH2 0xE90 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC64 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xCDC JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xC9E JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xD2F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xD67 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xD71 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xDD6 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xE2C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0xE89 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF02 JUMPI POP PUSH2 0xF01 DUP3 PUSH2 0xF0D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFBB DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP2 EQ PUSH2 0xFC5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFD6 DUP2 PUSH2 0xFB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF1 JUMPI PUSH2 0xFF0 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFFE DUP5 DUP3 DUP6 ADD PUSH2 0xFC8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x101B DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1034 PUSH0 DUP4 ADD DUP5 PUSH2 0x1012 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104C DUP2 PUSH2 0x103A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1065 PUSH0 DUP4 ADD DUP5 PUSH2 0x1043 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1074 DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x108D PUSH0 DUP4 ADD DUP5 PUSH2 0x106B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x10B4 JUMPI PUSH2 0x10B3 PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10D1 JUMPI PUSH2 0x10D0 PUSH2 0x1097 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x10ED JUMPI PUSH2 0x10EC PUSH2 0x109B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x110A JUMPI PUSH2 0x1109 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x1133 DUP6 DUP3 DUP7 ADD PUSH2 0x109F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x113F JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1149 JUMP JUMPDEST SWAP4 POP PUSH2 0x119B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x11A4 DUP2 PUSH2 0x1167 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11C7 DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11F8 DUP3 PUSH2 0x11CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1208 DUP2 PUSH2 0x11EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1221 PUSH0 DUP4 ADD DUP5 PUSH2 0x11FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1230 DUP2 PUSH2 0x11EE JUMP JUMPDEST DUP2 EQ PUSH2 0x123A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x124B DUP2 PUSH2 0x1227 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1266 JUMPI PUSH2 0x1265 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1273 DUP5 DUP3 DUP6 ADD PUSH2 0x123D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x12B6 DUP3 PUSH2 0x1167 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x12D5 JUMPI PUSH2 0x12D4 PUSH2 0x1280 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x12E7 PUSH2 0xF76 JUMP JUMPDEST SWAP1 POP PUSH2 0x12F3 DUP3 DUP3 PUSH2 0x12AD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1305 DUP2 PUSH2 0x103A JUMP JUMPDEST DUP2 EQ PUSH2 0x130F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1320 DUP2 PUSH2 0x12FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x133B JUMPI PUSH2 0x133A PUSH2 0x127C JUMP JUMPDEST JUMPDEST PUSH2 0x1345 PUSH1 0x80 PUSH2 0x12DE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1354 DUP5 DUP3 DUP6 ADD PUSH2 0x123D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1367 DUP5 DUP3 DUP6 ADD PUSH2 0xFC8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x137B DUP5 DUP3 DUP6 ADD PUSH2 0x1312 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x138F DUP5 DUP3 DUP6 ADD PUSH2 0x1312 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13B0 JUMPI PUSH2 0x13AF PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13BD DUP5 DUP3 DUP6 ADD PUSH2 0x1326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x13E4 JUMPI PUSH2 0x13E3 PUSH2 0x1280 JUMP JUMPDEST JUMPDEST PUSH2 0x13ED DUP3 PUSH2 0x1167 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x141A PUSH2 0x1415 DUP5 PUSH2 0x13CA JUMP JUMPDEST PUSH2 0x12DE JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1436 JUMPI PUSH2 0x1435 PUSH2 0x13C6 JUMP JUMPDEST JUMPDEST PUSH2 0x1441 DUP5 DUP3 DUP6 PUSH2 0x13FA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x145D JUMPI PUSH2 0x145C PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x146D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1408 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x148B JUMPI PUSH2 0x148A PUSH2 0x127C JUMP JUMPDEST JUMPDEST PUSH2 0x1495 PUSH1 0x40 PUSH2 0x12DE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x14A4 DUP5 DUP3 DUP6 ADD PUSH2 0x123D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12F8 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP5 DUP3 DUP6 ADD PUSH2 0x1449 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14F4 JUMPI PUSH2 0x14F3 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1511 JUMPI PUSH2 0x1510 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x151D DUP5 DUP3 DUP6 ADD PUSH2 0x1476 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x155D DUP3 PUSH2 0x103A JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x158F JUMPI PUSH2 0x158E PUSH2 0x1526 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15AD PUSH0 DUP4 ADD DUP6 PUSH2 0x11FF JUMP JUMPDEST PUSH2 0x15BA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1043 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D5 DUP3 PUSH2 0x113F JUMP JUMPDEST PUSH2 0x15DF DUP2 DUP6 PUSH2 0x15C1 JUMP JUMPDEST SWAP4 POP PUSH2 0x15EF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1159 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1606 DUP3 DUP5 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1627 DUP3 PUSH2 0x1611 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1638 DUP3 PUSH2 0x161D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1650 PUSH2 0x164B DUP3 PUSH2 0x11EE JUMP JUMPDEST PUSH2 0x162E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1670 PUSH2 0x166B DUP3 PUSH2 0x103A JUMP JUMPDEST PUSH2 0x1656 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1681 DUP3 DUP7 PUSH2 0x163F JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1691 DUP3 DUP6 PUSH2 0x163F JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x16A1 DUP3 DUP5 PUSH2 0x165F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0xC0 PUSH26 0xFB65343FEA841B98C134EF18046776671385A6CDE592E7BF8577 STATICCALL JUMPI LOG0 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"675:1123:55:-:0;;;1157:53;;;;;;;;;;1647:28:54;1664:10;1647:16;;;:28;;:::i;:::-;1181:22:55;:20;;;:22;;:::i;:::-;675:1123;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;675:1123:55:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6308":{"entryPoint":3378,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":3849,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":3123,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":3164,"id":6288,"parameterSlots":1,"returnSlots":0},"@_isClaimable_17361":{"entryPoint":3631,"id":17361,"parameterSlots":1,"returnSlots":1},"@_ownershipHandoverValidFor_6319":{"entryPoint":3113,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":3433,"id":6302,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":1870,"id":6368,"parameterSlots":0,"returnSlots":0},"@claim_17288":{"entryPoint":2029,"id":17288,"parameterSlots":2,"returnSlots":1},"@claimed_18107":{"entryPoint":2721,"id":18107,"parameterSlots":0,"returnSlots":0},"@claims_18099":{"entryPoint":2750,"id":18099,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":2813,"id":6382,"parameterSlots":1,"returnSlots":0},"@currentReward_18158":{"entryPoint":1304,"id":18158,"parameterSlots":0,"returnSlots":1},"@getComponentInterface_17375":{"entryPoint":1400,"id":17375,"parameterSlots":0,"returnSlots":1},"@initialize_18285":{"entryPoint":1439,"id":18285,"parameterSlots":2,"returnSlots":0},"@isClaimable_17343":{"entryPoint":2755,"id":17343,"parameterSlots":2,"returnSlots":1},"@limit_17200":{"entryPoint":2023,"id":17200,"parameterSlots":0,"returnSlots":0},"@owner_6390":{"entryPoint":1946,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":2967,"id":6400,"parameterSlots":1,"returnSlots":1},"@preflight_17318":{"entryPoint":1783,"id":17318,"parameterSlots":2,"returnSlots":1},"@reclaim_17303":{"entryPoint":2875,"id":17303,"parameterSlots":2,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":1927,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":1319,"id":6362,"parameterSlots":0,"returnSlots":0},"@reward_18102":{"entryPoint":1313,"id":18102,"parameterSlots":0,"returnSlots":0},"@selector_17203":{"entryPoint":2795,"id":17203,"parameterSlots":0,"returnSlots":0},"@supportsInterface_17398":{"entryPoint":1183,"id":17398,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18181":{"entryPoint":2992,"id":18181,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18508":{"entryPoint":3728,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":3853,"id":2830,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":2926,"id":6333,"parameterSlots":1,"returnSlots":0},"@venue_17197":{"entryPoint":1986,"id":17197,"parameterSlots":0,"returnSlots":0},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":5128,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4669,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":4040,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":4255,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":5193,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":5238,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_InitPayload_$18217_memory_ptr":{"entryPoint":4902,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":4882,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4689,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":4060,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":4340,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr":{"entryPoint":5343,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_InitPayload_$18217_memory_ptr":{"entryPoint":5019,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4607,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack":{"entryPoint":5695,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":4114,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":4203,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":4471,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5579,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4163,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack":{"entryPoint":5727,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed":{"entryPoint":5750,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":5627,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4622,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":5530,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":4129,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":4218,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4527,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4178,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4830,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3958,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":5066,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":4415,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":4425,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":5569,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4590,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":4103,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3975,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4559,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4154,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5114,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4441,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4781,"id":null,"parameterSlots":2,"returnSlots":0},"increment_t_uint256":{"entryPoint":5459,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_address":{"entryPoint":5678,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint160":{"entryPoint":5661,"id":null,"parameterSlots":1,"returnSlots":1},"leftAlign_t_uint256":{"entryPoint":5718,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":5414,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4736,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":4247,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4243,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":4732,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":4856,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":4251,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":5062,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3971,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3967,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4455,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_96":{"entryPoint":5649,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":4647,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":4018,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":4860,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14239:64","nodeType":"YulBlock","src":"0:14239:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1563:32:64","nodeType":"YulBlock","src":"1563:32:64","statements":[{"nativeSrc":"1573:16:64","nodeType":"YulAssignment","src":"1573:16:64","value":{"name":"value","nativeSrc":"1584:5:64","nodeType":"YulIdentifier","src":"1584:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1573:7:64","nodeType":"YulIdentifier","src":"1573:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1518:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1545:5:64","nodeType":"YulTypedName","src":"1545:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1555:7:64","nodeType":"YulTypedName","src":"1555:7:64","type":""}],"src":"1518:77:64"},{"body":{"nativeSrc":"1666:53:64","nodeType":"YulBlock","src":"1666:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1683:3:64","nodeType":"YulIdentifier","src":"1683:3:64"},{"arguments":[{"name":"value","nativeSrc":"1706:5:64","nodeType":"YulIdentifier","src":"1706:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1688:17:64","nodeType":"YulIdentifier","src":"1688:17:64"},"nativeSrc":"1688:24:64","nodeType":"YulFunctionCall","src":"1688:24:64"}],"functionName":{"name":"mstore","nativeSrc":"1676:6:64","nodeType":"YulIdentifier","src":"1676:6:64"},"nativeSrc":"1676:37:64","nodeType":"YulFunctionCall","src":"1676:37:64"},"nativeSrc":"1676:37:64","nodeType":"YulExpressionStatement","src":"1676:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1601:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1654:5:64","nodeType":"YulTypedName","src":"1654:5:64","type":""},{"name":"pos","nativeSrc":"1661:3:64","nodeType":"YulTypedName","src":"1661:3:64","type":""}],"src":"1601:118:64"},{"body":{"nativeSrc":"1823:124:64","nodeType":"YulBlock","src":"1823:124:64","statements":[{"nativeSrc":"1833:26:64","nodeType":"YulAssignment","src":"1833:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1845:9:64","nodeType":"YulIdentifier","src":"1845:9:64"},{"kind":"number","nativeSrc":"1856:2:64","nodeType":"YulLiteral","src":"1856:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1841:3:64","nodeType":"YulIdentifier","src":"1841:3:64"},"nativeSrc":"1841:18:64","nodeType":"YulFunctionCall","src":"1841:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1833:4:64","nodeType":"YulIdentifier","src":"1833:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1913:6:64","nodeType":"YulIdentifier","src":"1913:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1926:9:64","nodeType":"YulIdentifier","src":"1926:9:64"},{"kind":"number","nativeSrc":"1937:1:64","nodeType":"YulLiteral","src":"1937:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1922:3:64","nodeType":"YulIdentifier","src":"1922:3:64"},"nativeSrc":"1922:17:64","nodeType":"YulFunctionCall","src":"1922:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1869:43:64","nodeType":"YulIdentifier","src":"1869:43:64"},"nativeSrc":"1869:71:64","nodeType":"YulFunctionCall","src":"1869:71:64"},"nativeSrc":"1869:71:64","nodeType":"YulExpressionStatement","src":"1869:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1725:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1795:9:64","nodeType":"YulTypedName","src":"1795:9:64","type":""},{"name":"value0","nativeSrc":"1807:6:64","nodeType":"YulTypedName","src":"1807:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1818:4:64","nodeType":"YulTypedName","src":"1818:4:64","type":""}],"src":"1725:222:64"},{"body":{"nativeSrc":"2016:52:64","nodeType":"YulBlock","src":"2016:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2033:3:64","nodeType":"YulIdentifier","src":"2033:3:64"},{"arguments":[{"name":"value","nativeSrc":"2055:5:64","nodeType":"YulIdentifier","src":"2055:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2038:16:64","nodeType":"YulIdentifier","src":"2038:16:64"},"nativeSrc":"2038:23:64","nodeType":"YulFunctionCall","src":"2038:23:64"}],"functionName":{"name":"mstore","nativeSrc":"2026:6:64","nodeType":"YulIdentifier","src":"2026:6:64"},"nativeSrc":"2026:36:64","nodeType":"YulFunctionCall","src":"2026:36:64"},"nativeSrc":"2026:36:64","nodeType":"YulExpressionStatement","src":"2026:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"1953:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2004:5:64","nodeType":"YulTypedName","src":"2004:5:64","type":""},{"name":"pos","nativeSrc":"2011:3:64","nodeType":"YulTypedName","src":"2011:3:64","type":""}],"src":"1953:115:64"},{"body":{"nativeSrc":"2170:122:64","nodeType":"YulBlock","src":"2170:122:64","statements":[{"nativeSrc":"2180:26:64","nodeType":"YulAssignment","src":"2180:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2192:9:64","nodeType":"YulIdentifier","src":"2192:9:64"},{"kind":"number","nativeSrc":"2203:2:64","nodeType":"YulLiteral","src":"2203:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2188:3:64","nodeType":"YulIdentifier","src":"2188:3:64"},"nativeSrc":"2188:18:64","nodeType":"YulFunctionCall","src":"2188:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2180:4:64","nodeType":"YulIdentifier","src":"2180:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"2258:6:64","nodeType":"YulIdentifier","src":"2258:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2271:9:64","nodeType":"YulIdentifier","src":"2271:9:64"},{"kind":"number","nativeSrc":"2282:1:64","nodeType":"YulLiteral","src":"2282:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2267:3:64","nodeType":"YulIdentifier","src":"2267:3:64"},"nativeSrc":"2267:17:64","nodeType":"YulFunctionCall","src":"2267:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"2216:41:64","nodeType":"YulIdentifier","src":"2216:41:64"},"nativeSrc":"2216:69:64","nodeType":"YulFunctionCall","src":"2216:69:64"},"nativeSrc":"2216:69:64","nodeType":"YulExpressionStatement","src":"2216:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"2074:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2142:9:64","nodeType":"YulTypedName","src":"2142:9:64","type":""},{"name":"value0","nativeSrc":"2154:6:64","nodeType":"YulTypedName","src":"2154:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2165:4:64","nodeType":"YulTypedName","src":"2165:4:64","type":""}],"src":"2074:218:64"},{"body":{"nativeSrc":"2387:28:64","nodeType":"YulBlock","src":"2387:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2404:1:64","nodeType":"YulLiteral","src":"2404:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2407:1:64","nodeType":"YulLiteral","src":"2407:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2397:6:64","nodeType":"YulIdentifier","src":"2397:6:64"},"nativeSrc":"2397:12:64","nodeType":"YulFunctionCall","src":"2397:12:64"},"nativeSrc":"2397:12:64","nodeType":"YulExpressionStatement","src":"2397:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2298:117:64","nodeType":"YulFunctionDefinition","src":"2298:117:64"},{"body":{"nativeSrc":"2510:28:64","nodeType":"YulBlock","src":"2510:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2527:1:64","nodeType":"YulLiteral","src":"2527:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2530:1:64","nodeType":"YulLiteral","src":"2530:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2520:6:64","nodeType":"YulIdentifier","src":"2520:6:64"},"nativeSrc":"2520:12:64","nodeType":"YulFunctionCall","src":"2520:12:64"},"nativeSrc":"2520:12:64","nodeType":"YulExpressionStatement","src":"2520:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2421:117:64","nodeType":"YulFunctionDefinition","src":"2421:117:64"},{"body":{"nativeSrc":"2633:28:64","nodeType":"YulBlock","src":"2633:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2650:1:64","nodeType":"YulLiteral","src":"2650:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2653:1:64","nodeType":"YulLiteral","src":"2653:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2643:6:64","nodeType":"YulIdentifier","src":"2643:6:64"},"nativeSrc":"2643:12:64","nodeType":"YulFunctionCall","src":"2643:12:64"},"nativeSrc":"2643:12:64","nodeType":"YulExpressionStatement","src":"2643:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2544:117:64","nodeType":"YulFunctionDefinition","src":"2544:117:64"},{"body":{"nativeSrc":"2754:478:64","nodeType":"YulBlock","src":"2754:478:64","statements":[{"body":{"nativeSrc":"2803:83:64","nodeType":"YulBlock","src":"2803:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2805:77:64","nodeType":"YulIdentifier","src":"2805:77:64"},"nativeSrc":"2805:79:64","nodeType":"YulFunctionCall","src":"2805:79:64"},"nativeSrc":"2805:79:64","nodeType":"YulExpressionStatement","src":"2805:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2782:6:64","nodeType":"YulIdentifier","src":"2782:6:64"},{"kind":"number","nativeSrc":"2790:4:64","nodeType":"YulLiteral","src":"2790:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2778:3:64","nodeType":"YulIdentifier","src":"2778:3:64"},"nativeSrc":"2778:17:64","nodeType":"YulFunctionCall","src":"2778:17:64"},{"name":"end","nativeSrc":"2797:3:64","nodeType":"YulIdentifier","src":"2797:3:64"}],"functionName":{"name":"slt","nativeSrc":"2774:3:64","nodeType":"YulIdentifier","src":"2774:3:64"},"nativeSrc":"2774:27:64","nodeType":"YulFunctionCall","src":"2774:27:64"}],"functionName":{"name":"iszero","nativeSrc":"2767:6:64","nodeType":"YulIdentifier","src":"2767:6:64"},"nativeSrc":"2767:35:64","nodeType":"YulFunctionCall","src":"2767:35:64"},"nativeSrc":"2764:122:64","nodeType":"YulIf","src":"2764:122:64"},{"nativeSrc":"2895:30:64","nodeType":"YulAssignment","src":"2895:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"2918:6:64","nodeType":"YulIdentifier","src":"2918:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2905:12:64","nodeType":"YulIdentifier","src":"2905:12:64"},"nativeSrc":"2905:20:64","nodeType":"YulFunctionCall","src":"2905:20:64"},"variableNames":[{"name":"length","nativeSrc":"2895:6:64","nodeType":"YulIdentifier","src":"2895:6:64"}]},{"body":{"nativeSrc":"2968:83:64","nodeType":"YulBlock","src":"2968:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2970:77:64","nodeType":"YulIdentifier","src":"2970:77:64"},"nativeSrc":"2970:79:64","nodeType":"YulFunctionCall","src":"2970:79:64"},"nativeSrc":"2970:79:64","nodeType":"YulExpressionStatement","src":"2970:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2940:6:64","nodeType":"YulIdentifier","src":"2940:6:64"},{"kind":"number","nativeSrc":"2948:18:64","nodeType":"YulLiteral","src":"2948:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2937:2:64","nodeType":"YulIdentifier","src":"2937:2:64"},"nativeSrc":"2937:30:64","nodeType":"YulFunctionCall","src":"2937:30:64"},"nativeSrc":"2934:117:64","nodeType":"YulIf","src":"2934:117:64"},{"nativeSrc":"3060:29:64","nodeType":"YulAssignment","src":"3060:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"3076:6:64","nodeType":"YulIdentifier","src":"3076:6:64"},{"kind":"number","nativeSrc":"3084:4:64","nodeType":"YulLiteral","src":"3084:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3072:3:64","nodeType":"YulIdentifier","src":"3072:3:64"},"nativeSrc":"3072:17:64","nodeType":"YulFunctionCall","src":"3072:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"3060:8:64","nodeType":"YulIdentifier","src":"3060:8:64"}]},{"body":{"nativeSrc":"3143:83:64","nodeType":"YulBlock","src":"3143:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3145:77:64","nodeType":"YulIdentifier","src":"3145:77:64"},"nativeSrc":"3145:79:64","nodeType":"YulFunctionCall","src":"3145:79:64"},"nativeSrc":"3145:79:64","nodeType":"YulExpressionStatement","src":"3145:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3108:8:64","nodeType":"YulIdentifier","src":"3108:8:64"},{"arguments":[{"name":"length","nativeSrc":"3122:6:64","nodeType":"YulIdentifier","src":"3122:6:64"},{"kind":"number","nativeSrc":"3130:4:64","nodeType":"YulLiteral","src":"3130:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"3118:3:64","nodeType":"YulIdentifier","src":"3118:3:64"},"nativeSrc":"3118:17:64","nodeType":"YulFunctionCall","src":"3118:17:64"}],"functionName":{"name":"add","nativeSrc":"3104:3:64","nodeType":"YulIdentifier","src":"3104:3:64"},"nativeSrc":"3104:32:64","nodeType":"YulFunctionCall","src":"3104:32:64"},{"name":"end","nativeSrc":"3138:3:64","nodeType":"YulIdentifier","src":"3138:3:64"}],"functionName":{"name":"gt","nativeSrc":"3101:2:64","nodeType":"YulIdentifier","src":"3101:2:64"},"nativeSrc":"3101:41:64","nodeType":"YulFunctionCall","src":"3101:41:64"},"nativeSrc":"3098:128:64","nodeType":"YulIf","src":"3098:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"2680:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2721:6:64","nodeType":"YulTypedName","src":"2721:6:64","type":""},{"name":"end","nativeSrc":"2729:3:64","nodeType":"YulTypedName","src":"2729:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2737:8:64","nodeType":"YulTypedName","src":"2737:8:64","type":""},{"name":"length","nativeSrc":"2747:6:64","nodeType":"YulTypedName","src":"2747:6:64","type":""}],"src":"2680:552:64"},{"body":{"nativeSrc":"3323:442:64","nodeType":"YulBlock","src":"3323:442:64","statements":[{"body":{"nativeSrc":"3369:83:64","nodeType":"YulBlock","src":"3369:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3371:77:64","nodeType":"YulIdentifier","src":"3371:77:64"},"nativeSrc":"3371:79:64","nodeType":"YulFunctionCall","src":"3371:79:64"},"nativeSrc":"3371:79:64","nodeType":"YulExpressionStatement","src":"3371:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3344:7:64","nodeType":"YulIdentifier","src":"3344:7:64"},{"name":"headStart","nativeSrc":"3353:9:64","nodeType":"YulIdentifier","src":"3353:9:64"}],"functionName":{"name":"sub","nativeSrc":"3340:3:64","nodeType":"YulIdentifier","src":"3340:3:64"},"nativeSrc":"3340:23:64","nodeType":"YulFunctionCall","src":"3340:23:64"},{"kind":"number","nativeSrc":"3365:2:64","nodeType":"YulLiteral","src":"3365:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3336:3:64","nodeType":"YulIdentifier","src":"3336:3:64"},"nativeSrc":"3336:32:64","nodeType":"YulFunctionCall","src":"3336:32:64"},"nativeSrc":"3333:119:64","nodeType":"YulIf","src":"3333:119:64"},{"nativeSrc":"3462:296:64","nodeType":"YulBlock","src":"3462:296:64","statements":[{"nativeSrc":"3477:45:64","nodeType":"YulVariableDeclaration","src":"3477:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3508:9:64","nodeType":"YulIdentifier","src":"3508:9:64"},{"kind":"number","nativeSrc":"3519:1:64","nodeType":"YulLiteral","src":"3519:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3504:3:64","nodeType":"YulIdentifier","src":"3504:3:64"},"nativeSrc":"3504:17:64","nodeType":"YulFunctionCall","src":"3504:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"3491:12:64","nodeType":"YulIdentifier","src":"3491:12:64"},"nativeSrc":"3491:31:64","nodeType":"YulFunctionCall","src":"3491:31:64"},"variables":[{"name":"offset","nativeSrc":"3481:6:64","nodeType":"YulTypedName","src":"3481:6:64","type":""}]},{"body":{"nativeSrc":"3569:83:64","nodeType":"YulBlock","src":"3569:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3571:77:64","nodeType":"YulIdentifier","src":"3571:77:64"},"nativeSrc":"3571:79:64","nodeType":"YulFunctionCall","src":"3571:79:64"},"nativeSrc":"3571:79:64","nodeType":"YulExpressionStatement","src":"3571:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3541:6:64","nodeType":"YulIdentifier","src":"3541:6:64"},{"kind":"number","nativeSrc":"3549:18:64","nodeType":"YulLiteral","src":"3549:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3538:2:64","nodeType":"YulIdentifier","src":"3538:2:64"},"nativeSrc":"3538:30:64","nodeType":"YulFunctionCall","src":"3538:30:64"},"nativeSrc":"3535:117:64","nodeType":"YulIf","src":"3535:117:64"},{"nativeSrc":"3666:82:64","nodeType":"YulAssignment","src":"3666:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3720:9:64","nodeType":"YulIdentifier","src":"3720:9:64"},{"name":"offset","nativeSrc":"3731:6:64","nodeType":"YulIdentifier","src":"3731:6:64"}],"functionName":{"name":"add","nativeSrc":"3716:3:64","nodeType":"YulIdentifier","src":"3716:3:64"},"nativeSrc":"3716:22:64","nodeType":"YulFunctionCall","src":"3716:22:64"},{"name":"dataEnd","nativeSrc":"3740:7:64","nodeType":"YulIdentifier","src":"3740:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"3684:31:64","nodeType":"YulIdentifier","src":"3684:31:64"},"nativeSrc":"3684:64:64","nodeType":"YulFunctionCall","src":"3684:64:64"},"variableNames":[{"name":"value0","nativeSrc":"3666:6:64","nodeType":"YulIdentifier","src":"3666:6:64"},{"name":"value1","nativeSrc":"3674:6:64","nodeType":"YulIdentifier","src":"3674:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"3238:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3285:9:64","nodeType":"YulTypedName","src":"3285:9:64","type":""},{"name":"dataEnd","nativeSrc":"3296:7:64","nodeType":"YulTypedName","src":"3296:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3308:6:64","nodeType":"YulTypedName","src":"3308:6:64","type":""},{"name":"value1","nativeSrc":"3316:6:64","nodeType":"YulTypedName","src":"3316:6:64","type":""}],"src":"3238:527:64"},{"body":{"nativeSrc":"3829:40:64","nodeType":"YulBlock","src":"3829:40:64","statements":[{"nativeSrc":"3840:22:64","nodeType":"YulAssignment","src":"3840:22:64","value":{"arguments":[{"name":"value","nativeSrc":"3856:5:64","nodeType":"YulIdentifier","src":"3856:5:64"}],"functionName":{"name":"mload","nativeSrc":"3850:5:64","nodeType":"YulIdentifier","src":"3850:5:64"},"nativeSrc":"3850:12:64","nodeType":"YulFunctionCall","src":"3850:12:64"},"variableNames":[{"name":"length","nativeSrc":"3840:6:64","nodeType":"YulIdentifier","src":"3840:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"3771:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3812:5:64","nodeType":"YulTypedName","src":"3812:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3822:6:64","nodeType":"YulTypedName","src":"3822:6:64","type":""}],"src":"3771:98:64"},{"body":{"nativeSrc":"3970:73:64","nodeType":"YulBlock","src":"3970:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3987:3:64","nodeType":"YulIdentifier","src":"3987:3:64"},{"name":"length","nativeSrc":"3992:6:64","nodeType":"YulIdentifier","src":"3992:6:64"}],"functionName":{"name":"mstore","nativeSrc":"3980:6:64","nodeType":"YulIdentifier","src":"3980:6:64"},"nativeSrc":"3980:19:64","nodeType":"YulFunctionCall","src":"3980:19:64"},"nativeSrc":"3980:19:64","nodeType":"YulExpressionStatement","src":"3980:19:64"},{"nativeSrc":"4008:29:64","nodeType":"YulAssignment","src":"4008:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"4027:3:64","nodeType":"YulIdentifier","src":"4027:3:64"},{"kind":"number","nativeSrc":"4032:4:64","nodeType":"YulLiteral","src":"4032:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4023:3:64","nodeType":"YulIdentifier","src":"4023:3:64"},"nativeSrc":"4023:14:64","nodeType":"YulFunctionCall","src":"4023:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"4008:11:64","nodeType":"YulIdentifier","src":"4008:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"3875:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3942:3:64","nodeType":"YulTypedName","src":"3942:3:64","type":""},{"name":"length","nativeSrc":"3947:6:64","nodeType":"YulTypedName","src":"3947:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3958:11:64","nodeType":"YulTypedName","src":"3958:11:64","type":""}],"src":"3875:168:64"},{"body":{"nativeSrc":"4111:77:64","nodeType":"YulBlock","src":"4111:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"4128:3:64","nodeType":"YulIdentifier","src":"4128:3:64"},{"name":"src","nativeSrc":"4133:3:64","nodeType":"YulIdentifier","src":"4133:3:64"},{"name":"length","nativeSrc":"4138:6:64","nodeType":"YulIdentifier","src":"4138:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"4122:5:64","nodeType":"YulIdentifier","src":"4122:5:64"},"nativeSrc":"4122:23:64","nodeType":"YulFunctionCall","src":"4122:23:64"},"nativeSrc":"4122:23:64","nodeType":"YulExpressionStatement","src":"4122:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"4165:3:64","nodeType":"YulIdentifier","src":"4165:3:64"},{"name":"length","nativeSrc":"4170:6:64","nodeType":"YulIdentifier","src":"4170:6:64"}],"functionName":{"name":"add","nativeSrc":"4161:3:64","nodeType":"YulIdentifier","src":"4161:3:64"},"nativeSrc":"4161:16:64","nodeType":"YulFunctionCall","src":"4161:16:64"},{"kind":"number","nativeSrc":"4179:1:64","nodeType":"YulLiteral","src":"4179:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"4154:6:64","nodeType":"YulIdentifier","src":"4154:6:64"},"nativeSrc":"4154:27:64","nodeType":"YulFunctionCall","src":"4154:27:64"},"nativeSrc":"4154:27:64","nodeType":"YulExpressionStatement","src":"4154:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4049:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"4093:3:64","nodeType":"YulTypedName","src":"4093:3:64","type":""},{"name":"dst","nativeSrc":"4098:3:64","nodeType":"YulTypedName","src":"4098:3:64","type":""},{"name":"length","nativeSrc":"4103:6:64","nodeType":"YulTypedName","src":"4103:6:64","type":""}],"src":"4049:139:64"},{"body":{"nativeSrc":"4242:54:64","nodeType":"YulBlock","src":"4242:54:64","statements":[{"nativeSrc":"4252:38:64","nodeType":"YulAssignment","src":"4252:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4270:5:64","nodeType":"YulIdentifier","src":"4270:5:64"},{"kind":"number","nativeSrc":"4277:2:64","nodeType":"YulLiteral","src":"4277:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4266:3:64","nodeType":"YulIdentifier","src":"4266:3:64"},"nativeSrc":"4266:14:64","nodeType":"YulFunctionCall","src":"4266:14:64"},{"arguments":[{"kind":"number","nativeSrc":"4286:2:64","nodeType":"YulLiteral","src":"4286:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4282:3:64","nodeType":"YulIdentifier","src":"4282:3:64"},"nativeSrc":"4282:7:64","nodeType":"YulFunctionCall","src":"4282:7:64"}],"functionName":{"name":"and","nativeSrc":"4262:3:64","nodeType":"YulIdentifier","src":"4262:3:64"},"nativeSrc":"4262:28:64","nodeType":"YulFunctionCall","src":"4262:28:64"},"variableNames":[{"name":"result","nativeSrc":"4252:6:64","nodeType":"YulIdentifier","src":"4252:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"4194:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4225:5:64","nodeType":"YulTypedName","src":"4225:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4235:6:64","nodeType":"YulTypedName","src":"4235:6:64","type":""}],"src":"4194:102:64"},{"body":{"nativeSrc":"4392:283:64","nodeType":"YulBlock","src":"4392:283:64","statements":[{"nativeSrc":"4402:52:64","nodeType":"YulVariableDeclaration","src":"4402:52:64","value":{"arguments":[{"name":"value","nativeSrc":"4448:5:64","nodeType":"YulIdentifier","src":"4448:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"4416:31:64","nodeType":"YulIdentifier","src":"4416:31:64"},"nativeSrc":"4416:38:64","nodeType":"YulFunctionCall","src":"4416:38:64"},"variables":[{"name":"length","nativeSrc":"4406:6:64","nodeType":"YulTypedName","src":"4406:6:64","type":""}]},{"nativeSrc":"4463:77:64","nodeType":"YulAssignment","src":"4463:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"4528:3:64","nodeType":"YulIdentifier","src":"4528:3:64"},{"name":"length","nativeSrc":"4533:6:64","nodeType":"YulIdentifier","src":"4533:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"4470:57:64","nodeType":"YulIdentifier","src":"4470:57:64"},"nativeSrc":"4470:70:64","nodeType":"YulFunctionCall","src":"4470:70:64"},"variableNames":[{"name":"pos","nativeSrc":"4463:3:64","nodeType":"YulIdentifier","src":"4463:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4588:5:64","nodeType":"YulIdentifier","src":"4588:5:64"},{"kind":"number","nativeSrc":"4595:4:64","nodeType":"YulLiteral","src":"4595:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4584:3:64","nodeType":"YulIdentifier","src":"4584:3:64"},"nativeSrc":"4584:16:64","nodeType":"YulFunctionCall","src":"4584:16:64"},{"name":"pos","nativeSrc":"4602:3:64","nodeType":"YulIdentifier","src":"4602:3:64"},{"name":"length","nativeSrc":"4607:6:64","nodeType":"YulIdentifier","src":"4607:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4549:34:64","nodeType":"YulIdentifier","src":"4549:34:64"},"nativeSrc":"4549:65:64","nodeType":"YulFunctionCall","src":"4549:65:64"},"nativeSrc":"4549:65:64","nodeType":"YulExpressionStatement","src":"4549:65:64"},{"nativeSrc":"4623:46:64","nodeType":"YulAssignment","src":"4623:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"4634:3:64","nodeType":"YulIdentifier","src":"4634:3:64"},{"arguments":[{"name":"length","nativeSrc":"4661:6:64","nodeType":"YulIdentifier","src":"4661:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4639:21:64","nodeType":"YulIdentifier","src":"4639:21:64"},"nativeSrc":"4639:29:64","nodeType":"YulFunctionCall","src":"4639:29:64"}],"functionName":{"name":"add","nativeSrc":"4630:3:64","nodeType":"YulIdentifier","src":"4630:3:64"},"nativeSrc":"4630:39:64","nodeType":"YulFunctionCall","src":"4630:39:64"},"variableNames":[{"name":"end","nativeSrc":"4623:3:64","nodeType":"YulIdentifier","src":"4623:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4302:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4373:5:64","nodeType":"YulTypedName","src":"4373:5:64","type":""},{"name":"pos","nativeSrc":"4380:3:64","nodeType":"YulTypedName","src":"4380:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4388:3:64","nodeType":"YulTypedName","src":"4388:3:64","type":""}],"src":"4302:373:64"},{"body":{"nativeSrc":"4797:193:64","nodeType":"YulBlock","src":"4797:193:64","statements":[{"nativeSrc":"4807:26:64","nodeType":"YulAssignment","src":"4807:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4819:9:64","nodeType":"YulIdentifier","src":"4819:9:64"},{"kind":"number","nativeSrc":"4830:2:64","nodeType":"YulLiteral","src":"4830:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4815:3:64","nodeType":"YulIdentifier","src":"4815:3:64"},"nativeSrc":"4815:18:64","nodeType":"YulFunctionCall","src":"4815:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4807:4:64","nodeType":"YulIdentifier","src":"4807:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4854:9:64","nodeType":"YulIdentifier","src":"4854:9:64"},{"kind":"number","nativeSrc":"4865:1:64","nodeType":"YulLiteral","src":"4865:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4850:3:64","nodeType":"YulIdentifier","src":"4850:3:64"},"nativeSrc":"4850:17:64","nodeType":"YulFunctionCall","src":"4850:17:64"},{"arguments":[{"name":"tail","nativeSrc":"4873:4:64","nodeType":"YulIdentifier","src":"4873:4:64"},{"name":"headStart","nativeSrc":"4879:9:64","nodeType":"YulIdentifier","src":"4879:9:64"}],"functionName":{"name":"sub","nativeSrc":"4869:3:64","nodeType":"YulIdentifier","src":"4869:3:64"},"nativeSrc":"4869:20:64","nodeType":"YulFunctionCall","src":"4869:20:64"}],"functionName":{"name":"mstore","nativeSrc":"4843:6:64","nodeType":"YulIdentifier","src":"4843:6:64"},"nativeSrc":"4843:47:64","nodeType":"YulFunctionCall","src":"4843:47:64"},"nativeSrc":"4843:47:64","nodeType":"YulExpressionStatement","src":"4843:47:64"},{"nativeSrc":"4899:84:64","nodeType":"YulAssignment","src":"4899:84:64","value":{"arguments":[{"name":"value0","nativeSrc":"4969:6:64","nodeType":"YulIdentifier","src":"4969:6:64"},{"name":"tail","nativeSrc":"4978:4:64","nodeType":"YulIdentifier","src":"4978:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"4907:61:64","nodeType":"YulIdentifier","src":"4907:61:64"},"nativeSrc":"4907:76:64","nodeType":"YulFunctionCall","src":"4907:76:64"},"variableNames":[{"name":"tail","nativeSrc":"4899:4:64","nodeType":"YulIdentifier","src":"4899:4:64"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"4681:309:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4769:9:64","nodeType":"YulTypedName","src":"4769:9:64","type":""},{"name":"value0","nativeSrc":"4781:6:64","nodeType":"YulTypedName","src":"4781:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4792:4:64","nodeType":"YulTypedName","src":"4792:4:64","type":""}],"src":"4681:309:64"},{"body":{"nativeSrc":"5041:81:64","nodeType":"YulBlock","src":"5041:81:64","statements":[{"nativeSrc":"5051:65:64","nodeType":"YulAssignment","src":"5051:65:64","value":{"arguments":[{"name":"value","nativeSrc":"5066:5:64","nodeType":"YulIdentifier","src":"5066:5:64"},{"kind":"number","nativeSrc":"5073:42:64","nodeType":"YulLiteral","src":"5073:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5062:3:64","nodeType":"YulIdentifier","src":"5062:3:64"},"nativeSrc":"5062:54:64","nodeType":"YulFunctionCall","src":"5062:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5051:7:64","nodeType":"YulIdentifier","src":"5051:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"4996:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5023:5:64","nodeType":"YulTypedName","src":"5023:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5033:7:64","nodeType":"YulTypedName","src":"5033:7:64","type":""}],"src":"4996:126:64"},{"body":{"nativeSrc":"5173:51:64","nodeType":"YulBlock","src":"5173:51:64","statements":[{"nativeSrc":"5183:35:64","nodeType":"YulAssignment","src":"5183:35:64","value":{"arguments":[{"name":"value","nativeSrc":"5212:5:64","nodeType":"YulIdentifier","src":"5212:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5194:17:64","nodeType":"YulIdentifier","src":"5194:17:64"},"nativeSrc":"5194:24:64","nodeType":"YulFunctionCall","src":"5194:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5183:7:64","nodeType":"YulIdentifier","src":"5183:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"5128:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5155:5:64","nodeType":"YulTypedName","src":"5155:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5165:7:64","nodeType":"YulTypedName","src":"5165:7:64","type":""}],"src":"5128:96:64"},{"body":{"nativeSrc":"5295:53:64","nodeType":"YulBlock","src":"5295:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"5312:3:64","nodeType":"YulIdentifier","src":"5312:3:64"},{"arguments":[{"name":"value","nativeSrc":"5335:5:64","nodeType":"YulIdentifier","src":"5335:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5317:17:64","nodeType":"YulIdentifier","src":"5317:17:64"},"nativeSrc":"5317:24:64","nodeType":"YulFunctionCall","src":"5317:24:64"}],"functionName":{"name":"mstore","nativeSrc":"5305:6:64","nodeType":"YulIdentifier","src":"5305:6:64"},"nativeSrc":"5305:37:64","nodeType":"YulFunctionCall","src":"5305:37:64"},"nativeSrc":"5305:37:64","nodeType":"YulExpressionStatement","src":"5305:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5230:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5283:5:64","nodeType":"YulTypedName","src":"5283:5:64","type":""},{"name":"pos","nativeSrc":"5290:3:64","nodeType":"YulTypedName","src":"5290:3:64","type":""}],"src":"5230:118:64"},{"body":{"nativeSrc":"5452:124:64","nodeType":"YulBlock","src":"5452:124:64","statements":[{"nativeSrc":"5462:26:64","nodeType":"YulAssignment","src":"5462:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5474:9:64","nodeType":"YulIdentifier","src":"5474:9:64"},{"kind":"number","nativeSrc":"5485:2:64","nodeType":"YulLiteral","src":"5485:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5470:3:64","nodeType":"YulIdentifier","src":"5470:3:64"},"nativeSrc":"5470:18:64","nodeType":"YulFunctionCall","src":"5470:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5462:4:64","nodeType":"YulIdentifier","src":"5462:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5542:6:64","nodeType":"YulIdentifier","src":"5542:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"5555:9:64","nodeType":"YulIdentifier","src":"5555:9:64"},{"kind":"number","nativeSrc":"5566:1:64","nodeType":"YulLiteral","src":"5566:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5551:3:64","nodeType":"YulIdentifier","src":"5551:3:64"},"nativeSrc":"5551:17:64","nodeType":"YulFunctionCall","src":"5551:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"5498:43:64","nodeType":"YulIdentifier","src":"5498:43:64"},"nativeSrc":"5498:71:64","nodeType":"YulFunctionCall","src":"5498:71:64"},"nativeSrc":"5498:71:64","nodeType":"YulExpressionStatement","src":"5498:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"5354:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5424:9:64","nodeType":"YulTypedName","src":"5424:9:64","type":""},{"name":"value0","nativeSrc":"5436:6:64","nodeType":"YulTypedName","src":"5436:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5447:4:64","nodeType":"YulTypedName","src":"5447:4:64","type":""}],"src":"5354:222:64"},{"body":{"nativeSrc":"5625:79:64","nodeType":"YulBlock","src":"5625:79:64","statements":[{"body":{"nativeSrc":"5682:16:64","nodeType":"YulBlock","src":"5682:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5691:1:64","nodeType":"YulLiteral","src":"5691:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5694:1:64","nodeType":"YulLiteral","src":"5694:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5684:6:64","nodeType":"YulIdentifier","src":"5684:6:64"},"nativeSrc":"5684:12:64","nodeType":"YulFunctionCall","src":"5684:12:64"},"nativeSrc":"5684:12:64","nodeType":"YulExpressionStatement","src":"5684:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5648:5:64","nodeType":"YulIdentifier","src":"5648:5:64"},{"arguments":[{"name":"value","nativeSrc":"5673:5:64","nodeType":"YulIdentifier","src":"5673:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5655:17:64","nodeType":"YulIdentifier","src":"5655:17:64"},"nativeSrc":"5655:24:64","nodeType":"YulFunctionCall","src":"5655:24:64"}],"functionName":{"name":"eq","nativeSrc":"5645:2:64","nodeType":"YulIdentifier","src":"5645:2:64"},"nativeSrc":"5645:35:64","nodeType":"YulFunctionCall","src":"5645:35:64"}],"functionName":{"name":"iszero","nativeSrc":"5638:6:64","nodeType":"YulIdentifier","src":"5638:6:64"},"nativeSrc":"5638:43:64","nodeType":"YulFunctionCall","src":"5638:43:64"},"nativeSrc":"5635:63:64","nodeType":"YulIf","src":"5635:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"5582:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5618:5:64","nodeType":"YulTypedName","src":"5618:5:64","type":""}],"src":"5582:122:64"},{"body":{"nativeSrc":"5762:87:64","nodeType":"YulBlock","src":"5762:87:64","statements":[{"nativeSrc":"5772:29:64","nodeType":"YulAssignment","src":"5772:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"5794:6:64","nodeType":"YulIdentifier","src":"5794:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"5781:12:64","nodeType":"YulIdentifier","src":"5781:12:64"},"nativeSrc":"5781:20:64","nodeType":"YulFunctionCall","src":"5781:20:64"},"variableNames":[{"name":"value","nativeSrc":"5772:5:64","nodeType":"YulIdentifier","src":"5772:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5837:5:64","nodeType":"YulIdentifier","src":"5837:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5810:26:64","nodeType":"YulIdentifier","src":"5810:26:64"},"nativeSrc":"5810:33:64","nodeType":"YulFunctionCall","src":"5810:33:64"},"nativeSrc":"5810:33:64","nodeType":"YulExpressionStatement","src":"5810:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"5710:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5740:6:64","nodeType":"YulTypedName","src":"5740:6:64","type":""},{"name":"end","nativeSrc":"5748:3:64","nodeType":"YulTypedName","src":"5748:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5756:5:64","nodeType":"YulTypedName","src":"5756:5:64","type":""}],"src":"5710:139:64"},{"body":{"nativeSrc":"5921:263:64","nodeType":"YulBlock","src":"5921:263:64","statements":[{"body":{"nativeSrc":"5967:83:64","nodeType":"YulBlock","src":"5967:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5969:77:64","nodeType":"YulIdentifier","src":"5969:77:64"},"nativeSrc":"5969:79:64","nodeType":"YulFunctionCall","src":"5969:79:64"},"nativeSrc":"5969:79:64","nodeType":"YulExpressionStatement","src":"5969:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5942:7:64","nodeType":"YulIdentifier","src":"5942:7:64"},{"name":"headStart","nativeSrc":"5951:9:64","nodeType":"YulIdentifier","src":"5951:9:64"}],"functionName":{"name":"sub","nativeSrc":"5938:3:64","nodeType":"YulIdentifier","src":"5938:3:64"},"nativeSrc":"5938:23:64","nodeType":"YulFunctionCall","src":"5938:23:64"},{"kind":"number","nativeSrc":"5963:2:64","nodeType":"YulLiteral","src":"5963:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5934:3:64","nodeType":"YulIdentifier","src":"5934:3:64"},"nativeSrc":"5934:32:64","nodeType":"YulFunctionCall","src":"5934:32:64"},"nativeSrc":"5931:119:64","nodeType":"YulIf","src":"5931:119:64"},{"nativeSrc":"6060:117:64","nodeType":"YulBlock","src":"6060:117:64","statements":[{"nativeSrc":"6075:15:64","nodeType":"YulVariableDeclaration","src":"6075:15:64","value":{"kind":"number","nativeSrc":"6089:1:64","nodeType":"YulLiteral","src":"6089:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6079:6:64","nodeType":"YulTypedName","src":"6079:6:64","type":""}]},{"nativeSrc":"6104:63:64","nodeType":"YulAssignment","src":"6104:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6139:9:64","nodeType":"YulIdentifier","src":"6139:9:64"},{"name":"offset","nativeSrc":"6150:6:64","nodeType":"YulIdentifier","src":"6150:6:64"}],"functionName":{"name":"add","nativeSrc":"6135:3:64","nodeType":"YulIdentifier","src":"6135:3:64"},"nativeSrc":"6135:22:64","nodeType":"YulFunctionCall","src":"6135:22:64"},{"name":"dataEnd","nativeSrc":"6159:7:64","nodeType":"YulIdentifier","src":"6159:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6114:20:64","nodeType":"YulIdentifier","src":"6114:20:64"},"nativeSrc":"6114:53:64","nodeType":"YulFunctionCall","src":"6114:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6104:6:64","nodeType":"YulIdentifier","src":"6104:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5855:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5891:9:64","nodeType":"YulTypedName","src":"5891:9:64","type":""},{"name":"dataEnd","nativeSrc":"5902:7:64","nodeType":"YulTypedName","src":"5902:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5914:6:64","nodeType":"YulTypedName","src":"5914:6:64","type":""}],"src":"5855:329:64"},{"body":{"nativeSrc":"6279:28:64","nodeType":"YulBlock","src":"6279:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6296:1:64","nodeType":"YulLiteral","src":"6296:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6299:1:64","nodeType":"YulLiteral","src":"6299:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6289:6:64","nodeType":"YulIdentifier","src":"6289:6:64"},"nativeSrc":"6289:12:64","nodeType":"YulFunctionCall","src":"6289:12:64"},"nativeSrc":"6289:12:64","nodeType":"YulExpressionStatement","src":"6289:12:64"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"6190:117:64","nodeType":"YulFunctionDefinition","src":"6190:117:64"},{"body":{"nativeSrc":"6341:152:64","nodeType":"YulBlock","src":"6341:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6358:1:64","nodeType":"YulLiteral","src":"6358:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6361:77:64","nodeType":"YulLiteral","src":"6361:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"6351:6:64","nodeType":"YulIdentifier","src":"6351:6:64"},"nativeSrc":"6351:88:64","nodeType":"YulFunctionCall","src":"6351:88:64"},"nativeSrc":"6351:88:64","nodeType":"YulExpressionStatement","src":"6351:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6455:1:64","nodeType":"YulLiteral","src":"6455:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"6458:4:64","nodeType":"YulLiteral","src":"6458:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"6448:6:64","nodeType":"YulIdentifier","src":"6448:6:64"},"nativeSrc":"6448:15:64","nodeType":"YulFunctionCall","src":"6448:15:64"},"nativeSrc":"6448:15:64","nodeType":"YulExpressionStatement","src":"6448:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6479:1:64","nodeType":"YulLiteral","src":"6479:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6482:4:64","nodeType":"YulLiteral","src":"6482:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"6472:6:64","nodeType":"YulIdentifier","src":"6472:6:64"},"nativeSrc":"6472:15:64","nodeType":"YulFunctionCall","src":"6472:15:64"},"nativeSrc":"6472:15:64","nodeType":"YulExpressionStatement","src":"6472:15:64"}]},"name":"panic_error_0x41","nativeSrc":"6313:180:64","nodeType":"YulFunctionDefinition","src":"6313:180:64"},{"body":{"nativeSrc":"6542:238:64","nodeType":"YulBlock","src":"6542:238:64","statements":[{"nativeSrc":"6552:58:64","nodeType":"YulVariableDeclaration","src":"6552:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"6574:6:64","nodeType":"YulIdentifier","src":"6574:6:64"},{"arguments":[{"name":"size","nativeSrc":"6604:4:64","nodeType":"YulIdentifier","src":"6604:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"6582:21:64","nodeType":"YulIdentifier","src":"6582:21:64"},"nativeSrc":"6582:27:64","nodeType":"YulFunctionCall","src":"6582:27:64"}],"functionName":{"name":"add","nativeSrc":"6570:3:64","nodeType":"YulIdentifier","src":"6570:3:64"},"nativeSrc":"6570:40:64","nodeType":"YulFunctionCall","src":"6570:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"6556:10:64","nodeType":"YulTypedName","src":"6556:10:64","type":""}]},{"body":{"nativeSrc":"6721:22:64","nodeType":"YulBlock","src":"6721:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6723:16:64","nodeType":"YulIdentifier","src":"6723:16:64"},"nativeSrc":"6723:18:64","nodeType":"YulFunctionCall","src":"6723:18:64"},"nativeSrc":"6723:18:64","nodeType":"YulExpressionStatement","src":"6723:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"6664:10:64","nodeType":"YulIdentifier","src":"6664:10:64"},{"kind":"number","nativeSrc":"6676:18:64","nodeType":"YulLiteral","src":"6676:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6661:2:64","nodeType":"YulIdentifier","src":"6661:2:64"},"nativeSrc":"6661:34:64","nodeType":"YulFunctionCall","src":"6661:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"6700:10:64","nodeType":"YulIdentifier","src":"6700:10:64"},{"name":"memPtr","nativeSrc":"6712:6:64","nodeType":"YulIdentifier","src":"6712:6:64"}],"functionName":{"name":"lt","nativeSrc":"6697:2:64","nodeType":"YulIdentifier","src":"6697:2:64"},"nativeSrc":"6697:22:64","nodeType":"YulFunctionCall","src":"6697:22:64"}],"functionName":{"name":"or","nativeSrc":"6658:2:64","nodeType":"YulIdentifier","src":"6658:2:64"},"nativeSrc":"6658:62:64","nodeType":"YulFunctionCall","src":"6658:62:64"},"nativeSrc":"6655:88:64","nodeType":"YulIf","src":"6655:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6759:2:64","nodeType":"YulLiteral","src":"6759:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"6763:10:64","nodeType":"YulIdentifier","src":"6763:10:64"}],"functionName":{"name":"mstore","nativeSrc":"6752:6:64","nodeType":"YulIdentifier","src":"6752:6:64"},"nativeSrc":"6752:22:64","nodeType":"YulFunctionCall","src":"6752:22:64"},"nativeSrc":"6752:22:64","nodeType":"YulExpressionStatement","src":"6752:22:64"}]},"name":"finalize_allocation","nativeSrc":"6499:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"6528:6:64","nodeType":"YulTypedName","src":"6528:6:64","type":""},{"name":"size","nativeSrc":"6536:4:64","nodeType":"YulTypedName","src":"6536:4:64","type":""}],"src":"6499:281:64"},{"body":{"nativeSrc":"6827:88:64","nodeType":"YulBlock","src":"6827:88:64","statements":[{"nativeSrc":"6837:30:64","nodeType":"YulAssignment","src":"6837:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"6847:18:64","nodeType":"YulIdentifier","src":"6847:18:64"},"nativeSrc":"6847:20:64","nodeType":"YulFunctionCall","src":"6847:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"6837:6:64","nodeType":"YulIdentifier","src":"6837:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"6896:6:64","nodeType":"YulIdentifier","src":"6896:6:64"},{"name":"size","nativeSrc":"6904:4:64","nodeType":"YulIdentifier","src":"6904:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"6876:19:64","nodeType":"YulIdentifier","src":"6876:19:64"},"nativeSrc":"6876:33:64","nodeType":"YulFunctionCall","src":"6876:33:64"},"nativeSrc":"6876:33:64","nodeType":"YulExpressionStatement","src":"6876:33:64"}]},"name":"allocate_memory","nativeSrc":"6786:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6811:4:64","nodeType":"YulTypedName","src":"6811:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6820:6:64","nodeType":"YulTypedName","src":"6820:6:64","type":""}],"src":"6786:129:64"},{"body":{"nativeSrc":"7010:28:64","nodeType":"YulBlock","src":"7010:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7027:1:64","nodeType":"YulLiteral","src":"7027:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7030:1:64","nodeType":"YulLiteral","src":"7030:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7020:6:64","nodeType":"YulIdentifier","src":"7020:6:64"},"nativeSrc":"7020:12:64","nodeType":"YulFunctionCall","src":"7020:12:64"},"nativeSrc":"7020:12:64","nodeType":"YulExpressionStatement","src":"7020:12:64"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"6921:117:64","nodeType":"YulFunctionDefinition","src":"6921:117:64"},{"body":{"nativeSrc":"7087:79:64","nodeType":"YulBlock","src":"7087:79:64","statements":[{"body":{"nativeSrc":"7144:16:64","nodeType":"YulBlock","src":"7144:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7153:1:64","nodeType":"YulLiteral","src":"7153:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7156:1:64","nodeType":"YulLiteral","src":"7156:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7146:6:64","nodeType":"YulIdentifier","src":"7146:6:64"},"nativeSrc":"7146:12:64","nodeType":"YulFunctionCall","src":"7146:12:64"},"nativeSrc":"7146:12:64","nodeType":"YulExpressionStatement","src":"7146:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7110:5:64","nodeType":"YulIdentifier","src":"7110:5:64"},{"arguments":[{"name":"value","nativeSrc":"7135:5:64","nodeType":"YulIdentifier","src":"7135:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"7117:17:64","nodeType":"YulIdentifier","src":"7117:17:64"},"nativeSrc":"7117:24:64","nodeType":"YulFunctionCall","src":"7117:24:64"}],"functionName":{"name":"eq","nativeSrc":"7107:2:64","nodeType":"YulIdentifier","src":"7107:2:64"},"nativeSrc":"7107:35:64","nodeType":"YulFunctionCall","src":"7107:35:64"}],"functionName":{"name":"iszero","nativeSrc":"7100:6:64","nodeType":"YulIdentifier","src":"7100:6:64"},"nativeSrc":"7100:43:64","nodeType":"YulFunctionCall","src":"7100:43:64"},"nativeSrc":"7097:63:64","nodeType":"YulIf","src":"7097:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"7044:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7080:5:64","nodeType":"YulTypedName","src":"7080:5:64","type":""}],"src":"7044:122:64"},{"body":{"nativeSrc":"7224:87:64","nodeType":"YulBlock","src":"7224:87:64","statements":[{"nativeSrc":"7234:29:64","nodeType":"YulAssignment","src":"7234:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7256:6:64","nodeType":"YulIdentifier","src":"7256:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7243:12:64","nodeType":"YulIdentifier","src":"7243:12:64"},"nativeSrc":"7243:20:64","nodeType":"YulFunctionCall","src":"7243:20:64"},"variableNames":[{"name":"value","nativeSrc":"7234:5:64","nodeType":"YulIdentifier","src":"7234:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7299:5:64","nodeType":"YulIdentifier","src":"7299:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"7272:26:64","nodeType":"YulIdentifier","src":"7272:26:64"},"nativeSrc":"7272:33:64","nodeType":"YulFunctionCall","src":"7272:33:64"},"nativeSrc":"7272:33:64","nodeType":"YulExpressionStatement","src":"7272:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"7172:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7202:6:64","nodeType":"YulTypedName","src":"7202:6:64","type":""},{"name":"end","nativeSrc":"7210:3:64","nodeType":"YulTypedName","src":"7210:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7218:5:64","nodeType":"YulTypedName","src":"7218:5:64","type":""}],"src":"7172:139:64"},{"body":{"nativeSrc":"7444:823:64","nodeType":"YulBlock","src":"7444:823:64","statements":[{"body":{"nativeSrc":"7488:83:64","nodeType":"YulBlock","src":"7488:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7490:77:64","nodeType":"YulIdentifier","src":"7490:77:64"},"nativeSrc":"7490:79:64","nodeType":"YulFunctionCall","src":"7490:79:64"},"nativeSrc":"7490:79:64","nodeType":"YulExpressionStatement","src":"7490:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"7465:3:64","nodeType":"YulIdentifier","src":"7465:3:64"},{"name":"headStart","nativeSrc":"7470:9:64","nodeType":"YulIdentifier","src":"7470:9:64"}],"functionName":{"name":"sub","nativeSrc":"7461:3:64","nodeType":"YulIdentifier","src":"7461:3:64"},"nativeSrc":"7461:19:64","nodeType":"YulFunctionCall","src":"7461:19:64"},{"kind":"number","nativeSrc":"7482:4:64","nodeType":"YulLiteral","src":"7482:4:64","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"7457:3:64","nodeType":"YulIdentifier","src":"7457:3:64"},"nativeSrc":"7457:30:64","nodeType":"YulFunctionCall","src":"7457:30:64"},"nativeSrc":"7454:117:64","nodeType":"YulIf","src":"7454:117:64"},{"nativeSrc":"7580:30:64","nodeType":"YulAssignment","src":"7580:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"7605:4:64","nodeType":"YulLiteral","src":"7605:4:64","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"7589:15:64","nodeType":"YulIdentifier","src":"7589:15:64"},"nativeSrc":"7589:21:64","nodeType":"YulFunctionCall","src":"7589:21:64"},"variableNames":[{"name":"value","nativeSrc":"7580:5:64","nodeType":"YulIdentifier","src":"7580:5:64"}]},{"nativeSrc":"7620:151:64","nodeType":"YulBlock","src":"7620:151:64","statements":[{"nativeSrc":"7656:15:64","nodeType":"YulVariableDeclaration","src":"7656:15:64","value":{"kind":"number","nativeSrc":"7670:1:64","nodeType":"YulLiteral","src":"7670:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7660:6:64","nodeType":"YulTypedName","src":"7660:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7696:5:64","nodeType":"YulIdentifier","src":"7696:5:64"},{"kind":"number","nativeSrc":"7703:4:64","nodeType":"YulLiteral","src":"7703:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"7692:3:64","nodeType":"YulIdentifier","src":"7692:3:64"},"nativeSrc":"7692:16:64","nodeType":"YulFunctionCall","src":"7692:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7735:9:64","nodeType":"YulIdentifier","src":"7735:9:64"},{"name":"offset","nativeSrc":"7746:6:64","nodeType":"YulIdentifier","src":"7746:6:64"}],"functionName":{"name":"add","nativeSrc":"7731:3:64","nodeType":"YulIdentifier","src":"7731:3:64"},"nativeSrc":"7731:22:64","nodeType":"YulFunctionCall","src":"7731:22:64"},{"name":"end","nativeSrc":"7755:3:64","nodeType":"YulIdentifier","src":"7755:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7710:20:64","nodeType":"YulIdentifier","src":"7710:20:64"},"nativeSrc":"7710:49:64","nodeType":"YulFunctionCall","src":"7710:49:64"}],"functionName":{"name":"mstore","nativeSrc":"7685:6:64","nodeType":"YulIdentifier","src":"7685:6:64"},"nativeSrc":"7685:75:64","nodeType":"YulFunctionCall","src":"7685:75:64"},"nativeSrc":"7685:75:64","nodeType":"YulExpressionStatement","src":"7685:75:64"}]},{"nativeSrc":"7781:154:64","nodeType":"YulBlock","src":"7781:154:64","statements":[{"nativeSrc":"7820:16:64","nodeType":"YulVariableDeclaration","src":"7820:16:64","value":{"kind":"number","nativeSrc":"7834:2:64","nodeType":"YulLiteral","src":"7834:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7824:6:64","nodeType":"YulTypedName","src":"7824:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7861:5:64","nodeType":"YulIdentifier","src":"7861:5:64"},{"kind":"number","nativeSrc":"7868:4:64","nodeType":"YulLiteral","src":"7868:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7857:3:64","nodeType":"YulIdentifier","src":"7857:3:64"},"nativeSrc":"7857:16:64","nodeType":"YulFunctionCall","src":"7857:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7899:9:64","nodeType":"YulIdentifier","src":"7899:9:64"},{"name":"offset","nativeSrc":"7910:6:64","nodeType":"YulIdentifier","src":"7910:6:64"}],"functionName":{"name":"add","nativeSrc":"7895:3:64","nodeType":"YulIdentifier","src":"7895:3:64"},"nativeSrc":"7895:22:64","nodeType":"YulFunctionCall","src":"7895:22:64"},{"name":"end","nativeSrc":"7919:3:64","nodeType":"YulIdentifier","src":"7919:3:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"7875:19:64","nodeType":"YulIdentifier","src":"7875:19:64"},"nativeSrc":"7875:48:64","nodeType":"YulFunctionCall","src":"7875:48:64"}],"functionName":{"name":"mstore","nativeSrc":"7850:6:64","nodeType":"YulIdentifier","src":"7850:6:64"},"nativeSrc":"7850:74:64","nodeType":"YulFunctionCall","src":"7850:74:64"},"nativeSrc":"7850:74:64","nodeType":"YulExpressionStatement","src":"7850:74:64"}]},{"nativeSrc":"7945:153:64","nodeType":"YulBlock","src":"7945:153:64","statements":[{"nativeSrc":"7982:16:64","nodeType":"YulVariableDeclaration","src":"7982:16:64","value":{"kind":"number","nativeSrc":"7996:2:64","nodeType":"YulLiteral","src":"7996:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"7986:6:64","nodeType":"YulTypedName","src":"7986:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8023:5:64","nodeType":"YulIdentifier","src":"8023:5:64"},{"kind":"number","nativeSrc":"8030:4:64","nodeType":"YulLiteral","src":"8030:4:64","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8019:3:64","nodeType":"YulIdentifier","src":"8019:3:64"},"nativeSrc":"8019:16:64","nodeType":"YulFunctionCall","src":"8019:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8062:9:64","nodeType":"YulIdentifier","src":"8062:9:64"},{"name":"offset","nativeSrc":"8073:6:64","nodeType":"YulIdentifier","src":"8073:6:64"}],"functionName":{"name":"add","nativeSrc":"8058:3:64","nodeType":"YulIdentifier","src":"8058:3:64"},"nativeSrc":"8058:22:64","nodeType":"YulFunctionCall","src":"8058:22:64"},{"name":"end","nativeSrc":"8082:3:64","nodeType":"YulIdentifier","src":"8082:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8037:20:64","nodeType":"YulIdentifier","src":"8037:20:64"},"nativeSrc":"8037:49:64","nodeType":"YulFunctionCall","src":"8037:49:64"}],"functionName":{"name":"mstore","nativeSrc":"8012:6:64","nodeType":"YulIdentifier","src":"8012:6:64"},"nativeSrc":"8012:75:64","nodeType":"YulFunctionCall","src":"8012:75:64"},"nativeSrc":"8012:75:64","nodeType":"YulExpressionStatement","src":"8012:75:64"}]},{"nativeSrc":"8108:152:64","nodeType":"YulBlock","src":"8108:152:64","statements":[{"nativeSrc":"8144:16:64","nodeType":"YulVariableDeclaration","src":"8144:16:64","value":{"kind":"number","nativeSrc":"8158:2:64","nodeType":"YulLiteral","src":"8158:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"8148:6:64","nodeType":"YulTypedName","src":"8148:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8185:5:64","nodeType":"YulIdentifier","src":"8185:5:64"},{"kind":"number","nativeSrc":"8192:4:64","nodeType":"YulLiteral","src":"8192:4:64","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"8181:3:64","nodeType":"YulIdentifier","src":"8181:3:64"},"nativeSrc":"8181:16:64","nodeType":"YulFunctionCall","src":"8181:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8224:9:64","nodeType":"YulIdentifier","src":"8224:9:64"},{"name":"offset","nativeSrc":"8235:6:64","nodeType":"YulIdentifier","src":"8235:6:64"}],"functionName":{"name":"add","nativeSrc":"8220:3:64","nodeType":"YulIdentifier","src":"8220:3:64"},"nativeSrc":"8220:22:64","nodeType":"YulFunctionCall","src":"8220:22:64"},{"name":"end","nativeSrc":"8244:3:64","nodeType":"YulIdentifier","src":"8244:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8199:20:64","nodeType":"YulIdentifier","src":"8199:20:64"},"nativeSrc":"8199:49:64","nodeType":"YulFunctionCall","src":"8199:49:64"}],"functionName":{"name":"mstore","nativeSrc":"8174:6:64","nodeType":"YulIdentifier","src":"8174:6:64"},"nativeSrc":"8174:75:64","nodeType":"YulFunctionCall","src":"8174:75:64"},"nativeSrc":"8174:75:64","nodeType":"YulExpressionStatement","src":"8174:75:64"}]}]},"name":"abi_decode_t_struct$_InitPayload_$18217_memory_ptr","nativeSrc":"7359:908:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7419:9:64","nodeType":"YulTypedName","src":"7419:9:64","type":""},{"name":"end","nativeSrc":"7430:3:64","nodeType":"YulTypedName","src":"7430:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7438:5:64","nodeType":"YulTypedName","src":"7438:5:64","type":""}],"src":"7359:908:64"},{"body":{"nativeSrc":"8369:294:64","nodeType":"YulBlock","src":"8369:294:64","statements":[{"body":{"nativeSrc":"8416:83:64","nodeType":"YulBlock","src":"8416:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8418:77:64","nodeType":"YulIdentifier","src":"8418:77:64"},"nativeSrc":"8418:79:64","nodeType":"YulFunctionCall","src":"8418:79:64"},"nativeSrc":"8418:79:64","nodeType":"YulExpressionStatement","src":"8418:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8390:7:64","nodeType":"YulIdentifier","src":"8390:7:64"},{"name":"headStart","nativeSrc":"8399:9:64","nodeType":"YulIdentifier","src":"8399:9:64"}],"functionName":{"name":"sub","nativeSrc":"8386:3:64","nodeType":"YulIdentifier","src":"8386:3:64"},"nativeSrc":"8386:23:64","nodeType":"YulFunctionCall","src":"8386:23:64"},{"kind":"number","nativeSrc":"8411:3:64","nodeType":"YulLiteral","src":"8411:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"8382:3:64","nodeType":"YulIdentifier","src":"8382:3:64"},"nativeSrc":"8382:33:64","nodeType":"YulFunctionCall","src":"8382:33:64"},"nativeSrc":"8379:120:64","nodeType":"YulIf","src":"8379:120:64"},{"nativeSrc":"8509:147:64","nodeType":"YulBlock","src":"8509:147:64","statements":[{"nativeSrc":"8524:15:64","nodeType":"YulVariableDeclaration","src":"8524:15:64","value":{"kind":"number","nativeSrc":"8538:1:64","nodeType":"YulLiteral","src":"8538:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8528:6:64","nodeType":"YulTypedName","src":"8528:6:64","type":""}]},{"nativeSrc":"8553:93:64","nodeType":"YulAssignment","src":"8553:93:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8618:9:64","nodeType":"YulIdentifier","src":"8618:9:64"},{"name":"offset","nativeSrc":"8629:6:64","nodeType":"YulIdentifier","src":"8629:6:64"}],"functionName":{"name":"add","nativeSrc":"8614:3:64","nodeType":"YulIdentifier","src":"8614:3:64"},"nativeSrc":"8614:22:64","nodeType":"YulFunctionCall","src":"8614:22:64"},{"name":"dataEnd","nativeSrc":"8638:7:64","nodeType":"YulIdentifier","src":"8638:7:64"}],"functionName":{"name":"abi_decode_t_struct$_InitPayload_$18217_memory_ptr","nativeSrc":"8563:50:64","nodeType":"YulIdentifier","src":"8563:50:64"},"nativeSrc":"8563:83:64","nodeType":"YulFunctionCall","src":"8563:83:64"},"variableNames":[{"name":"value0","nativeSrc":"8553:6:64","nodeType":"YulIdentifier","src":"8553:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_InitPayload_$18217_memory_ptr","nativeSrc":"8273:390:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8339:9:64","nodeType":"YulTypedName","src":"8339:9:64","type":""},{"name":"dataEnd","nativeSrc":"8350:7:64","nodeType":"YulTypedName","src":"8350:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8362:6:64","nodeType":"YulTypedName","src":"8362:6:64","type":""}],"src":"8273:390:64"},{"body":{"nativeSrc":"8758:28:64","nodeType":"YulBlock","src":"8758:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8775:1:64","nodeType":"YulLiteral","src":"8775:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8778:1:64","nodeType":"YulLiteral","src":"8778:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"8768:6:64","nodeType":"YulIdentifier","src":"8768:6:64"},"nativeSrc":"8768:12:64","nodeType":"YulFunctionCall","src":"8768:12:64"},"nativeSrc":"8768:12:64","nodeType":"YulExpressionStatement","src":"8768:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"8669:117:64","nodeType":"YulFunctionDefinition","src":"8669:117:64"},{"body":{"nativeSrc":"8858:241:64","nodeType":"YulBlock","src":"8858:241:64","statements":[{"body":{"nativeSrc":"8963:22:64","nodeType":"YulBlock","src":"8963:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8965:16:64","nodeType":"YulIdentifier","src":"8965:16:64"},"nativeSrc":"8965:18:64","nodeType":"YulFunctionCall","src":"8965:18:64"},"nativeSrc":"8965:18:64","nodeType":"YulExpressionStatement","src":"8965:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8935:6:64","nodeType":"YulIdentifier","src":"8935:6:64"},{"kind":"number","nativeSrc":"8943:18:64","nodeType":"YulLiteral","src":"8943:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8932:2:64","nodeType":"YulIdentifier","src":"8932:2:64"},"nativeSrc":"8932:30:64","nodeType":"YulFunctionCall","src":"8932:30:64"},"nativeSrc":"8929:56:64","nodeType":"YulIf","src":"8929:56:64"},{"nativeSrc":"8995:37:64","nodeType":"YulAssignment","src":"8995:37:64","value":{"arguments":[{"name":"length","nativeSrc":"9025:6:64","nodeType":"YulIdentifier","src":"9025:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"9003:21:64","nodeType":"YulIdentifier","src":"9003:21:64"},"nativeSrc":"9003:29:64","nodeType":"YulFunctionCall","src":"9003:29:64"},"variableNames":[{"name":"size","nativeSrc":"8995:4:64","nodeType":"YulIdentifier","src":"8995:4:64"}]},{"nativeSrc":"9069:23:64","nodeType":"YulAssignment","src":"9069:23:64","value":{"arguments":[{"name":"size","nativeSrc":"9081:4:64","nodeType":"YulIdentifier","src":"9081:4:64"},{"kind":"number","nativeSrc":"9087:4:64","nodeType":"YulLiteral","src":"9087:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9077:3:64","nodeType":"YulIdentifier","src":"9077:3:64"},"nativeSrc":"9077:15:64","nodeType":"YulFunctionCall","src":"9077:15:64"},"variableNames":[{"name":"size","nativeSrc":"9069:4:64","nodeType":"YulIdentifier","src":"9069:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"8792:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"8842:6:64","nodeType":"YulTypedName","src":"8842:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"8853:4:64","nodeType":"YulTypedName","src":"8853:4:64","type":""}],"src":"8792:307:64"},{"body":{"nativeSrc":"9169:84:64","nodeType":"YulBlock","src":"9169:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"9193:3:64","nodeType":"YulIdentifier","src":"9193:3:64"},{"name":"src","nativeSrc":"9198:3:64","nodeType":"YulIdentifier","src":"9198:3:64"},{"name":"length","nativeSrc":"9203:6:64","nodeType":"YulIdentifier","src":"9203:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"9180:12:64","nodeType":"YulIdentifier","src":"9180:12:64"},"nativeSrc":"9180:30:64","nodeType":"YulFunctionCall","src":"9180:30:64"},"nativeSrc":"9180:30:64","nodeType":"YulExpressionStatement","src":"9180:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"9230:3:64","nodeType":"YulIdentifier","src":"9230:3:64"},{"name":"length","nativeSrc":"9235:6:64","nodeType":"YulIdentifier","src":"9235:6:64"}],"functionName":{"name":"add","nativeSrc":"9226:3:64","nodeType":"YulIdentifier","src":"9226:3:64"},"nativeSrc":"9226:16:64","nodeType":"YulFunctionCall","src":"9226:16:64"},{"kind":"number","nativeSrc":"9244:1:64","nodeType":"YulLiteral","src":"9244:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"9219:6:64","nodeType":"YulIdentifier","src":"9219:6:64"},"nativeSrc":"9219:27:64","nodeType":"YulFunctionCall","src":"9219:27:64"},"nativeSrc":"9219:27:64","nodeType":"YulExpressionStatement","src":"9219:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9105:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9151:3:64","nodeType":"YulTypedName","src":"9151:3:64","type":""},{"name":"dst","nativeSrc":"9156:3:64","nodeType":"YulTypedName","src":"9156:3:64","type":""},{"name":"length","nativeSrc":"9161:6:64","nodeType":"YulTypedName","src":"9161:6:64","type":""}],"src":"9105:148:64"},{"body":{"nativeSrc":"9342:340:64","nodeType":"YulBlock","src":"9342:340:64","statements":[{"nativeSrc":"9352:74:64","nodeType":"YulAssignment","src":"9352:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9418:6:64","nodeType":"YulIdentifier","src":"9418:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"9377:40:64","nodeType":"YulIdentifier","src":"9377:40:64"},"nativeSrc":"9377:48:64","nodeType":"YulFunctionCall","src":"9377:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"9361:15:64","nodeType":"YulIdentifier","src":"9361:15:64"},"nativeSrc":"9361:65:64","nodeType":"YulFunctionCall","src":"9361:65:64"},"variableNames":[{"name":"array","nativeSrc":"9352:5:64","nodeType":"YulIdentifier","src":"9352:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"9442:5:64","nodeType":"YulIdentifier","src":"9442:5:64"},{"name":"length","nativeSrc":"9449:6:64","nodeType":"YulIdentifier","src":"9449:6:64"}],"functionName":{"name":"mstore","nativeSrc":"9435:6:64","nodeType":"YulIdentifier","src":"9435:6:64"},"nativeSrc":"9435:21:64","nodeType":"YulFunctionCall","src":"9435:21:64"},"nativeSrc":"9435:21:64","nodeType":"YulExpressionStatement","src":"9435:21:64"},{"nativeSrc":"9465:27:64","nodeType":"YulVariableDeclaration","src":"9465:27:64","value":{"arguments":[{"name":"array","nativeSrc":"9480:5:64","nodeType":"YulIdentifier","src":"9480:5:64"},{"kind":"number","nativeSrc":"9487:4:64","nodeType":"YulLiteral","src":"9487:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9476:3:64","nodeType":"YulIdentifier","src":"9476:3:64"},"nativeSrc":"9476:16:64","nodeType":"YulFunctionCall","src":"9476:16:64"},"variables":[{"name":"dst","nativeSrc":"9469:3:64","nodeType":"YulTypedName","src":"9469:3:64","type":""}]},{"body":{"nativeSrc":"9530:83:64","nodeType":"YulBlock","src":"9530:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"9532:77:64","nodeType":"YulIdentifier","src":"9532:77:64"},"nativeSrc":"9532:79:64","nodeType":"YulFunctionCall","src":"9532:79:64"},"nativeSrc":"9532:79:64","nodeType":"YulExpressionStatement","src":"9532:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"9511:3:64","nodeType":"YulIdentifier","src":"9511:3:64"},{"name":"length","nativeSrc":"9516:6:64","nodeType":"YulIdentifier","src":"9516:6:64"}],"functionName":{"name":"add","nativeSrc":"9507:3:64","nodeType":"YulIdentifier","src":"9507:3:64"},"nativeSrc":"9507:16:64","nodeType":"YulFunctionCall","src":"9507:16:64"},{"name":"end","nativeSrc":"9525:3:64","nodeType":"YulIdentifier","src":"9525:3:64"}],"functionName":{"name":"gt","nativeSrc":"9504:2:64","nodeType":"YulIdentifier","src":"9504:2:64"},"nativeSrc":"9504:25:64","nodeType":"YulFunctionCall","src":"9504:25:64"},"nativeSrc":"9501:112:64","nodeType":"YulIf","src":"9501:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"9659:3:64","nodeType":"YulIdentifier","src":"9659:3:64"},{"name":"dst","nativeSrc":"9664:3:64","nodeType":"YulIdentifier","src":"9664:3:64"},{"name":"length","nativeSrc":"9669:6:64","nodeType":"YulIdentifier","src":"9669:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"9622:36:64","nodeType":"YulIdentifier","src":"9622:36:64"},"nativeSrc":"9622:54:64","nodeType":"YulFunctionCall","src":"9622:54:64"},"nativeSrc":"9622:54:64","nodeType":"YulExpressionStatement","src":"9622:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"9259:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"9315:3:64","nodeType":"YulTypedName","src":"9315:3:64","type":""},{"name":"length","nativeSrc":"9320:6:64","nodeType":"YulTypedName","src":"9320:6:64","type":""},{"name":"end","nativeSrc":"9328:3:64","nodeType":"YulTypedName","src":"9328:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9336:5:64","nodeType":"YulTypedName","src":"9336:5:64","type":""}],"src":"9259:423:64"},{"body":{"nativeSrc":"9762:277:64","nodeType":"YulBlock","src":"9762:277:64","statements":[{"body":{"nativeSrc":"9811:83:64","nodeType":"YulBlock","src":"9811:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9813:77:64","nodeType":"YulIdentifier","src":"9813:77:64"},"nativeSrc":"9813:79:64","nodeType":"YulFunctionCall","src":"9813:79:64"},"nativeSrc":"9813:79:64","nodeType":"YulExpressionStatement","src":"9813:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9790:6:64","nodeType":"YulIdentifier","src":"9790:6:64"},{"kind":"number","nativeSrc":"9798:4:64","nodeType":"YulLiteral","src":"9798:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9786:3:64","nodeType":"YulIdentifier","src":"9786:3:64"},"nativeSrc":"9786:17:64","nodeType":"YulFunctionCall","src":"9786:17:64"},{"name":"end","nativeSrc":"9805:3:64","nodeType":"YulIdentifier","src":"9805:3:64"}],"functionName":{"name":"slt","nativeSrc":"9782:3:64","nodeType":"YulIdentifier","src":"9782:3:64"},"nativeSrc":"9782:27:64","nodeType":"YulFunctionCall","src":"9782:27:64"}],"functionName":{"name":"iszero","nativeSrc":"9775:6:64","nodeType":"YulIdentifier","src":"9775:6:64"},"nativeSrc":"9775:35:64","nodeType":"YulFunctionCall","src":"9775:35:64"},"nativeSrc":"9772:122:64","nodeType":"YulIf","src":"9772:122:64"},{"nativeSrc":"9903:34:64","nodeType":"YulVariableDeclaration","src":"9903:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"9930:6:64","nodeType":"YulIdentifier","src":"9930:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9917:12:64","nodeType":"YulIdentifier","src":"9917:12:64"},"nativeSrc":"9917:20:64","nodeType":"YulFunctionCall","src":"9917:20:64"},"variables":[{"name":"length","nativeSrc":"9907:6:64","nodeType":"YulTypedName","src":"9907:6:64","type":""}]},{"nativeSrc":"9946:87:64","nodeType":"YulAssignment","src":"9946:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"10006:6:64","nodeType":"YulIdentifier","src":"10006:6:64"},{"kind":"number","nativeSrc":"10014:4:64","nodeType":"YulLiteral","src":"10014:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10002:3:64","nodeType":"YulIdentifier","src":"10002:3:64"},"nativeSrc":"10002:17:64","nodeType":"YulFunctionCall","src":"10002:17:64"},{"name":"length","nativeSrc":"10021:6:64","nodeType":"YulIdentifier","src":"10021:6:64"},{"name":"end","nativeSrc":"10029:3:64","nodeType":"YulIdentifier","src":"10029:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"9955:46:64","nodeType":"YulIdentifier","src":"9955:46:64"},"nativeSrc":"9955:78:64","nodeType":"YulFunctionCall","src":"9955:78:64"},"variableNames":[{"name":"array","nativeSrc":"9946:5:64","nodeType":"YulIdentifier","src":"9946:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"9701:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9740:6:64","nodeType":"YulTypedName","src":"9740:6:64","type":""},{"name":"end","nativeSrc":"9748:3:64","nodeType":"YulTypedName","src":"9748:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9756:5:64","nodeType":"YulTypedName","src":"9756:5:64","type":""}],"src":"9701:338:64"},{"body":{"nativeSrc":"10168:665:64","nodeType":"YulBlock","src":"10168:665:64","statements":[{"body":{"nativeSrc":"10212:83:64","nodeType":"YulBlock","src":"10212:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10214:77:64","nodeType":"YulIdentifier","src":"10214:77:64"},"nativeSrc":"10214:79:64","nodeType":"YulFunctionCall","src":"10214:79:64"},"nativeSrc":"10214:79:64","nodeType":"YulExpressionStatement","src":"10214:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"10189:3:64","nodeType":"YulIdentifier","src":"10189:3:64"},{"name":"headStart","nativeSrc":"10194:9:64","nodeType":"YulIdentifier","src":"10194:9:64"}],"functionName":{"name":"sub","nativeSrc":"10185:3:64","nodeType":"YulIdentifier","src":"10185:3:64"},"nativeSrc":"10185:19:64","nodeType":"YulFunctionCall","src":"10185:19:64"},{"kind":"number","nativeSrc":"10206:4:64","nodeType":"YulLiteral","src":"10206:4:64","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"10181:3:64","nodeType":"YulIdentifier","src":"10181:3:64"},"nativeSrc":"10181:30:64","nodeType":"YulFunctionCall","src":"10181:30:64"},"nativeSrc":"10178:117:64","nodeType":"YulIf","src":"10178:117:64"},{"nativeSrc":"10304:30:64","nodeType":"YulAssignment","src":"10304:30:64","value":{"arguments":[{"kind":"number","nativeSrc":"10329:4:64","nodeType":"YulLiteral","src":"10329:4:64","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"10313:15:64","nodeType":"YulIdentifier","src":"10313:15:64"},"nativeSrc":"10313:21:64","nodeType":"YulFunctionCall","src":"10313:21:64"},"variableNames":[{"name":"value","nativeSrc":"10304:5:64","nodeType":"YulIdentifier","src":"10304:5:64"}]},{"nativeSrc":"10344:152:64","nodeType":"YulBlock","src":"10344:152:64","statements":[{"nativeSrc":"10381:15:64","nodeType":"YulVariableDeclaration","src":"10381:15:64","value":{"kind":"number","nativeSrc":"10395:1:64","nodeType":"YulLiteral","src":"10395:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10385:6:64","nodeType":"YulTypedName","src":"10385:6:64","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10421:5:64","nodeType":"YulIdentifier","src":"10421:5:64"},{"kind":"number","nativeSrc":"10428:4:64","nodeType":"YulLiteral","src":"10428:4:64","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"10417:3:64","nodeType":"YulIdentifier","src":"10417:3:64"},"nativeSrc":"10417:16:64","nodeType":"YulFunctionCall","src":"10417:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10460:9:64","nodeType":"YulIdentifier","src":"10460:9:64"},{"name":"offset","nativeSrc":"10471:6:64","nodeType":"YulIdentifier","src":"10471:6:64"}],"functionName":{"name":"add","nativeSrc":"10456:3:64","nodeType":"YulIdentifier","src":"10456:3:64"},"nativeSrc":"10456:22:64","nodeType":"YulFunctionCall","src":"10456:22:64"},{"name":"end","nativeSrc":"10480:3:64","nodeType":"YulIdentifier","src":"10480:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10435:20:64","nodeType":"YulIdentifier","src":"10435:20:64"},"nativeSrc":"10435:49:64","nodeType":"YulFunctionCall","src":"10435:49:64"}],"functionName":{"name":"mstore","nativeSrc":"10410:6:64","nodeType":"YulIdentifier","src":"10410:6:64"},"nativeSrc":"10410:75:64","nodeType":"YulFunctionCall","src":"10410:75:64"},"nativeSrc":"10410:75:64","nodeType":"YulExpressionStatement","src":"10410:75:64"}]},{"nativeSrc":"10506:320:64","nodeType":"YulBlock","src":"10506:320:64","statements":[{"nativeSrc":"10541:46:64","nodeType":"YulVariableDeclaration","src":"10541:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10572:9:64","nodeType":"YulIdentifier","src":"10572:9:64"},{"kind":"number","nativeSrc":"10583:2:64","nodeType":"YulLiteral","src":"10583:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10568:3:64","nodeType":"YulIdentifier","src":"10568:3:64"},"nativeSrc":"10568:18:64","nodeType":"YulFunctionCall","src":"10568:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"10555:12:64","nodeType":"YulIdentifier","src":"10555:12:64"},"nativeSrc":"10555:32:64","nodeType":"YulFunctionCall","src":"10555:32:64"},"variables":[{"name":"offset","nativeSrc":"10545:6:64","nodeType":"YulTypedName","src":"10545:6:64","type":""}]},{"body":{"nativeSrc":"10634:83:64","nodeType":"YulBlock","src":"10634:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10636:77:64","nodeType":"YulIdentifier","src":"10636:77:64"},"nativeSrc":"10636:79:64","nodeType":"YulFunctionCall","src":"10636:79:64"},"nativeSrc":"10636:79:64","nodeType":"YulExpressionStatement","src":"10636:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10606:6:64","nodeType":"YulIdentifier","src":"10606:6:64"},{"kind":"number","nativeSrc":"10614:18:64","nodeType":"YulLiteral","src":"10614:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10603:2:64","nodeType":"YulIdentifier","src":"10603:2:64"},"nativeSrc":"10603:30:64","nodeType":"YulFunctionCall","src":"10603:30:64"},"nativeSrc":"10600:117:64","nodeType":"YulIf","src":"10600:117:64"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10742:5:64","nodeType":"YulIdentifier","src":"10742:5:64"},{"kind":"number","nativeSrc":"10749:4:64","nodeType":"YulLiteral","src":"10749:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10738:3:64","nodeType":"YulIdentifier","src":"10738:3:64"},"nativeSrc":"10738:16:64","nodeType":"YulFunctionCall","src":"10738:16:64"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10790:9:64","nodeType":"YulIdentifier","src":"10790:9:64"},{"name":"offset","nativeSrc":"10801:6:64","nodeType":"YulIdentifier","src":"10801:6:64"}],"functionName":{"name":"add","nativeSrc":"10786:3:64","nodeType":"YulIdentifier","src":"10786:3:64"},"nativeSrc":"10786:22:64","nodeType":"YulFunctionCall","src":"10786:22:64"},{"name":"end","nativeSrc":"10810:3:64","nodeType":"YulIdentifier","src":"10810:3:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10756:29:64","nodeType":"YulIdentifier","src":"10756:29:64"},"nativeSrc":"10756:58:64","nodeType":"YulFunctionCall","src":"10756:58:64"}],"functionName":{"name":"mstore","nativeSrc":"10731:6:64","nodeType":"YulIdentifier","src":"10731:6:64"},"nativeSrc":"10731:84:64","nodeType":"YulFunctionCall","src":"10731:84:64"},"nativeSrc":"10731:84:64","nodeType":"YulExpressionStatement","src":"10731:84:64"}]}]},"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"10082:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10143:9:64","nodeType":"YulTypedName","src":"10143:9:64","type":""},{"name":"end","nativeSrc":"10154:3:64","nodeType":"YulTypedName","src":"10154:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10162:5:64","nodeType":"YulTypedName","src":"10162:5:64","type":""}],"src":"10082:751:64"},{"body":{"nativeSrc":"10936:454:64","nodeType":"YulBlock","src":"10936:454:64","statements":[{"body":{"nativeSrc":"10982:83:64","nodeType":"YulBlock","src":"10982:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10984:77:64","nodeType":"YulIdentifier","src":"10984:77:64"},"nativeSrc":"10984:79:64","nodeType":"YulFunctionCall","src":"10984:79:64"},"nativeSrc":"10984:79:64","nodeType":"YulExpressionStatement","src":"10984:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10957:7:64","nodeType":"YulIdentifier","src":"10957:7:64"},{"name":"headStart","nativeSrc":"10966:9:64","nodeType":"YulIdentifier","src":"10966:9:64"}],"functionName":{"name":"sub","nativeSrc":"10953:3:64","nodeType":"YulIdentifier","src":"10953:3:64"},"nativeSrc":"10953:23:64","nodeType":"YulFunctionCall","src":"10953:23:64"},{"kind":"number","nativeSrc":"10978:2:64","nodeType":"YulLiteral","src":"10978:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10949:3:64","nodeType":"YulIdentifier","src":"10949:3:64"},"nativeSrc":"10949:32:64","nodeType":"YulFunctionCall","src":"10949:32:64"},"nativeSrc":"10946:119:64","nodeType":"YulIf","src":"10946:119:64"},{"nativeSrc":"11075:308:64","nodeType":"YulBlock","src":"11075:308:64","statements":[{"nativeSrc":"11090:45:64","nodeType":"YulVariableDeclaration","src":"11090:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11121:9:64","nodeType":"YulIdentifier","src":"11121:9:64"},{"kind":"number","nativeSrc":"11132:1:64","nodeType":"YulLiteral","src":"11132:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11117:3:64","nodeType":"YulIdentifier","src":"11117:3:64"},"nativeSrc":"11117:17:64","nodeType":"YulFunctionCall","src":"11117:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"11104:12:64","nodeType":"YulIdentifier","src":"11104:12:64"},"nativeSrc":"11104:31:64","nodeType":"YulFunctionCall","src":"11104:31:64"},"variables":[{"name":"offset","nativeSrc":"11094:6:64","nodeType":"YulTypedName","src":"11094:6:64","type":""}]},{"body":{"nativeSrc":"11182:83:64","nodeType":"YulBlock","src":"11182:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11184:77:64","nodeType":"YulIdentifier","src":"11184:77:64"},"nativeSrc":"11184:79:64","nodeType":"YulFunctionCall","src":"11184:79:64"},"nativeSrc":"11184:79:64","nodeType":"YulExpressionStatement","src":"11184:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11154:6:64","nodeType":"YulIdentifier","src":"11154:6:64"},{"kind":"number","nativeSrc":"11162:18:64","nodeType":"YulLiteral","src":"11162:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11151:2:64","nodeType":"YulIdentifier","src":"11151:2:64"},"nativeSrc":"11151:30:64","nodeType":"YulFunctionCall","src":"11151:30:64"},"nativeSrc":"11148:117:64","nodeType":"YulIf","src":"11148:117:64"},{"nativeSrc":"11279:94:64","nodeType":"YulAssignment","src":"11279:94:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11345:9:64","nodeType":"YulIdentifier","src":"11345:9:64"},{"name":"offset","nativeSrc":"11356:6:64","nodeType":"YulIdentifier","src":"11356:6:64"}],"functionName":{"name":"add","nativeSrc":"11341:3:64","nodeType":"YulIdentifier","src":"11341:3:64"},"nativeSrc":"11341:22:64","nodeType":"YulFunctionCall","src":"11341:22:64"},{"name":"dataEnd","nativeSrc":"11365:7:64","nodeType":"YulIdentifier","src":"11365:7:64"}],"functionName":{"name":"abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"11289:51:64","nodeType":"YulIdentifier","src":"11289:51:64"},"nativeSrc":"11289:84:64","nodeType":"YulFunctionCall","src":"11289:84:64"},"variableNames":[{"name":"value0","nativeSrc":"11279:6:64","nodeType":"YulIdentifier","src":"11279:6:64"}]}]}]},"name":"abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr","nativeSrc":"10839:551:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10906:9:64","nodeType":"YulTypedName","src":"10906:9:64","type":""},{"name":"dataEnd","nativeSrc":"10917:7:64","nodeType":"YulTypedName","src":"10917:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10929:6:64","nodeType":"YulTypedName","src":"10929:6:64","type":""}],"src":"10839:551:64"},{"body":{"nativeSrc":"11424:152:64","nodeType":"YulBlock","src":"11424:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11441:1:64","nodeType":"YulLiteral","src":"11441:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11444:77:64","nodeType":"YulLiteral","src":"11444:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11434:6:64","nodeType":"YulIdentifier","src":"11434:6:64"},"nativeSrc":"11434:88:64","nodeType":"YulFunctionCall","src":"11434:88:64"},"nativeSrc":"11434:88:64","nodeType":"YulExpressionStatement","src":"11434:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11538:1:64","nodeType":"YulLiteral","src":"11538:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"11541:4:64","nodeType":"YulLiteral","src":"11541:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"11531:6:64","nodeType":"YulIdentifier","src":"11531:6:64"},"nativeSrc":"11531:15:64","nodeType":"YulFunctionCall","src":"11531:15:64"},"nativeSrc":"11531:15:64","nodeType":"YulExpressionStatement","src":"11531:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11562:1:64","nodeType":"YulLiteral","src":"11562:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11565:4:64","nodeType":"YulLiteral","src":"11565:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11555:6:64","nodeType":"YulIdentifier","src":"11555:6:64"},"nativeSrc":"11555:15:64","nodeType":"YulFunctionCall","src":"11555:15:64"},"nativeSrc":"11555:15:64","nodeType":"YulExpressionStatement","src":"11555:15:64"}]},"name":"panic_error_0x11","nativeSrc":"11396:180:64","nodeType":"YulFunctionDefinition","src":"11396:180:64"},{"body":{"nativeSrc":"11625:190:64","nodeType":"YulBlock","src":"11625:190:64","statements":[{"nativeSrc":"11635:33:64","nodeType":"YulAssignment","src":"11635:33:64","value":{"arguments":[{"name":"value","nativeSrc":"11662:5:64","nodeType":"YulIdentifier","src":"11662:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"11644:17:64","nodeType":"YulIdentifier","src":"11644:17:64"},"nativeSrc":"11644:24:64","nodeType":"YulFunctionCall","src":"11644:24:64"},"variableNames":[{"name":"value","nativeSrc":"11635:5:64","nodeType":"YulIdentifier","src":"11635:5:64"}]},{"body":{"nativeSrc":"11758:22:64","nodeType":"YulBlock","src":"11758:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"11760:16:64","nodeType":"YulIdentifier","src":"11760:16:64"},"nativeSrc":"11760:18:64","nodeType":"YulFunctionCall","src":"11760:18:64"},"nativeSrc":"11760:18:64","nodeType":"YulExpressionStatement","src":"11760:18:64"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"11683:5:64","nodeType":"YulIdentifier","src":"11683:5:64"},{"kind":"number","nativeSrc":"11690:66:64","nodeType":"YulLiteral","src":"11690:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"11680:2:64","nodeType":"YulIdentifier","src":"11680:2:64"},"nativeSrc":"11680:77:64","nodeType":"YulFunctionCall","src":"11680:77:64"},"nativeSrc":"11677:103:64","nodeType":"YulIf","src":"11677:103:64"},{"nativeSrc":"11789:20:64","nodeType":"YulAssignment","src":"11789:20:64","value":{"arguments":[{"name":"value","nativeSrc":"11800:5:64","nodeType":"YulIdentifier","src":"11800:5:64"},{"kind":"number","nativeSrc":"11807:1:64","nodeType":"YulLiteral","src":"11807:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"11796:3:64","nodeType":"YulIdentifier","src":"11796:3:64"},"nativeSrc":"11796:13:64","nodeType":"YulFunctionCall","src":"11796:13:64"},"variableNames":[{"name":"ret","nativeSrc":"11789:3:64","nodeType":"YulIdentifier","src":"11789:3:64"}]}]},"name":"increment_t_uint256","nativeSrc":"11582:233:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11611:5:64","nodeType":"YulTypedName","src":"11611:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"11621:3:64","nodeType":"YulTypedName","src":"11621:3:64","type":""}],"src":"11582:233:64"},{"body":{"nativeSrc":"11947:206:64","nodeType":"YulBlock","src":"11947:206:64","statements":[{"nativeSrc":"11957:26:64","nodeType":"YulAssignment","src":"11957:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"11969:9:64","nodeType":"YulIdentifier","src":"11969:9:64"},{"kind":"number","nativeSrc":"11980:2:64","nodeType":"YulLiteral","src":"11980:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11965:3:64","nodeType":"YulIdentifier","src":"11965:3:64"},"nativeSrc":"11965:18:64","nodeType":"YulFunctionCall","src":"11965:18:64"},"variableNames":[{"name":"tail","nativeSrc":"11957:4:64","nodeType":"YulIdentifier","src":"11957:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"12037:6:64","nodeType":"YulIdentifier","src":"12037:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"12050:9:64","nodeType":"YulIdentifier","src":"12050:9:64"},{"kind":"number","nativeSrc":"12061:1:64","nodeType":"YulLiteral","src":"12061:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12046:3:64","nodeType":"YulIdentifier","src":"12046:3:64"},"nativeSrc":"12046:17:64","nodeType":"YulFunctionCall","src":"12046:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"11993:43:64","nodeType":"YulIdentifier","src":"11993:43:64"},"nativeSrc":"11993:71:64","nodeType":"YulFunctionCall","src":"11993:71:64"},"nativeSrc":"11993:71:64","nodeType":"YulExpressionStatement","src":"11993:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"12118:6:64","nodeType":"YulIdentifier","src":"12118:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"12131:9:64","nodeType":"YulIdentifier","src":"12131:9:64"},{"kind":"number","nativeSrc":"12142:2:64","nodeType":"YulLiteral","src":"12142:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12127:3:64","nodeType":"YulIdentifier","src":"12127:3:64"},"nativeSrc":"12127:18:64","nodeType":"YulFunctionCall","src":"12127:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"12074:43:64","nodeType":"YulIdentifier","src":"12074:43:64"},"nativeSrc":"12074:72:64","nodeType":"YulFunctionCall","src":"12074:72:64"},"nativeSrc":"12074:72:64","nodeType":"YulExpressionStatement","src":"12074:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nativeSrc":"11821:332:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11911:9:64","nodeType":"YulTypedName","src":"11911:9:64","type":""},{"name":"value1","nativeSrc":"11923:6:64","nodeType":"YulTypedName","src":"11923:6:64","type":""},{"name":"value0","nativeSrc":"11931:6:64","nodeType":"YulTypedName","src":"11931:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"11942:4:64","nodeType":"YulTypedName","src":"11942:4:64","type":""}],"src":"11821:332:64"},{"body":{"nativeSrc":"12272:34:64","nodeType":"YulBlock","src":"12272:34:64","statements":[{"nativeSrc":"12282:18:64","nodeType":"YulAssignment","src":"12282:18:64","value":{"name":"pos","nativeSrc":"12297:3:64","nodeType":"YulIdentifier","src":"12297:3:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"12282:11:64","nodeType":"YulIdentifier","src":"12282:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12159:147:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12244:3:64","nodeType":"YulTypedName","src":"12244:3:64","type":""},{"name":"length","nativeSrc":"12249:6:64","nodeType":"YulTypedName","src":"12249:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"12260:11:64","nodeType":"YulTypedName","src":"12260:11:64","type":""}],"src":"12159:147:64"},{"body":{"nativeSrc":"12420:278:64","nodeType":"YulBlock","src":"12420:278:64","statements":[{"nativeSrc":"12430:52:64","nodeType":"YulVariableDeclaration","src":"12430:52:64","value":{"arguments":[{"name":"value","nativeSrc":"12476:5:64","nodeType":"YulIdentifier","src":"12476:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"12444:31:64","nodeType":"YulIdentifier","src":"12444:31:64"},"nativeSrc":"12444:38:64","nodeType":"YulFunctionCall","src":"12444:38:64"},"variables":[{"name":"length","nativeSrc":"12434:6:64","nodeType":"YulTypedName","src":"12434:6:64","type":""}]},{"nativeSrc":"12491:95:64","nodeType":"YulAssignment","src":"12491:95:64","value":{"arguments":[{"name":"pos","nativeSrc":"12574:3:64","nodeType":"YulIdentifier","src":"12574:3:64"},{"name":"length","nativeSrc":"12579:6:64","nodeType":"YulIdentifier","src":"12579:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12498:75:64","nodeType":"YulIdentifier","src":"12498:75:64"},"nativeSrc":"12498:88:64","nodeType":"YulFunctionCall","src":"12498:88:64"},"variableNames":[{"name":"pos","nativeSrc":"12491:3:64","nodeType":"YulIdentifier","src":"12491:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12634:5:64","nodeType":"YulIdentifier","src":"12634:5:64"},{"kind":"number","nativeSrc":"12641:4:64","nodeType":"YulLiteral","src":"12641:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12630:3:64","nodeType":"YulIdentifier","src":"12630:3:64"},"nativeSrc":"12630:16:64","nodeType":"YulFunctionCall","src":"12630:16:64"},{"name":"pos","nativeSrc":"12648:3:64","nodeType":"YulIdentifier","src":"12648:3:64"},{"name":"length","nativeSrc":"12653:6:64","nodeType":"YulIdentifier","src":"12653:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"12595:34:64","nodeType":"YulIdentifier","src":"12595:34:64"},"nativeSrc":"12595:65:64","nodeType":"YulFunctionCall","src":"12595:65:64"},"nativeSrc":"12595:65:64","nodeType":"YulExpressionStatement","src":"12595:65:64"},{"nativeSrc":"12669:23:64","nodeType":"YulAssignment","src":"12669:23:64","value":{"arguments":[{"name":"pos","nativeSrc":"12680:3:64","nodeType":"YulIdentifier","src":"12680:3:64"},{"name":"length","nativeSrc":"12685:6:64","nodeType":"YulIdentifier","src":"12685:6:64"}],"functionName":{"name":"add","nativeSrc":"12676:3:64","nodeType":"YulIdentifier","src":"12676:3:64"},"nativeSrc":"12676:16:64","nodeType":"YulFunctionCall","src":"12676:16:64"},"variableNames":[{"name":"end","nativeSrc":"12669:3:64","nodeType":"YulIdentifier","src":"12669:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12312:386:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12401:5:64","nodeType":"YulTypedName","src":"12401:5:64","type":""},{"name":"pos","nativeSrc":"12408:3:64","nodeType":"YulTypedName","src":"12408:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12416:3:64","nodeType":"YulTypedName","src":"12416:3:64","type":""}],"src":"12312:386:64"},{"body":{"nativeSrc":"12838:137:64","nodeType":"YulBlock","src":"12838:137:64","statements":[{"nativeSrc":"12849:100:64","nodeType":"YulAssignment","src":"12849:100:64","value":{"arguments":[{"name":"value0","nativeSrc":"12936:6:64","nodeType":"YulIdentifier","src":"12936:6:64"},{"name":"pos","nativeSrc":"12945:3:64","nodeType":"YulIdentifier","src":"12945:3:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12856:79:64","nodeType":"YulIdentifier","src":"12856:79:64"},"nativeSrc":"12856:93:64","nodeType":"YulFunctionCall","src":"12856:93:64"},"variableNames":[{"name":"pos","nativeSrc":"12849:3:64","nodeType":"YulIdentifier","src":"12849:3:64"}]},{"nativeSrc":"12959:10:64","nodeType":"YulAssignment","src":"12959:10:64","value":{"name":"pos","nativeSrc":"12966:3:64","nodeType":"YulIdentifier","src":"12966:3:64"},"variableNames":[{"name":"end","nativeSrc":"12959:3:64","nodeType":"YulIdentifier","src":"12959:3:64"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"12704:271:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12817:3:64","nodeType":"YulTypedName","src":"12817:3:64","type":""},{"name":"value0","nativeSrc":"12823:6:64","nodeType":"YulTypedName","src":"12823:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12834:3:64","nodeType":"YulTypedName","src":"12834:3:64","type":""}],"src":"12704:271:64"},{"body":{"nativeSrc":"13023:52:64","nodeType":"YulBlock","src":"13023:52:64","statements":[{"nativeSrc":"13033:35:64","nodeType":"YulAssignment","src":"13033:35:64","value":{"arguments":[{"kind":"number","nativeSrc":"13058:2:64","nodeType":"YulLiteral","src":"13058:2:64","type":"","value":"96"},{"name":"value","nativeSrc":"13062:5:64","nodeType":"YulIdentifier","src":"13062:5:64"}],"functionName":{"name":"shl","nativeSrc":"13054:3:64","nodeType":"YulIdentifier","src":"13054:3:64"},"nativeSrc":"13054:14:64","nodeType":"YulFunctionCall","src":"13054:14:64"},"variableNames":[{"name":"newValue","nativeSrc":"13033:8:64","nodeType":"YulIdentifier","src":"13033:8:64"}]}]},"name":"shift_left_96","nativeSrc":"12981:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13004:5:64","nodeType":"YulTypedName","src":"13004:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"13014:8:64","nodeType":"YulTypedName","src":"13014:8:64","type":""}],"src":"12981:94:64"},{"body":{"nativeSrc":"13128:47:64","nodeType":"YulBlock","src":"13128:47:64","statements":[{"nativeSrc":"13138:31:64","nodeType":"YulAssignment","src":"13138:31:64","value":{"arguments":[{"name":"value","nativeSrc":"13163:5:64","nodeType":"YulIdentifier","src":"13163:5:64"}],"functionName":{"name":"shift_left_96","nativeSrc":"13149:13:64","nodeType":"YulIdentifier","src":"13149:13:64"},"nativeSrc":"13149:20:64","nodeType":"YulFunctionCall","src":"13149:20:64"},"variableNames":[{"name":"aligned","nativeSrc":"13138:7:64","nodeType":"YulIdentifier","src":"13138:7:64"}]}]},"name":"leftAlign_t_uint160","nativeSrc":"13081:94:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13110:5:64","nodeType":"YulTypedName","src":"13110:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13120:7:64","nodeType":"YulTypedName","src":"13120:7:64","type":""}],"src":"13081:94:64"},{"body":{"nativeSrc":"13228:53:64","nodeType":"YulBlock","src":"13228:53:64","statements":[{"nativeSrc":"13238:37:64","nodeType":"YulAssignment","src":"13238:37:64","value":{"arguments":[{"name":"value","nativeSrc":"13269:5:64","nodeType":"YulIdentifier","src":"13269:5:64"}],"functionName":{"name":"leftAlign_t_uint160","nativeSrc":"13249:19:64","nodeType":"YulIdentifier","src":"13249:19:64"},"nativeSrc":"13249:26:64","nodeType":"YulFunctionCall","src":"13249:26:64"},"variableNames":[{"name":"aligned","nativeSrc":"13238:7:64","nodeType":"YulIdentifier","src":"13238:7:64"}]}]},"name":"leftAlign_t_address","nativeSrc":"13181:100:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13210:5:64","nodeType":"YulTypedName","src":"13210:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13220:7:64","nodeType":"YulTypedName","src":"13220:7:64","type":""}],"src":"13181:100:64"},{"body":{"nativeSrc":"13370:74:64","nodeType":"YulBlock","src":"13370:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13387:3:64","nodeType":"YulIdentifier","src":"13387:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13430:5:64","nodeType":"YulIdentifier","src":"13430:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"13412:17:64","nodeType":"YulIdentifier","src":"13412:17:64"},"nativeSrc":"13412:24:64","nodeType":"YulFunctionCall","src":"13412:24:64"}],"functionName":{"name":"leftAlign_t_address","nativeSrc":"13392:19:64","nodeType":"YulIdentifier","src":"13392:19:64"},"nativeSrc":"13392:45:64","nodeType":"YulFunctionCall","src":"13392:45:64"}],"functionName":{"name":"mstore","nativeSrc":"13380:6:64","nodeType":"YulIdentifier","src":"13380:6:64"},"nativeSrc":"13380:58:64","nodeType":"YulFunctionCall","src":"13380:58:64"},"nativeSrc":"13380:58:64","nodeType":"YulExpressionStatement","src":"13380:58:64"}]},"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13287:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13358:5:64","nodeType":"YulTypedName","src":"13358:5:64","type":""},{"name":"pos","nativeSrc":"13365:3:64","nodeType":"YulTypedName","src":"13365:3:64","type":""}],"src":"13287:157:64"},{"body":{"nativeSrc":"13497:32:64","nodeType":"YulBlock","src":"13497:32:64","statements":[{"nativeSrc":"13507:16:64","nodeType":"YulAssignment","src":"13507:16:64","value":{"name":"value","nativeSrc":"13518:5:64","nodeType":"YulIdentifier","src":"13518:5:64"},"variableNames":[{"name":"aligned","nativeSrc":"13507:7:64","nodeType":"YulIdentifier","src":"13507:7:64"}]}]},"name":"leftAlign_t_uint256","nativeSrc":"13450:79:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13479:5:64","nodeType":"YulTypedName","src":"13479:5:64","type":""}],"returnVariables":[{"name":"aligned","nativeSrc":"13489:7:64","nodeType":"YulTypedName","src":"13489:7:64","type":""}],"src":"13450:79:64"},{"body":{"nativeSrc":"13618:74:64","nodeType":"YulBlock","src":"13618:74:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13635:3:64","nodeType":"YulIdentifier","src":"13635:3:64"},{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13678:5:64","nodeType":"YulIdentifier","src":"13678:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13660:17:64","nodeType":"YulIdentifier","src":"13660:17:64"},"nativeSrc":"13660:24:64","nodeType":"YulFunctionCall","src":"13660:24:64"}],"functionName":{"name":"leftAlign_t_uint256","nativeSrc":"13640:19:64","nodeType":"YulIdentifier","src":"13640:19:64"},"nativeSrc":"13640:45:64","nodeType":"YulFunctionCall","src":"13640:45:64"}],"functionName":{"name":"mstore","nativeSrc":"13628:6:64","nodeType":"YulIdentifier","src":"13628:6:64"},"nativeSrc":"13628:58:64","nodeType":"YulFunctionCall","src":"13628:58:64"},"nativeSrc":"13628:58:64","nodeType":"YulExpressionStatement","src":"13628:58:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"13535:157:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13606:5:64","nodeType":"YulTypedName","src":"13606:5:64","type":""},{"name":"pos","nativeSrc":"13613:3:64","nodeType":"YulTypedName","src":"13613:3:64","type":""}],"src":"13535:157:64"},{"body":{"nativeSrc":"13870:366:64","nodeType":"YulBlock","src":"13870:366:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13943:6:64","nodeType":"YulIdentifier","src":"13943:6:64"},{"name":"pos","nativeSrc":"13952:3:64","nodeType":"YulIdentifier","src":"13952:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13881:61:64","nodeType":"YulIdentifier","src":"13881:61:64"},"nativeSrc":"13881:75:64","nodeType":"YulFunctionCall","src":"13881:75:64"},"nativeSrc":"13881:75:64","nodeType":"YulExpressionStatement","src":"13881:75:64"},{"nativeSrc":"13965:19:64","nodeType":"YulAssignment","src":"13965:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"13976:3:64","nodeType":"YulIdentifier","src":"13976:3:64"},{"kind":"number","nativeSrc":"13981:2:64","nodeType":"YulLiteral","src":"13981:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"13972:3:64","nodeType":"YulIdentifier","src":"13972:3:64"},"nativeSrc":"13972:12:64","nodeType":"YulFunctionCall","src":"13972:12:64"},"variableNames":[{"name":"pos","nativeSrc":"13965:3:64","nodeType":"YulIdentifier","src":"13965:3:64"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14056:6:64","nodeType":"YulIdentifier","src":"14056:6:64"},{"name":"pos","nativeSrc":"14065:3:64","nodeType":"YulIdentifier","src":"14065:3:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack","nativeSrc":"13994:61:64","nodeType":"YulIdentifier","src":"13994:61:64"},"nativeSrc":"13994:75:64","nodeType":"YulFunctionCall","src":"13994:75:64"},"nativeSrc":"13994:75:64","nodeType":"YulExpressionStatement","src":"13994:75:64"},{"nativeSrc":"14078:19:64","nodeType":"YulAssignment","src":"14078:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"14089:3:64","nodeType":"YulIdentifier","src":"14089:3:64"},{"kind":"number","nativeSrc":"14094:2:64","nodeType":"YulLiteral","src":"14094:2:64","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"14085:3:64","nodeType":"YulIdentifier","src":"14085:3:64"},"nativeSrc":"14085:12:64","nodeType":"YulFunctionCall","src":"14085:12:64"},"variableNames":[{"name":"pos","nativeSrc":"14078:3:64","nodeType":"YulIdentifier","src":"14078:3:64"}]},{"expression":{"arguments":[{"name":"value2","nativeSrc":"14169:6:64","nodeType":"YulIdentifier","src":"14169:6:64"},{"name":"pos","nativeSrc":"14178:3:64","nodeType":"YulIdentifier","src":"14178:3:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack","nativeSrc":"14107:61:64","nodeType":"YulIdentifier","src":"14107:61:64"},"nativeSrc":"14107:75:64","nodeType":"YulFunctionCall","src":"14107:75:64"},"nativeSrc":"14107:75:64","nodeType":"YulExpressionStatement","src":"14107:75:64"},{"nativeSrc":"14191:19:64","nodeType":"YulAssignment","src":"14191:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"14202:3:64","nodeType":"YulIdentifier","src":"14202:3:64"},{"kind":"number","nativeSrc":"14207:2:64","nodeType":"YulLiteral","src":"14207:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14198:3:64","nodeType":"YulIdentifier","src":"14198:3:64"},"nativeSrc":"14198:12:64","nodeType":"YulFunctionCall","src":"14198:12:64"},"variableNames":[{"name":"pos","nativeSrc":"14191:3:64","nodeType":"YulIdentifier","src":"14191:3:64"}]},{"nativeSrc":"14220:10:64","nodeType":"YulAssignment","src":"14220:10:64","value":{"name":"pos","nativeSrc":"14227:3:64","nodeType":"YulIdentifier","src":"14227:3:64"},"variableNames":[{"name":"end","nativeSrc":"14220:3:64","nodeType":"YulIdentifier","src":"14220:3:64"}]}]},"name":"abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nativeSrc":"13698:538:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13833:3:64","nodeType":"YulTypedName","src":"13833:3:64","type":""},{"name":"value2","nativeSrc":"13839:6:64","nodeType":"YulTypedName","src":"13839:6:64","type":""},{"name":"value1","nativeSrc":"13847:6:64","nodeType":"YulTypedName","src":"13847:6:64","type":""},{"name":"value0","nativeSrc":"13855:6:64","nodeType":"YulTypedName","src":"13855:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13866:3:64","nodeType":"YulTypedName","src":"13866:3:64","type":""}],"src":"13698:538:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n // struct PointsIncentive.InitPayload\n function abi_decode_t_struct$_InitPayload_$18217_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x80)\n\n {\n // venue\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // selector\n\n let offset := 32\n\n mstore(add(value, 0x20), abi_decode_t_bytes4(add(headStart, offset), end))\n\n }\n\n {\n // reward\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n {\n // limit\n\n let offset := 96\n\n mstore(add(value, 0x60), abi_decode_t_uint256(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_InitPayload_$18217_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_struct$_InitPayload_$18217_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Incentive.ClaimPayload\n function abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // data\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_ClaimPayload_$18096_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_ClaimPayload_$18096_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405260043610610129575f3560e01c8063a270a737116100aa578063e18e65081161006e578063e18e650814610389578063ea3d508a146103c5578063f04e283e146103ef578063f1c30ec01461040b578063f2fde38b14610447578063fee81cf41461046357610129565b8063a270a73714610293578063a4d66daf146102bd578063c63ff8dd146102e7578063c884ef8314610323578063dcc59b6f1461035f57610129565b8063439fab91116100f1578063439fab91146101f15780634e7165a21461021957806354d1f13d14610255578063715018a61461025f5780638da5cb5b1461026957610129565b806301ffc9a71461012d57806307621eca14610169578063228cb7331461019357806325692962146101bd57806328d6183b146101c7575b5f80fd5b348015610138575f80fd5b50610153600480360381019061014e9190610fdc565b61049f565b6040516101609190611021565b60405180910390f35b348015610174575f80fd5b5061017d610518565b60405161018a9190611052565b60405180910390f35b34801561019e575f80fd5b506101a7610521565b6040516101b49190611052565b60405180910390f35b6101c5610527565b005b3480156101d2575f80fd5b506101db610578565b6040516101e8919061107a565b60405180910390f35b3480156101fc575f80fd5b50610217600480360381019061021291906110f4565b61059f565b005b348015610224575f80fd5b5061023f600480360381019061023a91906110f4565b6106f7565b60405161024c91906111af565b60405180910390f35b61025d61074e565b005b610267610787565b005b348015610274575f80fd5b5061027d61079a565b60405161028a919061120e565b60405180910390f35b34801561029e575f80fd5b506102a76107c2565b6040516102b4919061120e565b60405180910390f35b3480156102c8575f80fd5b506102d16107e7565b6040516102de9190611052565b60405180910390f35b3480156102f2575f80fd5b5061030d600480360381019061030891906110f4565b6107ed565b60405161031a9190611021565b60405180910390f35b34801561032e575f80fd5b5061034960048036038101906103449190611251565b610aa1565b6040516103569190611021565b60405180910390f35b34801561036a575f80fd5b50610373610abe565b6040516103809190611052565b60405180910390f35b348015610394575f80fd5b506103af60048036038101906103aa91906110f4565b610ac3565b6040516103bc9190611021565b60405180910390f35b3480156103d0575f80fd5b506103d9610aeb565b6040516103e6919061107a565b60405180910390f35b61040960048036038101906104049190611251565b610afd565b005b348015610416575f80fd5b50610431600480360381019061042c91906110f4565b610b3b565b60405161043e9190611021565b60405180910390f35b610461600480360381019061045c9190611251565b610b6e565b005b34801561046e575f80fd5b5061048960048036038101906104849190611251565b610b97565b6040516104969190611052565b60405180910390f35b5f7f1e2e16a8000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610511575061051082610bb0565b5b9050919050565b5f600154905090565b60015481565b5f610530610c29565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7f1e2e16a800000000000000000000000000000000000000000000000000000000905090565b5f6105a8610c33565b905080546003825580156105da5760018160011c14303b106105d15763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906105eb919061139b565b90505f8160400151148061060257505f8160600151145b15610639576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f015160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015160055f6101000a81548163ffffffff021916908360e01c0217905550806040015160018190555080606001516004819055506106bc33610c5c565b5080156106f2576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b60605f67ffffffffffffffff81111561071357610712611280565b5b6040519080825280601f01601f1916602001820160405280156107455781602001600182028036833780820191505090505b50905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61078f610d32565b6107985f610d69565b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b5f6107f6610d32565b5f838381019061080691906114df565b9050610814815f0151610e2f565b61084a576040517f6247a84e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8081548092919061085b90611553565b9190505550600160025f835f015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900460e01b835f015160015460405160240161091892919061159a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161098291906115fb565b5f604051808303815f865af19150503d805f81146109bb576040519150601f19603f3d011682016040523d82523d5f602084013e6109c0565b606091505b50509050806109fb576040517f360e42e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f015173ffffffffffffffffffffffffffffffffffffffff167f9ad2e7a4af16dceda9cce4274b2f59c328d8c012eb0e15eb5e1e73b7d8f264d360035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16845f0151600154604051602001610a7193929190611676565b604051602081830303815290604052604051610a8d91906111af565b60405180910390a260019250505092915050565b6002602052805f5260405f205f915054906101000a900460ff1681565b5f5481565b5f808383810190610ad491906114df565b9050610ae2815f0151610e2f565b91505092915050565b60055f9054906101000a900460e01b81565b610b05610d32565b63389a75e1600c52805f526020600c208054421115610b2b57636f5e88185f526004601cfd5b5f815550610b3881610d69565b50565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b76610d32565b8060601b610b8b57637448fbae5f526004601cfd5b610b9481610d69565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7f8085fa3e000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c225750610c2182610e90565b5b9050919050565b5f6202a300905090565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610c64610f09565b15610cdc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610c9e57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610d2f565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610d67576382b429005f526004601cfd5b565b610d71610f09565b15610dd6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610e2c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015610e8957506004545f54105b9050919050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f025750610f0182610f0d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610fbb81610f87565b8114610fc5575f80fd5b50565b5f81359050610fd681610fb2565b92915050565b5f60208284031215610ff157610ff0610f7f565b5b5f610ffe84828501610fc8565b91505092915050565b5f8115159050919050565b61101b81611007565b82525050565b5f6020820190506110345f830184611012565b92915050565b5f819050919050565b61104c8161103a565b82525050565b5f6020820190506110655f830184611043565b92915050565b61107481610f87565b82525050565b5f60208201905061108d5f83018461106b565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126110b4576110b3611093565b5b8235905067ffffffffffffffff8111156110d1576110d0611097565b5b6020830191508360018202830111156110ed576110ec61109b565b5b9250929050565b5f806020838503121561110a57611109610f7f565b5b5f83013567ffffffffffffffff81111561112757611126610f83565b5b6111338582860161109f565b92509250509250929050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6111818261113f565b61118b8185611149565b935061119b818560208601611159565b6111a481611167565b840191505092915050565b5f6020820190508181035f8301526111c78184611177565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6111f8826111cf565b9050919050565b611208816111ee565b82525050565b5f6020820190506112215f8301846111ff565b92915050565b611230816111ee565b811461123a575f80fd5b50565b5f8135905061124b81611227565b92915050565b5f6020828403121561126657611265610f7f565b5b5f6112738482850161123d565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6112b682611167565b810181811067ffffffffffffffff821117156112d5576112d4611280565b5b80604052505050565b5f6112e7610f76565b90506112f382826112ad565b919050565b5f80fd5b6113058161103a565b811461130f575f80fd5b50565b5f81359050611320816112fc565b92915050565b5f6080828403121561133b5761133a61127c565b5b61134560806112de565b90505f6113548482850161123d565b5f83015250602061136784828501610fc8565b602083015250604061137b84828501611312565b604083015250606061138f84828501611312565b60608301525092915050565b5f608082840312156113b0576113af610f7f565b5b5f6113bd84828501611326565b91505092915050565b5f80fd5b5f67ffffffffffffffff8211156113e4576113e3611280565b5b6113ed82611167565b9050602081019050919050565b828183375f83830152505050565b5f61141a611415846113ca565b6112de565b905082815260208101848484011115611436576114356113c6565b5b6114418482856113fa565b509392505050565b5f82601f83011261145d5761145c611093565b5b813561146d848260208601611408565b91505092915050565b5f6040828403121561148b5761148a61127c565b5b61149560406112de565b90505f6114a48482850161123d565b5f83015250602082013567ffffffffffffffff8111156114c7576114c66112f8565b5b6114d384828501611449565b60208301525092915050565b5f602082840312156114f4576114f3610f7f565b5b5f82013567ffffffffffffffff81111561151157611510610f83565b5b61151d84828501611476565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61155d8261103a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361158f5761158e611526565b5b600182019050919050565b5f6040820190506115ad5f8301856111ff565b6115ba6020830184611043565b9392505050565b5f81905092915050565b5f6115d58261113f565b6115df81856115c1565b93506115ef818560208601611159565b80840191505092915050565b5f61160682846115cb565b915081905092915050565b5f8160601b9050919050565b5f61162782611611565b9050919050565b5f6116388261161d565b9050919050565b61165061164b826111ee565b61162e565b82525050565b5f819050919050565b61167061166b8261103a565b611656565b82525050565b5f611681828661163f565b601482019150611691828561163f565b6014820191506116a1828461165f565b60208201915081905094935050505056fea26469706673582212202fc079fb65343fea841b98c134ef18046776671385a6cde592e7bf8577fa57a064736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x129 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA270A737 GT PUSH2 0xAA JUMPI DUP1 PUSH4 0xE18E6508 GT PUSH2 0x6E JUMPI DUP1 PUSH4 0xE18E6508 EQ PUSH2 0x389 JUMPI DUP1 PUSH4 0xEA3D508A EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x3EF JUMPI DUP1 PUSH4 0xF1C30EC0 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x447 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x463 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0xA270A737 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0xA4D66DAF EQ PUSH2 0x2BD JUMPI DUP1 PUSH4 0xC63FF8DD EQ PUSH2 0x2E7 JUMPI DUP1 PUSH4 0xC884EF83 EQ PUSH2 0x323 JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x35F JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x439FAB91 GT PUSH2 0xF1 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0x4E7165A2 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x255 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x269 JUMPI PUSH2 0x129 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x12D JUMPI DUP1 PUSH4 0x7621ECA EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x228CB733 EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x1BD JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0xFDC JUMP JUMPDEST PUSH2 0x49F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x174 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x17D PUSH2 0x518 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18A SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A7 PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C5 PUSH2 0x527 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DB PUSH2 0x578 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E8 SWAP2 SWAP1 PUSH2 0x107A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x217 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x212 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x59F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x224 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23A SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x6F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x24C SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25D PUSH2 0x74E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x267 PUSH2 0x787 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x274 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x27D PUSH2 0x79A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x28A SWAP2 SWAP1 PUSH2 0x120E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B4 SWAP2 SWAP1 PUSH2 0x120E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D1 PUSH2 0x7E7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0x7ED JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31A SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x349 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x344 SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x356 SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x373 PUSH2 0xABE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x394 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3AF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3AA SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0xAC3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3BC SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3D9 PUSH2 0xAEB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3E6 SWAP2 SWAP1 PUSH2 0x107A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x409 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x404 SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x416 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x431 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x10F4 JUMP JUMPDEST PUSH2 0xB3B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x43E SWAP2 SWAP1 PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x461 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45C SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB6E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x489 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x484 SWAP2 SWAP1 PUSH2 0x1251 JUMP JUMPDEST PUSH2 0xB97 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x496 SWAP2 SWAP1 PUSH2 0x1052 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0x1E2E16A800000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x511 JUMPI POP PUSH2 0x510 DUP3 PUSH2 0xBB0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x530 PUSH2 0xC29 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0x1E2E16A800000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x5A8 PUSH2 0xC33 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x5DA JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x5D1 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0x139B JUMP JUMPDEST SWAP1 POP PUSH0 DUP2 PUSH1 0x40 ADD MLOAD EQ DUP1 PUSH2 0x602 JUMPI POP PUSH0 DUP2 PUSH1 0x60 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x639 JUMPI PUSH1 0x40 MLOAD PUSH32 0xF92EE8A900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH0 ADD MLOAD PUSH1 0x3 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD PUSH1 0x5 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xE0 SHR MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0x1 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x60 ADD MLOAD PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH2 0x6BC CALLER PUSH2 0xC5C JUMP JUMPDEST POP DUP1 ISZERO PUSH2 0x6F2 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x713 JUMPI PUSH2 0x712 PUSH2 0x1280 JUMP JUMPDEST 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 0x745 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x78F PUSH2 0xD32 JUMP JUMPDEST PUSH2 0x798 PUSH0 PUSH2 0xD69 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 JUMP JUMPDEST PUSH0 PUSH2 0x7F6 PUSH2 0xD32 JUMP JUMPDEST PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x806 SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST SWAP1 POP PUSH2 0x814 DUP2 PUSH0 ADD MLOAD PUSH2 0xE2F JUMP JUMPDEST PUSH2 0x84A JUMPI PUSH1 0x40 MLOAD PUSH32 0x6247A84E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x85B SWAP1 PUSH2 0x1553 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 PUSH1 0x2 PUSH0 DUP4 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH0 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP4 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x918 SWAP3 SWAP2 SWAP1 PUSH2 0x159A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x982 SWAP2 SWAP1 PUSH2 0x15FB JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x9BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x9C0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x9FB JUMPI PUSH1 0x40 MLOAD PUSH32 0x360E42E100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x9AD2E7A4AF16DCEDA9CCE4274B2F59C328D8C012EB0E15EB5E1E73B7D8F264D3 PUSH1 0x3 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH0 ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA71 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1676 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0xA8D SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 PUSH1 0x1 SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH0 DUP1 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0xAD4 SWAP2 SWAP1 PUSH2 0x14DF JUMP JUMPDEST SWAP1 POP PUSH2 0xAE2 DUP2 PUSH0 ADD MLOAD PUSH2 0xE2F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x5 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xE0 SHL DUP2 JUMP JUMPDEST PUSH2 0xB05 PUSH2 0xD32 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xB2B JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xB38 DUP2 PUSH2 0xD69 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD PUSH32 0xD623472500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB76 PUSH2 0xD32 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xB8B JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xB94 DUP2 PUSH2 0xD69 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x8085FA3E00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC22 JUMPI POP PUSH2 0xC21 DUP3 PUSH2 0xE90 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xC64 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xCDC JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xC9E JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xD2F JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xD67 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH2 0xD71 PUSH2 0xF09 JUMP JUMPDEST ISZERO PUSH2 0xDD6 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xE2C JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH1 0x2 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 ISZERO PUSH2 0xE89 JUMPI POP PUSH1 0x4 SLOAD PUSH0 SLOAD LT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xF02 JUMPI POP PUSH2 0xF01 DUP3 PUSH2 0xF0D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFBB DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP2 EQ PUSH2 0xFC5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFD6 DUP2 PUSH2 0xFB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFF1 JUMPI PUSH2 0xFF0 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xFFE DUP5 DUP3 DUP6 ADD PUSH2 0xFC8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x101B DUP2 PUSH2 0x1007 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1034 PUSH0 DUP4 ADD DUP5 PUSH2 0x1012 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104C DUP2 PUSH2 0x103A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1065 PUSH0 DUP4 ADD DUP5 PUSH2 0x1043 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1074 DUP2 PUSH2 0xF87 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x108D PUSH0 DUP4 ADD DUP5 PUSH2 0x106B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x10B4 JUMPI PUSH2 0x10B3 PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10D1 JUMPI PUSH2 0x10D0 PUSH2 0x1097 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x10ED JUMPI PUSH2 0x10EC PUSH2 0x109B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x110A JUMPI PUSH2 0x1109 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1127 JUMPI PUSH2 0x1126 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x1133 DUP6 DUP3 DUP7 ADD PUSH2 0x109F JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1181 DUP3 PUSH2 0x113F JUMP JUMPDEST PUSH2 0x118B DUP2 DUP6 PUSH2 0x1149 JUMP JUMPDEST SWAP4 POP PUSH2 0x119B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1159 JUMP JUMPDEST PUSH2 0x11A4 DUP2 PUSH2 0x1167 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x11C7 DUP2 DUP5 PUSH2 0x1177 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11F8 DUP3 PUSH2 0x11CF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1208 DUP2 PUSH2 0x11EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1221 PUSH0 DUP4 ADD DUP5 PUSH2 0x11FF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1230 DUP2 PUSH2 0x11EE JUMP JUMPDEST DUP2 EQ PUSH2 0x123A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x124B DUP2 PUSH2 0x1227 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1266 JUMPI PUSH2 0x1265 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1273 DUP5 DUP3 DUP6 ADD PUSH2 0x123D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x12B6 DUP3 PUSH2 0x1167 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x12D5 JUMPI PUSH2 0x12D4 PUSH2 0x1280 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x12E7 PUSH2 0xF76 JUMP JUMPDEST SWAP1 POP PUSH2 0x12F3 DUP3 DUP3 PUSH2 0x12AD JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0x1305 DUP2 PUSH2 0x103A JUMP JUMPDEST DUP2 EQ PUSH2 0x130F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1320 DUP2 PUSH2 0x12FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x133B JUMPI PUSH2 0x133A PUSH2 0x127C JUMP JUMPDEST JUMPDEST PUSH2 0x1345 PUSH1 0x80 PUSH2 0x12DE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x1354 DUP5 DUP3 DUP6 ADD PUSH2 0x123D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x1367 DUP5 DUP3 DUP6 ADD PUSH2 0xFC8 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x137B DUP5 DUP3 DUP6 ADD PUSH2 0x1312 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x138F DUP5 DUP3 DUP6 ADD PUSH2 0x1312 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13B0 JUMPI PUSH2 0x13AF PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13BD DUP5 DUP3 DUP6 ADD PUSH2 0x1326 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x13E4 JUMPI PUSH2 0x13E3 PUSH2 0x1280 JUMP JUMPDEST JUMPDEST PUSH2 0x13ED DUP3 PUSH2 0x1167 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x141A PUSH2 0x1415 DUP5 PUSH2 0x13CA JUMP JUMPDEST PUSH2 0x12DE JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1436 JUMPI PUSH2 0x1435 PUSH2 0x13C6 JUMP JUMPDEST JUMPDEST PUSH2 0x1441 DUP5 DUP3 DUP6 PUSH2 0x13FA JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x145D JUMPI PUSH2 0x145C PUSH2 0x1093 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x146D DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1408 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x148B JUMPI PUSH2 0x148A PUSH2 0x127C JUMP JUMPDEST JUMPDEST PUSH2 0x1495 PUSH1 0x40 PUSH2 0x12DE JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0x14A4 DUP5 DUP3 DUP6 ADD PUSH2 0x123D JUMP JUMPDEST PUSH0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12F8 JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP5 DUP3 DUP6 ADD PUSH2 0x1449 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14F4 JUMPI PUSH2 0x14F3 PUSH2 0xF7F JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1511 JUMPI PUSH2 0x1510 PUSH2 0xF83 JUMP JUMPDEST JUMPDEST PUSH2 0x151D DUP5 DUP3 DUP6 ADD PUSH2 0x1476 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x155D DUP3 PUSH2 0x103A JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x158F JUMPI PUSH2 0x158E PUSH2 0x1526 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x15AD PUSH0 DUP4 ADD DUP6 PUSH2 0x11FF JUMP JUMPDEST PUSH2 0x15BA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1043 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x15D5 DUP3 PUSH2 0x113F JUMP JUMPDEST PUSH2 0x15DF DUP2 DUP6 PUSH2 0x15C1 JUMP JUMPDEST SWAP4 POP PUSH2 0x15EF DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1159 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1606 DUP3 DUP5 PUSH2 0x15CB JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1627 DUP3 PUSH2 0x1611 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1638 DUP3 PUSH2 0x161D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1650 PUSH2 0x164B DUP3 PUSH2 0x11EE JUMP JUMPDEST PUSH2 0x162E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1670 PUSH2 0x166B DUP3 PUSH2 0x103A JUMP JUMPDEST PUSH2 0x1656 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1681 DUP3 DUP7 PUSH2 0x163F JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x1691 DUP3 DUP6 PUSH2 0x163F JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x16A1 DUP3 DUP5 PUSH2 0x165F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0xC0 PUSH26 0xFB65343FEA841B98C134EF18046776671385A6CDE592E7BF8577 STATICCALL JUMPI LOG0 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"675:1123:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3561:215:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3044:93:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1383:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;3377:148:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1393:403:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2291:128:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;11408:182;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;800:20:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;907;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1439:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1464:39:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2800:202:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1012:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2066:122:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8348:349:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3561:215:49;3657:4;3695:34;3680:49;;;:11;:49;;;;:89;;;;3733:36;3757:11;3733:23;:36::i;:::-;3680:89;3673:96;;3561:215;;;:::o;3044:93:54:-;3098:7;3124:6;;3117:13;;3044:93;:::o;1383:21::-;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;3377:148:49:-;3459:6;3484:34;3477:41;;3377:148;:::o;1393:403:55:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1473:24:55::1;1511:5;;1500:32;;;;;;;:::i;:::-;1473:59;;1562:1;1546:5;:12;;;:17;:37;;;;1582:1;1567:5;:11;;;:16;1546:37;1542:84;;;1592:34;;;;;;;;;;;;;;1542:84;1645:5;:11;;;1637:5;;:19;;;;;;;;;;;;;;;;;;1677:5;:14;;;1666:8;;:25;;;;;;;;;;;;;;;;;;1710:5;:12;;;1701:6;:21;;;;1740:5;:11;;;1732:5;:19;;;;1761:28;1778:10;1761:16;:28::i;:::-;1463:333;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;1393:403:55;;:::o;2291:128:49:-;2358:23;2410:1;2400:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2393:19;;2291:128;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;11408:182::-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;800:20:49:-;;;;;;;;;;;;;:::o;907:::-;;;;:::o;1439:529::-;1513:4;12517:13:16;:11;:13::i;:::-;1529:26:49::1;1569:5;;1558:33;;;;;;;:::i;:::-;1529:62;;1606:27;1619:6;:13;;;1606:12;:27::i;:::-;1601:55;;1642:14;;;;;;;;;;;;;;1601:55;1667:6;::::0;:8:::1;;;;;;;;;:::i;:::-;;;;;;1710:4;1685:7;:22;1693:6;:13;;;1685:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1726:12;1743:5;;;;;;;;;;;:10;;1777:8;;;;;;;;;;;1787:6;:13;;;1802:6;;1754:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1743:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:85;;;1825:7;1820:34;;1841:13;;;;;;;;;;;;;;1820:34;1878:6;:13;;;1870:70;;;1910:5;;;;;;;;;;;1917:6;:13;;;1932:6;;1893:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1870:70;;;;;;:::i;:::-;;;;;;;;1957:4;1950:11;;;;1439:529:::0;;;;:::o;1464:39:54:-;;;;;;;;;;;;;;;;;;;;;;:::o;1299:21::-;;;;:::o;2800:202:49:-;2873:4;2889:26;2929:5;;2918:33;;;;;;;:::i;:::-;2889:62;;2968:27;2981:6;:13;;;2968:12;:27::i;:::-;2961:34;;;2800:202;;;;:::o;1012:22::-;;;;;;;;;;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;2066:122:49:-;2131:4;2154:27;;;;;;;;;;;;;;8348:349:16;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;3173:208:54:-;3269:4;3307:27;3292:42;;;:11;:42;;;;:82;;;;3338:36;3362:11;3338:23;:36::i;:::-;3292:82;3285:89;;3173:208;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;3208:133:49:-;3273:4;3297:7;:19;3305:10;3297:19;;;;;;;;;;;;;;;;;;;;;;;;;3296:20;:38;;;;;3329:5;;3320:6;;:14;3296:38;3289:45;;3208:133;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:118::-;1688:24;1706:5;1688:24;:::i;:::-;1683:3;1676:37;1601:118;;:::o;1725:222::-;1818:4;1856:2;1845:9;1841:18;1833:26;;1869:71;1937:1;1926:9;1922:17;1913:6;1869:71;:::i;:::-;1725:222;;;;:::o;1953:115::-;2038:23;2055:5;2038:23;:::i;:::-;2033:3;2026:36;1953:115;;:::o;2074:218::-;2165:4;2203:2;2192:9;2188:18;2180:26;;2216:69;2282:1;2271:9;2267:17;2258:6;2216:69;:::i;:::-;2074:218;;;;:::o;2298:117::-;2407:1;2404;2397:12;2421:117;2530:1;2527;2520:12;2544:117;2653:1;2650;2643:12;2680:552;2737:8;2747:6;2797:3;2790:4;2782:6;2778:17;2774:27;2764:122;;2805:79;;:::i;:::-;2764:122;2918:6;2905:20;2895:30;;2948:18;2940:6;2937:30;2934:117;;;2970:79;;:::i;:::-;2934:117;3084:4;3076:6;3072:17;3060:29;;3138:3;3130:4;3122:6;3118:17;3108:8;3104:32;3101:41;3098:128;;;3145:79;;:::i;:::-;3098:128;2680:552;;;;;:::o;3238:527::-;3308:6;3316;3365:2;3353:9;3344:7;3340:23;3336:32;3333:119;;;3371:79;;:::i;:::-;3333:119;3519:1;3508:9;3504:17;3491:31;3549:18;3541:6;3538:30;3535:117;;;3571:79;;:::i;:::-;3535:117;3684:64;3740:7;3731:6;3720:9;3716:22;3684:64;:::i;:::-;3666:82;;;;3462:296;3238:527;;;;;:::o;3771:98::-;3822:6;3856:5;3850:12;3840:22;;3771:98;;;:::o;3875:168::-;3958:11;3992:6;3987:3;3980:19;4032:4;4027:3;4023:14;4008:29;;3875:168;;;;:::o;4049:139::-;4138:6;4133:3;4128;4122:23;4179:1;4170:6;4165:3;4161:16;4154:27;4049:139;;;:::o;4194:102::-;4235:6;4286:2;4282:7;4277:2;4270:5;4266:14;4262:28;4252:38;;4194:102;;;:::o;4302:373::-;4388:3;4416:38;4448:5;4416:38;:::i;:::-;4470:70;4533:6;4528:3;4470:70;:::i;:::-;4463:77;;4549:65;4607:6;4602:3;4595:4;4588:5;4584:16;4549:65;:::i;:::-;4639:29;4661:6;4639:29;:::i;:::-;4634:3;4630:39;4623:46;;4392:283;4302:373;;;;:::o;4681:309::-;4792:4;4830:2;4819:9;4815:18;4807:26;;4879:9;4873:4;4869:20;4865:1;4854:9;4850:17;4843:47;4907:76;4978:4;4969:6;4907:76;:::i;:::-;4899:84;;4681:309;;;;:::o;4996:126::-;5033:7;5073:42;5066:5;5062:54;5051:65;;4996:126;;;:::o;5128:96::-;5165:7;5194:24;5212:5;5194:24;:::i;:::-;5183:35;;5128:96;;;:::o;5230:118::-;5317:24;5335:5;5317:24;:::i;:::-;5312:3;5305:37;5230:118;;:::o;5354:222::-;5447:4;5485:2;5474:9;5470:18;5462:26;;5498:71;5566:1;5555:9;5551:17;5542:6;5498:71;:::i;:::-;5354:222;;;;:::o;5582:122::-;5655:24;5673:5;5655:24;:::i;:::-;5648:5;5645:35;5635:63;;5694:1;5691;5684:12;5635:63;5582:122;:::o;5710:139::-;5756:5;5794:6;5781:20;5772:29;;5810:33;5837:5;5810:33;:::i;:::-;5710:139;;;;:::o;5855:329::-;5914:6;5963:2;5951:9;5942:7;5938:23;5934:32;5931:119;;;5969:79;;:::i;:::-;5931:119;6089:1;6114:53;6159:7;6150:6;6139:9;6135:22;6114:53;:::i;:::-;6104:63;;6060:117;5855:329;;;;:::o;6190:117::-;6299:1;6296;6289:12;6313:180;6361:77;6358:1;6351:88;6458:4;6455:1;6448:15;6482:4;6479:1;6472:15;6499:281;6582:27;6604:4;6582:27;:::i;:::-;6574:6;6570:40;6712:6;6700:10;6697:22;6676:18;6664:10;6661:34;6658:62;6655:88;;;6723:18;;:::i;:::-;6655:88;6763:10;6759:2;6752:22;6542:238;6499:281;;:::o;6786:129::-;6820:6;6847:20;;:::i;:::-;6837:30;;6876:33;6904:4;6896:6;6876:33;:::i;:::-;6786:129;;;:::o;6921:117::-;7030:1;7027;7020:12;7044:122;7117:24;7135:5;7117:24;:::i;:::-;7110:5;7107:35;7097:63;;7156:1;7153;7146:12;7097:63;7044:122;:::o;7172:139::-;7218:5;7256:6;7243:20;7234:29;;7272:33;7299:5;7272:33;:::i;:::-;7172:139;;;;:::o;7359:908::-;7438:5;7482:4;7470:9;7465:3;7461:19;7457:30;7454:117;;;7490:79;;:::i;:::-;7454:117;7589:21;7605:4;7589:21;:::i;:::-;7580:30;;7670:1;7710:49;7755:3;7746:6;7735:9;7731:22;7710:49;:::i;:::-;7703:4;7696:5;7692:16;7685:75;7620:151;7834:2;7875:48;7919:3;7910:6;7899:9;7895:22;7875:48;:::i;:::-;7868:4;7861:5;7857:16;7850:74;7781:154;7996:2;8037:49;8082:3;8073:6;8062:9;8058:22;8037:49;:::i;:::-;8030:4;8023:5;8019:16;8012:75;7945:153;8158:2;8199:49;8244:3;8235:6;8224:9;8220:22;8199:49;:::i;:::-;8192:4;8185:5;8181:16;8174:75;8108:152;7359:908;;;;:::o;8273:390::-;8362:6;8411:3;8399:9;8390:7;8386:23;8382:33;8379:120;;;8418:79;;:::i;:::-;8379:120;8538:1;8563:83;8638:7;8629:6;8618:9;8614:22;8563:83;:::i;:::-;8553:93;;8509:147;8273:390;;;;:::o;8669:117::-;8778:1;8775;8768:12;8792:307;8853:4;8943:18;8935:6;8932:30;8929:56;;;8965:18;;:::i;:::-;8929:56;9003:29;9025:6;9003:29;:::i;:::-;8995:37;;9087:4;9081;9077:15;9069:23;;8792:307;;;:::o;9105:148::-;9203:6;9198:3;9193;9180:30;9244:1;9235:6;9230:3;9226:16;9219:27;9105:148;;;:::o;9259:423::-;9336:5;9361:65;9377:48;9418:6;9377:48;:::i;:::-;9361:65;:::i;:::-;9352:74;;9449:6;9442:5;9435:21;9487:4;9480:5;9476:16;9525:3;9516:6;9511:3;9507:16;9504:25;9501:112;;;9532:79;;:::i;:::-;9501:112;9622:54;9669:6;9664:3;9659;9622:54;:::i;:::-;9342:340;9259:423;;;;;:::o;9701:338::-;9756:5;9805:3;9798:4;9790:6;9786:17;9782:27;9772:122;;9813:79;;:::i;:::-;9772:122;9930:6;9917:20;9955:78;10029:3;10021:6;10014:4;10006:6;10002:17;9955:78;:::i;:::-;9946:87;;9762:277;9701:338;;;;:::o;10082:751::-;10162:5;10206:4;10194:9;10189:3;10185:19;10181:30;10178:117;;;10214:79;;:::i;:::-;10178:117;10313:21;10329:4;10313:21;:::i;:::-;10304:30;;10395:1;10435:49;10480:3;10471:6;10460:9;10456:22;10435:49;:::i;:::-;10428:4;10421:5;10417:16;10410:75;10344:152;10583:2;10572:9;10568:18;10555:32;10614:18;10606:6;10603:30;10600:117;;;10636:79;;:::i;:::-;10600:117;10756:58;10810:3;10801:6;10790:9;10786:22;10756:58;:::i;:::-;10749:4;10742:5;10738:16;10731:84;10506:320;10082:751;;;;:::o;10839:551::-;10929:6;10978:2;10966:9;10957:7;10953:23;10949:32;10946:119;;;10984:79;;:::i;:::-;10946:119;11132:1;11121:9;11117:17;11104:31;11162:18;11154:6;11151:30;11148:117;;;11184:79;;:::i;:::-;11148:117;11289:84;11365:7;11356:6;11345:9;11341:22;11289:84;:::i;:::-;11279:94;;11075:308;10839:551;;;;:::o;11396:180::-;11444:77;11441:1;11434:88;11541:4;11538:1;11531:15;11565:4;11562:1;11555:15;11582:233;11621:3;11644:24;11662:5;11644:24;:::i;:::-;11635:33;;11690:66;11683:5;11680:77;11677:103;;11760:18;;:::i;:::-;11677:103;11807:1;11800:5;11796:13;11789:20;;11582:233;;;:::o;11821:332::-;11942:4;11980:2;11969:9;11965:18;11957:26;;11993:71;12061:1;12050:9;12046:17;12037:6;11993:71;:::i;:::-;12074:72;12142:2;12131:9;12127:18;12118:6;12074:72;:::i;:::-;11821:332;;;;;:::o;12159:147::-;12260:11;12297:3;12282:18;;12159:147;;;;:::o;12312:386::-;12416:3;12444:38;12476:5;12444:38;:::i;:::-;12498:88;12579:6;12574:3;12498:88;:::i;:::-;12491:95;;12595:65;12653:6;12648:3;12641:4;12634:5;12630:16;12595:65;:::i;:::-;12685:6;12680:3;12676:16;12669:23;;12420:278;12312:386;;;;:::o;12704:271::-;12834:3;12856:93;12945:3;12936:6;12856:93;:::i;:::-;12849:100;;12966:3;12959:10;;12704:271;;;;:::o;12981:94::-;13014:8;13062:5;13058:2;13054:14;13033:35;;12981:94;;;:::o;13081:::-;13120:7;13149:20;13163:5;13149:20;:::i;:::-;13138:31;;13081:94;;;:::o;13181:100::-;13220:7;13249:26;13269:5;13249:26;:::i;:::-;13238:37;;13181:100;;;:::o;13287:157::-;13392:45;13412:24;13430:5;13412:24;:::i;:::-;13392:45;:::i;:::-;13387:3;13380:58;13287:157;;:::o;13450:79::-;13489:7;13518:5;13507:16;;13450:79;;;:::o;13535:157::-;13640:45;13660:24;13678:5;13660:24;:::i;:::-;13640:45;:::i;:::-;13635:3;13628:58;13535:157;;:::o;13698:538::-;13866:3;13881:75;13952:3;13943:6;13881:75;:::i;:::-;13981:2;13976:3;13972:12;13965:19;;13994:75;14065:3;14056:6;13994:75;:::i;:::-;14094:2;14089:3;14085:12;14078:19;;14107:75;14178:3;14169:6;14107:75;:::i;:::-;14207:2;14202:3;14198:12;14191:19;;14227:3;14220:10;;13698:538;;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","claim(bytes)":"c63ff8dd","claimed(address)":"c884ef83","claims()":"dcc59b6f","completeOwnershipHandover(address)":"f04e283e","currentReward()":"07621eca","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","isClaimable(bytes)":"e18e6508","limit()":"a4d66daf","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","preflight(bytes)":"4e7165a2","reclaim(bytes)":"f1c30ec0","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","reward()":"228cb733","selector()":"ea3d508a","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","venue()":"a270a737"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotClaimable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Claimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"isClaimable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"preflight\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"budgetData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"reclaim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"selector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"venue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"In order for any claim to be successful: - The claimer must not have already claimed the incentive; and - The maximum number of claims must not have been reached; and - This contract must be authorized to operate the points contract's issuance function\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Claimed(address,bytes)\":{\"details\":\"The `data` field contains implementation-specific context. See the implementation's `claim` function for details.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"claim(bytes)\":{\"params\":{\"data_\":\"The data payload for the incentive claim `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive was successfully claimed\"}},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"currentReward()\":{\"returns\":{\"_0\":\"The current reward\"}},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"params\":{\"data_\":\"The compressed incentive parameters `(address points, uint256 reward, uint256 limit)`\"}},\"isClaimable(bytes)\":{\"details\":\"For the POOL strategy, the `bytes data` portion of the payload ignoredThe recipient must not have already claimed the incentive\",\"params\":{\"data_\":\"The data payload for the claim check `(address recipient, bytes data)`\"},\"returns\":{\"_0\":\"True if the incentive is claimable based on the data payload\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"preflight(bytes)\":{\"details\":\"This function is to be called by {BoostCore} before the incentive is initialized to determine the required budget allowance. It returns an ABI-encoded payload that can be passed directly to the {Budget} contract for interpretation.\",\"params\":{\"data_\":\"The initialization payload for the incentive\"},\"returns\":{\"budgetData\":\"The data payload to be passed to the {Budget} for interpretation\"}},\"reclaim(bytes)\":{\"details\":\"Not a valid operation for this type of incentive\",\"params\":{\"data_\":\"The data payload for the reclaim\"},\"returns\":{\"_0\":\"True if the assets were successfully reclaimed\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Points Incentive\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed()\":[{\"notice\":\"Thrown when a claim fails\"}],\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"NotClaimable()\":[{\"notice\":\"Thrown when the incentive is not claimable\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}]},\"events\":{\"Claimed(address,bytes)\":{\"notice\":\"Emitted when an incentive is claimed\"}},\"kind\":\"user\",\"methods\":{\"claim(bytes)\":{\"notice\":\"Claim the incentive\"},\"claimed(address)\":{\"notice\":\"A mapping of address to claim status\"},\"claims()\":{\"notice\":\"The number of claims that have been made\"},\"constructor\":{\"notice\":\"Construct a new PointsIncentive\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the incentive parameters\"},\"isClaimable(bytes)\":{\"notice\":\"Check if an incentive is claimable\"},\"limit()\":{\"notice\":\"The maximum number of claims that can be made (one per address)\"},\"preflight(bytes)\":{\"notice\":\"No token approvals are required for this incentive\"},\"reclaim(bytes)\":{\"notice\":\"Reclaim assets from the incentive\"},\"reward()\":{\"notice\":\"The reward amount issued for each claim\"},\"selector()\":{\"notice\":\"The selector for the issuance function on the points contract\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"venue()\":{\"notice\":\"The address of the points contract\"}},\"notice\":\"A simple on-chain points incentive implementation that allows claiming of soulbound tokens\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/incentives/PointsIncentive.sol\":\"PointsIncentive\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/APointsIncentive.sol\":{\"keccak256\":\"0x9145d2452b224427307f02b2cd3b3005a67b2a74e76d1091eca557099124cdbe\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://33ab789bafabd599eddabdcbe7f7f029620868ce17c12c8916921cd402fa3cbc\",\"dweb:/ipfs/QmeV5JXAjAx8PTNS5iQyzfJi74k6Ms5LdZVobMRzexe5Pc\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/incentives/PointsIncentive.sol\":{\"keccak256\":\"0x61087e4078f59045a538f964a6c76b8c1559def6789bd3ba7048801d6fa30bff\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://84a8bf90a5281a63ccde03b6e51ef703d23f3111e2082a40cbd70401aa0f54d0\",\"dweb:/ipfs/QmaNRff8RgntSZ5v7yfJ7nvVu6EtvpDY3FWbFKaxeNzAMR\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/shared/BoostError.sol":{"BoostError":{"abi":[{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ClaimFailed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[{"internalType":"bytes4","name":"expectedInterface","type":"bytes4"},{"internalType":"address","name":"instance","type":"address"}],"name":"InvalidInstance","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Replayed","type":"error"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferFailed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b261a464dac77a3e3d7732116efa800525f8d6f999fb8c95fdaf083ab187adfe64736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 PUSH2 0xA464 0xDA 0xC7 PUSH27 0x3E3D7732116EFA800525F8D6F999FB8C95FDAF083AB187ADFE6473 PUSH16 0x6C634300081A00330000000000000000 ","sourceMap":"301:1086:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220b261a464dac77a3e3d7732116efa800525f8d6f999fb8c95fdaf083ab187adfe64736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 PUSH2 0xA464 0xDA 0xC7 PUSH27 0x3E3D7732116EFA800525F8D6F999FB8C95FDAF083AB187ADFE6473 PUSH16 0x6C634300081A00330000000000000000 ","sourceMap":"301:1086:56:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ClaimFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"expectedInterface\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"InvalidInstance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Replayed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Some of these errors are introduced by third-party libraries, rather than Boost contracts directly, and are copied here for clarity and ease of testing.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"BoostError\",\"version\":1},\"userdoc\":{\"errors\":{\"ClaimFailed(address,bytes)\":[{\"notice\":\"Thrown when a claim attempt fails\"}],\"InsufficientFunds(address,uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient funds for an operation\"}],\"InvalidInitialization()\":[{\"notice\":\"Thrown when an invalid initialization is attempted\"}],\"InvalidInstance(bytes4,address)\":[{\"notice\":\"Thrown when a non-conforming instance for a given type is encountered\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"NotImplemented()\":[{\"notice\":\"Thrown when a method is not implemented\"}],\"Replayed(address,bytes32,bytes)\":[{\"notice\":\"Thrown when a previously used signature is replayed\"}],\"TransferFailed(address,address,uint256)\":[{\"notice\":\"Thrown when a transfer fails for an unknown reason\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Standardized errors for the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/BoostError.sol\":\"BoostError\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]}},\"version\":1}"}},"contracts/shared/BoostLib.sol":{"BoostLib":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6055604b600b8282823980515f1a607314603f577f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212209ff656b5556fe652be27791387619039a41a80e24dd7047937a342c483fa9b9964736f6c634300081a0033","opcodes":"PUSH1 0x55 PUSH1 0x4B PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH0 BYTE PUSH1 0x73 EQ PUSH1 0x3F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST ADDRESS PUSH0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0xF6 JUMP 0xB5 SSTORE PUSH16 0xE652BE27791387619039A41A80E24DD7 DIV PUSH26 0x37A342C483FA9B9964736F6C634300081A003300000000000000 ","sourceMap":"516:1288:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212209ff656b5556fe652be27791387619039a41a80e24dd7047937a342c483fa9b9964736f6c634300081a0033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 0xF6 JUMP 0xB5 SSTORE PUSH16 0xE652BE27791387619039A41A80E24DD7 DIV PUSH26 0x37A342C483FA9B9964736F6C634300081A003300000000000000 ","sourceMap":"516:1288:57:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/BoostLib.sol\":\"BoostLib\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/accounts/Receiver.sol\":{\"keccak256\":\"0x9bf48dca73f428c20a0878a5a97d2d66626f835b077c012fd5b1ba6389feb2d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15cb4c81e6c5b2f609e5c6ba13d3241b5c017f9997cab5cebc0572c2dd7f34da\",\"dweb:/ipfs/QmQr7sWaqW27XhyCVGx4wED1rMmFKGhSHPjSGVLz45dbeD\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/LibClone.sol\":{\"keccak256\":\"0xeef85d149b91730bbcf9a657bcd716de80ad0919b9e085beb9c018eb451c0aa1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://120af9f88bcaf6d2590fc9c3b85019599cfc05de1045ba9604a47a905c0258a1\",\"dweb:/ipfs/QmV7A7YTyGCkT1zxfSon33tLKG18kVZhdVpcU3M5JWNyvL\"]},\"@solady/utils/LibZip.sol\":{\"keccak256\":\"0x28edc08582d2fb064f86742bd54349ea61aa8a00e23bd70a0db8a9a2f50cb4a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46bad2819b36970dbefbb86e6d8c17cccac9cd5f9b934199d3b807f751eb1910\",\"dweb:/ipfs/QmPsABj4B9XrZs6SvN7nNpbngsTNUG6TieGrNWYzbXxWLM\"]},\"@solady/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"@solady/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x583f47701d9b47bb3ef80fcabbbd62fbb58a01733b7a57e19658b4b02468883a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2523bfac005e21ef9963fdb3c08b2c61824e2b5ce2f53d1a1828b01ed995217c\",\"dweb:/ipfs/QmbBjVG9tZyeZSQH4m5GUzNBwo2iuvLoZYbmhT4gxnJc4J\"]},\"contracts/actions/Action.sol\":{\"keccak256\":\"0x855099dfc3ce93062513e8cd59f83f7a7183f90f1487068ac6a8b0ac647dbff4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://110439ca0f1b1d21ff60dd65367c3b6f758075a259aabd24868adb3e773aa909\",\"dweb:/ipfs/QmVVgSthQqozt15zKwAjKHfTJH312wdS2YoNxC7oh3Dm9C\"]},\"contracts/allowlists/AllowList.sol\":{\"keccak256\":\"0xfa9c2f4be77a1b0b51d1f598b9020a25970b243503ea0fb2e2bae45cd7b9c77c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://a1ece5f7411b43a9d6cf4af8ac244952fe96ba17cf66c61bb2df94f0b329d165\",\"dweb:/ipfs/QmYWoV3DVoHrvZ2nbAvL89TYMeaeSDPhWeHAzfh8hjev9f\"]},\"contracts/budgets/Budget.sol\":{\"keccak256\":\"0x53a27e0b8b5c25e3a87edd8294b092ada64396b7b613a88dbaa6605a3544b70b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d69aa04901c6d8c89e7493e59d39929a4e9a0b6fd958518035a257b8054c2a3f\",\"dweb:/ipfs/QmWQznsBZKFpjbf64Z1KfqVruynz173pUS4eLtCZTAEGQe\"]},\"contracts/incentives/Incentive.sol\":{\"keccak256\":\"0x2ff2d8733957f7cff75200b3c42e82ba99a66c2a3654f47ccc89fc76d64f0077\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69ae0fa6b8e56531dddbae87b91453cf45a5a1ca1a7e0a00783493f1c88040a1\",\"dweb:/ipfs/QmfZFq2B5NkgxXMcgqsLgyV38MYjmN9ozyZckdqoD2nVxC\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/BoostLib.sol\":{\"keccak256\":\"0x4ddaf215b1bfb8115af243ac8451d9dff8f7dee1f4e4ae9c33e7f15bfb8d1298\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7ebd939b942b0262ed44c7a602f3da6733bc95996479c347f08a54ea3693509e\",\"dweb:/ipfs/QmdgL9Xpi9UUz2wLnTNUFR1xjR5YPheu64eZXC7uEeYWLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/shared/Cloneable.sol":{"Cloneable":{"abi":[{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","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":{"getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"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\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"}},\"kind\":\"dev\",\"methods\":{\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}}},\"title\":\"Cloneable\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"}},\"notice\":\"A contract that can be cloned and initialized only once\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Cloneable.sol\":\"Cloneable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]}},\"version\":1}"}},"contracts/shared/Mocks.sol":{"MockERC1155":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"values","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"value","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":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_18655":{"entryPoint":null,"id":18655,"parameterSlots":0,"returnSlots":0},"@_197":{"entryPoint":null,"id":197,"parameterSlots":1,"returnSlots":0},"@_setURI_814":{"entryPoint":91,"id":814,"parameterSlots":1,"returnSlots":0},"array_dataslot_t_string_storage":{"entryPoint":258,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":110,"id":null,"parameterSlots":1,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":543,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_uint256":{"entryPoint":384,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":509,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":402,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":680,"id":null,"parameterSlots":2,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":276,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":210,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":653,"id":null,"parameterSlots":2,"returnSlots":1},"identity":{"entryPoint":393,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":625,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":165,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":120,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":435,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":291,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":613,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":485,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":303,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":444,"id":null,"parameterSlots":3,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":481,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:5231:64","nodeType":"YulBlock","src":"0:5231:64","statements":[{"body":{"nativeSrc":"66:40:64","nodeType":"YulBlock","src":"66:40:64","statements":[{"nativeSrc":"77:22:64","nodeType":"YulAssignment","src":"77:22:64","value":{"arguments":[{"name":"value","nativeSrc":"93:5:64","nodeType":"YulIdentifier","src":"93:5:64"}],"functionName":{"name":"mload","nativeSrc":"87:5:64","nodeType":"YulIdentifier","src":"87:5:64"},"nativeSrc":"87:12:64","nodeType":"YulFunctionCall","src":"87:12:64"},"variableNames":[{"name":"length","nativeSrc":"77:6:64","nodeType":"YulIdentifier","src":"77:6:64"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:64","nodeType":"YulTypedName","src":"49:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:64","nodeType":"YulTypedName","src":"59:6:64","type":""}],"src":"7:99:64"},{"body":{"nativeSrc":"140:152:64","nodeType":"YulBlock","src":"140:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"157:1:64","nodeType":"YulLiteral","src":"157:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"160:77:64","nodeType":"YulLiteral","src":"160:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"150:6:64","nodeType":"YulIdentifier","src":"150:6:64"},"nativeSrc":"150:88:64","nodeType":"YulFunctionCall","src":"150:88:64"},"nativeSrc":"150:88:64","nodeType":"YulExpressionStatement","src":"150:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254:1:64","nodeType":"YulLiteral","src":"254:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"257:4:64","nodeType":"YulLiteral","src":"257:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"247:6:64","nodeType":"YulIdentifier","src":"247:6:64"},"nativeSrc":"247:15:64","nodeType":"YulFunctionCall","src":"247:15:64"},"nativeSrc":"247:15:64","nodeType":"YulExpressionStatement","src":"247:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"278:1:64","nodeType":"YulLiteral","src":"278:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"281:4:64","nodeType":"YulLiteral","src":"281:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"271:6:64","nodeType":"YulIdentifier","src":"271:6:64"},"nativeSrc":"271:15:64","nodeType":"YulFunctionCall","src":"271:15:64"},"nativeSrc":"271:15:64","nodeType":"YulExpressionStatement","src":"271:15:64"}]},"name":"panic_error_0x41","nativeSrc":"112:180:64","nodeType":"YulFunctionDefinition","src":"112:180:64"},{"body":{"nativeSrc":"326:152:64","nodeType":"YulBlock","src":"326:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"343:1:64","nodeType":"YulLiteral","src":"343:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"346:77:64","nodeType":"YulLiteral","src":"346:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"336:6:64","nodeType":"YulIdentifier","src":"336:6:64"},"nativeSrc":"336:88:64","nodeType":"YulFunctionCall","src":"336:88:64"},"nativeSrc":"336:88:64","nodeType":"YulExpressionStatement","src":"336:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"440:1:64","nodeType":"YulLiteral","src":"440:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"443:4:64","nodeType":"YulLiteral","src":"443:4:64","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"433:6:64","nodeType":"YulIdentifier","src":"433:6:64"},"nativeSrc":"433:15:64","nodeType":"YulFunctionCall","src":"433:15:64"},"nativeSrc":"433:15:64","nodeType":"YulExpressionStatement","src":"433:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"464:1:64","nodeType":"YulLiteral","src":"464:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"467:4:64","nodeType":"YulLiteral","src":"467:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"457:6:64","nodeType":"YulIdentifier","src":"457:6:64"},"nativeSrc":"457:15:64","nodeType":"YulFunctionCall","src":"457:15:64"},"nativeSrc":"457:15:64","nodeType":"YulExpressionStatement","src":"457:15:64"}]},"name":"panic_error_0x22","nativeSrc":"298:180:64","nodeType":"YulFunctionDefinition","src":"298:180:64"},{"body":{"nativeSrc":"535:269:64","nodeType":"YulBlock","src":"535:269:64","statements":[{"nativeSrc":"545:22:64","nodeType":"YulAssignment","src":"545:22:64","value":{"arguments":[{"name":"data","nativeSrc":"559:4:64","nodeType":"YulIdentifier","src":"559:4:64"},{"kind":"number","nativeSrc":"565:1:64","nodeType":"YulLiteral","src":"565:1:64","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"555:3:64","nodeType":"YulIdentifier","src":"555:3:64"},"nativeSrc":"555:12:64","nodeType":"YulFunctionCall","src":"555:12:64"},"variableNames":[{"name":"length","nativeSrc":"545:6:64","nodeType":"YulIdentifier","src":"545:6:64"}]},{"nativeSrc":"576:38:64","nodeType":"YulVariableDeclaration","src":"576:38:64","value":{"arguments":[{"name":"data","nativeSrc":"606:4:64","nodeType":"YulIdentifier","src":"606:4:64"},{"kind":"number","nativeSrc":"612:1:64","nodeType":"YulLiteral","src":"612:1:64","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"602:3:64","nodeType":"YulIdentifier","src":"602:3:64"},"nativeSrc":"602:12:64","nodeType":"YulFunctionCall","src":"602:12:64"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"580:18:64","nodeType":"YulTypedName","src":"580:18:64","type":""}]},{"body":{"nativeSrc":"653:51:64","nodeType":"YulBlock","src":"653:51:64","statements":[{"nativeSrc":"667:27:64","nodeType":"YulAssignment","src":"667:27:64","value":{"arguments":[{"name":"length","nativeSrc":"681:6:64","nodeType":"YulIdentifier","src":"681:6:64"},{"kind":"number","nativeSrc":"689:4:64","nodeType":"YulLiteral","src":"689:4:64","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"677:3:64","nodeType":"YulIdentifier","src":"677:3:64"},"nativeSrc":"677:17:64","nodeType":"YulFunctionCall","src":"677:17:64"},"variableNames":[{"name":"length","nativeSrc":"667:6:64","nodeType":"YulIdentifier","src":"667:6:64"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"633:18:64","nodeType":"YulIdentifier","src":"633:18:64"}],"functionName":{"name":"iszero","nativeSrc":"626:6:64","nodeType":"YulIdentifier","src":"626:6:64"},"nativeSrc":"626:26:64","nodeType":"YulFunctionCall","src":"626:26:64"},"nativeSrc":"623:81:64","nodeType":"YulIf","src":"623:81:64"},{"body":{"nativeSrc":"756:42:64","nodeType":"YulBlock","src":"756:42:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"770:16:64","nodeType":"YulIdentifier","src":"770:16:64"},"nativeSrc":"770:18:64","nodeType":"YulFunctionCall","src":"770:18:64"},"nativeSrc":"770:18:64","nodeType":"YulExpressionStatement","src":"770:18:64"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"720:18:64","nodeType":"YulIdentifier","src":"720:18:64"},{"arguments":[{"name":"length","nativeSrc":"743:6:64","nodeType":"YulIdentifier","src":"743:6:64"},{"kind":"number","nativeSrc":"751:2:64","nodeType":"YulLiteral","src":"751:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"740:2:64","nodeType":"YulIdentifier","src":"740:2:64"},"nativeSrc":"740:14:64","nodeType":"YulFunctionCall","src":"740:14:64"}],"functionName":{"name":"eq","nativeSrc":"717:2:64","nodeType":"YulIdentifier","src":"717:2:64"},"nativeSrc":"717:38:64","nodeType":"YulFunctionCall","src":"717:38:64"},"nativeSrc":"714:84:64","nodeType":"YulIf","src":"714:84:64"}]},"name":"extract_byte_array_length","nativeSrc":"484:320:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"519:4:64","nodeType":"YulTypedName","src":"519:4:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"528:6:64","nodeType":"YulTypedName","src":"528:6:64","type":""}],"src":"484:320:64"},{"body":{"nativeSrc":"864:87:64","nodeType":"YulBlock","src":"864:87:64","statements":[{"nativeSrc":"874:11:64","nodeType":"YulAssignment","src":"874:11:64","value":{"name":"ptr","nativeSrc":"882:3:64","nodeType":"YulIdentifier","src":"882:3:64"},"variableNames":[{"name":"data","nativeSrc":"874:4:64","nodeType":"YulIdentifier","src":"874:4:64"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"902:1:64","nodeType":"YulLiteral","src":"902:1:64","type":"","value":"0"},{"name":"ptr","nativeSrc":"905:3:64","nodeType":"YulIdentifier","src":"905:3:64"}],"functionName":{"name":"mstore","nativeSrc":"895:6:64","nodeType":"YulIdentifier","src":"895:6:64"},"nativeSrc":"895:14:64","nodeType":"YulFunctionCall","src":"895:14:64"},"nativeSrc":"895:14:64","nodeType":"YulExpressionStatement","src":"895:14:64"},{"nativeSrc":"918:26:64","nodeType":"YulAssignment","src":"918:26:64","value":{"arguments":[{"kind":"number","nativeSrc":"936:1:64","nodeType":"YulLiteral","src":"936:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"939:4:64","nodeType":"YulLiteral","src":"939:4:64","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"926:9:64","nodeType":"YulIdentifier","src":"926:9:64"},"nativeSrc":"926:18:64","nodeType":"YulFunctionCall","src":"926:18:64"},"variableNames":[{"name":"data","nativeSrc":"918:4:64","nodeType":"YulIdentifier","src":"918:4:64"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"810:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"851:3:64","nodeType":"YulTypedName","src":"851:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"859:4:64","nodeType":"YulTypedName","src":"859:4:64","type":""}],"src":"810:141:64"},{"body":{"nativeSrc":"1001:49:64","nodeType":"YulBlock","src":"1001:49:64","statements":[{"nativeSrc":"1011:33:64","nodeType":"YulAssignment","src":"1011:33:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1029:5:64","nodeType":"YulIdentifier","src":"1029:5:64"},{"kind":"number","nativeSrc":"1036:2:64","nodeType":"YulLiteral","src":"1036:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1025:3:64","nodeType":"YulIdentifier","src":"1025:3:64"},"nativeSrc":"1025:14:64","nodeType":"YulFunctionCall","src":"1025:14:64"},{"kind":"number","nativeSrc":"1041:2:64","nodeType":"YulLiteral","src":"1041:2:64","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"1021:3:64","nodeType":"YulIdentifier","src":"1021:3:64"},"nativeSrc":"1021:23:64","nodeType":"YulFunctionCall","src":"1021:23:64"},"variableNames":[{"name":"result","nativeSrc":"1011:6:64","nodeType":"YulIdentifier","src":"1011:6:64"}]}]},"name":"divide_by_32_ceil","nativeSrc":"957:93:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"984:5:64","nodeType":"YulTypedName","src":"984:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"994:6:64","nodeType":"YulTypedName","src":"994:6:64","type":""}],"src":"957:93:64"},{"body":{"nativeSrc":"1109:54:64","nodeType":"YulBlock","src":"1109:54:64","statements":[{"nativeSrc":"1119:37:64","nodeType":"YulAssignment","src":"1119:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"1144:4:64","nodeType":"YulIdentifier","src":"1144:4:64"},{"name":"value","nativeSrc":"1150:5:64","nodeType":"YulIdentifier","src":"1150:5:64"}],"functionName":{"name":"shl","nativeSrc":"1140:3:64","nodeType":"YulIdentifier","src":"1140:3:64"},"nativeSrc":"1140:16:64","nodeType":"YulFunctionCall","src":"1140:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"1119:8:64","nodeType":"YulIdentifier","src":"1119:8:64"}]}]},"name":"shift_left_dynamic","nativeSrc":"1056:107:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"1084:4:64","nodeType":"YulTypedName","src":"1084:4:64","type":""},{"name":"value","nativeSrc":"1090:5:64","nodeType":"YulTypedName","src":"1090:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"1100:8:64","nodeType":"YulTypedName","src":"1100:8:64","type":""}],"src":"1056:107:64"},{"body":{"nativeSrc":"1245:317:64","nodeType":"YulBlock","src":"1245:317:64","statements":[{"nativeSrc":"1255:35:64","nodeType":"YulVariableDeclaration","src":"1255:35:64","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"1276:10:64","nodeType":"YulIdentifier","src":"1276:10:64"},{"kind":"number","nativeSrc":"1288:1:64","nodeType":"YulLiteral","src":"1288:1:64","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"1272:3:64","nodeType":"YulIdentifier","src":"1272:3:64"},"nativeSrc":"1272:18:64","nodeType":"YulFunctionCall","src":"1272:18:64"},"variables":[{"name":"shiftBits","nativeSrc":"1259:9:64","nodeType":"YulTypedName","src":"1259:9:64","type":""}]},{"nativeSrc":"1299:109:64","nodeType":"YulVariableDeclaration","src":"1299:109:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"1330:9:64","nodeType":"YulIdentifier","src":"1330:9:64"},{"kind":"number","nativeSrc":"1341:66:64","nodeType":"YulLiteral","src":"1341:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"1311:18:64","nodeType":"YulIdentifier","src":"1311:18:64"},"nativeSrc":"1311:97:64","nodeType":"YulFunctionCall","src":"1311:97:64"},"variables":[{"name":"mask","nativeSrc":"1303:4:64","nodeType":"YulTypedName","src":"1303:4:64","type":""}]},{"nativeSrc":"1417:51:64","nodeType":"YulAssignment","src":"1417:51:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"1448:9:64","nodeType":"YulIdentifier","src":"1448:9:64"},{"name":"toInsert","nativeSrc":"1459:8:64","nodeType":"YulIdentifier","src":"1459:8:64"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"1429:18:64","nodeType":"YulIdentifier","src":"1429:18:64"},"nativeSrc":"1429:39:64","nodeType":"YulFunctionCall","src":"1429:39:64"},"variableNames":[{"name":"toInsert","nativeSrc":"1417:8:64","nodeType":"YulIdentifier","src":"1417:8:64"}]},{"nativeSrc":"1477:30:64","nodeType":"YulAssignment","src":"1477:30:64","value":{"arguments":[{"name":"value","nativeSrc":"1490:5:64","nodeType":"YulIdentifier","src":"1490:5:64"},{"arguments":[{"name":"mask","nativeSrc":"1501:4:64","nodeType":"YulIdentifier","src":"1501:4:64"}],"functionName":{"name":"not","nativeSrc":"1497:3:64","nodeType":"YulIdentifier","src":"1497:3:64"},"nativeSrc":"1497:9:64","nodeType":"YulFunctionCall","src":"1497:9:64"}],"functionName":{"name":"and","nativeSrc":"1486:3:64","nodeType":"YulIdentifier","src":"1486:3:64"},"nativeSrc":"1486:21:64","nodeType":"YulFunctionCall","src":"1486:21:64"},"variableNames":[{"name":"value","nativeSrc":"1477:5:64","nodeType":"YulIdentifier","src":"1477:5:64"}]},{"nativeSrc":"1516:40:64","nodeType":"YulAssignment","src":"1516:40:64","value":{"arguments":[{"name":"value","nativeSrc":"1529:5:64","nodeType":"YulIdentifier","src":"1529:5:64"},{"arguments":[{"name":"toInsert","nativeSrc":"1540:8:64","nodeType":"YulIdentifier","src":"1540:8:64"},{"name":"mask","nativeSrc":"1550:4:64","nodeType":"YulIdentifier","src":"1550:4:64"}],"functionName":{"name":"and","nativeSrc":"1536:3:64","nodeType":"YulIdentifier","src":"1536:3:64"},"nativeSrc":"1536:19:64","nodeType":"YulFunctionCall","src":"1536:19:64"}],"functionName":{"name":"or","nativeSrc":"1526:2:64","nodeType":"YulIdentifier","src":"1526:2:64"},"nativeSrc":"1526:30:64","nodeType":"YulFunctionCall","src":"1526:30:64"},"variableNames":[{"name":"result","nativeSrc":"1516:6:64","nodeType":"YulIdentifier","src":"1516:6:64"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"1169:393:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1206:5:64","nodeType":"YulTypedName","src":"1206:5:64","type":""},{"name":"shiftBytes","nativeSrc":"1213:10:64","nodeType":"YulTypedName","src":"1213:10:64","type":""},{"name":"toInsert","nativeSrc":"1225:8:64","nodeType":"YulTypedName","src":"1225:8:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1238:6:64","nodeType":"YulTypedName","src":"1238:6:64","type":""}],"src":"1169:393:64"},{"body":{"nativeSrc":"1613:32:64","nodeType":"YulBlock","src":"1613:32:64","statements":[{"nativeSrc":"1623:16:64","nodeType":"YulAssignment","src":"1623:16:64","value":{"name":"value","nativeSrc":"1634:5:64","nodeType":"YulIdentifier","src":"1634:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1623:7:64","nodeType":"YulIdentifier","src":"1623:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"1568:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1595:5:64","nodeType":"YulTypedName","src":"1595:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1605:7:64","nodeType":"YulTypedName","src":"1605:7:64","type":""}],"src":"1568:77:64"},{"body":{"nativeSrc":"1683:28:64","nodeType":"YulBlock","src":"1683:28:64","statements":[{"nativeSrc":"1693:12:64","nodeType":"YulAssignment","src":"1693:12:64","value":{"name":"value","nativeSrc":"1700:5:64","nodeType":"YulIdentifier","src":"1700:5:64"},"variableNames":[{"name":"ret","nativeSrc":"1693:3:64","nodeType":"YulIdentifier","src":"1693:3:64"}]}]},"name":"identity","nativeSrc":"1651:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1669:5:64","nodeType":"YulTypedName","src":"1669:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1679:3:64","nodeType":"YulTypedName","src":"1679:3:64","type":""}],"src":"1651:60:64"},{"body":{"nativeSrc":"1777:82:64","nodeType":"YulBlock","src":"1777:82:64","statements":[{"nativeSrc":"1787:66:64","nodeType":"YulAssignment","src":"1787:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1845:5:64","nodeType":"YulIdentifier","src":"1845:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1827:17:64","nodeType":"YulIdentifier","src":"1827:17:64"},"nativeSrc":"1827:24:64","nodeType":"YulFunctionCall","src":"1827:24:64"}],"functionName":{"name":"identity","nativeSrc":"1818:8:64","nodeType":"YulIdentifier","src":"1818:8:64"},"nativeSrc":"1818:34:64","nodeType":"YulFunctionCall","src":"1818:34:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1800:17:64","nodeType":"YulIdentifier","src":"1800:17:64"},"nativeSrc":"1800:53:64","nodeType":"YulFunctionCall","src":"1800:53:64"},"variableNames":[{"name":"converted","nativeSrc":"1787:9:64","nodeType":"YulIdentifier","src":"1787:9:64"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"1717:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1757:5:64","nodeType":"YulTypedName","src":"1757:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"1767:9:64","nodeType":"YulTypedName","src":"1767:9:64","type":""}],"src":"1717:142:64"},{"body":{"nativeSrc":"1912:28:64","nodeType":"YulBlock","src":"1912:28:64","statements":[{"nativeSrc":"1922:12:64","nodeType":"YulAssignment","src":"1922:12:64","value":{"name":"value","nativeSrc":"1929:5:64","nodeType":"YulIdentifier","src":"1929:5:64"},"variableNames":[{"name":"ret","nativeSrc":"1922:3:64","nodeType":"YulIdentifier","src":"1922:3:64"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"1865:75:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1898:5:64","nodeType":"YulTypedName","src":"1898:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"1908:3:64","nodeType":"YulTypedName","src":"1908:3:64","type":""}],"src":"1865:75:64"},{"body":{"nativeSrc":"2022:193:64","nodeType":"YulBlock","src":"2022:193:64","statements":[{"nativeSrc":"2032:63:64","nodeType":"YulVariableDeclaration","src":"2032:63:64","value":{"arguments":[{"name":"value_0","nativeSrc":"2087:7:64","nodeType":"YulIdentifier","src":"2087:7:64"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"2056:30:64","nodeType":"YulIdentifier","src":"2056:30:64"},"nativeSrc":"2056:39:64","nodeType":"YulFunctionCall","src":"2056:39:64"},"variables":[{"name":"convertedValue_0","nativeSrc":"2036:16:64","nodeType":"YulTypedName","src":"2036:16:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2111:4:64","nodeType":"YulIdentifier","src":"2111:4:64"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"2151:4:64","nodeType":"YulIdentifier","src":"2151:4:64"}],"functionName":{"name":"sload","nativeSrc":"2145:5:64","nodeType":"YulIdentifier","src":"2145:5:64"},"nativeSrc":"2145:11:64","nodeType":"YulFunctionCall","src":"2145:11:64"},{"name":"offset","nativeSrc":"2158:6:64","nodeType":"YulIdentifier","src":"2158:6:64"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"2190:16:64","nodeType":"YulIdentifier","src":"2190:16:64"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"2166:23:64","nodeType":"YulIdentifier","src":"2166:23:64"},"nativeSrc":"2166:41:64","nodeType":"YulFunctionCall","src":"2166:41:64"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"2117:27:64","nodeType":"YulIdentifier","src":"2117:27:64"},"nativeSrc":"2117:91:64","nodeType":"YulFunctionCall","src":"2117:91:64"}],"functionName":{"name":"sstore","nativeSrc":"2104:6:64","nodeType":"YulIdentifier","src":"2104:6:64"},"nativeSrc":"2104:105:64","nodeType":"YulFunctionCall","src":"2104:105:64"},"nativeSrc":"2104:105:64","nodeType":"YulExpressionStatement","src":"2104:105:64"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"1946:269:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"1999:4:64","nodeType":"YulTypedName","src":"1999:4:64","type":""},{"name":"offset","nativeSrc":"2005:6:64","nodeType":"YulTypedName","src":"2005:6:64","type":""},{"name":"value_0","nativeSrc":"2013:7:64","nodeType":"YulTypedName","src":"2013:7:64","type":""}],"src":"1946:269:64"},{"body":{"nativeSrc":"2270:24:64","nodeType":"YulBlock","src":"2270:24:64","statements":[{"nativeSrc":"2280:8:64","nodeType":"YulAssignment","src":"2280:8:64","value":{"kind":"number","nativeSrc":"2287:1:64","nodeType":"YulLiteral","src":"2287:1:64","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"2280:3:64","nodeType":"YulIdentifier","src":"2280:3:64"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"2221:73:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"2266:3:64","nodeType":"YulTypedName","src":"2266:3:64","type":""}],"src":"2221:73:64"},{"body":{"nativeSrc":"2353:136:64","nodeType":"YulBlock","src":"2353:136:64","statements":[{"nativeSrc":"2363:46:64","nodeType":"YulVariableDeclaration","src":"2363:46:64","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"2377:30:64","nodeType":"YulIdentifier","src":"2377:30:64"},"nativeSrc":"2377:32:64","nodeType":"YulFunctionCall","src":"2377:32:64"},"variables":[{"name":"zero_0","nativeSrc":"2367:6:64","nodeType":"YulTypedName","src":"2367:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"2462:4:64","nodeType":"YulIdentifier","src":"2462:4:64"},{"name":"offset","nativeSrc":"2468:6:64","nodeType":"YulIdentifier","src":"2468:6:64"},{"name":"zero_0","nativeSrc":"2476:6:64","nodeType":"YulIdentifier","src":"2476:6:64"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"2418:43:64","nodeType":"YulIdentifier","src":"2418:43:64"},"nativeSrc":"2418:65:64","nodeType":"YulFunctionCall","src":"2418:65:64"},"nativeSrc":"2418:65:64","nodeType":"YulExpressionStatement","src":"2418:65:64"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"2300:189:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"2339:4:64","nodeType":"YulTypedName","src":"2339:4:64","type":""},{"name":"offset","nativeSrc":"2345:6:64","nodeType":"YulTypedName","src":"2345:6:64","type":""}],"src":"2300:189:64"},{"body":{"nativeSrc":"2545:136:64","nodeType":"YulBlock","src":"2545:136:64","statements":[{"body":{"nativeSrc":"2612:63:64","nodeType":"YulBlock","src":"2612:63:64","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"2656:5:64","nodeType":"YulIdentifier","src":"2656:5:64"},{"kind":"number","nativeSrc":"2663:1:64","nodeType":"YulLiteral","src":"2663:1:64","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"2626:29:64","nodeType":"YulIdentifier","src":"2626:29:64"},"nativeSrc":"2626:39:64","nodeType":"YulFunctionCall","src":"2626:39:64"},"nativeSrc":"2626:39:64","nodeType":"YulExpressionStatement","src":"2626:39:64"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"2565:5:64","nodeType":"YulIdentifier","src":"2565:5:64"},{"name":"end","nativeSrc":"2572:3:64","nodeType":"YulIdentifier","src":"2572:3:64"}],"functionName":{"name":"lt","nativeSrc":"2562:2:64","nodeType":"YulIdentifier","src":"2562:2:64"},"nativeSrc":"2562:14:64","nodeType":"YulFunctionCall","src":"2562:14:64"},"nativeSrc":"2555:120:64","nodeType":"YulForLoop","post":{"nativeSrc":"2577:26:64","nodeType":"YulBlock","src":"2577:26:64","statements":[{"nativeSrc":"2579:22:64","nodeType":"YulAssignment","src":"2579:22:64","value":{"arguments":[{"name":"start","nativeSrc":"2592:5:64","nodeType":"YulIdentifier","src":"2592:5:64"},{"kind":"number","nativeSrc":"2599:1:64","nodeType":"YulLiteral","src":"2599:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"2588:3:64","nodeType":"YulIdentifier","src":"2588:3:64"},"nativeSrc":"2588:13:64","nodeType":"YulFunctionCall","src":"2588:13:64"},"variableNames":[{"name":"start","nativeSrc":"2579:5:64","nodeType":"YulIdentifier","src":"2579:5:64"}]}]},"pre":{"nativeSrc":"2559:2:64","nodeType":"YulBlock","src":"2559:2:64","statements":[]},"src":"2555:120:64"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"2495:186:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"2533:5:64","nodeType":"YulTypedName","src":"2533:5:64","type":""},{"name":"end","nativeSrc":"2540:3:64","nodeType":"YulTypedName","src":"2540:3:64","type":""}],"src":"2495:186:64"},{"body":{"nativeSrc":"2766:464:64","nodeType":"YulBlock","src":"2766:464:64","statements":[{"body":{"nativeSrc":"2792:431:64","nodeType":"YulBlock","src":"2792:431:64","statements":[{"nativeSrc":"2806:54:64","nodeType":"YulVariableDeclaration","src":"2806:54:64","value":{"arguments":[{"name":"array","nativeSrc":"2854:5:64","nodeType":"YulIdentifier","src":"2854:5:64"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"2822:31:64","nodeType":"YulIdentifier","src":"2822:31:64"},"nativeSrc":"2822:38:64","nodeType":"YulFunctionCall","src":"2822:38:64"},"variables":[{"name":"dataArea","nativeSrc":"2810:8:64","nodeType":"YulTypedName","src":"2810:8:64","type":""}]},{"nativeSrc":"2873:63:64","nodeType":"YulVariableDeclaration","src":"2873:63:64","value":{"arguments":[{"name":"dataArea","nativeSrc":"2896:8:64","nodeType":"YulIdentifier","src":"2896:8:64"},{"arguments":[{"name":"startIndex","nativeSrc":"2924:10:64","nodeType":"YulIdentifier","src":"2924:10:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"2906:17:64","nodeType":"YulIdentifier","src":"2906:17:64"},"nativeSrc":"2906:29:64","nodeType":"YulFunctionCall","src":"2906:29:64"}],"functionName":{"name":"add","nativeSrc":"2892:3:64","nodeType":"YulIdentifier","src":"2892:3:64"},"nativeSrc":"2892:44:64","nodeType":"YulFunctionCall","src":"2892:44:64"},"variables":[{"name":"deleteStart","nativeSrc":"2877:11:64","nodeType":"YulTypedName","src":"2877:11:64","type":""}]},{"body":{"nativeSrc":"3093:27:64","nodeType":"YulBlock","src":"3093:27:64","statements":[{"nativeSrc":"3095:23:64","nodeType":"YulAssignment","src":"3095:23:64","value":{"name":"dataArea","nativeSrc":"3110:8:64","nodeType":"YulIdentifier","src":"3110:8:64"},"variableNames":[{"name":"deleteStart","nativeSrc":"3095:11:64","nodeType":"YulIdentifier","src":"3095:11:64"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"3077:10:64","nodeType":"YulIdentifier","src":"3077:10:64"},{"kind":"number","nativeSrc":"3089:2:64","nodeType":"YulLiteral","src":"3089:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"3074:2:64","nodeType":"YulIdentifier","src":"3074:2:64"},"nativeSrc":"3074:18:64","nodeType":"YulFunctionCall","src":"3074:18:64"},"nativeSrc":"3071:49:64","nodeType":"YulIf","src":"3071:49:64"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"3162:11:64","nodeType":"YulIdentifier","src":"3162:11:64"},{"arguments":[{"name":"dataArea","nativeSrc":"3179:8:64","nodeType":"YulIdentifier","src":"3179:8:64"},{"arguments":[{"name":"len","nativeSrc":"3207:3:64","nodeType":"YulIdentifier","src":"3207:3:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"3189:17:64","nodeType":"YulIdentifier","src":"3189:17:64"},"nativeSrc":"3189:22:64","nodeType":"YulFunctionCall","src":"3189:22:64"}],"functionName":{"name":"add","nativeSrc":"3175:3:64","nodeType":"YulIdentifier","src":"3175:3:64"},"nativeSrc":"3175:37:64","nodeType":"YulFunctionCall","src":"3175:37:64"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"3133:28:64","nodeType":"YulIdentifier","src":"3133:28:64"},"nativeSrc":"3133:80:64","nodeType":"YulFunctionCall","src":"3133:80:64"},"nativeSrc":"3133:80:64","nodeType":"YulExpressionStatement","src":"3133:80:64"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"2783:3:64","nodeType":"YulIdentifier","src":"2783:3:64"},{"kind":"number","nativeSrc":"2788:2:64","nodeType":"YulLiteral","src":"2788:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"2780:2:64","nodeType":"YulIdentifier","src":"2780:2:64"},"nativeSrc":"2780:11:64","nodeType":"YulFunctionCall","src":"2780:11:64"},"nativeSrc":"2777:446:64","nodeType":"YulIf","src":"2777:446:64"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"2687:543:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"2742:5:64","nodeType":"YulTypedName","src":"2742:5:64","type":""},{"name":"len","nativeSrc":"2749:3:64","nodeType":"YulTypedName","src":"2749:3:64","type":""},{"name":"startIndex","nativeSrc":"2754:10:64","nodeType":"YulTypedName","src":"2754:10:64","type":""}],"src":"2687:543:64"},{"body":{"nativeSrc":"3299:54:64","nodeType":"YulBlock","src":"3299:54:64","statements":[{"nativeSrc":"3309:37:64","nodeType":"YulAssignment","src":"3309:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"3334:4:64","nodeType":"YulIdentifier","src":"3334:4:64"},{"name":"value","nativeSrc":"3340:5:64","nodeType":"YulIdentifier","src":"3340:5:64"}],"functionName":{"name":"shr","nativeSrc":"3330:3:64","nodeType":"YulIdentifier","src":"3330:3:64"},"nativeSrc":"3330:16:64","nodeType":"YulFunctionCall","src":"3330:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"3309:8:64","nodeType":"YulIdentifier","src":"3309:8:64"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"3236:117:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"3274:4:64","nodeType":"YulTypedName","src":"3274:4:64","type":""},{"name":"value","nativeSrc":"3280:5:64","nodeType":"YulTypedName","src":"3280:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"3290:8:64","nodeType":"YulTypedName","src":"3290:8:64","type":""}],"src":"3236:117:64"},{"body":{"nativeSrc":"3410:118:64","nodeType":"YulBlock","src":"3410:118:64","statements":[{"nativeSrc":"3420:68:64","nodeType":"YulVariableDeclaration","src":"3420:68:64","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3469:1:64","nodeType":"YulLiteral","src":"3469:1:64","type":"","value":"8"},{"name":"bytes","nativeSrc":"3472:5:64","nodeType":"YulIdentifier","src":"3472:5:64"}],"functionName":{"name":"mul","nativeSrc":"3465:3:64","nodeType":"YulIdentifier","src":"3465:3:64"},"nativeSrc":"3465:13:64","nodeType":"YulFunctionCall","src":"3465:13:64"},{"arguments":[{"kind":"number","nativeSrc":"3484:1:64","nodeType":"YulLiteral","src":"3484:1:64","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"3480:3:64","nodeType":"YulIdentifier","src":"3480:3:64"},"nativeSrc":"3480:6:64","nodeType":"YulFunctionCall","src":"3480:6:64"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"3436:28:64","nodeType":"YulIdentifier","src":"3436:28:64"},"nativeSrc":"3436:51:64","nodeType":"YulFunctionCall","src":"3436:51:64"}],"functionName":{"name":"not","nativeSrc":"3432:3:64","nodeType":"YulIdentifier","src":"3432:3:64"},"nativeSrc":"3432:56:64","nodeType":"YulFunctionCall","src":"3432:56:64"},"variables":[{"name":"mask","nativeSrc":"3424:4:64","nodeType":"YulTypedName","src":"3424:4:64","type":""}]},{"nativeSrc":"3497:25:64","nodeType":"YulAssignment","src":"3497:25:64","value":{"arguments":[{"name":"data","nativeSrc":"3511:4:64","nodeType":"YulIdentifier","src":"3511:4:64"},{"name":"mask","nativeSrc":"3517:4:64","nodeType":"YulIdentifier","src":"3517:4:64"}],"functionName":{"name":"and","nativeSrc":"3507:3:64","nodeType":"YulIdentifier","src":"3507:3:64"},"nativeSrc":"3507:15:64","nodeType":"YulFunctionCall","src":"3507:15:64"},"variableNames":[{"name":"result","nativeSrc":"3497:6:64","nodeType":"YulIdentifier","src":"3497:6:64"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"3359:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3387:4:64","nodeType":"YulTypedName","src":"3387:4:64","type":""},{"name":"bytes","nativeSrc":"3393:5:64","nodeType":"YulTypedName","src":"3393:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"3403:6:64","nodeType":"YulTypedName","src":"3403:6:64","type":""}],"src":"3359:169:64"},{"body":{"nativeSrc":"3614:214:64","nodeType":"YulBlock","src":"3614:214:64","statements":[{"nativeSrc":"3747:37:64","nodeType":"YulAssignment","src":"3747:37:64","value":{"arguments":[{"name":"data","nativeSrc":"3774:4:64","nodeType":"YulIdentifier","src":"3774:4:64"},{"name":"len","nativeSrc":"3780:3:64","nodeType":"YulIdentifier","src":"3780:3:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"3755:18:64","nodeType":"YulIdentifier","src":"3755:18:64"},"nativeSrc":"3755:29:64","nodeType":"YulFunctionCall","src":"3755:29:64"},"variableNames":[{"name":"data","nativeSrc":"3747:4:64","nodeType":"YulIdentifier","src":"3747:4:64"}]},{"nativeSrc":"3793:29:64","nodeType":"YulAssignment","src":"3793:29:64","value":{"arguments":[{"name":"data","nativeSrc":"3804:4:64","nodeType":"YulIdentifier","src":"3804:4:64"},{"arguments":[{"kind":"number","nativeSrc":"3814:1:64","nodeType":"YulLiteral","src":"3814:1:64","type":"","value":"2"},{"name":"len","nativeSrc":"3817:3:64","nodeType":"YulIdentifier","src":"3817:3:64"}],"functionName":{"name":"mul","nativeSrc":"3810:3:64","nodeType":"YulIdentifier","src":"3810:3:64"},"nativeSrc":"3810:11:64","nodeType":"YulFunctionCall","src":"3810:11:64"}],"functionName":{"name":"or","nativeSrc":"3801:2:64","nodeType":"YulIdentifier","src":"3801:2:64"},"nativeSrc":"3801:21:64","nodeType":"YulFunctionCall","src":"3801:21:64"},"variableNames":[{"name":"used","nativeSrc":"3793:4:64","nodeType":"YulIdentifier","src":"3793:4:64"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"3533:295:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"3595:4:64","nodeType":"YulTypedName","src":"3595:4:64","type":""},{"name":"len","nativeSrc":"3601:3:64","nodeType":"YulTypedName","src":"3601:3:64","type":""}],"returnVariables":[{"name":"used","nativeSrc":"3609:4:64","nodeType":"YulTypedName","src":"3609:4:64","type":""}],"src":"3533:295:64"},{"body":{"nativeSrc":"3925:1303:64","nodeType":"YulBlock","src":"3925:1303:64","statements":[{"nativeSrc":"3936:51:64","nodeType":"YulVariableDeclaration","src":"3936:51:64","value":{"arguments":[{"name":"src","nativeSrc":"3983:3:64","nodeType":"YulIdentifier","src":"3983:3:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"3950:32:64","nodeType":"YulIdentifier","src":"3950:32:64"},"nativeSrc":"3950:37:64","nodeType":"YulFunctionCall","src":"3950:37:64"},"variables":[{"name":"newLen","nativeSrc":"3940:6:64","nodeType":"YulTypedName","src":"3940:6:64","type":""}]},{"body":{"nativeSrc":"4072:22:64","nodeType":"YulBlock","src":"4072:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"4074:16:64","nodeType":"YulIdentifier","src":"4074:16:64"},"nativeSrc":"4074:18:64","nodeType":"YulFunctionCall","src":"4074:18:64"},"nativeSrc":"4074:18:64","nodeType":"YulExpressionStatement","src":"4074:18:64"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"4044:6:64","nodeType":"YulIdentifier","src":"4044:6:64"},{"kind":"number","nativeSrc":"4052:18:64","nodeType":"YulLiteral","src":"4052:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4041:2:64","nodeType":"YulIdentifier","src":"4041:2:64"},"nativeSrc":"4041:30:64","nodeType":"YulFunctionCall","src":"4041:30:64"},"nativeSrc":"4038:56:64","nodeType":"YulIf","src":"4038:56:64"},{"nativeSrc":"4104:52:64","nodeType":"YulVariableDeclaration","src":"4104:52:64","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"4150:4:64","nodeType":"YulIdentifier","src":"4150:4:64"}],"functionName":{"name":"sload","nativeSrc":"4144:5:64","nodeType":"YulIdentifier","src":"4144:5:64"},"nativeSrc":"4144:11:64","nodeType":"YulFunctionCall","src":"4144:11:64"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"4118:25:64","nodeType":"YulIdentifier","src":"4118:25:64"},"nativeSrc":"4118:38:64","nodeType":"YulFunctionCall","src":"4118:38:64"},"variables":[{"name":"oldLen","nativeSrc":"4108:6:64","nodeType":"YulTypedName","src":"4108:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4249:4:64","nodeType":"YulIdentifier","src":"4249:4:64"},{"name":"oldLen","nativeSrc":"4255:6:64","nodeType":"YulIdentifier","src":"4255:6:64"},{"name":"newLen","nativeSrc":"4263:6:64","nodeType":"YulIdentifier","src":"4263:6:64"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"4203:45:64","nodeType":"YulIdentifier","src":"4203:45:64"},"nativeSrc":"4203:67:64","nodeType":"YulFunctionCall","src":"4203:67:64"},"nativeSrc":"4203:67:64","nodeType":"YulExpressionStatement","src":"4203:67:64"},{"nativeSrc":"4280:18:64","nodeType":"YulVariableDeclaration","src":"4280:18:64","value":{"kind":"number","nativeSrc":"4297:1:64","nodeType":"YulLiteral","src":"4297:1:64","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"4284:9:64","nodeType":"YulTypedName","src":"4284:9:64","type":""}]},{"nativeSrc":"4308:17:64","nodeType":"YulAssignment","src":"4308:17:64","value":{"kind":"number","nativeSrc":"4321:4:64","nodeType":"YulLiteral","src":"4321:4:64","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"4308:9:64","nodeType":"YulIdentifier","src":"4308:9:64"}]},{"cases":[{"body":{"nativeSrc":"4372:611:64","nodeType":"YulBlock","src":"4372:611:64","statements":[{"nativeSrc":"4386:37:64","nodeType":"YulVariableDeclaration","src":"4386:37:64","value":{"arguments":[{"name":"newLen","nativeSrc":"4405:6:64","nodeType":"YulIdentifier","src":"4405:6:64"},{"arguments":[{"kind":"number","nativeSrc":"4417:4:64","nodeType":"YulLiteral","src":"4417:4:64","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"4413:3:64","nodeType":"YulIdentifier","src":"4413:3:64"},"nativeSrc":"4413:9:64","nodeType":"YulFunctionCall","src":"4413:9:64"}],"functionName":{"name":"and","nativeSrc":"4401:3:64","nodeType":"YulIdentifier","src":"4401:3:64"},"nativeSrc":"4401:22:64","nodeType":"YulFunctionCall","src":"4401:22:64"},"variables":[{"name":"loopEnd","nativeSrc":"4390:7:64","nodeType":"YulTypedName","src":"4390:7:64","type":""}]},{"nativeSrc":"4437:51:64","nodeType":"YulVariableDeclaration","src":"4437:51:64","value":{"arguments":[{"name":"slot","nativeSrc":"4483:4:64","nodeType":"YulIdentifier","src":"4483:4:64"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"4451:31:64","nodeType":"YulIdentifier","src":"4451:31:64"},"nativeSrc":"4451:37:64","nodeType":"YulFunctionCall","src":"4451:37:64"},"variables":[{"name":"dstPtr","nativeSrc":"4441:6:64","nodeType":"YulTypedName","src":"4441:6:64","type":""}]},{"nativeSrc":"4501:10:64","nodeType":"YulVariableDeclaration","src":"4501:10:64","value":{"kind":"number","nativeSrc":"4510:1:64","nodeType":"YulLiteral","src":"4510:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"4505:1:64","nodeType":"YulTypedName","src":"4505:1:64","type":""}]},{"body":{"nativeSrc":"4569:163:64","nodeType":"YulBlock","src":"4569:163:64","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4594:6:64","nodeType":"YulIdentifier","src":"4594:6:64"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4612:3:64","nodeType":"YulIdentifier","src":"4612:3:64"},{"name":"srcOffset","nativeSrc":"4617:9:64","nodeType":"YulIdentifier","src":"4617:9:64"}],"functionName":{"name":"add","nativeSrc":"4608:3:64","nodeType":"YulIdentifier","src":"4608:3:64"},"nativeSrc":"4608:19:64","nodeType":"YulFunctionCall","src":"4608:19:64"}],"functionName":{"name":"mload","nativeSrc":"4602:5:64","nodeType":"YulIdentifier","src":"4602:5:64"},"nativeSrc":"4602:26:64","nodeType":"YulFunctionCall","src":"4602:26:64"}],"functionName":{"name":"sstore","nativeSrc":"4587:6:64","nodeType":"YulIdentifier","src":"4587:6:64"},"nativeSrc":"4587:42:64","nodeType":"YulFunctionCall","src":"4587:42:64"},"nativeSrc":"4587:42:64","nodeType":"YulExpressionStatement","src":"4587:42:64"},{"nativeSrc":"4646:24:64","nodeType":"YulAssignment","src":"4646:24:64","value":{"arguments":[{"name":"dstPtr","nativeSrc":"4660:6:64","nodeType":"YulIdentifier","src":"4660:6:64"},{"kind":"number","nativeSrc":"4668:1:64","nodeType":"YulLiteral","src":"4668:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4656:3:64","nodeType":"YulIdentifier","src":"4656:3:64"},"nativeSrc":"4656:14:64","nodeType":"YulFunctionCall","src":"4656:14:64"},"variableNames":[{"name":"dstPtr","nativeSrc":"4646:6:64","nodeType":"YulIdentifier","src":"4646:6:64"}]},{"nativeSrc":"4687:31:64","nodeType":"YulAssignment","src":"4687:31:64","value":{"arguments":[{"name":"srcOffset","nativeSrc":"4704:9:64","nodeType":"YulIdentifier","src":"4704:9:64"},{"kind":"number","nativeSrc":"4715:2:64","nodeType":"YulLiteral","src":"4715:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4700:3:64","nodeType":"YulIdentifier","src":"4700:3:64"},"nativeSrc":"4700:18:64","nodeType":"YulFunctionCall","src":"4700:18:64"},"variableNames":[{"name":"srcOffset","nativeSrc":"4687:9:64","nodeType":"YulIdentifier","src":"4687:9:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"4535:1:64","nodeType":"YulIdentifier","src":"4535:1:64"},{"name":"loopEnd","nativeSrc":"4538:7:64","nodeType":"YulIdentifier","src":"4538:7:64"}],"functionName":{"name":"lt","nativeSrc":"4532:2:64","nodeType":"YulIdentifier","src":"4532:2:64"},"nativeSrc":"4532:14:64","nodeType":"YulFunctionCall","src":"4532:14:64"},"nativeSrc":"4524:208:64","nodeType":"YulForLoop","post":{"nativeSrc":"4547:21:64","nodeType":"YulBlock","src":"4547:21:64","statements":[{"nativeSrc":"4549:17:64","nodeType":"YulAssignment","src":"4549:17:64","value":{"arguments":[{"name":"i","nativeSrc":"4558:1:64","nodeType":"YulIdentifier","src":"4558:1:64"},{"kind":"number","nativeSrc":"4561:4:64","nodeType":"YulLiteral","src":"4561:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4554:3:64","nodeType":"YulIdentifier","src":"4554:3:64"},"nativeSrc":"4554:12:64","nodeType":"YulFunctionCall","src":"4554:12:64"},"variableNames":[{"name":"i","nativeSrc":"4549:1:64","nodeType":"YulIdentifier","src":"4549:1:64"}]}]},"pre":{"nativeSrc":"4528:3:64","nodeType":"YulBlock","src":"4528:3:64","statements":[]},"src":"4524:208:64"},{"body":{"nativeSrc":"4768:156:64","nodeType":"YulBlock","src":"4768:156:64","statements":[{"nativeSrc":"4786:43:64","nodeType":"YulVariableDeclaration","src":"4786:43:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4813:3:64","nodeType":"YulIdentifier","src":"4813:3:64"},{"name":"srcOffset","nativeSrc":"4818:9:64","nodeType":"YulIdentifier","src":"4818:9:64"}],"functionName":{"name":"add","nativeSrc":"4809:3:64","nodeType":"YulIdentifier","src":"4809:3:64"},"nativeSrc":"4809:19:64","nodeType":"YulFunctionCall","src":"4809:19:64"}],"functionName":{"name":"mload","nativeSrc":"4803:5:64","nodeType":"YulIdentifier","src":"4803:5:64"},"nativeSrc":"4803:26:64","nodeType":"YulFunctionCall","src":"4803:26:64"},"variables":[{"name":"lastValue","nativeSrc":"4790:9:64","nodeType":"YulTypedName","src":"4790:9:64","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"4853:6:64","nodeType":"YulIdentifier","src":"4853:6:64"},{"arguments":[{"name":"lastValue","nativeSrc":"4880:9:64","nodeType":"YulIdentifier","src":"4880:9:64"},{"arguments":[{"name":"newLen","nativeSrc":"4895:6:64","nodeType":"YulIdentifier","src":"4895:6:64"},{"kind":"number","nativeSrc":"4903:4:64","nodeType":"YulLiteral","src":"4903:4:64","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"4891:3:64","nodeType":"YulIdentifier","src":"4891:3:64"},"nativeSrc":"4891:17:64","nodeType":"YulFunctionCall","src":"4891:17:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"4861:18:64","nodeType":"YulIdentifier","src":"4861:18:64"},"nativeSrc":"4861:48:64","nodeType":"YulFunctionCall","src":"4861:48:64"}],"functionName":{"name":"sstore","nativeSrc":"4846:6:64","nodeType":"YulIdentifier","src":"4846:6:64"},"nativeSrc":"4846:64:64","nodeType":"YulFunctionCall","src":"4846:64:64"},"nativeSrc":"4846:64:64","nodeType":"YulExpressionStatement","src":"4846:64:64"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"4751:7:64","nodeType":"YulIdentifier","src":"4751:7:64"},{"name":"newLen","nativeSrc":"4760:6:64","nodeType":"YulIdentifier","src":"4760:6:64"}],"functionName":{"name":"lt","nativeSrc":"4748:2:64","nodeType":"YulIdentifier","src":"4748:2:64"},"nativeSrc":"4748:19:64","nodeType":"YulFunctionCall","src":"4748:19:64"},"nativeSrc":"4745:179:64","nodeType":"YulIf","src":"4745:179:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"4944:4:64","nodeType":"YulIdentifier","src":"4944:4:64"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"4958:6:64","nodeType":"YulIdentifier","src":"4958:6:64"},{"kind":"number","nativeSrc":"4966:1:64","nodeType":"YulLiteral","src":"4966:1:64","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"4954:3:64","nodeType":"YulIdentifier","src":"4954:3:64"},"nativeSrc":"4954:14:64","nodeType":"YulFunctionCall","src":"4954:14:64"},{"kind":"number","nativeSrc":"4970:1:64","nodeType":"YulLiteral","src":"4970:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4950:3:64","nodeType":"YulIdentifier","src":"4950:3:64"},"nativeSrc":"4950:22:64","nodeType":"YulFunctionCall","src":"4950:22:64"}],"functionName":{"name":"sstore","nativeSrc":"4937:6:64","nodeType":"YulIdentifier","src":"4937:6:64"},"nativeSrc":"4937:36:64","nodeType":"YulFunctionCall","src":"4937:36:64"},"nativeSrc":"4937:36:64","nodeType":"YulExpressionStatement","src":"4937:36:64"}]},"nativeSrc":"4365:618:64","nodeType":"YulCase","src":"4365:618:64","value":{"kind":"number","nativeSrc":"4370:1:64","nodeType":"YulLiteral","src":"4370:1:64","type":"","value":"1"}},{"body":{"nativeSrc":"5000:222:64","nodeType":"YulBlock","src":"5000:222:64","statements":[{"nativeSrc":"5014:14:64","nodeType":"YulVariableDeclaration","src":"5014:14:64","value":{"kind":"number","nativeSrc":"5027:1:64","nodeType":"YulLiteral","src":"5027:1:64","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"5018:5:64","nodeType":"YulTypedName","src":"5018:5:64","type":""}]},{"body":{"nativeSrc":"5051:67:64","nodeType":"YulBlock","src":"5051:67:64","statements":[{"nativeSrc":"5069:35:64","nodeType":"YulAssignment","src":"5069:35:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"5088:3:64","nodeType":"YulIdentifier","src":"5088:3:64"},{"name":"srcOffset","nativeSrc":"5093:9:64","nodeType":"YulIdentifier","src":"5093:9:64"}],"functionName":{"name":"add","nativeSrc":"5084:3:64","nodeType":"YulIdentifier","src":"5084:3:64"},"nativeSrc":"5084:19:64","nodeType":"YulFunctionCall","src":"5084:19:64"}],"functionName":{"name":"mload","nativeSrc":"5078:5:64","nodeType":"YulIdentifier","src":"5078:5:64"},"nativeSrc":"5078:26:64","nodeType":"YulFunctionCall","src":"5078:26:64"},"variableNames":[{"name":"value","nativeSrc":"5069:5:64","nodeType":"YulIdentifier","src":"5069:5:64"}]}]},"condition":{"name":"newLen","nativeSrc":"5044:6:64","nodeType":"YulIdentifier","src":"5044:6:64"},"nativeSrc":"5041:77:64","nodeType":"YulIf","src":"5041:77:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"5138:4:64","nodeType":"YulIdentifier","src":"5138:4:64"},{"arguments":[{"name":"value","nativeSrc":"5197:5:64","nodeType":"YulIdentifier","src":"5197:5:64"},{"name":"newLen","nativeSrc":"5204:6:64","nodeType":"YulIdentifier","src":"5204:6:64"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"5144:52:64","nodeType":"YulIdentifier","src":"5144:52:64"},"nativeSrc":"5144:67:64","nodeType":"YulFunctionCall","src":"5144:67:64"}],"functionName":{"name":"sstore","nativeSrc":"5131:6:64","nodeType":"YulIdentifier","src":"5131:6:64"},"nativeSrc":"5131:81:64","nodeType":"YulFunctionCall","src":"5131:81:64"},"nativeSrc":"5131:81:64","nodeType":"YulExpressionStatement","src":"5131:81:64"}]},"nativeSrc":"4992:230:64","nodeType":"YulCase","src":"4992:230:64","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"4345:6:64","nodeType":"YulIdentifier","src":"4345:6:64"},{"kind":"number","nativeSrc":"4353:2:64","nodeType":"YulLiteral","src":"4353:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"4342:2:64","nodeType":"YulIdentifier","src":"4342:2:64"},"nativeSrc":"4342:14:64","nodeType":"YulFunctionCall","src":"4342:14:64"},"nativeSrc":"4335:887:64","nodeType":"YulSwitch","src":"4335:887:64"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"3833:1395:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"3914:4:64","nodeType":"YulTypedName","src":"3914:4:64","type":""},{"name":"src","nativeSrc":"3920:3:64","nodeType":"YulTypedName","src":"3920:3:64","type":""}],"src":"3833:1395:64"}]},"contents":"{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561000f575f80fd5b506040518060400160405280601e81526020017f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f7b69647d00008152506100558161005b60201b60201c565b50610377565b806002908161006a91906102a8565b5050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806100e957607f821691505b6020821081036100fc576100fb6100a5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261015e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610123565b6101688683610123565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101ac6101a76101a284610180565b610189565b610180565b9050919050565b5f819050919050565b6101c583610192565b6101d96101d1826101b3565b84845461012f565b825550505050565b5f90565b6101ed6101e1565b6101f88184846101bc565b505050565b5b8181101561021b576102105f826101e5565b6001810190506101fe565b5050565b601f8211156102605761023181610102565b61023a84610114565b81016020851015610249578190505b61025d61025585610114565b8301826101fd565b50505b505050565b5f82821c905092915050565b5f6102805f1984600802610265565b1980831691505092915050565b5f6102988383610271565b9150826002028217905092915050565b6102b18261006e565b67ffffffffffffffff8111156102ca576102c9610078565b5b6102d482546100d2565b6102df82828561021f565b5f60209050601f831160018114610310575f84156102fe578287015190505b610308858261028d565b86555061036f565b601f19841661031e86610102565b5f5b8281101561034557848901518255600182019150602085019450602081019050610320565b86831015610362578489015161035e601f891682610271565b8355505b6001600288020188555050505b505050505050565b612025806103845f395ff3fe608060405234801561000f575f80fd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f414610167578063a22cb46514610197578063e985e9c5146101b3578063f242432a146101e3578063f5298aca146101ff5761009b565b8062fdd58e1461009f57806301ffc9a7146100cf5780630e89341c146100ff578063156e29f61461012f5780632eb2c2d61461014b575b5f80fd5b6100b960048036038101906100b491906114a3565b61021b565b6040516100c691906114f0565b60405180910390f35b6100e960048036038101906100e4919061155e565b610270565b6040516100f691906115a3565b60405180910390f35b610119600480360381019061011491906115bc565b610351565b6040516101269190611657565b60405180910390f35b61014960048036038101906101449190611677565b6103e3565b005b610165600480360381019061016091906118b7565b610402565b005b610181600480360381019061017c9190611a42565b6104a9565b60405161018e9190611b6f565b60405180910390f35b6101b160048036038101906101ac9190611bb9565b6105b0565b005b6101cd60048036038101906101c89190611bf7565b6105c6565b6040516101da91906115a3565b60405180910390f35b6101fd60048036038101906101f89190611c35565b610654565b005b61021960048036038101906102149190611677565b6106fb565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061034a57506103498261070b565b5b9050919050565b60606002805461036090611cf5565b80601f016020809104026020016040519081016040528092919081815260200182805461038c90611cf5565b80156103d75780601f106103ae576101008083540402835291602001916103d7565b820191905f5260205f20905b8154815290600101906020018083116103ba57829003601f168201915b50505050509050919050565b6103fd83838360405180602001604052805f815250610774565b505050565b5f61040b610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610450575061044e86826105c6565b155b156104945780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161048b929190611d34565b60405180910390fd5b6104a18686868686610810565b505050505050565b606081518351146104f557815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016104ec929190611d5b565b60405180910390fd5b5f835167ffffffffffffffff811115610511576105106116cb565b5b60405190808252806020026020018201604052801561053f5781602001602082028036833780820191505090505b5090505f5b84518110156105a55761057b610563828761090490919063ffffffff16565b610576838761091790919063ffffffff16565b61021b565b82828151811061058e5761058d611d82565b5b602002602001018181525050806001019050610544565b508091505092915050565b6105c26105bb610809565b838361092a565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61065d610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156106a257506106a086826105c6565b155b156106e65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016106dd929190611d34565b60405180910390fd5b6106f38686868686610a93565b505050505050565b610706838383610b99565b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107e4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107db9190611daf565b60405180910390fd5b5f806107f08585610c3b565b915091506108015f87848487610c6b565b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610880575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108779190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036108f0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016108e79190611daf565b60405180910390fd5b6108fd8585858585610c6b565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361099a575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016109919190611daf565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a8691906115a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b03575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610afa9190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b73575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b6a9190611daf565b60405180910390fd5b5f80610b7f8585610c3b565b91509150610b908787848487610c6b565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c09575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c009190611daf565b60405180910390fd5b5f80610c158484610c3b565b91509150610c34855f848460405180602001604052805f815250610c6b565b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b610c7785858585610d17565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d10575f610cb3610809565b90506001845103610cff575f610cd25f8661091790919063ffffffff16565b90505f610ce85f8661091790919063ffffffff16565b9050610cf88389898585896110a7565b5050610d0e565b610d0d818787878787611256565b5b505b5050505050565b8051825114610d6157815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610d58929190611d5b565b60405180910390fd5b5f610d6a610809565b90505f5b8351811015610f66575f610d8b828661091790919063ffffffff16565b90505f610da1838661091790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610ec4575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610e679493929190611dc8565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610f5957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f519190611e38565b925050819055505b5050806001019050610d6e565b506001835103611021575f610f845f8561091790919063ffffffff16565b90505f610f9a5f8561091790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611012929190611d5b565b60405180910390a450506110a0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611097929190611e6b565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561124e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611107959493929190611ef2565b6020604051808303815f875af192505050801561114257506040513d601f19601f8201168201806040525081019061113f9190611f5e565b60015b6111c3573d805f8114611170576040519150601f19603f3d011682016040523d82523d5f602084013e611175565b606091505b505f8151036111bb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111b29190611daf565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124c57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112439190611daf565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156113fd578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112b6959493929190611f89565b6020604051808303815f875af19250505080156112f157506040513d601f19601f820116820180604052508101906112ee9190611f5e565b60015b611372573d805f811461131f576040519150601f19603f3d011682016040523d82523d5f602084013e611324565b606091505b505f81510361136a57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113619190611daf565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113fb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f29190611daf565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61143f82611416565b9050919050565b61144f81611435565b8114611459575f80fd5b50565b5f8135905061146a81611446565b92915050565b5f819050919050565b61148281611470565b811461148c575f80fd5b50565b5f8135905061149d81611479565b92915050565b5f80604083850312156114b9576114b861140e565b5b5f6114c68582860161145c565b92505060206114d78582860161148f565b9150509250929050565b6114ea81611470565b82525050565b5f6020820190506115035f8301846114e1565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61153d81611509565b8114611547575f80fd5b50565b5f8135905061155881611534565b92915050565b5f602082840312156115735761157261140e565b5b5f6115808482850161154a565b91505092915050565b5f8115159050919050565b61159d81611589565b82525050565b5f6020820190506115b65f830184611594565b92915050565b5f602082840312156115d1576115d061140e565b5b5f6115de8482850161148f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611629826115e7565b61163381856115f1565b9350611643818560208601611601565b61164c8161160f565b840191505092915050565b5f6020820190508181035f83015261166f818461161f565b905092915050565b5f805f6060848603121561168e5761168d61140e565b5b5f61169b8682870161145c565b93505060206116ac8682870161148f565b92505060406116bd8682870161148f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6117018261160f565b810181811067ffffffffffffffff821117156117205761171f6116cb565b5b80604052505050565b5f611732611405565b905061173e82826116f8565b919050565b5f67ffffffffffffffff82111561175d5761175c6116cb565b5b602082029050602081019050919050565b5f80fd5b5f61178461177f84611743565b611729565b905080838252602082019050602084028301858111156117a7576117a661176e565b5b835b818110156117d057806117bc888261148f565b8452602084019350506020810190506117a9565b5050509392505050565b5f82601f8301126117ee576117ed6116c7565b5b81356117fe848260208601611772565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611825576118246116cb565b5b61182e8261160f565b9050602081019050919050565b828183375f83830152505050565b5f61185b6118568461180b565b611729565b90508281526020810184848401111561187757611876611807565b5b61188284828561183b565b509392505050565b5f82601f83011261189e5761189d6116c7565b5b81356118ae848260208601611849565b91505092915050565b5f805f805f60a086880312156118d0576118cf61140e565b5b5f6118dd8882890161145c565b95505060206118ee8882890161145c565b945050604086013567ffffffffffffffff81111561190f5761190e611412565b5b61191b888289016117da565b935050606086013567ffffffffffffffff81111561193c5761193b611412565b5b611948888289016117da565b925050608086013567ffffffffffffffff81111561196957611968611412565b5b6119758882890161188a565b9150509295509295909350565b5f67ffffffffffffffff82111561199c5761199b6116cb565b5b602082029050602081019050919050565b5f6119bf6119ba84611982565b611729565b905080838252602082019050602084028301858111156119e2576119e161176e565b5b835b81811015611a0b57806119f7888261145c565b8452602084019350506020810190506119e4565b5050509392505050565b5f82601f830112611a2957611a286116c7565b5b8135611a398482602086016119ad565b91505092915050565b5f8060408385031215611a5857611a5761140e565b5b5f83013567ffffffffffffffff811115611a7557611a74611412565b5b611a8185828601611a15565b925050602083013567ffffffffffffffff811115611aa257611aa1611412565b5b611aae858286016117da565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611aea81611470565b82525050565b5f611afb8383611ae1565b60208301905092915050565b5f602082019050919050565b5f611b1d82611ab8565b611b278185611ac2565b9350611b3283611ad2565b805f5b83811015611b62578151611b498882611af0565b9750611b5483611b07565b925050600181019050611b35565b5085935050505092915050565b5f6020820190508181035f830152611b878184611b13565b905092915050565b611b9881611589565b8114611ba2575f80fd5b50565b5f81359050611bb381611b8f565b92915050565b5f8060408385031215611bcf57611bce61140e565b5b5f611bdc8582860161145c565b9250506020611bed85828601611ba5565b9150509250929050565b5f8060408385031215611c0d57611c0c61140e565b5b5f611c1a8582860161145c565b9250506020611c2b8582860161145c565b9150509250929050565b5f805f805f60a08688031215611c4e57611c4d61140e565b5b5f611c5b8882890161145c565b9550506020611c6c8882890161145c565b9450506040611c7d8882890161148f565b9350506060611c8e8882890161148f565b925050608086013567ffffffffffffffff811115611caf57611cae611412565b5b611cbb8882890161188a565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0c57607f821691505b602082108103611d1f57611d1e611cc8565b5b50919050565b611d2e81611435565b82525050565b5f604082019050611d475f830185611d25565b611d546020830184611d25565b9392505050565b5f604082019050611d6e5f8301856114e1565b611d7b60208301846114e1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082019050611dc25f830184611d25565b92915050565b5f608082019050611ddb5f830187611d25565b611de860208301866114e1565b611df560408301856114e1565b611e0260608301846114e1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e4282611470565b9150611e4d83611470565b9250828201905080821115611e6557611e64611e0b565b5b92915050565b5f6040820190508181035f830152611e838185611b13565b90508181036020830152611e978184611b13565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec482611ea0565b611ece8185611eaa565b9350611ede818560208601611601565b611ee78161160f565b840191505092915050565b5f60a082019050611f055f830188611d25565b611f126020830187611d25565b611f1f60408301866114e1565b611f2c60608301856114e1565b8181036080830152611f3e8184611eba565b90509695505050505050565b5f81519050611f5881611534565b92915050565b5f60208284031215611f7357611f7261140e565b5b5f611f8084828501611f4a565b91505092915050565b5f60a082019050611f9c5f830188611d25565b611fa96020830187611d25565b8181036040830152611fbb8186611b13565b90508181036060830152611fcf8185611b13565b90508181036080830152611fe38184611eba565b9050969550505050505056fea2646970667358221220644597f71093432852dc59712ddb56cb16a961c29f8b49d833a5b8d50af0013164736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1E DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F7B69647D0000 DUP2 MSTORE POP PUSH2 0x55 DUP2 PUSH2 0x5B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x377 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH2 0x6A SWAP2 SWAP1 PUSH2 0x2A8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xE9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xFC JUMPI PUSH2 0xFB PUSH2 0xA5 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x15E PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x123 JUMP JUMPDEST PUSH2 0x168 DUP7 DUP4 PUSH2 0x123 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1AC PUSH2 0x1A7 PUSH2 0x1A2 DUP5 PUSH2 0x180 JUMP JUMPDEST PUSH2 0x189 JUMP JUMPDEST PUSH2 0x180 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C5 DUP4 PUSH2 0x192 JUMP JUMPDEST PUSH2 0x1D9 PUSH2 0x1D1 DUP3 PUSH2 0x1B3 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x12F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x1ED PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x1F8 DUP2 DUP5 DUP5 PUSH2 0x1BC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x21B JUMPI PUSH2 0x210 PUSH0 DUP3 PUSH2 0x1E5 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1FE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x260 JUMPI PUSH2 0x231 DUP2 PUSH2 0x102 JUMP JUMPDEST PUSH2 0x23A DUP5 PUSH2 0x114 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x249 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x25D PUSH2 0x255 DUP6 PUSH2 0x114 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x1FD JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x280 PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x265 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x298 DUP4 DUP4 PUSH2 0x271 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B1 DUP3 PUSH2 0x6E JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CA JUMPI PUSH2 0x2C9 PUSH2 0x78 JUMP JUMPDEST JUMPDEST PUSH2 0x2D4 DUP3 SLOAD PUSH2 0xD2 JUMP JUMPDEST PUSH2 0x2DF DUP3 DUP3 DUP6 PUSH2 0x21F JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x310 JUMPI PUSH0 DUP5 ISZERO PUSH2 0x2FE JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x308 DUP6 DUP3 PUSH2 0x28D JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x36F JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x31E DUP7 PUSH2 0x102 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x345 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x320 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x362 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x35E PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x271 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x2025 DUP1 PUSH2 0x384 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x1FF JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x14B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x155E JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x149 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x144 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x181 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x1B6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x5B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0x5C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x33A JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x34A JUMPI POP PUSH2 0x349 DUP3 PUSH2 0x70B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x360 SWAP1 PUSH2 0x1CF5 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 0x38C SWAP1 PUSH2 0x1CF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3BA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x774 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x450 JUMPI POP PUSH2 0x44E DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x494 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A1 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x4F5 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x511 JUMPI PUSH2 0x510 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x53F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x5A5 JUMPI PUSH2 0x57B PUSH2 0x563 DUP3 DUP8 PUSH2 0x904 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x576 DUP4 DUP8 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0x1D82 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x544 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0x5BB PUSH2 0x809 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x92A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x65D PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x6A2 JUMPI POP PUSH2 0x6A0 DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x6E6 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6DD SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xA93 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x706 DUP4 DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7E4 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0x7F0 DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x801 PUSH0 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x880 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8F0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8FD DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB03 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFA SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB73 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xB7F DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xB90 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC09 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xC15 DUP5 DUP5 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xC34 DUP6 PUSH0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xC77 DUP6 DUP6 DUP6 DUP6 PUSH2 0xD17 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD10 JUMPI PUSH0 PUSH2 0xCB3 PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0xCFF JUMPI PUSH0 PUSH2 0xCD2 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xCE8 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0xCF8 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x10A7 JUMP JUMPDEST POP POP PUSH2 0xD0E JUMP JUMPDEST PUSH2 0xD0D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1256 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0xD61 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0xD6A PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xF66 JUMPI PUSH0 PUSH2 0xD8B DUP3 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDA1 DUP4 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEC4 JUMPI PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xE70 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE67 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF59 JUMPI DUP1 PUSH0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x1E38 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xD6E JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1021 JUMPI PUSH0 PUSH2 0xF84 PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xF9A PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1012 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x10A0 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1097 SWAP3 SWAP2 SWAP1 PUSH2 0x1E6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x124E JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1107 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1142 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x113F SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11C3 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1170 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x11BB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x124C JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x13FD JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12F1 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12EE SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1372 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x131F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1324 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x136A JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1361 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x13FB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x143F DUP3 PUSH2 0x1416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x144F DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP2 EQ PUSH2 0x1459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x146A DUP2 PUSH2 0x1446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1482 DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP2 EQ PUSH2 0x148C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x149D DUP2 PUSH2 0x1479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14B9 JUMPI PUSH2 0x14B8 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x14C6 DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D7 DUP6 DUP3 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1503 PUSH0 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153D DUP2 PUSH2 0x1509 JUMP JUMPDEST DUP2 EQ PUSH2 0x1547 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1558 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1573 JUMPI PUSH2 0x1572 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1580 DUP5 DUP3 DUP6 ADD PUSH2 0x154A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x159D DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B6 PUSH0 DUP4 ADD DUP5 PUSH2 0x1594 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D1 JUMPI PUSH2 0x15D0 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DE DUP5 DUP3 DUP6 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1629 DUP3 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x1633 DUP2 DUP6 PUSH2 0x15F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1643 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x164C DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x166F DUP2 DUP5 PUSH2 0x161F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x168E JUMPI PUSH2 0x168D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169B DUP7 DUP3 DUP8 ADD PUSH2 0x145C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x16AC DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x16BD DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1701 DUP3 PUSH2 0x160F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1720 JUMPI PUSH2 0x171F PUSH2 0x16CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 PUSH2 0x1405 JUMP JUMPDEST SWAP1 POP PUSH2 0x173E DUP3 DUP3 PUSH2 0x16F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x175D JUMPI PUSH2 0x175C PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1784 PUSH2 0x177F DUP5 PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x17A7 JUMPI PUSH2 0x17A6 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D0 JUMPI DUP1 PUSH2 0x17BC DUP9 DUP3 PUSH2 0x148F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17A9 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17FE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1772 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1825 JUMPI PUSH2 0x1824 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH2 0x182E DUP3 PUSH2 0x160F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x185B PUSH2 0x1856 DUP5 PUSH2 0x180B JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1877 JUMPI PUSH2 0x1876 PUSH2 0x1807 JUMP JUMPDEST JUMPDEST PUSH2 0x1882 DUP5 DUP3 DUP6 PUSH2 0x183B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x189E JUMPI PUSH2 0x189D PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x18AE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1849 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18D0 JUMPI PUSH2 0x18CF PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18DD DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x18EE DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x191B DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x193C JUMPI PUSH2 0x193B PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1948 DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1969 JUMPI PUSH2 0x1968 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1975 DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x199C JUMPI PUSH2 0x199B PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19BF PUSH2 0x19BA DUP5 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A0B JUMPI DUP1 PUSH2 0x19F7 DUP9 DUP3 PUSH2 0x145C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19E4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A29 JUMPI PUSH2 0x1A28 PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A39 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A58 JUMPI PUSH2 0x1A57 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A75 JUMPI PUSH2 0x1A74 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1A81 DUP6 DUP3 DUP7 ADD PUSH2 0x1A15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH2 0x1AA1 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1AAE DUP6 DUP3 DUP7 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AEA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AFB DUP4 DUP4 PUSH2 0x1AE1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B1D DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x1B27 DUP2 DUP6 PUSH2 0x1AC2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B32 DUP4 PUSH2 0x1AD2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B62 JUMPI DUP2 MLOAD PUSH2 0x1B49 DUP9 DUP3 PUSH2 0x1AF0 JUMP JUMPDEST SWAP8 POP PUSH2 0x1B54 DUP4 PUSH2 0x1B07 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1B35 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B87 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B98 DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BA2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB3 DUP2 PUSH2 0x1B8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BCF JUMPI PUSH2 0x1BCE PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1BDC DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1BED DUP6 DUP3 DUP7 ADD PUSH2 0x1BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0D JUMPI PUSH2 0x1C0C PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C1A DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C2B DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C4E JUMPI PUSH2 0x1C4D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C5B DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C6C DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1C7D DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1C8E DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1CAE PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1CBB DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1D0C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1D1F JUMPI PUSH2 0x1D1E PUSH2 0x1CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2E DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D47 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1D54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D6E PUSH0 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1D7B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DC2 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1DDB PUSH0 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1DE8 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1DF5 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1E02 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1E42 DUP3 PUSH2 0x1470 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E4D DUP4 PUSH2 0x1470 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1E65 JUMPI PUSH2 0x1E64 PUSH2 0x1E0B JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1E83 DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E97 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EC4 DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x1ECE DUP2 DUP6 PUSH2 0x1EAA JUMP JUMPDEST SWAP4 POP PUSH2 0x1EDE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x1EE7 DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F05 PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F12 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F1F PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1F2C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1F3E DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1F58 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F73 JUMPI PUSH2 0x1F72 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F80 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9C PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1FA9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1FBB DUP2 DUP7 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1FCF DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FE3 DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0x4597F71093 NUMBER 0x28 MSTORE 0xDC MSIZE PUSH18 0x2DDB56CB16A961C29F8B49D833A5B8D50AF0 ADD BALANCE PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"2054:316:59:-:0;;;2092:58;;;;;;;;;;1249:62:1;;;;;;;;;;;;;;;;;1291:13;1299:4;1291:7;;;:13;;:::i;:::-;1249:62;2054:316:59;;10290:86:1;10363:6;10356:4;:13;;;;;;:::i;:::-;;10290:86;:::o;7:99:64:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;2054:316:59:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_asSingletonArrays_1052":{"entryPoint":3131,"id":1052,"parameterSlots":2,"returnSlots":2},"@_burn_957":{"entryPoint":2969,"id":957,"parameterSlots":3,"returnSlots":0},"@_mint_866":{"entryPoint":1908,"id":866,"parameterSlots":4,"returnSlots":0},"@_msgSender_2288":{"entryPoint":2057,"id":2288,"parameterSlots":0,"returnSlots":1},"@_safeBatchTransferFrom_803":{"entryPoint":2064,"id":803,"parameterSlots":5,"returnSlots":0},"@_safeTransferFrom_748":{"entryPoint":2707,"id":748,"parameterSlots":5,"returnSlots":0},"@_setApprovalForAll_1036":{"entryPoint":2346,"id":1036,"parameterSlots":3,"returnSlots":0},"@_updateWithAcceptanceCheck_682":{"entryPoint":3179,"id":682,"parameterSlots":5,"returnSlots":0},"@_update_602":{"entryPoint":3351,"id":602,"parameterSlots":4,"returnSlots":0},"@balanceOfBatch_326":{"entryPoint":1193,"id":326,"parameterSlots":2,"returnSlots":1},"@balanceOf_256":{"entryPoint":539,"id":256,"parameterSlots":2,"returnSlots":1},"@burn_18688":{"entryPoint":1787,"id":18688,"parameterSlots":3,"returnSlots":0},"@checkOnERC1155BatchReceived_1387":{"entryPoint":4694,"id":1387,"parameterSlots":6,"returnSlots":0},"@checkOnERC1155Received_1313":{"entryPoint":4263,"id":1313,"parameterSlots":6,"returnSlots":0},"@isApprovedForAll_359":{"entryPoint":1478,"id":359,"parameterSlots":2,"returnSlots":1},"@mint_18672":{"entryPoint":995,"id":18672,"parameterSlots":3,"returnSlots":0},"@safeBatchTransferFrom_449":{"entryPoint":1026,"id":449,"parameterSlots":5,"returnSlots":0},"@safeTransferFrom_403":{"entryPoint":1620,"id":403,"parameterSlots":5,"returnSlots":0},"@setApprovalForAll_342":{"entryPoint":1456,"id":342,"parameterSlots":2,"returnSlots":0},"@supportsInterface_228":{"entryPoint":624,"id":228,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":1803,"id":2830,"parameterSlots":1,"returnSlots":1},"@unsafeMemoryAccess_2216":{"entryPoint":2308,"id":2216,"parameterSlots":2,"returnSlots":1},"@unsafeMemoryAccess_2242":{"entryPoint":2327,"id":2242,"parameterSlots":2,"returnSlots":1},"@uri_239":{"entryPoint":849,"id":239,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6573,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6002,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":6217,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5212,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6677,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6106,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":7077,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":5450,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4_fromMemory":{"entryPoint":8010,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":6282,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5263,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":7159,"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":6327,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr":{"entryPoint":7221,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bool":{"entryPoint":7097,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":5283,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_uint256":{"entryPoint":5751,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6722,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":5470,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4_fromMemory":{"entryPoint":8030,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":5564,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_uint256_to_t_uint256":{"entryPoint":6896,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":7461,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":6931,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5524,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":7866,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":5663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":6881,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5345,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":7599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed":{"entryPoint":7476,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":8073,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":7922,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7624,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":7023,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":7787,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5539,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":5719,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5360,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":7515,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":5929,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":5125,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":6530,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":5955,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":6155,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6866,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6840,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":7840,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":5607,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr":{"entryPoint":6919,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack":{"entryPoint":6850,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":7850,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":5617,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":7736,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":5173,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5513,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":5385,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5142,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5232,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":6203,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5633,"id":null,"parameterSlots":3,"returnSlots":0},"extract_byte_array_length":{"entryPoint":7413,"id":null,"parameterSlots":1,"returnSlots":1},"finalize_allocation":{"entryPoint":5880,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x11":{"entryPoint":7691,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":7368,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":7554,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":5835,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":5831,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":5998,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":6151,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":5138,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":5134,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":5647,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":5190,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":7055,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":5428,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5241,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:23542:64","nodeType":"YulBlock","src":"0:23542:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"379:81:64","nodeType":"YulBlock","src":"379:81:64","statements":[{"nativeSrc":"389:65:64","nodeType":"YulAssignment","src":"389:65:64","value":{"arguments":[{"name":"value","nativeSrc":"404:5:64","nodeType":"YulIdentifier","src":"404:5:64"},{"kind":"number","nativeSrc":"411:42:64","nodeType":"YulLiteral","src":"411:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:64","nodeType":"YulIdentifier","src":"400:3:64"},"nativeSrc":"400:54:64","nodeType":"YulFunctionCall","src":"400:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:64","nodeType":"YulIdentifier","src":"389:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:64","nodeType":"YulTypedName","src":"361:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:64","nodeType":"YulTypedName","src":"371:7:64","type":""}],"src":"334:126:64"},{"body":{"nativeSrc":"511:51:64","nodeType":"YulBlock","src":"511:51:64","statements":[{"nativeSrc":"521:35:64","nodeType":"YulAssignment","src":"521:35:64","value":{"arguments":[{"name":"value","nativeSrc":"550:5:64","nodeType":"YulIdentifier","src":"550:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:64","nodeType":"YulIdentifier","src":"532:17:64"},"nativeSrc":"532:24:64","nodeType":"YulFunctionCall","src":"532:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:64","nodeType":"YulIdentifier","src":"521:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:64","nodeType":"YulTypedName","src":"493:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:64","nodeType":"YulTypedName","src":"503:7:64","type":""}],"src":"466:96:64"},{"body":{"nativeSrc":"611:79:64","nodeType":"YulBlock","src":"611:79:64","statements":[{"body":{"nativeSrc":"668:16:64","nodeType":"YulBlock","src":"668:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:64","nodeType":"YulLiteral","src":"677:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:64","nodeType":"YulLiteral","src":"680:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:64","nodeType":"YulIdentifier","src":"670:6:64"},"nativeSrc":"670:12:64","nodeType":"YulFunctionCall","src":"670:12:64"},"nativeSrc":"670:12:64","nodeType":"YulExpressionStatement","src":"670:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:64","nodeType":"YulIdentifier","src":"634:5:64"},{"arguments":[{"name":"value","nativeSrc":"659:5:64","nodeType":"YulIdentifier","src":"659:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:64","nodeType":"YulIdentifier","src":"641:17:64"},"nativeSrc":"641:24:64","nodeType":"YulFunctionCall","src":"641:24:64"}],"functionName":{"name":"eq","nativeSrc":"631:2:64","nodeType":"YulIdentifier","src":"631:2:64"},"nativeSrc":"631:35:64","nodeType":"YulFunctionCall","src":"631:35:64"}],"functionName":{"name":"iszero","nativeSrc":"624:6:64","nodeType":"YulIdentifier","src":"624:6:64"},"nativeSrc":"624:43:64","nodeType":"YulFunctionCall","src":"624:43:64"},"nativeSrc":"621:63:64","nodeType":"YulIf","src":"621:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:64","nodeType":"YulTypedName","src":"604:5:64","type":""}],"src":"568:122:64"},{"body":{"nativeSrc":"748:87:64","nodeType":"YulBlock","src":"748:87:64","statements":[{"nativeSrc":"758:29:64","nodeType":"YulAssignment","src":"758:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"780:6:64","nodeType":"YulIdentifier","src":"780:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"767:12:64","nodeType":"YulIdentifier","src":"767:12:64"},"nativeSrc":"767:20:64","nodeType":"YulFunctionCall","src":"767:20:64"},"variableNames":[{"name":"value","nativeSrc":"758:5:64","nodeType":"YulIdentifier","src":"758:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"823:5:64","nodeType":"YulIdentifier","src":"823:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"796:26:64","nodeType":"YulIdentifier","src":"796:26:64"},"nativeSrc":"796:33:64","nodeType":"YulFunctionCall","src":"796:33:64"},"nativeSrc":"796:33:64","nodeType":"YulExpressionStatement","src":"796:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"696:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"726:6:64","nodeType":"YulTypedName","src":"726:6:64","type":""},{"name":"end","nativeSrc":"734:3:64","nodeType":"YulTypedName","src":"734:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"742:5:64","nodeType":"YulTypedName","src":"742:5:64","type":""}],"src":"696:139:64"},{"body":{"nativeSrc":"886:32:64","nodeType":"YulBlock","src":"886:32:64","statements":[{"nativeSrc":"896:16:64","nodeType":"YulAssignment","src":"896:16:64","value":{"name":"value","nativeSrc":"907:5:64","nodeType":"YulIdentifier","src":"907:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"896:7:64","nodeType":"YulIdentifier","src":"896:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"841:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"868:5:64","nodeType":"YulTypedName","src":"868:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"878:7:64","nodeType":"YulTypedName","src":"878:7:64","type":""}],"src":"841:77:64"},{"body":{"nativeSrc":"967:79:64","nodeType":"YulBlock","src":"967:79:64","statements":[{"body":{"nativeSrc":"1024:16:64","nodeType":"YulBlock","src":"1024:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1033:1:64","nodeType":"YulLiteral","src":"1033:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1036:1:64","nodeType":"YulLiteral","src":"1036:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1026:6:64","nodeType":"YulIdentifier","src":"1026:6:64"},"nativeSrc":"1026:12:64","nodeType":"YulFunctionCall","src":"1026:12:64"},"nativeSrc":"1026:12:64","nodeType":"YulExpressionStatement","src":"1026:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"990:5:64","nodeType":"YulIdentifier","src":"990:5:64"},{"arguments":[{"name":"value","nativeSrc":"1015:5:64","nodeType":"YulIdentifier","src":"1015:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"997:17:64","nodeType":"YulIdentifier","src":"997:17:64"},"nativeSrc":"997:24:64","nodeType":"YulFunctionCall","src":"997:24:64"}],"functionName":{"name":"eq","nativeSrc":"987:2:64","nodeType":"YulIdentifier","src":"987:2:64"},"nativeSrc":"987:35:64","nodeType":"YulFunctionCall","src":"987:35:64"}],"functionName":{"name":"iszero","nativeSrc":"980:6:64","nodeType":"YulIdentifier","src":"980:6:64"},"nativeSrc":"980:43:64","nodeType":"YulFunctionCall","src":"980:43:64"},"nativeSrc":"977:63:64","nodeType":"YulIf","src":"977:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"924:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"960:5:64","nodeType":"YulTypedName","src":"960:5:64","type":""}],"src":"924:122:64"},{"body":{"nativeSrc":"1104:87:64","nodeType":"YulBlock","src":"1104:87:64","statements":[{"nativeSrc":"1114:29:64","nodeType":"YulAssignment","src":"1114:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"1136:6:64","nodeType":"YulIdentifier","src":"1136:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"1123:12:64","nodeType":"YulIdentifier","src":"1123:12:64"},"nativeSrc":"1123:20:64","nodeType":"YulFunctionCall","src":"1123:20:64"},"variableNames":[{"name":"value","nativeSrc":"1114:5:64","nodeType":"YulIdentifier","src":"1114:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"1179:5:64","nodeType":"YulIdentifier","src":"1179:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"1152:26:64","nodeType":"YulIdentifier","src":"1152:26:64"},"nativeSrc":"1152:33:64","nodeType":"YulFunctionCall","src":"1152:33:64"},"nativeSrc":"1152:33:64","nodeType":"YulExpressionStatement","src":"1152:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"1052:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1082:6:64","nodeType":"YulTypedName","src":"1082:6:64","type":""},{"name":"end","nativeSrc":"1090:3:64","nodeType":"YulTypedName","src":"1090:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1098:5:64","nodeType":"YulTypedName","src":"1098:5:64","type":""}],"src":"1052:139:64"},{"body":{"nativeSrc":"1280:391:64","nodeType":"YulBlock","src":"1280:391:64","statements":[{"body":{"nativeSrc":"1326:83:64","nodeType":"YulBlock","src":"1326:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1328:77:64","nodeType":"YulIdentifier","src":"1328:77:64"},"nativeSrc":"1328:79:64","nodeType":"YulFunctionCall","src":"1328:79:64"},"nativeSrc":"1328:79:64","nodeType":"YulExpressionStatement","src":"1328:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"1301:7:64","nodeType":"YulIdentifier","src":"1301:7:64"},{"name":"headStart","nativeSrc":"1310:9:64","nodeType":"YulIdentifier","src":"1310:9:64"}],"functionName":{"name":"sub","nativeSrc":"1297:3:64","nodeType":"YulIdentifier","src":"1297:3:64"},"nativeSrc":"1297:23:64","nodeType":"YulFunctionCall","src":"1297:23:64"},{"kind":"number","nativeSrc":"1322:2:64","nodeType":"YulLiteral","src":"1322:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"1293:3:64","nodeType":"YulIdentifier","src":"1293:3:64"},"nativeSrc":"1293:32:64","nodeType":"YulFunctionCall","src":"1293:32:64"},"nativeSrc":"1290:119:64","nodeType":"YulIf","src":"1290:119:64"},{"nativeSrc":"1419:117:64","nodeType":"YulBlock","src":"1419:117:64","statements":[{"nativeSrc":"1434:15:64","nodeType":"YulVariableDeclaration","src":"1434:15:64","value":{"kind":"number","nativeSrc":"1448:1:64","nodeType":"YulLiteral","src":"1448:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"1438:6:64","nodeType":"YulTypedName","src":"1438:6:64","type":""}]},{"nativeSrc":"1463:63:64","nodeType":"YulAssignment","src":"1463:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1498:9:64","nodeType":"YulIdentifier","src":"1498:9:64"},{"name":"offset","nativeSrc":"1509:6:64","nodeType":"YulIdentifier","src":"1509:6:64"}],"functionName":{"name":"add","nativeSrc":"1494:3:64","nodeType":"YulIdentifier","src":"1494:3:64"},"nativeSrc":"1494:22:64","nodeType":"YulFunctionCall","src":"1494:22:64"},{"name":"dataEnd","nativeSrc":"1518:7:64","nodeType":"YulIdentifier","src":"1518:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"1473:20:64","nodeType":"YulIdentifier","src":"1473:20:64"},"nativeSrc":"1473:53:64","nodeType":"YulFunctionCall","src":"1473:53:64"},"variableNames":[{"name":"value0","nativeSrc":"1463:6:64","nodeType":"YulIdentifier","src":"1463:6:64"}]}]},{"nativeSrc":"1546:118:64","nodeType":"YulBlock","src":"1546:118:64","statements":[{"nativeSrc":"1561:16:64","nodeType":"YulVariableDeclaration","src":"1561:16:64","value":{"kind":"number","nativeSrc":"1575:2:64","nodeType":"YulLiteral","src":"1575:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"1565:6:64","nodeType":"YulTypedName","src":"1565:6:64","type":""}]},{"nativeSrc":"1591:63:64","nodeType":"YulAssignment","src":"1591:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1626:9:64","nodeType":"YulIdentifier","src":"1626:9:64"},{"name":"offset","nativeSrc":"1637:6:64","nodeType":"YulIdentifier","src":"1637:6:64"}],"functionName":{"name":"add","nativeSrc":"1622:3:64","nodeType":"YulIdentifier","src":"1622:3:64"},"nativeSrc":"1622:22:64","nodeType":"YulFunctionCall","src":"1622:22:64"},{"name":"dataEnd","nativeSrc":"1646:7:64","nodeType":"YulIdentifier","src":"1646:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"1601:20:64","nodeType":"YulIdentifier","src":"1601:20:64"},"nativeSrc":"1601:53:64","nodeType":"YulFunctionCall","src":"1601:53:64"},"variableNames":[{"name":"value1","nativeSrc":"1591:6:64","nodeType":"YulIdentifier","src":"1591:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"1197:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1242:9:64","nodeType":"YulTypedName","src":"1242:9:64","type":""},{"name":"dataEnd","nativeSrc":"1253:7:64","nodeType":"YulTypedName","src":"1253:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"1265:6:64","nodeType":"YulTypedName","src":"1265:6:64","type":""},{"name":"value1","nativeSrc":"1273:6:64","nodeType":"YulTypedName","src":"1273:6:64","type":""}],"src":"1197:474:64"},{"body":{"nativeSrc":"1742:53:64","nodeType":"YulBlock","src":"1742:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1759:3:64","nodeType":"YulIdentifier","src":"1759:3:64"},{"arguments":[{"name":"value","nativeSrc":"1782:5:64","nodeType":"YulIdentifier","src":"1782:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"1764:17:64","nodeType":"YulIdentifier","src":"1764:17:64"},"nativeSrc":"1764:24:64","nodeType":"YulFunctionCall","src":"1764:24:64"}],"functionName":{"name":"mstore","nativeSrc":"1752:6:64","nodeType":"YulIdentifier","src":"1752:6:64"},"nativeSrc":"1752:37:64","nodeType":"YulFunctionCall","src":"1752:37:64"},"nativeSrc":"1752:37:64","nodeType":"YulExpressionStatement","src":"1752:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1677:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1730:5:64","nodeType":"YulTypedName","src":"1730:5:64","type":""},{"name":"pos","nativeSrc":"1737:3:64","nodeType":"YulTypedName","src":"1737:3:64","type":""}],"src":"1677:118:64"},{"body":{"nativeSrc":"1899:124:64","nodeType":"YulBlock","src":"1899:124:64","statements":[{"nativeSrc":"1909:26:64","nodeType":"YulAssignment","src":"1909:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1921:9:64","nodeType":"YulIdentifier","src":"1921:9:64"},{"kind":"number","nativeSrc":"1932:2:64","nodeType":"YulLiteral","src":"1932:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1917:3:64","nodeType":"YulIdentifier","src":"1917:3:64"},"nativeSrc":"1917:18:64","nodeType":"YulFunctionCall","src":"1917:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1909:4:64","nodeType":"YulIdentifier","src":"1909:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1989:6:64","nodeType":"YulIdentifier","src":"1989:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"2002:9:64","nodeType":"YulIdentifier","src":"2002:9:64"},{"kind":"number","nativeSrc":"2013:1:64","nodeType":"YulLiteral","src":"2013:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1998:3:64","nodeType":"YulIdentifier","src":"1998:3:64"},"nativeSrc":"1998:17:64","nodeType":"YulFunctionCall","src":"1998:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"1945:43:64","nodeType":"YulIdentifier","src":"1945:43:64"},"nativeSrc":"1945:71:64","nodeType":"YulFunctionCall","src":"1945:71:64"},"nativeSrc":"1945:71:64","nodeType":"YulExpressionStatement","src":"1945:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"1801:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1871:9:64","nodeType":"YulTypedName","src":"1871:9:64","type":""},{"name":"value0","nativeSrc":"1883:6:64","nodeType":"YulTypedName","src":"1883:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1894:4:64","nodeType":"YulTypedName","src":"1894:4:64","type":""}],"src":"1801:222:64"},{"body":{"nativeSrc":"2073:105:64","nodeType":"YulBlock","src":"2073:105:64","statements":[{"nativeSrc":"2083:89:64","nodeType":"YulAssignment","src":"2083:89:64","value":{"arguments":[{"name":"value","nativeSrc":"2098:5:64","nodeType":"YulIdentifier","src":"2098:5:64"},{"kind":"number","nativeSrc":"2105:66:64","nodeType":"YulLiteral","src":"2105:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"2094:3:64","nodeType":"YulIdentifier","src":"2094:3:64"},"nativeSrc":"2094:78:64","nodeType":"YulFunctionCall","src":"2094:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2083:7:64","nodeType":"YulIdentifier","src":"2083:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"2029:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2055:5:64","nodeType":"YulTypedName","src":"2055:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2065:7:64","nodeType":"YulTypedName","src":"2065:7:64","type":""}],"src":"2029:149:64"},{"body":{"nativeSrc":"2226:78:64","nodeType":"YulBlock","src":"2226:78:64","statements":[{"body":{"nativeSrc":"2282:16:64","nodeType":"YulBlock","src":"2282:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2291:1:64","nodeType":"YulLiteral","src":"2291:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2294:1:64","nodeType":"YulLiteral","src":"2294:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2284:6:64","nodeType":"YulIdentifier","src":"2284:6:64"},"nativeSrc":"2284:12:64","nodeType":"YulFunctionCall","src":"2284:12:64"},"nativeSrc":"2284:12:64","nodeType":"YulExpressionStatement","src":"2284:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2249:5:64","nodeType":"YulIdentifier","src":"2249:5:64"},{"arguments":[{"name":"value","nativeSrc":"2273:5:64","nodeType":"YulIdentifier","src":"2273:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"2256:16:64","nodeType":"YulIdentifier","src":"2256:16:64"},"nativeSrc":"2256:23:64","nodeType":"YulFunctionCall","src":"2256:23:64"}],"functionName":{"name":"eq","nativeSrc":"2246:2:64","nodeType":"YulIdentifier","src":"2246:2:64"},"nativeSrc":"2246:34:64","nodeType":"YulFunctionCall","src":"2246:34:64"}],"functionName":{"name":"iszero","nativeSrc":"2239:6:64","nodeType":"YulIdentifier","src":"2239:6:64"},"nativeSrc":"2239:42:64","nodeType":"YulFunctionCall","src":"2239:42:64"},"nativeSrc":"2236:62:64","nodeType":"YulIf","src":"2236:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"2184:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2219:5:64","nodeType":"YulTypedName","src":"2219:5:64","type":""}],"src":"2184:120:64"},{"body":{"nativeSrc":"2361:86:64","nodeType":"YulBlock","src":"2361:86:64","statements":[{"nativeSrc":"2371:29:64","nodeType":"YulAssignment","src":"2371:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2393:6:64","nodeType":"YulIdentifier","src":"2393:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2380:12:64","nodeType":"YulIdentifier","src":"2380:12:64"},"nativeSrc":"2380:20:64","nodeType":"YulFunctionCall","src":"2380:20:64"},"variableNames":[{"name":"value","nativeSrc":"2371:5:64","nodeType":"YulIdentifier","src":"2371:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2435:5:64","nodeType":"YulIdentifier","src":"2435:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"2409:25:64","nodeType":"YulIdentifier","src":"2409:25:64"},"nativeSrc":"2409:32:64","nodeType":"YulFunctionCall","src":"2409:32:64"},"nativeSrc":"2409:32:64","nodeType":"YulExpressionStatement","src":"2409:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"2310:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2339:6:64","nodeType":"YulTypedName","src":"2339:6:64","type":""},{"name":"end","nativeSrc":"2347:3:64","nodeType":"YulTypedName","src":"2347:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2355:5:64","nodeType":"YulTypedName","src":"2355:5:64","type":""}],"src":"2310:137:64"},{"body":{"nativeSrc":"2518:262:64","nodeType":"YulBlock","src":"2518:262:64","statements":[{"body":{"nativeSrc":"2564:83:64","nodeType":"YulBlock","src":"2564:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2566:77:64","nodeType":"YulIdentifier","src":"2566:77:64"},"nativeSrc":"2566:79:64","nodeType":"YulFunctionCall","src":"2566:79:64"},"nativeSrc":"2566:79:64","nodeType":"YulExpressionStatement","src":"2566:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2539:7:64","nodeType":"YulIdentifier","src":"2539:7:64"},{"name":"headStart","nativeSrc":"2548:9:64","nodeType":"YulIdentifier","src":"2548:9:64"}],"functionName":{"name":"sub","nativeSrc":"2535:3:64","nodeType":"YulIdentifier","src":"2535:3:64"},"nativeSrc":"2535:23:64","nodeType":"YulFunctionCall","src":"2535:23:64"},{"kind":"number","nativeSrc":"2560:2:64","nodeType":"YulLiteral","src":"2560:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"2531:3:64","nodeType":"YulIdentifier","src":"2531:3:64"},"nativeSrc":"2531:32:64","nodeType":"YulFunctionCall","src":"2531:32:64"},"nativeSrc":"2528:119:64","nodeType":"YulIf","src":"2528:119:64"},{"nativeSrc":"2657:116:64","nodeType":"YulBlock","src":"2657:116:64","statements":[{"nativeSrc":"2672:15:64","nodeType":"YulVariableDeclaration","src":"2672:15:64","value":{"kind":"number","nativeSrc":"2686:1:64","nodeType":"YulLiteral","src":"2686:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2676:6:64","nodeType":"YulTypedName","src":"2676:6:64","type":""}]},{"nativeSrc":"2701:62:64","nodeType":"YulAssignment","src":"2701:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2735:9:64","nodeType":"YulIdentifier","src":"2735:9:64"},{"name":"offset","nativeSrc":"2746:6:64","nodeType":"YulIdentifier","src":"2746:6:64"}],"functionName":{"name":"add","nativeSrc":"2731:3:64","nodeType":"YulIdentifier","src":"2731:3:64"},"nativeSrc":"2731:22:64","nodeType":"YulFunctionCall","src":"2731:22:64"},{"name":"dataEnd","nativeSrc":"2755:7:64","nodeType":"YulIdentifier","src":"2755:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"2711:19:64","nodeType":"YulIdentifier","src":"2711:19:64"},"nativeSrc":"2711:52:64","nodeType":"YulFunctionCall","src":"2711:52:64"},"variableNames":[{"name":"value0","nativeSrc":"2701:6:64","nodeType":"YulIdentifier","src":"2701:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"2453:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2488:9:64","nodeType":"YulTypedName","src":"2488:9:64","type":""},{"name":"dataEnd","nativeSrc":"2499:7:64","nodeType":"YulTypedName","src":"2499:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2511:6:64","nodeType":"YulTypedName","src":"2511:6:64","type":""}],"src":"2453:327:64"},{"body":{"nativeSrc":"2828:48:64","nodeType":"YulBlock","src":"2828:48:64","statements":[{"nativeSrc":"2838:32:64","nodeType":"YulAssignment","src":"2838:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2863:5:64","nodeType":"YulIdentifier","src":"2863:5:64"}],"functionName":{"name":"iszero","nativeSrc":"2856:6:64","nodeType":"YulIdentifier","src":"2856:6:64"},"nativeSrc":"2856:13:64","nodeType":"YulFunctionCall","src":"2856:13:64"}],"functionName":{"name":"iszero","nativeSrc":"2849:6:64","nodeType":"YulIdentifier","src":"2849:6:64"},"nativeSrc":"2849:21:64","nodeType":"YulFunctionCall","src":"2849:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2838:7:64","nodeType":"YulIdentifier","src":"2838:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"2786:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2810:5:64","nodeType":"YulTypedName","src":"2810:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2820:7:64","nodeType":"YulTypedName","src":"2820:7:64","type":""}],"src":"2786:90:64"},{"body":{"nativeSrc":"2941:50:64","nodeType":"YulBlock","src":"2941:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"2958:3:64","nodeType":"YulIdentifier","src":"2958:3:64"},{"arguments":[{"name":"value","nativeSrc":"2978:5:64","nodeType":"YulIdentifier","src":"2978:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2963:14:64","nodeType":"YulIdentifier","src":"2963:14:64"},"nativeSrc":"2963:21:64","nodeType":"YulFunctionCall","src":"2963:21:64"}],"functionName":{"name":"mstore","nativeSrc":"2951:6:64","nodeType":"YulIdentifier","src":"2951:6:64"},"nativeSrc":"2951:34:64","nodeType":"YulFunctionCall","src":"2951:34:64"},"nativeSrc":"2951:34:64","nodeType":"YulExpressionStatement","src":"2951:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"2882:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2929:5:64","nodeType":"YulTypedName","src":"2929:5:64","type":""},{"name":"pos","nativeSrc":"2936:3:64","nodeType":"YulTypedName","src":"2936:3:64","type":""}],"src":"2882:109:64"},{"body":{"nativeSrc":"3089:118:64","nodeType":"YulBlock","src":"3089:118:64","statements":[{"nativeSrc":"3099:26:64","nodeType":"YulAssignment","src":"3099:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3111:9:64","nodeType":"YulIdentifier","src":"3111:9:64"},{"kind":"number","nativeSrc":"3122:2:64","nodeType":"YulLiteral","src":"3122:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3107:3:64","nodeType":"YulIdentifier","src":"3107:3:64"},"nativeSrc":"3107:18:64","nodeType":"YulFunctionCall","src":"3107:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3099:4:64","nodeType":"YulIdentifier","src":"3099:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3173:6:64","nodeType":"YulIdentifier","src":"3173:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3186:9:64","nodeType":"YulIdentifier","src":"3186:9:64"},{"kind":"number","nativeSrc":"3197:1:64","nodeType":"YulLiteral","src":"3197:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3182:3:64","nodeType":"YulIdentifier","src":"3182:3:64"},"nativeSrc":"3182:17:64","nodeType":"YulFunctionCall","src":"3182:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3135:37:64","nodeType":"YulIdentifier","src":"3135:37:64"},"nativeSrc":"3135:65:64","nodeType":"YulFunctionCall","src":"3135:65:64"},"nativeSrc":"3135:65:64","nodeType":"YulExpressionStatement","src":"3135:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"2997:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3061:9:64","nodeType":"YulTypedName","src":"3061:9:64","type":""},{"name":"value0","nativeSrc":"3073:6:64","nodeType":"YulTypedName","src":"3073:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3084:4:64","nodeType":"YulTypedName","src":"3084:4:64","type":""}],"src":"2997:210:64"},{"body":{"nativeSrc":"3279:263:64","nodeType":"YulBlock","src":"3279:263:64","statements":[{"body":{"nativeSrc":"3325:83:64","nodeType":"YulBlock","src":"3325:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3327:77:64","nodeType":"YulIdentifier","src":"3327:77:64"},"nativeSrc":"3327:79:64","nodeType":"YulFunctionCall","src":"3327:79:64"},"nativeSrc":"3327:79:64","nodeType":"YulExpressionStatement","src":"3327:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3300:7:64","nodeType":"YulIdentifier","src":"3300:7:64"},{"name":"headStart","nativeSrc":"3309:9:64","nodeType":"YulIdentifier","src":"3309:9:64"}],"functionName":{"name":"sub","nativeSrc":"3296:3:64","nodeType":"YulIdentifier","src":"3296:3:64"},"nativeSrc":"3296:23:64","nodeType":"YulFunctionCall","src":"3296:23:64"},{"kind":"number","nativeSrc":"3321:2:64","nodeType":"YulLiteral","src":"3321:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3292:3:64","nodeType":"YulIdentifier","src":"3292:3:64"},"nativeSrc":"3292:32:64","nodeType":"YulFunctionCall","src":"3292:32:64"},"nativeSrc":"3289:119:64","nodeType":"YulIf","src":"3289:119:64"},{"nativeSrc":"3418:117:64","nodeType":"YulBlock","src":"3418:117:64","statements":[{"nativeSrc":"3433:15:64","nodeType":"YulVariableDeclaration","src":"3433:15:64","value":{"kind":"number","nativeSrc":"3447:1:64","nodeType":"YulLiteral","src":"3447:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3437:6:64","nodeType":"YulTypedName","src":"3437:6:64","type":""}]},{"nativeSrc":"3462:63:64","nodeType":"YulAssignment","src":"3462:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3497:9:64","nodeType":"YulIdentifier","src":"3497:9:64"},{"name":"offset","nativeSrc":"3508:6:64","nodeType":"YulIdentifier","src":"3508:6:64"}],"functionName":{"name":"add","nativeSrc":"3493:3:64","nodeType":"YulIdentifier","src":"3493:3:64"},"nativeSrc":"3493:22:64","nodeType":"YulFunctionCall","src":"3493:22:64"},{"name":"dataEnd","nativeSrc":"3517:7:64","nodeType":"YulIdentifier","src":"3517:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3472:20:64","nodeType":"YulIdentifier","src":"3472:20:64"},"nativeSrc":"3472:53:64","nodeType":"YulFunctionCall","src":"3472:53:64"},"variableNames":[{"name":"value0","nativeSrc":"3462:6:64","nodeType":"YulIdentifier","src":"3462:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3213:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3249:9:64","nodeType":"YulTypedName","src":"3249:9:64","type":""},{"name":"dataEnd","nativeSrc":"3260:7:64","nodeType":"YulTypedName","src":"3260:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3272:6:64","nodeType":"YulTypedName","src":"3272:6:64","type":""}],"src":"3213:329:64"},{"body":{"nativeSrc":"3607:40:64","nodeType":"YulBlock","src":"3607:40:64","statements":[{"nativeSrc":"3618:22:64","nodeType":"YulAssignment","src":"3618:22:64","value":{"arguments":[{"name":"value","nativeSrc":"3634:5:64","nodeType":"YulIdentifier","src":"3634:5:64"}],"functionName":{"name":"mload","nativeSrc":"3628:5:64","nodeType":"YulIdentifier","src":"3628:5:64"},"nativeSrc":"3628:12:64","nodeType":"YulFunctionCall","src":"3628:12:64"},"variableNames":[{"name":"length","nativeSrc":"3618:6:64","nodeType":"YulIdentifier","src":"3618:6:64"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"3548:99:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3590:5:64","nodeType":"YulTypedName","src":"3590:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"3600:6:64","nodeType":"YulTypedName","src":"3600:6:64","type":""}],"src":"3548:99:64"},{"body":{"nativeSrc":"3749:73:64","nodeType":"YulBlock","src":"3749:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3766:3:64","nodeType":"YulIdentifier","src":"3766:3:64"},{"name":"length","nativeSrc":"3771:6:64","nodeType":"YulIdentifier","src":"3771:6:64"}],"functionName":{"name":"mstore","nativeSrc":"3759:6:64","nodeType":"YulIdentifier","src":"3759:6:64"},"nativeSrc":"3759:19:64","nodeType":"YulFunctionCall","src":"3759:19:64"},"nativeSrc":"3759:19:64","nodeType":"YulExpressionStatement","src":"3759:19:64"},{"nativeSrc":"3787:29:64","nodeType":"YulAssignment","src":"3787:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"3806:3:64","nodeType":"YulIdentifier","src":"3806:3:64"},{"kind":"number","nativeSrc":"3811:4:64","nodeType":"YulLiteral","src":"3811:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3802:3:64","nodeType":"YulIdentifier","src":"3802:3:64"},"nativeSrc":"3802:14:64","nodeType":"YulFunctionCall","src":"3802:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"3787:11:64","nodeType":"YulIdentifier","src":"3787:11:64"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"3653:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"3721:3:64","nodeType":"YulTypedName","src":"3721:3:64","type":""},{"name":"length","nativeSrc":"3726:6:64","nodeType":"YulTypedName","src":"3726:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"3737:11:64","nodeType":"YulTypedName","src":"3737:11:64","type":""}],"src":"3653:169:64"},{"body":{"nativeSrc":"3890:77:64","nodeType":"YulBlock","src":"3890:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3907:3:64","nodeType":"YulIdentifier","src":"3907:3:64"},{"name":"src","nativeSrc":"3912:3:64","nodeType":"YulIdentifier","src":"3912:3:64"},{"name":"length","nativeSrc":"3917:6:64","nodeType":"YulIdentifier","src":"3917:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"3901:5:64","nodeType":"YulIdentifier","src":"3901:5:64"},"nativeSrc":"3901:23:64","nodeType":"YulFunctionCall","src":"3901:23:64"},"nativeSrc":"3901:23:64","nodeType":"YulExpressionStatement","src":"3901:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3944:3:64","nodeType":"YulIdentifier","src":"3944:3:64"},{"name":"length","nativeSrc":"3949:6:64","nodeType":"YulIdentifier","src":"3949:6:64"}],"functionName":{"name":"add","nativeSrc":"3940:3:64","nodeType":"YulIdentifier","src":"3940:3:64"},"nativeSrc":"3940:16:64","nodeType":"YulFunctionCall","src":"3940:16:64"},{"kind":"number","nativeSrc":"3958:1:64","nodeType":"YulLiteral","src":"3958:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3933:6:64","nodeType":"YulIdentifier","src":"3933:6:64"},"nativeSrc":"3933:27:64","nodeType":"YulFunctionCall","src":"3933:27:64"},"nativeSrc":"3933:27:64","nodeType":"YulExpressionStatement","src":"3933:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3828:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3872:3:64","nodeType":"YulTypedName","src":"3872:3:64","type":""},{"name":"dst","nativeSrc":"3877:3:64","nodeType":"YulTypedName","src":"3877:3:64","type":""},{"name":"length","nativeSrc":"3882:6:64","nodeType":"YulTypedName","src":"3882:6:64","type":""}],"src":"3828:139:64"},{"body":{"nativeSrc":"4021:54:64","nodeType":"YulBlock","src":"4021:54:64","statements":[{"nativeSrc":"4031:38:64","nodeType":"YulAssignment","src":"4031:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4049:5:64","nodeType":"YulIdentifier","src":"4049:5:64"},{"kind":"number","nativeSrc":"4056:2:64","nodeType":"YulLiteral","src":"4056:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"4045:3:64","nodeType":"YulIdentifier","src":"4045:3:64"},"nativeSrc":"4045:14:64","nodeType":"YulFunctionCall","src":"4045:14:64"},{"arguments":[{"kind":"number","nativeSrc":"4065:2:64","nodeType":"YulLiteral","src":"4065:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"4061:3:64","nodeType":"YulIdentifier","src":"4061:3:64"},"nativeSrc":"4061:7:64","nodeType":"YulFunctionCall","src":"4061:7:64"}],"functionName":{"name":"and","nativeSrc":"4041:3:64","nodeType":"YulIdentifier","src":"4041:3:64"},"nativeSrc":"4041:28:64","nodeType":"YulFunctionCall","src":"4041:28:64"},"variableNames":[{"name":"result","nativeSrc":"4031:6:64","nodeType":"YulIdentifier","src":"4031:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"3973:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4004:5:64","nodeType":"YulTypedName","src":"4004:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"4014:6:64","nodeType":"YulTypedName","src":"4014:6:64","type":""}],"src":"3973:102:64"},{"body":{"nativeSrc":"4173:285:64","nodeType":"YulBlock","src":"4173:285:64","statements":[{"nativeSrc":"4183:53:64","nodeType":"YulVariableDeclaration","src":"4183:53:64","value":{"arguments":[{"name":"value","nativeSrc":"4230:5:64","nodeType":"YulIdentifier","src":"4230:5:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"4197:32:64","nodeType":"YulIdentifier","src":"4197:32:64"},"nativeSrc":"4197:39:64","nodeType":"YulFunctionCall","src":"4197:39:64"},"variables":[{"name":"length","nativeSrc":"4187:6:64","nodeType":"YulTypedName","src":"4187:6:64","type":""}]},{"nativeSrc":"4245:78:64","nodeType":"YulAssignment","src":"4245:78:64","value":{"arguments":[{"name":"pos","nativeSrc":"4311:3:64","nodeType":"YulIdentifier","src":"4311:3:64"},{"name":"length","nativeSrc":"4316:6:64","nodeType":"YulIdentifier","src":"4316:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"4252:58:64","nodeType":"YulIdentifier","src":"4252:58:64"},"nativeSrc":"4252:71:64","nodeType":"YulFunctionCall","src":"4252:71:64"},"variableNames":[{"name":"pos","nativeSrc":"4245:3:64","nodeType":"YulIdentifier","src":"4245:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4371:5:64","nodeType":"YulIdentifier","src":"4371:5:64"},{"kind":"number","nativeSrc":"4378:4:64","nodeType":"YulLiteral","src":"4378:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4367:3:64","nodeType":"YulIdentifier","src":"4367:3:64"},"nativeSrc":"4367:16:64","nodeType":"YulFunctionCall","src":"4367:16:64"},{"name":"pos","nativeSrc":"4385:3:64","nodeType":"YulIdentifier","src":"4385:3:64"},{"name":"length","nativeSrc":"4390:6:64","nodeType":"YulIdentifier","src":"4390:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"4332:34:64","nodeType":"YulIdentifier","src":"4332:34:64"},"nativeSrc":"4332:65:64","nodeType":"YulFunctionCall","src":"4332:65:64"},"nativeSrc":"4332:65:64","nodeType":"YulExpressionStatement","src":"4332:65:64"},{"nativeSrc":"4406:46:64","nodeType":"YulAssignment","src":"4406:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"4417:3:64","nodeType":"YulIdentifier","src":"4417:3:64"},{"arguments":[{"name":"length","nativeSrc":"4444:6:64","nodeType":"YulIdentifier","src":"4444:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"4422:21:64","nodeType":"YulIdentifier","src":"4422:21:64"},"nativeSrc":"4422:29:64","nodeType":"YulFunctionCall","src":"4422:29:64"}],"functionName":{"name":"add","nativeSrc":"4413:3:64","nodeType":"YulIdentifier","src":"4413:3:64"},"nativeSrc":"4413:39:64","nodeType":"YulFunctionCall","src":"4413:39:64"},"variableNames":[{"name":"end","nativeSrc":"4406:3:64","nodeType":"YulIdentifier","src":"4406:3:64"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4081:377:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4154:5:64","nodeType":"YulTypedName","src":"4154:5:64","type":""},{"name":"pos","nativeSrc":"4161:3:64","nodeType":"YulTypedName","src":"4161:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"4169:3:64","nodeType":"YulTypedName","src":"4169:3:64","type":""}],"src":"4081:377:64"},{"body":{"nativeSrc":"4582:195:64","nodeType":"YulBlock","src":"4582:195:64","statements":[{"nativeSrc":"4592:26:64","nodeType":"YulAssignment","src":"4592:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4604:9:64","nodeType":"YulIdentifier","src":"4604:9:64"},{"kind":"number","nativeSrc":"4615:2:64","nodeType":"YulLiteral","src":"4615:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4600:3:64","nodeType":"YulIdentifier","src":"4600:3:64"},"nativeSrc":"4600:18:64","nodeType":"YulFunctionCall","src":"4600:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4592:4:64","nodeType":"YulIdentifier","src":"4592:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4639:9:64","nodeType":"YulIdentifier","src":"4639:9:64"},{"kind":"number","nativeSrc":"4650:1:64","nodeType":"YulLiteral","src":"4650:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4635:3:64","nodeType":"YulIdentifier","src":"4635:3:64"},"nativeSrc":"4635:17:64","nodeType":"YulFunctionCall","src":"4635:17:64"},{"arguments":[{"name":"tail","nativeSrc":"4658:4:64","nodeType":"YulIdentifier","src":"4658:4:64"},{"name":"headStart","nativeSrc":"4664:9:64","nodeType":"YulIdentifier","src":"4664:9:64"}],"functionName":{"name":"sub","nativeSrc":"4654:3:64","nodeType":"YulIdentifier","src":"4654:3:64"},"nativeSrc":"4654:20:64","nodeType":"YulFunctionCall","src":"4654:20:64"}],"functionName":{"name":"mstore","nativeSrc":"4628:6:64","nodeType":"YulIdentifier","src":"4628:6:64"},"nativeSrc":"4628:47:64","nodeType":"YulFunctionCall","src":"4628:47:64"},"nativeSrc":"4628:47:64","nodeType":"YulExpressionStatement","src":"4628:47:64"},{"nativeSrc":"4684:86:64","nodeType":"YulAssignment","src":"4684:86:64","value":{"arguments":[{"name":"value0","nativeSrc":"4756:6:64","nodeType":"YulIdentifier","src":"4756:6:64"},{"name":"tail","nativeSrc":"4765:4:64","nodeType":"YulIdentifier","src":"4765:4:64"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"4692:63:64","nodeType":"YulIdentifier","src":"4692:63:64"},"nativeSrc":"4692:78:64","nodeType":"YulFunctionCall","src":"4692:78:64"},"variableNames":[{"name":"tail","nativeSrc":"4684:4:64","nodeType":"YulIdentifier","src":"4684:4:64"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"4464:313:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4554:9:64","nodeType":"YulTypedName","src":"4554:9:64","type":""},{"name":"value0","nativeSrc":"4566:6:64","nodeType":"YulTypedName","src":"4566:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4577:4:64","nodeType":"YulTypedName","src":"4577:4:64","type":""}],"src":"4464:313:64"},{"body":{"nativeSrc":"4883:519:64","nodeType":"YulBlock","src":"4883:519:64","statements":[{"body":{"nativeSrc":"4929:83:64","nodeType":"YulBlock","src":"4929:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4931:77:64","nodeType":"YulIdentifier","src":"4931:77:64"},"nativeSrc":"4931:79:64","nodeType":"YulFunctionCall","src":"4931:79:64"},"nativeSrc":"4931:79:64","nodeType":"YulExpressionStatement","src":"4931:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4904:7:64","nodeType":"YulIdentifier","src":"4904:7:64"},{"name":"headStart","nativeSrc":"4913:9:64","nodeType":"YulIdentifier","src":"4913:9:64"}],"functionName":{"name":"sub","nativeSrc":"4900:3:64","nodeType":"YulIdentifier","src":"4900:3:64"},"nativeSrc":"4900:23:64","nodeType":"YulFunctionCall","src":"4900:23:64"},{"kind":"number","nativeSrc":"4925:2:64","nodeType":"YulLiteral","src":"4925:2:64","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4896:3:64","nodeType":"YulIdentifier","src":"4896:3:64"},"nativeSrc":"4896:32:64","nodeType":"YulFunctionCall","src":"4896:32:64"},"nativeSrc":"4893:119:64","nodeType":"YulIf","src":"4893:119:64"},{"nativeSrc":"5022:117:64","nodeType":"YulBlock","src":"5022:117:64","statements":[{"nativeSrc":"5037:15:64","nodeType":"YulVariableDeclaration","src":"5037:15:64","value":{"kind":"number","nativeSrc":"5051:1:64","nodeType":"YulLiteral","src":"5051:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5041:6:64","nodeType":"YulTypedName","src":"5041:6:64","type":""}]},{"nativeSrc":"5066:63:64","nodeType":"YulAssignment","src":"5066:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5101:9:64","nodeType":"YulIdentifier","src":"5101:9:64"},{"name":"offset","nativeSrc":"5112:6:64","nodeType":"YulIdentifier","src":"5112:6:64"}],"functionName":{"name":"add","nativeSrc":"5097:3:64","nodeType":"YulIdentifier","src":"5097:3:64"},"nativeSrc":"5097:22:64","nodeType":"YulFunctionCall","src":"5097:22:64"},{"name":"dataEnd","nativeSrc":"5121:7:64","nodeType":"YulIdentifier","src":"5121:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5076:20:64","nodeType":"YulIdentifier","src":"5076:20:64"},"nativeSrc":"5076:53:64","nodeType":"YulFunctionCall","src":"5076:53:64"},"variableNames":[{"name":"value0","nativeSrc":"5066:6:64","nodeType":"YulIdentifier","src":"5066:6:64"}]}]},{"nativeSrc":"5149:118:64","nodeType":"YulBlock","src":"5149:118:64","statements":[{"nativeSrc":"5164:16:64","nodeType":"YulVariableDeclaration","src":"5164:16:64","value":{"kind":"number","nativeSrc":"5178:2:64","nodeType":"YulLiteral","src":"5178:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5168:6:64","nodeType":"YulTypedName","src":"5168:6:64","type":""}]},{"nativeSrc":"5194:63:64","nodeType":"YulAssignment","src":"5194:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5229:9:64","nodeType":"YulIdentifier","src":"5229:9:64"},{"name":"offset","nativeSrc":"5240:6:64","nodeType":"YulIdentifier","src":"5240:6:64"}],"functionName":{"name":"add","nativeSrc":"5225:3:64","nodeType":"YulIdentifier","src":"5225:3:64"},"nativeSrc":"5225:22:64","nodeType":"YulFunctionCall","src":"5225:22:64"},{"name":"dataEnd","nativeSrc":"5249:7:64","nodeType":"YulIdentifier","src":"5249:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5204:20:64","nodeType":"YulIdentifier","src":"5204:20:64"},"nativeSrc":"5204:53:64","nodeType":"YulFunctionCall","src":"5204:53:64"},"variableNames":[{"name":"value1","nativeSrc":"5194:6:64","nodeType":"YulIdentifier","src":"5194:6:64"}]}]},{"nativeSrc":"5277:118:64","nodeType":"YulBlock","src":"5277:118:64","statements":[{"nativeSrc":"5292:16:64","nodeType":"YulVariableDeclaration","src":"5292:16:64","value":{"kind":"number","nativeSrc":"5306:2:64","nodeType":"YulLiteral","src":"5306:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5296:6:64","nodeType":"YulTypedName","src":"5296:6:64","type":""}]},{"nativeSrc":"5322:63:64","nodeType":"YulAssignment","src":"5322:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5357:9:64","nodeType":"YulIdentifier","src":"5357:9:64"},{"name":"offset","nativeSrc":"5368:6:64","nodeType":"YulIdentifier","src":"5368:6:64"}],"functionName":{"name":"add","nativeSrc":"5353:3:64","nodeType":"YulIdentifier","src":"5353:3:64"},"nativeSrc":"5353:22:64","nodeType":"YulFunctionCall","src":"5353:22:64"},{"name":"dataEnd","nativeSrc":"5377:7:64","nodeType":"YulIdentifier","src":"5377:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5332:20:64","nodeType":"YulIdentifier","src":"5332:20:64"},"nativeSrc":"5332:53:64","nodeType":"YulFunctionCall","src":"5332:53:64"},"variableNames":[{"name":"value2","nativeSrc":"5322:6:64","nodeType":"YulIdentifier","src":"5322:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256","nativeSrc":"4783:619:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4837:9:64","nodeType":"YulTypedName","src":"4837:9:64","type":""},{"name":"dataEnd","nativeSrc":"4848:7:64","nodeType":"YulTypedName","src":"4848:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4860:6:64","nodeType":"YulTypedName","src":"4860:6:64","type":""},{"name":"value1","nativeSrc":"4868:6:64","nodeType":"YulTypedName","src":"4868:6:64","type":""},{"name":"value2","nativeSrc":"4876:6:64","nodeType":"YulTypedName","src":"4876:6:64","type":""}],"src":"4783:619:64"},{"body":{"nativeSrc":"5497:28:64","nodeType":"YulBlock","src":"5497:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5514:1:64","nodeType":"YulLiteral","src":"5514:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5517:1:64","nodeType":"YulLiteral","src":"5517:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5507:6:64","nodeType":"YulIdentifier","src":"5507:6:64"},"nativeSrc":"5507:12:64","nodeType":"YulFunctionCall","src":"5507:12:64"},"nativeSrc":"5507:12:64","nodeType":"YulExpressionStatement","src":"5507:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"5408:117:64","nodeType":"YulFunctionDefinition","src":"5408:117:64"},{"body":{"nativeSrc":"5559:152:64","nodeType":"YulBlock","src":"5559:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5576:1:64","nodeType":"YulLiteral","src":"5576:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5579:77:64","nodeType":"YulLiteral","src":"5579:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"5569:6:64","nodeType":"YulIdentifier","src":"5569:6:64"},"nativeSrc":"5569:88:64","nodeType":"YulFunctionCall","src":"5569:88:64"},"nativeSrc":"5569:88:64","nodeType":"YulExpressionStatement","src":"5569:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5673:1:64","nodeType":"YulLiteral","src":"5673:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"5676:4:64","nodeType":"YulLiteral","src":"5676:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"5666:6:64","nodeType":"YulIdentifier","src":"5666:6:64"},"nativeSrc":"5666:15:64","nodeType":"YulFunctionCall","src":"5666:15:64"},"nativeSrc":"5666:15:64","nodeType":"YulExpressionStatement","src":"5666:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5697:1:64","nodeType":"YulLiteral","src":"5697:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5700:4:64","nodeType":"YulLiteral","src":"5700:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"5690:6:64","nodeType":"YulIdentifier","src":"5690:6:64"},"nativeSrc":"5690:15:64","nodeType":"YulFunctionCall","src":"5690:15:64"},"nativeSrc":"5690:15:64","nodeType":"YulExpressionStatement","src":"5690:15:64"}]},"name":"panic_error_0x41","nativeSrc":"5531:180:64","nodeType":"YulFunctionDefinition","src":"5531:180:64"},{"body":{"nativeSrc":"5760:238:64","nodeType":"YulBlock","src":"5760:238:64","statements":[{"nativeSrc":"5770:58:64","nodeType":"YulVariableDeclaration","src":"5770:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"5792:6:64","nodeType":"YulIdentifier","src":"5792:6:64"},{"arguments":[{"name":"size","nativeSrc":"5822:4:64","nodeType":"YulIdentifier","src":"5822:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"5800:21:64","nodeType":"YulIdentifier","src":"5800:21:64"},"nativeSrc":"5800:27:64","nodeType":"YulFunctionCall","src":"5800:27:64"}],"functionName":{"name":"add","nativeSrc":"5788:3:64","nodeType":"YulIdentifier","src":"5788:3:64"},"nativeSrc":"5788:40:64","nodeType":"YulFunctionCall","src":"5788:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"5774:10:64","nodeType":"YulTypedName","src":"5774:10:64","type":""}]},{"body":{"nativeSrc":"5939:22:64","nodeType":"YulBlock","src":"5939:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5941:16:64","nodeType":"YulIdentifier","src":"5941:16:64"},"nativeSrc":"5941:18:64","nodeType":"YulFunctionCall","src":"5941:18:64"},"nativeSrc":"5941:18:64","nodeType":"YulExpressionStatement","src":"5941:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"5882:10:64","nodeType":"YulIdentifier","src":"5882:10:64"},{"kind":"number","nativeSrc":"5894:18:64","nodeType":"YulLiteral","src":"5894:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5879:2:64","nodeType":"YulIdentifier","src":"5879:2:64"},"nativeSrc":"5879:34:64","nodeType":"YulFunctionCall","src":"5879:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"5918:10:64","nodeType":"YulIdentifier","src":"5918:10:64"},{"name":"memPtr","nativeSrc":"5930:6:64","nodeType":"YulIdentifier","src":"5930:6:64"}],"functionName":{"name":"lt","nativeSrc":"5915:2:64","nodeType":"YulIdentifier","src":"5915:2:64"},"nativeSrc":"5915:22:64","nodeType":"YulFunctionCall","src":"5915:22:64"}],"functionName":{"name":"or","nativeSrc":"5876:2:64","nodeType":"YulIdentifier","src":"5876:2:64"},"nativeSrc":"5876:62:64","nodeType":"YulFunctionCall","src":"5876:62:64"},"nativeSrc":"5873:88:64","nodeType":"YulIf","src":"5873:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5977:2:64","nodeType":"YulLiteral","src":"5977:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"5981:10:64","nodeType":"YulIdentifier","src":"5981:10:64"}],"functionName":{"name":"mstore","nativeSrc":"5970:6:64","nodeType":"YulIdentifier","src":"5970:6:64"},"nativeSrc":"5970:22:64","nodeType":"YulFunctionCall","src":"5970:22:64"},"nativeSrc":"5970:22:64","nodeType":"YulExpressionStatement","src":"5970:22:64"}]},"name":"finalize_allocation","nativeSrc":"5717:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"5746:6:64","nodeType":"YulTypedName","src":"5746:6:64","type":""},{"name":"size","nativeSrc":"5754:4:64","nodeType":"YulTypedName","src":"5754:4:64","type":""}],"src":"5717:281:64"},{"body":{"nativeSrc":"6045:88:64","nodeType":"YulBlock","src":"6045:88:64","statements":[{"nativeSrc":"6055:30:64","nodeType":"YulAssignment","src":"6055:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"6065:18:64","nodeType":"YulIdentifier","src":"6065:18:64"},"nativeSrc":"6065:20:64","nodeType":"YulFunctionCall","src":"6065:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"6055:6:64","nodeType":"YulIdentifier","src":"6055:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"6114:6:64","nodeType":"YulIdentifier","src":"6114:6:64"},{"name":"size","nativeSrc":"6122:4:64","nodeType":"YulIdentifier","src":"6122:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"6094:19:64","nodeType":"YulIdentifier","src":"6094:19:64"},"nativeSrc":"6094:33:64","nodeType":"YulFunctionCall","src":"6094:33:64"},"nativeSrc":"6094:33:64","nodeType":"YulExpressionStatement","src":"6094:33:64"}]},"name":"allocate_memory","nativeSrc":"6004:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"6029:4:64","nodeType":"YulTypedName","src":"6029:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"6038:6:64","nodeType":"YulTypedName","src":"6038:6:64","type":""}],"src":"6004:129:64"},{"body":{"nativeSrc":"6221:229:64","nodeType":"YulBlock","src":"6221:229:64","statements":[{"body":{"nativeSrc":"6326:22:64","nodeType":"YulBlock","src":"6326:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6328:16:64","nodeType":"YulIdentifier","src":"6328:16:64"},"nativeSrc":"6328:18:64","nodeType":"YulFunctionCall","src":"6328:18:64"},"nativeSrc":"6328:18:64","nodeType":"YulExpressionStatement","src":"6328:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6298:6:64","nodeType":"YulIdentifier","src":"6298:6:64"},{"kind":"number","nativeSrc":"6306:18:64","nodeType":"YulLiteral","src":"6306:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6295:2:64","nodeType":"YulIdentifier","src":"6295:2:64"},"nativeSrc":"6295:30:64","nodeType":"YulFunctionCall","src":"6295:30:64"},"nativeSrc":"6292:56:64","nodeType":"YulIf","src":"6292:56:64"},{"nativeSrc":"6358:25:64","nodeType":"YulAssignment","src":"6358:25:64","value":{"arguments":[{"name":"length","nativeSrc":"6370:6:64","nodeType":"YulIdentifier","src":"6370:6:64"},{"kind":"number","nativeSrc":"6378:4:64","nodeType":"YulLiteral","src":"6378:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6366:3:64","nodeType":"YulIdentifier","src":"6366:3:64"},"nativeSrc":"6366:17:64","nodeType":"YulFunctionCall","src":"6366:17:64"},"variableNames":[{"name":"size","nativeSrc":"6358:4:64","nodeType":"YulIdentifier","src":"6358:4:64"}]},{"nativeSrc":"6420:23:64","nodeType":"YulAssignment","src":"6420:23:64","value":{"arguments":[{"name":"size","nativeSrc":"6432:4:64","nodeType":"YulIdentifier","src":"6432:4:64"},{"kind":"number","nativeSrc":"6438:4:64","nodeType":"YulLiteral","src":"6438:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6428:3:64","nodeType":"YulIdentifier","src":"6428:3:64"},"nativeSrc":"6428:15:64","nodeType":"YulFunctionCall","src":"6428:15:64"},"variableNames":[{"name":"size","nativeSrc":"6420:4:64","nodeType":"YulIdentifier","src":"6420:4:64"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6139:311:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"6205:6:64","nodeType":"YulTypedName","src":"6205:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"6216:4:64","nodeType":"YulTypedName","src":"6216:4:64","type":""}],"src":"6139:311:64"},{"body":{"nativeSrc":"6545:28:64","nodeType":"YulBlock","src":"6545:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6562:1:64","nodeType":"YulLiteral","src":"6562:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6565:1:64","nodeType":"YulLiteral","src":"6565:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6555:6:64","nodeType":"YulIdentifier","src":"6555:6:64"},"nativeSrc":"6555:12:64","nodeType":"YulFunctionCall","src":"6555:12:64"},"nativeSrc":"6555:12:64","nodeType":"YulExpressionStatement","src":"6555:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6456:117:64","nodeType":"YulFunctionDefinition","src":"6456:117:64"},{"body":{"nativeSrc":"6698:608:64","nodeType":"YulBlock","src":"6698:608:64","statements":[{"nativeSrc":"6708:90:64","nodeType":"YulAssignment","src":"6708:90:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6790:6:64","nodeType":"YulIdentifier","src":"6790:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6733:56:64","nodeType":"YulIdentifier","src":"6733:56:64"},"nativeSrc":"6733:64:64","nodeType":"YulFunctionCall","src":"6733:64:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"6717:15:64","nodeType":"YulIdentifier","src":"6717:15:64"},"nativeSrc":"6717:81:64","nodeType":"YulFunctionCall","src":"6717:81:64"},"variableNames":[{"name":"array","nativeSrc":"6708:5:64","nodeType":"YulIdentifier","src":"6708:5:64"}]},{"nativeSrc":"6807:16:64","nodeType":"YulVariableDeclaration","src":"6807:16:64","value":{"name":"array","nativeSrc":"6818:5:64","nodeType":"YulIdentifier","src":"6818:5:64"},"variables":[{"name":"dst","nativeSrc":"6811:3:64","nodeType":"YulTypedName","src":"6811:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6840:5:64","nodeType":"YulIdentifier","src":"6840:5:64"},{"name":"length","nativeSrc":"6847:6:64","nodeType":"YulIdentifier","src":"6847:6:64"}],"functionName":{"name":"mstore","nativeSrc":"6833:6:64","nodeType":"YulIdentifier","src":"6833:6:64"},"nativeSrc":"6833:21:64","nodeType":"YulFunctionCall","src":"6833:21:64"},"nativeSrc":"6833:21:64","nodeType":"YulExpressionStatement","src":"6833:21:64"},{"nativeSrc":"6863:23:64","nodeType":"YulAssignment","src":"6863:23:64","value":{"arguments":[{"name":"array","nativeSrc":"6874:5:64","nodeType":"YulIdentifier","src":"6874:5:64"},{"kind":"number","nativeSrc":"6881:4:64","nodeType":"YulLiteral","src":"6881:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6870:3:64","nodeType":"YulIdentifier","src":"6870:3:64"},"nativeSrc":"6870:16:64","nodeType":"YulFunctionCall","src":"6870:16:64"},"variableNames":[{"name":"dst","nativeSrc":"6863:3:64","nodeType":"YulIdentifier","src":"6863:3:64"}]},{"nativeSrc":"6896:44:64","nodeType":"YulVariableDeclaration","src":"6896:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"6914:6:64","nodeType":"YulIdentifier","src":"6914:6:64"},{"arguments":[{"name":"length","nativeSrc":"6926:6:64","nodeType":"YulIdentifier","src":"6926:6:64"},{"kind":"number","nativeSrc":"6934:4:64","nodeType":"YulLiteral","src":"6934:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6922:3:64","nodeType":"YulIdentifier","src":"6922:3:64"},"nativeSrc":"6922:17:64","nodeType":"YulFunctionCall","src":"6922:17:64"}],"functionName":{"name":"add","nativeSrc":"6910:3:64","nodeType":"YulIdentifier","src":"6910:3:64"},"nativeSrc":"6910:30:64","nodeType":"YulFunctionCall","src":"6910:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"6900:6:64","nodeType":"YulTypedName","src":"6900:6:64","type":""}]},{"body":{"nativeSrc":"6968:103:64","nodeType":"YulBlock","src":"6968:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6982:77:64","nodeType":"YulIdentifier","src":"6982:77:64"},"nativeSrc":"6982:79:64","nodeType":"YulFunctionCall","src":"6982:79:64"},"nativeSrc":"6982:79:64","nodeType":"YulExpressionStatement","src":"6982:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"6955:6:64","nodeType":"YulIdentifier","src":"6955:6:64"},{"name":"end","nativeSrc":"6963:3:64","nodeType":"YulIdentifier","src":"6963:3:64"}],"functionName":{"name":"gt","nativeSrc":"6952:2:64","nodeType":"YulIdentifier","src":"6952:2:64"},"nativeSrc":"6952:15:64","nodeType":"YulFunctionCall","src":"6952:15:64"},"nativeSrc":"6949:122:64","nodeType":"YulIf","src":"6949:122:64"},{"body":{"nativeSrc":"7156:144:64","nodeType":"YulBlock","src":"7156:144:64","statements":[{"nativeSrc":"7171:21:64","nodeType":"YulVariableDeclaration","src":"7171:21:64","value":{"name":"src","nativeSrc":"7189:3:64","nodeType":"YulIdentifier","src":"7189:3:64"},"variables":[{"name":"elementPos","nativeSrc":"7175:10:64","nodeType":"YulTypedName","src":"7175:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"7213:3:64","nodeType":"YulIdentifier","src":"7213:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"7239:10:64","nodeType":"YulIdentifier","src":"7239:10:64"},{"name":"end","nativeSrc":"7251:3:64","nodeType":"YulIdentifier","src":"7251:3:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7218:20:64","nodeType":"YulIdentifier","src":"7218:20:64"},"nativeSrc":"7218:37:64","nodeType":"YulFunctionCall","src":"7218:37:64"}],"functionName":{"name":"mstore","nativeSrc":"7206:6:64","nodeType":"YulIdentifier","src":"7206:6:64"},"nativeSrc":"7206:50:64","nodeType":"YulFunctionCall","src":"7206:50:64"},"nativeSrc":"7206:50:64","nodeType":"YulExpressionStatement","src":"7206:50:64"},{"nativeSrc":"7269:21:64","nodeType":"YulAssignment","src":"7269:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"7280:3:64","nodeType":"YulIdentifier","src":"7280:3:64"},{"kind":"number","nativeSrc":"7285:4:64","nodeType":"YulLiteral","src":"7285:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7276:3:64","nodeType":"YulIdentifier","src":"7276:3:64"},"nativeSrc":"7276:14:64","nodeType":"YulFunctionCall","src":"7276:14:64"},"variableNames":[{"name":"dst","nativeSrc":"7269:3:64","nodeType":"YulIdentifier","src":"7269:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"7109:3:64","nodeType":"YulIdentifier","src":"7109:3:64"},{"name":"srcEnd","nativeSrc":"7114:6:64","nodeType":"YulIdentifier","src":"7114:6:64"}],"functionName":{"name":"lt","nativeSrc":"7106:2:64","nodeType":"YulIdentifier","src":"7106:2:64"},"nativeSrc":"7106:15:64","nodeType":"YulFunctionCall","src":"7106:15:64"},"nativeSrc":"7080:220:64","nodeType":"YulForLoop","post":{"nativeSrc":"7122:25:64","nodeType":"YulBlock","src":"7122:25:64","statements":[{"nativeSrc":"7124:21:64","nodeType":"YulAssignment","src":"7124:21:64","value":{"arguments":[{"name":"src","nativeSrc":"7135:3:64","nodeType":"YulIdentifier","src":"7135:3:64"},{"kind":"number","nativeSrc":"7140:4:64","nodeType":"YulLiteral","src":"7140:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7131:3:64","nodeType":"YulIdentifier","src":"7131:3:64"},"nativeSrc":"7131:14:64","nodeType":"YulFunctionCall","src":"7131:14:64"},"variableNames":[{"name":"src","nativeSrc":"7124:3:64","nodeType":"YulIdentifier","src":"7124:3:64"}]}]},"pre":{"nativeSrc":"7084:21:64","nodeType":"YulBlock","src":"7084:21:64","statements":[{"nativeSrc":"7086:17:64","nodeType":"YulVariableDeclaration","src":"7086:17:64","value":{"name":"offset","nativeSrc":"7097:6:64","nodeType":"YulIdentifier","src":"7097:6:64"},"variables":[{"name":"src","nativeSrc":"7090:3:64","nodeType":"YulTypedName","src":"7090:3:64","type":""}]}]},"src":"7080:220:64"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"6596:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6668:6:64","nodeType":"YulTypedName","src":"6668:6:64","type":""},{"name":"length","nativeSrc":"6676:6:64","nodeType":"YulTypedName","src":"6676:6:64","type":""},{"name":"end","nativeSrc":"6684:3:64","nodeType":"YulTypedName","src":"6684:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6692:5:64","nodeType":"YulTypedName","src":"6692:5:64","type":""}],"src":"6596:710:64"},{"body":{"nativeSrc":"7406:293:64","nodeType":"YulBlock","src":"7406:293:64","statements":[{"body":{"nativeSrc":"7455:83:64","nodeType":"YulBlock","src":"7455:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7457:77:64","nodeType":"YulIdentifier","src":"7457:77:64"},"nativeSrc":"7457:79:64","nodeType":"YulFunctionCall","src":"7457:79:64"},"nativeSrc":"7457:79:64","nodeType":"YulExpressionStatement","src":"7457:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7434:6:64","nodeType":"YulIdentifier","src":"7434:6:64"},{"kind":"number","nativeSrc":"7442:4:64","nodeType":"YulLiteral","src":"7442:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7430:3:64","nodeType":"YulIdentifier","src":"7430:3:64"},"nativeSrc":"7430:17:64","nodeType":"YulFunctionCall","src":"7430:17:64"},{"name":"end","nativeSrc":"7449:3:64","nodeType":"YulIdentifier","src":"7449:3:64"}],"functionName":{"name":"slt","nativeSrc":"7426:3:64","nodeType":"YulIdentifier","src":"7426:3:64"},"nativeSrc":"7426:27:64","nodeType":"YulFunctionCall","src":"7426:27:64"}],"functionName":{"name":"iszero","nativeSrc":"7419:6:64","nodeType":"YulIdentifier","src":"7419:6:64"},"nativeSrc":"7419:35:64","nodeType":"YulFunctionCall","src":"7419:35:64"},"nativeSrc":"7416:122:64","nodeType":"YulIf","src":"7416:122:64"},{"nativeSrc":"7547:34:64","nodeType":"YulVariableDeclaration","src":"7547:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"7574:6:64","nodeType":"YulIdentifier","src":"7574:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7561:12:64","nodeType":"YulIdentifier","src":"7561:12:64"},"nativeSrc":"7561:20:64","nodeType":"YulFunctionCall","src":"7561:20:64"},"variables":[{"name":"length","nativeSrc":"7551:6:64","nodeType":"YulTypedName","src":"7551:6:64","type":""}]},{"nativeSrc":"7590:103:64","nodeType":"YulAssignment","src":"7590:103:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7666:6:64","nodeType":"YulIdentifier","src":"7666:6:64"},{"kind":"number","nativeSrc":"7674:4:64","nodeType":"YulLiteral","src":"7674:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7662:3:64","nodeType":"YulIdentifier","src":"7662:3:64"},"nativeSrc":"7662:17:64","nodeType":"YulFunctionCall","src":"7662:17:64"},{"name":"length","nativeSrc":"7681:6:64","nodeType":"YulIdentifier","src":"7681:6:64"},{"name":"end","nativeSrc":"7689:3:64","nodeType":"YulIdentifier","src":"7689:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"7599:62:64","nodeType":"YulIdentifier","src":"7599:62:64"},"nativeSrc":"7599:94:64","nodeType":"YulFunctionCall","src":"7599:94:64"},"variableNames":[{"name":"array","nativeSrc":"7590:5:64","nodeType":"YulIdentifier","src":"7590:5:64"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"7329:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7384:6:64","nodeType":"YulTypedName","src":"7384:6:64","type":""},{"name":"end","nativeSrc":"7392:3:64","nodeType":"YulTypedName","src":"7392:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7400:5:64","nodeType":"YulTypedName","src":"7400:5:64","type":""}],"src":"7329:370:64"},{"body":{"nativeSrc":"7794:28:64","nodeType":"YulBlock","src":"7794:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7811:1:64","nodeType":"YulLiteral","src":"7811:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7814:1:64","nodeType":"YulLiteral","src":"7814:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7804:6:64","nodeType":"YulIdentifier","src":"7804:6:64"},"nativeSrc":"7804:12:64","nodeType":"YulFunctionCall","src":"7804:12:64"},"nativeSrc":"7804:12:64","nodeType":"YulExpressionStatement","src":"7804:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"7705:117:64","nodeType":"YulFunctionDefinition","src":"7705:117:64"},{"body":{"nativeSrc":"7894:241:64","nodeType":"YulBlock","src":"7894:241:64","statements":[{"body":{"nativeSrc":"7999:22:64","nodeType":"YulBlock","src":"7999:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8001:16:64","nodeType":"YulIdentifier","src":"8001:16:64"},"nativeSrc":"8001:18:64","nodeType":"YulFunctionCall","src":"8001:18:64"},"nativeSrc":"8001:18:64","nodeType":"YulExpressionStatement","src":"8001:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7971:6:64","nodeType":"YulIdentifier","src":"7971:6:64"},{"kind":"number","nativeSrc":"7979:18:64","nodeType":"YulLiteral","src":"7979:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7968:2:64","nodeType":"YulIdentifier","src":"7968:2:64"},"nativeSrc":"7968:30:64","nodeType":"YulFunctionCall","src":"7968:30:64"},"nativeSrc":"7965:56:64","nodeType":"YulIf","src":"7965:56:64"},{"nativeSrc":"8031:37:64","nodeType":"YulAssignment","src":"8031:37:64","value":{"arguments":[{"name":"length","nativeSrc":"8061:6:64","nodeType":"YulIdentifier","src":"8061:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8039:21:64","nodeType":"YulIdentifier","src":"8039:21:64"},"nativeSrc":"8039:29:64","nodeType":"YulFunctionCall","src":"8039:29:64"},"variableNames":[{"name":"size","nativeSrc":"8031:4:64","nodeType":"YulIdentifier","src":"8031:4:64"}]},{"nativeSrc":"8105:23:64","nodeType":"YulAssignment","src":"8105:23:64","value":{"arguments":[{"name":"size","nativeSrc":"8117:4:64","nodeType":"YulIdentifier","src":"8117:4:64"},{"kind":"number","nativeSrc":"8123:4:64","nodeType":"YulLiteral","src":"8123:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8113:3:64","nodeType":"YulIdentifier","src":"8113:3:64"},"nativeSrc":"8113:15:64","nodeType":"YulFunctionCall","src":"8113:15:64"},"variableNames":[{"name":"size","nativeSrc":"8105:4:64","nodeType":"YulIdentifier","src":"8105:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"7828:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"7878:6:64","nodeType":"YulTypedName","src":"7878:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"7889:4:64","nodeType":"YulTypedName","src":"7889:4:64","type":""}],"src":"7828:307:64"},{"body":{"nativeSrc":"8205:84:64","nodeType":"YulBlock","src":"8205:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"8229:3:64","nodeType":"YulIdentifier","src":"8229:3:64"},{"name":"src","nativeSrc":"8234:3:64","nodeType":"YulIdentifier","src":"8234:3:64"},{"name":"length","nativeSrc":"8239:6:64","nodeType":"YulIdentifier","src":"8239:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"8216:12:64","nodeType":"YulIdentifier","src":"8216:12:64"},"nativeSrc":"8216:30:64","nodeType":"YulFunctionCall","src":"8216:30:64"},"nativeSrc":"8216:30:64","nodeType":"YulExpressionStatement","src":"8216:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"8266:3:64","nodeType":"YulIdentifier","src":"8266:3:64"},{"name":"length","nativeSrc":"8271:6:64","nodeType":"YulIdentifier","src":"8271:6:64"}],"functionName":{"name":"add","nativeSrc":"8262:3:64","nodeType":"YulIdentifier","src":"8262:3:64"},"nativeSrc":"8262:16:64","nodeType":"YulFunctionCall","src":"8262:16:64"},{"kind":"number","nativeSrc":"8280:1:64","nodeType":"YulLiteral","src":"8280:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"8255:6:64","nodeType":"YulIdentifier","src":"8255:6:64"},"nativeSrc":"8255:27:64","nodeType":"YulFunctionCall","src":"8255:27:64"},"nativeSrc":"8255:27:64","nodeType":"YulExpressionStatement","src":"8255:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"8141:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8187:3:64","nodeType":"YulTypedName","src":"8187:3:64","type":""},{"name":"dst","nativeSrc":"8192:3:64","nodeType":"YulTypedName","src":"8192:3:64","type":""},{"name":"length","nativeSrc":"8197:6:64","nodeType":"YulTypedName","src":"8197:6:64","type":""}],"src":"8141:148:64"},{"body":{"nativeSrc":"8378:340:64","nodeType":"YulBlock","src":"8378:340:64","statements":[{"nativeSrc":"8388:74:64","nodeType":"YulAssignment","src":"8388:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"8454:6:64","nodeType":"YulIdentifier","src":"8454:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"8413:40:64","nodeType":"YulIdentifier","src":"8413:40:64"},"nativeSrc":"8413:48:64","nodeType":"YulFunctionCall","src":"8413:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"8397:15:64","nodeType":"YulIdentifier","src":"8397:15:64"},"nativeSrc":"8397:65:64","nodeType":"YulFunctionCall","src":"8397:65:64"},"variableNames":[{"name":"array","nativeSrc":"8388:5:64","nodeType":"YulIdentifier","src":"8388:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"8478:5:64","nodeType":"YulIdentifier","src":"8478:5:64"},{"name":"length","nativeSrc":"8485:6:64","nodeType":"YulIdentifier","src":"8485:6:64"}],"functionName":{"name":"mstore","nativeSrc":"8471:6:64","nodeType":"YulIdentifier","src":"8471:6:64"},"nativeSrc":"8471:21:64","nodeType":"YulFunctionCall","src":"8471:21:64"},"nativeSrc":"8471:21:64","nodeType":"YulExpressionStatement","src":"8471:21:64"},{"nativeSrc":"8501:27:64","nodeType":"YulVariableDeclaration","src":"8501:27:64","value":{"arguments":[{"name":"array","nativeSrc":"8516:5:64","nodeType":"YulIdentifier","src":"8516:5:64"},{"kind":"number","nativeSrc":"8523:4:64","nodeType":"YulLiteral","src":"8523:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8512:3:64","nodeType":"YulIdentifier","src":"8512:3:64"},"nativeSrc":"8512:16:64","nodeType":"YulFunctionCall","src":"8512:16:64"},"variables":[{"name":"dst","nativeSrc":"8505:3:64","nodeType":"YulTypedName","src":"8505:3:64","type":""}]},{"body":{"nativeSrc":"8566:83:64","nodeType":"YulBlock","src":"8566:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"8568:77:64","nodeType":"YulIdentifier","src":"8568:77:64"},"nativeSrc":"8568:79:64","nodeType":"YulFunctionCall","src":"8568:79:64"},"nativeSrc":"8568:79:64","nodeType":"YulExpressionStatement","src":"8568:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"8547:3:64","nodeType":"YulIdentifier","src":"8547:3:64"},{"name":"length","nativeSrc":"8552:6:64","nodeType":"YulIdentifier","src":"8552:6:64"}],"functionName":{"name":"add","nativeSrc":"8543:3:64","nodeType":"YulIdentifier","src":"8543:3:64"},"nativeSrc":"8543:16:64","nodeType":"YulFunctionCall","src":"8543:16:64"},{"name":"end","nativeSrc":"8561:3:64","nodeType":"YulIdentifier","src":"8561:3:64"}],"functionName":{"name":"gt","nativeSrc":"8540:2:64","nodeType":"YulIdentifier","src":"8540:2:64"},"nativeSrc":"8540:25:64","nodeType":"YulFunctionCall","src":"8540:25:64"},"nativeSrc":"8537:112:64","nodeType":"YulIf","src":"8537:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"8695:3:64","nodeType":"YulIdentifier","src":"8695:3:64"},{"name":"dst","nativeSrc":"8700:3:64","nodeType":"YulIdentifier","src":"8700:3:64"},{"name":"length","nativeSrc":"8705:6:64","nodeType":"YulIdentifier","src":"8705:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"8658:36:64","nodeType":"YulIdentifier","src":"8658:36:64"},"nativeSrc":"8658:54:64","nodeType":"YulFunctionCall","src":"8658:54:64"},"nativeSrc":"8658:54:64","nodeType":"YulExpressionStatement","src":"8658:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"8295:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"8351:3:64","nodeType":"YulTypedName","src":"8351:3:64","type":""},{"name":"length","nativeSrc":"8356:6:64","nodeType":"YulTypedName","src":"8356:6:64","type":""},{"name":"end","nativeSrc":"8364:3:64","nodeType":"YulTypedName","src":"8364:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8372:5:64","nodeType":"YulTypedName","src":"8372:5:64","type":""}],"src":"8295:423:64"},{"body":{"nativeSrc":"8798:277:64","nodeType":"YulBlock","src":"8798:277:64","statements":[{"body":{"nativeSrc":"8847:83:64","nodeType":"YulBlock","src":"8847:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"8849:77:64","nodeType":"YulIdentifier","src":"8849:77:64"},"nativeSrc":"8849:79:64","nodeType":"YulFunctionCall","src":"8849:79:64"},"nativeSrc":"8849:79:64","nodeType":"YulExpressionStatement","src":"8849:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"8826:6:64","nodeType":"YulIdentifier","src":"8826:6:64"},{"kind":"number","nativeSrc":"8834:4:64","nodeType":"YulLiteral","src":"8834:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"8822:3:64","nodeType":"YulIdentifier","src":"8822:3:64"},"nativeSrc":"8822:17:64","nodeType":"YulFunctionCall","src":"8822:17:64"},{"name":"end","nativeSrc":"8841:3:64","nodeType":"YulIdentifier","src":"8841:3:64"}],"functionName":{"name":"slt","nativeSrc":"8818:3:64","nodeType":"YulIdentifier","src":"8818:3:64"},"nativeSrc":"8818:27:64","nodeType":"YulFunctionCall","src":"8818:27:64"}],"functionName":{"name":"iszero","nativeSrc":"8811:6:64","nodeType":"YulIdentifier","src":"8811:6:64"},"nativeSrc":"8811:35:64","nodeType":"YulFunctionCall","src":"8811:35:64"},"nativeSrc":"8808:122:64","nodeType":"YulIf","src":"8808:122:64"},{"nativeSrc":"8939:34:64","nodeType":"YulVariableDeclaration","src":"8939:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"8966:6:64","nodeType":"YulIdentifier","src":"8966:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"8953:12:64","nodeType":"YulIdentifier","src":"8953:12:64"},"nativeSrc":"8953:20:64","nodeType":"YulFunctionCall","src":"8953:20:64"},"variables":[{"name":"length","nativeSrc":"8943:6:64","nodeType":"YulTypedName","src":"8943:6:64","type":""}]},{"nativeSrc":"8982:87:64","nodeType":"YulAssignment","src":"8982:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9042:6:64","nodeType":"YulIdentifier","src":"9042:6:64"},{"kind":"number","nativeSrc":"9050:4:64","nodeType":"YulLiteral","src":"9050:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9038:3:64","nodeType":"YulIdentifier","src":"9038:3:64"},"nativeSrc":"9038:17:64","nodeType":"YulFunctionCall","src":"9038:17:64"},{"name":"length","nativeSrc":"9057:6:64","nodeType":"YulIdentifier","src":"9057:6:64"},{"name":"end","nativeSrc":"9065:3:64","nodeType":"YulIdentifier","src":"9065:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"8991:46:64","nodeType":"YulIdentifier","src":"8991:46:64"},"nativeSrc":"8991:78:64","nodeType":"YulFunctionCall","src":"8991:78:64"},"variableNames":[{"name":"array","nativeSrc":"8982:5:64","nodeType":"YulIdentifier","src":"8982:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"8737:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8776:6:64","nodeType":"YulTypedName","src":"8776:6:64","type":""},{"name":"end","nativeSrc":"8784:3:64","nodeType":"YulTypedName","src":"8784:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8792:5:64","nodeType":"YulTypedName","src":"8792:5:64","type":""}],"src":"8737:338:64"},{"body":{"nativeSrc":"9274:1316:64","nodeType":"YulBlock","src":"9274:1316:64","statements":[{"body":{"nativeSrc":"9321:83:64","nodeType":"YulBlock","src":"9321:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"9323:77:64","nodeType":"YulIdentifier","src":"9323:77:64"},"nativeSrc":"9323:79:64","nodeType":"YulFunctionCall","src":"9323:79:64"},"nativeSrc":"9323:79:64","nodeType":"YulExpressionStatement","src":"9323:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"9295:7:64","nodeType":"YulIdentifier","src":"9295:7:64"},{"name":"headStart","nativeSrc":"9304:9:64","nodeType":"YulIdentifier","src":"9304:9:64"}],"functionName":{"name":"sub","nativeSrc":"9291:3:64","nodeType":"YulIdentifier","src":"9291:3:64"},"nativeSrc":"9291:23:64","nodeType":"YulFunctionCall","src":"9291:23:64"},{"kind":"number","nativeSrc":"9316:3:64","nodeType":"YulLiteral","src":"9316:3:64","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"9287:3:64","nodeType":"YulIdentifier","src":"9287:3:64"},"nativeSrc":"9287:33:64","nodeType":"YulFunctionCall","src":"9287:33:64"},"nativeSrc":"9284:120:64","nodeType":"YulIf","src":"9284:120:64"},{"nativeSrc":"9414:117:64","nodeType":"YulBlock","src":"9414:117:64","statements":[{"nativeSrc":"9429:15:64","nodeType":"YulVariableDeclaration","src":"9429:15:64","value":{"kind":"number","nativeSrc":"9443:1:64","nodeType":"YulLiteral","src":"9443:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9433:6:64","nodeType":"YulTypedName","src":"9433:6:64","type":""}]},{"nativeSrc":"9458:63:64","nodeType":"YulAssignment","src":"9458:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9493:9:64","nodeType":"YulIdentifier","src":"9493:9:64"},{"name":"offset","nativeSrc":"9504:6:64","nodeType":"YulIdentifier","src":"9504:6:64"}],"functionName":{"name":"add","nativeSrc":"9489:3:64","nodeType":"YulIdentifier","src":"9489:3:64"},"nativeSrc":"9489:22:64","nodeType":"YulFunctionCall","src":"9489:22:64"},{"name":"dataEnd","nativeSrc":"9513:7:64","nodeType":"YulIdentifier","src":"9513:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9468:20:64","nodeType":"YulIdentifier","src":"9468:20:64"},"nativeSrc":"9468:53:64","nodeType":"YulFunctionCall","src":"9468:53:64"},"variableNames":[{"name":"value0","nativeSrc":"9458:6:64","nodeType":"YulIdentifier","src":"9458:6:64"}]}]},{"nativeSrc":"9541:118:64","nodeType":"YulBlock","src":"9541:118:64","statements":[{"nativeSrc":"9556:16:64","nodeType":"YulVariableDeclaration","src":"9556:16:64","value":{"kind":"number","nativeSrc":"9570:2:64","nodeType":"YulLiteral","src":"9570:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9560:6:64","nodeType":"YulTypedName","src":"9560:6:64","type":""}]},{"nativeSrc":"9586:63:64","nodeType":"YulAssignment","src":"9586:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9621:9:64","nodeType":"YulIdentifier","src":"9621:9:64"},{"name":"offset","nativeSrc":"9632:6:64","nodeType":"YulIdentifier","src":"9632:6:64"}],"functionName":{"name":"add","nativeSrc":"9617:3:64","nodeType":"YulIdentifier","src":"9617:3:64"},"nativeSrc":"9617:22:64","nodeType":"YulFunctionCall","src":"9617:22:64"},{"name":"dataEnd","nativeSrc":"9641:7:64","nodeType":"YulIdentifier","src":"9641:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9596:20:64","nodeType":"YulIdentifier","src":"9596:20:64"},"nativeSrc":"9596:53:64","nodeType":"YulFunctionCall","src":"9596:53:64"},"variableNames":[{"name":"value1","nativeSrc":"9586:6:64","nodeType":"YulIdentifier","src":"9586:6:64"}]}]},{"nativeSrc":"9669:303:64","nodeType":"YulBlock","src":"9669:303:64","statements":[{"nativeSrc":"9684:46:64","nodeType":"YulVariableDeclaration","src":"9684:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9715:9:64","nodeType":"YulIdentifier","src":"9715:9:64"},{"kind":"number","nativeSrc":"9726:2:64","nodeType":"YulLiteral","src":"9726:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"9711:3:64","nodeType":"YulIdentifier","src":"9711:3:64"},"nativeSrc":"9711:18:64","nodeType":"YulFunctionCall","src":"9711:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"9698:12:64","nodeType":"YulIdentifier","src":"9698:12:64"},"nativeSrc":"9698:32:64","nodeType":"YulFunctionCall","src":"9698:32:64"},"variables":[{"name":"offset","nativeSrc":"9688:6:64","nodeType":"YulTypedName","src":"9688:6:64","type":""}]},{"body":{"nativeSrc":"9777:83:64","nodeType":"YulBlock","src":"9777:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"9779:77:64","nodeType":"YulIdentifier","src":"9779:77:64"},"nativeSrc":"9779:79:64","nodeType":"YulFunctionCall","src":"9779:79:64"},"nativeSrc":"9779:79:64","nodeType":"YulExpressionStatement","src":"9779:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9749:6:64","nodeType":"YulIdentifier","src":"9749:6:64"},{"kind":"number","nativeSrc":"9757:18:64","nodeType":"YulLiteral","src":"9757:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9746:2:64","nodeType":"YulIdentifier","src":"9746:2:64"},"nativeSrc":"9746:30:64","nodeType":"YulFunctionCall","src":"9746:30:64"},"nativeSrc":"9743:117:64","nodeType":"YulIf","src":"9743:117:64"},{"nativeSrc":"9874:88:64","nodeType":"YulAssignment","src":"9874:88:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9934:9:64","nodeType":"YulIdentifier","src":"9934:9:64"},{"name":"offset","nativeSrc":"9945:6:64","nodeType":"YulIdentifier","src":"9945:6:64"}],"functionName":{"name":"add","nativeSrc":"9930:3:64","nodeType":"YulIdentifier","src":"9930:3:64"},"nativeSrc":"9930:22:64","nodeType":"YulFunctionCall","src":"9930:22:64"},{"name":"dataEnd","nativeSrc":"9954:7:64","nodeType":"YulIdentifier","src":"9954:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"9884:45:64","nodeType":"YulIdentifier","src":"9884:45:64"},"nativeSrc":"9884:78:64","nodeType":"YulFunctionCall","src":"9884:78:64"},"variableNames":[{"name":"value2","nativeSrc":"9874:6:64","nodeType":"YulIdentifier","src":"9874:6:64"}]}]},{"nativeSrc":"9982:303:64","nodeType":"YulBlock","src":"9982:303:64","statements":[{"nativeSrc":"9997:46:64","nodeType":"YulVariableDeclaration","src":"9997:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10028:9:64","nodeType":"YulIdentifier","src":"10028:9:64"},{"kind":"number","nativeSrc":"10039:2:64","nodeType":"YulLiteral","src":"10039:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"10024:3:64","nodeType":"YulIdentifier","src":"10024:3:64"},"nativeSrc":"10024:18:64","nodeType":"YulFunctionCall","src":"10024:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"10011:12:64","nodeType":"YulIdentifier","src":"10011:12:64"},"nativeSrc":"10011:32:64","nodeType":"YulFunctionCall","src":"10011:32:64"},"variables":[{"name":"offset","nativeSrc":"10001:6:64","nodeType":"YulTypedName","src":"10001:6:64","type":""}]},{"body":{"nativeSrc":"10090:83:64","nodeType":"YulBlock","src":"10090:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10092:77:64","nodeType":"YulIdentifier","src":"10092:77:64"},"nativeSrc":"10092:79:64","nodeType":"YulFunctionCall","src":"10092:79:64"},"nativeSrc":"10092:79:64","nodeType":"YulExpressionStatement","src":"10092:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10062:6:64","nodeType":"YulIdentifier","src":"10062:6:64"},{"kind":"number","nativeSrc":"10070:18:64","nodeType":"YulLiteral","src":"10070:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10059:2:64","nodeType":"YulIdentifier","src":"10059:2:64"},"nativeSrc":"10059:30:64","nodeType":"YulFunctionCall","src":"10059:30:64"},"nativeSrc":"10056:117:64","nodeType":"YulIf","src":"10056:117:64"},{"nativeSrc":"10187:88:64","nodeType":"YulAssignment","src":"10187:88:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10247:9:64","nodeType":"YulIdentifier","src":"10247:9:64"},{"name":"offset","nativeSrc":"10258:6:64","nodeType":"YulIdentifier","src":"10258:6:64"}],"functionName":{"name":"add","nativeSrc":"10243:3:64","nodeType":"YulIdentifier","src":"10243:3:64"},"nativeSrc":"10243:22:64","nodeType":"YulFunctionCall","src":"10243:22:64"},{"name":"dataEnd","nativeSrc":"10267:7:64","nodeType":"YulIdentifier","src":"10267:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"10197:45:64","nodeType":"YulIdentifier","src":"10197:45:64"},"nativeSrc":"10197:78:64","nodeType":"YulFunctionCall","src":"10197:78:64"},"variableNames":[{"name":"value3","nativeSrc":"10187:6:64","nodeType":"YulIdentifier","src":"10187:6:64"}]}]},{"nativeSrc":"10295:288:64","nodeType":"YulBlock","src":"10295:288:64","statements":[{"nativeSrc":"10310:47:64","nodeType":"YulVariableDeclaration","src":"10310:47:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10341:9:64","nodeType":"YulIdentifier","src":"10341:9:64"},{"kind":"number","nativeSrc":"10352:3:64","nodeType":"YulLiteral","src":"10352:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"10337:3:64","nodeType":"YulIdentifier","src":"10337:3:64"},"nativeSrc":"10337:19:64","nodeType":"YulFunctionCall","src":"10337:19:64"}],"functionName":{"name":"calldataload","nativeSrc":"10324:12:64","nodeType":"YulIdentifier","src":"10324:12:64"},"nativeSrc":"10324:33:64","nodeType":"YulFunctionCall","src":"10324:33:64"},"variables":[{"name":"offset","nativeSrc":"10314:6:64","nodeType":"YulTypedName","src":"10314:6:64","type":""}]},{"body":{"nativeSrc":"10404:83:64","nodeType":"YulBlock","src":"10404:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10406:77:64","nodeType":"YulIdentifier","src":"10406:77:64"},"nativeSrc":"10406:79:64","nodeType":"YulFunctionCall","src":"10406:79:64"},"nativeSrc":"10406:79:64","nodeType":"YulExpressionStatement","src":"10406:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10376:6:64","nodeType":"YulIdentifier","src":"10376:6:64"},{"kind":"number","nativeSrc":"10384:18:64","nodeType":"YulLiteral","src":"10384:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10373:2:64","nodeType":"YulIdentifier","src":"10373:2:64"},"nativeSrc":"10373:30:64","nodeType":"YulFunctionCall","src":"10373:30:64"},"nativeSrc":"10370:117:64","nodeType":"YulIf","src":"10370:117:64"},{"nativeSrc":"10501:72:64","nodeType":"YulAssignment","src":"10501:72:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10545:9:64","nodeType":"YulIdentifier","src":"10545:9:64"},{"name":"offset","nativeSrc":"10556:6:64","nodeType":"YulIdentifier","src":"10556:6:64"}],"functionName":{"name":"add","nativeSrc":"10541:3:64","nodeType":"YulIdentifier","src":"10541:3:64"},"nativeSrc":"10541:22:64","nodeType":"YulFunctionCall","src":"10541:22:64"},{"name":"dataEnd","nativeSrc":"10565:7:64","nodeType":"YulIdentifier","src":"10565:7:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"10511:29:64","nodeType":"YulIdentifier","src":"10511:29:64"},"nativeSrc":"10511:62:64","nodeType":"YulFunctionCall","src":"10511:62:64"},"variableNames":[{"name":"value4","nativeSrc":"10501:6:64","nodeType":"YulIdentifier","src":"10501:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr","nativeSrc":"9081:1509:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9212:9:64","nodeType":"YulTypedName","src":"9212:9:64","type":""},{"name":"dataEnd","nativeSrc":"9223:7:64","nodeType":"YulTypedName","src":"9223:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9235:6:64","nodeType":"YulTypedName","src":"9235:6:64","type":""},{"name":"value1","nativeSrc":"9243:6:64","nodeType":"YulTypedName","src":"9243:6:64","type":""},{"name":"value2","nativeSrc":"9251:6:64","nodeType":"YulTypedName","src":"9251:6:64","type":""},{"name":"value3","nativeSrc":"9259:6:64","nodeType":"YulTypedName","src":"9259:6:64","type":""},{"name":"value4","nativeSrc":"9267:6:64","nodeType":"YulTypedName","src":"9267:6:64","type":""}],"src":"9081:1509:64"},{"body":{"nativeSrc":"10678:229:64","nodeType":"YulBlock","src":"10678:229:64","statements":[{"body":{"nativeSrc":"10783:22:64","nodeType":"YulBlock","src":"10783:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"10785:16:64","nodeType":"YulIdentifier","src":"10785:16:64"},"nativeSrc":"10785:18:64","nodeType":"YulFunctionCall","src":"10785:18:64"},"nativeSrc":"10785:18:64","nodeType":"YulExpressionStatement","src":"10785:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10755:6:64","nodeType":"YulIdentifier","src":"10755:6:64"},{"kind":"number","nativeSrc":"10763:18:64","nodeType":"YulLiteral","src":"10763:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10752:2:64","nodeType":"YulIdentifier","src":"10752:2:64"},"nativeSrc":"10752:30:64","nodeType":"YulFunctionCall","src":"10752:30:64"},"nativeSrc":"10749:56:64","nodeType":"YulIf","src":"10749:56:64"},{"nativeSrc":"10815:25:64","nodeType":"YulAssignment","src":"10815:25:64","value":{"arguments":[{"name":"length","nativeSrc":"10827:6:64","nodeType":"YulIdentifier","src":"10827:6:64"},{"kind":"number","nativeSrc":"10835:4:64","nodeType":"YulLiteral","src":"10835:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"10823:3:64","nodeType":"YulIdentifier","src":"10823:3:64"},"nativeSrc":"10823:17:64","nodeType":"YulFunctionCall","src":"10823:17:64"},"variableNames":[{"name":"size","nativeSrc":"10815:4:64","nodeType":"YulIdentifier","src":"10815:4:64"}]},{"nativeSrc":"10877:23:64","nodeType":"YulAssignment","src":"10877:23:64","value":{"arguments":[{"name":"size","nativeSrc":"10889:4:64","nodeType":"YulIdentifier","src":"10889:4:64"},{"kind":"number","nativeSrc":"10895:4:64","nodeType":"YulLiteral","src":"10895:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10885:3:64","nodeType":"YulIdentifier","src":"10885:3:64"},"nativeSrc":"10885:15:64","nodeType":"YulFunctionCall","src":"10885:15:64"},"variableNames":[{"name":"size","nativeSrc":"10877:4:64","nodeType":"YulIdentifier","src":"10877:4:64"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10596:311:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"10662:6:64","nodeType":"YulTypedName","src":"10662:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"10673:4:64","nodeType":"YulTypedName","src":"10673:4:64","type":""}],"src":"10596:311:64"},{"body":{"nativeSrc":"11032:608:64","nodeType":"YulBlock","src":"11032:608:64","statements":[{"nativeSrc":"11042:90:64","nodeType":"YulAssignment","src":"11042:90:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"11124:6:64","nodeType":"YulIdentifier","src":"11124:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11067:56:64","nodeType":"YulIdentifier","src":"11067:56:64"},"nativeSrc":"11067:64:64","nodeType":"YulFunctionCall","src":"11067:64:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"11051:15:64","nodeType":"YulIdentifier","src":"11051:15:64"},"nativeSrc":"11051:81:64","nodeType":"YulFunctionCall","src":"11051:81:64"},"variableNames":[{"name":"array","nativeSrc":"11042:5:64","nodeType":"YulIdentifier","src":"11042:5:64"}]},{"nativeSrc":"11141:16:64","nodeType":"YulVariableDeclaration","src":"11141:16:64","value":{"name":"array","nativeSrc":"11152:5:64","nodeType":"YulIdentifier","src":"11152:5:64"},"variables":[{"name":"dst","nativeSrc":"11145:3:64","nodeType":"YulTypedName","src":"11145:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"11174:5:64","nodeType":"YulIdentifier","src":"11174:5:64"},{"name":"length","nativeSrc":"11181:6:64","nodeType":"YulIdentifier","src":"11181:6:64"}],"functionName":{"name":"mstore","nativeSrc":"11167:6:64","nodeType":"YulIdentifier","src":"11167:6:64"},"nativeSrc":"11167:21:64","nodeType":"YulFunctionCall","src":"11167:21:64"},"nativeSrc":"11167:21:64","nodeType":"YulExpressionStatement","src":"11167:21:64"},{"nativeSrc":"11197:23:64","nodeType":"YulAssignment","src":"11197:23:64","value":{"arguments":[{"name":"array","nativeSrc":"11208:5:64","nodeType":"YulIdentifier","src":"11208:5:64"},{"kind":"number","nativeSrc":"11215:4:64","nodeType":"YulLiteral","src":"11215:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11204:3:64","nodeType":"YulIdentifier","src":"11204:3:64"},"nativeSrc":"11204:16:64","nodeType":"YulFunctionCall","src":"11204:16:64"},"variableNames":[{"name":"dst","nativeSrc":"11197:3:64","nodeType":"YulIdentifier","src":"11197:3:64"}]},{"nativeSrc":"11230:44:64","nodeType":"YulVariableDeclaration","src":"11230:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"11248:6:64","nodeType":"YulIdentifier","src":"11248:6:64"},{"arguments":[{"name":"length","nativeSrc":"11260:6:64","nodeType":"YulIdentifier","src":"11260:6:64"},{"kind":"number","nativeSrc":"11268:4:64","nodeType":"YulLiteral","src":"11268:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"11256:3:64","nodeType":"YulIdentifier","src":"11256:3:64"},"nativeSrc":"11256:17:64","nodeType":"YulFunctionCall","src":"11256:17:64"}],"functionName":{"name":"add","nativeSrc":"11244:3:64","nodeType":"YulIdentifier","src":"11244:3:64"},"nativeSrc":"11244:30:64","nodeType":"YulFunctionCall","src":"11244:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"11234:6:64","nodeType":"YulTypedName","src":"11234:6:64","type":""}]},{"body":{"nativeSrc":"11302:103:64","nodeType":"YulBlock","src":"11302:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"11316:77:64","nodeType":"YulIdentifier","src":"11316:77:64"},"nativeSrc":"11316:79:64","nodeType":"YulFunctionCall","src":"11316:79:64"},"nativeSrc":"11316:79:64","nodeType":"YulExpressionStatement","src":"11316:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"11289:6:64","nodeType":"YulIdentifier","src":"11289:6:64"},{"name":"end","nativeSrc":"11297:3:64","nodeType":"YulIdentifier","src":"11297:3:64"}],"functionName":{"name":"gt","nativeSrc":"11286:2:64","nodeType":"YulIdentifier","src":"11286:2:64"},"nativeSrc":"11286:15:64","nodeType":"YulFunctionCall","src":"11286:15:64"},"nativeSrc":"11283:122:64","nodeType":"YulIf","src":"11283:122:64"},{"body":{"nativeSrc":"11490:144:64","nodeType":"YulBlock","src":"11490:144:64","statements":[{"nativeSrc":"11505:21:64","nodeType":"YulVariableDeclaration","src":"11505:21:64","value":{"name":"src","nativeSrc":"11523:3:64","nodeType":"YulIdentifier","src":"11523:3:64"},"variables":[{"name":"elementPos","nativeSrc":"11509:10:64","nodeType":"YulTypedName","src":"11509:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"11547:3:64","nodeType":"YulIdentifier","src":"11547:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"11573:10:64","nodeType":"YulIdentifier","src":"11573:10:64"},{"name":"end","nativeSrc":"11585:3:64","nodeType":"YulIdentifier","src":"11585:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11552:20:64","nodeType":"YulIdentifier","src":"11552:20:64"},"nativeSrc":"11552:37:64","nodeType":"YulFunctionCall","src":"11552:37:64"}],"functionName":{"name":"mstore","nativeSrc":"11540:6:64","nodeType":"YulIdentifier","src":"11540:6:64"},"nativeSrc":"11540:50:64","nodeType":"YulFunctionCall","src":"11540:50:64"},"nativeSrc":"11540:50:64","nodeType":"YulExpressionStatement","src":"11540:50:64"},{"nativeSrc":"11603:21:64","nodeType":"YulAssignment","src":"11603:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"11614:3:64","nodeType":"YulIdentifier","src":"11614:3:64"},{"kind":"number","nativeSrc":"11619:4:64","nodeType":"YulLiteral","src":"11619:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11610:3:64","nodeType":"YulIdentifier","src":"11610:3:64"},"nativeSrc":"11610:14:64","nodeType":"YulFunctionCall","src":"11610:14:64"},"variableNames":[{"name":"dst","nativeSrc":"11603:3:64","nodeType":"YulIdentifier","src":"11603:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"11443:3:64","nodeType":"YulIdentifier","src":"11443:3:64"},{"name":"srcEnd","nativeSrc":"11448:6:64","nodeType":"YulIdentifier","src":"11448:6:64"}],"functionName":{"name":"lt","nativeSrc":"11440:2:64","nodeType":"YulIdentifier","src":"11440:2:64"},"nativeSrc":"11440:15:64","nodeType":"YulFunctionCall","src":"11440:15:64"},"nativeSrc":"11414:220:64","nodeType":"YulForLoop","post":{"nativeSrc":"11456:25:64","nodeType":"YulBlock","src":"11456:25:64","statements":[{"nativeSrc":"11458:21:64","nodeType":"YulAssignment","src":"11458:21:64","value":{"arguments":[{"name":"src","nativeSrc":"11469:3:64","nodeType":"YulIdentifier","src":"11469:3:64"},{"kind":"number","nativeSrc":"11474:4:64","nodeType":"YulLiteral","src":"11474:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11465:3:64","nodeType":"YulIdentifier","src":"11465:3:64"},"nativeSrc":"11465:14:64","nodeType":"YulFunctionCall","src":"11465:14:64"},"variableNames":[{"name":"src","nativeSrc":"11458:3:64","nodeType":"YulIdentifier","src":"11458:3:64"}]}]},"pre":{"nativeSrc":"11418:21:64","nodeType":"YulBlock","src":"11418:21:64","statements":[{"nativeSrc":"11420:17:64","nodeType":"YulVariableDeclaration","src":"11420:17:64","value":{"name":"offset","nativeSrc":"11431:6:64","nodeType":"YulIdentifier","src":"11431:6:64"},"variables":[{"name":"src","nativeSrc":"11424:3:64","nodeType":"YulTypedName","src":"11424:3:64","type":""}]}]},"src":"11414:220:64"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10930:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11002:6:64","nodeType":"YulTypedName","src":"11002:6:64","type":""},{"name":"length","nativeSrc":"11010:6:64","nodeType":"YulTypedName","src":"11010:6:64","type":""},{"name":"end","nativeSrc":"11018:3:64","nodeType":"YulTypedName","src":"11018:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11026:5:64","nodeType":"YulTypedName","src":"11026:5:64","type":""}],"src":"10930:710:64"},{"body":{"nativeSrc":"11740:293:64","nodeType":"YulBlock","src":"11740:293:64","statements":[{"body":{"nativeSrc":"11789:83:64","nodeType":"YulBlock","src":"11789:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"11791:77:64","nodeType":"YulIdentifier","src":"11791:77:64"},"nativeSrc":"11791:79:64","nodeType":"YulFunctionCall","src":"11791:79:64"},"nativeSrc":"11791:79:64","nodeType":"YulExpressionStatement","src":"11791:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"11768:6:64","nodeType":"YulIdentifier","src":"11768:6:64"},{"kind":"number","nativeSrc":"11776:4:64","nodeType":"YulLiteral","src":"11776:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"11764:3:64","nodeType":"YulIdentifier","src":"11764:3:64"},"nativeSrc":"11764:17:64","nodeType":"YulFunctionCall","src":"11764:17:64"},{"name":"end","nativeSrc":"11783:3:64","nodeType":"YulIdentifier","src":"11783:3:64"}],"functionName":{"name":"slt","nativeSrc":"11760:3:64","nodeType":"YulIdentifier","src":"11760:3:64"},"nativeSrc":"11760:27:64","nodeType":"YulFunctionCall","src":"11760:27:64"}],"functionName":{"name":"iszero","nativeSrc":"11753:6:64","nodeType":"YulIdentifier","src":"11753:6:64"},"nativeSrc":"11753:35:64","nodeType":"YulFunctionCall","src":"11753:35:64"},"nativeSrc":"11750:122:64","nodeType":"YulIf","src":"11750:122:64"},{"nativeSrc":"11881:34:64","nodeType":"YulVariableDeclaration","src":"11881:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"11908:6:64","nodeType":"YulIdentifier","src":"11908:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"11895:12:64","nodeType":"YulIdentifier","src":"11895:12:64"},"nativeSrc":"11895:20:64","nodeType":"YulFunctionCall","src":"11895:20:64"},"variables":[{"name":"length","nativeSrc":"11885:6:64","nodeType":"YulTypedName","src":"11885:6:64","type":""}]},{"nativeSrc":"11924:103:64","nodeType":"YulAssignment","src":"11924:103:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12000:6:64","nodeType":"YulIdentifier","src":"12000:6:64"},{"kind":"number","nativeSrc":"12008:4:64","nodeType":"YulLiteral","src":"12008:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11996:3:64","nodeType":"YulIdentifier","src":"11996:3:64"},"nativeSrc":"11996:17:64","nodeType":"YulFunctionCall","src":"11996:17:64"},{"name":"length","nativeSrc":"12015:6:64","nodeType":"YulIdentifier","src":"12015:6:64"},{"name":"end","nativeSrc":"12023:3:64","nodeType":"YulIdentifier","src":"12023:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11933:62:64","nodeType":"YulIdentifier","src":"11933:62:64"},"nativeSrc":"11933:94:64","nodeType":"YulFunctionCall","src":"11933:94:64"},"variableNames":[{"name":"array","nativeSrc":"11924:5:64","nodeType":"YulIdentifier","src":"11924:5:64"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"11663:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11718:6:64","nodeType":"YulTypedName","src":"11718:6:64","type":""},{"name":"end","nativeSrc":"11726:3:64","nodeType":"YulTypedName","src":"11726:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11734:5:64","nodeType":"YulTypedName","src":"11734:5:64","type":""}],"src":"11663:370:64"},{"body":{"nativeSrc":"12172:761:64","nodeType":"YulBlock","src":"12172:761:64","statements":[{"body":{"nativeSrc":"12218:83:64","nodeType":"YulBlock","src":"12218:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12220:77:64","nodeType":"YulIdentifier","src":"12220:77:64"},"nativeSrc":"12220:79:64","nodeType":"YulFunctionCall","src":"12220:79:64"},"nativeSrc":"12220:79:64","nodeType":"YulExpressionStatement","src":"12220:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12193:7:64","nodeType":"YulIdentifier","src":"12193:7:64"},{"name":"headStart","nativeSrc":"12202:9:64","nodeType":"YulIdentifier","src":"12202:9:64"}],"functionName":{"name":"sub","nativeSrc":"12189:3:64","nodeType":"YulIdentifier","src":"12189:3:64"},"nativeSrc":"12189:23:64","nodeType":"YulFunctionCall","src":"12189:23:64"},{"kind":"number","nativeSrc":"12214:2:64","nodeType":"YulLiteral","src":"12214:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"12185:3:64","nodeType":"YulIdentifier","src":"12185:3:64"},"nativeSrc":"12185:32:64","nodeType":"YulFunctionCall","src":"12185:32:64"},"nativeSrc":"12182:119:64","nodeType":"YulIf","src":"12182:119:64"},{"nativeSrc":"12311:302:64","nodeType":"YulBlock","src":"12311:302:64","statements":[{"nativeSrc":"12326:45:64","nodeType":"YulVariableDeclaration","src":"12326:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12357:9:64","nodeType":"YulIdentifier","src":"12357:9:64"},{"kind":"number","nativeSrc":"12368:1:64","nodeType":"YulLiteral","src":"12368:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12353:3:64","nodeType":"YulIdentifier","src":"12353:3:64"},"nativeSrc":"12353:17:64","nodeType":"YulFunctionCall","src":"12353:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"12340:12:64","nodeType":"YulIdentifier","src":"12340:12:64"},"nativeSrc":"12340:31:64","nodeType":"YulFunctionCall","src":"12340:31:64"},"variables":[{"name":"offset","nativeSrc":"12330:6:64","nodeType":"YulTypedName","src":"12330:6:64","type":""}]},{"body":{"nativeSrc":"12418:83:64","nodeType":"YulBlock","src":"12418:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12420:77:64","nodeType":"YulIdentifier","src":"12420:77:64"},"nativeSrc":"12420:79:64","nodeType":"YulFunctionCall","src":"12420:79:64"},"nativeSrc":"12420:79:64","nodeType":"YulExpressionStatement","src":"12420:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12390:6:64","nodeType":"YulIdentifier","src":"12390:6:64"},{"kind":"number","nativeSrc":"12398:18:64","nodeType":"YulLiteral","src":"12398:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12387:2:64","nodeType":"YulIdentifier","src":"12387:2:64"},"nativeSrc":"12387:30:64","nodeType":"YulFunctionCall","src":"12387:30:64"},"nativeSrc":"12384:117:64","nodeType":"YulIf","src":"12384:117:64"},{"nativeSrc":"12515:88:64","nodeType":"YulAssignment","src":"12515:88:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12575:9:64","nodeType":"YulIdentifier","src":"12575:9:64"},{"name":"offset","nativeSrc":"12586:6:64","nodeType":"YulIdentifier","src":"12586:6:64"}],"functionName":{"name":"add","nativeSrc":"12571:3:64","nodeType":"YulIdentifier","src":"12571:3:64"},"nativeSrc":"12571:22:64","nodeType":"YulFunctionCall","src":"12571:22:64"},{"name":"dataEnd","nativeSrc":"12595:7:64","nodeType":"YulIdentifier","src":"12595:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"12525:45:64","nodeType":"YulIdentifier","src":"12525:45:64"},"nativeSrc":"12525:78:64","nodeType":"YulFunctionCall","src":"12525:78:64"},"variableNames":[{"name":"value0","nativeSrc":"12515:6:64","nodeType":"YulIdentifier","src":"12515:6:64"}]}]},{"nativeSrc":"12623:303:64","nodeType":"YulBlock","src":"12623:303:64","statements":[{"nativeSrc":"12638:46:64","nodeType":"YulVariableDeclaration","src":"12638:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12669:9:64","nodeType":"YulIdentifier","src":"12669:9:64"},{"kind":"number","nativeSrc":"12680:2:64","nodeType":"YulLiteral","src":"12680:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"12665:3:64","nodeType":"YulIdentifier","src":"12665:3:64"},"nativeSrc":"12665:18:64","nodeType":"YulFunctionCall","src":"12665:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"12652:12:64","nodeType":"YulIdentifier","src":"12652:12:64"},"nativeSrc":"12652:32:64","nodeType":"YulFunctionCall","src":"12652:32:64"},"variables":[{"name":"offset","nativeSrc":"12642:6:64","nodeType":"YulTypedName","src":"12642:6:64","type":""}]},{"body":{"nativeSrc":"12731:83:64","nodeType":"YulBlock","src":"12731:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"12733:77:64","nodeType":"YulIdentifier","src":"12733:77:64"},"nativeSrc":"12733:79:64","nodeType":"YulFunctionCall","src":"12733:79:64"},"nativeSrc":"12733:79:64","nodeType":"YulExpressionStatement","src":"12733:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12703:6:64","nodeType":"YulIdentifier","src":"12703:6:64"},{"kind":"number","nativeSrc":"12711:18:64","nodeType":"YulLiteral","src":"12711:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12700:2:64","nodeType":"YulIdentifier","src":"12700:2:64"},"nativeSrc":"12700:30:64","nodeType":"YulFunctionCall","src":"12700:30:64"},"nativeSrc":"12697:117:64","nodeType":"YulIf","src":"12697:117:64"},{"nativeSrc":"12828:88:64","nodeType":"YulAssignment","src":"12828:88:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12888:9:64","nodeType":"YulIdentifier","src":"12888:9:64"},{"name":"offset","nativeSrc":"12899:6:64","nodeType":"YulIdentifier","src":"12899:6:64"}],"functionName":{"name":"add","nativeSrc":"12884:3:64","nodeType":"YulIdentifier","src":"12884:3:64"},"nativeSrc":"12884:22:64","nodeType":"YulFunctionCall","src":"12884:22:64"},{"name":"dataEnd","nativeSrc":"12908:7:64","nodeType":"YulIdentifier","src":"12908:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12838:45:64","nodeType":"YulIdentifier","src":"12838:45:64"},"nativeSrc":"12838:78:64","nodeType":"YulFunctionCall","src":"12838:78:64"},"variableNames":[{"name":"value1","nativeSrc":"12828:6:64","nodeType":"YulIdentifier","src":"12828:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12039:894:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12134:9:64","nodeType":"YulTypedName","src":"12134:9:64","type":""},{"name":"dataEnd","nativeSrc":"12145:7:64","nodeType":"YulTypedName","src":"12145:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12157:6:64","nodeType":"YulTypedName","src":"12157:6:64","type":""},{"name":"value1","nativeSrc":"12165:6:64","nodeType":"YulTypedName","src":"12165:6:64","type":""}],"src":"12039:894:64"},{"body":{"nativeSrc":"13013:40:64","nodeType":"YulBlock","src":"13013:40:64","statements":[{"nativeSrc":"13024:22:64","nodeType":"YulAssignment","src":"13024:22:64","value":{"arguments":[{"name":"value","nativeSrc":"13040:5:64","nodeType":"YulIdentifier","src":"13040:5:64"}],"functionName":{"name":"mload","nativeSrc":"13034:5:64","nodeType":"YulIdentifier","src":"13034:5:64"},"nativeSrc":"13034:12:64","nodeType":"YulFunctionCall","src":"13034:12:64"},"variableNames":[{"name":"length","nativeSrc":"13024:6:64","nodeType":"YulIdentifier","src":"13024:6:64"}]}]},"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"12939:114:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12996:5:64","nodeType":"YulTypedName","src":"12996:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13006:6:64","nodeType":"YulTypedName","src":"13006:6:64","type":""}],"src":"12939:114:64"},{"body":{"nativeSrc":"13170:73:64","nodeType":"YulBlock","src":"13170:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13187:3:64","nodeType":"YulIdentifier","src":"13187:3:64"},{"name":"length","nativeSrc":"13192:6:64","nodeType":"YulIdentifier","src":"13192:6:64"}],"functionName":{"name":"mstore","nativeSrc":"13180:6:64","nodeType":"YulIdentifier","src":"13180:6:64"},"nativeSrc":"13180:19:64","nodeType":"YulFunctionCall","src":"13180:19:64"},"nativeSrc":"13180:19:64","nodeType":"YulExpressionStatement","src":"13180:19:64"},{"nativeSrc":"13208:29:64","nodeType":"YulAssignment","src":"13208:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"13227:3:64","nodeType":"YulIdentifier","src":"13227:3:64"},{"kind":"number","nativeSrc":"13232:4:64","nodeType":"YulLiteral","src":"13232:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13223:3:64","nodeType":"YulIdentifier","src":"13223:3:64"},"nativeSrc":"13223:14:64","nodeType":"YulFunctionCall","src":"13223:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"13208:11:64","nodeType":"YulIdentifier","src":"13208:11:64"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"13059:184:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13142:3:64","nodeType":"YulTypedName","src":"13142:3:64","type":""},{"name":"length","nativeSrc":"13147:6:64","nodeType":"YulTypedName","src":"13147:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13158:11:64","nodeType":"YulTypedName","src":"13158:11:64","type":""}],"src":"13059:184:64"},{"body":{"nativeSrc":"13321:60:64","nodeType":"YulBlock","src":"13321:60:64","statements":[{"nativeSrc":"13331:11:64","nodeType":"YulAssignment","src":"13331:11:64","value":{"name":"ptr","nativeSrc":"13339:3:64","nodeType":"YulIdentifier","src":"13339:3:64"},"variableNames":[{"name":"data","nativeSrc":"13331:4:64","nodeType":"YulIdentifier","src":"13331:4:64"}]},{"nativeSrc":"13352:22:64","nodeType":"YulAssignment","src":"13352:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"13364:3:64","nodeType":"YulIdentifier","src":"13364:3:64"},{"kind":"number","nativeSrc":"13369:4:64","nodeType":"YulLiteral","src":"13369:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13360:3:64","nodeType":"YulIdentifier","src":"13360:3:64"},"nativeSrc":"13360:14:64","nodeType":"YulFunctionCall","src":"13360:14:64"},"variableNames":[{"name":"data","nativeSrc":"13352:4:64","nodeType":"YulIdentifier","src":"13352:4:64"}]}]},"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13249:132:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13308:3:64","nodeType":"YulTypedName","src":"13308:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"13316:4:64","nodeType":"YulTypedName","src":"13316:4:64","type":""}],"src":"13249:132:64"},{"body":{"nativeSrc":"13442:53:64","nodeType":"YulBlock","src":"13442:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13459:3:64","nodeType":"YulIdentifier","src":"13459:3:64"},{"arguments":[{"name":"value","nativeSrc":"13482:5:64","nodeType":"YulIdentifier","src":"13482:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"13464:17:64","nodeType":"YulIdentifier","src":"13464:17:64"},"nativeSrc":"13464:24:64","nodeType":"YulFunctionCall","src":"13464:24:64"}],"functionName":{"name":"mstore","nativeSrc":"13452:6:64","nodeType":"YulIdentifier","src":"13452:6:64"},"nativeSrc":"13452:37:64","nodeType":"YulFunctionCall","src":"13452:37:64"},"nativeSrc":"13452:37:64","nodeType":"YulExpressionStatement","src":"13452:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13387:108:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13430:5:64","nodeType":"YulTypedName","src":"13430:5:64","type":""},{"name":"pos","nativeSrc":"13437:3:64","nodeType":"YulTypedName","src":"13437:3:64","type":""}],"src":"13387:108:64"},{"body":{"nativeSrc":"13581:99:64","nodeType":"YulBlock","src":"13581:99:64","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"13625:6:64","nodeType":"YulIdentifier","src":"13625:6:64"},{"name":"pos","nativeSrc":"13633:3:64","nodeType":"YulIdentifier","src":"13633:3:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"13591:33:64","nodeType":"YulIdentifier","src":"13591:33:64"},"nativeSrc":"13591:46:64","nodeType":"YulFunctionCall","src":"13591:46:64"},"nativeSrc":"13591:46:64","nodeType":"YulExpressionStatement","src":"13591:46:64"},{"nativeSrc":"13646:28:64","nodeType":"YulAssignment","src":"13646:28:64","value":{"arguments":[{"name":"pos","nativeSrc":"13664:3:64","nodeType":"YulIdentifier","src":"13664:3:64"},{"kind":"number","nativeSrc":"13669:4:64","nodeType":"YulLiteral","src":"13669:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13660:3:64","nodeType":"YulIdentifier","src":"13660:3:64"},"nativeSrc":"13660:14:64","nodeType":"YulFunctionCall","src":"13660:14:64"},"variableNames":[{"name":"updatedPos","nativeSrc":"13646:10:64","nodeType":"YulIdentifier","src":"13646:10:64"}]}]},"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"13501:179:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"13554:6:64","nodeType":"YulTypedName","src":"13554:6:64","type":""},{"name":"pos","nativeSrc":"13562:3:64","nodeType":"YulTypedName","src":"13562:3:64","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"13570:10:64","nodeType":"YulTypedName","src":"13570:10:64","type":""}],"src":"13501:179:64"},{"body":{"nativeSrc":"13761:38:64","nodeType":"YulBlock","src":"13761:38:64","statements":[{"nativeSrc":"13771:22:64","nodeType":"YulAssignment","src":"13771:22:64","value":{"arguments":[{"name":"ptr","nativeSrc":"13783:3:64","nodeType":"YulIdentifier","src":"13783:3:64"},{"kind":"number","nativeSrc":"13788:4:64","nodeType":"YulLiteral","src":"13788:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13779:3:64","nodeType":"YulIdentifier","src":"13779:3:64"},"nativeSrc":"13779:14:64","nodeType":"YulFunctionCall","src":"13779:14:64"},"variableNames":[{"name":"next","nativeSrc":"13771:4:64","nodeType":"YulIdentifier","src":"13771:4:64"}]}]},"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13686:113:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"13748:3:64","nodeType":"YulTypedName","src":"13748:3:64","type":""}],"returnVariables":[{"name":"next","nativeSrc":"13756:4:64","nodeType":"YulTypedName","src":"13756:4:64","type":""}],"src":"13686:113:64"},{"body":{"nativeSrc":"13959:608:64","nodeType":"YulBlock","src":"13959:608:64","statements":[{"nativeSrc":"13969:68:64","nodeType":"YulVariableDeclaration","src":"13969:68:64","value":{"arguments":[{"name":"value","nativeSrc":"14031:5:64","nodeType":"YulIdentifier","src":"14031:5:64"}],"functionName":{"name":"array_length_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"13983:47:64","nodeType":"YulIdentifier","src":"13983:47:64"},"nativeSrc":"13983:54:64","nodeType":"YulFunctionCall","src":"13983:54:64"},"variables":[{"name":"length","nativeSrc":"13973:6:64","nodeType":"YulTypedName","src":"13973:6:64","type":""}]},{"nativeSrc":"14046:93:64","nodeType":"YulAssignment","src":"14046:93:64","value":{"arguments":[{"name":"pos","nativeSrc":"14127:3:64","nodeType":"YulIdentifier","src":"14127:3:64"},{"name":"length","nativeSrc":"14132:6:64","nodeType":"YulIdentifier","src":"14132:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"14053:73:64","nodeType":"YulIdentifier","src":"14053:73:64"},"nativeSrc":"14053:86:64","nodeType":"YulFunctionCall","src":"14053:86:64"},"variableNames":[{"name":"pos","nativeSrc":"14046:3:64","nodeType":"YulIdentifier","src":"14046:3:64"}]},{"nativeSrc":"14148:71:64","nodeType":"YulVariableDeclaration","src":"14148:71:64","value":{"arguments":[{"name":"value","nativeSrc":"14213:5:64","nodeType":"YulIdentifier","src":"14213:5:64"}],"functionName":{"name":"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"14163:49:64","nodeType":"YulIdentifier","src":"14163:49:64"},"nativeSrc":"14163:56:64","nodeType":"YulFunctionCall","src":"14163:56:64"},"variables":[{"name":"baseRef","nativeSrc":"14152:7:64","nodeType":"YulTypedName","src":"14152:7:64","type":""}]},{"nativeSrc":"14228:21:64","nodeType":"YulVariableDeclaration","src":"14228:21:64","value":{"name":"baseRef","nativeSrc":"14242:7:64","nodeType":"YulIdentifier","src":"14242:7:64"},"variables":[{"name":"srcPtr","nativeSrc":"14232:6:64","nodeType":"YulTypedName","src":"14232:6:64","type":""}]},{"body":{"nativeSrc":"14318:224:64","nodeType":"YulBlock","src":"14318:224:64","statements":[{"nativeSrc":"14332:34:64","nodeType":"YulVariableDeclaration","src":"14332:34:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14359:6:64","nodeType":"YulIdentifier","src":"14359:6:64"}],"functionName":{"name":"mload","nativeSrc":"14353:5:64","nodeType":"YulIdentifier","src":"14353:5:64"},"nativeSrc":"14353:13:64","nodeType":"YulFunctionCall","src":"14353:13:64"},"variables":[{"name":"elementValue0","nativeSrc":"14336:13:64","nodeType":"YulTypedName","src":"14336:13:64","type":""}]},{"nativeSrc":"14379:70:64","nodeType":"YulAssignment","src":"14379:70:64","value":{"arguments":[{"name":"elementValue0","nativeSrc":"14430:13:64","nodeType":"YulIdentifier","src":"14430:13:64"},{"name":"pos","nativeSrc":"14445:3:64","nodeType":"YulIdentifier","src":"14445:3:64"}],"functionName":{"name":"abi_encodeUpdatedPos_t_uint256_to_t_uint256","nativeSrc":"14386:43:64","nodeType":"YulIdentifier","src":"14386:43:64"},"nativeSrc":"14386:63:64","nodeType":"YulFunctionCall","src":"14386:63:64"},"variableNames":[{"name":"pos","nativeSrc":"14379:3:64","nodeType":"YulIdentifier","src":"14379:3:64"}]},{"nativeSrc":"14462:70:64","nodeType":"YulAssignment","src":"14462:70:64","value":{"arguments":[{"name":"srcPtr","nativeSrc":"14525:6:64","nodeType":"YulIdentifier","src":"14525:6:64"}],"functionName":{"name":"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr","nativeSrc":"14472:52:64","nodeType":"YulIdentifier","src":"14472:52:64"},"nativeSrc":"14472:60:64","nodeType":"YulFunctionCall","src":"14472:60:64"},"variableNames":[{"name":"srcPtr","nativeSrc":"14462:6:64","nodeType":"YulIdentifier","src":"14462:6:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"14280:1:64","nodeType":"YulIdentifier","src":"14280:1:64"},{"name":"length","nativeSrc":"14283:6:64","nodeType":"YulIdentifier","src":"14283:6:64"}],"functionName":{"name":"lt","nativeSrc":"14277:2:64","nodeType":"YulIdentifier","src":"14277:2:64"},"nativeSrc":"14277:13:64","nodeType":"YulFunctionCall","src":"14277:13:64"},"nativeSrc":"14258:284:64","nodeType":"YulForLoop","post":{"nativeSrc":"14291:18:64","nodeType":"YulBlock","src":"14291:18:64","statements":[{"nativeSrc":"14293:14:64","nodeType":"YulAssignment","src":"14293:14:64","value":{"arguments":[{"name":"i","nativeSrc":"14302:1:64","nodeType":"YulIdentifier","src":"14302:1:64"},{"kind":"number","nativeSrc":"14305:1:64","nodeType":"YulLiteral","src":"14305:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14298:3:64","nodeType":"YulIdentifier","src":"14298:3:64"},"nativeSrc":"14298:9:64","nodeType":"YulFunctionCall","src":"14298:9:64"},"variableNames":[{"name":"i","nativeSrc":"14293:1:64","nodeType":"YulIdentifier","src":"14293:1:64"}]}]},"pre":{"nativeSrc":"14262:14:64","nodeType":"YulBlock","src":"14262:14:64","statements":[{"nativeSrc":"14264:10:64","nodeType":"YulVariableDeclaration","src":"14264:10:64","value":{"kind":"number","nativeSrc":"14273:1:64","nodeType":"YulLiteral","src":"14273:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"14268:1:64","nodeType":"YulTypedName","src":"14268:1:64","type":""}]}]},"src":"14258:284:64"},{"nativeSrc":"14551:10:64","nodeType":"YulAssignment","src":"14551:10:64","value":{"name":"pos","nativeSrc":"14558:3:64","nodeType":"YulIdentifier","src":"14558:3:64"},"variableNames":[{"name":"end","nativeSrc":"14551:3:64","nodeType":"YulIdentifier","src":"14551:3:64"}]}]},"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"13835:732:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13938:5:64","nodeType":"YulTypedName","src":"13938:5:64","type":""},{"name":"pos","nativeSrc":"13945:3:64","nodeType":"YulTypedName","src":"13945:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13954:3:64","nodeType":"YulTypedName","src":"13954:3:64","type":""}],"src":"13835:732:64"},{"body":{"nativeSrc":"14721:225:64","nodeType":"YulBlock","src":"14721:225:64","statements":[{"nativeSrc":"14731:26:64","nodeType":"YulAssignment","src":"14731:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"14743:9:64","nodeType":"YulIdentifier","src":"14743:9:64"},{"kind":"number","nativeSrc":"14754:2:64","nodeType":"YulLiteral","src":"14754:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14739:3:64","nodeType":"YulIdentifier","src":"14739:3:64"},"nativeSrc":"14739:18:64","nodeType":"YulFunctionCall","src":"14739:18:64"},"variableNames":[{"name":"tail","nativeSrc":"14731:4:64","nodeType":"YulIdentifier","src":"14731:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14778:9:64","nodeType":"YulIdentifier","src":"14778:9:64"},{"kind":"number","nativeSrc":"14789:1:64","nodeType":"YulLiteral","src":"14789:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14774:3:64","nodeType":"YulIdentifier","src":"14774:3:64"},"nativeSrc":"14774:17:64","nodeType":"YulFunctionCall","src":"14774:17:64"},{"arguments":[{"name":"tail","nativeSrc":"14797:4:64","nodeType":"YulIdentifier","src":"14797:4:64"},{"name":"headStart","nativeSrc":"14803:9:64","nodeType":"YulIdentifier","src":"14803:9:64"}],"functionName":{"name":"sub","nativeSrc":"14793:3:64","nodeType":"YulIdentifier","src":"14793:3:64"},"nativeSrc":"14793:20:64","nodeType":"YulFunctionCall","src":"14793:20:64"}],"functionName":{"name":"mstore","nativeSrc":"14767:6:64","nodeType":"YulIdentifier","src":"14767:6:64"},"nativeSrc":"14767:47:64","nodeType":"YulFunctionCall","src":"14767:47:64"},"nativeSrc":"14767:47:64","nodeType":"YulExpressionStatement","src":"14767:47:64"},{"nativeSrc":"14823:116:64","nodeType":"YulAssignment","src":"14823:116:64","value":{"arguments":[{"name":"value0","nativeSrc":"14925:6:64","nodeType":"YulIdentifier","src":"14925:6:64"},{"name":"tail","nativeSrc":"14934:4:64","nodeType":"YulIdentifier","src":"14934:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"14831:93:64","nodeType":"YulIdentifier","src":"14831:93:64"},"nativeSrc":"14831:108:64","nodeType":"YulFunctionCall","src":"14831:108:64"},"variableNames":[{"name":"tail","nativeSrc":"14823:4:64","nodeType":"YulIdentifier","src":"14823:4:64"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"14573:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14693:9:64","nodeType":"YulTypedName","src":"14693:9:64","type":""},{"name":"value0","nativeSrc":"14705:6:64","nodeType":"YulTypedName","src":"14705:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14716:4:64","nodeType":"YulTypedName","src":"14716:4:64","type":""}],"src":"14573:373:64"},{"body":{"nativeSrc":"14992:76:64","nodeType":"YulBlock","src":"14992:76:64","statements":[{"body":{"nativeSrc":"15046:16:64","nodeType":"YulBlock","src":"15046:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15055:1:64","nodeType":"YulLiteral","src":"15055:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"15058:1:64","nodeType":"YulLiteral","src":"15058:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"15048:6:64","nodeType":"YulIdentifier","src":"15048:6:64"},"nativeSrc":"15048:12:64","nodeType":"YulFunctionCall","src":"15048:12:64"},"nativeSrc":"15048:12:64","nodeType":"YulExpressionStatement","src":"15048:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15015:5:64","nodeType":"YulIdentifier","src":"15015:5:64"},{"arguments":[{"name":"value","nativeSrc":"15037:5:64","nodeType":"YulIdentifier","src":"15037:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"15022:14:64","nodeType":"YulIdentifier","src":"15022:14:64"},"nativeSrc":"15022:21:64","nodeType":"YulFunctionCall","src":"15022:21:64"}],"functionName":{"name":"eq","nativeSrc":"15012:2:64","nodeType":"YulIdentifier","src":"15012:2:64"},"nativeSrc":"15012:32:64","nodeType":"YulFunctionCall","src":"15012:32:64"}],"functionName":{"name":"iszero","nativeSrc":"15005:6:64","nodeType":"YulIdentifier","src":"15005:6:64"},"nativeSrc":"15005:40:64","nodeType":"YulFunctionCall","src":"15005:40:64"},"nativeSrc":"15002:60:64","nodeType":"YulIf","src":"15002:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"14952:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14985:5:64","nodeType":"YulTypedName","src":"14985:5:64","type":""}],"src":"14952:116:64"},{"body":{"nativeSrc":"15123:84:64","nodeType":"YulBlock","src":"15123:84:64","statements":[{"nativeSrc":"15133:29:64","nodeType":"YulAssignment","src":"15133:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"15155:6:64","nodeType":"YulIdentifier","src":"15155:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"15142:12:64","nodeType":"YulIdentifier","src":"15142:12:64"},"nativeSrc":"15142:20:64","nodeType":"YulFunctionCall","src":"15142:20:64"},"variableNames":[{"name":"value","nativeSrc":"15133:5:64","nodeType":"YulIdentifier","src":"15133:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"15195:5:64","nodeType":"YulIdentifier","src":"15195:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"15171:23:64","nodeType":"YulIdentifier","src":"15171:23:64"},"nativeSrc":"15171:30:64","nodeType":"YulFunctionCall","src":"15171:30:64"},"nativeSrc":"15171:30:64","nodeType":"YulExpressionStatement","src":"15171:30:64"}]},"name":"abi_decode_t_bool","nativeSrc":"15074:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"15101:6:64","nodeType":"YulTypedName","src":"15101:6:64","type":""},{"name":"end","nativeSrc":"15109:3:64","nodeType":"YulTypedName","src":"15109:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"15117:5:64","nodeType":"YulTypedName","src":"15117:5:64","type":""}],"src":"15074:133:64"},{"body":{"nativeSrc":"15293:388:64","nodeType":"YulBlock","src":"15293:388:64","statements":[{"body":{"nativeSrc":"15339:83:64","nodeType":"YulBlock","src":"15339:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15341:77:64","nodeType":"YulIdentifier","src":"15341:77:64"},"nativeSrc":"15341:79:64","nodeType":"YulFunctionCall","src":"15341:79:64"},"nativeSrc":"15341:79:64","nodeType":"YulExpressionStatement","src":"15341:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15314:7:64","nodeType":"YulIdentifier","src":"15314:7:64"},{"name":"headStart","nativeSrc":"15323:9:64","nodeType":"YulIdentifier","src":"15323:9:64"}],"functionName":{"name":"sub","nativeSrc":"15310:3:64","nodeType":"YulIdentifier","src":"15310:3:64"},"nativeSrc":"15310:23:64","nodeType":"YulFunctionCall","src":"15310:23:64"},{"kind":"number","nativeSrc":"15335:2:64","nodeType":"YulLiteral","src":"15335:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15306:3:64","nodeType":"YulIdentifier","src":"15306:3:64"},"nativeSrc":"15306:32:64","nodeType":"YulFunctionCall","src":"15306:32:64"},"nativeSrc":"15303:119:64","nodeType":"YulIf","src":"15303:119:64"},{"nativeSrc":"15432:117:64","nodeType":"YulBlock","src":"15432:117:64","statements":[{"nativeSrc":"15447:15:64","nodeType":"YulVariableDeclaration","src":"15447:15:64","value":{"kind":"number","nativeSrc":"15461:1:64","nodeType":"YulLiteral","src":"15461:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15451:6:64","nodeType":"YulTypedName","src":"15451:6:64","type":""}]},{"nativeSrc":"15476:63:64","nodeType":"YulAssignment","src":"15476:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15511:9:64","nodeType":"YulIdentifier","src":"15511:9:64"},{"name":"offset","nativeSrc":"15522:6:64","nodeType":"YulIdentifier","src":"15522:6:64"}],"functionName":{"name":"add","nativeSrc":"15507:3:64","nodeType":"YulIdentifier","src":"15507:3:64"},"nativeSrc":"15507:22:64","nodeType":"YulFunctionCall","src":"15507:22:64"},{"name":"dataEnd","nativeSrc":"15531:7:64","nodeType":"YulIdentifier","src":"15531:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15486:20:64","nodeType":"YulIdentifier","src":"15486:20:64"},"nativeSrc":"15486:53:64","nodeType":"YulFunctionCall","src":"15486:53:64"},"variableNames":[{"name":"value0","nativeSrc":"15476:6:64","nodeType":"YulIdentifier","src":"15476:6:64"}]}]},{"nativeSrc":"15559:115:64","nodeType":"YulBlock","src":"15559:115:64","statements":[{"nativeSrc":"15574:16:64","nodeType":"YulVariableDeclaration","src":"15574:16:64","value":{"kind":"number","nativeSrc":"15588:2:64","nodeType":"YulLiteral","src":"15588:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15578:6:64","nodeType":"YulTypedName","src":"15578:6:64","type":""}]},{"nativeSrc":"15604:60:64","nodeType":"YulAssignment","src":"15604:60:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15636:9:64","nodeType":"YulIdentifier","src":"15636:9:64"},{"name":"offset","nativeSrc":"15647:6:64","nodeType":"YulIdentifier","src":"15647:6:64"}],"functionName":{"name":"add","nativeSrc":"15632:3:64","nodeType":"YulIdentifier","src":"15632:3:64"},"nativeSrc":"15632:22:64","nodeType":"YulFunctionCall","src":"15632:22:64"},{"name":"dataEnd","nativeSrc":"15656:7:64","nodeType":"YulIdentifier","src":"15656:7:64"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"15614:17:64","nodeType":"YulIdentifier","src":"15614:17:64"},"nativeSrc":"15614:50:64","nodeType":"YulFunctionCall","src":"15614:50:64"},"variableNames":[{"name":"value1","nativeSrc":"15604:6:64","nodeType":"YulIdentifier","src":"15604:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"15213:468:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15255:9:64","nodeType":"YulTypedName","src":"15255:9:64","type":""},{"name":"dataEnd","nativeSrc":"15266:7:64","nodeType":"YulTypedName","src":"15266:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15278:6:64","nodeType":"YulTypedName","src":"15278:6:64","type":""},{"name":"value1","nativeSrc":"15286:6:64","nodeType":"YulTypedName","src":"15286:6:64","type":""}],"src":"15213:468:64"},{"body":{"nativeSrc":"15770:391:64","nodeType":"YulBlock","src":"15770:391:64","statements":[{"body":{"nativeSrc":"15816:83:64","nodeType":"YulBlock","src":"15816:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15818:77:64","nodeType":"YulIdentifier","src":"15818:77:64"},"nativeSrc":"15818:79:64","nodeType":"YulFunctionCall","src":"15818:79:64"},"nativeSrc":"15818:79:64","nodeType":"YulExpressionStatement","src":"15818:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15791:7:64","nodeType":"YulIdentifier","src":"15791:7:64"},{"name":"headStart","nativeSrc":"15800:9:64","nodeType":"YulIdentifier","src":"15800:9:64"}],"functionName":{"name":"sub","nativeSrc":"15787:3:64","nodeType":"YulIdentifier","src":"15787:3:64"},"nativeSrc":"15787:23:64","nodeType":"YulFunctionCall","src":"15787:23:64"},{"kind":"number","nativeSrc":"15812:2:64","nodeType":"YulLiteral","src":"15812:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"15783:3:64","nodeType":"YulIdentifier","src":"15783:3:64"},"nativeSrc":"15783:32:64","nodeType":"YulFunctionCall","src":"15783:32:64"},"nativeSrc":"15780:119:64","nodeType":"YulIf","src":"15780:119:64"},{"nativeSrc":"15909:117:64","nodeType":"YulBlock","src":"15909:117:64","statements":[{"nativeSrc":"15924:15:64","nodeType":"YulVariableDeclaration","src":"15924:15:64","value":{"kind":"number","nativeSrc":"15938:1:64","nodeType":"YulLiteral","src":"15938:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"15928:6:64","nodeType":"YulTypedName","src":"15928:6:64","type":""}]},{"nativeSrc":"15953:63:64","nodeType":"YulAssignment","src":"15953:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15988:9:64","nodeType":"YulIdentifier","src":"15988:9:64"},{"name":"offset","nativeSrc":"15999:6:64","nodeType":"YulIdentifier","src":"15999:6:64"}],"functionName":{"name":"add","nativeSrc":"15984:3:64","nodeType":"YulIdentifier","src":"15984:3:64"},"nativeSrc":"15984:22:64","nodeType":"YulFunctionCall","src":"15984:22:64"},{"name":"dataEnd","nativeSrc":"16008:7:64","nodeType":"YulIdentifier","src":"16008:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"15963:20:64","nodeType":"YulIdentifier","src":"15963:20:64"},"nativeSrc":"15963:53:64","nodeType":"YulFunctionCall","src":"15963:53:64"},"variableNames":[{"name":"value0","nativeSrc":"15953:6:64","nodeType":"YulIdentifier","src":"15953:6:64"}]}]},{"nativeSrc":"16036:118:64","nodeType":"YulBlock","src":"16036:118:64","statements":[{"nativeSrc":"16051:16:64","nodeType":"YulVariableDeclaration","src":"16051:16:64","value":{"kind":"number","nativeSrc":"16065:2:64","nodeType":"YulLiteral","src":"16065:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16055:6:64","nodeType":"YulTypedName","src":"16055:6:64","type":""}]},{"nativeSrc":"16081:63:64","nodeType":"YulAssignment","src":"16081:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16116:9:64","nodeType":"YulIdentifier","src":"16116:9:64"},{"name":"offset","nativeSrc":"16127:6:64","nodeType":"YulIdentifier","src":"16127:6:64"}],"functionName":{"name":"add","nativeSrc":"16112:3:64","nodeType":"YulIdentifier","src":"16112:3:64"},"nativeSrc":"16112:22:64","nodeType":"YulFunctionCall","src":"16112:22:64"},{"name":"dataEnd","nativeSrc":"16136:7:64","nodeType":"YulIdentifier","src":"16136:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16091:20:64","nodeType":"YulIdentifier","src":"16091:20:64"},"nativeSrc":"16091:53:64","nodeType":"YulFunctionCall","src":"16091:53:64"},"variableNames":[{"name":"value1","nativeSrc":"16081:6:64","nodeType":"YulIdentifier","src":"16081:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"15687:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15732:9:64","nodeType":"YulTypedName","src":"15732:9:64","type":""},{"name":"dataEnd","nativeSrc":"15743:7:64","nodeType":"YulTypedName","src":"15743:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15755:6:64","nodeType":"YulTypedName","src":"15755:6:64","type":""},{"name":"value1","nativeSrc":"15763:6:64","nodeType":"YulTypedName","src":"15763:6:64","type":""}],"src":"15687:474:64"},{"body":{"nativeSrc":"16310:946:64","nodeType":"YulBlock","src":"16310:946:64","statements":[{"body":{"nativeSrc":"16357:83:64","nodeType":"YulBlock","src":"16357:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"16359:77:64","nodeType":"YulIdentifier","src":"16359:77:64"},"nativeSrc":"16359:79:64","nodeType":"YulFunctionCall","src":"16359:79:64"},"nativeSrc":"16359:79:64","nodeType":"YulExpressionStatement","src":"16359:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"16331:7:64","nodeType":"YulIdentifier","src":"16331:7:64"},{"name":"headStart","nativeSrc":"16340:9:64","nodeType":"YulIdentifier","src":"16340:9:64"}],"functionName":{"name":"sub","nativeSrc":"16327:3:64","nodeType":"YulIdentifier","src":"16327:3:64"},"nativeSrc":"16327:23:64","nodeType":"YulFunctionCall","src":"16327:23:64"},{"kind":"number","nativeSrc":"16352:3:64","nodeType":"YulLiteral","src":"16352:3:64","type":"","value":"160"}],"functionName":{"name":"slt","nativeSrc":"16323:3:64","nodeType":"YulIdentifier","src":"16323:3:64"},"nativeSrc":"16323:33:64","nodeType":"YulFunctionCall","src":"16323:33:64"},"nativeSrc":"16320:120:64","nodeType":"YulIf","src":"16320:120:64"},{"nativeSrc":"16450:117:64","nodeType":"YulBlock","src":"16450:117:64","statements":[{"nativeSrc":"16465:15:64","nodeType":"YulVariableDeclaration","src":"16465:15:64","value":{"kind":"number","nativeSrc":"16479:1:64","nodeType":"YulLiteral","src":"16479:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"16469:6:64","nodeType":"YulTypedName","src":"16469:6:64","type":""}]},{"nativeSrc":"16494:63:64","nodeType":"YulAssignment","src":"16494:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16529:9:64","nodeType":"YulIdentifier","src":"16529:9:64"},{"name":"offset","nativeSrc":"16540:6:64","nodeType":"YulIdentifier","src":"16540:6:64"}],"functionName":{"name":"add","nativeSrc":"16525:3:64","nodeType":"YulIdentifier","src":"16525:3:64"},"nativeSrc":"16525:22:64","nodeType":"YulFunctionCall","src":"16525:22:64"},{"name":"dataEnd","nativeSrc":"16549:7:64","nodeType":"YulIdentifier","src":"16549:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16504:20:64","nodeType":"YulIdentifier","src":"16504:20:64"},"nativeSrc":"16504:53:64","nodeType":"YulFunctionCall","src":"16504:53:64"},"variableNames":[{"name":"value0","nativeSrc":"16494:6:64","nodeType":"YulIdentifier","src":"16494:6:64"}]}]},{"nativeSrc":"16577:118:64","nodeType":"YulBlock","src":"16577:118:64","statements":[{"nativeSrc":"16592:16:64","nodeType":"YulVariableDeclaration","src":"16592:16:64","value":{"kind":"number","nativeSrc":"16606:2:64","nodeType":"YulLiteral","src":"16606:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"16596:6:64","nodeType":"YulTypedName","src":"16596:6:64","type":""}]},{"nativeSrc":"16622:63:64","nodeType":"YulAssignment","src":"16622:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16657:9:64","nodeType":"YulIdentifier","src":"16657:9:64"},{"name":"offset","nativeSrc":"16668:6:64","nodeType":"YulIdentifier","src":"16668:6:64"}],"functionName":{"name":"add","nativeSrc":"16653:3:64","nodeType":"YulIdentifier","src":"16653:3:64"},"nativeSrc":"16653:22:64","nodeType":"YulFunctionCall","src":"16653:22:64"},{"name":"dataEnd","nativeSrc":"16677:7:64","nodeType":"YulIdentifier","src":"16677:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"16632:20:64","nodeType":"YulIdentifier","src":"16632:20:64"},"nativeSrc":"16632:53:64","nodeType":"YulFunctionCall","src":"16632:53:64"},"variableNames":[{"name":"value1","nativeSrc":"16622:6:64","nodeType":"YulIdentifier","src":"16622:6:64"}]}]},{"nativeSrc":"16705:118:64","nodeType":"YulBlock","src":"16705:118:64","statements":[{"nativeSrc":"16720:16:64","nodeType":"YulVariableDeclaration","src":"16720:16:64","value":{"kind":"number","nativeSrc":"16734:2:64","nodeType":"YulLiteral","src":"16734:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"16724:6:64","nodeType":"YulTypedName","src":"16724:6:64","type":""}]},{"nativeSrc":"16750:63:64","nodeType":"YulAssignment","src":"16750:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16785:9:64","nodeType":"YulIdentifier","src":"16785:9:64"},{"name":"offset","nativeSrc":"16796:6:64","nodeType":"YulIdentifier","src":"16796:6:64"}],"functionName":{"name":"add","nativeSrc":"16781:3:64","nodeType":"YulIdentifier","src":"16781:3:64"},"nativeSrc":"16781:22:64","nodeType":"YulFunctionCall","src":"16781:22:64"},{"name":"dataEnd","nativeSrc":"16805:7:64","nodeType":"YulIdentifier","src":"16805:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16760:20:64","nodeType":"YulIdentifier","src":"16760:20:64"},"nativeSrc":"16760:53:64","nodeType":"YulFunctionCall","src":"16760:53:64"},"variableNames":[{"name":"value2","nativeSrc":"16750:6:64","nodeType":"YulIdentifier","src":"16750:6:64"}]}]},{"nativeSrc":"16833:118:64","nodeType":"YulBlock","src":"16833:118:64","statements":[{"nativeSrc":"16848:16:64","nodeType":"YulVariableDeclaration","src":"16848:16:64","value":{"kind":"number","nativeSrc":"16862:2:64","nodeType":"YulLiteral","src":"16862:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"16852:6:64","nodeType":"YulTypedName","src":"16852:6:64","type":""}]},{"nativeSrc":"16878:63:64","nodeType":"YulAssignment","src":"16878:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"16913:9:64","nodeType":"YulIdentifier","src":"16913:9:64"},{"name":"offset","nativeSrc":"16924:6:64","nodeType":"YulIdentifier","src":"16924:6:64"}],"functionName":{"name":"add","nativeSrc":"16909:3:64","nodeType":"YulIdentifier","src":"16909:3:64"},"nativeSrc":"16909:22:64","nodeType":"YulFunctionCall","src":"16909:22:64"},{"name":"dataEnd","nativeSrc":"16933:7:64","nodeType":"YulIdentifier","src":"16933:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"16888:20:64","nodeType":"YulIdentifier","src":"16888:20:64"},"nativeSrc":"16888:53:64","nodeType":"YulFunctionCall","src":"16888:53:64"},"variableNames":[{"name":"value3","nativeSrc":"16878:6:64","nodeType":"YulIdentifier","src":"16878:6:64"}]}]},{"nativeSrc":"16961:288:64","nodeType":"YulBlock","src":"16961:288:64","statements":[{"nativeSrc":"16976:47:64","nodeType":"YulVariableDeclaration","src":"16976:47:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17007:9:64","nodeType":"YulIdentifier","src":"17007:9:64"},{"kind":"number","nativeSrc":"17018:3:64","nodeType":"YulLiteral","src":"17018:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"17003:3:64","nodeType":"YulIdentifier","src":"17003:3:64"},"nativeSrc":"17003:19:64","nodeType":"YulFunctionCall","src":"17003:19:64"}],"functionName":{"name":"calldataload","nativeSrc":"16990:12:64","nodeType":"YulIdentifier","src":"16990:12:64"},"nativeSrc":"16990:33:64","nodeType":"YulFunctionCall","src":"16990:33:64"},"variables":[{"name":"offset","nativeSrc":"16980:6:64","nodeType":"YulTypedName","src":"16980:6:64","type":""}]},{"body":{"nativeSrc":"17070:83:64","nodeType":"YulBlock","src":"17070:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"17072:77:64","nodeType":"YulIdentifier","src":"17072:77:64"},"nativeSrc":"17072:79:64","nodeType":"YulFunctionCall","src":"17072:79:64"},"nativeSrc":"17072:79:64","nodeType":"YulExpressionStatement","src":"17072:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"17042:6:64","nodeType":"YulIdentifier","src":"17042:6:64"},{"kind":"number","nativeSrc":"17050:18:64","nodeType":"YulLiteral","src":"17050:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"17039:2:64","nodeType":"YulIdentifier","src":"17039:2:64"},"nativeSrc":"17039:30:64","nodeType":"YulFunctionCall","src":"17039:30:64"},"nativeSrc":"17036:117:64","nodeType":"YulIf","src":"17036:117:64"},{"nativeSrc":"17167:72:64","nodeType":"YulAssignment","src":"17167:72:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"17211:9:64","nodeType":"YulIdentifier","src":"17211:9:64"},{"name":"offset","nativeSrc":"17222:6:64","nodeType":"YulIdentifier","src":"17222:6:64"}],"functionName":{"name":"add","nativeSrc":"17207:3:64","nodeType":"YulIdentifier","src":"17207:3:64"},"nativeSrc":"17207:22:64","nodeType":"YulFunctionCall","src":"17207:22:64"},{"name":"dataEnd","nativeSrc":"17231:7:64","nodeType":"YulIdentifier","src":"17231:7:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"17177:29:64","nodeType":"YulIdentifier","src":"17177:29:64"},"nativeSrc":"17177:62:64","nodeType":"YulFunctionCall","src":"17177:62:64"},"variableNames":[{"name":"value4","nativeSrc":"17167:6:64","nodeType":"YulIdentifier","src":"17167:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr","nativeSrc":"16167:1089:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"16248:9:64","nodeType":"YulTypedName","src":"16248:9:64","type":""},{"name":"dataEnd","nativeSrc":"16259:7:64","nodeType":"YulTypedName","src":"16259:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"16271:6:64","nodeType":"YulTypedName","src":"16271:6:64","type":""},{"name":"value1","nativeSrc":"16279:6:64","nodeType":"YulTypedName","src":"16279:6:64","type":""},{"name":"value2","nativeSrc":"16287:6:64","nodeType":"YulTypedName","src":"16287:6:64","type":""},{"name":"value3","nativeSrc":"16295:6:64","nodeType":"YulTypedName","src":"16295:6:64","type":""},{"name":"value4","nativeSrc":"16303:6:64","nodeType":"YulTypedName","src":"16303:6:64","type":""}],"src":"16167:1089:64"},{"body":{"nativeSrc":"17290:152:64","nodeType":"YulBlock","src":"17290:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17307:1:64","nodeType":"YulLiteral","src":"17307:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17310:77:64","nodeType":"YulLiteral","src":"17310:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"17300:6:64","nodeType":"YulIdentifier","src":"17300:6:64"},"nativeSrc":"17300:88:64","nodeType":"YulFunctionCall","src":"17300:88:64"},"nativeSrc":"17300:88:64","nodeType":"YulExpressionStatement","src":"17300:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17404:1:64","nodeType":"YulLiteral","src":"17404:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"17407:4:64","nodeType":"YulLiteral","src":"17407:4:64","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"17397:6:64","nodeType":"YulIdentifier","src":"17397:6:64"},"nativeSrc":"17397:15:64","nodeType":"YulFunctionCall","src":"17397:15:64"},"nativeSrc":"17397:15:64","nodeType":"YulExpressionStatement","src":"17397:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17428:1:64","nodeType":"YulLiteral","src":"17428:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"17431:4:64","nodeType":"YulLiteral","src":"17431:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"17421:6:64","nodeType":"YulIdentifier","src":"17421:6:64"},"nativeSrc":"17421:15:64","nodeType":"YulFunctionCall","src":"17421:15:64"},"nativeSrc":"17421:15:64","nodeType":"YulExpressionStatement","src":"17421:15:64"}]},"name":"panic_error_0x22","nativeSrc":"17262:180:64","nodeType":"YulFunctionDefinition","src":"17262:180:64"},{"body":{"nativeSrc":"17499:269:64","nodeType":"YulBlock","src":"17499:269:64","statements":[{"nativeSrc":"17509:22:64","nodeType":"YulAssignment","src":"17509:22:64","value":{"arguments":[{"name":"data","nativeSrc":"17523:4:64","nodeType":"YulIdentifier","src":"17523:4:64"},{"kind":"number","nativeSrc":"17529:1:64","nodeType":"YulLiteral","src":"17529:1:64","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"17519:3:64","nodeType":"YulIdentifier","src":"17519:3:64"},"nativeSrc":"17519:12:64","nodeType":"YulFunctionCall","src":"17519:12:64"},"variableNames":[{"name":"length","nativeSrc":"17509:6:64","nodeType":"YulIdentifier","src":"17509:6:64"}]},{"nativeSrc":"17540:38:64","nodeType":"YulVariableDeclaration","src":"17540:38:64","value":{"arguments":[{"name":"data","nativeSrc":"17570:4:64","nodeType":"YulIdentifier","src":"17570:4:64"},{"kind":"number","nativeSrc":"17576:1:64","nodeType":"YulLiteral","src":"17576:1:64","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"17566:3:64","nodeType":"YulIdentifier","src":"17566:3:64"},"nativeSrc":"17566:12:64","nodeType":"YulFunctionCall","src":"17566:12:64"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"17544:18:64","nodeType":"YulTypedName","src":"17544:18:64","type":""}]},{"body":{"nativeSrc":"17617:51:64","nodeType":"YulBlock","src":"17617:51:64","statements":[{"nativeSrc":"17631:27:64","nodeType":"YulAssignment","src":"17631:27:64","value":{"arguments":[{"name":"length","nativeSrc":"17645:6:64","nodeType":"YulIdentifier","src":"17645:6:64"},{"kind":"number","nativeSrc":"17653:4:64","nodeType":"YulLiteral","src":"17653:4:64","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"17641:3:64","nodeType":"YulIdentifier","src":"17641:3:64"},"nativeSrc":"17641:17:64","nodeType":"YulFunctionCall","src":"17641:17:64"},"variableNames":[{"name":"length","nativeSrc":"17631:6:64","nodeType":"YulIdentifier","src":"17631:6:64"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17597:18:64","nodeType":"YulIdentifier","src":"17597:18:64"}],"functionName":{"name":"iszero","nativeSrc":"17590:6:64","nodeType":"YulIdentifier","src":"17590:6:64"},"nativeSrc":"17590:26:64","nodeType":"YulFunctionCall","src":"17590:26:64"},"nativeSrc":"17587:81:64","nodeType":"YulIf","src":"17587:81:64"},{"body":{"nativeSrc":"17720:42:64","nodeType":"YulBlock","src":"17720:42:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"17734:16:64","nodeType":"YulIdentifier","src":"17734:16:64"},"nativeSrc":"17734:18:64","nodeType":"YulFunctionCall","src":"17734:18:64"},"nativeSrc":"17734:18:64","nodeType":"YulExpressionStatement","src":"17734:18:64"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"17684:18:64","nodeType":"YulIdentifier","src":"17684:18:64"},{"arguments":[{"name":"length","nativeSrc":"17707:6:64","nodeType":"YulIdentifier","src":"17707:6:64"},{"kind":"number","nativeSrc":"17715:2:64","nodeType":"YulLiteral","src":"17715:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"17704:2:64","nodeType":"YulIdentifier","src":"17704:2:64"},"nativeSrc":"17704:14:64","nodeType":"YulFunctionCall","src":"17704:14:64"}],"functionName":{"name":"eq","nativeSrc":"17681:2:64","nodeType":"YulIdentifier","src":"17681:2:64"},"nativeSrc":"17681:38:64","nodeType":"YulFunctionCall","src":"17681:38:64"},"nativeSrc":"17678:84:64","nodeType":"YulIf","src":"17678:84:64"}]},"name":"extract_byte_array_length","nativeSrc":"17448:320:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"17483:4:64","nodeType":"YulTypedName","src":"17483:4:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"17492:6:64","nodeType":"YulTypedName","src":"17492:6:64","type":""}],"src":"17448:320:64"},{"body":{"nativeSrc":"17839:53:64","nodeType":"YulBlock","src":"17839:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"17856:3:64","nodeType":"YulIdentifier","src":"17856:3:64"},{"arguments":[{"name":"value","nativeSrc":"17879:5:64","nodeType":"YulIdentifier","src":"17879:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"17861:17:64","nodeType":"YulIdentifier","src":"17861:17:64"},"nativeSrc":"17861:24:64","nodeType":"YulFunctionCall","src":"17861:24:64"}],"functionName":{"name":"mstore","nativeSrc":"17849:6:64","nodeType":"YulIdentifier","src":"17849:6:64"},"nativeSrc":"17849:37:64","nodeType":"YulFunctionCall","src":"17849:37:64"},"nativeSrc":"17849:37:64","nodeType":"YulExpressionStatement","src":"17849:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"17774:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17827:5:64","nodeType":"YulTypedName","src":"17827:5:64","type":""},{"name":"pos","nativeSrc":"17834:3:64","nodeType":"YulTypedName","src":"17834:3:64","type":""}],"src":"17774:118:64"},{"body":{"nativeSrc":"18024:206:64","nodeType":"YulBlock","src":"18024:206:64","statements":[{"nativeSrc":"18034:26:64","nodeType":"YulAssignment","src":"18034:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"18046:9:64","nodeType":"YulIdentifier","src":"18046:9:64"},{"kind":"number","nativeSrc":"18057:2:64","nodeType":"YulLiteral","src":"18057:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18042:3:64","nodeType":"YulIdentifier","src":"18042:3:64"},"nativeSrc":"18042:18:64","nodeType":"YulFunctionCall","src":"18042:18:64"},"variableNames":[{"name":"tail","nativeSrc":"18034:4:64","nodeType":"YulIdentifier","src":"18034:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18114:6:64","nodeType":"YulIdentifier","src":"18114:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"18127:9:64","nodeType":"YulIdentifier","src":"18127:9:64"},{"kind":"number","nativeSrc":"18138:1:64","nodeType":"YulLiteral","src":"18138:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18123:3:64","nodeType":"YulIdentifier","src":"18123:3:64"},"nativeSrc":"18123:17:64","nodeType":"YulFunctionCall","src":"18123:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18070:43:64","nodeType":"YulIdentifier","src":"18070:43:64"},"nativeSrc":"18070:71:64","nodeType":"YulFunctionCall","src":"18070:71:64"},"nativeSrc":"18070:71:64","nodeType":"YulExpressionStatement","src":"18070:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18195:6:64","nodeType":"YulIdentifier","src":"18195:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"18208:9:64","nodeType":"YulIdentifier","src":"18208:9:64"},{"kind":"number","nativeSrc":"18219:2:64","nodeType":"YulLiteral","src":"18219:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18204:3:64","nodeType":"YulIdentifier","src":"18204:3:64"},"nativeSrc":"18204:18:64","nodeType":"YulFunctionCall","src":"18204:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18151:43:64","nodeType":"YulIdentifier","src":"18151:43:64"},"nativeSrc":"18151:72:64","nodeType":"YulFunctionCall","src":"18151:72:64"},"nativeSrc":"18151:72:64","nodeType":"YulExpressionStatement","src":"18151:72:64"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nativeSrc":"17898:332:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"17988:9:64","nodeType":"YulTypedName","src":"17988:9:64","type":""},{"name":"value1","nativeSrc":"18000:6:64","nodeType":"YulTypedName","src":"18000:6:64","type":""},{"name":"value0","nativeSrc":"18008:6:64","nodeType":"YulTypedName","src":"18008:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18019:4:64","nodeType":"YulTypedName","src":"18019:4:64","type":""}],"src":"17898:332:64"},{"body":{"nativeSrc":"18362:206:64","nodeType":"YulBlock","src":"18362:206:64","statements":[{"nativeSrc":"18372:26:64","nodeType":"YulAssignment","src":"18372:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"18384:9:64","nodeType":"YulIdentifier","src":"18384:9:64"},{"kind":"number","nativeSrc":"18395:2:64","nodeType":"YulLiteral","src":"18395:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"18380:3:64","nodeType":"YulIdentifier","src":"18380:3:64"},"nativeSrc":"18380:18:64","nodeType":"YulFunctionCall","src":"18380:18:64"},"variableNames":[{"name":"tail","nativeSrc":"18372:4:64","nodeType":"YulIdentifier","src":"18372:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18452:6:64","nodeType":"YulIdentifier","src":"18452:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"18465:9:64","nodeType":"YulIdentifier","src":"18465:9:64"},{"kind":"number","nativeSrc":"18476:1:64","nodeType":"YulLiteral","src":"18476:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18461:3:64","nodeType":"YulIdentifier","src":"18461:3:64"},"nativeSrc":"18461:17:64","nodeType":"YulFunctionCall","src":"18461:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"18408:43:64","nodeType":"YulIdentifier","src":"18408:43:64"},"nativeSrc":"18408:71:64","nodeType":"YulFunctionCall","src":"18408:71:64"},"nativeSrc":"18408:71:64","nodeType":"YulExpressionStatement","src":"18408:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"18533:6:64","nodeType":"YulIdentifier","src":"18533:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"18546:9:64","nodeType":"YulIdentifier","src":"18546:9:64"},{"kind":"number","nativeSrc":"18557:2:64","nodeType":"YulLiteral","src":"18557:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18542:3:64","nodeType":"YulIdentifier","src":"18542:3:64"},"nativeSrc":"18542:18:64","nodeType":"YulFunctionCall","src":"18542:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"18489:43:64","nodeType":"YulIdentifier","src":"18489:43:64"},"nativeSrc":"18489:72:64","nodeType":"YulFunctionCall","src":"18489:72:64"},"nativeSrc":"18489:72:64","nodeType":"YulExpressionStatement","src":"18489:72:64"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"18236:332:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18326:9:64","nodeType":"YulTypedName","src":"18326:9:64","type":""},{"name":"value1","nativeSrc":"18338:6:64","nodeType":"YulTypedName","src":"18338:6:64","type":""},{"name":"value0","nativeSrc":"18346:6:64","nodeType":"YulTypedName","src":"18346:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18357:4:64","nodeType":"YulTypedName","src":"18357:4:64","type":""}],"src":"18236:332:64"},{"body":{"nativeSrc":"18602:152:64","nodeType":"YulBlock","src":"18602:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18619:1:64","nodeType":"YulLiteral","src":"18619:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18622:77:64","nodeType":"YulLiteral","src":"18622:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"18612:6:64","nodeType":"YulIdentifier","src":"18612:6:64"},"nativeSrc":"18612:88:64","nodeType":"YulFunctionCall","src":"18612:88:64"},"nativeSrc":"18612:88:64","nodeType":"YulExpressionStatement","src":"18612:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18716:1:64","nodeType":"YulLiteral","src":"18716:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"18719:4:64","nodeType":"YulLiteral","src":"18719:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"18709:6:64","nodeType":"YulIdentifier","src":"18709:6:64"},"nativeSrc":"18709:15:64","nodeType":"YulFunctionCall","src":"18709:15:64"},"nativeSrc":"18709:15:64","nodeType":"YulExpressionStatement","src":"18709:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18740:1:64","nodeType":"YulLiteral","src":"18740:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"18743:4:64","nodeType":"YulLiteral","src":"18743:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"18733:6:64","nodeType":"YulIdentifier","src":"18733:6:64"},"nativeSrc":"18733:15:64","nodeType":"YulFunctionCall","src":"18733:15:64"},"nativeSrc":"18733:15:64","nodeType":"YulExpressionStatement","src":"18733:15:64"}]},"name":"panic_error_0x32","nativeSrc":"18574:180:64","nodeType":"YulFunctionDefinition","src":"18574:180:64"},{"body":{"nativeSrc":"18858:124:64","nodeType":"YulBlock","src":"18858:124:64","statements":[{"nativeSrc":"18868:26:64","nodeType":"YulAssignment","src":"18868:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"18880:9:64","nodeType":"YulIdentifier","src":"18880:9:64"},{"kind":"number","nativeSrc":"18891:2:64","nodeType":"YulLiteral","src":"18891:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"18876:3:64","nodeType":"YulIdentifier","src":"18876:3:64"},"nativeSrc":"18876:18:64","nodeType":"YulFunctionCall","src":"18876:18:64"},"variableNames":[{"name":"tail","nativeSrc":"18868:4:64","nodeType":"YulIdentifier","src":"18868:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"18948:6:64","nodeType":"YulIdentifier","src":"18948:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"18961:9:64","nodeType":"YulIdentifier","src":"18961:9:64"},{"kind":"number","nativeSrc":"18972:1:64","nodeType":"YulLiteral","src":"18972:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"18957:3:64","nodeType":"YulIdentifier","src":"18957:3:64"},"nativeSrc":"18957:17:64","nodeType":"YulFunctionCall","src":"18957:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"18904:43:64","nodeType":"YulIdentifier","src":"18904:43:64"},"nativeSrc":"18904:71:64","nodeType":"YulFunctionCall","src":"18904:71:64"},"nativeSrc":"18904:71:64","nodeType":"YulExpressionStatement","src":"18904:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"18760:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"18830:9:64","nodeType":"YulTypedName","src":"18830:9:64","type":""},{"name":"value0","nativeSrc":"18842:6:64","nodeType":"YulTypedName","src":"18842:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"18853:4:64","nodeType":"YulTypedName","src":"18853:4:64","type":""}],"src":"18760:222:64"},{"body":{"nativeSrc":"19170:371:64","nodeType":"YulBlock","src":"19170:371:64","statements":[{"nativeSrc":"19180:27:64","nodeType":"YulAssignment","src":"19180:27:64","value":{"arguments":[{"name":"headStart","nativeSrc":"19192:9:64","nodeType":"YulIdentifier","src":"19192:9:64"},{"kind":"number","nativeSrc":"19203:3:64","nodeType":"YulLiteral","src":"19203:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"19188:3:64","nodeType":"YulIdentifier","src":"19188:3:64"},"nativeSrc":"19188:19:64","nodeType":"YulFunctionCall","src":"19188:19:64"},"variableNames":[{"name":"tail","nativeSrc":"19180:4:64","nodeType":"YulIdentifier","src":"19180:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"19261:6:64","nodeType":"YulIdentifier","src":"19261:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19274:9:64","nodeType":"YulIdentifier","src":"19274:9:64"},{"kind":"number","nativeSrc":"19285:1:64","nodeType":"YulLiteral","src":"19285:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19270:3:64","nodeType":"YulIdentifier","src":"19270:3:64"},"nativeSrc":"19270:17:64","nodeType":"YulFunctionCall","src":"19270:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"19217:43:64","nodeType":"YulIdentifier","src":"19217:43:64"},"nativeSrc":"19217:71:64","nodeType":"YulFunctionCall","src":"19217:71:64"},"nativeSrc":"19217:71:64","nodeType":"YulExpressionStatement","src":"19217:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"19342:6:64","nodeType":"YulIdentifier","src":"19342:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19355:9:64","nodeType":"YulIdentifier","src":"19355:9:64"},{"kind":"number","nativeSrc":"19366:2:64","nodeType":"YulLiteral","src":"19366:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19351:3:64","nodeType":"YulIdentifier","src":"19351:3:64"},"nativeSrc":"19351:18:64","nodeType":"YulFunctionCall","src":"19351:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19298:43:64","nodeType":"YulIdentifier","src":"19298:43:64"},"nativeSrc":"19298:72:64","nodeType":"YulFunctionCall","src":"19298:72:64"},"nativeSrc":"19298:72:64","nodeType":"YulExpressionStatement","src":"19298:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"19424:6:64","nodeType":"YulIdentifier","src":"19424:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19437:9:64","nodeType":"YulIdentifier","src":"19437:9:64"},{"kind":"number","nativeSrc":"19448:2:64","nodeType":"YulLiteral","src":"19448:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"19433:3:64","nodeType":"YulIdentifier","src":"19433:3:64"},"nativeSrc":"19433:18:64","nodeType":"YulFunctionCall","src":"19433:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19380:43:64","nodeType":"YulIdentifier","src":"19380:43:64"},"nativeSrc":"19380:72:64","nodeType":"YulFunctionCall","src":"19380:72:64"},"nativeSrc":"19380:72:64","nodeType":"YulExpressionStatement","src":"19380:72:64"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"19506:6:64","nodeType":"YulIdentifier","src":"19506:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"19519:9:64","nodeType":"YulIdentifier","src":"19519:9:64"},{"kind":"number","nativeSrc":"19530:2:64","nodeType":"YulLiteral","src":"19530:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"19515:3:64","nodeType":"YulIdentifier","src":"19515:3:64"},"nativeSrc":"19515:18:64","nodeType":"YulFunctionCall","src":"19515:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"19462:43:64","nodeType":"YulIdentifier","src":"19462:43:64"},"nativeSrc":"19462:72:64","nodeType":"YulFunctionCall","src":"19462:72:64"},"nativeSrc":"19462:72:64","nodeType":"YulExpressionStatement","src":"19462:72:64"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed","nativeSrc":"18988:553:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19118:9:64","nodeType":"YulTypedName","src":"19118:9:64","type":""},{"name":"value3","nativeSrc":"19130:6:64","nodeType":"YulTypedName","src":"19130:6:64","type":""},{"name":"value2","nativeSrc":"19138:6:64","nodeType":"YulTypedName","src":"19138:6:64","type":""},{"name":"value1","nativeSrc":"19146:6:64","nodeType":"YulTypedName","src":"19146:6:64","type":""},{"name":"value0","nativeSrc":"19154:6:64","nodeType":"YulTypedName","src":"19154:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19165:4:64","nodeType":"YulTypedName","src":"19165:4:64","type":""}],"src":"18988:553:64"},{"body":{"nativeSrc":"19575:152:64","nodeType":"YulBlock","src":"19575:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19592:1:64","nodeType":"YulLiteral","src":"19592:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"19595:77:64","nodeType":"YulLiteral","src":"19595:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"19585:6:64","nodeType":"YulIdentifier","src":"19585:6:64"},"nativeSrc":"19585:88:64","nodeType":"YulFunctionCall","src":"19585:88:64"},"nativeSrc":"19585:88:64","nodeType":"YulExpressionStatement","src":"19585:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19689:1:64","nodeType":"YulLiteral","src":"19689:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"19692:4:64","nodeType":"YulLiteral","src":"19692:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"19682:6:64","nodeType":"YulIdentifier","src":"19682:6:64"},"nativeSrc":"19682:15:64","nodeType":"YulFunctionCall","src":"19682:15:64"},"nativeSrc":"19682:15:64","nodeType":"YulExpressionStatement","src":"19682:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19713:1:64","nodeType":"YulLiteral","src":"19713:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"19716:4:64","nodeType":"YulLiteral","src":"19716:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"19706:6:64","nodeType":"YulIdentifier","src":"19706:6:64"},"nativeSrc":"19706:15:64","nodeType":"YulFunctionCall","src":"19706:15:64"},"nativeSrc":"19706:15:64","nodeType":"YulExpressionStatement","src":"19706:15:64"}]},"name":"panic_error_0x11","nativeSrc":"19547:180:64","nodeType":"YulFunctionDefinition","src":"19547:180:64"},{"body":{"nativeSrc":"19777:147:64","nodeType":"YulBlock","src":"19777:147:64","statements":[{"nativeSrc":"19787:25:64","nodeType":"YulAssignment","src":"19787:25:64","value":{"arguments":[{"name":"x","nativeSrc":"19810:1:64","nodeType":"YulIdentifier","src":"19810:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19792:17:64","nodeType":"YulIdentifier","src":"19792:17:64"},"nativeSrc":"19792:20:64","nodeType":"YulFunctionCall","src":"19792:20:64"},"variableNames":[{"name":"x","nativeSrc":"19787:1:64","nodeType":"YulIdentifier","src":"19787:1:64"}]},{"nativeSrc":"19821:25:64","nodeType":"YulAssignment","src":"19821:25:64","value":{"arguments":[{"name":"y","nativeSrc":"19844:1:64","nodeType":"YulIdentifier","src":"19844:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"19826:17:64","nodeType":"YulIdentifier","src":"19826:17:64"},"nativeSrc":"19826:20:64","nodeType":"YulFunctionCall","src":"19826:20:64"},"variableNames":[{"name":"y","nativeSrc":"19821:1:64","nodeType":"YulIdentifier","src":"19821:1:64"}]},{"nativeSrc":"19855:16:64","nodeType":"YulAssignment","src":"19855:16:64","value":{"arguments":[{"name":"x","nativeSrc":"19866:1:64","nodeType":"YulIdentifier","src":"19866:1:64"},{"name":"y","nativeSrc":"19869:1:64","nodeType":"YulIdentifier","src":"19869:1:64"}],"functionName":{"name":"add","nativeSrc":"19862:3:64","nodeType":"YulIdentifier","src":"19862:3:64"},"nativeSrc":"19862:9:64","nodeType":"YulFunctionCall","src":"19862:9:64"},"variableNames":[{"name":"sum","nativeSrc":"19855:3:64","nodeType":"YulIdentifier","src":"19855:3:64"}]},{"body":{"nativeSrc":"19895:22:64","nodeType":"YulBlock","src":"19895:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"19897:16:64","nodeType":"YulIdentifier","src":"19897:16:64"},"nativeSrc":"19897:18:64","nodeType":"YulFunctionCall","src":"19897:18:64"},"nativeSrc":"19897:18:64","nodeType":"YulExpressionStatement","src":"19897:18:64"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"19887:1:64","nodeType":"YulIdentifier","src":"19887:1:64"},{"name":"sum","nativeSrc":"19890:3:64","nodeType":"YulIdentifier","src":"19890:3:64"}],"functionName":{"name":"gt","nativeSrc":"19884:2:64","nodeType":"YulIdentifier","src":"19884:2:64"},"nativeSrc":"19884:10:64","nodeType":"YulFunctionCall","src":"19884:10:64"},"nativeSrc":"19881:36:64","nodeType":"YulIf","src":"19881:36:64"}]},"name":"checked_add_t_uint256","nativeSrc":"19733:191:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"19764:1:64","nodeType":"YulTypedName","src":"19764:1:64","type":""},{"name":"y","nativeSrc":"19767:1:64","nodeType":"YulTypedName","src":"19767:1:64","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"19773:3:64","nodeType":"YulTypedName","src":"19773:3:64","type":""}],"src":"19733:191:64"},{"body":{"nativeSrc":"20156:408:64","nodeType":"YulBlock","src":"20156:408:64","statements":[{"nativeSrc":"20166:26:64","nodeType":"YulAssignment","src":"20166:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"20178:9:64","nodeType":"YulIdentifier","src":"20178:9:64"},{"kind":"number","nativeSrc":"20189:2:64","nodeType":"YulLiteral","src":"20189:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"20174:3:64","nodeType":"YulIdentifier","src":"20174:3:64"},"nativeSrc":"20174:18:64","nodeType":"YulFunctionCall","src":"20174:18:64"},"variableNames":[{"name":"tail","nativeSrc":"20166:4:64","nodeType":"YulIdentifier","src":"20166:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20213:9:64","nodeType":"YulIdentifier","src":"20213:9:64"},{"kind":"number","nativeSrc":"20224:1:64","nodeType":"YulLiteral","src":"20224:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"20209:3:64","nodeType":"YulIdentifier","src":"20209:3:64"},"nativeSrc":"20209:17:64","nodeType":"YulFunctionCall","src":"20209:17:64"},{"arguments":[{"name":"tail","nativeSrc":"20232:4:64","nodeType":"YulIdentifier","src":"20232:4:64"},{"name":"headStart","nativeSrc":"20238:9:64","nodeType":"YulIdentifier","src":"20238:9:64"}],"functionName":{"name":"sub","nativeSrc":"20228:3:64","nodeType":"YulIdentifier","src":"20228:3:64"},"nativeSrc":"20228:20:64","nodeType":"YulFunctionCall","src":"20228:20:64"}],"functionName":{"name":"mstore","nativeSrc":"20202:6:64","nodeType":"YulIdentifier","src":"20202:6:64"},"nativeSrc":"20202:47:64","nodeType":"YulFunctionCall","src":"20202:47:64"},"nativeSrc":"20202:47:64","nodeType":"YulExpressionStatement","src":"20202:47:64"},{"nativeSrc":"20258:116:64","nodeType":"YulAssignment","src":"20258:116:64","value":{"arguments":[{"name":"value0","nativeSrc":"20360:6:64","nodeType":"YulIdentifier","src":"20360:6:64"},{"name":"tail","nativeSrc":"20369:4:64","nodeType":"YulIdentifier","src":"20369:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"20266:93:64","nodeType":"YulIdentifier","src":"20266:93:64"},"nativeSrc":"20266:108:64","nodeType":"YulFunctionCall","src":"20266:108:64"},"variableNames":[{"name":"tail","nativeSrc":"20258:4:64","nodeType":"YulIdentifier","src":"20258:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"20395:9:64","nodeType":"YulIdentifier","src":"20395:9:64"},{"kind":"number","nativeSrc":"20406:2:64","nodeType":"YulLiteral","src":"20406:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"20391:3:64","nodeType":"YulIdentifier","src":"20391:3:64"},"nativeSrc":"20391:18:64","nodeType":"YulFunctionCall","src":"20391:18:64"},{"arguments":[{"name":"tail","nativeSrc":"20415:4:64","nodeType":"YulIdentifier","src":"20415:4:64"},{"name":"headStart","nativeSrc":"20421:9:64","nodeType":"YulIdentifier","src":"20421:9:64"}],"functionName":{"name":"sub","nativeSrc":"20411:3:64","nodeType":"YulIdentifier","src":"20411:3:64"},"nativeSrc":"20411:20:64","nodeType":"YulFunctionCall","src":"20411:20:64"}],"functionName":{"name":"mstore","nativeSrc":"20384:6:64","nodeType":"YulIdentifier","src":"20384:6:64"},"nativeSrc":"20384:48:64","nodeType":"YulFunctionCall","src":"20384:48:64"},"nativeSrc":"20384:48:64","nodeType":"YulExpressionStatement","src":"20384:48:64"},{"nativeSrc":"20441:116:64","nodeType":"YulAssignment","src":"20441:116:64","value":{"arguments":[{"name":"value1","nativeSrc":"20543:6:64","nodeType":"YulIdentifier","src":"20543:6:64"},{"name":"tail","nativeSrc":"20552:4:64","nodeType":"YulIdentifier","src":"20552:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"20449:93:64","nodeType":"YulIdentifier","src":"20449:93:64"},"nativeSrc":"20449:108:64","nodeType":"YulFunctionCall","src":"20449:108:64"},"variableNames":[{"name":"tail","nativeSrc":"20441:4:64","nodeType":"YulIdentifier","src":"20441:4:64"}]}]},"name":"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"19930:634:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"20120:9:64","nodeType":"YulTypedName","src":"20120:9:64","type":""},{"name":"value1","nativeSrc":"20132:6:64","nodeType":"YulTypedName","src":"20132:6:64","type":""},{"name":"value0","nativeSrc":"20140:6:64","nodeType":"YulTypedName","src":"20140:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"20151:4:64","nodeType":"YulTypedName","src":"20151:4:64","type":""}],"src":"19930:634:64"},{"body":{"nativeSrc":"20628:40:64","nodeType":"YulBlock","src":"20628:40:64","statements":[{"nativeSrc":"20639:22:64","nodeType":"YulAssignment","src":"20639:22:64","value":{"arguments":[{"name":"value","nativeSrc":"20655:5:64","nodeType":"YulIdentifier","src":"20655:5:64"}],"functionName":{"name":"mload","nativeSrc":"20649:5:64","nodeType":"YulIdentifier","src":"20649:5:64"},"nativeSrc":"20649:12:64","nodeType":"YulFunctionCall","src":"20649:12:64"},"variableNames":[{"name":"length","nativeSrc":"20639:6:64","nodeType":"YulIdentifier","src":"20639:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"20570:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20611:5:64","nodeType":"YulTypedName","src":"20611:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"20621:6:64","nodeType":"YulTypedName","src":"20621:6:64","type":""}],"src":"20570:98:64"},{"body":{"nativeSrc":"20769:73:64","nodeType":"YulBlock","src":"20769:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20786:3:64","nodeType":"YulIdentifier","src":"20786:3:64"},{"name":"length","nativeSrc":"20791:6:64","nodeType":"YulIdentifier","src":"20791:6:64"}],"functionName":{"name":"mstore","nativeSrc":"20779:6:64","nodeType":"YulIdentifier","src":"20779:6:64"},"nativeSrc":"20779:19:64","nodeType":"YulFunctionCall","src":"20779:19:64"},"nativeSrc":"20779:19:64","nodeType":"YulExpressionStatement","src":"20779:19:64"},{"nativeSrc":"20807:29:64","nodeType":"YulAssignment","src":"20807:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"20826:3:64","nodeType":"YulIdentifier","src":"20826:3:64"},{"kind":"number","nativeSrc":"20831:4:64","nodeType":"YulLiteral","src":"20831:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20822:3:64","nodeType":"YulIdentifier","src":"20822:3:64"},"nativeSrc":"20822:14:64","nodeType":"YulFunctionCall","src":"20822:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"20807:11:64","nodeType":"YulIdentifier","src":"20807:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"20674:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20741:3:64","nodeType":"YulTypedName","src":"20741:3:64","type":""},{"name":"length","nativeSrc":"20746:6:64","nodeType":"YulTypedName","src":"20746:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"20757:11:64","nodeType":"YulTypedName","src":"20757:11:64","type":""}],"src":"20674:168:64"},{"body":{"nativeSrc":"20938:283:64","nodeType":"YulBlock","src":"20938:283:64","statements":[{"nativeSrc":"20948:52:64","nodeType":"YulVariableDeclaration","src":"20948:52:64","value":{"arguments":[{"name":"value","nativeSrc":"20994:5:64","nodeType":"YulIdentifier","src":"20994:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"20962:31:64","nodeType":"YulIdentifier","src":"20962:31:64"},"nativeSrc":"20962:38:64","nodeType":"YulFunctionCall","src":"20962:38:64"},"variables":[{"name":"length","nativeSrc":"20952:6:64","nodeType":"YulTypedName","src":"20952:6:64","type":""}]},{"nativeSrc":"21009:77:64","nodeType":"YulAssignment","src":"21009:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"21074:3:64","nodeType":"YulIdentifier","src":"21074:3:64"},{"name":"length","nativeSrc":"21079:6:64","nodeType":"YulIdentifier","src":"21079:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"21016:57:64","nodeType":"YulIdentifier","src":"21016:57:64"},"nativeSrc":"21016:70:64","nodeType":"YulFunctionCall","src":"21016:70:64"},"variableNames":[{"name":"pos","nativeSrc":"21009:3:64","nodeType":"YulIdentifier","src":"21009:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21134:5:64","nodeType":"YulIdentifier","src":"21134:5:64"},{"kind":"number","nativeSrc":"21141:4:64","nodeType":"YulLiteral","src":"21141:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21130:3:64","nodeType":"YulIdentifier","src":"21130:3:64"},"nativeSrc":"21130:16:64","nodeType":"YulFunctionCall","src":"21130:16:64"},{"name":"pos","nativeSrc":"21148:3:64","nodeType":"YulIdentifier","src":"21148:3:64"},{"name":"length","nativeSrc":"21153:6:64","nodeType":"YulIdentifier","src":"21153:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"21095:34:64","nodeType":"YulIdentifier","src":"21095:34:64"},"nativeSrc":"21095:65:64","nodeType":"YulFunctionCall","src":"21095:65:64"},"nativeSrc":"21095:65:64","nodeType":"YulExpressionStatement","src":"21095:65:64"},{"nativeSrc":"21169:46:64","nodeType":"YulAssignment","src":"21169:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"21180:3:64","nodeType":"YulIdentifier","src":"21180:3:64"},{"arguments":[{"name":"length","nativeSrc":"21207:6:64","nodeType":"YulIdentifier","src":"21207:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"21185:21:64","nodeType":"YulIdentifier","src":"21185:21:64"},"nativeSrc":"21185:29:64","nodeType":"YulFunctionCall","src":"21185:29:64"}],"functionName":{"name":"add","nativeSrc":"21176:3:64","nodeType":"YulIdentifier","src":"21176:3:64"},"nativeSrc":"21176:39:64","nodeType":"YulFunctionCall","src":"21176:39:64"},"variableNames":[{"name":"end","nativeSrc":"21169:3:64","nodeType":"YulIdentifier","src":"21169:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"20848:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20919:5:64","nodeType":"YulTypedName","src":"20919:5:64","type":""},{"name":"pos","nativeSrc":"20926:3:64","nodeType":"YulTypedName","src":"20926:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20934:3:64","nodeType":"YulTypedName","src":"20934:3:64","type":""}],"src":"20848:373:64"},{"body":{"nativeSrc":"21455:523:64","nodeType":"YulBlock","src":"21455:523:64","statements":[{"nativeSrc":"21465:27:64","nodeType":"YulAssignment","src":"21465:27:64","value":{"arguments":[{"name":"headStart","nativeSrc":"21477:9:64","nodeType":"YulIdentifier","src":"21477:9:64"},{"kind":"number","nativeSrc":"21488:3:64","nodeType":"YulLiteral","src":"21488:3:64","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"21473:3:64","nodeType":"YulIdentifier","src":"21473:3:64"},"nativeSrc":"21473:19:64","nodeType":"YulFunctionCall","src":"21473:19:64"},"variableNames":[{"name":"tail","nativeSrc":"21465:4:64","nodeType":"YulIdentifier","src":"21465:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"21546:6:64","nodeType":"YulIdentifier","src":"21546:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21559:9:64","nodeType":"YulIdentifier","src":"21559:9:64"},{"kind":"number","nativeSrc":"21570:1:64","nodeType":"YulLiteral","src":"21570:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"21555:3:64","nodeType":"YulIdentifier","src":"21555:3:64"},"nativeSrc":"21555:17:64","nodeType":"YulFunctionCall","src":"21555:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21502:43:64","nodeType":"YulIdentifier","src":"21502:43:64"},"nativeSrc":"21502:71:64","nodeType":"YulFunctionCall","src":"21502:71:64"},"nativeSrc":"21502:71:64","nodeType":"YulExpressionStatement","src":"21502:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"21627:6:64","nodeType":"YulIdentifier","src":"21627:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21640:9:64","nodeType":"YulIdentifier","src":"21640:9:64"},{"kind":"number","nativeSrc":"21651:2:64","nodeType":"YulLiteral","src":"21651:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"21636:3:64","nodeType":"YulIdentifier","src":"21636:3:64"},"nativeSrc":"21636:18:64","nodeType":"YulFunctionCall","src":"21636:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"21583:43:64","nodeType":"YulIdentifier","src":"21583:43:64"},"nativeSrc":"21583:72:64","nodeType":"YulFunctionCall","src":"21583:72:64"},"nativeSrc":"21583:72:64","nodeType":"YulExpressionStatement","src":"21583:72:64"},{"expression":{"arguments":[{"name":"value2","nativeSrc":"21709:6:64","nodeType":"YulIdentifier","src":"21709:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21722:9:64","nodeType":"YulIdentifier","src":"21722:9:64"},{"kind":"number","nativeSrc":"21733:2:64","nodeType":"YulLiteral","src":"21733:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"21718:3:64","nodeType":"YulIdentifier","src":"21718:3:64"},"nativeSrc":"21718:18:64","nodeType":"YulFunctionCall","src":"21718:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21665:43:64","nodeType":"YulIdentifier","src":"21665:43:64"},"nativeSrc":"21665:72:64","nodeType":"YulFunctionCall","src":"21665:72:64"},"nativeSrc":"21665:72:64","nodeType":"YulExpressionStatement","src":"21665:72:64"},{"expression":{"arguments":[{"name":"value3","nativeSrc":"21791:6:64","nodeType":"YulIdentifier","src":"21791:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"21804:9:64","nodeType":"YulIdentifier","src":"21804:9:64"},{"kind":"number","nativeSrc":"21815:2:64","nodeType":"YulLiteral","src":"21815:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"21800:3:64","nodeType":"YulIdentifier","src":"21800:3:64"},"nativeSrc":"21800:18:64","nodeType":"YulFunctionCall","src":"21800:18:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"21747:43:64","nodeType":"YulIdentifier","src":"21747:43:64"},"nativeSrc":"21747:72:64","nodeType":"YulFunctionCall","src":"21747:72:64"},"nativeSrc":"21747:72:64","nodeType":"YulExpressionStatement","src":"21747:72:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"21840:9:64","nodeType":"YulIdentifier","src":"21840:9:64"},{"kind":"number","nativeSrc":"21851:3:64","nodeType":"YulLiteral","src":"21851:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"21836:3:64","nodeType":"YulIdentifier","src":"21836:3:64"},"nativeSrc":"21836:19:64","nodeType":"YulFunctionCall","src":"21836:19:64"},{"arguments":[{"name":"tail","nativeSrc":"21861:4:64","nodeType":"YulIdentifier","src":"21861:4:64"},{"name":"headStart","nativeSrc":"21867:9:64","nodeType":"YulIdentifier","src":"21867:9:64"}],"functionName":{"name":"sub","nativeSrc":"21857:3:64","nodeType":"YulIdentifier","src":"21857:3:64"},"nativeSrc":"21857:20:64","nodeType":"YulFunctionCall","src":"21857:20:64"}],"functionName":{"name":"mstore","nativeSrc":"21829:6:64","nodeType":"YulIdentifier","src":"21829:6:64"},"nativeSrc":"21829:49:64","nodeType":"YulFunctionCall","src":"21829:49:64"},"nativeSrc":"21829:49:64","nodeType":"YulExpressionStatement","src":"21829:49:64"},{"nativeSrc":"21887:84:64","nodeType":"YulAssignment","src":"21887:84:64","value":{"arguments":[{"name":"value4","nativeSrc":"21957:6:64","nodeType":"YulIdentifier","src":"21957:6:64"},{"name":"tail","nativeSrc":"21966:4:64","nodeType":"YulIdentifier","src":"21966:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"21895:61:64","nodeType":"YulIdentifier","src":"21895:61:64"},"nativeSrc":"21895:76:64","nodeType":"YulFunctionCall","src":"21895:76:64"},"variableNames":[{"name":"tail","nativeSrc":"21887:4:64","nodeType":"YulIdentifier","src":"21887:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"21227:751:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"21395:9:64","nodeType":"YulTypedName","src":"21395:9:64","type":""},{"name":"value4","nativeSrc":"21407:6:64","nodeType":"YulTypedName","src":"21407:6:64","type":""},{"name":"value3","nativeSrc":"21415:6:64","nodeType":"YulTypedName","src":"21415:6:64","type":""},{"name":"value2","nativeSrc":"21423:6:64","nodeType":"YulTypedName","src":"21423:6:64","type":""},{"name":"value1","nativeSrc":"21431:6:64","nodeType":"YulTypedName","src":"21431:6:64","type":""},{"name":"value0","nativeSrc":"21439:6:64","nodeType":"YulTypedName","src":"21439:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"21450:4:64","nodeType":"YulTypedName","src":"21450:4:64","type":""}],"src":"21227:751:64"},{"body":{"nativeSrc":"22046:79:64","nodeType":"YulBlock","src":"22046:79:64","statements":[{"nativeSrc":"22056:22:64","nodeType":"YulAssignment","src":"22056:22:64","value":{"arguments":[{"name":"offset","nativeSrc":"22071:6:64","nodeType":"YulIdentifier","src":"22071:6:64"}],"functionName":{"name":"mload","nativeSrc":"22065:5:64","nodeType":"YulIdentifier","src":"22065:5:64"},"nativeSrc":"22065:13:64","nodeType":"YulFunctionCall","src":"22065:13:64"},"variableNames":[{"name":"value","nativeSrc":"22056:5:64","nodeType":"YulIdentifier","src":"22056:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"22113:5:64","nodeType":"YulIdentifier","src":"22113:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"22087:25:64","nodeType":"YulIdentifier","src":"22087:25:64"},"nativeSrc":"22087:32:64","nodeType":"YulFunctionCall","src":"22087:32:64"},"nativeSrc":"22087:32:64","nodeType":"YulExpressionStatement","src":"22087:32:64"}]},"name":"abi_decode_t_bytes4_fromMemory","nativeSrc":"21984:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"22024:6:64","nodeType":"YulTypedName","src":"22024:6:64","type":""},{"name":"end","nativeSrc":"22032:3:64","nodeType":"YulTypedName","src":"22032:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"22040:5:64","nodeType":"YulTypedName","src":"22040:5:64","type":""}],"src":"21984:141:64"},{"body":{"nativeSrc":"22207:273:64","nodeType":"YulBlock","src":"22207:273:64","statements":[{"body":{"nativeSrc":"22253:83:64","nodeType":"YulBlock","src":"22253:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"22255:77:64","nodeType":"YulIdentifier","src":"22255:77:64"},"nativeSrc":"22255:79:64","nodeType":"YulFunctionCall","src":"22255:79:64"},"nativeSrc":"22255:79:64","nodeType":"YulExpressionStatement","src":"22255:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"22228:7:64","nodeType":"YulIdentifier","src":"22228:7:64"},{"name":"headStart","nativeSrc":"22237:9:64","nodeType":"YulIdentifier","src":"22237:9:64"}],"functionName":{"name":"sub","nativeSrc":"22224:3:64","nodeType":"YulIdentifier","src":"22224:3:64"},"nativeSrc":"22224:23:64","nodeType":"YulFunctionCall","src":"22224:23:64"},{"kind":"number","nativeSrc":"22249:2:64","nodeType":"YulLiteral","src":"22249:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"22220:3:64","nodeType":"YulIdentifier","src":"22220:3:64"},"nativeSrc":"22220:32:64","nodeType":"YulFunctionCall","src":"22220:32:64"},"nativeSrc":"22217:119:64","nodeType":"YulIf","src":"22217:119:64"},{"nativeSrc":"22346:127:64","nodeType":"YulBlock","src":"22346:127:64","statements":[{"nativeSrc":"22361:15:64","nodeType":"YulVariableDeclaration","src":"22361:15:64","value":{"kind":"number","nativeSrc":"22375:1:64","nodeType":"YulLiteral","src":"22375:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"22365:6:64","nodeType":"YulTypedName","src":"22365:6:64","type":""}]},{"nativeSrc":"22390:73:64","nodeType":"YulAssignment","src":"22390:73:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"22435:9:64","nodeType":"YulIdentifier","src":"22435:9:64"},{"name":"offset","nativeSrc":"22446:6:64","nodeType":"YulIdentifier","src":"22446:6:64"}],"functionName":{"name":"add","nativeSrc":"22431:3:64","nodeType":"YulIdentifier","src":"22431:3:64"},"nativeSrc":"22431:22:64","nodeType":"YulFunctionCall","src":"22431:22:64"},{"name":"dataEnd","nativeSrc":"22455:7:64","nodeType":"YulIdentifier","src":"22455:7:64"}],"functionName":{"name":"abi_decode_t_bytes4_fromMemory","nativeSrc":"22400:30:64","nodeType":"YulIdentifier","src":"22400:30:64"},"nativeSrc":"22400:63:64","nodeType":"YulFunctionCall","src":"22400:63:64"},"variableNames":[{"name":"value0","nativeSrc":"22390:6:64","nodeType":"YulIdentifier","src":"22390:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nativeSrc":"22131:349:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22177:9:64","nodeType":"YulTypedName","src":"22177:9:64","type":""},{"name":"dataEnd","nativeSrc":"22188:7:64","nodeType":"YulTypedName","src":"22188:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"22200:6:64","nodeType":"YulTypedName","src":"22200:6:64","type":""}],"src":"22131:349:64"},{"body":{"nativeSrc":"22814:725:64","nodeType":"YulBlock","src":"22814:725:64","statements":[{"nativeSrc":"22824:27:64","nodeType":"YulAssignment","src":"22824:27:64","value":{"arguments":[{"name":"headStart","nativeSrc":"22836:9:64","nodeType":"YulIdentifier","src":"22836:9:64"},{"kind":"number","nativeSrc":"22847:3:64","nodeType":"YulLiteral","src":"22847:3:64","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"22832:3:64","nodeType":"YulIdentifier","src":"22832:3:64"},"nativeSrc":"22832:19:64","nodeType":"YulFunctionCall","src":"22832:19:64"},"variableNames":[{"name":"tail","nativeSrc":"22824:4:64","nodeType":"YulIdentifier","src":"22824:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"22905:6:64","nodeType":"YulIdentifier","src":"22905:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"22918:9:64","nodeType":"YulIdentifier","src":"22918:9:64"},{"kind":"number","nativeSrc":"22929:1:64","nodeType":"YulLiteral","src":"22929:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"22914:3:64","nodeType":"YulIdentifier","src":"22914:3:64"},"nativeSrc":"22914:17:64","nodeType":"YulFunctionCall","src":"22914:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22861:43:64","nodeType":"YulIdentifier","src":"22861:43:64"},"nativeSrc":"22861:71:64","nodeType":"YulFunctionCall","src":"22861:71:64"},"nativeSrc":"22861:71:64","nodeType":"YulExpressionStatement","src":"22861:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"22986:6:64","nodeType":"YulIdentifier","src":"22986:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"22999:9:64","nodeType":"YulIdentifier","src":"22999:9:64"},{"kind":"number","nativeSrc":"23010:2:64","nodeType":"YulLiteral","src":"23010:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"22995:3:64","nodeType":"YulIdentifier","src":"22995:3:64"},"nativeSrc":"22995:18:64","nodeType":"YulFunctionCall","src":"22995:18:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"22942:43:64","nodeType":"YulIdentifier","src":"22942:43:64"},"nativeSrc":"22942:72:64","nodeType":"YulFunctionCall","src":"22942:72:64"},"nativeSrc":"22942:72:64","nodeType":"YulExpressionStatement","src":"22942:72:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23035:9:64","nodeType":"YulIdentifier","src":"23035:9:64"},{"kind":"number","nativeSrc":"23046:2:64","nodeType":"YulLiteral","src":"23046:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"23031:3:64","nodeType":"YulIdentifier","src":"23031:3:64"},"nativeSrc":"23031:18:64","nodeType":"YulFunctionCall","src":"23031:18:64"},{"arguments":[{"name":"tail","nativeSrc":"23055:4:64","nodeType":"YulIdentifier","src":"23055:4:64"},{"name":"headStart","nativeSrc":"23061:9:64","nodeType":"YulIdentifier","src":"23061:9:64"}],"functionName":{"name":"sub","nativeSrc":"23051:3:64","nodeType":"YulIdentifier","src":"23051:3:64"},"nativeSrc":"23051:20:64","nodeType":"YulFunctionCall","src":"23051:20:64"}],"functionName":{"name":"mstore","nativeSrc":"23024:6:64","nodeType":"YulIdentifier","src":"23024:6:64"},"nativeSrc":"23024:48:64","nodeType":"YulFunctionCall","src":"23024:48:64"},"nativeSrc":"23024:48:64","nodeType":"YulExpressionStatement","src":"23024:48:64"},{"nativeSrc":"23081:116:64","nodeType":"YulAssignment","src":"23081:116:64","value":{"arguments":[{"name":"value2","nativeSrc":"23183:6:64","nodeType":"YulIdentifier","src":"23183:6:64"},{"name":"tail","nativeSrc":"23192:4:64","nodeType":"YulIdentifier","src":"23192:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"23089:93:64","nodeType":"YulIdentifier","src":"23089:93:64"},"nativeSrc":"23089:108:64","nodeType":"YulFunctionCall","src":"23089:108:64"},"variableNames":[{"name":"tail","nativeSrc":"23081:4:64","nodeType":"YulIdentifier","src":"23081:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23218:9:64","nodeType":"YulIdentifier","src":"23218:9:64"},{"kind":"number","nativeSrc":"23229:2:64","nodeType":"YulLiteral","src":"23229:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"23214:3:64","nodeType":"YulIdentifier","src":"23214:3:64"},"nativeSrc":"23214:18:64","nodeType":"YulFunctionCall","src":"23214:18:64"},{"arguments":[{"name":"tail","nativeSrc":"23238:4:64","nodeType":"YulIdentifier","src":"23238:4:64"},{"name":"headStart","nativeSrc":"23244:9:64","nodeType":"YulIdentifier","src":"23244:9:64"}],"functionName":{"name":"sub","nativeSrc":"23234:3:64","nodeType":"YulIdentifier","src":"23234:3:64"},"nativeSrc":"23234:20:64","nodeType":"YulFunctionCall","src":"23234:20:64"}],"functionName":{"name":"mstore","nativeSrc":"23207:6:64","nodeType":"YulIdentifier","src":"23207:6:64"},"nativeSrc":"23207:48:64","nodeType":"YulFunctionCall","src":"23207:48:64"},"nativeSrc":"23207:48:64","nodeType":"YulExpressionStatement","src":"23207:48:64"},{"nativeSrc":"23264:116:64","nodeType":"YulAssignment","src":"23264:116:64","value":{"arguments":[{"name":"value3","nativeSrc":"23366:6:64","nodeType":"YulIdentifier","src":"23366:6:64"},{"name":"tail","nativeSrc":"23375:4:64","nodeType":"YulIdentifier","src":"23375:4:64"}],"functionName":{"name":"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack","nativeSrc":"23272:93:64","nodeType":"YulIdentifier","src":"23272:93:64"},"nativeSrc":"23272:108:64","nodeType":"YulFunctionCall","src":"23272:108:64"},"variableNames":[{"name":"tail","nativeSrc":"23264:4:64","nodeType":"YulIdentifier","src":"23264:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"23401:9:64","nodeType":"YulIdentifier","src":"23401:9:64"},{"kind":"number","nativeSrc":"23412:3:64","nodeType":"YulLiteral","src":"23412:3:64","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"23397:3:64","nodeType":"YulIdentifier","src":"23397:3:64"},"nativeSrc":"23397:19:64","nodeType":"YulFunctionCall","src":"23397:19:64"},{"arguments":[{"name":"tail","nativeSrc":"23422:4:64","nodeType":"YulIdentifier","src":"23422:4:64"},{"name":"headStart","nativeSrc":"23428:9:64","nodeType":"YulIdentifier","src":"23428:9:64"}],"functionName":{"name":"sub","nativeSrc":"23418:3:64","nodeType":"YulIdentifier","src":"23418:3:64"},"nativeSrc":"23418:20:64","nodeType":"YulFunctionCall","src":"23418:20:64"}],"functionName":{"name":"mstore","nativeSrc":"23390:6:64","nodeType":"YulIdentifier","src":"23390:6:64"},"nativeSrc":"23390:49:64","nodeType":"YulFunctionCall","src":"23390:49:64"},"nativeSrc":"23390:49:64","nodeType":"YulExpressionStatement","src":"23390:49:64"},{"nativeSrc":"23448:84:64","nodeType":"YulAssignment","src":"23448:84:64","value":{"arguments":[{"name":"value4","nativeSrc":"23518:6:64","nodeType":"YulIdentifier","src":"23518:6:64"},{"name":"tail","nativeSrc":"23527:4:64","nodeType":"YulIdentifier","src":"23527:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"23456:61:64","nodeType":"YulIdentifier","src":"23456:61:64"},"nativeSrc":"23456:76:64","nodeType":"YulFunctionCall","src":"23456:76:64"},"variableNames":[{"name":"tail","nativeSrc":"23448:4:64","nodeType":"YulIdentifier","src":"23448:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"22486:1053:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"22754:9:64","nodeType":"YulTypedName","src":"22754:9:64","type":""},{"name":"value4","nativeSrc":"22766:6:64","nodeType":"YulTypedName","src":"22766:6:64","type":""},{"name":"value3","nativeSrc":"22774:6:64","nodeType":"YulTypedName","src":"22774:6:64","type":""},{"name":"value2","nativeSrc":"22782:6:64","nodeType":"YulTypedName","src":"22782:6:64","type":""},{"name":"value1","nativeSrc":"22790:6:64","nodeType":"YulTypedName","src":"22790:6:64","type":""},{"name":"value0","nativeSrc":"22798:6:64","nodeType":"YulTypedName","src":"22798:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"22809:4:64","nodeType":"YulTypedName","src":"22809:4:64","type":""}],"src":"22486:1053:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_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 if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561000f575f80fd5b506004361061009b575f3560e01c80634e1273f4116100645780634e1273f414610167578063a22cb46514610197578063e985e9c5146101b3578063f242432a146101e3578063f5298aca146101ff5761009b565b8062fdd58e1461009f57806301ffc9a7146100cf5780630e89341c146100ff578063156e29f61461012f5780632eb2c2d61461014b575b5f80fd5b6100b960048036038101906100b491906114a3565b61021b565b6040516100c691906114f0565b60405180910390f35b6100e960048036038101906100e4919061155e565b610270565b6040516100f691906115a3565b60405180910390f35b610119600480360381019061011491906115bc565b610351565b6040516101269190611657565b60405180910390f35b61014960048036038101906101449190611677565b6103e3565b005b610165600480360381019061016091906118b7565b610402565b005b610181600480360381019061017c9190611a42565b6104a9565b60405161018e9190611b6f565b60405180910390f35b6101b160048036038101906101ac9190611bb9565b6105b0565b005b6101cd60048036038101906101c89190611bf7565b6105c6565b6040516101da91906115a3565b60405180910390f35b6101fd60048036038101906101f89190611c35565b610654565b005b61021960048036038101906102149190611677565b6106fb565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061033a57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061034a57506103498261070b565b5b9050919050565b60606002805461036090611cf5565b80601f016020809104026020016040519081016040528092919081815260200182805461038c90611cf5565b80156103d75780601f106103ae576101008083540402835291602001916103d7565b820191905f5260205f20905b8154815290600101906020018083116103ba57829003601f168201915b50505050509050919050565b6103fd83838360405180602001604052805f815250610774565b505050565b5f61040b610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610450575061044e86826105c6565b155b156104945780866040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161048b929190611d34565b60405180910390fd5b6104a18686868686610810565b505050505050565b606081518351146104f557815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016104ec929190611d5b565b60405180910390fd5b5f835167ffffffffffffffff811115610511576105106116cb565b5b60405190808252806020026020018201604052801561053f5781602001602082028036833780820191505090505b5090505f5b84518110156105a55761057b610563828761090490919063ffffffff16565b610576838761091790919063ffffffff16565b61021b565b82828151811061058e5761058d611d82565b5b602002602001018181525050806001019050610544565b508091505092915050565b6105c26105bb610809565b838361092a565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f61065d610809565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156106a257506106a086826105c6565b155b156106e65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016106dd929190611d34565b60405180910390fd5b6106f38686868686610a93565b505050505050565b610706838383610b99565b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107e4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016107db9190611daf565b60405180910390fd5b5f806107f08585610c3b565b915091506108015f87848487610c6b565b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610880575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016108779190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036108f0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016108e79190611daf565b60405180910390fd5b6108fd8585858585610c6b565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361099a575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016109919190611daf565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610a8691906115a3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610b03575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610afa9190611daf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610b73575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610b6a9190611daf565b60405180910390fd5b5f80610b7f8585610c3b565b91509150610b908787848487610c6b565b50505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c09575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610c009190611daf565b60405180910390fd5b5f80610c158484610c3b565b91509150610c34855f848460405180602001604052805f815250610c6b565b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b610c7785858585610d17565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610d10575f610cb3610809565b90506001845103610cff575f610cd25f8661091790919063ffffffff16565b90505f610ce85f8661091790919063ffffffff16565b9050610cf88389898585896110a7565b5050610d0e565b610d0d818787878787611256565b5b505b5050505050565b8051825114610d6157815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610d58929190611d5b565b60405180910390fd5b5f610d6a610809565b90505f5b8351811015610f66575f610d8b828661091790919063ffffffff16565b90505f610da1838661091790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614610ec4575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610e7057888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401610e679493929190611dc8565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614610f5957805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f519190611e38565b925050819055505b5050806001019050610d6e565b506001835103611021575f610f845f8561091790919063ffffffff16565b90505f610f9a5f8561091790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611012929190611d5b565b60405180910390a450506110a0565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611097929190611e6b565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561124e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611107959493929190611ef2565b6020604051808303815f875af192505050801561114257506040513d601f19601f8201168201806040525081019061113f9190611f5e565b60015b6111c3573d805f8114611170576040519150601f19603f3d011682016040523d82523d5f602084013e611175565b606091505b505f8151036111bb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111b29190611daf565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461124c57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016112439190611daf565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b11156113fd578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016112b6959493929190611f89565b6020604051808303815f875af19250505080156112f157506040513d601f19601f820116820180604052508101906112ee9190611f5e565b60015b611372573d805f811461131f576040519150601f19603f3d011682016040523d82523d5f602084013e611324565b606091505b505f81510361136a57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113619190611daf565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113fb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113f29190611daf565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61143f82611416565b9050919050565b61144f81611435565b8114611459575f80fd5b50565b5f8135905061146a81611446565b92915050565b5f819050919050565b61148281611470565b811461148c575f80fd5b50565b5f8135905061149d81611479565b92915050565b5f80604083850312156114b9576114b861140e565b5b5f6114c68582860161145c565b92505060206114d78582860161148f565b9150509250929050565b6114ea81611470565b82525050565b5f6020820190506115035f8301846114e1565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61153d81611509565b8114611547575f80fd5b50565b5f8135905061155881611534565b92915050565b5f602082840312156115735761157261140e565b5b5f6115808482850161154a565b91505092915050565b5f8115159050919050565b61159d81611589565b82525050565b5f6020820190506115b65f830184611594565b92915050565b5f602082840312156115d1576115d061140e565b5b5f6115de8482850161148f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611629826115e7565b61163381856115f1565b9350611643818560208601611601565b61164c8161160f565b840191505092915050565b5f6020820190508181035f83015261166f818461161f565b905092915050565b5f805f6060848603121561168e5761168d61140e565b5b5f61169b8682870161145c565b93505060206116ac8682870161148f565b92505060406116bd8682870161148f565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6117018261160f565b810181811067ffffffffffffffff821117156117205761171f6116cb565b5b80604052505050565b5f611732611405565b905061173e82826116f8565b919050565b5f67ffffffffffffffff82111561175d5761175c6116cb565b5b602082029050602081019050919050565b5f80fd5b5f61178461177f84611743565b611729565b905080838252602082019050602084028301858111156117a7576117a661176e565b5b835b818110156117d057806117bc888261148f565b8452602084019350506020810190506117a9565b5050509392505050565b5f82601f8301126117ee576117ed6116c7565b5b81356117fe848260208601611772565b91505092915050565b5f80fd5b5f67ffffffffffffffff821115611825576118246116cb565b5b61182e8261160f565b9050602081019050919050565b828183375f83830152505050565b5f61185b6118568461180b565b611729565b90508281526020810184848401111561187757611876611807565b5b61188284828561183b565b509392505050565b5f82601f83011261189e5761189d6116c7565b5b81356118ae848260208601611849565b91505092915050565b5f805f805f60a086880312156118d0576118cf61140e565b5b5f6118dd8882890161145c565b95505060206118ee8882890161145c565b945050604086013567ffffffffffffffff81111561190f5761190e611412565b5b61191b888289016117da565b935050606086013567ffffffffffffffff81111561193c5761193b611412565b5b611948888289016117da565b925050608086013567ffffffffffffffff81111561196957611968611412565b5b6119758882890161188a565b9150509295509295909350565b5f67ffffffffffffffff82111561199c5761199b6116cb565b5b602082029050602081019050919050565b5f6119bf6119ba84611982565b611729565b905080838252602082019050602084028301858111156119e2576119e161176e565b5b835b81811015611a0b57806119f7888261145c565b8452602084019350506020810190506119e4565b5050509392505050565b5f82601f830112611a2957611a286116c7565b5b8135611a398482602086016119ad565b91505092915050565b5f8060408385031215611a5857611a5761140e565b5b5f83013567ffffffffffffffff811115611a7557611a74611412565b5b611a8185828601611a15565b925050602083013567ffffffffffffffff811115611aa257611aa1611412565b5b611aae858286016117da565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611aea81611470565b82525050565b5f611afb8383611ae1565b60208301905092915050565b5f602082019050919050565b5f611b1d82611ab8565b611b278185611ac2565b9350611b3283611ad2565b805f5b83811015611b62578151611b498882611af0565b9750611b5483611b07565b925050600181019050611b35565b5085935050505092915050565b5f6020820190508181035f830152611b878184611b13565b905092915050565b611b9881611589565b8114611ba2575f80fd5b50565b5f81359050611bb381611b8f565b92915050565b5f8060408385031215611bcf57611bce61140e565b5b5f611bdc8582860161145c565b9250506020611bed85828601611ba5565b9150509250929050565b5f8060408385031215611c0d57611c0c61140e565b5b5f611c1a8582860161145c565b9250506020611c2b8582860161145c565b9150509250929050565b5f805f805f60a08688031215611c4e57611c4d61140e565b5b5f611c5b8882890161145c565b9550506020611c6c8882890161145c565b9450506040611c7d8882890161148f565b9350506060611c8e8882890161148f565b925050608086013567ffffffffffffffff811115611caf57611cae611412565b5b611cbb8882890161188a565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611d0c57607f821691505b602082108103611d1f57611d1e611cc8565b5b50919050565b611d2e81611435565b82525050565b5f604082019050611d475f830185611d25565b611d546020830184611d25565b9392505050565b5f604082019050611d6e5f8301856114e1565b611d7b60208301846114e1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f602082019050611dc25f830184611d25565b92915050565b5f608082019050611ddb5f830187611d25565b611de860208301866114e1565b611df560408301856114e1565b611e0260608301846114e1565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611e4282611470565b9150611e4d83611470565b9250828201905080821115611e6557611e64611e0b565b5b92915050565b5f6040820190508181035f830152611e838185611b13565b90508181036020830152611e978184611b13565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f611ec482611ea0565b611ece8185611eaa565b9350611ede818560208601611601565b611ee78161160f565b840191505092915050565b5f60a082019050611f055f830188611d25565b611f126020830187611d25565b611f1f60408301866114e1565b611f2c60608301856114e1565b8181036080830152611f3e8184611eba565b90509695505050505050565b5f81519050611f5881611534565b92915050565b5f60208284031215611f7357611f7261140e565b5b5f611f8084828501611f4a565b91505092915050565b5f60a082019050611f9c5f830188611d25565b611fa96020830187611d25565b8181036040830152611fbb8186611b13565b90508181036060830152611fcf8185611b13565b90508181036080830152611fe38184611eba565b9050969550505050505056fea2646970667358221220644597f71093432852dc59712ddb56cb16a961c29f8b49d833a5b8d50af0013164736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9B JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x1E3 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x1FF JUMPI PUSH2 0x9B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x9F JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x156E29F6 EQ PUSH2 0x12F JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x14B JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH2 0xB9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC6 SWAP2 SWAP1 PUSH2 0x14F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x155E JUMP JUMPDEST PUSH2 0x270 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF6 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x119 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x15BC JUMP JUMPDEST PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x126 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x149 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x144 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x3E3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x165 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x160 SWAP2 SWAP1 PUSH2 0x18B7 JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x181 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17C SWAP2 SWAP1 PUSH2 0x1A42 JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x1B6F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x1BB9 JUMP JUMPDEST PUSH2 0x5B0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1C8 SWAP2 SWAP1 PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0x5C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DA SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F8 SWAP2 SWAP1 PUSH2 0x1C35 JUMP JUMPDEST PUSH2 0x654 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x219 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x214 SWAP2 SWAP1 PUSH2 0x1677 JUMP JUMPDEST PUSH2 0x6FB JUMP JUMPDEST STOP JUMPDEST PUSH0 DUP1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x33A JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x34A JUMPI POP PUSH2 0x349 DUP3 PUSH2 0x70B JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x360 SWAP1 PUSH2 0x1CF5 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 0x38C SWAP1 PUSH2 0x1CF5 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D7 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D7 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3BA JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FD DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x774 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x40B PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x450 JUMPI POP PUSH2 0x44E DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x494 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x48B SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4A1 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x4F5 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4EC SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x511 JUMPI PUSH2 0x510 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x53F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x5A5 JUMPI PUSH2 0x57B PUSH2 0x563 DUP3 DUP8 PUSH2 0x904 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x576 DUP4 DUP8 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x21B JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x58E JUMPI PUSH2 0x58D PUSH2 0x1D82 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x544 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5C2 PUSH2 0x5BB PUSH2 0x809 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x92A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x65D PUSH2 0x809 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x6A2 JUMPI POP PUSH2 0x6A0 DUP7 DUP3 PUSH2 0x5C6 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x6E6 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6DD SWAP3 SWAP2 SWAP1 PUSH2 0x1D34 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F3 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xA93 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x706 DUP4 DUP4 DUP4 PUSH2 0xB99 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7E4 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7DB SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0x7F0 DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x801 PUSH0 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x880 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x877 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8F0 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E7 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x8FD DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x99A JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x991 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB03 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFA SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xB73 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB6A SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xB7F DUP6 DUP6 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xB90 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xC09 JUMPI PUSH0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC00 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 DUP1 PUSH2 0xC15 DUP5 DUP5 PUSH2 0xC3B JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0xC34 DUP6 PUSH0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0xC6B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xC77 DUP6 DUP6 DUP6 DUP6 PUSH2 0xD17 JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xD10 JUMPI PUSH0 PUSH2 0xCB3 PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0xCFF JUMPI PUSH0 PUSH2 0xCD2 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xCE8 PUSH0 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0xCF8 DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x10A7 JUMP JUMPDEST POP POP PUSH2 0xD0E JUMP JUMPDEST PUSH2 0xD0D DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1256 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0xD61 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD58 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 PUSH2 0xD6A PUSH2 0x809 JUMP JUMPDEST SWAP1 POP PUSH0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0xF66 JUMPI PUSH0 PUSH2 0xD8B DUP3 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xDA1 DUP4 DUP7 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xEC4 JUMPI PUSH0 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0xE70 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE67 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1DC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xF59 JUMPI DUP1 PUSH0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 DUP3 DUP3 SLOAD PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x1E38 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0xD6E JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1021 JUMPI PUSH0 PUSH2 0xF84 PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH0 PUSH2 0xF9A PUSH0 DUP6 PUSH2 0x917 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1012 SWAP3 SWAP2 SWAP1 PUSH2 0x1D5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x10A0 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1097 SWAP3 SWAP2 SWAP1 PUSH2 0x1E6B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x124E JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1107 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1EF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1142 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x113F SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x11C3 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x1170 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1175 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x11BB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11B2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x124C JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1243 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x13FD JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12B6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1F89 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x12F1 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12EE SWAP2 SWAP1 PUSH2 0x1F5E JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1372 JUMPI RETURNDATASIZE DUP1 PUSH0 DUP2 EQ PUSH2 0x131F JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1324 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH0 DUP2 MLOAD SUB PUSH2 0x136A JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1361 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x13FB JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13F2 SWAP2 SWAP1 PUSH2 0x1DAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x143F DUP3 PUSH2 0x1416 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x144F DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP2 EQ PUSH2 0x1459 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x146A DUP2 PUSH2 0x1446 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1482 DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP2 EQ PUSH2 0x148C JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x149D DUP2 PUSH2 0x1479 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14B9 JUMPI PUSH2 0x14B8 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x14C6 DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x14D7 DUP6 DUP3 DUP7 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1503 PUSH0 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x153D DUP2 PUSH2 0x1509 JUMP JUMPDEST DUP2 EQ PUSH2 0x1547 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1558 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1573 JUMPI PUSH2 0x1572 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1580 DUP5 DUP3 DUP6 ADD PUSH2 0x154A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x159D DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B6 PUSH0 DUP4 ADD DUP5 PUSH2 0x1594 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D1 JUMPI PUSH2 0x15D0 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DE DUP5 DUP3 DUP6 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1629 DUP3 PUSH2 0x15E7 JUMP JUMPDEST PUSH2 0x1633 DUP2 DUP6 PUSH2 0x15F1 JUMP JUMPDEST SWAP4 POP PUSH2 0x1643 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x164C DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x166F DUP2 DUP5 PUSH2 0x161F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x168E JUMPI PUSH2 0x168D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x169B DUP7 DUP3 DUP8 ADD PUSH2 0x145C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x16AC DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x16BD DUP7 DUP3 DUP8 ADD PUSH2 0x148F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1701 DUP3 PUSH2 0x160F JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1720 JUMPI PUSH2 0x171F PUSH2 0x16CB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1732 PUSH2 0x1405 JUMP JUMPDEST SWAP1 POP PUSH2 0x173E DUP3 DUP3 PUSH2 0x16F8 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x175D JUMPI PUSH2 0x175C PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH2 0x1784 PUSH2 0x177F DUP5 PUSH2 0x1743 JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x17A7 JUMPI PUSH2 0x17A6 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D0 JUMPI DUP1 PUSH2 0x17BC DUP9 DUP3 PUSH2 0x148F JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x17A9 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x17EE JUMPI PUSH2 0x17ED PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x17FE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1772 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1825 JUMPI PUSH2 0x1824 PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH2 0x182E DUP3 PUSH2 0x160F JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x185B PUSH2 0x1856 DUP5 PUSH2 0x180B JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1877 JUMPI PUSH2 0x1876 PUSH2 0x1807 JUMP JUMPDEST JUMPDEST PUSH2 0x1882 DUP5 DUP3 DUP6 PUSH2 0x183B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x189E JUMPI PUSH2 0x189D PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x18AE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1849 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x18D0 JUMPI PUSH2 0x18CF PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x18DD DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x18EE DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x190F JUMPI PUSH2 0x190E PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x191B DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x193C JUMPI PUSH2 0x193B PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1948 DUP9 DUP3 DUP10 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1969 JUMPI PUSH2 0x1968 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1975 DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x199C JUMPI PUSH2 0x199B PUSH2 0x16CB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x19BF PUSH2 0x19BA DUP5 PUSH2 0x1982 JUMP JUMPDEST PUSH2 0x1729 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x19E2 JUMPI PUSH2 0x19E1 PUSH2 0x176E JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A0B JUMPI DUP1 PUSH2 0x19F7 DUP9 DUP3 PUSH2 0x145C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x19E4 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1A29 JUMPI PUSH2 0x1A28 PUSH2 0x16C7 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A39 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x19AD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A58 JUMPI PUSH2 0x1A57 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A75 JUMPI PUSH2 0x1A74 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1A81 DUP6 DUP3 DUP7 ADD PUSH2 0x1A15 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1AA2 JUMPI PUSH2 0x1AA1 PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1AAE DUP6 DUP3 DUP7 ADD PUSH2 0x17DA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AEA DUP2 PUSH2 0x1470 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1AFB DUP4 DUP4 PUSH2 0x1AE1 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1B1D DUP3 PUSH2 0x1AB8 JUMP JUMPDEST PUSH2 0x1B27 DUP2 DUP6 PUSH2 0x1AC2 JUMP JUMPDEST SWAP4 POP PUSH2 0x1B32 DUP4 PUSH2 0x1AD2 JUMP JUMPDEST DUP1 PUSH0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B62 JUMPI DUP2 MLOAD PUSH2 0x1B49 DUP9 DUP3 PUSH2 0x1AF0 JUMP JUMPDEST SWAP8 POP PUSH2 0x1B54 DUP4 PUSH2 0x1B07 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x1B35 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1B87 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1B98 DUP2 PUSH2 0x1589 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BA2 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1BB3 DUP2 PUSH2 0x1B8F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1BCF JUMPI PUSH2 0x1BCE PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1BDC DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1BED DUP6 DUP3 DUP7 ADD PUSH2 0x1BA5 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C0D JUMPI PUSH2 0x1C0C PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C1A DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C2B DUP6 DUP3 DUP7 ADD PUSH2 0x145C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1C4E JUMPI PUSH2 0x1C4D PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1C5B DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x1C6C DUP9 DUP3 DUP10 ADD PUSH2 0x145C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x1C7D DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x1C8E DUP9 DUP3 DUP10 ADD PUSH2 0x148F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1CAF JUMPI PUSH2 0x1CAE PUSH2 0x1412 JUMP JUMPDEST JUMPDEST PUSH2 0x1CBB DUP9 DUP3 DUP10 ADD PUSH2 0x188A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1D0C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1D1F JUMPI PUSH2 0x1D1E PUSH2 0x1CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1D2E DUP2 PUSH2 0x1435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D47 PUSH0 DUP4 ADD DUP6 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1D54 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1D6E PUSH0 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1D7B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1DC2 PUSH0 DUP4 ADD DUP5 PUSH2 0x1D25 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x1DDB PUSH0 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1DE8 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1DF5 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1E02 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x14E1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0x1E42 DUP3 PUSH2 0x1470 JUMP JUMPDEST SWAP2 POP PUSH2 0x1E4D DUP4 PUSH2 0x1470 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1E65 JUMPI PUSH2 0x1E64 PUSH2 0x1E0B JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x1E83 DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x1E97 DUP2 DUP5 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1EC4 DUP3 PUSH2 0x1EA0 JUMP JUMPDEST PUSH2 0x1ECE DUP2 DUP6 PUSH2 0x1EAA JUMP JUMPDEST SWAP4 POP PUSH2 0x1EDE DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1601 JUMP JUMPDEST PUSH2 0x1EE7 DUP2 PUSH2 0x160F JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F05 PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F12 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1F1F PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x14E1 JUMP JUMPDEST PUSH2 0x1F2C PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x14E1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1F3E DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP PUSH2 0x1F58 DUP2 PUSH2 0x1534 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F73 JUMPI PUSH2 0x1F72 PUSH2 0x140E JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1F80 DUP5 DUP3 DUP6 ADD PUSH2 0x1F4A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1F9C PUSH0 DUP4 ADD DUP9 PUSH2 0x1D25 JUMP JUMPDEST PUSH2 0x1FA9 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x1D25 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1FBB DUP2 DUP7 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1FCF DUP2 DUP6 PUSH2 0x1B13 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1FE3 DUP2 DUP5 PUSH2 0x1EBA JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH5 0x4597F71093 NUMBER 0x28 MSTORE 0xDC MSIZE PUSH18 0x2DDB56CB16A961C29F8B49D833A5B8D50AF0 ADD BALANCE PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"2054:316:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:132:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1378:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2082:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2156::59;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4012:429:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2534:552;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3154:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3365:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3589:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2265:103:59;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2245:132:1;2322:7;2348:9;:13;2358:2;2348:13;;;;;;;;;;;:22;2362:7;2348:22;;;;;;;;;;;;;;;;2341:29;;2245:132;;;;:::o;1378:305::-;1480:4;1530:26;1515:41;;;:11;:41;;;;:109;;;;1587:37;1572:52;;;:11;:52;;;;1515:109;:161;;;;1640:36;1664:11;1640:23;:36::i;:::-;1515:161;1496:180;;1378:305;;;:::o;2082:103::-;2142:13;2174:4;2167:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2082:103;;;:::o;2156::59:-;2227:25;2233:2;2237;2241:6;2227:25;;;;;;;;;;;;:5;:25::i;:::-;2156:103;;;:::o;4012:429:1:-;4206:14;4223:12;:10;:12::i;:::-;4206:29;;4257:6;4249:14;;:4;:14;;;;:49;;;;;4268:30;4285:4;4291:6;4268:16;:30::i;:::-;4267:31;4249:49;4245:129;;;4350:6;4358:4;4321:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4245:129;4383:51;4406:4;4412:2;4416:3;4421:6;4429:4;4383:22;:51::i;:::-;4196:245;4012:429;;;;;:::o;2534:552::-;2658:16;2709:3;:10;2690:8;:15;:29;2686:121;;2768:3;:10;2780:8;:15;2742:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2686:121;2817:30;2864:8;:15;2850:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2817:63;;2896:9;2891:158;2915:8;:15;2911:1;:19;2891:158;;;2970:68;2980:30;3008:1;2980:8;:27;;:30;;;;:::i;:::-;3012:25;3035:1;3012:3;:22;;:25;;;;:::i;:::-;2970:9;:68::i;:::-;2951:13;2965:1;2951:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2932:3;;;;;2891:158;;;;3066:13;3059:20;;;2534:552;;;;:::o;3154:144::-;3239:52;3258:12;:10;:12::i;:::-;3272:8;3282;3239:18;:52::i;:::-;3154:144;;:::o;3365:157::-;3455:4;3478:18;:27;3497:7;3478:27;;;;;;;;;;;;;;;:37;3506:8;3478:37;;;;;;;;;;;;;;;;;;;;;;;;;3471:44;;3365:157;;;;:::o;3589:351::-;3712:14;3729:12;:10;:12::i;:::-;3712:29;;3763:6;3755:14;;:4;:14;;;;:49;;;;;3774:30;3791:4;3797:6;3774:16;:30::i;:::-;3773:31;3755:49;3751:129;;;3856:6;3864:4;3827:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3751:129;3889:44;3907:4;3913:2;3917;3921:5;3928:4;3889:17;:44::i;:::-;3702:238;3589:351;;;;;:::o;2265:103:59:-;2338:23;2344:4;2350:2;2354:6;2338:5;:23::i;:::-;2265:103;;;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;10754:346:1:-;10864:1;10850:16;;:2;:16;;;10846:88;;10920:1;10889:34;;;;;;;;;;;:::i;:::-;;;;;;;;10846:88;10944:20;10966:23;10993:29;11012:2;11016:5;10993:18;:29::i;:::-;10943:79;;;;11032:61;11067:1;11071:2;11075:3;11080:6;11088:4;11032:26;:61::i;:::-;10836:264;;10754:346;;;;:::o;656:96:7:-;709:7;735:10;728:17;;656:96;:::o;9023:445:1:-;9230:1;9216:16;;:2;:16;;;9212:88;;9286:1;9255:34;;;;;;;;;;;:::i;:::-;;;;;;;;9212:88;9329:1;9313:18;;:4;:18;;;9309:88;;9383:1;9354:32;;;;;;;;;;;:::i;:::-;;;;;;;;9309:88;9406:55;9433:4;9439:2;9443:3;9448:6;9456:4;9406:26;:55::i;:::-;9023:445;;;;;:::o;15964:197:6:-;16050:11;16138:4;16133:3;16129:14;16122:4;16117:3;16113:14;16109:35;16103:42;16096:49;;15964:197;;;;:::o;16762:::-;16848:11;16936:4;16931:3;16927:14;16920:4;16915:3;16911:14;16907:35;16901:42;16894:49;;16762:197;;;;:::o;13276:315:1:-;13403:1;13383:22;;:8;:22;;;13379:94;;13459:1;13428:34;;;;;;;;;;;:::i;:::-;;;;;;;;13379:94;13520:8;13482:18;:25;13501:5;13482:25;;;;;;;;;;;;;;;:35;13508:8;13482:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13565:8;13543:41;;13558:5;13543:41;;;13575:8;13543:41;;;;;;:::i;:::-;;;;;;;;13276:315;;;:::o;8159:463::-;8295:1;8281:16;;:2;:16;;;8277:88;;8351:1;8320:34;;;;;;;;;;;:::i;:::-;;;;;;;;8277:88;8394:1;8378:18;;:4;:18;;;8374:88;;8448:1;8419:32;;;;;;;;;;;:::i;:::-;;;;;;;;8374:88;8472:20;8494:23;8521:29;8540:2;8544:5;8521:18;:29::i;:::-;8471:79;;;;8560:55;8587:4;8593:2;8597:3;8602:6;8610:4;8560:26;:55::i;:::-;8267:355;;8159:463;;;;;:::o;12107:329::-;12202:1;12186:18;;:4;:18;;;12182:88;;12256:1;12227:32;;;;;;;;;;;:::i;:::-;;;;;;;;12182:88;12280:20;12302:23;12329:29;12348:2;12352:5;12329:18;:29::i;:::-;12279:79;;;;12368:61;12395:4;12409:1;12413:3;12418:6;12368:61;;;;;;;;;;;;:26;:61::i;:::-;12172:264;;12107:329;;;:::o;13707:849::-;13815:23;13840;14001:4;13995:11;13985:21;;14071:1;14063:6;14056:17;14209:8;14202:4;14194:6;14190:17;14183:35;14331:4;14323:6;14319:17;14309:27;;14364:1;14356:6;14349:17;14405:8;14398:4;14390:6;14386:17;14379:35;14534:4;14526:6;14522:17;14516:4;14509:31;13707:849;;;;;:::o;7002:700::-;7203:30;7211:4;7217:2;7221:3;7226:6;7203:7;:30::i;:::-;7261:1;7247:16;;:2;:16;;;7243:453;;7279:16;7298:12;:10;:12::i;:::-;7279:31;;7342:1;7328:3;:10;:15;7324:362;;7363:10;7376:25;7399:1;7376:3;:22;;:25;;;;:::i;:::-;7363:38;;7419:13;7435:28;7461:1;7435:6;:25;;:28;;;;:::i;:::-;7419:44;;7481:72;7517:8;7527:4;7533:2;7537;7541:5;7548:4;7481:35;:72::i;:::-;7345:223;;7324:362;;;7592:79;7633:8;7643:4;7649:2;7653:3;7658:6;7666:4;7592:40;:79::i;:::-;7324:362;7265:431;7243:453;7002:700;;;;;:::o;5142:1281::-;5277:6;:13;5263:3;:10;:27;5259:117;;5339:3;:10;5351:6;:13;5313:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5259:117;5386:16;5405:12;:10;:12::i;:::-;5386:31;;5433:9;5428:691;5452:3;:10;5448:1;:14;5428:691;;;5483:10;5496:25;5519:1;5496:3;:22;;:25;;;;:::i;:::-;5483:38;;5535:13;5551:28;5577:1;5551:6;:25;;:28;;;;:::i;:::-;5535:44;;5614:1;5598:18;;:4;:18;;;5594:420;;5636:19;5658:9;:13;5668:2;5658:13;;;;;;;;;;;:19;5672:4;5658:19;;;;;;;;;;;;;;;;5636:41;;5713:5;5699:11;:19;5695:129;;;5776:4;5782:11;5795:5;5802:2;5749:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5695:129;5976:5;5962:11;:19;5940:9;:13;5950:2;5940:13;;;;;;;;;;;:19;5954:4;5940:19;;;;;;;;;;;;;;;:41;;;;5618:396;5594:420;6046:1;6032:16;;:2;:16;;;6028:81;;6089:5;6068:9;:13;6078:2;6068:13;;;;;;;;;;;:17;6082:2;6068:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6028:81;5469:650;;5464:3;;;;;5428:691;;;;6147:1;6133:3;:10;:15;6129:288;;6164:10;6177:25;6200:1;6177:3;:22;;:25;;;;:::i;:::-;6164:38;;6216:13;6232:28;6258:1;6232:6;:25;;:28;;;;:::i;:::-;6216:44;;6310:2;6279:45;;6304:4;6279:45;;6294:8;6279:45;;;6314:2;6318:5;6279:45;;;;;;;:::i;:::-;;;;;;;;6150:185;;6129:288;;;6390:2;6360:46;;6384:4;6360:46;;6374:8;6360:46;;;6394:3;6399:6;6360:46;;;;;;;:::i;:::-;;;;;;;;6129:288;5249:1174;5142:1281;;;;:::o;884:998:5:-;1100:1;1083:2;:14;;;:18;1079:797;;;1138:2;1121:38;;;1160:8;1170:4;1176:2;1180:5;1187:4;1121:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;1117:749;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1508:1;1491:6;:13;:18;1487:365;;1634:2;1596:41;;;;;;;;;;;:::i;:::-;;;;;;;;1487:365;1804:6;1798:13;1789:6;1785:2;1781:15;1774:38;1117:749;1253:43;;;1241:55;;;:8;:55;;;;1237:189;;1404:2;1366:41;;;;;;;;;;;:::i;:::-;;;;;;;;1237:189;1193:247;1079:797;884:998;;;;;;:::o;2433:1065::-;2674:1;2657:2;:14;;;:18;2653:839;;;2712:2;2695:43;;;2739:8;2749:4;2755:3;2760:6;2768:4;2695:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2691:791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:1;3107:6;:13;:18;3103:365;;3250:2;3212:41;;;;;;;;;;;:::i;:::-;;;;;;;;3103:365;3420:6;3414:13;3405:6;3401:2;3397:15;3390:38;2691:791;2864:48;;;2852:60;;;:8;:60;;;;2848:194;;3020:2;2982:41;;;;;;;;;;;:::i;:::-;;;;;;;;2848:194;2774:282;2653:839;2433:1065;;;;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:99::-;3600:6;3634:5;3628:12;3618:22;;3548:99;;;:::o;3653:169::-;3737:11;3771:6;3766:3;3759:19;3811:4;3806:3;3802:14;3787:29;;3653:169;;;;:::o;3828:139::-;3917:6;3912:3;3907;3901:23;3958:1;3949:6;3944:3;3940:16;3933:27;3828:139;;;:::o;3973:102::-;4014:6;4065:2;4061:7;4056:2;4049:5;4045:14;4041:28;4031:38;;3973:102;;;:::o;4081:377::-;4169:3;4197:39;4230:5;4197:39;:::i;:::-;4252:71;4316:6;4311:3;4252:71;:::i;:::-;4245:78;;4332:65;4390:6;4385:3;4378:4;4371:5;4367:16;4332:65;:::i;:::-;4422:29;4444:6;4422:29;:::i;:::-;4417:3;4413:39;4406:46;;4173:285;4081:377;;;;:::o;4464:313::-;4577:4;4615:2;4604:9;4600:18;4592:26;;4664:9;4658:4;4654:20;4650:1;4639:9;4635:17;4628:47;4692:78;4765:4;4756:6;4692:78;:::i;:::-;4684:86;;4464:313;;;;:::o;4783:619::-;4860:6;4868;4876;4925:2;4913:9;4904:7;4900:23;4896:32;4893:119;;;4931:79;;:::i;:::-;4893:119;5051:1;5076:53;5121:7;5112:6;5101:9;5097:22;5076:53;:::i;:::-;5066:63;;5022:117;5178:2;5204:53;5249:7;5240:6;5229:9;5225:22;5204:53;:::i;:::-;5194:63;;5149:118;5306:2;5332:53;5377:7;5368:6;5357:9;5353:22;5332:53;:::i;:::-;5322:63;;5277:118;4783:619;;;;;:::o;5408:117::-;5517:1;5514;5507:12;5531:180;5579:77;5576:1;5569:88;5676:4;5673:1;5666:15;5700:4;5697:1;5690:15;5717:281;5800:27;5822:4;5800:27;:::i;:::-;5792:6;5788:40;5930:6;5918:10;5915:22;5894:18;5882:10;5879:34;5876:62;5873:88;;;5941:18;;:::i;:::-;5873:88;5981:10;5977:2;5970:22;5760:238;5717:281;;:::o;6004:129::-;6038:6;6065:20;;:::i;:::-;6055:30;;6094:33;6122:4;6114:6;6094:33;:::i;:::-;6004:129;;;:::o;6139:311::-;6216:4;6306:18;6298:6;6295:30;6292:56;;;6328:18;;:::i;:::-;6292:56;6378:4;6370:6;6366:17;6358:25;;6438:4;6432;6428:15;6420:23;;6139:311;;;:::o;6456:117::-;6565:1;6562;6555:12;6596:710;6692:5;6717:81;6733:64;6790:6;6733:64;:::i;:::-;6717:81;:::i;:::-;6708:90;;6818:5;6847:6;6840:5;6833:21;6881:4;6874:5;6870:16;6863:23;;6934:4;6926:6;6922:17;6914:6;6910:30;6963:3;6955:6;6952:15;6949:122;;;6982:79;;:::i;:::-;6949:122;7097:6;7080:220;7114:6;7109:3;7106:15;7080:220;;;7189:3;7218:37;7251:3;7239:10;7218:37;:::i;:::-;7213:3;7206:50;7285:4;7280:3;7276:14;7269:21;;7156:144;7140:4;7135:3;7131:14;7124:21;;7080:220;;;7084:21;6698:608;;6596:710;;;;;:::o;7329:370::-;7400:5;7449:3;7442:4;7434:6;7430:17;7426:27;7416:122;;7457:79;;:::i;:::-;7416:122;7574:6;7561:20;7599:94;7689:3;7681:6;7674:4;7666:6;7662:17;7599:94;:::i;:::-;7590:103;;7406:293;7329:370;;;;:::o;7705:117::-;7814:1;7811;7804:12;7828:307;7889:4;7979:18;7971:6;7968:30;7965:56;;;8001:18;;:::i;:::-;7965:56;8039:29;8061:6;8039:29;:::i;:::-;8031:37;;8123:4;8117;8113:15;8105:23;;7828:307;;;:::o;8141:148::-;8239:6;8234:3;8229;8216:30;8280:1;8271:6;8266:3;8262:16;8255:27;8141:148;;;:::o;8295:423::-;8372:5;8397:65;8413:48;8454:6;8413:48;:::i;:::-;8397:65;:::i;:::-;8388:74;;8485:6;8478:5;8471:21;8523:4;8516:5;8512:16;8561:3;8552:6;8547:3;8543:16;8540:25;8537:112;;;8568:79;;:::i;:::-;8537:112;8658:54;8705:6;8700:3;8695;8658:54;:::i;:::-;8378:340;8295:423;;;;;:::o;8737:338::-;8792:5;8841:3;8834:4;8826:6;8822:17;8818:27;8808:122;;8849:79;;:::i;:::-;8808:122;8966:6;8953:20;8991:78;9065:3;9057:6;9050:4;9042:6;9038:17;8991:78;:::i;:::-;8982:87;;8798:277;8737:338;;;;:::o;9081:1509::-;9235:6;9243;9251;9259;9267;9316:3;9304:9;9295:7;9291:23;9287:33;9284:120;;;9323:79;;:::i;:::-;9284:120;9443:1;9468:53;9513:7;9504:6;9493:9;9489:22;9468:53;:::i;:::-;9458:63;;9414:117;9570:2;9596:53;9641:7;9632:6;9621:9;9617:22;9596:53;:::i;:::-;9586:63;;9541:118;9726:2;9715:9;9711:18;9698:32;9757:18;9749:6;9746:30;9743:117;;;9779:79;;:::i;:::-;9743:117;9884:78;9954:7;9945:6;9934:9;9930:22;9884:78;:::i;:::-;9874:88;;9669:303;10039:2;10028:9;10024:18;10011:32;10070:18;10062:6;10059:30;10056:117;;;10092:79;;:::i;:::-;10056:117;10197:78;10267:7;10258:6;10247:9;10243:22;10197:78;:::i;:::-;10187:88;;9982:303;10352:3;10341:9;10337:19;10324:33;10384:18;10376:6;10373:30;10370:117;;;10406:79;;:::i;:::-;10370:117;10511:62;10565:7;10556:6;10545:9;10541:22;10511:62;:::i;:::-;10501:72;;10295:288;9081:1509;;;;;;;;:::o;10596:311::-;10673:4;10763:18;10755:6;10752:30;10749:56;;;10785:18;;:::i;:::-;10749:56;10835:4;10827:6;10823:17;10815:25;;10895:4;10889;10885:15;10877:23;;10596:311;;;:::o;10930:710::-;11026:5;11051:81;11067:64;11124:6;11067:64;:::i;:::-;11051:81;:::i;:::-;11042:90;;11152:5;11181:6;11174:5;11167:21;11215:4;11208:5;11204:16;11197:23;;11268:4;11260:6;11256:17;11248:6;11244:30;11297:3;11289:6;11286:15;11283:122;;;11316:79;;:::i;:::-;11283:122;11431:6;11414:220;11448:6;11443:3;11440:15;11414:220;;;11523:3;11552:37;11585:3;11573:10;11552:37;:::i;:::-;11547:3;11540:50;11619:4;11614:3;11610:14;11603:21;;11490:144;11474:4;11469:3;11465:14;11458:21;;11414:220;;;11418:21;11032:608;;10930:710;;;;;:::o;11663:370::-;11734:5;11783:3;11776:4;11768:6;11764:17;11760:27;11750:122;;11791:79;;:::i;:::-;11750:122;11908:6;11895:20;11933:94;12023:3;12015:6;12008:4;12000:6;11996:17;11933:94;:::i;:::-;11924:103;;11740:293;11663:370;;;;:::o;12039:894::-;12157:6;12165;12214:2;12202:9;12193:7;12189:23;12185:32;12182:119;;;12220:79;;:::i;:::-;12182:119;12368:1;12357:9;12353:17;12340:31;12398:18;12390:6;12387:30;12384:117;;;12420:79;;:::i;:::-;12384:117;12525:78;12595:7;12586:6;12575:9;12571:22;12525:78;:::i;:::-;12515:88;;12311:302;12680:2;12669:9;12665:18;12652:32;12711:18;12703:6;12700:30;12697:117;;;12733:79;;:::i;:::-;12697:117;12838:78;12908:7;12899:6;12888:9;12884:22;12838:78;:::i;:::-;12828:88;;12623:303;12039:894;;;;;:::o;12939:114::-;13006:6;13040:5;13034:12;13024:22;;12939:114;;;:::o;13059:184::-;13158:11;13192:6;13187:3;13180:19;13232:4;13227:3;13223:14;13208:29;;13059:184;;;;:::o;13249:132::-;13316:4;13339:3;13331:11;;13369:4;13364:3;13360:14;13352:22;;13249:132;;;:::o;13387:108::-;13464:24;13482:5;13464:24;:::i;:::-;13459:3;13452:37;13387:108;;:::o;13501:179::-;13570:10;13591:46;13633:3;13625:6;13591:46;:::i;:::-;13669:4;13664:3;13660:14;13646:28;;13501:179;;;;:::o;13686:113::-;13756:4;13788;13783:3;13779:14;13771:22;;13686:113;;;:::o;13835:732::-;13954:3;13983:54;14031:5;13983:54;:::i;:::-;14053:86;14132:6;14127:3;14053:86;:::i;:::-;14046:93;;14163:56;14213:5;14163:56;:::i;:::-;14242:7;14273:1;14258:284;14283:6;14280:1;14277:13;14258:284;;;14359:6;14353:13;14386:63;14445:3;14430:13;14386:63;:::i;:::-;14379:70;;14472:60;14525:6;14472:60;:::i;:::-;14462:70;;14318:224;14305:1;14302;14298:9;14293:14;;14258:284;;;14262:14;14558:3;14551:10;;13959:608;;;13835:732;;;;:::o;14573:373::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:108;14934:4;14925:6;14831:108;:::i;:::-;14823:116;;14573:373;;;;:::o;14952:116::-;15022:21;15037:5;15022:21;:::i;:::-;15015:5;15012:32;15002:60;;15058:1;15055;15048:12;15002:60;14952:116;:::o;15074:133::-;15117:5;15155:6;15142:20;15133:29;;15171:30;15195:5;15171:30;:::i;:::-;15074:133;;;;:::o;15213:468::-;15278:6;15286;15335:2;15323:9;15314:7;15310:23;15306:32;15303:119;;;15341:79;;:::i;:::-;15303:119;15461:1;15486:53;15531:7;15522:6;15511:9;15507:22;15486:53;:::i;:::-;15476:63;;15432:117;15588:2;15614:50;15656:7;15647:6;15636:9;15632:22;15614:50;:::i;:::-;15604:60;;15559:115;15213:468;;;;;:::o;15687:474::-;15755:6;15763;15812:2;15800:9;15791:7;15787:23;15783:32;15780:119;;;15818:79;;:::i;:::-;15780:119;15938:1;15963:53;16008:7;15999:6;15988:9;15984:22;15963:53;:::i;:::-;15953:63;;15909:117;16065:2;16091:53;16136:7;16127:6;16116:9;16112:22;16091:53;:::i;:::-;16081:63;;16036:118;15687:474;;;;;:::o;16167:1089::-;16271:6;16279;16287;16295;16303;16352:3;16340:9;16331:7;16327:23;16323:33;16320:120;;;16359:79;;:::i;:::-;16320:120;16479:1;16504:53;16549:7;16540:6;16529:9;16525:22;16504:53;:::i;:::-;16494:63;;16450:117;16606:2;16632:53;16677:7;16668:6;16657:9;16653:22;16632:53;:::i;:::-;16622:63;;16577:118;16734:2;16760:53;16805:7;16796:6;16785:9;16781:22;16760:53;:::i;:::-;16750:63;;16705:118;16862:2;16888:53;16933:7;16924:6;16913:9;16909:22;16888:53;:::i;:::-;16878:63;;16833:118;17018:3;17007:9;17003:19;16990:33;17050:18;17042:6;17039:30;17036:117;;;17072:79;;:::i;:::-;17036:117;17177:62;17231:7;17222:6;17211:9;17207:22;17177:62;:::i;:::-;17167:72;;16961:288;16167:1089;;;;;;;;:::o;17262:180::-;17310:77;17307:1;17300:88;17407:4;17404:1;17397:15;17431:4;17428:1;17421:15;17448:320;17492:6;17529:1;17523:4;17519:12;17509:22;;17576:1;17570:4;17566:12;17597:18;17587:81;;17653:4;17645:6;17641:17;17631:27;;17587:81;17715:2;17707:6;17704:14;17684:18;17681:38;17678:84;;17734:18;;:::i;:::-;17678:84;17499:269;17448:320;;;:::o;17774:118::-;17861:24;17879:5;17861:24;:::i;:::-;17856:3;17849:37;17774:118;;:::o;17898:332::-;18019:4;18057:2;18046:9;18042:18;18034:26;;18070:71;18138:1;18127:9;18123:17;18114:6;18070:71;:::i;:::-;18151:72;18219:2;18208:9;18204:18;18195:6;18151:72;:::i;:::-;17898:332;;;;;:::o;18236:::-;18357:4;18395:2;18384:9;18380:18;18372:26;;18408:71;18476:1;18465:9;18461:17;18452:6;18408:71;:::i;:::-;18489:72;18557:2;18546:9;18542:18;18533:6;18489:72;:::i;:::-;18236:332;;;;;:::o;18574:180::-;18622:77;18619:1;18612:88;18719:4;18716:1;18709:15;18743:4;18740:1;18733:15;18760:222;18853:4;18891:2;18880:9;18876:18;18868:26;;18904:71;18972:1;18961:9;18957:17;18948:6;18904:71;:::i;:::-;18760:222;;;;:::o;18988:553::-;19165:4;19203:3;19192:9;19188:19;19180:27;;19217:71;19285:1;19274:9;19270:17;19261:6;19217:71;:::i;:::-;19298:72;19366:2;19355:9;19351:18;19342:6;19298:72;:::i;:::-;19380;19448:2;19437:9;19433:18;19424:6;19380:72;:::i;:::-;19462;19530:2;19519:9;19515:18;19506:6;19462:72;:::i;:::-;18988:553;;;;;;;:::o;19547:180::-;19595:77;19592:1;19585:88;19692:4;19689:1;19682:15;19716:4;19713:1;19706:15;19733:191;19773:3;19792:20;19810:1;19792:20;:::i;:::-;19787:25;;19826:20;19844:1;19826:20;:::i;:::-;19821:25;;19869:1;19866;19862:9;19855:16;;19890:3;19887:1;19884:10;19881:36;;;19897:18;;:::i;:::-;19881:36;19733:191;;;;:::o;19930:634::-;20151:4;20189:2;20178:9;20174:18;20166:26;;20238:9;20232:4;20228:20;20224:1;20213:9;20209:17;20202:47;20266:108;20369:4;20360:6;20266:108;:::i;:::-;20258:116;;20421:9;20415:4;20411:20;20406:2;20395:9;20391:18;20384:48;20449:108;20552:4;20543:6;20449:108;:::i;:::-;20441:116;;19930:634;;;;;:::o;20570:98::-;20621:6;20655:5;20649:12;20639:22;;20570:98;;;:::o;20674:168::-;20757:11;20791:6;20786:3;20779:19;20831:4;20826:3;20822:14;20807:29;;20674:168;;;;:::o;20848:373::-;20934:3;20962:38;20994:5;20962:38;:::i;:::-;21016:70;21079:6;21074:3;21016:70;:::i;:::-;21009:77;;21095:65;21153:6;21148:3;21141:4;21134:5;21130:16;21095:65;:::i;:::-;21185:29;21207:6;21185:29;:::i;:::-;21180:3;21176:39;21169:46;;20938:283;20848:373;;;;:::o;21227:751::-;21450:4;21488:3;21477:9;21473:19;21465:27;;21502:71;21570:1;21559:9;21555:17;21546:6;21502:71;:::i;:::-;21583:72;21651:2;21640:9;21636:18;21627:6;21583:72;:::i;:::-;21665;21733:2;21722:9;21718:18;21709:6;21665:72;:::i;:::-;21747;21815:2;21804:9;21800:18;21791:6;21747:72;:::i;:::-;21867:9;21861:4;21857:20;21851:3;21840:9;21836:19;21829:49;21895:76;21966:4;21957:6;21895:76;:::i;:::-;21887:84;;21227:751;;;;;;;;:::o;21984:141::-;22040:5;22071:6;22065:13;22056:22;;22087:32;22113:5;22087:32;:::i;:::-;21984:141;;;;:::o;22131:349::-;22200:6;22249:2;22237:9;22228:7;22224:23;22220:32;22217:119;;;22255:79;;:::i;:::-;22217:119;22375:1;22400:63;22455:7;22446:6;22435:9;22431:22;22400:63;:::i;:::-;22390:73;;22346:127;22131:349;;;;:::o;22486:1053::-;22809:4;22847:3;22836:9;22832:19;22824:27;;22861:71;22929:1;22918:9;22914:17;22905:6;22861:71;:::i;:::-;22942:72;23010:2;22999:9;22995:18;22986:6;22942:72;:::i;:::-;23061:9;23055:4;23051:20;23046:2;23035:9;23031:18;23024:48;23089:108;23192:4;23183:6;23089:108;:::i;:::-;23081:116;;23244:9;23238:4;23234:20;23229:2;23218:9;23214:18;23207:48;23272:108;23375:4;23366:6;23272:108;:::i;:::-;23264:116;;23428:9;23422:4;23418:20;23412:3;23401:9;23397:19;23390:49;23456:76;23527:4;23518:6;23456:76;:::i;:::-;23448:84;;22486:1053;;;;;;;;:::o"},"methodIdentifiers":{"balanceOf(address,uint256)":"00fdd58e","balanceOfBatch(address[],uint256[])":"4e1273f4","burn(address,uint256,uint256)":"f5298aca","isApprovedForAll(address,address)":"e985e9c5","mint(address,uint256,uint256)":"156e29f6","safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)":"2eb2c2d6","safeTransferFrom(address,address,uint256,uint256,bytes)":"f242432a","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","uri(uint256)":"0e89341c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"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\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"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\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the ERC]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"title\":\"MockERC1155\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC1155 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC1155\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"},"MockERC20":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","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":"result","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":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintPayable","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","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":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","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":"6080604052348015600e575f80fd5b50610e138061001c5f395ff3fe6080604052600436106100dc575f3560e01c806340c10f191161007e57806395d89b411161005857806395d89b41146102bc578063a9059cbb146102e6578063d505accf14610322578063dd62ed3e1461034a576100dc565b806340c10f191461021c57806370a08231146102445780637ecebe0014610280576100dc565b806318160ddd116100ba57806318160ddd1461016257806323b872dd1461018c578063313ce567146101c85780633644e515146101f2576100dc565b806306fdde03146100e0578063095ea7b31461010a57806317d304b014610146575b5f80fd5b3480156100eb575f80fd5b506100f4610386565b60405161010191906109bf565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190610a70565b6103c3565b60405161013d9190610ac8565b60405180910390f35b610160600480360381019061015b9190610a70565b610413565b005b34801561016d575f80fd5b50610176610470565b6040516101839190610af0565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad9190610b09565b610481565b6040516101bf9190610ac8565b60405180910390f35b3480156101d3575f80fd5b506101dc610552565b6040516101e99190610b74565b60405180910390f35b3480156101fd575f80fd5b5061020661055a565b6040516102139190610ba5565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d9190610a70565b6105ea565b005b34801561024f575f80fd5b5061026a60048036038101906102659190610bbe565b6105f8565b6040516102779190610af0565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190610bbe565b610611565b6040516102b39190610af0565b60405180910390f35b3480156102c7575f80fd5b506102d061062a565b6040516102dd91906109bf565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190610a70565b610667565b6040516103199190610ac8565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190610c3d565b6106f5565b005b348015610355575f80fd5b50610370600480360381019061036b9190610cda565b610891565b60405161037d9190610af0565b60405180910390f35b60606040518060400160405280600a81526020017f4d6f636b20455243323000000000000000000000000000000000000000000000815250905090565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b6064816104209190610d45565b341015610462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045990610dbf565b60405180910390fd5b61046c82826108af565b5050565b5f6805345cdf77eb68f44c54905090565b5f61048d848484610941565b8360601b33602052637f5e9f208117600c526034600c20805460018101156104ca57808511156104c4576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c208054808711156104f05763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050505050610547848484610946565b600190509392505050565b5f6012905090565b5f8061056461094b565b90505f801b810361058157610577610386565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6105f482826108af565b5050565b5f6387a211a2600c52815f526020600c20549050919050565b5f6338377508600c52815f526020600c20549050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b5f610673338484610941565b6387a211a2600c52335f526020600c2080548084111561069a5763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506106eb338484610946565b6001905092915050565b5f6106fe61094b565b90505f801b810361071b57610711610386565b8051906020012090505b8442111561073057631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d51146108385763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b6108ba5f8383610941565b6805345cdf77eb68f44c54818101818110156108dd5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505061093d5f8383610946565b5050565b505050565b505050565b5f90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109918261094f565b61099b8185610959565b93506109ab818560208601610969565b6109b481610977565b840191505092915050565b5f6020820190508181035f8301526109d78184610987565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a0c826109e3565b9050919050565b610a1c81610a02565b8114610a26575f80fd5b50565b5f81359050610a3781610a13565b92915050565b5f819050919050565b610a4f81610a3d565b8114610a59575f80fd5b50565b5f81359050610a6a81610a46565b92915050565b5f8060408385031215610a8657610a856109df565b5b5f610a9385828601610a29565b9250506020610aa485828601610a5c565b9150509250929050565b5f8115159050919050565b610ac281610aae565b82525050565b5f602082019050610adb5f830184610ab9565b92915050565b610aea81610a3d565b82525050565b5f602082019050610b035f830184610ae1565b92915050565b5f805f60608486031215610b2057610b1f6109df565b5b5f610b2d86828701610a29565b9350506020610b3e86828701610a29565b9250506040610b4f86828701610a5c565b9150509250925092565b5f60ff82169050919050565b610b6e81610b59565b82525050565b5f602082019050610b875f830184610b65565b92915050565b5f819050919050565b610b9f81610b8d565b82525050565b5f602082019050610bb85f830184610b96565b92915050565b5f60208284031215610bd357610bd26109df565b5b5f610be084828501610a29565b91505092915050565b610bf281610b59565b8114610bfc575f80fd5b50565b5f81359050610c0d81610be9565b92915050565b610c1c81610b8d565b8114610c26575f80fd5b50565b5f81359050610c3781610c13565b92915050565b5f805f805f805f60e0888a031215610c5857610c576109df565b5b5f610c658a828b01610a29565b9750506020610c768a828b01610a29565b9650506040610c878a828b01610a5c565b9550506060610c988a828b01610a5c565b9450506080610ca98a828b01610bff565b93505060a0610cba8a828b01610c29565b92505060c0610ccb8a828b01610c29565b91505092959891949750929550565b5f8060408385031215610cf057610cef6109df565b5b5f610cfd85828601610a29565b9250506020610d0e85828601610a29565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d4f82610a3d565b9150610d5a83610a3d565b925082610d6a57610d69610d18565b5b828204905092915050565b7f4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921000000005f82015250565b5f610da9601c83610959565b9150610db482610d75565b602082019050919050565b5f6020820190508181035f830152610dd681610d9d565b905091905056fea2646970667358221220fc3b19189eef06880e6504894f96ee5571b3d6200a464263fa29d8f39727377e64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xE13 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDC JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x34A JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x280 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xBA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1F2 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x17D304B0 EQ PUSH2 0x146 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x115 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x197 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x611 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0x62A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x667 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x343 SWAP2 SWAP1 PUSH2 0xC3D JUMP JUMPDEST PUSH2 0x6F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH2 0x891 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243323000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x64 DUP2 PUSH2 0x420 SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST CALLVALUE LT ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x46C DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48D DUP5 DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x4CA JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x4C4 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x4F0 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x547 DUP5 DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x564 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x581 JUMPI PUSH2 0x577 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x5F4 DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x673 CALLER DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0x69A JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x6EB CALLER DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FE PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x71B JUMPI PUSH2 0x711 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0x730 JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0x838 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8BA PUSH0 DUP4 DUP4 PUSH2 0x941 JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x8DD JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x93D PUSH0 DUP4 DUP4 PUSH2 0x946 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x991 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH2 0x99B DUP2 DUP6 PUSH2 0x959 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x969 JUMP JUMPDEST PUSH2 0x9B4 DUP2 PUSH2 0x977 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9D7 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4F DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP2 EQ PUSH2 0xA59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA6A DUP2 PUSH2 0xA46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH2 0xA85 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA93 DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA4 DUP6 DUP3 DUP7 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC2 DUP2 PUSH2 0xAAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADB PUSH0 DUP4 ADD DUP5 PUSH2 0xAB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEA DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB03 PUSH0 DUP4 ADD DUP5 PUSH2 0xAE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH2 0xB1F PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB2D DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB3E DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB4F DUP7 DUP3 DUP8 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB87 PUSH0 DUP4 ADD DUP5 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB8 PUSH0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBD3 JUMPI PUSH2 0xBD2 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBE0 DUP5 DUP3 DUP6 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF2 DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP2 EQ PUSH2 0xBFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC0D DUP2 PUSH2 0xBE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP2 EQ PUSH2 0xC26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC37 DUP2 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC57 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC65 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0xC76 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0xC87 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0xC98 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0xCA9 DUP11 DUP3 DUP12 ADD PUSH2 0xBFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0xCBA DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0xCCB DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCEF PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCFD DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0E DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD4F DUP3 PUSH2 0xA3D JUMP JUMPDEST SWAP2 POP PUSH2 0xD5A DUP4 PUSH2 0xA3D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD6A JUMPI PUSH2 0xD69 PUSH2 0xD18 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6F636B45524332303A2067696D6D65206D6F7265206D6F6E65792100000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA9 PUSH1 0x1C DUP4 PUSH2 0x959 JUMP JUMPDEST SWAP2 POP PUSH2 0xDB4 DUP3 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDD6 DUP2 PUSH2 0xD9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC EXTCODESIZE NOT XOR SWAP15 0xEF MOD DUP9 0xE PUSH6 0x4894F96EE55 PUSH18 0xB3D6200A464263FA29D8F39727377E64736F PUSH13 0x634300081A0033000000000000 ","sourceMap":"1467:501:59:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_8228":{"entryPoint":1370,"id":8228,"parameterSlots":0,"returnSlots":1},"@_afterTokenTransfer_8354":{"entryPoint":2374,"id":8354,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_8343":{"entryPoint":2369,"id":8343,"parameterSlots":3,"returnSlots":0},"@_constantNameHash_8146":{"entryPoint":2379,"id":8146,"parameterSlots":0,"returnSlots":1},"@_mint_8256":{"entryPoint":2223,"id":8256,"parameterSlots":2,"returnSlots":0},"@allowance_8069":{"entryPoint":2193,"id":8069,"parameterSlots":2,"returnSlots":1},"@approve_8083":{"entryPoint":963,"id":8083,"parameterSlots":2,"returnSlots":1},"@balanceOf_8057":{"entryPoint":1528,"id":8057,"parameterSlots":1,"returnSlots":1},"@decimals_8039":{"entryPoint":1362,"id":8039,"parameterSlots":0,"returnSlots":1},"@mintPayable_18644":{"entryPoint":1043,"id":18644,"parameterSlots":2,"returnSlots":0},"@mint_18621":{"entryPoint":1514,"id":18621,"parameterSlots":2,"returnSlots":0},"@name_18599":{"entryPoint":902,"id":18599,"parameterSlots":0,"returnSlots":1},"@nonces_8156":{"entryPoint":1553,"id":8156,"parameterSlots":1,"returnSlots":1},"@permit_8198":{"entryPoint":1781,"id":8198,"parameterSlots":7,"returnSlots":0},"@symbol_18608":{"entryPoint":1578,"id":18608,"parameterSlots":0,"returnSlots":1},"@totalSupply_8047":{"entryPoint":1136,"id":8047,"parameterSlots":0,"returnSlots":1},"@transferFrom_8139":{"entryPoint":1153,"id":8139,"parameterSlots":3,"returnSlots":1},"@transfer_8111":{"entryPoint":1639,"id":8111,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address":{"entryPoint":2601,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":3113,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":2652,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8":{"entryPoint":3071,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3006,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3290,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2825,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":3133,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":2672,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2745,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":2966,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2439,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack":{"entryPoint":3485,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":2785,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":2917,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2760,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":2981,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2495,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3519,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":2800,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":2932,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2383,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2393,"id":null,"parameterSlots":2,"returnSlots":1},"checked_div_t_uint256":{"entryPoint":3397,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":2562,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2734,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":2957,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":2531,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":2621,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":2905,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2409,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x11":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x12":{"entryPoint":3352,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2527,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2423,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417":{"entryPoint":3445,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":2579,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":3091,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":2630,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":3049,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:9280:64","nodeType":"YulBlock","src":"0:9280:64","statements":[{"body":{"nativeSrc":"66:40:64","nodeType":"YulBlock","src":"66:40:64","statements":[{"nativeSrc":"77:22:64","nodeType":"YulAssignment","src":"77:22:64","value":{"arguments":[{"name":"value","nativeSrc":"93:5:64","nodeType":"YulIdentifier","src":"93:5:64"}],"functionName":{"name":"mload","nativeSrc":"87:5:64","nodeType":"YulIdentifier","src":"87:5:64"},"nativeSrc":"87:12:64","nodeType":"YulFunctionCall","src":"87:12:64"},"variableNames":[{"name":"length","nativeSrc":"77:6:64","nodeType":"YulIdentifier","src":"77:6:64"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:64","nodeType":"YulTypedName","src":"49:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:64","nodeType":"YulTypedName","src":"59:6:64","type":""}],"src":"7:99:64"},{"body":{"nativeSrc":"208:73:64","nodeType":"YulBlock","src":"208:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:64","nodeType":"YulIdentifier","src":"225:3:64"},{"name":"length","nativeSrc":"230:6:64","nodeType":"YulIdentifier","src":"230:6:64"}],"functionName":{"name":"mstore","nativeSrc":"218:6:64","nodeType":"YulIdentifier","src":"218:6:64"},"nativeSrc":"218:19:64","nodeType":"YulFunctionCall","src":"218:19:64"},"nativeSrc":"218:19:64","nodeType":"YulExpressionStatement","src":"218:19:64"},{"nativeSrc":"246:29:64","nodeType":"YulAssignment","src":"246:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:64","nodeType":"YulIdentifier","src":"265:3:64"},{"kind":"number","nativeSrc":"270:4:64","nodeType":"YulLiteral","src":"270:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:64","nodeType":"YulIdentifier","src":"261:3:64"},"nativeSrc":"261:14:64","nodeType":"YulFunctionCall","src":"261:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:64","nodeType":"YulIdentifier","src":"246:11:64"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:64","nodeType":"YulTypedName","src":"180:3:64","type":""},{"name":"length","nativeSrc":"185:6:64","nodeType":"YulTypedName","src":"185:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:64","nodeType":"YulTypedName","src":"196:11:64","type":""}],"src":"112:169:64"},{"body":{"nativeSrc":"349:77:64","nodeType":"YulBlock","src":"349:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:64","nodeType":"YulIdentifier","src":"366:3:64"},{"name":"src","nativeSrc":"371:3:64","nodeType":"YulIdentifier","src":"371:3:64"},{"name":"length","nativeSrc":"376:6:64","nodeType":"YulIdentifier","src":"376:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:64","nodeType":"YulIdentifier","src":"360:5:64"},"nativeSrc":"360:23:64","nodeType":"YulFunctionCall","src":"360:23:64"},"nativeSrc":"360:23:64","nodeType":"YulExpressionStatement","src":"360:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:64","nodeType":"YulIdentifier","src":"403:3:64"},{"name":"length","nativeSrc":"408:6:64","nodeType":"YulIdentifier","src":"408:6:64"}],"functionName":{"name":"add","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:16:64","nodeType":"YulFunctionCall","src":"399:16:64"},{"kind":"number","nativeSrc":"417:1:64","nodeType":"YulLiteral","src":"417:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:64","nodeType":"YulIdentifier","src":"392:6:64"},"nativeSrc":"392:27:64","nodeType":"YulFunctionCall","src":"392:27:64"},"nativeSrc":"392:27:64","nodeType":"YulExpressionStatement","src":"392:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:64","nodeType":"YulTypedName","src":"331:3:64","type":""},{"name":"dst","nativeSrc":"336:3:64","nodeType":"YulTypedName","src":"336:3:64","type":""},{"name":"length","nativeSrc":"341:6:64","nodeType":"YulTypedName","src":"341:6:64","type":""}],"src":"287:139:64"},{"body":{"nativeSrc":"480:54:64","nodeType":"YulBlock","src":"480:54:64","statements":[{"nativeSrc":"490:38:64","nodeType":"YulAssignment","src":"490:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:64","nodeType":"YulIdentifier","src":"508:5:64"},{"kind":"number","nativeSrc":"515:2:64","nodeType":"YulLiteral","src":"515:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:64","nodeType":"YulIdentifier","src":"504:3:64"},"nativeSrc":"504:14:64","nodeType":"YulFunctionCall","src":"504:14:64"},{"arguments":[{"kind":"number","nativeSrc":"524:2:64","nodeType":"YulLiteral","src":"524:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:64","nodeType":"YulIdentifier","src":"520:3:64"},"nativeSrc":"520:7:64","nodeType":"YulFunctionCall","src":"520:7:64"}],"functionName":{"name":"and","nativeSrc":"500:3:64","nodeType":"YulIdentifier","src":"500:3:64"},"nativeSrc":"500:28:64","nodeType":"YulFunctionCall","src":"500:28:64"},"variableNames":[{"name":"result","nativeSrc":"490:6:64","nodeType":"YulIdentifier","src":"490:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:64","nodeType":"YulTypedName","src":"463:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:64","nodeType":"YulTypedName","src":"473:6:64","type":""}],"src":"432:102:64"},{"body":{"nativeSrc":"632:285:64","nodeType":"YulBlock","src":"632:285:64","statements":[{"nativeSrc":"642:53:64","nodeType":"YulVariableDeclaration","src":"642:53:64","value":{"arguments":[{"name":"value","nativeSrc":"689:5:64","nodeType":"YulIdentifier","src":"689:5:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:64","nodeType":"YulIdentifier","src":"656:32:64"},"nativeSrc":"656:39:64","nodeType":"YulFunctionCall","src":"656:39:64"},"variables":[{"name":"length","nativeSrc":"646:6:64","nodeType":"YulTypedName","src":"646:6:64","type":""}]},{"nativeSrc":"704:78:64","nodeType":"YulAssignment","src":"704:78:64","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:64","nodeType":"YulIdentifier","src":"770:3:64"},{"name":"length","nativeSrc":"775:6:64","nodeType":"YulIdentifier","src":"775:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:64","nodeType":"YulIdentifier","src":"711:58:64"},"nativeSrc":"711:71:64","nodeType":"YulFunctionCall","src":"711:71:64"},"variableNames":[{"name":"pos","nativeSrc":"704:3:64","nodeType":"YulIdentifier","src":"704:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:64","nodeType":"YulIdentifier","src":"830:5:64"},{"kind":"number","nativeSrc":"837:4:64","nodeType":"YulLiteral","src":"837:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:64","nodeType":"YulIdentifier","src":"826:3:64"},"nativeSrc":"826:16:64","nodeType":"YulFunctionCall","src":"826:16:64"},{"name":"pos","nativeSrc":"844:3:64","nodeType":"YulIdentifier","src":"844:3:64"},{"name":"length","nativeSrc":"849:6:64","nodeType":"YulIdentifier","src":"849:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:64","nodeType":"YulIdentifier","src":"791:34:64"},"nativeSrc":"791:65:64","nodeType":"YulFunctionCall","src":"791:65:64"},"nativeSrc":"791:65:64","nodeType":"YulExpressionStatement","src":"791:65:64"},{"nativeSrc":"865:46:64","nodeType":"YulAssignment","src":"865:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:64","nodeType":"YulIdentifier","src":"876:3:64"},{"arguments":[{"name":"length","nativeSrc":"903:6:64","nodeType":"YulIdentifier","src":"903:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:64","nodeType":"YulIdentifier","src":"881:21:64"},"nativeSrc":"881:29:64","nodeType":"YulFunctionCall","src":"881:29:64"}],"functionName":{"name":"add","nativeSrc":"872:3:64","nodeType":"YulIdentifier","src":"872:3:64"},"nativeSrc":"872:39:64","nodeType":"YulFunctionCall","src":"872:39:64"},"variableNames":[{"name":"end","nativeSrc":"865:3:64","nodeType":"YulIdentifier","src":"865:3:64"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:64","nodeType":"YulTypedName","src":"613:5:64","type":""},{"name":"pos","nativeSrc":"620:3:64","nodeType":"YulTypedName","src":"620:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:64","nodeType":"YulTypedName","src":"628:3:64","type":""}],"src":"540:377:64"},{"body":{"nativeSrc":"1041:195:64","nodeType":"YulBlock","src":"1041:195:64","statements":[{"nativeSrc":"1051:26:64","nodeType":"YulAssignment","src":"1051:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:64","nodeType":"YulIdentifier","src":"1063:9:64"},{"kind":"number","nativeSrc":"1074:2:64","nodeType":"YulLiteral","src":"1074:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:64","nodeType":"YulIdentifier","src":"1059:3:64"},"nativeSrc":"1059:18:64","nodeType":"YulFunctionCall","src":"1059:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:64","nodeType":"YulIdentifier","src":"1051:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:64","nodeType":"YulIdentifier","src":"1098:9:64"},{"kind":"number","nativeSrc":"1109:1:64","nodeType":"YulLiteral","src":"1109:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:64","nodeType":"YulIdentifier","src":"1094:3:64"},"nativeSrc":"1094:17:64","nodeType":"YulFunctionCall","src":"1094:17:64"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:64","nodeType":"YulIdentifier","src":"1117:4:64"},{"name":"headStart","nativeSrc":"1123:9:64","nodeType":"YulIdentifier","src":"1123:9:64"}],"functionName":{"name":"sub","nativeSrc":"1113:3:64","nodeType":"YulIdentifier","src":"1113:3:64"},"nativeSrc":"1113:20:64","nodeType":"YulFunctionCall","src":"1113:20:64"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:64","nodeType":"YulIdentifier","src":"1087:6:64"},"nativeSrc":"1087:47:64","nodeType":"YulFunctionCall","src":"1087:47:64"},"nativeSrc":"1087:47:64","nodeType":"YulExpressionStatement","src":"1087:47:64"},{"nativeSrc":"1143:86:64","nodeType":"YulAssignment","src":"1143:86:64","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:64","nodeType":"YulIdentifier","src":"1215:6:64"},{"name":"tail","nativeSrc":"1224:4:64","nodeType":"YulIdentifier","src":"1224:4:64"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:64","nodeType":"YulIdentifier","src":"1151:63:64"},"nativeSrc":"1151:78:64","nodeType":"YulFunctionCall","src":"1151:78:64"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:64","nodeType":"YulIdentifier","src":"1143:4:64"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:64","nodeType":"YulTypedName","src":"1013:9:64","type":""},{"name":"value0","nativeSrc":"1025:6:64","nodeType":"YulTypedName","src":"1025:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:64","nodeType":"YulTypedName","src":"1036:4:64","type":""}],"src":"923:313:64"},{"body":{"nativeSrc":"1282:35:64","nodeType":"YulBlock","src":"1282:35:64","statements":[{"nativeSrc":"1292:19:64","nodeType":"YulAssignment","src":"1292:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:64","nodeType":"YulLiteral","src":"1308:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:64","nodeType":"YulIdentifier","src":"1302:5:64"},"nativeSrc":"1302:9:64","nodeType":"YulFunctionCall","src":"1302:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:64","nodeType":"YulIdentifier","src":"1292:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:64","nodeType":"YulTypedName","src":"1275:6:64","type":""}],"src":"1242:75:64"},{"body":{"nativeSrc":"1412:28:64","nodeType":"YulBlock","src":"1412:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:64","nodeType":"YulLiteral","src":"1429:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:64","nodeType":"YulLiteral","src":"1432:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:64","nodeType":"YulIdentifier","src":"1422:6:64"},"nativeSrc":"1422:12:64","nodeType":"YulFunctionCall","src":"1422:12:64"},"nativeSrc":"1422:12:64","nodeType":"YulExpressionStatement","src":"1422:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:64","nodeType":"YulFunctionDefinition","src":"1323:117:64"},{"body":{"nativeSrc":"1535:28:64","nodeType":"YulBlock","src":"1535:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:64","nodeType":"YulLiteral","src":"1552:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:64","nodeType":"YulLiteral","src":"1555:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:64","nodeType":"YulIdentifier","src":"1545:6:64"},"nativeSrc":"1545:12:64","nodeType":"YulFunctionCall","src":"1545:12:64"},"nativeSrc":"1545:12:64","nodeType":"YulExpressionStatement","src":"1545:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:64","nodeType":"YulFunctionDefinition","src":"1446:117:64"},{"body":{"nativeSrc":"1614:81:64","nodeType":"YulBlock","src":"1614:81:64","statements":[{"nativeSrc":"1624:65:64","nodeType":"YulAssignment","src":"1624:65:64","value":{"arguments":[{"name":"value","nativeSrc":"1639:5:64","nodeType":"YulIdentifier","src":"1639:5:64"},{"kind":"number","nativeSrc":"1646:42:64","nodeType":"YulLiteral","src":"1646:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"1635:3:64","nodeType":"YulIdentifier","src":"1635:3:64"},"nativeSrc":"1635:54:64","nodeType":"YulFunctionCall","src":"1635:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1624:7:64","nodeType":"YulIdentifier","src":"1624:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"1569:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1596:5:64","nodeType":"YulTypedName","src":"1596:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1606:7:64","nodeType":"YulTypedName","src":"1606:7:64","type":""}],"src":"1569:126:64"},{"body":{"nativeSrc":"1746:51:64","nodeType":"YulBlock","src":"1746:51:64","statements":[{"nativeSrc":"1756:35:64","nodeType":"YulAssignment","src":"1756:35:64","value":{"arguments":[{"name":"value","nativeSrc":"1785:5:64","nodeType":"YulIdentifier","src":"1785:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"1767:17:64","nodeType":"YulIdentifier","src":"1767:17:64"},"nativeSrc":"1767:24:64","nodeType":"YulFunctionCall","src":"1767:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1756:7:64","nodeType":"YulIdentifier","src":"1756:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"1701:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1728:5:64","nodeType":"YulTypedName","src":"1728:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1738:7:64","nodeType":"YulTypedName","src":"1738:7:64","type":""}],"src":"1701:96:64"},{"body":{"nativeSrc":"1846:79:64","nodeType":"YulBlock","src":"1846:79:64","statements":[{"body":{"nativeSrc":"1903:16:64","nodeType":"YulBlock","src":"1903:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1912:1:64","nodeType":"YulLiteral","src":"1912:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1915:1:64","nodeType":"YulLiteral","src":"1915:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1905:6:64","nodeType":"YulIdentifier","src":"1905:6:64"},"nativeSrc":"1905:12:64","nodeType":"YulFunctionCall","src":"1905:12:64"},"nativeSrc":"1905:12:64","nodeType":"YulExpressionStatement","src":"1905:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1869:5:64","nodeType":"YulIdentifier","src":"1869:5:64"},{"arguments":[{"name":"value","nativeSrc":"1894:5:64","nodeType":"YulIdentifier","src":"1894:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"1876:17:64","nodeType":"YulIdentifier","src":"1876:17:64"},"nativeSrc":"1876:24:64","nodeType":"YulFunctionCall","src":"1876:24:64"}],"functionName":{"name":"eq","nativeSrc":"1866:2:64","nodeType":"YulIdentifier","src":"1866:2:64"},"nativeSrc":"1866:35:64","nodeType":"YulFunctionCall","src":"1866:35:64"}],"functionName":{"name":"iszero","nativeSrc":"1859:6:64","nodeType":"YulIdentifier","src":"1859:6:64"},"nativeSrc":"1859:43:64","nodeType":"YulFunctionCall","src":"1859:43:64"},"nativeSrc":"1856:63:64","nodeType":"YulIf","src":"1856:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"1803:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1839:5:64","nodeType":"YulTypedName","src":"1839:5:64","type":""}],"src":"1803:122:64"},{"body":{"nativeSrc":"1983:87:64","nodeType":"YulBlock","src":"1983:87:64","statements":[{"nativeSrc":"1993:29:64","nodeType":"YulAssignment","src":"1993:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2015:6:64","nodeType":"YulIdentifier","src":"2015:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2002:12:64","nodeType":"YulIdentifier","src":"2002:12:64"},"nativeSrc":"2002:20:64","nodeType":"YulFunctionCall","src":"2002:20:64"},"variableNames":[{"name":"value","nativeSrc":"1993:5:64","nodeType":"YulIdentifier","src":"1993:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2058:5:64","nodeType":"YulIdentifier","src":"2058:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"2031:26:64","nodeType":"YulIdentifier","src":"2031:26:64"},"nativeSrc":"2031:33:64","nodeType":"YulFunctionCall","src":"2031:33:64"},"nativeSrc":"2031:33:64","nodeType":"YulExpressionStatement","src":"2031:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"1931:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"1961:6:64","nodeType":"YulTypedName","src":"1961:6:64","type":""},{"name":"end","nativeSrc":"1969:3:64","nodeType":"YulTypedName","src":"1969:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"1977:5:64","nodeType":"YulTypedName","src":"1977:5:64","type":""}],"src":"1931:139:64"},{"body":{"nativeSrc":"2121:32:64","nodeType":"YulBlock","src":"2121:32:64","statements":[{"nativeSrc":"2131:16:64","nodeType":"YulAssignment","src":"2131:16:64","value":{"name":"value","nativeSrc":"2142:5:64","nodeType":"YulIdentifier","src":"2142:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2131:7:64","nodeType":"YulIdentifier","src":"2131:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2076:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2103:5:64","nodeType":"YulTypedName","src":"2103:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2113:7:64","nodeType":"YulTypedName","src":"2113:7:64","type":""}],"src":"2076:77:64"},{"body":{"nativeSrc":"2202:79:64","nodeType":"YulBlock","src":"2202:79:64","statements":[{"body":{"nativeSrc":"2259:16:64","nodeType":"YulBlock","src":"2259:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2268:1:64","nodeType":"YulLiteral","src":"2268:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2271:1:64","nodeType":"YulLiteral","src":"2271:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2261:6:64","nodeType":"YulIdentifier","src":"2261:6:64"},"nativeSrc":"2261:12:64","nodeType":"YulFunctionCall","src":"2261:12:64"},"nativeSrc":"2261:12:64","nodeType":"YulExpressionStatement","src":"2261:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2225:5:64","nodeType":"YulIdentifier","src":"2225:5:64"},{"arguments":[{"name":"value","nativeSrc":"2250:5:64","nodeType":"YulIdentifier","src":"2250:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2232:17:64","nodeType":"YulIdentifier","src":"2232:17:64"},"nativeSrc":"2232:24:64","nodeType":"YulFunctionCall","src":"2232:24:64"}],"functionName":{"name":"eq","nativeSrc":"2222:2:64","nodeType":"YulIdentifier","src":"2222:2:64"},"nativeSrc":"2222:35:64","nodeType":"YulFunctionCall","src":"2222:35:64"}],"functionName":{"name":"iszero","nativeSrc":"2215:6:64","nodeType":"YulIdentifier","src":"2215:6:64"},"nativeSrc":"2215:43:64","nodeType":"YulFunctionCall","src":"2215:43:64"},"nativeSrc":"2212:63:64","nodeType":"YulIf","src":"2212:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"2159:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2195:5:64","nodeType":"YulTypedName","src":"2195:5:64","type":""}],"src":"2159:122:64"},{"body":{"nativeSrc":"2339:87:64","nodeType":"YulBlock","src":"2339:87:64","statements":[{"nativeSrc":"2349:29:64","nodeType":"YulAssignment","src":"2349:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2371:6:64","nodeType":"YulIdentifier","src":"2371:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2358:12:64","nodeType":"YulIdentifier","src":"2358:12:64"},"nativeSrc":"2358:20:64","nodeType":"YulFunctionCall","src":"2358:20:64"},"variableNames":[{"name":"value","nativeSrc":"2349:5:64","nodeType":"YulIdentifier","src":"2349:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2414:5:64","nodeType":"YulIdentifier","src":"2414:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"2387:26:64","nodeType":"YulIdentifier","src":"2387:26:64"},"nativeSrc":"2387:33:64","nodeType":"YulFunctionCall","src":"2387:33:64"},"nativeSrc":"2387:33:64","nodeType":"YulExpressionStatement","src":"2387:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"2287:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2317:6:64","nodeType":"YulTypedName","src":"2317:6:64","type":""},{"name":"end","nativeSrc":"2325:3:64","nodeType":"YulTypedName","src":"2325:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2333:5:64","nodeType":"YulTypedName","src":"2333:5:64","type":""}],"src":"2287:139:64"},{"body":{"nativeSrc":"2515:391:64","nodeType":"YulBlock","src":"2515:391:64","statements":[{"body":{"nativeSrc":"2561:83:64","nodeType":"YulBlock","src":"2561:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"2563:77:64","nodeType":"YulIdentifier","src":"2563:77:64"},"nativeSrc":"2563:79:64","nodeType":"YulFunctionCall","src":"2563:79:64"},"nativeSrc":"2563:79:64","nodeType":"YulExpressionStatement","src":"2563:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"2536:7:64","nodeType":"YulIdentifier","src":"2536:7:64"},{"name":"headStart","nativeSrc":"2545:9:64","nodeType":"YulIdentifier","src":"2545:9:64"}],"functionName":{"name":"sub","nativeSrc":"2532:3:64","nodeType":"YulIdentifier","src":"2532:3:64"},"nativeSrc":"2532:23:64","nodeType":"YulFunctionCall","src":"2532:23:64"},{"kind":"number","nativeSrc":"2557:2:64","nodeType":"YulLiteral","src":"2557:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"2528:3:64","nodeType":"YulIdentifier","src":"2528:3:64"},"nativeSrc":"2528:32:64","nodeType":"YulFunctionCall","src":"2528:32:64"},"nativeSrc":"2525:119:64","nodeType":"YulIf","src":"2525:119:64"},{"nativeSrc":"2654:117:64","nodeType":"YulBlock","src":"2654:117:64","statements":[{"nativeSrc":"2669:15:64","nodeType":"YulVariableDeclaration","src":"2669:15:64","value":{"kind":"number","nativeSrc":"2683:1:64","nodeType":"YulLiteral","src":"2683:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"2673:6:64","nodeType":"YulTypedName","src":"2673:6:64","type":""}]},{"nativeSrc":"2698:63:64","nodeType":"YulAssignment","src":"2698:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2733:9:64","nodeType":"YulIdentifier","src":"2733:9:64"},{"name":"offset","nativeSrc":"2744:6:64","nodeType":"YulIdentifier","src":"2744:6:64"}],"functionName":{"name":"add","nativeSrc":"2729:3:64","nodeType":"YulIdentifier","src":"2729:3:64"},"nativeSrc":"2729:22:64","nodeType":"YulFunctionCall","src":"2729:22:64"},{"name":"dataEnd","nativeSrc":"2753:7:64","nodeType":"YulIdentifier","src":"2753:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"2708:20:64","nodeType":"YulIdentifier","src":"2708:20:64"},"nativeSrc":"2708:53:64","nodeType":"YulFunctionCall","src":"2708:53:64"},"variableNames":[{"name":"value0","nativeSrc":"2698:6:64","nodeType":"YulIdentifier","src":"2698:6:64"}]}]},{"nativeSrc":"2781:118:64","nodeType":"YulBlock","src":"2781:118:64","statements":[{"nativeSrc":"2796:16:64","nodeType":"YulVariableDeclaration","src":"2796:16:64","value":{"kind":"number","nativeSrc":"2810:2:64","nodeType":"YulLiteral","src":"2810:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"2800:6:64","nodeType":"YulTypedName","src":"2800:6:64","type":""}]},{"nativeSrc":"2826:63:64","nodeType":"YulAssignment","src":"2826:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2861:9:64","nodeType":"YulIdentifier","src":"2861:9:64"},{"name":"offset","nativeSrc":"2872:6:64","nodeType":"YulIdentifier","src":"2872:6:64"}],"functionName":{"name":"add","nativeSrc":"2857:3:64","nodeType":"YulIdentifier","src":"2857:3:64"},"nativeSrc":"2857:22:64","nodeType":"YulFunctionCall","src":"2857:22:64"},{"name":"dataEnd","nativeSrc":"2881:7:64","nodeType":"YulIdentifier","src":"2881:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"2836:20:64","nodeType":"YulIdentifier","src":"2836:20:64"},"nativeSrc":"2836:53:64","nodeType":"YulFunctionCall","src":"2836:53:64"},"variableNames":[{"name":"value1","nativeSrc":"2826:6:64","nodeType":"YulIdentifier","src":"2826:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"2432:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2477:9:64","nodeType":"YulTypedName","src":"2477:9:64","type":""},{"name":"dataEnd","nativeSrc":"2488:7:64","nodeType":"YulTypedName","src":"2488:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"2500:6:64","nodeType":"YulTypedName","src":"2500:6:64","type":""},{"name":"value1","nativeSrc":"2508:6:64","nodeType":"YulTypedName","src":"2508:6:64","type":""}],"src":"2432:474:64"},{"body":{"nativeSrc":"2954:48:64","nodeType":"YulBlock","src":"2954:48:64","statements":[{"nativeSrc":"2964:32:64","nodeType":"YulAssignment","src":"2964:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2989:5:64","nodeType":"YulIdentifier","src":"2989:5:64"}],"functionName":{"name":"iszero","nativeSrc":"2982:6:64","nodeType":"YulIdentifier","src":"2982:6:64"},"nativeSrc":"2982:13:64","nodeType":"YulFunctionCall","src":"2982:13:64"}],"functionName":{"name":"iszero","nativeSrc":"2975:6:64","nodeType":"YulIdentifier","src":"2975:6:64"},"nativeSrc":"2975:21:64","nodeType":"YulFunctionCall","src":"2975:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2964:7:64","nodeType":"YulIdentifier","src":"2964:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"2912:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2936:5:64","nodeType":"YulTypedName","src":"2936:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2946:7:64","nodeType":"YulTypedName","src":"2946:7:64","type":""}],"src":"2912:90:64"},{"body":{"nativeSrc":"3067:50:64","nodeType":"YulBlock","src":"3067:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3084:3:64","nodeType":"YulIdentifier","src":"3084:3:64"},{"arguments":[{"name":"value","nativeSrc":"3104:5:64","nodeType":"YulIdentifier","src":"3104:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"3089:14:64","nodeType":"YulIdentifier","src":"3089:14:64"},"nativeSrc":"3089:21:64","nodeType":"YulFunctionCall","src":"3089:21:64"}],"functionName":{"name":"mstore","nativeSrc":"3077:6:64","nodeType":"YulIdentifier","src":"3077:6:64"},"nativeSrc":"3077:34:64","nodeType":"YulFunctionCall","src":"3077:34:64"},"nativeSrc":"3077:34:64","nodeType":"YulExpressionStatement","src":"3077:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3008:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3055:5:64","nodeType":"YulTypedName","src":"3055:5:64","type":""},{"name":"pos","nativeSrc":"3062:3:64","nodeType":"YulTypedName","src":"3062:3:64","type":""}],"src":"3008:109:64"},{"body":{"nativeSrc":"3215:118:64","nodeType":"YulBlock","src":"3215:118:64","statements":[{"nativeSrc":"3225:26:64","nodeType":"YulAssignment","src":"3225:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3237:9:64","nodeType":"YulIdentifier","src":"3237:9:64"},{"kind":"number","nativeSrc":"3248:2:64","nodeType":"YulLiteral","src":"3248:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3233:3:64","nodeType":"YulIdentifier","src":"3233:3:64"},"nativeSrc":"3233:18:64","nodeType":"YulFunctionCall","src":"3233:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3225:4:64","nodeType":"YulIdentifier","src":"3225:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3299:6:64","nodeType":"YulIdentifier","src":"3299:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3312:9:64","nodeType":"YulIdentifier","src":"3312:9:64"},{"kind":"number","nativeSrc":"3323:1:64","nodeType":"YulLiteral","src":"3323:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3308:3:64","nodeType":"YulIdentifier","src":"3308:3:64"},"nativeSrc":"3308:17:64","nodeType":"YulFunctionCall","src":"3308:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"3261:37:64","nodeType":"YulIdentifier","src":"3261:37:64"},"nativeSrc":"3261:65:64","nodeType":"YulFunctionCall","src":"3261:65:64"},"nativeSrc":"3261:65:64","nodeType":"YulExpressionStatement","src":"3261:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"3123:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3187:9:64","nodeType":"YulTypedName","src":"3187:9:64","type":""},{"name":"value0","nativeSrc":"3199:6:64","nodeType":"YulTypedName","src":"3199:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3210:4:64","nodeType":"YulTypedName","src":"3210:4:64","type":""}],"src":"3123:210:64"},{"body":{"nativeSrc":"3404:53:64","nodeType":"YulBlock","src":"3404:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3421:3:64","nodeType":"YulIdentifier","src":"3421:3:64"},{"arguments":[{"name":"value","nativeSrc":"3444:5:64","nodeType":"YulIdentifier","src":"3444:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"3426:17:64","nodeType":"YulIdentifier","src":"3426:17:64"},"nativeSrc":"3426:24:64","nodeType":"YulFunctionCall","src":"3426:24:64"}],"functionName":{"name":"mstore","nativeSrc":"3414:6:64","nodeType":"YulIdentifier","src":"3414:6:64"},"nativeSrc":"3414:37:64","nodeType":"YulFunctionCall","src":"3414:37:64"},"nativeSrc":"3414:37:64","nodeType":"YulExpressionStatement","src":"3414:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3339:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3392:5:64","nodeType":"YulTypedName","src":"3392:5:64","type":""},{"name":"pos","nativeSrc":"3399:3:64","nodeType":"YulTypedName","src":"3399:3:64","type":""}],"src":"3339:118:64"},{"body":{"nativeSrc":"3561:124:64","nodeType":"YulBlock","src":"3561:124:64","statements":[{"nativeSrc":"3571:26:64","nodeType":"YulAssignment","src":"3571:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3583:9:64","nodeType":"YulIdentifier","src":"3583:9:64"},{"kind":"number","nativeSrc":"3594:2:64","nodeType":"YulLiteral","src":"3594:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3579:3:64","nodeType":"YulIdentifier","src":"3579:3:64"},"nativeSrc":"3579:18:64","nodeType":"YulFunctionCall","src":"3579:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3571:4:64","nodeType":"YulIdentifier","src":"3571:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3651:6:64","nodeType":"YulIdentifier","src":"3651:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"3664:9:64","nodeType":"YulIdentifier","src":"3664:9:64"},{"kind":"number","nativeSrc":"3675:1:64","nodeType":"YulLiteral","src":"3675:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3660:3:64","nodeType":"YulIdentifier","src":"3660:3:64"},"nativeSrc":"3660:17:64","nodeType":"YulFunctionCall","src":"3660:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"3607:43:64","nodeType":"YulIdentifier","src":"3607:43:64"},"nativeSrc":"3607:71:64","nodeType":"YulFunctionCall","src":"3607:71:64"},"nativeSrc":"3607:71:64","nodeType":"YulExpressionStatement","src":"3607:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"3463:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3533:9:64","nodeType":"YulTypedName","src":"3533:9:64","type":""},{"name":"value0","nativeSrc":"3545:6:64","nodeType":"YulTypedName","src":"3545:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3556:4:64","nodeType":"YulTypedName","src":"3556:4:64","type":""}],"src":"3463:222:64"},{"body":{"nativeSrc":"3791:519:64","nodeType":"YulBlock","src":"3791:519:64","statements":[{"body":{"nativeSrc":"3837:83:64","nodeType":"YulBlock","src":"3837:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3839:77:64","nodeType":"YulIdentifier","src":"3839:77:64"},"nativeSrc":"3839:79:64","nodeType":"YulFunctionCall","src":"3839:79:64"},"nativeSrc":"3839:79:64","nodeType":"YulExpressionStatement","src":"3839:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3812:7:64","nodeType":"YulIdentifier","src":"3812:7:64"},{"name":"headStart","nativeSrc":"3821:9:64","nodeType":"YulIdentifier","src":"3821:9:64"}],"functionName":{"name":"sub","nativeSrc":"3808:3:64","nodeType":"YulIdentifier","src":"3808:3:64"},"nativeSrc":"3808:23:64","nodeType":"YulFunctionCall","src":"3808:23:64"},{"kind":"number","nativeSrc":"3833:2:64","nodeType":"YulLiteral","src":"3833:2:64","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"3804:3:64","nodeType":"YulIdentifier","src":"3804:3:64"},"nativeSrc":"3804:32:64","nodeType":"YulFunctionCall","src":"3804:32:64"},"nativeSrc":"3801:119:64","nodeType":"YulIf","src":"3801:119:64"},{"nativeSrc":"3930:117:64","nodeType":"YulBlock","src":"3930:117:64","statements":[{"nativeSrc":"3945:15:64","nodeType":"YulVariableDeclaration","src":"3945:15:64","value":{"kind":"number","nativeSrc":"3959:1:64","nodeType":"YulLiteral","src":"3959:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3949:6:64","nodeType":"YulTypedName","src":"3949:6:64","type":""}]},{"nativeSrc":"3974:63:64","nodeType":"YulAssignment","src":"3974:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4009:9:64","nodeType":"YulIdentifier","src":"4009:9:64"},{"name":"offset","nativeSrc":"4020:6:64","nodeType":"YulIdentifier","src":"4020:6:64"}],"functionName":{"name":"add","nativeSrc":"4005:3:64","nodeType":"YulIdentifier","src":"4005:3:64"},"nativeSrc":"4005:22:64","nodeType":"YulFunctionCall","src":"4005:22:64"},{"name":"dataEnd","nativeSrc":"4029:7:64","nodeType":"YulIdentifier","src":"4029:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"3984:20:64","nodeType":"YulIdentifier","src":"3984:20:64"},"nativeSrc":"3984:53:64","nodeType":"YulFunctionCall","src":"3984:53:64"},"variableNames":[{"name":"value0","nativeSrc":"3974:6:64","nodeType":"YulIdentifier","src":"3974:6:64"}]}]},{"nativeSrc":"4057:118:64","nodeType":"YulBlock","src":"4057:118:64","statements":[{"nativeSrc":"4072:16:64","nodeType":"YulVariableDeclaration","src":"4072:16:64","value":{"kind":"number","nativeSrc":"4086:2:64","nodeType":"YulLiteral","src":"4086:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4076:6:64","nodeType":"YulTypedName","src":"4076:6:64","type":""}]},{"nativeSrc":"4102:63:64","nodeType":"YulAssignment","src":"4102:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4137:9:64","nodeType":"YulIdentifier","src":"4137:9:64"},{"name":"offset","nativeSrc":"4148:6:64","nodeType":"YulIdentifier","src":"4148:6:64"}],"functionName":{"name":"add","nativeSrc":"4133:3:64","nodeType":"YulIdentifier","src":"4133:3:64"},"nativeSrc":"4133:22:64","nodeType":"YulFunctionCall","src":"4133:22:64"},{"name":"dataEnd","nativeSrc":"4157:7:64","nodeType":"YulIdentifier","src":"4157:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4112:20:64","nodeType":"YulIdentifier","src":"4112:20:64"},"nativeSrc":"4112:53:64","nodeType":"YulFunctionCall","src":"4112:53:64"},"variableNames":[{"name":"value1","nativeSrc":"4102:6:64","nodeType":"YulIdentifier","src":"4102:6:64"}]}]},{"nativeSrc":"4185:118:64","nodeType":"YulBlock","src":"4185:118:64","statements":[{"nativeSrc":"4200:16:64","nodeType":"YulVariableDeclaration","src":"4200:16:64","value":{"kind":"number","nativeSrc":"4214:2:64","nodeType":"YulLiteral","src":"4214:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"4204:6:64","nodeType":"YulTypedName","src":"4204:6:64","type":""}]},{"nativeSrc":"4230:63:64","nodeType":"YulAssignment","src":"4230:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4265:9:64","nodeType":"YulIdentifier","src":"4265:9:64"},{"name":"offset","nativeSrc":"4276:6:64","nodeType":"YulIdentifier","src":"4276:6:64"}],"functionName":{"name":"add","nativeSrc":"4261:3:64","nodeType":"YulIdentifier","src":"4261:3:64"},"nativeSrc":"4261:22:64","nodeType":"YulFunctionCall","src":"4261:22:64"},{"name":"dataEnd","nativeSrc":"4285:7:64","nodeType":"YulIdentifier","src":"4285:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4240:20:64","nodeType":"YulIdentifier","src":"4240:20:64"},"nativeSrc":"4240:53:64","nodeType":"YulFunctionCall","src":"4240:53:64"},"variableNames":[{"name":"value2","nativeSrc":"4230:6:64","nodeType":"YulIdentifier","src":"4230:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"3691:619:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3745:9:64","nodeType":"YulTypedName","src":"3745:9:64","type":""},{"name":"dataEnd","nativeSrc":"3756:7:64","nodeType":"YulTypedName","src":"3756:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3768:6:64","nodeType":"YulTypedName","src":"3768:6:64","type":""},{"name":"value1","nativeSrc":"3776:6:64","nodeType":"YulTypedName","src":"3776:6:64","type":""},{"name":"value2","nativeSrc":"3784:6:64","nodeType":"YulTypedName","src":"3784:6:64","type":""}],"src":"3691:619:64"},{"body":{"nativeSrc":"4359:43:64","nodeType":"YulBlock","src":"4359:43:64","statements":[{"nativeSrc":"4369:27:64","nodeType":"YulAssignment","src":"4369:27:64","value":{"arguments":[{"name":"value","nativeSrc":"4384:5:64","nodeType":"YulIdentifier","src":"4384:5:64"},{"kind":"number","nativeSrc":"4391:4:64","nodeType":"YulLiteral","src":"4391:4:64","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"4380:3:64","nodeType":"YulIdentifier","src":"4380:3:64"},"nativeSrc":"4380:16:64","nodeType":"YulFunctionCall","src":"4380:16:64"},"variableNames":[{"name":"cleaned","nativeSrc":"4369:7:64","nodeType":"YulIdentifier","src":"4369:7:64"}]}]},"name":"cleanup_t_uint8","nativeSrc":"4316:86:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4341:5:64","nodeType":"YulTypedName","src":"4341:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4351:7:64","nodeType":"YulTypedName","src":"4351:7:64","type":""}],"src":"4316:86:64"},{"body":{"nativeSrc":"4469:51:64","nodeType":"YulBlock","src":"4469:51:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4486:3:64","nodeType":"YulIdentifier","src":"4486:3:64"},{"arguments":[{"name":"value","nativeSrc":"4507:5:64","nodeType":"YulIdentifier","src":"4507:5:64"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"4491:15:64","nodeType":"YulIdentifier","src":"4491:15:64"},"nativeSrc":"4491:22:64","nodeType":"YulFunctionCall","src":"4491:22:64"}],"functionName":{"name":"mstore","nativeSrc":"4479:6:64","nodeType":"YulIdentifier","src":"4479:6:64"},"nativeSrc":"4479:35:64","nodeType":"YulFunctionCall","src":"4479:35:64"},"nativeSrc":"4479:35:64","nodeType":"YulExpressionStatement","src":"4479:35:64"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4408:112:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4457:5:64","nodeType":"YulTypedName","src":"4457:5:64","type":""},{"name":"pos","nativeSrc":"4464:3:64","nodeType":"YulTypedName","src":"4464:3:64","type":""}],"src":"4408:112:64"},{"body":{"nativeSrc":"4620:120:64","nodeType":"YulBlock","src":"4620:120:64","statements":[{"nativeSrc":"4630:26:64","nodeType":"YulAssignment","src":"4630:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"4642:9:64","nodeType":"YulIdentifier","src":"4642:9:64"},{"kind":"number","nativeSrc":"4653:2:64","nodeType":"YulLiteral","src":"4653:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4638:3:64","nodeType":"YulIdentifier","src":"4638:3:64"},"nativeSrc":"4638:18:64","nodeType":"YulFunctionCall","src":"4638:18:64"},"variableNames":[{"name":"tail","nativeSrc":"4630:4:64","nodeType":"YulIdentifier","src":"4630:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"4706:6:64","nodeType":"YulIdentifier","src":"4706:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4719:9:64","nodeType":"YulIdentifier","src":"4719:9:64"},{"kind":"number","nativeSrc":"4730:1:64","nodeType":"YulLiteral","src":"4730:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4715:3:64","nodeType":"YulIdentifier","src":"4715:3:64"},"nativeSrc":"4715:17:64","nodeType":"YulFunctionCall","src":"4715:17:64"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"4666:39:64","nodeType":"YulIdentifier","src":"4666:39:64"},"nativeSrc":"4666:67:64","nodeType":"YulFunctionCall","src":"4666:67:64"},"nativeSrc":"4666:67:64","nodeType":"YulExpressionStatement","src":"4666:67:64"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"4526:214:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4592:9:64","nodeType":"YulTypedName","src":"4592:9:64","type":""},{"name":"value0","nativeSrc":"4604:6:64","nodeType":"YulTypedName","src":"4604:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"4615:4:64","nodeType":"YulTypedName","src":"4615:4:64","type":""}],"src":"4526:214:64"},{"body":{"nativeSrc":"4791:32:64","nodeType":"YulBlock","src":"4791:32:64","statements":[{"nativeSrc":"4801:16:64","nodeType":"YulAssignment","src":"4801:16:64","value":{"name":"value","nativeSrc":"4812:5:64","nodeType":"YulIdentifier","src":"4812:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"4801:7:64","nodeType":"YulIdentifier","src":"4801:7:64"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"4746:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4773:5:64","nodeType":"YulTypedName","src":"4773:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"4783:7:64","nodeType":"YulTypedName","src":"4783:7:64","type":""}],"src":"4746:77:64"},{"body":{"nativeSrc":"4894:53:64","nodeType":"YulBlock","src":"4894:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4911:3:64","nodeType":"YulIdentifier","src":"4911:3:64"},{"arguments":[{"name":"value","nativeSrc":"4934:5:64","nodeType":"YulIdentifier","src":"4934:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"4916:17:64","nodeType":"YulIdentifier","src":"4916:17:64"},"nativeSrc":"4916:24:64","nodeType":"YulFunctionCall","src":"4916:24:64"}],"functionName":{"name":"mstore","nativeSrc":"4904:6:64","nodeType":"YulIdentifier","src":"4904:6:64"},"nativeSrc":"4904:37:64","nodeType":"YulFunctionCall","src":"4904:37:64"},"nativeSrc":"4904:37:64","nodeType":"YulExpressionStatement","src":"4904:37:64"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"4829:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4882:5:64","nodeType":"YulTypedName","src":"4882:5:64","type":""},{"name":"pos","nativeSrc":"4889:3:64","nodeType":"YulTypedName","src":"4889:3:64","type":""}],"src":"4829:118:64"},{"body":{"nativeSrc":"5051:124:64","nodeType":"YulBlock","src":"5051:124:64","statements":[{"nativeSrc":"5061:26:64","nodeType":"YulAssignment","src":"5061:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5073:9:64","nodeType":"YulIdentifier","src":"5073:9:64"},{"kind":"number","nativeSrc":"5084:2:64","nodeType":"YulLiteral","src":"5084:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5069:3:64","nodeType":"YulIdentifier","src":"5069:3:64"},"nativeSrc":"5069:18:64","nodeType":"YulFunctionCall","src":"5069:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5061:4:64","nodeType":"YulIdentifier","src":"5061:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5141:6:64","nodeType":"YulIdentifier","src":"5141:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"5154:9:64","nodeType":"YulIdentifier","src":"5154:9:64"},{"kind":"number","nativeSrc":"5165:1:64","nodeType":"YulLiteral","src":"5165:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5150:3:64","nodeType":"YulIdentifier","src":"5150:3:64"},"nativeSrc":"5150:17:64","nodeType":"YulFunctionCall","src":"5150:17:64"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"5097:43:64","nodeType":"YulIdentifier","src":"5097:43:64"},"nativeSrc":"5097:71:64","nodeType":"YulFunctionCall","src":"5097:71:64"},"nativeSrc":"5097:71:64","nodeType":"YulExpressionStatement","src":"5097:71:64"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"4953:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5023:9:64","nodeType":"YulTypedName","src":"5023:9:64","type":""},{"name":"value0","nativeSrc":"5035:6:64","nodeType":"YulTypedName","src":"5035:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5046:4:64","nodeType":"YulTypedName","src":"5046:4:64","type":""}],"src":"4953:222:64"},{"body":{"nativeSrc":"5247:263:64","nodeType":"YulBlock","src":"5247:263:64","statements":[{"body":{"nativeSrc":"5293:83:64","nodeType":"YulBlock","src":"5293:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5295:77:64","nodeType":"YulIdentifier","src":"5295:77:64"},"nativeSrc":"5295:79:64","nodeType":"YulFunctionCall","src":"5295:79:64"},"nativeSrc":"5295:79:64","nodeType":"YulExpressionStatement","src":"5295:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5268:7:64","nodeType":"YulIdentifier","src":"5268:7:64"},{"name":"headStart","nativeSrc":"5277:9:64","nodeType":"YulIdentifier","src":"5277:9:64"}],"functionName":{"name":"sub","nativeSrc":"5264:3:64","nodeType":"YulIdentifier","src":"5264:3:64"},"nativeSrc":"5264:23:64","nodeType":"YulFunctionCall","src":"5264:23:64"},{"kind":"number","nativeSrc":"5289:2:64","nodeType":"YulLiteral","src":"5289:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5260:3:64","nodeType":"YulIdentifier","src":"5260:3:64"},"nativeSrc":"5260:32:64","nodeType":"YulFunctionCall","src":"5260:32:64"},"nativeSrc":"5257:119:64","nodeType":"YulIf","src":"5257:119:64"},{"nativeSrc":"5386:117:64","nodeType":"YulBlock","src":"5386:117:64","statements":[{"nativeSrc":"5401:15:64","nodeType":"YulVariableDeclaration","src":"5401:15:64","value":{"kind":"number","nativeSrc":"5415:1:64","nodeType":"YulLiteral","src":"5415:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5405:6:64","nodeType":"YulTypedName","src":"5405:6:64","type":""}]},{"nativeSrc":"5430:63:64","nodeType":"YulAssignment","src":"5430:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5465:9:64","nodeType":"YulIdentifier","src":"5465:9:64"},{"name":"offset","nativeSrc":"5476:6:64","nodeType":"YulIdentifier","src":"5476:6:64"}],"functionName":{"name":"add","nativeSrc":"5461:3:64","nodeType":"YulIdentifier","src":"5461:3:64"},"nativeSrc":"5461:22:64","nodeType":"YulFunctionCall","src":"5461:22:64"},{"name":"dataEnd","nativeSrc":"5485:7:64","nodeType":"YulIdentifier","src":"5485:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5440:20:64","nodeType":"YulIdentifier","src":"5440:20:64"},"nativeSrc":"5440:53:64","nodeType":"YulFunctionCall","src":"5440:53:64"},"variableNames":[{"name":"value0","nativeSrc":"5430:6:64","nodeType":"YulIdentifier","src":"5430:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5181:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5217:9:64","nodeType":"YulTypedName","src":"5217:9:64","type":""},{"name":"dataEnd","nativeSrc":"5228:7:64","nodeType":"YulTypedName","src":"5228:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5240:6:64","nodeType":"YulTypedName","src":"5240:6:64","type":""}],"src":"5181:329:64"},{"body":{"nativeSrc":"5557:77:64","nodeType":"YulBlock","src":"5557:77:64","statements":[{"body":{"nativeSrc":"5612:16:64","nodeType":"YulBlock","src":"5612:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5621:1:64","nodeType":"YulLiteral","src":"5621:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5624:1:64","nodeType":"YulLiteral","src":"5624:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5614:6:64","nodeType":"YulIdentifier","src":"5614:6:64"},"nativeSrc":"5614:12:64","nodeType":"YulFunctionCall","src":"5614:12:64"},"nativeSrc":"5614:12:64","nodeType":"YulExpressionStatement","src":"5614:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5580:5:64","nodeType":"YulIdentifier","src":"5580:5:64"},{"arguments":[{"name":"value","nativeSrc":"5603:5:64","nodeType":"YulIdentifier","src":"5603:5:64"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"5587:15:64","nodeType":"YulIdentifier","src":"5587:15:64"},"nativeSrc":"5587:22:64","nodeType":"YulFunctionCall","src":"5587:22:64"}],"functionName":{"name":"eq","nativeSrc":"5577:2:64","nodeType":"YulIdentifier","src":"5577:2:64"},"nativeSrc":"5577:33:64","nodeType":"YulFunctionCall","src":"5577:33:64"}],"functionName":{"name":"iszero","nativeSrc":"5570:6:64","nodeType":"YulIdentifier","src":"5570:6:64"},"nativeSrc":"5570:41:64","nodeType":"YulFunctionCall","src":"5570:41:64"},"nativeSrc":"5567:61:64","nodeType":"YulIf","src":"5567:61:64"}]},"name":"validator_revert_t_uint8","nativeSrc":"5516:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5550:5:64","nodeType":"YulTypedName","src":"5550:5:64","type":""}],"src":"5516:118:64"},{"body":{"nativeSrc":"5690:85:64","nodeType":"YulBlock","src":"5690:85:64","statements":[{"nativeSrc":"5700:29:64","nodeType":"YulAssignment","src":"5700:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"5722:6:64","nodeType":"YulIdentifier","src":"5722:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"5709:12:64","nodeType":"YulIdentifier","src":"5709:12:64"},"nativeSrc":"5709:20:64","nodeType":"YulFunctionCall","src":"5709:20:64"},"variableNames":[{"name":"value","nativeSrc":"5700:5:64","nodeType":"YulIdentifier","src":"5700:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5763:5:64","nodeType":"YulIdentifier","src":"5763:5:64"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"5738:24:64","nodeType":"YulIdentifier","src":"5738:24:64"},"nativeSrc":"5738:31:64","nodeType":"YulFunctionCall","src":"5738:31:64"},"nativeSrc":"5738:31:64","nodeType":"YulExpressionStatement","src":"5738:31:64"}]},"name":"abi_decode_t_uint8","nativeSrc":"5640:135:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5668:6:64","nodeType":"YulTypedName","src":"5668:6:64","type":""},{"name":"end","nativeSrc":"5676:3:64","nodeType":"YulTypedName","src":"5676:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5684:5:64","nodeType":"YulTypedName","src":"5684:5:64","type":""}],"src":"5640:135:64"},{"body":{"nativeSrc":"5824:79:64","nodeType":"YulBlock","src":"5824:79:64","statements":[{"body":{"nativeSrc":"5881:16:64","nodeType":"YulBlock","src":"5881:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5890:1:64","nodeType":"YulLiteral","src":"5890:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5893:1:64","nodeType":"YulLiteral","src":"5893:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5883:6:64","nodeType":"YulIdentifier","src":"5883:6:64"},"nativeSrc":"5883:12:64","nodeType":"YulFunctionCall","src":"5883:12:64"},"nativeSrc":"5883:12:64","nodeType":"YulExpressionStatement","src":"5883:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5847:5:64","nodeType":"YulIdentifier","src":"5847:5:64"},{"arguments":[{"name":"value","nativeSrc":"5872:5:64","nodeType":"YulIdentifier","src":"5872:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"5854:17:64","nodeType":"YulIdentifier","src":"5854:17:64"},"nativeSrc":"5854:24:64","nodeType":"YulFunctionCall","src":"5854:24:64"}],"functionName":{"name":"eq","nativeSrc":"5844:2:64","nodeType":"YulIdentifier","src":"5844:2:64"},"nativeSrc":"5844:35:64","nodeType":"YulFunctionCall","src":"5844:35:64"}],"functionName":{"name":"iszero","nativeSrc":"5837:6:64","nodeType":"YulIdentifier","src":"5837:6:64"},"nativeSrc":"5837:43:64","nodeType":"YulFunctionCall","src":"5837:43:64"},"nativeSrc":"5834:63:64","nodeType":"YulIf","src":"5834:63:64"}]},"name":"validator_revert_t_bytes32","nativeSrc":"5781:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5817:5:64","nodeType":"YulTypedName","src":"5817:5:64","type":""}],"src":"5781:122:64"},{"body":{"nativeSrc":"5961:87:64","nodeType":"YulBlock","src":"5961:87:64","statements":[{"nativeSrc":"5971:29:64","nodeType":"YulAssignment","src":"5971:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"5993:6:64","nodeType":"YulIdentifier","src":"5993:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"5980:12:64","nodeType":"YulIdentifier","src":"5980:12:64"},"nativeSrc":"5980:20:64","nodeType":"YulFunctionCall","src":"5980:20:64"},"variableNames":[{"name":"value","nativeSrc":"5971:5:64","nodeType":"YulIdentifier","src":"5971:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6036:5:64","nodeType":"YulIdentifier","src":"6036:5:64"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"6009:26:64","nodeType":"YulIdentifier","src":"6009:26:64"},"nativeSrc":"6009:33:64","nodeType":"YulFunctionCall","src":"6009:33:64"},"nativeSrc":"6009:33:64","nodeType":"YulExpressionStatement","src":"6009:33:64"}]},"name":"abi_decode_t_bytes32","nativeSrc":"5909:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5939:6:64","nodeType":"YulTypedName","src":"5939:6:64","type":""},{"name":"end","nativeSrc":"5947:3:64","nodeType":"YulTypedName","src":"5947:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5955:5:64","nodeType":"YulTypedName","src":"5955:5:64","type":""}],"src":"5909:139:64"},{"body":{"nativeSrc":"6220:1033:64","nodeType":"YulBlock","src":"6220:1033:64","statements":[{"body":{"nativeSrc":"6267:83:64","nodeType":"YulBlock","src":"6267:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6269:77:64","nodeType":"YulIdentifier","src":"6269:77:64"},"nativeSrc":"6269:79:64","nodeType":"YulFunctionCall","src":"6269:79:64"},"nativeSrc":"6269:79:64","nodeType":"YulExpressionStatement","src":"6269:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6241:7:64","nodeType":"YulIdentifier","src":"6241:7:64"},{"name":"headStart","nativeSrc":"6250:9:64","nodeType":"YulIdentifier","src":"6250:9:64"}],"functionName":{"name":"sub","nativeSrc":"6237:3:64","nodeType":"YulIdentifier","src":"6237:3:64"},"nativeSrc":"6237:23:64","nodeType":"YulFunctionCall","src":"6237:23:64"},{"kind":"number","nativeSrc":"6262:3:64","nodeType":"YulLiteral","src":"6262:3:64","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"6233:3:64","nodeType":"YulIdentifier","src":"6233:3:64"},"nativeSrc":"6233:33:64","nodeType":"YulFunctionCall","src":"6233:33:64"},"nativeSrc":"6230:120:64","nodeType":"YulIf","src":"6230:120:64"},{"nativeSrc":"6360:117:64","nodeType":"YulBlock","src":"6360:117:64","statements":[{"nativeSrc":"6375:15:64","nodeType":"YulVariableDeclaration","src":"6375:15:64","value":{"kind":"number","nativeSrc":"6389:1:64","nodeType":"YulLiteral","src":"6389:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6379:6:64","nodeType":"YulTypedName","src":"6379:6:64","type":""}]},{"nativeSrc":"6404:63:64","nodeType":"YulAssignment","src":"6404:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6439:9:64","nodeType":"YulIdentifier","src":"6439:9:64"},{"name":"offset","nativeSrc":"6450:6:64","nodeType":"YulIdentifier","src":"6450:6:64"}],"functionName":{"name":"add","nativeSrc":"6435:3:64","nodeType":"YulIdentifier","src":"6435:3:64"},"nativeSrc":"6435:22:64","nodeType":"YulFunctionCall","src":"6435:22:64"},{"name":"dataEnd","nativeSrc":"6459:7:64","nodeType":"YulIdentifier","src":"6459:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6414:20:64","nodeType":"YulIdentifier","src":"6414:20:64"},"nativeSrc":"6414:53:64","nodeType":"YulFunctionCall","src":"6414:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6404:6:64","nodeType":"YulIdentifier","src":"6404:6:64"}]}]},{"nativeSrc":"6487:118:64","nodeType":"YulBlock","src":"6487:118:64","statements":[{"nativeSrc":"6502:16:64","nodeType":"YulVariableDeclaration","src":"6502:16:64","value":{"kind":"number","nativeSrc":"6516:2:64","nodeType":"YulLiteral","src":"6516:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6506:6:64","nodeType":"YulTypedName","src":"6506:6:64","type":""}]},{"nativeSrc":"6532:63:64","nodeType":"YulAssignment","src":"6532:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6567:9:64","nodeType":"YulIdentifier","src":"6567:9:64"},{"name":"offset","nativeSrc":"6578:6:64","nodeType":"YulIdentifier","src":"6578:6:64"}],"functionName":{"name":"add","nativeSrc":"6563:3:64","nodeType":"YulIdentifier","src":"6563:3:64"},"nativeSrc":"6563:22:64","nodeType":"YulFunctionCall","src":"6563:22:64"},{"name":"dataEnd","nativeSrc":"6587:7:64","nodeType":"YulIdentifier","src":"6587:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6542:20:64","nodeType":"YulIdentifier","src":"6542:20:64"},"nativeSrc":"6542:53:64","nodeType":"YulFunctionCall","src":"6542:53:64"},"variableNames":[{"name":"value1","nativeSrc":"6532:6:64","nodeType":"YulIdentifier","src":"6532:6:64"}]}]},{"nativeSrc":"6615:118:64","nodeType":"YulBlock","src":"6615:118:64","statements":[{"nativeSrc":"6630:16:64","nodeType":"YulVariableDeclaration","src":"6630:16:64","value":{"kind":"number","nativeSrc":"6644:2:64","nodeType":"YulLiteral","src":"6644:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"6634:6:64","nodeType":"YulTypedName","src":"6634:6:64","type":""}]},{"nativeSrc":"6660:63:64","nodeType":"YulAssignment","src":"6660:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6695:9:64","nodeType":"YulIdentifier","src":"6695:9:64"},{"name":"offset","nativeSrc":"6706:6:64","nodeType":"YulIdentifier","src":"6706:6:64"}],"functionName":{"name":"add","nativeSrc":"6691:3:64","nodeType":"YulIdentifier","src":"6691:3:64"},"nativeSrc":"6691:22:64","nodeType":"YulFunctionCall","src":"6691:22:64"},{"name":"dataEnd","nativeSrc":"6715:7:64","nodeType":"YulIdentifier","src":"6715:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6670:20:64","nodeType":"YulIdentifier","src":"6670:20:64"},"nativeSrc":"6670:53:64","nodeType":"YulFunctionCall","src":"6670:53:64"},"variableNames":[{"name":"value2","nativeSrc":"6660:6:64","nodeType":"YulIdentifier","src":"6660:6:64"}]}]},{"nativeSrc":"6743:118:64","nodeType":"YulBlock","src":"6743:118:64","statements":[{"nativeSrc":"6758:16:64","nodeType":"YulVariableDeclaration","src":"6758:16:64","value":{"kind":"number","nativeSrc":"6772:2:64","nodeType":"YulLiteral","src":"6772:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"6762:6:64","nodeType":"YulTypedName","src":"6762:6:64","type":""}]},{"nativeSrc":"6788:63:64","nodeType":"YulAssignment","src":"6788:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6823:9:64","nodeType":"YulIdentifier","src":"6823:9:64"},{"name":"offset","nativeSrc":"6834:6:64","nodeType":"YulIdentifier","src":"6834:6:64"}],"functionName":{"name":"add","nativeSrc":"6819:3:64","nodeType":"YulIdentifier","src":"6819:3:64"},"nativeSrc":"6819:22:64","nodeType":"YulFunctionCall","src":"6819:22:64"},{"name":"dataEnd","nativeSrc":"6843:7:64","nodeType":"YulIdentifier","src":"6843:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"6798:20:64","nodeType":"YulIdentifier","src":"6798:20:64"},"nativeSrc":"6798:53:64","nodeType":"YulFunctionCall","src":"6798:53:64"},"variableNames":[{"name":"value3","nativeSrc":"6788:6:64","nodeType":"YulIdentifier","src":"6788:6:64"}]}]},{"nativeSrc":"6871:117:64","nodeType":"YulBlock","src":"6871:117:64","statements":[{"nativeSrc":"6886:17:64","nodeType":"YulVariableDeclaration","src":"6886:17:64","value":{"kind":"number","nativeSrc":"6900:3:64","nodeType":"YulLiteral","src":"6900:3:64","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"6890:6:64","nodeType":"YulTypedName","src":"6890:6:64","type":""}]},{"nativeSrc":"6917:61:64","nodeType":"YulAssignment","src":"6917:61:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6950:9:64","nodeType":"YulIdentifier","src":"6950:9:64"},{"name":"offset","nativeSrc":"6961:6:64","nodeType":"YulIdentifier","src":"6961:6:64"}],"functionName":{"name":"add","nativeSrc":"6946:3:64","nodeType":"YulIdentifier","src":"6946:3:64"},"nativeSrc":"6946:22:64","nodeType":"YulFunctionCall","src":"6946:22:64"},{"name":"dataEnd","nativeSrc":"6970:7:64","nodeType":"YulIdentifier","src":"6970:7:64"}],"functionName":{"name":"abi_decode_t_uint8","nativeSrc":"6927:18:64","nodeType":"YulIdentifier","src":"6927:18:64"},"nativeSrc":"6927:51:64","nodeType":"YulFunctionCall","src":"6927:51:64"},"variableNames":[{"name":"value4","nativeSrc":"6917:6:64","nodeType":"YulIdentifier","src":"6917:6:64"}]}]},{"nativeSrc":"6998:119:64","nodeType":"YulBlock","src":"6998:119:64","statements":[{"nativeSrc":"7013:17:64","nodeType":"YulVariableDeclaration","src":"7013:17:64","value":{"kind":"number","nativeSrc":"7027:3:64","nodeType":"YulLiteral","src":"7027:3:64","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"7017:6:64","nodeType":"YulTypedName","src":"7017:6:64","type":""}]},{"nativeSrc":"7044:63:64","nodeType":"YulAssignment","src":"7044:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7079:9:64","nodeType":"YulIdentifier","src":"7079:9:64"},{"name":"offset","nativeSrc":"7090:6:64","nodeType":"YulIdentifier","src":"7090:6:64"}],"functionName":{"name":"add","nativeSrc":"7075:3:64","nodeType":"YulIdentifier","src":"7075:3:64"},"nativeSrc":"7075:22:64","nodeType":"YulFunctionCall","src":"7075:22:64"},{"name":"dataEnd","nativeSrc":"7099:7:64","nodeType":"YulIdentifier","src":"7099:7:64"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7054:20:64","nodeType":"YulIdentifier","src":"7054:20:64"},"nativeSrc":"7054:53:64","nodeType":"YulFunctionCall","src":"7054:53:64"},"variableNames":[{"name":"value5","nativeSrc":"7044:6:64","nodeType":"YulIdentifier","src":"7044:6:64"}]}]},{"nativeSrc":"7127:119:64","nodeType":"YulBlock","src":"7127:119:64","statements":[{"nativeSrc":"7142:17:64","nodeType":"YulVariableDeclaration","src":"7142:17:64","value":{"kind":"number","nativeSrc":"7156:3:64","nodeType":"YulLiteral","src":"7156:3:64","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"7146:6:64","nodeType":"YulTypedName","src":"7146:6:64","type":""}]},{"nativeSrc":"7173:63:64","nodeType":"YulAssignment","src":"7173:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7208:9:64","nodeType":"YulIdentifier","src":"7208:9:64"},{"name":"offset","nativeSrc":"7219:6:64","nodeType":"YulIdentifier","src":"7219:6:64"}],"functionName":{"name":"add","nativeSrc":"7204:3:64","nodeType":"YulIdentifier","src":"7204:3:64"},"nativeSrc":"7204:22:64","nodeType":"YulFunctionCall","src":"7204:22:64"},{"name":"dataEnd","nativeSrc":"7228:7:64","nodeType":"YulIdentifier","src":"7228:7:64"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7183:20:64","nodeType":"YulIdentifier","src":"7183:20:64"},"nativeSrc":"7183:53:64","nodeType":"YulFunctionCall","src":"7183:53:64"},"variableNames":[{"name":"value6","nativeSrc":"7173:6:64","nodeType":"YulIdentifier","src":"7173:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nativeSrc":"6054:1199:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6142:9:64","nodeType":"YulTypedName","src":"6142:9:64","type":""},{"name":"dataEnd","nativeSrc":"6153:7:64","nodeType":"YulTypedName","src":"6153:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6165:6:64","nodeType":"YulTypedName","src":"6165:6:64","type":""},{"name":"value1","nativeSrc":"6173:6:64","nodeType":"YulTypedName","src":"6173:6:64","type":""},{"name":"value2","nativeSrc":"6181:6:64","nodeType":"YulTypedName","src":"6181:6:64","type":""},{"name":"value3","nativeSrc":"6189:6:64","nodeType":"YulTypedName","src":"6189:6:64","type":""},{"name":"value4","nativeSrc":"6197:6:64","nodeType":"YulTypedName","src":"6197:6:64","type":""},{"name":"value5","nativeSrc":"6205:6:64","nodeType":"YulTypedName","src":"6205:6:64","type":""},{"name":"value6","nativeSrc":"6213:6:64","nodeType":"YulTypedName","src":"6213:6:64","type":""}],"src":"6054:1199:64"},{"body":{"nativeSrc":"7342:391:64","nodeType":"YulBlock","src":"7342:391:64","statements":[{"body":{"nativeSrc":"7388:83:64","nodeType":"YulBlock","src":"7388:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7390:77:64","nodeType":"YulIdentifier","src":"7390:77:64"},"nativeSrc":"7390:79:64","nodeType":"YulFunctionCall","src":"7390:79:64"},"nativeSrc":"7390:79:64","nodeType":"YulExpressionStatement","src":"7390:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7363:7:64","nodeType":"YulIdentifier","src":"7363:7:64"},{"name":"headStart","nativeSrc":"7372:9:64","nodeType":"YulIdentifier","src":"7372:9:64"}],"functionName":{"name":"sub","nativeSrc":"7359:3:64","nodeType":"YulIdentifier","src":"7359:3:64"},"nativeSrc":"7359:23:64","nodeType":"YulFunctionCall","src":"7359:23:64"},{"kind":"number","nativeSrc":"7384:2:64","nodeType":"YulLiteral","src":"7384:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"7355:3:64","nodeType":"YulIdentifier","src":"7355:3:64"},"nativeSrc":"7355:32:64","nodeType":"YulFunctionCall","src":"7355:32:64"},"nativeSrc":"7352:119:64","nodeType":"YulIf","src":"7352:119:64"},{"nativeSrc":"7481:117:64","nodeType":"YulBlock","src":"7481:117:64","statements":[{"nativeSrc":"7496:15:64","nodeType":"YulVariableDeclaration","src":"7496:15:64","value":{"kind":"number","nativeSrc":"7510:1:64","nodeType":"YulLiteral","src":"7510:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7500:6:64","nodeType":"YulTypedName","src":"7500:6:64","type":""}]},{"nativeSrc":"7525:63:64","nodeType":"YulAssignment","src":"7525:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7560:9:64","nodeType":"YulIdentifier","src":"7560:9:64"},{"name":"offset","nativeSrc":"7571:6:64","nodeType":"YulIdentifier","src":"7571:6:64"}],"functionName":{"name":"add","nativeSrc":"7556:3:64","nodeType":"YulIdentifier","src":"7556:3:64"},"nativeSrc":"7556:22:64","nodeType":"YulFunctionCall","src":"7556:22:64"},{"name":"dataEnd","nativeSrc":"7580:7:64","nodeType":"YulIdentifier","src":"7580:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7535:20:64","nodeType":"YulIdentifier","src":"7535:20:64"},"nativeSrc":"7535:53:64","nodeType":"YulFunctionCall","src":"7535:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7525:6:64","nodeType":"YulIdentifier","src":"7525:6:64"}]}]},{"nativeSrc":"7608:118:64","nodeType":"YulBlock","src":"7608:118:64","statements":[{"nativeSrc":"7623:16:64","nodeType":"YulVariableDeclaration","src":"7623:16:64","value":{"kind":"number","nativeSrc":"7637:2:64","nodeType":"YulLiteral","src":"7637:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7627:6:64","nodeType":"YulTypedName","src":"7627:6:64","type":""}]},{"nativeSrc":"7653:63:64","nodeType":"YulAssignment","src":"7653:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7688:9:64","nodeType":"YulIdentifier","src":"7688:9:64"},{"name":"offset","nativeSrc":"7699:6:64","nodeType":"YulIdentifier","src":"7699:6:64"}],"functionName":{"name":"add","nativeSrc":"7684:3:64","nodeType":"YulIdentifier","src":"7684:3:64"},"nativeSrc":"7684:22:64","nodeType":"YulFunctionCall","src":"7684:22:64"},{"name":"dataEnd","nativeSrc":"7708:7:64","nodeType":"YulIdentifier","src":"7708:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7663:20:64","nodeType":"YulIdentifier","src":"7663:20:64"},"nativeSrc":"7663:53:64","nodeType":"YulFunctionCall","src":"7663:53:64"},"variableNames":[{"name":"value1","nativeSrc":"7653:6:64","nodeType":"YulIdentifier","src":"7653:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"7259:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7304:9:64","nodeType":"YulTypedName","src":"7304:9:64","type":""},{"name":"dataEnd","nativeSrc":"7315:7:64","nodeType":"YulTypedName","src":"7315:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7327:6:64","nodeType":"YulTypedName","src":"7327:6:64","type":""},{"name":"value1","nativeSrc":"7335:6:64","nodeType":"YulTypedName","src":"7335:6:64","type":""}],"src":"7259:474:64"},{"body":{"nativeSrc":"7767:152:64","nodeType":"YulBlock","src":"7767:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7784:1:64","nodeType":"YulLiteral","src":"7784:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7787:77:64","nodeType":"YulLiteral","src":"7787:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7777:6:64","nodeType":"YulIdentifier","src":"7777:6:64"},"nativeSrc":"7777:88:64","nodeType":"YulFunctionCall","src":"7777:88:64"},"nativeSrc":"7777:88:64","nodeType":"YulExpressionStatement","src":"7777:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7881:1:64","nodeType":"YulLiteral","src":"7881:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"7884:4:64","nodeType":"YulLiteral","src":"7884:4:64","type":"","value":"0x12"}],"functionName":{"name":"mstore","nativeSrc":"7874:6:64","nodeType":"YulIdentifier","src":"7874:6:64"},"nativeSrc":"7874:15:64","nodeType":"YulFunctionCall","src":"7874:15:64"},"nativeSrc":"7874:15:64","nodeType":"YulExpressionStatement","src":"7874:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7905:1:64","nodeType":"YulLiteral","src":"7905:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7908:4:64","nodeType":"YulLiteral","src":"7908:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7898:6:64","nodeType":"YulIdentifier","src":"7898:6:64"},"nativeSrc":"7898:15:64","nodeType":"YulFunctionCall","src":"7898:15:64"},"nativeSrc":"7898:15:64","nodeType":"YulExpressionStatement","src":"7898:15:64"}]},"name":"panic_error_0x12","nativeSrc":"7739:180:64","nodeType":"YulFunctionDefinition","src":"7739:180:64"},{"body":{"nativeSrc":"7953:152:64","nodeType":"YulBlock","src":"7953:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7970:1:64","nodeType":"YulLiteral","src":"7970:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7973:77:64","nodeType":"YulLiteral","src":"7973:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7963:6:64","nodeType":"YulIdentifier","src":"7963:6:64"},"nativeSrc":"7963:88:64","nodeType":"YulFunctionCall","src":"7963:88:64"},"nativeSrc":"7963:88:64","nodeType":"YulExpressionStatement","src":"7963:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8067:1:64","nodeType":"YulLiteral","src":"8067:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8070:4:64","nodeType":"YulLiteral","src":"8070:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"8060:6:64","nodeType":"YulIdentifier","src":"8060:6:64"},"nativeSrc":"8060:15:64","nodeType":"YulFunctionCall","src":"8060:15:64"},"nativeSrc":"8060:15:64","nodeType":"YulExpressionStatement","src":"8060:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8091:1:64","nodeType":"YulLiteral","src":"8091:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8094:4:64","nodeType":"YulLiteral","src":"8094:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8084:6:64","nodeType":"YulIdentifier","src":"8084:6:64"},"nativeSrc":"8084:15:64","nodeType":"YulFunctionCall","src":"8084:15:64"},"nativeSrc":"8084:15:64","nodeType":"YulExpressionStatement","src":"8084:15:64"}]},"name":"panic_error_0x11","nativeSrc":"7925:180:64","nodeType":"YulFunctionDefinition","src":"7925:180:64"},{"body":{"nativeSrc":"8153:143:64","nodeType":"YulBlock","src":"8153:143:64","statements":[{"nativeSrc":"8163:25:64","nodeType":"YulAssignment","src":"8163:25:64","value":{"arguments":[{"name":"x","nativeSrc":"8186:1:64","nodeType":"YulIdentifier","src":"8186:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8168:17:64","nodeType":"YulIdentifier","src":"8168:17:64"},"nativeSrc":"8168:20:64","nodeType":"YulFunctionCall","src":"8168:20:64"},"variableNames":[{"name":"x","nativeSrc":"8163:1:64","nodeType":"YulIdentifier","src":"8163:1:64"}]},{"nativeSrc":"8197:25:64","nodeType":"YulAssignment","src":"8197:25:64","value":{"arguments":[{"name":"y","nativeSrc":"8220:1:64","nodeType":"YulIdentifier","src":"8220:1:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"8202:17:64","nodeType":"YulIdentifier","src":"8202:17:64"},"nativeSrc":"8202:20:64","nodeType":"YulFunctionCall","src":"8202:20:64"},"variableNames":[{"name":"y","nativeSrc":"8197:1:64","nodeType":"YulIdentifier","src":"8197:1:64"}]},{"body":{"nativeSrc":"8244:22:64","nodeType":"YulBlock","src":"8244:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nativeSrc":"8246:16:64","nodeType":"YulIdentifier","src":"8246:16:64"},"nativeSrc":"8246:18:64","nodeType":"YulFunctionCall","src":"8246:18:64"},"nativeSrc":"8246:18:64","nodeType":"YulExpressionStatement","src":"8246:18:64"}]},"condition":{"arguments":[{"name":"y","nativeSrc":"8241:1:64","nodeType":"YulIdentifier","src":"8241:1:64"}],"functionName":{"name":"iszero","nativeSrc":"8234:6:64","nodeType":"YulIdentifier","src":"8234:6:64"},"nativeSrc":"8234:9:64","nodeType":"YulFunctionCall","src":"8234:9:64"},"nativeSrc":"8231:35:64","nodeType":"YulIf","src":"8231:35:64"},{"nativeSrc":"8276:14:64","nodeType":"YulAssignment","src":"8276:14:64","value":{"arguments":[{"name":"x","nativeSrc":"8285:1:64","nodeType":"YulIdentifier","src":"8285:1:64"},{"name":"y","nativeSrc":"8288:1:64","nodeType":"YulIdentifier","src":"8288:1:64"}],"functionName":{"name":"div","nativeSrc":"8281:3:64","nodeType":"YulIdentifier","src":"8281:3:64"},"nativeSrc":"8281:9:64","nodeType":"YulFunctionCall","src":"8281:9:64"},"variableNames":[{"name":"r","nativeSrc":"8276:1:64","nodeType":"YulIdentifier","src":"8276:1:64"}]}]},"name":"checked_div_t_uint256","nativeSrc":"8111:185:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"8142:1:64","nodeType":"YulTypedName","src":"8142:1:64","type":""},{"name":"y","nativeSrc":"8145:1:64","nodeType":"YulTypedName","src":"8145:1:64","type":""}],"returnVariables":[{"name":"r","nativeSrc":"8151:1:64","nodeType":"YulTypedName","src":"8151:1:64","type":""}],"src":"8111:185:64"},{"body":{"nativeSrc":"8408:72:64","nodeType":"YulBlock","src":"8408:72:64","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"8430:6:64","nodeType":"YulIdentifier","src":"8430:6:64"},{"kind":"number","nativeSrc":"8438:1:64","nodeType":"YulLiteral","src":"8438:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8426:3:64","nodeType":"YulIdentifier","src":"8426:3:64"},"nativeSrc":"8426:14:64","nodeType":"YulFunctionCall","src":"8426:14:64"},{"hexValue":"4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921","kind":"string","nativeSrc":"8442:30:64","nodeType":"YulLiteral","src":"8442:30:64","type":"","value":"MockERC20: gimme more money!"}],"functionName":{"name":"mstore","nativeSrc":"8419:6:64","nodeType":"YulIdentifier","src":"8419:6:64"},"nativeSrc":"8419:54:64","nodeType":"YulFunctionCall","src":"8419:54:64"},"nativeSrc":"8419:54:64","nodeType":"YulExpressionStatement","src":"8419:54:64"}]},"name":"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","nativeSrc":"8302:178:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8400:6:64","nodeType":"YulTypedName","src":"8400:6:64","type":""}],"src":"8302:178:64"},{"body":{"nativeSrc":"8632:220:64","nodeType":"YulBlock","src":"8632:220:64","statements":[{"nativeSrc":"8642:74:64","nodeType":"YulAssignment","src":"8642:74:64","value":{"arguments":[{"name":"pos","nativeSrc":"8708:3:64","nodeType":"YulIdentifier","src":"8708:3:64"},{"kind":"number","nativeSrc":"8713:2:64","nodeType":"YulLiteral","src":"8713:2:64","type":"","value":"28"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"8649:58:64","nodeType":"YulIdentifier","src":"8649:58:64"},"nativeSrc":"8649:67:64","nodeType":"YulFunctionCall","src":"8649:67:64"},"variableNames":[{"name":"pos","nativeSrc":"8642:3:64","nodeType":"YulIdentifier","src":"8642:3:64"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"8814:3:64","nodeType":"YulIdentifier","src":"8814:3:64"}],"functionName":{"name":"store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417","nativeSrc":"8725:88:64","nodeType":"YulIdentifier","src":"8725:88:64"},"nativeSrc":"8725:93:64","nodeType":"YulFunctionCall","src":"8725:93:64"},"nativeSrc":"8725:93:64","nodeType":"YulExpressionStatement","src":"8725:93:64"},{"nativeSrc":"8827:19:64","nodeType":"YulAssignment","src":"8827:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"8838:3:64","nodeType":"YulIdentifier","src":"8838:3:64"},{"kind":"number","nativeSrc":"8843:2:64","nodeType":"YulLiteral","src":"8843:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8834:3:64","nodeType":"YulIdentifier","src":"8834:3:64"},"nativeSrc":"8834:12:64","nodeType":"YulFunctionCall","src":"8834:12:64"},"variableNames":[{"name":"end","nativeSrc":"8827:3:64","nodeType":"YulIdentifier","src":"8827:3:64"}]}]},"name":"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack","nativeSrc":"8486:366:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"8620:3:64","nodeType":"YulTypedName","src":"8620:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"8628:3:64","nodeType":"YulTypedName","src":"8628:3:64","type":""}],"src":"8486:366:64"},{"body":{"nativeSrc":"9029:248:64","nodeType":"YulBlock","src":"9029:248:64","statements":[{"nativeSrc":"9039:26:64","nodeType":"YulAssignment","src":"9039:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"9051:9:64","nodeType":"YulIdentifier","src":"9051:9:64"},{"kind":"number","nativeSrc":"9062:2:64","nodeType":"YulLiteral","src":"9062:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9047:3:64","nodeType":"YulIdentifier","src":"9047:3:64"},"nativeSrc":"9047:18:64","nodeType":"YulFunctionCall","src":"9047:18:64"},"variableNames":[{"name":"tail","nativeSrc":"9039:4:64","nodeType":"YulIdentifier","src":"9039:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9086:9:64","nodeType":"YulIdentifier","src":"9086:9:64"},{"kind":"number","nativeSrc":"9097:1:64","nodeType":"YulLiteral","src":"9097:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9082:3:64","nodeType":"YulIdentifier","src":"9082:3:64"},"nativeSrc":"9082:17:64","nodeType":"YulFunctionCall","src":"9082:17:64"},{"arguments":[{"name":"tail","nativeSrc":"9105:4:64","nodeType":"YulIdentifier","src":"9105:4:64"},{"name":"headStart","nativeSrc":"9111:9:64","nodeType":"YulIdentifier","src":"9111:9:64"}],"functionName":{"name":"sub","nativeSrc":"9101:3:64","nodeType":"YulIdentifier","src":"9101:3:64"},"nativeSrc":"9101:20:64","nodeType":"YulFunctionCall","src":"9101:20:64"}],"functionName":{"name":"mstore","nativeSrc":"9075:6:64","nodeType":"YulIdentifier","src":"9075:6:64"},"nativeSrc":"9075:47:64","nodeType":"YulFunctionCall","src":"9075:47:64"},"nativeSrc":"9075:47:64","nodeType":"YulExpressionStatement","src":"9075:47:64"},{"nativeSrc":"9131:139:64","nodeType":"YulAssignment","src":"9131:139:64","value":{"arguments":[{"name":"tail","nativeSrc":"9265:4:64","nodeType":"YulIdentifier","src":"9265:4:64"}],"functionName":{"name":"abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack","nativeSrc":"9139:124:64","nodeType":"YulIdentifier","src":"9139:124:64"},"nativeSrc":"9139:131:64","nodeType":"YulFunctionCall","src":"9139:131:64"},"variableNames":[{"name":"tail","nativeSrc":"9131:4:64","nodeType":"YulIdentifier","src":"9131:4:64"}]}]},"name":"abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"8858:419:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9009:9:64","nodeType":"YulTypedName","src":"9009:9:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9024:4:64","nodeType":"YulTypedName","src":"9024:4:64","type":""}],"src":"8858:419:64"}]},"contents":"{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417(memPtr) {\n\n mstore(add(memPtr, 0), \"MockERC20: gimme more money!\")\n\n }\n\n function abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4b2cfa1ea13c5ddac9dfe245b350bf7f78acd98f76b49e1a7027641b882a1417_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100dc575f3560e01c806340c10f191161007e57806395d89b411161005857806395d89b41146102bc578063a9059cbb146102e6578063d505accf14610322578063dd62ed3e1461034a576100dc565b806340c10f191461021c57806370a08231146102445780637ecebe0014610280576100dc565b806318160ddd116100ba57806318160ddd1461016257806323b872dd1461018c578063313ce567146101c85780633644e515146101f2576100dc565b806306fdde03146100e0578063095ea7b31461010a57806317d304b014610146575b5f80fd5b3480156100eb575f80fd5b506100f4610386565b60405161010191906109bf565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190610a70565b6103c3565b60405161013d9190610ac8565b60405180910390f35b610160600480360381019061015b9190610a70565b610413565b005b34801561016d575f80fd5b50610176610470565b6040516101839190610af0565b60405180910390f35b348015610197575f80fd5b506101b260048036038101906101ad9190610b09565b610481565b6040516101bf9190610ac8565b60405180910390f35b3480156101d3575f80fd5b506101dc610552565b6040516101e99190610b74565b60405180910390f35b3480156101fd575f80fd5b5061020661055a565b6040516102139190610ba5565b60405180910390f35b348015610227575f80fd5b50610242600480360381019061023d9190610a70565b6105ea565b005b34801561024f575f80fd5b5061026a60048036038101906102659190610bbe565b6105f8565b6040516102779190610af0565b60405180910390f35b34801561028b575f80fd5b506102a660048036038101906102a19190610bbe565b610611565b6040516102b39190610af0565b60405180910390f35b3480156102c7575f80fd5b506102d061062a565b6040516102dd91906109bf565b60405180910390f35b3480156102f1575f80fd5b5061030c60048036038101906103079190610a70565b610667565b6040516103199190610ac8565b60405180910390f35b34801561032d575f80fd5b5061034860048036038101906103439190610c3d565b6106f5565b005b348015610355575f80fd5b50610370600480360381019061036b9190610cda565b610891565b60405161037d9190610af0565b60405180910390f35b60606040518060400160405280600a81526020017f4d6f636b20455243323000000000000000000000000000000000000000000000815250905090565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b6064816104209190610d45565b341015610462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045990610dbf565b60405180910390fd5b61046c82826108af565b5050565b5f6805345cdf77eb68f44c54905090565b5f61048d848484610941565b8360601b33602052637f5e9f208117600c526034600c20805460018101156104ca57808511156104c4576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c208054808711156104f05763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050505050610547848484610946565b600190509392505050565b5f6012905090565b5f8061056461094b565b90505f801b810361058157610577610386565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b6105f482826108af565b5050565b5f6387a211a2600c52815f526020600c20549050919050565b5f6338377508600c52815f526020600c20549050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b5f610673338484610941565b6387a211a2600c52335f526020600c2080548084111561069a5763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506106eb338484610946565b6001905092915050565b5f6106fe61094b565b90505f801b810361071b57610711610386565b8051906020012090505b8442111561073057631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d51146108385763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b6108ba5f8383610941565b6805345cdf77eb68f44c54818101818110156108dd5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505061093d5f8383610946565b5050565b505050565b505050565b5f90565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109918261094f565b61099b8185610959565b93506109ab818560208601610969565b6109b481610977565b840191505092915050565b5f6020820190508181035f8301526109d78184610987565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a0c826109e3565b9050919050565b610a1c81610a02565b8114610a26575f80fd5b50565b5f81359050610a3781610a13565b92915050565b5f819050919050565b610a4f81610a3d565b8114610a59575f80fd5b50565b5f81359050610a6a81610a46565b92915050565b5f8060408385031215610a8657610a856109df565b5b5f610a9385828601610a29565b9250506020610aa485828601610a5c565b9150509250929050565b5f8115159050919050565b610ac281610aae565b82525050565b5f602082019050610adb5f830184610ab9565b92915050565b610aea81610a3d565b82525050565b5f602082019050610b035f830184610ae1565b92915050565b5f805f60608486031215610b2057610b1f6109df565b5b5f610b2d86828701610a29565b9350506020610b3e86828701610a29565b9250506040610b4f86828701610a5c565b9150509250925092565b5f60ff82169050919050565b610b6e81610b59565b82525050565b5f602082019050610b875f830184610b65565b92915050565b5f819050919050565b610b9f81610b8d565b82525050565b5f602082019050610bb85f830184610b96565b92915050565b5f60208284031215610bd357610bd26109df565b5b5f610be084828501610a29565b91505092915050565b610bf281610b59565b8114610bfc575f80fd5b50565b5f81359050610c0d81610be9565b92915050565b610c1c81610b8d565b8114610c26575f80fd5b50565b5f81359050610c3781610c13565b92915050565b5f805f805f805f60e0888a031215610c5857610c576109df565b5b5f610c658a828b01610a29565b9750506020610c768a828b01610a29565b9650506040610c878a828b01610a5c565b9550506060610c988a828b01610a5c565b9450506080610ca98a828b01610bff565b93505060a0610cba8a828b01610c29565b92505060c0610ccb8a828b01610c29565b91505092959891949750929550565b5f8060408385031215610cf057610cef6109df565b5b5f610cfd85828601610a29565b9250506020610d0e85828601610a29565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d4f82610a3d565b9150610d5a83610a3d565b925082610d6a57610d69610d18565b5b828204905092915050565b7f4d6f636b45524332303a2067696d6d65206d6f7265206d6f6e657921000000005f82015250565b5f610da9601c83610959565b9150610db482610d75565b602082019050919050565b5f6020820190508181035f830152610dd681610d9d565b905091905056fea2646970667358221220fc3b19189eef06880e6504894f96ee5571b3d6200a464263fa29d8f39727377e64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xDC JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x34A JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x280 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xBA JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x162 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x18C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x1F2 JUMPI PUSH2 0xDC JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x17D304B0 EQ PUSH2 0x146 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xF4 PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x101 SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x115 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x130 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x3C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x13D SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x15B SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x413 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x176 PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x183 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x197 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BF SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1DC PUSH2 0x552 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0xB74 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x206 PUSH2 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0xBA5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x5EA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x26A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x265 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x5F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x277 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28B JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A1 SWAP2 SWAP1 PUSH2 0xBBE JUMP JUMPDEST PUSH2 0x611 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C7 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH2 0x62A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x9BF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0xA70 JUMP JUMPDEST PUSH2 0x667 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x348 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x343 SWAP2 SWAP1 PUSH2 0xC3D JUMP JUMPDEST PUSH2 0x6F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x355 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x370 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x36B SWAP2 SWAP1 PUSH2 0xCDA JUMP JUMPDEST PUSH2 0x891 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x37D SWAP2 SWAP1 PUSH2 0xAF0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243323000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x64 DUP2 PUSH2 0x420 SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST CALLVALUE LT ISZERO PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0xDBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x46C DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x48D DUP5 DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x4CA JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x4C4 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x4F0 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x547 DUP5 DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x564 PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x581 JUMPI PUSH2 0x577 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0x5F4 DUP3 DUP3 PUSH2 0x8AF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x673 CALLER DUP5 DUP5 PUSH2 0x941 JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0x69A JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x6EB CALLER DUP5 DUP5 PUSH2 0x946 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x6FE PUSH2 0x94B JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x71B JUMPI PUSH2 0x711 PUSH2 0x386 JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0x730 JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0x838 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8BA PUSH0 DUP4 DUP4 PUSH2 0x941 JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x8DD JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x93D PUSH0 DUP4 DUP4 PUSH2 0x946 JUMP JUMPDEST POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x991 DUP3 PUSH2 0x94F JUMP JUMPDEST PUSH2 0x99B DUP2 DUP6 PUSH2 0x959 JUMP JUMPDEST SWAP4 POP PUSH2 0x9AB DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x969 JUMP JUMPDEST PUSH2 0x9B4 DUP2 PUSH2 0x977 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x9D7 DUP2 DUP5 PUSH2 0x987 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xA0C DUP3 PUSH2 0x9E3 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA1C DUP2 PUSH2 0xA02 JUMP JUMPDEST DUP2 EQ PUSH2 0xA26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA37 DUP2 PUSH2 0xA13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA4F DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP2 EQ PUSH2 0xA59 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA6A DUP2 PUSH2 0xA46 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xA86 JUMPI PUSH2 0xA85 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xA93 DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xAA4 DUP6 DUP3 DUP7 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAC2 DUP2 PUSH2 0xAAE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xADB PUSH0 DUP4 ADD DUP5 PUSH2 0xAB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xAEA DUP2 PUSH2 0xA3D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB03 PUSH0 DUP4 ADD DUP5 PUSH2 0xAE1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xB20 JUMPI PUSH2 0xB1F PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB2D DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xB3E DUP7 DUP3 DUP8 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xB4F DUP7 DUP3 DUP8 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB6E DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB87 PUSH0 DUP4 ADD DUP5 PUSH2 0xB65 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB9F DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB8 PUSH0 DUP4 ADD DUP5 PUSH2 0xB96 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBD3 JUMPI PUSH2 0xBD2 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xBE0 DUP5 DUP3 DUP6 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBF2 DUP2 PUSH2 0xB59 JUMP JUMPDEST DUP2 EQ PUSH2 0xBFC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC0D DUP2 PUSH2 0xBE9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC1C DUP2 PUSH2 0xB8D JUMP JUMPDEST DUP2 EQ PUSH2 0xC26 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC37 DUP2 PUSH2 0xC13 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xC58 JUMPI PUSH2 0xC57 PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC65 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0xC76 DUP11 DUP3 DUP12 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0xC87 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0xC98 DUP11 DUP3 DUP12 ADD PUSH2 0xA5C JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0xCA9 DUP11 DUP3 DUP12 ADD PUSH2 0xBFF JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0xCBA DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0xCCB DUP11 DUP3 DUP12 ADD PUSH2 0xC29 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCF0 JUMPI PUSH2 0xCEF PUSH2 0x9DF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xCFD DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD0E DUP6 DUP3 DUP7 ADD PUSH2 0xA29 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xD4F DUP3 PUSH2 0xA3D JUMP JUMPDEST SWAP2 POP PUSH2 0xD5A DUP4 PUSH2 0xA3D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD6A JUMPI PUSH2 0xD69 PUSH2 0xD18 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6F636B45524332303A2067696D6D65206D6F7265206D6F6E65792100000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xDA9 PUSH1 0x1C DUP4 PUSH2 0x959 JUMP JUMPDEST SWAP2 POP PUSH2 0xDB4 DUP3 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xDD6 DUP2 PUSH2 0xD9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFC EXTCODESIZE NOT XOR SWAP15 0xEF MOD DUP9 0xE PUSH6 0x4894F96EE55 PUSH18 0xB3D6200A464263FA29D8F39727377E64736F PUSH13 0x634300081A0033000000000000 ","sourceMap":"1467:501:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1501:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7435:573:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1792:174:59;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6287:195:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9969:2191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:693;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1703:83:59;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6548:286:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12800:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1604:93:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8195:1406:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13324:3215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6929:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1501:97:59;1547:13;1572:19;;;;;;;;;;;;;;;;;;;1501:97;:::o;7435:573:18:-;7509:4;7668:7;7662:4;7655:21;7702:20;7696:4;7689:34;7749:8;7743:4;7736:22;7801:6;7794:4;7788;7778:21;7771:37;7876:6;7870:4;7863:20;7964:4;7958:11;7954:2;7950:20;7940:8;7913:25;7907:4;7901;7896:75;7997:4;7990:11;;7435:573;;;;:::o;1792:174:59:-;1896:3;1887:6;:12;;;;:::i;:::-;1874:9;:25;;1866:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1942:17;1948:2;1952:6;1942:5;:17::i;:::-;1792:174;;:::o;6287:195:18:-;6339:14;6447:18;6441:25;6431:35;;6287:195;:::o;9969:2191::-;10057:4;10073:38;10094:4;10100:2;10104:6;10073:20;:38::i;:::-;10208:4;10204:2;10200:13;10301:8;10295:4;10288:22;10346:20;10339:5;10336:31;10330:4;10323:45;10418:4;10412;10402:21;10460:13;10454:20;10572:1;10560:10;10556:18;10553:418;;;10688:10;10680:6;10677:22;10674:159;;;10735:10;10729:4;10722:24;10810:4;10804;10797:18;10674:159;10949:6;10937:10;10933:23;10918:13;10911:46;10553:418;11067:18;11060:5;11057:29;11051:4;11044:43;11139:4;11133;11123:21;11182:15;11176:22;11272:11;11264:6;11261:23;11258:146;;;11316:10;11310:4;11303:24;11385:4;11379;11372:18;11258:146;11513:6;11500:11;11496:24;11479:15;11472:49;11596:2;11590:4;11583:16;11649:4;11643;11633:21;11899:6;11883:13;11877:20;11873:33;11858:13;11851:56;11975:6;11969:4;11962:20;12069:4;12063:11;12059:2;12055:20;12047:5;12043:2;12039:14;12012:25;12006:4;12000;11995:81;10173:1913;;;;;;12095:37;12115:4;12121:2;12125:6;12095:19;:37::i;:::-;12149:4;12142:11;;9969:2191;;;;;:::o;5860:82::-;5909:5;5933:2;5926:9;;5860:82;:::o;16620:693::-;16677:14;16703:16;16722:19;:17;:19::i;:::-;16703:38;;16869:1;16861:10;;16849:8;:22;16845:63;;16900:6;:4;:6::i;:::-;16884:24;;;;;;16873:35;;16845:63;16999:4;16993:11;17060:16;17057:1;17050:27;17111:8;17104:4;17101:1;17097:12;17090:30;17154:13;17147:4;17144:1;17140:12;17133:35;17202:9;17195:4;17192:1;17188:12;17181:31;17246:9;17239:4;17236:1;17232:12;17225:31;17292:4;17289:1;17279:18;17269:28;;16970:337;;16620:693;:::o;1703:83:59:-;1762:17;1768:2;1772:6;1762:5;:17::i;:::-;1703:83;;:::o;6548:286:18:-;6611:14;6716:18;6710:4;6703:32;6761:5;6755:4;6748:19;6812:4;6806;6796:21;6790:28;6780:38;;6548:286;;;:::o;12800:340::-;12860:14;13023:17;13017:4;13010:31;13067:5;13061:4;13054:19;13118:4;13112;13102:21;13096:28;13086:38;;12800:340;;;:::o;1604:93:59:-;1652:13;1677;;;;;;;;;;;;;;;;;;;1604:93;:::o;8195:1406:18:-;8265:4;8281:44;8302:10;8314:2;8318:6;8281:20;:44::i;:::-;8474:18;8468:4;8461:32;8519:8;8513:4;8506:22;8580:4;8574;8564:21;8623:15;8617:22;8713:11;8705:6;8702:23;8699:146;;;8757:10;8751:4;8744:24;8826:4;8820;8813:18;8699:146;8954:6;8941:11;8937:24;8920:15;8913:49;9037:2;9031:4;9024:16;9090:4;9084;9074:21;9340:6;9324:13;9318:20;9314:33;9299:13;9292:56;9416:6;9410:4;9403:20;9504:4;9498:11;9494:2;9490:20;9480:8;9453:25;9447:4;9441;9436:75;8387:1134;;;9530:43;9550:10;9562:2;9566:6;9530:19;:43::i;:::-;9590:4;9583:11;;8195:1406;;;;:::o;13324:3215::-;13523:16;13542:19;:17;:19::i;:::-;13523:38;;13689:1;13681:10;;13669:8;:22;13665:63;;13720:6;:4;:6::i;:::-;13704:24;;;;;;13693:35;;13665:63;13896:8;13883:11;13880:25;13877:142;;;13937:10;13931:4;13924:24;14000:4;13994;13987:18;13877:142;14047:4;14041:11;14163:5;14159:2;14155:14;14151:2;14147:23;14138:32;;14210:7;14206:2;14202:16;14198:2;14194:25;14183:36;;14303:39;14297:4;14290:53;14369:5;14363:4;14356:19;14421:4;14415;14405:21;14463:9;14457:16;14541;14538:1;14531:27;14592:8;14585:4;14582:1;14578:12;14571:30;14635:13;14628:4;14625:1;14621:12;14614:35;14683:9;14676:4;14673:1;14669:12;14662:31;14727:9;14720:4;14717:1;14713:12;14706:31;14776:4;14773:1;14763:18;14757:4;14750:32;14845:16;14842:1;14835:27;14896:5;14889:4;14886:1;14882:12;14875:27;14936:7;14929:4;14926:1;14922:12;14915:29;14978:5;14971:4;14968:1;14964:12;14957:27;15018:10;15011:4;15008:1;15004:12;14997:32;15063:8;15056:4;15053:1;15049:12;15042:30;15111:4;15108:1;15098:18;15092:4;15085:32;15206:4;15200;15190:21;15184:4;15177:35;15248:1;15242:4;15238:12;15232:4;15225:26;15277:1;15271:4;15264:15;15305:1;15299:4;15292:15;15365:4;15359;15353;15350:1;15347;15340:5;15329:41;15786:5;15767:16;15761:23;15758:34;15748:159;;15825:10;15819:4;15812:24;15888:4;15882;15875:18;15748:159;16008:1;15996:10;15992:18;15981:9;15974:37;16222:7;16199:20;16194:3;16190:30;16187:43;16181:4;16174:57;16274:5;16267:4;16261;16251:21;16244:36;16394:7;16387:5;16360:25;16354:4;16347;16344:1;16340:12;16335:67;16428:1;16422:4;16415:15;16492:1;16486:4;16479:15;13790:2743;;;;;13324:3215;;;;;;;:::o;6929:375::-;7041:14;7150:7;7144:4;7137:21;7184:20;7178:4;7171:34;7231:5;7225:4;7218:19;7282:4;7276;7266:21;7260:28;7250:38;;6929:375;;;;:::o;17717:1172::-;17787:44;17816:1;17820:2;17824:6;17787:20;:44::i;:::-;17938:18;17932:25;18017:6;17998:17;17994:30;18114:17;18096:16;18093:39;18090:162;;;18164:10;18158:4;18151:24;18233:4;18227;18220:18;18090:162;18339:16;18319:18;18312:44;18442:18;18436:4;18429:32;18487:2;18481:4;18474:16;18540:4;18534;18524:21;18656:6;18640:13;18634:20;18630:33;18615:13;18608:56;18732:6;18726:4;18719:20;18813:4;18807:11;18803:2;18799:20;18796:1;18769:25;18763:4;18757;18752:68;17893:937;;;18839:43;18867:1;18871:2;18875:6;18839:19;:43::i;:::-;17717:1172;;:::o;24588:91::-;;;;:::o;24791:90::-;;;;:::o;12591:78::-;12651:14;12591:78;:::o;7:99:64:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:77::-;4783:7;4812:5;4801:16;;4746:77;;;:::o;4829:118::-;4916:24;4934:5;4916:24;:::i;:::-;4911:3;4904:37;4829:118;;:::o;4953:222::-;5046:4;5084:2;5073:9;5069:18;5061:26;;5097:71;5165:1;5154:9;5150:17;5141:6;5097:71;:::i;:::-;4953:222;;;;:::o;5181:329::-;5240:6;5289:2;5277:9;5268:7;5264:23;5260:32;5257:119;;;5295:79;;:::i;:::-;5257:119;5415:1;5440:53;5485:7;5476:6;5465:9;5461:22;5440:53;:::i;:::-;5430:63;;5386:117;5181:329;;;;:::o;5516:118::-;5587:22;5603:5;5587:22;:::i;:::-;5580:5;5577:33;5567:61;;5624:1;5621;5614:12;5567:61;5516:118;:::o;5640:135::-;5684:5;5722:6;5709:20;5700:29;;5738:31;5763:5;5738:31;:::i;:::-;5640:135;;;;:::o;5781:122::-;5854:24;5872:5;5854:24;:::i;:::-;5847:5;5844:35;5834:63;;5893:1;5890;5883:12;5834:63;5781:122;:::o;5909:139::-;5955:5;5993:6;5980:20;5971:29;;6009:33;6036:5;6009:33;:::i;:::-;5909:139;;;;:::o;6054:1199::-;6165:6;6173;6181;6189;6197;6205;6213;6262:3;6250:9;6241:7;6237:23;6233:33;6230:120;;;6269:79;;:::i;:::-;6230:120;6389:1;6414:53;6459:7;6450:6;6439:9;6435:22;6414:53;:::i;:::-;6404:63;;6360:117;6516:2;6542:53;6587:7;6578:6;6567:9;6563:22;6542:53;:::i;:::-;6532:63;;6487:118;6644:2;6670:53;6715:7;6706:6;6695:9;6691:22;6670:53;:::i;:::-;6660:63;;6615:118;6772:2;6798:53;6843:7;6834:6;6823:9;6819:22;6798:53;:::i;:::-;6788:63;;6743:118;6900:3;6927:51;6970:7;6961:6;6950:9;6946:22;6927:51;:::i;:::-;6917:61;;6871:117;7027:3;7054:53;7099:7;7090:6;7079:9;7075:22;7054:53;:::i;:::-;7044:63;;6998:119;7156:3;7183:53;7228:7;7219:6;7208:9;7204:22;7183:53;:::i;:::-;7173:63;;7127:119;6054:1199;;;;;;;;;;:::o;7259:474::-;7327:6;7335;7384:2;7372:9;7363:7;7359:23;7355:32;7352:119;;;7390:79;;:::i;:::-;7352:119;7510:1;7535:53;7580:7;7571:6;7560:9;7556:22;7535:53;:::i;:::-;7525:63;;7481:117;7637:2;7663:53;7708:7;7699:6;7688:9;7684:22;7663:53;:::i;:::-;7653:63;;7608:118;7259:474;;;;;:::o;7739:180::-;7787:77;7784:1;7777:88;7884:4;7881:1;7874:15;7908:4;7905:1;7898:15;8111:185;8151:1;8168:20;8186:1;8168:20;:::i;:::-;8163:25;;8202:20;8220:1;8202:20;:::i;:::-;8197:25;;8241:1;8231:35;;8246:18;;:::i;:::-;8231:35;8288:1;8285;8281:9;8276:14;;8111:185;;;;:::o;8302:178::-;8442:30;8438:1;8430:6;8426:14;8419:54;8302:178;:::o;8486:366::-;8628:3;8649:67;8713:2;8708:3;8649:67;:::i;:::-;8642:74;;8725:93;8814:3;8725:93;:::i;:::-;8843:2;8838:3;8834:12;8827:19;;8486:366;;;:::o;8858:419::-;9024:4;9062:2;9051:9;9047:18;9039:26;;9111:9;9105:4;9101:20;9097:1;9086:9;9082:17;9075:47;9139:131;9265:4;9139:131;:::i;:::-;9131:139;;8858:419;;;:::o"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","mint(address,uint256)":"40c10f19","mintPayable(address,uint256)":"17d304b0","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.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"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\":\"result\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mintPayable\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"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\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"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\":{\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"title\":\"MockERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC20 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC20\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"},"MockERC721":{"abi":[{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TokenAlreadyExists","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","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":"isApproved","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":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"result","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":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","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":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405267016345785d8a0000600155348015601a575f80fd5b50611107806100285f395ff3fe6080604052600436106100f2575f3560e01c80636817c76c11610089578063a22cb46511610058578063a22cb465146102fe578063b88d4fde14610326578063c87b56dd14610342578063e985e9c51461037e576100f2565b80636817c76c146102525780636a6278421461027c57806370a082311461029857806395d89b41146102d4576100f2565b806318160ddd116100c557806318160ddd146101b457806323b872dd146101de57806342842e0e146101fa5780636352211e14610216576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610b16565b6103ba565b6040516101299190610b5b565b60405180910390f35b34801561013d575f80fd5b506101466103de565b6040516101539190610be4565b60405180910390f35b348015610167575f80fd5b50610182600480360381019061017d9190610c37565b61041b565b60405161018f9190610ca1565b60405180910390f35b6101b260048036038101906101ad9190610ce4565b61046e565b005b3480156101bf575f80fd5b506101c861047d565b6040516101d59190610d31565b60405180910390f35b6101f860048036038101906101f39190610d4a565b610482565b005b610214600480360381019061020f9190610d4a565b6105ac565b005b348015610221575f80fd5b5061023c60048036038101906102379190610c37565b6105e5565b6040516102499190610ca1565b60405180910390f35b34801561025d575f80fd5b50610266610608565b6040516102739190610d31565b60405180910390f35b61029660048036038101906102919190610d9a565b61060e565b005b3480156102a3575f80fd5b506102be60048036038101906102b99190610d9a565b610672565b6040516102cb9190610d31565b60405180910390f35b3480156102df575f80fd5b506102e86106bf565b6040516102f59190610be4565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f9190610def565b6106fc565b005b610340600480360381019061033b9190610e8e565b61074f565b005b34801561034d575f80fd5b5061036860048036038101906103639190610c37565b6107bf565b6040516103759190610be4565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f9190610f12565b6107f0565b6040516103b19190610b5b565b60405180910390f35b5f8160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b60606040518060400160405280600b81526020017f4d6f636b20455243373231000000000000000000000000000000000000000000815250905090565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b6104615763ceea21b65f526004601cfd5b8060010154915050919050565b610479338383610812565b5050565b5f5481565b61048d8383836108c2565b5f1960601c83811693508281169250815f52337f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f2082018201805480831686811481026104f05767ceea21b6a1148100811560021b526004601cfd5b865f5282600101548033148833141761051b576030600c205461051a57634b6e7f185f526004601cfd5b5b8015610528575f84600101555b5085871882188355601c600c206001815403815550855f52601c600c20600181540163ffffffff8116880261056c5767ea553b3401336cea881560021b526004601cfd5b80825550508486887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a4505050506105a78383836108c7565b505050565b6105b7838383610482565b6105c0826108cc565b156105e0576105df83838360405180602001604052805f8152506108d6565b5b505050565b5f6105ef82610960565b9050806106035763ceea21b65f526004601cfd5b919050565b60015481565b600154341015610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a90610f9a565b60405180910390fd5b61066f815f80815461066490610fe5565b91905081905561099e565b50565b5f8161068557638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b61075a858585610482565b610763846108cc565b156107b8576107b785858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506108d6565b5b5050505050565b60606107ca82610a6a565b6040516020016107da91906110b0565b6040516020818303038152906040529050919050565b5f81601c52670a5a2e7a00000000600852825f526030600c2054905092915050565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216806108685763ceea21b65f526004601cfd5b80861486151761088d57805f526030600c205461088c57634b6e7f185f526004601cfd5b5b8482600101558385827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a4505050505050565b505050565b505050565b5f813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a0840152801561091d578060c08401826020870160045afa505b60208360a48301601c86015f8a5af161093f573d1561093e573d5f843e3d83fd5b5b8160e01b8351146109575763d1a57ed65f526004601cfd5b50505050505050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f20820182015460601b60601c9050919050565b6109a95f83836108c2565b8160601b60601c9150805f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208101810180548060601b156109f95763c991cbb15f526004601cfd5b8381178255835f52601c600c20600181540163ffffffff81168602610a2d5767ea553b3401336cea861560021b526004601cfd5b808255505082845f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45050610a665f83836108c7565b5050565b60606080604051019050602081016040525f8152805f19835b600115610aa4578184019350600a81066030018453600a8104905080610a83575b50828203602084039350808452505050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610af581610ac1565b8114610aff575f80fd5b50565b5f81359050610b1081610aec565b92915050565b5f60208284031215610b2b57610b2a610ab9565b5b5f610b3884828501610b02565b91505092915050565b5f8115159050919050565b610b5581610b41565b82525050565b5f602082019050610b6e5f830184610b4c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610bb682610b74565b610bc08185610b7e565b9350610bd0818560208601610b8e565b610bd981610b9c565b840191505092915050565b5f6020820190508181035f830152610bfc8184610bac565b905092915050565b5f819050919050565b610c1681610c04565b8114610c20575f80fd5b50565b5f81359050610c3181610c0d565b92915050565b5f60208284031215610c4c57610c4b610ab9565b5b5f610c5984828501610c23565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8b82610c62565b9050919050565b610c9b81610c81565b82525050565b5f602082019050610cb45f830184610c92565b92915050565b610cc381610c81565b8114610ccd575f80fd5b50565b5f81359050610cde81610cba565b92915050565b5f8060408385031215610cfa57610cf9610ab9565b5b5f610d0785828601610cd0565b9250506020610d1885828601610c23565b9150509250929050565b610d2b81610c04565b82525050565b5f602082019050610d445f830184610d22565b92915050565b5f805f60608486031215610d6157610d60610ab9565b5b5f610d6e86828701610cd0565b9350506020610d7f86828701610cd0565b9250506040610d9086828701610c23565b9150509250925092565b5f60208284031215610daf57610dae610ab9565b5b5f610dbc84828501610cd0565b91505092915050565b610dce81610b41565b8114610dd8575f80fd5b50565b5f81359050610de981610dc5565b92915050565b5f8060408385031215610e0557610e04610ab9565b5b5f610e1285828601610cd0565b9250506020610e2385828601610ddb565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4e57610e4d610e2d565b5b8235905067ffffffffffffffff811115610e6b57610e6a610e31565b5b602083019150836001820283011115610e8757610e86610e35565b5b9250929050565b5f805f805f60808688031215610ea757610ea6610ab9565b5b5f610eb488828901610cd0565b9550506020610ec588828901610cd0565b9450506040610ed688828901610c23565b935050606086013567ffffffffffffffff811115610ef757610ef6610abd565b5b610f0388828901610e39565b92509250509295509295909350565b5f8060408385031215610f2857610f27610ab9565b5b5f610f3585828601610cd0565b9250506020610f4685828601610cd0565b9150509250929050565b7f4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e6579210000005f82015250565b5f610f84601d83610b7e565b9150610f8f82610f50565b602082019050919050565b5f6020820190508181035f830152610fb181610f78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fef82610c04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361102157611020610fb8565b5b600182019050919050565b5f81905092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f0000000000005f82015250565b5f61106a601a8361102c565b915061107582611036565b601a82019050919050565b5f61108a82610b74565b611094818561102c565b93506110a4818560208601610b8e565b80840191505092915050565b5f6110ba8261105e565b91506110c68284611080565b91508190509291505056fea26469706673582212200d54f13f4e25bc3fd42f7d0be9cd8d406ccef5fb808a2e37a2ce453b6c2ebe3264736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0x16345785D8A0000 PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH1 0x1A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1107 DUP1 PUSH2 0x28 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF2 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6817C76C GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37E JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x6817C76C EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2D4 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x216 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x198 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x117 SWAP2 SWAP1 PUSH2 0xB16 JUMP JUMPDEST PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x146 PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C8 PUSH2 0x47D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x237 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x296 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x291 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x60E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E8 PUSH2 0x6BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x340 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33B SWAP2 SWAP1 PUSH2 0xE8E JUMP JUMPDEST PUSH2 0x74F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHR PUSH4 0x5B5E139F DUP2 EQ PUSH4 0x80AC58CD DUP3 EQ PUSH4 0x1FFC9A7 DUP4 EQ OR OR SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243373231000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD PUSH1 0x60 SHL PUSH2 0x461 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x479 CALLER DUP4 DUP4 PUSH2 0x812 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x48D DUP4 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP4 DUP2 AND SWAP4 POP DUP3 DUP2 AND SWAP3 POP DUP2 PUSH0 MSTORE CALLER PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP1 DUP4 AND DUP7 DUP2 EQ DUP2 MUL PUSH2 0x4F0 JUMPI PUSH8 0xCEEA21B6A1148100 DUP2 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 PUSH0 MSTORE DUP3 PUSH1 0x1 ADD SLOAD DUP1 CALLER EQ DUP9 CALLER EQ OR PUSH2 0x51B JUMPI PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x51A JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x528 JUMPI PUSH0 DUP5 PUSH1 0x1 ADD SSTORE JUMPDEST POP DUP6 DUP8 XOR DUP3 XOR DUP4 SSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD SUB DUP2 SSTORE POP DUP6 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP9 MUL PUSH2 0x56C JUMPI PUSH8 0xEA553B3401336CEA DUP9 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP5 DUP7 DUP9 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP POP POP PUSH2 0x5A7 DUP4 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP4 DUP4 DUP4 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x5C0 DUP3 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5EF DUP3 PUSH2 0x960 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x603 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x66F DUP2 PUSH0 DUP1 DUP2 SLOAD PUSH2 0x664 SWAP1 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE PUSH2 0x99E JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x685 JUMPI PUSH4 0x8F4EB604 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE DUP2 PUSH0 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1C PUSH1 0xC KECCAK256 SLOAD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO SWAP1 POP DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x30 PUSH1 0xC KECCAK256 SSTORE DUP1 PUSH0 MSTORE DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR CALLER PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 PUSH0 LOG3 POP POP JUMP JUMPDEST PUSH2 0x75A DUP6 DUP6 DUP6 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x763 DUP5 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x7B8 JUMPI PUSH2 0x7B7 DUP6 DUP6 DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7CA DUP3 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7DA SWAP2 SWAP1 PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE DUP3 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP3 DUP2 AND SWAP3 POP DUP4 DUP2 AND SWAP4 POP DUP2 PUSH0 MSTORE DUP4 PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP3 AND DUP1 PUSH2 0x868 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP7 EQ DUP7 ISZERO OR PUSH2 0x88D JUMPI DUP1 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x88C JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP5 DUP3 PUSH1 0x1 ADD SSTORE DUP4 DUP6 DUP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH0 CODESIZE LOG4 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 EXTCODESIZE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x150B7A02 DUP1 DUP3 MSTORE CALLER PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x60 SHL PUSH1 0x60 SHR PUSH1 0x40 DUP4 ADD MSTORE DUP4 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0xA0 DUP5 ADD MSTORE DUP1 ISZERO PUSH2 0x91D JUMPI DUP1 PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x20 DUP8 ADD PUSH1 0x4 GAS STATICCALL POP JUMPDEST PUSH1 0x20 DUP4 PUSH1 0xA4 DUP4 ADD PUSH1 0x1C DUP7 ADD PUSH0 DUP11 GAS CALL PUSH2 0x93F JUMPI RETURNDATASIZE ISZERO PUSH2 0x93E JUMPI RETURNDATASIZE PUSH0 DUP5 RETURNDATACOPY RETURNDATASIZE DUP4 REVERT JUMPDEST JUMPDEST DUP2 PUSH1 0xE0 SHL DUP4 MLOAD EQ PUSH2 0x957 JUMPI PUSH4 0xD1A57ED6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD SLOAD PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9A9 PUSH0 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP1 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP2 ADD DUP2 ADD DUP1 SLOAD DUP1 PUSH1 0x60 SHL ISZERO PUSH2 0x9F9 JUMPI PUSH4 0xC991CBB1 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 OR DUP3 SSTORE DUP4 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP7 MUL PUSH2 0xA2D JUMPI PUSH8 0xEA553B3401336CEA DUP7 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP3 DUP5 PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP PUSH2 0xA66 PUSH0 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x80 PUSH1 0x40 MLOAD ADD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE PUSH0 DUP2 MSTORE DUP1 PUSH0 NOT DUP4 JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP5 ADD SWAP4 POP PUSH1 0xA DUP2 MOD PUSH1 0x30 ADD DUP5 MSTORE8 PUSH1 0xA DUP2 DIV SWAP1 POP DUP1 PUSH2 0xA83 JUMPI JUMPDEST POP DUP3 DUP3 SUB PUSH1 0x20 DUP5 SUB SWAP4 POP DUP1 DUP5 MSTORE POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF5 DUP2 PUSH2 0xAC1 JUMP JUMPDEST DUP2 EQ PUSH2 0xAFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB10 DUP2 PUSH2 0xAEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2B JUMPI PUSH2 0xB2A PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB38 DUP5 DUP3 DUP6 ADD PUSH2 0xB02 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6E PUSH0 DUP4 ADD DUP5 PUSH2 0xB4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBB6 DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0xBC0 DUP2 DUP6 PUSH2 0xB7E JUMP JUMPDEST SWAP4 POP PUSH2 0xBD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH2 0xBD9 DUP2 PUSH2 0xB9C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xBFC DUP2 DUP5 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC16 DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP2 EQ PUSH2 0xC20 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC31 DUP2 PUSH2 0xC0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC59 DUP5 DUP3 DUP6 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC8B DUP3 PUSH2 0xC62 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC9B DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH0 DUP4 ADD DUP5 PUSH2 0xC92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC3 DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP2 EQ PUSH2 0xCCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCDE DUP2 PUSH2 0xCBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF9 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD07 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD18 DUP6 DUP3 DUP7 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD44 PUSH0 DUP4 ADD DUP5 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD7F DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD90 DUP7 DUP3 DUP8 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAE PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDBC DUP5 DUP3 DUP6 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP2 EQ PUSH2 0xDD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDE9 DUP2 PUSH2 0xDC5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH2 0xE04 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE12 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE23 DUP6 DUP3 DUP7 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE4E JUMPI PUSH2 0xE4D PUSH2 0xE2D JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xE31 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE87 JUMPI PUSH2 0xE86 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEB4 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0xEC5 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xED6 DUP9 DUP3 DUP10 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEF7 JUMPI PUSH2 0xEF6 PUSH2 0xABD JUMP JUMPDEST JUMPDEST PUSH2 0xF03 DUP9 DUP3 DUP10 ADD PUSH2 0xE39 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF28 JUMPI PUSH2 0xF27 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF35 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF46 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6F636B4552433732313A2067696D6D65206D6F7265206D6F6E657921000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF84 PUSH1 0x1D DUP4 PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP PUSH2 0xF8F DUP3 PUSH2 0xF50 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFB1 DUP2 PUSH2 0xF78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xFEF DUP3 PUSH2 0xC04 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1021 JUMPI PUSH2 0x1020 PUSH2 0xFB8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x106A PUSH1 0x1A DUP4 PUSH2 0x102C JUMP JUMPDEST SWAP2 POP PUSH2 0x1075 DUP3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x1A DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108A DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0x1094 DUP2 DUP6 PUSH2 0x102C JUMP JUMPDEST SWAP4 POP PUSH2 0x10A4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10BA DUP3 PUSH2 0x105E JUMP JUMPDEST SWAP2 POP PUSH2 0x10C6 DUP3 DUP5 PUSH2 0x1080 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD SLOAD CALL EXTCODEHASH 0x4E 0x25 0xBC EXTCODEHASH 0xD4 0x2F PUSH30 0xBE9CD8D406CCEF5FB808A2E37A2CE453B6C2EBE3264736F6C634300081A STOP CALLER ","sourceMap":"679:706:59:-:0;;;774:9;747:36;;679:706;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_afterTokenTransfer_9072":{"entryPoint":2247,"id":9072,"parameterSlots":3,"returnSlots":0},"@_approve_8885":{"entryPoint":2066,"id":8885,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_9061":{"entryPoint":2242,"id":9061,"parameterSlots":3,"returnSlots":0},"@_checkOnERC721Received_9096":{"entryPoint":2262,"id":9096,"parameterSlots":4,"returnSlots":0},"@_hasCode_9082":{"entryPoint":2252,"id":9082,"parameterSlots":1,"returnSlots":1},"@_mint_8709":{"entryPoint":2462,"id":8709,"parameterSlots":2,"returnSlots":0},"@_ownerOf_8641":{"entryPoint":2400,"id":8641,"parameterSlots":1,"returnSlots":1},"@approve_8507":{"entryPoint":1134,"id":8507,"parameterSlots":2,"returnSlots":0},"@balanceOf_8481":{"entryPoint":1650,"id":8481,"parameterSlots":1,"returnSlots":1},"@getApproved_8491":{"entryPoint":1051,"id":8491,"parameterSlots":1,"returnSlots":1},"@isApprovedForAll_8519":{"entryPoint":2032,"id":8519,"parameterSlots":2,"returnSlots":1},"@mintPrice_18527":{"entryPoint":1544,"id":18527,"parameterSlots":0,"returnSlots":0},"@mint_18565":{"entryPoint":1550,"id":18565,"parameterSlots":1,"returnSlots":0},"@name_18536":{"entryPoint":990,"id":18536,"parameterSlots":0,"returnSlots":1},"@ownerOf_8471":{"entryPoint":1509,"id":8471,"parameterSlots":1,"returnSlots":1},"@safeTransferFrom_8581":{"entryPoint":1452,"id":8581,"parameterSlots":3,"returnSlots":0},"@safeTransferFrom_8611":{"entryPoint":1871,"id":8611,"parameterSlots":5,"returnSlots":0},"@setApprovalForAll_8529":{"entryPoint":1788,"id":8529,"parameterSlots":2,"returnSlots":0},"@supportsInterface_8621":{"entryPoint":954,"id":8621,"parameterSlots":1,"returnSlots":1},"@symbol_18545":{"entryPoint":1727,"id":18545,"parameterSlots":0,"returnSlots":1},"@toString_10320":{"entryPoint":2666,"id":10320,"parameterSlots":1,"returnSlots":1},"@tokenURI_18586":{"entryPoint":1983,"id":18586,"parameterSlots":1,"returnSlots":1},"@totalSupply_18524":{"entryPoint":1149,"id":18524,"parameterSlots":0,"returnSlots":0},"@transferFrom_8553":{"entryPoint":1154,"id":8553,"parameterSlots":3,"returnSlots":0},"abi_decode_t_address":{"entryPoint":3280,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":3547,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":2818,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3641,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_uint256":{"entryPoint":3107,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":3482,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":3858,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":3402,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr":{"entryPoint":3726,"id":null,"parameterSlots":2,"returnSlots":5},"abi_decode_tuple_t_addresst_bool":{"entryPoint":3567,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":3300,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":2838,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":3127,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":3218,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":2892,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":2988,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4224,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack":{"entryPoint":3960,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4190,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":3362,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4272,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":3233,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":2907,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3044,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":3994,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":3377,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_unbounded":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":2932,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":2942,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":4140,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":3201,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":2881,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":2753,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":3170,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":3076,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2958,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":4069,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":4024,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3633,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3629,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3637,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":2749,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":2745,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":2972,"id":null,"parameterSlots":1,"returnSlots":1},"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb":{"entryPoint":3920,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f":{"entryPoint":4150,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":3258,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":3525,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":2796,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":3085,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:12382:64","nodeType":"YulBlock","src":"0:12382:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1577:40:64","nodeType":"YulBlock","src":"1577:40:64","statements":[{"nativeSrc":"1588:22:64","nodeType":"YulAssignment","src":"1588:22:64","value":{"arguments":[{"name":"value","nativeSrc":"1604:5:64","nodeType":"YulIdentifier","src":"1604:5:64"}],"functionName":{"name":"mload","nativeSrc":"1598:5:64","nodeType":"YulIdentifier","src":"1598:5:64"},"nativeSrc":"1598:12:64","nodeType":"YulFunctionCall","src":"1598:12:64"},"variableNames":[{"name":"length","nativeSrc":"1588:6:64","nodeType":"YulIdentifier","src":"1588:6:64"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"1518:99:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1560:5:64","nodeType":"YulTypedName","src":"1560:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"1570:6:64","nodeType":"YulTypedName","src":"1570:6:64","type":""}],"src":"1518:99:64"},{"body":{"nativeSrc":"1719:73:64","nodeType":"YulBlock","src":"1719:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1736:3:64","nodeType":"YulIdentifier","src":"1736:3:64"},{"name":"length","nativeSrc":"1741:6:64","nodeType":"YulIdentifier","src":"1741:6:64"}],"functionName":{"name":"mstore","nativeSrc":"1729:6:64","nodeType":"YulIdentifier","src":"1729:6:64"},"nativeSrc":"1729:19:64","nodeType":"YulFunctionCall","src":"1729:19:64"},"nativeSrc":"1729:19:64","nodeType":"YulExpressionStatement","src":"1729:19:64"},{"nativeSrc":"1757:29:64","nodeType":"YulAssignment","src":"1757:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"1776:3:64","nodeType":"YulIdentifier","src":"1776:3:64"},{"kind":"number","nativeSrc":"1781:4:64","nodeType":"YulLiteral","src":"1781:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"1772:3:64","nodeType":"YulIdentifier","src":"1772:3:64"},"nativeSrc":"1772:14:64","nodeType":"YulFunctionCall","src":"1772:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"1757:11:64","nodeType":"YulIdentifier","src":"1757:11:64"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"1623:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"1691:3:64","nodeType":"YulTypedName","src":"1691:3:64","type":""},{"name":"length","nativeSrc":"1696:6:64","nodeType":"YulTypedName","src":"1696:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"1707:11:64","nodeType":"YulTypedName","src":"1707:11:64","type":""}],"src":"1623:169:64"},{"body":{"nativeSrc":"1860:77:64","nodeType":"YulBlock","src":"1860:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"1877:3:64","nodeType":"YulIdentifier","src":"1877:3:64"},{"name":"src","nativeSrc":"1882:3:64","nodeType":"YulIdentifier","src":"1882:3:64"},{"name":"length","nativeSrc":"1887:6:64","nodeType":"YulIdentifier","src":"1887:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"1871:5:64","nodeType":"YulIdentifier","src":"1871:5:64"},"nativeSrc":"1871:23:64","nodeType":"YulFunctionCall","src":"1871:23:64"},"nativeSrc":"1871:23:64","nodeType":"YulExpressionStatement","src":"1871:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"1914:3:64","nodeType":"YulIdentifier","src":"1914:3:64"},{"name":"length","nativeSrc":"1919:6:64","nodeType":"YulIdentifier","src":"1919:6:64"}],"functionName":{"name":"add","nativeSrc":"1910:3:64","nodeType":"YulIdentifier","src":"1910:3:64"},"nativeSrc":"1910:16:64","nodeType":"YulFunctionCall","src":"1910:16:64"},{"kind":"number","nativeSrc":"1928:1:64","nodeType":"YulLiteral","src":"1928:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"1903:6:64","nodeType":"YulIdentifier","src":"1903:6:64"},"nativeSrc":"1903:27:64","nodeType":"YulFunctionCall","src":"1903:27:64"},"nativeSrc":"1903:27:64","nodeType":"YulExpressionStatement","src":"1903:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"1798:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"1842:3:64","nodeType":"YulTypedName","src":"1842:3:64","type":""},{"name":"dst","nativeSrc":"1847:3:64","nodeType":"YulTypedName","src":"1847:3:64","type":""},{"name":"length","nativeSrc":"1852:6:64","nodeType":"YulTypedName","src":"1852:6:64","type":""}],"src":"1798:139:64"},{"body":{"nativeSrc":"1991:54:64","nodeType":"YulBlock","src":"1991:54:64","statements":[{"nativeSrc":"2001:38:64","nodeType":"YulAssignment","src":"2001:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2019:5:64","nodeType":"YulIdentifier","src":"2019:5:64"},{"kind":"number","nativeSrc":"2026:2:64","nodeType":"YulLiteral","src":"2026:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"2015:3:64","nodeType":"YulIdentifier","src":"2015:3:64"},"nativeSrc":"2015:14:64","nodeType":"YulFunctionCall","src":"2015:14:64"},{"arguments":[{"kind":"number","nativeSrc":"2035:2:64","nodeType":"YulLiteral","src":"2035:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"2031:3:64","nodeType":"YulIdentifier","src":"2031:3:64"},"nativeSrc":"2031:7:64","nodeType":"YulFunctionCall","src":"2031:7:64"}],"functionName":{"name":"and","nativeSrc":"2011:3:64","nodeType":"YulIdentifier","src":"2011:3:64"},"nativeSrc":"2011:28:64","nodeType":"YulFunctionCall","src":"2011:28:64"},"variableNames":[{"name":"result","nativeSrc":"2001:6:64","nodeType":"YulIdentifier","src":"2001:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1943:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1974:5:64","nodeType":"YulTypedName","src":"1974:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1984:6:64","nodeType":"YulTypedName","src":"1984:6:64","type":""}],"src":"1943:102:64"},{"body":{"nativeSrc":"2143:285:64","nodeType":"YulBlock","src":"2143:285:64","statements":[{"nativeSrc":"2153:53:64","nodeType":"YulVariableDeclaration","src":"2153:53:64","value":{"arguments":[{"name":"value","nativeSrc":"2200:5:64","nodeType":"YulIdentifier","src":"2200:5:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"2167:32:64","nodeType":"YulIdentifier","src":"2167:32:64"},"nativeSrc":"2167:39:64","nodeType":"YulFunctionCall","src":"2167:39:64"},"variables":[{"name":"length","nativeSrc":"2157:6:64","nodeType":"YulTypedName","src":"2157:6:64","type":""}]},{"nativeSrc":"2215:78:64","nodeType":"YulAssignment","src":"2215:78:64","value":{"arguments":[{"name":"pos","nativeSrc":"2281:3:64","nodeType":"YulIdentifier","src":"2281:3:64"},{"name":"length","nativeSrc":"2286:6:64","nodeType":"YulIdentifier","src":"2286:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"2222:58:64","nodeType":"YulIdentifier","src":"2222:58:64"},"nativeSrc":"2222:71:64","nodeType":"YulFunctionCall","src":"2222:71:64"},"variableNames":[{"name":"pos","nativeSrc":"2215:3:64","nodeType":"YulIdentifier","src":"2215:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2341:5:64","nodeType":"YulIdentifier","src":"2341:5:64"},{"kind":"number","nativeSrc":"2348:4:64","nodeType":"YulLiteral","src":"2348:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2337:3:64","nodeType":"YulIdentifier","src":"2337:3:64"},"nativeSrc":"2337:16:64","nodeType":"YulFunctionCall","src":"2337:16:64"},{"name":"pos","nativeSrc":"2355:3:64","nodeType":"YulIdentifier","src":"2355:3:64"},{"name":"length","nativeSrc":"2360:6:64","nodeType":"YulIdentifier","src":"2360:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"2302:34:64","nodeType":"YulIdentifier","src":"2302:34:64"},"nativeSrc":"2302:65:64","nodeType":"YulFunctionCall","src":"2302:65:64"},"nativeSrc":"2302:65:64","nodeType":"YulExpressionStatement","src":"2302:65:64"},{"nativeSrc":"2376:46:64","nodeType":"YulAssignment","src":"2376:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"2387:3:64","nodeType":"YulIdentifier","src":"2387:3:64"},{"arguments":[{"name":"length","nativeSrc":"2414:6:64","nodeType":"YulIdentifier","src":"2414:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2392:21:64","nodeType":"YulIdentifier","src":"2392:21:64"},"nativeSrc":"2392:29:64","nodeType":"YulFunctionCall","src":"2392:29:64"}],"functionName":{"name":"add","nativeSrc":"2383:3:64","nodeType":"YulIdentifier","src":"2383:3:64"},"nativeSrc":"2383:39:64","nodeType":"YulFunctionCall","src":"2383:39:64"},"variableNames":[{"name":"end","nativeSrc":"2376:3:64","nodeType":"YulIdentifier","src":"2376:3:64"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"2051:377:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2124:5:64","nodeType":"YulTypedName","src":"2124:5:64","type":""},{"name":"pos","nativeSrc":"2131:3:64","nodeType":"YulTypedName","src":"2131:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"2139:3:64","nodeType":"YulTypedName","src":"2139:3:64","type":""}],"src":"2051:377:64"},{"body":{"nativeSrc":"2552:195:64","nodeType":"YulBlock","src":"2552:195:64","statements":[{"nativeSrc":"2562:26:64","nodeType":"YulAssignment","src":"2562:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"2574:9:64","nodeType":"YulIdentifier","src":"2574:9:64"},{"kind":"number","nativeSrc":"2585:2:64","nodeType":"YulLiteral","src":"2585:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2570:3:64","nodeType":"YulIdentifier","src":"2570:3:64"},"nativeSrc":"2570:18:64","nodeType":"YulFunctionCall","src":"2570:18:64"},"variableNames":[{"name":"tail","nativeSrc":"2562:4:64","nodeType":"YulIdentifier","src":"2562:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"2609:9:64","nodeType":"YulIdentifier","src":"2609:9:64"},{"kind":"number","nativeSrc":"2620:1:64","nodeType":"YulLiteral","src":"2620:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"2605:3:64","nodeType":"YulIdentifier","src":"2605:3:64"},"nativeSrc":"2605:17:64","nodeType":"YulFunctionCall","src":"2605:17:64"},{"arguments":[{"name":"tail","nativeSrc":"2628:4:64","nodeType":"YulIdentifier","src":"2628:4:64"},{"name":"headStart","nativeSrc":"2634:9:64","nodeType":"YulIdentifier","src":"2634:9:64"}],"functionName":{"name":"sub","nativeSrc":"2624:3:64","nodeType":"YulIdentifier","src":"2624:3:64"},"nativeSrc":"2624:20:64","nodeType":"YulFunctionCall","src":"2624:20:64"}],"functionName":{"name":"mstore","nativeSrc":"2598:6:64","nodeType":"YulIdentifier","src":"2598:6:64"},"nativeSrc":"2598:47:64","nodeType":"YulFunctionCall","src":"2598:47:64"},"nativeSrc":"2598:47:64","nodeType":"YulExpressionStatement","src":"2598:47:64"},{"nativeSrc":"2654:86:64","nodeType":"YulAssignment","src":"2654:86:64","value":{"arguments":[{"name":"value0","nativeSrc":"2726:6:64","nodeType":"YulIdentifier","src":"2726:6:64"},{"name":"tail","nativeSrc":"2735:4:64","nodeType":"YulIdentifier","src":"2735:4:64"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"2662:63:64","nodeType":"YulIdentifier","src":"2662:63:64"},"nativeSrc":"2662:78:64","nodeType":"YulFunctionCall","src":"2662:78:64"},"variableNames":[{"name":"tail","nativeSrc":"2654:4:64","nodeType":"YulIdentifier","src":"2654:4:64"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"2434:313:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"2524:9:64","nodeType":"YulTypedName","src":"2524:9:64","type":""},{"name":"value0","nativeSrc":"2536:6:64","nodeType":"YulTypedName","src":"2536:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"2547:4:64","nodeType":"YulTypedName","src":"2547:4:64","type":""}],"src":"2434:313:64"},{"body":{"nativeSrc":"2798:32:64","nodeType":"YulBlock","src":"2798:32:64","statements":[{"nativeSrc":"2808:16:64","nodeType":"YulAssignment","src":"2808:16:64","value":{"name":"value","nativeSrc":"2819:5:64","nodeType":"YulIdentifier","src":"2819:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"2808:7:64","nodeType":"YulIdentifier","src":"2808:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"2753:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2780:5:64","nodeType":"YulTypedName","src":"2780:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"2790:7:64","nodeType":"YulTypedName","src":"2790:7:64","type":""}],"src":"2753:77:64"},{"body":{"nativeSrc":"2879:79:64","nodeType":"YulBlock","src":"2879:79:64","statements":[{"body":{"nativeSrc":"2936:16:64","nodeType":"YulBlock","src":"2936:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2945:1:64","nodeType":"YulLiteral","src":"2945:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2948:1:64","nodeType":"YulLiteral","src":"2948:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2938:6:64","nodeType":"YulIdentifier","src":"2938:6:64"},"nativeSrc":"2938:12:64","nodeType":"YulFunctionCall","src":"2938:12:64"},"nativeSrc":"2938:12:64","nodeType":"YulExpressionStatement","src":"2938:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2902:5:64","nodeType":"YulIdentifier","src":"2902:5:64"},{"arguments":[{"name":"value","nativeSrc":"2927:5:64","nodeType":"YulIdentifier","src":"2927:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"2909:17:64","nodeType":"YulIdentifier","src":"2909:17:64"},"nativeSrc":"2909:24:64","nodeType":"YulFunctionCall","src":"2909:24:64"}],"functionName":{"name":"eq","nativeSrc":"2899:2:64","nodeType":"YulIdentifier","src":"2899:2:64"},"nativeSrc":"2899:35:64","nodeType":"YulFunctionCall","src":"2899:35:64"}],"functionName":{"name":"iszero","nativeSrc":"2892:6:64","nodeType":"YulIdentifier","src":"2892:6:64"},"nativeSrc":"2892:43:64","nodeType":"YulFunctionCall","src":"2892:43:64"},"nativeSrc":"2889:63:64","nodeType":"YulIf","src":"2889:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"2836:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2872:5:64","nodeType":"YulTypedName","src":"2872:5:64","type":""}],"src":"2836:122:64"},{"body":{"nativeSrc":"3016:87:64","nodeType":"YulBlock","src":"3016:87:64","statements":[{"nativeSrc":"3026:29:64","nodeType":"YulAssignment","src":"3026:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"3048:6:64","nodeType":"YulIdentifier","src":"3048:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"3035:12:64","nodeType":"YulIdentifier","src":"3035:12:64"},"nativeSrc":"3035:20:64","nodeType":"YulFunctionCall","src":"3035:20:64"},"variableNames":[{"name":"value","nativeSrc":"3026:5:64","nodeType":"YulIdentifier","src":"3026:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3091:5:64","nodeType":"YulIdentifier","src":"3091:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"3064:26:64","nodeType":"YulIdentifier","src":"3064:26:64"},"nativeSrc":"3064:33:64","nodeType":"YulFunctionCall","src":"3064:33:64"},"nativeSrc":"3064:33:64","nodeType":"YulExpressionStatement","src":"3064:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"2964:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2994:6:64","nodeType":"YulTypedName","src":"2994:6:64","type":""},{"name":"end","nativeSrc":"3002:3:64","nodeType":"YulTypedName","src":"3002:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"3010:5:64","nodeType":"YulTypedName","src":"3010:5:64","type":""}],"src":"2964:139:64"},{"body":{"nativeSrc":"3175:263:64","nodeType":"YulBlock","src":"3175:263:64","statements":[{"body":{"nativeSrc":"3221:83:64","nodeType":"YulBlock","src":"3221:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3223:77:64","nodeType":"YulIdentifier","src":"3223:77:64"},"nativeSrc":"3223:79:64","nodeType":"YulFunctionCall","src":"3223:79:64"},"nativeSrc":"3223:79:64","nodeType":"YulExpressionStatement","src":"3223:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3196:7:64","nodeType":"YulIdentifier","src":"3196:7:64"},{"name":"headStart","nativeSrc":"3205:9:64","nodeType":"YulIdentifier","src":"3205:9:64"}],"functionName":{"name":"sub","nativeSrc":"3192:3:64","nodeType":"YulIdentifier","src":"3192:3:64"},"nativeSrc":"3192:23:64","nodeType":"YulFunctionCall","src":"3192:23:64"},{"kind":"number","nativeSrc":"3217:2:64","nodeType":"YulLiteral","src":"3217:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"3188:3:64","nodeType":"YulIdentifier","src":"3188:3:64"},"nativeSrc":"3188:32:64","nodeType":"YulFunctionCall","src":"3188:32:64"},"nativeSrc":"3185:119:64","nodeType":"YulIf","src":"3185:119:64"},{"nativeSrc":"3314:117:64","nodeType":"YulBlock","src":"3314:117:64","statements":[{"nativeSrc":"3329:15:64","nodeType":"YulVariableDeclaration","src":"3329:15:64","value":{"kind":"number","nativeSrc":"3343:1:64","nodeType":"YulLiteral","src":"3343:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"3333:6:64","nodeType":"YulTypedName","src":"3333:6:64","type":""}]},{"nativeSrc":"3358:63:64","nodeType":"YulAssignment","src":"3358:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3393:9:64","nodeType":"YulIdentifier","src":"3393:9:64"},{"name":"offset","nativeSrc":"3404:6:64","nodeType":"YulIdentifier","src":"3404:6:64"}],"functionName":{"name":"add","nativeSrc":"3389:3:64","nodeType":"YulIdentifier","src":"3389:3:64"},"nativeSrc":"3389:22:64","nodeType":"YulFunctionCall","src":"3389:22:64"},{"name":"dataEnd","nativeSrc":"3413:7:64","nodeType":"YulIdentifier","src":"3413:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"3368:20:64","nodeType":"YulIdentifier","src":"3368:20:64"},"nativeSrc":"3368:53:64","nodeType":"YulFunctionCall","src":"3368:53:64"},"variableNames":[{"name":"value0","nativeSrc":"3358:6:64","nodeType":"YulIdentifier","src":"3358:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"3109:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3145:9:64","nodeType":"YulTypedName","src":"3145:9:64","type":""},{"name":"dataEnd","nativeSrc":"3156:7:64","nodeType":"YulTypedName","src":"3156:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3168:6:64","nodeType":"YulTypedName","src":"3168:6:64","type":""}],"src":"3109:329:64"},{"body":{"nativeSrc":"3489:81:64","nodeType":"YulBlock","src":"3489:81:64","statements":[{"nativeSrc":"3499:65:64","nodeType":"YulAssignment","src":"3499:65:64","value":{"arguments":[{"name":"value","nativeSrc":"3514:5:64","nodeType":"YulIdentifier","src":"3514:5:64"},{"kind":"number","nativeSrc":"3521:42:64","nodeType":"YulLiteral","src":"3521:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3510:3:64","nodeType":"YulIdentifier","src":"3510:3:64"},"nativeSrc":"3510:54:64","nodeType":"YulFunctionCall","src":"3510:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"3499:7:64","nodeType":"YulIdentifier","src":"3499:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3444:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3471:5:64","nodeType":"YulTypedName","src":"3471:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3481:7:64","nodeType":"YulTypedName","src":"3481:7:64","type":""}],"src":"3444:126:64"},{"body":{"nativeSrc":"3621:51:64","nodeType":"YulBlock","src":"3621:51:64","statements":[{"nativeSrc":"3631:35:64","nodeType":"YulAssignment","src":"3631:35:64","value":{"arguments":[{"name":"value","nativeSrc":"3660:5:64","nodeType":"YulIdentifier","src":"3660:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3642:17:64","nodeType":"YulIdentifier","src":"3642:17:64"},"nativeSrc":"3642:24:64","nodeType":"YulFunctionCall","src":"3642:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"3631:7:64","nodeType":"YulIdentifier","src":"3631:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"3576:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3603:5:64","nodeType":"YulTypedName","src":"3603:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3613:7:64","nodeType":"YulTypedName","src":"3613:7:64","type":""}],"src":"3576:96:64"},{"body":{"nativeSrc":"3743:53:64","nodeType":"YulBlock","src":"3743:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"3760:3:64","nodeType":"YulIdentifier","src":"3760:3:64"},{"arguments":[{"name":"value","nativeSrc":"3783:5:64","nodeType":"YulIdentifier","src":"3783:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3765:17:64","nodeType":"YulIdentifier","src":"3765:17:64"},"nativeSrc":"3765:24:64","nodeType":"YulFunctionCall","src":"3765:24:64"}],"functionName":{"name":"mstore","nativeSrc":"3753:6:64","nodeType":"YulIdentifier","src":"3753:6:64"},"nativeSrc":"3753:37:64","nodeType":"YulFunctionCall","src":"3753:37:64"},"nativeSrc":"3753:37:64","nodeType":"YulExpressionStatement","src":"3753:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3678:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3731:5:64","nodeType":"YulTypedName","src":"3731:5:64","type":""},{"name":"pos","nativeSrc":"3738:3:64","nodeType":"YulTypedName","src":"3738:3:64","type":""}],"src":"3678:118:64"},{"body":{"nativeSrc":"3900:124:64","nodeType":"YulBlock","src":"3900:124:64","statements":[{"nativeSrc":"3910:26:64","nodeType":"YulAssignment","src":"3910:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"3922:9:64","nodeType":"YulIdentifier","src":"3922:9:64"},{"kind":"number","nativeSrc":"3933:2:64","nodeType":"YulLiteral","src":"3933:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3918:3:64","nodeType":"YulIdentifier","src":"3918:3:64"},"nativeSrc":"3918:18:64","nodeType":"YulFunctionCall","src":"3918:18:64"},"variableNames":[{"name":"tail","nativeSrc":"3910:4:64","nodeType":"YulIdentifier","src":"3910:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"3990:6:64","nodeType":"YulIdentifier","src":"3990:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"4003:9:64","nodeType":"YulIdentifier","src":"4003:9:64"},{"kind":"number","nativeSrc":"4014:1:64","nodeType":"YulLiteral","src":"4014:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3999:3:64","nodeType":"YulIdentifier","src":"3999:3:64"},"nativeSrc":"3999:17:64","nodeType":"YulFunctionCall","src":"3999:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"3946:43:64","nodeType":"YulIdentifier","src":"3946:43:64"},"nativeSrc":"3946:71:64","nodeType":"YulFunctionCall","src":"3946:71:64"},"nativeSrc":"3946:71:64","nodeType":"YulExpressionStatement","src":"3946:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"3802:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3872:9:64","nodeType":"YulTypedName","src":"3872:9:64","type":""},{"name":"value0","nativeSrc":"3884:6:64","nodeType":"YulTypedName","src":"3884:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"3895:4:64","nodeType":"YulTypedName","src":"3895:4:64","type":""}],"src":"3802:222:64"},{"body":{"nativeSrc":"4073:79:64","nodeType":"YulBlock","src":"4073:79:64","statements":[{"body":{"nativeSrc":"4130:16:64","nodeType":"YulBlock","src":"4130:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4139:1:64","nodeType":"YulLiteral","src":"4139:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"4142:1:64","nodeType":"YulLiteral","src":"4142:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4132:6:64","nodeType":"YulIdentifier","src":"4132:6:64"},"nativeSrc":"4132:12:64","nodeType":"YulFunctionCall","src":"4132:12:64"},"nativeSrc":"4132:12:64","nodeType":"YulExpressionStatement","src":"4132:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4096:5:64","nodeType":"YulIdentifier","src":"4096:5:64"},{"arguments":[{"name":"value","nativeSrc":"4121:5:64","nodeType":"YulIdentifier","src":"4121:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"4103:17:64","nodeType":"YulIdentifier","src":"4103:17:64"},"nativeSrc":"4103:24:64","nodeType":"YulFunctionCall","src":"4103:24:64"}],"functionName":{"name":"eq","nativeSrc":"4093:2:64","nodeType":"YulIdentifier","src":"4093:2:64"},"nativeSrc":"4093:35:64","nodeType":"YulFunctionCall","src":"4093:35:64"}],"functionName":{"name":"iszero","nativeSrc":"4086:6:64","nodeType":"YulIdentifier","src":"4086:6:64"},"nativeSrc":"4086:43:64","nodeType":"YulFunctionCall","src":"4086:43:64"},"nativeSrc":"4083:63:64","nodeType":"YulIf","src":"4083:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"4030:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4066:5:64","nodeType":"YulTypedName","src":"4066:5:64","type":""}],"src":"4030:122:64"},{"body":{"nativeSrc":"4210:87:64","nodeType":"YulBlock","src":"4210:87:64","statements":[{"nativeSrc":"4220:29:64","nodeType":"YulAssignment","src":"4220:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4242:6:64","nodeType":"YulIdentifier","src":"4242:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4229:12:64","nodeType":"YulIdentifier","src":"4229:12:64"},"nativeSrc":"4229:20:64","nodeType":"YulFunctionCall","src":"4229:20:64"},"variableNames":[{"name":"value","nativeSrc":"4220:5:64","nodeType":"YulIdentifier","src":"4220:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4285:5:64","nodeType":"YulIdentifier","src":"4285:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4258:26:64","nodeType":"YulIdentifier","src":"4258:26:64"},"nativeSrc":"4258:33:64","nodeType":"YulFunctionCall","src":"4258:33:64"},"nativeSrc":"4258:33:64","nodeType":"YulExpressionStatement","src":"4258:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"4158:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4188:6:64","nodeType":"YulTypedName","src":"4188:6:64","type":""},{"name":"end","nativeSrc":"4196:3:64","nodeType":"YulTypedName","src":"4196:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4204:5:64","nodeType":"YulTypedName","src":"4204:5:64","type":""}],"src":"4158:139:64"},{"body":{"nativeSrc":"4386:391:64","nodeType":"YulBlock","src":"4386:391:64","statements":[{"body":{"nativeSrc":"4432:83:64","nodeType":"YulBlock","src":"4432:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4434:77:64","nodeType":"YulIdentifier","src":"4434:77:64"},"nativeSrc":"4434:79:64","nodeType":"YulFunctionCall","src":"4434:79:64"},"nativeSrc":"4434:79:64","nodeType":"YulExpressionStatement","src":"4434:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4407:7:64","nodeType":"YulIdentifier","src":"4407:7:64"},{"name":"headStart","nativeSrc":"4416:9:64","nodeType":"YulIdentifier","src":"4416:9:64"}],"functionName":{"name":"sub","nativeSrc":"4403:3:64","nodeType":"YulIdentifier","src":"4403:3:64"},"nativeSrc":"4403:23:64","nodeType":"YulFunctionCall","src":"4403:23:64"},{"kind":"number","nativeSrc":"4428:2:64","nodeType":"YulLiteral","src":"4428:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"4399:3:64","nodeType":"YulIdentifier","src":"4399:3:64"},"nativeSrc":"4399:32:64","nodeType":"YulFunctionCall","src":"4399:32:64"},"nativeSrc":"4396:119:64","nodeType":"YulIf","src":"4396:119:64"},{"nativeSrc":"4525:117:64","nodeType":"YulBlock","src":"4525:117:64","statements":[{"nativeSrc":"4540:15:64","nodeType":"YulVariableDeclaration","src":"4540:15:64","value":{"kind":"number","nativeSrc":"4554:1:64","nodeType":"YulLiteral","src":"4554:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4544:6:64","nodeType":"YulTypedName","src":"4544:6:64","type":""}]},{"nativeSrc":"4569:63:64","nodeType":"YulAssignment","src":"4569:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4604:9:64","nodeType":"YulIdentifier","src":"4604:9:64"},{"name":"offset","nativeSrc":"4615:6:64","nodeType":"YulIdentifier","src":"4615:6:64"}],"functionName":{"name":"add","nativeSrc":"4600:3:64","nodeType":"YulIdentifier","src":"4600:3:64"},"nativeSrc":"4600:22:64","nodeType":"YulFunctionCall","src":"4600:22:64"},{"name":"dataEnd","nativeSrc":"4624:7:64","nodeType":"YulIdentifier","src":"4624:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"4579:20:64","nodeType":"YulIdentifier","src":"4579:20:64"},"nativeSrc":"4579:53:64","nodeType":"YulFunctionCall","src":"4579:53:64"},"variableNames":[{"name":"value0","nativeSrc":"4569:6:64","nodeType":"YulIdentifier","src":"4569:6:64"}]}]},{"nativeSrc":"4652:118:64","nodeType":"YulBlock","src":"4652:118:64","statements":[{"nativeSrc":"4667:16:64","nodeType":"YulVariableDeclaration","src":"4667:16:64","value":{"kind":"number","nativeSrc":"4681:2:64","nodeType":"YulLiteral","src":"4681:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4671:6:64","nodeType":"YulTypedName","src":"4671:6:64","type":""}]},{"nativeSrc":"4697:63:64","nodeType":"YulAssignment","src":"4697:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4732:9:64","nodeType":"YulIdentifier","src":"4732:9:64"},{"name":"offset","nativeSrc":"4743:6:64","nodeType":"YulIdentifier","src":"4743:6:64"}],"functionName":{"name":"add","nativeSrc":"4728:3:64","nodeType":"YulIdentifier","src":"4728:3:64"},"nativeSrc":"4728:22:64","nodeType":"YulFunctionCall","src":"4728:22:64"},{"name":"dataEnd","nativeSrc":"4752:7:64","nodeType":"YulIdentifier","src":"4752:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"4707:20:64","nodeType":"YulIdentifier","src":"4707:20:64"},"nativeSrc":"4707:53:64","nodeType":"YulFunctionCall","src":"4707:53:64"},"variableNames":[{"name":"value1","nativeSrc":"4697:6:64","nodeType":"YulIdentifier","src":"4697:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"4303:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4348:9:64","nodeType":"YulTypedName","src":"4348:9:64","type":""},{"name":"dataEnd","nativeSrc":"4359:7:64","nodeType":"YulTypedName","src":"4359:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4371:6:64","nodeType":"YulTypedName","src":"4371:6:64","type":""},{"name":"value1","nativeSrc":"4379:6:64","nodeType":"YulTypedName","src":"4379:6:64","type":""}],"src":"4303:474:64"},{"body":{"nativeSrc":"4848:53:64","nodeType":"YulBlock","src":"4848:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"4865:3:64","nodeType":"YulIdentifier","src":"4865:3:64"},{"arguments":[{"name":"value","nativeSrc":"4888:5:64","nodeType":"YulIdentifier","src":"4888:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"4870:17:64","nodeType":"YulIdentifier","src":"4870:17:64"},"nativeSrc":"4870:24:64","nodeType":"YulFunctionCall","src":"4870:24:64"}],"functionName":{"name":"mstore","nativeSrc":"4858:6:64","nodeType":"YulIdentifier","src":"4858:6:64"},"nativeSrc":"4858:37:64","nodeType":"YulFunctionCall","src":"4858:37:64"},"nativeSrc":"4858:37:64","nodeType":"YulExpressionStatement","src":"4858:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"4783:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"4836:5:64","nodeType":"YulTypedName","src":"4836:5:64","type":""},{"name":"pos","nativeSrc":"4843:3:64","nodeType":"YulTypedName","src":"4843:3:64","type":""}],"src":"4783:118:64"},{"body":{"nativeSrc":"5005:124:64","nodeType":"YulBlock","src":"5005:124:64","statements":[{"nativeSrc":"5015:26:64","nodeType":"YulAssignment","src":"5015:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"5027:9:64","nodeType":"YulIdentifier","src":"5027:9:64"},{"kind":"number","nativeSrc":"5038:2:64","nodeType":"YulLiteral","src":"5038:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"5023:3:64","nodeType":"YulIdentifier","src":"5023:3:64"},"nativeSrc":"5023:18:64","nodeType":"YulFunctionCall","src":"5023:18:64"},"variableNames":[{"name":"tail","nativeSrc":"5015:4:64","nodeType":"YulIdentifier","src":"5015:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"5095:6:64","nodeType":"YulIdentifier","src":"5095:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"5108:9:64","nodeType":"YulIdentifier","src":"5108:9:64"},{"kind":"number","nativeSrc":"5119:1:64","nodeType":"YulLiteral","src":"5119:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5104:3:64","nodeType":"YulIdentifier","src":"5104:3:64"},"nativeSrc":"5104:17:64","nodeType":"YulFunctionCall","src":"5104:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"5051:43:64","nodeType":"YulIdentifier","src":"5051:43:64"},"nativeSrc":"5051:71:64","nodeType":"YulFunctionCall","src":"5051:71:64"},"nativeSrc":"5051:71:64","nodeType":"YulExpressionStatement","src":"5051:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"4907:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4977:9:64","nodeType":"YulTypedName","src":"4977:9:64","type":""},{"name":"value0","nativeSrc":"4989:6:64","nodeType":"YulTypedName","src":"4989:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"5000:4:64","nodeType":"YulTypedName","src":"5000:4:64","type":""}],"src":"4907:222:64"},{"body":{"nativeSrc":"5235:519:64","nodeType":"YulBlock","src":"5235:519:64","statements":[{"body":{"nativeSrc":"5281:83:64","nodeType":"YulBlock","src":"5281:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5283:77:64","nodeType":"YulIdentifier","src":"5283:77:64"},"nativeSrc":"5283:79:64","nodeType":"YulFunctionCall","src":"5283:79:64"},"nativeSrc":"5283:79:64","nodeType":"YulExpressionStatement","src":"5283:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5256:7:64","nodeType":"YulIdentifier","src":"5256:7:64"},{"name":"headStart","nativeSrc":"5265:9:64","nodeType":"YulIdentifier","src":"5265:9:64"}],"functionName":{"name":"sub","nativeSrc":"5252:3:64","nodeType":"YulIdentifier","src":"5252:3:64"},"nativeSrc":"5252:23:64","nodeType":"YulFunctionCall","src":"5252:23:64"},{"kind":"number","nativeSrc":"5277:2:64","nodeType":"YulLiteral","src":"5277:2:64","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"5248:3:64","nodeType":"YulIdentifier","src":"5248:3:64"},"nativeSrc":"5248:32:64","nodeType":"YulFunctionCall","src":"5248:32:64"},"nativeSrc":"5245:119:64","nodeType":"YulIf","src":"5245:119:64"},{"nativeSrc":"5374:117:64","nodeType":"YulBlock","src":"5374:117:64","statements":[{"nativeSrc":"5389:15:64","nodeType":"YulVariableDeclaration","src":"5389:15:64","value":{"kind":"number","nativeSrc":"5403:1:64","nodeType":"YulLiteral","src":"5403:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5393:6:64","nodeType":"YulTypedName","src":"5393:6:64","type":""}]},{"nativeSrc":"5418:63:64","nodeType":"YulAssignment","src":"5418:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5453:9:64","nodeType":"YulIdentifier","src":"5453:9:64"},{"name":"offset","nativeSrc":"5464:6:64","nodeType":"YulIdentifier","src":"5464:6:64"}],"functionName":{"name":"add","nativeSrc":"5449:3:64","nodeType":"YulIdentifier","src":"5449:3:64"},"nativeSrc":"5449:22:64","nodeType":"YulFunctionCall","src":"5449:22:64"},{"name":"dataEnd","nativeSrc":"5473:7:64","nodeType":"YulIdentifier","src":"5473:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5428:20:64","nodeType":"YulIdentifier","src":"5428:20:64"},"nativeSrc":"5428:53:64","nodeType":"YulFunctionCall","src":"5428:53:64"},"variableNames":[{"name":"value0","nativeSrc":"5418:6:64","nodeType":"YulIdentifier","src":"5418:6:64"}]}]},{"nativeSrc":"5501:118:64","nodeType":"YulBlock","src":"5501:118:64","statements":[{"nativeSrc":"5516:16:64","nodeType":"YulVariableDeclaration","src":"5516:16:64","value":{"kind":"number","nativeSrc":"5530:2:64","nodeType":"YulLiteral","src":"5530:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5520:6:64","nodeType":"YulTypedName","src":"5520:6:64","type":""}]},{"nativeSrc":"5546:63:64","nodeType":"YulAssignment","src":"5546:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5581:9:64","nodeType":"YulIdentifier","src":"5581:9:64"},{"name":"offset","nativeSrc":"5592:6:64","nodeType":"YulIdentifier","src":"5592:6:64"}],"functionName":{"name":"add","nativeSrc":"5577:3:64","nodeType":"YulIdentifier","src":"5577:3:64"},"nativeSrc":"5577:22:64","nodeType":"YulFunctionCall","src":"5577:22:64"},{"name":"dataEnd","nativeSrc":"5601:7:64","nodeType":"YulIdentifier","src":"5601:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5556:20:64","nodeType":"YulIdentifier","src":"5556:20:64"},"nativeSrc":"5556:53:64","nodeType":"YulFunctionCall","src":"5556:53:64"},"variableNames":[{"name":"value1","nativeSrc":"5546:6:64","nodeType":"YulIdentifier","src":"5546:6:64"}]}]},{"nativeSrc":"5629:118:64","nodeType":"YulBlock","src":"5629:118:64","statements":[{"nativeSrc":"5644:16:64","nodeType":"YulVariableDeclaration","src":"5644:16:64","value":{"kind":"number","nativeSrc":"5658:2:64","nodeType":"YulLiteral","src":"5658:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5648:6:64","nodeType":"YulTypedName","src":"5648:6:64","type":""}]},{"nativeSrc":"5674:63:64","nodeType":"YulAssignment","src":"5674:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5709:9:64","nodeType":"YulIdentifier","src":"5709:9:64"},{"name":"offset","nativeSrc":"5720:6:64","nodeType":"YulIdentifier","src":"5720:6:64"}],"functionName":{"name":"add","nativeSrc":"5705:3:64","nodeType":"YulIdentifier","src":"5705:3:64"},"nativeSrc":"5705:22:64","nodeType":"YulFunctionCall","src":"5705:22:64"},{"name":"dataEnd","nativeSrc":"5729:7:64","nodeType":"YulIdentifier","src":"5729:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5684:20:64","nodeType":"YulIdentifier","src":"5684:20:64"},"nativeSrc":"5684:53:64","nodeType":"YulFunctionCall","src":"5684:53:64"},"variableNames":[{"name":"value2","nativeSrc":"5674:6:64","nodeType":"YulIdentifier","src":"5674:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"5135:619:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5189:9:64","nodeType":"YulTypedName","src":"5189:9:64","type":""},{"name":"dataEnd","nativeSrc":"5200:7:64","nodeType":"YulTypedName","src":"5200:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5212:6:64","nodeType":"YulTypedName","src":"5212:6:64","type":""},{"name":"value1","nativeSrc":"5220:6:64","nodeType":"YulTypedName","src":"5220:6:64","type":""},{"name":"value2","nativeSrc":"5228:6:64","nodeType":"YulTypedName","src":"5228:6:64","type":""}],"src":"5135:619:64"},{"body":{"nativeSrc":"5826:263:64","nodeType":"YulBlock","src":"5826:263:64","statements":[{"body":{"nativeSrc":"5872:83:64","nodeType":"YulBlock","src":"5872:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5874:77:64","nodeType":"YulIdentifier","src":"5874:77:64"},"nativeSrc":"5874:79:64","nodeType":"YulFunctionCall","src":"5874:79:64"},"nativeSrc":"5874:79:64","nodeType":"YulExpressionStatement","src":"5874:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5847:7:64","nodeType":"YulIdentifier","src":"5847:7:64"},{"name":"headStart","nativeSrc":"5856:9:64","nodeType":"YulIdentifier","src":"5856:9:64"}],"functionName":{"name":"sub","nativeSrc":"5843:3:64","nodeType":"YulIdentifier","src":"5843:3:64"},"nativeSrc":"5843:23:64","nodeType":"YulFunctionCall","src":"5843:23:64"},{"kind":"number","nativeSrc":"5868:2:64","nodeType":"YulLiteral","src":"5868:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5839:3:64","nodeType":"YulIdentifier","src":"5839:3:64"},"nativeSrc":"5839:32:64","nodeType":"YulFunctionCall","src":"5839:32:64"},"nativeSrc":"5836:119:64","nodeType":"YulIf","src":"5836:119:64"},{"nativeSrc":"5965:117:64","nodeType":"YulBlock","src":"5965:117:64","statements":[{"nativeSrc":"5980:15:64","nodeType":"YulVariableDeclaration","src":"5980:15:64","value":{"kind":"number","nativeSrc":"5994:1:64","nodeType":"YulLiteral","src":"5994:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5984:6:64","nodeType":"YulTypedName","src":"5984:6:64","type":""}]},{"nativeSrc":"6009:63:64","nodeType":"YulAssignment","src":"6009:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6044:9:64","nodeType":"YulIdentifier","src":"6044:9:64"},{"name":"offset","nativeSrc":"6055:6:64","nodeType":"YulIdentifier","src":"6055:6:64"}],"functionName":{"name":"add","nativeSrc":"6040:3:64","nodeType":"YulIdentifier","src":"6040:3:64"},"nativeSrc":"6040:22:64","nodeType":"YulFunctionCall","src":"6040:22:64"},{"name":"dataEnd","nativeSrc":"6064:7:64","nodeType":"YulIdentifier","src":"6064:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6019:20:64","nodeType":"YulIdentifier","src":"6019:20:64"},"nativeSrc":"6019:53:64","nodeType":"YulFunctionCall","src":"6019:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6009:6:64","nodeType":"YulIdentifier","src":"6009:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5760:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5796:9:64","nodeType":"YulTypedName","src":"5796:9:64","type":""},{"name":"dataEnd","nativeSrc":"5807:7:64","nodeType":"YulTypedName","src":"5807:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5819:6:64","nodeType":"YulTypedName","src":"5819:6:64","type":""}],"src":"5760:329:64"},{"body":{"nativeSrc":"6135:76:64","nodeType":"YulBlock","src":"6135:76:64","statements":[{"body":{"nativeSrc":"6189:16:64","nodeType":"YulBlock","src":"6189:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6198:1:64","nodeType":"YulLiteral","src":"6198:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6201:1:64","nodeType":"YulLiteral","src":"6201:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6191:6:64","nodeType":"YulIdentifier","src":"6191:6:64"},"nativeSrc":"6191:12:64","nodeType":"YulFunctionCall","src":"6191:12:64"},"nativeSrc":"6191:12:64","nodeType":"YulExpressionStatement","src":"6191:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6158:5:64","nodeType":"YulIdentifier","src":"6158:5:64"},{"arguments":[{"name":"value","nativeSrc":"6180:5:64","nodeType":"YulIdentifier","src":"6180:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6165:14:64","nodeType":"YulIdentifier","src":"6165:14:64"},"nativeSrc":"6165:21:64","nodeType":"YulFunctionCall","src":"6165:21:64"}],"functionName":{"name":"eq","nativeSrc":"6155:2:64","nodeType":"YulIdentifier","src":"6155:2:64"},"nativeSrc":"6155:32:64","nodeType":"YulFunctionCall","src":"6155:32:64"}],"functionName":{"name":"iszero","nativeSrc":"6148:6:64","nodeType":"YulIdentifier","src":"6148:6:64"},"nativeSrc":"6148:40:64","nodeType":"YulFunctionCall","src":"6148:40:64"},"nativeSrc":"6145:60:64","nodeType":"YulIf","src":"6145:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"6095:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6128:5:64","nodeType":"YulTypedName","src":"6128:5:64","type":""}],"src":"6095:116:64"},{"body":{"nativeSrc":"6266:84:64","nodeType":"YulBlock","src":"6266:84:64","statements":[{"nativeSrc":"6276:29:64","nodeType":"YulAssignment","src":"6276:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"6298:6:64","nodeType":"YulIdentifier","src":"6298:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"6285:12:64","nodeType":"YulIdentifier","src":"6285:12:64"},"nativeSrc":"6285:20:64","nodeType":"YulFunctionCall","src":"6285:20:64"},"variableNames":[{"name":"value","nativeSrc":"6276:5:64","nodeType":"YulIdentifier","src":"6276:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6338:5:64","nodeType":"YulIdentifier","src":"6338:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"6314:23:64","nodeType":"YulIdentifier","src":"6314:23:64"},"nativeSrc":"6314:30:64","nodeType":"YulFunctionCall","src":"6314:30:64"},"nativeSrc":"6314:30:64","nodeType":"YulExpressionStatement","src":"6314:30:64"}]},"name":"abi_decode_t_bool","nativeSrc":"6217:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6244:6:64","nodeType":"YulTypedName","src":"6244:6:64","type":""},{"name":"end","nativeSrc":"6252:3:64","nodeType":"YulTypedName","src":"6252:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6260:5:64","nodeType":"YulTypedName","src":"6260:5:64","type":""}],"src":"6217:133:64"},{"body":{"nativeSrc":"6436:388:64","nodeType":"YulBlock","src":"6436:388:64","statements":[{"body":{"nativeSrc":"6482:83:64","nodeType":"YulBlock","src":"6482:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6484:77:64","nodeType":"YulIdentifier","src":"6484:77:64"},"nativeSrc":"6484:79:64","nodeType":"YulFunctionCall","src":"6484:79:64"},"nativeSrc":"6484:79:64","nodeType":"YulExpressionStatement","src":"6484:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6457:7:64","nodeType":"YulIdentifier","src":"6457:7:64"},{"name":"headStart","nativeSrc":"6466:9:64","nodeType":"YulIdentifier","src":"6466:9:64"}],"functionName":{"name":"sub","nativeSrc":"6453:3:64","nodeType":"YulIdentifier","src":"6453:3:64"},"nativeSrc":"6453:23:64","nodeType":"YulFunctionCall","src":"6453:23:64"},{"kind":"number","nativeSrc":"6478:2:64","nodeType":"YulLiteral","src":"6478:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"6449:3:64","nodeType":"YulIdentifier","src":"6449:3:64"},"nativeSrc":"6449:32:64","nodeType":"YulFunctionCall","src":"6449:32:64"},"nativeSrc":"6446:119:64","nodeType":"YulIf","src":"6446:119:64"},{"nativeSrc":"6575:117:64","nodeType":"YulBlock","src":"6575:117:64","statements":[{"nativeSrc":"6590:15:64","nodeType":"YulVariableDeclaration","src":"6590:15:64","value":{"kind":"number","nativeSrc":"6604:1:64","nodeType":"YulLiteral","src":"6604:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6594:6:64","nodeType":"YulTypedName","src":"6594:6:64","type":""}]},{"nativeSrc":"6619:63:64","nodeType":"YulAssignment","src":"6619:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6654:9:64","nodeType":"YulIdentifier","src":"6654:9:64"},{"name":"offset","nativeSrc":"6665:6:64","nodeType":"YulIdentifier","src":"6665:6:64"}],"functionName":{"name":"add","nativeSrc":"6650:3:64","nodeType":"YulIdentifier","src":"6650:3:64"},"nativeSrc":"6650:22:64","nodeType":"YulFunctionCall","src":"6650:22:64"},{"name":"dataEnd","nativeSrc":"6674:7:64","nodeType":"YulIdentifier","src":"6674:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6629:20:64","nodeType":"YulIdentifier","src":"6629:20:64"},"nativeSrc":"6629:53:64","nodeType":"YulFunctionCall","src":"6629:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6619:6:64","nodeType":"YulIdentifier","src":"6619:6:64"}]}]},{"nativeSrc":"6702:115:64","nodeType":"YulBlock","src":"6702:115:64","statements":[{"nativeSrc":"6717:16:64","nodeType":"YulVariableDeclaration","src":"6717:16:64","value":{"kind":"number","nativeSrc":"6731:2:64","nodeType":"YulLiteral","src":"6731:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"6721:6:64","nodeType":"YulTypedName","src":"6721:6:64","type":""}]},{"nativeSrc":"6747:60:64","nodeType":"YulAssignment","src":"6747:60:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6779:9:64","nodeType":"YulIdentifier","src":"6779:9:64"},{"name":"offset","nativeSrc":"6790:6:64","nodeType":"YulIdentifier","src":"6790:6:64"}],"functionName":{"name":"add","nativeSrc":"6775:3:64","nodeType":"YulIdentifier","src":"6775:3:64"},"nativeSrc":"6775:22:64","nodeType":"YulFunctionCall","src":"6775:22:64"},{"name":"dataEnd","nativeSrc":"6799:7:64","nodeType":"YulIdentifier","src":"6799:7:64"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"6757:17:64","nodeType":"YulIdentifier","src":"6757:17:64"},"nativeSrc":"6757:50:64","nodeType":"YulFunctionCall","src":"6757:50:64"},"variableNames":[{"name":"value1","nativeSrc":"6747:6:64","nodeType":"YulIdentifier","src":"6747:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_bool","nativeSrc":"6356:468:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6398:9:64","nodeType":"YulTypedName","src":"6398:9:64","type":""},{"name":"dataEnd","nativeSrc":"6409:7:64","nodeType":"YulTypedName","src":"6409:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6421:6:64","nodeType":"YulTypedName","src":"6421:6:64","type":""},{"name":"value1","nativeSrc":"6429:6:64","nodeType":"YulTypedName","src":"6429:6:64","type":""}],"src":"6356:468:64"},{"body":{"nativeSrc":"6919:28:64","nodeType":"YulBlock","src":"6919:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6936:1:64","nodeType":"YulLiteral","src":"6936:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"6939:1:64","nodeType":"YulLiteral","src":"6939:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6929:6:64","nodeType":"YulIdentifier","src":"6929:6:64"},"nativeSrc":"6929:12:64","nodeType":"YulFunctionCall","src":"6929:12:64"},"nativeSrc":"6929:12:64","nodeType":"YulExpressionStatement","src":"6929:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"6830:117:64","nodeType":"YulFunctionDefinition","src":"6830:117:64"},{"body":{"nativeSrc":"7042:28:64","nodeType":"YulBlock","src":"7042:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7059:1:64","nodeType":"YulLiteral","src":"7059:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7062:1:64","nodeType":"YulLiteral","src":"7062:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7052:6:64","nodeType":"YulIdentifier","src":"7052:6:64"},"nativeSrc":"7052:12:64","nodeType":"YulFunctionCall","src":"7052:12:64"},"nativeSrc":"7052:12:64","nodeType":"YulExpressionStatement","src":"7052:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"6953:117:64","nodeType":"YulFunctionDefinition","src":"6953:117:64"},{"body":{"nativeSrc":"7165:28:64","nodeType":"YulBlock","src":"7165:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7182:1:64","nodeType":"YulLiteral","src":"7182:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7185:1:64","nodeType":"YulLiteral","src":"7185:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7175:6:64","nodeType":"YulIdentifier","src":"7175:6:64"},"nativeSrc":"7175:12:64","nodeType":"YulFunctionCall","src":"7175:12:64"},"nativeSrc":"7175:12:64","nodeType":"YulExpressionStatement","src":"7175:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7076:117:64","nodeType":"YulFunctionDefinition","src":"7076:117:64"},{"body":{"nativeSrc":"7286:478:64","nodeType":"YulBlock","src":"7286:478:64","statements":[{"body":{"nativeSrc":"7335:83:64","nodeType":"YulBlock","src":"7335:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7337:77:64","nodeType":"YulIdentifier","src":"7337:77:64"},"nativeSrc":"7337:79:64","nodeType":"YulFunctionCall","src":"7337:79:64"},"nativeSrc":"7337:79:64","nodeType":"YulExpressionStatement","src":"7337:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7314:6:64","nodeType":"YulIdentifier","src":"7314:6:64"},{"kind":"number","nativeSrc":"7322:4:64","nodeType":"YulLiteral","src":"7322:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7310:3:64","nodeType":"YulIdentifier","src":"7310:3:64"},"nativeSrc":"7310:17:64","nodeType":"YulFunctionCall","src":"7310:17:64"},{"name":"end","nativeSrc":"7329:3:64","nodeType":"YulIdentifier","src":"7329:3:64"}],"functionName":{"name":"slt","nativeSrc":"7306:3:64","nodeType":"YulIdentifier","src":"7306:3:64"},"nativeSrc":"7306:27:64","nodeType":"YulFunctionCall","src":"7306:27:64"}],"functionName":{"name":"iszero","nativeSrc":"7299:6:64","nodeType":"YulIdentifier","src":"7299:6:64"},"nativeSrc":"7299:35:64","nodeType":"YulFunctionCall","src":"7299:35:64"},"nativeSrc":"7296:122:64","nodeType":"YulIf","src":"7296:122:64"},{"nativeSrc":"7427:30:64","nodeType":"YulAssignment","src":"7427:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"7450:6:64","nodeType":"YulIdentifier","src":"7450:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7437:12:64","nodeType":"YulIdentifier","src":"7437:12:64"},"nativeSrc":"7437:20:64","nodeType":"YulFunctionCall","src":"7437:20:64"},"variableNames":[{"name":"length","nativeSrc":"7427:6:64","nodeType":"YulIdentifier","src":"7427:6:64"}]},{"body":{"nativeSrc":"7500:83:64","nodeType":"YulBlock","src":"7500:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"7502:77:64","nodeType":"YulIdentifier","src":"7502:77:64"},"nativeSrc":"7502:79:64","nodeType":"YulFunctionCall","src":"7502:79:64"},"nativeSrc":"7502:79:64","nodeType":"YulExpressionStatement","src":"7502:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7472:6:64","nodeType":"YulIdentifier","src":"7472:6:64"},{"kind":"number","nativeSrc":"7480:18:64","nodeType":"YulLiteral","src":"7480:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"7469:2:64","nodeType":"YulIdentifier","src":"7469:2:64"},"nativeSrc":"7469:30:64","nodeType":"YulFunctionCall","src":"7469:30:64"},"nativeSrc":"7466:117:64","nodeType":"YulIf","src":"7466:117:64"},{"nativeSrc":"7592:29:64","nodeType":"YulAssignment","src":"7592:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7608:6:64","nodeType":"YulIdentifier","src":"7608:6:64"},{"kind":"number","nativeSrc":"7616:4:64","nodeType":"YulLiteral","src":"7616:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7604:3:64","nodeType":"YulIdentifier","src":"7604:3:64"},"nativeSrc":"7604:17:64","nodeType":"YulFunctionCall","src":"7604:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"7592:8:64","nodeType":"YulIdentifier","src":"7592:8:64"}]},{"body":{"nativeSrc":"7675:83:64","nodeType":"YulBlock","src":"7675:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7677:77:64","nodeType":"YulIdentifier","src":"7677:77:64"},"nativeSrc":"7677:79:64","nodeType":"YulFunctionCall","src":"7677:79:64"},"nativeSrc":"7677:79:64","nodeType":"YulExpressionStatement","src":"7677:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"7640:8:64","nodeType":"YulIdentifier","src":"7640:8:64"},{"arguments":[{"name":"length","nativeSrc":"7654:6:64","nodeType":"YulIdentifier","src":"7654:6:64"},{"kind":"number","nativeSrc":"7662:4:64","nodeType":"YulLiteral","src":"7662:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"7650:3:64","nodeType":"YulIdentifier","src":"7650:3:64"},"nativeSrc":"7650:17:64","nodeType":"YulFunctionCall","src":"7650:17:64"}],"functionName":{"name":"add","nativeSrc":"7636:3:64","nodeType":"YulIdentifier","src":"7636:3:64"},"nativeSrc":"7636:32:64","nodeType":"YulFunctionCall","src":"7636:32:64"},{"name":"end","nativeSrc":"7670:3:64","nodeType":"YulIdentifier","src":"7670:3:64"}],"functionName":{"name":"gt","nativeSrc":"7633:2:64","nodeType":"YulIdentifier","src":"7633:2:64"},"nativeSrc":"7633:41:64","nodeType":"YulFunctionCall","src":"7633:41:64"},"nativeSrc":"7630:128:64","nodeType":"YulIf","src":"7630:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"7212:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7253:6:64","nodeType":"YulTypedName","src":"7253:6:64","type":""},{"name":"end","nativeSrc":"7261:3:64","nodeType":"YulTypedName","src":"7261:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"7269:8:64","nodeType":"YulTypedName","src":"7269:8:64","type":""},{"name":"length","nativeSrc":"7279:6:64","nodeType":"YulTypedName","src":"7279:6:64","type":""}],"src":"7212:552:64"},{"body":{"nativeSrc":"7906:827:64","nodeType":"YulBlock","src":"7906:827:64","statements":[{"body":{"nativeSrc":"7953:83:64","nodeType":"YulBlock","src":"7953:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7955:77:64","nodeType":"YulIdentifier","src":"7955:77:64"},"nativeSrc":"7955:79:64","nodeType":"YulFunctionCall","src":"7955:79:64"},"nativeSrc":"7955:79:64","nodeType":"YulExpressionStatement","src":"7955:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7927:7:64","nodeType":"YulIdentifier","src":"7927:7:64"},{"name":"headStart","nativeSrc":"7936:9:64","nodeType":"YulIdentifier","src":"7936:9:64"}],"functionName":{"name":"sub","nativeSrc":"7923:3:64","nodeType":"YulIdentifier","src":"7923:3:64"},"nativeSrc":"7923:23:64","nodeType":"YulFunctionCall","src":"7923:23:64"},{"kind":"number","nativeSrc":"7948:3:64","nodeType":"YulLiteral","src":"7948:3:64","type":"","value":"128"}],"functionName":{"name":"slt","nativeSrc":"7919:3:64","nodeType":"YulIdentifier","src":"7919:3:64"},"nativeSrc":"7919:33:64","nodeType":"YulFunctionCall","src":"7919:33:64"},"nativeSrc":"7916:120:64","nodeType":"YulIf","src":"7916:120:64"},{"nativeSrc":"8046:117:64","nodeType":"YulBlock","src":"8046:117:64","statements":[{"nativeSrc":"8061:15:64","nodeType":"YulVariableDeclaration","src":"8061:15:64","value":{"kind":"number","nativeSrc":"8075:1:64","nodeType":"YulLiteral","src":"8075:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8065:6:64","nodeType":"YulTypedName","src":"8065:6:64","type":""}]},{"nativeSrc":"8090:63:64","nodeType":"YulAssignment","src":"8090:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8125:9:64","nodeType":"YulIdentifier","src":"8125:9:64"},{"name":"offset","nativeSrc":"8136:6:64","nodeType":"YulIdentifier","src":"8136:6:64"}],"functionName":{"name":"add","nativeSrc":"8121:3:64","nodeType":"YulIdentifier","src":"8121:3:64"},"nativeSrc":"8121:22:64","nodeType":"YulFunctionCall","src":"8121:22:64"},{"name":"dataEnd","nativeSrc":"8145:7:64","nodeType":"YulIdentifier","src":"8145:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8100:20:64","nodeType":"YulIdentifier","src":"8100:20:64"},"nativeSrc":"8100:53:64","nodeType":"YulFunctionCall","src":"8100:53:64"},"variableNames":[{"name":"value0","nativeSrc":"8090:6:64","nodeType":"YulIdentifier","src":"8090:6:64"}]}]},{"nativeSrc":"8173:118:64","nodeType":"YulBlock","src":"8173:118:64","statements":[{"nativeSrc":"8188:16:64","nodeType":"YulVariableDeclaration","src":"8188:16:64","value":{"kind":"number","nativeSrc":"8202:2:64","nodeType":"YulLiteral","src":"8202:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"8192:6:64","nodeType":"YulTypedName","src":"8192:6:64","type":""}]},{"nativeSrc":"8218:63:64","nodeType":"YulAssignment","src":"8218:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8253:9:64","nodeType":"YulIdentifier","src":"8253:9:64"},{"name":"offset","nativeSrc":"8264:6:64","nodeType":"YulIdentifier","src":"8264:6:64"}],"functionName":{"name":"add","nativeSrc":"8249:3:64","nodeType":"YulIdentifier","src":"8249:3:64"},"nativeSrc":"8249:22:64","nodeType":"YulFunctionCall","src":"8249:22:64"},{"name":"dataEnd","nativeSrc":"8273:7:64","nodeType":"YulIdentifier","src":"8273:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8228:20:64","nodeType":"YulIdentifier","src":"8228:20:64"},"nativeSrc":"8228:53:64","nodeType":"YulFunctionCall","src":"8228:53:64"},"variableNames":[{"name":"value1","nativeSrc":"8218:6:64","nodeType":"YulIdentifier","src":"8218:6:64"}]}]},{"nativeSrc":"8301:118:64","nodeType":"YulBlock","src":"8301:118:64","statements":[{"nativeSrc":"8316:16:64","nodeType":"YulVariableDeclaration","src":"8316:16:64","value":{"kind":"number","nativeSrc":"8330:2:64","nodeType":"YulLiteral","src":"8330:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8320:6:64","nodeType":"YulTypedName","src":"8320:6:64","type":""}]},{"nativeSrc":"8346:63:64","nodeType":"YulAssignment","src":"8346:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8381:9:64","nodeType":"YulIdentifier","src":"8381:9:64"},{"name":"offset","nativeSrc":"8392:6:64","nodeType":"YulIdentifier","src":"8392:6:64"}],"functionName":{"name":"add","nativeSrc":"8377:3:64","nodeType":"YulIdentifier","src":"8377:3:64"},"nativeSrc":"8377:22:64","nodeType":"YulFunctionCall","src":"8377:22:64"},{"name":"dataEnd","nativeSrc":"8401:7:64","nodeType":"YulIdentifier","src":"8401:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"8356:20:64","nodeType":"YulIdentifier","src":"8356:20:64"},"nativeSrc":"8356:53:64","nodeType":"YulFunctionCall","src":"8356:53:64"},"variableNames":[{"name":"value2","nativeSrc":"8346:6:64","nodeType":"YulIdentifier","src":"8346:6:64"}]}]},{"nativeSrc":"8429:297:64","nodeType":"YulBlock","src":"8429:297:64","statements":[{"nativeSrc":"8444:46:64","nodeType":"YulVariableDeclaration","src":"8444:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8475:9:64","nodeType":"YulIdentifier","src":"8475:9:64"},{"kind":"number","nativeSrc":"8486:2:64","nodeType":"YulLiteral","src":"8486:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8471:3:64","nodeType":"YulIdentifier","src":"8471:3:64"},"nativeSrc":"8471:18:64","nodeType":"YulFunctionCall","src":"8471:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"8458:12:64","nodeType":"YulIdentifier","src":"8458:12:64"},"nativeSrc":"8458:32:64","nodeType":"YulFunctionCall","src":"8458:32:64"},"variables":[{"name":"offset","nativeSrc":"8448:6:64","nodeType":"YulTypedName","src":"8448:6:64","type":""}]},{"body":{"nativeSrc":"8537:83:64","nodeType":"YulBlock","src":"8537:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"8539:77:64","nodeType":"YulIdentifier","src":"8539:77:64"},"nativeSrc":"8539:79:64","nodeType":"YulFunctionCall","src":"8539:79:64"},"nativeSrc":"8539:79:64","nodeType":"YulExpressionStatement","src":"8539:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8509:6:64","nodeType":"YulIdentifier","src":"8509:6:64"},{"kind":"number","nativeSrc":"8517:18:64","nodeType":"YulLiteral","src":"8517:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8506:2:64","nodeType":"YulIdentifier","src":"8506:2:64"},"nativeSrc":"8506:30:64","nodeType":"YulFunctionCall","src":"8506:30:64"},"nativeSrc":"8503:117:64","nodeType":"YulIf","src":"8503:117:64"},{"nativeSrc":"8634:82:64","nodeType":"YulAssignment","src":"8634:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8688:9:64","nodeType":"YulIdentifier","src":"8688:9:64"},{"name":"offset","nativeSrc":"8699:6:64","nodeType":"YulIdentifier","src":"8699:6:64"}],"functionName":{"name":"add","nativeSrc":"8684:3:64","nodeType":"YulIdentifier","src":"8684:3:64"},"nativeSrc":"8684:22:64","nodeType":"YulFunctionCall","src":"8684:22:64"},{"name":"dataEnd","nativeSrc":"8708:7:64","nodeType":"YulIdentifier","src":"8708:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"8652:31:64","nodeType":"YulIdentifier","src":"8652:31:64"},"nativeSrc":"8652:64:64","nodeType":"YulFunctionCall","src":"8652:64:64"},"variableNames":[{"name":"value3","nativeSrc":"8634:6:64","nodeType":"YulIdentifier","src":"8634:6:64"},{"name":"value4","nativeSrc":"8642:6:64","nodeType":"YulIdentifier","src":"8642:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr","nativeSrc":"7770:963:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7844:9:64","nodeType":"YulTypedName","src":"7844:9:64","type":""},{"name":"dataEnd","nativeSrc":"7855:7:64","nodeType":"YulTypedName","src":"7855:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7867:6:64","nodeType":"YulTypedName","src":"7867:6:64","type":""},{"name":"value1","nativeSrc":"7875:6:64","nodeType":"YulTypedName","src":"7875:6:64","type":""},{"name":"value2","nativeSrc":"7883:6:64","nodeType":"YulTypedName","src":"7883:6:64","type":""},{"name":"value3","nativeSrc":"7891:6:64","nodeType":"YulTypedName","src":"7891:6:64","type":""},{"name":"value4","nativeSrc":"7899:6:64","nodeType":"YulTypedName","src":"7899:6:64","type":""}],"src":"7770:963:64"},{"body":{"nativeSrc":"8822:391:64","nodeType":"YulBlock","src":"8822:391:64","statements":[{"body":{"nativeSrc":"8868:83:64","nodeType":"YulBlock","src":"8868:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"8870:77:64","nodeType":"YulIdentifier","src":"8870:77:64"},"nativeSrc":"8870:79:64","nodeType":"YulFunctionCall","src":"8870:79:64"},"nativeSrc":"8870:79:64","nodeType":"YulExpressionStatement","src":"8870:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"8843:7:64","nodeType":"YulIdentifier","src":"8843:7:64"},{"name":"headStart","nativeSrc":"8852:9:64","nodeType":"YulIdentifier","src":"8852:9:64"}],"functionName":{"name":"sub","nativeSrc":"8839:3:64","nodeType":"YulIdentifier","src":"8839:3:64"},"nativeSrc":"8839:23:64","nodeType":"YulFunctionCall","src":"8839:23:64"},{"kind":"number","nativeSrc":"8864:2:64","nodeType":"YulLiteral","src":"8864:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"8835:3:64","nodeType":"YulIdentifier","src":"8835:3:64"},"nativeSrc":"8835:32:64","nodeType":"YulFunctionCall","src":"8835:32:64"},"nativeSrc":"8832:119:64","nodeType":"YulIf","src":"8832:119:64"},{"nativeSrc":"8961:117:64","nodeType":"YulBlock","src":"8961:117:64","statements":[{"nativeSrc":"8976:15:64","nodeType":"YulVariableDeclaration","src":"8976:15:64","value":{"kind":"number","nativeSrc":"8990:1:64","nodeType":"YulLiteral","src":"8990:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8980:6:64","nodeType":"YulTypedName","src":"8980:6:64","type":""}]},{"nativeSrc":"9005:63:64","nodeType":"YulAssignment","src":"9005:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9040:9:64","nodeType":"YulIdentifier","src":"9040:9:64"},{"name":"offset","nativeSrc":"9051:6:64","nodeType":"YulIdentifier","src":"9051:6:64"}],"functionName":{"name":"add","nativeSrc":"9036:3:64","nodeType":"YulIdentifier","src":"9036:3:64"},"nativeSrc":"9036:22:64","nodeType":"YulFunctionCall","src":"9036:22:64"},{"name":"dataEnd","nativeSrc":"9060:7:64","nodeType":"YulIdentifier","src":"9060:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9015:20:64","nodeType":"YulIdentifier","src":"9015:20:64"},"nativeSrc":"9015:53:64","nodeType":"YulFunctionCall","src":"9015:53:64"},"variableNames":[{"name":"value0","nativeSrc":"9005:6:64","nodeType":"YulIdentifier","src":"9005:6:64"}]}]},{"nativeSrc":"9088:118:64","nodeType":"YulBlock","src":"9088:118:64","statements":[{"nativeSrc":"9103:16:64","nodeType":"YulVariableDeclaration","src":"9103:16:64","value":{"kind":"number","nativeSrc":"9117:2:64","nodeType":"YulLiteral","src":"9117:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"9107:6:64","nodeType":"YulTypedName","src":"9107:6:64","type":""}]},{"nativeSrc":"9133:63:64","nodeType":"YulAssignment","src":"9133:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9168:9:64","nodeType":"YulIdentifier","src":"9168:9:64"},{"name":"offset","nativeSrc":"9179:6:64","nodeType":"YulIdentifier","src":"9179:6:64"}],"functionName":{"name":"add","nativeSrc":"9164:3:64","nodeType":"YulIdentifier","src":"9164:3:64"},"nativeSrc":"9164:22:64","nodeType":"YulFunctionCall","src":"9164:22:64"},{"name":"dataEnd","nativeSrc":"9188:7:64","nodeType":"YulIdentifier","src":"9188:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9143:20:64","nodeType":"YulIdentifier","src":"9143:20:64"},"nativeSrc":"9143:53:64","nodeType":"YulFunctionCall","src":"9143:53:64"},"variableNames":[{"name":"value1","nativeSrc":"9133:6:64","nodeType":"YulIdentifier","src":"9133:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"8739:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8784:9:64","nodeType":"YulTypedName","src":"8784:9:64","type":""},{"name":"dataEnd","nativeSrc":"8795:7:64","nodeType":"YulTypedName","src":"8795:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"8807:6:64","nodeType":"YulTypedName","src":"8807:6:64","type":""},{"name":"value1","nativeSrc":"8815:6:64","nodeType":"YulTypedName","src":"8815:6:64","type":""}],"src":"8739:474:64"},{"body":{"nativeSrc":"9325:73:64","nodeType":"YulBlock","src":"9325:73:64","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"9347:6:64","nodeType":"YulIdentifier","src":"9347:6:64"},{"kind":"number","nativeSrc":"9355:1:64","nodeType":"YulLiteral","src":"9355:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9343:3:64","nodeType":"YulIdentifier","src":"9343:3:64"},"nativeSrc":"9343:14:64","nodeType":"YulFunctionCall","src":"9343:14:64"},{"hexValue":"4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e657921","kind":"string","nativeSrc":"9359:31:64","nodeType":"YulLiteral","src":"9359:31:64","type":"","value":"MockERC721: gimme more money!"}],"functionName":{"name":"mstore","nativeSrc":"9336:6:64","nodeType":"YulIdentifier","src":"9336:6:64"},"nativeSrc":"9336:55:64","nodeType":"YulFunctionCall","src":"9336:55:64"},"nativeSrc":"9336:55:64","nodeType":"YulExpressionStatement","src":"9336:55:64"}]},"name":"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","nativeSrc":"9219:179:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"9317:6:64","nodeType":"YulTypedName","src":"9317:6:64","type":""}],"src":"9219:179:64"},{"body":{"nativeSrc":"9550:220:64","nodeType":"YulBlock","src":"9550:220:64","statements":[{"nativeSrc":"9560:74:64","nodeType":"YulAssignment","src":"9560:74:64","value":{"arguments":[{"name":"pos","nativeSrc":"9626:3:64","nodeType":"YulIdentifier","src":"9626:3:64"},{"kind":"number","nativeSrc":"9631:2:64","nodeType":"YulLiteral","src":"9631:2:64","type":"","value":"29"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"9567:58:64","nodeType":"YulIdentifier","src":"9567:58:64"},"nativeSrc":"9567:67:64","nodeType":"YulFunctionCall","src":"9567:67:64"},"variableNames":[{"name":"pos","nativeSrc":"9560:3:64","nodeType":"YulIdentifier","src":"9560:3:64"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"9732:3:64","nodeType":"YulIdentifier","src":"9732:3:64"}],"functionName":{"name":"store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb","nativeSrc":"9643:88:64","nodeType":"YulIdentifier","src":"9643:88:64"},"nativeSrc":"9643:93:64","nodeType":"YulFunctionCall","src":"9643:93:64"},"nativeSrc":"9643:93:64","nodeType":"YulExpressionStatement","src":"9643:93:64"},{"nativeSrc":"9745:19:64","nodeType":"YulAssignment","src":"9745:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"9756:3:64","nodeType":"YulIdentifier","src":"9756:3:64"},{"kind":"number","nativeSrc":"9761:2:64","nodeType":"YulLiteral","src":"9761:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9752:3:64","nodeType":"YulIdentifier","src":"9752:3:64"},"nativeSrc":"9752:12:64","nodeType":"YulFunctionCall","src":"9752:12:64"},"variableNames":[{"name":"end","nativeSrc":"9745:3:64","nodeType":"YulIdentifier","src":"9745:3:64"}]}]},"name":"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack","nativeSrc":"9404:366:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"9538:3:64","nodeType":"YulTypedName","src":"9538:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"9546:3:64","nodeType":"YulTypedName","src":"9546:3:64","type":""}],"src":"9404:366:64"},{"body":{"nativeSrc":"9947:248:64","nodeType":"YulBlock","src":"9947:248:64","statements":[{"nativeSrc":"9957:26:64","nodeType":"YulAssignment","src":"9957:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"9969:9:64","nodeType":"YulIdentifier","src":"9969:9:64"},{"kind":"number","nativeSrc":"9980:2:64","nodeType":"YulLiteral","src":"9980:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9965:3:64","nodeType":"YulIdentifier","src":"9965:3:64"},"nativeSrc":"9965:18:64","nodeType":"YulFunctionCall","src":"9965:18:64"},"variableNames":[{"name":"tail","nativeSrc":"9957:4:64","nodeType":"YulIdentifier","src":"9957:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10004:9:64","nodeType":"YulIdentifier","src":"10004:9:64"},{"kind":"number","nativeSrc":"10015:1:64","nodeType":"YulLiteral","src":"10015:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10000:3:64","nodeType":"YulIdentifier","src":"10000:3:64"},"nativeSrc":"10000:17:64","nodeType":"YulFunctionCall","src":"10000:17:64"},{"arguments":[{"name":"tail","nativeSrc":"10023:4:64","nodeType":"YulIdentifier","src":"10023:4:64"},{"name":"headStart","nativeSrc":"10029:9:64","nodeType":"YulIdentifier","src":"10029:9:64"}],"functionName":{"name":"sub","nativeSrc":"10019:3:64","nodeType":"YulIdentifier","src":"10019:3:64"},"nativeSrc":"10019:20:64","nodeType":"YulFunctionCall","src":"10019:20:64"}],"functionName":{"name":"mstore","nativeSrc":"9993:6:64","nodeType":"YulIdentifier","src":"9993:6:64"},"nativeSrc":"9993:47:64","nodeType":"YulFunctionCall","src":"9993:47:64"},"nativeSrc":"9993:47:64","nodeType":"YulExpressionStatement","src":"9993:47:64"},{"nativeSrc":"10049:139:64","nodeType":"YulAssignment","src":"10049:139:64","value":{"arguments":[{"name":"tail","nativeSrc":"10183:4:64","nodeType":"YulIdentifier","src":"10183:4:64"}],"functionName":{"name":"abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack","nativeSrc":"10057:124:64","nodeType":"YulIdentifier","src":"10057:124:64"},"nativeSrc":"10057:131:64","nodeType":"YulFunctionCall","src":"10057:131:64"},"variableNames":[{"name":"tail","nativeSrc":"10049:4:64","nodeType":"YulIdentifier","src":"10049:4:64"}]}]},"name":"abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"9776:419:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9927:9:64","nodeType":"YulTypedName","src":"9927:9:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9942:4:64","nodeType":"YulTypedName","src":"9942:4:64","type":""}],"src":"9776:419:64"},{"body":{"nativeSrc":"10229:152:64","nodeType":"YulBlock","src":"10229:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10246:1:64","nodeType":"YulLiteral","src":"10246:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10249:77:64","nodeType":"YulLiteral","src":"10249:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"10239:6:64","nodeType":"YulIdentifier","src":"10239:6:64"},"nativeSrc":"10239:88:64","nodeType":"YulFunctionCall","src":"10239:88:64"},"nativeSrc":"10239:88:64","nodeType":"YulExpressionStatement","src":"10239:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10343:1:64","nodeType":"YulLiteral","src":"10343:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"10346:4:64","nodeType":"YulLiteral","src":"10346:4:64","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"10336:6:64","nodeType":"YulIdentifier","src":"10336:6:64"},"nativeSrc":"10336:15:64","nodeType":"YulFunctionCall","src":"10336:15:64"},"nativeSrc":"10336:15:64","nodeType":"YulExpressionStatement","src":"10336:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10367:1:64","nodeType":"YulLiteral","src":"10367:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10370:4:64","nodeType":"YulLiteral","src":"10370:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"10360:6:64","nodeType":"YulIdentifier","src":"10360:6:64"},"nativeSrc":"10360:15:64","nodeType":"YulFunctionCall","src":"10360:15:64"},"nativeSrc":"10360:15:64","nodeType":"YulExpressionStatement","src":"10360:15:64"}]},"name":"panic_error_0x11","nativeSrc":"10201:180:64","nodeType":"YulFunctionDefinition","src":"10201:180:64"},{"body":{"nativeSrc":"10430:190:64","nodeType":"YulBlock","src":"10430:190:64","statements":[{"nativeSrc":"10440:33:64","nodeType":"YulAssignment","src":"10440:33:64","value":{"arguments":[{"name":"value","nativeSrc":"10467:5:64","nodeType":"YulIdentifier","src":"10467:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"10449:17:64","nodeType":"YulIdentifier","src":"10449:17:64"},"nativeSrc":"10449:24:64","nodeType":"YulFunctionCall","src":"10449:24:64"},"variableNames":[{"name":"value","nativeSrc":"10440:5:64","nodeType":"YulIdentifier","src":"10440:5:64"}]},{"body":{"nativeSrc":"10563:22:64","nodeType":"YulBlock","src":"10563:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"10565:16:64","nodeType":"YulIdentifier","src":"10565:16:64"},"nativeSrc":"10565:18:64","nodeType":"YulFunctionCall","src":"10565:18:64"},"nativeSrc":"10565:18:64","nodeType":"YulExpressionStatement","src":"10565:18:64"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"10488:5:64","nodeType":"YulIdentifier","src":"10488:5:64"},{"kind":"number","nativeSrc":"10495:66:64","nodeType":"YulLiteral","src":"10495:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"10485:2:64","nodeType":"YulIdentifier","src":"10485:2:64"},"nativeSrc":"10485:77:64","nodeType":"YulFunctionCall","src":"10485:77:64"},"nativeSrc":"10482:103:64","nodeType":"YulIf","src":"10482:103:64"},{"nativeSrc":"10594:20:64","nodeType":"YulAssignment","src":"10594:20:64","value":{"arguments":[{"name":"value","nativeSrc":"10605:5:64","nodeType":"YulIdentifier","src":"10605:5:64"},{"kind":"number","nativeSrc":"10612:1:64","nodeType":"YulLiteral","src":"10612:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10601:3:64","nodeType":"YulIdentifier","src":"10601:3:64"},"nativeSrc":"10601:13:64","nodeType":"YulFunctionCall","src":"10601:13:64"},"variableNames":[{"name":"ret","nativeSrc":"10594:3:64","nodeType":"YulIdentifier","src":"10594:3:64"}]}]},"name":"increment_t_uint256","nativeSrc":"10387:233:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10416:5:64","nodeType":"YulTypedName","src":"10416:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"10426:3:64","nodeType":"YulTypedName","src":"10426:3:64","type":""}],"src":"10387:233:64"},{"body":{"nativeSrc":"10740:34:64","nodeType":"YulBlock","src":"10740:34:64","statements":[{"nativeSrc":"10750:18:64","nodeType":"YulAssignment","src":"10750:18:64","value":{"name":"pos","nativeSrc":"10765:3:64","nodeType":"YulIdentifier","src":"10765:3:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"10750:11:64","nodeType":"YulIdentifier","src":"10750:11:64"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"10626:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10712:3:64","nodeType":"YulTypedName","src":"10712:3:64","type":""},{"name":"length","nativeSrc":"10717:6:64","nodeType":"YulTypedName","src":"10717:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"10728:11:64","nodeType":"YulTypedName","src":"10728:11:64","type":""}],"src":"10626:148:64"},{"body":{"nativeSrc":"10886:74:64","nodeType":"YulBlock","src":"10886:74:64","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"10908:6:64","nodeType":"YulIdentifier","src":"10908:6:64"},{"kind":"number","nativeSrc":"10916:1:64","nodeType":"YulLiteral","src":"10916:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10904:3:64","nodeType":"YulIdentifier","src":"10904:3:64"},"nativeSrc":"10904:14:64","nodeType":"YulFunctionCall","src":"10904:14:64"},{"hexValue":"68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f","kind":"string","nativeSrc":"10920:28:64","nodeType":"YulLiteral","src":"10920:28:64","type":"","value":"https://example.com/token/"}],"functionName":{"name":"mstore","nativeSrc":"10897:6:64","nodeType":"YulIdentifier","src":"10897:6:64"},"nativeSrc":"10897:52:64","nodeType":"YulFunctionCall","src":"10897:52:64"},"nativeSrc":"10897:52:64","nodeType":"YulExpressionStatement","src":"10897:52:64"}]},"name":"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","nativeSrc":"10780:180:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"10878:6:64","nodeType":"YulTypedName","src":"10878:6:64","type":""}],"src":"10780:180:64"},{"body":{"nativeSrc":"11134:254:64","nodeType":"YulBlock","src":"11134:254:64","statements":[{"nativeSrc":"11148:92:64","nodeType":"YulAssignment","src":"11148:92:64","value":{"arguments":[{"name":"pos","nativeSrc":"11232:3:64","nodeType":"YulIdentifier","src":"11232:3:64"},{"kind":"number","nativeSrc":"11237:2:64","nodeType":"YulLiteral","src":"11237:2:64","type":"","value":"26"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11155:76:64","nodeType":"YulIdentifier","src":"11155:76:64"},"nativeSrc":"11155:85:64","nodeType":"YulFunctionCall","src":"11155:85:64"},"variableNames":[{"name":"pos","nativeSrc":"11148:3:64","nodeType":"YulIdentifier","src":"11148:3:64"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"11342:3:64","nodeType":"YulIdentifier","src":"11342:3:64"}],"functionName":{"name":"store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f","nativeSrc":"11253:88:64","nodeType":"YulIdentifier","src":"11253:88:64"},"nativeSrc":"11253:93:64","nodeType":"YulFunctionCall","src":"11253:93:64"},"nativeSrc":"11253:93:64","nodeType":"YulExpressionStatement","src":"11253:93:64"},{"nativeSrc":"11359:19:64","nodeType":"YulAssignment","src":"11359:19:64","value":{"arguments":[{"name":"pos","nativeSrc":"11370:3:64","nodeType":"YulIdentifier","src":"11370:3:64"},{"kind":"number","nativeSrc":"11375:2:64","nodeType":"YulLiteral","src":"11375:2:64","type":"","value":"26"}],"functionName":{"name":"add","nativeSrc":"11366:3:64","nodeType":"YulIdentifier","src":"11366:3:64"},"nativeSrc":"11366:12:64","nodeType":"YulFunctionCall","src":"11366:12:64"},"variableNames":[{"name":"end","nativeSrc":"11359:3:64","nodeType":"YulIdentifier","src":"11359:3:64"}]}]},"name":"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"10970:418:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"11122:3:64","nodeType":"YulTypedName","src":"11122:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11130:3:64","nodeType":"YulTypedName","src":"11130:3:64","type":""}],"src":"10970:418:64"},{"body":{"nativeSrc":"11508:300:64","nodeType":"YulBlock","src":"11508:300:64","statements":[{"nativeSrc":"11522:53:64","nodeType":"YulVariableDeclaration","src":"11522:53:64","value":{"arguments":[{"name":"value","nativeSrc":"11569:5:64","nodeType":"YulIdentifier","src":"11569:5:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"11536:32:64","nodeType":"YulIdentifier","src":"11536:32:64"},"nativeSrc":"11536:39:64","nodeType":"YulFunctionCall","src":"11536:39:64"},"variables":[{"name":"length","nativeSrc":"11526:6:64","nodeType":"YulTypedName","src":"11526:6:64","type":""}]},{"nativeSrc":"11588:96:64","nodeType":"YulAssignment","src":"11588:96:64","value":{"arguments":[{"name":"pos","nativeSrc":"11672:3:64","nodeType":"YulIdentifier","src":"11672:3:64"},{"name":"length","nativeSrc":"11677:6:64","nodeType":"YulIdentifier","src":"11677:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11595:76:64","nodeType":"YulIdentifier","src":"11595:76:64"},"nativeSrc":"11595:89:64","nodeType":"YulFunctionCall","src":"11595:89:64"},"variableNames":[{"name":"pos","nativeSrc":"11588:3:64","nodeType":"YulIdentifier","src":"11588:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11736:5:64","nodeType":"YulIdentifier","src":"11736:5:64"},{"kind":"number","nativeSrc":"11743:4:64","nodeType":"YulLiteral","src":"11743:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11732:3:64","nodeType":"YulIdentifier","src":"11732:3:64"},"nativeSrc":"11732:16:64","nodeType":"YulFunctionCall","src":"11732:16:64"},{"name":"pos","nativeSrc":"11750:3:64","nodeType":"YulIdentifier","src":"11750:3:64"},{"name":"length","nativeSrc":"11755:6:64","nodeType":"YulIdentifier","src":"11755:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"11697:34:64","nodeType":"YulIdentifier","src":"11697:34:64"},"nativeSrc":"11697:65:64","nodeType":"YulFunctionCall","src":"11697:65:64"},"nativeSrc":"11697:65:64","nodeType":"YulExpressionStatement","src":"11697:65:64"},{"nativeSrc":"11775:23:64","nodeType":"YulAssignment","src":"11775:23:64","value":{"arguments":[{"name":"pos","nativeSrc":"11786:3:64","nodeType":"YulIdentifier","src":"11786:3:64"},{"name":"length","nativeSrc":"11791:6:64","nodeType":"YulIdentifier","src":"11791:6:64"}],"functionName":{"name":"add","nativeSrc":"11782:3:64","nodeType":"YulIdentifier","src":"11782:3:64"},"nativeSrc":"11782:16:64","nodeType":"YulFunctionCall","src":"11782:16:64"},"variableNames":[{"name":"end","nativeSrc":"11775:3:64","nodeType":"YulIdentifier","src":"11775:3:64"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"11398:410:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11489:5:64","nodeType":"YulTypedName","src":"11489:5:64","type":""},{"name":"pos","nativeSrc":"11496:3:64","nodeType":"YulTypedName","src":"11496:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"11504:3:64","nodeType":"YulTypedName","src":"11504:3:64","type":""}],"src":"11398:410:64"},{"body":{"nativeSrc":"12055:320:64","nodeType":"YulBlock","src":"12055:320:64","statements":[{"nativeSrc":"12070:155:64","nodeType":"YulAssignment","src":"12070:155:64","value":{"arguments":[{"name":"pos","nativeSrc":"12221:3:64","nodeType":"YulIdentifier","src":"12221:3:64"}],"functionName":{"name":"abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12077:142:64","nodeType":"YulIdentifier","src":"12077:142:64"},"nativeSrc":"12077:148:64","nodeType":"YulFunctionCall","src":"12077:148:64"},"variableNames":[{"name":"pos","nativeSrc":"12070:3:64","nodeType":"YulIdentifier","src":"12070:3:64"}]},{"nativeSrc":"12239:102:64","nodeType":"YulAssignment","src":"12239:102:64","value":{"arguments":[{"name":"value0","nativeSrc":"12328:6:64","nodeType":"YulIdentifier","src":"12328:6:64"},{"name":"pos","nativeSrc":"12337:3:64","nodeType":"YulIdentifier","src":"12337:3:64"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"12246:81:64","nodeType":"YulIdentifier","src":"12246:81:64"},"nativeSrc":"12246:95:64","nodeType":"YulFunctionCall","src":"12246:95:64"},"variableNames":[{"name":"pos","nativeSrc":"12239:3:64","nodeType":"YulIdentifier","src":"12239:3:64"}]},{"nativeSrc":"12355:10:64","nodeType":"YulAssignment","src":"12355:10:64","value":{"name":"pos","nativeSrc":"12362:3:64","nodeType":"YulIdentifier","src":"12362:3:64"},"variableNames":[{"name":"end","nativeSrc":"12355:3:64","nodeType":"YulIdentifier","src":"12355:3:64"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"11818:557:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12034:3:64","nodeType":"YulTypedName","src":"12034:3:64","type":""},{"name":"value0","nativeSrc":"12040:6:64","nodeType":"YulTypedName","src":"12040:6:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"12051:3:64","nodeType":"YulTypedName","src":"12051:3:64","type":""}],"src":"11818:557:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3, value4 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb(memPtr) {\n\n mstore(add(memPtr, 0), \"MockERC721: gimme more money!\")\n\n }\n\n function abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2685b9ac3f0314e7b3be3e5bd1f683b46587b0f8c94952a043b329537739d0fb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f(memPtr) {\n\n mstore(add(memPtr, 0), \"https://example.com/token/\")\n\n }\n\n function abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 26)\n store_literal_in_memory_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f(pos)\n end := add(pos, 26)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_84edbf1928fa02ec29a7eb57e02bc7d808d2097c2df403df0e71e3679d4bec4f_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n }\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100f2575f3560e01c80636817c76c11610089578063a22cb46511610058578063a22cb465146102fe578063b88d4fde14610326578063c87b56dd14610342578063e985e9c51461037e576100f2565b80636817c76c146102525780636a6278421461027c57806370a082311461029857806395d89b41146102d4576100f2565b806318160ddd116100c557806318160ddd146101b457806323b872dd146101de57806342842e0e146101fa5780636352211e14610216576100f2565b806301ffc9a7146100f657806306fdde0314610132578063081812fc1461015c578063095ea7b314610198575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610b16565b6103ba565b6040516101299190610b5b565b60405180910390f35b34801561013d575f80fd5b506101466103de565b6040516101539190610be4565b60405180910390f35b348015610167575f80fd5b50610182600480360381019061017d9190610c37565b61041b565b60405161018f9190610ca1565b60405180910390f35b6101b260048036038101906101ad9190610ce4565b61046e565b005b3480156101bf575f80fd5b506101c861047d565b6040516101d59190610d31565b60405180910390f35b6101f860048036038101906101f39190610d4a565b610482565b005b610214600480360381019061020f9190610d4a565b6105ac565b005b348015610221575f80fd5b5061023c60048036038101906102379190610c37565b6105e5565b6040516102499190610ca1565b60405180910390f35b34801561025d575f80fd5b50610266610608565b6040516102739190610d31565b60405180910390f35b61029660048036038101906102919190610d9a565b61060e565b005b3480156102a3575f80fd5b506102be60048036038101906102b99190610d9a565b610672565b6040516102cb9190610d31565b60405180910390f35b3480156102df575f80fd5b506102e86106bf565b6040516102f59190610be4565b60405180910390f35b348015610309575f80fd5b50610324600480360381019061031f9190610def565b6106fc565b005b610340600480360381019061033b9190610e8e565b61074f565b005b34801561034d575f80fd5b5061036860048036038101906103639190610c37565b6107bf565b6040516103759190610be4565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f9190610f12565b6107f0565b6040516103b19190610b5b565b60405180910390f35b5f8160e01c635b5e139f81146380ac58cd82146301ffc9a783141717915050919050565b60606040518060400160405280600b81526020017f4d6f636b20455243373231000000000000000000000000000000000000000000815250905090565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f2082018201805460601b6104615763ceea21b65f526004601cfd5b8060010154915050919050565b610479338383610812565b5050565b5f5481565b61048d8383836108c2565b5f1960601c83811693508281169250815f52337f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f2082018201805480831686811481026104f05767ceea21b6a1148100811560021b526004601cfd5b865f5282600101548033148833141761051b576030600c205461051a57634b6e7f185f526004601cfd5b5b8015610528575f84600101555b5085871882188355601c600c206001815403815550855f52601c600c20600181540163ffffffff8116880261056c5767ea553b3401336cea881560021b526004601cfd5b80825550508486887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a4505050506105a78383836108c7565b505050565b6105b7838383610482565b6105c0826108cc565b156105e0576105df83838360405180602001604052805f8152506108d6565b5b505050565b5f6105ef82610960565b9050806106035763ceea21b65f526004601cfd5b919050565b60015481565b600154341015610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a90610f9a565b60405180910390fd5b61066f815f80815461066490610fe5565b91905081905561099e565b50565b5f8161068557638f4eb6045f526004601cfd5b7f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c52815f5263ffffffff601c600c2054169050919050565b60606040518060400160405280600481526020017f4d4f434b00000000000000000000000000000000000000000000000000000000815250905090565b801515905081601c52670a5a2e7a00000000600852335f52806030600c2055805f528160601b60601c337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160205fa35050565b61075a858585610482565b610763846108cc565b156107b8576107b785858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506108d6565b5b5050505050565b60606107ca82610a6a565b6040516020016107da91906110b0565b6040516020818303038152906040529050919050565b5f81601c52670a5a2e7a00000000600852825f526030600c2054905092915050565b5f1960601c82811692508381169350815f52837f7d8825530a5a2e7a00000000000000000000000000000000000000000000000017601c5260205f208201820180548216806108685763ceea21b65f526004601cfd5b80861486151761088d57805f526030600c205461088c57634b6e7f185f526004601cfd5b5b8482600101558385827f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f38a4505050505050565b505050565b505050565b5f813b9050919050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a0840152801561091d578060c08401826020870160045afa505b60208360a48301601c86015f8a5af161093f573d1561093e573d5f843e3d83fd5b5b8160e01b8351146109575763d1a57ed65f526004601cfd5b50505050505050565b5f815f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f20820182015460601b60601c9050919050565b6109a95f83836108c2565b8160601b60601c9150805f527f7d8825530a5a2e7a000000000000000000000000000000000000000000000000601c5260205f208101810180548060601b156109f95763c991cbb15f526004601cfd5b8381178255835f52601c600c20600181540163ffffffff81168602610a2d5767ea553b3401336cea861560021b526004601cfd5b808255505082845f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f38a45050610a665f83836108c7565b5050565b60606080604051019050602081016040525f8152805f19835b600115610aa4578184019350600a81066030018453600a8104905080610a83575b50828203602084039350808452505050919050565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610af581610ac1565b8114610aff575f80fd5b50565b5f81359050610b1081610aec565b92915050565b5f60208284031215610b2b57610b2a610ab9565b5b5f610b3884828501610b02565b91505092915050565b5f8115159050919050565b610b5581610b41565b82525050565b5f602082019050610b6e5f830184610b4c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610bb682610b74565b610bc08185610b7e565b9350610bd0818560208601610b8e565b610bd981610b9c565b840191505092915050565b5f6020820190508181035f830152610bfc8184610bac565b905092915050565b5f819050919050565b610c1681610c04565b8114610c20575f80fd5b50565b5f81359050610c3181610c0d565b92915050565b5f60208284031215610c4c57610c4b610ab9565b5b5f610c5984828501610c23565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610c8b82610c62565b9050919050565b610c9b81610c81565b82525050565b5f602082019050610cb45f830184610c92565b92915050565b610cc381610c81565b8114610ccd575f80fd5b50565b5f81359050610cde81610cba565b92915050565b5f8060408385031215610cfa57610cf9610ab9565b5b5f610d0785828601610cd0565b9250506020610d1885828601610c23565b9150509250929050565b610d2b81610c04565b82525050565b5f602082019050610d445f830184610d22565b92915050565b5f805f60608486031215610d6157610d60610ab9565b5b5f610d6e86828701610cd0565b9350506020610d7f86828701610cd0565b9250506040610d9086828701610c23565b9150509250925092565b5f60208284031215610daf57610dae610ab9565b5b5f610dbc84828501610cd0565b91505092915050565b610dce81610b41565b8114610dd8575f80fd5b50565b5f81359050610de981610dc5565b92915050565b5f8060408385031215610e0557610e04610ab9565b5b5f610e1285828601610cd0565b9250506020610e2385828601610ddb565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610e4e57610e4d610e2d565b5b8235905067ffffffffffffffff811115610e6b57610e6a610e31565b5b602083019150836001820283011115610e8757610e86610e35565b5b9250929050565b5f805f805f60808688031215610ea757610ea6610ab9565b5b5f610eb488828901610cd0565b9550506020610ec588828901610cd0565b9450506040610ed688828901610c23565b935050606086013567ffffffffffffffff811115610ef757610ef6610abd565b5b610f0388828901610e39565b92509250509295509295909350565b5f8060408385031215610f2857610f27610ab9565b5b5f610f3585828601610cd0565b9250506020610f4685828601610cd0565b9150509250929050565b7f4d6f636b4552433732313a2067696d6d65206d6f7265206d6f6e6579210000005f82015250565b5f610f84601d83610b7e565b9150610f8f82610f50565b602082019050919050565b5f6020820190508181035f830152610fb181610f78565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fef82610c04565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361102157611020610fb8565b5b600182019050919050565b5f81905092915050565b7f68747470733a2f2f6578616d706c652e636f6d2f746f6b656e2f0000000000005f82015250565b5f61106a601a8361102c565b915061107582611036565b601a82019050919050565b5f61108a82610b74565b611094818561102c565b93506110a4818560208601610b8e565b80840191505092915050565b5f6110ba8261105e565b91506110c68284611080565b91508190509291505056fea26469706673582212200d54f13f4e25bc3fd42f7d0be9cd8d406ccef5fb808a2e37a2ce453b6c2ebe3264736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF2 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6817C76C GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x326 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x37E JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x6817C76C EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x298 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x2D4 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x1B4 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x1FA JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x216 JUMPI PUSH2 0xF2 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x132 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x198 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x101 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x117 SWAP2 SWAP1 PUSH2 0xB16 JUMP JUMPDEST PUSH2 0x3BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x129 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x146 PUSH2 0x3DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x153 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x167 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x182 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x18F SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AD SWAP2 SWAP1 PUSH2 0xCE4 JUMP JUMPDEST PUSH2 0x46E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C8 PUSH2 0x47D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1F3 SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x482 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x214 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20F SWAP2 SWAP1 PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x221 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x23C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x237 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x5E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x249 SWAP2 SWAP1 PUSH2 0xCA1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x25D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x266 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x273 SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x296 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x291 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x60E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2BE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2B9 SWAP2 SWAP1 PUSH2 0xD9A JUMP JUMPDEST PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0xD31 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2DF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E8 PUSH2 0x6BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2F5 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x309 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x324 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x31F SWAP2 SWAP1 PUSH2 0xDEF JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x340 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33B SWAP2 SWAP1 PUSH2 0xE8E JUMP JUMPDEST PUSH2 0x74F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x34D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x368 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x363 SWAP2 SWAP1 PUSH2 0xC37 JUMP JUMPDEST PUSH2 0x7BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x375 SWAP2 SWAP1 PUSH2 0xBE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x389 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0xF12 JUMP JUMPDEST PUSH2 0x7F0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0xB5B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 DUP2 PUSH1 0xE0 SHR PUSH4 0x5B5E139F DUP2 EQ PUSH4 0x80AC58CD DUP3 EQ PUSH4 0x1FFC9A7 DUP4 EQ OR OR SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D6F636B20455243373231000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD PUSH1 0x60 SHL PUSH2 0x461 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x479 CALLER DUP4 DUP4 PUSH2 0x812 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x48D DUP4 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP4 DUP2 AND SWAP4 POP DUP3 DUP2 AND SWAP3 POP DUP2 PUSH0 MSTORE CALLER PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP1 DUP4 AND DUP7 DUP2 EQ DUP2 MUL PUSH2 0x4F0 JUMPI PUSH8 0xCEEA21B6A1148100 DUP2 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 PUSH0 MSTORE DUP3 PUSH1 0x1 ADD SLOAD DUP1 CALLER EQ DUP9 CALLER EQ OR PUSH2 0x51B JUMPI PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x51A JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP1 ISZERO PUSH2 0x528 JUMPI PUSH0 DUP5 PUSH1 0x1 ADD SSTORE JUMPDEST POP DUP6 DUP8 XOR DUP3 XOR DUP4 SSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD SUB DUP2 SSTORE POP DUP6 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP9 MUL PUSH2 0x56C JUMPI PUSH8 0xEA553B3401336CEA DUP9 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP5 DUP7 DUP9 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP POP POP PUSH2 0x5A7 DUP4 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP4 DUP4 DUP4 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x5C0 DUP3 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x5E0 JUMPI PUSH2 0x5DF DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH0 DUP2 MSTORE POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x5EF DUP3 PUSH2 0x960 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x603 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x653 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x64A SWAP1 PUSH2 0xF9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x66F DUP2 PUSH0 DUP1 DUP2 SLOAD PUSH2 0x664 SWAP1 PUSH2 0xFE5 JUMP JUMPDEST SWAP2 SWAP1 POP DUP2 SWAP1 SSTORE PUSH2 0x99E JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH2 0x685 JUMPI PUSH4 0x8F4EB604 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE DUP2 PUSH0 MSTORE PUSH4 0xFFFFFFFF PUSH1 0x1C PUSH1 0xC KECCAK256 SLOAD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D4F434B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO SWAP1 POP DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x30 PUSH1 0xC KECCAK256 SSTORE DUP1 PUSH0 MSTORE DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR CALLER PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 PUSH1 0x20 PUSH0 LOG3 POP POP JUMP JUMPDEST PUSH2 0x75A DUP6 DUP6 DUP6 PUSH2 0x482 JUMP JUMPDEST PUSH2 0x763 DUP5 PUSH2 0x8CC JUMP JUMPDEST ISZERO PUSH2 0x7B8 JUMPI PUSH2 0x7B7 DUP6 DUP6 DUP6 DUP6 DUP6 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x8D6 JUMP JUMPDEST JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x7CA DUP3 PUSH2 0xA6A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x7DA SWAP2 SWAP1 PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x1C MSTORE PUSH8 0xA5A2E7A00000000 PUSH1 0x8 MSTORE DUP3 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 NOT PUSH1 0x60 SHR DUP3 DUP2 AND SWAP3 POP DUP4 DUP2 AND SWAP4 POP DUP2 PUSH0 MSTORE DUP4 PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 OR PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD DUP1 SLOAD DUP3 AND DUP1 PUSH2 0x868 JUMPI PUSH4 0xCEEA21B6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP7 EQ DUP7 ISZERO OR PUSH2 0x88D JUMPI DUP1 PUSH0 MSTORE PUSH1 0x30 PUSH1 0xC KECCAK256 SLOAD PUSH2 0x88C JUMPI PUSH4 0x4B6E7F18 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST DUP5 DUP3 PUSH1 0x1 ADD SSTORE DUP4 DUP6 DUP3 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH0 CODESIZE LOG4 POP POP POP POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP2 EXTCODESIZE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x150B7A02 DUP1 DUP3 MSTORE CALLER PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x60 SHL PUSH1 0x60 SHR PUSH1 0x40 DUP4 ADD MSTORE DUP4 PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0xA0 DUP5 ADD MSTORE DUP1 ISZERO PUSH2 0x91D JUMPI DUP1 PUSH1 0xC0 DUP5 ADD DUP3 PUSH1 0x20 DUP8 ADD PUSH1 0x4 GAS STATICCALL POP JUMPDEST PUSH1 0x20 DUP4 PUSH1 0xA4 DUP4 ADD PUSH1 0x1C DUP7 ADD PUSH0 DUP11 GAS CALL PUSH2 0x93F JUMPI RETURNDATASIZE ISZERO PUSH2 0x93E JUMPI RETURNDATASIZE PUSH0 DUP5 RETURNDATACOPY RETURNDATASIZE DUP4 REVERT JUMPDEST JUMPDEST DUP2 PUSH1 0xE0 SHL DUP4 MLOAD EQ PUSH2 0x957 JUMPI PUSH4 0xD1A57ED6 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP3 ADD DUP3 ADD SLOAD PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9A9 PUSH0 DUP4 DUP4 PUSH2 0x8C2 JUMP JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP1 PUSH0 MSTORE PUSH32 0x7D8825530A5A2E7A000000000000000000000000000000000000000000000000 PUSH1 0x1C MSTORE PUSH1 0x20 PUSH0 KECCAK256 DUP2 ADD DUP2 ADD DUP1 SLOAD DUP1 PUSH1 0x60 SHL ISZERO PUSH2 0x9F9 JUMPI PUSH4 0xC991CBB1 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 OR DUP3 SSTORE DUP4 PUSH0 MSTORE PUSH1 0x1C PUSH1 0xC KECCAK256 PUSH1 0x1 DUP2 SLOAD ADD PUSH4 0xFFFFFFFF DUP2 AND DUP7 MUL PUSH2 0xA2D JUMPI PUSH8 0xEA553B3401336CEA DUP7 ISZERO PUSH1 0x2 SHL MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 SSTORE POP POP DUP3 DUP5 PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH0 CODESIZE LOG4 POP POP PUSH2 0xA66 PUSH0 DUP4 DUP4 PUSH2 0x8C7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x80 PUSH1 0x40 MLOAD ADD SWAP1 POP PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE PUSH0 DUP2 MSTORE DUP1 PUSH0 NOT DUP4 JUMPDEST PUSH1 0x1 ISZERO PUSH2 0xAA4 JUMPI DUP2 DUP5 ADD SWAP4 POP PUSH1 0xA DUP2 MOD PUSH1 0x30 ADD DUP5 MSTORE8 PUSH1 0xA DUP2 DIV SWAP1 POP DUP1 PUSH2 0xA83 JUMPI JUMPDEST POP DUP3 DUP3 SUB PUSH1 0x20 DUP5 SUB SWAP4 POP DUP1 DUP5 MSTORE POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xAF5 DUP2 PUSH2 0xAC1 JUMP JUMPDEST DUP2 EQ PUSH2 0xAFF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB10 DUP2 PUSH2 0xAEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB2B JUMPI PUSH2 0xB2A PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xB38 DUP5 DUP3 DUP6 ADD PUSH2 0xB02 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB6E PUSH0 DUP4 ADD DUP5 PUSH2 0xB4C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xBB6 DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0xBC0 DUP2 DUP6 PUSH2 0xB7E JUMP JUMPDEST SWAP4 POP PUSH2 0xBD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST PUSH2 0xBD9 DUP2 PUSH2 0xB9C JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xBFC DUP2 DUP5 PUSH2 0xBAC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC16 DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP2 EQ PUSH2 0xC20 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC31 DUP2 PUSH2 0xC0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC4C JUMPI PUSH2 0xC4B PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xC59 DUP5 DUP3 DUP6 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xC8B DUP3 PUSH2 0xC62 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC9B DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB4 PUSH0 DUP4 ADD DUP5 PUSH2 0xC92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xCC3 DUP2 PUSH2 0xC81 JUMP JUMPDEST DUP2 EQ PUSH2 0xCCD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xCDE DUP2 PUSH2 0xCBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCFA JUMPI PUSH2 0xCF9 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD07 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD18 DUP6 DUP3 DUP7 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xC04 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD44 PUSH0 DUP4 ADD DUP5 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xD7F DUP7 DUP3 DUP8 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD90 DUP7 DUP3 DUP8 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xDAF JUMPI PUSH2 0xDAE PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDBC DUP5 DUP3 DUP6 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDCE DUP2 PUSH2 0xB41 JUMP JUMPDEST DUP2 EQ PUSH2 0xDD8 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xDE9 DUP2 PUSH2 0xDC5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE05 JUMPI PUSH2 0xE04 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xE12 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xE23 DUP6 DUP3 DUP7 ADD PUSH2 0xDDB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE4E JUMPI PUSH2 0xE4D PUSH2 0xE2D JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6B JUMPI PUSH2 0xE6A PUSH2 0xE31 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE87 JUMPI PUSH2 0xE86 PUSH2 0xE35 JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0xEA7 JUMPI PUSH2 0xEA6 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xEB4 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0xEC5 DUP9 DUP3 DUP10 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0xED6 DUP9 DUP3 DUP10 ADD PUSH2 0xC23 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEF7 JUMPI PUSH2 0xEF6 PUSH2 0xABD JUMP JUMPDEST JUMPDEST PUSH2 0xF03 DUP9 DUP3 DUP10 ADD PUSH2 0xE39 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF28 JUMPI PUSH2 0xF27 PUSH2 0xAB9 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xF35 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xF46 DUP6 DUP3 DUP7 ADD PUSH2 0xCD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4D6F636B4552433732313A2067696D6D65206D6F7265206D6F6E657921000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0xF84 PUSH1 0x1D DUP4 PUSH2 0xB7E JUMP JUMPDEST SWAP2 POP PUSH2 0xF8F DUP3 PUSH2 0xF50 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0xFB1 DUP2 PUSH2 0xF78 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH2 0xFEF DUP3 PUSH2 0xC04 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1021 JUMPI PUSH2 0x1020 PUSH2 0xFB8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x68747470733A2F2F6578616D706C652E636F6D2F746F6B656E2F000000000000 PUSH0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH0 PUSH2 0x106A PUSH1 0x1A DUP4 PUSH2 0x102C JUMP JUMPDEST SWAP2 POP PUSH2 0x1075 DUP3 PUSH2 0x1036 JUMP JUMPDEST PUSH1 0x1A DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x108A DUP3 PUSH2 0xB74 JUMP JUMPDEST PUSH2 0x1094 DUP2 DUP6 PUSH2 0x102C JUMP JUMPDEST SWAP4 POP PUSH2 0x10A4 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xB8E JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x10BA DUP3 PUSH2 0x105E JUMP JUMPDEST SWAP2 POP PUSH2 0x10C6 DUP3 DUP5 PUSH2 0x1080 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD SLOAD CALL EXTCODEHASH 0x4E 0x25 0xBC EXTCODEHASH 0xD4 0x2F PUSH30 0xBE9CD8D406CCEF5FB808A2E37A2CE453B6C2EBE3264736F6C634300081A STOP CALLER ","sourceMap":"679:706:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14864:380:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;790:98:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8099:532:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8925:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;715:26:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10748:2886:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13705:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6957:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;747:36:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;993:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7433:533:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;894:93:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9667:726:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14406:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1198:185:59;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9135:392:19;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14864:380;14940:11;15047;15042:3;15038:21;15216:10;15213:1;15210:17;15196:10;15193:1;15190:17;15177:10;15174:1;15171:17;15168:40;15165:63;15155:73;;15015:223;14864:380;;;:::o;790:98:59:-;836:13;861:20;;;;;;;;;;;;;;;;;;;790:98;:::o;8099:532:19:-;8161:14;8266:2;8260:4;8253:16;8295:24;8289:4;8282:38;8386:4;8380;8370:21;8366:2;8362:30;8358:2;8354:39;8430:13;8424:20;8420:2;8416:29;8406:158;;8478:10;8472:4;8465:24;8545:4;8539;8532:18;8406:158;8600:13;8597:1;8593:21;8587:28;8577:38;;8239:386;8099:532;;;:::o;8925:119::-;9004:33;9013:10;9025:7;9034:2;9004:8;:33::i;:::-;8925:119;;:::o;715:26:59:-;;;;:::o;10748:2886:19:-;10841:34;10862:4;10868:2;10872;10841:20;:34::i;:::-;11025:1;11021:6;11017:2;11013:15;11069:4;11053:14;11049:25;11041:33;;11113:2;11097:14;11093:23;11087:29;;11182:2;11176:4;11169:16;11240:8;11214:24;11211:38;11205:4;11198:52;11316:4;11310;11300:21;11296:2;11292:30;11288:2;11284:39;11365:13;11359:20;11425:15;11409:14;11405:36;11567:4;11560:5;11557:15;11550:5;11546:27;11536:229;;11697:18;11688:5;11681:13;11678:1;11674:21;11667:49;11746:4;11740;11733:18;11536:229;11868:4;11862;11855:18;11926:13;11923:1;11919:21;11913:28;12076:15;12066:8;12063:29;12056:4;12046:8;12043:18;12040:53;12030:288;;12149:4;12143;12133:21;12127:28;12117:183;;12196:10;12190:4;12183:24;12273:4;12267;12260:18;12117:183;12030:288;12393:15;12390:55;;;12441:1;12425:13;12422:1;12418:21;12411:32;12390:55;11837:622;12567:2;12561:4;12557:13;12540:15;12536:35;12521:13;12514:58;12690:4;12684;12674:21;12764:1;12746:15;12740:22;12736:30;12719:15;12712:55;12633:148;12871:2;12865:4;12858:16;12928:4;12922;12912:21;13003:1;12987:13;12981:20;12977:28;13157:20;13136:19;13132:46;13128:2;13124:55;13114:270;;13308:18;13302:2;13295:10;13292:1;13288:18;13281:46;13361:4;13355;13348:18;13114:270;13423:19;13408:13;13401:42;12840:617;;13572:2;13568;13562:4;13535:25;13529:4;13517:10;13512:63;10937:2648;;;;13594:33;13614:4;13620:2;13624;13594:19;:33::i;:::-;10748:2886;;;:::o;13705:198::-;13802:26;13815:4;13821:2;13825;13802:12;:26::i;:::-;13842:12;13851:2;13842:8;:12::i;:::-;13838:58;;;13856:40;13879:4;13885:2;13889;13856:40;;;;;;;;;;;;:22;:40::i;:::-;13838:58;13705:198;;;:::o;6957:332::-;7015:14;7050:12;7059:2;7050:8;:12::i;:::-;7041:21;;7148:6;7138:135;;7187:10;7181:4;7174:24;7254:4;7248;7241:18;7138:135;6957:332;;;:::o;747:36:59:-;;;;:::o;993:199::-;1065:9;;1052;:22;;1044:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1161:24;1167:2;1173:11;;1171:13;;;;;:::i;:::-;;;;;;;1161:5;:24::i;:::-;993:199;:::o;7433:533:19:-;7496:14;7656:5;7646:143;;7694:10;7688:4;7681:24;7770:4;7764;7757:18;7646:143;7815:24;7809:4;7802:38;7866:5;7860:4;7853:19;7929:20;7921:4;7915;7905:21;7899:28;7895:55;7885:65;;7433:533;;;:::o;894:93:59:-;942:13;967;;;;;;;;;;;;;;;;;;;894:93;:::o;9667:726:19:-;9882:10;9875:18;9868:26;9854:40;;9991:8;9985:4;9978:22;10026:31;10020:4;10013:45;10084:8;10078:4;10071:22;10136:10;10129:4;10123;10113:21;10106:41;10221:10;10215:4;10208:24;10366:8;10362:2;10358:17;10354:2;10350:26;10340:8;10305:33;10299:4;10293;10288:89;9667:726;;:::o;14406:249::-;14552:26;14565:4;14571:2;14575;14552:12;:26::i;:::-;14592:12;14601:2;14592:8;:12::i;:::-;14588:60;;;14606:42;14629:4;14635:2;14639;14643:4;;14606:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:22;:42::i;:::-;14588:60;14406:249;;;;;:::o;1198:185:59:-;1266:13;1352:22;1371:2;1352:18;:22::i;:::-;1305:70;;;;;;;;:::i;:::-;;;;;;;;;;;;;1291:85;;1198:185;;;:::o;9135:392:19:-;9255:11;9361:8;9355:4;9348:22;9396:31;9390:4;9383:45;9454:5;9448:4;9441:19;9505:4;9499;9489:21;9483:28;9473:38;;9135:392;;;;:::o;29039:1442::-;29222:1;29218:6;29214:2;29210:15;29269:7;29253:14;29249:28;29238:39;;29316:2;29300:14;29296:23;29290:29;;29389:2;29383:4;29376:16;29447:2;29421:24;29418:32;29412:4;29405:46;29517:4;29511;29501:21;29497:2;29493:30;29489:2;29485:39;29576:13;29570:20;29554:14;29550:41;29665:5;29655:134;;29703:10;29697:4;29690:24;29770:4;29764;29757:18;29655:134;29972:5;29968:2;29965:13;29960:2;29953:10;29950:29;29940:280;;30012:5;30006:4;29999:19;30067:4;30061;30051:21;30045:28;30035:171;;30110:10;30104:4;30097:24;30183:4;30177;30170:18;30035:171;29940:280;30333:7;30317:13;30314:1;30310:21;30303:38;30462:2;30453:7;30446:5;30419:25;30413:4;30401:10;30396:69;29134:1341;;;29039:1442;;;:::o;37597:87::-;;;;:::o;37781:86::-;;;;:::o;38217:212::-;38268:11;38379:1;38367:14;38357:24;;38217:212;;;:::o;38588:1370::-;38825:4;38819:11;38875:10;38908:24;38905:1;38898:35;38967:8;38960:4;38957:1;38953:12;38946:30;39075:4;39071:2;39067:13;39063:2;39059:22;39052:4;39049:1;39045:12;39038:44;39116:2;39109:4;39106:1;39102:12;39095:24;39153:4;39146;39143:1;39139:12;39132:26;39186:4;39180:11;39225:1;39218:4;39215:1;39211:12;39204:23;39243:1;39240:71;;;39306:1;39299:4;39296:1;39292:12;39289:1;39282:4;39276;39272:15;39269:1;39262:5;39251:57;39247:62;39240:71;39427:4;39424:1;39417:4;39414:1;39410:12;39403:4;39400:1;39396:12;39393:1;39389:2;39382:5;39377:55;39367:313;;39455:16;39452:214;;;39583:16;39577:4;39574:1;39559:41;39631:16;39628:1;39621:27;39452:214;39367:313;39776:24;39771:3;39767:34;39763:1;39757:8;39754:48;39744:198;;39835:10;39829:4;39822:24;39923:4;39917;39910:18;39744:198;38759:1193;;;38588:1370;;;;:::o;16037:323::-;16098:14;16203:2;16197:4;16190:16;16232:24;16226:4;16219:38;16334:4;16328;16318:21;16314:2;16310:30;16306:2;16302:39;16296:46;16292:2;16288:55;16284:2;16280:64;16270:74;;16037:323;;;:::o;19609:1653::-;19675:40;19704:1;19708:2;19712;19675:20;:40::i;:::-;19853:2;19849;19845:11;19841:2;19837:20;19831:26;;19923:2;19917:4;19910:16;19952:24;19946:4;19939:38;20043:4;20037;20027:21;20023:2;20019:30;20015:2;20011:39;20092:13;20086:20;20181:15;20177:2;20173:24;20170:146;;;20229:10;20223:4;20216:24;20297:4;20291;20284:18;20170:146;20409:2;20392:15;20389:23;20374:13;20367:46;20508:2;20502:4;20495:16;20563:4;20557;20547:21;20634:1;20620:11;20614:18;20610:26;20786:20;20767:17;20763:44;20759:2;20755:53;20745:268;;20937:18;20931:2;20924:10;20921:1;20917:18;20910:46;20990:4;20984;20977:18;20745:268;21050:17;21037:11;21030:38;20477:605;;21194:2;21190;21187:1;21160:25;21154:4;21142:10;21137:60;19777:1430;;21216:39;21244:1;21248:2;21252;21216:19;:39::i;:::-;19609:1653;;:::o;1946:1641:23:-;2002:17;2447:4;2440;2434:11;2430:22;2423:29;;2546:4;2541:3;2537:14;2531:4;2524:28;2627:1;2622:3;2615:14;2728:3;2758:1;2754:6;2967:5;2949:402;2975:1;2949:402;;;3014:1;3009:3;3005:11;2998:18;;3200:2;3194:4;3190:13;3186:2;3182:22;3177:3;3169:36;3292:2;3286:4;3282:13;3274:21;;3322:4;2949:402;3312:25;2949:402;2953:21;3388:3;3383;3379:13;3501:4;3496:3;3492:14;3485:21;;3564:6;3559:3;3552:19;2083:1498;;;1946:1641;;;:::o;88:117:64:-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:139::-;1887:6;1882:3;1877;1871:23;1928:1;1919:6;1914:3;1910:16;1903:27;1798:139;;;:::o;1943:102::-;1984:6;2035:2;2031:7;2026:2;2019:5;2015:14;2011:28;2001:38;;1943:102;;;:::o;2051:377::-;2139:3;2167:39;2200:5;2167:39;:::i;:::-;2222:71;2286:6;2281:3;2222:71;:::i;:::-;2215:78;;2302:65;2360:6;2355:3;2348:4;2341:5;2337:16;2302:65;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2143:285;2051:377;;;;:::o;2434:313::-;2547:4;2585:2;2574:9;2570:18;2562:26;;2634:9;2628:4;2624:20;2620:1;2609:9;2605:17;2598:47;2662:78;2735:4;2726:6;2662:78;:::i;:::-;2654:86;;2434:313;;;;:::o;2753:77::-;2790:7;2819:5;2808:16;;2753:77;;;:::o;2836:122::-;2909:24;2927:5;2909:24;:::i;:::-;2902:5;2899:35;2889:63;;2948:1;2945;2938:12;2889:63;2836:122;:::o;2964:139::-;3010:5;3048:6;3035:20;3026:29;;3064:33;3091:5;3064:33;:::i;:::-;2964:139;;;;:::o;3109:329::-;3168:6;3217:2;3205:9;3196:7;3192:23;3188:32;3185:119;;;3223:79;;:::i;:::-;3185:119;3343:1;3368:53;3413:7;3404:6;3393:9;3389:22;3368:53;:::i;:::-;3358:63;;3314:117;3109:329;;;;:::o;3444:126::-;3481:7;3521:42;3514:5;3510:54;3499:65;;3444:126;;;:::o;3576:96::-;3613:7;3642:24;3660:5;3642:24;:::i;:::-;3631:35;;3576:96;;;:::o;3678:118::-;3765:24;3783:5;3765:24;:::i;:::-;3760:3;3753:37;3678:118;;:::o;3802:222::-;3895:4;3933:2;3922:9;3918:18;3910:26;;3946:71;4014:1;4003:9;3999:17;3990:6;3946:71;:::i;:::-;3802:222;;;;:::o;4030:122::-;4103:24;4121:5;4103:24;:::i;:::-;4096:5;4093:35;4083:63;;4142:1;4139;4132:12;4083:63;4030:122;:::o;4158:139::-;4204:5;4242:6;4229:20;4220:29;;4258:33;4285:5;4258:33;:::i;:::-;4158:139;;;;:::o;4303:474::-;4371:6;4379;4428:2;4416:9;4407:7;4403:23;4399:32;4396:119;;;4434:79;;:::i;:::-;4396:119;4554:1;4579:53;4624:7;4615:6;4604:9;4600:22;4579:53;:::i;:::-;4569:63;;4525:117;4681:2;4707:53;4752:7;4743:6;4732:9;4728:22;4707:53;:::i;:::-;4697:63;;4652:118;4303:474;;;;;:::o;4783:118::-;4870:24;4888:5;4870:24;:::i;:::-;4865:3;4858:37;4783:118;;:::o;4907:222::-;5000:4;5038:2;5027:9;5023:18;5015:26;;5051:71;5119:1;5108:9;5104:17;5095:6;5051:71;:::i;:::-;4907:222;;;;:::o;5135:619::-;5212:6;5220;5228;5277:2;5265:9;5256:7;5252:23;5248:32;5245:119;;;5283:79;;:::i;:::-;5245:119;5403:1;5428:53;5473:7;5464:6;5453:9;5449:22;5428:53;:::i;:::-;5418:63;;5374:117;5530:2;5556:53;5601:7;5592:6;5581:9;5577:22;5556:53;:::i;:::-;5546:63;;5501:118;5658:2;5684:53;5729:7;5720:6;5709:9;5705:22;5684:53;:::i;:::-;5674:63;;5629:118;5135:619;;;;;:::o;5760:329::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:119;;;5874:79;;:::i;:::-;5836:119;5994:1;6019:53;6064:7;6055:6;6044:9;6040:22;6019:53;:::i;:::-;6009:63;;5965:117;5760:329;;;;:::o;6095:116::-;6165:21;6180:5;6165:21;:::i;:::-;6158:5;6155:32;6145:60;;6201:1;6198;6191:12;6145:60;6095:116;:::o;6217:133::-;6260:5;6298:6;6285:20;6276:29;;6314:30;6338:5;6314:30;:::i;:::-;6217:133;;;;:::o;6356:468::-;6421:6;6429;6478:2;6466:9;6457:7;6453:23;6449:32;6446:119;;;6484:79;;:::i;:::-;6446:119;6604:1;6629:53;6674:7;6665:6;6654:9;6650:22;6629:53;:::i;:::-;6619:63;;6575:117;6731:2;6757:50;6799:7;6790:6;6779:9;6775:22;6757:50;:::i;:::-;6747:60;;6702:115;6356:468;;;;;:::o;6830:117::-;6939:1;6936;6929:12;6953:117;7062:1;7059;7052:12;7076:117;7185:1;7182;7175:12;7212:552;7269:8;7279:6;7329:3;7322:4;7314:6;7310:17;7306:27;7296:122;;7337:79;;:::i;:::-;7296:122;7450:6;7437:20;7427:30;;7480:18;7472:6;7469:30;7466:117;;;7502:79;;:::i;:::-;7466:117;7616:4;7608:6;7604:17;7592:29;;7670:3;7662:4;7654:6;7650:17;7640:8;7636:32;7633:41;7630:128;;;7677:79;;:::i;:::-;7630:128;7212:552;;;;;:::o;7770:963::-;7867:6;7875;7883;7891;7899;7948:3;7936:9;7927:7;7923:23;7919:33;7916:120;;;7955:79;;:::i;:::-;7916:120;8075:1;8100:53;8145:7;8136:6;8125:9;8121:22;8100:53;:::i;:::-;8090:63;;8046:117;8202:2;8228:53;8273:7;8264:6;8253:9;8249:22;8228:53;:::i;:::-;8218:63;;8173:118;8330:2;8356:53;8401:7;8392:6;8381:9;8377:22;8356:53;:::i;:::-;8346:63;;8301:118;8486:2;8475:9;8471:18;8458:32;8517:18;8509:6;8506:30;8503:117;;;8539:79;;:::i;:::-;8503:117;8652:64;8708:7;8699:6;8688:9;8684:22;8652:64;:::i;:::-;8634:82;;;;8429:297;7770:963;;;;;;;;:::o;8739:474::-;8807:6;8815;8864:2;8852:9;8843:7;8839:23;8835:32;8832:119;;;8870:79;;:::i;:::-;8832:119;8990:1;9015:53;9060:7;9051:6;9040:9;9036:22;9015:53;:::i;:::-;9005:63;;8961:117;9117:2;9143:53;9188:7;9179:6;9168:9;9164:22;9143:53;:::i;:::-;9133:63;;9088:118;8739:474;;;;;:::o;9219:179::-;9359:31;9355:1;9347:6;9343:14;9336:55;9219:179;:::o;9404:366::-;9546:3;9567:67;9631:2;9626:3;9567:67;:::i;:::-;9560:74;;9643:93;9732:3;9643:93;:::i;:::-;9761:2;9756:3;9752:12;9745:19;;9404:366;;;:::o;9776:419::-;9942:4;9980:2;9969:9;9965:18;9957:26;;10029:9;10023:4;10019:20;10015:1;10004:9;10000:17;9993:47;10057:131;10183:4;10057:131;:::i;:::-;10049:139;;9776:419;;;:::o;10201:180::-;10249:77;10246:1;10239:88;10346:4;10343:1;10336:15;10370:4;10367:1;10360:15;10387:233;10426:3;10449:24;10467:5;10449:24;:::i;:::-;10440:33;;10495:66;10488:5;10485:77;10482:103;;10565:18;;:::i;:::-;10482:103;10612:1;10605:5;10601:13;10594:20;;10387:233;;;:::o;10626:148::-;10728:11;10765:3;10750:18;;10626:148;;;;:::o;10780:180::-;10920:28;10916:1;10908:6;10904:14;10897:52;10780:180;:::o;10970:418::-;11130:3;11155:85;11237:2;11232:3;11155:85;:::i;:::-;11148:92;;11253:93;11342:3;11253:93;:::i;:::-;11375:2;11370:3;11366:12;11359:19;;10970:418;;;:::o;11398:410::-;11504:3;11536:39;11569:5;11536:39;:::i;:::-;11595:89;11677:6;11672:3;11595:89;:::i;:::-;11588:96;;11697:65;11755:6;11750:3;11743:4;11736:5;11732:16;11697:65;:::i;:::-;11791:6;11786:3;11782:16;11775:23;;11508:300;11398:410;;;;:::o;11818:557::-;12051:3;12077:148;12221:3;12077:148;:::i;:::-;12070:155;;12246:95;12337:3;12328:6;12246:95;:::i;:::-;12239:102;;12362:3;12355:10;;11818:557;;;;:::o"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","mint(address)":"6a627842","mintPrice()":"6817c76c","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","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccountBalanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"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\":\"isApproved\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"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\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mintPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isApproved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccountBalanceOverflow()\":[{\"details\":\"The recipient's balance has overflowed.\"}],\"BalanceQueryForZeroAddress()\":[{\"details\":\"Cannot query the balance for the zero address.\"}],\"NotOwnerNorApproved()\":[{\"details\":\"Only the token owner or an approved account can manage the token.\"}],\"TokenAlreadyExists()\":[{\"details\":\"The token already exists.\"}],\"TokenDoesNotExist()\":[{\"details\":\"The token does not exist.\"}],\"TransferFromIncorrectOwner()\":[{\"details\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"details\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"details\":\"Cannot mint or transfer to the zero address.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `account` to manage the `id` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables `operator` to manage all of their tokens.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when token `id` is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Sets `account` as the approved account to manage token `id`. Requirements: - Token `id` must exist. - The caller must be the owner of the token, or an approved operator for the token owner. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens owned by `owner`. Requirements: - `owner` must not be the zero address.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved to manage token `id`. Requirements: - Token `id` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns whether `operator` is approved to manage the tokens of `owner`.\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of token `id`. Requirements: - Token `id` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, id, \\\"\\\")`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. - 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\":\"Sets whether `operator` is approved to manage the tokens of the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See: https://eips.ethereum.org/EIPS/eip-165 This function call must use less than 30000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for token `id`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers token `id` from `from` to `to`. Requirements: - Token `id` must exist. - `from` must be the owner of the token. - `to` cannot be the zero address. - The caller must be the owner of the token, or be approved to manage the token. Emits a {Transfer} event.\"}},\"title\":\"MockERC721\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A mock ERC721 token (FOR TESTING PURPOSES ONLY)\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/Mocks.sol\":\"MockERC721\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0x23dfcfc7d1aacb85515d4a7b2f67242588220226119a38b7882183e960cc0439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c865d374e7d22738f0390b6c94babd3a3256b5cfcc504614e1dfd9387f2279e\",\"dweb:/ipfs/QmSAxW37HNMz1sYfb9N5TyWuBPXkjtEcGc6jb25W8JYPiL\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xb6503f663515b6713adb63eb2acf19401d8f73af39c7194f7dc3d8249c8643c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abdedc1b84ae26c1a151825e9f785fa8187ead91be438671fd18c7a41958b746\",\"dweb:/ipfs/QmdYFTdzQbrWJsJgH8mX1rPTt8V7DZFAXxjxNTaY6LEa6b\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0f8b8696348d5a57b13d44f5cc63894f0368038c06f6d00bdeda6f9aa13127e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://718159abc22da25c2de7e70f6b7bbbf6b6e20c3db6681893f8049b57f4ee65ce\",\"dweb:/ipfs/QmPJeQ7Qj7mrAwfR69sLjyjUSb44B7yAJXvMG1NFtoTJKv\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0x553c1a345186dbf3b85ff238887acf290d5e1fafcc99eb8bf14c48a346a8ca34\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39dfd17d675251ba895aff3a3727a48badbb76e40d3d94ae092e8cdbf2ea45f9\",\"dweb:/ipfs/QmQHrDH3fvHoxCFAppEm55Ttp9A4fibNoZgLC3VqJY5arL\"]},\"@openzeppelin/contracts/token/ERC1155/utils/ERC1155Utils.sol\":{\"keccak256\":\"0xeaa17c35af8947d3cc04d91d632dd02807dcfe1ea4a45e7a46d98f4c6dd5b47c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6bf5a6a328de0324e7f716cfa654ec188f1468be6c1ef4f8e03b0e17945ab0c\",\"dweb:/ipfs/QmWsyAuYqfaka7BKAEQLNZYh6WtgN72Pv9XjmfKxpEQSSm\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8bb645f93ffc8b3f717386ca33242049ad96bf567ea4f374fa9923458377bc73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efddd6311403043a8738271ac907fd65580e0c746056f93b0ac03cca07a8e8bb\",\"dweb:/ipfs/QmQxXN1kpRRXGGx7gTmhrbcmmzaHKfhSbvuTYM6k5VHzmW\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x9215445861d4f84c22e7d0286474417f979db6fc9791dc50d94d59c613fbbee7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c28f4868708859672b5b38c2eb03c8bfb4c9a03786b4ced539dffcb83baf22\",\"dweb:/ipfs/QmYEg9ykHncDnodwcqmUL2zsi1PdEbxnCJGyB4kEmkHciA\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xfd29ed7a01e9ef109cc31542ca0f51ba3e793740570b69172ec3d8bfbb1643b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99379e0649be8106d2708a2bde73b5cdaba4505f1001f1586b53788bf971d097\",\"dweb:/ipfs/QmV9cCnvFoVzV2cVDW4Zbs3JQ3ehxBcooQS52taVxR637S\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x3233b02fcf2b20a41cce60a62e43c7e5a67a55b738ec1db842a82452e6aa170d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://231c75d18bc6973533dfa7d58d2b97e504ca4e21d703a5c8b0ec31475e97db67\",\"dweb:/ipfs/QmPJ29HDuFceD1FDr4CnjYYtvaQ234wGAfojZpL3RXFG26\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/tokens/ERC721.sol\":{\"keccak256\":\"0x37c8f2ac713129f33681c93a4fb1c5b0b8e0322d55e7c897159e0bbdea892ff1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://862f8e6684fa172cbf6310e0365871b6d5e662be996d9fd52345bde3475a0029\",\"dweb:/ipfs/Qmf58t2fiBXsu47EnaJ4sjnjn6GVL8WuGAN95o7Xxhq2jt\"]},\"@solady/utils/LibString.sol\":{\"keccak256\":\"0xe139b4fe7b5c53207e3e9c98a0f1d990e287c62114e13ab8714d182086d47eea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecebb0d4d5aafaa37f1933bcb3bad339ba8abfedaabbeb851d52264fc647f6b8\",\"dweb:/ipfs/Qme56F47yJVxxav8K3JJVewWiGWQEEkcCGVBxrce419qXE\"]},\"contracts/shared/Mocks.sol\":{\"keccak256\":\"0x18aebbd1bb75681da70067f1194b3282c1bbff9273ec9226a3828e177f279193\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b9d1abc36cc8fccab3b77751b3715d12d3ca507d6a1d29fa71bc03542123d95b\",\"dweb:/ipfs/QmSD6mHJVkvNpRaRM7FiCpfWJXpmEhk9494qHkZffqb5L2\"]}},\"version\":1}"}},"contracts/tokens/Points.sol":{"Points":{"abi":[{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NonTransferable","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"roles","type":"uint256"}],"name":"RolesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ISSUER_ROLE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","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":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"grantRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAllRoles","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"hasAnyRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"minter_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"issue","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":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","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":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"renounceRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"roles","type":"uint256"}],"name":"revokeRoles","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"rolesOf","outputs":[{"internalType":"uint256","name":"roles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"6080604052348015600e575f80fd5b50611b1b8061001c5f395ff3fe6080604052600436106101b6575f3560e01c806354d1f13d116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146105aa578063f04e283e146105e6578063f2fde38b14610602578063fee81cf41461061e576101b6565b806395d89b411461051c578063a9059cbb14610546578063d505accf14610582576101b6565b80637ecebe00116100c55780637ecebe001461046457806382aefa24146104a0578063867904b4146104ca5780638da5cb5b146104f2576101b6565b806354d1f13d1461041457806370a082311461041e578063715018a61461045a576101b6565b806323b872dd11610158578063313ce56711610132578063313ce567146103685780633644e515146103925780634a4ee7b1146103bc578063514e62fc146103d8576101b6565b806323b872dd146102e657806325692962146103225780632de948071461032c576101b6565b806318160ddd1161019457806318160ddd14610248578063183a4f6e146102725780631c10893f1461028e5780631cd64df4146102aa576101b6565b806306fdde03146101ba578063077f224a146101e4578063095ea7b31461020c575b5f80fd5b3480156101c5575f80fd5b506101ce61065a565b6040516101db91906112af565b60405180910390f35b3480156101ef575f80fd5b5061020a60048036038101906102059190611466565b6106e9565b005b348015610217575f80fd5b50610232600480360381019061022d9190611521565b610793565b60405161023f9190611579565b60405180910390f35b348015610253575f80fd5b5061025c6107e3565b60405161026991906115a1565b60405180910390f35b61028c600480360381019061028791906115ba565b6107f4565b005b6102a860048036038101906102a39190611521565b610801565b005b3480156102b5575f80fd5b506102d060048036038101906102cb9190611521565b610817565b6040516102dd9190611579565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906115e5565b61082d565b6040516103199190611579565b60405180910390f35b61032a6108fe565b005b348015610337575f80fd5b50610352600480360381019061034d9190611635565b61094f565b60405161035f91906115a1565b60405180910390f35b348015610373575f80fd5b5061037c610968565b604051610389919061167b565b60405180910390f35b34801561039d575f80fd5b506103a6610970565b6040516103b391906116ac565b60405180910390f35b6103d660048036038101906103d19190611521565b610a00565b005b3480156103e3575f80fd5b506103fe60048036038101906103f99190611521565b610a16565b60405161040b9190611579565b60405180910390f35b61041c610a2d565b005b348015610429575f80fd5b50610444600480360381019061043f9190611635565b610a66565b60405161045191906115a1565b60405180910390f35b610462610a7f565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611635565b610a92565b60405161049791906115a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610aab565b6040516104c191906115a1565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190611521565b610ab0565b005b3480156104fd575f80fd5b50610506610aca565b60405161051391906116d4565b60405180910390f35b348015610527575f80fd5b50610530610af2565b60405161053d91906112af565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190611521565b610b82565b6040516105799190611579565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190611741565b610c10565b005b3480156105b5575f80fd5b506105d060048036038101906105cb91906117de565b610dac565b6040516105dd91906115a1565b60405180910390f35b61060060048036038101906105fb9190611635565b610dca565b005b61061c60048036038101906106179190611635565b610e08565b005b348015610629575f80fd5b50610644600480360381019061063f9190611635565b610e31565b60405161065191906115a1565b60405180910390f35b60605f805461066890611849565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611849565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b5f6106f2610e4a565b905080546003825580156107245760018160011c14303b1061071b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061072e33610e73565b835f908161073c9190611a16565b50826001908161074c9190611a16565b50610758826002610f49565b801561078d576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b50505050565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b5f6805345cdf77eb68f44c54905090565b6107fe3382610f59565b50565b610809610f68565b6108138282610f49565b5050565b5f81826108238561094f565b1614905092915050565b5f610839848484610f9f565b8360601b33602052637f5e9f208117600c526034600c20805460018101156108765780851115610870576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c2080548087111561089c5763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050505050506108f3848484611043565b600190509392505050565b5f610907611048565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b5f6012905090565b5f8061097a611052565b90505f801b81036109975761098d61065a565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b610a08610f68565b610a128282610f59565b5050565b5f8082610a228561094f565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6387a211a2600c52815f526020600c20549050919050565b610a87610f68565b610a905f611056565b565b5f6338377508600c52815f526020600c20549050919050565b600281565b6002610abb8161111c565b610ac58383611151565b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b606060018054610b0190611849565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2d90611849565b8015610b785780601f10610b4f57610100808354040283529160200191610b78565b820191905f5260205f20905b815481529060010190602001808311610b5b57829003601f168201915b5050505050905090565b5f610b8e338484610f9f565b6387a211a2600c52335f526020600c20805480841115610bb55763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050610c06338484611043565b6001905092915050565b5f610c19611052565b90505f801b8103610c3657610c2c61065a565b8051906020012090505b84421115610c4b57631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d5114610d535763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b610dd2610f68565b63389a75e1600c52805f526020600c208054421115610df857636f5e88185f526004601cfd5b5f815550610e0581611056565b50565b610e10610f68565b8060601b610e2557637448fbae5f526004601cfd5b610e2e81611056565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111e3565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610f55828260016111e7565b5050565b610f6482825f6111e7565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f9d576382b429005f526004601cfd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561100757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561103e576040517f9cbe235700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b505050565b5f6202a300905090565b5f90565b61105e6111e3565b156110c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611119565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b638b78c6d81954331461114e57638b78c6d8600c52335f52806020600c20541661114d576382b429005f526004601cfd5b5b50565b61115c5f8383610f9f565b6805345cdf77eb68f44c548181018181101561117f5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506111df5f8383611043565b5050565b5f90565b638b78c6d8600c52825f526020600c2080548381178361120957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112818261123f565b61128b8185611249565b935061129b818560208601611259565b6112a481611267565b840191505092915050565b5f6020820190508181035f8301526112c78184611277565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61131e82611267565b810181811067ffffffffffffffff8211171561133d5761133c6112e8565b5b80604052505050565b5f61134f6112cf565b905061135b8282611315565b919050565b5f67ffffffffffffffff82111561137a576113796112e8565b5b61138382611267565b9050602081019050919050565b828183375f83830152505050565b5f6113b06113ab84611360565b611346565b9050828152602081018484840111156113cc576113cb6112e4565b5b6113d7848285611390565b509392505050565b5f82601f8301126113f3576113f26112e0565b5b813561140384826020860161139e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114358261140c565b9050919050565b6114458161142b565b811461144f575f80fd5b50565b5f813590506114608161143c565b92915050565b5f805f6060848603121561147d5761147c6112d8565b5b5f84013567ffffffffffffffff81111561149a576114996112dc565b5b6114a6868287016113df565b935050602084013567ffffffffffffffff8111156114c7576114c66112dc565b5b6114d3868287016113df565b92505060406114e486828701611452565b9150509250925092565b5f819050919050565b611500816114ee565b811461150a575f80fd5b50565b5f8135905061151b816114f7565b92915050565b5f8060408385031215611537576115366112d8565b5b5f61154485828601611452565b92505060206115558582860161150d565b9150509250929050565b5f8115159050919050565b6115738161155f565b82525050565b5f60208201905061158c5f83018461156a565b92915050565b61159b816114ee565b82525050565b5f6020820190506115b45f830184611592565b92915050565b5f602082840312156115cf576115ce6112d8565b5b5f6115dc8482850161150d565b91505092915050565b5f805f606084860312156115fc576115fb6112d8565b5b5f61160986828701611452565b935050602061161a86828701611452565b925050604061162b8682870161150d565b9150509250925092565b5f6020828403121561164a576116496112d8565b5b5f61165784828501611452565b91505092915050565b5f60ff82169050919050565b61167581611660565b82525050565b5f60208201905061168e5f83018461166c565b92915050565b5f819050919050565b6116a681611694565b82525050565b5f6020820190506116bf5f83018461169d565b92915050565b6116ce8161142b565b82525050565b5f6020820190506116e75f8301846116c5565b92915050565b6116f681611660565b8114611700575f80fd5b50565b5f81359050611711816116ed565b92915050565b61172081611694565b811461172a575f80fd5b50565b5f8135905061173b81611717565b92915050565b5f805f805f805f60e0888a03121561175c5761175b6112d8565b5b5f6117698a828b01611452565b975050602061177a8a828b01611452565b965050604061178b8a828b0161150d565b955050606061179c8a828b0161150d565b94505060806117ad8a828b01611703565b93505060a06117be8a828b0161172d565b92505060c06117cf8a828b0161172d565b91505092959891949750929550565b5f80604083850312156117f4576117f36112d8565b5b5f61180185828601611452565b925050602061181285828601611452565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061186057607f821691505b6020821081036118735761187261181c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261189a565b6118df868361189a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61191a611915611910846114ee565b6118f7565b6114ee565b9050919050565b5f819050919050565b61193383611900565b61194761193f82611921565b8484546118a6565b825550505050565b5f90565b61195b61194f565b61196681848461192a565b505050565b5b818110156119895761197e5f82611953565b60018101905061196c565b5050565b601f8211156119ce5761199f81611879565b6119a88461188b565b810160208510156119b7578190505b6119cb6119c38561188b565b83018261196b565b50505b505050565b5f82821c905092915050565b5f6119ee5f19846008026119d3565b1980831691505092915050565b5f611a0683836119df565b9150826002028217905092915050565b611a1f8261123f565b67ffffffffffffffff811115611a3857611a376112e8565b5b611a428254611849565b611a4d82828561198d565b5f60209050601f831160018114611a7e575f8415611a6c578287015190505b611a7685826119fb565b865550611add565b601f198416611a8c86611879565b5f5b82811015611ab357848901518255600182019150602085019450602081019050611a8e565b86831015611ad05784890151611acc601f8916826119df565b8355505b6001600288020188555050505b50505050505056fea26469706673582212205bafc9d17a8611bd2c81ad7c71e15e8e2710bee3f7aaf709b61ca06bab0a2e6164736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1B DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54D1F13D GT PUSH2 0xEB JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x61E JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x582 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x82AEFA24 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4F2 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x45A JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x158 JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x132 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x3D8 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x32C JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x194 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x2AA JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x20C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x793 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x7F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A3 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x15E5 JUMP JUMPDEST PUSH2 0x82D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x32A PUSH2 0x8FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x389 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x16AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D1 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH2 0xA2D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x462 PUSH2 0xA7F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B4 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x513 SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x530 PUSH2 0xAF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53D SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x551 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x567 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x579 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1741 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5CB SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DD SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x600 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x61C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE08 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x63F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x651 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 DUP1 SLOAD PUSH2 0x668 SWAP1 PUSH2 0x1849 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 0x694 SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6DF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x71B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x72E CALLER PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH0 SWAP1 DUP2 PUSH2 0x73C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP DUP3 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP PUSH2 0x758 DUP3 PUSH1 0x2 PUSH2 0xF49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FE CALLER DUP3 PUSH2 0xF59 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x809 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0x813 DUP3 DUP3 PUSH2 0xF49 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x823 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x839 DUP5 DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x876 JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x870 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x89C JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x8F3 DUP5 DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x907 PUSH2 0x1048 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x97A PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x997 JUMPI PUSH2 0x98D PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA12 DUP3 DUP3 PUSH2 0xF59 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0xA22 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA87 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA90 PUSH0 PUSH2 0x1056 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH2 0xABB DUP2 PUSH2 0x111C JUMP JUMPDEST PUSH2 0xAC5 DUP4 DUP4 PUSH2 0x1151 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xB01 SWAP1 PUSH2 0x1849 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 0xB2D SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB78 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB78 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB5B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB8E CALLER DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0xBB5 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0xC06 CALLER DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC19 PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0xC36 JUMPI PUSH2 0xC2C PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0xC4B JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0xD53 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDD2 PUSH2 0xF68 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDF8 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xE05 DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE10 PUSH2 0xF68 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE25 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xE2E DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xF55 DUP3 DUP3 PUSH1 0x1 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xF64 DUP3 DUP3 PUSH0 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF9D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x9CBE235700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x105E PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0x10C3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1119 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH4 0x8B78C6D8 NOT SLOAD CALLER EQ PUSH2 0x114E JUMPI PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x114D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x115C PUSH0 DUP4 DUP4 PUSH2 0xF9F JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x117F JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x11DF PUSH0 DUP4 DUP4 PUSH2 0x1043 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0x1209 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1281 DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x128B DUP2 DUP6 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP PUSH2 0x129B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1267 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH2 0x1267 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x133D JUMPI PUSH2 0x133C PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x134F PUSH2 0x12CF JUMP JUMPDEST SWAP1 POP PUSH2 0x135B DUP3 DUP3 PUSH2 0x1315 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x137A JUMPI PUSH2 0x1379 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1383 DUP3 PUSH2 0x1267 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13B0 PUSH2 0x13AB DUP5 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x1346 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x12E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13D7 DUP5 DUP3 DUP6 PUSH2 0x1390 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH2 0x13F2 PUSH2 0x12E0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1403 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x139E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1435 DUP3 PUSH2 0x140C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1445 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP2 EQ PUSH2 0x144F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1460 DUP2 PUSH2 0x143C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x147D JUMPI PUSH2 0x147C PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x149A JUMPI PUSH2 0x1499 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14A6 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x14E4 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1500 DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP2 EQ PUSH2 0x150A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x151B DUP2 PUSH2 0x14F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1537 JUMPI PUSH2 0x1536 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1544 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1555 DUP6 DUP3 DUP7 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1573 DUP2 PUSH2 0x155F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x158C PUSH0 DUP4 ADD DUP5 PUSH2 0x156A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15CF JUMPI PUSH2 0x15CE PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DC DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15FC JUMPI PUSH2 0x15FB PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1609 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x161A DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x162B DUP7 DUP3 DUP8 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164A JUMPI PUSH2 0x1649 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1657 DUP5 DUP3 DUP6 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1675 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168E PUSH0 DUP4 ADD DUP5 PUSH2 0x166C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A6 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16BF PUSH0 DUP4 ADD DUP5 PUSH2 0x169D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16CE DUP2 PUSH2 0x142B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16E7 PUSH0 DUP4 ADD DUP5 PUSH2 0x16C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16F6 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP2 EQ PUSH2 0x1700 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1711 DUP2 PUSH2 0x16ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1720 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP2 EQ PUSH2 0x172A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x173B DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x175C JUMPI PUSH2 0x175B PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1769 DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x177A DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x178B DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x179C DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x17AD DUP11 DUP3 DUP12 ADD PUSH2 0x1703 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x17BE DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x17CF DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F4 JUMPI PUSH2 0x17F3 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1801 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1812 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1860 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1873 JUMPI PUSH2 0x1872 PUSH2 0x181C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x18D5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x189A JUMP JUMPDEST PUSH2 0x18DF DUP7 DUP4 PUSH2 0x189A JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x191A PUSH2 0x1915 PUSH2 0x1910 DUP5 PUSH2 0x14EE JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x14EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1933 DUP4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x193F DUP3 PUSH2 0x1921 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x18A6 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x195B PUSH2 0x194F JUMP JUMPDEST PUSH2 0x1966 DUP2 DUP5 DUP5 PUSH2 0x192A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH2 0x197E PUSH0 DUP3 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x196C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x19CE JUMPI PUSH2 0x199F DUP2 PUSH2 0x1879 JUMP JUMPDEST PUSH2 0x19A8 DUP5 PUSH2 0x188B JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x19B7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x19CB PUSH2 0x19C3 DUP6 PUSH2 0x188B JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x196B JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19EE PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x19D3 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A06 DUP4 DUP4 PUSH2 0x19DF JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A1F DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A38 JUMPI PUSH2 0x1A37 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1A42 DUP3 SLOAD PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x1A4D DUP3 DUP3 DUP6 PUSH2 0x198D JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1A7E JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1A6C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1A76 DUP6 DUP3 PUSH2 0x19FB JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1ADD JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1A8C DUP7 PUSH2 0x1879 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AB3 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1A8E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1AD0 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1ACC PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x19DF JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST 0xAF 0xC9 0xD1 PUSH27 0x8611BD2C81AD7C71E15E8E2710BEE3F7AAF709B61CA06BAB0A2E61 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"394:1770:60:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DOMAIN_SEPARATOR_8228":{"entryPoint":2416,"id":8228,"parameterSlots":0,"returnSlots":1},"@ISSUER_ROLE_18714":{"entryPoint":2731,"id":18714,"parameterSlots":0,"returnSlots":0},"@_afterTokenTransfer_8354":{"entryPoint":4163,"id":8354,"parameterSlots":3,"returnSlots":0},"@_beforeTokenTransfer_18814":{"entryPoint":3999,"id":18814,"parameterSlots":3,"returnSlots":0},"@_checkOwnerOrRoles_6499":{"entryPoint":4380,"id":6499,"parameterSlots":1,"returnSlots":0},"@_checkOwner_6308":{"entryPoint":3944,"id":6308,"parameterSlots":0,"returnSlots":0},"@_constantNameHash_8146":{"entryPoint":4178,"id":8146,"parameterSlots":0,"returnSlots":1},"@_grantRoles_6468":{"entryPoint":3913,"id":6468,"parameterSlots":2,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":4579,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":3658,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":3699,"id":6288,"parameterSlots":1,"returnSlots":0},"@_mint_8256":{"entryPoint":4433,"id":8256,"parameterSlots":2,"returnSlots":0},"@_ownershipHandoverValidFor_6319":{"entryPoint":4168,"id":6319,"parameterSlots":0,"returnSlots":1},"@_removeRoles_6483":{"entryPoint":3929,"id":6483,"parameterSlots":2,"returnSlots":0},"@_setOwner_6302":{"entryPoint":4182,"id":6302,"parameterSlots":1,"returnSlots":0},"@_updateRoles_6453":{"entryPoint":4583,"id":6453,"parameterSlots":3,"returnSlots":0},"@allowance_8069":{"entryPoint":3500,"id":8069,"parameterSlots":2,"returnSlots":1},"@approve_8083":{"entryPoint":1939,"id":8083,"parameterSlots":2,"returnSlots":1},"@balanceOf_8057":{"entryPoint":2662,"id":8057,"parameterSlots":1,"returnSlots":1},"@cancelOwnershipHandover_6368":{"entryPoint":2605,"id":6368,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":3530,"id":6382,"parameterSlots":1,"returnSlots":0},"@decimals_8039":{"entryPoint":2408,"id":8039,"parameterSlots":0,"returnSlots":1},"@grantRoles_6545":{"entryPoint":2049,"id":6545,"parameterSlots":2,"returnSlots":0},"@hasAllRoles_6622":{"entryPoint":2071,"id":6622,"parameterSlots":2,"returnSlots":1},"@hasAnyRole_6603":{"entryPoint":2582,"id":6603,"parameterSlots":2,"returnSlots":1},"@initialize_18748":{"entryPoint":1769,"id":18748,"parameterSlots":3,"returnSlots":0},"@issue_18765":{"entryPoint":2736,"id":18765,"parameterSlots":2,"returnSlots":0},"@name_18775":{"entryPoint":1626,"id":18775,"parameterSlots":0,"returnSlots":1},"@nonces_8156":{"entryPoint":2706,"id":8156,"parameterSlots":1,"returnSlots":1},"@owner_6390":{"entryPoint":2762,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":3633,"id":6400,"parameterSlots":1,"returnSlots":1},"@permit_8198":{"entryPoint":3088,"id":8198,"parameterSlots":7,"returnSlots":0},"@renounceOwnership_6347":{"entryPoint":2687,"id":6347,"parameterSlots":0,"returnSlots":0},"@renounceRoles_6574":{"entryPoint":2036,"id":6574,"parameterSlots":1,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":2302,"id":6362,"parameterSlots":0,"returnSlots":0},"@revokeRoles_6561":{"entryPoint":2560,"id":6561,"parameterSlots":2,"returnSlots":0},"@rolesOf_6584":{"entryPoint":2383,"id":6584,"parameterSlots":1,"returnSlots":1},"@symbol_18785":{"entryPoint":2802,"id":18785,"parameterSlots":0,"returnSlots":1},"@totalSupply_8047":{"entryPoint":2019,"id":8047,"parameterSlots":0,"returnSlots":1},"@transferFrom_8139":{"entryPoint":2093,"id":8139,"parameterSlots":3,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":3592,"id":6333,"parameterSlots":1,"returnSlots":0},"@transfer_8111":{"entryPoint":2946,"id":8111,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":5022,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":5202,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":5933,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":5087,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":5389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint8":{"entryPoint":5891,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":5685,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":6110,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":5605,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32":{"entryPoint":5953,"id":null,"parameterSlots":2,"returnSlots":7},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":5409,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address":{"entryPoint":5222,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_uint256":{"entryPoint":5562,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":5829,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":5482,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":5789,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":4727,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":5522,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint8_to_t_uint8_fromStack":{"entryPoint":5740,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":5844,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":5497,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":5804,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":4783,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":5537,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":5755,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4934,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":4815,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":4960,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":6265,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":4671,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":4681,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":6541,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":5163,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":5471,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":5780,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":5132,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":5358,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint8":{"entryPoint":5728,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":6507,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_uint256_to_t_uint256":{"entryPoint":6400,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":6678,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":5008,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":4697,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":6283,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":6217,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":6651,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":4885,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":6391,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":6623,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x22":{"entryPoint":6172,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4840,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":6433,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":4832,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4836,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":4828,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":4824,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4711,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":6298,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":6611,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":6483,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":6310,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":6442,"id":null,"parameterSlots":3,"returnSlots":0},"validator_revert_t_address":{"entryPoint":5180,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":5911,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":5367,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint8":{"entryPoint":5869,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":6479,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:16374:64","nodeType":"YulBlock","src":"0:16374:64","statements":[{"body":{"nativeSrc":"66:40:64","nodeType":"YulBlock","src":"66:40:64","statements":[{"nativeSrc":"77:22:64","nodeType":"YulAssignment","src":"77:22:64","value":{"arguments":[{"name":"value","nativeSrc":"93:5:64","nodeType":"YulIdentifier","src":"93:5:64"}],"functionName":{"name":"mload","nativeSrc":"87:5:64","nodeType":"YulIdentifier","src":"87:5:64"},"nativeSrc":"87:12:64","nodeType":"YulFunctionCall","src":"87:12:64"},"variableNames":[{"name":"length","nativeSrc":"77:6:64","nodeType":"YulIdentifier","src":"77:6:64"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"7:99:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49:5:64","nodeType":"YulTypedName","src":"49:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59:6:64","nodeType":"YulTypedName","src":"59:6:64","type":""}],"src":"7:99:64"},{"body":{"nativeSrc":"208:73:64","nodeType":"YulBlock","src":"208:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"225:3:64","nodeType":"YulIdentifier","src":"225:3:64"},{"name":"length","nativeSrc":"230:6:64","nodeType":"YulIdentifier","src":"230:6:64"}],"functionName":{"name":"mstore","nativeSrc":"218:6:64","nodeType":"YulIdentifier","src":"218:6:64"},"nativeSrc":"218:19:64","nodeType":"YulFunctionCall","src":"218:19:64"},"nativeSrc":"218:19:64","nodeType":"YulExpressionStatement","src":"218:19:64"},{"nativeSrc":"246:29:64","nodeType":"YulAssignment","src":"246:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"265:3:64","nodeType":"YulIdentifier","src":"265:3:64"},{"kind":"number","nativeSrc":"270:4:64","nodeType":"YulLiteral","src":"270:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261:3:64","nodeType":"YulIdentifier","src":"261:3:64"},"nativeSrc":"261:14:64","nodeType":"YulFunctionCall","src":"261:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"246:11:64","nodeType":"YulIdentifier","src":"246:11:64"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"112:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"180:3:64","nodeType":"YulTypedName","src":"180:3:64","type":""},{"name":"length","nativeSrc":"185:6:64","nodeType":"YulTypedName","src":"185:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"196:11:64","nodeType":"YulTypedName","src":"196:11:64","type":""}],"src":"112:169:64"},{"body":{"nativeSrc":"349:77:64","nodeType":"YulBlock","src":"349:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"366:3:64","nodeType":"YulIdentifier","src":"366:3:64"},{"name":"src","nativeSrc":"371:3:64","nodeType":"YulIdentifier","src":"371:3:64"},{"name":"length","nativeSrc":"376:6:64","nodeType":"YulIdentifier","src":"376:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"360:5:64","nodeType":"YulIdentifier","src":"360:5:64"},"nativeSrc":"360:23:64","nodeType":"YulFunctionCall","src":"360:23:64"},"nativeSrc":"360:23:64","nodeType":"YulExpressionStatement","src":"360:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"403:3:64","nodeType":"YulIdentifier","src":"403:3:64"},{"name":"length","nativeSrc":"408:6:64","nodeType":"YulIdentifier","src":"408:6:64"}],"functionName":{"name":"add","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:16:64","nodeType":"YulFunctionCall","src":"399:16:64"},{"kind":"number","nativeSrc":"417:1:64","nodeType":"YulLiteral","src":"417:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"392:6:64","nodeType":"YulIdentifier","src":"392:6:64"},"nativeSrc":"392:27:64","nodeType":"YulFunctionCall","src":"392:27:64"},"nativeSrc":"392:27:64","nodeType":"YulExpressionStatement","src":"392:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"287:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"331:3:64","nodeType":"YulTypedName","src":"331:3:64","type":""},{"name":"dst","nativeSrc":"336:3:64","nodeType":"YulTypedName","src":"336:3:64","type":""},{"name":"length","nativeSrc":"341:6:64","nodeType":"YulTypedName","src":"341:6:64","type":""}],"src":"287:139:64"},{"body":{"nativeSrc":"480:54:64","nodeType":"YulBlock","src":"480:54:64","statements":[{"nativeSrc":"490:38:64","nodeType":"YulAssignment","src":"490:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"508:5:64","nodeType":"YulIdentifier","src":"508:5:64"},{"kind":"number","nativeSrc":"515:2:64","nodeType":"YulLiteral","src":"515:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"504:3:64","nodeType":"YulIdentifier","src":"504:3:64"},"nativeSrc":"504:14:64","nodeType":"YulFunctionCall","src":"504:14:64"},{"arguments":[{"kind":"number","nativeSrc":"524:2:64","nodeType":"YulLiteral","src":"524:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"520:3:64","nodeType":"YulIdentifier","src":"520:3:64"},"nativeSrc":"520:7:64","nodeType":"YulFunctionCall","src":"520:7:64"}],"functionName":{"name":"and","nativeSrc":"500:3:64","nodeType":"YulIdentifier","src":"500:3:64"},"nativeSrc":"500:28:64","nodeType":"YulFunctionCall","src":"500:28:64"},"variableNames":[{"name":"result","nativeSrc":"490:6:64","nodeType":"YulIdentifier","src":"490:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"432:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"463:5:64","nodeType":"YulTypedName","src":"463:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"473:6:64","nodeType":"YulTypedName","src":"473:6:64","type":""}],"src":"432:102:64"},{"body":{"nativeSrc":"632:285:64","nodeType":"YulBlock","src":"632:285:64","statements":[{"nativeSrc":"642:53:64","nodeType":"YulVariableDeclaration","src":"642:53:64","value":{"arguments":[{"name":"value","nativeSrc":"689:5:64","nodeType":"YulIdentifier","src":"689:5:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"656:32:64","nodeType":"YulIdentifier","src":"656:32:64"},"nativeSrc":"656:39:64","nodeType":"YulFunctionCall","src":"656:39:64"},"variables":[{"name":"length","nativeSrc":"646:6:64","nodeType":"YulTypedName","src":"646:6:64","type":""}]},{"nativeSrc":"704:78:64","nodeType":"YulAssignment","src":"704:78:64","value":{"arguments":[{"name":"pos","nativeSrc":"770:3:64","nodeType":"YulIdentifier","src":"770:3:64"},{"name":"length","nativeSrc":"775:6:64","nodeType":"YulIdentifier","src":"775:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"711:58:64","nodeType":"YulIdentifier","src":"711:58:64"},"nativeSrc":"711:71:64","nodeType":"YulFunctionCall","src":"711:71:64"},"variableNames":[{"name":"pos","nativeSrc":"704:3:64","nodeType":"YulIdentifier","src":"704:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"830:5:64","nodeType":"YulIdentifier","src":"830:5:64"},{"kind":"number","nativeSrc":"837:4:64","nodeType":"YulLiteral","src":"837:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"826:3:64","nodeType":"YulIdentifier","src":"826:3:64"},"nativeSrc":"826:16:64","nodeType":"YulFunctionCall","src":"826:16:64"},{"name":"pos","nativeSrc":"844:3:64","nodeType":"YulIdentifier","src":"844:3:64"},{"name":"length","nativeSrc":"849:6:64","nodeType":"YulIdentifier","src":"849:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"791:34:64","nodeType":"YulIdentifier","src":"791:34:64"},"nativeSrc":"791:65:64","nodeType":"YulFunctionCall","src":"791:65:64"},"nativeSrc":"791:65:64","nodeType":"YulExpressionStatement","src":"791:65:64"},{"nativeSrc":"865:46:64","nodeType":"YulAssignment","src":"865:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"876:3:64","nodeType":"YulIdentifier","src":"876:3:64"},{"arguments":[{"name":"length","nativeSrc":"903:6:64","nodeType":"YulIdentifier","src":"903:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"881:21:64","nodeType":"YulIdentifier","src":"881:21:64"},"nativeSrc":"881:29:64","nodeType":"YulFunctionCall","src":"881:29:64"}],"functionName":{"name":"add","nativeSrc":"872:3:64","nodeType":"YulIdentifier","src":"872:3:64"},"nativeSrc":"872:39:64","nodeType":"YulFunctionCall","src":"872:39:64"},"variableNames":[{"name":"end","nativeSrc":"865:3:64","nodeType":"YulIdentifier","src":"865:3:64"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"540:377:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"613:5:64","nodeType":"YulTypedName","src":"613:5:64","type":""},{"name":"pos","nativeSrc":"620:3:64","nodeType":"YulTypedName","src":"620:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"628:3:64","nodeType":"YulTypedName","src":"628:3:64","type":""}],"src":"540:377:64"},{"body":{"nativeSrc":"1041:195:64","nodeType":"YulBlock","src":"1041:195:64","statements":[{"nativeSrc":"1051:26:64","nodeType":"YulAssignment","src":"1051:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1063:9:64","nodeType":"YulIdentifier","src":"1063:9:64"},{"kind":"number","nativeSrc":"1074:2:64","nodeType":"YulLiteral","src":"1074:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1059:3:64","nodeType":"YulIdentifier","src":"1059:3:64"},"nativeSrc":"1059:18:64","nodeType":"YulFunctionCall","src":"1059:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1051:4:64","nodeType":"YulIdentifier","src":"1051:4:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1098:9:64","nodeType":"YulIdentifier","src":"1098:9:64"},{"kind":"number","nativeSrc":"1109:1:64","nodeType":"YulLiteral","src":"1109:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1094:3:64","nodeType":"YulIdentifier","src":"1094:3:64"},"nativeSrc":"1094:17:64","nodeType":"YulFunctionCall","src":"1094:17:64"},{"arguments":[{"name":"tail","nativeSrc":"1117:4:64","nodeType":"YulIdentifier","src":"1117:4:64"},{"name":"headStart","nativeSrc":"1123:9:64","nodeType":"YulIdentifier","src":"1123:9:64"}],"functionName":{"name":"sub","nativeSrc":"1113:3:64","nodeType":"YulIdentifier","src":"1113:3:64"},"nativeSrc":"1113:20:64","nodeType":"YulFunctionCall","src":"1113:20:64"}],"functionName":{"name":"mstore","nativeSrc":"1087:6:64","nodeType":"YulIdentifier","src":"1087:6:64"},"nativeSrc":"1087:47:64","nodeType":"YulFunctionCall","src":"1087:47:64"},"nativeSrc":"1087:47:64","nodeType":"YulExpressionStatement","src":"1087:47:64"},{"nativeSrc":"1143:86:64","nodeType":"YulAssignment","src":"1143:86:64","value":{"arguments":[{"name":"value0","nativeSrc":"1215:6:64","nodeType":"YulIdentifier","src":"1215:6:64"},{"name":"tail","nativeSrc":"1224:4:64","nodeType":"YulIdentifier","src":"1224:4:64"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"1151:63:64","nodeType":"YulIdentifier","src":"1151:63:64"},"nativeSrc":"1151:78:64","nodeType":"YulFunctionCall","src":"1151:78:64"},"variableNames":[{"name":"tail","nativeSrc":"1143:4:64","nodeType":"YulIdentifier","src":"1143:4:64"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"923:313:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1013:9:64","nodeType":"YulTypedName","src":"1013:9:64","type":""},{"name":"value0","nativeSrc":"1025:6:64","nodeType":"YulTypedName","src":"1025:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1036:4:64","nodeType":"YulTypedName","src":"1036:4:64","type":""}],"src":"923:313:64"},{"body":{"nativeSrc":"1282:35:64","nodeType":"YulBlock","src":"1282:35:64","statements":[{"nativeSrc":"1292:19:64","nodeType":"YulAssignment","src":"1292:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"1308:2:64","nodeType":"YulLiteral","src":"1308:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"1302:5:64","nodeType":"YulIdentifier","src":"1302:5:64"},"nativeSrc":"1302:9:64","nodeType":"YulFunctionCall","src":"1302:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"1292:6:64","nodeType":"YulIdentifier","src":"1292:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"1242:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"1275:6:64","nodeType":"YulTypedName","src":"1275:6:64","type":""}],"src":"1242:75:64"},{"body":{"nativeSrc":"1412:28:64","nodeType":"YulBlock","src":"1412:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1429:1:64","nodeType":"YulLiteral","src":"1429:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1432:1:64","nodeType":"YulLiteral","src":"1432:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1422:6:64","nodeType":"YulIdentifier","src":"1422:6:64"},"nativeSrc":"1422:12:64","nodeType":"YulFunctionCall","src":"1422:12:64"},"nativeSrc":"1422:12:64","nodeType":"YulExpressionStatement","src":"1422:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"1323:117:64","nodeType":"YulFunctionDefinition","src":"1323:117:64"},{"body":{"nativeSrc":"1535:28:64","nodeType":"YulBlock","src":"1535:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1552:1:64","nodeType":"YulLiteral","src":"1552:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1555:1:64","nodeType":"YulLiteral","src":"1555:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1545:6:64","nodeType":"YulIdentifier","src":"1545:6:64"},"nativeSrc":"1545:12:64","nodeType":"YulFunctionCall","src":"1545:12:64"},"nativeSrc":"1545:12:64","nodeType":"YulExpressionStatement","src":"1545:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"1446:117:64","nodeType":"YulFunctionDefinition","src":"1446:117:64"},{"body":{"nativeSrc":"1658:28:64","nodeType":"YulBlock","src":"1658:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1675:1:64","nodeType":"YulLiteral","src":"1675:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1678:1:64","nodeType":"YulLiteral","src":"1678:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1668:6:64","nodeType":"YulIdentifier","src":"1668:6:64"},"nativeSrc":"1668:12:64","nodeType":"YulFunctionCall","src":"1668:12:64"},"nativeSrc":"1668:12:64","nodeType":"YulExpressionStatement","src":"1668:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1569:117:64","nodeType":"YulFunctionDefinition","src":"1569:117:64"},{"body":{"nativeSrc":"1781:28:64","nodeType":"YulBlock","src":"1781:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1798:1:64","nodeType":"YulLiteral","src":"1798:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1801:1:64","nodeType":"YulLiteral","src":"1801:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1791:6:64","nodeType":"YulIdentifier","src":"1791:6:64"},"nativeSrc":"1791:12:64","nodeType":"YulFunctionCall","src":"1791:12:64"},"nativeSrc":"1791:12:64","nodeType":"YulExpressionStatement","src":"1791:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"1692:117:64","nodeType":"YulFunctionDefinition","src":"1692:117:64"},{"body":{"nativeSrc":"1843:152:64","nodeType":"YulBlock","src":"1843:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1860:1:64","nodeType":"YulLiteral","src":"1860:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1863:77:64","nodeType":"YulLiteral","src":"1863:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1853:6:64","nodeType":"YulIdentifier","src":"1853:6:64"},"nativeSrc":"1853:88:64","nodeType":"YulFunctionCall","src":"1853:88:64"},"nativeSrc":"1853:88:64","nodeType":"YulExpressionStatement","src":"1853:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1957:1:64","nodeType":"YulLiteral","src":"1957:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"1960:4:64","nodeType":"YulLiteral","src":"1960:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1950:6:64","nodeType":"YulIdentifier","src":"1950:6:64"},"nativeSrc":"1950:15:64","nodeType":"YulFunctionCall","src":"1950:15:64"},"nativeSrc":"1950:15:64","nodeType":"YulExpressionStatement","src":"1950:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1981:1:64","nodeType":"YulLiteral","src":"1981:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1984:4:64","nodeType":"YulLiteral","src":"1984:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1974:6:64","nodeType":"YulIdentifier","src":"1974:6:64"},"nativeSrc":"1974:15:64","nodeType":"YulFunctionCall","src":"1974:15:64"},"nativeSrc":"1974:15:64","nodeType":"YulExpressionStatement","src":"1974:15:64"}]},"name":"panic_error_0x41","nativeSrc":"1815:180:64","nodeType":"YulFunctionDefinition","src":"1815:180:64"},{"body":{"nativeSrc":"2044:238:64","nodeType":"YulBlock","src":"2044:238:64","statements":[{"nativeSrc":"2054:58:64","nodeType":"YulVariableDeclaration","src":"2054:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"2076:6:64","nodeType":"YulIdentifier","src":"2076:6:64"},{"arguments":[{"name":"size","nativeSrc":"2106:4:64","nodeType":"YulIdentifier","src":"2106:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2084:21:64","nodeType":"YulIdentifier","src":"2084:21:64"},"nativeSrc":"2084:27:64","nodeType":"YulFunctionCall","src":"2084:27:64"}],"functionName":{"name":"add","nativeSrc":"2072:3:64","nodeType":"YulIdentifier","src":"2072:3:64"},"nativeSrc":"2072:40:64","nodeType":"YulFunctionCall","src":"2072:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"2058:10:64","nodeType":"YulTypedName","src":"2058:10:64","type":""}]},{"body":{"nativeSrc":"2223:22:64","nodeType":"YulBlock","src":"2223:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2225:16:64","nodeType":"YulIdentifier","src":"2225:16:64"},"nativeSrc":"2225:18:64","nodeType":"YulFunctionCall","src":"2225:18:64"},"nativeSrc":"2225:18:64","nodeType":"YulExpressionStatement","src":"2225:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2166:10:64","nodeType":"YulIdentifier","src":"2166:10:64"},{"kind":"number","nativeSrc":"2178:18:64","nodeType":"YulLiteral","src":"2178:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2163:2:64","nodeType":"YulIdentifier","src":"2163:2:64"},"nativeSrc":"2163:34:64","nodeType":"YulFunctionCall","src":"2163:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2202:10:64","nodeType":"YulIdentifier","src":"2202:10:64"},{"name":"memPtr","nativeSrc":"2214:6:64","nodeType":"YulIdentifier","src":"2214:6:64"}],"functionName":{"name":"lt","nativeSrc":"2199:2:64","nodeType":"YulIdentifier","src":"2199:2:64"},"nativeSrc":"2199:22:64","nodeType":"YulFunctionCall","src":"2199:22:64"}],"functionName":{"name":"or","nativeSrc":"2160:2:64","nodeType":"YulIdentifier","src":"2160:2:64"},"nativeSrc":"2160:62:64","nodeType":"YulFunctionCall","src":"2160:62:64"},"nativeSrc":"2157:88:64","nodeType":"YulIf","src":"2157:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2261:2:64","nodeType":"YulLiteral","src":"2261:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2265:10:64","nodeType":"YulIdentifier","src":"2265:10:64"}],"functionName":{"name":"mstore","nativeSrc":"2254:6:64","nodeType":"YulIdentifier","src":"2254:6:64"},"nativeSrc":"2254:22:64","nodeType":"YulFunctionCall","src":"2254:22:64"},"nativeSrc":"2254:22:64","nodeType":"YulExpressionStatement","src":"2254:22:64"}]},"name":"finalize_allocation","nativeSrc":"2001:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"2030:6:64","nodeType":"YulTypedName","src":"2030:6:64","type":""},{"name":"size","nativeSrc":"2038:4:64","nodeType":"YulTypedName","src":"2038:4:64","type":""}],"src":"2001:281:64"},{"body":{"nativeSrc":"2329:88:64","nodeType":"YulBlock","src":"2329:88:64","statements":[{"nativeSrc":"2339:30:64","nodeType":"YulAssignment","src":"2339:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2349:18:64","nodeType":"YulIdentifier","src":"2349:18:64"},"nativeSrc":"2349:20:64","nodeType":"YulFunctionCall","src":"2349:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"2339:6:64","nodeType":"YulIdentifier","src":"2339:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2398:6:64","nodeType":"YulIdentifier","src":"2398:6:64"},{"name":"size","nativeSrc":"2406:4:64","nodeType":"YulIdentifier","src":"2406:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2378:19:64","nodeType":"YulIdentifier","src":"2378:19:64"},"nativeSrc":"2378:33:64","nodeType":"YulFunctionCall","src":"2378:33:64"},"nativeSrc":"2378:33:64","nodeType":"YulExpressionStatement","src":"2378:33:64"}]},"name":"allocate_memory","nativeSrc":"2288:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2313:4:64","nodeType":"YulTypedName","src":"2313:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2322:6:64","nodeType":"YulTypedName","src":"2322:6:64","type":""}],"src":"2288:129:64"},{"body":{"nativeSrc":"2490:241:64","nodeType":"YulBlock","src":"2490:241:64","statements":[{"body":{"nativeSrc":"2595:22:64","nodeType":"YulBlock","src":"2595:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2597:16:64","nodeType":"YulIdentifier","src":"2597:16:64"},"nativeSrc":"2597:18:64","nodeType":"YulFunctionCall","src":"2597:18:64"},"nativeSrc":"2597:18:64","nodeType":"YulExpressionStatement","src":"2597:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2567:6:64","nodeType":"YulIdentifier","src":"2567:6:64"},{"kind":"number","nativeSrc":"2575:18:64","nodeType":"YulLiteral","src":"2575:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2564:2:64","nodeType":"YulIdentifier","src":"2564:2:64"},"nativeSrc":"2564:30:64","nodeType":"YulFunctionCall","src":"2564:30:64"},"nativeSrc":"2561:56:64","nodeType":"YulIf","src":"2561:56:64"},{"nativeSrc":"2627:37:64","nodeType":"YulAssignment","src":"2627:37:64","value":{"arguments":[{"name":"length","nativeSrc":"2657:6:64","nodeType":"YulIdentifier","src":"2657:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2635:21:64","nodeType":"YulIdentifier","src":"2635:21:64"},"nativeSrc":"2635:29:64","nodeType":"YulFunctionCall","src":"2635:29:64"},"variableNames":[{"name":"size","nativeSrc":"2627:4:64","nodeType":"YulIdentifier","src":"2627:4:64"}]},{"nativeSrc":"2701:23:64","nodeType":"YulAssignment","src":"2701:23:64","value":{"arguments":[{"name":"size","nativeSrc":"2713:4:64","nodeType":"YulIdentifier","src":"2713:4:64"},{"kind":"number","nativeSrc":"2719:4:64","nodeType":"YulLiteral","src":"2719:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2709:3:64","nodeType":"YulIdentifier","src":"2709:3:64"},"nativeSrc":"2709:15:64","nodeType":"YulFunctionCall","src":"2709:15:64"},"variableNames":[{"name":"size","nativeSrc":"2701:4:64","nodeType":"YulIdentifier","src":"2701:4:64"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"2423:308:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2474:6:64","nodeType":"YulTypedName","src":"2474:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2485:4:64","nodeType":"YulTypedName","src":"2485:4:64","type":""}],"src":"2423:308:64"},{"body":{"nativeSrc":"2801:84:64","nodeType":"YulBlock","src":"2801:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"2825:3:64","nodeType":"YulIdentifier","src":"2825:3:64"},{"name":"src","nativeSrc":"2830:3:64","nodeType":"YulIdentifier","src":"2830:3:64"},{"name":"length","nativeSrc":"2835:6:64","nodeType":"YulIdentifier","src":"2835:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"2812:12:64","nodeType":"YulIdentifier","src":"2812:12:64"},"nativeSrc":"2812:30:64","nodeType":"YulFunctionCall","src":"2812:30:64"},"nativeSrc":"2812:30:64","nodeType":"YulExpressionStatement","src":"2812:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"2862:3:64","nodeType":"YulIdentifier","src":"2862:3:64"},{"name":"length","nativeSrc":"2867:6:64","nodeType":"YulIdentifier","src":"2867:6:64"}],"functionName":{"name":"add","nativeSrc":"2858:3:64","nodeType":"YulIdentifier","src":"2858:3:64"},"nativeSrc":"2858:16:64","nodeType":"YulFunctionCall","src":"2858:16:64"},{"kind":"number","nativeSrc":"2876:1:64","nodeType":"YulLiteral","src":"2876:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"2851:6:64","nodeType":"YulIdentifier","src":"2851:6:64"},"nativeSrc":"2851:27:64","nodeType":"YulFunctionCall","src":"2851:27:64"},"nativeSrc":"2851:27:64","nodeType":"YulExpressionStatement","src":"2851:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"2737:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2783:3:64","nodeType":"YulTypedName","src":"2783:3:64","type":""},{"name":"dst","nativeSrc":"2788:3:64","nodeType":"YulTypedName","src":"2788:3:64","type":""},{"name":"length","nativeSrc":"2793:6:64","nodeType":"YulTypedName","src":"2793:6:64","type":""}],"src":"2737:148:64"},{"body":{"nativeSrc":"2975:341:64","nodeType":"YulBlock","src":"2975:341:64","statements":[{"nativeSrc":"2985:75:64","nodeType":"YulAssignment","src":"2985:75:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3052:6:64","nodeType":"YulIdentifier","src":"3052:6:64"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"3010:41:64","nodeType":"YulIdentifier","src":"3010:41:64"},"nativeSrc":"3010:49:64","nodeType":"YulFunctionCall","src":"3010:49:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"2994:15:64","nodeType":"YulIdentifier","src":"2994:15:64"},"nativeSrc":"2994:66:64","nodeType":"YulFunctionCall","src":"2994:66:64"},"variableNames":[{"name":"array","nativeSrc":"2985:5:64","nodeType":"YulIdentifier","src":"2985:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3076:5:64","nodeType":"YulIdentifier","src":"3076:5:64"},{"name":"length","nativeSrc":"3083:6:64","nodeType":"YulIdentifier","src":"3083:6:64"}],"functionName":{"name":"mstore","nativeSrc":"3069:6:64","nodeType":"YulIdentifier","src":"3069:6:64"},"nativeSrc":"3069:21:64","nodeType":"YulFunctionCall","src":"3069:21:64"},"nativeSrc":"3069:21:64","nodeType":"YulExpressionStatement","src":"3069:21:64"},{"nativeSrc":"3099:27:64","nodeType":"YulVariableDeclaration","src":"3099:27:64","value":{"arguments":[{"name":"array","nativeSrc":"3114:5:64","nodeType":"YulIdentifier","src":"3114:5:64"},{"kind":"number","nativeSrc":"3121:4:64","nodeType":"YulLiteral","src":"3121:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3110:3:64","nodeType":"YulIdentifier","src":"3110:3:64"},"nativeSrc":"3110:16:64","nodeType":"YulFunctionCall","src":"3110:16:64"},"variables":[{"name":"dst","nativeSrc":"3103:3:64","nodeType":"YulTypedName","src":"3103:3:64","type":""}]},{"body":{"nativeSrc":"3164:83:64","nodeType":"YulBlock","src":"3164:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3166:77:64","nodeType":"YulIdentifier","src":"3166:77:64"},"nativeSrc":"3166:79:64","nodeType":"YulFunctionCall","src":"3166:79:64"},"nativeSrc":"3166:79:64","nodeType":"YulExpressionStatement","src":"3166:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3145:3:64","nodeType":"YulIdentifier","src":"3145:3:64"},{"name":"length","nativeSrc":"3150:6:64","nodeType":"YulIdentifier","src":"3150:6:64"}],"functionName":{"name":"add","nativeSrc":"3141:3:64","nodeType":"YulIdentifier","src":"3141:3:64"},"nativeSrc":"3141:16:64","nodeType":"YulFunctionCall","src":"3141:16:64"},{"name":"end","nativeSrc":"3159:3:64","nodeType":"YulIdentifier","src":"3159:3:64"}],"functionName":{"name":"gt","nativeSrc":"3138:2:64","nodeType":"YulIdentifier","src":"3138:2:64"},"nativeSrc":"3138:25:64","nodeType":"YulFunctionCall","src":"3138:25:64"},"nativeSrc":"3135:112:64","nodeType":"YulIf","src":"3135:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3293:3:64","nodeType":"YulIdentifier","src":"3293:3:64"},{"name":"dst","nativeSrc":"3298:3:64","nodeType":"YulIdentifier","src":"3298:3:64"},{"name":"length","nativeSrc":"3303:6:64","nodeType":"YulIdentifier","src":"3303:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3256:36:64","nodeType":"YulIdentifier","src":"3256:36:64"},"nativeSrc":"3256:54:64","nodeType":"YulFunctionCall","src":"3256:54:64"},"nativeSrc":"3256:54:64","nodeType":"YulExpressionStatement","src":"3256:54:64"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"2891:425:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"2948:3:64","nodeType":"YulTypedName","src":"2948:3:64","type":""},{"name":"length","nativeSrc":"2953:6:64","nodeType":"YulTypedName","src":"2953:6:64","type":""},{"name":"end","nativeSrc":"2961:3:64","nodeType":"YulTypedName","src":"2961:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"2969:5:64","nodeType":"YulTypedName","src":"2969:5:64","type":""}],"src":"2891:425:64"},{"body":{"nativeSrc":"3398:278:64","nodeType":"YulBlock","src":"3398:278:64","statements":[{"body":{"nativeSrc":"3447:83:64","nodeType":"YulBlock","src":"3447:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3449:77:64","nodeType":"YulIdentifier","src":"3449:77:64"},"nativeSrc":"3449:79:64","nodeType":"YulFunctionCall","src":"3449:79:64"},"nativeSrc":"3449:79:64","nodeType":"YulExpressionStatement","src":"3449:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3426:6:64","nodeType":"YulIdentifier","src":"3426:6:64"},{"kind":"number","nativeSrc":"3434:4:64","nodeType":"YulLiteral","src":"3434:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3422:3:64","nodeType":"YulIdentifier","src":"3422:3:64"},"nativeSrc":"3422:17:64","nodeType":"YulFunctionCall","src":"3422:17:64"},{"name":"end","nativeSrc":"3441:3:64","nodeType":"YulIdentifier","src":"3441:3:64"}],"functionName":{"name":"slt","nativeSrc":"3418:3:64","nodeType":"YulIdentifier","src":"3418:3:64"},"nativeSrc":"3418:27:64","nodeType":"YulFunctionCall","src":"3418:27:64"}],"functionName":{"name":"iszero","nativeSrc":"3411:6:64","nodeType":"YulIdentifier","src":"3411:6:64"},"nativeSrc":"3411:35:64","nodeType":"YulFunctionCall","src":"3411:35:64"},"nativeSrc":"3408:122:64","nodeType":"YulIf","src":"3408:122:64"},{"nativeSrc":"3539:34:64","nodeType":"YulVariableDeclaration","src":"3539:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"3566:6:64","nodeType":"YulIdentifier","src":"3566:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"3553:12:64","nodeType":"YulIdentifier","src":"3553:12:64"},"nativeSrc":"3553:20:64","nodeType":"YulFunctionCall","src":"3553:20:64"},"variables":[{"name":"length","nativeSrc":"3543:6:64","nodeType":"YulTypedName","src":"3543:6:64","type":""}]},{"nativeSrc":"3582:88:64","nodeType":"YulAssignment","src":"3582:88:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3643:6:64","nodeType":"YulIdentifier","src":"3643:6:64"},{"kind":"number","nativeSrc":"3651:4:64","nodeType":"YulLiteral","src":"3651:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3639:3:64","nodeType":"YulIdentifier","src":"3639:3:64"},"nativeSrc":"3639:17:64","nodeType":"YulFunctionCall","src":"3639:17:64"},{"name":"length","nativeSrc":"3658:6:64","nodeType":"YulIdentifier","src":"3658:6:64"},{"name":"end","nativeSrc":"3666:3:64","nodeType":"YulIdentifier","src":"3666:3:64"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"3591:47:64","nodeType":"YulIdentifier","src":"3591:47:64"},"nativeSrc":"3591:79:64","nodeType":"YulFunctionCall","src":"3591:79:64"},"variableNames":[{"name":"array","nativeSrc":"3582:5:64","nodeType":"YulIdentifier","src":"3582:5:64"}]}]},"name":"abi_decode_t_string_memory_ptr","nativeSrc":"3336:340:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3376:6:64","nodeType":"YulTypedName","src":"3376:6:64","type":""},{"name":"end","nativeSrc":"3384:3:64","nodeType":"YulTypedName","src":"3384:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3392:5:64","nodeType":"YulTypedName","src":"3392:5:64","type":""}],"src":"3336:340:64"},{"body":{"nativeSrc":"3727:81:64","nodeType":"YulBlock","src":"3727:81:64","statements":[{"nativeSrc":"3737:65:64","nodeType":"YulAssignment","src":"3737:65:64","value":{"arguments":[{"name":"value","nativeSrc":"3752:5:64","nodeType":"YulIdentifier","src":"3752:5:64"},{"kind":"number","nativeSrc":"3759:42:64","nodeType":"YulLiteral","src":"3759:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3748:3:64","nodeType":"YulIdentifier","src":"3748:3:64"},"nativeSrc":"3748:54:64","nodeType":"YulFunctionCall","src":"3748:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"3737:7:64","nodeType":"YulIdentifier","src":"3737:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"3682:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3709:5:64","nodeType":"YulTypedName","src":"3709:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3719:7:64","nodeType":"YulTypedName","src":"3719:7:64","type":""}],"src":"3682:126:64"},{"body":{"nativeSrc":"3859:51:64","nodeType":"YulBlock","src":"3859:51:64","statements":[{"nativeSrc":"3869:35:64","nodeType":"YulAssignment","src":"3869:35:64","value":{"arguments":[{"name":"value","nativeSrc":"3898:5:64","nodeType":"YulIdentifier","src":"3898:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"3880:17:64","nodeType":"YulIdentifier","src":"3880:17:64"},"nativeSrc":"3880:24:64","nodeType":"YulFunctionCall","src":"3880:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"3869:7:64","nodeType":"YulIdentifier","src":"3869:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"3814:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3841:5:64","nodeType":"YulTypedName","src":"3841:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"3851:7:64","nodeType":"YulTypedName","src":"3851:7:64","type":""}],"src":"3814:96:64"},{"body":{"nativeSrc":"3959:79:64","nodeType":"YulBlock","src":"3959:79:64","statements":[{"body":{"nativeSrc":"4016:16:64","nodeType":"YulBlock","src":"4016:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4025:1:64","nodeType":"YulLiteral","src":"4025:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"4028:1:64","nodeType":"YulLiteral","src":"4028:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"4018:6:64","nodeType":"YulIdentifier","src":"4018:6:64"},"nativeSrc":"4018:12:64","nodeType":"YulFunctionCall","src":"4018:12:64"},"nativeSrc":"4018:12:64","nodeType":"YulExpressionStatement","src":"4018:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"3982:5:64","nodeType":"YulIdentifier","src":"3982:5:64"},{"arguments":[{"name":"value","nativeSrc":"4007:5:64","nodeType":"YulIdentifier","src":"4007:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"3989:17:64","nodeType":"YulIdentifier","src":"3989:17:64"},"nativeSrc":"3989:24:64","nodeType":"YulFunctionCall","src":"3989:24:64"}],"functionName":{"name":"eq","nativeSrc":"3979:2:64","nodeType":"YulIdentifier","src":"3979:2:64"},"nativeSrc":"3979:35:64","nodeType":"YulFunctionCall","src":"3979:35:64"}],"functionName":{"name":"iszero","nativeSrc":"3972:6:64","nodeType":"YulIdentifier","src":"3972:6:64"},"nativeSrc":"3972:43:64","nodeType":"YulFunctionCall","src":"3972:43:64"},"nativeSrc":"3969:63:64","nodeType":"YulIf","src":"3969:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"3916:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"3952:5:64","nodeType":"YulTypedName","src":"3952:5:64","type":""}],"src":"3916:122:64"},{"body":{"nativeSrc":"4096:87:64","nodeType":"YulBlock","src":"4096:87:64","statements":[{"nativeSrc":"4106:29:64","nodeType":"YulAssignment","src":"4106:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4128:6:64","nodeType":"YulIdentifier","src":"4128:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4115:12:64","nodeType":"YulIdentifier","src":"4115:12:64"},"nativeSrc":"4115:20:64","nodeType":"YulFunctionCall","src":"4115:20:64"},"variableNames":[{"name":"value","nativeSrc":"4106:5:64","nodeType":"YulIdentifier","src":"4106:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"4171:5:64","nodeType":"YulIdentifier","src":"4171:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"4144:26:64","nodeType":"YulIdentifier","src":"4144:26:64"},"nativeSrc":"4144:33:64","nodeType":"YulFunctionCall","src":"4144:33:64"},"nativeSrc":"4144:33:64","nodeType":"YulExpressionStatement","src":"4144:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"4044:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4074:6:64","nodeType":"YulTypedName","src":"4074:6:64","type":""},{"name":"end","nativeSrc":"4082:3:64","nodeType":"YulTypedName","src":"4082:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4090:5:64","nodeType":"YulTypedName","src":"4090:5:64","type":""}],"src":"4044:139:64"},{"body":{"nativeSrc":"4309:859:64","nodeType":"YulBlock","src":"4309:859:64","statements":[{"body":{"nativeSrc":"4355:83:64","nodeType":"YulBlock","src":"4355:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"4357:77:64","nodeType":"YulIdentifier","src":"4357:77:64"},"nativeSrc":"4357:79:64","nodeType":"YulFunctionCall","src":"4357:79:64"},"nativeSrc":"4357:79:64","nodeType":"YulExpressionStatement","src":"4357:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"4330:7:64","nodeType":"YulIdentifier","src":"4330:7:64"},{"name":"headStart","nativeSrc":"4339:9:64","nodeType":"YulIdentifier","src":"4339:9:64"}],"functionName":{"name":"sub","nativeSrc":"4326:3:64","nodeType":"YulIdentifier","src":"4326:3:64"},"nativeSrc":"4326:23:64","nodeType":"YulFunctionCall","src":"4326:23:64"},{"kind":"number","nativeSrc":"4351:2:64","nodeType":"YulLiteral","src":"4351:2:64","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"4322:3:64","nodeType":"YulIdentifier","src":"4322:3:64"},"nativeSrc":"4322:32:64","nodeType":"YulFunctionCall","src":"4322:32:64"},"nativeSrc":"4319:119:64","nodeType":"YulIf","src":"4319:119:64"},{"nativeSrc":"4448:287:64","nodeType":"YulBlock","src":"4448:287:64","statements":[{"nativeSrc":"4463:45:64","nodeType":"YulVariableDeclaration","src":"4463:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4494:9:64","nodeType":"YulIdentifier","src":"4494:9:64"},{"kind":"number","nativeSrc":"4505:1:64","nodeType":"YulLiteral","src":"4505:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"4490:3:64","nodeType":"YulIdentifier","src":"4490:3:64"},"nativeSrc":"4490:17:64","nodeType":"YulFunctionCall","src":"4490:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"4477:12:64","nodeType":"YulIdentifier","src":"4477:12:64"},"nativeSrc":"4477:31:64","nodeType":"YulFunctionCall","src":"4477:31:64"},"variables":[{"name":"offset","nativeSrc":"4467:6:64","nodeType":"YulTypedName","src":"4467:6:64","type":""}]},{"body":{"nativeSrc":"4555:83:64","nodeType":"YulBlock","src":"4555:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4557:77:64","nodeType":"YulIdentifier","src":"4557:77:64"},"nativeSrc":"4557:79:64","nodeType":"YulFunctionCall","src":"4557:79:64"},"nativeSrc":"4557:79:64","nodeType":"YulExpressionStatement","src":"4557:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4527:6:64","nodeType":"YulIdentifier","src":"4527:6:64"},{"kind":"number","nativeSrc":"4535:18:64","nodeType":"YulLiteral","src":"4535:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4524:2:64","nodeType":"YulIdentifier","src":"4524:2:64"},"nativeSrc":"4524:30:64","nodeType":"YulFunctionCall","src":"4524:30:64"},"nativeSrc":"4521:117:64","nodeType":"YulIf","src":"4521:117:64"},{"nativeSrc":"4652:73:64","nodeType":"YulAssignment","src":"4652:73:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4697:9:64","nodeType":"YulIdentifier","src":"4697:9:64"},{"name":"offset","nativeSrc":"4708:6:64","nodeType":"YulIdentifier","src":"4708:6:64"}],"functionName":{"name":"add","nativeSrc":"4693:3:64","nodeType":"YulIdentifier","src":"4693:3:64"},"nativeSrc":"4693:22:64","nodeType":"YulFunctionCall","src":"4693:22:64"},{"name":"dataEnd","nativeSrc":"4717:7:64","nodeType":"YulIdentifier","src":"4717:7:64"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4662:30:64","nodeType":"YulIdentifier","src":"4662:30:64"},"nativeSrc":"4662:63:64","nodeType":"YulFunctionCall","src":"4662:63:64"},"variableNames":[{"name":"value0","nativeSrc":"4652:6:64","nodeType":"YulIdentifier","src":"4652:6:64"}]}]},{"nativeSrc":"4745:288:64","nodeType":"YulBlock","src":"4745:288:64","statements":[{"nativeSrc":"4760:46:64","nodeType":"YulVariableDeclaration","src":"4760:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4791:9:64","nodeType":"YulIdentifier","src":"4791:9:64"},{"kind":"number","nativeSrc":"4802:2:64","nodeType":"YulLiteral","src":"4802:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4787:3:64","nodeType":"YulIdentifier","src":"4787:3:64"},"nativeSrc":"4787:18:64","nodeType":"YulFunctionCall","src":"4787:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"4774:12:64","nodeType":"YulIdentifier","src":"4774:12:64"},"nativeSrc":"4774:32:64","nodeType":"YulFunctionCall","src":"4774:32:64"},"variables":[{"name":"offset","nativeSrc":"4764:6:64","nodeType":"YulTypedName","src":"4764:6:64","type":""}]},{"body":{"nativeSrc":"4853:83:64","nodeType":"YulBlock","src":"4853:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4855:77:64","nodeType":"YulIdentifier","src":"4855:77:64"},"nativeSrc":"4855:79:64","nodeType":"YulFunctionCall","src":"4855:79:64"},"nativeSrc":"4855:79:64","nodeType":"YulExpressionStatement","src":"4855:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4825:6:64","nodeType":"YulIdentifier","src":"4825:6:64"},{"kind":"number","nativeSrc":"4833:18:64","nodeType":"YulLiteral","src":"4833:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4822:2:64","nodeType":"YulIdentifier","src":"4822:2:64"},"nativeSrc":"4822:30:64","nodeType":"YulFunctionCall","src":"4822:30:64"},"nativeSrc":"4819:117:64","nodeType":"YulIf","src":"4819:117:64"},{"nativeSrc":"4950:73:64","nodeType":"YulAssignment","src":"4950:73:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4995:9:64","nodeType":"YulIdentifier","src":"4995:9:64"},{"name":"offset","nativeSrc":"5006:6:64","nodeType":"YulIdentifier","src":"5006:6:64"}],"functionName":{"name":"add","nativeSrc":"4991:3:64","nodeType":"YulIdentifier","src":"4991:3:64"},"nativeSrc":"4991:22:64","nodeType":"YulFunctionCall","src":"4991:22:64"},{"name":"dataEnd","nativeSrc":"5015:7:64","nodeType":"YulIdentifier","src":"5015:7:64"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4960:30:64","nodeType":"YulIdentifier","src":"4960:30:64"},"nativeSrc":"4960:63:64","nodeType":"YulFunctionCall","src":"4960:63:64"},"variableNames":[{"name":"value1","nativeSrc":"4950:6:64","nodeType":"YulIdentifier","src":"4950:6:64"}]}]},{"nativeSrc":"5043:118:64","nodeType":"YulBlock","src":"5043:118:64","statements":[{"nativeSrc":"5058:16:64","nodeType":"YulVariableDeclaration","src":"5058:16:64","value":{"kind":"number","nativeSrc":"5072:2:64","nodeType":"YulLiteral","src":"5072:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"5062:6:64","nodeType":"YulTypedName","src":"5062:6:64","type":""}]},{"nativeSrc":"5088:63:64","nodeType":"YulAssignment","src":"5088:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5123:9:64","nodeType":"YulIdentifier","src":"5123:9:64"},{"name":"offset","nativeSrc":"5134:6:64","nodeType":"YulIdentifier","src":"5134:6:64"}],"functionName":{"name":"add","nativeSrc":"5119:3:64","nodeType":"YulIdentifier","src":"5119:3:64"},"nativeSrc":"5119:22:64","nodeType":"YulFunctionCall","src":"5119:22:64"},{"name":"dataEnd","nativeSrc":"5143:7:64","nodeType":"YulIdentifier","src":"5143:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5098:20:64","nodeType":"YulIdentifier","src":"5098:20:64"},"nativeSrc":"5098:53:64","nodeType":"YulFunctionCall","src":"5098:53:64"},"variableNames":[{"name":"value2","nativeSrc":"5088:6:64","nodeType":"YulIdentifier","src":"5088:6:64"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address","nativeSrc":"4189:979:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4263:9:64","nodeType":"YulTypedName","src":"4263:9:64","type":""},{"name":"dataEnd","nativeSrc":"4274:7:64","nodeType":"YulTypedName","src":"4274:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4286:6:64","nodeType":"YulTypedName","src":"4286:6:64","type":""},{"name":"value1","nativeSrc":"4294:6:64","nodeType":"YulTypedName","src":"4294:6:64","type":""},{"name":"value2","nativeSrc":"4302:6:64","nodeType":"YulTypedName","src":"4302:6:64","type":""}],"src":"4189:979:64"},{"body":{"nativeSrc":"5219:32:64","nodeType":"YulBlock","src":"5219:32:64","statements":[{"nativeSrc":"5229:16:64","nodeType":"YulAssignment","src":"5229:16:64","value":{"name":"value","nativeSrc":"5240:5:64","nodeType":"YulIdentifier","src":"5240:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5229:7:64","nodeType":"YulIdentifier","src":"5229:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"5174:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5201:5:64","nodeType":"YulTypedName","src":"5201:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5211:7:64","nodeType":"YulTypedName","src":"5211:7:64","type":""}],"src":"5174:77:64"},{"body":{"nativeSrc":"5300:79:64","nodeType":"YulBlock","src":"5300:79:64","statements":[{"body":{"nativeSrc":"5357:16:64","nodeType":"YulBlock","src":"5357:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5366:1:64","nodeType":"YulLiteral","src":"5366:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5369:1:64","nodeType":"YulLiteral","src":"5369:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5359:6:64","nodeType":"YulIdentifier","src":"5359:6:64"},"nativeSrc":"5359:12:64","nodeType":"YulFunctionCall","src":"5359:12:64"},"nativeSrc":"5359:12:64","nodeType":"YulExpressionStatement","src":"5359:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5323:5:64","nodeType":"YulIdentifier","src":"5323:5:64"},{"arguments":[{"name":"value","nativeSrc":"5348:5:64","nodeType":"YulIdentifier","src":"5348:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"5330:17:64","nodeType":"YulIdentifier","src":"5330:17:64"},"nativeSrc":"5330:24:64","nodeType":"YulFunctionCall","src":"5330:24:64"}],"functionName":{"name":"eq","nativeSrc":"5320:2:64","nodeType":"YulIdentifier","src":"5320:2:64"},"nativeSrc":"5320:35:64","nodeType":"YulFunctionCall","src":"5320:35:64"}],"functionName":{"name":"iszero","nativeSrc":"5313:6:64","nodeType":"YulIdentifier","src":"5313:6:64"},"nativeSrc":"5313:43:64","nodeType":"YulFunctionCall","src":"5313:43:64"},"nativeSrc":"5310:63:64","nodeType":"YulIf","src":"5310:63:64"}]},"name":"validator_revert_t_uint256","nativeSrc":"5257:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5293:5:64","nodeType":"YulTypedName","src":"5293:5:64","type":""}],"src":"5257:122:64"},{"body":{"nativeSrc":"5437:87:64","nodeType":"YulBlock","src":"5437:87:64","statements":[{"nativeSrc":"5447:29:64","nodeType":"YulAssignment","src":"5447:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"5469:6:64","nodeType":"YulIdentifier","src":"5469:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"5456:12:64","nodeType":"YulIdentifier","src":"5456:12:64"},"nativeSrc":"5456:20:64","nodeType":"YulFunctionCall","src":"5456:20:64"},"variableNames":[{"name":"value","nativeSrc":"5447:5:64","nodeType":"YulIdentifier","src":"5447:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5512:5:64","nodeType":"YulIdentifier","src":"5512:5:64"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"5485:26:64","nodeType":"YulIdentifier","src":"5485:26:64"},"nativeSrc":"5485:33:64","nodeType":"YulFunctionCall","src":"5485:33:64"},"nativeSrc":"5485:33:64","nodeType":"YulExpressionStatement","src":"5485:33:64"}]},"name":"abi_decode_t_uint256","nativeSrc":"5385:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5415:6:64","nodeType":"YulTypedName","src":"5415:6:64","type":""},{"name":"end","nativeSrc":"5423:3:64","nodeType":"YulTypedName","src":"5423:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5431:5:64","nodeType":"YulTypedName","src":"5431:5:64","type":""}],"src":"5385:139:64"},{"body":{"nativeSrc":"5613:391:64","nodeType":"YulBlock","src":"5613:391:64","statements":[{"body":{"nativeSrc":"5659:83:64","nodeType":"YulBlock","src":"5659:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5661:77:64","nodeType":"YulIdentifier","src":"5661:77:64"},"nativeSrc":"5661:79:64","nodeType":"YulFunctionCall","src":"5661:79:64"},"nativeSrc":"5661:79:64","nodeType":"YulExpressionStatement","src":"5661:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5634:7:64","nodeType":"YulIdentifier","src":"5634:7:64"},{"name":"headStart","nativeSrc":"5643:9:64","nodeType":"YulIdentifier","src":"5643:9:64"}],"functionName":{"name":"sub","nativeSrc":"5630:3:64","nodeType":"YulIdentifier","src":"5630:3:64"},"nativeSrc":"5630:23:64","nodeType":"YulFunctionCall","src":"5630:23:64"},{"kind":"number","nativeSrc":"5655:2:64","nodeType":"YulLiteral","src":"5655:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"5626:3:64","nodeType":"YulIdentifier","src":"5626:3:64"},"nativeSrc":"5626:32:64","nodeType":"YulFunctionCall","src":"5626:32:64"},"nativeSrc":"5623:119:64","nodeType":"YulIf","src":"5623:119:64"},{"nativeSrc":"5752:117:64","nodeType":"YulBlock","src":"5752:117:64","statements":[{"nativeSrc":"5767:15:64","nodeType":"YulVariableDeclaration","src":"5767:15:64","value":{"kind":"number","nativeSrc":"5781:1:64","nodeType":"YulLiteral","src":"5781:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"5771:6:64","nodeType":"YulTypedName","src":"5771:6:64","type":""}]},{"nativeSrc":"5796:63:64","nodeType":"YulAssignment","src":"5796:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5831:9:64","nodeType":"YulIdentifier","src":"5831:9:64"},{"name":"offset","nativeSrc":"5842:6:64","nodeType":"YulIdentifier","src":"5842:6:64"}],"functionName":{"name":"add","nativeSrc":"5827:3:64","nodeType":"YulIdentifier","src":"5827:3:64"},"nativeSrc":"5827:22:64","nodeType":"YulFunctionCall","src":"5827:22:64"},{"name":"dataEnd","nativeSrc":"5851:7:64","nodeType":"YulIdentifier","src":"5851:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"5806:20:64","nodeType":"YulIdentifier","src":"5806:20:64"},"nativeSrc":"5806:53:64","nodeType":"YulFunctionCall","src":"5806:53:64"},"variableNames":[{"name":"value0","nativeSrc":"5796:6:64","nodeType":"YulIdentifier","src":"5796:6:64"}]}]},{"nativeSrc":"5879:118:64","nodeType":"YulBlock","src":"5879:118:64","statements":[{"nativeSrc":"5894:16:64","nodeType":"YulVariableDeclaration","src":"5894:16:64","value":{"kind":"number","nativeSrc":"5908:2:64","nodeType":"YulLiteral","src":"5908:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5898:6:64","nodeType":"YulTypedName","src":"5898:6:64","type":""}]},{"nativeSrc":"5924:63:64","nodeType":"YulAssignment","src":"5924:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5959:9:64","nodeType":"YulIdentifier","src":"5959:9:64"},{"name":"offset","nativeSrc":"5970:6:64","nodeType":"YulIdentifier","src":"5970:6:64"}],"functionName":{"name":"add","nativeSrc":"5955:3:64","nodeType":"YulIdentifier","src":"5955:3:64"},"nativeSrc":"5955:22:64","nodeType":"YulFunctionCall","src":"5955:22:64"},{"name":"dataEnd","nativeSrc":"5979:7:64","nodeType":"YulIdentifier","src":"5979:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"5934:20:64","nodeType":"YulIdentifier","src":"5934:20:64"},"nativeSrc":"5934:53:64","nodeType":"YulFunctionCall","src":"5934:53:64"},"variableNames":[{"name":"value1","nativeSrc":"5924:6:64","nodeType":"YulIdentifier","src":"5924:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nativeSrc":"5530:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5575:9:64","nodeType":"YulTypedName","src":"5575:9:64","type":""},{"name":"dataEnd","nativeSrc":"5586:7:64","nodeType":"YulTypedName","src":"5586:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"5598:6:64","nodeType":"YulTypedName","src":"5598:6:64","type":""},{"name":"value1","nativeSrc":"5606:6:64","nodeType":"YulTypedName","src":"5606:6:64","type":""}],"src":"5530:474:64"},{"body":{"nativeSrc":"6052:48:64","nodeType":"YulBlock","src":"6052:48:64","statements":[{"nativeSrc":"6062:32:64","nodeType":"YulAssignment","src":"6062:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6087:5:64","nodeType":"YulIdentifier","src":"6087:5:64"}],"functionName":{"name":"iszero","nativeSrc":"6080:6:64","nodeType":"YulIdentifier","src":"6080:6:64"},"nativeSrc":"6080:13:64","nodeType":"YulFunctionCall","src":"6080:13:64"}],"functionName":{"name":"iszero","nativeSrc":"6073:6:64","nodeType":"YulIdentifier","src":"6073:6:64"},"nativeSrc":"6073:21:64","nodeType":"YulFunctionCall","src":"6073:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"6062:7:64","nodeType":"YulIdentifier","src":"6062:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"6010:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6034:5:64","nodeType":"YulTypedName","src":"6034:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6044:7:64","nodeType":"YulTypedName","src":"6044:7:64","type":""}],"src":"6010:90:64"},{"body":{"nativeSrc":"6165:50:64","nodeType":"YulBlock","src":"6165:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6182:3:64","nodeType":"YulIdentifier","src":"6182:3:64"},{"arguments":[{"name":"value","nativeSrc":"6202:5:64","nodeType":"YulIdentifier","src":"6202:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"6187:14:64","nodeType":"YulIdentifier","src":"6187:14:64"},"nativeSrc":"6187:21:64","nodeType":"YulFunctionCall","src":"6187:21:64"}],"functionName":{"name":"mstore","nativeSrc":"6175:6:64","nodeType":"YulIdentifier","src":"6175:6:64"},"nativeSrc":"6175:34:64","nodeType":"YulFunctionCall","src":"6175:34:64"},"nativeSrc":"6175:34:64","nodeType":"YulExpressionStatement","src":"6175:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"6106:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6153:5:64","nodeType":"YulTypedName","src":"6153:5:64","type":""},{"name":"pos","nativeSrc":"6160:3:64","nodeType":"YulTypedName","src":"6160:3:64","type":""}],"src":"6106:109:64"},{"body":{"nativeSrc":"6313:118:64","nodeType":"YulBlock","src":"6313:118:64","statements":[{"nativeSrc":"6323:26:64","nodeType":"YulAssignment","src":"6323:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6335:9:64","nodeType":"YulIdentifier","src":"6335:9:64"},{"kind":"number","nativeSrc":"6346:2:64","nodeType":"YulLiteral","src":"6346:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6331:3:64","nodeType":"YulIdentifier","src":"6331:3:64"},"nativeSrc":"6331:18:64","nodeType":"YulFunctionCall","src":"6331:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6323:4:64","nodeType":"YulIdentifier","src":"6323:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6397:6:64","nodeType":"YulIdentifier","src":"6397:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6410:9:64","nodeType":"YulIdentifier","src":"6410:9:64"},{"kind":"number","nativeSrc":"6421:1:64","nodeType":"YulLiteral","src":"6421:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6406:3:64","nodeType":"YulIdentifier","src":"6406:3:64"},"nativeSrc":"6406:17:64","nodeType":"YulFunctionCall","src":"6406:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"6359:37:64","nodeType":"YulIdentifier","src":"6359:37:64"},"nativeSrc":"6359:65:64","nodeType":"YulFunctionCall","src":"6359:65:64"},"nativeSrc":"6359:65:64","nodeType":"YulExpressionStatement","src":"6359:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"6221:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6285:9:64","nodeType":"YulTypedName","src":"6285:9:64","type":""},{"name":"value0","nativeSrc":"6297:6:64","nodeType":"YulTypedName","src":"6297:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6308:4:64","nodeType":"YulTypedName","src":"6308:4:64","type":""}],"src":"6221:210:64"},{"body":{"nativeSrc":"6502:53:64","nodeType":"YulBlock","src":"6502:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6519:3:64","nodeType":"YulIdentifier","src":"6519:3:64"},{"arguments":[{"name":"value","nativeSrc":"6542:5:64","nodeType":"YulIdentifier","src":"6542:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6524:17:64","nodeType":"YulIdentifier","src":"6524:17:64"},"nativeSrc":"6524:24:64","nodeType":"YulFunctionCall","src":"6524:24:64"}],"functionName":{"name":"mstore","nativeSrc":"6512:6:64","nodeType":"YulIdentifier","src":"6512:6:64"},"nativeSrc":"6512:37:64","nodeType":"YulFunctionCall","src":"6512:37:64"},"nativeSrc":"6512:37:64","nodeType":"YulExpressionStatement","src":"6512:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6437:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6490:5:64","nodeType":"YulTypedName","src":"6490:5:64","type":""},{"name":"pos","nativeSrc":"6497:3:64","nodeType":"YulTypedName","src":"6497:3:64","type":""}],"src":"6437:118:64"},{"body":{"nativeSrc":"6659:124:64","nodeType":"YulBlock","src":"6659:124:64","statements":[{"nativeSrc":"6669:26:64","nodeType":"YulAssignment","src":"6669:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6681:9:64","nodeType":"YulIdentifier","src":"6681:9:64"},{"kind":"number","nativeSrc":"6692:2:64","nodeType":"YulLiteral","src":"6692:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6677:3:64","nodeType":"YulIdentifier","src":"6677:3:64"},"nativeSrc":"6677:18:64","nodeType":"YulFunctionCall","src":"6677:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6669:4:64","nodeType":"YulIdentifier","src":"6669:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6749:6:64","nodeType":"YulIdentifier","src":"6749:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6762:9:64","nodeType":"YulIdentifier","src":"6762:9:64"},{"kind":"number","nativeSrc":"6773:1:64","nodeType":"YulLiteral","src":"6773:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6758:3:64","nodeType":"YulIdentifier","src":"6758:3:64"},"nativeSrc":"6758:17:64","nodeType":"YulFunctionCall","src":"6758:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6705:43:64","nodeType":"YulIdentifier","src":"6705:43:64"},"nativeSrc":"6705:71:64","nodeType":"YulFunctionCall","src":"6705:71:64"},"nativeSrc":"6705:71:64","nodeType":"YulExpressionStatement","src":"6705:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6561:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6631:9:64","nodeType":"YulTypedName","src":"6631:9:64","type":""},{"name":"value0","nativeSrc":"6643:6:64","nodeType":"YulTypedName","src":"6643:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6654:4:64","nodeType":"YulTypedName","src":"6654:4:64","type":""}],"src":"6561:222:64"},{"body":{"nativeSrc":"6855:263:64","nodeType":"YulBlock","src":"6855:263:64","statements":[{"body":{"nativeSrc":"6901:83:64","nodeType":"YulBlock","src":"6901:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6903:77:64","nodeType":"YulIdentifier","src":"6903:77:64"},"nativeSrc":"6903:79:64","nodeType":"YulFunctionCall","src":"6903:79:64"},"nativeSrc":"6903:79:64","nodeType":"YulExpressionStatement","src":"6903:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6876:7:64","nodeType":"YulIdentifier","src":"6876:7:64"},{"name":"headStart","nativeSrc":"6885:9:64","nodeType":"YulIdentifier","src":"6885:9:64"}],"functionName":{"name":"sub","nativeSrc":"6872:3:64","nodeType":"YulIdentifier","src":"6872:3:64"},"nativeSrc":"6872:23:64","nodeType":"YulFunctionCall","src":"6872:23:64"},{"kind":"number","nativeSrc":"6897:2:64","nodeType":"YulLiteral","src":"6897:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6868:3:64","nodeType":"YulIdentifier","src":"6868:3:64"},"nativeSrc":"6868:32:64","nodeType":"YulFunctionCall","src":"6868:32:64"},"nativeSrc":"6865:119:64","nodeType":"YulIf","src":"6865:119:64"},{"nativeSrc":"6994:117:64","nodeType":"YulBlock","src":"6994:117:64","statements":[{"nativeSrc":"7009:15:64","nodeType":"YulVariableDeclaration","src":"7009:15:64","value":{"kind":"number","nativeSrc":"7023:1:64","nodeType":"YulLiteral","src":"7023:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7013:6:64","nodeType":"YulTypedName","src":"7013:6:64","type":""}]},{"nativeSrc":"7038:63:64","nodeType":"YulAssignment","src":"7038:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7073:9:64","nodeType":"YulIdentifier","src":"7073:9:64"},{"name":"offset","nativeSrc":"7084:6:64","nodeType":"YulIdentifier","src":"7084:6:64"}],"functionName":{"name":"add","nativeSrc":"7069:3:64","nodeType":"YulIdentifier","src":"7069:3:64"},"nativeSrc":"7069:22:64","nodeType":"YulFunctionCall","src":"7069:22:64"},{"name":"dataEnd","nativeSrc":"7093:7:64","nodeType":"YulIdentifier","src":"7093:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7048:20:64","nodeType":"YulIdentifier","src":"7048:20:64"},"nativeSrc":"7048:53:64","nodeType":"YulFunctionCall","src":"7048:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7038:6:64","nodeType":"YulIdentifier","src":"7038:6:64"}]}]}]},"name":"abi_decode_tuple_t_uint256","nativeSrc":"6789:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6825:9:64","nodeType":"YulTypedName","src":"6825:9:64","type":""},{"name":"dataEnd","nativeSrc":"6836:7:64","nodeType":"YulTypedName","src":"6836:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6848:6:64","nodeType":"YulTypedName","src":"6848:6:64","type":""}],"src":"6789:329:64"},{"body":{"nativeSrc":"7224:519:64","nodeType":"YulBlock","src":"7224:519:64","statements":[{"body":{"nativeSrc":"7270:83:64","nodeType":"YulBlock","src":"7270:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7272:77:64","nodeType":"YulIdentifier","src":"7272:77:64"},"nativeSrc":"7272:79:64","nodeType":"YulFunctionCall","src":"7272:79:64"},"nativeSrc":"7272:79:64","nodeType":"YulExpressionStatement","src":"7272:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7245:7:64","nodeType":"YulIdentifier","src":"7245:7:64"},{"name":"headStart","nativeSrc":"7254:9:64","nodeType":"YulIdentifier","src":"7254:9:64"}],"functionName":{"name":"sub","nativeSrc":"7241:3:64","nodeType":"YulIdentifier","src":"7241:3:64"},"nativeSrc":"7241:23:64","nodeType":"YulFunctionCall","src":"7241:23:64"},{"kind":"number","nativeSrc":"7266:2:64","nodeType":"YulLiteral","src":"7266:2:64","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"7237:3:64","nodeType":"YulIdentifier","src":"7237:3:64"},"nativeSrc":"7237:32:64","nodeType":"YulFunctionCall","src":"7237:32:64"},"nativeSrc":"7234:119:64","nodeType":"YulIf","src":"7234:119:64"},{"nativeSrc":"7363:117:64","nodeType":"YulBlock","src":"7363:117:64","statements":[{"nativeSrc":"7378:15:64","nodeType":"YulVariableDeclaration","src":"7378:15:64","value":{"kind":"number","nativeSrc":"7392:1:64","nodeType":"YulLiteral","src":"7392:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7382:6:64","nodeType":"YulTypedName","src":"7382:6:64","type":""}]},{"nativeSrc":"7407:63:64","nodeType":"YulAssignment","src":"7407:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7442:9:64","nodeType":"YulIdentifier","src":"7442:9:64"},{"name":"offset","nativeSrc":"7453:6:64","nodeType":"YulIdentifier","src":"7453:6:64"}],"functionName":{"name":"add","nativeSrc":"7438:3:64","nodeType":"YulIdentifier","src":"7438:3:64"},"nativeSrc":"7438:22:64","nodeType":"YulFunctionCall","src":"7438:22:64"},{"name":"dataEnd","nativeSrc":"7462:7:64","nodeType":"YulIdentifier","src":"7462:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7417:20:64","nodeType":"YulIdentifier","src":"7417:20:64"},"nativeSrc":"7417:53:64","nodeType":"YulFunctionCall","src":"7417:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7407:6:64","nodeType":"YulIdentifier","src":"7407:6:64"}]}]},{"nativeSrc":"7490:118:64","nodeType":"YulBlock","src":"7490:118:64","statements":[{"nativeSrc":"7505:16:64","nodeType":"YulVariableDeclaration","src":"7505:16:64","value":{"kind":"number","nativeSrc":"7519:2:64","nodeType":"YulLiteral","src":"7519:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"7509:6:64","nodeType":"YulTypedName","src":"7509:6:64","type":""}]},{"nativeSrc":"7535:63:64","nodeType":"YulAssignment","src":"7535:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7570:9:64","nodeType":"YulIdentifier","src":"7570:9:64"},{"name":"offset","nativeSrc":"7581:6:64","nodeType":"YulIdentifier","src":"7581:6:64"}],"functionName":{"name":"add","nativeSrc":"7566:3:64","nodeType":"YulIdentifier","src":"7566:3:64"},"nativeSrc":"7566:22:64","nodeType":"YulFunctionCall","src":"7566:22:64"},{"name":"dataEnd","nativeSrc":"7590:7:64","nodeType":"YulIdentifier","src":"7590:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"7545:20:64","nodeType":"YulIdentifier","src":"7545:20:64"},"nativeSrc":"7545:53:64","nodeType":"YulFunctionCall","src":"7545:53:64"},"variableNames":[{"name":"value1","nativeSrc":"7535:6:64","nodeType":"YulIdentifier","src":"7535:6:64"}]}]},{"nativeSrc":"7618:118:64","nodeType":"YulBlock","src":"7618:118:64","statements":[{"nativeSrc":"7633:16:64","nodeType":"YulVariableDeclaration","src":"7633:16:64","value":{"kind":"number","nativeSrc":"7647:2:64","nodeType":"YulLiteral","src":"7647:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"7637:6:64","nodeType":"YulTypedName","src":"7637:6:64","type":""}]},{"nativeSrc":"7663:63:64","nodeType":"YulAssignment","src":"7663:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7698:9:64","nodeType":"YulIdentifier","src":"7698:9:64"},{"name":"offset","nativeSrc":"7709:6:64","nodeType":"YulIdentifier","src":"7709:6:64"}],"functionName":{"name":"add","nativeSrc":"7694:3:64","nodeType":"YulIdentifier","src":"7694:3:64"},"nativeSrc":"7694:22:64","nodeType":"YulFunctionCall","src":"7694:22:64"},{"name":"dataEnd","nativeSrc":"7718:7:64","nodeType":"YulIdentifier","src":"7718:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"7673:20:64","nodeType":"YulIdentifier","src":"7673:20:64"},"nativeSrc":"7673:53:64","nodeType":"YulFunctionCall","src":"7673:53:64"},"variableNames":[{"name":"value2","nativeSrc":"7663:6:64","nodeType":"YulIdentifier","src":"7663:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nativeSrc":"7124:619:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7178:9:64","nodeType":"YulTypedName","src":"7178:9:64","type":""},{"name":"dataEnd","nativeSrc":"7189:7:64","nodeType":"YulTypedName","src":"7189:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7201:6:64","nodeType":"YulTypedName","src":"7201:6:64","type":""},{"name":"value1","nativeSrc":"7209:6:64","nodeType":"YulTypedName","src":"7209:6:64","type":""},{"name":"value2","nativeSrc":"7217:6:64","nodeType":"YulTypedName","src":"7217:6:64","type":""}],"src":"7124:619:64"},{"body":{"nativeSrc":"7815:263:64","nodeType":"YulBlock","src":"7815:263:64","statements":[{"body":{"nativeSrc":"7861:83:64","nodeType":"YulBlock","src":"7861:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7863:77:64","nodeType":"YulIdentifier","src":"7863:77:64"},"nativeSrc":"7863:79:64","nodeType":"YulFunctionCall","src":"7863:79:64"},"nativeSrc":"7863:79:64","nodeType":"YulExpressionStatement","src":"7863:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7836:7:64","nodeType":"YulIdentifier","src":"7836:7:64"},{"name":"headStart","nativeSrc":"7845:9:64","nodeType":"YulIdentifier","src":"7845:9:64"}],"functionName":{"name":"sub","nativeSrc":"7832:3:64","nodeType":"YulIdentifier","src":"7832:3:64"},"nativeSrc":"7832:23:64","nodeType":"YulFunctionCall","src":"7832:23:64"},{"kind":"number","nativeSrc":"7857:2:64","nodeType":"YulLiteral","src":"7857:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7828:3:64","nodeType":"YulIdentifier","src":"7828:3:64"},"nativeSrc":"7828:32:64","nodeType":"YulFunctionCall","src":"7828:32:64"},"nativeSrc":"7825:119:64","nodeType":"YulIf","src":"7825:119:64"},{"nativeSrc":"7954:117:64","nodeType":"YulBlock","src":"7954:117:64","statements":[{"nativeSrc":"7969:15:64","nodeType":"YulVariableDeclaration","src":"7969:15:64","value":{"kind":"number","nativeSrc":"7983:1:64","nodeType":"YulLiteral","src":"7983:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7973:6:64","nodeType":"YulTypedName","src":"7973:6:64","type":""}]},{"nativeSrc":"7998:63:64","nodeType":"YulAssignment","src":"7998:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8033:9:64","nodeType":"YulIdentifier","src":"8033:9:64"},{"name":"offset","nativeSrc":"8044:6:64","nodeType":"YulIdentifier","src":"8044:6:64"}],"functionName":{"name":"add","nativeSrc":"8029:3:64","nodeType":"YulIdentifier","src":"8029:3:64"},"nativeSrc":"8029:22:64","nodeType":"YulFunctionCall","src":"8029:22:64"},{"name":"dataEnd","nativeSrc":"8053:7:64","nodeType":"YulIdentifier","src":"8053:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"8008:20:64","nodeType":"YulIdentifier","src":"8008:20:64"},"nativeSrc":"8008:53:64","nodeType":"YulFunctionCall","src":"8008:53:64"},"variableNames":[{"name":"value0","nativeSrc":"7998:6:64","nodeType":"YulIdentifier","src":"7998:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"7749:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7785:9:64","nodeType":"YulTypedName","src":"7785:9:64","type":""},{"name":"dataEnd","nativeSrc":"7796:7:64","nodeType":"YulTypedName","src":"7796:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7808:6:64","nodeType":"YulTypedName","src":"7808:6:64","type":""}],"src":"7749:329:64"},{"body":{"nativeSrc":"8127:43:64","nodeType":"YulBlock","src":"8127:43:64","statements":[{"nativeSrc":"8137:27:64","nodeType":"YulAssignment","src":"8137:27:64","value":{"arguments":[{"name":"value","nativeSrc":"8152:5:64","nodeType":"YulIdentifier","src":"8152:5:64"},{"kind":"number","nativeSrc":"8159:4:64","nodeType":"YulLiteral","src":"8159:4:64","type":"","value":"0xff"}],"functionName":{"name":"and","nativeSrc":"8148:3:64","nodeType":"YulIdentifier","src":"8148:3:64"},"nativeSrc":"8148:16:64","nodeType":"YulFunctionCall","src":"8148:16:64"},"variableNames":[{"name":"cleaned","nativeSrc":"8137:7:64","nodeType":"YulIdentifier","src":"8137:7:64"}]}]},"name":"cleanup_t_uint8","nativeSrc":"8084:86:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8109:5:64","nodeType":"YulTypedName","src":"8109:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8119:7:64","nodeType":"YulTypedName","src":"8119:7:64","type":""}],"src":"8084:86:64"},{"body":{"nativeSrc":"8237:51:64","nodeType":"YulBlock","src":"8237:51:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8254:3:64","nodeType":"YulIdentifier","src":"8254:3:64"},{"arguments":[{"name":"value","nativeSrc":"8275:5:64","nodeType":"YulIdentifier","src":"8275:5:64"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"8259:15:64","nodeType":"YulIdentifier","src":"8259:15:64"},"nativeSrc":"8259:22:64","nodeType":"YulFunctionCall","src":"8259:22:64"}],"functionName":{"name":"mstore","nativeSrc":"8247:6:64","nodeType":"YulIdentifier","src":"8247:6:64"},"nativeSrc":"8247:35:64","nodeType":"YulFunctionCall","src":"8247:35:64"},"nativeSrc":"8247:35:64","nodeType":"YulExpressionStatement","src":"8247:35:64"}]},"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"8176:112:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8225:5:64","nodeType":"YulTypedName","src":"8225:5:64","type":""},{"name":"pos","nativeSrc":"8232:3:64","nodeType":"YulTypedName","src":"8232:3:64","type":""}],"src":"8176:112:64"},{"body":{"nativeSrc":"8388:120:64","nodeType":"YulBlock","src":"8388:120:64","statements":[{"nativeSrc":"8398:26:64","nodeType":"YulAssignment","src":"8398:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"8410:9:64","nodeType":"YulIdentifier","src":"8410:9:64"},{"kind":"number","nativeSrc":"8421:2:64","nodeType":"YulLiteral","src":"8421:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8406:3:64","nodeType":"YulIdentifier","src":"8406:3:64"},"nativeSrc":"8406:18:64","nodeType":"YulFunctionCall","src":"8406:18:64"},"variableNames":[{"name":"tail","nativeSrc":"8398:4:64","nodeType":"YulIdentifier","src":"8398:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8474:6:64","nodeType":"YulIdentifier","src":"8474:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"8487:9:64","nodeType":"YulIdentifier","src":"8487:9:64"},{"kind":"number","nativeSrc":"8498:1:64","nodeType":"YulLiteral","src":"8498:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8483:3:64","nodeType":"YulIdentifier","src":"8483:3:64"},"nativeSrc":"8483:17:64","nodeType":"YulFunctionCall","src":"8483:17:64"}],"functionName":{"name":"abi_encode_t_uint8_to_t_uint8_fromStack","nativeSrc":"8434:39:64","nodeType":"YulIdentifier","src":"8434:39:64"},"nativeSrc":"8434:67:64","nodeType":"YulFunctionCall","src":"8434:67:64"},"nativeSrc":"8434:67:64","nodeType":"YulExpressionStatement","src":"8434:67:64"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nativeSrc":"8294:214:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8360:9:64","nodeType":"YulTypedName","src":"8360:9:64","type":""},{"name":"value0","nativeSrc":"8372:6:64","nodeType":"YulTypedName","src":"8372:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8383:4:64","nodeType":"YulTypedName","src":"8383:4:64","type":""}],"src":"8294:214:64"},{"body":{"nativeSrc":"8559:32:64","nodeType":"YulBlock","src":"8559:32:64","statements":[{"nativeSrc":"8569:16:64","nodeType":"YulAssignment","src":"8569:16:64","value":{"name":"value","nativeSrc":"8580:5:64","nodeType":"YulIdentifier","src":"8580:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"8569:7:64","nodeType":"YulIdentifier","src":"8569:7:64"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"8514:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8541:5:64","nodeType":"YulTypedName","src":"8541:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"8551:7:64","nodeType":"YulTypedName","src":"8551:7:64","type":""}],"src":"8514:77:64"},{"body":{"nativeSrc":"8662:53:64","nodeType":"YulBlock","src":"8662:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"8679:3:64","nodeType":"YulIdentifier","src":"8679:3:64"},{"arguments":[{"name":"value","nativeSrc":"8702:5:64","nodeType":"YulIdentifier","src":"8702:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"8684:17:64","nodeType":"YulIdentifier","src":"8684:17:64"},"nativeSrc":"8684:24:64","nodeType":"YulFunctionCall","src":"8684:24:64"}],"functionName":{"name":"mstore","nativeSrc":"8672:6:64","nodeType":"YulIdentifier","src":"8672:6:64"},"nativeSrc":"8672:37:64","nodeType":"YulFunctionCall","src":"8672:37:64"},"nativeSrc":"8672:37:64","nodeType":"YulExpressionStatement","src":"8672:37:64"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8597:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"8650:5:64","nodeType":"YulTypedName","src":"8650:5:64","type":""},{"name":"pos","nativeSrc":"8657:3:64","nodeType":"YulTypedName","src":"8657:3:64","type":""}],"src":"8597:118:64"},{"body":{"nativeSrc":"8819:124:64","nodeType":"YulBlock","src":"8819:124:64","statements":[{"nativeSrc":"8829:26:64","nodeType":"YulAssignment","src":"8829:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"8841:9:64","nodeType":"YulIdentifier","src":"8841:9:64"},{"kind":"number","nativeSrc":"8852:2:64","nodeType":"YulLiteral","src":"8852:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8837:3:64","nodeType":"YulIdentifier","src":"8837:3:64"},"nativeSrc":"8837:18:64","nodeType":"YulFunctionCall","src":"8837:18:64"},"variableNames":[{"name":"tail","nativeSrc":"8829:4:64","nodeType":"YulIdentifier","src":"8829:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"8909:6:64","nodeType":"YulIdentifier","src":"8909:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"8922:9:64","nodeType":"YulIdentifier","src":"8922:9:64"},{"kind":"number","nativeSrc":"8933:1:64","nodeType":"YulLiteral","src":"8933:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"8918:3:64","nodeType":"YulIdentifier","src":"8918:3:64"},"nativeSrc":"8918:17:64","nodeType":"YulFunctionCall","src":"8918:17:64"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"8865:43:64","nodeType":"YulIdentifier","src":"8865:43:64"},"nativeSrc":"8865:71:64","nodeType":"YulFunctionCall","src":"8865:71:64"},"nativeSrc":"8865:71:64","nodeType":"YulExpressionStatement","src":"8865:71:64"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"8721:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8791:9:64","nodeType":"YulTypedName","src":"8791:9:64","type":""},{"name":"value0","nativeSrc":"8803:6:64","nodeType":"YulTypedName","src":"8803:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"8814:4:64","nodeType":"YulTypedName","src":"8814:4:64","type":""}],"src":"8721:222:64"},{"body":{"nativeSrc":"9014:53:64","nodeType":"YulBlock","src":"9014:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"9031:3:64","nodeType":"YulIdentifier","src":"9031:3:64"},{"arguments":[{"name":"value","nativeSrc":"9054:5:64","nodeType":"YulIdentifier","src":"9054:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"9036:17:64","nodeType":"YulIdentifier","src":"9036:17:64"},"nativeSrc":"9036:24:64","nodeType":"YulFunctionCall","src":"9036:24:64"}],"functionName":{"name":"mstore","nativeSrc":"9024:6:64","nodeType":"YulIdentifier","src":"9024:6:64"},"nativeSrc":"9024:37:64","nodeType":"YulFunctionCall","src":"9024:37:64"},"nativeSrc":"9024:37:64","nodeType":"YulExpressionStatement","src":"9024:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"8949:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9002:5:64","nodeType":"YulTypedName","src":"9002:5:64","type":""},{"name":"pos","nativeSrc":"9009:3:64","nodeType":"YulTypedName","src":"9009:3:64","type":""}],"src":"8949:118:64"},{"body":{"nativeSrc":"9171:124:64","nodeType":"YulBlock","src":"9171:124:64","statements":[{"nativeSrc":"9181:26:64","nodeType":"YulAssignment","src":"9181:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"9193:9:64","nodeType":"YulIdentifier","src":"9193:9:64"},{"kind":"number","nativeSrc":"9204:2:64","nodeType":"YulLiteral","src":"9204:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9189:3:64","nodeType":"YulIdentifier","src":"9189:3:64"},"nativeSrc":"9189:18:64","nodeType":"YulFunctionCall","src":"9189:18:64"},"variableNames":[{"name":"tail","nativeSrc":"9181:4:64","nodeType":"YulIdentifier","src":"9181:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"9261:6:64","nodeType":"YulIdentifier","src":"9261:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"9274:9:64","nodeType":"YulIdentifier","src":"9274:9:64"},{"kind":"number","nativeSrc":"9285:1:64","nodeType":"YulLiteral","src":"9285:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"9270:3:64","nodeType":"YulIdentifier","src":"9270:3:64"},"nativeSrc":"9270:17:64","nodeType":"YulFunctionCall","src":"9270:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"9217:43:64","nodeType":"YulIdentifier","src":"9217:43:64"},"nativeSrc":"9217:71:64","nodeType":"YulFunctionCall","src":"9217:71:64"},"nativeSrc":"9217:71:64","nodeType":"YulExpressionStatement","src":"9217:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"9073:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9143:9:64","nodeType":"YulTypedName","src":"9143:9:64","type":""},{"name":"value0","nativeSrc":"9155:6:64","nodeType":"YulTypedName","src":"9155:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"9166:4:64","nodeType":"YulTypedName","src":"9166:4:64","type":""}],"src":"9073:222:64"},{"body":{"nativeSrc":"9342:77:64","nodeType":"YulBlock","src":"9342:77:64","statements":[{"body":{"nativeSrc":"9397:16:64","nodeType":"YulBlock","src":"9397:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9406:1:64","nodeType":"YulLiteral","src":"9406:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9409:1:64","nodeType":"YulLiteral","src":"9409:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9399:6:64","nodeType":"YulIdentifier","src":"9399:6:64"},"nativeSrc":"9399:12:64","nodeType":"YulFunctionCall","src":"9399:12:64"},"nativeSrc":"9399:12:64","nodeType":"YulExpressionStatement","src":"9399:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9365:5:64","nodeType":"YulIdentifier","src":"9365:5:64"},{"arguments":[{"name":"value","nativeSrc":"9388:5:64","nodeType":"YulIdentifier","src":"9388:5:64"}],"functionName":{"name":"cleanup_t_uint8","nativeSrc":"9372:15:64","nodeType":"YulIdentifier","src":"9372:15:64"},"nativeSrc":"9372:22:64","nodeType":"YulFunctionCall","src":"9372:22:64"}],"functionName":{"name":"eq","nativeSrc":"9362:2:64","nodeType":"YulIdentifier","src":"9362:2:64"},"nativeSrc":"9362:33:64","nodeType":"YulFunctionCall","src":"9362:33:64"}],"functionName":{"name":"iszero","nativeSrc":"9355:6:64","nodeType":"YulIdentifier","src":"9355:6:64"},"nativeSrc":"9355:41:64","nodeType":"YulFunctionCall","src":"9355:41:64"},"nativeSrc":"9352:61:64","nodeType":"YulIf","src":"9352:61:64"}]},"name":"validator_revert_t_uint8","nativeSrc":"9301:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9335:5:64","nodeType":"YulTypedName","src":"9335:5:64","type":""}],"src":"9301:118:64"},{"body":{"nativeSrc":"9475:85:64","nodeType":"YulBlock","src":"9475:85:64","statements":[{"nativeSrc":"9485:29:64","nodeType":"YulAssignment","src":"9485:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9507:6:64","nodeType":"YulIdentifier","src":"9507:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9494:12:64","nodeType":"YulIdentifier","src":"9494:12:64"},"nativeSrc":"9494:20:64","nodeType":"YulFunctionCall","src":"9494:20:64"},"variableNames":[{"name":"value","nativeSrc":"9485:5:64","nodeType":"YulIdentifier","src":"9485:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9548:5:64","nodeType":"YulIdentifier","src":"9548:5:64"}],"functionName":{"name":"validator_revert_t_uint8","nativeSrc":"9523:24:64","nodeType":"YulIdentifier","src":"9523:24:64"},"nativeSrc":"9523:31:64","nodeType":"YulFunctionCall","src":"9523:31:64"},"nativeSrc":"9523:31:64","nodeType":"YulExpressionStatement","src":"9523:31:64"}]},"name":"abi_decode_t_uint8","nativeSrc":"9425:135:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9453:6:64","nodeType":"YulTypedName","src":"9453:6:64","type":""},{"name":"end","nativeSrc":"9461:3:64","nodeType":"YulTypedName","src":"9461:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9469:5:64","nodeType":"YulTypedName","src":"9469:5:64","type":""}],"src":"9425:135:64"},{"body":{"nativeSrc":"9609:79:64","nodeType":"YulBlock","src":"9609:79:64","statements":[{"body":{"nativeSrc":"9666:16:64","nodeType":"YulBlock","src":"9666:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9675:1:64","nodeType":"YulLiteral","src":"9675:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"9678:1:64","nodeType":"YulLiteral","src":"9678:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"9668:6:64","nodeType":"YulIdentifier","src":"9668:6:64"},"nativeSrc":"9668:12:64","nodeType":"YulFunctionCall","src":"9668:12:64"},"nativeSrc":"9668:12:64","nodeType":"YulExpressionStatement","src":"9668:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9632:5:64","nodeType":"YulIdentifier","src":"9632:5:64"},{"arguments":[{"name":"value","nativeSrc":"9657:5:64","nodeType":"YulIdentifier","src":"9657:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"9639:17:64","nodeType":"YulIdentifier","src":"9639:17:64"},"nativeSrc":"9639:24:64","nodeType":"YulFunctionCall","src":"9639:24:64"}],"functionName":{"name":"eq","nativeSrc":"9629:2:64","nodeType":"YulIdentifier","src":"9629:2:64"},"nativeSrc":"9629:35:64","nodeType":"YulFunctionCall","src":"9629:35:64"}],"functionName":{"name":"iszero","nativeSrc":"9622:6:64","nodeType":"YulIdentifier","src":"9622:6:64"},"nativeSrc":"9622:43:64","nodeType":"YulFunctionCall","src":"9622:43:64"},"nativeSrc":"9619:63:64","nodeType":"YulIf","src":"9619:63:64"}]},"name":"validator_revert_t_bytes32","nativeSrc":"9566:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"9602:5:64","nodeType":"YulTypedName","src":"9602:5:64","type":""}],"src":"9566:122:64"},{"body":{"nativeSrc":"9746:87:64","nodeType":"YulBlock","src":"9746:87:64","statements":[{"nativeSrc":"9756:29:64","nodeType":"YulAssignment","src":"9756:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"9778:6:64","nodeType":"YulIdentifier","src":"9778:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9765:12:64","nodeType":"YulIdentifier","src":"9765:12:64"},"nativeSrc":"9765:20:64","nodeType":"YulFunctionCall","src":"9765:20:64"},"variableNames":[{"name":"value","nativeSrc":"9756:5:64","nodeType":"YulIdentifier","src":"9756:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"9821:5:64","nodeType":"YulIdentifier","src":"9821:5:64"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"9794:26:64","nodeType":"YulIdentifier","src":"9794:26:64"},"nativeSrc":"9794:33:64","nodeType":"YulFunctionCall","src":"9794:33:64"},"nativeSrc":"9794:33:64","nodeType":"YulExpressionStatement","src":"9794:33:64"}]},"name":"abi_decode_t_bytes32","nativeSrc":"9694:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9724:6:64","nodeType":"YulTypedName","src":"9724:6:64","type":""},{"name":"end","nativeSrc":"9732:3:64","nodeType":"YulTypedName","src":"9732:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9740:5:64","nodeType":"YulTypedName","src":"9740:5:64","type":""}],"src":"9694:139:64"},{"body":{"nativeSrc":"10005:1033:64","nodeType":"YulBlock","src":"10005:1033:64","statements":[{"body":{"nativeSrc":"10052:83:64","nodeType":"YulBlock","src":"10052:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10054:77:64","nodeType":"YulIdentifier","src":"10054:77:64"},"nativeSrc":"10054:79:64","nodeType":"YulFunctionCall","src":"10054:79:64"},"nativeSrc":"10054:79:64","nodeType":"YulExpressionStatement","src":"10054:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10026:7:64","nodeType":"YulIdentifier","src":"10026:7:64"},{"name":"headStart","nativeSrc":"10035:9:64","nodeType":"YulIdentifier","src":"10035:9:64"}],"functionName":{"name":"sub","nativeSrc":"10022:3:64","nodeType":"YulIdentifier","src":"10022:3:64"},"nativeSrc":"10022:23:64","nodeType":"YulFunctionCall","src":"10022:23:64"},{"kind":"number","nativeSrc":"10047:3:64","nodeType":"YulLiteral","src":"10047:3:64","type":"","value":"224"}],"functionName":{"name":"slt","nativeSrc":"10018:3:64","nodeType":"YulIdentifier","src":"10018:3:64"},"nativeSrc":"10018:33:64","nodeType":"YulFunctionCall","src":"10018:33:64"},"nativeSrc":"10015:120:64","nodeType":"YulIf","src":"10015:120:64"},{"nativeSrc":"10145:117:64","nodeType":"YulBlock","src":"10145:117:64","statements":[{"nativeSrc":"10160:15:64","nodeType":"YulVariableDeclaration","src":"10160:15:64","value":{"kind":"number","nativeSrc":"10174:1:64","nodeType":"YulLiteral","src":"10174:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"10164:6:64","nodeType":"YulTypedName","src":"10164:6:64","type":""}]},{"nativeSrc":"10189:63:64","nodeType":"YulAssignment","src":"10189:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10224:9:64","nodeType":"YulIdentifier","src":"10224:9:64"},{"name":"offset","nativeSrc":"10235:6:64","nodeType":"YulIdentifier","src":"10235:6:64"}],"functionName":{"name":"add","nativeSrc":"10220:3:64","nodeType":"YulIdentifier","src":"10220:3:64"},"nativeSrc":"10220:22:64","nodeType":"YulFunctionCall","src":"10220:22:64"},{"name":"dataEnd","nativeSrc":"10244:7:64","nodeType":"YulIdentifier","src":"10244:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10199:20:64","nodeType":"YulIdentifier","src":"10199:20:64"},"nativeSrc":"10199:53:64","nodeType":"YulFunctionCall","src":"10199:53:64"},"variableNames":[{"name":"value0","nativeSrc":"10189:6:64","nodeType":"YulIdentifier","src":"10189:6:64"}]}]},{"nativeSrc":"10272:118:64","nodeType":"YulBlock","src":"10272:118:64","statements":[{"nativeSrc":"10287:16:64","nodeType":"YulVariableDeclaration","src":"10287:16:64","value":{"kind":"number","nativeSrc":"10301:2:64","nodeType":"YulLiteral","src":"10301:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"10291:6:64","nodeType":"YulTypedName","src":"10291:6:64","type":""}]},{"nativeSrc":"10317:63:64","nodeType":"YulAssignment","src":"10317:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10352:9:64","nodeType":"YulIdentifier","src":"10352:9:64"},{"name":"offset","nativeSrc":"10363:6:64","nodeType":"YulIdentifier","src":"10363:6:64"}],"functionName":{"name":"add","nativeSrc":"10348:3:64","nodeType":"YulIdentifier","src":"10348:3:64"},"nativeSrc":"10348:22:64","nodeType":"YulFunctionCall","src":"10348:22:64"},{"name":"dataEnd","nativeSrc":"10372:7:64","nodeType":"YulIdentifier","src":"10372:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"10327:20:64","nodeType":"YulIdentifier","src":"10327:20:64"},"nativeSrc":"10327:53:64","nodeType":"YulFunctionCall","src":"10327:53:64"},"variableNames":[{"name":"value1","nativeSrc":"10317:6:64","nodeType":"YulIdentifier","src":"10317:6:64"}]}]},{"nativeSrc":"10400:118:64","nodeType":"YulBlock","src":"10400:118:64","statements":[{"nativeSrc":"10415:16:64","nodeType":"YulVariableDeclaration","src":"10415:16:64","value":{"kind":"number","nativeSrc":"10429:2:64","nodeType":"YulLiteral","src":"10429:2:64","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"10419:6:64","nodeType":"YulTypedName","src":"10419:6:64","type":""}]},{"nativeSrc":"10445:63:64","nodeType":"YulAssignment","src":"10445:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10480:9:64","nodeType":"YulIdentifier","src":"10480:9:64"},{"name":"offset","nativeSrc":"10491:6:64","nodeType":"YulIdentifier","src":"10491:6:64"}],"functionName":{"name":"add","nativeSrc":"10476:3:64","nodeType":"YulIdentifier","src":"10476:3:64"},"nativeSrc":"10476:22:64","nodeType":"YulFunctionCall","src":"10476:22:64"},{"name":"dataEnd","nativeSrc":"10500:7:64","nodeType":"YulIdentifier","src":"10500:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10455:20:64","nodeType":"YulIdentifier","src":"10455:20:64"},"nativeSrc":"10455:53:64","nodeType":"YulFunctionCall","src":"10455:53:64"},"variableNames":[{"name":"value2","nativeSrc":"10445:6:64","nodeType":"YulIdentifier","src":"10445:6:64"}]}]},{"nativeSrc":"10528:118:64","nodeType":"YulBlock","src":"10528:118:64","statements":[{"nativeSrc":"10543:16:64","nodeType":"YulVariableDeclaration","src":"10543:16:64","value":{"kind":"number","nativeSrc":"10557:2:64","nodeType":"YulLiteral","src":"10557:2:64","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"10547:6:64","nodeType":"YulTypedName","src":"10547:6:64","type":""}]},{"nativeSrc":"10573:63:64","nodeType":"YulAssignment","src":"10573:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10608:9:64","nodeType":"YulIdentifier","src":"10608:9:64"},{"name":"offset","nativeSrc":"10619:6:64","nodeType":"YulIdentifier","src":"10619:6:64"}],"functionName":{"name":"add","nativeSrc":"10604:3:64","nodeType":"YulIdentifier","src":"10604:3:64"},"nativeSrc":"10604:22:64","nodeType":"YulFunctionCall","src":"10604:22:64"},{"name":"dataEnd","nativeSrc":"10628:7:64","nodeType":"YulIdentifier","src":"10628:7:64"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"10583:20:64","nodeType":"YulIdentifier","src":"10583:20:64"},"nativeSrc":"10583:53:64","nodeType":"YulFunctionCall","src":"10583:53:64"},"variableNames":[{"name":"value3","nativeSrc":"10573:6:64","nodeType":"YulIdentifier","src":"10573:6:64"}]}]},{"nativeSrc":"10656:117:64","nodeType":"YulBlock","src":"10656:117:64","statements":[{"nativeSrc":"10671:17:64","nodeType":"YulVariableDeclaration","src":"10671:17:64","value":{"kind":"number","nativeSrc":"10685:3:64","nodeType":"YulLiteral","src":"10685:3:64","type":"","value":"128"},"variables":[{"name":"offset","nativeSrc":"10675:6:64","nodeType":"YulTypedName","src":"10675:6:64","type":""}]},{"nativeSrc":"10702:61:64","nodeType":"YulAssignment","src":"10702:61:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10735:9:64","nodeType":"YulIdentifier","src":"10735:9:64"},{"name":"offset","nativeSrc":"10746:6:64","nodeType":"YulIdentifier","src":"10746:6:64"}],"functionName":{"name":"add","nativeSrc":"10731:3:64","nodeType":"YulIdentifier","src":"10731:3:64"},"nativeSrc":"10731:22:64","nodeType":"YulFunctionCall","src":"10731:22:64"},{"name":"dataEnd","nativeSrc":"10755:7:64","nodeType":"YulIdentifier","src":"10755:7:64"}],"functionName":{"name":"abi_decode_t_uint8","nativeSrc":"10712:18:64","nodeType":"YulIdentifier","src":"10712:18:64"},"nativeSrc":"10712:51:64","nodeType":"YulFunctionCall","src":"10712:51:64"},"variableNames":[{"name":"value4","nativeSrc":"10702:6:64","nodeType":"YulIdentifier","src":"10702:6:64"}]}]},{"nativeSrc":"10783:119:64","nodeType":"YulBlock","src":"10783:119:64","statements":[{"nativeSrc":"10798:17:64","nodeType":"YulVariableDeclaration","src":"10798:17:64","value":{"kind":"number","nativeSrc":"10812:3:64","nodeType":"YulLiteral","src":"10812:3:64","type":"","value":"160"},"variables":[{"name":"offset","nativeSrc":"10802:6:64","nodeType":"YulTypedName","src":"10802:6:64","type":""}]},{"nativeSrc":"10829:63:64","nodeType":"YulAssignment","src":"10829:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10864:9:64","nodeType":"YulIdentifier","src":"10864:9:64"},{"name":"offset","nativeSrc":"10875:6:64","nodeType":"YulIdentifier","src":"10875:6:64"}],"functionName":{"name":"add","nativeSrc":"10860:3:64","nodeType":"YulIdentifier","src":"10860:3:64"},"nativeSrc":"10860:22:64","nodeType":"YulFunctionCall","src":"10860:22:64"},{"name":"dataEnd","nativeSrc":"10884:7:64","nodeType":"YulIdentifier","src":"10884:7:64"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"10839:20:64","nodeType":"YulIdentifier","src":"10839:20:64"},"nativeSrc":"10839:53:64","nodeType":"YulFunctionCall","src":"10839:53:64"},"variableNames":[{"name":"value5","nativeSrc":"10829:6:64","nodeType":"YulIdentifier","src":"10829:6:64"}]}]},{"nativeSrc":"10912:119:64","nodeType":"YulBlock","src":"10912:119:64","statements":[{"nativeSrc":"10927:17:64","nodeType":"YulVariableDeclaration","src":"10927:17:64","value":{"kind":"number","nativeSrc":"10941:3:64","nodeType":"YulLiteral","src":"10941:3:64","type":"","value":"192"},"variables":[{"name":"offset","nativeSrc":"10931:6:64","nodeType":"YulTypedName","src":"10931:6:64","type":""}]},{"nativeSrc":"10958:63:64","nodeType":"YulAssignment","src":"10958:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10993:9:64","nodeType":"YulIdentifier","src":"10993:9:64"},{"name":"offset","nativeSrc":"11004:6:64","nodeType":"YulIdentifier","src":"11004:6:64"}],"functionName":{"name":"add","nativeSrc":"10989:3:64","nodeType":"YulIdentifier","src":"10989:3:64"},"nativeSrc":"10989:22:64","nodeType":"YulFunctionCall","src":"10989:22:64"},{"name":"dataEnd","nativeSrc":"11013:7:64","nodeType":"YulIdentifier","src":"11013:7:64"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"10968:20:64","nodeType":"YulIdentifier","src":"10968:20:64"},"nativeSrc":"10968:53:64","nodeType":"YulFunctionCall","src":"10968:53:64"},"variableNames":[{"name":"value6","nativeSrc":"10958:6:64","nodeType":"YulIdentifier","src":"10958:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32","nativeSrc":"9839:1199:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9927:9:64","nodeType":"YulTypedName","src":"9927:9:64","type":""},{"name":"dataEnd","nativeSrc":"9938:7:64","nodeType":"YulTypedName","src":"9938:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"9950:6:64","nodeType":"YulTypedName","src":"9950:6:64","type":""},{"name":"value1","nativeSrc":"9958:6:64","nodeType":"YulTypedName","src":"9958:6:64","type":""},{"name":"value2","nativeSrc":"9966:6:64","nodeType":"YulTypedName","src":"9966:6:64","type":""},{"name":"value3","nativeSrc":"9974:6:64","nodeType":"YulTypedName","src":"9974:6:64","type":""},{"name":"value4","nativeSrc":"9982:6:64","nodeType":"YulTypedName","src":"9982:6:64","type":""},{"name":"value5","nativeSrc":"9990:6:64","nodeType":"YulTypedName","src":"9990:6:64","type":""},{"name":"value6","nativeSrc":"9998:6:64","nodeType":"YulTypedName","src":"9998:6:64","type":""}],"src":"9839:1199:64"},{"body":{"nativeSrc":"11127:391:64","nodeType":"YulBlock","src":"11127:391:64","statements":[{"body":{"nativeSrc":"11173:83:64","nodeType":"YulBlock","src":"11173:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11175:77:64","nodeType":"YulIdentifier","src":"11175:77:64"},"nativeSrc":"11175:79:64","nodeType":"YulFunctionCall","src":"11175:79:64"},"nativeSrc":"11175:79:64","nodeType":"YulExpressionStatement","src":"11175:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11148:7:64","nodeType":"YulIdentifier","src":"11148:7:64"},{"name":"headStart","nativeSrc":"11157:9:64","nodeType":"YulIdentifier","src":"11157:9:64"}],"functionName":{"name":"sub","nativeSrc":"11144:3:64","nodeType":"YulIdentifier","src":"11144:3:64"},"nativeSrc":"11144:23:64","nodeType":"YulFunctionCall","src":"11144:23:64"},{"kind":"number","nativeSrc":"11169:2:64","nodeType":"YulLiteral","src":"11169:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"11140:3:64","nodeType":"YulIdentifier","src":"11140:3:64"},"nativeSrc":"11140:32:64","nodeType":"YulFunctionCall","src":"11140:32:64"},"nativeSrc":"11137:119:64","nodeType":"YulIf","src":"11137:119:64"},{"nativeSrc":"11266:117:64","nodeType":"YulBlock","src":"11266:117:64","statements":[{"nativeSrc":"11281:15:64","nodeType":"YulVariableDeclaration","src":"11281:15:64","value":{"kind":"number","nativeSrc":"11295:1:64","nodeType":"YulLiteral","src":"11295:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11285:6:64","nodeType":"YulTypedName","src":"11285:6:64","type":""}]},{"nativeSrc":"11310:63:64","nodeType":"YulAssignment","src":"11310:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11345:9:64","nodeType":"YulIdentifier","src":"11345:9:64"},{"name":"offset","nativeSrc":"11356:6:64","nodeType":"YulIdentifier","src":"11356:6:64"}],"functionName":{"name":"add","nativeSrc":"11341:3:64","nodeType":"YulIdentifier","src":"11341:3:64"},"nativeSrc":"11341:22:64","nodeType":"YulFunctionCall","src":"11341:22:64"},{"name":"dataEnd","nativeSrc":"11365:7:64","nodeType":"YulIdentifier","src":"11365:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11320:20:64","nodeType":"YulIdentifier","src":"11320:20:64"},"nativeSrc":"11320:53:64","nodeType":"YulFunctionCall","src":"11320:53:64"},"variableNames":[{"name":"value0","nativeSrc":"11310:6:64","nodeType":"YulIdentifier","src":"11310:6:64"}]}]},{"nativeSrc":"11393:118:64","nodeType":"YulBlock","src":"11393:118:64","statements":[{"nativeSrc":"11408:16:64","nodeType":"YulVariableDeclaration","src":"11408:16:64","value":{"kind":"number","nativeSrc":"11422:2:64","nodeType":"YulLiteral","src":"11422:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11412:6:64","nodeType":"YulTypedName","src":"11412:6:64","type":""}]},{"nativeSrc":"11438:63:64","nodeType":"YulAssignment","src":"11438:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11473:9:64","nodeType":"YulIdentifier","src":"11473:9:64"},{"name":"offset","nativeSrc":"11484:6:64","nodeType":"YulIdentifier","src":"11484:6:64"}],"functionName":{"name":"add","nativeSrc":"11469:3:64","nodeType":"YulIdentifier","src":"11469:3:64"},"nativeSrc":"11469:22:64","nodeType":"YulFunctionCall","src":"11469:22:64"},{"name":"dataEnd","nativeSrc":"11493:7:64","nodeType":"YulIdentifier","src":"11493:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"11448:20:64","nodeType":"YulIdentifier","src":"11448:20:64"},"nativeSrc":"11448:53:64","nodeType":"YulFunctionCall","src":"11448:53:64"},"variableNames":[{"name":"value1","nativeSrc":"11438:6:64","nodeType":"YulIdentifier","src":"11438:6:64"}]}]}]},"name":"abi_decode_tuple_t_addresst_address","nativeSrc":"11044:474:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11089:9:64","nodeType":"YulTypedName","src":"11089:9:64","type":""},{"name":"dataEnd","nativeSrc":"11100:7:64","nodeType":"YulTypedName","src":"11100:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11112:6:64","nodeType":"YulTypedName","src":"11112:6:64","type":""},{"name":"value1","nativeSrc":"11120:6:64","nodeType":"YulTypedName","src":"11120:6:64","type":""}],"src":"11044:474:64"},{"body":{"nativeSrc":"11552:152:64","nodeType":"YulBlock","src":"11552:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11569:1:64","nodeType":"YulLiteral","src":"11569:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11572:77:64","nodeType":"YulLiteral","src":"11572:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"11562:6:64","nodeType":"YulIdentifier","src":"11562:6:64"},"nativeSrc":"11562:88:64","nodeType":"YulFunctionCall","src":"11562:88:64"},"nativeSrc":"11562:88:64","nodeType":"YulExpressionStatement","src":"11562:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11666:1:64","nodeType":"YulLiteral","src":"11666:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"11669:4:64","nodeType":"YulLiteral","src":"11669:4:64","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"11659:6:64","nodeType":"YulIdentifier","src":"11659:6:64"},"nativeSrc":"11659:15:64","nodeType":"YulFunctionCall","src":"11659:15:64"},"nativeSrc":"11659:15:64","nodeType":"YulExpressionStatement","src":"11659:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11690:1:64","nodeType":"YulLiteral","src":"11690:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11693:4:64","nodeType":"YulLiteral","src":"11693:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"11683:6:64","nodeType":"YulIdentifier","src":"11683:6:64"},"nativeSrc":"11683:15:64","nodeType":"YulFunctionCall","src":"11683:15:64"},"nativeSrc":"11683:15:64","nodeType":"YulExpressionStatement","src":"11683:15:64"}]},"name":"panic_error_0x22","nativeSrc":"11524:180:64","nodeType":"YulFunctionDefinition","src":"11524:180:64"},{"body":{"nativeSrc":"11761:269:64","nodeType":"YulBlock","src":"11761:269:64","statements":[{"nativeSrc":"11771:22:64","nodeType":"YulAssignment","src":"11771:22:64","value":{"arguments":[{"name":"data","nativeSrc":"11785:4:64","nodeType":"YulIdentifier","src":"11785:4:64"},{"kind":"number","nativeSrc":"11791:1:64","nodeType":"YulLiteral","src":"11791:1:64","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"11781:3:64","nodeType":"YulIdentifier","src":"11781:3:64"},"nativeSrc":"11781:12:64","nodeType":"YulFunctionCall","src":"11781:12:64"},"variableNames":[{"name":"length","nativeSrc":"11771:6:64","nodeType":"YulIdentifier","src":"11771:6:64"}]},{"nativeSrc":"11802:38:64","nodeType":"YulVariableDeclaration","src":"11802:38:64","value":{"arguments":[{"name":"data","nativeSrc":"11832:4:64","nodeType":"YulIdentifier","src":"11832:4:64"},{"kind":"number","nativeSrc":"11838:1:64","nodeType":"YulLiteral","src":"11838:1:64","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"11828:3:64","nodeType":"YulIdentifier","src":"11828:3:64"},"nativeSrc":"11828:12:64","nodeType":"YulFunctionCall","src":"11828:12:64"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"11806:18:64","nodeType":"YulTypedName","src":"11806:18:64","type":""}]},{"body":{"nativeSrc":"11879:51:64","nodeType":"YulBlock","src":"11879:51:64","statements":[{"nativeSrc":"11893:27:64","nodeType":"YulAssignment","src":"11893:27:64","value":{"arguments":[{"name":"length","nativeSrc":"11907:6:64","nodeType":"YulIdentifier","src":"11907:6:64"},{"kind":"number","nativeSrc":"11915:4:64","nodeType":"YulLiteral","src":"11915:4:64","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"11903:3:64","nodeType":"YulIdentifier","src":"11903:3:64"},"nativeSrc":"11903:17:64","nodeType":"YulFunctionCall","src":"11903:17:64"},"variableNames":[{"name":"length","nativeSrc":"11893:6:64","nodeType":"YulIdentifier","src":"11893:6:64"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11859:18:64","nodeType":"YulIdentifier","src":"11859:18:64"}],"functionName":{"name":"iszero","nativeSrc":"11852:6:64","nodeType":"YulIdentifier","src":"11852:6:64"},"nativeSrc":"11852:26:64","nodeType":"YulFunctionCall","src":"11852:26:64"},"nativeSrc":"11849:81:64","nodeType":"YulIf","src":"11849:81:64"},{"body":{"nativeSrc":"11982:42:64","nodeType":"YulBlock","src":"11982:42:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"11996:16:64","nodeType":"YulIdentifier","src":"11996:16:64"},"nativeSrc":"11996:18:64","nodeType":"YulFunctionCall","src":"11996:18:64"},"nativeSrc":"11996:18:64","nodeType":"YulExpressionStatement","src":"11996:18:64"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"11946:18:64","nodeType":"YulIdentifier","src":"11946:18:64"},{"arguments":[{"name":"length","nativeSrc":"11969:6:64","nodeType":"YulIdentifier","src":"11969:6:64"},{"kind":"number","nativeSrc":"11977:2:64","nodeType":"YulLiteral","src":"11977:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"11966:2:64","nodeType":"YulIdentifier","src":"11966:2:64"},"nativeSrc":"11966:14:64","nodeType":"YulFunctionCall","src":"11966:14:64"}],"functionName":{"name":"eq","nativeSrc":"11943:2:64","nodeType":"YulIdentifier","src":"11943:2:64"},"nativeSrc":"11943:38:64","nodeType":"YulFunctionCall","src":"11943:38:64"},"nativeSrc":"11940:84:64","nodeType":"YulIf","src":"11940:84:64"}]},"name":"extract_byte_array_length","nativeSrc":"11710:320:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"11745:4:64","nodeType":"YulTypedName","src":"11745:4:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"11754:6:64","nodeType":"YulTypedName","src":"11754:6:64","type":""}],"src":"11710:320:64"},{"body":{"nativeSrc":"12090:87:64","nodeType":"YulBlock","src":"12090:87:64","statements":[{"nativeSrc":"12100:11:64","nodeType":"YulAssignment","src":"12100:11:64","value":{"name":"ptr","nativeSrc":"12108:3:64","nodeType":"YulIdentifier","src":"12108:3:64"},"variableNames":[{"name":"data","nativeSrc":"12100:4:64","nodeType":"YulIdentifier","src":"12100:4:64"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12128:1:64","nodeType":"YulLiteral","src":"12128:1:64","type":"","value":"0"},{"name":"ptr","nativeSrc":"12131:3:64","nodeType":"YulIdentifier","src":"12131:3:64"}],"functionName":{"name":"mstore","nativeSrc":"12121:6:64","nodeType":"YulIdentifier","src":"12121:6:64"},"nativeSrc":"12121:14:64","nodeType":"YulFunctionCall","src":"12121:14:64"},"nativeSrc":"12121:14:64","nodeType":"YulExpressionStatement","src":"12121:14:64"},{"nativeSrc":"12144:26:64","nodeType":"YulAssignment","src":"12144:26:64","value":{"arguments":[{"kind":"number","nativeSrc":"12162:1:64","nodeType":"YulLiteral","src":"12162:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"12165:4:64","nodeType":"YulLiteral","src":"12165:4:64","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"12152:9:64","nodeType":"YulIdentifier","src":"12152:9:64"},"nativeSrc":"12152:18:64","nodeType":"YulFunctionCall","src":"12152:18:64"},"variableNames":[{"name":"data","nativeSrc":"12144:4:64","nodeType":"YulIdentifier","src":"12144:4:64"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"12036:141:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"12077:3:64","nodeType":"YulTypedName","src":"12077:3:64","type":""}],"returnVariables":[{"name":"data","nativeSrc":"12085:4:64","nodeType":"YulTypedName","src":"12085:4:64","type":""}],"src":"12036:141:64"},{"body":{"nativeSrc":"12227:49:64","nodeType":"YulBlock","src":"12227:49:64","statements":[{"nativeSrc":"12237:33:64","nodeType":"YulAssignment","src":"12237:33:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12255:5:64","nodeType":"YulIdentifier","src":"12255:5:64"},{"kind":"number","nativeSrc":"12262:2:64","nodeType":"YulLiteral","src":"12262:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"12251:3:64","nodeType":"YulIdentifier","src":"12251:3:64"},"nativeSrc":"12251:14:64","nodeType":"YulFunctionCall","src":"12251:14:64"},{"kind":"number","nativeSrc":"12267:2:64","nodeType":"YulLiteral","src":"12267:2:64","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"12247:3:64","nodeType":"YulIdentifier","src":"12247:3:64"},"nativeSrc":"12247:23:64","nodeType":"YulFunctionCall","src":"12247:23:64"},"variableNames":[{"name":"result","nativeSrc":"12237:6:64","nodeType":"YulIdentifier","src":"12237:6:64"}]}]},"name":"divide_by_32_ceil","nativeSrc":"12183:93:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12210:5:64","nodeType":"YulTypedName","src":"12210:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12220:6:64","nodeType":"YulTypedName","src":"12220:6:64","type":""}],"src":"12183:93:64"},{"body":{"nativeSrc":"12335:54:64","nodeType":"YulBlock","src":"12335:54:64","statements":[{"nativeSrc":"12345:37:64","nodeType":"YulAssignment","src":"12345:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"12370:4:64","nodeType":"YulIdentifier","src":"12370:4:64"},{"name":"value","nativeSrc":"12376:5:64","nodeType":"YulIdentifier","src":"12376:5:64"}],"functionName":{"name":"shl","nativeSrc":"12366:3:64","nodeType":"YulIdentifier","src":"12366:3:64"},"nativeSrc":"12366:16:64","nodeType":"YulFunctionCall","src":"12366:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"12345:8:64","nodeType":"YulIdentifier","src":"12345:8:64"}]}]},"name":"shift_left_dynamic","nativeSrc":"12282:107:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"12310:4:64","nodeType":"YulTypedName","src":"12310:4:64","type":""},{"name":"value","nativeSrc":"12316:5:64","nodeType":"YulTypedName","src":"12316:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"12326:8:64","nodeType":"YulTypedName","src":"12326:8:64","type":""}],"src":"12282:107:64"},{"body":{"nativeSrc":"12471:317:64","nodeType":"YulBlock","src":"12471:317:64","statements":[{"nativeSrc":"12481:35:64","nodeType":"YulVariableDeclaration","src":"12481:35:64","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"12502:10:64","nodeType":"YulIdentifier","src":"12502:10:64"},{"kind":"number","nativeSrc":"12514:1:64","nodeType":"YulLiteral","src":"12514:1:64","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"12498:3:64","nodeType":"YulIdentifier","src":"12498:3:64"},"nativeSrc":"12498:18:64","nodeType":"YulFunctionCall","src":"12498:18:64"},"variables":[{"name":"shiftBits","nativeSrc":"12485:9:64","nodeType":"YulTypedName","src":"12485:9:64","type":""}]},{"nativeSrc":"12525:109:64","nodeType":"YulVariableDeclaration","src":"12525:109:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"12556:9:64","nodeType":"YulIdentifier","src":"12556:9:64"},{"kind":"number","nativeSrc":"12567:66:64","nodeType":"YulLiteral","src":"12567:66:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"12537:18:64","nodeType":"YulIdentifier","src":"12537:18:64"},"nativeSrc":"12537:97:64","nodeType":"YulFunctionCall","src":"12537:97:64"},"variables":[{"name":"mask","nativeSrc":"12529:4:64","nodeType":"YulTypedName","src":"12529:4:64","type":""}]},{"nativeSrc":"12643:51:64","nodeType":"YulAssignment","src":"12643:51:64","value":{"arguments":[{"name":"shiftBits","nativeSrc":"12674:9:64","nodeType":"YulIdentifier","src":"12674:9:64"},{"name":"toInsert","nativeSrc":"12685:8:64","nodeType":"YulIdentifier","src":"12685:8:64"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"12655:18:64","nodeType":"YulIdentifier","src":"12655:18:64"},"nativeSrc":"12655:39:64","nodeType":"YulFunctionCall","src":"12655:39:64"},"variableNames":[{"name":"toInsert","nativeSrc":"12643:8:64","nodeType":"YulIdentifier","src":"12643:8:64"}]},{"nativeSrc":"12703:30:64","nodeType":"YulAssignment","src":"12703:30:64","value":{"arguments":[{"name":"value","nativeSrc":"12716:5:64","nodeType":"YulIdentifier","src":"12716:5:64"},{"arguments":[{"name":"mask","nativeSrc":"12727:4:64","nodeType":"YulIdentifier","src":"12727:4:64"}],"functionName":{"name":"not","nativeSrc":"12723:3:64","nodeType":"YulIdentifier","src":"12723:3:64"},"nativeSrc":"12723:9:64","nodeType":"YulFunctionCall","src":"12723:9:64"}],"functionName":{"name":"and","nativeSrc":"12712:3:64","nodeType":"YulIdentifier","src":"12712:3:64"},"nativeSrc":"12712:21:64","nodeType":"YulFunctionCall","src":"12712:21:64"},"variableNames":[{"name":"value","nativeSrc":"12703:5:64","nodeType":"YulIdentifier","src":"12703:5:64"}]},{"nativeSrc":"12742:40:64","nodeType":"YulAssignment","src":"12742:40:64","value":{"arguments":[{"name":"value","nativeSrc":"12755:5:64","nodeType":"YulIdentifier","src":"12755:5:64"},{"arguments":[{"name":"toInsert","nativeSrc":"12766:8:64","nodeType":"YulIdentifier","src":"12766:8:64"},{"name":"mask","nativeSrc":"12776:4:64","nodeType":"YulIdentifier","src":"12776:4:64"}],"functionName":{"name":"and","nativeSrc":"12762:3:64","nodeType":"YulIdentifier","src":"12762:3:64"},"nativeSrc":"12762:19:64","nodeType":"YulFunctionCall","src":"12762:19:64"}],"functionName":{"name":"or","nativeSrc":"12752:2:64","nodeType":"YulIdentifier","src":"12752:2:64"},"nativeSrc":"12752:30:64","nodeType":"YulFunctionCall","src":"12752:30:64"},"variableNames":[{"name":"result","nativeSrc":"12742:6:64","nodeType":"YulIdentifier","src":"12742:6:64"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"12395:393:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12432:5:64","nodeType":"YulTypedName","src":"12432:5:64","type":""},{"name":"shiftBytes","nativeSrc":"12439:10:64","nodeType":"YulTypedName","src":"12439:10:64","type":""},{"name":"toInsert","nativeSrc":"12451:8:64","nodeType":"YulTypedName","src":"12451:8:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"12464:6:64","nodeType":"YulTypedName","src":"12464:6:64","type":""}],"src":"12395:393:64"},{"body":{"nativeSrc":"12826:28:64","nodeType":"YulBlock","src":"12826:28:64","statements":[{"nativeSrc":"12836:12:64","nodeType":"YulAssignment","src":"12836:12:64","value":{"name":"value","nativeSrc":"12843:5:64","nodeType":"YulIdentifier","src":"12843:5:64"},"variableNames":[{"name":"ret","nativeSrc":"12836:3:64","nodeType":"YulIdentifier","src":"12836:3:64"}]}]},"name":"identity","nativeSrc":"12794:60:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12812:5:64","nodeType":"YulTypedName","src":"12812:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"12822:3:64","nodeType":"YulTypedName","src":"12822:3:64","type":""}],"src":"12794:60:64"},{"body":{"nativeSrc":"12920:82:64","nodeType":"YulBlock","src":"12920:82:64","statements":[{"nativeSrc":"12930:66:64","nodeType":"YulAssignment","src":"12930:66:64","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12988:5:64","nodeType":"YulIdentifier","src":"12988:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12970:17:64","nodeType":"YulIdentifier","src":"12970:17:64"},"nativeSrc":"12970:24:64","nodeType":"YulFunctionCall","src":"12970:24:64"}],"functionName":{"name":"identity","nativeSrc":"12961:8:64","nodeType":"YulIdentifier","src":"12961:8:64"},"nativeSrc":"12961:34:64","nodeType":"YulFunctionCall","src":"12961:34:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12943:17:64","nodeType":"YulIdentifier","src":"12943:17:64"},"nativeSrc":"12943:53:64","nodeType":"YulFunctionCall","src":"12943:53:64"},"variableNames":[{"name":"converted","nativeSrc":"12930:9:64","nodeType":"YulIdentifier","src":"12930:9:64"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"12860:142:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12900:5:64","nodeType":"YulTypedName","src":"12900:5:64","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12910:9:64","nodeType":"YulTypedName","src":"12910:9:64","type":""}],"src":"12860:142:64"},{"body":{"nativeSrc":"13055:28:64","nodeType":"YulBlock","src":"13055:28:64","statements":[{"nativeSrc":"13065:12:64","nodeType":"YulAssignment","src":"13065:12:64","value":{"name":"value","nativeSrc":"13072:5:64","nodeType":"YulIdentifier","src":"13072:5:64"},"variableNames":[{"name":"ret","nativeSrc":"13065:3:64","nodeType":"YulIdentifier","src":"13065:3:64"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"13008:75:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13041:5:64","nodeType":"YulTypedName","src":"13041:5:64","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"13051:3:64","nodeType":"YulTypedName","src":"13051:3:64","type":""}],"src":"13008:75:64"},{"body":{"nativeSrc":"13165:193:64","nodeType":"YulBlock","src":"13165:193:64","statements":[{"nativeSrc":"13175:63:64","nodeType":"YulVariableDeclaration","src":"13175:63:64","value":{"arguments":[{"name":"value_0","nativeSrc":"13230:7:64","nodeType":"YulIdentifier","src":"13230:7:64"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"13199:30:64","nodeType":"YulIdentifier","src":"13199:30:64"},"nativeSrc":"13199:39:64","nodeType":"YulFunctionCall","src":"13199:39:64"},"variables":[{"name":"convertedValue_0","nativeSrc":"13179:16:64","nodeType":"YulTypedName","src":"13179:16:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"13254:4:64","nodeType":"YulIdentifier","src":"13254:4:64"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"13294:4:64","nodeType":"YulIdentifier","src":"13294:4:64"}],"functionName":{"name":"sload","nativeSrc":"13288:5:64","nodeType":"YulIdentifier","src":"13288:5:64"},"nativeSrc":"13288:11:64","nodeType":"YulFunctionCall","src":"13288:11:64"},{"name":"offset","nativeSrc":"13301:6:64","nodeType":"YulIdentifier","src":"13301:6:64"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"13333:16:64","nodeType":"YulIdentifier","src":"13333:16:64"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"13309:23:64","nodeType":"YulIdentifier","src":"13309:23:64"},"nativeSrc":"13309:41:64","nodeType":"YulFunctionCall","src":"13309:41:64"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"13260:27:64","nodeType":"YulIdentifier","src":"13260:27:64"},"nativeSrc":"13260:91:64","nodeType":"YulFunctionCall","src":"13260:91:64"}],"functionName":{"name":"sstore","nativeSrc":"13247:6:64","nodeType":"YulIdentifier","src":"13247:6:64"},"nativeSrc":"13247:105:64","nodeType":"YulFunctionCall","src":"13247:105:64"},"nativeSrc":"13247:105:64","nodeType":"YulExpressionStatement","src":"13247:105:64"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"13089:269:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"13142:4:64","nodeType":"YulTypedName","src":"13142:4:64","type":""},{"name":"offset","nativeSrc":"13148:6:64","nodeType":"YulTypedName","src":"13148:6:64","type":""},{"name":"value_0","nativeSrc":"13156:7:64","nodeType":"YulTypedName","src":"13156:7:64","type":""}],"src":"13089:269:64"},{"body":{"nativeSrc":"13413:24:64","nodeType":"YulBlock","src":"13413:24:64","statements":[{"nativeSrc":"13423:8:64","nodeType":"YulAssignment","src":"13423:8:64","value":{"kind":"number","nativeSrc":"13430:1:64","nodeType":"YulLiteral","src":"13430:1:64","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"13423:3:64","nodeType":"YulIdentifier","src":"13423:3:64"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"13364:73:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"13409:3:64","nodeType":"YulTypedName","src":"13409:3:64","type":""}],"src":"13364:73:64"},{"body":{"nativeSrc":"13496:136:64","nodeType":"YulBlock","src":"13496:136:64","statements":[{"nativeSrc":"13506:46:64","nodeType":"YulVariableDeclaration","src":"13506:46:64","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"13520:30:64","nodeType":"YulIdentifier","src":"13520:30:64"},"nativeSrc":"13520:32:64","nodeType":"YulFunctionCall","src":"13520:32:64"},"variables":[{"name":"zero_0","nativeSrc":"13510:6:64","nodeType":"YulTypedName","src":"13510:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"13605:4:64","nodeType":"YulIdentifier","src":"13605:4:64"},{"name":"offset","nativeSrc":"13611:6:64","nodeType":"YulIdentifier","src":"13611:6:64"},{"name":"zero_0","nativeSrc":"13619:6:64","nodeType":"YulIdentifier","src":"13619:6:64"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"13561:43:64","nodeType":"YulIdentifier","src":"13561:43:64"},"nativeSrc":"13561:65:64","nodeType":"YulFunctionCall","src":"13561:65:64"},"nativeSrc":"13561:65:64","nodeType":"YulExpressionStatement","src":"13561:65:64"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"13443:189:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"13482:4:64","nodeType":"YulTypedName","src":"13482:4:64","type":""},{"name":"offset","nativeSrc":"13488:6:64","nodeType":"YulTypedName","src":"13488:6:64","type":""}],"src":"13443:189:64"},{"body":{"nativeSrc":"13688:136:64","nodeType":"YulBlock","src":"13688:136:64","statements":[{"body":{"nativeSrc":"13755:63:64","nodeType":"YulBlock","src":"13755:63:64","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"13799:5:64","nodeType":"YulIdentifier","src":"13799:5:64"},{"kind":"number","nativeSrc":"13806:1:64","nodeType":"YulLiteral","src":"13806:1:64","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"13769:29:64","nodeType":"YulIdentifier","src":"13769:29:64"},"nativeSrc":"13769:39:64","nodeType":"YulFunctionCall","src":"13769:39:64"},"nativeSrc":"13769:39:64","nodeType":"YulExpressionStatement","src":"13769:39:64"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"13708:5:64","nodeType":"YulIdentifier","src":"13708:5:64"},{"name":"end","nativeSrc":"13715:3:64","nodeType":"YulIdentifier","src":"13715:3:64"}],"functionName":{"name":"lt","nativeSrc":"13705:2:64","nodeType":"YulIdentifier","src":"13705:2:64"},"nativeSrc":"13705:14:64","nodeType":"YulFunctionCall","src":"13705:14:64"},"nativeSrc":"13698:120:64","nodeType":"YulForLoop","post":{"nativeSrc":"13720:26:64","nodeType":"YulBlock","src":"13720:26:64","statements":[{"nativeSrc":"13722:22:64","nodeType":"YulAssignment","src":"13722:22:64","value":{"arguments":[{"name":"start","nativeSrc":"13735:5:64","nodeType":"YulIdentifier","src":"13735:5:64"},{"kind":"number","nativeSrc":"13742:1:64","nodeType":"YulLiteral","src":"13742:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"13731:3:64","nodeType":"YulIdentifier","src":"13731:3:64"},"nativeSrc":"13731:13:64","nodeType":"YulFunctionCall","src":"13731:13:64"},"variableNames":[{"name":"start","nativeSrc":"13722:5:64","nodeType":"YulIdentifier","src":"13722:5:64"}]}]},"pre":{"nativeSrc":"13702:2:64","nodeType":"YulBlock","src":"13702:2:64","statements":[]},"src":"13698:120:64"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"13638:186:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"13676:5:64","nodeType":"YulTypedName","src":"13676:5:64","type":""},{"name":"end","nativeSrc":"13683:3:64","nodeType":"YulTypedName","src":"13683:3:64","type":""}],"src":"13638:186:64"},{"body":{"nativeSrc":"13909:464:64","nodeType":"YulBlock","src":"13909:464:64","statements":[{"body":{"nativeSrc":"13935:431:64","nodeType":"YulBlock","src":"13935:431:64","statements":[{"nativeSrc":"13949:54:64","nodeType":"YulVariableDeclaration","src":"13949:54:64","value":{"arguments":[{"name":"array","nativeSrc":"13997:5:64","nodeType":"YulIdentifier","src":"13997:5:64"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"13965:31:64","nodeType":"YulIdentifier","src":"13965:31:64"},"nativeSrc":"13965:38:64","nodeType":"YulFunctionCall","src":"13965:38:64"},"variables":[{"name":"dataArea","nativeSrc":"13953:8:64","nodeType":"YulTypedName","src":"13953:8:64","type":""}]},{"nativeSrc":"14016:63:64","nodeType":"YulVariableDeclaration","src":"14016:63:64","value":{"arguments":[{"name":"dataArea","nativeSrc":"14039:8:64","nodeType":"YulIdentifier","src":"14039:8:64"},{"arguments":[{"name":"startIndex","nativeSrc":"14067:10:64","nodeType":"YulIdentifier","src":"14067:10:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"14049:17:64","nodeType":"YulIdentifier","src":"14049:17:64"},"nativeSrc":"14049:29:64","nodeType":"YulFunctionCall","src":"14049:29:64"}],"functionName":{"name":"add","nativeSrc":"14035:3:64","nodeType":"YulIdentifier","src":"14035:3:64"},"nativeSrc":"14035:44:64","nodeType":"YulFunctionCall","src":"14035:44:64"},"variables":[{"name":"deleteStart","nativeSrc":"14020:11:64","nodeType":"YulTypedName","src":"14020:11:64","type":""}]},{"body":{"nativeSrc":"14236:27:64","nodeType":"YulBlock","src":"14236:27:64","statements":[{"nativeSrc":"14238:23:64","nodeType":"YulAssignment","src":"14238:23:64","value":{"name":"dataArea","nativeSrc":"14253:8:64","nodeType":"YulIdentifier","src":"14253:8:64"},"variableNames":[{"name":"deleteStart","nativeSrc":"14238:11:64","nodeType":"YulIdentifier","src":"14238:11:64"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"14220:10:64","nodeType":"YulIdentifier","src":"14220:10:64"},{"kind":"number","nativeSrc":"14232:2:64","nodeType":"YulLiteral","src":"14232:2:64","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"14217:2:64","nodeType":"YulIdentifier","src":"14217:2:64"},"nativeSrc":"14217:18:64","nodeType":"YulFunctionCall","src":"14217:18:64"},"nativeSrc":"14214:49:64","nodeType":"YulIf","src":"14214:49:64"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"14305:11:64","nodeType":"YulIdentifier","src":"14305:11:64"},{"arguments":[{"name":"dataArea","nativeSrc":"14322:8:64","nodeType":"YulIdentifier","src":"14322:8:64"},{"arguments":[{"name":"len","nativeSrc":"14350:3:64","nodeType":"YulIdentifier","src":"14350:3:64"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"14332:17:64","nodeType":"YulIdentifier","src":"14332:17:64"},"nativeSrc":"14332:22:64","nodeType":"YulFunctionCall","src":"14332:22:64"}],"functionName":{"name":"add","nativeSrc":"14318:3:64","nodeType":"YulIdentifier","src":"14318:3:64"},"nativeSrc":"14318:37:64","nodeType":"YulFunctionCall","src":"14318:37:64"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"14276:28:64","nodeType":"YulIdentifier","src":"14276:28:64"},"nativeSrc":"14276:80:64","nodeType":"YulFunctionCall","src":"14276:80:64"},"nativeSrc":"14276:80:64","nodeType":"YulExpressionStatement","src":"14276:80:64"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"13926:3:64","nodeType":"YulIdentifier","src":"13926:3:64"},{"kind":"number","nativeSrc":"13931:2:64","nodeType":"YulLiteral","src":"13931:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"13923:2:64","nodeType":"YulIdentifier","src":"13923:2:64"},"nativeSrc":"13923:11:64","nodeType":"YulFunctionCall","src":"13923:11:64"},"nativeSrc":"13920:446:64","nodeType":"YulIf","src":"13920:446:64"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"13830:543:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"13885:5:64","nodeType":"YulTypedName","src":"13885:5:64","type":""},{"name":"len","nativeSrc":"13892:3:64","nodeType":"YulTypedName","src":"13892:3:64","type":""},{"name":"startIndex","nativeSrc":"13897:10:64","nodeType":"YulTypedName","src":"13897:10:64","type":""}],"src":"13830:543:64"},{"body":{"nativeSrc":"14442:54:64","nodeType":"YulBlock","src":"14442:54:64","statements":[{"nativeSrc":"14452:37:64","nodeType":"YulAssignment","src":"14452:37:64","value":{"arguments":[{"name":"bits","nativeSrc":"14477:4:64","nodeType":"YulIdentifier","src":"14477:4:64"},{"name":"value","nativeSrc":"14483:5:64","nodeType":"YulIdentifier","src":"14483:5:64"}],"functionName":{"name":"shr","nativeSrc":"14473:3:64","nodeType":"YulIdentifier","src":"14473:3:64"},"nativeSrc":"14473:16:64","nodeType":"YulFunctionCall","src":"14473:16:64"},"variableNames":[{"name":"newValue","nativeSrc":"14452:8:64","nodeType":"YulIdentifier","src":"14452:8:64"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"14379:117:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"14417:4:64","nodeType":"YulTypedName","src":"14417:4:64","type":""},{"name":"value","nativeSrc":"14423:5:64","nodeType":"YulTypedName","src":"14423:5:64","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"14433:8:64","nodeType":"YulTypedName","src":"14433:8:64","type":""}],"src":"14379:117:64"},{"body":{"nativeSrc":"14553:118:64","nodeType":"YulBlock","src":"14553:118:64","statements":[{"nativeSrc":"14563:68:64","nodeType":"YulVariableDeclaration","src":"14563:68:64","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"14612:1:64","nodeType":"YulLiteral","src":"14612:1:64","type":"","value":"8"},{"name":"bytes","nativeSrc":"14615:5:64","nodeType":"YulIdentifier","src":"14615:5:64"}],"functionName":{"name":"mul","nativeSrc":"14608:3:64","nodeType":"YulIdentifier","src":"14608:3:64"},"nativeSrc":"14608:13:64","nodeType":"YulFunctionCall","src":"14608:13:64"},{"arguments":[{"kind":"number","nativeSrc":"14627:1:64","nodeType":"YulLiteral","src":"14627:1:64","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"14623:3:64","nodeType":"YulIdentifier","src":"14623:3:64"},"nativeSrc":"14623:6:64","nodeType":"YulFunctionCall","src":"14623:6:64"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"14579:28:64","nodeType":"YulIdentifier","src":"14579:28:64"},"nativeSrc":"14579:51:64","nodeType":"YulFunctionCall","src":"14579:51:64"}],"functionName":{"name":"not","nativeSrc":"14575:3:64","nodeType":"YulIdentifier","src":"14575:3:64"},"nativeSrc":"14575:56:64","nodeType":"YulFunctionCall","src":"14575:56:64"},"variables":[{"name":"mask","nativeSrc":"14567:4:64","nodeType":"YulTypedName","src":"14567:4:64","type":""}]},{"nativeSrc":"14640:25:64","nodeType":"YulAssignment","src":"14640:25:64","value":{"arguments":[{"name":"data","nativeSrc":"14654:4:64","nodeType":"YulIdentifier","src":"14654:4:64"},{"name":"mask","nativeSrc":"14660:4:64","nodeType":"YulIdentifier","src":"14660:4:64"}],"functionName":{"name":"and","nativeSrc":"14650:3:64","nodeType":"YulIdentifier","src":"14650:3:64"},"nativeSrc":"14650:15:64","nodeType":"YulFunctionCall","src":"14650:15:64"},"variableNames":[{"name":"result","nativeSrc":"14640:6:64","nodeType":"YulIdentifier","src":"14640:6:64"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"14502:169:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14530:4:64","nodeType":"YulTypedName","src":"14530:4:64","type":""},{"name":"bytes","nativeSrc":"14536:5:64","nodeType":"YulTypedName","src":"14536:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"14546:6:64","nodeType":"YulTypedName","src":"14546:6:64","type":""}],"src":"14502:169:64"},{"body":{"nativeSrc":"14757:214:64","nodeType":"YulBlock","src":"14757:214:64","statements":[{"nativeSrc":"14890:37:64","nodeType":"YulAssignment","src":"14890:37:64","value":{"arguments":[{"name":"data","nativeSrc":"14917:4:64","nodeType":"YulIdentifier","src":"14917:4:64"},{"name":"len","nativeSrc":"14923:3:64","nodeType":"YulIdentifier","src":"14923:3:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"14898:18:64","nodeType":"YulIdentifier","src":"14898:18:64"},"nativeSrc":"14898:29:64","nodeType":"YulFunctionCall","src":"14898:29:64"},"variableNames":[{"name":"data","nativeSrc":"14890:4:64","nodeType":"YulIdentifier","src":"14890:4:64"}]},{"nativeSrc":"14936:29:64","nodeType":"YulAssignment","src":"14936:29:64","value":{"arguments":[{"name":"data","nativeSrc":"14947:4:64","nodeType":"YulIdentifier","src":"14947:4:64"},{"arguments":[{"kind":"number","nativeSrc":"14957:1:64","nodeType":"YulLiteral","src":"14957:1:64","type":"","value":"2"},{"name":"len","nativeSrc":"14960:3:64","nodeType":"YulIdentifier","src":"14960:3:64"}],"functionName":{"name":"mul","nativeSrc":"14953:3:64","nodeType":"YulIdentifier","src":"14953:3:64"},"nativeSrc":"14953:11:64","nodeType":"YulFunctionCall","src":"14953:11:64"}],"functionName":{"name":"or","nativeSrc":"14944:2:64","nodeType":"YulIdentifier","src":"14944:2:64"},"nativeSrc":"14944:21:64","nodeType":"YulFunctionCall","src":"14944:21:64"},"variableNames":[{"name":"used","nativeSrc":"14936:4:64","nodeType":"YulIdentifier","src":"14936:4:64"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"14676:295:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"14738:4:64","nodeType":"YulTypedName","src":"14738:4:64","type":""},{"name":"len","nativeSrc":"14744:3:64","nodeType":"YulTypedName","src":"14744:3:64","type":""}],"returnVariables":[{"name":"used","nativeSrc":"14752:4:64","nodeType":"YulTypedName","src":"14752:4:64","type":""}],"src":"14676:295:64"},{"body":{"nativeSrc":"15068:1303:64","nodeType":"YulBlock","src":"15068:1303:64","statements":[{"nativeSrc":"15079:51:64","nodeType":"YulVariableDeclaration","src":"15079:51:64","value":{"arguments":[{"name":"src","nativeSrc":"15126:3:64","nodeType":"YulIdentifier","src":"15126:3:64"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"15093:32:64","nodeType":"YulIdentifier","src":"15093:32:64"},"nativeSrc":"15093:37:64","nodeType":"YulFunctionCall","src":"15093:37:64"},"variables":[{"name":"newLen","nativeSrc":"15083:6:64","nodeType":"YulTypedName","src":"15083:6:64","type":""}]},{"body":{"nativeSrc":"15215:22:64","nodeType":"YulBlock","src":"15215:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"15217:16:64","nodeType":"YulIdentifier","src":"15217:16:64"},"nativeSrc":"15217:18:64","nodeType":"YulFunctionCall","src":"15217:18:64"},"nativeSrc":"15217:18:64","nodeType":"YulExpressionStatement","src":"15217:18:64"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"15187:6:64","nodeType":"YulIdentifier","src":"15187:6:64"},{"kind":"number","nativeSrc":"15195:18:64","nodeType":"YulLiteral","src":"15195:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15184:2:64","nodeType":"YulIdentifier","src":"15184:2:64"},"nativeSrc":"15184:30:64","nodeType":"YulFunctionCall","src":"15184:30:64"},"nativeSrc":"15181:56:64","nodeType":"YulIf","src":"15181:56:64"},{"nativeSrc":"15247:52:64","nodeType":"YulVariableDeclaration","src":"15247:52:64","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"15293:4:64","nodeType":"YulIdentifier","src":"15293:4:64"}],"functionName":{"name":"sload","nativeSrc":"15287:5:64","nodeType":"YulIdentifier","src":"15287:5:64"},"nativeSrc":"15287:11:64","nodeType":"YulFunctionCall","src":"15287:11:64"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"15261:25:64","nodeType":"YulIdentifier","src":"15261:25:64"},"nativeSrc":"15261:38:64","nodeType":"YulFunctionCall","src":"15261:38:64"},"variables":[{"name":"oldLen","nativeSrc":"15251:6:64","nodeType":"YulTypedName","src":"15251:6:64","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"15392:4:64","nodeType":"YulIdentifier","src":"15392:4:64"},{"name":"oldLen","nativeSrc":"15398:6:64","nodeType":"YulIdentifier","src":"15398:6:64"},{"name":"newLen","nativeSrc":"15406:6:64","nodeType":"YulIdentifier","src":"15406:6:64"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"15346:45:64","nodeType":"YulIdentifier","src":"15346:45:64"},"nativeSrc":"15346:67:64","nodeType":"YulFunctionCall","src":"15346:67:64"},"nativeSrc":"15346:67:64","nodeType":"YulExpressionStatement","src":"15346:67:64"},{"nativeSrc":"15423:18:64","nodeType":"YulVariableDeclaration","src":"15423:18:64","value":{"kind":"number","nativeSrc":"15440:1:64","nodeType":"YulLiteral","src":"15440:1:64","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"15427:9:64","nodeType":"YulTypedName","src":"15427:9:64","type":""}]},{"nativeSrc":"15451:17:64","nodeType":"YulAssignment","src":"15451:17:64","value":{"kind":"number","nativeSrc":"15464:4:64","nodeType":"YulLiteral","src":"15464:4:64","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"15451:9:64","nodeType":"YulIdentifier","src":"15451:9:64"}]},{"cases":[{"body":{"nativeSrc":"15515:611:64","nodeType":"YulBlock","src":"15515:611:64","statements":[{"nativeSrc":"15529:37:64","nodeType":"YulVariableDeclaration","src":"15529:37:64","value":{"arguments":[{"name":"newLen","nativeSrc":"15548:6:64","nodeType":"YulIdentifier","src":"15548:6:64"},{"arguments":[{"kind":"number","nativeSrc":"15560:4:64","nodeType":"YulLiteral","src":"15560:4:64","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"15556:3:64","nodeType":"YulIdentifier","src":"15556:3:64"},"nativeSrc":"15556:9:64","nodeType":"YulFunctionCall","src":"15556:9:64"}],"functionName":{"name":"and","nativeSrc":"15544:3:64","nodeType":"YulIdentifier","src":"15544:3:64"},"nativeSrc":"15544:22:64","nodeType":"YulFunctionCall","src":"15544:22:64"},"variables":[{"name":"loopEnd","nativeSrc":"15533:7:64","nodeType":"YulTypedName","src":"15533:7:64","type":""}]},{"nativeSrc":"15580:51:64","nodeType":"YulVariableDeclaration","src":"15580:51:64","value":{"arguments":[{"name":"slot","nativeSrc":"15626:4:64","nodeType":"YulIdentifier","src":"15626:4:64"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"15594:31:64","nodeType":"YulIdentifier","src":"15594:31:64"},"nativeSrc":"15594:37:64","nodeType":"YulFunctionCall","src":"15594:37:64"},"variables":[{"name":"dstPtr","nativeSrc":"15584:6:64","nodeType":"YulTypedName","src":"15584:6:64","type":""}]},{"nativeSrc":"15644:10:64","nodeType":"YulVariableDeclaration","src":"15644:10:64","value":{"kind":"number","nativeSrc":"15653:1:64","nodeType":"YulLiteral","src":"15653:1:64","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15648:1:64","nodeType":"YulTypedName","src":"15648:1:64","type":""}]},{"body":{"nativeSrc":"15712:163:64","nodeType":"YulBlock","src":"15712:163:64","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"15737:6:64","nodeType":"YulIdentifier","src":"15737:6:64"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15755:3:64","nodeType":"YulIdentifier","src":"15755:3:64"},{"name":"srcOffset","nativeSrc":"15760:9:64","nodeType":"YulIdentifier","src":"15760:9:64"}],"functionName":{"name":"add","nativeSrc":"15751:3:64","nodeType":"YulIdentifier","src":"15751:3:64"},"nativeSrc":"15751:19:64","nodeType":"YulFunctionCall","src":"15751:19:64"}],"functionName":{"name":"mload","nativeSrc":"15745:5:64","nodeType":"YulIdentifier","src":"15745:5:64"},"nativeSrc":"15745:26:64","nodeType":"YulFunctionCall","src":"15745:26:64"}],"functionName":{"name":"sstore","nativeSrc":"15730:6:64","nodeType":"YulIdentifier","src":"15730:6:64"},"nativeSrc":"15730:42:64","nodeType":"YulFunctionCall","src":"15730:42:64"},"nativeSrc":"15730:42:64","nodeType":"YulExpressionStatement","src":"15730:42:64"},{"nativeSrc":"15789:24:64","nodeType":"YulAssignment","src":"15789:24:64","value":{"arguments":[{"name":"dstPtr","nativeSrc":"15803:6:64","nodeType":"YulIdentifier","src":"15803:6:64"},{"kind":"number","nativeSrc":"15811:1:64","nodeType":"YulLiteral","src":"15811:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15799:3:64","nodeType":"YulIdentifier","src":"15799:3:64"},"nativeSrc":"15799:14:64","nodeType":"YulFunctionCall","src":"15799:14:64"},"variableNames":[{"name":"dstPtr","nativeSrc":"15789:6:64","nodeType":"YulIdentifier","src":"15789:6:64"}]},{"nativeSrc":"15830:31:64","nodeType":"YulAssignment","src":"15830:31:64","value":{"arguments":[{"name":"srcOffset","nativeSrc":"15847:9:64","nodeType":"YulIdentifier","src":"15847:9:64"},{"kind":"number","nativeSrc":"15858:2:64","nodeType":"YulLiteral","src":"15858:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"15843:3:64","nodeType":"YulIdentifier","src":"15843:3:64"},"nativeSrc":"15843:18:64","nodeType":"YulFunctionCall","src":"15843:18:64"},"variableNames":[{"name":"srcOffset","nativeSrc":"15830:9:64","nodeType":"YulIdentifier","src":"15830:9:64"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15678:1:64","nodeType":"YulIdentifier","src":"15678:1:64"},{"name":"loopEnd","nativeSrc":"15681:7:64","nodeType":"YulIdentifier","src":"15681:7:64"}],"functionName":{"name":"lt","nativeSrc":"15675:2:64","nodeType":"YulIdentifier","src":"15675:2:64"},"nativeSrc":"15675:14:64","nodeType":"YulFunctionCall","src":"15675:14:64"},"nativeSrc":"15667:208:64","nodeType":"YulForLoop","post":{"nativeSrc":"15690:21:64","nodeType":"YulBlock","src":"15690:21:64","statements":[{"nativeSrc":"15692:17:64","nodeType":"YulAssignment","src":"15692:17:64","value":{"arguments":[{"name":"i","nativeSrc":"15701:1:64","nodeType":"YulIdentifier","src":"15701:1:64"},{"kind":"number","nativeSrc":"15704:4:64","nodeType":"YulLiteral","src":"15704:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15697:3:64","nodeType":"YulIdentifier","src":"15697:3:64"},"nativeSrc":"15697:12:64","nodeType":"YulFunctionCall","src":"15697:12:64"},"variableNames":[{"name":"i","nativeSrc":"15692:1:64","nodeType":"YulIdentifier","src":"15692:1:64"}]}]},"pre":{"nativeSrc":"15671:3:64","nodeType":"YulBlock","src":"15671:3:64","statements":[]},"src":"15667:208:64"},{"body":{"nativeSrc":"15911:156:64","nodeType":"YulBlock","src":"15911:156:64","statements":[{"nativeSrc":"15929:43:64","nodeType":"YulVariableDeclaration","src":"15929:43:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"15956:3:64","nodeType":"YulIdentifier","src":"15956:3:64"},{"name":"srcOffset","nativeSrc":"15961:9:64","nodeType":"YulIdentifier","src":"15961:9:64"}],"functionName":{"name":"add","nativeSrc":"15952:3:64","nodeType":"YulIdentifier","src":"15952:3:64"},"nativeSrc":"15952:19:64","nodeType":"YulFunctionCall","src":"15952:19:64"}],"functionName":{"name":"mload","nativeSrc":"15946:5:64","nodeType":"YulIdentifier","src":"15946:5:64"},"nativeSrc":"15946:26:64","nodeType":"YulFunctionCall","src":"15946:26:64"},"variables":[{"name":"lastValue","nativeSrc":"15933:9:64","nodeType":"YulTypedName","src":"15933:9:64","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"15996:6:64","nodeType":"YulIdentifier","src":"15996:6:64"},{"arguments":[{"name":"lastValue","nativeSrc":"16023:9:64","nodeType":"YulIdentifier","src":"16023:9:64"},{"arguments":[{"name":"newLen","nativeSrc":"16038:6:64","nodeType":"YulIdentifier","src":"16038:6:64"},{"kind":"number","nativeSrc":"16046:4:64","nodeType":"YulLiteral","src":"16046:4:64","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"16034:3:64","nodeType":"YulIdentifier","src":"16034:3:64"},"nativeSrc":"16034:17:64","nodeType":"YulFunctionCall","src":"16034:17:64"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"16004:18:64","nodeType":"YulIdentifier","src":"16004:18:64"},"nativeSrc":"16004:48:64","nodeType":"YulFunctionCall","src":"16004:48:64"}],"functionName":{"name":"sstore","nativeSrc":"15989:6:64","nodeType":"YulIdentifier","src":"15989:6:64"},"nativeSrc":"15989:64:64","nodeType":"YulFunctionCall","src":"15989:64:64"},"nativeSrc":"15989:64:64","nodeType":"YulExpressionStatement","src":"15989:64:64"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"15894:7:64","nodeType":"YulIdentifier","src":"15894:7:64"},{"name":"newLen","nativeSrc":"15903:6:64","nodeType":"YulIdentifier","src":"15903:6:64"}],"functionName":{"name":"lt","nativeSrc":"15891:2:64","nodeType":"YulIdentifier","src":"15891:2:64"},"nativeSrc":"15891:19:64","nodeType":"YulFunctionCall","src":"15891:19:64"},"nativeSrc":"15888:179:64","nodeType":"YulIf","src":"15888:179:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16087:4:64","nodeType":"YulIdentifier","src":"16087:4:64"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"16101:6:64","nodeType":"YulIdentifier","src":"16101:6:64"},{"kind":"number","nativeSrc":"16109:1:64","nodeType":"YulLiteral","src":"16109:1:64","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"16097:3:64","nodeType":"YulIdentifier","src":"16097:3:64"},"nativeSrc":"16097:14:64","nodeType":"YulFunctionCall","src":"16097:14:64"},{"kind":"number","nativeSrc":"16113:1:64","nodeType":"YulLiteral","src":"16113:1:64","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16093:3:64","nodeType":"YulIdentifier","src":"16093:3:64"},"nativeSrc":"16093:22:64","nodeType":"YulFunctionCall","src":"16093:22:64"}],"functionName":{"name":"sstore","nativeSrc":"16080:6:64","nodeType":"YulIdentifier","src":"16080:6:64"},"nativeSrc":"16080:36:64","nodeType":"YulFunctionCall","src":"16080:36:64"},"nativeSrc":"16080:36:64","nodeType":"YulExpressionStatement","src":"16080:36:64"}]},"nativeSrc":"15508:618:64","nodeType":"YulCase","src":"15508:618:64","value":{"kind":"number","nativeSrc":"15513:1:64","nodeType":"YulLiteral","src":"15513:1:64","type":"","value":"1"}},{"body":{"nativeSrc":"16143:222:64","nodeType":"YulBlock","src":"16143:222:64","statements":[{"nativeSrc":"16157:14:64","nodeType":"YulVariableDeclaration","src":"16157:14:64","value":{"kind":"number","nativeSrc":"16170:1:64","nodeType":"YulLiteral","src":"16170:1:64","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"16161:5:64","nodeType":"YulTypedName","src":"16161:5:64","type":""}]},{"body":{"nativeSrc":"16194:67:64","nodeType":"YulBlock","src":"16194:67:64","statements":[{"nativeSrc":"16212:35:64","nodeType":"YulAssignment","src":"16212:35:64","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"16231:3:64","nodeType":"YulIdentifier","src":"16231:3:64"},{"name":"srcOffset","nativeSrc":"16236:9:64","nodeType":"YulIdentifier","src":"16236:9:64"}],"functionName":{"name":"add","nativeSrc":"16227:3:64","nodeType":"YulIdentifier","src":"16227:3:64"},"nativeSrc":"16227:19:64","nodeType":"YulFunctionCall","src":"16227:19:64"}],"functionName":{"name":"mload","nativeSrc":"16221:5:64","nodeType":"YulIdentifier","src":"16221:5:64"},"nativeSrc":"16221:26:64","nodeType":"YulFunctionCall","src":"16221:26:64"},"variableNames":[{"name":"value","nativeSrc":"16212:5:64","nodeType":"YulIdentifier","src":"16212:5:64"}]}]},"condition":{"name":"newLen","nativeSrc":"16187:6:64","nodeType":"YulIdentifier","src":"16187:6:64"},"nativeSrc":"16184:77:64","nodeType":"YulIf","src":"16184:77:64"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"16281:4:64","nodeType":"YulIdentifier","src":"16281:4:64"},{"arguments":[{"name":"value","nativeSrc":"16340:5:64","nodeType":"YulIdentifier","src":"16340:5:64"},{"name":"newLen","nativeSrc":"16347:6:64","nodeType":"YulIdentifier","src":"16347:6:64"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"16287:52:64","nodeType":"YulIdentifier","src":"16287:52:64"},"nativeSrc":"16287:67:64","nodeType":"YulFunctionCall","src":"16287:67:64"}],"functionName":{"name":"sstore","nativeSrc":"16274:6:64","nodeType":"YulIdentifier","src":"16274:6:64"},"nativeSrc":"16274:81:64","nodeType":"YulFunctionCall","src":"16274:81:64"},"nativeSrc":"16274:81:64","nodeType":"YulExpressionStatement","src":"16274:81:64"}]},"nativeSrc":"16135:230:64","nodeType":"YulCase","src":"16135:230:64","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"15488:6:64","nodeType":"YulIdentifier","src":"15488:6:64"},{"kind":"number","nativeSrc":"15496:2:64","nodeType":"YulLiteral","src":"15496:2:64","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"15485:2:64","nodeType":"YulIdentifier","src":"15485:2:64"},"nativeSrc":"15485:14:64","nodeType":"YulFunctionCall","src":"15485:14:64"},"nativeSrc":"15478:887:64","nodeType":"YulSwitch","src":"15478:887:64"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"14976:1395:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"15057:4:64","nodeType":"YulTypedName","src":"15057:4:64","type":""},{"name":"src","nativeSrc":"15063:3:64","nodeType":"YulTypedName","src":"15063:3:64","type":""}],"src":"14976:1395:64"}]},"contents":"{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint8t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6 {\n if slt(sub(dataEnd, headStart), 224) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101b6575f3560e01c806354d1f13d116100eb57806395d89b4111610089578063dd62ed3e11610063578063dd62ed3e146105aa578063f04e283e146105e6578063f2fde38b14610602578063fee81cf41461061e576101b6565b806395d89b411461051c578063a9059cbb14610546578063d505accf14610582576101b6565b80637ecebe00116100c55780637ecebe001461046457806382aefa24146104a0578063867904b4146104ca5780638da5cb5b146104f2576101b6565b806354d1f13d1461041457806370a082311461041e578063715018a61461045a576101b6565b806323b872dd11610158578063313ce56711610132578063313ce567146103685780633644e515146103925780634a4ee7b1146103bc578063514e62fc146103d8576101b6565b806323b872dd146102e657806325692962146103225780632de948071461032c576101b6565b806318160ddd1161019457806318160ddd14610248578063183a4f6e146102725780631c10893f1461028e5780631cd64df4146102aa576101b6565b806306fdde03146101ba578063077f224a146101e4578063095ea7b31461020c575b5f80fd5b3480156101c5575f80fd5b506101ce61065a565b6040516101db91906112af565b60405180910390f35b3480156101ef575f80fd5b5061020a60048036038101906102059190611466565b6106e9565b005b348015610217575f80fd5b50610232600480360381019061022d9190611521565b610793565b60405161023f9190611579565b60405180910390f35b348015610253575f80fd5b5061025c6107e3565b60405161026991906115a1565b60405180910390f35b61028c600480360381019061028791906115ba565b6107f4565b005b6102a860048036038101906102a39190611521565b610801565b005b3480156102b5575f80fd5b506102d060048036038101906102cb9190611521565b610817565b6040516102dd9190611579565b60405180910390f35b3480156102f1575f80fd5b5061030c600480360381019061030791906115e5565b61082d565b6040516103199190611579565b60405180910390f35b61032a6108fe565b005b348015610337575f80fd5b50610352600480360381019061034d9190611635565b61094f565b60405161035f91906115a1565b60405180910390f35b348015610373575f80fd5b5061037c610968565b604051610389919061167b565b60405180910390f35b34801561039d575f80fd5b506103a6610970565b6040516103b391906116ac565b60405180910390f35b6103d660048036038101906103d19190611521565b610a00565b005b3480156103e3575f80fd5b506103fe60048036038101906103f99190611521565b610a16565b60405161040b9190611579565b60405180910390f35b61041c610a2d565b005b348015610429575f80fd5b50610444600480360381019061043f9190611635565b610a66565b60405161045191906115a1565b60405180910390f35b610462610a7f565b005b34801561046f575f80fd5b5061048a60048036038101906104859190611635565b610a92565b60405161049791906115a1565b60405180910390f35b3480156104ab575f80fd5b506104b4610aab565b6040516104c191906115a1565b60405180910390f35b3480156104d5575f80fd5b506104f060048036038101906104eb9190611521565b610ab0565b005b3480156104fd575f80fd5b50610506610aca565b60405161051391906116d4565b60405180910390f35b348015610527575f80fd5b50610530610af2565b60405161053d91906112af565b60405180910390f35b348015610551575f80fd5b5061056c60048036038101906105679190611521565b610b82565b6040516105799190611579565b60405180910390f35b34801561058d575f80fd5b506105a860048036038101906105a39190611741565b610c10565b005b3480156105b5575f80fd5b506105d060048036038101906105cb91906117de565b610dac565b6040516105dd91906115a1565b60405180910390f35b61060060048036038101906105fb9190611635565b610dca565b005b61061c60048036038101906106179190611635565b610e08565b005b348015610629575f80fd5b50610644600480360381019061063f9190611635565b610e31565b60405161065191906115a1565b60405180910390f35b60605f805461066890611849565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611849565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050905090565b5f6106f2610e4a565b905080546003825580156107245760018160011c14303b1061071b5763f92ee8a95f526004601cfd5b818160ff1b1b91505b5061072e33610e73565b835f908161073c9190611a16565b50826001908161074c9190611a16565b50610758826002610f49565b801561078d576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b50505050565b5f82602052637f5e9f20600c52335f52816034600c2055815f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa36001905092915050565b5f6805345cdf77eb68f44c54905090565b6107fe3382610f59565b50565b610809610f68565b6108138282610f49565b5050565b5f81826108238561094f565b1614905092915050565b5f610839848484610f9f565b8360601b33602052637f5e9f208117600c526034600c20805460018101156108765780851115610870576313be252b5f526004601cfd5b84810382555b6387a211a28317600c526020600c2080548087111561089c5763f4d678b85f526004601cfd5b8681038255875f526020600c2087815401815587602052600c5160601c8660601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050505050506108f3848484611043565b600190509392505050565b5f610907611048565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f638b78c6d8600c52815f526020600c20549050919050565b5f6012905090565b5f8061097a611052565b90505f801b81036109975761098d61065a565b8051906020012090505b6040517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81528160208201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a081209250505090565b610a08610f68565b610a128282610f59565b5050565b5f8082610a228561094f565b161415905092915050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b5f6387a211a2600c52815f526020600c20549050919050565b610a87610f68565b610a905f611056565b565b5f6338377508600c52815f526020600c20549050919050565b600281565b6002610abb8161111c565b610ac58383611151565b505050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b606060018054610b0190611849565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2d90611849565b8015610b785780601f10610b4f57610100808354040283529160200191610b78565b820191905f5260205f20905b815481529060010190602001808311610b5b57829003601f168201915b5050505050905090565b5f610b8e338484610f9f565b6387a211a2600c52335f526020600c20805480841115610bb55763f4d678b85f526004601cfd5b8381038255845f526020600c2084815401815584602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505050610c06338484611043565b6001905092915050565b5f610c19611052565b90505f801b8103610c3657610c2c61065a565b8051906020012090505b84421115610c4b57631a15a3cc5f526004601cfd5b6040518860601b60601c98508760601b60601c975065383775081901600e52885f526020600c2080547f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528360208401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604084015246606084015230608084015260a08320602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a60208401528960408401528860608401528060808401528760a084015260c08320604e526042602c205f528660ff16602052856040528460605260208060805f60015afa8b3d5114610d535763ddafbaef5f526004601cfd5b80820183558a637f5e9f2060a01b17604052896034602c20558a8c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608801a3836040525f606052505050505050505050505050565b5f81602052637f5e9f20600c52825f526034600c2054905092915050565b610dd2610f68565b63389a75e1600c52805f526020600c208054421115610df857636f5e88185f526004601cfd5b5f815550610e0581611056565b50565b610e10610f68565b8060601b610e2557637448fbae5f526004601cfd5b610e2e81611056565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610e7b6111e3565b15610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805415610eb557630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610f46565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610f55828260016111e7565b5050565b610f6482825f6111e7565b5050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610f9d576382b429005f526004601cfd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561100757505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561103e576040517f9cbe235700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b505050565b5f6202a300905090565b5f90565b61105e6111e3565b156110c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550611119565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b638b78c6d81954331461114e57638b78c6d8600c52335f52806020600c20541661114d576382b429005f526004601cfd5b5b50565b61115c5f8383610f9f565b6805345cdf77eb68f44c548181018181101561117f5763e5cfe9575f526004601cfd5b806805345cdf77eb68f44c556387a211a2600c52835f526020600c2083815401815583602052600c5160601c5f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050506111df5f8383611043565b5050565b5f90565b638b78c6d8600c52825f526020600c2080548381178361120957848216821890505b80835580600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe265f80a3505050505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112818261123f565b61128b8185611249565b935061129b818560208601611259565b6112a481611267565b840191505092915050565b5f6020820190508181035f8301526112c78184611277565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61131e82611267565b810181811067ffffffffffffffff8211171561133d5761133c6112e8565b5b80604052505050565b5f61134f6112cf565b905061135b8282611315565b919050565b5f67ffffffffffffffff82111561137a576113796112e8565b5b61138382611267565b9050602081019050919050565b828183375f83830152505050565b5f6113b06113ab84611360565b611346565b9050828152602081018484840111156113cc576113cb6112e4565b5b6113d7848285611390565b509392505050565b5f82601f8301126113f3576113f26112e0565b5b813561140384826020860161139e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114358261140c565b9050919050565b6114458161142b565b811461144f575f80fd5b50565b5f813590506114608161143c565b92915050565b5f805f6060848603121561147d5761147c6112d8565b5b5f84013567ffffffffffffffff81111561149a576114996112dc565b5b6114a6868287016113df565b935050602084013567ffffffffffffffff8111156114c7576114c66112dc565b5b6114d3868287016113df565b92505060406114e486828701611452565b9150509250925092565b5f819050919050565b611500816114ee565b811461150a575f80fd5b50565b5f8135905061151b816114f7565b92915050565b5f8060408385031215611537576115366112d8565b5b5f61154485828601611452565b92505060206115558582860161150d565b9150509250929050565b5f8115159050919050565b6115738161155f565b82525050565b5f60208201905061158c5f83018461156a565b92915050565b61159b816114ee565b82525050565b5f6020820190506115b45f830184611592565b92915050565b5f602082840312156115cf576115ce6112d8565b5b5f6115dc8482850161150d565b91505092915050565b5f805f606084860312156115fc576115fb6112d8565b5b5f61160986828701611452565b935050602061161a86828701611452565b925050604061162b8682870161150d565b9150509250925092565b5f6020828403121561164a576116496112d8565b5b5f61165784828501611452565b91505092915050565b5f60ff82169050919050565b61167581611660565b82525050565b5f60208201905061168e5f83018461166c565b92915050565b5f819050919050565b6116a681611694565b82525050565b5f6020820190506116bf5f83018461169d565b92915050565b6116ce8161142b565b82525050565b5f6020820190506116e75f8301846116c5565b92915050565b6116f681611660565b8114611700575f80fd5b50565b5f81359050611711816116ed565b92915050565b61172081611694565b811461172a575f80fd5b50565b5f8135905061173b81611717565b92915050565b5f805f805f805f60e0888a03121561175c5761175b6112d8565b5b5f6117698a828b01611452565b975050602061177a8a828b01611452565b965050604061178b8a828b0161150d565b955050606061179c8a828b0161150d565b94505060806117ad8a828b01611703565b93505060a06117be8a828b0161172d565b92505060c06117cf8a828b0161172d565b91505092959891949750929550565b5f80604083850312156117f4576117f36112d8565b5b5f61180185828601611452565b925050602061181285828601611452565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061186057607f821691505b6020821081036118735761187261181c565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026118d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261189a565b6118df868361189a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61191a611915611910846114ee565b6118f7565b6114ee565b9050919050565b5f819050919050565b61193383611900565b61194761193f82611921565b8484546118a6565b825550505050565b5f90565b61195b61194f565b61196681848461192a565b505050565b5b818110156119895761197e5f82611953565b60018101905061196c565b5050565b601f8211156119ce5761199f81611879565b6119a88461188b565b810160208510156119b7578190505b6119cb6119c38561188b565b83018261196b565b50505b505050565b5f82821c905092915050565b5f6119ee5f19846008026119d3565b1980831691505092915050565b5f611a0683836119df565b9150826002028217905092915050565b611a1f8261123f565b67ffffffffffffffff811115611a3857611a376112e8565b5b611a428254611849565b611a4d82828561198d565b5f60209050601f831160018114611a7e575f8415611a6c578287015190505b611a7685826119fb565b865550611add565b601f198416611a8c86611879565b5f5b82811015611ab357848901518255600182019150602085019450602081019050611a8e565b86831015611ad05784890151611acc601f8916826119df565b8355505b6001600288020188555050505b50505050505056fea26469706673582212205bafc9d17a8611bd2c81ad7c71e15e8e2710bee3f7aaf709b61ca06bab0a2e6164736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B6 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x54D1F13D GT PUSH2 0xEB JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x89 JUMPI DUP1 PUSH4 0xDD62ED3E GT PUSH2 0x63 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x5AA JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x602 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x61E JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x51C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x546 JUMPI DUP1 PUSH4 0xD505ACCF EQ PUSH2 0x582 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x7ECEBE00 GT PUSH2 0xC5 JUMPI DUP1 PUSH4 0x7ECEBE00 EQ PUSH2 0x464 JUMPI DUP1 PUSH4 0x82AEFA24 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x867904B4 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4F2 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x45A JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x158 JUMPI DUP1 PUSH4 0x313CE567 GT PUSH2 0x132 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x368 JUMPI DUP1 PUSH4 0x3644E515 EQ PUSH2 0x392 JUMPI DUP1 PUSH4 0x4A4EE7B1 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0x514E62FC EQ PUSH2 0x3D8 JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x322 JUMPI DUP1 PUSH4 0x2DE94807 EQ PUSH2 0x32C JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x18160DDD GT PUSH2 0x194 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0x183A4F6E EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x1C10893F EQ PUSH2 0x28E JUMPI DUP1 PUSH4 0x1CD64DF4 EQ PUSH2 0x2AA JUMPI PUSH2 0x1B6 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x77F224A EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x20C JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1CE PUSH2 0x65A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1DB SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x1466 JUMP JUMPDEST PUSH2 0x6E9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x217 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x232 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22D SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x793 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23F SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x253 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x25C PUSH2 0x7E3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x269 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x28C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x287 SWAP2 SWAP1 PUSH2 0x15BA JUMP JUMPDEST PUSH2 0x7F4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A3 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x2D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2CB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0x817 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2DD SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x15E5 JUMP JUMPDEST PUSH2 0x82D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x319 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x32A PUSH2 0x8FE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x337 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x352 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x34D SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0x94F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x35F SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x373 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x37C PUSH2 0x968 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x389 SWAP2 SWAP1 PUSH2 0x167B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3A6 PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x16AC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3D1 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA00 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E3 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3F9 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xA16 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x40B SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x41C PUSH2 0xA2D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x429 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x444 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x43F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA66 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x451 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x462 PUSH2 0xA7F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x46F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x48A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x485 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x497 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4AB JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B4 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C1 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4EB SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xAB0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4FD JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x506 PUSH2 0xACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x513 SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x527 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x530 PUSH2 0xAF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x53D SWAP2 SWAP1 PUSH2 0x12AF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x551 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x56C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x567 SWAP2 SWAP1 PUSH2 0x1521 JUMP JUMPDEST PUSH2 0xB82 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x579 SWAP2 SWAP1 PUSH2 0x1579 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x58D JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1741 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B5 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x5D0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5CB SWAP2 SWAP1 PUSH2 0x17DE JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5DD SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x600 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5FB SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xDCA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x61C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x617 SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE08 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x629 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x644 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x63F SWAP2 SWAP1 PUSH2 0x1635 JUMP JUMPDEST PUSH2 0xE31 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x651 SWAP2 SWAP1 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH0 DUP1 SLOAD PUSH2 0x668 SWAP1 PUSH2 0x1849 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 0x694 SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x6DF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x6B6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x6DF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x6C2 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0x6F2 PUSH2 0xE4A JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x724 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x71B JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH2 0x72E CALLER PUSH2 0xE73 JUMP JUMPDEST DUP4 PUSH0 SWAP1 DUP2 PUSH2 0x73C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP DUP3 PUSH1 0x1 SWAP1 DUP2 PUSH2 0x74C SWAP2 SWAP1 PUSH2 0x1A16 JUMP JUMPDEST POP PUSH2 0x758 DUP3 PUSH1 0x2 PUSH2 0xF49 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x78D JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP2 PUSH1 0x34 PUSH1 0xC KECCAK256 SSTORE DUP2 PUSH0 MSTORE PUSH1 0x2C MLOAD PUSH1 0x60 SHR CALLER PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH0 LOG3 PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH9 0x5345CDF77EB68F44C SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FE CALLER DUP3 PUSH2 0xF59 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x809 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0x813 DUP3 DUP3 PUSH2 0xF49 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP2 DUP3 PUSH2 0x823 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x839 DUP5 DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST DUP4 PUSH1 0x60 SHL CALLER PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 DUP2 OR PUSH1 0xC MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP2 ADD ISZERO PUSH2 0x876 JUMPI DUP1 DUP6 GT ISZERO PUSH2 0x870 JUMPI PUSH4 0x13BE252B PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP5 DUP2 SUB DUP3 SSTORE JUMPDEST PUSH4 0x87A211A2 DUP4 OR PUSH1 0xC MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP8 GT ISZERO PUSH2 0x89C JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP7 DUP2 SUB DUP3 SSTORE DUP8 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP8 DUP2 SLOAD ADD DUP2 SSTORE DUP8 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR DUP7 PUSH1 0x60 SHR PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP POP POP POP PUSH2 0x8F3 DUP5 DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x907 PUSH2 0x1048 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH2 0x97A PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0x997 JUMPI PUSH2 0x98D PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP3 ADD MSTORE CHAINID PUSH1 0x60 DUP3 ADD MSTORE ADDRESS PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 KECCAK256 SWAP3 POP POP POP SWAP1 JUMP JUMPDEST PUSH2 0xA08 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA12 DUP3 DUP3 PUSH2 0xF59 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 DUP1 DUP3 PUSH2 0xA22 DUP6 PUSH2 0x94F JUMP JUMPDEST AND EQ ISZERO SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH0 PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xA87 PUSH2 0xF68 JUMP JUMPDEST PUSH2 0xA90 PUSH0 PUSH2 0x1056 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH4 0x38377508 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 JUMP JUMPDEST PUSH1 0x2 PUSH2 0xABB DUP2 PUSH2 0x111C JUMP JUMPDEST PUSH2 0xAC5 DUP4 DUP4 PUSH2 0x1151 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0xB01 SWAP1 PUSH2 0x1849 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 0xB2D SWAP1 PUSH2 0x1849 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB78 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB4F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB78 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB5B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH2 0xB8E CALLER DUP5 DUP5 PUSH2 0xF9F JUMP JUMPDEST PUSH4 0x87A211A2 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP1 DUP5 GT ISZERO PUSH2 0xBB5 JUMPI PUSH4 0xF4D678B8 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP4 DUP2 SUB DUP3 SSTORE DUP5 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP5 DUP2 SLOAD ADD DUP2 SSTORE DUP5 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR CALLER PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0xC06 CALLER DUP5 DUP5 PUSH2 0x1043 JUMP JUMPDEST PUSH1 0x1 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0xC19 PUSH2 0x1052 JUMP JUMPDEST SWAP1 POP PUSH0 DUP1 SHL DUP2 SUB PUSH2 0xC36 JUMPI PUSH2 0xC2C PUSH2 0x65A JUMP JUMPDEST DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP JUMPDEST DUP5 TIMESTAMP GT ISZERO PUSH2 0xC4B JUMPI PUSH4 0x1A15A3CC PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH1 0x40 MLOAD DUP9 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP9 POP DUP8 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP8 POP PUSH6 0x383775081901 PUSH1 0xE MSTORE DUP9 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F DUP4 MSTORE DUP4 PUSH1 0x20 DUP5 ADD MSTORE PUSH32 0xC89EFDAA54C0F20C7ADF612882DF0950F5A951637E0307CDCB4C672F298B8BC6 PUSH1 0x40 DUP5 ADD MSTORE CHAINID PUSH1 0x60 DUP5 ADD MSTORE ADDRESS PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP4 KECCAK256 PUSH1 0x2E MSTORE PUSH32 0x6E71EDAE12B1B97F4D1F60370FEF10105FA2FAAE0126114A169C64845D6126C9 DUP4 MSTORE DUP11 PUSH1 0x20 DUP5 ADD MSTORE DUP10 PUSH1 0x40 DUP5 ADD MSTORE DUP9 PUSH1 0x60 DUP5 ADD MSTORE DUP1 PUSH1 0x80 DUP5 ADD MSTORE DUP8 PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 KECCAK256 PUSH1 0x4E MSTORE PUSH1 0x42 PUSH1 0x2C KECCAK256 PUSH0 MSTORE DUP7 PUSH1 0xFF AND PUSH1 0x20 MSTORE DUP6 PUSH1 0x40 MSTORE DUP5 PUSH1 0x60 MSTORE PUSH1 0x20 DUP1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP12 RETURNDATASIZE MLOAD EQ PUSH2 0xD53 JUMPI PUSH4 0xDDAFBAEF PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 DUP3 ADD DUP4 SSTORE DUP11 PUSH4 0x7F5E9F20 PUSH1 0xA0 SHL OR PUSH1 0x40 MSTORE DUP10 PUSH1 0x34 PUSH1 0x2C KECCAK256 SSTORE DUP11 DUP13 PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x20 PUSH1 0x60 DUP9 ADD LOG3 DUP4 PUSH1 0x40 MSTORE PUSH0 PUSH1 0x60 MSTORE POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH4 0x7F5E9F20 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x34 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDD2 PUSH2 0xF68 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0xDF8 JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0xE05 DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xE10 PUSH2 0xF68 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0xE25 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0xE2E DUP2 PUSH2 0x1056 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE7B PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0xEF3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0xEB5 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xF46 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xF55 DUP3 DUP3 PUSH1 0x1 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xF64 DUP3 DUP3 PUSH0 PUSH2 0x11E7 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0xF9D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x1007 JUMPI POP PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO JUMPDEST ISZERO PUSH2 0x103E JUMPI PUSH1 0x40 MLOAD PUSH32 0x9CBE235700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x105E PUSH2 0x11E3 JUMP JUMPDEST ISZERO PUSH2 0x10C3 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0x1119 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH4 0x8B78C6D8 NOT SLOAD CALLER EQ PUSH2 0x114E JUMPI PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD AND PUSH2 0x114D JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x115C PUSH0 DUP4 DUP4 PUSH2 0xF9F JUMP JUMPDEST PUSH9 0x5345CDF77EB68F44C SLOAD DUP2 DUP2 ADD DUP2 DUP2 LT ISZERO PUSH2 0x117F JUMPI PUSH4 0xE5CFE957 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP1 PUSH9 0x5345CDF77EB68F44C SSTORE PUSH4 0x87A211A2 PUSH1 0xC MSTORE DUP4 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP4 DUP2 SLOAD ADD DUP2 SSTORE DUP4 PUSH1 0x20 MSTORE PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH0 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF PUSH1 0x20 DUP1 LOG3 POP POP POP PUSH2 0x11DF PUSH0 DUP4 DUP4 PUSH2 0x1043 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH4 0x8B78C6D8 PUSH1 0xC MSTORE DUP3 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD DUP4 DUP2 OR DUP4 PUSH2 0x1209 JUMPI DUP5 DUP3 AND DUP3 XOR SWAP1 POP JUMPDEST DUP1 DUP4 SSTORE DUP1 PUSH1 0xC MLOAD PUSH1 0x60 SHR PUSH32 0x715AD5CE61FC9595C7B415289D59CF203F23A94FA06F04AF7E489A0A76E1FE26 PUSH0 DUP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1281 DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH2 0x128B DUP2 DUP6 PUSH2 0x1249 JUMP JUMPDEST SWAP4 POP PUSH2 0x129B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x12A4 DUP2 PUSH2 0x1267 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH0 DUP4 ADD MSTORE PUSH2 0x12C7 DUP2 DUP5 PUSH2 0x1277 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH2 0x1267 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x133D JUMPI PUSH2 0x133C PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x134F PUSH2 0x12CF JUMP JUMPDEST SWAP1 POP PUSH2 0x135B DUP3 DUP3 PUSH2 0x1315 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x137A JUMPI PUSH2 0x1379 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1383 DUP3 PUSH2 0x1267 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x13B0 PUSH2 0x13AB DUP5 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x1346 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x13CC JUMPI PUSH2 0x13CB PUSH2 0x12E4 JUMP JUMPDEST JUMPDEST PUSH2 0x13D7 DUP5 DUP3 DUP6 PUSH2 0x1390 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x13F3 JUMPI PUSH2 0x13F2 PUSH2 0x12E0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1403 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x139E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x1435 DUP3 PUSH2 0x140C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1445 DUP2 PUSH2 0x142B JUMP JUMPDEST DUP2 EQ PUSH2 0x144F JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1460 DUP2 PUSH2 0x143C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x147D JUMPI PUSH2 0x147C PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x149A JUMPI PUSH2 0x1499 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14A6 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x14C7 JUMPI PUSH2 0x14C6 PUSH2 0x12DC JUMP JUMPDEST JUMPDEST PUSH2 0x14D3 DUP7 DUP3 DUP8 ADD PUSH2 0x13DF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x14E4 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1500 DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP2 EQ PUSH2 0x150A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x151B DUP2 PUSH2 0x14F7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1537 JUMPI PUSH2 0x1536 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1544 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1555 DUP6 DUP3 DUP7 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1573 DUP2 PUSH2 0x155F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x158C PUSH0 DUP4 ADD DUP5 PUSH2 0x156A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x159B DUP2 PUSH2 0x14EE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15B4 PUSH0 DUP4 ADD DUP5 PUSH2 0x1592 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15CF JUMPI PUSH2 0x15CE PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x15DC DUP5 DUP3 DUP6 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x15FC JUMPI PUSH2 0x15FB PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1609 DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x161A DUP7 DUP3 DUP8 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x162B DUP7 DUP3 DUP8 ADD PUSH2 0x150D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x164A JUMPI PUSH2 0x1649 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1657 DUP5 DUP3 DUP6 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1675 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x168E PUSH0 DUP4 ADD DUP5 PUSH2 0x166C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x16A6 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16BF PUSH0 DUP4 ADD DUP5 PUSH2 0x169D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16CE DUP2 PUSH2 0x142B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x16E7 PUSH0 DUP4 ADD DUP5 PUSH2 0x16C5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x16F6 DUP2 PUSH2 0x1660 JUMP JUMPDEST DUP2 EQ PUSH2 0x1700 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1711 DUP2 PUSH2 0x16ED JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1720 DUP2 PUSH2 0x1694 JUMP JUMPDEST DUP2 EQ PUSH2 0x172A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x173B DUP2 PUSH2 0x1717 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH0 DUP1 PUSH0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x175C JUMPI PUSH2 0x175B PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1769 DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP8 POP POP PUSH1 0x20 PUSH2 0x177A DUP11 DUP3 DUP12 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x40 PUSH2 0x178B DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP6 POP POP PUSH1 0x60 PUSH2 0x179C DUP11 DUP3 DUP12 ADD PUSH2 0x150D JUMP JUMPDEST SWAP5 POP POP PUSH1 0x80 PUSH2 0x17AD DUP11 DUP3 DUP12 ADD PUSH2 0x1703 JUMP JUMPDEST SWAP4 POP POP PUSH1 0xA0 PUSH2 0x17BE DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP3 POP POP PUSH1 0xC0 PUSH2 0x17CF DUP11 DUP3 DUP12 ADD PUSH2 0x172D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17F4 JUMPI PUSH2 0x17F3 PUSH2 0x12D8 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1801 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1812 DUP6 DUP3 DUP7 ADD PUSH2 0x1452 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1860 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1873 JUMPI PUSH2 0x1872 PUSH2 0x181C JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x8 DUP4 MUL PUSH2 0x18D5 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x189A JUMP JUMPDEST PUSH2 0x18DF DUP7 DUP4 PUSH2 0x189A JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x191A PUSH2 0x1915 PUSH2 0x1910 DUP5 PUSH2 0x14EE JUMP JUMPDEST PUSH2 0x18F7 JUMP JUMPDEST PUSH2 0x14EE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1933 DUP4 PUSH2 0x1900 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x193F DUP3 PUSH2 0x1921 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x18A6 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH2 0x195B PUSH2 0x194F JUMP JUMPDEST PUSH2 0x1966 DUP2 DUP5 DUP5 PUSH2 0x192A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH2 0x197E PUSH0 DUP3 PUSH2 0x1953 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x196C JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x19CE JUMPI PUSH2 0x199F DUP2 PUSH2 0x1879 JUMP JUMPDEST PUSH2 0x19A8 DUP5 PUSH2 0x188B JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x19B7 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x19CB PUSH2 0x19C3 DUP6 PUSH2 0x188B JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x196B JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x19EE PUSH0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x19D3 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1A06 DUP4 DUP4 PUSH2 0x19DF JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A1F DUP3 PUSH2 0x123F JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A38 JUMPI PUSH2 0x1A37 PUSH2 0x12E8 JUMP JUMPDEST JUMPDEST PUSH2 0x1A42 DUP3 SLOAD PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x1A4D DUP3 DUP3 DUP6 PUSH2 0x198D JUMP JUMPDEST PUSH0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x1A7E JUMPI PUSH0 DUP5 ISZERO PUSH2 0x1A6C JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x1A76 DUP6 DUP3 PUSH2 0x19FB JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1ADD JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x1A8C DUP7 PUSH2 0x1879 JUMP JUMPDEST PUSH0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1AB3 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x1A8E JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1AD0 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1ACC PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x19DF JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST 0xAF 0xC9 0xD1 PUSH27 0x8611BD2C81AD7C71E15E8E2710BEE3F7AAF709B61CA06BAB0A2E61 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ","sourceMap":"394:1770:60:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;898:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7435:573:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6287:195;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10127:109:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9588:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11178:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9969:2191:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;10567:353:17;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:82:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16620:693;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9856:125:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10982:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9720:456:16;;;:::i;:::-;;6548:286:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8762:100:16;;;:::i;:::-;;12800:340:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;553:44:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1314:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11408:182:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1670:102:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8195:1406:18;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13324:3215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6929:375;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1500:98:60;1554:13;1586:5;1579:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:98;:::o;898:242::-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;1010:28:60::1;1027:10;1010:16;:28::i;:::-;1057:5;1049;:13;;;;;;:::i;:::-;;1082:7;1072;:17;;;;;;:::i;:::-;;1100:33;1112:7;591:6;1100:11;:33::i;:::-;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;898:242:60;;;:::o;7435:573:18:-;7509:4;7668:7;7662:4;7655:21;7702:20;7696:4;7689:34;7749:8;7743:4;7736:22;7801:6;7794:4;7788;7778:21;7771:37;7876:6;7870:4;7863:20;7964:4;7958:11;7954:2;7950:20;7940:8;7913:25;7907:4;7901;7896:75;7997:4;7990:11;;7435:573;;;;:::o;6287:195::-;6339:14;6447:18;6441:25;6431:35;;6287:195;:::o;10127:109:17:-;10198:31;10211:10;10223:5;10198:12;:31::i;:::-;10127:109;:::o;9588:123::-;12517:13:16;:11;:13::i;:::-;9680:24:17::1;9692:4;9698:5;9680:11;:24::i;:::-;9588:123:::0;;:::o;11178:139::-;11257:4;11305:5;11296;11280:13;11288:4;11280:7;:13::i;:::-;:21;:30;11273:37;;11178:139;;;;:::o;9969:2191:18:-;10057:4;10073:38;10094:4;10100:2;10104:6;10073:20;:38::i;:::-;10208:4;10204:2;10200:13;10301:8;10295:4;10288:22;10346:20;10339:5;10336:31;10330:4;10323:45;10418:4;10412;10402:21;10460:13;10454:20;10572:1;10560:10;10556:18;10553:418;;;10688:10;10680:6;10677:22;10674:159;;;10735:10;10729:4;10722:24;10810:4;10804;10797:18;10674:159;10949:6;10937:10;10933:23;10918:13;10911:46;10553:418;11067:18;11060:5;11057:29;11051:4;11044:43;11139:4;11133;11123:21;11182:15;11176:22;11272:11;11264:6;11261:23;11258:146;;;11316:10;11310:4;11303:24;11385:4;11379;11372:18;11258:146;11513:6;11500:11;11496:24;11479:15;11472:49;11596:2;11590:4;11583:16;11649:4;11643;11633:21;11899:6;11883:13;11877:20;11873:33;11858:13;11851:56;11975:6;11969:4;11962:20;12069:4;12063:11;12059:2;12055:20;12047:5;12043:2;12039:14;12012:25;12006:4;12000;11995:81;10173:1913;;;;;;12095:37;12115:4;12121:2;12125:6;12095:19;:37::i;:::-;12149:4;12142:11;;9969:2191;;;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;10567:353:17:-;10627:13;10769:15;10763:4;10756:29;10811:4;10805;10798:18;10898:4;10892;10882:21;10876:28;10867:37;;10567:353;;;:::o;5860:82:18:-;5909:5;5933:2;5926:9;;5860:82;:::o;16620:693::-;16677:14;16703:16;16722:19;:17;:19::i;:::-;16703:38;;16869:1;16861:10;;16849:8;:22;16845:63;;16900:6;:4;:6::i;:::-;16884:24;;;;;;16873:35;;16845:63;16999:4;16993:11;17060:16;17057:1;17050:27;17111:8;17104:4;17101:1;17097:12;17090:30;17154:13;17147:4;17144:1;17140:12;17133:35;17202:9;17195:4;17192:1;17188:12;17181:31;17246:9;17239:4;17236:1;17232:12;17225:31;17292:4;17289:1;17279:18;17269:28;;16970:337;;16620:693;:::o;9856:125:17:-;12517:13:16;:11;:13::i;:::-;9949:25:17::1;9962:4;9968:5;9949:12;:25::i;:::-;9856:125:::0;;:::o;10982:134::-;11060:4;11108:1;11099:5;11083:13;11091:4;11083:7;:13::i;:::-;:21;:26;;11076:33;;10982:134;;;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;6548:286:18:-;6611:14;6716:18;6710:4;6703:32;6761:5;6755:4;6748:19;6812:4;6806;6796:21;6790:28;6780:38;;6548:286;;;:::o;8762:100:16:-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;12800:340:18:-;12860:14;13023:17;13017:4;13010:31;13067:5;13061:4;13054:19;13118:4;13112;13102:21;13096:28;13086:38;;12800:340;;;:::o;553:44:60:-;591:6;553:44;:::o;1314:116::-;591:6;11991:25:17;12010:5;11991:18;:25::i;:::-;1406:17:60::1;1412:2;1416:6;1406:5;:17::i;:::-;1314:116:::0;;;:::o;11408:182:16:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1670:102:60:-;1726:13;1758:7;1751:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1670:102;:::o;8195:1406:18:-;8265:4;8281:44;8302:10;8314:2;8318:6;8281:20;:44::i;:::-;8474:18;8468:4;8461:32;8519:8;8513:4;8506:22;8580:4;8574;8564:21;8623:15;8617:22;8713:11;8705:6;8702:23;8699:146;;;8757:10;8751:4;8744:24;8826:4;8820;8813:18;8699:146;8954:6;8941:11;8937:24;8920:15;8913:49;9037:2;9031:4;9024:16;9090:4;9084;9074:21;9340:6;9324:13;9318:20;9314:33;9299:13;9292:56;9416:6;9410:4;9403:20;9504:4;9498:11;9494:2;9490:20;9480:8;9453:25;9447:4;9441;9436:75;8387:1134;;;9530:43;9550:10;9562:2;9566:6;9530:19;:43::i;:::-;9590:4;9583:11;;8195:1406;;;;:::o;13324:3215::-;13523:16;13542:19;:17;:19::i;:::-;13523:38;;13689:1;13681:10;;13669:8;:22;13665:63;;13720:6;:4;:6::i;:::-;13704:24;;;;;;13693:35;;13665:63;13896:8;13883:11;13880:25;13877:142;;;13937:10;13931:4;13924:24;14000:4;13994;13987:18;13877:142;14047:4;14041:11;14163:5;14159:2;14155:14;14151:2;14147:23;14138:32;;14210:7;14206:2;14202:16;14198:2;14194:25;14183:36;;14303:39;14297:4;14290:53;14369:5;14363:4;14356:19;14421:4;14415;14405:21;14463:9;14457:16;14541;14538:1;14531:27;14592:8;14585:4;14582:1;14578:12;14571:30;14635:13;14628:4;14625:1;14621:12;14614:35;14683:9;14676:4;14673:1;14669:12;14662:31;14727:9;14720:4;14717:1;14713:12;14706:31;14776:4;14773:1;14763:18;14757:4;14750:32;14845:16;14842:1;14835:27;14896:5;14889:4;14886:1;14882:12;14875:27;14936:7;14929:4;14926:1;14922:12;14915:29;14978:5;14971:4;14968:1;14964:12;14957:27;15018:10;15011:4;15008:1;15004:12;14997:32;15063:8;15056:4;15053:1;15049:12;15042:30;15111:4;15108:1;15098:18;15092:4;15085:32;15206:4;15200;15190:21;15184:4;15177:35;15248:1;15242:4;15238:12;15232:4;15225:26;15277:1;15271:4;15264:15;15305:1;15299:4;15292:15;15365:4;15359;15353;15350:1;15347;15340:5;15329:41;15786:5;15767:16;15761:23;15758:34;15748:159;;15825:10;15819:4;15812:24;15888:4;15882;15875:18;15748:159;16008:1;15996:10;15992:18;15981:9;15974:37;16222:7;16199:20;16194:3;16190:30;16187:43;16181:4;16174:57;16274:5;16267:4;16261;16251:21;16244:36;16394:7;16387:5;16360:25;16354:4;16347;16344:1;16340:12;16335:67;16428:1;16422:4;16415:15;16492:1;16486:4;16479:15;13790:2743;;;;;13324:3215;;;;;;;:::o;6929:375::-;7041:14;7150:7;7144:4;7137:21;7184:20;7178:4;7171:34;7231:5;7225:4;7218:19;7282:4;7276;7266:21;7260:28;7250:38;;6929:375;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;4053:115:17:-;4130:31;4143:4;4149:5;4156:4;4130:12;:31::i;:::-;4053:115;;:::o;4304:117::-;4382:32;4395:4;4401:5;4408;4382:12;:32::i;:::-;4304:117;;:::o;7292:355:16:-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;1986:176:60:-;2107:1;2091:18;;:4;:18;;;;:38;;;;;2127:1;2113:16;;:2;:16;;;;2091:38;2087:68;;;2138:17;;;;;;;;;;;;;;2087:68;1986:176;;;:::o;24791:90:18:-;;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;12591:78:18:-;12651:14;12591:78;:::o;6145:1089:16:-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;5219:802:17:-;5517:15;5513:20;5507:27;5497:8;5494:41;5484:521;;5610:15;5604:4;5597:29;5656:8;5650:4;5643:22;5859:5;5851:4;5845;5835:21;5829:28;5825:40;5815:176;;5902:10;5896:4;5889:24;5968:4;5962;5955:18;5815:176;5484:521;5219:802;:::o;17717:1172:18:-;17787:44;17816:1;17820:2;17824:6;17787:20;:44::i;:::-;17938:18;17932:25;18017:6;17998:17;17994:30;18114:17;18096:16;18093:39;18090:162;;;18164:10;18158:4;18151:24;18233:4;18227;18220:18;18090:162;18339:16;18319:18;18312:44;18442:18;18436:4;18429:32;18487:2;18481:4;18474:16;18540:4;18534;18524:21;18656:6;18640:13;18634:20;18630:33;18615:13;18608:56;18732:6;18726:4;18719:20;18813:4;18807:11;18803:2;18799:20;18796:1;18769:25;18763:4;18757;18752:68;17893:937;;;18839:43;18867:1;18871:2;18875:6;18839:19;:43::i;:::-;17717:1172;;:::o;4348:78:16:-;4412:10;4348:78;:::o;2952:967:17:-;3118:15;3112:4;3105:29;3160:4;3154;3147:18;3210:4;3204;3194:21;3288:8;3282:15;3395:5;3386:7;3383:18;3639:2;3629:62;;3682:5;3673:7;3669:19;3660:7;3656:33;3645:44;;3629:62;3763:7;3753:8;3746:25;3895:7;3887:4;3881:11;3877:2;3873:20;3841:30;3838:1;3835;3830:73;3091:822;;;2952:967;;;:::o;7:99:64:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:117;1678:1;1675;1668:12;1692:117;1801:1;1798;1791:12;1815:180;1863:77;1860:1;1853:88;1960:4;1957:1;1950:15;1984:4;1981:1;1974:15;2001:281;2084:27;2106:4;2084:27;:::i;:::-;2076:6;2072:40;2214:6;2202:10;2199:22;2178:18;2166:10;2163:34;2160:62;2157:88;;;2225:18;;:::i;:::-;2157:88;2265:10;2261:2;2254:22;2044:238;2001:281;;:::o;2288:129::-;2322:6;2349:20;;:::i;:::-;2339:30;;2378:33;2406:4;2398:6;2378:33;:::i;:::-;2288:129;;;:::o;2423:308::-;2485:4;2575:18;2567:6;2564:30;2561:56;;;2597:18;;:::i;:::-;2561:56;2635:29;2657:6;2635:29;:::i;:::-;2627:37;;2719:4;2713;2709:15;2701:23;;2423:308;;;:::o;2737:148::-;2835:6;2830:3;2825;2812:30;2876:1;2867:6;2862:3;2858:16;2851:27;2737:148;;;:::o;2891:425::-;2969:5;2994:66;3010:49;3052:6;3010:49;:::i;:::-;2994:66;:::i;:::-;2985:75;;3083:6;3076:5;3069:21;3121:4;3114:5;3110:16;3159:3;3150:6;3145:3;3141:16;3138:25;3135:112;;;3166:79;;:::i;:::-;3135:112;3256:54;3303:6;3298:3;3293;3256:54;:::i;:::-;2975:341;2891:425;;;;;:::o;3336:340::-;3392:5;3441:3;3434:4;3426:6;3422:17;3418:27;3408:122;;3449:79;;:::i;:::-;3408:122;3566:6;3553:20;3591:79;3666:3;3658:6;3651:4;3643:6;3639:17;3591:79;:::i;:::-;3582:88;;3398:278;3336:340;;;;:::o;3682:126::-;3719:7;3759:42;3752:5;3748:54;3737:65;;3682:126;;;:::o;3814:96::-;3851:7;3880:24;3898:5;3880:24;:::i;:::-;3869:35;;3814:96;;;:::o;3916:122::-;3989:24;4007:5;3989:24;:::i;:::-;3982:5;3979:35;3969:63;;4028:1;4025;4018:12;3969:63;3916:122;:::o;4044:139::-;4090:5;4128:6;4115:20;4106:29;;4144:33;4171:5;4144:33;:::i;:::-;4044:139;;;;:::o;4189:979::-;4286:6;4294;4302;4351:2;4339:9;4330:7;4326:23;4322:32;4319:119;;;4357:79;;:::i;:::-;4319:119;4505:1;4494:9;4490:17;4477:31;4535:18;4527:6;4524:30;4521:117;;;4557:79;;:::i;:::-;4521:117;4662:63;4717:7;4708:6;4697:9;4693:22;4662:63;:::i;:::-;4652:73;;4448:287;4802:2;4791:9;4787:18;4774:32;4833:18;4825:6;4822:30;4819:117;;;4855:79;;:::i;:::-;4819:117;4960:63;5015:7;5006:6;4995:9;4991:22;4960:63;:::i;:::-;4950:73;;4745:288;5072:2;5098:53;5143:7;5134:6;5123:9;5119:22;5098:53;:::i;:::-;5088:63;;5043:118;4189:979;;;;;:::o;5174:77::-;5211:7;5240:5;5229:16;;5174:77;;;:::o;5257:122::-;5330:24;5348:5;5330:24;:::i;:::-;5323:5;5320:35;5310:63;;5369:1;5366;5359:12;5310:63;5257:122;:::o;5385:139::-;5431:5;5469:6;5456:20;5447:29;;5485:33;5512:5;5485:33;:::i;:::-;5385:139;;;;:::o;5530:474::-;5598:6;5606;5655:2;5643:9;5634:7;5630:23;5626:32;5623:119;;;5661:79;;:::i;:::-;5623:119;5781:1;5806:53;5851:7;5842:6;5831:9;5827:22;5806:53;:::i;:::-;5796:63;;5752:117;5908:2;5934:53;5979:7;5970:6;5959:9;5955:22;5934:53;:::i;:::-;5924:63;;5879:118;5530:474;;;;;:::o;6010:90::-;6044:7;6087:5;6080:13;6073:21;6062:32;;6010:90;;;:::o;6106:109::-;6187:21;6202:5;6187:21;:::i;:::-;6182:3;6175:34;6106:109;;:::o;6221:210::-;6308:4;6346:2;6335:9;6331:18;6323:26;;6359:65;6421:1;6410:9;6406:17;6397:6;6359:65;:::i;:::-;6221:210;;;;:::o;6437:118::-;6524:24;6542:5;6524:24;:::i;:::-;6519:3;6512:37;6437:118;;:::o;6561:222::-;6654:4;6692:2;6681:9;6677:18;6669:26;;6705:71;6773:1;6762:9;6758:17;6749:6;6705:71;:::i;:::-;6561:222;;;;:::o;6789:329::-;6848:6;6897:2;6885:9;6876:7;6872:23;6868:32;6865:119;;;6903:79;;:::i;:::-;6865:119;7023:1;7048:53;7093:7;7084:6;7073:9;7069:22;7048:53;:::i;:::-;7038:63;;6994:117;6789:329;;;;:::o;7124:619::-;7201:6;7209;7217;7266:2;7254:9;7245:7;7241:23;7237:32;7234:119;;;7272:79;;:::i;:::-;7234:119;7392:1;7417:53;7462:7;7453:6;7442:9;7438:22;7417:53;:::i;:::-;7407:63;;7363:117;7519:2;7545:53;7590:7;7581:6;7570:9;7566:22;7545:53;:::i;:::-;7535:63;;7490:118;7647:2;7673:53;7718:7;7709:6;7698:9;7694:22;7673:53;:::i;:::-;7663:63;;7618:118;7124:619;;;;;:::o;7749:329::-;7808:6;7857:2;7845:9;7836:7;7832:23;7828:32;7825:119;;;7863:79;;:::i;:::-;7825:119;7983:1;8008:53;8053:7;8044:6;8033:9;8029:22;8008:53;:::i;:::-;7998:63;;7954:117;7749:329;;;;:::o;8084:86::-;8119:7;8159:4;8152:5;8148:16;8137:27;;8084:86;;;:::o;8176:112::-;8259:22;8275:5;8259:22;:::i;:::-;8254:3;8247:35;8176:112;;:::o;8294:214::-;8383:4;8421:2;8410:9;8406:18;8398:26;;8434:67;8498:1;8487:9;8483:17;8474:6;8434:67;:::i;:::-;8294:214;;;;:::o;8514:77::-;8551:7;8580:5;8569:16;;8514:77;;;:::o;8597:118::-;8684:24;8702:5;8684:24;:::i;:::-;8679:3;8672:37;8597:118;;:::o;8721:222::-;8814:4;8852:2;8841:9;8837:18;8829:26;;8865:71;8933:1;8922:9;8918:17;8909:6;8865:71;:::i;:::-;8721:222;;;;:::o;8949:118::-;9036:24;9054:5;9036:24;:::i;:::-;9031:3;9024:37;8949:118;;:::o;9073:222::-;9166:4;9204:2;9193:9;9189:18;9181:26;;9217:71;9285:1;9274:9;9270:17;9261:6;9217:71;:::i;:::-;9073:222;;;;:::o;9301:118::-;9372:22;9388:5;9372:22;:::i;:::-;9365:5;9362:33;9352:61;;9409:1;9406;9399:12;9352:61;9301:118;:::o;9425:135::-;9469:5;9507:6;9494:20;9485:29;;9523:31;9548:5;9523:31;:::i;:::-;9425:135;;;;:::o;9566:122::-;9639:24;9657:5;9639:24;:::i;:::-;9632:5;9629:35;9619:63;;9678:1;9675;9668:12;9619:63;9566:122;:::o;9694:139::-;9740:5;9778:6;9765:20;9756:29;;9794:33;9821:5;9794:33;:::i;:::-;9694:139;;;;:::o;9839:1199::-;9950:6;9958;9966;9974;9982;9990;9998;10047:3;10035:9;10026:7;10022:23;10018:33;10015:120;;;10054:79;;:::i;:::-;10015:120;10174:1;10199:53;10244:7;10235:6;10224:9;10220:22;10199:53;:::i;:::-;10189:63;;10145:117;10301:2;10327:53;10372:7;10363:6;10352:9;10348:22;10327:53;:::i;:::-;10317:63;;10272:118;10429:2;10455:53;10500:7;10491:6;10480:9;10476:22;10455:53;:::i;:::-;10445:63;;10400:118;10557:2;10583:53;10628:7;10619:6;10608:9;10604:22;10583:53;:::i;:::-;10573:63;;10528:118;10685:3;10712:51;10755:7;10746:6;10735:9;10731:22;10712:51;:::i;:::-;10702:61;;10656:117;10812:3;10839:53;10884:7;10875:6;10864:9;10860:22;10839:53;:::i;:::-;10829:63;;10783:119;10941:3;10968:53;11013:7;11004:6;10993:9;10989:22;10968:53;:::i;:::-;10958:63;;10912:119;9839:1199;;;;;;;;;;:::o;11044:474::-;11112:6;11120;11169:2;11157:9;11148:7;11144:23;11140:32;11137:119;;;11175:79;;:::i;:::-;11137:119;11295:1;11320:53;11365:7;11356:6;11345:9;11341:22;11320:53;:::i;:::-;11310:63;;11266:117;11422:2;11448:53;11493:7;11484:6;11473:9;11469:22;11448:53;:::i;:::-;11438:63;;11393:118;11044:474;;;;;:::o;11524:180::-;11572:77;11569:1;11562:88;11669:4;11666:1;11659:15;11693:4;11690:1;11683:15;11710:320;11754:6;11791:1;11785:4;11781:12;11771:22;;11838:1;11832:4;11828:12;11859:18;11849:81;;11915:4;11907:6;11903:17;11893:27;;11849:81;11977:2;11969:6;11966:14;11946:18;11943:38;11940:84;;11996:18;;:::i;:::-;11940:84;11761:269;11710:320;;;:::o;12036:141::-;12085:4;12108:3;12100:11;;12131:3;12128:1;12121:14;12165:4;12162:1;12152:18;12144:26;;12036:141;;;:::o;12183:93::-;12220:6;12267:2;12262;12255:5;12251:14;12247:23;12237:33;;12183:93;;;:::o;12282:107::-;12326:8;12376:5;12370:4;12366:16;12345:37;;12282:107;;;;:::o;12395:393::-;12464:6;12514:1;12502:10;12498:18;12537:97;12567:66;12556:9;12537:97;:::i;:::-;12655:39;12685:8;12674:9;12655:39;:::i;:::-;12643:51;;12727:4;12723:9;12716:5;12712:21;12703:30;;12776:4;12766:8;12762:19;12755:5;12752:30;12742:40;;12471:317;;12395:393;;;;;:::o;12794:60::-;12822:3;12843:5;12836:12;;12794:60;;;:::o;12860:142::-;12910:9;12943:53;12961:34;12970:24;12988:5;12970:24;:::i;:::-;12961:34;:::i;:::-;12943:53;:::i;:::-;12930:66;;12860:142;;;:::o;13008:75::-;13051:3;13072:5;13065:12;;13008:75;;;:::o;13089:269::-;13199:39;13230:7;13199:39;:::i;:::-;13260:91;13309:41;13333:16;13309:41;:::i;:::-;13301:6;13294:4;13288:11;13260:91;:::i;:::-;13254:4;13247:105;13165:193;13089:269;;;:::o;13364:73::-;13409:3;13364:73;:::o;13443:189::-;13520:32;;:::i;:::-;13561:65;13619:6;13611;13605:4;13561:65;:::i;:::-;13496:136;13443:189;;:::o;13638:186::-;13698:120;13715:3;13708:5;13705:14;13698:120;;;13769:39;13806:1;13799:5;13769:39;:::i;:::-;13742:1;13735:5;13731:13;13722:22;;13698:120;;;13638:186;;:::o;13830:543::-;13931:2;13926:3;13923:11;13920:446;;;13965:38;13997:5;13965:38;:::i;:::-;14049:29;14067:10;14049:29;:::i;:::-;14039:8;14035:44;14232:2;14220:10;14217:18;14214:49;;;14253:8;14238:23;;14214:49;14276:80;14332:22;14350:3;14332:22;:::i;:::-;14322:8;14318:37;14305:11;14276:80;:::i;:::-;13935:431;;13920:446;13830:543;;;:::o;14379:117::-;14433:8;14483:5;14477:4;14473:16;14452:37;;14379:117;;;;:::o;14502:169::-;14546:6;14579:51;14627:1;14623:6;14615:5;14612:1;14608:13;14579:51;:::i;:::-;14575:56;14660:4;14654;14650:15;14640:25;;14553:118;14502:169;;;;:::o;14676:295::-;14752:4;14898:29;14923:3;14917:4;14898:29;:::i;:::-;14890:37;;14960:3;14957:1;14953:11;14947:4;14944:21;14936:29;;14676:295;;;;:::o;14976:1395::-;15093:37;15126:3;15093:37;:::i;:::-;15195:18;15187:6;15184:30;15181:56;;;15217:18;;:::i;:::-;15181:56;15261:38;15293:4;15287:11;15261:38;:::i;:::-;15346:67;15406:6;15398;15392:4;15346:67;:::i;:::-;15440:1;15464:4;15451:17;;15496:2;15488:6;15485:14;15513:1;15508:618;;;;16170:1;16187:6;16184:77;;;16236:9;16231:3;16227:19;16221:26;16212:35;;16184:77;16287:67;16347:6;16340:5;16287:67;:::i;:::-;16281:4;16274:81;16143:222;15478:887;;15508:618;15560:4;15556:9;15548:6;15544:22;15594:37;15626:4;15594:37;:::i;:::-;15653:1;15667:208;15681:7;15678:1;15675:14;15667:208;;;15760:9;15755:3;15751:19;15745:26;15737:6;15730:42;15811:1;15803:6;15799:14;15789:24;;15858:2;15847:9;15843:18;15830:31;;15704:4;15701:1;15697:12;15692:17;;15667:208;;;15903:6;15894:7;15891:19;15888:179;;;15961:9;15956:3;15952:19;15946:26;16004:48;16046:4;16038:6;16034:17;16023:9;16004:48;:::i;:::-;15996:6;15989:64;15911:156;15888:179;16113:1;16109;16101:6;16097:14;16093:22;16087:4;16080:36;15515:611;;;15478:887;;15068:1303;;;14976:1395;;:::o"},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","ISSUER_ROLE()":"82aefa24","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","decimals()":"313ce567","grantRoles(address,uint256)":"1c10893f","hasAllRoles(address,uint256)":"1cd64df4","hasAnyRole(address,uint256)":"514e62fc","initialize(string,string,address)":"077f224a","issue(address,uint256)":"867904b4","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","renounceOwnership()":"715018a6","renounceRoles(uint256)":"183a4f6e","requestOwnershipHandover()":"25692962","revokeRoles(address,uint256)":"4a4ee7b1","rolesOf(address)":"2de94807","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonTransferable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"RolesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ISSUER_ROLE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"grantRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAllRoles\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"hasAnyRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"minter_\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"issue\",\"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\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"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\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"renounceRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"name\":\"revokeRoles\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"rolesOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"roles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"RolesUpdated(address,uint256)\":{\"details\":\"The `user`'s roles is updated to `roles`. Each bit of `roles` represents whether the role is set.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for the EIP-2612 permit.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"grantRoles(address,uint256)\":{\"details\":\"Allows the owner to grant `user` `roles`. If the `user` already has a role, then it will be an no-op for the role.\"},\"hasAllRoles(address,uint256)\":{\"details\":\"Returns whether `user` has all of `roles`.\"},\"hasAnyRole(address,uint256)\":{\"details\":\"Returns whether `user` has any of `roles`.\"},\"initialize(string,string,address)\":{\"params\":{\"minter_\":\"The initial holder of the minter role\",\"name_\":\"The name of the token\",\"symbol_\":\"The symbol of the token\"}},\"issue(address,uint256)\":{\"params\":{\"amount\":\"The amount of points to issue\",\"to\":\"The address to assign the points to\"}},\"name()\":{\"details\":\"Returns the name of the token.\",\"returns\":{\"_0\":\"The name of the token\"}},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRoles(uint256)\":{\"details\":\"Allow the caller to remove their own roles. If the caller does not have a role, then it will be an no-op for the role.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRoles(address,uint256)\":{\"details\":\"Allows the owner to remove `user` `roles`. If the `user` does not have a role, then it will be an no-op for the role.\"},\"rolesOf(address)\":{\"details\":\"Returns the roles of `user`.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\",\"returns\":{\"_0\":\"The symbol of the token\"}},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"}},\"title\":\"Points\",\"version\":1},\"userdoc\":{\"errors\":{\"NonTransferable()\":[{\"notice\":\"Thrown when an attempt is made to transfer points\"}]},\"kind\":\"user\",\"methods\":{\"ISSUER_ROLE()\":{\"notice\":\"The role for issuing points\"},\"initialize(string,string,address)\":{\"notice\":\"Initialize the Points contract\"},\"issue(address,uint256)\":{\"notice\":\"Issue `amount` points and assign them to `to`\"}},\"notice\":\"A soulbound token that can be used to track points on-chain. Points are permanently assigned to an address and cannot be transferred.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/tokens/Points.sol\":\"Points\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/auth/OwnableRoles.sol\":{\"keccak256\":\"0xd797b6f74f6421d77d74cda55d494470495264ab100cff82a71ff2297d4870e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7504f97d8d3a908802f40fabbb4dcfcbf8e008b627be57f14ee84b67e0d9f3c\",\"dweb:/ipfs/QmXYrdhsYTGDqBdSvvyXQNVpZRAPYXdCcERG8DDPXZY67L\"]},\"@solady/tokens/ERC20.sol\":{\"keccak256\":\"0xb4a3f9ba8a05107f7370de42cff57f3ad26dafd438712c11531a5892de2f59e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f0a9ca06e3cf6dea1f9a4c5599581573b7d81cd64dc3afb582f325ccf5fdd6dc\",\"dweb:/ipfs/Qmb9r5dDceNF4W8S5u6i85RsNTgE5XG9HbTXkyS25ad3C6\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/tokens/Points.sol\":{\"keccak256\":\"0xcc98ecdde8946dc7233d8c5177b387f72b5ec8c401faebd3db23e95822c08895\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fdbae50eda5684f34bbcc248a7877c23ac4eadc91349ed09ad368ba0ac9dcdf\",\"dweb:/ipfs/QmZbqpDEdW2d9r2fPzF8fdT42Vi6GJpRFdNv47qoB6U5F8\"]}},\"version\":1}"}},"contracts/validators/ASignerValidator.sol":{"ASignerValidator":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Replayed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"signers_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","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":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","signers(address)":"736c0d5b","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Replayed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signers_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"params\":{\"authorized_\":\"The authorized status of each signer\",\"signers_\":\"The list of signers to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer\",\"params\":{\"data_\":\"The data payload for the validation check\"},\"returns\":{\"_0\":\"True if the action has been validated based on the data payload\"}}},\"stateVariables\":{\"_used\":{\"details\":\"The set of used hashes (for replay protection)\"},\"signers\":{\"details\":\"The set of authorized signers\"}},\"title\":\"Signer Validator\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"Replayed(address,bytes32,bytes)\":[{\"notice\":\"Thrown when a previously used signature is replayed\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of a signer\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"}},\"notice\":\"A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/validators/ASignerValidator.sol\":\"ASignerValidator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x7a7acc59723ed291f24d9a2ed019109c8be69f32701f35f8a61dc7fff6652379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bab15a03dfca0567d7472933ee4e776fc21f9dfb6c4dbc06934fa75eceeff5e\",\"dweb:/ipfs/QmPUuKsRwpZXz15DpsoJMMPN9DtZiRvMfwjqJScxkppNsP\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/ASignerValidator.sol\":{\"keccak256\":\"0x4c0b49d764c030d464afa662e4cdd7ab95062ed0e8848f0693279d20f758fa29\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c2d3c35e220b1788e295ee279d52d58095018321a4e962928afa066bf869ce1\",\"dweb:/ipfs/QmfHXC8domhuHxKtM7FBaaXLVWPpmMN7q4t475JtTFbHxb\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/validators/SignerValidator.sol":{"SignerValidator":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Replayed","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"signers_","type":"address[]"},{"internalType":"bool[]","name":"authorized_","type":"bool[]"}],"name":"setAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"signers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_19006":{"entryPoint":null,"id":19006,"parameterSlots":0,"returnSlots":0},"@_19084":{"entryPoint":null,"id":19084,"parameterSlots":0,"returnSlots":0},"@_disableInitializers_9184":{"entryPoint":270,"id":9184,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":378,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":382,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":50,"id":6288,"parameterSlots":1,"returnSlots":0}},"generatedSources":[],"linkReferences":{},"object":"608060405234801561000f575f80fd5b5061001f3361003260201b60201c565b61002d61010e60201b60201c565b6101a7565b61004061017a60201b60201c565b156100b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561007a57630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35061010b565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b5f61011d61017e60201b60201c565b9050805460018116156101375763f92ee8a95f526004601cfd5b8160c01c808260011c14610175578060011b8355806020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b611500806101b45f395ff3fe6080604052600436106100c1575f3560e01c8063715018a61161007e578063c16e50ef11610058578063c16e50ef146101ff578063f04e283e1461023b578063f2fde38b14610257578063fee81cf414610273576100c1565b8063715018a61461018f578063736c0d5b146101995780638da5cb5b146101d5576100c1565b806301ffc9a7146100c5578063256929621461010157806328d6183b1461010b5780634359d28a14610135578063439fab911461015d57806354d1f13d14610185575b5f80fd5b3480156100d0575f80fd5b506100eb60048036038101906100e69190610d4c565b6102af565b6040516100f89190610d91565b60405180910390f35b610109610328565b005b348015610116575f80fd5b5061011f610379565b60405161012c9190610db9565b60405180910390f35b348015610140575f80fd5b5061015b60048036038101906101569190610e88565b6103a0565b005b348015610168575f80fd5b50610183600480360381019061017e9190610f5b565b6104a9565b005b61018d6105dc565b005b610197610615565b005b3480156101a4575f80fd5b506101bf60048036038101906101ba9190611000565b610628565b6040516101cc9190610d91565b60405180910390f35b3480156101e0575f80fd5b506101e9610644565b6040516101f6919061103a565b60405180910390f35b34801561020a575f80fd5b5061022560048036038101906102209190610f5b565b61066c565b6040516102329190610d91565b60405180910390f35b61025560048036038101906102509190611000565b6107ce565b005b610271600480360381019061026c9190611000565b61080c565b005b34801561027e575f80fd5b5061029960048036038101906102949190611000565b610835565b6040516102a6919061106b565b60405180910390f35b5f7fd8725ea2000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061032157506103208261084e565b5b9050919050565b5f6103316108c7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fd8725ea200000000000000000000000000000000000000000000000000000000905090565b6103a86108d1565b8181905084849050146103e7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156104a25782828281811061040757610406611084565b5b905060200201602081019061041c91906110db565b5f8087878581811061043157610430611084565b5b90506020020160208101906104469190611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506103e9565b5050505050565b5f6104b2610908565b905080546003825580156104e45760018160011c14303b106104db5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104f5919061124e565b905061051a815f8151811061050d5761050c611084565b5b6020026020010151610931565b5f5b81518110156105a05760015f8084848151811061053c5761053b611084565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061051c565b505080156105d7576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61061d6108d1565b6106265f610a07565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f80858581019061067f91906113b3565b9250925092505f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015f8381526020019081526020015f205f9054906101000a900460ff1615610768578282826040517fcde6ac8700000000000000000000000000000000000000000000000000000000815260040161075f9392919061148e565b60405180910390fd5b6001805f8481526020019081526020015f205f6101000a81548160ff0219169083151502179055506107c361079c83610acd565b828573ffffffffffffffffffffffffffffffffffffffff16610afd9092919063ffffffff16565b935050505092915050565b6107d66108d1565b63389a75e1600c52805f526020600c2080544211156107fc57636f5e88185f526004601cfd5b5f81555061080981610a07565b50565b6108146108d1565b8060601b61082957637448fbae5f526004601cfd5b61083281610a07565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe8478173000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c057506108bf82610c00565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610906576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610939610c79565b156109b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561097357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610a04565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610a0f610c79565b15610a74577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610aca565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f816020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c6004209050919050565b5f8360601b60601c93508315610bf957604051835f5260208301516040526040835103610b6a576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610b6757600193505f60605282604052505050610bf9565b50505b6041835103610bb05760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610bae57600192505f606052816040525050610bf9565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c725750610c7182610c7d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d2b81610cf7565b8114610d35575f80fd5b50565b5f81359050610d4681610d22565b92915050565b5f60208284031215610d6157610d60610cef565b5b5f610d6e84828501610d38565b91505092915050565b5f8115159050919050565b610d8b81610d77565b82525050565b5f602082019050610da45f830184610d82565b92915050565b610db381610cf7565b82525050565b5f602082019050610dcc5f830184610daa565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610df357610df2610dd2565b5b8235905067ffffffffffffffff811115610e1057610e0f610dd6565b5b602083019150836020820283011115610e2c57610e2b610dda565b5b9250929050565b5f8083601f840112610e4857610e47610dd2565b5b8235905067ffffffffffffffff811115610e6557610e64610dd6565b5b602083019150836020820283011115610e8157610e80610dda565b5b9250929050565b5f805f8060408587031215610ea057610e9f610cef565b5b5f85013567ffffffffffffffff811115610ebd57610ebc610cf3565b5b610ec987828801610dde565b9450945050602085013567ffffffffffffffff811115610eec57610eeb610cf3565b5b610ef887828801610e33565b925092505092959194509250565b5f8083601f840112610f1b57610f1a610dd2565b5b8235905067ffffffffffffffff811115610f3857610f37610dd6565b5b602083019150836001820283011115610f5457610f53610dda565b5b9250929050565b5f8060208385031215610f7157610f70610cef565b5b5f83013567ffffffffffffffff811115610f8e57610f8d610cf3565b5b610f9a85828601610f06565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610fcf82610fa6565b9050919050565b610fdf81610fc5565b8114610fe9575f80fd5b50565b5f81359050610ffa81610fd6565b92915050565b5f6020828403121561101557611014610cef565b5b5f61102284828501610fec565b91505092915050565b61103481610fc5565b82525050565b5f60208201905061104d5f83018461102b565b92915050565b5f819050919050565b61106581611053565b82525050565b5f60208201905061107e5f83018461105c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6110ba81610d77565b81146110c4575f80fd5b50565b5f813590506110d5816110b1565b92915050565b5f602082840312156110f0576110ef610cef565b5b5f6110fd848285016110c7565b91505092915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61114c82611106565b810181811067ffffffffffffffff8211171561116b5761116a611116565b5b80604052505050565b5f61117d610ce6565b90506111898282611143565b919050565b5f67ffffffffffffffff8211156111a8576111a7611116565b5b602082029050602081019050919050565b5f6111cb6111c68461118e565b611174565b905080838252602082019050602084028301858111156111ee576111ed610dda565b5b835b8181101561121757806112038882610fec565b8452602084019350506020810190506111f0565b5050509392505050565b5f82601f83011261123557611234610dd2565b5b81356112458482602086016111b9565b91505092915050565b5f6020828403121561126357611262610cef565b5b5f82013567ffffffffffffffff8111156112805761127f610cf3565b5b61128c84828501611221565b91505092915050565b5f61129f82610fa6565b9050919050565b6112af81611295565b81146112b9575f80fd5b50565b5f813590506112ca816112a6565b92915050565b5f819050919050565b6112e2816112d0565b81146112ec575f80fd5b50565b5f813590506112fd816112d9565b92915050565b5f80fd5b5f67ffffffffffffffff82111561132157611320611116565b5b61132a82611106565b9050602081019050919050565b828183375f83830152505050565b5f61135761135284611307565b611174565b90508281526020810184848401111561137357611372611303565b5b61137e848285611337565b509392505050565b5f82601f83011261139a57611399610dd2565b5b81356113aa848260208601611345565b91505092915050565b5f805f606084860312156113ca576113c9610cef565b5b5f6113d7868287016112bc565b93505060206113e8868287016112ef565b925050604084013567ffffffffffffffff81111561140957611408610cf3565b5b61141586828701611386565b9150509250925092565b611428816112d0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6114608261142e565b61146a8185611438565b935061147a818560208601611448565b61148381611106565b840191505092915050565b5f6060820190506114a15f83018661102b565b6114ae602083018561141f565b81810360408301526114c08184611456565b905094935050505056fea2646970667358221220666111ccdc99c406bbcb33828fd4477a7ddb19e585e60d2bfc5ccc4ee9d1b84e64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F CALLER PUSH2 0x32 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x2D PUSH2 0x10E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1A7 JUMP JUMPDEST PUSH2 0x40 PUSH2 0x17A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0xB8 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x7A JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0x10B JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH2 0x11D PUSH2 0x17E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x1 DUP2 AND ISZERO PUSH2 0x137 JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0xC0 SHR DUP1 DUP3 PUSH1 0x1 SHR EQ PUSH2 0x175 JUMPI DUP1 PUSH1 0x1 SHL DUP4 SSTORE DUP1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x1500 DUP1 PUSH2 0x1B4 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0xC16E50EF GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x273 JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1D5 JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0xD4C JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH2 0x328 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x116 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH2 0x379 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xDB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0xE88 JUMP JUMPDEST PUSH2 0x3A0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18D PUSH2 0x5DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x197 PUSH2 0x615 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x628 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E9 PUSH2 0x644 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x66C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x271 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x294 SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x835 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A6 SWAP2 SWAP1 PUSH2 0x106B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xD8725EA200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x321 JUMPI POP PUSH2 0x320 DUP3 PUSH2 0x84E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x8C7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xD8725EA200000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x3A8 PUSH2 0x8D1 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x3E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x4A2 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x407 JUMPI PUSH2 0x406 PUSH2 0x1084 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x41C SWAP2 SWAP1 PUSH2 0x10DB JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x431 JUMPI PUSH2 0x430 PUSH2 0x1084 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x446 SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x3E9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4B2 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4DB JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4F5 SWAP2 SWAP1 PUSH2 0x124E JUMP JUMPDEST SWAP1 POP PUSH2 0x51A DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x1084 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x931 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x5A0 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x53C JUMPI PUSH2 0x53B PUSH2 0x1084 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x51C JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x61D PUSH2 0x8D1 JUMP JUMPDEST PUSH2 0x626 PUSH0 PUSH2 0xA07 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 DUP6 DUP6 DUP2 ADD SWAP1 PUSH2 0x67F SWAP2 SWAP1 PUSH2 0x13B3 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x704 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x768 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xCDE6AC8700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x148E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x7C3 PUSH2 0x79C DUP4 PUSH2 0xACD JUMP JUMPDEST DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAFD SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x8D1 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x7FC JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x809 DUP2 PUSH2 0xA07 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x814 PUSH2 0x8D1 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x829 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x832 DUP2 PUSH2 0xA07 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8C0 JUMPI POP PUSH2 0x8BF DUP3 PUSH2 0xC00 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x906 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x939 PUSH2 0xC79 JUMP JUMPDEST ISZERO PUSH2 0x9B1 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x973 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xA04 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xA0F PUSH2 0xC79 JUMP JUMPDEST ISZERO PUSH2 0xA74 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xACA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH28 0x19457468657265756D205369676E6564204D6573736167653A0A3332 PUSH0 MSTORE PUSH1 0x3C PUSH1 0x4 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP4 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP4 POP DUP4 ISZERO PUSH2 0xBF9 JUMPI PUSH1 0x40 MLOAD DUP4 PUSH0 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MSTORE PUSH1 0x40 DUP4 MLOAD SUB PUSH2 0xB6A JUMPI PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x1B DUP2 PUSH1 0xFF SHR ADD PUSH1 0x20 MSTORE DUP1 PUSH1 0x1 SHL PUSH1 0x1 SHR PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP8 XOR RETURNDATASIZE ISZERO OR PUSH2 0xB67 JUMPI PUSH1 0x1 SWAP4 POP PUSH0 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE POP POP POP PUSH2 0xBF9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x41 DUP4 MLOAD SUB PUSH2 0xBB0 JUMPI PUSH1 0x60 DUP4 ADD MLOAD PUSH0 BYTE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP7 XOR RETURNDATASIZE ISZERO OR PUSH2 0xBAE JUMPI PUSH1 0x1 SWAP3 POP PUSH0 PUSH1 0x60 MSTORE DUP2 PUSH1 0x40 MSTORE POP POP PUSH2 0xBF9 JUMP JUMPDEST POP JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP1 DUP3 MSTORE DUP5 PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD PUSH1 0x40 DUP2 MSTORE DUP5 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x44 DUP6 ADD DUP3 DUP9 PUSH1 0x4 GAS STATICCALL POP PUSH1 0x20 DUP3 PUSH1 0x44 RETURNDATASIZE ADD DUP7 DUP12 GAS STATICCALL DUP4 DUP4 MLOAD EQ AND SWAP5 POP POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC72 JUMPI POP PUSH2 0xC71 DUP3 PUSH2 0xC7D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP2 EQ PUSH2 0xD35 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD46 DUP2 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP5 DUP3 DUP6 ADD PUSH2 0xD38 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD8B DUP2 PUSH2 0xD77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA4 PUSH0 DUP4 ADD DUP5 PUSH2 0xD82 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDB3 DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDCC PUSH0 DUP4 ADD DUP5 PUSH2 0xDAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDF3 JUMPI PUSH2 0xDF2 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE10 JUMPI PUSH2 0xE0F PUSH2 0xDD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE2C JUMPI PUSH2 0xE2B PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE48 JUMPI PUSH2 0xE47 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE65 JUMPI PUSH2 0xE64 PUSH2 0xDD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEBD JUMPI PUSH2 0xEBC PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0xEC9 DUP8 DUP3 DUP9 ADD PUSH2 0xDDE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEEC JUMPI PUSH2 0xEEB PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0xEF8 DUP8 DUP3 DUP9 ADD PUSH2 0xE33 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF1B JUMPI PUSH2 0xF1A PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF38 JUMPI PUSH2 0xF37 PUSH2 0xDD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF54 JUMPI PUSH2 0xF53 PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF71 JUMPI PUSH2 0xF70 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF8E JUMPI PUSH2 0xF8D PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0xF9A DUP6 DUP3 DUP7 ADD PUSH2 0xF06 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFCF DUP3 PUSH2 0xFA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFDF DUP2 PUSH2 0xFC5 JUMP JUMPDEST DUP2 EQ PUSH2 0xFE9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFFA DUP2 PUSH2 0xFD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1015 JUMPI PUSH2 0x1014 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1022 DUP5 DUP3 DUP6 ADD PUSH2 0xFEC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1034 DUP2 PUSH2 0xFC5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x104D PUSH0 DUP4 ADD DUP5 PUSH2 0x102B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1065 DUP2 PUSH2 0x1053 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x107E PUSH0 DUP4 ADD DUP5 PUSH2 0x105C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x10BA DUP2 PUSH2 0xD77 JUMP JUMPDEST DUP2 EQ PUSH2 0x10C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10D5 DUP2 PUSH2 0x10B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10FD DUP5 DUP3 DUP6 ADD PUSH2 0x10C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x114C DUP3 PUSH2 0x1106 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x116B JUMPI PUSH2 0x116A PUSH2 0x1116 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x117D PUSH2 0xCE6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1189 DUP3 DUP3 PUSH2 0x1143 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11A8 JUMPI PUSH2 0x11A7 PUSH2 0x1116 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11CB PUSH2 0x11C6 DUP5 PUSH2 0x118E JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x11EE JUMPI PUSH2 0x11ED PUSH2 0xDDA JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1217 JUMPI DUP1 PUSH2 0x1203 DUP9 DUP3 PUSH2 0xFEC JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x11F0 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1235 JUMPI PUSH2 0x1234 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1245 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x11B9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1263 JUMPI PUSH2 0x1262 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1280 JUMPI PUSH2 0x127F PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0x128C DUP5 DUP3 DUP6 ADD PUSH2 0x1221 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x129F DUP3 PUSH2 0xFA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12AF DUP2 PUSH2 0x1295 JUMP JUMPDEST DUP2 EQ PUSH2 0x12B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12CA DUP2 PUSH2 0x12A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E2 DUP2 PUSH2 0x12D0 JUMP JUMPDEST DUP2 EQ PUSH2 0x12EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12FD DUP2 PUSH2 0x12D9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1321 JUMPI PUSH2 0x1320 PUSH2 0x1116 JUMP JUMPDEST JUMPDEST PUSH2 0x132A DUP3 PUSH2 0x1106 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1357 PUSH2 0x1352 DUP5 PUSH2 0x1307 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1373 JUMPI PUSH2 0x1372 PUSH2 0x1303 JUMP JUMPDEST JUMPDEST PUSH2 0x137E DUP5 DUP3 DUP6 PUSH2 0x1337 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x139A JUMPI PUSH2 0x1399 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1345 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13CA JUMPI PUSH2 0x13C9 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13D7 DUP7 DUP3 DUP8 ADD PUSH2 0x12BC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x13E8 DUP7 DUP3 DUP8 ADD PUSH2 0x12EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1409 JUMPI PUSH2 0x1408 PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0x1415 DUP7 DUP3 DUP8 ADD PUSH2 0x1386 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x1428 DUP2 PUSH2 0x12D0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1460 DUP3 PUSH2 0x142E JUMP JUMPDEST PUSH2 0x146A DUP2 DUP6 PUSH2 0x1438 JUMP JUMPDEST SWAP4 POP PUSH2 0x147A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1448 JUMP JUMPDEST PUSH2 0x1483 DUP2 PUSH2 0x1106 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x14A1 PUSH0 DUP4 ADD DUP7 PUSH2 0x102B JUMP JUMPDEST PUSH2 0x14AE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x141F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x14C0 DUP2 DUP5 PUSH2 0x1456 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x6111CCDC99C406 0xBB 0xCB CALLER DUP3 DUP16 0xD4 SELFBALANCE PUSH27 0x7DDB19E585E60D2BFC5CCC4EE9D1B84E64736F6C634300081A0033 ","sourceMap":"319:878:62:-:0;;;611:53;;;;;;;;;;703:28:63;720:10;703:16;;;:28;;:::i;:::-;635:22:62;:20;;;:22;;:::i;:::-;319:878;;4883:1190:16;4958:23;:21;;;:23;;:::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6525:759:20:-;6584:9;6596:20;:18;;;:20;;:::i;:::-;6584:32;;6707:1;6701:8;6732:1;6729;6725:9;6722:134;;;6766:10;6760:4;6753:24;6837:4;6831;6824:18;6722:134;6895:1;6890:3;6886:11;6964:9;6960:1;6957;6953:9;6950:24;6940:328;;7092:9;7089:1;7085:17;7082:1;7075:28;7182:9;7176:4;7169:23;7226:27;7220:4;7214;7209:45;6940:328;6678:600;;;6525:759::o;4348:78:16:-;4412:10;4348:78;:::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;319:878:62:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_checkOwner_6308":{"entryPoint":2257,"id":6308,"parameterSlots":0,"returnSlots":0},"@_guardInitializeOwner_6274":{"entryPoint":3193,"id":6274,"parameterSlots":0,"returnSlots":1},"@_initializableSlot_9128":{"entryPoint":2312,"id":9128,"parameterSlots":0,"returnSlots":1},"@_initializeOwner_6288":{"entryPoint":2353,"id":6288,"parameterSlots":1,"returnSlots":0},"@_ownershipHandoverValidFor_6319":{"entryPoint":2247,"id":6319,"parameterSlots":0,"returnSlots":1},"@_setOwner_6302":{"entryPoint":2567,"id":6302,"parameterSlots":1,"returnSlots":0},"@cancelOwnershipHandover_6368":{"entryPoint":1500,"id":6368,"parameterSlots":0,"returnSlots":0},"@completeOwnershipHandover_6382":{"entryPoint":1998,"id":6382,"parameterSlots":1,"returnSlots":0},"@getComponentInterface_18967":{"entryPoint":889,"id":18967,"parameterSlots":0,"returnSlots":1},"@initialize_19057":{"entryPoint":1193,"id":19057,"parameterSlots":2,"returnSlots":0},"@isValidSignatureNow_11375":{"entryPoint":2813,"id":11375,"parameterSlots":3,"returnSlots":1},"@owner_6390":{"entryPoint":1604,"id":6390,"parameterSlots":0,"returnSlots":1},"@ownershipHandoverExpiresAt_6400":{"entryPoint":2101,"id":6400,"parameterSlots":1,"returnSlots":1},"@renounceOwnership_6347":{"entryPoint":1557,"id":6347,"parameterSlots":0,"returnSlots":0},"@requestOwnershipHandover_6362":{"entryPoint":808,"id":6362,"parameterSlots":0,"returnSlots":0},"@setAuthorized_18953":{"entryPoint":928,"id":18953,"parameterSlots":4,"returnSlots":0},"@signers_18836":{"entryPoint":1576,"id":18836,"parameterSlots":0,"returnSlots":0},"@supportsInterface_18508":{"entryPoint":3072,"id":18508,"parameterSlots":1,"returnSlots":1},"@supportsInterface_18990":{"entryPoint":687,"id":18990,"parameterSlots":1,"returnSlots":1},"@supportsInterface_19115":{"entryPoint":2126,"id":19115,"parameterSlots":1,"returnSlots":1},"@supportsInterface_2830":{"entryPoint":3197,"id":2830,"parameterSlots":1,"returnSlots":1},"@toEthSignedMessageHash_11495":{"entryPoint":2765,"id":11495,"parameterSlots":1,"returnSlots":1},"@transferOwnership_6333":{"entryPoint":2060,"id":6333,"parameterSlots":1,"returnSlots":0},"@validate_18906":{"entryPoint":1644,"id":18906,"parameterSlots":2,"returnSlots":1},"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4537,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":4933,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":4076,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_address_payable":{"entryPoint":4796,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_address_$dyn_calldata_ptr":{"entryPoint":3550,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4641,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3635,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bool":{"entryPoint":4295,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":4847,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":3384,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_calldata_ptr":{"entryPoint":3846,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_t_bytes_memory_ptr":{"entryPoint":4998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":4096,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr":{"entryPoint":5043,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr":{"entryPoint":3720,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4686,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bool":{"entryPoint":4315,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes4":{"entryPoint":3404,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes_calldata_ptr":{"entryPoint":3931,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":4139,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":3458,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":5151,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes4_to_t_bytes4_fromStack":{"entryPoint":3498,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":5206,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":4188,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":4154,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":5262,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":3473,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed":{"entryPoint":3513,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":4203,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":4468,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":3302,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_address_$dyn_memory_ptr":{"entryPoint":4494,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":4871,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":5166,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":5176,"id":null,"parameterSlots":2,"returnSlots":1},"cleanup_t_address":{"entryPoint":4037,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_address_payable":{"entryPoint":4757,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":3447,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":4816,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":3319,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":4006,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4179,"id":null,"parameterSlots":1,"returnSlots":1},"copy_calldata_to_memory_with_cleanup":{"entryPoint":4919,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":5192,"id":null,"parameterSlots":3,"returnSlots":0},"finalize_allocation":{"entryPoint":4419,"id":null,"parameterSlots":2,"returnSlots":0},"panic_error_0x32":{"entryPoint":4228,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":4374,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490":{"entryPoint":3542,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":3538,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":3546,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":4867,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":3315,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":3311,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":4358,"id":null,"parameterSlots":1,"returnSlots":1},"validator_revert_t_address":{"entryPoint":4054,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address_payable":{"entryPoint":4774,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":4273,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":4825,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":3362,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nativeSrc":"0:14979:64","nodeType":"YulBlock","src":"0:14979:64","statements":[{"body":{"nativeSrc":"47:35:64","nodeType":"YulBlock","src":"47:35:64","statements":[{"nativeSrc":"57:19:64","nodeType":"YulAssignment","src":"57:19:64","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:64","nodeType":"YulLiteral","src":"73:2:64","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:64","nodeType":"YulIdentifier","src":"67:5:64"},"nativeSrc":"67:9:64","nodeType":"YulFunctionCall","src":"67:9:64"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:64","nodeType":"YulIdentifier","src":"57:6:64"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:64","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:64","nodeType":"YulTypedName","src":"40:6:64","type":""}],"src":"7:75:64"},{"body":{"nativeSrc":"177:28:64","nodeType":"YulBlock","src":"177:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:64","nodeType":"YulLiteral","src":"194:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:64","nodeType":"YulLiteral","src":"197:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:64","nodeType":"YulIdentifier","src":"187:6:64"},"nativeSrc":"187:12:64","nodeType":"YulFunctionCall","src":"187:12:64"},"nativeSrc":"187:12:64","nodeType":"YulExpressionStatement","src":"187:12:64"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:64","nodeType":"YulFunctionDefinition","src":"88:117:64"},{"body":{"nativeSrc":"300:28:64","nodeType":"YulBlock","src":"300:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:64","nodeType":"YulLiteral","src":"317:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:64","nodeType":"YulLiteral","src":"320:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:64","nodeType":"YulIdentifier","src":"310:6:64"},"nativeSrc":"310:12:64","nodeType":"YulFunctionCall","src":"310:12:64"},"nativeSrc":"310:12:64","nodeType":"YulExpressionStatement","src":"310:12:64"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:64","nodeType":"YulFunctionDefinition","src":"211:117:64"},{"body":{"nativeSrc":"378:105:64","nodeType":"YulBlock","src":"378:105:64","statements":[{"nativeSrc":"388:89:64","nodeType":"YulAssignment","src":"388:89:64","value":{"arguments":[{"name":"value","nativeSrc":"403:5:64","nodeType":"YulIdentifier","src":"403:5:64"},{"kind":"number","nativeSrc":"410:66:64","nodeType":"YulLiteral","src":"410:66:64","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:64","nodeType":"YulIdentifier","src":"399:3:64"},"nativeSrc":"399:78:64","nodeType":"YulFunctionCall","src":"399:78:64"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:64","nodeType":"YulIdentifier","src":"388:7:64"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:64","nodeType":"YulTypedName","src":"360:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:64","nodeType":"YulTypedName","src":"370:7:64","type":""}],"src":"334:149:64"},{"body":{"nativeSrc":"531:78:64","nodeType":"YulBlock","src":"531:78:64","statements":[{"body":{"nativeSrc":"587:16:64","nodeType":"YulBlock","src":"587:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:64","nodeType":"YulLiteral","src":"596:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:64","nodeType":"YulLiteral","src":"599:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:64","nodeType":"YulIdentifier","src":"589:6:64"},"nativeSrc":"589:12:64","nodeType":"YulFunctionCall","src":"589:12:64"},"nativeSrc":"589:12:64","nodeType":"YulExpressionStatement","src":"589:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:64","nodeType":"YulIdentifier","src":"554:5:64"},{"arguments":[{"name":"value","nativeSrc":"578:5:64","nodeType":"YulIdentifier","src":"578:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:64","nodeType":"YulIdentifier","src":"561:16:64"},"nativeSrc":"561:23:64","nodeType":"YulFunctionCall","src":"561:23:64"}],"functionName":{"name":"eq","nativeSrc":"551:2:64","nodeType":"YulIdentifier","src":"551:2:64"},"nativeSrc":"551:34:64","nodeType":"YulFunctionCall","src":"551:34:64"}],"functionName":{"name":"iszero","nativeSrc":"544:6:64","nodeType":"YulIdentifier","src":"544:6:64"},"nativeSrc":"544:42:64","nodeType":"YulFunctionCall","src":"544:42:64"},"nativeSrc":"541:62:64","nodeType":"YulIf","src":"541:62:64"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:64","nodeType":"YulTypedName","src":"524:5:64","type":""}],"src":"489:120:64"},{"body":{"nativeSrc":"666:86:64","nodeType":"YulBlock","src":"666:86:64","statements":[{"nativeSrc":"676:29:64","nodeType":"YulAssignment","src":"676:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:64","nodeType":"YulIdentifier","src":"698:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:64","nodeType":"YulIdentifier","src":"685:12:64"},"nativeSrc":"685:20:64","nodeType":"YulFunctionCall","src":"685:20:64"},"variableNames":[{"name":"value","nativeSrc":"676:5:64","nodeType":"YulIdentifier","src":"676:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:64","nodeType":"YulIdentifier","src":"740:5:64"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:64","nodeType":"YulIdentifier","src":"714:25:64"},"nativeSrc":"714:32:64","nodeType":"YulFunctionCall","src":"714:32:64"},"nativeSrc":"714:32:64","nodeType":"YulExpressionStatement","src":"714:32:64"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:64","nodeType":"YulTypedName","src":"644:6:64","type":""},{"name":"end","nativeSrc":"652:3:64","nodeType":"YulTypedName","src":"652:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:64","nodeType":"YulTypedName","src":"660:5:64","type":""}],"src":"615:137:64"},{"body":{"nativeSrc":"823:262:64","nodeType":"YulBlock","src":"823:262:64","statements":[{"body":{"nativeSrc":"869:83:64","nodeType":"YulBlock","src":"869:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:64","nodeType":"YulIdentifier","src":"871:77:64"},"nativeSrc":"871:79:64","nodeType":"YulFunctionCall","src":"871:79:64"},"nativeSrc":"871:79:64","nodeType":"YulExpressionStatement","src":"871:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:64","nodeType":"YulIdentifier","src":"844:7:64"},{"name":"headStart","nativeSrc":"853:9:64","nodeType":"YulIdentifier","src":"853:9:64"}],"functionName":{"name":"sub","nativeSrc":"840:3:64","nodeType":"YulIdentifier","src":"840:3:64"},"nativeSrc":"840:23:64","nodeType":"YulFunctionCall","src":"840:23:64"},{"kind":"number","nativeSrc":"865:2:64","nodeType":"YulLiteral","src":"865:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:64","nodeType":"YulIdentifier","src":"836:3:64"},"nativeSrc":"836:32:64","nodeType":"YulFunctionCall","src":"836:32:64"},"nativeSrc":"833:119:64","nodeType":"YulIf","src":"833:119:64"},{"nativeSrc":"962:116:64","nodeType":"YulBlock","src":"962:116:64","statements":[{"nativeSrc":"977:15:64","nodeType":"YulVariableDeclaration","src":"977:15:64","value":{"kind":"number","nativeSrc":"991:1:64","nodeType":"YulLiteral","src":"991:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:64","nodeType":"YulTypedName","src":"981:6:64","type":""}]},{"nativeSrc":"1006:62:64","nodeType":"YulAssignment","src":"1006:62:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:64","nodeType":"YulIdentifier","src":"1040:9:64"},{"name":"offset","nativeSrc":"1051:6:64","nodeType":"YulIdentifier","src":"1051:6:64"}],"functionName":{"name":"add","nativeSrc":"1036:3:64","nodeType":"YulIdentifier","src":"1036:3:64"},"nativeSrc":"1036:22:64","nodeType":"YulFunctionCall","src":"1036:22:64"},{"name":"dataEnd","nativeSrc":"1060:7:64","nodeType":"YulIdentifier","src":"1060:7:64"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:64","nodeType":"YulIdentifier","src":"1016:19:64"},"nativeSrc":"1016:52:64","nodeType":"YulFunctionCall","src":"1016:52:64"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:64","nodeType":"YulIdentifier","src":"1006:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:64","nodeType":"YulTypedName","src":"793:9:64","type":""},{"name":"dataEnd","nativeSrc":"804:7:64","nodeType":"YulTypedName","src":"804:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:64","nodeType":"YulTypedName","src":"816:6:64","type":""}],"src":"758:327:64"},{"body":{"nativeSrc":"1133:48:64","nodeType":"YulBlock","src":"1133:48:64","statements":[{"nativeSrc":"1143:32:64","nodeType":"YulAssignment","src":"1143:32:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:64","nodeType":"YulIdentifier","src":"1168:5:64"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:64","nodeType":"YulIdentifier","src":"1161:6:64"},"nativeSrc":"1161:13:64","nodeType":"YulFunctionCall","src":"1161:13:64"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:64","nodeType":"YulIdentifier","src":"1154:6:64"},"nativeSrc":"1154:21:64","nodeType":"YulFunctionCall","src":"1154:21:64"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:64","nodeType":"YulIdentifier","src":"1143:7:64"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:64","nodeType":"YulTypedName","src":"1115:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:64","nodeType":"YulTypedName","src":"1125:7:64","type":""}],"src":"1091:90:64"},{"body":{"nativeSrc":"1246:50:64","nodeType":"YulBlock","src":"1246:50:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:64","nodeType":"YulIdentifier","src":"1263:3:64"},{"arguments":[{"name":"value","nativeSrc":"1283:5:64","nodeType":"YulIdentifier","src":"1283:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:64","nodeType":"YulIdentifier","src":"1268:14:64"},"nativeSrc":"1268:21:64","nodeType":"YulFunctionCall","src":"1268:21:64"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:64","nodeType":"YulIdentifier","src":"1256:6:64"},"nativeSrc":"1256:34:64","nodeType":"YulFunctionCall","src":"1256:34:64"},"nativeSrc":"1256:34:64","nodeType":"YulExpressionStatement","src":"1256:34:64"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:64","nodeType":"YulTypedName","src":"1234:5:64","type":""},{"name":"pos","nativeSrc":"1241:3:64","nodeType":"YulTypedName","src":"1241:3:64","type":""}],"src":"1187:109:64"},{"body":{"nativeSrc":"1394:118:64","nodeType":"YulBlock","src":"1394:118:64","statements":[{"nativeSrc":"1404:26:64","nodeType":"YulAssignment","src":"1404:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:64","nodeType":"YulIdentifier","src":"1416:9:64"},{"kind":"number","nativeSrc":"1427:2:64","nodeType":"YulLiteral","src":"1427:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:64","nodeType":"YulIdentifier","src":"1412:3:64"},"nativeSrc":"1412:18:64","nodeType":"YulFunctionCall","src":"1412:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:64","nodeType":"YulIdentifier","src":"1404:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:64","nodeType":"YulIdentifier","src":"1478:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:64","nodeType":"YulIdentifier","src":"1491:9:64"},{"kind":"number","nativeSrc":"1502:1:64","nodeType":"YulLiteral","src":"1502:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:64","nodeType":"YulIdentifier","src":"1487:3:64"},"nativeSrc":"1487:17:64","nodeType":"YulFunctionCall","src":"1487:17:64"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:64","nodeType":"YulIdentifier","src":"1440:37:64"},"nativeSrc":"1440:65:64","nodeType":"YulFunctionCall","src":"1440:65:64"},"nativeSrc":"1440:65:64","nodeType":"YulExpressionStatement","src":"1440:65:64"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:64","nodeType":"YulTypedName","src":"1366:9:64","type":""},{"name":"value0","nativeSrc":"1378:6:64","nodeType":"YulTypedName","src":"1378:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:64","nodeType":"YulTypedName","src":"1389:4:64","type":""}],"src":"1302:210:64"},{"body":{"nativeSrc":"1581:52:64","nodeType":"YulBlock","src":"1581:52:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1598:3:64","nodeType":"YulIdentifier","src":"1598:3:64"},{"arguments":[{"name":"value","nativeSrc":"1620:5:64","nodeType":"YulIdentifier","src":"1620:5:64"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"1603:16:64","nodeType":"YulIdentifier","src":"1603:16:64"},"nativeSrc":"1603:23:64","nodeType":"YulFunctionCall","src":"1603:23:64"}],"functionName":{"name":"mstore","nativeSrc":"1591:6:64","nodeType":"YulIdentifier","src":"1591:6:64"},"nativeSrc":"1591:36:64","nodeType":"YulFunctionCall","src":"1591:36:64"},"nativeSrc":"1591:36:64","nodeType":"YulExpressionStatement","src":"1591:36:64"}]},"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"1518:115:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1569:5:64","nodeType":"YulTypedName","src":"1569:5:64","type":""},{"name":"pos","nativeSrc":"1576:3:64","nodeType":"YulTypedName","src":"1576:3:64","type":""}],"src":"1518:115:64"},{"body":{"nativeSrc":"1735:122:64","nodeType":"YulBlock","src":"1735:122:64","statements":[{"nativeSrc":"1745:26:64","nodeType":"YulAssignment","src":"1745:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"1757:9:64","nodeType":"YulIdentifier","src":"1757:9:64"},{"kind":"number","nativeSrc":"1768:2:64","nodeType":"YulLiteral","src":"1768:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1753:3:64","nodeType":"YulIdentifier","src":"1753:3:64"},"nativeSrc":"1753:18:64","nodeType":"YulFunctionCall","src":"1753:18:64"},"variableNames":[{"name":"tail","nativeSrc":"1745:4:64","nodeType":"YulIdentifier","src":"1745:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1823:6:64","nodeType":"YulIdentifier","src":"1823:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"1836:9:64","nodeType":"YulIdentifier","src":"1836:9:64"},{"kind":"number","nativeSrc":"1847:1:64","nodeType":"YulLiteral","src":"1847:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1832:3:64","nodeType":"YulIdentifier","src":"1832:3:64"},"nativeSrc":"1832:17:64","nodeType":"YulFunctionCall","src":"1832:17:64"}],"functionName":{"name":"abi_encode_t_bytes4_to_t_bytes4_fromStack","nativeSrc":"1781:41:64","nodeType":"YulIdentifier","src":"1781:41:64"},"nativeSrc":"1781:69:64","nodeType":"YulFunctionCall","src":"1781:69:64"},"nativeSrc":"1781:69:64","nodeType":"YulExpressionStatement","src":"1781:69:64"}]},"name":"abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed","nativeSrc":"1639:218:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1707:9:64","nodeType":"YulTypedName","src":"1707:9:64","type":""},{"name":"value0","nativeSrc":"1719:6:64","nodeType":"YulTypedName","src":"1719:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1730:4:64","nodeType":"YulTypedName","src":"1730:4:64","type":""}],"src":"1639:218:64"},{"body":{"nativeSrc":"1952:28:64","nodeType":"YulBlock","src":"1952:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1969:1:64","nodeType":"YulLiteral","src":"1969:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"1972:1:64","nodeType":"YulLiteral","src":"1972:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1962:6:64","nodeType":"YulIdentifier","src":"1962:6:64"},"nativeSrc":"1962:12:64","nodeType":"YulFunctionCall","src":"1962:12:64"},"nativeSrc":"1962:12:64","nodeType":"YulExpressionStatement","src":"1962:12:64"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"1863:117:64","nodeType":"YulFunctionDefinition","src":"1863:117:64"},{"body":{"nativeSrc":"2075:28:64","nodeType":"YulBlock","src":"2075:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2092:1:64","nodeType":"YulLiteral","src":"2092:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2095:1:64","nodeType":"YulLiteral","src":"2095:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2085:6:64","nodeType":"YulIdentifier","src":"2085:6:64"},"nativeSrc":"2085:12:64","nodeType":"YulFunctionCall","src":"2085:12:64"},"nativeSrc":"2085:12:64","nodeType":"YulExpressionStatement","src":"2085:12:64"}]},"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"1986:117:64","nodeType":"YulFunctionDefinition","src":"1986:117:64"},{"body":{"nativeSrc":"2198:28:64","nodeType":"YulBlock","src":"2198:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2215:1:64","nodeType":"YulLiteral","src":"2215:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"2218:1:64","nodeType":"YulLiteral","src":"2218:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2208:6:64","nodeType":"YulIdentifier","src":"2208:6:64"},"nativeSrc":"2208:12:64","nodeType":"YulFunctionCall","src":"2208:12:64"},"nativeSrc":"2208:12:64","nodeType":"YulExpressionStatement","src":"2208:12:64"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2109:117:64","nodeType":"YulFunctionDefinition","src":"2109:117:64"},{"body":{"nativeSrc":"2339:478:64","nodeType":"YulBlock","src":"2339:478:64","statements":[{"body":{"nativeSrc":"2388:83:64","nodeType":"YulBlock","src":"2388:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2390:77:64","nodeType":"YulIdentifier","src":"2390:77:64"},"nativeSrc":"2390:79:64","nodeType":"YulFunctionCall","src":"2390:79:64"},"nativeSrc":"2390:79:64","nodeType":"YulExpressionStatement","src":"2390:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2367:6:64","nodeType":"YulIdentifier","src":"2367:6:64"},{"kind":"number","nativeSrc":"2375:4:64","nodeType":"YulLiteral","src":"2375:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2363:3:64","nodeType":"YulIdentifier","src":"2363:3:64"},"nativeSrc":"2363:17:64","nodeType":"YulFunctionCall","src":"2363:17:64"},{"name":"end","nativeSrc":"2382:3:64","nodeType":"YulIdentifier","src":"2382:3:64"}],"functionName":{"name":"slt","nativeSrc":"2359:3:64","nodeType":"YulIdentifier","src":"2359:3:64"},"nativeSrc":"2359:27:64","nodeType":"YulFunctionCall","src":"2359:27:64"}],"functionName":{"name":"iszero","nativeSrc":"2352:6:64","nodeType":"YulIdentifier","src":"2352:6:64"},"nativeSrc":"2352:35:64","nodeType":"YulFunctionCall","src":"2352:35:64"},"nativeSrc":"2349:122:64","nodeType":"YulIf","src":"2349:122:64"},{"nativeSrc":"2480:30:64","nodeType":"YulAssignment","src":"2480:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"2503:6:64","nodeType":"YulIdentifier","src":"2503:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"2490:12:64","nodeType":"YulIdentifier","src":"2490:12:64"},"nativeSrc":"2490:20:64","nodeType":"YulFunctionCall","src":"2490:20:64"},"variableNames":[{"name":"length","nativeSrc":"2480:6:64","nodeType":"YulIdentifier","src":"2480:6:64"}]},{"body":{"nativeSrc":"2553:83:64","nodeType":"YulBlock","src":"2553:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"2555:77:64","nodeType":"YulIdentifier","src":"2555:77:64"},"nativeSrc":"2555:79:64","nodeType":"YulFunctionCall","src":"2555:79:64"},"nativeSrc":"2555:79:64","nodeType":"YulExpressionStatement","src":"2555:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2525:6:64","nodeType":"YulIdentifier","src":"2525:6:64"},{"kind":"number","nativeSrc":"2533:18:64","nodeType":"YulLiteral","src":"2533:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2522:2:64","nodeType":"YulIdentifier","src":"2522:2:64"},"nativeSrc":"2522:30:64","nodeType":"YulFunctionCall","src":"2522:30:64"},"nativeSrc":"2519:117:64","nodeType":"YulIf","src":"2519:117:64"},{"nativeSrc":"2645:29:64","nodeType":"YulAssignment","src":"2645:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"2661:6:64","nodeType":"YulIdentifier","src":"2661:6:64"},{"kind":"number","nativeSrc":"2669:4:64","nodeType":"YulLiteral","src":"2669:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2657:3:64","nodeType":"YulIdentifier","src":"2657:3:64"},"nativeSrc":"2657:17:64","nodeType":"YulFunctionCall","src":"2657:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"2645:8:64","nodeType":"YulIdentifier","src":"2645:8:64"}]},{"body":{"nativeSrc":"2728:83:64","nodeType":"YulBlock","src":"2728:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"2730:77:64","nodeType":"YulIdentifier","src":"2730:77:64"},"nativeSrc":"2730:79:64","nodeType":"YulFunctionCall","src":"2730:79:64"},"nativeSrc":"2730:79:64","nodeType":"YulExpressionStatement","src":"2730:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"2693:8:64","nodeType":"YulIdentifier","src":"2693:8:64"},{"arguments":[{"name":"length","nativeSrc":"2707:6:64","nodeType":"YulIdentifier","src":"2707:6:64"},{"kind":"number","nativeSrc":"2715:4:64","nodeType":"YulLiteral","src":"2715:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"2703:3:64","nodeType":"YulIdentifier","src":"2703:3:64"},"nativeSrc":"2703:17:64","nodeType":"YulFunctionCall","src":"2703:17:64"}],"functionName":{"name":"add","nativeSrc":"2689:3:64","nodeType":"YulIdentifier","src":"2689:3:64"},"nativeSrc":"2689:32:64","nodeType":"YulFunctionCall","src":"2689:32:64"},{"name":"end","nativeSrc":"2723:3:64","nodeType":"YulIdentifier","src":"2723:3:64"}],"functionName":{"name":"gt","nativeSrc":"2686:2:64","nodeType":"YulIdentifier","src":"2686:2:64"},"nativeSrc":"2686:41:64","nodeType":"YulFunctionCall","src":"2686:41:64"},"nativeSrc":"2683:128:64","nodeType":"YulIf","src":"2683:128:64"}]},"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"2249:568:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2306:6:64","nodeType":"YulTypedName","src":"2306:6:64","type":""},{"name":"end","nativeSrc":"2314:3:64","nodeType":"YulTypedName","src":"2314:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2322:8:64","nodeType":"YulTypedName","src":"2322:8:64","type":""},{"name":"length","nativeSrc":"2332:6:64","nodeType":"YulTypedName","src":"2332:6:64","type":""}],"src":"2249:568:64"},{"body":{"nativeSrc":"2924:478:64","nodeType":"YulBlock","src":"2924:478:64","statements":[{"body":{"nativeSrc":"2973:83:64","nodeType":"YulBlock","src":"2973:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2975:77:64","nodeType":"YulIdentifier","src":"2975:77:64"},"nativeSrc":"2975:79:64","nodeType":"YulFunctionCall","src":"2975:79:64"},"nativeSrc":"2975:79:64","nodeType":"YulExpressionStatement","src":"2975:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2952:6:64","nodeType":"YulIdentifier","src":"2952:6:64"},{"kind":"number","nativeSrc":"2960:4:64","nodeType":"YulLiteral","src":"2960:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"2948:3:64","nodeType":"YulIdentifier","src":"2948:3:64"},"nativeSrc":"2948:17:64","nodeType":"YulFunctionCall","src":"2948:17:64"},{"name":"end","nativeSrc":"2967:3:64","nodeType":"YulIdentifier","src":"2967:3:64"}],"functionName":{"name":"slt","nativeSrc":"2944:3:64","nodeType":"YulIdentifier","src":"2944:3:64"},"nativeSrc":"2944:27:64","nodeType":"YulFunctionCall","src":"2944:27:64"}],"functionName":{"name":"iszero","nativeSrc":"2937:6:64","nodeType":"YulIdentifier","src":"2937:6:64"},"nativeSrc":"2937:35:64","nodeType":"YulFunctionCall","src":"2937:35:64"},"nativeSrc":"2934:122:64","nodeType":"YulIf","src":"2934:122:64"},{"nativeSrc":"3065:30:64","nodeType":"YulAssignment","src":"3065:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"3088:6:64","nodeType":"YulIdentifier","src":"3088:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"3075:12:64","nodeType":"YulIdentifier","src":"3075:12:64"},"nativeSrc":"3075:20:64","nodeType":"YulFunctionCall","src":"3075:20:64"},"variableNames":[{"name":"length","nativeSrc":"3065:6:64","nodeType":"YulIdentifier","src":"3065:6:64"}]},{"body":{"nativeSrc":"3138:83:64","nodeType":"YulBlock","src":"3138:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"3140:77:64","nodeType":"YulIdentifier","src":"3140:77:64"},"nativeSrc":"3140:79:64","nodeType":"YulFunctionCall","src":"3140:79:64"},"nativeSrc":"3140:79:64","nodeType":"YulExpressionStatement","src":"3140:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3110:6:64","nodeType":"YulIdentifier","src":"3110:6:64"},{"kind":"number","nativeSrc":"3118:18:64","nodeType":"YulLiteral","src":"3118:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3107:2:64","nodeType":"YulIdentifier","src":"3107:2:64"},"nativeSrc":"3107:30:64","nodeType":"YulFunctionCall","src":"3107:30:64"},"nativeSrc":"3104:117:64","nodeType":"YulIf","src":"3104:117:64"},{"nativeSrc":"3230:29:64","nodeType":"YulAssignment","src":"3230:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"3246:6:64","nodeType":"YulIdentifier","src":"3246:6:64"},{"kind":"number","nativeSrc":"3254:4:64","nodeType":"YulLiteral","src":"3254:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3242:3:64","nodeType":"YulIdentifier","src":"3242:3:64"},"nativeSrc":"3242:17:64","nodeType":"YulFunctionCall","src":"3242:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"3230:8:64","nodeType":"YulIdentifier","src":"3230:8:64"}]},{"body":{"nativeSrc":"3313:83:64","nodeType":"YulBlock","src":"3313:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"3315:77:64","nodeType":"YulIdentifier","src":"3315:77:64"},"nativeSrc":"3315:79:64","nodeType":"YulFunctionCall","src":"3315:79:64"},"nativeSrc":"3315:79:64","nodeType":"YulExpressionStatement","src":"3315:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"3278:8:64","nodeType":"YulIdentifier","src":"3278:8:64"},{"arguments":[{"name":"length","nativeSrc":"3292:6:64","nodeType":"YulIdentifier","src":"3292:6:64"},{"kind":"number","nativeSrc":"3300:4:64","nodeType":"YulLiteral","src":"3300:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"3288:3:64","nodeType":"YulIdentifier","src":"3288:3:64"},"nativeSrc":"3288:17:64","nodeType":"YulFunctionCall","src":"3288:17:64"}],"functionName":{"name":"add","nativeSrc":"3274:3:64","nodeType":"YulIdentifier","src":"3274:3:64"},"nativeSrc":"3274:32:64","nodeType":"YulFunctionCall","src":"3274:32:64"},{"name":"end","nativeSrc":"3308:3:64","nodeType":"YulIdentifier","src":"3308:3:64"}],"functionName":{"name":"gt","nativeSrc":"3271:2:64","nodeType":"YulIdentifier","src":"3271:2:64"},"nativeSrc":"3271:41:64","nodeType":"YulFunctionCall","src":"3271:41:64"},"nativeSrc":"3268:128:64","nodeType":"YulIf","src":"3268:128:64"}]},"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"2837:565:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2891:6:64","nodeType":"YulTypedName","src":"2891:6:64","type":""},{"name":"end","nativeSrc":"2899:3:64","nodeType":"YulTypedName","src":"2899:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"2907:8:64","nodeType":"YulTypedName","src":"2907:8:64","type":""},{"name":"length","nativeSrc":"2917:6:64","nodeType":"YulTypedName","src":"2917:6:64","type":""}],"src":"2837:565:64"},{"body":{"nativeSrc":"3558:778:64","nodeType":"YulBlock","src":"3558:778:64","statements":[{"body":{"nativeSrc":"3604:83:64","nodeType":"YulBlock","src":"3604:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"3606:77:64","nodeType":"YulIdentifier","src":"3606:77:64"},"nativeSrc":"3606:79:64","nodeType":"YulFunctionCall","src":"3606:79:64"},"nativeSrc":"3606:79:64","nodeType":"YulExpressionStatement","src":"3606:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"3579:7:64","nodeType":"YulIdentifier","src":"3579:7:64"},{"name":"headStart","nativeSrc":"3588:9:64","nodeType":"YulIdentifier","src":"3588:9:64"}],"functionName":{"name":"sub","nativeSrc":"3575:3:64","nodeType":"YulIdentifier","src":"3575:3:64"},"nativeSrc":"3575:23:64","nodeType":"YulFunctionCall","src":"3575:23:64"},{"kind":"number","nativeSrc":"3600:2:64","nodeType":"YulLiteral","src":"3600:2:64","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"3571:3:64","nodeType":"YulIdentifier","src":"3571:3:64"},"nativeSrc":"3571:32:64","nodeType":"YulFunctionCall","src":"3571:32:64"},"nativeSrc":"3568:119:64","nodeType":"YulIf","src":"3568:119:64"},{"nativeSrc":"3697:312:64","nodeType":"YulBlock","src":"3697:312:64","statements":[{"nativeSrc":"3712:45:64","nodeType":"YulVariableDeclaration","src":"3712:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3743:9:64","nodeType":"YulIdentifier","src":"3743:9:64"},{"kind":"number","nativeSrc":"3754:1:64","nodeType":"YulLiteral","src":"3754:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"3739:3:64","nodeType":"YulIdentifier","src":"3739:3:64"},"nativeSrc":"3739:17:64","nodeType":"YulFunctionCall","src":"3739:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"3726:12:64","nodeType":"YulIdentifier","src":"3726:12:64"},"nativeSrc":"3726:31:64","nodeType":"YulFunctionCall","src":"3726:31:64"},"variables":[{"name":"offset","nativeSrc":"3716:6:64","nodeType":"YulTypedName","src":"3716:6:64","type":""}]},{"body":{"nativeSrc":"3804:83:64","nodeType":"YulBlock","src":"3804:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"3806:77:64","nodeType":"YulIdentifier","src":"3806:77:64"},"nativeSrc":"3806:79:64","nodeType":"YulFunctionCall","src":"3806:79:64"},"nativeSrc":"3806:79:64","nodeType":"YulExpressionStatement","src":"3806:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"3776:6:64","nodeType":"YulIdentifier","src":"3776:6:64"},{"kind":"number","nativeSrc":"3784:18:64","nodeType":"YulLiteral","src":"3784:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3773:2:64","nodeType":"YulIdentifier","src":"3773:2:64"},"nativeSrc":"3773:30:64","nodeType":"YulFunctionCall","src":"3773:30:64"},"nativeSrc":"3770:117:64","nodeType":"YulIf","src":"3770:117:64"},{"nativeSrc":"3901:98:64","nodeType":"YulAssignment","src":"3901:98:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"3971:9:64","nodeType":"YulIdentifier","src":"3971:9:64"},{"name":"offset","nativeSrc":"3982:6:64","nodeType":"YulIdentifier","src":"3982:6:64"}],"functionName":{"name":"add","nativeSrc":"3967:3:64","nodeType":"YulIdentifier","src":"3967:3:64"},"nativeSrc":"3967:22:64","nodeType":"YulFunctionCall","src":"3967:22:64"},{"name":"dataEnd","nativeSrc":"3991:7:64","nodeType":"YulIdentifier","src":"3991:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_calldata_ptr","nativeSrc":"3919:47:64","nodeType":"YulIdentifier","src":"3919:47:64"},"nativeSrc":"3919:80:64","nodeType":"YulFunctionCall","src":"3919:80:64"},"variableNames":[{"name":"value0","nativeSrc":"3901:6:64","nodeType":"YulIdentifier","src":"3901:6:64"},{"name":"value1","nativeSrc":"3909:6:64","nodeType":"YulIdentifier","src":"3909:6:64"}]}]},{"nativeSrc":"4019:310:64","nodeType":"YulBlock","src":"4019:310:64","statements":[{"nativeSrc":"4034:46:64","nodeType":"YulVariableDeclaration","src":"4034:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4065:9:64","nodeType":"YulIdentifier","src":"4065:9:64"},{"kind":"number","nativeSrc":"4076:2:64","nodeType":"YulLiteral","src":"4076:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"4061:3:64","nodeType":"YulIdentifier","src":"4061:3:64"},"nativeSrc":"4061:18:64","nodeType":"YulFunctionCall","src":"4061:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"4048:12:64","nodeType":"YulIdentifier","src":"4048:12:64"},"nativeSrc":"4048:32:64","nodeType":"YulFunctionCall","src":"4048:32:64"},"variables":[{"name":"offset","nativeSrc":"4038:6:64","nodeType":"YulTypedName","src":"4038:6:64","type":""}]},{"body":{"nativeSrc":"4127:83:64","nodeType":"YulBlock","src":"4127:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"4129:77:64","nodeType":"YulIdentifier","src":"4129:77:64"},"nativeSrc":"4129:79:64","nodeType":"YulFunctionCall","src":"4129:79:64"},"nativeSrc":"4129:79:64","nodeType":"YulExpressionStatement","src":"4129:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4099:6:64","nodeType":"YulIdentifier","src":"4099:6:64"},{"kind":"number","nativeSrc":"4107:18:64","nodeType":"YulLiteral","src":"4107:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4096:2:64","nodeType":"YulIdentifier","src":"4096:2:64"},"nativeSrc":"4096:30:64","nodeType":"YulFunctionCall","src":"4096:30:64"},"nativeSrc":"4093:117:64","nodeType":"YulIf","src":"4093:117:64"},{"nativeSrc":"4224:95:64","nodeType":"YulAssignment","src":"4224:95:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4291:9:64","nodeType":"YulIdentifier","src":"4291:9:64"},{"name":"offset","nativeSrc":"4302:6:64","nodeType":"YulIdentifier","src":"4302:6:64"}],"functionName":{"name":"add","nativeSrc":"4287:3:64","nodeType":"YulIdentifier","src":"4287:3:64"},"nativeSrc":"4287:22:64","nodeType":"YulFunctionCall","src":"4287:22:64"},{"name":"dataEnd","nativeSrc":"4311:7:64","nodeType":"YulIdentifier","src":"4311:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"4242:44:64","nodeType":"YulIdentifier","src":"4242:44:64"},"nativeSrc":"4242:77:64","nodeType":"YulFunctionCall","src":"4242:77:64"},"variableNames":[{"name":"value2","nativeSrc":"4224:6:64","nodeType":"YulIdentifier","src":"4224:6:64"},{"name":"value3","nativeSrc":"4232:6:64","nodeType":"YulIdentifier","src":"4232:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr","nativeSrc":"3408:928:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"3504:9:64","nodeType":"YulTypedName","src":"3504:9:64","type":""},{"name":"dataEnd","nativeSrc":"3515:7:64","nodeType":"YulTypedName","src":"3515:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"3527:6:64","nodeType":"YulTypedName","src":"3527:6:64","type":""},{"name":"value1","nativeSrc":"3535:6:64","nodeType":"YulTypedName","src":"3535:6:64","type":""},{"name":"value2","nativeSrc":"3543:6:64","nodeType":"YulTypedName","src":"3543:6:64","type":""},{"name":"value3","nativeSrc":"3551:6:64","nodeType":"YulTypedName","src":"3551:6:64","type":""}],"src":"3408:928:64"},{"body":{"nativeSrc":"4429:478:64","nodeType":"YulBlock","src":"4429:478:64","statements":[{"body":{"nativeSrc":"4478:83:64","nodeType":"YulBlock","src":"4478:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4480:77:64","nodeType":"YulIdentifier","src":"4480:77:64"},"nativeSrc":"4480:79:64","nodeType":"YulFunctionCall","src":"4480:79:64"},"nativeSrc":"4480:79:64","nodeType":"YulExpressionStatement","src":"4480:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4457:6:64","nodeType":"YulIdentifier","src":"4457:6:64"},{"kind":"number","nativeSrc":"4465:4:64","nodeType":"YulLiteral","src":"4465:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4453:3:64","nodeType":"YulIdentifier","src":"4453:3:64"},"nativeSrc":"4453:17:64","nodeType":"YulFunctionCall","src":"4453:17:64"},{"name":"end","nativeSrc":"4472:3:64","nodeType":"YulIdentifier","src":"4472:3:64"}],"functionName":{"name":"slt","nativeSrc":"4449:3:64","nodeType":"YulIdentifier","src":"4449:3:64"},"nativeSrc":"4449:27:64","nodeType":"YulFunctionCall","src":"4449:27:64"}],"functionName":{"name":"iszero","nativeSrc":"4442:6:64","nodeType":"YulIdentifier","src":"4442:6:64"},"nativeSrc":"4442:35:64","nodeType":"YulFunctionCall","src":"4442:35:64"},"nativeSrc":"4439:122:64","nodeType":"YulIf","src":"4439:122:64"},{"nativeSrc":"4570:30:64","nodeType":"YulAssignment","src":"4570:30:64","value":{"arguments":[{"name":"offset","nativeSrc":"4593:6:64","nodeType":"YulIdentifier","src":"4593:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"4580:12:64","nodeType":"YulIdentifier","src":"4580:12:64"},"nativeSrc":"4580:20:64","nodeType":"YulFunctionCall","src":"4580:20:64"},"variableNames":[{"name":"length","nativeSrc":"4570:6:64","nodeType":"YulIdentifier","src":"4570:6:64"}]},{"body":{"nativeSrc":"4643:83:64","nodeType":"YulBlock","src":"4643:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490","nativeSrc":"4645:77:64","nodeType":"YulIdentifier","src":"4645:77:64"},"nativeSrc":"4645:79:64","nodeType":"YulFunctionCall","src":"4645:79:64"},"nativeSrc":"4645:79:64","nodeType":"YulExpressionStatement","src":"4645:79:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4615:6:64","nodeType":"YulIdentifier","src":"4615:6:64"},{"kind":"number","nativeSrc":"4623:18:64","nodeType":"YulLiteral","src":"4623:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4612:2:64","nodeType":"YulIdentifier","src":"4612:2:64"},"nativeSrc":"4612:30:64","nodeType":"YulFunctionCall","src":"4612:30:64"},"nativeSrc":"4609:117:64","nodeType":"YulIf","src":"4609:117:64"},{"nativeSrc":"4735:29:64","nodeType":"YulAssignment","src":"4735:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"4751:6:64","nodeType":"YulIdentifier","src":"4751:6:64"},{"kind":"number","nativeSrc":"4759:4:64","nodeType":"YulLiteral","src":"4759:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4747:3:64","nodeType":"YulIdentifier","src":"4747:3:64"},"nativeSrc":"4747:17:64","nodeType":"YulFunctionCall","src":"4747:17:64"},"variableNames":[{"name":"arrayPos","nativeSrc":"4735:8:64","nodeType":"YulIdentifier","src":"4735:8:64"}]},{"body":{"nativeSrc":"4818:83:64","nodeType":"YulBlock","src":"4818:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"4820:77:64","nodeType":"YulIdentifier","src":"4820:77:64"},"nativeSrc":"4820:79:64","nodeType":"YulFunctionCall","src":"4820:79:64"},"nativeSrc":"4820:79:64","nodeType":"YulExpressionStatement","src":"4820:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"arrayPos","nativeSrc":"4783:8:64","nodeType":"YulIdentifier","src":"4783:8:64"},{"arguments":[{"name":"length","nativeSrc":"4797:6:64","nodeType":"YulIdentifier","src":"4797:6:64"},{"kind":"number","nativeSrc":"4805:4:64","nodeType":"YulLiteral","src":"4805:4:64","type":"","value":"0x01"}],"functionName":{"name":"mul","nativeSrc":"4793:3:64","nodeType":"YulIdentifier","src":"4793:3:64"},"nativeSrc":"4793:17:64","nodeType":"YulFunctionCall","src":"4793:17:64"}],"functionName":{"name":"add","nativeSrc":"4779:3:64","nodeType":"YulIdentifier","src":"4779:3:64"},"nativeSrc":"4779:32:64","nodeType":"YulFunctionCall","src":"4779:32:64"},{"name":"end","nativeSrc":"4813:3:64","nodeType":"YulIdentifier","src":"4813:3:64"}],"functionName":{"name":"gt","nativeSrc":"4776:2:64","nodeType":"YulIdentifier","src":"4776:2:64"},"nativeSrc":"4776:41:64","nodeType":"YulFunctionCall","src":"4776:41:64"},"nativeSrc":"4773:128:64","nodeType":"YulIf","src":"4773:128:64"}]},"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"4355:552:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4396:6:64","nodeType":"YulTypedName","src":"4396:6:64","type":""},{"name":"end","nativeSrc":"4404:3:64","nodeType":"YulTypedName","src":"4404:3:64","type":""}],"returnVariables":[{"name":"arrayPos","nativeSrc":"4412:8:64","nodeType":"YulTypedName","src":"4412:8:64","type":""},{"name":"length","nativeSrc":"4422:6:64","nodeType":"YulTypedName","src":"4422:6:64","type":""}],"src":"4355:552:64"},{"body":{"nativeSrc":"4998:442:64","nodeType":"YulBlock","src":"4998:442:64","statements":[{"body":{"nativeSrc":"5044:83:64","nodeType":"YulBlock","src":"5044:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"5046:77:64","nodeType":"YulIdentifier","src":"5046:77:64"},"nativeSrc":"5046:79:64","nodeType":"YulFunctionCall","src":"5046:79:64"},"nativeSrc":"5046:79:64","nodeType":"YulExpressionStatement","src":"5046:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"5019:7:64","nodeType":"YulIdentifier","src":"5019:7:64"},{"name":"headStart","nativeSrc":"5028:9:64","nodeType":"YulIdentifier","src":"5028:9:64"}],"functionName":{"name":"sub","nativeSrc":"5015:3:64","nodeType":"YulIdentifier","src":"5015:3:64"},"nativeSrc":"5015:23:64","nodeType":"YulFunctionCall","src":"5015:23:64"},{"kind":"number","nativeSrc":"5040:2:64","nodeType":"YulLiteral","src":"5040:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"5011:3:64","nodeType":"YulIdentifier","src":"5011:3:64"},"nativeSrc":"5011:32:64","nodeType":"YulFunctionCall","src":"5011:32:64"},"nativeSrc":"5008:119:64","nodeType":"YulIf","src":"5008:119:64"},{"nativeSrc":"5137:296:64","nodeType":"YulBlock","src":"5137:296:64","statements":[{"nativeSrc":"5152:45:64","nodeType":"YulVariableDeclaration","src":"5152:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5183:9:64","nodeType":"YulIdentifier","src":"5183:9:64"},{"kind":"number","nativeSrc":"5194:1:64","nodeType":"YulLiteral","src":"5194:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"5179:3:64","nodeType":"YulIdentifier","src":"5179:3:64"},"nativeSrc":"5179:17:64","nodeType":"YulFunctionCall","src":"5179:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"5166:12:64","nodeType":"YulIdentifier","src":"5166:12:64"},"nativeSrc":"5166:31:64","nodeType":"YulFunctionCall","src":"5166:31:64"},"variables":[{"name":"offset","nativeSrc":"5156:6:64","nodeType":"YulTypedName","src":"5156:6:64","type":""}]},{"body":{"nativeSrc":"5244:83:64","nodeType":"YulBlock","src":"5244:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"5246:77:64","nodeType":"YulIdentifier","src":"5246:77:64"},"nativeSrc":"5246:79:64","nodeType":"YulFunctionCall","src":"5246:79:64"},"nativeSrc":"5246:79:64","nodeType":"YulExpressionStatement","src":"5246:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5216:6:64","nodeType":"YulIdentifier","src":"5216:6:64"},{"kind":"number","nativeSrc":"5224:18:64","nodeType":"YulLiteral","src":"5224:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5213:2:64","nodeType":"YulIdentifier","src":"5213:2:64"},"nativeSrc":"5213:30:64","nodeType":"YulFunctionCall","src":"5213:30:64"},"nativeSrc":"5210:117:64","nodeType":"YulIf","src":"5210:117:64"},{"nativeSrc":"5341:82:64","nodeType":"YulAssignment","src":"5341:82:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5395:9:64","nodeType":"YulIdentifier","src":"5395:9:64"},{"name":"offset","nativeSrc":"5406:6:64","nodeType":"YulIdentifier","src":"5406:6:64"}],"functionName":{"name":"add","nativeSrc":"5391:3:64","nodeType":"YulIdentifier","src":"5391:3:64"},"nativeSrc":"5391:22:64","nodeType":"YulFunctionCall","src":"5391:22:64"},{"name":"dataEnd","nativeSrc":"5415:7:64","nodeType":"YulIdentifier","src":"5415:7:64"}],"functionName":{"name":"abi_decode_t_bytes_calldata_ptr","nativeSrc":"5359:31:64","nodeType":"YulIdentifier","src":"5359:31:64"},"nativeSrc":"5359:64:64","nodeType":"YulFunctionCall","src":"5359:64:64"},"variableNames":[{"name":"value0","nativeSrc":"5341:6:64","nodeType":"YulIdentifier","src":"5341:6:64"},{"name":"value1","nativeSrc":"5349:6:64","nodeType":"YulIdentifier","src":"5349:6:64"}]}]}]},"name":"abi_decode_tuple_t_bytes_calldata_ptr","nativeSrc":"4913:527:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4960:9:64","nodeType":"YulTypedName","src":"4960:9:64","type":""},{"name":"dataEnd","nativeSrc":"4971:7:64","nodeType":"YulTypedName","src":"4971:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"4983:6:64","nodeType":"YulTypedName","src":"4983:6:64","type":""},{"name":"value1","nativeSrc":"4991:6:64","nodeType":"YulTypedName","src":"4991:6:64","type":""}],"src":"4913:527:64"},{"body":{"nativeSrc":"5491:81:64","nodeType":"YulBlock","src":"5491:81:64","statements":[{"nativeSrc":"5501:65:64","nodeType":"YulAssignment","src":"5501:65:64","value":{"arguments":[{"name":"value","nativeSrc":"5516:5:64","nodeType":"YulIdentifier","src":"5516:5:64"},{"kind":"number","nativeSrc":"5523:42:64","nodeType":"YulLiteral","src":"5523:42:64","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"5512:3:64","nodeType":"YulIdentifier","src":"5512:3:64"},"nativeSrc":"5512:54:64","nodeType":"YulFunctionCall","src":"5512:54:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5501:7:64","nodeType":"YulIdentifier","src":"5501:7:64"}]}]},"name":"cleanup_t_uint160","nativeSrc":"5446:126:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5473:5:64","nodeType":"YulTypedName","src":"5473:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5483:7:64","nodeType":"YulTypedName","src":"5483:7:64","type":""}],"src":"5446:126:64"},{"body":{"nativeSrc":"5623:51:64","nodeType":"YulBlock","src":"5623:51:64","statements":[{"nativeSrc":"5633:35:64","nodeType":"YulAssignment","src":"5633:35:64","value":{"arguments":[{"name":"value","nativeSrc":"5662:5:64","nodeType":"YulIdentifier","src":"5662:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"5644:17:64","nodeType":"YulIdentifier","src":"5644:17:64"},"nativeSrc":"5644:24:64","nodeType":"YulFunctionCall","src":"5644:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"5633:7:64","nodeType":"YulIdentifier","src":"5633:7:64"}]}]},"name":"cleanup_t_address","nativeSrc":"5578:96:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5605:5:64","nodeType":"YulTypedName","src":"5605:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5615:7:64","nodeType":"YulTypedName","src":"5615:7:64","type":""}],"src":"5578:96:64"},{"body":{"nativeSrc":"5723:79:64","nodeType":"YulBlock","src":"5723:79:64","statements":[{"body":{"nativeSrc":"5780:16:64","nodeType":"YulBlock","src":"5780:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5789:1:64","nodeType":"YulLiteral","src":"5789:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"5792:1:64","nodeType":"YulLiteral","src":"5792:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5782:6:64","nodeType":"YulIdentifier","src":"5782:6:64"},"nativeSrc":"5782:12:64","nodeType":"YulFunctionCall","src":"5782:12:64"},"nativeSrc":"5782:12:64","nodeType":"YulExpressionStatement","src":"5782:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5746:5:64","nodeType":"YulIdentifier","src":"5746:5:64"},{"arguments":[{"name":"value","nativeSrc":"5771:5:64","nodeType":"YulIdentifier","src":"5771:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"5753:17:64","nodeType":"YulIdentifier","src":"5753:17:64"},"nativeSrc":"5753:24:64","nodeType":"YulFunctionCall","src":"5753:24:64"}],"functionName":{"name":"eq","nativeSrc":"5743:2:64","nodeType":"YulIdentifier","src":"5743:2:64"},"nativeSrc":"5743:35:64","nodeType":"YulFunctionCall","src":"5743:35:64"}],"functionName":{"name":"iszero","nativeSrc":"5736:6:64","nodeType":"YulIdentifier","src":"5736:6:64"},"nativeSrc":"5736:43:64","nodeType":"YulFunctionCall","src":"5736:43:64"},"nativeSrc":"5733:63:64","nodeType":"YulIf","src":"5733:63:64"}]},"name":"validator_revert_t_address","nativeSrc":"5680:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5716:5:64","nodeType":"YulTypedName","src":"5716:5:64","type":""}],"src":"5680:122:64"},{"body":{"nativeSrc":"5860:87:64","nodeType":"YulBlock","src":"5860:87:64","statements":[{"nativeSrc":"5870:29:64","nodeType":"YulAssignment","src":"5870:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"5892:6:64","nodeType":"YulIdentifier","src":"5892:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"5879:12:64","nodeType":"YulIdentifier","src":"5879:12:64"},"nativeSrc":"5879:20:64","nodeType":"YulFunctionCall","src":"5879:20:64"},"variableNames":[{"name":"value","nativeSrc":"5870:5:64","nodeType":"YulIdentifier","src":"5870:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5935:5:64","nodeType":"YulIdentifier","src":"5935:5:64"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"5908:26:64","nodeType":"YulIdentifier","src":"5908:26:64"},"nativeSrc":"5908:33:64","nodeType":"YulFunctionCall","src":"5908:33:64"},"nativeSrc":"5908:33:64","nodeType":"YulExpressionStatement","src":"5908:33:64"}]},"name":"abi_decode_t_address","nativeSrc":"5808:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5838:6:64","nodeType":"YulTypedName","src":"5838:6:64","type":""},{"name":"end","nativeSrc":"5846:3:64","nodeType":"YulTypedName","src":"5846:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5854:5:64","nodeType":"YulTypedName","src":"5854:5:64","type":""}],"src":"5808:139:64"},{"body":{"nativeSrc":"6019:263:64","nodeType":"YulBlock","src":"6019:263:64","statements":[{"body":{"nativeSrc":"6065:83:64","nodeType":"YulBlock","src":"6065:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"6067:77:64","nodeType":"YulIdentifier","src":"6067:77:64"},"nativeSrc":"6067:79:64","nodeType":"YulFunctionCall","src":"6067:79:64"},"nativeSrc":"6067:79:64","nodeType":"YulExpressionStatement","src":"6067:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"6040:7:64","nodeType":"YulIdentifier","src":"6040:7:64"},{"name":"headStart","nativeSrc":"6049:9:64","nodeType":"YulIdentifier","src":"6049:9:64"}],"functionName":{"name":"sub","nativeSrc":"6036:3:64","nodeType":"YulIdentifier","src":"6036:3:64"},"nativeSrc":"6036:23:64","nodeType":"YulFunctionCall","src":"6036:23:64"},{"kind":"number","nativeSrc":"6061:2:64","nodeType":"YulLiteral","src":"6061:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"6032:3:64","nodeType":"YulIdentifier","src":"6032:3:64"},"nativeSrc":"6032:32:64","nodeType":"YulFunctionCall","src":"6032:32:64"},"nativeSrc":"6029:119:64","nodeType":"YulIf","src":"6029:119:64"},{"nativeSrc":"6158:117:64","nodeType":"YulBlock","src":"6158:117:64","statements":[{"nativeSrc":"6173:15:64","nodeType":"YulVariableDeclaration","src":"6173:15:64","value":{"kind":"number","nativeSrc":"6187:1:64","nodeType":"YulLiteral","src":"6187:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"6177:6:64","nodeType":"YulTypedName","src":"6177:6:64","type":""}]},{"nativeSrc":"6202:63:64","nodeType":"YulAssignment","src":"6202:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"6237:9:64","nodeType":"YulIdentifier","src":"6237:9:64"},{"name":"offset","nativeSrc":"6248:6:64","nodeType":"YulIdentifier","src":"6248:6:64"}],"functionName":{"name":"add","nativeSrc":"6233:3:64","nodeType":"YulIdentifier","src":"6233:3:64"},"nativeSrc":"6233:22:64","nodeType":"YulFunctionCall","src":"6233:22:64"},{"name":"dataEnd","nativeSrc":"6257:7:64","nodeType":"YulIdentifier","src":"6257:7:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"6212:20:64","nodeType":"YulIdentifier","src":"6212:20:64"},"nativeSrc":"6212:53:64","nodeType":"YulFunctionCall","src":"6212:53:64"},"variableNames":[{"name":"value0","nativeSrc":"6202:6:64","nodeType":"YulIdentifier","src":"6202:6:64"}]}]}]},"name":"abi_decode_tuple_t_address","nativeSrc":"5953:329:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"5989:9:64","nodeType":"YulTypedName","src":"5989:9:64","type":""},{"name":"dataEnd","nativeSrc":"6000:7:64","nodeType":"YulTypedName","src":"6000:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"6012:6:64","nodeType":"YulTypedName","src":"6012:6:64","type":""}],"src":"5953:329:64"},{"body":{"nativeSrc":"6353:53:64","nodeType":"YulBlock","src":"6353:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6370:3:64","nodeType":"YulIdentifier","src":"6370:3:64"},{"arguments":[{"name":"value","nativeSrc":"6393:5:64","nodeType":"YulIdentifier","src":"6393:5:64"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"6375:17:64","nodeType":"YulIdentifier","src":"6375:17:64"},"nativeSrc":"6375:24:64","nodeType":"YulFunctionCall","src":"6375:24:64"}],"functionName":{"name":"mstore","nativeSrc":"6363:6:64","nodeType":"YulIdentifier","src":"6363:6:64"},"nativeSrc":"6363:37:64","nodeType":"YulFunctionCall","src":"6363:37:64"},"nativeSrc":"6363:37:64","nodeType":"YulExpressionStatement","src":"6363:37:64"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6288:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6341:5:64","nodeType":"YulTypedName","src":"6341:5:64","type":""},{"name":"pos","nativeSrc":"6348:3:64","nodeType":"YulTypedName","src":"6348:3:64","type":""}],"src":"6288:118:64"},{"body":{"nativeSrc":"6510:124:64","nodeType":"YulBlock","src":"6510:124:64","statements":[{"nativeSrc":"6520:26:64","nodeType":"YulAssignment","src":"6520:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6532:9:64","nodeType":"YulIdentifier","src":"6532:9:64"},{"kind":"number","nativeSrc":"6543:2:64","nodeType":"YulLiteral","src":"6543:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6528:3:64","nodeType":"YulIdentifier","src":"6528:3:64"},"nativeSrc":"6528:18:64","nodeType":"YulFunctionCall","src":"6528:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6520:4:64","nodeType":"YulIdentifier","src":"6520:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"6600:6:64","nodeType":"YulIdentifier","src":"6600:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"6613:9:64","nodeType":"YulIdentifier","src":"6613:9:64"},{"kind":"number","nativeSrc":"6624:1:64","nodeType":"YulLiteral","src":"6624:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"6609:3:64","nodeType":"YulIdentifier","src":"6609:3:64"},"nativeSrc":"6609:17:64","nodeType":"YulFunctionCall","src":"6609:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"6556:43:64","nodeType":"YulIdentifier","src":"6556:43:64"},"nativeSrc":"6556:71:64","nodeType":"YulFunctionCall","src":"6556:71:64"},"nativeSrc":"6556:71:64","nodeType":"YulExpressionStatement","src":"6556:71:64"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nativeSrc":"6412:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6482:9:64","nodeType":"YulTypedName","src":"6482:9:64","type":""},{"name":"value0","nativeSrc":"6494:6:64","nodeType":"YulTypedName","src":"6494:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6505:4:64","nodeType":"YulTypedName","src":"6505:4:64","type":""}],"src":"6412:222:64"},{"body":{"nativeSrc":"6685:32:64","nodeType":"YulBlock","src":"6685:32:64","statements":[{"nativeSrc":"6695:16:64","nodeType":"YulAssignment","src":"6695:16:64","value":{"name":"value","nativeSrc":"6706:5:64","nodeType":"YulIdentifier","src":"6706:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"6695:7:64","nodeType":"YulIdentifier","src":"6695:7:64"}]}]},"name":"cleanup_t_uint256","nativeSrc":"6640:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6667:5:64","nodeType":"YulTypedName","src":"6667:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6677:7:64","nodeType":"YulTypedName","src":"6677:7:64","type":""}],"src":"6640:77:64"},{"body":{"nativeSrc":"6788:53:64","nodeType":"YulBlock","src":"6788:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"6805:3:64","nodeType":"YulIdentifier","src":"6805:3:64"},{"arguments":[{"name":"value","nativeSrc":"6828:5:64","nodeType":"YulIdentifier","src":"6828:5:64"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"6810:17:64","nodeType":"YulIdentifier","src":"6810:17:64"},"nativeSrc":"6810:24:64","nodeType":"YulFunctionCall","src":"6810:24:64"}],"functionName":{"name":"mstore","nativeSrc":"6798:6:64","nodeType":"YulIdentifier","src":"6798:6:64"},"nativeSrc":"6798:37:64","nodeType":"YulFunctionCall","src":"6798:37:64"},"nativeSrc":"6798:37:64","nodeType":"YulExpressionStatement","src":"6798:37:64"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6723:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6776:5:64","nodeType":"YulTypedName","src":"6776:5:64","type":""},{"name":"pos","nativeSrc":"6783:3:64","nodeType":"YulTypedName","src":"6783:3:64","type":""}],"src":"6723:118:64"},{"body":{"nativeSrc":"6945:124:64","nodeType":"YulBlock","src":"6945:124:64","statements":[{"nativeSrc":"6955:26:64","nodeType":"YulAssignment","src":"6955:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"6967:9:64","nodeType":"YulIdentifier","src":"6967:9:64"},{"kind":"number","nativeSrc":"6978:2:64","nodeType":"YulLiteral","src":"6978:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"6963:3:64","nodeType":"YulIdentifier","src":"6963:3:64"},"nativeSrc":"6963:18:64","nodeType":"YulFunctionCall","src":"6963:18:64"},"variableNames":[{"name":"tail","nativeSrc":"6955:4:64","nodeType":"YulIdentifier","src":"6955:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"7035:6:64","nodeType":"YulIdentifier","src":"7035:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"7048:9:64","nodeType":"YulIdentifier","src":"7048:9:64"},{"kind":"number","nativeSrc":"7059:1:64","nodeType":"YulLiteral","src":"7059:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"7044:3:64","nodeType":"YulIdentifier","src":"7044:3:64"},"nativeSrc":"7044:17:64","nodeType":"YulFunctionCall","src":"7044:17:64"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"6991:43:64","nodeType":"YulIdentifier","src":"6991:43:64"},"nativeSrc":"6991:71:64","nodeType":"YulFunctionCall","src":"6991:71:64"},"nativeSrc":"6991:71:64","nodeType":"YulExpressionStatement","src":"6991:71:64"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nativeSrc":"6847:222:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"6917:9:64","nodeType":"YulTypedName","src":"6917:9:64","type":""},{"name":"value0","nativeSrc":"6929:6:64","nodeType":"YulTypedName","src":"6929:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"6940:4:64","nodeType":"YulTypedName","src":"6940:4:64","type":""}],"src":"6847:222:64"},{"body":{"nativeSrc":"7103:152:64","nodeType":"YulBlock","src":"7103:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7120:1:64","nodeType":"YulLiteral","src":"7120:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7123:77:64","nodeType":"YulLiteral","src":"7123:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7113:6:64","nodeType":"YulIdentifier","src":"7113:6:64"},"nativeSrc":"7113:88:64","nodeType":"YulFunctionCall","src":"7113:88:64"},"nativeSrc":"7113:88:64","nodeType":"YulExpressionStatement","src":"7113:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7217:1:64","nodeType":"YulLiteral","src":"7217:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"7220:4:64","nodeType":"YulLiteral","src":"7220:4:64","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"7210:6:64","nodeType":"YulIdentifier","src":"7210:6:64"},"nativeSrc":"7210:15:64","nodeType":"YulFunctionCall","src":"7210:15:64"},"nativeSrc":"7210:15:64","nodeType":"YulExpressionStatement","src":"7210:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7241:1:64","nodeType":"YulLiteral","src":"7241:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7244:4:64","nodeType":"YulLiteral","src":"7244:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"7234:6:64","nodeType":"YulIdentifier","src":"7234:6:64"},"nativeSrc":"7234:15:64","nodeType":"YulFunctionCall","src":"7234:15:64"},"nativeSrc":"7234:15:64","nodeType":"YulExpressionStatement","src":"7234:15:64"}]},"name":"panic_error_0x32","nativeSrc":"7075:180:64","nodeType":"YulFunctionDefinition","src":"7075:180:64"},{"body":{"nativeSrc":"7301:76:64","nodeType":"YulBlock","src":"7301:76:64","statements":[{"body":{"nativeSrc":"7355:16:64","nodeType":"YulBlock","src":"7355:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7364:1:64","nodeType":"YulLiteral","src":"7364:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"7367:1:64","nodeType":"YulLiteral","src":"7367:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7357:6:64","nodeType":"YulIdentifier","src":"7357:6:64"},"nativeSrc":"7357:12:64","nodeType":"YulFunctionCall","src":"7357:12:64"},"nativeSrc":"7357:12:64","nodeType":"YulExpressionStatement","src":"7357:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7324:5:64","nodeType":"YulIdentifier","src":"7324:5:64"},{"arguments":[{"name":"value","nativeSrc":"7346:5:64","nodeType":"YulIdentifier","src":"7346:5:64"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"7331:14:64","nodeType":"YulIdentifier","src":"7331:14:64"},"nativeSrc":"7331:21:64","nodeType":"YulFunctionCall","src":"7331:21:64"}],"functionName":{"name":"eq","nativeSrc":"7321:2:64","nodeType":"YulIdentifier","src":"7321:2:64"},"nativeSrc":"7321:32:64","nodeType":"YulFunctionCall","src":"7321:32:64"}],"functionName":{"name":"iszero","nativeSrc":"7314:6:64","nodeType":"YulIdentifier","src":"7314:6:64"},"nativeSrc":"7314:40:64","nodeType":"YulFunctionCall","src":"7314:40:64"},"nativeSrc":"7311:60:64","nodeType":"YulIf","src":"7311:60:64"}]},"name":"validator_revert_t_bool","nativeSrc":"7261:116:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7294:5:64","nodeType":"YulTypedName","src":"7294:5:64","type":""}],"src":"7261:116:64"},{"body":{"nativeSrc":"7432:84:64","nodeType":"YulBlock","src":"7432:84:64","statements":[{"nativeSrc":"7442:29:64","nodeType":"YulAssignment","src":"7442:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"7464:6:64","nodeType":"YulIdentifier","src":"7464:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"7451:12:64","nodeType":"YulIdentifier","src":"7451:12:64"},"nativeSrc":"7451:20:64","nodeType":"YulFunctionCall","src":"7451:20:64"},"variableNames":[{"name":"value","nativeSrc":"7442:5:64","nodeType":"YulIdentifier","src":"7442:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7504:5:64","nodeType":"YulIdentifier","src":"7504:5:64"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"7480:23:64","nodeType":"YulIdentifier","src":"7480:23:64"},"nativeSrc":"7480:30:64","nodeType":"YulFunctionCall","src":"7480:30:64"},"nativeSrc":"7480:30:64","nodeType":"YulExpressionStatement","src":"7480:30:64"}]},"name":"abi_decode_t_bool","nativeSrc":"7383:133:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7410:6:64","nodeType":"YulTypedName","src":"7410:6:64","type":""},{"name":"end","nativeSrc":"7418:3:64","nodeType":"YulTypedName","src":"7418:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7426:5:64","nodeType":"YulTypedName","src":"7426:5:64","type":""}],"src":"7383:133:64"},{"body":{"nativeSrc":"7585:260:64","nodeType":"YulBlock","src":"7585:260:64","statements":[{"body":{"nativeSrc":"7631:83:64","nodeType":"YulBlock","src":"7631:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"7633:77:64","nodeType":"YulIdentifier","src":"7633:77:64"},"nativeSrc":"7633:79:64","nodeType":"YulFunctionCall","src":"7633:79:64"},"nativeSrc":"7633:79:64","nodeType":"YulExpressionStatement","src":"7633:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"7606:7:64","nodeType":"YulIdentifier","src":"7606:7:64"},{"name":"headStart","nativeSrc":"7615:9:64","nodeType":"YulIdentifier","src":"7615:9:64"}],"functionName":{"name":"sub","nativeSrc":"7602:3:64","nodeType":"YulIdentifier","src":"7602:3:64"},"nativeSrc":"7602:23:64","nodeType":"YulFunctionCall","src":"7602:23:64"},{"kind":"number","nativeSrc":"7627:2:64","nodeType":"YulLiteral","src":"7627:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"7598:3:64","nodeType":"YulIdentifier","src":"7598:3:64"},"nativeSrc":"7598:32:64","nodeType":"YulFunctionCall","src":"7598:32:64"},"nativeSrc":"7595:119:64","nodeType":"YulIf","src":"7595:119:64"},{"nativeSrc":"7724:114:64","nodeType":"YulBlock","src":"7724:114:64","statements":[{"nativeSrc":"7739:15:64","nodeType":"YulVariableDeclaration","src":"7739:15:64","value":{"kind":"number","nativeSrc":"7753:1:64","nodeType":"YulLiteral","src":"7753:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"7743:6:64","nodeType":"YulTypedName","src":"7743:6:64","type":""}]},{"nativeSrc":"7768:60:64","nodeType":"YulAssignment","src":"7768:60:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"7800:9:64","nodeType":"YulIdentifier","src":"7800:9:64"},{"name":"offset","nativeSrc":"7811:6:64","nodeType":"YulIdentifier","src":"7811:6:64"}],"functionName":{"name":"add","nativeSrc":"7796:3:64","nodeType":"YulIdentifier","src":"7796:3:64"},"nativeSrc":"7796:22:64","nodeType":"YulFunctionCall","src":"7796:22:64"},{"name":"dataEnd","nativeSrc":"7820:7:64","nodeType":"YulIdentifier","src":"7820:7:64"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"7778:17:64","nodeType":"YulIdentifier","src":"7778:17:64"},"nativeSrc":"7778:50:64","nodeType":"YulFunctionCall","src":"7778:50:64"},"variableNames":[{"name":"value0","nativeSrc":"7768:6:64","nodeType":"YulIdentifier","src":"7768:6:64"}]}]}]},"name":"abi_decode_tuple_t_bool","nativeSrc":"7522:323:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7555:9:64","nodeType":"YulTypedName","src":"7555:9:64","type":""},{"name":"dataEnd","nativeSrc":"7566:7:64","nodeType":"YulTypedName","src":"7566:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"7578:6:64","nodeType":"YulTypedName","src":"7578:6:64","type":""}],"src":"7522:323:64"},{"body":{"nativeSrc":"7899:54:64","nodeType":"YulBlock","src":"7899:54:64","statements":[{"nativeSrc":"7909:38:64","nodeType":"YulAssignment","src":"7909:38:64","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7927:5:64","nodeType":"YulIdentifier","src":"7927:5:64"},{"kind":"number","nativeSrc":"7934:2:64","nodeType":"YulLiteral","src":"7934:2:64","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"7923:3:64","nodeType":"YulIdentifier","src":"7923:3:64"},"nativeSrc":"7923:14:64","nodeType":"YulFunctionCall","src":"7923:14:64"},{"arguments":[{"kind":"number","nativeSrc":"7943:2:64","nodeType":"YulLiteral","src":"7943:2:64","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"7939:3:64","nodeType":"YulIdentifier","src":"7939:3:64"},"nativeSrc":"7939:7:64","nodeType":"YulFunctionCall","src":"7939:7:64"}],"functionName":{"name":"and","nativeSrc":"7919:3:64","nodeType":"YulIdentifier","src":"7919:3:64"},"nativeSrc":"7919:28:64","nodeType":"YulFunctionCall","src":"7919:28:64"},"variableNames":[{"name":"result","nativeSrc":"7909:6:64","nodeType":"YulIdentifier","src":"7909:6:64"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"7851:102:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7882:5:64","nodeType":"YulTypedName","src":"7882:5:64","type":""}],"returnVariables":[{"name":"result","nativeSrc":"7892:6:64","nodeType":"YulTypedName","src":"7892:6:64","type":""}],"src":"7851:102:64"},{"body":{"nativeSrc":"7987:152:64","nodeType":"YulBlock","src":"7987:152:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8004:1:64","nodeType":"YulLiteral","src":"8004:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8007:77:64","nodeType":"YulLiteral","src":"8007:77:64","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"7997:6:64","nodeType":"YulIdentifier","src":"7997:6:64"},"nativeSrc":"7997:88:64","nodeType":"YulFunctionCall","src":"7997:88:64"},"nativeSrc":"7997:88:64","nodeType":"YulExpressionStatement","src":"7997:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8101:1:64","nodeType":"YulLiteral","src":"8101:1:64","type":"","value":"4"},{"kind":"number","nativeSrc":"8104:4:64","nodeType":"YulLiteral","src":"8104:4:64","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"8094:6:64","nodeType":"YulIdentifier","src":"8094:6:64"},"nativeSrc":"8094:15:64","nodeType":"YulFunctionCall","src":"8094:15:64"},"nativeSrc":"8094:15:64","nodeType":"YulExpressionStatement","src":"8094:15:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8125:1:64","nodeType":"YulLiteral","src":"8125:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"8128:4:64","nodeType":"YulLiteral","src":"8128:4:64","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"8118:6:64","nodeType":"YulIdentifier","src":"8118:6:64"},"nativeSrc":"8118:15:64","nodeType":"YulFunctionCall","src":"8118:15:64"},"nativeSrc":"8118:15:64","nodeType":"YulExpressionStatement","src":"8118:15:64"}]},"name":"panic_error_0x41","nativeSrc":"7959:180:64","nodeType":"YulFunctionDefinition","src":"7959:180:64"},{"body":{"nativeSrc":"8188:238:64","nodeType":"YulBlock","src":"8188:238:64","statements":[{"nativeSrc":"8198:58:64","nodeType":"YulVariableDeclaration","src":"8198:58:64","value":{"arguments":[{"name":"memPtr","nativeSrc":"8220:6:64","nodeType":"YulIdentifier","src":"8220:6:64"},{"arguments":[{"name":"size","nativeSrc":"8250:4:64","nodeType":"YulIdentifier","src":"8250:4:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"8228:21:64","nodeType":"YulIdentifier","src":"8228:21:64"},"nativeSrc":"8228:27:64","nodeType":"YulFunctionCall","src":"8228:27:64"}],"functionName":{"name":"add","nativeSrc":"8216:3:64","nodeType":"YulIdentifier","src":"8216:3:64"},"nativeSrc":"8216:40:64","nodeType":"YulFunctionCall","src":"8216:40:64"},"variables":[{"name":"newFreePtr","nativeSrc":"8202:10:64","nodeType":"YulTypedName","src":"8202:10:64","type":""}]},{"body":{"nativeSrc":"8367:22:64","nodeType":"YulBlock","src":"8367:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8369:16:64","nodeType":"YulIdentifier","src":"8369:16:64"},"nativeSrc":"8369:18:64","nodeType":"YulFunctionCall","src":"8369:18:64"},"nativeSrc":"8369:18:64","nodeType":"YulExpressionStatement","src":"8369:18:64"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"8310:10:64","nodeType":"YulIdentifier","src":"8310:10:64"},{"kind":"number","nativeSrc":"8322:18:64","nodeType":"YulLiteral","src":"8322:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8307:2:64","nodeType":"YulIdentifier","src":"8307:2:64"},"nativeSrc":"8307:34:64","nodeType":"YulFunctionCall","src":"8307:34:64"},{"arguments":[{"name":"newFreePtr","nativeSrc":"8346:10:64","nodeType":"YulIdentifier","src":"8346:10:64"},{"name":"memPtr","nativeSrc":"8358:6:64","nodeType":"YulIdentifier","src":"8358:6:64"}],"functionName":{"name":"lt","nativeSrc":"8343:2:64","nodeType":"YulIdentifier","src":"8343:2:64"},"nativeSrc":"8343:22:64","nodeType":"YulFunctionCall","src":"8343:22:64"}],"functionName":{"name":"or","nativeSrc":"8304:2:64","nodeType":"YulIdentifier","src":"8304:2:64"},"nativeSrc":"8304:62:64","nodeType":"YulFunctionCall","src":"8304:62:64"},"nativeSrc":"8301:88:64","nodeType":"YulIf","src":"8301:88:64"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8405:2:64","nodeType":"YulLiteral","src":"8405:2:64","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"8409:10:64","nodeType":"YulIdentifier","src":"8409:10:64"}],"functionName":{"name":"mstore","nativeSrc":"8398:6:64","nodeType":"YulIdentifier","src":"8398:6:64"},"nativeSrc":"8398:22:64","nodeType":"YulFunctionCall","src":"8398:22:64"},"nativeSrc":"8398:22:64","nodeType":"YulExpressionStatement","src":"8398:22:64"}]},"name":"finalize_allocation","nativeSrc":"8145:281:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"8174:6:64","nodeType":"YulTypedName","src":"8174:6:64","type":""},{"name":"size","nativeSrc":"8182:4:64","nodeType":"YulTypedName","src":"8182:4:64","type":""}],"src":"8145:281:64"},{"body":{"nativeSrc":"8473:88:64","nodeType":"YulBlock","src":"8473:88:64","statements":[{"nativeSrc":"8483:30:64","nodeType":"YulAssignment","src":"8483:30:64","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"8493:18:64","nodeType":"YulIdentifier","src":"8493:18:64"},"nativeSrc":"8493:20:64","nodeType":"YulFunctionCall","src":"8493:20:64"},"variableNames":[{"name":"memPtr","nativeSrc":"8483:6:64","nodeType":"YulIdentifier","src":"8483:6:64"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"8542:6:64","nodeType":"YulIdentifier","src":"8542:6:64"},{"name":"size","nativeSrc":"8550:4:64","nodeType":"YulIdentifier","src":"8550:4:64"}],"functionName":{"name":"finalize_allocation","nativeSrc":"8522:19:64","nodeType":"YulIdentifier","src":"8522:19:64"},"nativeSrc":"8522:33:64","nodeType":"YulFunctionCall","src":"8522:33:64"},"nativeSrc":"8522:33:64","nodeType":"YulExpressionStatement","src":"8522:33:64"}]},"name":"allocate_memory","nativeSrc":"8432:129:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"8457:4:64","nodeType":"YulTypedName","src":"8457:4:64","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"8466:6:64","nodeType":"YulTypedName","src":"8466:6:64","type":""}],"src":"8432:129:64"},{"body":{"nativeSrc":"8649:229:64","nodeType":"YulBlock","src":"8649:229:64","statements":[{"body":{"nativeSrc":"8754:22:64","nodeType":"YulBlock","src":"8754:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"8756:16:64","nodeType":"YulIdentifier","src":"8756:16:64"},"nativeSrc":"8756:18:64","nodeType":"YulFunctionCall","src":"8756:18:64"},"nativeSrc":"8756:18:64","nodeType":"YulExpressionStatement","src":"8756:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"8726:6:64","nodeType":"YulIdentifier","src":"8726:6:64"},{"kind":"number","nativeSrc":"8734:18:64","nodeType":"YulLiteral","src":"8734:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8723:2:64","nodeType":"YulIdentifier","src":"8723:2:64"},"nativeSrc":"8723:30:64","nodeType":"YulFunctionCall","src":"8723:30:64"},"nativeSrc":"8720:56:64","nodeType":"YulIf","src":"8720:56:64"},{"nativeSrc":"8786:25:64","nodeType":"YulAssignment","src":"8786:25:64","value":{"arguments":[{"name":"length","nativeSrc":"8798:6:64","nodeType":"YulIdentifier","src":"8798:6:64"},{"kind":"number","nativeSrc":"8806:4:64","nodeType":"YulLiteral","src":"8806:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"8794:3:64","nodeType":"YulIdentifier","src":"8794:3:64"},"nativeSrc":"8794:17:64","nodeType":"YulFunctionCall","src":"8794:17:64"},"variableNames":[{"name":"size","nativeSrc":"8786:4:64","nodeType":"YulIdentifier","src":"8786:4:64"}]},{"nativeSrc":"8848:23:64","nodeType":"YulAssignment","src":"8848:23:64","value":{"arguments":[{"name":"size","nativeSrc":"8860:4:64","nodeType":"YulIdentifier","src":"8860:4:64"},{"kind":"number","nativeSrc":"8866:4:64","nodeType":"YulLiteral","src":"8866:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8856:3:64","nodeType":"YulIdentifier","src":"8856:3:64"},"nativeSrc":"8856:15:64","nodeType":"YulFunctionCall","src":"8856:15:64"},"variableNames":[{"name":"size","nativeSrc":"8848:4:64","nodeType":"YulIdentifier","src":"8848:4:64"}]}]},"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8567:311:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"8633:6:64","nodeType":"YulTypedName","src":"8633:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"8644:4:64","nodeType":"YulTypedName","src":"8644:4:64","type":""}],"src":"8567:311:64"},{"body":{"nativeSrc":"9003:608:64","nodeType":"YulBlock","src":"9003:608:64","statements":[{"nativeSrc":"9013:90:64","nodeType":"YulAssignment","src":"9013:90:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"9095:6:64","nodeType":"YulIdentifier","src":"9095:6:64"}],"functionName":{"name":"array_allocation_size_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9038:56:64","nodeType":"YulIdentifier","src":"9038:56:64"},"nativeSrc":"9038:64:64","nodeType":"YulFunctionCall","src":"9038:64:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"9022:15:64","nodeType":"YulIdentifier","src":"9022:15:64"},"nativeSrc":"9022:81:64","nodeType":"YulFunctionCall","src":"9022:81:64"},"variableNames":[{"name":"array","nativeSrc":"9013:5:64","nodeType":"YulIdentifier","src":"9013:5:64"}]},{"nativeSrc":"9112:16:64","nodeType":"YulVariableDeclaration","src":"9112:16:64","value":{"name":"array","nativeSrc":"9123:5:64","nodeType":"YulIdentifier","src":"9123:5:64"},"variables":[{"name":"dst","nativeSrc":"9116:3:64","nodeType":"YulTypedName","src":"9116:3:64","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"9145:5:64","nodeType":"YulIdentifier","src":"9145:5:64"},{"name":"length","nativeSrc":"9152:6:64","nodeType":"YulIdentifier","src":"9152:6:64"}],"functionName":{"name":"mstore","nativeSrc":"9138:6:64","nodeType":"YulIdentifier","src":"9138:6:64"},"nativeSrc":"9138:21:64","nodeType":"YulFunctionCall","src":"9138:21:64"},"nativeSrc":"9138:21:64","nodeType":"YulExpressionStatement","src":"9138:21:64"},{"nativeSrc":"9168:23:64","nodeType":"YulAssignment","src":"9168:23:64","value":{"arguments":[{"name":"array","nativeSrc":"9179:5:64","nodeType":"YulIdentifier","src":"9179:5:64"},{"kind":"number","nativeSrc":"9186:4:64","nodeType":"YulLiteral","src":"9186:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9175:3:64","nodeType":"YulIdentifier","src":"9175:3:64"},"nativeSrc":"9175:16:64","nodeType":"YulFunctionCall","src":"9175:16:64"},"variableNames":[{"name":"dst","nativeSrc":"9168:3:64","nodeType":"YulIdentifier","src":"9168:3:64"}]},{"nativeSrc":"9201:44:64","nodeType":"YulVariableDeclaration","src":"9201:44:64","value":{"arguments":[{"name":"offset","nativeSrc":"9219:6:64","nodeType":"YulIdentifier","src":"9219:6:64"},{"arguments":[{"name":"length","nativeSrc":"9231:6:64","nodeType":"YulIdentifier","src":"9231:6:64"},{"kind":"number","nativeSrc":"9239:4:64","nodeType":"YulLiteral","src":"9239:4:64","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"9227:3:64","nodeType":"YulIdentifier","src":"9227:3:64"},"nativeSrc":"9227:17:64","nodeType":"YulFunctionCall","src":"9227:17:64"}],"functionName":{"name":"add","nativeSrc":"9215:3:64","nodeType":"YulIdentifier","src":"9215:3:64"},"nativeSrc":"9215:30:64","nodeType":"YulFunctionCall","src":"9215:30:64"},"variables":[{"name":"srcEnd","nativeSrc":"9205:6:64","nodeType":"YulTypedName","src":"9205:6:64","type":""}]},{"body":{"nativeSrc":"9273:103:64","nodeType":"YulBlock","src":"9273:103:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"9287:77:64","nodeType":"YulIdentifier","src":"9287:77:64"},"nativeSrc":"9287:79:64","nodeType":"YulFunctionCall","src":"9287:79:64"},"nativeSrc":"9287:79:64","nodeType":"YulExpressionStatement","src":"9287:79:64"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"9260:6:64","nodeType":"YulIdentifier","src":"9260:6:64"},{"name":"end","nativeSrc":"9268:3:64","nodeType":"YulIdentifier","src":"9268:3:64"}],"functionName":{"name":"gt","nativeSrc":"9257:2:64","nodeType":"YulIdentifier","src":"9257:2:64"},"nativeSrc":"9257:15:64","nodeType":"YulFunctionCall","src":"9257:15:64"},"nativeSrc":"9254:122:64","nodeType":"YulIf","src":"9254:122:64"},{"body":{"nativeSrc":"9461:144:64","nodeType":"YulBlock","src":"9461:144:64","statements":[{"nativeSrc":"9476:21:64","nodeType":"YulVariableDeclaration","src":"9476:21:64","value":{"name":"src","nativeSrc":"9494:3:64","nodeType":"YulIdentifier","src":"9494:3:64"},"variables":[{"name":"elementPos","nativeSrc":"9480:10:64","nodeType":"YulTypedName","src":"9480:10:64","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"9518:3:64","nodeType":"YulIdentifier","src":"9518:3:64"},{"arguments":[{"name":"elementPos","nativeSrc":"9544:10:64","nodeType":"YulIdentifier","src":"9544:10:64"},{"name":"end","nativeSrc":"9556:3:64","nodeType":"YulIdentifier","src":"9556:3:64"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"9523:20:64","nodeType":"YulIdentifier","src":"9523:20:64"},"nativeSrc":"9523:37:64","nodeType":"YulFunctionCall","src":"9523:37:64"}],"functionName":{"name":"mstore","nativeSrc":"9511:6:64","nodeType":"YulIdentifier","src":"9511:6:64"},"nativeSrc":"9511:50:64","nodeType":"YulFunctionCall","src":"9511:50:64"},"nativeSrc":"9511:50:64","nodeType":"YulExpressionStatement","src":"9511:50:64"},{"nativeSrc":"9574:21:64","nodeType":"YulAssignment","src":"9574:21:64","value":{"arguments":[{"name":"dst","nativeSrc":"9585:3:64","nodeType":"YulIdentifier","src":"9585:3:64"},{"kind":"number","nativeSrc":"9590:4:64","nodeType":"YulLiteral","src":"9590:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9581:3:64","nodeType":"YulIdentifier","src":"9581:3:64"},"nativeSrc":"9581:14:64","nodeType":"YulFunctionCall","src":"9581:14:64"},"variableNames":[{"name":"dst","nativeSrc":"9574:3:64","nodeType":"YulIdentifier","src":"9574:3:64"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"9414:3:64","nodeType":"YulIdentifier","src":"9414:3:64"},{"name":"srcEnd","nativeSrc":"9419:6:64","nodeType":"YulIdentifier","src":"9419:6:64"}],"functionName":{"name":"lt","nativeSrc":"9411:2:64","nodeType":"YulIdentifier","src":"9411:2:64"},"nativeSrc":"9411:15:64","nodeType":"YulFunctionCall","src":"9411:15:64"},"nativeSrc":"9385:220:64","nodeType":"YulForLoop","post":{"nativeSrc":"9427:25:64","nodeType":"YulBlock","src":"9427:25:64","statements":[{"nativeSrc":"9429:21:64","nodeType":"YulAssignment","src":"9429:21:64","value":{"arguments":[{"name":"src","nativeSrc":"9440:3:64","nodeType":"YulIdentifier","src":"9440:3:64"},{"kind":"number","nativeSrc":"9445:4:64","nodeType":"YulLiteral","src":"9445:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9436:3:64","nodeType":"YulIdentifier","src":"9436:3:64"},"nativeSrc":"9436:14:64","nodeType":"YulFunctionCall","src":"9436:14:64"},"variableNames":[{"name":"src","nativeSrc":"9429:3:64","nodeType":"YulIdentifier","src":"9429:3:64"}]}]},"pre":{"nativeSrc":"9389:21:64","nodeType":"YulBlock","src":"9389:21:64","statements":[{"nativeSrc":"9391:17:64","nodeType":"YulVariableDeclaration","src":"9391:17:64","value":{"name":"offset","nativeSrc":"9402:6:64","nodeType":"YulIdentifier","src":"9402:6:64"},"variables":[{"name":"src","nativeSrc":"9395:3:64","nodeType":"YulTypedName","src":"9395:3:64","type":""}]}]},"src":"9385:220:64"}]},"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"8901:710:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"8973:6:64","nodeType":"YulTypedName","src":"8973:6:64","type":""},{"name":"length","nativeSrc":"8981:6:64","nodeType":"YulTypedName","src":"8981:6:64","type":""},{"name":"end","nativeSrc":"8989:3:64","nodeType":"YulTypedName","src":"8989:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"8997:5:64","nodeType":"YulTypedName","src":"8997:5:64","type":""}],"src":"8901:710:64"},{"body":{"nativeSrc":"9711:293:64","nodeType":"YulBlock","src":"9711:293:64","statements":[{"body":{"nativeSrc":"9760:83:64","nodeType":"YulBlock","src":"9760:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"9762:77:64","nodeType":"YulIdentifier","src":"9762:77:64"},"nativeSrc":"9762:79:64","nodeType":"YulFunctionCall","src":"9762:79:64"},"nativeSrc":"9762:79:64","nodeType":"YulExpressionStatement","src":"9762:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9739:6:64","nodeType":"YulIdentifier","src":"9739:6:64"},{"kind":"number","nativeSrc":"9747:4:64","nodeType":"YulLiteral","src":"9747:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"9735:3:64","nodeType":"YulIdentifier","src":"9735:3:64"},"nativeSrc":"9735:17:64","nodeType":"YulFunctionCall","src":"9735:17:64"},{"name":"end","nativeSrc":"9754:3:64","nodeType":"YulIdentifier","src":"9754:3:64"}],"functionName":{"name":"slt","nativeSrc":"9731:3:64","nodeType":"YulIdentifier","src":"9731:3:64"},"nativeSrc":"9731:27:64","nodeType":"YulFunctionCall","src":"9731:27:64"}],"functionName":{"name":"iszero","nativeSrc":"9724:6:64","nodeType":"YulIdentifier","src":"9724:6:64"},"nativeSrc":"9724:35:64","nodeType":"YulFunctionCall","src":"9724:35:64"},"nativeSrc":"9721:122:64","nodeType":"YulIf","src":"9721:122:64"},{"nativeSrc":"9852:34:64","nodeType":"YulVariableDeclaration","src":"9852:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"9879:6:64","nodeType":"YulIdentifier","src":"9879:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"9866:12:64","nodeType":"YulIdentifier","src":"9866:12:64"},"nativeSrc":"9866:20:64","nodeType":"YulFunctionCall","src":"9866:20:64"},"variables":[{"name":"length","nativeSrc":"9856:6:64","nodeType":"YulTypedName","src":"9856:6:64","type":""}]},{"nativeSrc":"9895:103:64","nodeType":"YulAssignment","src":"9895:103:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"9971:6:64","nodeType":"YulIdentifier","src":"9971:6:64"},{"kind":"number","nativeSrc":"9979:4:64","nodeType":"YulLiteral","src":"9979:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9967:3:64","nodeType":"YulIdentifier","src":"9967:3:64"},"nativeSrc":"9967:17:64","nodeType":"YulFunctionCall","src":"9967:17:64"},{"name":"length","nativeSrc":"9986:6:64","nodeType":"YulIdentifier","src":"9986:6:64"},{"name":"end","nativeSrc":"9994:3:64","nodeType":"YulIdentifier","src":"9994:3:64"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9904:62:64","nodeType":"YulIdentifier","src":"9904:62:64"},"nativeSrc":"9904:94:64","nodeType":"YulFunctionCall","src":"9904:94:64"},"variableNames":[{"name":"array","nativeSrc":"9895:5:64","nodeType":"YulIdentifier","src":"9895:5:64"}]}]},"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"9634:370:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"9689:6:64","nodeType":"YulTypedName","src":"9689:6:64","type":""},{"name":"end","nativeSrc":"9697:3:64","nodeType":"YulTypedName","src":"9697:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"9705:5:64","nodeType":"YulTypedName","src":"9705:5:64","type":""}],"src":"9634:370:64"},{"body":{"nativeSrc":"10101:448:64","nodeType":"YulBlock","src":"10101:448:64","statements":[{"body":{"nativeSrc":"10147:83:64","nodeType":"YulBlock","src":"10147:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"10149:77:64","nodeType":"YulIdentifier","src":"10149:77:64"},"nativeSrc":"10149:79:64","nodeType":"YulFunctionCall","src":"10149:79:64"},"nativeSrc":"10149:79:64","nodeType":"YulExpressionStatement","src":"10149:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"10122:7:64","nodeType":"YulIdentifier","src":"10122:7:64"},{"name":"headStart","nativeSrc":"10131:9:64","nodeType":"YulIdentifier","src":"10131:9:64"}],"functionName":{"name":"sub","nativeSrc":"10118:3:64","nodeType":"YulIdentifier","src":"10118:3:64"},"nativeSrc":"10118:23:64","nodeType":"YulFunctionCall","src":"10118:23:64"},{"kind":"number","nativeSrc":"10143:2:64","nodeType":"YulLiteral","src":"10143:2:64","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"10114:3:64","nodeType":"YulIdentifier","src":"10114:3:64"},"nativeSrc":"10114:32:64","nodeType":"YulFunctionCall","src":"10114:32:64"},"nativeSrc":"10111:119:64","nodeType":"YulIf","src":"10111:119:64"},{"nativeSrc":"10240:302:64","nodeType":"YulBlock","src":"10240:302:64","statements":[{"nativeSrc":"10255:45:64","nodeType":"YulVariableDeclaration","src":"10255:45:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10286:9:64","nodeType":"YulIdentifier","src":"10286:9:64"},{"kind":"number","nativeSrc":"10297:1:64","nodeType":"YulLiteral","src":"10297:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10282:3:64","nodeType":"YulIdentifier","src":"10282:3:64"},"nativeSrc":"10282:17:64","nodeType":"YulFunctionCall","src":"10282:17:64"}],"functionName":{"name":"calldataload","nativeSrc":"10269:12:64","nodeType":"YulIdentifier","src":"10269:12:64"},"nativeSrc":"10269:31:64","nodeType":"YulFunctionCall","src":"10269:31:64"},"variables":[{"name":"offset","nativeSrc":"10259:6:64","nodeType":"YulTypedName","src":"10259:6:64","type":""}]},{"body":{"nativeSrc":"10347:83:64","nodeType":"YulBlock","src":"10347:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"10349:77:64","nodeType":"YulIdentifier","src":"10349:77:64"},"nativeSrc":"10349:79:64","nodeType":"YulFunctionCall","src":"10349:79:64"},"nativeSrc":"10349:79:64","nodeType":"YulExpressionStatement","src":"10349:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10319:6:64","nodeType":"YulIdentifier","src":"10319:6:64"},{"kind":"number","nativeSrc":"10327:18:64","nodeType":"YulLiteral","src":"10327:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10316:2:64","nodeType":"YulIdentifier","src":"10316:2:64"},"nativeSrc":"10316:30:64","nodeType":"YulFunctionCall","src":"10316:30:64"},"nativeSrc":"10313:117:64","nodeType":"YulIf","src":"10313:117:64"},{"nativeSrc":"10444:88:64","nodeType":"YulAssignment","src":"10444:88:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10504:9:64","nodeType":"YulIdentifier","src":"10504:9:64"},{"name":"offset","nativeSrc":"10515:6:64","nodeType":"YulIdentifier","src":"10515:6:64"}],"functionName":{"name":"add","nativeSrc":"10500:3:64","nodeType":"YulIdentifier","src":"10500:3:64"},"nativeSrc":"10500:22:64","nodeType":"YulFunctionCall","src":"10500:22:64"},{"name":"dataEnd","nativeSrc":"10524:7:64","nodeType":"YulIdentifier","src":"10524:7:64"}],"functionName":{"name":"abi_decode_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10454:45:64","nodeType":"YulIdentifier","src":"10454:45:64"},"nativeSrc":"10454:78:64","nodeType":"YulFunctionCall","src":"10454:78:64"},"variableNames":[{"name":"value0","nativeSrc":"10444:6:64","nodeType":"YulIdentifier","src":"10444:6:64"}]}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr","nativeSrc":"10010:539:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10071:9:64","nodeType":"YulTypedName","src":"10071:9:64","type":""},{"name":"dataEnd","nativeSrc":"10082:7:64","nodeType":"YulTypedName","src":"10082:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"10094:6:64","nodeType":"YulTypedName","src":"10094:6:64","type":""}],"src":"10010:539:64"},{"body":{"nativeSrc":"10608:51:64","nodeType":"YulBlock","src":"10608:51:64","statements":[{"nativeSrc":"10618:35:64","nodeType":"YulAssignment","src":"10618:35:64","value":{"arguments":[{"name":"value","nativeSrc":"10647:5:64","nodeType":"YulIdentifier","src":"10647:5:64"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"10629:17:64","nodeType":"YulIdentifier","src":"10629:17:64"},"nativeSrc":"10629:24:64","nodeType":"YulFunctionCall","src":"10629:24:64"},"variableNames":[{"name":"cleaned","nativeSrc":"10618:7:64","nodeType":"YulIdentifier","src":"10618:7:64"}]}]},"name":"cleanup_t_address_payable","nativeSrc":"10555:104:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10590:5:64","nodeType":"YulTypedName","src":"10590:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"10600:7:64","nodeType":"YulTypedName","src":"10600:7:64","type":""}],"src":"10555:104:64"},{"body":{"nativeSrc":"10716:87:64","nodeType":"YulBlock","src":"10716:87:64","statements":[{"body":{"nativeSrc":"10781:16:64","nodeType":"YulBlock","src":"10781:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10790:1:64","nodeType":"YulLiteral","src":"10790:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"10793:1:64","nodeType":"YulLiteral","src":"10793:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"10783:6:64","nodeType":"YulIdentifier","src":"10783:6:64"},"nativeSrc":"10783:12:64","nodeType":"YulFunctionCall","src":"10783:12:64"},"nativeSrc":"10783:12:64","nodeType":"YulExpressionStatement","src":"10783:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10739:5:64","nodeType":"YulIdentifier","src":"10739:5:64"},{"arguments":[{"name":"value","nativeSrc":"10772:5:64","nodeType":"YulIdentifier","src":"10772:5:64"}],"functionName":{"name":"cleanup_t_address_payable","nativeSrc":"10746:25:64","nodeType":"YulIdentifier","src":"10746:25:64"},"nativeSrc":"10746:32:64","nodeType":"YulFunctionCall","src":"10746:32:64"}],"functionName":{"name":"eq","nativeSrc":"10736:2:64","nodeType":"YulIdentifier","src":"10736:2:64"},"nativeSrc":"10736:43:64","nodeType":"YulFunctionCall","src":"10736:43:64"}],"functionName":{"name":"iszero","nativeSrc":"10729:6:64","nodeType":"YulIdentifier","src":"10729:6:64"},"nativeSrc":"10729:51:64","nodeType":"YulFunctionCall","src":"10729:51:64"},"nativeSrc":"10726:71:64","nodeType":"YulIf","src":"10726:71:64"}]},"name":"validator_revert_t_address_payable","nativeSrc":"10665:138:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10709:5:64","nodeType":"YulTypedName","src":"10709:5:64","type":""}],"src":"10665:138:64"},{"body":{"nativeSrc":"10869:95:64","nodeType":"YulBlock","src":"10869:95:64","statements":[{"nativeSrc":"10879:29:64","nodeType":"YulAssignment","src":"10879:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"10901:6:64","nodeType":"YulIdentifier","src":"10901:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"10888:12:64","nodeType":"YulIdentifier","src":"10888:12:64"},"nativeSrc":"10888:20:64","nodeType":"YulFunctionCall","src":"10888:20:64"},"variableNames":[{"name":"value","nativeSrc":"10879:5:64","nodeType":"YulIdentifier","src":"10879:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"10952:5:64","nodeType":"YulIdentifier","src":"10952:5:64"}],"functionName":{"name":"validator_revert_t_address_payable","nativeSrc":"10917:34:64","nodeType":"YulIdentifier","src":"10917:34:64"},"nativeSrc":"10917:41:64","nodeType":"YulFunctionCall","src":"10917:41:64"},"nativeSrc":"10917:41:64","nodeType":"YulExpressionStatement","src":"10917:41:64"}]},"name":"abi_decode_t_address_payable","nativeSrc":"10809:155:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"10847:6:64","nodeType":"YulTypedName","src":"10847:6:64","type":""},{"name":"end","nativeSrc":"10855:3:64","nodeType":"YulTypedName","src":"10855:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10863:5:64","nodeType":"YulTypedName","src":"10863:5:64","type":""}],"src":"10809:155:64"},{"body":{"nativeSrc":"11015:32:64","nodeType":"YulBlock","src":"11015:32:64","statements":[{"nativeSrc":"11025:16:64","nodeType":"YulAssignment","src":"11025:16:64","value":{"name":"value","nativeSrc":"11036:5:64","nodeType":"YulIdentifier","src":"11036:5:64"},"variableNames":[{"name":"cleaned","nativeSrc":"11025:7:64","nodeType":"YulIdentifier","src":"11025:7:64"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"10970:77:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"10997:5:64","nodeType":"YulTypedName","src":"10997:5:64","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"11007:7:64","nodeType":"YulTypedName","src":"11007:7:64","type":""}],"src":"10970:77:64"},{"body":{"nativeSrc":"11096:79:64","nodeType":"YulBlock","src":"11096:79:64","statements":[{"body":{"nativeSrc":"11153:16:64","nodeType":"YulBlock","src":"11153:16:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11162:1:64","nodeType":"YulLiteral","src":"11162:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11165:1:64","nodeType":"YulLiteral","src":"11165:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11155:6:64","nodeType":"YulIdentifier","src":"11155:6:64"},"nativeSrc":"11155:12:64","nodeType":"YulFunctionCall","src":"11155:12:64"},"nativeSrc":"11155:12:64","nodeType":"YulExpressionStatement","src":"11155:12:64"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11119:5:64","nodeType":"YulIdentifier","src":"11119:5:64"},{"arguments":[{"name":"value","nativeSrc":"11144:5:64","nodeType":"YulIdentifier","src":"11144:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"11126:17:64","nodeType":"YulIdentifier","src":"11126:17:64"},"nativeSrc":"11126:24:64","nodeType":"YulFunctionCall","src":"11126:24:64"}],"functionName":{"name":"eq","nativeSrc":"11116:2:64","nodeType":"YulIdentifier","src":"11116:2:64"},"nativeSrc":"11116:35:64","nodeType":"YulFunctionCall","src":"11116:35:64"}],"functionName":{"name":"iszero","nativeSrc":"11109:6:64","nodeType":"YulIdentifier","src":"11109:6:64"},"nativeSrc":"11109:43:64","nodeType":"YulFunctionCall","src":"11109:43:64"},"nativeSrc":"11106:63:64","nodeType":"YulIf","src":"11106:63:64"}]},"name":"validator_revert_t_bytes32","nativeSrc":"11053:122:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"11089:5:64","nodeType":"YulTypedName","src":"11089:5:64","type":""}],"src":"11053:122:64"},{"body":{"nativeSrc":"11233:87:64","nodeType":"YulBlock","src":"11233:87:64","statements":[{"nativeSrc":"11243:29:64","nodeType":"YulAssignment","src":"11243:29:64","value":{"arguments":[{"name":"offset","nativeSrc":"11265:6:64","nodeType":"YulIdentifier","src":"11265:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"11252:12:64","nodeType":"YulIdentifier","src":"11252:12:64"},"nativeSrc":"11252:20:64","nodeType":"YulFunctionCall","src":"11252:20:64"},"variableNames":[{"name":"value","nativeSrc":"11243:5:64","nodeType":"YulIdentifier","src":"11243:5:64"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"11308:5:64","nodeType":"YulIdentifier","src":"11308:5:64"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"11281:26:64","nodeType":"YulIdentifier","src":"11281:26:64"},"nativeSrc":"11281:33:64","nodeType":"YulFunctionCall","src":"11281:33:64"},"nativeSrc":"11281:33:64","nodeType":"YulExpressionStatement","src":"11281:33:64"}]},"name":"abi_decode_t_bytes32","nativeSrc":"11181:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"11211:6:64","nodeType":"YulTypedName","src":"11211:6:64","type":""},{"name":"end","nativeSrc":"11219:3:64","nodeType":"YulTypedName","src":"11219:3:64","type":""}],"returnVariables":[{"name":"value","nativeSrc":"11227:5:64","nodeType":"YulTypedName","src":"11227:5:64","type":""}],"src":"11181:139:64"},{"body":{"nativeSrc":"11415:28:64","nodeType":"YulBlock","src":"11415:28:64","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11432:1:64","nodeType":"YulLiteral","src":"11432:1:64","type":"","value":"0"},{"kind":"number","nativeSrc":"11435:1:64","nodeType":"YulLiteral","src":"11435:1:64","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"11425:6:64","nodeType":"YulIdentifier","src":"11425:6:64"},"nativeSrc":"11425:12:64","nodeType":"YulFunctionCall","src":"11425:12:64"},"nativeSrc":"11425:12:64","nodeType":"YulExpressionStatement","src":"11425:12:64"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"11326:117:64","nodeType":"YulFunctionDefinition","src":"11326:117:64"},{"body":{"nativeSrc":"11515:241:64","nodeType":"YulBlock","src":"11515:241:64","statements":[{"body":{"nativeSrc":"11620:22:64","nodeType":"YulBlock","src":"11620:22:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"11622:16:64","nodeType":"YulIdentifier","src":"11622:16:64"},"nativeSrc":"11622:18:64","nodeType":"YulFunctionCall","src":"11622:18:64"},"nativeSrc":"11622:18:64","nodeType":"YulExpressionStatement","src":"11622:18:64"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"11592:6:64","nodeType":"YulIdentifier","src":"11592:6:64"},{"kind":"number","nativeSrc":"11600:18:64","nodeType":"YulLiteral","src":"11600:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11589:2:64","nodeType":"YulIdentifier","src":"11589:2:64"},"nativeSrc":"11589:30:64","nodeType":"YulFunctionCall","src":"11589:30:64"},"nativeSrc":"11586:56:64","nodeType":"YulIf","src":"11586:56:64"},{"nativeSrc":"11652:37:64","nodeType":"YulAssignment","src":"11652:37:64","value":{"arguments":[{"name":"length","nativeSrc":"11682:6:64","nodeType":"YulIdentifier","src":"11682:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"11660:21:64","nodeType":"YulIdentifier","src":"11660:21:64"},"nativeSrc":"11660:29:64","nodeType":"YulFunctionCall","src":"11660:29:64"},"variableNames":[{"name":"size","nativeSrc":"11652:4:64","nodeType":"YulIdentifier","src":"11652:4:64"}]},{"nativeSrc":"11726:23:64","nodeType":"YulAssignment","src":"11726:23:64","value":{"arguments":[{"name":"size","nativeSrc":"11738:4:64","nodeType":"YulIdentifier","src":"11738:4:64"},{"kind":"number","nativeSrc":"11744:4:64","nodeType":"YulLiteral","src":"11744:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11734:3:64","nodeType":"YulIdentifier","src":"11734:3:64"},"nativeSrc":"11734:15:64","nodeType":"YulFunctionCall","src":"11734:15:64"},"variableNames":[{"name":"size","nativeSrc":"11726:4:64","nodeType":"YulIdentifier","src":"11726:4:64"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"11449:307:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"11499:6:64","nodeType":"YulTypedName","src":"11499:6:64","type":""}],"returnVariables":[{"name":"size","nativeSrc":"11510:4:64","nodeType":"YulTypedName","src":"11510:4:64","type":""}],"src":"11449:307:64"},{"body":{"nativeSrc":"11826:84:64","nodeType":"YulBlock","src":"11826:84:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"11850:3:64","nodeType":"YulIdentifier","src":"11850:3:64"},{"name":"src","nativeSrc":"11855:3:64","nodeType":"YulIdentifier","src":"11855:3:64"},{"name":"length","nativeSrc":"11860:6:64","nodeType":"YulIdentifier","src":"11860:6:64"}],"functionName":{"name":"calldatacopy","nativeSrc":"11837:12:64","nodeType":"YulIdentifier","src":"11837:12:64"},"nativeSrc":"11837:30:64","nodeType":"YulFunctionCall","src":"11837:30:64"},"nativeSrc":"11837:30:64","nodeType":"YulExpressionStatement","src":"11837:30:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"11887:3:64","nodeType":"YulIdentifier","src":"11887:3:64"},{"name":"length","nativeSrc":"11892:6:64","nodeType":"YulIdentifier","src":"11892:6:64"}],"functionName":{"name":"add","nativeSrc":"11883:3:64","nodeType":"YulIdentifier","src":"11883:3:64"},"nativeSrc":"11883:16:64","nodeType":"YulFunctionCall","src":"11883:16:64"},{"kind":"number","nativeSrc":"11901:1:64","nodeType":"YulLiteral","src":"11901:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"11876:6:64","nodeType":"YulIdentifier","src":"11876:6:64"},"nativeSrc":"11876:27:64","nodeType":"YulFunctionCall","src":"11876:27:64"},"nativeSrc":"11876:27:64","nodeType":"YulExpressionStatement","src":"11876:27:64"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"11762:148:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11808:3:64","nodeType":"YulTypedName","src":"11808:3:64","type":""},{"name":"dst","nativeSrc":"11813:3:64","nodeType":"YulTypedName","src":"11813:3:64","type":""},{"name":"length","nativeSrc":"11818:6:64","nodeType":"YulTypedName","src":"11818:6:64","type":""}],"src":"11762:148:64"},{"body":{"nativeSrc":"11999:340:64","nodeType":"YulBlock","src":"11999:340:64","statements":[{"nativeSrc":"12009:74:64","nodeType":"YulAssignment","src":"12009:74:64","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"12075:6:64","nodeType":"YulIdentifier","src":"12075:6:64"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"12034:40:64","nodeType":"YulIdentifier","src":"12034:40:64"},"nativeSrc":"12034:48:64","nodeType":"YulFunctionCall","src":"12034:48:64"}],"functionName":{"name":"allocate_memory","nativeSrc":"12018:15:64","nodeType":"YulIdentifier","src":"12018:15:64"},"nativeSrc":"12018:65:64","nodeType":"YulFunctionCall","src":"12018:65:64"},"variableNames":[{"name":"array","nativeSrc":"12009:5:64","nodeType":"YulIdentifier","src":"12009:5:64"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"12099:5:64","nodeType":"YulIdentifier","src":"12099:5:64"},{"name":"length","nativeSrc":"12106:6:64","nodeType":"YulIdentifier","src":"12106:6:64"}],"functionName":{"name":"mstore","nativeSrc":"12092:6:64","nodeType":"YulIdentifier","src":"12092:6:64"},"nativeSrc":"12092:21:64","nodeType":"YulFunctionCall","src":"12092:21:64"},"nativeSrc":"12092:21:64","nodeType":"YulExpressionStatement","src":"12092:21:64"},{"nativeSrc":"12122:27:64","nodeType":"YulVariableDeclaration","src":"12122:27:64","value":{"arguments":[{"name":"array","nativeSrc":"12137:5:64","nodeType":"YulIdentifier","src":"12137:5:64"},{"kind":"number","nativeSrc":"12144:4:64","nodeType":"YulLiteral","src":"12144:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12133:3:64","nodeType":"YulIdentifier","src":"12133:3:64"},"nativeSrc":"12133:16:64","nodeType":"YulFunctionCall","src":"12133:16:64"},"variables":[{"name":"dst","nativeSrc":"12126:3:64","nodeType":"YulTypedName","src":"12126:3:64","type":""}]},{"body":{"nativeSrc":"12187:83:64","nodeType":"YulBlock","src":"12187:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"12189:77:64","nodeType":"YulIdentifier","src":"12189:77:64"},"nativeSrc":"12189:79:64","nodeType":"YulFunctionCall","src":"12189:79:64"},"nativeSrc":"12189:79:64","nodeType":"YulExpressionStatement","src":"12189:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"12168:3:64","nodeType":"YulIdentifier","src":"12168:3:64"},{"name":"length","nativeSrc":"12173:6:64","nodeType":"YulIdentifier","src":"12173:6:64"}],"functionName":{"name":"add","nativeSrc":"12164:3:64","nodeType":"YulIdentifier","src":"12164:3:64"},"nativeSrc":"12164:16:64","nodeType":"YulFunctionCall","src":"12164:16:64"},{"name":"end","nativeSrc":"12182:3:64","nodeType":"YulIdentifier","src":"12182:3:64"}],"functionName":{"name":"gt","nativeSrc":"12161:2:64","nodeType":"YulIdentifier","src":"12161:2:64"},"nativeSrc":"12161:25:64","nodeType":"YulFunctionCall","src":"12161:25:64"},"nativeSrc":"12158:112:64","nodeType":"YulIf","src":"12158:112:64"},{"expression":{"arguments":[{"name":"src","nativeSrc":"12316:3:64","nodeType":"YulIdentifier","src":"12316:3:64"},{"name":"dst","nativeSrc":"12321:3:64","nodeType":"YulIdentifier","src":"12321:3:64"},{"name":"length","nativeSrc":"12326:6:64","nodeType":"YulIdentifier","src":"12326:6:64"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"12279:36:64","nodeType":"YulIdentifier","src":"12279:36:64"},"nativeSrc":"12279:54:64","nodeType":"YulFunctionCall","src":"12279:54:64"},"nativeSrc":"12279:54:64","nodeType":"YulExpressionStatement","src":"12279:54:64"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"11916:423:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"11972:3:64","nodeType":"YulTypedName","src":"11972:3:64","type":""},{"name":"length","nativeSrc":"11977:6:64","nodeType":"YulTypedName","src":"11977:6:64","type":""},{"name":"end","nativeSrc":"11985:3:64","nodeType":"YulTypedName","src":"11985:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"11993:5:64","nodeType":"YulTypedName","src":"11993:5:64","type":""}],"src":"11916:423:64"},{"body":{"nativeSrc":"12419:277:64","nodeType":"YulBlock","src":"12419:277:64","statements":[{"body":{"nativeSrc":"12468:83:64","nodeType":"YulBlock","src":"12468:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"12470:77:64","nodeType":"YulIdentifier","src":"12470:77:64"},"nativeSrc":"12470:79:64","nodeType":"YulFunctionCall","src":"12470:79:64"},"nativeSrc":"12470:79:64","nodeType":"YulExpressionStatement","src":"12470:79:64"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12447:6:64","nodeType":"YulIdentifier","src":"12447:6:64"},{"kind":"number","nativeSrc":"12455:4:64","nodeType":"YulLiteral","src":"12455:4:64","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"12443:3:64","nodeType":"YulIdentifier","src":"12443:3:64"},"nativeSrc":"12443:17:64","nodeType":"YulFunctionCall","src":"12443:17:64"},{"name":"end","nativeSrc":"12462:3:64","nodeType":"YulIdentifier","src":"12462:3:64"}],"functionName":{"name":"slt","nativeSrc":"12439:3:64","nodeType":"YulIdentifier","src":"12439:3:64"},"nativeSrc":"12439:27:64","nodeType":"YulFunctionCall","src":"12439:27:64"}],"functionName":{"name":"iszero","nativeSrc":"12432:6:64","nodeType":"YulIdentifier","src":"12432:6:64"},"nativeSrc":"12432:35:64","nodeType":"YulFunctionCall","src":"12432:35:64"},"nativeSrc":"12429:122:64","nodeType":"YulIf","src":"12429:122:64"},{"nativeSrc":"12560:34:64","nodeType":"YulVariableDeclaration","src":"12560:34:64","value":{"arguments":[{"name":"offset","nativeSrc":"12587:6:64","nodeType":"YulIdentifier","src":"12587:6:64"}],"functionName":{"name":"calldataload","nativeSrc":"12574:12:64","nodeType":"YulIdentifier","src":"12574:12:64"},"nativeSrc":"12574:20:64","nodeType":"YulFunctionCall","src":"12574:20:64"},"variables":[{"name":"length","nativeSrc":"12564:6:64","nodeType":"YulTypedName","src":"12564:6:64","type":""}]},{"nativeSrc":"12603:87:64","nodeType":"YulAssignment","src":"12603:87:64","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"12663:6:64","nodeType":"YulIdentifier","src":"12663:6:64"},{"kind":"number","nativeSrc":"12671:4:64","nodeType":"YulLiteral","src":"12671:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"12659:3:64","nodeType":"YulIdentifier","src":"12659:3:64"},"nativeSrc":"12659:17:64","nodeType":"YulFunctionCall","src":"12659:17:64"},{"name":"length","nativeSrc":"12678:6:64","nodeType":"YulIdentifier","src":"12678:6:64"},{"name":"end","nativeSrc":"12686:3:64","nodeType":"YulIdentifier","src":"12686:3:64"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"12612:46:64","nodeType":"YulIdentifier","src":"12612:46:64"},"nativeSrc":"12612:78:64","nodeType":"YulFunctionCall","src":"12612:78:64"},"variableNames":[{"name":"array","nativeSrc":"12603:5:64","nodeType":"YulIdentifier","src":"12603:5:64"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"12358:338:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12397:6:64","nodeType":"YulTypedName","src":"12397:6:64","type":""},{"name":"end","nativeSrc":"12405:3:64","nodeType":"YulTypedName","src":"12405:3:64","type":""}],"returnVariables":[{"name":"array","nativeSrc":"12413:5:64","nodeType":"YulTypedName","src":"12413:5:64","type":""}],"src":"12358:338:64"},{"body":{"nativeSrc":"12819:696:64","nodeType":"YulBlock","src":"12819:696:64","statements":[{"body":{"nativeSrc":"12865:83:64","nodeType":"YulBlock","src":"12865:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"12867:77:64","nodeType":"YulIdentifier","src":"12867:77:64"},"nativeSrc":"12867:79:64","nodeType":"YulFunctionCall","src":"12867:79:64"},"nativeSrc":"12867:79:64","nodeType":"YulExpressionStatement","src":"12867:79:64"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"12840:7:64","nodeType":"YulIdentifier","src":"12840:7:64"},{"name":"headStart","nativeSrc":"12849:9:64","nodeType":"YulIdentifier","src":"12849:9:64"}],"functionName":{"name":"sub","nativeSrc":"12836:3:64","nodeType":"YulIdentifier","src":"12836:3:64"},"nativeSrc":"12836:23:64","nodeType":"YulFunctionCall","src":"12836:23:64"},{"kind":"number","nativeSrc":"12861:2:64","nodeType":"YulLiteral","src":"12861:2:64","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"12832:3:64","nodeType":"YulIdentifier","src":"12832:3:64"},"nativeSrc":"12832:32:64","nodeType":"YulFunctionCall","src":"12832:32:64"},"nativeSrc":"12829:119:64","nodeType":"YulIf","src":"12829:119:64"},{"nativeSrc":"12958:125:64","nodeType":"YulBlock","src":"12958:125:64","statements":[{"nativeSrc":"12973:15:64","nodeType":"YulVariableDeclaration","src":"12973:15:64","value":{"kind":"number","nativeSrc":"12987:1:64","nodeType":"YulLiteral","src":"12987:1:64","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"12977:6:64","nodeType":"YulTypedName","src":"12977:6:64","type":""}]},{"nativeSrc":"13002:71:64","nodeType":"YulAssignment","src":"13002:71:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13045:9:64","nodeType":"YulIdentifier","src":"13045:9:64"},{"name":"offset","nativeSrc":"13056:6:64","nodeType":"YulIdentifier","src":"13056:6:64"}],"functionName":{"name":"add","nativeSrc":"13041:3:64","nodeType":"YulIdentifier","src":"13041:3:64"},"nativeSrc":"13041:22:64","nodeType":"YulFunctionCall","src":"13041:22:64"},{"name":"dataEnd","nativeSrc":"13065:7:64","nodeType":"YulIdentifier","src":"13065:7:64"}],"functionName":{"name":"abi_decode_t_address_payable","nativeSrc":"13012:28:64","nodeType":"YulIdentifier","src":"13012:28:64"},"nativeSrc":"13012:61:64","nodeType":"YulFunctionCall","src":"13012:61:64"},"variableNames":[{"name":"value0","nativeSrc":"13002:6:64","nodeType":"YulIdentifier","src":"13002:6:64"}]}]},{"nativeSrc":"13093:118:64","nodeType":"YulBlock","src":"13093:118:64","statements":[{"nativeSrc":"13108:16:64","nodeType":"YulVariableDeclaration","src":"13108:16:64","value":{"kind":"number","nativeSrc":"13122:2:64","nodeType":"YulLiteral","src":"13122:2:64","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"13112:6:64","nodeType":"YulTypedName","src":"13112:6:64","type":""}]},{"nativeSrc":"13138:63:64","nodeType":"YulAssignment","src":"13138:63:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13173:9:64","nodeType":"YulIdentifier","src":"13173:9:64"},{"name":"offset","nativeSrc":"13184:6:64","nodeType":"YulIdentifier","src":"13184:6:64"}],"functionName":{"name":"add","nativeSrc":"13169:3:64","nodeType":"YulIdentifier","src":"13169:3:64"},"nativeSrc":"13169:22:64","nodeType":"YulFunctionCall","src":"13169:22:64"},{"name":"dataEnd","nativeSrc":"13193:7:64","nodeType":"YulIdentifier","src":"13193:7:64"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"13148:20:64","nodeType":"YulIdentifier","src":"13148:20:64"},"nativeSrc":"13148:53:64","nodeType":"YulFunctionCall","src":"13148:53:64"},"variableNames":[{"name":"value1","nativeSrc":"13138:6:64","nodeType":"YulIdentifier","src":"13138:6:64"}]}]},{"nativeSrc":"13221:287:64","nodeType":"YulBlock","src":"13221:287:64","statements":[{"nativeSrc":"13236:46:64","nodeType":"YulVariableDeclaration","src":"13236:46:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13267:9:64","nodeType":"YulIdentifier","src":"13267:9:64"},{"kind":"number","nativeSrc":"13278:2:64","nodeType":"YulLiteral","src":"13278:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"13263:3:64","nodeType":"YulIdentifier","src":"13263:3:64"},"nativeSrc":"13263:18:64","nodeType":"YulFunctionCall","src":"13263:18:64"}],"functionName":{"name":"calldataload","nativeSrc":"13250:12:64","nodeType":"YulIdentifier","src":"13250:12:64"},"nativeSrc":"13250:32:64","nodeType":"YulFunctionCall","src":"13250:32:64"},"variables":[{"name":"offset","nativeSrc":"13240:6:64","nodeType":"YulTypedName","src":"13240:6:64","type":""}]},{"body":{"nativeSrc":"13329:83:64","nodeType":"YulBlock","src":"13329:83:64","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"13331:77:64","nodeType":"YulIdentifier","src":"13331:77:64"},"nativeSrc":"13331:79:64","nodeType":"YulFunctionCall","src":"13331:79:64"},"nativeSrc":"13331:79:64","nodeType":"YulExpressionStatement","src":"13331:79:64"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"13301:6:64","nodeType":"YulIdentifier","src":"13301:6:64"},{"kind":"number","nativeSrc":"13309:18:64","nodeType":"YulLiteral","src":"13309:18:64","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"13298:2:64","nodeType":"YulIdentifier","src":"13298:2:64"},"nativeSrc":"13298:30:64","nodeType":"YulFunctionCall","src":"13298:30:64"},"nativeSrc":"13295:117:64","nodeType":"YulIf","src":"13295:117:64"},{"nativeSrc":"13426:72:64","nodeType":"YulAssignment","src":"13426:72:64","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13470:9:64","nodeType":"YulIdentifier","src":"13470:9:64"},{"name":"offset","nativeSrc":"13481:6:64","nodeType":"YulIdentifier","src":"13481:6:64"}],"functionName":{"name":"add","nativeSrc":"13466:3:64","nodeType":"YulIdentifier","src":"13466:3:64"},"nativeSrc":"13466:22:64","nodeType":"YulFunctionCall","src":"13466:22:64"},{"name":"dataEnd","nativeSrc":"13490:7:64","nodeType":"YulIdentifier","src":"13490:7:64"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"13436:29:64","nodeType":"YulIdentifier","src":"13436:29:64"},"nativeSrc":"13436:62:64","nodeType":"YulFunctionCall","src":"13436:62:64"},"variableNames":[{"name":"value2","nativeSrc":"13426:6:64","nodeType":"YulIdentifier","src":"13426:6:64"}]}]}]},"name":"abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr","nativeSrc":"12702:813:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12773:9:64","nodeType":"YulTypedName","src":"12773:9:64","type":""},{"name":"dataEnd","nativeSrc":"12784:7:64","nodeType":"YulTypedName","src":"12784:7:64","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"12796:6:64","nodeType":"YulTypedName","src":"12796:6:64","type":""},{"name":"value1","nativeSrc":"12804:6:64","nodeType":"YulTypedName","src":"12804:6:64","type":""},{"name":"value2","nativeSrc":"12812:6:64","nodeType":"YulTypedName","src":"12812:6:64","type":""}],"src":"12702:813:64"},{"body":{"nativeSrc":"13586:53:64","nodeType":"YulBlock","src":"13586:53:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13603:3:64","nodeType":"YulIdentifier","src":"13603:3:64"},{"arguments":[{"name":"value","nativeSrc":"13626:5:64","nodeType":"YulIdentifier","src":"13626:5:64"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"13608:17:64","nodeType":"YulIdentifier","src":"13608:17:64"},"nativeSrc":"13608:24:64","nodeType":"YulFunctionCall","src":"13608:24:64"}],"functionName":{"name":"mstore","nativeSrc":"13596:6:64","nodeType":"YulIdentifier","src":"13596:6:64"},"nativeSrc":"13596:37:64","nodeType":"YulFunctionCall","src":"13596:37:64"},"nativeSrc":"13596:37:64","nodeType":"YulExpressionStatement","src":"13596:37:64"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"13521:118:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13574:5:64","nodeType":"YulTypedName","src":"13574:5:64","type":""},{"name":"pos","nativeSrc":"13581:3:64","nodeType":"YulTypedName","src":"13581:3:64","type":""}],"src":"13521:118:64"},{"body":{"nativeSrc":"13703:40:64","nodeType":"YulBlock","src":"13703:40:64","statements":[{"nativeSrc":"13714:22:64","nodeType":"YulAssignment","src":"13714:22:64","value":{"arguments":[{"name":"value","nativeSrc":"13730:5:64","nodeType":"YulIdentifier","src":"13730:5:64"}],"functionName":{"name":"mload","nativeSrc":"13724:5:64","nodeType":"YulIdentifier","src":"13724:5:64"},"nativeSrc":"13724:12:64","nodeType":"YulFunctionCall","src":"13724:12:64"},"variableNames":[{"name":"length","nativeSrc":"13714:6:64","nodeType":"YulIdentifier","src":"13714:6:64"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"13645:98:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13686:5:64","nodeType":"YulTypedName","src":"13686:5:64","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13696:6:64","nodeType":"YulTypedName","src":"13696:6:64","type":""}],"src":"13645:98:64"},{"body":{"nativeSrc":"13844:73:64","nodeType":"YulBlock","src":"13844:73:64","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13861:3:64","nodeType":"YulIdentifier","src":"13861:3:64"},{"name":"length","nativeSrc":"13866:6:64","nodeType":"YulIdentifier","src":"13866:6:64"}],"functionName":{"name":"mstore","nativeSrc":"13854:6:64","nodeType":"YulIdentifier","src":"13854:6:64"},"nativeSrc":"13854:19:64","nodeType":"YulFunctionCall","src":"13854:19:64"},"nativeSrc":"13854:19:64","nodeType":"YulExpressionStatement","src":"13854:19:64"},{"nativeSrc":"13882:29:64","nodeType":"YulAssignment","src":"13882:29:64","value":{"arguments":[{"name":"pos","nativeSrc":"13901:3:64","nodeType":"YulIdentifier","src":"13901:3:64"},{"kind":"number","nativeSrc":"13906:4:64","nodeType":"YulLiteral","src":"13906:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13897:3:64","nodeType":"YulIdentifier","src":"13897:3:64"},"nativeSrc":"13897:14:64","nodeType":"YulFunctionCall","src":"13897:14:64"},"variableNames":[{"name":"updated_pos","nativeSrc":"13882:11:64","nodeType":"YulIdentifier","src":"13882:11:64"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"13749:168:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13816:3:64","nodeType":"YulTypedName","src":"13816:3:64","type":""},{"name":"length","nativeSrc":"13821:6:64","nodeType":"YulTypedName","src":"13821:6:64","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13832:11:64","nodeType":"YulTypedName","src":"13832:11:64","type":""}],"src":"13749:168:64"},{"body":{"nativeSrc":"13985:77:64","nodeType":"YulBlock","src":"13985:77:64","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"14002:3:64","nodeType":"YulIdentifier","src":"14002:3:64"},{"name":"src","nativeSrc":"14007:3:64","nodeType":"YulIdentifier","src":"14007:3:64"},{"name":"length","nativeSrc":"14012:6:64","nodeType":"YulIdentifier","src":"14012:6:64"}],"functionName":{"name":"mcopy","nativeSrc":"13996:5:64","nodeType":"YulIdentifier","src":"13996:5:64"},"nativeSrc":"13996:23:64","nodeType":"YulFunctionCall","src":"13996:23:64"},"nativeSrc":"13996:23:64","nodeType":"YulExpressionStatement","src":"13996:23:64"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"14039:3:64","nodeType":"YulIdentifier","src":"14039:3:64"},{"name":"length","nativeSrc":"14044:6:64","nodeType":"YulIdentifier","src":"14044:6:64"}],"functionName":{"name":"add","nativeSrc":"14035:3:64","nodeType":"YulIdentifier","src":"14035:3:64"},"nativeSrc":"14035:16:64","nodeType":"YulFunctionCall","src":"14035:16:64"},{"kind":"number","nativeSrc":"14053:1:64","nodeType":"YulLiteral","src":"14053:1:64","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"14028:6:64","nodeType":"YulIdentifier","src":"14028:6:64"},"nativeSrc":"14028:27:64","nodeType":"YulFunctionCall","src":"14028:27:64"},"nativeSrc":"14028:27:64","nodeType":"YulExpressionStatement","src":"14028:27:64"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13923:139:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"13967:3:64","nodeType":"YulTypedName","src":"13967:3:64","type":""},{"name":"dst","nativeSrc":"13972:3:64","nodeType":"YulTypedName","src":"13972:3:64","type":""},{"name":"length","nativeSrc":"13977:6:64","nodeType":"YulTypedName","src":"13977:6:64","type":""}],"src":"13923:139:64"},{"body":{"nativeSrc":"14158:283:64","nodeType":"YulBlock","src":"14158:283:64","statements":[{"nativeSrc":"14168:52:64","nodeType":"YulVariableDeclaration","src":"14168:52:64","value":{"arguments":[{"name":"value","nativeSrc":"14214:5:64","nodeType":"YulIdentifier","src":"14214:5:64"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"14182:31:64","nodeType":"YulIdentifier","src":"14182:31:64"},"nativeSrc":"14182:38:64","nodeType":"YulFunctionCall","src":"14182:38:64"},"variables":[{"name":"length","nativeSrc":"14172:6:64","nodeType":"YulTypedName","src":"14172:6:64","type":""}]},{"nativeSrc":"14229:77:64","nodeType":"YulAssignment","src":"14229:77:64","value":{"arguments":[{"name":"pos","nativeSrc":"14294:3:64","nodeType":"YulIdentifier","src":"14294:3:64"},{"name":"length","nativeSrc":"14299:6:64","nodeType":"YulIdentifier","src":"14299:6:64"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"14236:57:64","nodeType":"YulIdentifier","src":"14236:57:64"},"nativeSrc":"14236:70:64","nodeType":"YulFunctionCall","src":"14236:70:64"},"variableNames":[{"name":"pos","nativeSrc":"14229:3:64","nodeType":"YulIdentifier","src":"14229:3:64"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14354:5:64","nodeType":"YulIdentifier","src":"14354:5:64"},{"kind":"number","nativeSrc":"14361:4:64","nodeType":"YulLiteral","src":"14361:4:64","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14350:3:64","nodeType":"YulIdentifier","src":"14350:3:64"},"nativeSrc":"14350:16:64","nodeType":"YulFunctionCall","src":"14350:16:64"},{"name":"pos","nativeSrc":"14368:3:64","nodeType":"YulIdentifier","src":"14368:3:64"},{"name":"length","nativeSrc":"14373:6:64","nodeType":"YulIdentifier","src":"14373:6:64"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"14315:34:64","nodeType":"YulIdentifier","src":"14315:34:64"},"nativeSrc":"14315:65:64","nodeType":"YulFunctionCall","src":"14315:65:64"},"nativeSrc":"14315:65:64","nodeType":"YulExpressionStatement","src":"14315:65:64"},{"nativeSrc":"14389:46:64","nodeType":"YulAssignment","src":"14389:46:64","value":{"arguments":[{"name":"pos","nativeSrc":"14400:3:64","nodeType":"YulIdentifier","src":"14400:3:64"},{"arguments":[{"name":"length","nativeSrc":"14427:6:64","nodeType":"YulIdentifier","src":"14427:6:64"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"14405:21:64","nodeType":"YulIdentifier","src":"14405:21:64"},"nativeSrc":"14405:29:64","nodeType":"YulFunctionCall","src":"14405:29:64"}],"functionName":{"name":"add","nativeSrc":"14396:3:64","nodeType":"YulIdentifier","src":"14396:3:64"},"nativeSrc":"14396:39:64","nodeType":"YulFunctionCall","src":"14396:39:64"},"variableNames":[{"name":"end","nativeSrc":"14389:3:64","nodeType":"YulIdentifier","src":"14389:3:64"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"14068:373:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14139:5:64","nodeType":"YulTypedName","src":"14139:5:64","type":""},{"name":"pos","nativeSrc":"14146:3:64","nodeType":"YulTypedName","src":"14146:3:64","type":""}],"returnVariables":[{"name":"end","nativeSrc":"14154:3:64","nodeType":"YulTypedName","src":"14154:3:64","type":""}],"src":"14068:373:64"},{"body":{"nativeSrc":"14619:357:64","nodeType":"YulBlock","src":"14619:357:64","statements":[{"nativeSrc":"14629:26:64","nodeType":"YulAssignment","src":"14629:26:64","value":{"arguments":[{"name":"headStart","nativeSrc":"14641:9:64","nodeType":"YulIdentifier","src":"14641:9:64"},{"kind":"number","nativeSrc":"14652:2:64","nodeType":"YulLiteral","src":"14652:2:64","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"14637:3:64","nodeType":"YulIdentifier","src":"14637:3:64"},"nativeSrc":"14637:18:64","nodeType":"YulFunctionCall","src":"14637:18:64"},"variableNames":[{"name":"tail","nativeSrc":"14629:4:64","nodeType":"YulIdentifier","src":"14629:4:64"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"14709:6:64","nodeType":"YulIdentifier","src":"14709:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"14722:9:64","nodeType":"YulIdentifier","src":"14722:9:64"},{"kind":"number","nativeSrc":"14733:1:64","nodeType":"YulLiteral","src":"14733:1:64","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14718:3:64","nodeType":"YulIdentifier","src":"14718:3:64"},"nativeSrc":"14718:17:64","nodeType":"YulFunctionCall","src":"14718:17:64"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"14665:43:64","nodeType":"YulIdentifier","src":"14665:43:64"},"nativeSrc":"14665:71:64","nodeType":"YulFunctionCall","src":"14665:71:64"},"nativeSrc":"14665:71:64","nodeType":"YulExpressionStatement","src":"14665:71:64"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"14790:6:64","nodeType":"YulIdentifier","src":"14790:6:64"},{"arguments":[{"name":"headStart","nativeSrc":"14803:9:64","nodeType":"YulIdentifier","src":"14803:9:64"},{"kind":"number","nativeSrc":"14814:2:64","nodeType":"YulLiteral","src":"14814:2:64","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"14799:3:64","nodeType":"YulIdentifier","src":"14799:3:64"},"nativeSrc":"14799:18:64","nodeType":"YulFunctionCall","src":"14799:18:64"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"14746:43:64","nodeType":"YulIdentifier","src":"14746:43:64"},"nativeSrc":"14746:72:64","nodeType":"YulFunctionCall","src":"14746:72:64"},"nativeSrc":"14746:72:64","nodeType":"YulExpressionStatement","src":"14746:72:64"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14839:9:64","nodeType":"YulIdentifier","src":"14839:9:64"},{"kind":"number","nativeSrc":"14850:2:64","nodeType":"YulLiteral","src":"14850:2:64","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"14835:3:64","nodeType":"YulIdentifier","src":"14835:3:64"},"nativeSrc":"14835:18:64","nodeType":"YulFunctionCall","src":"14835:18:64"},{"arguments":[{"name":"tail","nativeSrc":"14859:4:64","nodeType":"YulIdentifier","src":"14859:4:64"},{"name":"headStart","nativeSrc":"14865:9:64","nodeType":"YulIdentifier","src":"14865:9:64"}],"functionName":{"name":"sub","nativeSrc":"14855:3:64","nodeType":"YulIdentifier","src":"14855:3:64"},"nativeSrc":"14855:20:64","nodeType":"YulFunctionCall","src":"14855:20:64"}],"functionName":{"name":"mstore","nativeSrc":"14828:6:64","nodeType":"YulIdentifier","src":"14828:6:64"},"nativeSrc":"14828:48:64","nodeType":"YulFunctionCall","src":"14828:48:64"},"nativeSrc":"14828:48:64","nodeType":"YulExpressionStatement","src":"14828:48:64"},{"nativeSrc":"14885:84:64","nodeType":"YulAssignment","src":"14885:84:64","value":{"arguments":[{"name":"value2","nativeSrc":"14955:6:64","nodeType":"YulIdentifier","src":"14955:6:64"},{"name":"tail","nativeSrc":"14964:4:64","nodeType":"YulIdentifier","src":"14964:4:64"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"14893:61:64","nodeType":"YulIdentifier","src":"14893:61:64"},"nativeSrc":"14893:76:64","nodeType":"YulFunctionCall","src":"14893:76:64"},"variableNames":[{"name":"tail","nativeSrc":"14885:4:64","nodeType":"YulIdentifier","src":"14885:4:64"}]}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"14447:529:64","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14575:9:64","nodeType":"YulTypedName","src":"14575:9:64","type":""},{"name":"value2","nativeSrc":"14587:6:64","nodeType":"YulTypedName","src":"14587:6:64","type":""},{"name":"value1","nativeSrc":"14595:6:64","nodeType":"YulTypedName","src":"14595:6:64","type":""},{"name":"value0","nativeSrc":"14603:6:64","nodeType":"YulTypedName","src":"14603:6:64","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"14614:4:64","nodeType":"YulTypedName","src":"14614:4:64","type":""}],"src":"14447:529:64"}]},"contents":"{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n // bool[]\n function abi_decode_t_array$_t_bool_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_bool_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_bool_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n // bytes\n function abi_decode_t_bytes_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_bytes_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_address_payablet_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n mcopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_bytes_memory_ptr__to_t_address_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value2, tail)\n\n }\n\n}\n","id":64,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100c1575f3560e01c8063715018a61161007e578063c16e50ef11610058578063c16e50ef146101ff578063f04e283e1461023b578063f2fde38b14610257578063fee81cf414610273576100c1565b8063715018a61461018f578063736c0d5b146101995780638da5cb5b146101d5576100c1565b806301ffc9a7146100c5578063256929621461010157806328d6183b1461010b5780634359d28a14610135578063439fab911461015d57806354d1f13d14610185575b5f80fd5b3480156100d0575f80fd5b506100eb60048036038101906100e69190610d4c565b6102af565b6040516100f89190610d91565b60405180910390f35b610109610328565b005b348015610116575f80fd5b5061011f610379565b60405161012c9190610db9565b60405180910390f35b348015610140575f80fd5b5061015b60048036038101906101569190610e88565b6103a0565b005b348015610168575f80fd5b50610183600480360381019061017e9190610f5b565b6104a9565b005b61018d6105dc565b005b610197610615565b005b3480156101a4575f80fd5b506101bf60048036038101906101ba9190611000565b610628565b6040516101cc9190610d91565b60405180910390f35b3480156101e0575f80fd5b506101e9610644565b6040516101f6919061103a565b60405180910390f35b34801561020a575f80fd5b5061022560048036038101906102209190610f5b565b61066c565b6040516102329190610d91565b60405180910390f35b61025560048036038101906102509190611000565b6107ce565b005b610271600480360381019061026c9190611000565b61080c565b005b34801561027e575f80fd5b5061029960048036038101906102949190611000565b610835565b6040516102a6919061106b565b60405180910390f35b5f7fd8725ea2000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061032157506103208261084e565b5b9050919050565b5f6103316108c7565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a250565b5f7fd8725ea200000000000000000000000000000000000000000000000000000000905090565b6103a86108d1565b8181905084849050146103e7576040517fff633a3800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5b848490508110156104a25782828281811061040757610406611084565b5b905060200201602081019061041c91906110db565b5f8087878581811061043157610430611084565b5b90506020020160208101906104469190611000565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506103e9565b5050505050565b5f6104b2610908565b905080546003825580156104e45760018160011c14303b106104db5763f92ee8a95f526004601cfd5b818160ff1b1b91505b505f83838101906104f5919061124e565b905061051a815f8151811061050d5761050c611084565b5b6020026020010151610931565b5f5b81518110156105a05760015f8084848151811061053c5761053b611084565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061051c565b505080156105d7576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2565b61061d6108d1565b6106265f610a07565b565b5f602052805f5260405f205f915054906101000a900460ff1681565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b5f805f80858581019061067f91906113b3565b9250925092505f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610704576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015f8381526020019081526020015f205f9054906101000a900460ff1615610768578282826040517fcde6ac8700000000000000000000000000000000000000000000000000000000815260040161075f9392919061148e565b60405180910390fd5b6001805f8481526020019081526020015f205f6101000a81548160ff0219169083151502179055506107c361079c83610acd565b828573ffffffffffffffffffffffffffffffffffffffff16610afd9092919063ffffffff16565b935050505092915050565b6107d66108d1565b63389a75e1600c52805f526020600c2080544211156107fc57636f5e88185f526004601cfd5b5f81555061080981610a07565b50565b6108146108d1565b8060601b61082957637448fbae5f526004601cfd5b61083281610a07565b50565b5f63389a75e1600c52815f526020600c20549050919050565b5f7fe8478173000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c057506108bf82610c00565b5b9050919050565b5f6202a300905090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927543314610906576382b429005f526004601cfd5b565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011325f1b905090565b610939610c79565b156109b1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392780541561097357630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a350610a04565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a35b50565b610a0f610c79565b15610a74577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217815550610aca565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3818155505b50565b5f816020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c6004209050919050565b5f8360601b60601c93508315610bf957604051835f5260208301516040526040835103610b6a576040830151601b8160ff1c016020528060011b60011c6060526020600160805f60015afa805187183d1517610b6757600193505f60605282604052505050610bf9565b50505b6041835103610bb05760608301515f1a60205260408301516060526020600160805f60015afa805186183d1517610bae57600192505f606052816040525050610bf9565b505b5f60605280604052631626ba7e60e01b808252846004830152602482016040815284516020018060448501828860045afa5060208260443d01868b5afa83835114169450505050505b9392505050565b5f7f6ab67a0d000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c725750610c7182610c7d565b5b9050919050565b5f90565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d2b81610cf7565b8114610d35575f80fd5b50565b5f81359050610d4681610d22565b92915050565b5f60208284031215610d6157610d60610cef565b5b5f610d6e84828501610d38565b91505092915050565b5f8115159050919050565b610d8b81610d77565b82525050565b5f602082019050610da45f830184610d82565b92915050565b610db381610cf7565b82525050565b5f602082019050610dcc5f830184610daa565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112610df357610df2610dd2565b5b8235905067ffffffffffffffff811115610e1057610e0f610dd6565b5b602083019150836020820283011115610e2c57610e2b610dda565b5b9250929050565b5f8083601f840112610e4857610e47610dd2565b5b8235905067ffffffffffffffff811115610e6557610e64610dd6565b5b602083019150836020820283011115610e8157610e80610dda565b5b9250929050565b5f805f8060408587031215610ea057610e9f610cef565b5b5f85013567ffffffffffffffff811115610ebd57610ebc610cf3565b5b610ec987828801610dde565b9450945050602085013567ffffffffffffffff811115610eec57610eeb610cf3565b5b610ef887828801610e33565b925092505092959194509250565b5f8083601f840112610f1b57610f1a610dd2565b5b8235905067ffffffffffffffff811115610f3857610f37610dd6565b5b602083019150836001820283011115610f5457610f53610dda565b5b9250929050565b5f8060208385031215610f7157610f70610cef565b5b5f83013567ffffffffffffffff811115610f8e57610f8d610cf3565b5b610f9a85828601610f06565b92509250509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610fcf82610fa6565b9050919050565b610fdf81610fc5565b8114610fe9575f80fd5b50565b5f81359050610ffa81610fd6565b92915050565b5f6020828403121561101557611014610cef565b5b5f61102284828501610fec565b91505092915050565b61103481610fc5565b82525050565b5f60208201905061104d5f83018461102b565b92915050565b5f819050919050565b61106581611053565b82525050565b5f60208201905061107e5f83018461105c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6110ba81610d77565b81146110c4575f80fd5b50565b5f813590506110d5816110b1565b92915050565b5f602082840312156110f0576110ef610cef565b5b5f6110fd848285016110c7565b91505092915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61114c82611106565b810181811067ffffffffffffffff8211171561116b5761116a611116565b5b80604052505050565b5f61117d610ce6565b90506111898282611143565b919050565b5f67ffffffffffffffff8211156111a8576111a7611116565b5b602082029050602081019050919050565b5f6111cb6111c68461118e565b611174565b905080838252602082019050602084028301858111156111ee576111ed610dda565b5b835b8181101561121757806112038882610fec565b8452602084019350506020810190506111f0565b5050509392505050565b5f82601f83011261123557611234610dd2565b5b81356112458482602086016111b9565b91505092915050565b5f6020828403121561126357611262610cef565b5b5f82013567ffffffffffffffff8111156112805761127f610cf3565b5b61128c84828501611221565b91505092915050565b5f61129f82610fa6565b9050919050565b6112af81611295565b81146112b9575f80fd5b50565b5f813590506112ca816112a6565b92915050565b5f819050919050565b6112e2816112d0565b81146112ec575f80fd5b50565b5f813590506112fd816112d9565b92915050565b5f80fd5b5f67ffffffffffffffff82111561132157611320611116565b5b61132a82611106565b9050602081019050919050565b828183375f83830152505050565b5f61135761135284611307565b611174565b90508281526020810184848401111561137357611372611303565b5b61137e848285611337565b509392505050565b5f82601f83011261139a57611399610dd2565b5b81356113aa848260208601611345565b91505092915050565b5f805f606084860312156113ca576113c9610cef565b5b5f6113d7868287016112bc565b93505060206113e8868287016112ef565b925050604084013567ffffffffffffffff81111561140957611408610cf3565b5b61141586828701611386565b9150509250925092565b611428816112d0565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6114608261142e565b61146a8185611438565b935061147a818560208601611448565b61148381611106565b840191505092915050565b5f6060820190506114a15f83018661102b565b6114ae602083018561141f565b81810360408301526114c08184611456565b905094935050505056fea2646970667358221220666111ccdc99c406bbcb33828fd4477a7ddb19e585e60d2bfc5ccc4ee9d1b84e64736f6c634300081a0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC1 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x7E JUMPI DUP1 PUSH4 0xC16E50EF GT PUSH2 0x58 JUMPI DUP1 PUSH4 0xC16E50EF EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0xF04E283E EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xFEE81CF4 EQ PUSH2 0x273 JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH4 0x715018A6 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x736C0D5B EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x1D5 JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xC5 JUMPI DUP1 PUSH4 0x25692962 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x28D6183B EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x4359D28A EQ PUSH2 0x135 JUMPI DUP1 PUSH4 0x439FAB91 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x54D1F13D EQ PUSH2 0x185 JUMPI JUMPDEST PUSH0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0xEB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE6 SWAP2 SWAP1 PUSH2 0xD4C JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x109 PUSH2 0x328 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x116 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH2 0x379 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12C SWAP2 SWAP1 PUSH2 0xDB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0xE88 JUMP JUMPDEST PUSH2 0x3A0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x168 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17E SWAP2 SWAP1 PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x4A9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x18D PUSH2 0x5DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x197 PUSH2 0x615 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x628 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CC SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E0 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E9 PUSH2 0x644 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x103A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20A JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x66C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0xD91 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x7CE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x271 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x26C SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x80C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x27E JUMPI PUSH0 DUP1 REVERT JUMPDEST POP PUSH2 0x299 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x294 SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH2 0x835 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2A6 SWAP2 SWAP1 PUSH2 0x106B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH32 0xD8725EA200000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x321 JUMPI POP PUSH2 0x320 DUP3 PUSH2 0x84E JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x331 PUSH2 0x8C7 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF AND TIMESTAMP ADD SWAP1 POP PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE DUP1 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xDBF36A107DA19E49527A7176A1BABF963B4B0FF8CDE35EE35D6CD8F1F9AC7E1D PUSH0 DUP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH32 0xD8725EA200000000000000000000000000000000000000000000000000000000 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x3A8 PUSH2 0x8D1 JUMP JUMPDEST DUP2 DUP2 SWAP1 POP DUP5 DUP5 SWAP1 POP EQ PUSH2 0x3E7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xFF633A3800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH0 JUMPDEST DUP5 DUP5 SWAP1 POP DUP2 LT ISZERO PUSH2 0x4A2 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x407 JUMPI PUSH2 0x406 PUSH2 0x1084 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x41C SWAP2 SWAP1 PUSH2 0x10DB JUMP JUMPDEST PUSH0 DUP1 DUP8 DUP8 DUP6 DUP2 DUP2 LT PUSH2 0x431 JUMPI PUSH2 0x430 PUSH2 0x1084 JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x446 SWAP2 SWAP1 PUSH2 0x1000 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x3E9 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x4B2 PUSH2 0x908 JUMP JUMPDEST SWAP1 POP DUP1 SLOAD PUSH1 0x3 DUP3 SSTORE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x1 DUP2 PUSH1 0x1 SHR EQ ADDRESS EXTCODESIZE LT PUSH2 0x4DB JUMPI PUSH4 0xF92EE8A9 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 DUP2 PUSH1 0xFF SHL SHL SWAP2 POP JUMPDEST POP PUSH0 DUP4 DUP4 DUP2 ADD SWAP1 PUSH2 0x4F5 SWAP2 SWAP1 PUSH2 0x124E JUMP JUMPDEST SWAP1 POP PUSH2 0x51A DUP2 PUSH0 DUP2 MLOAD DUP2 LT PUSH2 0x50D JUMPI PUSH2 0x50C PUSH2 0x1084 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x931 JUMP JUMPDEST PUSH0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x5A0 JUMPI PUSH1 0x1 PUSH0 DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x53C JUMPI PUSH2 0x53B PUSH2 0x1084 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x51C JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x5D7 JUMPI PUSH1 0x2 DUP2 SSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 PUSH1 0x20 DUP1 LOG1 JUMPDEST POP POP POP JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE CALLER PUSH0 MSTORE PUSH0 PUSH1 0x20 PUSH1 0xC KECCAK256 SSTORE CALLER PUSH32 0xFA7B8EAB7DA67F412CC9575ED43464468F9BFBAE89D1675917346CA6D8FE3C92 PUSH0 DUP1 LOG2 JUMP JUMPDEST PUSH2 0x61D PUSH2 0x8D1 JUMP JUMPDEST PUSH2 0x626 PUSH0 PUSH2 0xA07 JUMP JUMPDEST JUMP JUMPDEST PUSH0 PUSH1 0x20 MSTORE DUP1 PUSH0 MSTORE PUSH1 0x40 PUSH0 KECCAK256 PUSH0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 DUP6 DUP6 DUP2 ADD SWAP1 PUSH2 0x67F SWAP2 SWAP1 PUSH2 0x13B3 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0x704 JUMPI PUSH1 0x40 MLOAD PUSH32 0x82B4290000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x768 JUMPI DUP3 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH32 0xCDE6AC8700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x75F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x148E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 PUSH0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH0 KECCAK256 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x7C3 PUSH2 0x79C DUP4 PUSH2 0xACD JUMP JUMPDEST DUP3 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xAFD SWAP1 SWAP3 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7D6 PUSH2 0x8D1 JUMP JUMPDEST PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP1 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 DUP1 SLOAD TIMESTAMP GT ISZERO PUSH2 0x7FC JUMPI PUSH4 0x6F5E8818 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH0 DUP2 SSTORE POP PUSH2 0x809 DUP2 PUSH2 0xA07 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x814 PUSH2 0x8D1 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH2 0x829 JUMPI PUSH4 0x7448FBAE PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST PUSH2 0x832 DUP2 PUSH2 0xA07 JUMP JUMPDEST POP JUMP JUMPDEST PUSH0 PUSH4 0x389A75E1 PUSH1 0xC MSTORE DUP2 PUSH0 MSTORE PUSH1 0x20 PUSH1 0xC KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH32 0xE847817300000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x8C0 JUMPI POP PUSH2 0x8BF DUP3 PUSH2 0xC00 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH3 0x2A300 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SLOAD CALLER EQ PUSH2 0x906 JUMPI PUSH4 0x82B42900 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST JUMP JUMPDEST PUSH0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF601132 PUSH0 SHL SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x939 PUSH2 0xC79 JUMP JUMPDEST ISZERO PUSH2 0x9B1 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP1 SLOAD ISZERO PUSH2 0x973 JUMPI PUSH4 0xDC149F0 PUSH0 MSTORE PUSH1 0x4 PUSH1 0x1C REVERT JUMPDEST DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE DUP2 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 POP PUSH2 0xA04 JUMP JUMPDEST DUP1 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP1 POP DUP1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 SSTORE DUP1 PUSH0 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 JUMPDEST POP JUMP JUMPDEST PUSH2 0xA0F PUSH2 0xC79 JUMP JUMPDEST ISZERO PUSH2 0xA74 JUMPI PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 ISZERO PUSH1 0xFF SHL DUP3 OR DUP2 SSTORE POP PUSH2 0xACA JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74873927 DUP2 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP2 POP DUP2 DUP2 SLOAD PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH0 DUP1 LOG3 DUP2 DUP2 SSTORE POP JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 PUSH1 0x20 MSTORE PUSH28 0x19457468657265756D205369676E6564204D6573736167653A0A3332 PUSH0 MSTORE PUSH1 0x3C PUSH1 0x4 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP4 PUSH1 0x60 SHL PUSH1 0x60 SHR SWAP4 POP DUP4 ISZERO PUSH2 0xBF9 JUMPI PUSH1 0x40 MLOAD DUP4 PUSH0 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 MSTORE PUSH1 0x40 DUP4 MLOAD SUB PUSH2 0xB6A JUMPI PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x1B DUP2 PUSH1 0xFF SHR ADD PUSH1 0x20 MSTORE DUP1 PUSH1 0x1 SHL PUSH1 0x1 SHR PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP8 XOR RETURNDATASIZE ISZERO OR PUSH2 0xB67 JUMPI PUSH1 0x1 SWAP4 POP PUSH0 PUSH1 0x60 MSTORE DUP3 PUSH1 0x40 MSTORE POP POP POP PUSH2 0xBF9 JUMP JUMPDEST POP POP JUMPDEST PUSH1 0x41 DUP4 MLOAD SUB PUSH2 0xBB0 JUMPI PUSH1 0x60 DUP4 ADD MLOAD PUSH0 BYTE PUSH1 0x20 MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 MSTORE PUSH1 0x20 PUSH1 0x1 PUSH1 0x80 PUSH0 PUSH1 0x1 GAS STATICCALL DUP1 MLOAD DUP7 XOR RETURNDATASIZE ISZERO OR PUSH2 0xBAE JUMPI PUSH1 0x1 SWAP3 POP PUSH0 PUSH1 0x60 MSTORE DUP2 PUSH1 0x40 MSTORE POP POP PUSH2 0xBF9 JUMP JUMPDEST POP JUMPDEST PUSH0 PUSH1 0x60 MSTORE DUP1 PUSH1 0x40 MSTORE PUSH4 0x1626BA7E PUSH1 0xE0 SHL DUP1 DUP3 MSTORE DUP5 PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD PUSH1 0x40 DUP2 MSTORE DUP5 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x44 DUP6 ADD DUP3 DUP9 PUSH1 0x4 GAS STATICCALL POP PUSH1 0x20 DUP3 PUSH1 0x44 RETURNDATASIZE ADD DUP7 DUP12 GAS STATICCALL DUP4 DUP4 MLOAD EQ AND SWAP5 POP POP POP POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 PUSH32 0x6AB67A0D00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xC72 JUMPI POP PUSH2 0xC71 DUP3 PUSH2 0xC7D JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 SWAP1 JUMP JUMPDEST PUSH0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD2B DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP2 EQ PUSH2 0xD35 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD46 DUP2 PUSH2 0xD22 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD61 JUMPI PUSH2 0xD60 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xD6E DUP5 DUP3 DUP6 ADD PUSH2 0xD38 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD8B DUP2 PUSH2 0xD77 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDA4 PUSH0 DUP4 ADD DUP5 PUSH2 0xD82 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDB3 DUP2 PUSH2 0xCF7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xDCC PUSH0 DUP4 ADD DUP5 PUSH2 0xDAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDF3 JUMPI PUSH2 0xDF2 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE10 JUMPI PUSH2 0xE0F PUSH2 0xDD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE2C JUMPI PUSH2 0xE2B PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xE48 JUMPI PUSH2 0xE47 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE65 JUMPI PUSH2 0xE64 PUSH2 0xDD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE81 JUMPI PUSH2 0xE80 PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xEA0 JUMPI PUSH2 0xE9F PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEBD JUMPI PUSH2 0xEBC PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0xEC9 DUP8 DUP3 DUP9 ADD PUSH2 0xDDE JUMP JUMPDEST SWAP5 POP SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xEEC JUMPI PUSH2 0xEEB PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0xEF8 DUP8 DUP3 DUP9 ADD PUSH2 0xE33 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xF1B JUMPI PUSH2 0xF1A PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF38 JUMPI PUSH2 0xF37 PUSH2 0xDD6 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xF54 JUMPI PUSH2 0xF53 PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xF71 JUMPI PUSH2 0xF70 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF8E JUMPI PUSH2 0xF8D PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0xF9A DUP6 DUP3 DUP7 ADD PUSH2 0xF06 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0xFCF DUP3 PUSH2 0xFA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFDF DUP2 PUSH2 0xFC5 JUMP JUMPDEST DUP2 EQ PUSH2 0xFE9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFFA DUP2 PUSH2 0xFD6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1015 JUMPI PUSH2 0x1014 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x1022 DUP5 DUP3 DUP6 ADD PUSH2 0xFEC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1034 DUP2 PUSH2 0xFC5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x104D PUSH0 DUP4 ADD DUP5 PUSH2 0x102B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1065 DUP2 PUSH2 0x1053 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x107E PUSH0 DUP4 ADD DUP5 PUSH2 0x105C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x10BA DUP2 PUSH2 0xD77 JUMP JUMPDEST DUP2 EQ PUSH2 0x10C4 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x10D5 DUP2 PUSH2 0x10B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x10FD DUP5 DUP3 DUP6 ADD PUSH2 0x10C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x114C DUP3 PUSH2 0x1106 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x116B JUMPI PUSH2 0x116A PUSH2 0x1116 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x117D PUSH2 0xCE6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1189 DUP3 DUP3 PUSH2 0x1143 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x11A8 JUMPI PUSH2 0x11A7 PUSH2 0x1116 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x11CB PUSH2 0x11C6 DUP5 PUSH2 0x118E JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x11EE JUMPI PUSH2 0x11ED PUSH2 0xDDA JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1217 JUMPI DUP1 PUSH2 0x1203 DUP9 DUP3 PUSH2 0xFEC JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x11F0 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1235 JUMPI PUSH2 0x1234 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1245 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x11B9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1263 JUMPI PUSH2 0x1262 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1280 JUMPI PUSH2 0x127F PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0x128C DUP5 DUP3 DUP6 ADD PUSH2 0x1221 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH2 0x129F DUP3 PUSH2 0xFA6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12AF DUP2 PUSH2 0x1295 JUMP JUMPDEST DUP2 EQ PUSH2 0x12B9 JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12CA DUP2 PUSH2 0x12A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12E2 DUP2 PUSH2 0x12D0 JUMP JUMPDEST DUP2 EQ PUSH2 0x12EC JUMPI PUSH0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12FD DUP2 PUSH2 0x12D9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 REVERT JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1321 JUMPI PUSH2 0x1320 PUSH2 0x1116 JUMP JUMPDEST JUMPDEST PUSH2 0x132A DUP3 PUSH2 0x1106 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1357 PUSH2 0x1352 DUP5 PUSH2 0x1307 JUMP JUMPDEST PUSH2 0x1174 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x1373 JUMPI PUSH2 0x1372 PUSH2 0x1303 JUMP JUMPDEST JUMPDEST PUSH2 0x137E DUP5 DUP3 DUP6 PUSH2 0x1337 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x139A JUMPI PUSH2 0x1399 PUSH2 0xDD2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x13AA DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x1345 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP1 PUSH0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x13CA JUMPI PUSH2 0x13C9 PUSH2 0xCEF JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0x13D7 DUP7 DUP3 DUP8 ADD PUSH2 0x12BC JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x13E8 DUP7 DUP3 DUP8 ADD PUSH2 0x12EF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1409 JUMPI PUSH2 0x1408 PUSH2 0xCF3 JUMP JUMPDEST JUMPDEST PUSH2 0x1415 DUP7 DUP3 DUP8 ADD PUSH2 0x1386 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x1428 DUP2 PUSH2 0x12D0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 MCOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x1460 DUP3 PUSH2 0x142E JUMP JUMPDEST PUSH2 0x146A DUP2 DUP6 PUSH2 0x1438 JUMP JUMPDEST SWAP4 POP PUSH2 0x147A DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x1448 JUMP JUMPDEST PUSH2 0x1483 DUP2 PUSH2 0x1106 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x14A1 PUSH0 DUP4 ADD DUP7 PUSH2 0x102B JUMP JUMPDEST PUSH2 0x14AE PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x141F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x14C0 DUP2 DUP5 PUSH2 0x1456 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x6111CCDC99C406 0xBB 0xCB CALLER DUP3 DUP16 0xD4 SELFBALANCE PUSH27 0x7DDB19E585E60D2BFC5CCC4EE9D1B84E64736F6C634300081A0033 ","sourceMap":"319:878:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2532:215:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9021:617:16;;;:::i;:::-;;2348:148:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2000:312;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;894:301:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9720:456:16;;;:::i;:::-;;8762:100;;;:::i;:::-;;641:39:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:182:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1238:584:61;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:708:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8348:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:435;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2532:215:61;2628:4;2666:34;2651:49;;;:11;:49;;;;:89;;;;2704:36;2728:11;2704:23;:36::i;:::-;2651:89;2644:96;;2532:215;;;:::o;9021:617:16:-;9114:15;9150:28;:26;:28::i;:::-;9132:46;;:15;:46;9114:64;;9346:19;9340:4;9333:33;9396:8;9390:4;9383:22;9452:7;9445:4;9439;9429:21;9422:38;9599:8;9552:45;9549:1;9546;9541:67;9248:374;9021:617::o;2348:148:61:-;2430:6;2455:34;2448:41;;2348:148;:::o;2000:312::-;12517:13:16;:11;:13::i;:::-;2133:11:61::1;;:18;;2114:8;;:15;;:37;2110:77;;2160:27;;;;;;;;;;;;;;2110:77;2203:9;2198:108;2222:8;;:15;;2218:1;:19;2198:108;;;2281:11;;2293:1;2281:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2258:7;:20:::0;2266:8:::1;;2275:1;2266:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2258:20;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2239:3;;;;;;;2198:108;;;;2000:312:::0;;;;:::o;894:301:62:-;3122:9:20;3134:20;:18;:20::i;:::-;3122:32;;3245:1;3239:8;3337:1;3334;3327:12;3424:1;3421:398;;;3581:1;3577;3574;3570:9;3567:16;3555:9;3543:22;3540:44;3530:189;;3621:10;3615:4;3608:24;3696:4;3690;3683:18;3530:189;3758:1;3754;3749:3;3745:11;3741:19;3736:24;;3421:398;3216:613;983:25:62::1;1023:5;;1012:30;;;;;;;:::i;:::-;982:60;;1052:29;1069:8;1078:1;1069:11;;;;;;;;:::i;:::-;;;;;;;;1052:16;:29::i;:::-;1096:9;1091:98;1115:8;:15;1111:1;:19;1091:98;;;1174:4;1151:7;:20:::0;1159:8:::1;1168:1;1159:11;;;;;;;;:::i;:::-;;;;;;;;1151:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;1132:3;;;;;;;1091:98;;;;972:223;3918:1:20::0;3915:263;;;4019:1;4016;4009:12;4100:1;4094:4;4087:15;4136:27;4130:4;4124;4119:45;3915:263;3901:287;894:301:62;;:::o;9720:456:16:-;9922:19;9916:4;9909:33;9968:8;9962:4;9955:22;10020:1;10013:4;10007;9997:21;9990:32;10151:8;10105:44;10102:1;10099;10094:66;9720:456::o;8762:100::-;12517:13;:11;:13::i;:::-;8834:21:::1;8852:1;8834:9;:21::i;:::-;8762:100::o:0;641:39:61:-;;;;;;;;;;;;;;;;;;;;;;:::o;11408:182:16:-;11454:14;11562:11;11556:18;11546:28;;11408:182;:::o;1238:584:61:-;1305:4;1322:15;1339:13;1354:23;1392:5;;1381:44;;;;;;;:::i;:::-;1321:104;;;;;;1441:7;:16;1449:7;1441:16;;;;;;;;;;;;;;;;;;;;;;;;;1436:55;;1466:25;;;;;;;;;;;;;;1436:55;1505:5;:12;1511:5;1505:12;;;;;;;;;;;;;;;;;;;;;1501:72;;;1546:7;1555:5;1562:10;1526:47;;;;;;;;;;;;;:::i;:::-;;;;;;;;1501:72;1651:4;1636:5;:12;1642:5;1636:12;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1725:90;1753:49;1796:5;1753:42;:49::i;:::-;1804:10;1725:7;:27;;;;:90;;;;;:::i;:::-;1718:97;;;;;1238:584;;;;:::o;10363:708:16:-;12517:13;:11;:13::i;:::-;10597:19:::1;10591:4;10584:33;10643:12;10637:4;10630:26;10705:4;10699;10689:21;10811:12;10805:19;10792:11;10789:36;10786:157;;;10857:10;10851:4;10844:24;10924:4;10918;10911:18;10786:157;11020:1;11006:12;10999:23;10515:517;11041:23;11051:12;11041:9;:23::i;:::-;10363:708:::0;:::o;8348:349::-;12517:13;:11;:13::i;:::-;8520:8:::1;8516:2;8512:17;8502:150;;8562:10;8556:4;8549:24;8633:4;8627;8620:18;8502:150;8671:19;8681:8;8671:9;:19::i;:::-;8348:349:::0;:::o;11693:435::-;11812:14;11963:19;11957:4;11950:33;12009:12;12003:4;11996:26;12106:4;12100;12090:21;12084:28;12074:38;;11693:435;;;:::o;1512:208:63:-;1608:4;1646:27;1631:42;;;:11;:42;;;;:82;;;;1677:36;1701:11;1677:23;:36::i;:::-;1631:82;1624:89;;1512:208;;;:::o;7878:110:16:-;7947:6;7972:9;7965:16;;7878:110;:::o;7292:355::-;7504:11;7498:18;7488:8;7485:32;7475:156;;7550:10;7544:4;7537:24;7612:4;7606;7599:18;7475:156;7292:355::o;2424:113:20:-;2485:7;2001:66;2511:19;;2504:26;;2424:113;:::o;4883:1190:16:-;4958:23;:21;:23::i;:::-;4954:1113;;;5088:11;5125:9;5119:16;5116:150;;;5171:10;5165:4;5158:24;5243:4;5237;5230:18;5116:150;5355:8;5351:2;5347:17;5343:2;5339:26;5327:38;;5469:8;5462:16;5457:3;5453:26;5443:8;5440:40;5429:9;5422:59;5610:8;5607:1;5567:38;5564:1;5561;5556:63;5053:580;4954:1113;;;5809:8;5805:2;5801:17;5797:2;5793:26;5781:38;;5896:8;5883:11;5876:29;6034:8;6031:1;5991:38;5988:1;5985;5980:63;4954:1113;4883:1190;:::o;6145:1089::-;6213:23;:21;:23::i;:::-;6209:1019;;;6343:11;6443:8;6439:2;6435:17;6431:2;6427:26;6415:38;;6597:8;6585:9;6579:16;6539:38;6536:1;6533;6528:78;6710:8;6703:16;6698:3;6694:26;6684:8;6681:40;6670:9;6663:59;6308:428;6209:1019;;;6857:11;6957:8;6953:2;6949:17;6945:2;6941:26;6929:38;;7111:8;7099:9;7093:16;7053:38;7050:1;7047;7042:78;7195:8;7184:9;7177:27;6822:396;6209:1019;6145:1089;:::o;24226:409:27:-;24295:14;24400:4;24394;24387:18;24474:50;24468:4;24461:64;24577:4;24571;24561:21;24551:31;;24226:409;;;:::o;1980:4154::-;2110:12;2311:6;2307:2;2303:15;2299:2;2295:24;2285:34;;2322:6;2279:3839;;;2365:4;2359:11;2400:4;2394;2387:18;2456:4;2445:9;2441:20;2435:27;2429:4;2422:41;2512:2;2500:9;2494:16;2491:24;2488:1077;;2569:4;2558:9;2554:20;2548:27;2627:2;2622;2617:3;2613:12;2609:21;2603:4;2596:35;2687:2;2684:1;2680:10;2677:1;2673:18;2667:4;2660:32;3089:4;3035;2983;2930;2872:1;2794:5;2754:384;3309:1;3303:8;3295:6;3291:21;3272:16;3265:24;3262:51;3252:295;;3352:1;3341:12;;3391:1;3385:4;3378:15;3457:1;3451:4;3444:15;3520:5;;;;;3252:295;2516:1049;;2488:1077;3606:2;3594:9;3588:16;3585:24;3582:1043;;3674:4;3663:9;3659:20;3653:27;3650:1;3645:36;3639:4;3632:50;3745:4;3734:9;3730:20;3724:27;3718:4;3711:41;4149:4;4095;4043;3990;3932:1;3854:5;3814:384;4369:1;4363:8;4355:6;4351:21;4332:16;4325:24;4322:51;4312:295;;4412:1;4401:12;;4451:1;4445:4;4438:15;4517:1;4511:4;4504:15;4580:5;;;;4312:295;3610:1015;3582:1043;4655:1;4649:4;4642:15;4713:1;4707:4;4700:15;4787:10;4782:3;4778:20;4825:1;4822;4815:12;4924:4;4917;4914:1;4910:12;4903:26;4962:4;4959:1;4955:12;4994:4;4991:1;4984:15;5137:9;5131:16;5125:4;5121:27;5218:1;5211:4;5208:1;5204:12;5201:1;5190:9;5187:1;5180:5;5169:51;5165:56;6004:4;5952:1;5888:4;5870:16;5866:27;5806:1;5749:6;5700:5;5664:400;5428:1;5424;5418:8;5415:15;5296:786;5285:797;;6099:5;;;;2279:3839;1980:4154;;;;;:::o;2147:197:58:-;2232:4;2270:27;2255:42;;;:11;:42;;;;:82;;;;2301:36;2325:11;2301:23;:36::i;:::-;2255:82;2248:89;;2147:197;;;:::o;4348:78:16:-;4412:10;4348:78;:::o;763:146:11:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;7:75:64:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:115::-;1603:23;1620:5;1603:23;:::i;:::-;1598:3;1591:36;1518:115;;:::o;1639:218::-;1730:4;1768:2;1757:9;1753:18;1745:26;;1781:69;1847:1;1836:9;1832:17;1823:6;1781:69;:::i;:::-;1639:218;;;;:::o;1863:117::-;1972:1;1969;1962:12;1986:117;2095:1;2092;2085:12;2109:117;2218:1;2215;2208:12;2249:568;2322:8;2332:6;2382:3;2375:4;2367:6;2363:17;2359:27;2349:122;;2390:79;;:::i;:::-;2349:122;2503:6;2490:20;2480:30;;2533:18;2525:6;2522:30;2519:117;;;2555:79;;:::i;:::-;2519:117;2669:4;2661:6;2657:17;2645:29;;2723:3;2715:4;2707:6;2703:17;2693:8;2689:32;2686:41;2683:128;;;2730:79;;:::i;:::-;2683:128;2249:568;;;;;:::o;2837:565::-;2907:8;2917:6;2967:3;2960:4;2952:6;2948:17;2944:27;2934:122;;2975:79;;:::i;:::-;2934:122;3088:6;3075:20;3065:30;;3118:18;3110:6;3107:30;3104:117;;;3140:79;;:::i;:::-;3104:117;3254:4;3246:6;3242:17;3230:29;;3308:3;3300:4;3292:6;3288:17;3278:8;3274:32;3271:41;3268:128;;;3315:79;;:::i;:::-;3268:128;2837:565;;;;;:::o;3408:928::-;3527:6;3535;3543;3551;3600:2;3588:9;3579:7;3575:23;3571:32;3568:119;;;3606:79;;:::i;:::-;3568:119;3754:1;3743:9;3739:17;3726:31;3784:18;3776:6;3773:30;3770:117;;;3806:79;;:::i;:::-;3770:117;3919:80;3991:7;3982:6;3971:9;3967:22;3919:80;:::i;:::-;3901:98;;;;3697:312;4076:2;4065:9;4061:18;4048:32;4107:18;4099:6;4096:30;4093:117;;;4129:79;;:::i;:::-;4093:117;4242:77;4311:7;4302:6;4291:9;4287:22;4242:77;:::i;:::-;4224:95;;;;4019:310;3408:928;;;;;;;:::o;4355:552::-;4412:8;4422:6;4472:3;4465:4;4457:6;4453:17;4449:27;4439:122;;4480:79;;:::i;:::-;4439:122;4593:6;4580:20;4570:30;;4623:18;4615:6;4612:30;4609:117;;;4645:79;;:::i;:::-;4609:117;4759:4;4751:6;4747:17;4735:29;;4813:3;4805:4;4797:6;4793:17;4783:8;4779:32;4776:41;4773:128;;;4820:79;;:::i;:::-;4773:128;4355:552;;;;;:::o;4913:527::-;4983:6;4991;5040:2;5028:9;5019:7;5015:23;5011:32;5008:119;;;5046:79;;:::i;:::-;5008:119;5194:1;5183:9;5179:17;5166:31;5224:18;5216:6;5213:30;5210:117;;;5246:79;;:::i;:::-;5210:117;5359:64;5415:7;5406:6;5395:9;5391:22;5359:64;:::i;:::-;5341:82;;;;5137:296;4913:527;;;;;:::o;5446:126::-;5483:7;5523:42;5516:5;5512:54;5501:65;;5446:126;;;:::o;5578:96::-;5615:7;5644:24;5662:5;5644:24;:::i;:::-;5633:35;;5578:96;;;:::o;5680:122::-;5753:24;5771:5;5753:24;:::i;:::-;5746:5;5743:35;5733:63;;5792:1;5789;5782:12;5733:63;5680:122;:::o;5808:139::-;5854:5;5892:6;5879:20;5870:29;;5908:33;5935:5;5908:33;:::i;:::-;5808:139;;;;:::o;5953:329::-;6012:6;6061:2;6049:9;6040:7;6036:23;6032:32;6029:119;;;6067:79;;:::i;:::-;6029:119;6187:1;6212:53;6257:7;6248:6;6237:9;6233:22;6212:53;:::i;:::-;6202:63;;6158:117;5953:329;;;;:::o;6288:118::-;6375:24;6393:5;6375:24;:::i;:::-;6370:3;6363:37;6288:118;;:::o;6412:222::-;6505:4;6543:2;6532:9;6528:18;6520:26;;6556:71;6624:1;6613:9;6609:17;6600:6;6556:71;:::i;:::-;6412:222;;;;:::o;6640:77::-;6677:7;6706:5;6695:16;;6640:77;;;:::o;6723:118::-;6810:24;6828:5;6810:24;:::i;:::-;6805:3;6798:37;6723:118;;:::o;6847:222::-;6940:4;6978:2;6967:9;6963:18;6955:26;;6991:71;7059:1;7048:9;7044:17;7035:6;6991:71;:::i;:::-;6847:222;;;;:::o;7075:180::-;7123:77;7120:1;7113:88;7220:4;7217:1;7210:15;7244:4;7241:1;7234:15;7261:116;7331:21;7346:5;7331:21;:::i;:::-;7324:5;7321:32;7311:60;;7367:1;7364;7357:12;7311:60;7261:116;:::o;7383:133::-;7426:5;7464:6;7451:20;7442:29;;7480:30;7504:5;7480:30;:::i;:::-;7383:133;;;;:::o;7522:323::-;7578:6;7627:2;7615:9;7606:7;7602:23;7598:32;7595:119;;;7633:79;;:::i;:::-;7595:119;7753:1;7778:50;7820:7;7811:6;7800:9;7796:22;7778:50;:::i;:::-;7768:60;;7724:114;7522:323;;;;:::o;7851:102::-;7892:6;7943:2;7939:7;7934:2;7927:5;7923:14;7919:28;7909:38;;7851:102;;;:::o;7959:180::-;8007:77;8004:1;7997:88;8104:4;8101:1;8094:15;8128:4;8125:1;8118:15;8145:281;8228:27;8250:4;8228:27;:::i;:::-;8220:6;8216:40;8358:6;8346:10;8343:22;8322:18;8310:10;8307:34;8304:62;8301:88;;;8369:18;;:::i;:::-;8301:88;8409:10;8405:2;8398:22;8188:238;8145:281;;:::o;8432:129::-;8466:6;8493:20;;:::i;:::-;8483:30;;8522:33;8550:4;8542:6;8522:33;:::i;:::-;8432:129;;;:::o;8567:311::-;8644:4;8734:18;8726:6;8723:30;8720:56;;;8756:18;;:::i;:::-;8720:56;8806:4;8798:6;8794:17;8786:25;;8866:4;8860;8856:15;8848:23;;8567:311;;;:::o;8901:710::-;8997:5;9022:81;9038:64;9095:6;9038:64;:::i;:::-;9022:81;:::i;:::-;9013:90;;9123:5;9152:6;9145:5;9138:21;9186:4;9179:5;9175:16;9168:23;;9239:4;9231:6;9227:17;9219:6;9215:30;9268:3;9260:6;9257:15;9254:122;;;9287:79;;:::i;:::-;9254:122;9402:6;9385:220;9419:6;9414:3;9411:15;9385:220;;;9494:3;9523:37;9556:3;9544:10;9523:37;:::i;:::-;9518:3;9511:50;9590:4;9585:3;9581:14;9574:21;;9461:144;9445:4;9440:3;9436:14;9429:21;;9385:220;;;9389:21;9003:608;;8901:710;;;;;:::o;9634:370::-;9705:5;9754:3;9747:4;9739:6;9735:17;9731:27;9721:122;;9762:79;;:::i;:::-;9721:122;9879:6;9866:20;9904:94;9994:3;9986:6;9979:4;9971:6;9967:17;9904:94;:::i;:::-;9895:103;;9711:293;9634:370;;;;:::o;10010:539::-;10094:6;10143:2;10131:9;10122:7;10118:23;10114:32;10111:119;;;10149:79;;:::i;:::-;10111:119;10297:1;10286:9;10282:17;10269:31;10327:18;10319:6;10316:30;10313:117;;;10349:79;;:::i;:::-;10313:117;10454:78;10524:7;10515:6;10504:9;10500:22;10454:78;:::i;:::-;10444:88;;10240:302;10010:539;;;;:::o;10555:104::-;10600:7;10629:24;10647:5;10629:24;:::i;:::-;10618:35;;10555:104;;;:::o;10665:138::-;10746:32;10772:5;10746:32;:::i;:::-;10739:5;10736:43;10726:71;;10793:1;10790;10783:12;10726:71;10665:138;:::o;10809:155::-;10863:5;10901:6;10888:20;10879:29;;10917:41;10952:5;10917:41;:::i;:::-;10809:155;;;;:::o;10970:77::-;11007:7;11036:5;11025:16;;10970:77;;;:::o;11053:122::-;11126:24;11144:5;11126:24;:::i;:::-;11119:5;11116:35;11106:63;;11165:1;11162;11155:12;11106:63;11053:122;:::o;11181:139::-;11227:5;11265:6;11252:20;11243:29;;11281:33;11308:5;11281:33;:::i;:::-;11181:139;;;;:::o;11326:117::-;11435:1;11432;11425:12;11449:307;11510:4;11600:18;11592:6;11589:30;11586:56;;;11622:18;;:::i;:::-;11586:56;11660:29;11682:6;11660:29;:::i;:::-;11652:37;;11744:4;11738;11734:15;11726:23;;11449:307;;;:::o;11762:148::-;11860:6;11855:3;11850;11837:30;11901:1;11892:6;11887:3;11883:16;11876:27;11762:148;;;:::o;11916:423::-;11993:5;12018:65;12034:48;12075:6;12034:48;:::i;:::-;12018:65;:::i;:::-;12009:74;;12106:6;12099:5;12092:21;12144:4;12137:5;12133:16;12182:3;12173:6;12168:3;12164:16;12161:25;12158:112;;;12189:79;;:::i;:::-;12158:112;12279:54;12326:6;12321:3;12316;12279:54;:::i;:::-;11999:340;11916:423;;;;;:::o;12358:338::-;12413:5;12462:3;12455:4;12447:6;12443:17;12439:27;12429:122;;12470:79;;:::i;:::-;12429:122;12587:6;12574:20;12612:78;12686:3;12678:6;12671:4;12663:6;12659:17;12612:78;:::i;:::-;12603:87;;12419:277;12358:338;;;;:::o;12702:813::-;12796:6;12804;12812;12861:2;12849:9;12840:7;12836:23;12832:32;12829:119;;;12867:79;;:::i;:::-;12829:119;12987:1;13012:61;13065:7;13056:6;13045:9;13041:22;13012:61;:::i;:::-;13002:71;;12958:125;13122:2;13148:53;13193:7;13184:6;13173:9;13169:22;13148:53;:::i;:::-;13138:63;;13093:118;13278:2;13267:9;13263:18;13250:32;13309:18;13301:6;13298:30;13295:117;;;13331:79;;:::i;:::-;13295:117;13436:62;13490:7;13481:6;13470:9;13466:22;13436:62;:::i;:::-;13426:72;;13221:287;12702:813;;;;;:::o;13521:118::-;13608:24;13626:5;13608:24;:::i;:::-;13603:3;13596:37;13521:118;;:::o;13645:98::-;13696:6;13730:5;13724:12;13714:22;;13645:98;;;:::o;13749:168::-;13832:11;13866:6;13861:3;13854:19;13906:4;13901:3;13897:14;13882:29;;13749:168;;;;:::o;13923:139::-;14012:6;14007:3;14002;13996:23;14053:1;14044:6;14039:3;14035:16;14028:27;13923:139;;;:::o;14068:373::-;14154:3;14182:38;14214:5;14182:38;:::i;:::-;14236:70;14299:6;14294:3;14236:70;:::i;:::-;14229:77;;14315:65;14373:6;14368:3;14361:4;14354:5;14350:16;14315:65;:::i;:::-;14405:29;14427:6;14405:29;:::i;:::-;14400:3;14396:39;14389:46;;14158:283;14068:373;;;;:::o;14447:529::-;14614:4;14652:2;14641:9;14637:18;14629:26;;14665:71;14733:1;14722:9;14718:17;14709:6;14665:71;:::i;:::-;14746:72;14814:2;14803:9;14799:18;14790:6;14746:72;:::i;:::-;14865:9;14859:4;14855:20;14850:2;14839:9;14835:18;14828:48;14893:76;14964:4;14955:6;14893:76;:::i;:::-;14885:84;;14447:529;;;;;;:::o"},"methodIdentifiers":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","setAuthorized(address[],bool[])":"4359d28a","signers(address)":"736c0d5b","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Replayed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"signers_\",\"type\":\"address[]\"},{\"internalType\":\"bool[]\",\"name\":\"authorized_\",\"type\":\"bool[]\"}],\"name\":\"setAuthorized\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"signers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"Because this contract is a base implementation, it should not be initialized through the constructor. Instead, it should be cloned and initialized using the {initialize} function.\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The first address in the list will be the initial owner of the contract\",\"params\":{\"data_\":\"The compressed list of authorized signers\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"setAuthorized(address[],bool[])\":{\"params\":{\"authorized_\":\"The authorized status of each signer\",\"signers_\":\"The list of signers to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The data payload is expected to be a tuple of (address signer, bytes32 hash, bytes signature)The signature is expected to be a valid ECDSA or EIP-1271 signature of a unique hash by an authorized signer\",\"params\":{\"data_\":\"The data payload for the validation check\"},\"returns\":{\"_0\":\"True if the action has been validated based on the data payload\"}}},\"title\":\"Signer Validator\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}],\"LengthMismatch()\":[{\"notice\":\"Thrown when the length of two arrays are not equal\"}],\"Replayed(address,bytes32,bytes)\":[{\"notice\":\"Thrown when a previously used signature is replayed\"}],\"Unauthorized()\":[{\"notice\":\"Thrown when the requested action is unauthorized\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Construct a new SignerValidator\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the contract with the list of authorized signers\"},\"setAuthorized(address[],bool[])\":{\"notice\":\"Set the authorized status of a signer\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"validate(bytes)\":{\"notice\":\"Validate that the action has been completed successfully\"}},\"notice\":\"A simple implementation of a Validator that verifies a given signature and checks the recovered address against a set of authorized signers\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/validators/SignerValidator.sol\":\"SignerValidator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"@solady/utils/SignatureCheckerLib.sol\":{\"keccak256\":\"0x7a7acc59723ed291f24d9a2ed019109c8be69f32701f35f8a61dc7fff6652379\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bab15a03dfca0567d7472933ee4e776fc21f9dfb6c4dbc06934fa75eceeff5e\",\"dweb:/ipfs/QmPUuKsRwpZXz15DpsoJMMPN9DtZiRvMfwjqJScxkppNsP\"]},\"contracts/shared/BoostError.sol\":{\"keccak256\":\"0xc8656c13f0978509bd3ce03661e33df020643112729f5e480b13dbb4df700535\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://42b77cb4f26fef7f3c46a1f87cad0181f874a65970c2897bb1fffb8b9791ef4e\",\"dweb:/ipfs/QmckKkHhk2xy71WMwfFyZiXLfWLWGTNakbdmuzS1Ymqzj6\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/ASignerValidator.sol\":{\"keccak256\":\"0x4c0b49d764c030d464afa662e4cdd7ab95062ed0e8848f0693279d20f758fa29\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0c2d3c35e220b1788e295ee279d52d58095018321a4e962928afa066bf869ce1\",\"dweb:/ipfs/QmfHXC8domhuHxKtM7FBaaXLVWPpmMN7q4t475JtTFbHxb\"]},\"contracts/validators/SignerValidator.sol\":{\"keccak256\":\"0x541e6f269ded9361ad03f39939cb131292da4d6b3f039b2b89ebbac4349ce54e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f882ed8ce6407e480bbc91a62c787a4d0db6a4a6e8ccb4cdef65d0aa91cbe5cd\",\"dweb:/ipfs/QmRaNHUpAdq8db5dXJ7eqsaRzHNDhDPDM3ANtyRAYTmpGB\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}},"contracts/validators/Validator.sol":{"Validator":{"abi":[{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CloneAlreadyInitialized","type":"error"},{"inputs":[],"name":"InitializerNotImplemented","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInitializationData","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getComponentInterface","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"validate","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":{"cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","getComponentInterface()":"28d6183b","initialize(bytes)":"439fab91","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","renounceOwnership()":"715018a6","requestOwnershipHandover()":"25692962","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","validate(bytes)":"c16e50ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CloneAlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitializationData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentInterface\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"name\":\"validate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Validator classes are expected to decode the calldata for implementation-specific handling. If no data is required, calldata should be empty.\",\"errors\":{\"AlreadyInitialized()\":[{\"details\":\"Cannot double-initialize.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidInitializationData()\":[{\"details\":\"This error indicates that the given data is not valid for the implementation (i.e. does not decode to the expected types)\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"}},\"kind\":\"dev\",\"methods\":{\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"constructor\":{\"details\":\"The owner is set to the contract deployer\"},\"getComponentInterface()\":{\"details\":\"All implementations must override this function\"},\"initialize(bytes)\":{\"details\":\"The data is expected to be ABI encoded bytes compressed using {LibZip-cdCompress}All implementations must override this function to initialize the contract\",\"params\":{\"\":\"- The compressed initialization data (if required)\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\",\"params\":{\"interfaceId\":\"The interface identifier\"},\"returns\":{\"_0\":\"True if the contract supports the interface\"}},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"validate(bytes)\":{\"details\":\"The decompressed payload contains the address of the user being validated along with freeform bytes that are entirely implementation-specificFor example, to validate a tuple of `(bytes32 messageHash, bytes signature)` on behalf of `address holder`, the payload should be `ValidatePayload({target: holder, data: abi.encode(messageHash, signature)})`, ABI-encoded and compressed with {LibZip-cdCompress}\",\"params\":{\"data_\":\"The compressed {ValidatePayload} to be validated\"},\"returns\":{\"_0\":\"True if the action has been validated based on the data payload\"}}},\"title\":\"Boost Validator\",\"version\":1},\"userdoc\":{\"errors\":{\"CloneAlreadyInitialized()\":[{\"notice\":\"Thrown when the contract has already been initialized\"}],\"InitializerNotImplemented()\":[{\"notice\":\"Thrown when an inheriting contract does not implement the initializer function\"}],\"InvalidInitializationData()\":[{\"notice\":\"Thrown when the provided initialization data is invalid\"}]},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initialize the contract and set the owner\"},\"getComponentInterface()\":{\"notice\":\"@param - Return a cloneable's unique identifier for downstream consumers to differentiate various targets\"},\"initialize(bytes)\":{\"notice\":\"Initialize the clone with the given arbitrary data\"},\"supportsInterface(bytes4)\":{\"notice\":\"Check if the contract supports the given interface\"},\"validate(bytes)\":{\"notice\":\"Validate that a given user has completed an acction successfully\"}},\"notice\":\"Abstract contract for a generic Validator within the Boost protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/validators/Validator.sol\":\"Validator\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x6fac27fb1885a1d9fd2ce3f8fac4e44a6596ca4d44207c9ef2541ba8c941291e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2079378abdb36baec15c23bc2353b73a3d28d1d0610b436b0c1c4e6fa61d65c9\",\"dweb:/ipfs/QmVZkRFMzKW7sLaugKSTbMNnUBKWF3QDsoMi5uoQFyVMjf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"@solady/auth/Ownable.sol\":{\"keccak256\":\"0xc208cdd9de02bbf4b5edad18b88e23a2be7ff56d2287d5649329dc7cda64b9a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fba079cc7230c617f7493a2e97873f88e59a53a5018fcb2e2b6ac42d8aa5a3\",\"dweb:/ipfs/QmTXg8GSt8hsK2cZhbPFrund1mrwVdkLQmEPoQaFy4fhjs\"]},\"@solady/utils/Initializable.sol\":{\"keccak256\":\"0x039ac865df50f874528619e58f2bfaa665b6cec82647c711e515cb252a45a2ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1886c0e71f4861a23113f9d3eb5f6f00397c1d1bf0191f92534c177a79ac8559\",\"dweb:/ipfs/QmPLWU427MN9KHFg6DFkrYNutCDLdtNSQLaqmPqKcoPRLy\"]},\"contracts/shared/Cloneable.sol\":{\"keccak256\":\"0xb61fd9d89024864891116b47247a427d6c3d536da4b63c8282fceabb9976953b\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://24f5fb7e6980931f8419e4eaea48d6ec8049ce94e7f64c8cdbf1ab760e8b511f\",\"dweb:/ipfs/QmfEqibLBAA6G5tAJifUV6K2FVRNRvcAPnuarER1y52F6U\"]},\"contracts/validators/Validator.sol\":{\"keccak256\":\"0x699e690bc8c2cf9314ed087bb18043e8346d8dea3f5a67ec536eceb7aba865bf\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e67d0997cc2faf76c9251abe4e91f0c4df0c5e25047c0712f5846630fbd8b75e\",\"dweb:/ipfs/QmenL6bsz4L55mHVoqLyadLqhq9Nt5s78AiFMfo4j4ixJW\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/packages/sdk/CHANGELOG.md b/packages/sdk/CHANGELOG.md index bb5f30f7..58623d61 100644 --- a/packages/sdk/CHANGELOG.md +++ b/packages/sdk/CHANGELOG.md @@ -1,5 +1,12 @@ # @boostxyz/sdk +## 0.0.0-alpha.2 + +### Minor Changes + +- b1f6864: ERC1155Incentive functioning with tests, refactor all ts utilities to sdk package +- 31de323: test release alpha.1 + ## 0.0.0-alpha.1 ### Major Changes diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 2109b9bc..7795fc03 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@boostxyz/sdk", - "version": "0.0.0-alpha.1", + "version": "0.0.0-alpha.2", "private": true, "type": "module", "files": ["dist"],